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/typescript.js CHANGED
@@ -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);
@@ -126903,7 +126984,7 @@ ${lanes.join("\n")}
126903
126984
  function nodeToDisplayParts(node, enclosingDeclaration) {
126904
126985
  const file = enclosingDeclaration.getSourceFile();
126905
126986
  return mapToDisplayParts((writer) => {
126906
- const printer = createPrinter({ removeComments: true, omitTrailingSemicolon: true });
126987
+ const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();
126907
126988
  printer.writeNode(4 /* Unspecified */, node, file, writer);
126908
126989
  });
126909
126990
  }
@@ -135528,7 +135609,7 @@ ${lanes.join("\n")}
135528
135609
  }
135529
135610
  }
135530
135611
  if (text === void 0) {
135531
- const printer = createPrinter({ removeComments: true, omitTrailingSemicolon: true });
135612
+ const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();
135532
135613
  text = usingSingleLineStringWriter((writer) => printer.writeNode(4 /* Unspecified */, node, node.getSourceFile(), writer));
135533
135614
  }
135534
135615
  return { text, pos: declName.getStart(), end: declName.getEnd() };
@@ -142533,7 +142614,7 @@ ${lanes.join("\n")}
142533
142614
  Diagnostics.Delete_all_unused_param_tags
142534
142615
  );
142535
142616
  }
142536
- function getRenameAction(context, { name, signature, jsDocParameterTag }) {
142617
+ function getRenameAction(context, { name, jsDocHost, signature, jsDocParameterTag }) {
142537
142618
  if (!length(signature.parameters))
142538
142619
  return void 0;
142539
142620
  const sourceFile = context.sourceFile;
@@ -142556,7 +142637,7 @@ ${lanes.join("\n")}
142556
142637
  jsDocParameterTag.isNameFirst,
142557
142638
  jsDocParameterTag.comment
142558
142639
  );
142559
- const changes = ts_textChanges_exports.ChangeTracker.with(context, (changeTracker) => changeTracker.replaceJSDocComment(sourceFile, signature, map(tags, (t) => t === jsDocParameterTag ? newJSDocParameterTag : t)));
142640
+ const changes = ts_textChanges_exports.ChangeTracker.with(context, (changeTracker) => changeTracker.replaceJSDocComment(sourceFile, jsDocHost, map(tags, (t) => t === jsDocParameterTag ? newJSDocParameterTag : t)));
142560
142641
  return createCodeFixActionWithoutFixAll(renameUnmatchedParameter, changes, [Diagnostics.Rename_param_tag_name_0_to_1, name.getText(sourceFile), parameterName]);
142561
142642
  }
142562
142643
  function getInfo10(sourceFile, pos) {
@@ -154009,8 +154090,7 @@ ${lanes.join("\n")}
154009
154090
  }
154010
154091
  function printTypeInSingleLine(type) {
154011
154092
  const flags = 70221824 /* IgnoreErrors */ | 1048576 /* AllowUniqueESSymbolType */ | 16384 /* UseAliasDefinedOutsideCurrentScope */;
154012
- const options = { removeComments: true };
154013
- const printer = createPrinter(options);
154093
+ const printer = createPrinterWithRemoveComments();
154014
154094
  return usingSingleLineStringWriter((writer) => {
154015
154095
  const typeNode = checker.typeToTypeNode(
154016
154096
  type,
@@ -161185,7 +161265,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161185
161265
  }
161186
161266
  function getTypeHelpItem(symbol, typeParameters, checker, enclosingDeclaration, sourceFile) {
161187
161267
  const typeSymbolDisplay = symbolToDisplayParts(checker, symbol);
161188
- const printer = createPrinter({ removeComments: true });
161268
+ const printer = createPrinterWithRemoveComments();
161189
161269
  const parameters = typeParameters.map((t) => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer));
161190
161270
  const documentation = symbol.getDocumentationComment(checker);
161191
161271
  const tags = symbol.getJsDocTags(checker);
@@ -161228,7 +161308,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161228
161308
  }
161229
161309
  function itemInfoForTypeParameters(candidateSignature, checker, enclosingDeclaration, sourceFile) {
161230
161310
  const typeParameters = (candidateSignature.target || candidateSignature).typeParameters;
161231
- const printer = createPrinter({ removeComments: true });
161311
+ const printer = createPrinterWithRemoveComments();
161232
161312
  const parameters = (typeParameters || emptyArray).map((t) => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer));
161233
161313
  const thisParameter = candidateSignature.thisParameter ? [checker.symbolToParameterDeclaration(candidateSignature.thisParameter, enclosingDeclaration, signatureHelpNodeBuilderFlags)] : [];
161234
161314
  return checker.getExpandedParameters(candidateSignature).map((paramList) => {
@@ -161240,7 +161320,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161240
161320
  });
161241
161321
  }
161242
161322
  function itemInfoForParameters(candidateSignature, checker, enclosingDeclaration, sourceFile) {
161243
- const printer = createPrinter({ removeComments: true });
161323
+ const printer = createPrinterWithRemoveComments();
161244
161324
  const typeParameterParts = mapToDisplayParts((writer) => {
161245
161325
  if (candidateSignature.typeParameters && candidateSignature.typeParameters.length) {
161246
161326
  const args = factory.createNodeArray(candidateSignature.typeParameters.map((p) => checker.typeParameterToDeclaration(p, enclosingDeclaration, signatureHelpNodeBuilderFlags)));
@@ -161646,7 +161726,6 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
161646
161726
  let hasAddedSymbolInfo = false;
161647
161727
  const isThisExpression = location.kind === 108 /* ThisKeyword */ && isInExpressionContext(location) || isThisInTypeQuery(location);
161648
161728
  let type;
161649
- let printer;
161650
161729
  let documentationFromAlias;
161651
161730
  let tagsFromAlias;
161652
161731
  let hasMultipleSignatures = false;
@@ -162039,10 +162118,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
162039
162118
  }
162040
162119
  return { displayParts, documentation, symbolKind, tags: tags.length === 0 ? void 0 : tags };
162041
162120
  function getPrinter() {
162042
- if (!printer) {
162043
- printer = createPrinter({ removeComments: true });
162044
- }
162045
- return printer;
162121
+ return createPrinterWithRemoveComments();
162046
162122
  }
162047
162123
  function prefixNextMeaning() {
162048
162124
  if (displayParts.length) {
@@ -166920,6 +166996,10 @@ ${options.prefix}` : "\n" : options.prefix
166920
166996
  createPatternMatcher: () => createPatternMatcher,
166921
166997
  createPrependNodes: () => createPrependNodes,
166922
166998
  createPrinter: () => createPrinter,
166999
+ createPrinterWithDefaults: () => createPrinterWithDefaults,
167000
+ createPrinterWithRemoveComments: () => createPrinterWithRemoveComments,
167001
+ createPrinterWithRemoveCommentsNeverAsciiEscape: () => createPrinterWithRemoveCommentsNeverAsciiEscape,
167002
+ createPrinterWithRemoveCommentsOmitTrailingSemicolon: () => createPrinterWithRemoveCommentsOmitTrailingSemicolon,
166923
167003
  createProgram: () => createProgram,
166924
167004
  createProgramHost: () => createProgramHost,
166925
167005
  createPropertyNameNodeForIdentifierOrLiteral: () => createPropertyNameNodeForIdentifierOrLiteral,
@@ -167156,6 +167236,7 @@ ${options.prefix}` : "\n" : options.prefix
167156
167236
  getCommonSourceDirectoryOfConfig: () => getCommonSourceDirectoryOfConfig,
167157
167237
  getCompilerOptionValue: () => getCompilerOptionValue,
167158
167238
  getCompilerOptionsDiffValue: () => getCompilerOptionsDiffValue,
167239
+ getConditions: () => getConditions,
167159
167240
  getConfigFileParsingDiagnostics: () => getConfigFileParsingDiagnostics,
167160
167241
  getConstantValue: () => getConstantValue,
167161
167242
  getContainerNode: () => getContainerNode,
@@ -54,7 +54,7 @@ var path = __toESM(require("path"));
54
54
 
55
55
  // src/compiler/corePublic.ts
56
56
  var versionMajorMinor = "5.0";
57
- var version = `${versionMajorMinor}.0-dev.20230125`;
57
+ var version = `${versionMajorMinor}.0-dev.20230127`;
58
58
 
59
59
  // src/compiler/core.ts
60
60
  var emptyArray = [];
@@ -6678,6 +6678,7 @@ var Diagnostics = {
6678
6678
  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."),
6679
6679
  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."),
6680
6680
  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`."),
6681
+ 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."),
6681
6682
  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}'"),
6682
6683
  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."),
6683
6684
  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."),
@@ -27004,7 +27005,7 @@ var commandOptionsWithoutBuild = [
27004
27005
  {
27005
27006
  name: "allowArbitraryExtensions",
27006
27007
  type: "boolean",
27007
- affectsModuleResolution: true,
27008
+ affectsProgramStructure: true,
27008
27009
  category: Diagnostics.Modules,
27009
27010
  description: Diagnostics.Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present,
27010
27011
  defaultValueDescription: false
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "typescript",
3
3
  "author": "Microsoft Corp.",
4
4
  "homepage": "https://www.typescriptlang.org/",
5
- "version": "5.0.0-dev.20230125",
5
+ "version": "5.0.0-dev.20230127",
6
6
  "license": "Apache-2.0",
7
7
  "description": "TypeScript is a language for application scale JavaScript development",
8
8
  "keywords": [