typescript 5.0.0-dev.20230125 → 5.0.0-dev.20230127

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/tsserver.js CHANGED
@@ -429,6 +429,10 @@ __export(server_exports, {
429
429
  createPatternMatcher: () => createPatternMatcher,
430
430
  createPrependNodes: () => createPrependNodes,
431
431
  createPrinter: () => createPrinter,
432
+ createPrinterWithDefaults: () => createPrinterWithDefaults,
433
+ createPrinterWithRemoveComments: () => createPrinterWithRemoveComments,
434
+ createPrinterWithRemoveCommentsNeverAsciiEscape: () => createPrinterWithRemoveCommentsNeverAsciiEscape,
435
+ createPrinterWithRemoveCommentsOmitTrailingSemicolon: () => createPrinterWithRemoveCommentsOmitTrailingSemicolon,
432
436
  createProgram: () => createProgram,
433
437
  createProgramHost: () => createProgramHost,
434
438
  createPropertyNameNodeForIdentifierOrLiteral: () => createPropertyNameNodeForIdentifierOrLiteral,
@@ -665,6 +669,7 @@ __export(server_exports, {
665
669
  getCommonSourceDirectoryOfConfig: () => getCommonSourceDirectoryOfConfig,
666
670
  getCompilerOptionValue: () => getCompilerOptionValue,
667
671
  getCompilerOptionsDiffValue: () => getCompilerOptionsDiffValue,
672
+ getConditions: () => getConditions,
668
673
  getConfigFileParsingDiagnostics: () => getConfigFileParsingDiagnostics,
669
674
  getConstantValue: () => getConstantValue,
670
675
  getContainerNode: () => getContainerNode,
@@ -2373,7 +2378,7 @@ __export(ts_server_exports3, {
2373
2378
 
2374
2379
  // src/compiler/corePublic.ts
2375
2380
  var versionMajorMinor = "5.0";
2376
- var version = `${versionMajorMinor}.0-dev.20230125`;
2381
+ var version = `${versionMajorMinor}.0-dev.20230127`;
2377
2382
  var Comparison = /* @__PURE__ */ ((Comparison3) => {
2378
2383
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
2379
2384
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -10820,6 +10825,7 @@ var Diagnostics = {
10820
10825
  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."),
10821
10826
  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."),
10822
10827
  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`."),
10828
+ 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."),
10823
10829
  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}'"),
10824
10830
  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."),
10825
10831
  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."),
@@ -15492,6 +15498,20 @@ function getScriptTargetFeatures() {
15492
15498
  BigUint64Array: ["at"],
15493
15499
  ObjectConstructor: ["hasOwn"],
15494
15500
  Error: ["cause"]
15501
+ },
15502
+ es2023: {
15503
+ Array: ["findLastIndex", "findLast"],
15504
+ Int8Array: ["findLastIndex", "findLast"],
15505
+ Uint8Array: ["findLastIndex", "findLast"],
15506
+ Uint8ClampedArray: ["findLastIndex", "findLast"],
15507
+ Int16Array: ["findLastIndex", "findLast"],
15508
+ Uint16Array: ["findLastIndex", "findLast"],
15509
+ Int32Array: ["findLastIndex", "findLast"],
15510
+ Uint32Array: ["findLastIndex", "findLast"],
15511
+ Float32Array: ["findLastIndex", "findLast"],
15512
+ Float64Array: ["findLastIndex", "findLast"],
15513
+ BigInt64Array: ["findLastIndex", "findLast"],
15514
+ BigUint64Array: ["findLastIndex", "findLast"]
15495
15515
  }
15496
15516
  };
15497
15517
  }
@@ -38152,7 +38172,7 @@ var commandOptionsWithoutBuild = [
38152
38172
  {
38153
38173
  name: "allowArbitraryExtensions",
38154
38174
  type: "boolean",
38155
- affectsModuleResolution: true,
38175
+ affectsProgramStructure: true,
38156
38176
  category: Diagnostics.Modules,
38157
38177
  description: Diagnostics.Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present,
38158
38178
  defaultValueDescription: false
@@ -46465,8 +46485,8 @@ function tryGetModuleNameAsNodeModule({ path, isRedirect }, { getCanonicalFileNa
46465
46485
  if (typeof cachedPackageJson === "object" || cachedPackageJson === void 0 && host.fileExists(packageJsonPath)) {
46466
46486
  const packageJsonContent = (cachedPackageJson == null ? void 0 : cachedPackageJson.contents.packageJsonContent) || JSON.parse(host.readFile(packageJsonPath));
46467
46487
  const importMode = overrideMode || importingSourceFile.impliedNodeFormat;
46468
- if (getEmitModuleResolutionKind(options) === 3 /* Node16 */ || getEmitModuleResolutionKind(options) === 99 /* NodeNext */) {
46469
- const conditions = ["node", importMode === 99 /* ESNext */ ? "import" : "require", "types"];
46488
+ if (getResolvePackageJsonExports(options)) {
46489
+ const conditions = getConditions(options, importMode === 99 /* ESNext */);
46470
46490
  const fromExports = packageJsonContent.exports && typeof packageJsonContent.name === "string" ? tryGetModuleNameFromExports(options, path, packageRootPath, getPackageNameFromTypesPackageName(packageJsonContent.name), packageJsonContent.exports, conditions) : void 0;
46471
46491
  if (fromExports) {
46472
46492
  const withJsExtension = !hasTSFileExtension(fromExports.moduleFileToTry) ? fromExports : { moduleFileToTry: removeFileExtension(fromExports.moduleFileToTry) + tryGetJSExtensionForFile(fromExports.moduleFileToTry, options) };
@@ -50977,7 +50997,7 @@ function createTypeChecker(host) {
50977
50997
  return writer ? symbolToStringWorker(writer).getText() : usingSingleLineStringWriter(symbolToStringWorker);
50978
50998
  function symbolToStringWorker(writer2) {
50979
50999
  const entity = builder(symbol, meaning, enclosingDeclaration, nodeFlags);
50980
- const printer = (enclosingDeclaration == null ? void 0 : enclosingDeclaration.kind) === 308 /* SourceFile */ ? createPrinter({ removeComments: true, neverAsciiEscape: true }) : createPrinter({ removeComments: true });
51000
+ const printer = (enclosingDeclaration == null ? void 0 : enclosingDeclaration.kind) === 308 /* SourceFile */ ? createPrinterWithRemoveCommentsNeverAsciiEscape() : createPrinterWithRemoveComments();
50981
51001
  const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
50982
51002
  printer.writeNode(
50983
51003
  4 /* Unspecified */,
@@ -50999,7 +51019,7 @@ function createTypeChecker(host) {
50999
51019
  sigOutput = kind === 1 /* Construct */ ? 177 /* ConstructSignature */ : 176 /* CallSignature */;
51000
51020
  }
51001
51021
  const sig = nodeBuilder.signatureToSignatureDeclaration(signature, sigOutput, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | 512 /* WriteTypeParametersInQualifiedName */);
51002
- const printer = createPrinter({ removeComments: true, omitTrailingSemicolon: true });
51022
+ const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();
51003
51023
  const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
51004
51024
  printer.writeNode(
51005
51025
  4 /* Unspecified */,
@@ -51016,8 +51036,7 @@ function createTypeChecker(host) {
51016
51036
  const typeNode = nodeBuilder.typeToTypeNode(type, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | (noTruncation ? 1 /* NoTruncation */ : 0));
51017
51037
  if (typeNode === void 0)
51018
51038
  return Debug.fail("should always get typenode");
51019
- const options = { removeComments: type !== unresolvedType };
51020
- const printer = createPrinter(options);
51039
+ const printer = type !== unresolvedType ? createPrinterWithRemoveComments() : createPrinterWithDefaults();
51021
51040
  const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
51022
51041
  printer.writeNode(
51023
51042
  4 /* Unspecified */,
@@ -54368,7 +54387,7 @@ function createTypeChecker(host) {
54368
54387
  typePredicate.type && nodeBuilder.typeToTypeNode(typePredicate.type, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | 512 /* WriteTypeParametersInQualifiedName */)
54369
54388
  // TODO: GH#18217
54370
54389
  );
54371
- const printer = createPrinter({ removeComments: true });
54390
+ const printer = createPrinterWithRemoveComments();
54372
54391
  const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
54373
54392
  printer.writeNode(
54374
54393
  4 /* Unspecified */,
@@ -69396,7 +69415,7 @@ function createTypeChecker(host) {
69396
69415
  return getNonMissingTypeOfSymbol(symbol);
69397
69416
  }
69398
69417
  function getControlFlowContainer(node) {
69399
- return findAncestor(node.parent, (node2) => isFunctionLike(node2) && !getImmediatelyInvokedFunctionExpression(node2) || node2.kind === 265 /* ModuleBlock */ || node2.kind === 308 /* SourceFile */ || node2.kind === 295 /* CatchClause */ || node2.kind === 169 /* PropertyDeclaration */);
69418
+ return findAncestor(node.parent, (node2) => isFunctionLike(node2) && !getImmediatelyInvokedFunctionExpression(node2) || node2.kind === 265 /* ModuleBlock */ || node2.kind === 308 /* SourceFile */ || node2.kind === 169 /* PropertyDeclaration */);
69400
69419
  }
69401
69420
  function isSymbolAssigned(symbol) {
69402
69421
  if (!symbol.valueDeclaration) {
@@ -69657,14 +69676,13 @@ function createTypeChecker(host) {
69657
69676
  const isParameter2 = getRootDeclaration(declaration).kind === 166 /* Parameter */;
69658
69677
  const declarationContainer = getControlFlowContainer(declaration);
69659
69678
  let flowContainer = getControlFlowContainer(node);
69660
- const isCatch = flowContainer.kind === 295 /* CatchClause */;
69661
69679
  const isOuterVariable = flowContainer !== declarationContainer;
69662
69680
  const isSpreadDestructuringAssignmentTarget = node.parent && node.parent.parent && isSpreadAssignment(node.parent) && isDestructuringAssignmentTarget(node.parent.parent);
69663
69681
  const isModuleExports = symbol.flags & 134217728 /* ModuleExports */;
69664
69682
  while (flowContainer !== declarationContainer && (flowContainer.kind === 215 /* FunctionExpression */ || flowContainer.kind === 216 /* ArrowFunction */ || isObjectLiteralOrClassExpressionMethodOrAccessor(flowContainer)) && (isConstVariable(localOrExportSymbol) && type !== autoArrayType || isParameter2 && !isSymbolAssigned(localOrExportSymbol))) {
69665
69683
  flowContainer = getControlFlowContainer(flowContainer);
69666
69684
  }
69667
- const assumeInitialized = isParameter2 || isCatch || isAlias || isOuterVariable || isSpreadDestructuringAssignmentTarget || isModuleExports || isSameScopedBindingElement(node, declaration) || type !== autoType && type !== autoArrayType && (!strictNullChecks || (type.flags & (3 /* AnyOrUnknown */ | 16384 /* Void */)) !== 0 || isInTypeQuery(node) || isInAmbientOrTypeNode(node) || node.parent.kind === 278 /* ExportSpecifier */) || node.parent.kind === 232 /* NonNullExpression */ || declaration.kind === 257 /* VariableDeclaration */ && declaration.exclamationToken || declaration.flags & 16777216 /* Ambient */;
69685
+ const assumeInitialized = isParameter2 || isAlias || isOuterVariable || isSpreadDestructuringAssignmentTarget || isModuleExports || isSameScopedBindingElement(node, declaration) || type !== autoType && type !== autoArrayType && (!strictNullChecks || (type.flags & (3 /* AnyOrUnknown */ | 16384 /* Void */)) !== 0 || isInTypeQuery(node) || isInAmbientOrTypeNode(node) || node.parent.kind === 278 /* ExportSpecifier */) || node.parent.kind === 232 /* NonNullExpression */ || declaration.kind === 257 /* VariableDeclaration */ && declaration.exclamationToken || declaration.flags & 16777216 /* Ambient */;
69668
69686
  const initialType = assumeInitialized ? isParameter2 ? removeOptionalityFromDeclaredType(type, declaration) : type : type === autoType || type === autoArrayType ? undefinedType : getOptionalType(type);
69669
69687
  const flowType = getFlowTypeOfReference(node, type, initialType, flowContainer);
69670
69688
  if (!isEvolvingArrayOperationTarget(node) && (type === autoType || type === autoArrayType)) {
@@ -82924,7 +82942,7 @@ function createTypeChecker(host) {
82924
82942
  if (typeAnnotationNode) {
82925
82943
  checkTypeAssignableTo(checkExpressionCached(node.expression), getTypeFromTypeNode(typeAnnotationNode), node.expression);
82926
82944
  }
82927
- const isIllegalExportDefaultInCJS = !node.isExportEquals && compilerOptions.verbatimModuleSyntax && (moduleKind === 1 /* CommonJS */ || getSourceFileOfNode(node).impliedNodeFormat === 1 /* CommonJS */);
82945
+ const isIllegalExportDefaultInCJS = !node.isExportEquals && !(node.flags & 16777216 /* Ambient */) && compilerOptions.verbatimModuleSyntax && (moduleKind === 1 /* CommonJS */ || getSourceFileOfNode(node).impliedNodeFormat === 1 /* CommonJS */);
82928
82946
  if (node.expression.kind === 79 /* Identifier */) {
82929
82947
  const id = node.expression;
82930
82948
  const sym = resolveEntityName(
@@ -111125,6 +111143,10 @@ function emitUsingBuildInfoWorker(config, host, getCommandLine, customTransforme
111125
111143
  );
111126
111144
  return outputFiles;
111127
111145
  }
111146
+ var createPrinterWithDefaults = /* @__PURE__ */ memoize(() => createPrinter({}));
111147
+ var createPrinterWithRemoveComments = /* @__PURE__ */ memoize(() => createPrinter({ removeComments: true }));
111148
+ var createPrinterWithRemoveCommentsNeverAsciiEscape = /* @__PURE__ */ memoize(() => createPrinter({ removeComments: true, neverAsciiEscape: true }));
111149
+ var createPrinterWithRemoveCommentsOmitTrailingSemicolon = /* @__PURE__ */ memoize(() => createPrinter({ removeComments: true, omitTrailingSemicolon: true }));
111128
111150
  function createPrinter(printerOptions = {}, handlers = {}) {
111129
111151
  const {
111130
111152
  hasGlobalName,
@@ -121142,14 +121164,17 @@ function getBuildInfo2(state, bundle) {
121142
121164
  const latestChangedDtsFile = state.latestChangedDtsFile ? relativeToBuildInfoEnsuringAbsolutePath(state.latestChangedDtsFile) : void 0;
121143
121165
  const fileNames = [];
121144
121166
  const fileNameToFileId = /* @__PURE__ */ new Map();
121167
+ const root = [];
121145
121168
  if (outFile(state.compilerOptions)) {
121146
121169
  const fileInfos2 = arrayFrom(state.fileInfos.entries(), ([key, value]) => {
121147
- toFileId(key);
121170
+ const fileId = toFileId(key);
121171
+ tryAddRoot(key, fileId);
121148
121172
  return value.impliedFormat ? { version: value.version, impliedFormat: value.impliedFormat, signature: void 0, affectsGlobalScope: void 0 } : value.version;
121149
121173
  });
121150
121174
  const program2 = {
121151
121175
  fileNames,
121152
121176
  fileInfos: fileInfos2,
121177
+ root,
121153
121178
  options: convertToProgramBuildInfoCompilerOptions(state.compilerOptions),
121154
121179
  outSignature: state.outSignature,
121155
121180
  latestChangedDtsFile,
@@ -121177,6 +121202,7 @@ function getBuildInfo2(state, bundle) {
121177
121202
  const fileInfos = arrayFrom(state.fileInfos.entries(), ([key, value]) => {
121178
121203
  var _a3, _b2;
121179
121204
  const fileId = toFileId(key);
121205
+ tryAddRoot(key, fileId);
121180
121206
  Debug.assert(fileNames[fileId - 1] === relativeToBuildInfo(key));
121181
121207
  const oldSignature = (_a3 = state.oldSignatures) == null ? void 0 : _a3.get(key);
121182
121208
  const actualSignature = oldSignature !== void 0 ? oldSignature || void 0 : value.signature;
@@ -121276,6 +121302,7 @@ function getBuildInfo2(state, bundle) {
121276
121302
  const program = {
121277
121303
  fileNames,
121278
121304
  fileInfos,
121305
+ root,
121279
121306
  options: convertToProgramBuildInfoCompilerOptions(state.compilerOptions),
121280
121307
  fileIdsList,
121281
121308
  referencedMap,
@@ -121311,6 +121338,24 @@ function getBuildInfo2(state, bundle) {
121311
121338
  }
121312
121339
  return fileIdListId;
121313
121340
  }
121341
+ function tryAddRoot(path, fileId) {
121342
+ const file = state.program.getSourceFile(path);
121343
+ if (!state.program.getFileIncludeReasons().get(file.path).some((r) => r.kind === 0 /* RootFile */))
121344
+ return;
121345
+ if (!root.length)
121346
+ return root.push(fileId);
121347
+ const last2 = root[root.length - 1];
121348
+ const isLastStartEnd = isArray(last2);
121349
+ if (isLastStartEnd && last2[1] === fileId - 1)
121350
+ return last2[1] = fileId;
121351
+ if (isLastStartEnd || root.length === 1 || last2 !== fileId - 1)
121352
+ return root.push(fileId);
121353
+ const lastButOne = root[root.length - 2];
121354
+ if (!isNumber(lastButOne) || lastButOne !== last2 - 1)
121355
+ return root.push(fileId);
121356
+ root[root.length - 2] = [lastButOne, fileId];
121357
+ return root.length = root.length - 1;
121358
+ }
121314
121359
  function convertToProgramBuildInfoCompilerOptions(options) {
121315
121360
  let result;
121316
121361
  const { optionsNameMap } = getOptionsNameMap();
@@ -121823,12 +121868,28 @@ function getBuildInfoFileVersionMap(program, buildInfoPath, host) {
121823
121868
  const buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(buildInfoPath, host.getCurrentDirectory()));
121824
121869
  const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames());
121825
121870
  const fileInfos = /* @__PURE__ */ new Map();
121871
+ let rootIndex = 0;
121872
+ const roots = [];
121826
121873
  program.fileInfos.forEach((fileInfo, index) => {
121827
121874
  const path = toPath(program.fileNames[index], buildInfoDirectory, getCanonicalFileName);
121828
121875
  const version2 = isString(fileInfo) ? fileInfo : fileInfo.version;
121829
121876
  fileInfos.set(path, version2);
121877
+ if (rootIndex < program.root.length) {
121878
+ const current = program.root[rootIndex];
121879
+ const fileId = index + 1;
121880
+ if (isArray(current)) {
121881
+ if (current[0] <= fileId && fileId <= current[1]) {
121882
+ roots.push(path);
121883
+ if (current[1] === fileId)
121884
+ rootIndex++;
121885
+ }
121886
+ } else if (current === fileId) {
121887
+ roots.push(path);
121888
+ rootIndex++;
121889
+ }
121890
+ }
121830
121891
  });
121831
- return fileInfos;
121892
+ return { fileInfos, roots };
121832
121893
  }
121833
121894
  function createRedirectedBuilderProgram(getState, configFileParsingDiagnostics) {
121834
121895
  return {
@@ -124098,13 +124159,14 @@ var UpToDateStatusType = /* @__PURE__ */ ((UpToDateStatusType2) => {
124098
124159
  UpToDateStatusType2[UpToDateStatusType2["OutOfDateWithUpstream"] = 7] = "OutOfDateWithUpstream";
124099
124160
  UpToDateStatusType2[UpToDateStatusType2["OutOfDateBuildInfo"] = 8] = "OutOfDateBuildInfo";
124100
124161
  UpToDateStatusType2[UpToDateStatusType2["OutOfDateOptions"] = 9] = "OutOfDateOptions";
124101
- UpToDateStatusType2[UpToDateStatusType2["UpstreamOutOfDate"] = 10] = "UpstreamOutOfDate";
124102
- UpToDateStatusType2[UpToDateStatusType2["UpstreamBlocked"] = 11] = "UpstreamBlocked";
124103
- UpToDateStatusType2[UpToDateStatusType2["ComputingUpstream"] = 12] = "ComputingUpstream";
124104
- UpToDateStatusType2[UpToDateStatusType2["TsVersionOutputOfDate"] = 13] = "TsVersionOutputOfDate";
124105
- UpToDateStatusType2[UpToDateStatusType2["UpToDateWithInputFileText"] = 14] = "UpToDateWithInputFileText";
124106
- UpToDateStatusType2[UpToDateStatusType2["ContainerOnly"] = 15] = "ContainerOnly";
124107
- UpToDateStatusType2[UpToDateStatusType2["ForceBuild"] = 16] = "ForceBuild";
124162
+ UpToDateStatusType2[UpToDateStatusType2["OutOfDateRoots"] = 10] = "OutOfDateRoots";
124163
+ UpToDateStatusType2[UpToDateStatusType2["UpstreamOutOfDate"] = 11] = "UpstreamOutOfDate";
124164
+ UpToDateStatusType2[UpToDateStatusType2["UpstreamBlocked"] = 12] = "UpstreamBlocked";
124165
+ UpToDateStatusType2[UpToDateStatusType2["ComputingUpstream"] = 13] = "ComputingUpstream";
124166
+ UpToDateStatusType2[UpToDateStatusType2["TsVersionOutputOfDate"] = 14] = "TsVersionOutputOfDate";
124167
+ UpToDateStatusType2[UpToDateStatusType2["UpToDateWithInputFileText"] = 15] = "UpToDateWithInputFileText";
124168
+ UpToDateStatusType2[UpToDateStatusType2["ContainerOnly"] = 16] = "ContainerOnly";
124169
+ UpToDateStatusType2[UpToDateStatusType2["ForceBuild"] = 17] = "ForceBuild";
124108
124170
  return UpToDateStatusType2;
124109
124171
  })(UpToDateStatusType || {});
124110
124172
  function resolveConfigFileProjectName(project) {
@@ -124998,7 +125060,7 @@ function getNextInvalidatedProjectCreateInfo(state, buildOrder, reportQueue) {
124998
125060
  }
124999
125061
  continue;
125000
125062
  }
125001
- if (status.type === 2 /* UpToDateWithUpstreamTypes */ || status.type === 14 /* UpToDateWithInputFileText */) {
125063
+ if (status.type === 2 /* UpToDateWithUpstreamTypes */ || status.type === 15 /* UpToDateWithInputFileText */) {
125002
125064
  reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));
125003
125065
  return {
125004
125066
  kind: 2 /* UpdateOutputFileStamps */,
@@ -125010,7 +125072,7 @@ function getNextInvalidatedProjectCreateInfo(state, buildOrder, reportQueue) {
125010
125072
  };
125011
125073
  }
125012
125074
  }
125013
- if (status.type === 11 /* UpstreamBlocked */) {
125075
+ if (status.type === 12 /* UpstreamBlocked */) {
125014
125076
  verboseReportProjectStatus(state, project, status);
125015
125077
  reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));
125016
125078
  projectPendingBuild.delete(projectPath);
@@ -125024,7 +125086,7 @@ function getNextInvalidatedProjectCreateInfo(state, buildOrder, reportQueue) {
125024
125086
  }
125025
125087
  continue;
125026
125088
  }
125027
- if (status.type === 15 /* ContainerOnly */) {
125089
+ if (status.type === 16 /* ContainerOnly */) {
125028
125090
  verboseReportProjectStatus(state, project, status);
125029
125091
  reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));
125030
125092
  projectPendingBuild.delete(projectPath);
@@ -125211,31 +125273,31 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
125211
125273
  var _a2, _b;
125212
125274
  if (!project.fileNames.length && !canJsonReportNoInputFiles(project.raw)) {
125213
125275
  return {
125214
- type: 15 /* ContainerOnly */
125276
+ type: 16 /* ContainerOnly */
125215
125277
  };
125216
125278
  }
125217
125279
  let referenceStatuses;
125218
125280
  const force = !!state.options.force;
125219
125281
  if (project.projectReferences) {
125220
- state.projectStatus.set(resolvedPath, { type: 12 /* ComputingUpstream */ });
125282
+ state.projectStatus.set(resolvedPath, { type: 13 /* ComputingUpstream */ });
125221
125283
  for (const ref of project.projectReferences) {
125222
125284
  const resolvedRef = resolveProjectReferencePath(ref);
125223
125285
  const resolvedRefPath = toResolvedConfigFilePath(state, resolvedRef);
125224
125286
  const resolvedConfig = parseConfigFile(state, resolvedRef, resolvedRefPath);
125225
125287
  const refStatus = getUpToDateStatus(state, resolvedConfig, resolvedRefPath);
125226
- if (refStatus.type === 12 /* ComputingUpstream */ || refStatus.type === 15 /* ContainerOnly */) {
125288
+ if (refStatus.type === 13 /* ComputingUpstream */ || refStatus.type === 16 /* ContainerOnly */) {
125227
125289
  continue;
125228
125290
  }
125229
- if (refStatus.type === 0 /* Unbuildable */ || refStatus.type === 11 /* UpstreamBlocked */) {
125291
+ if (refStatus.type === 0 /* Unbuildable */ || refStatus.type === 12 /* UpstreamBlocked */) {
125230
125292
  return {
125231
- type: 11 /* UpstreamBlocked */,
125293
+ type: 12 /* UpstreamBlocked */,
125232
125294
  upstreamProjectName: ref.path,
125233
- upstreamProjectBlocked: refStatus.type === 11 /* UpstreamBlocked */
125295
+ upstreamProjectBlocked: refStatus.type === 12 /* UpstreamBlocked */
125234
125296
  };
125235
125297
  }
125236
125298
  if (refStatus.type !== 1 /* UpToDate */) {
125237
125299
  return {
125238
- type: 10 /* UpstreamOutOfDate */,
125300
+ type: 11 /* UpstreamOutOfDate */,
125239
125301
  upstreamProjectName: ref.path
125240
125302
  };
125241
125303
  }
@@ -125244,7 +125306,7 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
125244
125306
  }
125245
125307
  }
125246
125308
  if (force)
125247
- return { type: 16 /* ForceBuild */ };
125309
+ return { type: 17 /* ForceBuild */ };
125248
125310
  const { host } = state;
125249
125311
  const buildInfoPath = getTsBuildInfoEmitOutputFilePath(project.options);
125250
125312
  let oldestOutputFileName;
@@ -125277,7 +125339,7 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
125277
125339
  }
125278
125340
  if ((buildInfo.bundle || buildInfo.program) && buildInfo.version !== version) {
125279
125341
  return {
125280
- type: 13 /* TsVersionOutputOfDate */,
125342
+ type: 14 /* TsVersionOutputOfDate */,
125281
125343
  version: buildInfo.version
125282
125344
  };
125283
125345
  }
@@ -125302,6 +125364,7 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
125302
125364
  let newestInputFileName = void 0;
125303
125365
  let newestInputFileTime = minimumDate;
125304
125366
  let pseudoInputUpToDate = false;
125367
+ const seenRoots = /* @__PURE__ */ new Set();
125305
125368
  for (const inputFile of project.fileNames) {
125306
125369
  const inputTime = getModifiedTime2(state, inputFile);
125307
125370
  if (inputTime === missingFileModifiedTime) {
@@ -125316,7 +125379,7 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
125316
125379
  if (buildInfoProgram) {
125317
125380
  if (!buildInfoVersionMap)
125318
125381
  buildInfoVersionMap = getBuildInfoFileVersionMap(buildInfoProgram, buildInfoPath, host);
125319
- version2 = buildInfoVersionMap.get(toPath2(state, inputFile));
125382
+ version2 = buildInfoVersionMap.fileInfos.get(toPath2(state, inputFile));
125320
125383
  const text = version2 ? state.readFileWithCache(inputFile) : void 0;
125321
125384
  currentVersion = text !== void 0 ? getSourceFileVersionAsHashFromText(host, text) : void 0;
125322
125385
  if (version2 && version2 === currentVersion)
@@ -125334,6 +125397,21 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
125334
125397
  newestInputFileName = inputFile;
125335
125398
  newestInputFileTime = inputTime;
125336
125399
  }
125400
+ if (buildInfoProgram)
125401
+ seenRoots.add(toPath2(state, inputFile));
125402
+ }
125403
+ if (buildInfoProgram) {
125404
+ if (!buildInfoVersionMap)
125405
+ buildInfoVersionMap = getBuildInfoFileVersionMap(buildInfoProgram, buildInfoPath, host);
125406
+ for (const existingRoot of buildInfoVersionMap.roots) {
125407
+ if (!seenRoots.has(existingRoot)) {
125408
+ return {
125409
+ type: 10 /* OutOfDateRoots */,
125410
+ buildInfoFile: buildInfoPath,
125411
+ inputFile: existingRoot
125412
+ };
125413
+ }
125414
+ }
125337
125415
  }
125338
125416
  if (!buildInfoPath) {
125339
125417
  const outputs = getAllProjectOutputs(project, !host.useCaseSensitiveFileNames());
@@ -125415,7 +125493,7 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
125415
125493
  };
125416
125494
  }
125417
125495
  return {
125418
- type: pseudoUpToDate ? 2 /* UpToDateWithUpstreamTypes */ : pseudoInputUpToDate ? 14 /* UpToDateWithInputFileText */ : 1 /* UpToDate */,
125496
+ type: pseudoUpToDate ? 2 /* UpToDateWithUpstreamTypes */ : pseudoInputUpToDate ? 15 /* UpToDateWithInputFileText */ : 1 /* UpToDate */,
125419
125497
  newestInputFileTime,
125420
125498
  newestInputFileName,
125421
125499
  oldestOutputFileName
@@ -125534,7 +125612,7 @@ function queueReferencingProjects(state, project, projectPath, projectIndex, con
125534
125612
  }
125535
125613
  break;
125536
125614
  }
125537
- case 14 /* UpToDateWithInputFileText */:
125615
+ case 15 /* UpToDateWithInputFileText */:
125538
125616
  case 2 /* UpToDateWithUpstreamTypes */:
125539
125617
  case 3 /* OutOfDateWithPrepend */:
125540
125618
  if (!(buildResult & 2 /* DeclarationOutputUnchanged */)) {
@@ -125545,7 +125623,7 @@ function queueReferencingProjects(state, project, projectPath, projectIndex, con
125545
125623
  });
125546
125624
  }
125547
125625
  break;
125548
- case 11 /* UpstreamBlocked */:
125626
+ case 12 /* UpstreamBlocked */:
125549
125627
  if (toResolvedConfigFilePath(state, resolveProjectName(state, status.upstreamProjectName)) === projectPath) {
125550
125628
  clearProjectStatus(state, nextProjectPath);
125551
125629
  }
@@ -125996,6 +126074,14 @@ function reportUpToDateStatus(state, configFileName, status) {
125996
126074
  relName(state, configFileName),
125997
126075
  relName(state, status.buildInfoFile)
125998
126076
  );
126077
+ case 10 /* OutOfDateRoots */:
126078
+ return reportStatus(
126079
+ state,
126080
+ Diagnostics.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more,
126081
+ relName(state, configFileName),
126082
+ relName(state, status.buildInfoFile),
126083
+ relName(state, status.inputFile)
126084
+ );
125999
126085
  case 1 /* UpToDate */:
126000
126086
  if (status.newestInputFileTime !== void 0) {
126001
126087
  return reportStatus(
@@ -126020,20 +126106,20 @@ function reportUpToDateStatus(state, configFileName, status) {
126020
126106
  Diagnostics.Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies,
126021
126107
  relName(state, configFileName)
126022
126108
  );
126023
- case 14 /* UpToDateWithInputFileText */:
126109
+ case 15 /* UpToDateWithInputFileText */:
126024
126110
  return reportStatus(
126025
126111
  state,
126026
126112
  Diagnostics.Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files,
126027
126113
  relName(state, configFileName)
126028
126114
  );
126029
- case 10 /* UpstreamOutOfDate */:
126115
+ case 11 /* UpstreamOutOfDate */:
126030
126116
  return reportStatus(
126031
126117
  state,
126032
126118
  Diagnostics.Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date,
126033
126119
  relName(state, configFileName),
126034
126120
  relName(state, status.upstreamProjectName)
126035
126121
  );
126036
- case 11 /* UpstreamBlocked */:
126122
+ case 12 /* UpstreamBlocked */:
126037
126123
  return reportStatus(
126038
126124
  state,
126039
126125
  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,
@@ -126047,7 +126133,7 @@ function reportUpToDateStatus(state, configFileName, status) {
126047
126133
  relName(state, configFileName),
126048
126134
  status.reason
126049
126135
  );
126050
- case 13 /* TsVersionOutputOfDate */:
126136
+ case 14 /* TsVersionOutputOfDate */:
126051
126137
  return reportStatus(
126052
126138
  state,
126053
126139
  Diagnostics.Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2,
@@ -126055,14 +126141,14 @@ function reportUpToDateStatus(state, configFileName, status) {
126055
126141
  status.version,
126056
126142
  version
126057
126143
  );
126058
- case 16 /* ForceBuild */:
126144
+ case 17 /* ForceBuild */:
126059
126145
  return reportStatus(
126060
126146
  state,
126061
126147
  Diagnostics.Project_0_is_being_forcibly_rebuilt,
126062
126148
  relName(state, configFileName)
126063
126149
  );
126064
- case 15 /* ContainerOnly */:
126065
- case 12 /* ComputingUpstream */:
126150
+ case 16 /* ContainerOnly */:
126151
+ case 13 /* ComputingUpstream */:
126066
126152
  break;
126067
126153
  default:
126068
126154
  assertType(status);
@@ -126912,6 +126998,10 @@ __export(ts_exports3, {
126912
126998
  createPatternMatcher: () => createPatternMatcher,
126913
126999
  createPrependNodes: () => createPrependNodes,
126914
127000
  createPrinter: () => createPrinter,
127001
+ createPrinterWithDefaults: () => createPrinterWithDefaults,
127002
+ createPrinterWithRemoveComments: () => createPrinterWithRemoveComments,
127003
+ createPrinterWithRemoveCommentsNeverAsciiEscape: () => createPrinterWithRemoveCommentsNeverAsciiEscape,
127004
+ createPrinterWithRemoveCommentsOmitTrailingSemicolon: () => createPrinterWithRemoveCommentsOmitTrailingSemicolon,
126915
127005
  createProgram: () => createProgram,
126916
127006
  createProgramHost: () => createProgramHost,
126917
127007
  createPropertyNameNodeForIdentifierOrLiteral: () => createPropertyNameNodeForIdentifierOrLiteral,
@@ -127148,6 +127238,7 @@ __export(ts_exports3, {
127148
127238
  getCommonSourceDirectoryOfConfig: () => getCommonSourceDirectoryOfConfig,
127149
127239
  getCompilerOptionValue: () => getCompilerOptionValue,
127150
127240
  getCompilerOptionsDiffValue: () => getCompilerOptionsDiffValue,
127241
+ getConditions: () => getConditions,
127151
127242
  getConfigFileParsingDiagnostics: () => getConfigFileParsingDiagnostics,
127152
127243
  getConstantValue: () => getConstantValue,
127153
127244
  getContainerNode: () => getContainerNode,
@@ -131004,7 +131095,7 @@ function signatureToDisplayParts(typechecker, signature, enclosingDeclaration, f
131004
131095
  function nodeToDisplayParts(node, enclosingDeclaration) {
131005
131096
  const file = enclosingDeclaration.getSourceFile();
131006
131097
  return mapToDisplayParts((writer) => {
131007
- const printer = createPrinter({ removeComments: true, omitTrailingSemicolon: true });
131098
+ const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();
131008
131099
  printer.writeNode(4 /* Unspecified */, node, file, writer);
131009
131100
  });
131010
131101
  }
@@ -139467,7 +139558,7 @@ function getCallHierarchyItemName(program, node) {
139467
139558
  }
139468
139559
  }
139469
139560
  if (text === void 0) {
139470
- const printer = createPrinter({ removeComments: true, omitTrailingSemicolon: true });
139561
+ const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();
139471
139562
  text = usingSingleLineStringWriter((writer) => printer.writeNode(4 /* Unspecified */, node, node.getSourceFile(), writer));
139472
139563
  }
139473
139564
  return { text, pos: declName.getStart(), end: declName.getEnd() };
@@ -146189,7 +146280,7 @@ function getDeleteAction(context, { name, jsDocHost, jsDocParameterTag }) {
146189
146280
  Diagnostics.Delete_all_unused_param_tags
146190
146281
  );
146191
146282
  }
146192
- function getRenameAction(context, { name, signature, jsDocParameterTag }) {
146283
+ function getRenameAction(context, { name, jsDocHost, signature, jsDocParameterTag }) {
146193
146284
  if (!length(signature.parameters))
146194
146285
  return void 0;
146195
146286
  const sourceFile = context.sourceFile;
@@ -146212,7 +146303,7 @@ function getRenameAction(context, { name, signature, jsDocParameterTag }) {
146212
146303
  jsDocParameterTag.isNameFirst,
146213
146304
  jsDocParameterTag.comment
146214
146305
  );
146215
- const changes = ts_textChanges_exports.ChangeTracker.with(context, (changeTracker) => changeTracker.replaceJSDocComment(sourceFile, signature, map(tags, (t) => t === jsDocParameterTag ? newJSDocParameterTag : t)));
146306
+ const changes = ts_textChanges_exports.ChangeTracker.with(context, (changeTracker) => changeTracker.replaceJSDocComment(sourceFile, jsDocHost, map(tags, (t) => t === jsDocParameterTag ? newJSDocParameterTag : t)));
146216
146307
  return createCodeFixActionWithoutFixAll(renameUnmatchedParameter, changes, [Diagnostics.Rename_param_tag_name_0_to_1, name.getText(sourceFile), parameterName]);
146217
146308
  }
146218
146309
  function getInfo10(sourceFile, pos) {
@@ -157237,8 +157328,7 @@ function provideInlayHints(context) {
157237
157328
  }
157238
157329
  function printTypeInSingleLine(type) {
157239
157330
  const flags = 70221824 /* IgnoreErrors */ | 1048576 /* AllowUniqueESSymbolType */ | 16384 /* UseAliasDefinedOutsideCurrentScope */;
157240
- const options = { removeComments: true };
157241
- const printer = createPrinter(options);
157331
+ const printer = createPrinterWithRemoveComments();
157242
157332
  return usingSingleLineStringWriter((writer) => {
157243
157333
  const typeNode = checker.typeToTypeNode(
157244
157334
  type,
@@ -164169,7 +164259,7 @@ function createTypeHelpItems(symbol, { argumentCount, argumentsSpan: applicableS
164169
164259
  }
164170
164260
  function getTypeHelpItem(symbol, typeParameters, checker, enclosingDeclaration, sourceFile) {
164171
164261
  const typeSymbolDisplay = symbolToDisplayParts(checker, symbol);
164172
- const printer = createPrinter({ removeComments: true });
164262
+ const printer = createPrinterWithRemoveComments();
164173
164263
  const parameters = typeParameters.map((t) => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer));
164174
164264
  const documentation = symbol.getDocumentationComment(checker);
164175
164265
  const tags = symbol.getJsDocTags(checker);
@@ -164213,7 +164303,7 @@ function returnTypeToDisplayParts(candidateSignature, enclosingDeclaration, chec
164213
164303
  }
164214
164304
  function itemInfoForTypeParameters(candidateSignature, checker, enclosingDeclaration, sourceFile) {
164215
164305
  const typeParameters = (candidateSignature.target || candidateSignature).typeParameters;
164216
- const printer = createPrinter({ removeComments: true });
164306
+ const printer = createPrinterWithRemoveComments();
164217
164307
  const parameters = (typeParameters || emptyArray).map((t) => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer));
164218
164308
  const thisParameter = candidateSignature.thisParameter ? [checker.symbolToParameterDeclaration(candidateSignature.thisParameter, enclosingDeclaration, signatureHelpNodeBuilderFlags)] : [];
164219
164309
  return checker.getExpandedParameters(candidateSignature).map((paramList) => {
@@ -164225,7 +164315,7 @@ function itemInfoForTypeParameters(candidateSignature, checker, enclosingDeclara
164225
164315
  });
164226
164316
  }
164227
164317
  function itemInfoForParameters(candidateSignature, checker, enclosingDeclaration, sourceFile) {
164228
- const printer = createPrinter({ removeComments: true });
164318
+ const printer = createPrinterWithRemoveComments();
164229
164319
  const typeParameterParts = mapToDisplayParts((writer) => {
164230
164320
  if (candidateSignature.typeParameters && candidateSignature.typeParameters.length) {
164231
164321
  const args = factory.createNodeArray(candidateSignature.typeParameters.map((p) => checker.typeParameterToDeclaration(p, enclosingDeclaration, signatureHelpNodeBuilderFlags)));
@@ -164600,7 +164690,6 @@ function getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker, symbol, so
164600
164690
  let hasAddedSymbolInfo = false;
164601
164691
  const isThisExpression = location.kind === 108 /* ThisKeyword */ && isInExpressionContext(location) || isThisInTypeQuery(location);
164602
164692
  let type;
164603
- let printer;
164604
164693
  let documentationFromAlias;
164605
164694
  let tagsFromAlias;
164606
164695
  let hasMultipleSignatures = false;
@@ -164993,10 +165082,7 @@ function getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker, symbol, so
164993
165082
  }
164994
165083
  return { displayParts, documentation, symbolKind, tags: tags.length === 0 ? void 0 : tags };
164995
165084
  function getPrinter() {
164996
- if (!printer) {
164997
- printer = createPrinter({ removeComments: true });
164998
- }
164999
- return printer;
165085
+ return createPrinterWithRemoveComments();
165000
165086
  }
165001
165087
  function prefixNextMeaning() {
165002
165088
  if (displayParts.length) {
@@ -181076,6 +181162,10 @@ start(initializeNodeSystem(), require("os").platform());
181076
181162
  createPatternMatcher,
181077
181163
  createPrependNodes,
181078
181164
  createPrinter,
181165
+ createPrinterWithDefaults,
181166
+ createPrinterWithRemoveComments,
181167
+ createPrinterWithRemoveCommentsNeverAsciiEscape,
181168
+ createPrinterWithRemoveCommentsOmitTrailingSemicolon,
181079
181169
  createProgram,
181080
181170
  createProgramHost,
181081
181171
  createPropertyNameNodeForIdentifierOrLiteral,
@@ -181312,6 +181402,7 @@ start(initializeNodeSystem(), require("os").platform());
181312
181402
  getCommonSourceDirectoryOfConfig,
181313
181403
  getCompilerOptionValue,
181314
181404
  getCompilerOptionsDiffValue,
181405
+ getConditions,
181315
181406
  getConfigFileParsingDiagnostics,
181316
181407
  getConstantValue,
181317
181408
  getContainerNode,