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.
@@ -42,7 +42,7 @@ var ts = (() => {
42
42
  "src/compiler/corePublic.ts"() {
43
43
  "use strict";
44
44
  versionMajorMinor = "5.0";
45
- version = `${versionMajorMinor}.0-dev.20230125`;
45
+ version = `${versionMajorMinor}.0-dev.20230127`;
46
46
  Comparison = /* @__PURE__ */ ((Comparison3) => {
47
47
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
48
48
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -8564,6 +8564,7 @@ ${lanes.join("\n")}
8564
8564
  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."),
8565
8565
  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."),
8566
8566
  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`."),
8567
+ 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."),
8567
8568
  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}'"),
8568
8569
  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."),
8569
8570
  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."),
@@ -13247,6 +13248,20 @@ ${lanes.join("\n")}
13247
13248
  BigUint64Array: ["at"],
13248
13249
  ObjectConstructor: ["hasOwn"],
13249
13250
  Error: ["cause"]
13251
+ },
13252
+ es2023: {
13253
+ Array: ["findLastIndex", "findLast"],
13254
+ Int8Array: ["findLastIndex", "findLast"],
13255
+ Uint8Array: ["findLastIndex", "findLast"],
13256
+ Uint8ClampedArray: ["findLastIndex", "findLast"],
13257
+ Int16Array: ["findLastIndex", "findLast"],
13258
+ Uint16Array: ["findLastIndex", "findLast"],
13259
+ Int32Array: ["findLastIndex", "findLast"],
13260
+ Uint32Array: ["findLastIndex", "findLast"],
13261
+ Float32Array: ["findLastIndex", "findLast"],
13262
+ Float64Array: ["findLastIndex", "findLast"],
13263
+ BigInt64Array: ["findLastIndex", "findLast"],
13264
+ BigUint64Array: ["findLastIndex", "findLast"]
13250
13265
  }
13251
13266
  };
13252
13267
  }
@@ -37726,7 +37741,7 @@ ${lanes.join("\n")}
37726
37741
  {
37727
37742
  name: "allowArbitraryExtensions",
37728
37743
  type: "boolean",
37729
- affectsModuleResolution: true,
37744
+ affectsProgramStructure: true,
37730
37745
  category: Diagnostics.Modules,
37731
37746
  description: Diagnostics.Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present,
37732
37747
  defaultValueDescription: false
@@ -44293,8 +44308,8 @@ ${lanes.join("\n")}
44293
44308
  if (typeof cachedPackageJson === "object" || cachedPackageJson === void 0 && host.fileExists(packageJsonPath)) {
44294
44309
  const packageJsonContent = (cachedPackageJson == null ? void 0 : cachedPackageJson.contents.packageJsonContent) || JSON.parse(host.readFile(packageJsonPath));
44295
44310
  const importMode = overrideMode || importingSourceFile.impliedNodeFormat;
44296
- if (getEmitModuleResolutionKind(options) === 3 /* Node16 */ || getEmitModuleResolutionKind(options) === 99 /* NodeNext */) {
44297
- const conditions = ["node", importMode === 99 /* ESNext */ ? "import" : "require", "types"];
44311
+ if (getResolvePackageJsonExports(options)) {
44312
+ const conditions = getConditions(options, importMode === 99 /* ESNext */);
44298
44313
  const fromExports = packageJsonContent.exports && typeof packageJsonContent.name === "string" ? tryGetModuleNameFromExports(options, path, packageRootPath, getPackageNameFromTypesPackageName(packageJsonContent.name), packageJsonContent.exports, conditions) : void 0;
44299
44314
  if (fromExports) {
44300
44315
  const withJsExtension = !hasTSFileExtension(fromExports.moduleFileToTry) ? fromExports : { moduleFileToTry: removeFileExtension(fromExports.moduleFileToTry) + tryGetJSExtensionForFile(fromExports.moduleFileToTry, options) };
@@ -48708,7 +48723,7 @@ ${lanes.join("\n")}
48708
48723
  return writer ? symbolToStringWorker(writer).getText() : usingSingleLineStringWriter(symbolToStringWorker);
48709
48724
  function symbolToStringWorker(writer2) {
48710
48725
  const entity = builder(symbol, meaning, enclosingDeclaration, nodeFlags);
48711
- const printer = (enclosingDeclaration == null ? void 0 : enclosingDeclaration.kind) === 308 /* SourceFile */ ? createPrinter({ removeComments: true, neverAsciiEscape: true }) : createPrinter({ removeComments: true });
48726
+ const printer = (enclosingDeclaration == null ? void 0 : enclosingDeclaration.kind) === 308 /* SourceFile */ ? createPrinterWithRemoveCommentsNeverAsciiEscape() : createPrinterWithRemoveComments();
48712
48727
  const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
48713
48728
  printer.writeNode(
48714
48729
  4 /* Unspecified */,
@@ -48730,7 +48745,7 @@ ${lanes.join("\n")}
48730
48745
  sigOutput = kind === 1 /* Construct */ ? 177 /* ConstructSignature */ : 176 /* CallSignature */;
48731
48746
  }
48732
48747
  const sig = nodeBuilder.signatureToSignatureDeclaration(signature, sigOutput, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | 512 /* WriteTypeParametersInQualifiedName */);
48733
- const printer = createPrinter({ removeComments: true, omitTrailingSemicolon: true });
48748
+ const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();
48734
48749
  const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
48735
48750
  printer.writeNode(
48736
48751
  4 /* Unspecified */,
@@ -48747,8 +48762,7 @@ ${lanes.join("\n")}
48747
48762
  const typeNode = nodeBuilder.typeToTypeNode(type, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | (noTruncation ? 1 /* NoTruncation */ : 0));
48748
48763
  if (typeNode === void 0)
48749
48764
  return Debug.fail("should always get typenode");
48750
- const options = { removeComments: type !== unresolvedType };
48751
- const printer = createPrinter(options);
48765
+ const printer = type !== unresolvedType ? createPrinterWithRemoveComments() : createPrinterWithDefaults();
48752
48766
  const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
48753
48767
  printer.writeNode(
48754
48768
  4 /* Unspecified */,
@@ -52099,7 +52113,7 @@ ${lanes.join("\n")}
52099
52113
  typePredicate.type && nodeBuilder.typeToTypeNode(typePredicate.type, enclosingDeclaration, toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | 512 /* WriteTypeParametersInQualifiedName */)
52100
52114
  // TODO: GH#18217
52101
52115
  );
52102
- const printer = createPrinter({ removeComments: true });
52116
+ const printer = createPrinterWithRemoveComments();
52103
52117
  const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);
52104
52118
  printer.writeNode(
52105
52119
  4 /* Unspecified */,
@@ -67127,7 +67141,7 @@ ${lanes.join("\n")}
67127
67141
  return getNonMissingTypeOfSymbol(symbol);
67128
67142
  }
67129
67143
  function getControlFlowContainer(node) {
67130
- 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 */);
67144
+ return findAncestor(node.parent, (node2) => isFunctionLike(node2) && !getImmediatelyInvokedFunctionExpression(node2) || node2.kind === 265 /* ModuleBlock */ || node2.kind === 308 /* SourceFile */ || node2.kind === 169 /* PropertyDeclaration */);
67131
67145
  }
67132
67146
  function isSymbolAssigned(symbol) {
67133
67147
  if (!symbol.valueDeclaration) {
@@ -67388,14 +67402,13 @@ ${lanes.join("\n")}
67388
67402
  const isParameter2 = getRootDeclaration(declaration).kind === 166 /* Parameter */;
67389
67403
  const declarationContainer = getControlFlowContainer(declaration);
67390
67404
  let flowContainer = getControlFlowContainer(node);
67391
- const isCatch = flowContainer.kind === 295 /* CatchClause */;
67392
67405
  const isOuterVariable = flowContainer !== declarationContainer;
67393
67406
  const isSpreadDestructuringAssignmentTarget = node.parent && node.parent.parent && isSpreadAssignment(node.parent) && isDestructuringAssignmentTarget(node.parent.parent);
67394
67407
  const isModuleExports = symbol.flags & 134217728 /* ModuleExports */;
67395
67408
  while (flowContainer !== declarationContainer && (flowContainer.kind === 215 /* FunctionExpression */ || flowContainer.kind === 216 /* ArrowFunction */ || isObjectLiteralOrClassExpressionMethodOrAccessor(flowContainer)) && (isConstVariable(localOrExportSymbol) && type !== autoArrayType || isParameter2 && !isSymbolAssigned(localOrExportSymbol))) {
67396
67409
  flowContainer = getControlFlowContainer(flowContainer);
67397
67410
  }
67398
- 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 */;
67411
+ 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 */;
67399
67412
  const initialType = assumeInitialized ? isParameter2 ? removeOptionalityFromDeclaredType(type, declaration) : type : type === autoType || type === autoArrayType ? undefinedType : getOptionalType(type);
67400
67413
  const flowType = getFlowTypeOfReference(node, type, initialType, flowContainer);
67401
67414
  if (!isEvolvingArrayOperationTarget(node) && (type === autoType || type === autoArrayType)) {
@@ -80655,7 +80668,7 @@ ${lanes.join("\n")}
80655
80668
  if (typeAnnotationNode) {
80656
80669
  checkTypeAssignableTo(checkExpressionCached(node.expression), getTypeFromTypeNode(typeAnnotationNode), node.expression);
80657
80670
  }
80658
- const isIllegalExportDefaultInCJS = !node.isExportEquals && compilerOptions.verbatimModuleSyntax && (moduleKind === 1 /* CommonJS */ || getSourceFileOfNode(node).impliedNodeFormat === 1 /* CommonJS */);
80671
+ const isIllegalExportDefaultInCJS = !node.isExportEquals && !(node.flags & 16777216 /* Ambient */) && compilerOptions.verbatimModuleSyntax && (moduleKind === 1 /* CommonJS */ || getSourceFileOfNode(node).impliedNodeFormat === 1 /* CommonJS */);
80659
80672
  if (node.expression.kind === 79 /* Identifier */) {
80660
80673
  const id = node.expression;
80661
80674
  const sym = resolveEntityName(
@@ -113784,7 +113797,7 @@ ${lanes.join("\n")}
113784
113797
  function getEmitListItem(emit, parenthesizerRule) {
113785
113798
  return emit.length === 1 ? emitListItemNoParenthesizer : typeof parenthesizerRule === "object" ? emitListItemWithParenthesizerRuleSelector : emitListItemWithParenthesizerRule;
113786
113799
  }
113787
- var brackets, notImplementedResolver, TempFlags;
113800
+ var brackets, notImplementedResolver, createPrinterWithDefaults, createPrinterWithRemoveComments, createPrinterWithRemoveCommentsNeverAsciiEscape, createPrinterWithRemoveCommentsOmitTrailingSemicolon, TempFlags;
113788
113801
  var init_emitter = __esm({
113789
113802
  "src/compiler/emitter.ts"() {
113790
113803
  "use strict";
@@ -113835,6 +113848,10 @@ ${lanes.join("\n")}
113835
113848
  getDeclarationStatementsForSourceFile: notImplemented,
113836
113849
  isImportRequiredByAugmentation: notImplemented
113837
113850
  };
113851
+ createPrinterWithDefaults = /* @__PURE__ */ memoize(() => createPrinter({}));
113852
+ createPrinterWithRemoveComments = /* @__PURE__ */ memoize(() => createPrinter({ removeComments: true }));
113853
+ createPrinterWithRemoveCommentsNeverAsciiEscape = /* @__PURE__ */ memoize(() => createPrinter({ removeComments: true, neverAsciiEscape: true }));
113854
+ createPrinterWithRemoveCommentsOmitTrailingSemicolon = /* @__PURE__ */ memoize(() => createPrinter({ removeComments: true, omitTrailingSemicolon: true }));
113838
113855
  TempFlags = /* @__PURE__ */ ((TempFlags2) => {
113839
113856
  TempFlags2[TempFlags2["Auto"] = 0] = "Auto";
113840
113857
  TempFlags2[TempFlags2["CountMask"] = 268435455] = "CountMask";
@@ -119213,14 +119230,17 @@ ${lanes.join("\n")}
119213
119230
  const latestChangedDtsFile = state.latestChangedDtsFile ? relativeToBuildInfoEnsuringAbsolutePath(state.latestChangedDtsFile) : void 0;
119214
119231
  const fileNames = [];
119215
119232
  const fileNameToFileId = /* @__PURE__ */ new Map();
119233
+ const root = [];
119216
119234
  if (outFile(state.compilerOptions)) {
119217
119235
  const fileInfos2 = arrayFrom(state.fileInfos.entries(), ([key, value]) => {
119218
- toFileId(key);
119236
+ const fileId = toFileId(key);
119237
+ tryAddRoot(key, fileId);
119219
119238
  return value.impliedFormat ? { version: value.version, impliedFormat: value.impliedFormat, signature: void 0, affectsGlobalScope: void 0 } : value.version;
119220
119239
  });
119221
119240
  const program2 = {
119222
119241
  fileNames,
119223
119242
  fileInfos: fileInfos2,
119243
+ root,
119224
119244
  options: convertToProgramBuildInfoCompilerOptions(state.compilerOptions),
119225
119245
  outSignature: state.outSignature,
119226
119246
  latestChangedDtsFile,
@@ -119248,6 +119268,7 @@ ${lanes.join("\n")}
119248
119268
  const fileInfos = arrayFrom(state.fileInfos.entries(), ([key, value]) => {
119249
119269
  var _a3, _b2;
119250
119270
  const fileId = toFileId(key);
119271
+ tryAddRoot(key, fileId);
119251
119272
  Debug.assert(fileNames[fileId - 1] === relativeToBuildInfo(key));
119252
119273
  const oldSignature = (_a3 = state.oldSignatures) == null ? void 0 : _a3.get(key);
119253
119274
  const actualSignature = oldSignature !== void 0 ? oldSignature || void 0 : value.signature;
@@ -119347,6 +119368,7 @@ ${lanes.join("\n")}
119347
119368
  const program = {
119348
119369
  fileNames,
119349
119370
  fileInfos,
119371
+ root,
119350
119372
  options: convertToProgramBuildInfoCompilerOptions(state.compilerOptions),
119351
119373
  fileIdsList,
119352
119374
  referencedMap,
@@ -119382,6 +119404,24 @@ ${lanes.join("\n")}
119382
119404
  }
119383
119405
  return fileIdListId;
119384
119406
  }
119407
+ function tryAddRoot(path, fileId) {
119408
+ const file = state.program.getSourceFile(path);
119409
+ if (!state.program.getFileIncludeReasons().get(file.path).some((r) => r.kind === 0 /* RootFile */))
119410
+ return;
119411
+ if (!root.length)
119412
+ return root.push(fileId);
119413
+ const last2 = root[root.length - 1];
119414
+ const isLastStartEnd = isArray(last2);
119415
+ if (isLastStartEnd && last2[1] === fileId - 1)
119416
+ return last2[1] = fileId;
119417
+ if (isLastStartEnd || root.length === 1 || last2 !== fileId - 1)
119418
+ return root.push(fileId);
119419
+ const lastButOne = root[root.length - 2];
119420
+ if (!isNumber(lastButOne) || lastButOne !== last2 - 1)
119421
+ return root.push(fileId);
119422
+ root[root.length - 2] = [lastButOne, fileId];
119423
+ return root.length = root.length - 1;
119424
+ }
119385
119425
  function convertToProgramBuildInfoCompilerOptions(options) {
119386
119426
  let result;
119387
119427
  const { optionsNameMap } = getOptionsNameMap();
@@ -119889,12 +119929,28 @@ ${lanes.join("\n")}
119889
119929
  const buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(buildInfoPath, host.getCurrentDirectory()));
119890
119930
  const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames());
119891
119931
  const fileInfos = /* @__PURE__ */ new Map();
119932
+ let rootIndex = 0;
119933
+ const roots = [];
119892
119934
  program.fileInfos.forEach((fileInfo, index) => {
119893
119935
  const path = toPath(program.fileNames[index], buildInfoDirectory, getCanonicalFileName);
119894
119936
  const version2 = isString(fileInfo) ? fileInfo : fileInfo.version;
119895
119937
  fileInfos.set(path, version2);
119938
+ if (rootIndex < program.root.length) {
119939
+ const current = program.root[rootIndex];
119940
+ const fileId = index + 1;
119941
+ if (isArray(current)) {
119942
+ if (current[0] <= fileId && fileId <= current[1]) {
119943
+ roots.push(path);
119944
+ if (current[1] === fileId)
119945
+ rootIndex++;
119946
+ }
119947
+ } else if (current === fileId) {
119948
+ roots.push(path);
119949
+ rootIndex++;
119950
+ }
119951
+ }
119896
119952
  });
119897
- return fileInfos;
119953
+ return { fileInfos, roots };
119898
119954
  }
119899
119955
  function createRedirectedBuilderProgram(getState, configFileParsingDiagnostics) {
119900
119956
  return {
@@ -122227,13 +122283,14 @@ ${lanes.join("\n")}
122227
122283
  UpToDateStatusType2[UpToDateStatusType2["OutOfDateWithUpstream"] = 7] = "OutOfDateWithUpstream";
122228
122284
  UpToDateStatusType2[UpToDateStatusType2["OutOfDateBuildInfo"] = 8] = "OutOfDateBuildInfo";
122229
122285
  UpToDateStatusType2[UpToDateStatusType2["OutOfDateOptions"] = 9] = "OutOfDateOptions";
122230
- UpToDateStatusType2[UpToDateStatusType2["UpstreamOutOfDate"] = 10] = "UpstreamOutOfDate";
122231
- UpToDateStatusType2[UpToDateStatusType2["UpstreamBlocked"] = 11] = "UpstreamBlocked";
122232
- UpToDateStatusType2[UpToDateStatusType2["ComputingUpstream"] = 12] = "ComputingUpstream";
122233
- UpToDateStatusType2[UpToDateStatusType2["TsVersionOutputOfDate"] = 13] = "TsVersionOutputOfDate";
122234
- UpToDateStatusType2[UpToDateStatusType2["UpToDateWithInputFileText"] = 14] = "UpToDateWithInputFileText";
122235
- UpToDateStatusType2[UpToDateStatusType2["ContainerOnly"] = 15] = "ContainerOnly";
122236
- UpToDateStatusType2[UpToDateStatusType2["ForceBuild"] = 16] = "ForceBuild";
122286
+ UpToDateStatusType2[UpToDateStatusType2["OutOfDateRoots"] = 10] = "OutOfDateRoots";
122287
+ UpToDateStatusType2[UpToDateStatusType2["UpstreamOutOfDate"] = 11] = "UpstreamOutOfDate";
122288
+ UpToDateStatusType2[UpToDateStatusType2["UpstreamBlocked"] = 12] = "UpstreamBlocked";
122289
+ UpToDateStatusType2[UpToDateStatusType2["ComputingUpstream"] = 13] = "ComputingUpstream";
122290
+ UpToDateStatusType2[UpToDateStatusType2["TsVersionOutputOfDate"] = 14] = "TsVersionOutputOfDate";
122291
+ UpToDateStatusType2[UpToDateStatusType2["UpToDateWithInputFileText"] = 15] = "UpToDateWithInputFileText";
122292
+ UpToDateStatusType2[UpToDateStatusType2["ContainerOnly"] = 16] = "ContainerOnly";
122293
+ UpToDateStatusType2[UpToDateStatusType2["ForceBuild"] = 17] = "ForceBuild";
122237
122294
  return UpToDateStatusType2;
122238
122295
  })(UpToDateStatusType || {});
122239
122296
  }
@@ -123115,7 +123172,7 @@ ${lanes.join("\n")}
123115
123172
  }
123116
123173
  continue;
123117
123174
  }
123118
- if (status.type === 2 /* UpToDateWithUpstreamTypes */ || status.type === 14 /* UpToDateWithInputFileText */) {
123175
+ if (status.type === 2 /* UpToDateWithUpstreamTypes */ || status.type === 15 /* UpToDateWithInputFileText */) {
123119
123176
  reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));
123120
123177
  return {
123121
123178
  kind: 2 /* UpdateOutputFileStamps */,
@@ -123127,7 +123184,7 @@ ${lanes.join("\n")}
123127
123184
  };
123128
123185
  }
123129
123186
  }
123130
- if (status.type === 11 /* UpstreamBlocked */) {
123187
+ if (status.type === 12 /* UpstreamBlocked */) {
123131
123188
  verboseReportProjectStatus(state, project, status);
123132
123189
  reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));
123133
123190
  projectPendingBuild.delete(projectPath);
@@ -123141,7 +123198,7 @@ ${lanes.join("\n")}
123141
123198
  }
123142
123199
  continue;
123143
123200
  }
123144
- if (status.type === 15 /* ContainerOnly */) {
123201
+ if (status.type === 16 /* ContainerOnly */) {
123145
123202
  verboseReportProjectStatus(state, project, status);
123146
123203
  reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));
123147
123204
  projectPendingBuild.delete(projectPath);
@@ -123328,31 +123385,31 @@ ${lanes.join("\n")}
123328
123385
  var _a2, _b;
123329
123386
  if (!project.fileNames.length && !canJsonReportNoInputFiles(project.raw)) {
123330
123387
  return {
123331
- type: 15 /* ContainerOnly */
123388
+ type: 16 /* ContainerOnly */
123332
123389
  };
123333
123390
  }
123334
123391
  let referenceStatuses;
123335
123392
  const force = !!state.options.force;
123336
123393
  if (project.projectReferences) {
123337
- state.projectStatus.set(resolvedPath, { type: 12 /* ComputingUpstream */ });
123394
+ state.projectStatus.set(resolvedPath, { type: 13 /* ComputingUpstream */ });
123338
123395
  for (const ref of project.projectReferences) {
123339
123396
  const resolvedRef = resolveProjectReferencePath(ref);
123340
123397
  const resolvedRefPath = toResolvedConfigFilePath(state, resolvedRef);
123341
123398
  const resolvedConfig = parseConfigFile(state, resolvedRef, resolvedRefPath);
123342
123399
  const refStatus = getUpToDateStatus(state, resolvedConfig, resolvedRefPath);
123343
- if (refStatus.type === 12 /* ComputingUpstream */ || refStatus.type === 15 /* ContainerOnly */) {
123400
+ if (refStatus.type === 13 /* ComputingUpstream */ || refStatus.type === 16 /* ContainerOnly */) {
123344
123401
  continue;
123345
123402
  }
123346
- if (refStatus.type === 0 /* Unbuildable */ || refStatus.type === 11 /* UpstreamBlocked */) {
123403
+ if (refStatus.type === 0 /* Unbuildable */ || refStatus.type === 12 /* UpstreamBlocked */) {
123347
123404
  return {
123348
- type: 11 /* UpstreamBlocked */,
123405
+ type: 12 /* UpstreamBlocked */,
123349
123406
  upstreamProjectName: ref.path,
123350
- upstreamProjectBlocked: refStatus.type === 11 /* UpstreamBlocked */
123407
+ upstreamProjectBlocked: refStatus.type === 12 /* UpstreamBlocked */
123351
123408
  };
123352
123409
  }
123353
123410
  if (refStatus.type !== 1 /* UpToDate */) {
123354
123411
  return {
123355
- type: 10 /* UpstreamOutOfDate */,
123412
+ type: 11 /* UpstreamOutOfDate */,
123356
123413
  upstreamProjectName: ref.path
123357
123414
  };
123358
123415
  }
@@ -123361,7 +123418,7 @@ ${lanes.join("\n")}
123361
123418
  }
123362
123419
  }
123363
123420
  if (force)
123364
- return { type: 16 /* ForceBuild */ };
123421
+ return { type: 17 /* ForceBuild */ };
123365
123422
  const { host } = state;
123366
123423
  const buildInfoPath = getTsBuildInfoEmitOutputFilePath(project.options);
123367
123424
  let oldestOutputFileName;
@@ -123394,7 +123451,7 @@ ${lanes.join("\n")}
123394
123451
  }
123395
123452
  if ((buildInfo.bundle || buildInfo.program) && buildInfo.version !== version) {
123396
123453
  return {
123397
- type: 13 /* TsVersionOutputOfDate */,
123454
+ type: 14 /* TsVersionOutputOfDate */,
123398
123455
  version: buildInfo.version
123399
123456
  };
123400
123457
  }
@@ -123419,6 +123476,7 @@ ${lanes.join("\n")}
123419
123476
  let newestInputFileName = void 0;
123420
123477
  let newestInputFileTime = minimumDate;
123421
123478
  let pseudoInputUpToDate = false;
123479
+ const seenRoots = /* @__PURE__ */ new Set();
123422
123480
  for (const inputFile of project.fileNames) {
123423
123481
  const inputTime = getModifiedTime2(state, inputFile);
123424
123482
  if (inputTime === missingFileModifiedTime) {
@@ -123433,7 +123491,7 @@ ${lanes.join("\n")}
123433
123491
  if (buildInfoProgram) {
123434
123492
  if (!buildInfoVersionMap)
123435
123493
  buildInfoVersionMap = getBuildInfoFileVersionMap(buildInfoProgram, buildInfoPath, host);
123436
- version2 = buildInfoVersionMap.get(toPath2(state, inputFile));
123494
+ version2 = buildInfoVersionMap.fileInfos.get(toPath2(state, inputFile));
123437
123495
  const text = version2 ? state.readFileWithCache(inputFile) : void 0;
123438
123496
  currentVersion = text !== void 0 ? getSourceFileVersionAsHashFromText(host, text) : void 0;
123439
123497
  if (version2 && version2 === currentVersion)
@@ -123451,6 +123509,21 @@ ${lanes.join("\n")}
123451
123509
  newestInputFileName = inputFile;
123452
123510
  newestInputFileTime = inputTime;
123453
123511
  }
123512
+ if (buildInfoProgram)
123513
+ seenRoots.add(toPath2(state, inputFile));
123514
+ }
123515
+ if (buildInfoProgram) {
123516
+ if (!buildInfoVersionMap)
123517
+ buildInfoVersionMap = getBuildInfoFileVersionMap(buildInfoProgram, buildInfoPath, host);
123518
+ for (const existingRoot of buildInfoVersionMap.roots) {
123519
+ if (!seenRoots.has(existingRoot)) {
123520
+ return {
123521
+ type: 10 /* OutOfDateRoots */,
123522
+ buildInfoFile: buildInfoPath,
123523
+ inputFile: existingRoot
123524
+ };
123525
+ }
123526
+ }
123454
123527
  }
123455
123528
  if (!buildInfoPath) {
123456
123529
  const outputs = getAllProjectOutputs(project, !host.useCaseSensitiveFileNames());
@@ -123532,7 +123605,7 @@ ${lanes.join("\n")}
123532
123605
  };
123533
123606
  }
123534
123607
  return {
123535
- type: pseudoUpToDate ? 2 /* UpToDateWithUpstreamTypes */ : pseudoInputUpToDate ? 14 /* UpToDateWithInputFileText */ : 1 /* UpToDate */,
123608
+ type: pseudoUpToDate ? 2 /* UpToDateWithUpstreamTypes */ : pseudoInputUpToDate ? 15 /* UpToDateWithInputFileText */ : 1 /* UpToDate */,
123536
123609
  newestInputFileTime,
123537
123610
  newestInputFileName,
123538
123611
  oldestOutputFileName
@@ -123651,7 +123724,7 @@ ${lanes.join("\n")}
123651
123724
  }
123652
123725
  break;
123653
123726
  }
123654
- case 14 /* UpToDateWithInputFileText */:
123727
+ case 15 /* UpToDateWithInputFileText */:
123655
123728
  case 2 /* UpToDateWithUpstreamTypes */:
123656
123729
  case 3 /* OutOfDateWithPrepend */:
123657
123730
  if (!(buildResult & 2 /* DeclarationOutputUnchanged */)) {
@@ -123662,7 +123735,7 @@ ${lanes.join("\n")}
123662
123735
  });
123663
123736
  }
123664
123737
  break;
123665
- case 11 /* UpstreamBlocked */:
123738
+ case 12 /* UpstreamBlocked */:
123666
123739
  if (toResolvedConfigFilePath(state, resolveProjectName(state, status.upstreamProjectName)) === projectPath) {
123667
123740
  clearProjectStatus(state, nextProjectPath);
123668
123741
  }
@@ -124113,6 +124186,14 @@ ${lanes.join("\n")}
124113
124186
  relName(state, configFileName),
124114
124187
  relName(state, status.buildInfoFile)
124115
124188
  );
124189
+ case 10 /* OutOfDateRoots */:
124190
+ return reportStatus(
124191
+ state,
124192
+ Diagnostics.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more,
124193
+ relName(state, configFileName),
124194
+ relName(state, status.buildInfoFile),
124195
+ relName(state, status.inputFile)
124196
+ );
124116
124197
  case 1 /* UpToDate */:
124117
124198
  if (status.newestInputFileTime !== void 0) {
124118
124199
  return reportStatus(
@@ -124137,20 +124218,20 @@ ${lanes.join("\n")}
124137
124218
  Diagnostics.Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies,
124138
124219
  relName(state, configFileName)
124139
124220
  );
124140
- case 14 /* UpToDateWithInputFileText */:
124221
+ case 15 /* UpToDateWithInputFileText */:
124141
124222
  return reportStatus(
124142
124223
  state,
124143
124224
  Diagnostics.Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files,
124144
124225
  relName(state, configFileName)
124145
124226
  );
124146
- case 10 /* UpstreamOutOfDate */:
124227
+ case 11 /* UpstreamOutOfDate */:
124147
124228
  return reportStatus(
124148
124229
  state,
124149
124230
  Diagnostics.Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date,
124150
124231
  relName(state, configFileName),
124151
124232
  relName(state, status.upstreamProjectName)
124152
124233
  );
124153
- case 11 /* UpstreamBlocked */:
124234
+ case 12 /* UpstreamBlocked */:
124154
124235
  return reportStatus(
124155
124236
  state,
124156
124237
  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,
@@ -124164,7 +124245,7 @@ ${lanes.join("\n")}
124164
124245
  relName(state, configFileName),
124165
124246
  status.reason
124166
124247
  );
124167
- case 13 /* TsVersionOutputOfDate */:
124248
+ case 14 /* TsVersionOutputOfDate */:
124168
124249
  return reportStatus(
124169
124250
  state,
124170
124251
  Diagnostics.Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2,
@@ -124172,14 +124253,14 @@ ${lanes.join("\n")}
124172
124253
  status.version,
124173
124254
  version
124174
124255
  );
124175
- case 16 /* ForceBuild */:
124256
+ case 17 /* ForceBuild */:
124176
124257
  return reportStatus(
124177
124258
  state,
124178
124259
  Diagnostics.Project_0_is_being_forcibly_rebuilt,
124179
124260
  relName(state, configFileName)
124180
124261
  );
124181
- case 15 /* ContainerOnly */:
124182
- case 12 /* ComputingUpstream */:
124262
+ case 16 /* ContainerOnly */:
124263
+ case 13 /* ComputingUpstream */:
124183
124264
  break;
124184
124265
  default:
124185
124266
  assertType(status);
@@ -126889,7 +126970,7 @@ ${lanes.join("\n")}
126889
126970
  function nodeToDisplayParts(node, enclosingDeclaration) {
126890
126971
  const file = enclosingDeclaration.getSourceFile();
126891
126972
  return mapToDisplayParts((writer) => {
126892
- const printer = createPrinter({ removeComments: true, omitTrailingSemicolon: true });
126973
+ const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();
126893
126974
  printer.writeNode(4 /* Unspecified */, node, file, writer);
126894
126975
  });
126895
126976
  }
@@ -135514,7 +135595,7 @@ ${lanes.join("\n")}
135514
135595
  }
135515
135596
  }
135516
135597
  if (text === void 0) {
135517
- const printer = createPrinter({ removeComments: true, omitTrailingSemicolon: true });
135598
+ const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();
135518
135599
  text = usingSingleLineStringWriter((writer) => printer.writeNode(4 /* Unspecified */, node, node.getSourceFile(), writer));
135519
135600
  }
135520
135601
  return { text, pos: declName.getStart(), end: declName.getEnd() };
@@ -142519,7 +142600,7 @@ ${lanes.join("\n")}
142519
142600
  Diagnostics.Delete_all_unused_param_tags
142520
142601
  );
142521
142602
  }
142522
- function getRenameAction(context, { name, signature, jsDocParameterTag }) {
142603
+ function getRenameAction(context, { name, jsDocHost, signature, jsDocParameterTag }) {
142523
142604
  if (!length(signature.parameters))
142524
142605
  return void 0;
142525
142606
  const sourceFile = context.sourceFile;
@@ -142542,7 +142623,7 @@ ${lanes.join("\n")}
142542
142623
  jsDocParameterTag.isNameFirst,
142543
142624
  jsDocParameterTag.comment
142544
142625
  );
142545
- const changes = ts_textChanges_exports.ChangeTracker.with(context, (changeTracker) => changeTracker.replaceJSDocComment(sourceFile, signature, map(tags, (t) => t === jsDocParameterTag ? newJSDocParameterTag : t)));
142626
+ const changes = ts_textChanges_exports.ChangeTracker.with(context, (changeTracker) => changeTracker.replaceJSDocComment(sourceFile, jsDocHost, map(tags, (t) => t === jsDocParameterTag ? newJSDocParameterTag : t)));
142546
142627
  return createCodeFixActionWithoutFixAll(renameUnmatchedParameter, changes, [Diagnostics.Rename_param_tag_name_0_to_1, name.getText(sourceFile), parameterName]);
142547
142628
  }
142548
142629
  function getInfo10(sourceFile, pos) {
@@ -153995,8 +154076,7 @@ ${lanes.join("\n")}
153995
154076
  }
153996
154077
  function printTypeInSingleLine(type) {
153997
154078
  const flags = 70221824 /* IgnoreErrors */ | 1048576 /* AllowUniqueESSymbolType */ | 16384 /* UseAliasDefinedOutsideCurrentScope */;
153998
- const options = { removeComments: true };
153999
- const printer = createPrinter(options);
154079
+ const printer = createPrinterWithRemoveComments();
154000
154080
  return usingSingleLineStringWriter((writer) => {
154001
154081
  const typeNode = checker.typeToTypeNode(
154002
154082
  type,
@@ -161171,7 +161251,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161171
161251
  }
161172
161252
  function getTypeHelpItem(symbol, typeParameters, checker, enclosingDeclaration, sourceFile) {
161173
161253
  const typeSymbolDisplay = symbolToDisplayParts(checker, symbol);
161174
- const printer = createPrinter({ removeComments: true });
161254
+ const printer = createPrinterWithRemoveComments();
161175
161255
  const parameters = typeParameters.map((t) => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer));
161176
161256
  const documentation = symbol.getDocumentationComment(checker);
161177
161257
  const tags = symbol.getJsDocTags(checker);
@@ -161214,7 +161294,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161214
161294
  }
161215
161295
  function itemInfoForTypeParameters(candidateSignature, checker, enclosingDeclaration, sourceFile) {
161216
161296
  const typeParameters = (candidateSignature.target || candidateSignature).typeParameters;
161217
- const printer = createPrinter({ removeComments: true });
161297
+ const printer = createPrinterWithRemoveComments();
161218
161298
  const parameters = (typeParameters || emptyArray).map((t) => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer));
161219
161299
  const thisParameter = candidateSignature.thisParameter ? [checker.symbolToParameterDeclaration(candidateSignature.thisParameter, enclosingDeclaration, signatureHelpNodeBuilderFlags)] : [];
161220
161300
  return checker.getExpandedParameters(candidateSignature).map((paramList) => {
@@ -161226,7 +161306,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161226
161306
  });
161227
161307
  }
161228
161308
  function itemInfoForParameters(candidateSignature, checker, enclosingDeclaration, sourceFile) {
161229
- const printer = createPrinter({ removeComments: true });
161309
+ const printer = createPrinterWithRemoveComments();
161230
161310
  const typeParameterParts = mapToDisplayParts((writer) => {
161231
161311
  if (candidateSignature.typeParameters && candidateSignature.typeParameters.length) {
161232
161312
  const args = factory.createNodeArray(candidateSignature.typeParameters.map((p) => checker.typeParameterToDeclaration(p, enclosingDeclaration, signatureHelpNodeBuilderFlags)));
@@ -161632,7 +161712,6 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161632
161712
  let hasAddedSymbolInfo = false;
161633
161713
  const isThisExpression = location.kind === 108 /* ThisKeyword */ && isInExpressionContext(location) || isThisInTypeQuery(location);
161634
161714
  let type;
161635
- let printer;
161636
161715
  let documentationFromAlias;
161637
161716
  let tagsFromAlias;
161638
161717
  let hasMultipleSignatures = false;
@@ -162025,10 +162104,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
162025
162104
  }
162026
162105
  return { displayParts, documentation, symbolKind, tags: tags.length === 0 ? void 0 : tags };
162027
162106
  function getPrinter() {
162028
- if (!printer) {
162029
- printer = createPrinter({ removeComments: true });
162030
- }
162031
- return printer;
162107
+ return createPrinterWithRemoveComments();
162032
162108
  }
162033
162109
  function prefixNextMeaning() {
162034
162110
  if (displayParts.length) {
@@ -177735,6 +177811,10 @@ ${e.message}`;
177735
177811
  createPatternMatcher: () => createPatternMatcher,
177736
177812
  createPrependNodes: () => createPrependNodes,
177737
177813
  createPrinter: () => createPrinter,
177814
+ createPrinterWithDefaults: () => createPrinterWithDefaults,
177815
+ createPrinterWithRemoveComments: () => createPrinterWithRemoveComments,
177816
+ createPrinterWithRemoveCommentsNeverAsciiEscape: () => createPrinterWithRemoveCommentsNeverAsciiEscape,
177817
+ createPrinterWithRemoveCommentsOmitTrailingSemicolon: () => createPrinterWithRemoveCommentsOmitTrailingSemicolon,
177738
177818
  createProgram: () => createProgram,
177739
177819
  createProgramHost: () => createProgramHost,
177740
177820
  createPropertyNameNodeForIdentifierOrLiteral: () => createPropertyNameNodeForIdentifierOrLiteral,
@@ -177971,6 +178051,7 @@ ${e.message}`;
177971
178051
  getCommonSourceDirectoryOfConfig: () => getCommonSourceDirectoryOfConfig,
177972
178052
  getCompilerOptionValue: () => getCompilerOptionValue,
177973
178053
  getCompilerOptionsDiffValue: () => getCompilerOptionsDiffValue,
178054
+ getConditions: () => getConditions,
177974
178055
  getConfigFileParsingDiagnostics: () => getConfigFileParsingDiagnostics,
177975
178056
  getConstantValue: () => getConstantValue,
177976
178057
  getContainerNode: () => getContainerNode,
@@ -180087,6 +180168,10 @@ ${e.message}`;
180087
180168
  createPatternMatcher: () => createPatternMatcher,
180088
180169
  createPrependNodes: () => createPrependNodes,
180089
180170
  createPrinter: () => createPrinter,
180171
+ createPrinterWithDefaults: () => createPrinterWithDefaults,
180172
+ createPrinterWithRemoveComments: () => createPrinterWithRemoveComments,
180173
+ createPrinterWithRemoveCommentsNeverAsciiEscape: () => createPrinterWithRemoveCommentsNeverAsciiEscape,
180174
+ createPrinterWithRemoveCommentsOmitTrailingSemicolon: () => createPrinterWithRemoveCommentsOmitTrailingSemicolon,
180090
180175
  createProgram: () => createProgram,
180091
180176
  createProgramHost: () => createProgramHost,
180092
180177
  createPropertyNameNodeForIdentifierOrLiteral: () => createPropertyNameNodeForIdentifierOrLiteral,
@@ -180323,6 +180408,7 @@ ${e.message}`;
180323
180408
  getCommonSourceDirectoryOfConfig: () => getCommonSourceDirectoryOfConfig,
180324
180409
  getCompilerOptionValue: () => getCompilerOptionValue,
180325
180410
  getCompilerOptionsDiffValue: () => getCompilerOptionsDiffValue,
180411
+ getConditions: () => getConditions,
180326
180412
  getConfigFileParsingDiagnostics: () => getConfigFileParsingDiagnostics,
180327
180413
  getConstantValue: () => getConstantValue,
180328
180414
  getContainerNode: () => getContainerNode,