typescript 5.0.0-dev.20230126 → 5.0.0-dev.20230128

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
@@ -669,6 +669,7 @@ __export(server_exports, {
669
669
  getCommonSourceDirectoryOfConfig: () => getCommonSourceDirectoryOfConfig,
670
670
  getCompilerOptionValue: () => getCompilerOptionValue,
671
671
  getCompilerOptionsDiffValue: () => getCompilerOptionsDiffValue,
672
+ getConditions: () => getConditions,
672
673
  getConfigFileParsingDiagnostics: () => getConfigFileParsingDiagnostics,
673
674
  getConstantValue: () => getConstantValue,
674
675
  getContainerNode: () => getContainerNode,
@@ -2377,7 +2378,7 @@ __export(ts_server_exports3, {
2377
2378
 
2378
2379
  // src/compiler/corePublic.ts
2379
2380
  var versionMajorMinor = "5.0";
2380
- var version = `${versionMajorMinor}.0-dev.20230126`;
2381
+ var version = `${versionMajorMinor}.0-dev.20230128`;
2381
2382
  var Comparison = /* @__PURE__ */ ((Comparison3) => {
2382
2383
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
2383
2384
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -10534,7 +10535,7 @@ var Diagnostics = {
10534
10535
  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}'."),
10535
10536
  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}."),
10536
10537
  File_0_does_not_exist: diag(6096, 3 /* Message */, "File_0_does_not_exist_6096", "File '{0}' does not exist."),
10537
- File_0_exist_use_it_as_a_name_resolution_result: diag(6097, 3 /* Message */, "File_0_exist_use_it_as_a_name_resolution_result_6097", "File '{0}' exist - use it as a name resolution result."),
10538
+ 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."),
10538
10539
  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}."),
10539
10540
  Found_package_json_at_0: diag(6099, 3 /* Message */, "Found_package_json_at_0_6099", "Found 'package.json' at '{0}'."),
10540
10541
  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."),
@@ -10824,6 +10825,7 @@ var Diagnostics = {
10824
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."),
10825
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."),
10826
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."),
10827
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}'"),
10828
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."),
10829
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."),
@@ -38170,7 +38172,7 @@ var commandOptionsWithoutBuild = [
38170
38172
  {
38171
38173
  name: "allowArbitraryExtensions",
38172
38174
  type: "boolean",
38173
- affectsModuleResolution: true,
38175
+ affectsProgramStructure: true,
38174
38176
  category: Diagnostics.Modules,
38175
38177
  description: Diagnostics.Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present,
38176
38178
  defaultValueDescription: false
@@ -41772,7 +41774,7 @@ function tryFileLookup(fileName, onlyRecordFailures, state) {
41772
41774
  if (!onlyRecordFailures) {
41773
41775
  if (state.host.fileExists(fileName)) {
41774
41776
  if (state.traceEnabled) {
41775
- trace(state.host, Diagnostics.File_0_exist_use_it_as_a_name_resolution_result, fileName);
41777
+ trace(state.host, Diagnostics.File_0_exists_use_it_as_a_name_resolution_result, fileName);
41776
41778
  }
41777
41779
  return fileName;
41778
41780
  } else {
@@ -46483,8 +46485,8 @@ function tryGetModuleNameAsNodeModule({ path, isRedirect }, { getCanonicalFileNa
46483
46485
  if (typeof cachedPackageJson === "object" || cachedPackageJson === void 0 && host.fileExists(packageJsonPath)) {
46484
46486
  const packageJsonContent = (cachedPackageJson == null ? void 0 : cachedPackageJson.contents.packageJsonContent) || JSON.parse(host.readFile(packageJsonPath));
46485
46487
  const importMode = overrideMode || importingSourceFile.impliedNodeFormat;
46486
- if (getEmitModuleResolutionKind(options) === 3 /* Node16 */ || getEmitModuleResolutionKind(options) === 99 /* NodeNext */) {
46487
- const conditions = ["node", importMode === 99 /* ESNext */ ? "import" : "require", "types"];
46488
+ if (getResolvePackageJsonExports(options)) {
46489
+ const conditions = getConditions(options, importMode === 99 /* ESNext */);
46488
46490
  const fromExports = packageJsonContent.exports && typeof packageJsonContent.name === "string" ? tryGetModuleNameFromExports(options, path, packageRootPath, getPackageNameFromTypesPackageName(packageJsonContent.name), packageJsonContent.exports, conditions) : void 0;
46489
46491
  if (fromExports) {
46490
46492
  const withJsExtension = !hasTSFileExtension(fromExports.moduleFileToTry) ? fromExports : { moduleFileToTry: removeFileExtension(fromExports.moduleFileToTry) + tryGetJSExtensionForFile(fromExports.moduleFileToTry, options) };
@@ -82943,7 +82945,7 @@ function createTypeChecker(host) {
82943
82945
  const isIllegalExportDefaultInCJS = !node.isExportEquals && !(node.flags & 16777216 /* Ambient */) && compilerOptions.verbatimModuleSyntax && (moduleKind === 1 /* CommonJS */ || getSourceFileOfNode(node).impliedNodeFormat === 1 /* CommonJS */);
82944
82946
  if (node.expression.kind === 79 /* Identifier */) {
82945
82947
  const id = node.expression;
82946
- const sym = resolveEntityName(
82948
+ const sym = getExportSymbolOfValueSymbolIfExported(resolveEntityName(
82947
82949
  id,
82948
82950
  67108863 /* All */,
82949
82951
  /*ignoreErrors*/
@@ -82951,7 +82953,7 @@ function createTypeChecker(host) {
82951
82953
  /*dontResolveAlias*/
82952
82954
  true,
82953
82955
  node
82954
- );
82956
+ ));
82955
82957
  if (sym) {
82956
82958
  markAliasReferenced(sym, id);
82957
82959
  if (getAllSymbolFlags(sym) & 111551 /* Value */) {
@@ -111141,10 +111143,10 @@ function emitUsingBuildInfoWorker(config, host, getCommandLine, customTransforme
111141
111143
  );
111142
111144
  return outputFiles;
111143
111145
  }
111144
- var createPrinterWithDefaults = memoize(() => createPrinter({}));
111145
- var createPrinterWithRemoveComments = memoize(() => createPrinter({ removeComments: true }));
111146
- var createPrinterWithRemoveCommentsNeverAsciiEscape = memoize(() => createPrinter({ removeComments: true, neverAsciiEscape: true }));
111147
- var createPrinterWithRemoveCommentsOmitTrailingSemicolon = memoize(() => createPrinter({ removeComments: true, omitTrailingSemicolon: true }));
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 }));
111148
111150
  function createPrinter(printerOptions = {}, handlers = {}) {
111149
111151
  const {
111150
111152
  hasGlobalName,
@@ -121162,14 +121164,17 @@ function getBuildInfo2(state, bundle) {
121162
121164
  const latestChangedDtsFile = state.latestChangedDtsFile ? relativeToBuildInfoEnsuringAbsolutePath(state.latestChangedDtsFile) : void 0;
121163
121165
  const fileNames = [];
121164
121166
  const fileNameToFileId = /* @__PURE__ */ new Map();
121167
+ const root = [];
121165
121168
  if (outFile(state.compilerOptions)) {
121166
121169
  const fileInfos2 = arrayFrom(state.fileInfos.entries(), ([key, value]) => {
121167
- toFileId(key);
121170
+ const fileId = toFileId(key);
121171
+ tryAddRoot(key, fileId);
121168
121172
  return value.impliedFormat ? { version: value.version, impliedFormat: value.impliedFormat, signature: void 0, affectsGlobalScope: void 0 } : value.version;
121169
121173
  });
121170
121174
  const program2 = {
121171
121175
  fileNames,
121172
121176
  fileInfos: fileInfos2,
121177
+ root,
121173
121178
  options: convertToProgramBuildInfoCompilerOptions(state.compilerOptions),
121174
121179
  outSignature: state.outSignature,
121175
121180
  latestChangedDtsFile,
@@ -121197,6 +121202,7 @@ function getBuildInfo2(state, bundle) {
121197
121202
  const fileInfos = arrayFrom(state.fileInfos.entries(), ([key, value]) => {
121198
121203
  var _a3, _b2;
121199
121204
  const fileId = toFileId(key);
121205
+ tryAddRoot(key, fileId);
121200
121206
  Debug.assert(fileNames[fileId - 1] === relativeToBuildInfo(key));
121201
121207
  const oldSignature = (_a3 = state.oldSignatures) == null ? void 0 : _a3.get(key);
121202
121208
  const actualSignature = oldSignature !== void 0 ? oldSignature || void 0 : value.signature;
@@ -121296,6 +121302,7 @@ function getBuildInfo2(state, bundle) {
121296
121302
  const program = {
121297
121303
  fileNames,
121298
121304
  fileInfos,
121305
+ root,
121299
121306
  options: convertToProgramBuildInfoCompilerOptions(state.compilerOptions),
121300
121307
  fileIdsList,
121301
121308
  referencedMap,
@@ -121331,6 +121338,24 @@ function getBuildInfo2(state, bundle) {
121331
121338
  }
121332
121339
  return fileIdListId;
121333
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
+ }
121334
121359
  function convertToProgramBuildInfoCompilerOptions(options) {
121335
121360
  let result;
121336
121361
  const { optionsNameMap } = getOptionsNameMap();
@@ -121843,12 +121868,28 @@ function getBuildInfoFileVersionMap(program, buildInfoPath, host) {
121843
121868
  const buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(buildInfoPath, host.getCurrentDirectory()));
121844
121869
  const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames());
121845
121870
  const fileInfos = /* @__PURE__ */ new Map();
121871
+ let rootIndex = 0;
121872
+ const roots = [];
121846
121873
  program.fileInfos.forEach((fileInfo, index) => {
121847
121874
  const path = toPath(program.fileNames[index], buildInfoDirectory, getCanonicalFileName);
121848
121875
  const version2 = isString(fileInfo) ? fileInfo : fileInfo.version;
121849
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
+ }
121850
121891
  });
121851
- return fileInfos;
121892
+ return { fileInfos, roots };
121852
121893
  }
121853
121894
  function createRedirectedBuilderProgram(getState, configFileParsingDiagnostics) {
121854
121895
  return {
@@ -124118,13 +124159,14 @@ var UpToDateStatusType = /* @__PURE__ */ ((UpToDateStatusType2) => {
124118
124159
  UpToDateStatusType2[UpToDateStatusType2["OutOfDateWithUpstream"] = 7] = "OutOfDateWithUpstream";
124119
124160
  UpToDateStatusType2[UpToDateStatusType2["OutOfDateBuildInfo"] = 8] = "OutOfDateBuildInfo";
124120
124161
  UpToDateStatusType2[UpToDateStatusType2["OutOfDateOptions"] = 9] = "OutOfDateOptions";
124121
- UpToDateStatusType2[UpToDateStatusType2["UpstreamOutOfDate"] = 10] = "UpstreamOutOfDate";
124122
- UpToDateStatusType2[UpToDateStatusType2["UpstreamBlocked"] = 11] = "UpstreamBlocked";
124123
- UpToDateStatusType2[UpToDateStatusType2["ComputingUpstream"] = 12] = "ComputingUpstream";
124124
- UpToDateStatusType2[UpToDateStatusType2["TsVersionOutputOfDate"] = 13] = "TsVersionOutputOfDate";
124125
- UpToDateStatusType2[UpToDateStatusType2["UpToDateWithInputFileText"] = 14] = "UpToDateWithInputFileText";
124126
- UpToDateStatusType2[UpToDateStatusType2["ContainerOnly"] = 15] = "ContainerOnly";
124127
- 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";
124128
124170
  return UpToDateStatusType2;
124129
124171
  })(UpToDateStatusType || {});
124130
124172
  function resolveConfigFileProjectName(project) {
@@ -125018,7 +125060,7 @@ function getNextInvalidatedProjectCreateInfo(state, buildOrder, reportQueue) {
125018
125060
  }
125019
125061
  continue;
125020
125062
  }
125021
- if (status.type === 2 /* UpToDateWithUpstreamTypes */ || status.type === 14 /* UpToDateWithInputFileText */) {
125063
+ if (status.type === 2 /* UpToDateWithUpstreamTypes */ || status.type === 15 /* UpToDateWithInputFileText */) {
125022
125064
  reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));
125023
125065
  return {
125024
125066
  kind: 2 /* UpdateOutputFileStamps */,
@@ -125030,7 +125072,7 @@ function getNextInvalidatedProjectCreateInfo(state, buildOrder, reportQueue) {
125030
125072
  };
125031
125073
  }
125032
125074
  }
125033
- if (status.type === 11 /* UpstreamBlocked */) {
125075
+ if (status.type === 12 /* UpstreamBlocked */) {
125034
125076
  verboseReportProjectStatus(state, project, status);
125035
125077
  reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));
125036
125078
  projectPendingBuild.delete(projectPath);
@@ -125044,7 +125086,7 @@ function getNextInvalidatedProjectCreateInfo(state, buildOrder, reportQueue) {
125044
125086
  }
125045
125087
  continue;
125046
125088
  }
125047
- if (status.type === 15 /* ContainerOnly */) {
125089
+ if (status.type === 16 /* ContainerOnly */) {
125048
125090
  verboseReportProjectStatus(state, project, status);
125049
125091
  reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));
125050
125092
  projectPendingBuild.delete(projectPath);
@@ -125231,31 +125273,31 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
125231
125273
  var _a2, _b;
125232
125274
  if (!project.fileNames.length && !canJsonReportNoInputFiles(project.raw)) {
125233
125275
  return {
125234
- type: 15 /* ContainerOnly */
125276
+ type: 16 /* ContainerOnly */
125235
125277
  };
125236
125278
  }
125237
125279
  let referenceStatuses;
125238
125280
  const force = !!state.options.force;
125239
125281
  if (project.projectReferences) {
125240
- state.projectStatus.set(resolvedPath, { type: 12 /* ComputingUpstream */ });
125282
+ state.projectStatus.set(resolvedPath, { type: 13 /* ComputingUpstream */ });
125241
125283
  for (const ref of project.projectReferences) {
125242
125284
  const resolvedRef = resolveProjectReferencePath(ref);
125243
125285
  const resolvedRefPath = toResolvedConfigFilePath(state, resolvedRef);
125244
125286
  const resolvedConfig = parseConfigFile(state, resolvedRef, resolvedRefPath);
125245
125287
  const refStatus = getUpToDateStatus(state, resolvedConfig, resolvedRefPath);
125246
- if (refStatus.type === 12 /* ComputingUpstream */ || refStatus.type === 15 /* ContainerOnly */) {
125288
+ if (refStatus.type === 13 /* ComputingUpstream */ || refStatus.type === 16 /* ContainerOnly */) {
125247
125289
  continue;
125248
125290
  }
125249
- if (refStatus.type === 0 /* Unbuildable */ || refStatus.type === 11 /* UpstreamBlocked */) {
125291
+ if (refStatus.type === 0 /* Unbuildable */ || refStatus.type === 12 /* UpstreamBlocked */) {
125250
125292
  return {
125251
- type: 11 /* UpstreamBlocked */,
125293
+ type: 12 /* UpstreamBlocked */,
125252
125294
  upstreamProjectName: ref.path,
125253
- upstreamProjectBlocked: refStatus.type === 11 /* UpstreamBlocked */
125295
+ upstreamProjectBlocked: refStatus.type === 12 /* UpstreamBlocked */
125254
125296
  };
125255
125297
  }
125256
125298
  if (refStatus.type !== 1 /* UpToDate */) {
125257
125299
  return {
125258
- type: 10 /* UpstreamOutOfDate */,
125300
+ type: 11 /* UpstreamOutOfDate */,
125259
125301
  upstreamProjectName: ref.path
125260
125302
  };
125261
125303
  }
@@ -125264,7 +125306,7 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
125264
125306
  }
125265
125307
  }
125266
125308
  if (force)
125267
- return { type: 16 /* ForceBuild */ };
125309
+ return { type: 17 /* ForceBuild */ };
125268
125310
  const { host } = state;
125269
125311
  const buildInfoPath = getTsBuildInfoEmitOutputFilePath(project.options);
125270
125312
  let oldestOutputFileName;
@@ -125297,7 +125339,7 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
125297
125339
  }
125298
125340
  if ((buildInfo.bundle || buildInfo.program) && buildInfo.version !== version) {
125299
125341
  return {
125300
- type: 13 /* TsVersionOutputOfDate */,
125342
+ type: 14 /* TsVersionOutputOfDate */,
125301
125343
  version: buildInfo.version
125302
125344
  };
125303
125345
  }
@@ -125322,6 +125364,7 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
125322
125364
  let newestInputFileName = void 0;
125323
125365
  let newestInputFileTime = minimumDate;
125324
125366
  let pseudoInputUpToDate = false;
125367
+ const seenRoots = /* @__PURE__ */ new Set();
125325
125368
  for (const inputFile of project.fileNames) {
125326
125369
  const inputTime = getModifiedTime2(state, inputFile);
125327
125370
  if (inputTime === missingFileModifiedTime) {
@@ -125336,7 +125379,7 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
125336
125379
  if (buildInfoProgram) {
125337
125380
  if (!buildInfoVersionMap)
125338
125381
  buildInfoVersionMap = getBuildInfoFileVersionMap(buildInfoProgram, buildInfoPath, host);
125339
- version2 = buildInfoVersionMap.get(toPath2(state, inputFile));
125382
+ version2 = buildInfoVersionMap.fileInfos.get(toPath2(state, inputFile));
125340
125383
  const text = version2 ? state.readFileWithCache(inputFile) : void 0;
125341
125384
  currentVersion = text !== void 0 ? getSourceFileVersionAsHashFromText(host, text) : void 0;
125342
125385
  if (version2 && version2 === currentVersion)
@@ -125354,6 +125397,21 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
125354
125397
  newestInputFileName = inputFile;
125355
125398
  newestInputFileTime = inputTime;
125356
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
+ }
125357
125415
  }
125358
125416
  if (!buildInfoPath) {
125359
125417
  const outputs = getAllProjectOutputs(project, !host.useCaseSensitiveFileNames());
@@ -125435,7 +125493,7 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
125435
125493
  };
125436
125494
  }
125437
125495
  return {
125438
- type: pseudoUpToDate ? 2 /* UpToDateWithUpstreamTypes */ : pseudoInputUpToDate ? 14 /* UpToDateWithInputFileText */ : 1 /* UpToDate */,
125496
+ type: pseudoUpToDate ? 2 /* UpToDateWithUpstreamTypes */ : pseudoInputUpToDate ? 15 /* UpToDateWithInputFileText */ : 1 /* UpToDate */,
125439
125497
  newestInputFileTime,
125440
125498
  newestInputFileName,
125441
125499
  oldestOutputFileName
@@ -125554,7 +125612,7 @@ function queueReferencingProjects(state, project, projectPath, projectIndex, con
125554
125612
  }
125555
125613
  break;
125556
125614
  }
125557
- case 14 /* UpToDateWithInputFileText */:
125615
+ case 15 /* UpToDateWithInputFileText */:
125558
125616
  case 2 /* UpToDateWithUpstreamTypes */:
125559
125617
  case 3 /* OutOfDateWithPrepend */:
125560
125618
  if (!(buildResult & 2 /* DeclarationOutputUnchanged */)) {
@@ -125565,7 +125623,7 @@ function queueReferencingProjects(state, project, projectPath, projectIndex, con
125565
125623
  });
125566
125624
  }
125567
125625
  break;
125568
- case 11 /* UpstreamBlocked */:
125626
+ case 12 /* UpstreamBlocked */:
125569
125627
  if (toResolvedConfigFilePath(state, resolveProjectName(state, status.upstreamProjectName)) === projectPath) {
125570
125628
  clearProjectStatus(state, nextProjectPath);
125571
125629
  }
@@ -126016,6 +126074,14 @@ function reportUpToDateStatus(state, configFileName, status) {
126016
126074
  relName(state, configFileName),
126017
126075
  relName(state, status.buildInfoFile)
126018
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
+ );
126019
126085
  case 1 /* UpToDate */:
126020
126086
  if (status.newestInputFileTime !== void 0) {
126021
126087
  return reportStatus(
@@ -126040,20 +126106,20 @@ function reportUpToDateStatus(state, configFileName, status) {
126040
126106
  Diagnostics.Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies,
126041
126107
  relName(state, configFileName)
126042
126108
  );
126043
- case 14 /* UpToDateWithInputFileText */:
126109
+ case 15 /* UpToDateWithInputFileText */:
126044
126110
  return reportStatus(
126045
126111
  state,
126046
126112
  Diagnostics.Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files,
126047
126113
  relName(state, configFileName)
126048
126114
  );
126049
- case 10 /* UpstreamOutOfDate */:
126115
+ case 11 /* UpstreamOutOfDate */:
126050
126116
  return reportStatus(
126051
126117
  state,
126052
126118
  Diagnostics.Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date,
126053
126119
  relName(state, configFileName),
126054
126120
  relName(state, status.upstreamProjectName)
126055
126121
  );
126056
- case 11 /* UpstreamBlocked */:
126122
+ case 12 /* UpstreamBlocked */:
126057
126123
  return reportStatus(
126058
126124
  state,
126059
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,
@@ -126067,7 +126133,7 @@ function reportUpToDateStatus(state, configFileName, status) {
126067
126133
  relName(state, configFileName),
126068
126134
  status.reason
126069
126135
  );
126070
- case 13 /* TsVersionOutputOfDate */:
126136
+ case 14 /* TsVersionOutputOfDate */:
126071
126137
  return reportStatus(
126072
126138
  state,
126073
126139
  Diagnostics.Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2,
@@ -126075,14 +126141,14 @@ function reportUpToDateStatus(state, configFileName, status) {
126075
126141
  status.version,
126076
126142
  version
126077
126143
  );
126078
- case 16 /* ForceBuild */:
126144
+ case 17 /* ForceBuild */:
126079
126145
  return reportStatus(
126080
126146
  state,
126081
126147
  Diagnostics.Project_0_is_being_forcibly_rebuilt,
126082
126148
  relName(state, configFileName)
126083
126149
  );
126084
- case 15 /* ContainerOnly */:
126085
- case 12 /* ComputingUpstream */:
126150
+ case 16 /* ContainerOnly */:
126151
+ case 13 /* ComputingUpstream */:
126086
126152
  break;
126087
126153
  default:
126088
126154
  assertType(status);
@@ -127172,6 +127238,7 @@ __export(ts_exports3, {
127172
127238
  getCommonSourceDirectoryOfConfig: () => getCommonSourceDirectoryOfConfig,
127173
127239
  getCompilerOptionValue: () => getCompilerOptionValue,
127174
127240
  getCompilerOptionsDiffValue: () => getCompilerOptionsDiffValue,
127241
+ getConditions: () => getConditions,
127175
127242
  getConfigFileParsingDiagnostics: () => getConfigFileParsingDiagnostics,
127176
127243
  getConstantValue: () => getConstantValue,
127177
127244
  getContainerNode: () => getContainerNode,
@@ -181335,6 +181402,7 @@ start(initializeNodeSystem(), require("os").platform());
181335
181402
  getCommonSourceDirectoryOfConfig,
181336
181403
  getCompilerOptionValue,
181337
181404
  getCompilerOptionsDiffValue,
181405
+ getConditions,
181338
181406
  getConfigFileParsingDiagnostics,
181339
181407
  getConstantValue,
181340
181408
  getContainerNode,