@typescript-deploys/pr-build 5.0.0-pr-51387-49 → 5.0.0-pr-51157-8

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/tsc.js CHANGED
@@ -23,7 +23,7 @@ var __export = (target, all) => {
23
23
 
24
24
  // src/compiler/corePublic.ts
25
25
  var versionMajorMinor = "5.0";
26
- var version = `${versionMajorMinor}.0-insiders.20221107`;
26
+ var version = `${versionMajorMinor}.0-insiders.20221108`;
27
27
  var NativeCollections;
28
28
  ((NativeCollections2) => {
29
29
  const globals = typeof globalThis !== "undefined" ? globalThis : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : void 0;
@@ -7018,6 +7018,7 @@ var Diagnostics = {
7018
7018
  Matched_0_condition_1: diag(6403, 3 /* Message */, "Matched_0_condition_1_6403", "Matched '{0}' condition '{1}'."),
7019
7019
  Using_0_subpath_1_with_target_2: diag(6404, 3 /* Message */, "Using_0_subpath_1_with_target_2_6404", "Using '{0}' subpath '{1}' with target '{2}'."),
7020
7020
  Saw_non_matching_condition_0: diag(6405, 3 /* Message */, "Saw_non_matching_condition_0_6405", "Saw non-matching condition '{0}'."),
7021
+ Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions: diag(6406, 3 /* Message */, "Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions_6406", "Project '{0}' is out of date because buildinfo file '{1}' indicates there is change in compilerOptions"),
7021
7022
  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}'"),
7022
7023
  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."),
7023
7024
  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."),
@@ -10784,11 +10785,15 @@ function setResolvedModule(sourceFile, moduleNameText, resolvedModule, mode) {
10784
10785
  }
10785
10786
  sourceFile.resolvedModules.set(moduleNameText, mode, resolvedModule);
10786
10787
  }
10787
- function setResolvedTypeReferenceDirective(sourceFile, typeReferenceDirectiveName, resolvedTypeReferenceDirective) {
10788
+ function setResolvedTypeReferenceDirective(sourceFile, typeReferenceDirectiveName, resolvedTypeReferenceDirective, mode) {
10788
10789
  if (!sourceFile.resolvedTypeReferenceDirectiveNames) {
10789
10790
  sourceFile.resolvedTypeReferenceDirectiveNames = createModeAwareCache();
10790
10791
  }
10791
- sourceFile.resolvedTypeReferenceDirectiveNames.set(typeReferenceDirectiveName, void 0, resolvedTypeReferenceDirective);
10792
+ sourceFile.resolvedTypeReferenceDirectiveNames.set(typeReferenceDirectiveName, mode, resolvedTypeReferenceDirective);
10793
+ }
10794
+ function getResolvedTypeReferenceDirective(sourceFile, typeReferenceDirectiveName, mode) {
10795
+ var _a2;
10796
+ return (_a2 = sourceFile == null ? void 0 : sourceFile.resolvedTypeReferenceDirectiveNames) == null ? void 0 : _a2.get(typeReferenceDirectiveName, mode);
10792
10797
  }
10793
10798
  function projectReferenceIsEqualTo(oldRef, newRef) {
10794
10799
  return oldRef.path === newRef.path && !oldRef.prepend === !newRef.prepend && !oldRef.circular === !newRef.circular;
@@ -10808,13 +10813,13 @@ function packageIdToString(packageId) {
10808
10813
  function typeDirectiveIsEqualTo(oldResolution, newResolution) {
10809
10814
  return oldResolution.resolvedFileName === newResolution.resolvedFileName && oldResolution.primary === newResolution.primary && oldResolution.originalPath === newResolution.originalPath;
10810
10815
  }
10811
- function hasChangesInResolutions(names, newResolutions, oldResolutions, oldSourceFile, comparer) {
10816
+ function hasChangesInResolutions(names, newSourceFile, newResolutions, oldResolutions, comparer) {
10812
10817
  Debug.assert(names.length === newResolutions.length);
10813
10818
  for (let i = 0; i < names.length; i++) {
10814
10819
  const newResolution = newResolutions[i];
10815
10820
  const entry = names[i];
10816
- const name = !isString(entry) ? entry.fileName.toLowerCase() : entry;
10817
- const mode = !isString(entry) ? getModeForFileReference(entry, oldSourceFile == null ? void 0 : oldSourceFile.impliedNodeFormat) : oldSourceFile && getModeForResolutionAtIndex(oldSourceFile, i);
10821
+ const name = getResolutionName(entry);
10822
+ const mode = getResolutionMode(entry, newSourceFile);
10818
10823
  const oldResolution = oldResolutions && oldResolutions.get(name, mode);
10819
10824
  const changed = oldResolution ? !newResolution || !comparer(oldResolution, newResolution) : newResolution;
10820
10825
  if (changed) {
@@ -15688,6 +15693,13 @@ function isTypeDeclaration(node) {
15688
15693
  function canHaveExportModifier(node) {
15689
15694
  return isEnumDeclaration(node) || isVariableStatement(node) || isFunctionDeclaration(node) || isClassDeclaration(node) || isInterfaceDeclaration(node) || isTypeDeclaration(node) || isModuleDeclaration(node) && !isExternalModuleAugmentation(node) && !isGlobalScopeAugmentation(node);
15690
15695
  }
15696
+ function isOptionalJSDocPropertyLikeTag(node) {
15697
+ if (!isJSDocPropertyLikeTag(node)) {
15698
+ return false;
15699
+ }
15700
+ const { isBracketed, typeExpression } = node;
15701
+ return isBracketed || !!typeExpression && typeExpression.type.kind === 319 /* JSDocOptionalType */;
15702
+ }
15691
15703
 
15692
15704
  // src/compiler/factory/baseNodeFactory.ts
15693
15705
  function createBaseNodeFactory() {
@@ -30057,12 +30069,60 @@ var commonOptionsWithBuild = [
30057
30069
  transpileOptionValue: void 0,
30058
30070
  defaultValueDescription: Diagnostics.false_unless_composite_is_set
30059
30071
  },
30072
+ {
30073
+ name: "declaration",
30074
+ shortName: "d",
30075
+ type: "boolean",
30076
+ affectsBuildInfo: true,
30077
+ showInSimplifiedHelpView: true,
30078
+ category: Diagnostics.Emit,
30079
+ transpileOptionValue: void 0,
30080
+ description: Diagnostics.Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project,
30081
+ defaultValueDescription: Diagnostics.false_unless_composite_is_set
30082
+ },
30083
+ {
30084
+ name: "declarationMap",
30085
+ type: "boolean",
30086
+ affectsBuildInfo: true,
30087
+ showInSimplifiedHelpView: true,
30088
+ category: Diagnostics.Emit,
30089
+ transpileOptionValue: void 0,
30090
+ defaultValueDescription: false,
30091
+ description: Diagnostics.Create_sourcemaps_for_d_ts_files
30092
+ },
30093
+ {
30094
+ name: "emitDeclarationOnly",
30095
+ type: "boolean",
30096
+ affectsBuildInfo: true,
30097
+ showInSimplifiedHelpView: true,
30098
+ category: Diagnostics.Emit,
30099
+ description: Diagnostics.Only_output_d_ts_files_and_not_JavaScript_files,
30100
+ transpileOptionValue: void 0,
30101
+ defaultValueDescription: false
30102
+ },
30103
+ {
30104
+ name: "sourceMap",
30105
+ type: "boolean",
30106
+ affectsBuildInfo: true,
30107
+ showInSimplifiedHelpView: true,
30108
+ category: Diagnostics.Emit,
30109
+ defaultValueDescription: false,
30110
+ description: Diagnostics.Create_source_map_files_for_emitted_JavaScript_files
30111
+ },
30112
+ {
30113
+ name: "inlineSourceMap",
30114
+ type: "boolean",
30115
+ affectsBuildInfo: true,
30116
+ category: Diagnostics.Emit,
30117
+ description: Diagnostics.Include_sourcemap_files_inside_the_emitted_JavaScript,
30118
+ defaultValueDescription: false
30119
+ },
30060
30120
  {
30061
30121
  name: "assumeChangesOnlyAffectDirectDependencies",
30062
30122
  type: "boolean",
30063
30123
  affectsSemanticDiagnostics: true,
30064
30124
  affectsEmit: true,
30065
- affectsMultiFileEmitBuildInfo: true,
30125
+ affectsBuildInfo: true,
30066
30126
  category: Diagnostics.Watch_and_Build_Modes,
30067
30127
  description: Diagnostics.Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it,
30068
30128
  defaultValueDescription: false
@@ -30096,7 +30156,7 @@ var targetOptionDeclaration = {
30096
30156
  affectsSourceFile: true,
30097
30157
  affectsModuleResolution: true,
30098
30158
  affectsEmit: true,
30099
- affectsMultiFileEmitBuildInfo: true,
30159
+ affectsBuildInfo: true,
30100
30160
  paramType: Diagnostics.VERSION,
30101
30161
  showInSimplifiedHelpView: true,
30102
30162
  category: Diagnostics.Language_and_Environment,
@@ -30122,7 +30182,7 @@ var moduleOptionDeclaration = {
30122
30182
  })),
30123
30183
  affectsModuleResolution: true,
30124
30184
  affectsEmit: true,
30125
- affectsMultiFileEmitBuildInfo: true,
30185
+ affectsBuildInfo: true,
30126
30186
  paramType: Diagnostics.KIND,
30127
30187
  showInSimplifiedHelpView: true,
30128
30188
  category: Diagnostics.Modules,
@@ -30229,7 +30289,7 @@ var commandOptionsWithoutBuild = [
30229
30289
  type: jsxOptionMap,
30230
30290
  affectsSourceFile: true,
30231
30291
  affectsEmit: true,
30232
- affectsMultiFileEmitBuildInfo: true,
30292
+ affectsBuildInfo: true,
30233
30293
  affectsModuleResolution: true,
30234
30294
  paramType: Diagnostics.KIND,
30235
30295
  showInSimplifiedHelpView: true,
@@ -30237,57 +30297,12 @@ var commandOptionsWithoutBuild = [
30237
30297
  description: Diagnostics.Specify_what_JSX_code_is_generated,
30238
30298
  defaultValueDescription: void 0
30239
30299
  },
30240
- {
30241
- name: "declaration",
30242
- shortName: "d",
30243
- type: "boolean",
30244
- affectsEmit: true,
30245
- affectsMultiFileEmitBuildInfo: true,
30246
- showInSimplifiedHelpView: true,
30247
- category: Diagnostics.Emit,
30248
- transpileOptionValue: void 0,
30249
- description: Diagnostics.Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project,
30250
- defaultValueDescription: Diagnostics.false_unless_composite_is_set
30251
- },
30252
- {
30253
- name: "declarationMap",
30254
- type: "boolean",
30255
- affectsEmit: true,
30256
- affectsMultiFileEmitBuildInfo: true,
30257
- showInSimplifiedHelpView: true,
30258
- category: Diagnostics.Emit,
30259
- transpileOptionValue: void 0,
30260
- defaultValueDescription: false,
30261
- description: Diagnostics.Create_sourcemaps_for_d_ts_files
30262
- },
30263
- {
30264
- name: "emitDeclarationOnly",
30265
- type: "boolean",
30266
- affectsEmit: true,
30267
- affectsMultiFileEmitBuildInfo: true,
30268
- showInSimplifiedHelpView: true,
30269
- category: Diagnostics.Emit,
30270
- description: Diagnostics.Only_output_d_ts_files_and_not_JavaScript_files,
30271
- transpileOptionValue: void 0,
30272
- defaultValueDescription: false
30273
- },
30274
- {
30275
- name: "sourceMap",
30276
- type: "boolean",
30277
- affectsEmit: true,
30278
- affectsMultiFileEmitBuildInfo: true,
30279
- showInSimplifiedHelpView: true,
30280
- category: Diagnostics.Emit,
30281
- defaultValueDescription: false,
30282
- description: Diagnostics.Create_source_map_files_for_emitted_JavaScript_files
30283
- },
30284
30300
  {
30285
30301
  name: "outFile",
30286
30302
  type: "string",
30287
30303
  affectsEmit: true,
30288
- affectsMultiFileEmitBuildInfo: true,
30304
+ affectsBuildInfo: true,
30289
30305
  affectsDeclarationPath: true,
30290
- affectsBundleEmitBuildInfo: true,
30291
30306
  isFilePath: true,
30292
30307
  paramType: Diagnostics.FILE,
30293
30308
  showInSimplifiedHelpView: true,
@@ -30299,7 +30314,7 @@ var commandOptionsWithoutBuild = [
30299
30314
  name: "outDir",
30300
30315
  type: "string",
30301
30316
  affectsEmit: true,
30302
- affectsMultiFileEmitBuildInfo: true,
30317
+ affectsBuildInfo: true,
30303
30318
  affectsDeclarationPath: true,
30304
30319
  isFilePath: true,
30305
30320
  paramType: Diagnostics.DIRECTORY,
@@ -30311,7 +30326,7 @@ var commandOptionsWithoutBuild = [
30311
30326
  name: "rootDir",
30312
30327
  type: "string",
30313
30328
  affectsEmit: true,
30314
- affectsMultiFileEmitBuildInfo: true,
30329
+ affectsBuildInfo: true,
30315
30330
  affectsDeclarationPath: true,
30316
30331
  isFilePath: true,
30317
30332
  paramType: Diagnostics.LOCATION,
@@ -30322,9 +30337,7 @@ var commandOptionsWithoutBuild = [
30322
30337
  {
30323
30338
  name: "composite",
30324
30339
  type: "boolean",
30325
- affectsEmit: true,
30326
- affectsMultiFileEmitBuildInfo: true,
30327
- affectsBundleEmitBuildInfo: true,
30340
+ affectsBuildInfo: true,
30328
30341
  isTSConfigOnly: true,
30329
30342
  category: Diagnostics.Projects,
30330
30343
  transpileOptionValue: void 0,
@@ -30335,8 +30348,7 @@ var commandOptionsWithoutBuild = [
30335
30348
  name: "tsBuildInfoFile",
30336
30349
  type: "string",
30337
30350
  affectsEmit: true,
30338
- affectsMultiFileEmitBuildInfo: true,
30339
- affectsBundleEmitBuildInfo: true,
30351
+ affectsBuildInfo: true,
30340
30352
  isFilePath: true,
30341
30353
  paramType: Diagnostics.FILE,
30342
30354
  category: Diagnostics.Projects,
@@ -30348,7 +30360,7 @@ var commandOptionsWithoutBuild = [
30348
30360
  name: "removeComments",
30349
30361
  type: "boolean",
30350
30362
  affectsEmit: true,
30351
- affectsMultiFileEmitBuildInfo: true,
30363
+ affectsBuildInfo: true,
30352
30364
  showInSimplifiedHelpView: true,
30353
30365
  category: Diagnostics.Emit,
30354
30366
  defaultValueDescription: false,
@@ -30367,7 +30379,7 @@ var commandOptionsWithoutBuild = [
30367
30379
  name: "importHelpers",
30368
30380
  type: "boolean",
30369
30381
  affectsEmit: true,
30370
- affectsMultiFileEmitBuildInfo: true,
30382
+ affectsBuildInfo: true,
30371
30383
  category: Diagnostics.Emit,
30372
30384
  description: Diagnostics.Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file,
30373
30385
  defaultValueDescription: false
@@ -30381,7 +30393,7 @@ var commandOptionsWithoutBuild = [
30381
30393
  })),
30382
30394
  affectsEmit: true,
30383
30395
  affectsSemanticDiagnostics: true,
30384
- affectsMultiFileEmitBuildInfo: true,
30396
+ affectsBuildInfo: true,
30385
30397
  category: Diagnostics.Emit,
30386
30398
  description: Diagnostics.Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types,
30387
30399
  defaultValueDescription: 0 /* Remove */
@@ -30390,7 +30402,7 @@ var commandOptionsWithoutBuild = [
30390
30402
  name: "downlevelIteration",
30391
30403
  type: "boolean",
30392
30404
  affectsEmit: true,
30393
- affectsMultiFileEmitBuildInfo: true,
30405
+ affectsBuildInfo: true,
30394
30406
  category: Diagnostics.Emit,
30395
30407
  description: Diagnostics.Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration,
30396
30408
  defaultValueDescription: false
@@ -30406,7 +30418,7 @@ var commandOptionsWithoutBuild = [
30406
30418
  {
30407
30419
  name: "strict",
30408
30420
  type: "boolean",
30409
- affectsMultiFileEmitBuildInfo: true,
30421
+ affectsBuildInfo: true,
30410
30422
  showInSimplifiedHelpView: true,
30411
30423
  category: Diagnostics.Type_Checking,
30412
30424
  description: Diagnostics.Enable_all_strict_type_checking_options,
@@ -30416,7 +30428,7 @@ var commandOptionsWithoutBuild = [
30416
30428
  name: "noImplicitAny",
30417
30429
  type: "boolean",
30418
30430
  affectsSemanticDiagnostics: true,
30419
- affectsMultiFileEmitBuildInfo: true,
30431
+ affectsBuildInfo: true,
30420
30432
  strictFlag: true,
30421
30433
  category: Diagnostics.Type_Checking,
30422
30434
  description: Diagnostics.Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type,
@@ -30426,7 +30438,7 @@ var commandOptionsWithoutBuild = [
30426
30438
  name: "strictNullChecks",
30427
30439
  type: "boolean",
30428
30440
  affectsSemanticDiagnostics: true,
30429
- affectsMultiFileEmitBuildInfo: true,
30441
+ affectsBuildInfo: true,
30430
30442
  strictFlag: true,
30431
30443
  category: Diagnostics.Type_Checking,
30432
30444
  description: Diagnostics.When_type_checking_take_into_account_null_and_undefined,
@@ -30436,7 +30448,7 @@ var commandOptionsWithoutBuild = [
30436
30448
  name: "strictFunctionTypes",
30437
30449
  type: "boolean",
30438
30450
  affectsSemanticDiagnostics: true,
30439
- affectsMultiFileEmitBuildInfo: true,
30451
+ affectsBuildInfo: true,
30440
30452
  strictFlag: true,
30441
30453
  category: Diagnostics.Type_Checking,
30442
30454
  description: Diagnostics.When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible,
@@ -30446,7 +30458,7 @@ var commandOptionsWithoutBuild = [
30446
30458
  name: "strictBindCallApply",
30447
30459
  type: "boolean",
30448
30460
  affectsSemanticDiagnostics: true,
30449
- affectsMultiFileEmitBuildInfo: true,
30461
+ affectsBuildInfo: true,
30450
30462
  strictFlag: true,
30451
30463
  category: Diagnostics.Type_Checking,
30452
30464
  description: Diagnostics.Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function,
@@ -30456,7 +30468,7 @@ var commandOptionsWithoutBuild = [
30456
30468
  name: "strictPropertyInitialization",
30457
30469
  type: "boolean",
30458
30470
  affectsSemanticDiagnostics: true,
30459
- affectsMultiFileEmitBuildInfo: true,
30471
+ affectsBuildInfo: true,
30460
30472
  strictFlag: true,
30461
30473
  category: Diagnostics.Type_Checking,
30462
30474
  description: Diagnostics.Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor,
@@ -30466,7 +30478,7 @@ var commandOptionsWithoutBuild = [
30466
30478
  name: "noImplicitThis",
30467
30479
  type: "boolean",
30468
30480
  affectsSemanticDiagnostics: true,
30469
- affectsMultiFileEmitBuildInfo: true,
30481
+ affectsBuildInfo: true,
30470
30482
  strictFlag: true,
30471
30483
  category: Diagnostics.Type_Checking,
30472
30484
  description: Diagnostics.Enable_error_reporting_when_this_is_given_the_type_any,
@@ -30476,7 +30488,7 @@ var commandOptionsWithoutBuild = [
30476
30488
  name: "useUnknownInCatchVariables",
30477
30489
  type: "boolean",
30478
30490
  affectsSemanticDiagnostics: true,
30479
- affectsMultiFileEmitBuildInfo: true,
30491
+ affectsBuildInfo: true,
30480
30492
  strictFlag: true,
30481
30493
  category: Diagnostics.Type_Checking,
30482
30494
  description: Diagnostics.Default_catch_clause_variables_as_unknown_instead_of_any,
@@ -30487,7 +30499,7 @@ var commandOptionsWithoutBuild = [
30487
30499
  type: "boolean",
30488
30500
  affectsSourceFile: true,
30489
30501
  affectsEmit: true,
30490
- affectsMultiFileEmitBuildInfo: true,
30502
+ affectsBuildInfo: true,
30491
30503
  strictFlag: true,
30492
30504
  category: Diagnostics.Type_Checking,
30493
30505
  description: Diagnostics.Ensure_use_strict_is_always_emitted,
@@ -30497,7 +30509,7 @@ var commandOptionsWithoutBuild = [
30497
30509
  name: "noUnusedLocals",
30498
30510
  type: "boolean",
30499
30511
  affectsSemanticDiagnostics: true,
30500
- affectsMultiFileEmitBuildInfo: true,
30512
+ affectsBuildInfo: true,
30501
30513
  category: Diagnostics.Type_Checking,
30502
30514
  description: Diagnostics.Enable_error_reporting_when_local_variables_aren_t_read,
30503
30515
  defaultValueDescription: false
@@ -30506,7 +30518,7 @@ var commandOptionsWithoutBuild = [
30506
30518
  name: "noUnusedParameters",
30507
30519
  type: "boolean",
30508
30520
  affectsSemanticDiagnostics: true,
30509
- affectsMultiFileEmitBuildInfo: true,
30521
+ affectsBuildInfo: true,
30510
30522
  category: Diagnostics.Type_Checking,
30511
30523
  description: Diagnostics.Raise_an_error_when_a_function_parameter_isn_t_read,
30512
30524
  defaultValueDescription: false
@@ -30515,7 +30527,7 @@ var commandOptionsWithoutBuild = [
30515
30527
  name: "exactOptionalPropertyTypes",
30516
30528
  type: "boolean",
30517
30529
  affectsSemanticDiagnostics: true,
30518
- affectsMultiFileEmitBuildInfo: true,
30530
+ affectsBuildInfo: true,
30519
30531
  category: Diagnostics.Type_Checking,
30520
30532
  description: Diagnostics.Interpret_optional_property_types_as_written_rather_than_adding_undefined,
30521
30533
  defaultValueDescription: false
@@ -30524,7 +30536,7 @@ var commandOptionsWithoutBuild = [
30524
30536
  name: "noImplicitReturns",
30525
30537
  type: "boolean",
30526
30538
  affectsSemanticDiagnostics: true,
30527
- affectsMultiFileEmitBuildInfo: true,
30539
+ affectsBuildInfo: true,
30528
30540
  category: Diagnostics.Type_Checking,
30529
30541
  description: Diagnostics.Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function,
30530
30542
  defaultValueDescription: false
@@ -30534,7 +30546,7 @@ var commandOptionsWithoutBuild = [
30534
30546
  type: "boolean",
30535
30547
  affectsBindDiagnostics: true,
30536
30548
  affectsSemanticDiagnostics: true,
30537
- affectsMultiFileEmitBuildInfo: true,
30549
+ affectsBuildInfo: true,
30538
30550
  category: Diagnostics.Type_Checking,
30539
30551
  description: Diagnostics.Enable_error_reporting_for_fallthrough_cases_in_switch_statements,
30540
30552
  defaultValueDescription: false
@@ -30543,7 +30555,7 @@ var commandOptionsWithoutBuild = [
30543
30555
  name: "noUncheckedIndexedAccess",
30544
30556
  type: "boolean",
30545
30557
  affectsSemanticDiagnostics: true,
30546
- affectsMultiFileEmitBuildInfo: true,
30558
+ affectsBuildInfo: true,
30547
30559
  category: Diagnostics.Type_Checking,
30548
30560
  description: Diagnostics.Add_undefined_to_a_type_when_accessed_using_an_index,
30549
30561
  defaultValueDescription: false
@@ -30552,7 +30564,7 @@ var commandOptionsWithoutBuild = [
30552
30564
  name: "noImplicitOverride",
30553
30565
  type: "boolean",
30554
30566
  affectsSemanticDiagnostics: true,
30555
- affectsMultiFileEmitBuildInfo: true,
30567
+ affectsBuildInfo: true,
30556
30568
  category: Diagnostics.Type_Checking,
30557
30569
  description: Diagnostics.Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier,
30558
30570
  defaultValueDescription: false
@@ -30561,7 +30573,7 @@ var commandOptionsWithoutBuild = [
30561
30573
  name: "noPropertyAccessFromIndexSignature",
30562
30574
  type: "boolean",
30563
30575
  affectsSemanticDiagnostics: true,
30564
- affectsMultiFileEmitBuildInfo: true,
30576
+ affectsBuildInfo: true,
30565
30577
  showInSimplifiedHelpView: false,
30566
30578
  category: Diagnostics.Type_Checking,
30567
30579
  description: Diagnostics.Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type,
@@ -30642,7 +30654,7 @@ var commandOptionsWithoutBuild = [
30642
30654
  name: "allowSyntheticDefaultImports",
30643
30655
  type: "boolean",
30644
30656
  affectsSemanticDiagnostics: true,
30645
- affectsMultiFileEmitBuildInfo: true,
30657
+ affectsBuildInfo: true,
30646
30658
  category: Diagnostics.Interop_Constraints,
30647
30659
  description: Diagnostics.Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export,
30648
30660
  defaultValueDescription: Diagnostics.module_system_or_esModuleInterop
@@ -30652,7 +30664,7 @@ var commandOptionsWithoutBuild = [
30652
30664
  type: "boolean",
30653
30665
  affectsSemanticDiagnostics: true,
30654
30666
  affectsEmit: true,
30655
- affectsMultiFileEmitBuildInfo: true,
30667
+ affectsBuildInfo: true,
30656
30668
  showInSimplifiedHelpView: true,
30657
30669
  category: Diagnostics.Interop_Constraints,
30658
30670
  description: Diagnostics.Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility,
@@ -30669,7 +30681,7 @@ var commandOptionsWithoutBuild = [
30669
30681
  name: "allowUmdGlobalAccess",
30670
30682
  type: "boolean",
30671
30683
  affectsSemanticDiagnostics: true,
30672
- affectsMultiFileEmitBuildInfo: true,
30684
+ affectsBuildInfo: true,
30673
30685
  category: Diagnostics.Modules,
30674
30686
  description: Diagnostics.Allow_accessing_UMD_globals_from_modules,
30675
30687
  defaultValueDescription: false
@@ -30690,7 +30702,7 @@ var commandOptionsWithoutBuild = [
30690
30702
  name: "sourceRoot",
30691
30703
  type: "string",
30692
30704
  affectsEmit: true,
30693
- affectsMultiFileEmitBuildInfo: true,
30705
+ affectsBuildInfo: true,
30694
30706
  paramType: Diagnostics.LOCATION,
30695
30707
  category: Diagnostics.Emit,
30696
30708
  description: Diagnostics.Specify_the_root_path_for_debuggers_to_find_the_reference_source_code
@@ -30699,25 +30711,16 @@ var commandOptionsWithoutBuild = [
30699
30711
  name: "mapRoot",
30700
30712
  type: "string",
30701
30713
  affectsEmit: true,
30702
- affectsMultiFileEmitBuildInfo: true,
30714
+ affectsBuildInfo: true,
30703
30715
  paramType: Diagnostics.LOCATION,
30704
30716
  category: Diagnostics.Emit,
30705
30717
  description: Diagnostics.Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations
30706
30718
  },
30707
- {
30708
- name: "inlineSourceMap",
30709
- type: "boolean",
30710
- affectsEmit: true,
30711
- affectsMultiFileEmitBuildInfo: true,
30712
- category: Diagnostics.Emit,
30713
- description: Diagnostics.Include_sourcemap_files_inside_the_emitted_JavaScript,
30714
- defaultValueDescription: false
30715
- },
30716
30719
  {
30717
30720
  name: "inlineSources",
30718
30721
  type: "boolean",
30719
30722
  affectsEmit: true,
30720
- affectsMultiFileEmitBuildInfo: true,
30723
+ affectsBuildInfo: true,
30721
30724
  category: Diagnostics.Emit,
30722
30725
  description: Diagnostics.Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript,
30723
30726
  defaultValueDescription: false
@@ -30726,7 +30729,7 @@ var commandOptionsWithoutBuild = [
30726
30729
  name: "experimentalDecorators",
30727
30730
  type: "boolean",
30728
30731
  affectsSemanticDiagnostics: true,
30729
- affectsMultiFileEmitBuildInfo: true,
30732
+ affectsBuildInfo: true,
30730
30733
  category: Diagnostics.Language_and_Environment,
30731
30734
  description: Diagnostics.Enable_experimental_support_for_TC39_stage_2_draft_decorators,
30732
30735
  defaultValueDescription: false
@@ -30736,7 +30739,7 @@ var commandOptionsWithoutBuild = [
30736
30739
  type: "boolean",
30737
30740
  affectsSemanticDiagnostics: true,
30738
30741
  affectsEmit: true,
30739
- affectsMultiFileEmitBuildInfo: true,
30742
+ affectsBuildInfo: true,
30740
30743
  category: Diagnostics.Language_and_Environment,
30741
30744
  description: Diagnostics.Emit_design_type_metadata_for_decorated_declarations_in_source_files,
30742
30745
  defaultValueDescription: false
@@ -30760,7 +30763,7 @@ var commandOptionsWithoutBuild = [
30760
30763
  type: "string",
30761
30764
  affectsSemanticDiagnostics: true,
30762
30765
  affectsEmit: true,
30763
- affectsMultiFileEmitBuildInfo: true,
30766
+ affectsBuildInfo: true,
30764
30767
  affectsModuleResolution: true,
30765
30768
  category: Diagnostics.Language_and_Environment,
30766
30769
  description: Diagnostics.Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk,
@@ -30778,9 +30781,8 @@ var commandOptionsWithoutBuild = [
30778
30781
  name: "out",
30779
30782
  type: "string",
30780
30783
  affectsEmit: true,
30781
- affectsMultiFileEmitBuildInfo: true,
30784
+ affectsBuildInfo: true,
30782
30785
  affectsDeclarationPath: true,
30783
- affectsBundleEmitBuildInfo: true,
30784
30786
  isFilePath: false,
30785
30787
  category: Diagnostics.Backwards_Compatibility,
30786
30788
  paramType: Diagnostics.FILE,
@@ -30791,7 +30793,7 @@ var commandOptionsWithoutBuild = [
30791
30793
  name: "reactNamespace",
30792
30794
  type: "string",
30793
30795
  affectsEmit: true,
30794
- affectsMultiFileEmitBuildInfo: true,
30796
+ affectsBuildInfo: true,
30795
30797
  category: Diagnostics.Language_and_Environment,
30796
30798
  description: Diagnostics.Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit,
30797
30799
  defaultValueDescription: "`React`"
@@ -30799,7 +30801,7 @@ var commandOptionsWithoutBuild = [
30799
30801
  {
30800
30802
  name: "skipDefaultLibCheck",
30801
30803
  type: "boolean",
30802
- affectsMultiFileEmitBuildInfo: true,
30804
+ affectsBuildInfo: true,
30803
30805
  category: Diagnostics.Completeness,
30804
30806
  description: Diagnostics.Skip_type_checking_d_ts_files_that_are_included_with_TypeScript,
30805
30807
  defaultValueDescription: false
@@ -30815,7 +30817,7 @@ var commandOptionsWithoutBuild = [
30815
30817
  name: "emitBOM",
30816
30818
  type: "boolean",
30817
30819
  affectsEmit: true,
30818
- affectsMultiFileEmitBuildInfo: true,
30820
+ affectsBuildInfo: true,
30819
30821
  category: Diagnostics.Emit,
30820
30822
  description: Diagnostics.Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files,
30821
30823
  defaultValueDescription: false
@@ -30827,7 +30829,7 @@ var commandOptionsWithoutBuild = [
30827
30829
  lf: 1 /* LineFeed */
30828
30830
  })),
30829
30831
  affectsEmit: true,
30830
- affectsMultiFileEmitBuildInfo: true,
30832
+ affectsBuildInfo: true,
30831
30833
  paramType: Diagnostics.NEWLINE,
30832
30834
  category: Diagnostics.Emit,
30833
30835
  description: Diagnostics.Set_the_newline_character_for_emitting_files,
@@ -30837,7 +30839,7 @@ var commandOptionsWithoutBuild = [
30837
30839
  name: "noErrorTruncation",
30838
30840
  type: "boolean",
30839
30841
  affectsSemanticDiagnostics: true,
30840
- affectsMultiFileEmitBuildInfo: true,
30842
+ affectsBuildInfo: true,
30841
30843
  category: Diagnostics.Output_Formatting,
30842
30844
  description: Diagnostics.Disable_truncating_types_in_error_messages,
30843
30845
  defaultValueDescription: false
@@ -30864,7 +30866,7 @@ var commandOptionsWithoutBuild = [
30864
30866
  name: "stripInternal",
30865
30867
  type: "boolean",
30866
30868
  affectsEmit: true,
30867
- affectsMultiFileEmitBuildInfo: true,
30869
+ affectsBuildInfo: true,
30868
30870
  category: Diagnostics.Emit,
30869
30871
  description: Diagnostics.Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments,
30870
30872
  defaultValueDescription: false
@@ -30905,7 +30907,7 @@ var commandOptionsWithoutBuild = [
30905
30907
  name: "noImplicitUseStrict",
30906
30908
  type: "boolean",
30907
30909
  affectsSemanticDiagnostics: true,
30908
- affectsMultiFileEmitBuildInfo: true,
30910
+ affectsBuildInfo: true,
30909
30911
  category: Diagnostics.Backwards_Compatibility,
30910
30912
  description: Diagnostics.Disable_adding_use_strict_directives_in_emitted_JavaScript_files,
30911
30913
  defaultValueDescription: false
@@ -30914,7 +30916,7 @@ var commandOptionsWithoutBuild = [
30914
30916
  name: "noEmitHelpers",
30915
30917
  type: "boolean",
30916
30918
  affectsEmit: true,
30917
- affectsMultiFileEmitBuildInfo: true,
30919
+ affectsBuildInfo: true,
30918
30920
  category: Diagnostics.Emit,
30919
30921
  description: Diagnostics.Disable_generating_custom_helper_functions_like_extends_in_compiled_output,
30920
30922
  defaultValueDescription: false
@@ -30923,7 +30925,7 @@ var commandOptionsWithoutBuild = [
30923
30925
  name: "noEmitOnError",
30924
30926
  type: "boolean",
30925
30927
  affectsEmit: true,
30926
- affectsMultiFileEmitBuildInfo: true,
30928
+ affectsBuildInfo: true,
30927
30929
  category: Diagnostics.Emit,
30928
30930
  transpileOptionValue: void 0,
30929
30931
  description: Diagnostics.Disable_emitting_files_if_any_type_checking_errors_are_reported,
@@ -30933,7 +30935,7 @@ var commandOptionsWithoutBuild = [
30933
30935
  name: "preserveConstEnums",
30934
30936
  type: "boolean",
30935
30937
  affectsEmit: true,
30936
- affectsMultiFileEmitBuildInfo: true,
30938
+ affectsBuildInfo: true,
30937
30939
  category: Diagnostics.Emit,
30938
30940
  description: Diagnostics.Disable_erasing_const_enum_declarations_in_generated_code,
30939
30941
  defaultValueDescription: false
@@ -30942,7 +30944,7 @@ var commandOptionsWithoutBuild = [
30942
30944
  name: "declarationDir",
30943
30945
  type: "string",
30944
30946
  affectsEmit: true,
30945
- affectsMultiFileEmitBuildInfo: true,
30947
+ affectsBuildInfo: true,
30946
30948
  affectsDeclarationPath: true,
30947
30949
  isFilePath: true,
30948
30950
  paramType: Diagnostics.DIRECTORY,
@@ -30953,7 +30955,7 @@ var commandOptionsWithoutBuild = [
30953
30955
  {
30954
30956
  name: "skipLibCheck",
30955
30957
  type: "boolean",
30956
- affectsMultiFileEmitBuildInfo: true,
30958
+ affectsBuildInfo: true,
30957
30959
  category: Diagnostics.Completeness,
30958
30960
  description: Diagnostics.Skip_type_checking_all_d_ts_files,
30959
30961
  defaultValueDescription: false
@@ -30963,7 +30965,7 @@ var commandOptionsWithoutBuild = [
30963
30965
  type: "boolean",
30964
30966
  affectsBindDiagnostics: true,
30965
30967
  affectsSemanticDiagnostics: true,
30966
- affectsMultiFileEmitBuildInfo: true,
30968
+ affectsBuildInfo: true,
30967
30969
  category: Diagnostics.Type_Checking,
30968
30970
  description: Diagnostics.Disable_error_reporting_for_unused_labels,
30969
30971
  defaultValueDescription: void 0
@@ -30973,7 +30975,7 @@ var commandOptionsWithoutBuild = [
30973
30975
  type: "boolean",
30974
30976
  affectsBindDiagnostics: true,
30975
30977
  affectsSemanticDiagnostics: true,
30976
- affectsMultiFileEmitBuildInfo: true,
30978
+ affectsBuildInfo: true,
30977
30979
  category: Diagnostics.Type_Checking,
30978
30980
  description: Diagnostics.Disable_error_reporting_for_unreachable_code,
30979
30981
  defaultValueDescription: void 0
@@ -30982,7 +30984,7 @@ var commandOptionsWithoutBuild = [
30982
30984
  name: "suppressExcessPropertyErrors",
30983
30985
  type: "boolean",
30984
30986
  affectsSemanticDiagnostics: true,
30985
- affectsMultiFileEmitBuildInfo: true,
30987
+ affectsBuildInfo: true,
30986
30988
  category: Diagnostics.Backwards_Compatibility,
30987
30989
  description: Diagnostics.Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals,
30988
30990
  defaultValueDescription: false
@@ -30991,7 +30993,7 @@ var commandOptionsWithoutBuild = [
30991
30993
  name: "suppressImplicitAnyIndexErrors",
30992
30994
  type: "boolean",
30993
30995
  affectsSemanticDiagnostics: true,
30994
- affectsMultiFileEmitBuildInfo: true,
30996
+ affectsBuildInfo: true,
30995
30997
  category: Diagnostics.Backwards_Compatibility,
30996
30998
  description: Diagnostics.Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures,
30997
30999
  defaultValueDescription: false
@@ -31016,7 +31018,7 @@ var commandOptionsWithoutBuild = [
31016
31018
  name: "noStrictGenericChecks",
31017
31019
  type: "boolean",
31018
31020
  affectsSemanticDiagnostics: true,
31019
- affectsMultiFileEmitBuildInfo: true,
31021
+ affectsBuildInfo: true,
31020
31022
  category: Diagnostics.Backwards_Compatibility,
31021
31023
  description: Diagnostics.Disable_strict_checking_of_generic_signatures_in_function_types,
31022
31024
  defaultValueDescription: false
@@ -31026,7 +31028,7 @@ var commandOptionsWithoutBuild = [
31026
31028
  type: "boolean",
31027
31029
  affectsSemanticDiagnostics: true,
31028
31030
  affectsEmit: true,
31029
- affectsMultiFileEmitBuildInfo: true,
31031
+ affectsBuildInfo: true,
31030
31032
  category: Diagnostics.Language_and_Environment,
31031
31033
  description: Diagnostics.Emit_ECMAScript_standard_compliant_class_fields,
31032
31034
  defaultValueDescription: Diagnostics.true_for_ES2022_and_above_including_ESNext
@@ -31035,7 +31037,7 @@ var commandOptionsWithoutBuild = [
31035
31037
  name: "preserveValueImports",
31036
31038
  type: "boolean",
31037
31039
  affectsEmit: true,
31038
- affectsMultiFileEmitBuildInfo: true,
31040
+ affectsBuildInfo: true,
31039
31041
  category: Diagnostics.Emit,
31040
31042
  description: Diagnostics.Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed,
31041
31043
  defaultValueDescription: false
@@ -33211,14 +33213,18 @@ function createModeAwareCache() {
33211
33213
  return result;
33212
33214
  }
33213
33215
  }
33216
+ function getResolutionName(entry) {
33217
+ return !isString(entry) ? isStringLiteralLike(entry) ? entry.text : toFileNameLowerCase(entry.fileName) : entry;
33218
+ }
33219
+ function getResolutionMode(entry, file) {
33220
+ return isStringLiteralLike(entry) ? getModeForUsageLocation(file, entry) : entry.resolutionMode || file.impliedNodeFormat;
33221
+ }
33214
33222
  function zipToModeAwareCache(file, keys, values) {
33215
33223
  Debug.assert(keys.length === values.length);
33216
33224
  const map2 = createModeAwareCache();
33217
33225
  for (let i = 0; i < keys.length; ++i) {
33218
33226
  const entry = keys[i];
33219
- const name = !isString(entry) ? entry.fileName.toLowerCase() : entry;
33220
- const mode = !isString(entry) ? entry.resolutionMode || file.impliedNodeFormat : getModeForResolutionAtIndex(file, i);
33221
- map2.set(name, mode, values[i]);
33227
+ map2.set(getResolutionName(entry), getResolutionMode(entry, file), values[i]);
33222
33228
  }
33223
33229
  return map2;
33224
33230
  }
@@ -48004,13 +48010,6 @@ function createTypeChecker(host) {
48004
48010
  function isOptionalPropertyDeclaration(node) {
48005
48011
  return isPropertyDeclaration(node) && !hasAccessorModifier(node) && node.questionToken;
48006
48012
  }
48007
- function isOptionalJSDocPropertyLikeTag(node) {
48008
- if (!isJSDocPropertyLikeTag(node)) {
48009
- return false;
48010
- }
48011
- const { isBracketed, typeExpression } = node;
48012
- return isBracketed || !!typeExpression && typeExpression.type.kind === 319 /* JSDocOptionalType */;
48013
- }
48014
48013
  function createTypePredicate(kind, parameterName, parameterIndex, type) {
48015
48014
  return { kind, parameterName, parameterIndex, type };
48016
48015
  }
@@ -52616,7 +52615,7 @@ function createTypeChecker(host) {
52616
52615
  }
52617
52616
  function isRelatedTo(originalSource, originalTarget, recursionFlags = 3 /* Both */, reportErrors2 = false, headMessage2, intersectionState = 0 /* None */) {
52618
52617
  if (originalSource.flags & 524288 /* Object */ && originalTarget.flags & 131068 /* Primitive */) {
52619
- if (isSimpleTypeRelatedTo(originalSource, originalTarget, relation, reportErrors2 ? reportError : void 0)) {
52618
+ if (relation === comparableRelation && !(originalTarget.flags & 131072 /* Never */) && isSimpleTypeRelatedTo(originalTarget, originalSource, relation) || isSimpleTypeRelatedTo(originalSource, originalTarget, relation, reportErrors2 ? reportError : void 0)) {
52620
52619
  return -1 /* True */;
52621
52620
  }
52622
52621
  if (reportErrors2) {
@@ -55747,6 +55746,7 @@ function createTypeChecker(host) {
55747
55746
  }
55748
55747
  }
55749
55748
  function inferFromObjectTypes(source, target) {
55749
+ var _a2, _b;
55750
55750
  if (getObjectFlags(source) & 4 /* Reference */ && getObjectFlags(target) & 4 /* Reference */ && (source.target === target.target || isArrayType(source) && isArrayType(target))) {
55751
55751
  inferFromTypeArguments(getTypeArguments(source), getTypeArguments(target), getVariances(source.target));
55752
55752
  return;
@@ -55793,11 +55793,35 @@ function createTypeChecker(host) {
55793
55793
  }
55794
55794
  } else {
55795
55795
  const middleLength = targetArity - startLength - endLength;
55796
- if (middleLength === 2 && elementFlags[startLength] & elementFlags[startLength + 1] & 8 /* Variadic */ && isTupleType(source)) {
55797
- const targetInfo = getInferenceInfoForType(elementTypes[startLength]);
55798
- if (targetInfo && targetInfo.impliedArity !== void 0) {
55799
- inferFromTypes(sliceTupleType(source, startLength, endLength + sourceArity - targetInfo.impliedArity), elementTypes[startLength]);
55800
- inferFromTypes(sliceTupleType(source, startLength + targetInfo.impliedArity, endLength), elementTypes[startLength + 1]);
55796
+ if (middleLength === 2) {
55797
+ if (elementFlags[startLength] & elementFlags[startLength + 1] & 8 /* Variadic */ && isTupleType(source)) {
55798
+ const targetInfo = getInferenceInfoForType(elementTypes[startLength]);
55799
+ if (targetInfo && targetInfo.impliedArity !== void 0) {
55800
+ inferFromTypes(sliceTupleType(source, startLength, endLength + sourceArity - targetInfo.impliedArity), elementTypes[startLength]);
55801
+ inferFromTypes(sliceTupleType(source, startLength + targetInfo.impliedArity, endLength), elementTypes[startLength + 1]);
55802
+ }
55803
+ } else if (elementFlags[startLength] & 8 /* Variadic */ && elementFlags[startLength + 1] & 4 /* Rest */) {
55804
+ const param = (_a2 = getInferenceInfoForType(elementTypes[startLength])) == null ? void 0 : _a2.typeParameter;
55805
+ const constraint = param && getBaseConstraintOfType(param);
55806
+ if (constraint && isTupleType(constraint) && !constraint.target.hasRestElement) {
55807
+ const impliedArity = constraint.target.fixedLength;
55808
+ inferFromTypes(sliceTupleType(source, startLength, sourceArity - (startLength + impliedArity)), elementTypes[startLength]);
55809
+ }
55810
+ } else if (elementFlags[startLength] & 4 /* Rest */ && elementFlags[startLength + 1] & 8 /* Variadic */ && isTupleType(source)) {
55811
+ const param = (_b = getInferenceInfoForType(elementTypes[startLength + 1])) == null ? void 0 : _b.typeParameter;
55812
+ const constraint = param && getBaseConstraintOfType(param);
55813
+ if (constraint && isTupleType(constraint) && !constraint.target.hasRestElement) {
55814
+ const impliedArity = constraint.target.fixedLength;
55815
+ const endIndex = sourceArity - getEndElementCount(target.target, 3 /* Fixed */);
55816
+ const startIndex = endIndex - impliedArity;
55817
+ const trailingSlice = createTupleType(
55818
+ getTypeArguments(source).slice(startIndex, endIndex),
55819
+ source.target.elementFlags.slice(startIndex, endIndex),
55820
+ false,
55821
+ source.target.labeledElementDeclarations && source.target.labeledElementDeclarations.slice(startIndex, endIndex)
55822
+ );
55823
+ inferFromTypes(trailingSlice, elementTypes[startLength + 1]);
55824
+ }
55801
55825
  }
55802
55826
  } else if (middleLength === 1 && elementFlags[startLength] & 8 /* Variadic */) {
55803
55827
  const endsInOptional = target.target.elementFlags[targetArity - 1] & 2 /* Optional */;
@@ -74479,6 +74503,9 @@ function createSourceMapGenerator(host, file, sourceRoot, sourcesDirectoryPath,
74479
74503
  } while (inValue > 0);
74480
74504
  }
74481
74505
  }
74506
+ var sourceMapCommentRegExpDontCareLineStart = /\/\/[@#] source[M]appingURL=(.+)\r?\n?$/;
74507
+ var sourceMapCommentRegExp = /^\/\/[@#] source[M]appingURL=(.+)\r?\n?$/;
74508
+ var whitespaceOrMapCommentRegExp = /^\s*(\/\/[@#] .*)?$/;
74482
74509
  function isStringOrNull(x) {
74483
74510
  return typeof x === "string" || x === null;
74484
74511
  }
@@ -91346,14 +91373,14 @@ function getModuleTransformer(moduleKind) {
91346
91373
  }
91347
91374
  }
91348
91375
  var noTransformers = { scriptTransformers: emptyArray, declarationTransformers: emptyArray };
91349
- function getTransformers(compilerOptions, customTransformers, emitOnlyDtsFiles) {
91376
+ function getTransformers(compilerOptions, customTransformers, emitOnly) {
91350
91377
  return {
91351
- scriptTransformers: getScriptTransformers(compilerOptions, customTransformers, emitOnlyDtsFiles),
91378
+ scriptTransformers: getScriptTransformers(compilerOptions, customTransformers, emitOnly),
91352
91379
  declarationTransformers: getDeclarationTransformers(customTransformers)
91353
91380
  };
91354
91381
  }
91355
- function getScriptTransformers(compilerOptions, customTransformers, emitOnlyDtsFiles) {
91356
- if (emitOnlyDtsFiles)
91382
+ function getScriptTransformers(compilerOptions, customTransformers, emitOnly) {
91383
+ if (emitOnly)
91357
91384
  return emptyArray;
91358
91385
  const languageVersion = getEmitScriptTarget(compilerOptions);
91359
91386
  const moduleKind = getEmitModuleKind(compilerOptions);
@@ -91929,8 +91956,8 @@ function getAllProjectOutputs(configFile, ignoreCase) {
91929
91956
  }
91930
91957
  function getFirstProjectOutput(configFile, ignoreCase) {
91931
91958
  if (outFile(configFile.options)) {
91932
- const { jsFilePath } = getOutputPathsForBundle(configFile.options, false);
91933
- return Debug.checkDefined(jsFilePath, `project ${configFile.options.configFilePath} expected to have at least one output`);
91959
+ const { jsFilePath, declarationFilePath } = getOutputPathsForBundle(configFile.options, false);
91960
+ return Debug.checkDefined(jsFilePath || declarationFilePath, `project ${configFile.options.configFilePath} expected to have at least one output`);
91934
91961
  }
91935
91962
  const getCommonSourceDirectory2 = memoize(() => getCommonSourceDirectoryOfConfig(configFile, ignoreCase));
91936
91963
  for (const inputFileName of configFile.fileNames) {
@@ -91950,7 +91977,7 @@ function getFirstProjectOutput(configFile, ignoreCase) {
91950
91977
  return buildInfoPath;
91951
91978
  return Debug.fail(`project ${configFile.options.configFilePath} expected to have at least one output`);
91952
91979
  }
91953
- function emitFiles(resolver, host, targetSourceFile, { scriptTransformers, declarationTransformers }, emitOnlyDtsFiles, onlyBuildInfo, forceDtsEmit) {
91980
+ function emitFiles(resolver, host, targetSourceFile, { scriptTransformers, declarationTransformers }, emitOnly, onlyBuildInfo, forceDtsEmit) {
91954
91981
  const compilerOptions = host.getCompilerOptions();
91955
91982
  const sourceMapDataList = compilerOptions.sourceMap || compilerOptions.inlineSourceMap || getAreDeclarationMapsEnabled(compilerOptions) ? [] : void 0;
91956
91983
  const emittedFilesList = compilerOptions.listEmittedFiles ? [] : void 0;
@@ -91996,7 +92023,7 @@ function emitFiles(resolver, host, targetSourceFile, { scriptTransformers, decla
91996
92023
  emitBuildInfo(bundleBuildInfo, buildInfoPath);
91997
92024
  (_f = tracing) == null ? void 0 : _f.pop();
91998
92025
  if (!emitSkipped && emittedFilesList) {
91999
- if (!emitOnlyDtsFiles) {
92026
+ if (!emitOnly) {
92000
92027
  if (jsFilePath) {
92001
92028
  emittedFilesList.push(jsFilePath);
92002
92029
  }
@@ -92007,11 +92034,13 @@ function emitFiles(resolver, host, targetSourceFile, { scriptTransformers, decla
92007
92034
  emittedFilesList.push(buildInfoPath);
92008
92035
  }
92009
92036
  }
92010
- if (declarationFilePath) {
92011
- emittedFilesList.push(declarationFilePath);
92012
- }
92013
- if (declarationMapPath) {
92014
- emittedFilesList.push(declarationMapPath);
92037
+ if (emitOnly !== 0 /* Js */) {
92038
+ if (declarationFilePath) {
92039
+ emittedFilesList.push(declarationFilePath);
92040
+ }
92041
+ if (declarationMapPath) {
92042
+ emittedFilesList.push(declarationMapPath);
92043
+ }
92015
92044
  }
92016
92045
  }
92017
92046
  function relativeToBuildInfo(path) {
@@ -92021,17 +92050,15 @@ function emitFiles(resolver, host, targetSourceFile, { scriptTransformers, decla
92021
92050
  function emitBuildInfo(bundle, buildInfoPath) {
92022
92051
  if (!buildInfoPath || targetSourceFile || emitSkipped)
92023
92052
  return;
92024
- const program = host.getProgramBuildInfo();
92025
92053
  if (host.isEmitBlocked(buildInfoPath)) {
92026
92054
  emitSkipped = true;
92027
92055
  return;
92028
92056
  }
92029
- const version2 = version;
92030
- const buildInfo = { bundle, program, version: version2 };
92057
+ const buildInfo = host.getBuildInfo(bundle) || createBuildInfo(void 0, bundle);
92031
92058
  writeFile(host, emitterDiagnostics, buildInfoPath, getBuildInfoText(buildInfo), false, void 0, { buildInfo });
92032
92059
  }
92033
92060
  function emitJsFileOrBundle(sourceFileOrBundle, jsFilePath, sourceMapFilePath, relativeToBuildInfo) {
92034
- if (!sourceFileOrBundle || emitOnlyDtsFiles || !jsFilePath) {
92061
+ if (!sourceFileOrBundle || emitOnly || !jsFilePath) {
92035
92062
  return;
92036
92063
  }
92037
92064
  if (host.isEmitBlocked(jsFilePath) || compilerOptions.noEmit) {
@@ -92065,17 +92092,17 @@ function emitFiles(resolver, host, targetSourceFile, { scriptTransformers, decla
92065
92092
  bundleBuildInfo.js = printer.bundleFileInfo;
92066
92093
  }
92067
92094
  function emitDeclarationFileOrBundle(sourceFileOrBundle, declarationFilePath, declarationMapPath, relativeToBuildInfo) {
92068
- if (!sourceFileOrBundle)
92095
+ if (!sourceFileOrBundle || emitOnly === 0 /* Js */)
92069
92096
  return;
92070
92097
  if (!declarationFilePath) {
92071
- if (emitOnlyDtsFiles || compilerOptions.emitDeclarationOnly)
92098
+ if (emitOnly || compilerOptions.emitDeclarationOnly)
92072
92099
  emitSkipped = true;
92073
92100
  return;
92074
92101
  }
92075
92102
  const sourceFiles = isSourceFile(sourceFileOrBundle) ? [sourceFileOrBundle] : sourceFileOrBundle.sourceFiles;
92076
92103
  const filesForEmit = forceDtsEmit ? sourceFiles : filter(sourceFiles, isSourceFileNotJson);
92077
92104
  const inputListOrBundle = outFile(compilerOptions) ? [factory.createBundle(filesForEmit, !isSourceFile(sourceFileOrBundle) ? sourceFileOrBundle.prepends : void 0)] : filesForEmit;
92078
- if (emitOnlyDtsFiles && !getEmitDeclarations(compilerOptions)) {
92105
+ if (emitOnly && !getEmitDeclarations(compilerOptions)) {
92079
92106
  filesForEmit.forEach(collectLinkedAliases);
92080
92107
  }
92081
92108
  const declarationTransform = transformNodes(resolver, host, factory, compilerOptions, inputListOrBundle, declarationTransformers, false);
@@ -92245,6 +92272,10 @@ function emitFiles(resolver, host, targetSourceFile, { scriptTransformers, decla
92245
92272
  return encodeURI(sourceMapFile);
92246
92273
  }
92247
92274
  }
92275
+ function createBuildInfo(program, bundle) {
92276
+ const version2 = version;
92277
+ return { bundle, program, version: version2 };
92278
+ }
92248
92279
  function getBuildInfoText(buildInfo) {
92249
92280
  return JSON.stringify(buildInfo);
92250
92281
  }
@@ -92404,19 +92435,7 @@ function emitUsingBuildInfoWorker(config, host, getCommandLine, customTransforme
92404
92435
  return;
92405
92436
  break;
92406
92437
  case buildInfoPath:
92407
- const newBuildInfo = data.buildInfo;
92408
- newBuildInfo.program = buildInfo.program;
92409
- if (newBuildInfo.program && changedDtsText !== void 0 && config.options.composite) {
92410
- newBuildInfo.program.outSignature = computeSignature(changedDtsText, createHash, changedDtsData);
92411
- }
92412
- const { js, dts, sourceFiles } = buildInfo.bundle;
92413
- newBuildInfo.bundle.js.sources = js.sources;
92414
- if (dts) {
92415
- newBuildInfo.bundle.dts.sources = dts.sources;
92416
- }
92417
- newBuildInfo.bundle.sourceFiles = sourceFiles;
92418
- outputFiles.push({ name, text: getBuildInfoText(newBuildInfo), writeByteOrderMark, buildInfo: newBuildInfo });
92419
- return;
92438
+ break;
92420
92439
  case declarationFilePath:
92421
92440
  if (declarationText === text)
92422
92441
  return;
@@ -92430,13 +92449,25 @@ function emitUsingBuildInfoWorker(config, host, getCommandLine, customTransforme
92430
92449
  default:
92431
92450
  Debug.fail(`Unexpected path: ${name}`);
92432
92451
  }
92433
- outputFiles.push({ name, text, writeByteOrderMark });
92452
+ outputFiles.push({ name, text, writeByteOrderMark, data });
92434
92453
  },
92435
92454
  isEmitBlocked: returnFalse,
92436
92455
  readFile: (f) => host.readFile(f),
92437
92456
  fileExists: (f) => host.fileExists(f),
92438
92457
  useCaseSensitiveFileNames: () => host.useCaseSensitiveFileNames(),
92439
- getProgramBuildInfo: returnUndefined,
92458
+ getBuildInfo: (bundle) => {
92459
+ const program = buildInfo.program;
92460
+ if (program && changedDtsText !== void 0 && config.options.composite) {
92461
+ program.outSignature = computeSignature(changedDtsText, createHash, changedDtsData);
92462
+ }
92463
+ const { js, dts, sourceFiles } = buildInfo.bundle;
92464
+ bundle.js.sources = js.sources;
92465
+ if (dts) {
92466
+ bundle.dts.sources = dts.sources;
92467
+ }
92468
+ bundle.sourceFiles = sourceFiles;
92469
+ return createBuildInfo(program, bundle);
92470
+ },
92440
92471
  getSourceFileFromReference: returnUndefined,
92441
92472
  redirectTargetsMap: createMultiMap(),
92442
92473
  getFileIncludeReasons: notImplemented,
@@ -97350,7 +97381,7 @@ function loadWithTypeDirectiveCache(names, containingFile, redirectedReference,
97350
97381
  for (const name of names) {
97351
97382
  let result;
97352
97383
  const mode = getModeForFileReference(name, containingFileMode);
97353
- const strName = isString(name) ? name : name.fileName.toLowerCase();
97384
+ const strName = getResolutionName(name);
97354
97385
  const cacheKey = mode !== void 0 ? `${mode}|${strName}` : strName;
97355
97386
  if (cache.has(cacheKey)) {
97356
97387
  result = cache.get(cacheKey);
@@ -97426,17 +97457,18 @@ function getResolutionModeOverrideForClause(clause, grammarErrorOnNode) {
97426
97457
  }
97427
97458
  return elem.value.text === "import" ? 99 /* ESNext */ : 1 /* CommonJS */;
97428
97459
  }
97429
- function loadWithModeAwareCache(names, containingFile, containingFileName, redirectedReference, loader) {
97460
+ function loadWithModeAwareCache(names, containingFile, containingFileName, redirectedReference, resolutionInfo, loader) {
97430
97461
  if (names.length === 0) {
97431
97462
  return [];
97432
97463
  }
97433
97464
  const resolutions = [];
97434
97465
  const cache = new Map();
97435
97466
  let i = 0;
97436
- for (const name of names) {
97467
+ for (const entry of resolutionInfo ? resolutionInfo.names : names) {
97437
97468
  let result;
97438
- const mode = getModeForResolutionAtIndex(containingFile, i);
97469
+ const mode = !isString(entry) ? getModeForUsageLocation(containingFile, entry) : getModeForResolutionAtIndex(containingFile, i);
97439
97470
  i++;
97471
+ const name = isString(entry) ? entry : entry.text;
97440
97472
  const cacheKey = mode !== void 0 ? `${mode}|${name}` : name;
97441
97473
  if (cache.has(cacheKey)) {
97442
97474
  result = cache.get(cacheKey);
@@ -97733,23 +97765,34 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
97733
97765
  let actualResolveModuleNamesWorker;
97734
97766
  const hasInvalidatedResolutions = host.hasInvalidatedResolutions || returnFalse;
97735
97767
  if (host.resolveModuleNames) {
97736
- actualResolveModuleNamesWorker = (moduleNames, containingFile, containingFileName, reusedNames, redirectedReference) => host.resolveModuleNames(Debug.checkEachDefined(moduleNames), containingFileName, reusedNames, redirectedReference, options, containingFile).map((resolved) => {
97737
- if (!resolved || resolved.extension !== void 0) {
97738
- return resolved;
97739
- }
97740
- const withExtension = clone(resolved);
97741
- withExtension.extension = extensionFromPath(resolved.resolvedFileName);
97742
- return withExtension;
97743
- });
97768
+ actualResolveModuleNamesWorker = (moduleNames, containingFile, containingFileName, redirectedReference, resolutionInfo) => {
97769
+ var _a3;
97770
+ return host.resolveModuleNames(
97771
+ moduleNames.map((literal) => literal.text),
97772
+ containingFileName,
97773
+ (_a3 = resolutionInfo == null ? void 0 : resolutionInfo.reusedNames) == null ? void 0 : _a3.map((literal) => literal.text),
97774
+ redirectedReference,
97775
+ options,
97776
+ containingFile,
97777
+ resolutionInfo
97778
+ ).map((resolved) => {
97779
+ if (!resolved || resolved.extension !== void 0) {
97780
+ return resolved;
97781
+ }
97782
+ const withExtension = clone(resolved);
97783
+ withExtension.extension = extensionFromPath(resolved.resolvedFileName);
97784
+ return withExtension;
97785
+ });
97786
+ };
97744
97787
  moduleResolutionCache = (_b = host.getModuleResolutionCache) == null ? void 0 : _b.call(host);
97745
97788
  } else {
97746
97789
  moduleResolutionCache = createModuleResolutionCache(currentDirectory, getCanonicalFileName, options);
97747
97790
  const loader = (moduleName, resolverMode, containingFileName, redirectedReference) => resolveModuleName(moduleName, containingFileName, options, host, moduleResolutionCache, redirectedReference, resolverMode).resolvedModule;
97748
- actualResolveModuleNamesWorker = (moduleNames, containingFile, containingFileName, _reusedNames, redirectedReference) => loadWithModeAwareCache(Debug.checkEachDefined(moduleNames), containingFile, containingFileName, redirectedReference, loader);
97791
+ actualResolveModuleNamesWorker = (moduleNames, containingFile, containingFileName, redirectedReference, resolutionInfo) => loadWithModeAwareCache(moduleNames, containingFile, containingFileName, redirectedReference, resolutionInfo, loader);
97749
97792
  }
97750
97793
  let actualResolveTypeReferenceDirectiveNamesWorker;
97751
97794
  if (host.resolveTypeReferenceDirectives) {
97752
- actualResolveTypeReferenceDirectiveNamesWorker = (typeDirectiveNames, containingFile, redirectedReference, containingFileMode) => host.resolveTypeReferenceDirectives(Debug.checkEachDefined(typeDirectiveNames), containingFile, redirectedReference, options, containingFileMode);
97795
+ actualResolveTypeReferenceDirectiveNamesWorker = (typeDirectiveNames, containingFile, redirectedReference, containingFileMode, resolutionInfo) => host.resolveTypeReferenceDirectives(Debug.checkEachDefined(typeDirectiveNames), containingFile, redirectedReference, options, containingFileMode, resolutionInfo);
97753
97796
  } else {
97754
97797
  typeReferenceDirectiveResolutionCache = createTypeReferenceDirectiveResolutionCache(currentDirectory, getCanonicalFileName, void 0, moduleResolutionCache == null ? void 0 : moduleResolutionCache.getPackageJsonInfoCache());
97755
97798
  const loader = (typesRef, containingFile, redirectedReference, resolutionMode) => resolveTypeReferenceDirective(
@@ -97833,7 +97876,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
97833
97876
  (_j = tracing) == null ? void 0 : _j.push(tracing.Phase.Program, "processTypeReferences", { count: typeReferences.length });
97834
97877
  const containingDirectory = options.configFilePath ? getDirectoryPath(options.configFilePath) : host.getCurrentDirectory();
97835
97878
  const containingFilename = combinePaths(containingDirectory, inferredTypesContainingFile);
97836
- const resolutions = resolveTypeReferenceDirectiveNamesWorker(typeReferences, containingFilename);
97879
+ const resolutions = resolveTypeReferenceDirectiveNamesReusingOldState(typeReferences, containingFilename);
97837
97880
  for (let i = 0; i < typeReferences.length; i++) {
97838
97881
  processTypeReferenceDirective(typeReferences[i], void 0, resolutions[i], { kind: 8 /* AutomaticTypeDirectiveFile */, typeReference: typeReferences[i], packageId: (_k = resolutions[i]) == null ? void 0 : _k.packageId });
97839
97882
  }
@@ -97974,21 +98017,18 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
97974
98017
  if (!moduleResolutionCache)
97975
98018
  return;
97976
98019
  const containingFileName = getNormalizedAbsolutePath(containingFile.originalFileName, currentDirectory);
97977
- const containingFileMode = !isString(containingFile) ? containingFile.impliedNodeFormat : void 0;
97978
98020
  const containingDir = getDirectoryPath(containingFileName);
97979
98021
  const redirectedReference = getRedirectReferenceForResolution(containingFile);
97980
- let i = 0;
97981
98022
  for (const n of names) {
97982
- const mode = typeof n === "string" ? getModeForResolutionAtIndex(containingFile, i) : getModeForFileReference(n, containingFileMode);
97983
- const name = typeof n === "string" ? n : n.fileName;
97984
- i++;
98023
+ const mode = getResolutionMode(n, containingFile);
98024
+ const name = getResolutionName(n);
97985
98025
  if (isExternalModuleNameRelative(name))
97986
98026
  continue;
97987
98027
  const diags = (_a3 = moduleResolutionCache.getOrCreateCacheForModuleName(name, mode, redirectedReference).get(containingDir)) == null ? void 0 : _a3.resolutionDiagnostics;
97988
98028
  addResolutionDiagnostics(diags);
97989
98029
  }
97990
98030
  }
97991
- function resolveModuleNamesWorker(moduleNames, containingFile, reusedNames) {
98031
+ function resolveModuleNamesWorker(moduleNames, containingFile, resolutionInfo) {
97992
98032
  var _a3, _b2;
97993
98033
  if (!moduleNames.length)
97994
98034
  return emptyArray;
@@ -97996,14 +98036,14 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
97996
98036
  const redirectedReference = getRedirectReferenceForResolution(containingFile);
97997
98037
  (_a3 = tracing) == null ? void 0 : _a3.push(tracing.Phase.Program, "resolveModuleNamesWorker", { containingFileName });
97998
98038
  mark("beforeResolveModule");
97999
- const result = actualResolveModuleNamesWorker(moduleNames, containingFile, containingFileName, reusedNames, redirectedReference);
98039
+ const result = actualResolveModuleNamesWorker(moduleNames, containingFile, containingFileName, redirectedReference, resolutionInfo);
98000
98040
  mark("afterResolveModule");
98001
98041
  measure("ResolveModule", "beforeResolveModule", "afterResolveModule");
98002
98042
  (_b2 = tracing) == null ? void 0 : _b2.pop();
98003
98043
  pullDiagnosticsFromCache(moduleNames, containingFile);
98004
98044
  return result;
98005
98045
  }
98006
- function resolveTypeReferenceDirectiveNamesWorker(typeDirectiveNames, containingFile) {
98046
+ function resolveTypeReferenceDirectiveNamesWorker(typeDirectiveNames, containingFile, resolutionInfo) {
98007
98047
  var _a3, _b2;
98008
98048
  if (!typeDirectiveNames.length)
98009
98049
  return [];
@@ -98012,7 +98052,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
98012
98052
  const containingFileMode = !isString(containingFile) ? containingFile.impliedNodeFormat : void 0;
98013
98053
  (_a3 = tracing) == null ? void 0 : _a3.push(tracing.Phase.Program, "resolveTypeReferenceDirectiveNamesWorker", { containingFileName });
98014
98054
  mark("beforeResolveTypeReference");
98015
- const result = actualResolveTypeReferenceDirectiveNamesWorker(typeDirectiveNames, containingFileName, redirectedReference, containingFileMode);
98055
+ const result = actualResolveTypeReferenceDirectiveNamesWorker(typeDirectiveNames, containingFileName, redirectedReference, containingFileMode, resolutionInfo);
98016
98056
  mark("afterResolveTypeReference");
98017
98057
  measure("ResolveTypeReference", "beforeResolveTypeReference", "afterResolveTypeReference");
98018
98058
  (_b2 = tracing) == null ? void 0 : _b2.pop();
@@ -98095,10 +98135,8 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
98095
98135
  const oldSourceFile = oldProgram && oldProgram.getSourceFile(file.fileName);
98096
98136
  if (oldSourceFile !== file && file.resolvedModules) {
98097
98137
  const result2 = [];
98098
- let i = 0;
98099
98138
  for (const moduleName of moduleNames) {
98100
- const resolvedModule = file.resolvedModules.get(moduleName, getModeForResolutionAtIndex(file, i));
98101
- i++;
98139
+ const resolvedModule = file.resolvedModules.get(moduleName.text, getModeForUsageLocation(file, moduleName));
98102
98140
  result2.push(resolvedModule);
98103
98141
  }
98104
98142
  return result2;
@@ -98110,39 +98148,40 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
98110
98148
  for (let i = 0; i < moduleNames.length; i++) {
98111
98149
  const moduleName = moduleNames[i];
98112
98150
  if (file === oldSourceFile && !hasInvalidatedResolutions(oldSourceFile.path)) {
98113
- const oldResolvedModule = getResolvedModule(oldSourceFile, moduleName, getModeForResolutionAtIndex(oldSourceFile, i));
98151
+ const mode = getModeForUsageLocation(file, moduleName);
98152
+ const oldResolvedModule = getResolvedModule(oldSourceFile, moduleName.text, mode);
98114
98153
  if (oldResolvedModule) {
98115
98154
  if (isTraceEnabled(options, host)) {
98116
98155
  trace(
98117
98156
  host,
98118
98157
  oldResolvedModule.packageId ? Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2,
98119
- moduleName,
98158
+ moduleName.text,
98120
98159
  getNormalizedAbsolutePath(file.originalFileName, currentDirectory),
98121
98160
  oldResolvedModule.resolvedFileName,
98122
98161
  oldResolvedModule.packageId && packageIdToString(oldResolvedModule.packageId)
98123
98162
  );
98124
98163
  }
98125
- (result || (result = new Array(moduleNames.length)))[i] = oldResolvedModule;
98126
- (reusedNames || (reusedNames = [])).push(moduleName);
98164
+ (result != null ? result : result = new Array(moduleNames.length))[i] = oldResolvedModule;
98165
+ (reusedNames != null ? reusedNames : reusedNames = []).push(moduleName);
98127
98166
  continue;
98128
98167
  }
98129
98168
  }
98130
98169
  let resolvesToAmbientModuleInNonModifiedFile = false;
98131
- if (contains(file.ambientModuleNames, moduleName)) {
98170
+ if (contains(file.ambientModuleNames, moduleName.text)) {
98132
98171
  resolvesToAmbientModuleInNonModifiedFile = true;
98133
98172
  if (isTraceEnabled(options, host)) {
98134
- trace(host, Diagnostics.Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1, moduleName, getNormalizedAbsolutePath(file.originalFileName, currentDirectory));
98173
+ trace(host, Diagnostics.Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1, moduleName.text, getNormalizedAbsolutePath(file.originalFileName, currentDirectory));
98135
98174
  }
98136
98175
  } else {
98137
- resolvesToAmbientModuleInNonModifiedFile = moduleNameResolvesToAmbientModuleInNonModifiedFile(moduleName, i);
98176
+ resolvesToAmbientModuleInNonModifiedFile = moduleNameResolvesToAmbientModuleInNonModifiedFile(moduleName);
98138
98177
  }
98139
98178
  if (resolvesToAmbientModuleInNonModifiedFile) {
98140
98179
  (result || (result = new Array(moduleNames.length)))[i] = predictedToResolveToAmbientModuleMarker;
98141
98180
  } else {
98142
- (unknownModuleNames || (unknownModuleNames = [])).push(moduleName);
98181
+ (unknownModuleNames != null ? unknownModuleNames : unknownModuleNames = []).push(moduleName);
98143
98182
  }
98144
98183
  }
98145
- const resolutions = unknownModuleNames && unknownModuleNames.length ? resolveModuleNamesWorker(unknownModuleNames, file, reusedNames) : emptyArray;
98184
+ const resolutions = unknownModuleNames && unknownModuleNames.length ? resolveModuleNamesWorker(unknownModuleNames, file, { names: unknownModuleNames, reusedNames }) : emptyArray;
98146
98185
  if (!result) {
98147
98186
  Debug.assert(resolutions.length === moduleNames.length);
98148
98187
  return resolutions;
@@ -98160,24 +98199,87 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
98160
98199
  }
98161
98200
  Debug.assert(j === resolutions.length);
98162
98201
  return result;
98163
- function moduleNameResolvesToAmbientModuleInNonModifiedFile(moduleName, index) {
98164
- if (index >= length(oldSourceFile == null ? void 0 : oldSourceFile.imports) + length(oldSourceFile == null ? void 0 : oldSourceFile.moduleAugmentations))
98165
- return false;
98166
- const resolutionToFile = getResolvedModule(oldSourceFile, moduleName, oldSourceFile && getModeForResolutionAtIndex(oldSourceFile, index));
98202
+ function moduleNameResolvesToAmbientModuleInNonModifiedFile(moduleName) {
98203
+ const resolutionToFile = getResolvedModule(oldSourceFile, moduleName.text, getModeForUsageLocation(file, moduleName));
98167
98204
  const resolvedFile = resolutionToFile && oldProgram.getSourceFile(resolutionToFile.resolvedFileName);
98168
98205
  if (resolutionToFile && resolvedFile) {
98169
98206
  return false;
98170
98207
  }
98171
- const unmodifiedFile = ambientModuleNameToUnmodifiedFileName.get(moduleName);
98208
+ const unmodifiedFile = ambientModuleNameToUnmodifiedFileName.get(moduleName.text);
98172
98209
  if (!unmodifiedFile) {
98173
98210
  return false;
98174
98211
  }
98175
98212
  if (isTraceEnabled(options, host)) {
98176
- trace(host, Diagnostics.Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified, moduleName, unmodifiedFile);
98213
+ trace(host, Diagnostics.Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified, moduleName.text, unmodifiedFile);
98177
98214
  }
98178
98215
  return true;
98179
98216
  }
98180
98217
  }
98218
+ function resolveTypeReferenceDirectiveNamesReusingOldState(typeDirectiveNames, containingFile) {
98219
+ if (structureIsReused === 0 /* Not */) {
98220
+ return resolveTypeReferenceDirectiveNamesWorker(typeDirectiveNames, containingFile, void 0);
98221
+ }
98222
+ const oldSourceFile = !isString(containingFile) ? oldProgram && oldProgram.getSourceFile(containingFile.fileName) : void 0;
98223
+ if (!isString(containingFile)) {
98224
+ if (oldSourceFile !== containingFile && containingFile.resolvedTypeReferenceDirectiveNames) {
98225
+ const result2 = [];
98226
+ for (const typeDirectiveName of typeDirectiveNames) {
98227
+ const resolvedTypeReferenceDirective = containingFile.resolvedTypeReferenceDirectiveNames.get(getResolutionName(typeDirectiveName), typeDirectiveName.resolutionMode || containingFile.impliedNodeFormat);
98228
+ result2.push(resolvedTypeReferenceDirective);
98229
+ }
98230
+ return result2;
98231
+ }
98232
+ }
98233
+ let unknownTypeReferenceDirectiveNames;
98234
+ let result;
98235
+ let reusedNames;
98236
+ const containingSourceFile = !isString(containingFile) ? containingFile : void 0;
98237
+ const canReuseResolutions = !isString(containingFile) ? containingFile === oldSourceFile && !hasInvalidatedResolutions(oldSourceFile.path) : !hasInvalidatedResolutions(toPath3(containingFile));
98238
+ for (let i = 0; i < typeDirectiveNames.length; i++) {
98239
+ const entry = typeDirectiveNames[i];
98240
+ if (canReuseResolutions) {
98241
+ const typeDirectiveName = getResolutionName(entry);
98242
+ const mode = getModeForFileReference(entry, containingSourceFile == null ? void 0 : containingSourceFile.impliedNodeFormat);
98243
+ const oldResolvedTypeReferenceDirective = getResolvedTypeReferenceDirective(oldSourceFile, typeDirectiveName, mode);
98244
+ if (oldResolvedTypeReferenceDirective) {
98245
+ if (isTraceEnabled(options, host)) {
98246
+ trace(
98247
+ host,
98248
+ oldResolvedTypeReferenceDirective.packageId ? Diagnostics.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2,
98249
+ typeDirectiveName,
98250
+ !isString(containingFile) ? getNormalizedAbsolutePath(containingFile.originalFileName, currentDirectory) : containingFile,
98251
+ oldResolvedTypeReferenceDirective.resolvedFileName,
98252
+ oldResolvedTypeReferenceDirective.packageId && packageIdToString(oldResolvedTypeReferenceDirective.packageId)
98253
+ );
98254
+ }
98255
+ (result != null ? result : result = new Array(typeDirectiveNames.length))[i] = oldResolvedTypeReferenceDirective;
98256
+ (reusedNames != null ? reusedNames : reusedNames = []).push(entry);
98257
+ continue;
98258
+ }
98259
+ }
98260
+ (unknownTypeReferenceDirectiveNames != null ? unknownTypeReferenceDirectiveNames : unknownTypeReferenceDirectiveNames = []).push(entry);
98261
+ }
98262
+ if (!unknownTypeReferenceDirectiveNames)
98263
+ return result || emptyArray;
98264
+ const resolutions = resolveTypeReferenceDirectiveNamesWorker(
98265
+ unknownTypeReferenceDirectiveNames,
98266
+ containingFile,
98267
+ { names: unknownTypeReferenceDirectiveNames, reusedNames }
98268
+ );
98269
+ if (!result) {
98270
+ Debug.assert(resolutions.length === typeDirectiveNames.length);
98271
+ return resolutions;
98272
+ }
98273
+ let j = 0;
98274
+ for (let i = 0; i < result.length; i++) {
98275
+ if (!result[i]) {
98276
+ result[i] = resolutions[j];
98277
+ j++;
98278
+ }
98279
+ }
98280
+ Debug.assert(j === resolutions.length);
98281
+ return result;
98282
+ }
98181
98283
  function canReuseProjectReferences() {
98182
98284
  return !forEachProjectReference(
98183
98285
  oldProgram.getProjectReferences(),
@@ -98308,7 +98410,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
98308
98410
  for (const { oldFile: oldSourceFile, newFile: newSourceFile } of modifiedSourceFiles) {
98309
98411
  const moduleNames = getModuleNames(newSourceFile);
98310
98412
  const resolutions = resolveModuleNamesReusingOldState(moduleNames, newSourceFile);
98311
- const resolutionsChanged = hasChangesInResolutions(moduleNames, resolutions, oldSourceFile.resolvedModules, oldSourceFile, moduleResolutionIsEqualTo);
98413
+ const resolutionsChanged = hasChangesInResolutions(moduleNames, newSourceFile, resolutions, oldSourceFile.resolvedModules, moduleResolutionIsEqualTo);
98312
98414
  if (resolutionsChanged) {
98313
98415
  structureIsReused = 1 /* SafeModules */;
98314
98416
  newSourceFile.resolvedModules = zipToModeAwareCache(newSourceFile, moduleNames, resolutions);
@@ -98316,8 +98418,8 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
98316
98418
  newSourceFile.resolvedModules = oldSourceFile.resolvedModules;
98317
98419
  }
98318
98420
  const typesReferenceDirectives = newSourceFile.typeReferenceDirectives;
98319
- const typeReferenceResolutions = resolveTypeReferenceDirectiveNamesWorker(typesReferenceDirectives, newSourceFile);
98320
- const typeReferenceResolutionsChanged = hasChangesInResolutions(typesReferenceDirectives, typeReferenceResolutions, oldSourceFile.resolvedTypeReferenceDirectiveNames, oldSourceFile, typeDirectiveIsEqualTo);
98421
+ const typeReferenceResolutions = resolveTypeReferenceDirectiveNamesReusingOldState(typesReferenceDirectives, newSourceFile);
98422
+ const typeReferenceResolutionsChanged = hasChangesInResolutions(typesReferenceDirectives, newSourceFile, typeReferenceResolutions, oldSourceFile.resolvedTypeReferenceDirectiveNames, typeDirectiveIsEqualTo);
98321
98423
  if (typeReferenceResolutionsChanged) {
98322
98424
  structureIsReused = 1 /* SafeModules */;
98323
98425
  newSourceFile.resolvedTypeReferenceDirectiveNames = zipToModeAwareCache(newSourceFile, typesReferenceDirectives, typeReferenceResolutions);
@@ -98388,7 +98490,10 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
98388
98490
  return host.fileExists(f);
98389
98491
  },
98390
98492
  useCaseSensitiveFileNames: () => host.useCaseSensitiveFileNames(),
98391
- getProgramBuildInfo: () => program.getProgramBuildInfo && program.getProgramBuildInfo(),
98493
+ getBuildInfo: (bundle) => {
98494
+ var _a3;
98495
+ return (_a3 = program.getBuildInfo) == null ? void 0 : _a3.call(program, bundle);
98496
+ },
98392
98497
  getSourceFileFromReference: (file, ref) => program.getSourceFileFromReference(file, ref),
98393
98498
  redirectTargetsMap,
98394
98499
  getFileIncludeReasons: program.getFileIncludeReasons,
@@ -98460,17 +98565,17 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
98460
98565
  function getTypeChecker() {
98461
98566
  return typeChecker || (typeChecker = createTypeChecker(program));
98462
98567
  }
98463
- function emit(sourceFile, writeFileCallback, cancellationToken, emitOnlyDtsFiles, transformers, forceDtsEmit) {
98568
+ function emit(sourceFile, writeFileCallback, cancellationToken, emitOnly, transformers, forceDtsEmit) {
98464
98569
  var _a3, _b2;
98465
98570
  (_a3 = tracing) == null ? void 0 : _a3.push(tracing.Phase.Emit, "emit", { path: sourceFile == null ? void 0 : sourceFile.path }, true);
98466
- const result = runWithCancellationToken(() => emitWorker(program, sourceFile, writeFileCallback, cancellationToken, emitOnlyDtsFiles, transformers, forceDtsEmit));
98571
+ const result = runWithCancellationToken(() => emitWorker(program, sourceFile, writeFileCallback, cancellationToken, emitOnly, transformers, forceDtsEmit));
98467
98572
  (_b2 = tracing) == null ? void 0 : _b2.pop();
98468
98573
  return result;
98469
98574
  }
98470
98575
  function isEmitBlocked(emitFileName) {
98471
98576
  return hasEmitBlockingDiagnostics.has(toPath3(emitFileName));
98472
98577
  }
98473
- function emitWorker(program2, sourceFile, writeFileCallback, cancellationToken, emitOnlyDtsFiles, customTransformers, forceDtsEmit) {
98578
+ function emitWorker(program2, sourceFile, writeFileCallback, cancellationToken, emitOnly, customTransformers, forceDtsEmit) {
98474
98579
  if (!forceDtsEmit) {
98475
98580
  const result = handleNoEmitOptions(program2, sourceFile, writeFileCallback, cancellationToken);
98476
98581
  if (result)
@@ -98482,8 +98587,8 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
98482
98587
  emitResolver,
98483
98588
  getEmitHost(writeFileCallback),
98484
98589
  sourceFile,
98485
- getTransformers(options, customTransformers, emitOnlyDtsFiles),
98486
- emitOnlyDtsFiles,
98590
+ getTransformers(options, customTransformers, emitOnly),
98591
+ emitOnly,
98487
98592
  false,
98488
98593
  forceDtsEmit
98489
98594
  );
@@ -99297,12 +99402,12 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
99297
99402
  if (!typeDirectives) {
99298
99403
  return;
99299
99404
  }
99300
- const resolutions = resolveTypeReferenceDirectiveNamesWorker(typeDirectives, file);
99405
+ const resolutions = resolveTypeReferenceDirectiveNamesReusingOldState(typeDirectives, file);
99301
99406
  for (let index = 0; index < typeDirectives.length; index++) {
99302
99407
  const ref = file.typeReferenceDirectives[index];
99303
99408
  const resolvedTypeReferenceDirective = resolutions[index];
99304
99409
  const fileName = toFileNameLowerCase(ref.fileName);
99305
- setResolvedTypeReferenceDirective(file, fileName, resolvedTypeReferenceDirective);
99410
+ setResolvedTypeReferenceDirective(file, fileName, resolvedTypeReferenceDirective, getModeForFileReference(ref, file.impliedNodeFormat));
99306
99411
  const mode = ref.resolutionMode || file.impliedNodeFormat;
99307
99412
  if (mode && getEmitModuleResolutionKind(options) !== 3 /* Node16 */ && getEmitModuleResolutionKind(options) !== 99 /* NodeNext */) {
99308
99413
  programDiagnostics.add(createDiagnosticForRange(file, ref, Diagnostics.resolution_mode_assertions_are_only_supported_when_moduleResolution_is_node16_or_nodenext));
@@ -99402,7 +99507,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
99402
99507
  const optionsForFile = (useSourceOfProjectReferenceRedirect ? (_a3 = getRedirectReferenceForResolution(file)) == null ? void 0 : _a3.commandLine.options : void 0) || options;
99403
99508
  for (let index = 0; index < moduleNames.length; index++) {
99404
99509
  const resolution = resolutions[index];
99405
- setResolvedModule(file, moduleNames[index], resolution, getModeForResolutionAtIndex(file, index));
99510
+ setResolvedModule(file, moduleNames[index].text, resolution, getModeForUsageLocation(file, moduleNames[index]));
99406
99511
  if (!resolution) {
99407
99512
  continue;
99408
99513
  }
@@ -100267,10 +100372,10 @@ function getResolutionDiagnostic(options, { extension }) {
100267
100372
  }
100268
100373
  }
100269
100374
  function getModuleNames({ imports, moduleAugmentations }) {
100270
- const res = imports.map((i) => i.text);
100375
+ const res = imports.map((i) => i);
100271
100376
  for (const aug of moduleAugmentations) {
100272
100377
  if (aug.kind === 10 /* StringLiteral */) {
100273
- res.push(aug.text);
100378
+ res.push(aug);
100274
100379
  }
100275
100380
  }
100276
100381
  return res;
@@ -100427,7 +100532,8 @@ var BuilderState;
100427
100532
  var _a2, _b, _c;
100428
100533
  const fileInfos = new Map();
100429
100534
  const options = newProgram.getCompilerOptions();
100430
- const referencedMap = options.module !== 0 /* None */ && !outFile(options) ? createManyToManyPathMap() : void 0;
100535
+ const isOutFile = outFile(options);
100536
+ const referencedMap = options.module !== 0 /* None */ && !isOutFile ? createManyToManyPathMap() : void 0;
100431
100537
  const exportedModulesMap = referencedMap ? createManyToManyPathMap() : void 0;
100432
100538
  const useOldState = canReuseOldState(referencedMap, oldState);
100433
100539
  newProgram.getTypeChecker();
@@ -100451,7 +100557,7 @@ var BuilderState;
100451
100557
  fileInfos.set(sourceFile.resolvedPath, {
100452
100558
  version: version2,
100453
100559
  signature,
100454
- affectsGlobalScope: isFileAffectingGlobalScope(sourceFile) || void 0,
100560
+ affectsGlobalScope: !isOutFile ? isFileAffectingGlobalScope(sourceFile) || void 0 : void 0,
100455
100561
  impliedFormat: sourceFile.impliedNodeFormat
100456
100562
  });
100457
100563
  }
@@ -100680,6 +100786,35 @@ var BuilderState;
100680
100786
  })(BuilderState || (BuilderState = {}));
100681
100787
 
100682
100788
  // src/compiler/builder.ts
100789
+ function getBuilderFileEmit(options) {
100790
+ let result = 1 /* Js */;
100791
+ if (options.sourceMap)
100792
+ result = result | 2 /* JsMap */;
100793
+ if (options.inlineSourceMap)
100794
+ result = result | 4 /* JsInlineMap */;
100795
+ if (getEmitDeclarations(options))
100796
+ result = result | 8 /* Dts */;
100797
+ if (options.declarationMap)
100798
+ result = result | 16 /* DtsMap */;
100799
+ if (options.emitDeclarationOnly)
100800
+ result = result & 24 /* AllDts */;
100801
+ return result;
100802
+ }
100803
+ function getPendingEmitKind(optionsOrEmitKind, oldOptionsOrEmitKind) {
100804
+ const oldEmitKind = oldOptionsOrEmitKind && (isNumber(oldOptionsOrEmitKind) ? oldOptionsOrEmitKind : getBuilderFileEmit(oldOptionsOrEmitKind));
100805
+ const emitKind = isNumber(optionsOrEmitKind) ? optionsOrEmitKind : getBuilderFileEmit(optionsOrEmitKind);
100806
+ if (oldEmitKind === emitKind)
100807
+ return 0 /* None */;
100808
+ if (!oldEmitKind || !emitKind)
100809
+ return emitKind;
100810
+ const diff = oldEmitKind ^ emitKind;
100811
+ let result = 0 /* None */;
100812
+ if (diff & 7 /* AllJs */)
100813
+ result = emitKind & 7 /* AllJs */;
100814
+ if (diff & 24 /* AllDts */)
100815
+ result = result | emitKind & 24 /* AllDts */;
100816
+ return result;
100817
+ }
100683
100818
  function hasSameKeys(map1, map2) {
100684
100819
  return map1 === map2 || map1 !== void 0 && map2 !== void 0 && map1.size === map2.size && !forEachKey(map1, (key) => !map2.has(key));
100685
100820
  }
@@ -100693,7 +100828,7 @@ function createBuilderProgramState(newProgram, getCanonicalFileName, oldState, d
100693
100828
  if (!outFilePath) {
100694
100829
  state.semanticDiagnosticsPerFile = new Map();
100695
100830
  } else if (compilerOptions.composite && (oldState == null ? void 0 : oldState.outSignature) && outFilePath === outFile(oldState == null ? void 0 : oldState.compilerOptions)) {
100696
- state.outSignature = oldState == null ? void 0 : oldState.outSignature;
100831
+ state.outSignature = oldState.outSignature && getEmitSignatureFromOldSignature(compilerOptions, oldState.compilerOptions, oldState.outSignature);
100697
100832
  }
100698
100833
  state.changedFilesSet = new Set();
100699
100834
  state.latestChangedDtsFile = compilerOptions.composite ? oldState == null ? void 0 : oldState.latestChangedDtsFile : void 0;
@@ -100703,22 +100838,24 @@ function createBuilderProgramState(newProgram, getCanonicalFileName, oldState, d
100703
100838
  const canCopyEmitSignatures = compilerOptions.composite && (oldState == null ? void 0 : oldState.emitSignatures) && !outFilePath && !compilerOptionsAffectDeclarationPath(compilerOptions, oldState.compilerOptions);
100704
100839
  if (useOldState) {
100705
100840
  (_a2 = oldState.changedFilesSet) == null ? void 0 : _a2.forEach((value) => state.changedFilesSet.add(value));
100706
- if (!outFilePath && oldState.affectedFilesPendingEmit) {
100707
- state.affectedFilesPendingEmit = oldState.affectedFilesPendingEmit.slice();
100708
- state.affectedFilesPendingEmitKind = oldState.affectedFilesPendingEmitKind && new Map(oldState.affectedFilesPendingEmitKind);
100709
- state.affectedFilesPendingEmitIndex = oldState.affectedFilesPendingEmitIndex;
100841
+ if (!outFilePath && ((_b = oldState.affectedFilesPendingEmit) == null ? void 0 : _b.size)) {
100842
+ state.affectedFilesPendingEmit = new Map(oldState.affectedFilesPendingEmit);
100710
100843
  state.seenAffectedFiles = new Set();
100711
100844
  }
100845
+ state.programEmitPending = oldState.programEmitPending;
100846
+ } else {
100847
+ state.buildInfoEmitPending = true;
100712
100848
  }
100713
100849
  const referencedMap = state.referencedMap;
100714
100850
  const oldReferencedMap = useOldState ? oldState.referencedMap : void 0;
100715
100851
  const copyDeclarationFileDiagnostics = canCopySemanticDiagnostics && !compilerOptions.skipLibCheck === !oldCompilerOptions.skipLibCheck;
100716
100852
  const copyLibFileDiagnostics = copyDeclarationFileDiagnostics && !compilerOptions.skipDefaultLibCheck === !oldCompilerOptions.skipDefaultLibCheck;
100717
100853
  state.fileInfos.forEach((info, sourceFilePath) => {
100854
+ var _a3;
100718
100855
  let oldInfo;
100719
100856
  let newReferences;
100720
100857
  if (!useOldState || !(oldInfo = oldState.fileInfos.get(sourceFilePath)) || oldInfo.version !== info.version || oldInfo.impliedFormat !== info.impliedFormat || !hasSameKeys(newReferences = referencedMap && referencedMap.getValues(sourceFilePath), oldReferencedMap && oldReferencedMap.getValues(sourceFilePath)) || newReferences && forEachKey(newReferences, (path) => !state.fileInfos.has(path) && oldState.fileInfos.has(path))) {
100721
- state.changedFilesSet.add(sourceFilePath);
100858
+ addFileToChangeSet(state, sourceFilePath);
100722
100859
  } else if (canCopySemanticDiagnostics) {
100723
100860
  const sourceFile = newProgram.getSourceFileByPath(sourceFilePath);
100724
100861
  if (sourceFile.isDeclarationFile && !copyDeclarationFileDiagnostics)
@@ -100736,20 +100873,50 @@ function createBuilderProgramState(newProgram, getCanonicalFileName, oldState, d
100736
100873
  }
100737
100874
  if (canCopyEmitSignatures) {
100738
100875
  const oldEmitSignature = oldState.emitSignatures.get(sourceFilePath);
100739
- if (oldEmitSignature)
100740
- (state.emitSignatures || (state.emitSignatures = new Map())).set(sourceFilePath, oldEmitSignature);
100876
+ if (oldEmitSignature) {
100877
+ ((_a3 = state.emitSignatures) != null ? _a3 : state.emitSignatures = new Map()).set(sourceFilePath, getEmitSignatureFromOldSignature(compilerOptions, oldState.compilerOptions, oldEmitSignature));
100878
+ }
100741
100879
  }
100742
100880
  });
100743
- if (useOldState && forEachEntry(oldState.fileInfos, (info, sourceFilePath) => info.affectsGlobalScope && !state.fileInfos.has(sourceFilePath))) {
100744
- BuilderState.getAllFilesExcludingDefaultLibraryFile(state, newProgram, void 0).forEach((file) => state.changedFilesSet.add(file.resolvedPath));
100745
- } else if (oldCompilerOptions && !outFilePath && compilerOptionsAffectEmit(compilerOptions, oldCompilerOptions)) {
100746
- newProgram.getSourceFiles().forEach((f) => addToAffectedFilesPendingEmit(state, f.resolvedPath, 1 /* Full */));
100747
- Debug.assert(!state.seenAffectedFiles || !state.seenAffectedFiles.size);
100748
- state.seenAffectedFiles = state.seenAffectedFiles || new Set();
100749
- }
100750
- state.buildInfoEmitPending = !useOldState || state.changedFilesSet.size !== (((_b = oldState.changedFilesSet) == null ? void 0 : _b.size) || 0);
100881
+ if (useOldState && forEachEntry(oldState.fileInfos, (info, sourceFilePath) => (outFilePath || info.affectsGlobalScope) && !state.fileInfos.has(sourceFilePath))) {
100882
+ BuilderState.getAllFilesExcludingDefaultLibraryFile(state, newProgram, void 0).forEach((file) => addFileToChangeSet(state, file.resolvedPath));
100883
+ } else if (oldCompilerOptions) {
100884
+ const pendingEmitKind = compilerOptionsAffectEmit(compilerOptions, oldCompilerOptions) ? getBuilderFileEmit(compilerOptions) : getPendingEmitKind(compilerOptions, oldCompilerOptions);
100885
+ if (pendingEmitKind !== 0 /* None */) {
100886
+ if (!outFilePath) {
100887
+ newProgram.getSourceFiles().forEach((f) => {
100888
+ if (!state.changedFilesSet.has(f.resolvedPath)) {
100889
+ addToAffectedFilesPendingEmit(
100890
+ state,
100891
+ f.resolvedPath,
100892
+ pendingEmitKind
100893
+ );
100894
+ }
100895
+ });
100896
+ Debug.assert(!state.seenAffectedFiles || !state.seenAffectedFiles.size);
100897
+ state.seenAffectedFiles = state.seenAffectedFiles || new Set();
100898
+ state.buildInfoEmitPending = true;
100899
+ } else {
100900
+ state.programEmitPending = state.programEmitPending ? state.programEmitPending | pendingEmitKind : pendingEmitKind;
100901
+ }
100902
+ }
100903
+ }
100904
+ if (outFilePath && !state.changedFilesSet.size) {
100905
+ if (useOldState)
100906
+ state.bundle = oldState.bundle;
100907
+ if (some(newProgram.getProjectReferences(), (ref) => !!ref.prepend))
100908
+ state.programEmitPending = getBuilderFileEmit(compilerOptions);
100909
+ }
100751
100910
  return state;
100752
100911
  }
100912
+ function addFileToChangeSet(state, path) {
100913
+ state.changedFilesSet.add(path);
100914
+ state.buildInfoEmitPending = true;
100915
+ state.programEmitPending = void 0;
100916
+ }
100917
+ function getEmitSignatureFromOldSignature(options, oldOptions, oldEmitSignature) {
100918
+ return !!options.declarationMap === !!oldOptions.declarationMap ? oldEmitSignature : isString(oldEmitSignature) ? [oldEmitSignature] : oldEmitSignature[0];
100919
+ }
100753
100920
  function convertToDiagnostics(diagnostics, newProgram, getCanonicalFileName) {
100754
100921
  if (!diagnostics.length)
100755
100922
  return emptyArray;
@@ -100783,11 +100950,9 @@ function backupBuilderProgramEmitState(state) {
100783
100950
  const outFilePath = outFile(state.compilerOptions);
100784
100951
  Debug.assert(!state.changedFilesSet.size || outFilePath);
100785
100952
  return {
100786
- affectedFilesPendingEmit: state.affectedFilesPendingEmit && state.affectedFilesPendingEmit.slice(),
100787
- affectedFilesPendingEmitKind: state.affectedFilesPendingEmitKind && new Map(state.affectedFilesPendingEmitKind),
100788
- affectedFilesPendingEmitIndex: state.affectedFilesPendingEmitIndex,
100953
+ affectedFilesPendingEmit: state.affectedFilesPendingEmit && new Map(state.affectedFilesPendingEmit),
100789
100954
  seenEmittedFiles: state.seenEmittedFiles && new Map(state.seenEmittedFiles),
100790
- programEmitComplete: state.programEmitComplete,
100955
+ programEmitPending: state.programEmitPending,
100791
100956
  emitSignatures: state.emitSignatures && new Map(state.emitSignatures),
100792
100957
  outSignature: state.outSignature,
100793
100958
  latestChangedDtsFile: state.latestChangedDtsFile,
@@ -100797,10 +100962,8 @@ function backupBuilderProgramEmitState(state) {
100797
100962
  }
100798
100963
  function restoreBuilderProgramEmitState(state, savedEmitState) {
100799
100964
  state.affectedFilesPendingEmit = savedEmitState.affectedFilesPendingEmit;
100800
- state.affectedFilesPendingEmitKind = savedEmitState.affectedFilesPendingEmitKind;
100801
- state.affectedFilesPendingEmitIndex = savedEmitState.affectedFilesPendingEmitIndex;
100802
100965
  state.seenEmittedFiles = savedEmitState.seenEmittedFiles;
100803
- state.programEmitComplete = savedEmitState.programEmitComplete;
100966
+ state.programEmitPending = savedEmitState.programEmitPending;
100804
100967
  state.emitSignatures = savedEmitState.emitSignatures;
100805
100968
  state.outSignature = savedEmitState.outSignature;
100806
100969
  state.latestChangedDtsFile = savedEmitState.latestChangedDtsFile;
@@ -100822,6 +100985,7 @@ function getNextAffectedFile(state, cancellationToken, computeHash, getCanonical
100822
100985
  const affectedFile = affectedFiles[affectedFilesIndex];
100823
100986
  if (!seenAffectedFiles.has(affectedFile.resolvedPath)) {
100824
100987
  state.affectedFilesIndex = affectedFilesIndex;
100988
+ addToAffectedFilesPendingEmit(state, affectedFile.resolvedPath, getBuilderFileEmit(state.compilerOptions));
100825
100989
  handleDtsMayChangeOfAffectedFile(
100826
100990
  state,
100827
100991
  affectedFile,
@@ -100864,29 +101028,38 @@ function getNextAffectedFile(state, cancellationToken, computeHash, getCanonical
100864
101028
  state.seenAffectedFiles = new Set();
100865
101029
  }
100866
101030
  }
100867
- function clearAffectedFilesPendingEmit(state) {
100868
- state.affectedFilesPendingEmit = void 0;
100869
- state.affectedFilesPendingEmitKind = void 0;
100870
- state.affectedFilesPendingEmitIndex = void 0;
101031
+ function clearAffectedFilesPendingEmit(state, emitOnlyDtsFiles) {
101032
+ var _a2;
101033
+ if (!((_a2 = state.affectedFilesPendingEmit) == null ? void 0 : _a2.size))
101034
+ return;
101035
+ if (!emitOnlyDtsFiles)
101036
+ return state.affectedFilesPendingEmit = void 0;
101037
+ state.affectedFilesPendingEmit.forEach((emitKind, path) => {
101038
+ const pending = emitKind & 7 /* AllJs */;
101039
+ if (!pending)
101040
+ state.affectedFilesPendingEmit.delete(path);
101041
+ else
101042
+ state.affectedFilesPendingEmit.set(path, pending);
101043
+ });
100871
101044
  }
100872
- function getNextAffectedFilePendingEmit(state) {
100873
- const { affectedFilesPendingEmit } = state;
100874
- if (affectedFilesPendingEmit) {
100875
- const seenEmittedFiles = state.seenEmittedFiles || (state.seenEmittedFiles = new Map());
100876
- for (let i = state.affectedFilesPendingEmitIndex; i < affectedFilesPendingEmit.length; i++) {
100877
- const affectedFile = Debug.checkDefined(state.program).getSourceFileByPath(affectedFilesPendingEmit[i]);
100878
- if (affectedFile && sourceFileMayBeEmitted(affectedFile, state.program)) {
100879
- const seenKind = seenEmittedFiles.get(affectedFile.resolvedPath);
100880
- const emitKind = Debug.checkDefined(Debug.checkDefined(state.affectedFilesPendingEmitKind).get(affectedFile.resolvedPath));
100881
- if (seenKind === void 0 || seenKind < emitKind) {
100882
- state.affectedFilesPendingEmitIndex = i;
100883
- return { affectedFile, emitKind };
100884
- }
100885
- }
101045
+ function getNextAffectedFilePendingEmit(state, emitOnlyDtsFiles) {
101046
+ var _a2;
101047
+ if (!((_a2 = state.affectedFilesPendingEmit) == null ? void 0 : _a2.size))
101048
+ return void 0;
101049
+ return forEachEntry(state.affectedFilesPendingEmit, (emitKind, path) => {
101050
+ var _a3;
101051
+ const affectedFile = state.program.getSourceFileByPath(path);
101052
+ if (!affectedFile || !sourceFileMayBeEmitted(affectedFile, state.program)) {
101053
+ state.affectedFilesPendingEmit.delete(path);
101054
+ return void 0;
100886
101055
  }
100887
- clearAffectedFilesPendingEmit(state);
100888
- }
100889
- return void 0;
101056
+ const seenKind = (_a3 = state.seenEmittedFiles) == null ? void 0 : _a3.get(affectedFile.resolvedPath);
101057
+ let pendingKind = getPendingEmitKind(emitKind, seenKind);
101058
+ if (emitOnlyDtsFiles)
101059
+ pendingKind = pendingKind & 24 /* AllDts */;
101060
+ if (pendingKind)
101061
+ return { affectedFile, emitKind: pendingKind };
101062
+ });
100890
101063
  }
100891
101064
  function removeDiagnosticsOfLibraryFiles(state) {
100892
101065
  if (!state.cleanedDiagnosticsOfLibFiles) {
@@ -100940,7 +101113,7 @@ function handleDtsMayChangeOf(state, path, cancellationToken, computeHash, getCa
100940
101113
  !host.disableUseFileVersionAsSignature
100941
101114
  );
100942
101115
  if (getEmitDeclarations(state.compilerOptions)) {
100943
- addToAffectedFilesPendingEmit(state, path, 0 /* DtsOnly */);
101116
+ addToAffectedFilesPendingEmit(state, path, state.compilerOptions.declarationMap ? 24 /* AllDts */ : 8 /* Dts */);
100944
101117
  }
100945
101118
  }
100946
101119
  }
@@ -101046,33 +101219,6 @@ function handleDtsMayChangeOfFileAndExportsOfFile(state, filePath, seenFileAndEx
101046
101219
  );
101047
101220
  return void 0;
101048
101221
  }
101049
- function doneWithAffectedFile(state, affected, emitKind, isPendingEmit, isBuildInfoEmit) {
101050
- if (isBuildInfoEmit) {
101051
- state.buildInfoEmitPending = false;
101052
- } else if (affected === state.program) {
101053
- state.changedFilesSet.clear();
101054
- state.programEmitComplete = true;
101055
- } else {
101056
- state.seenAffectedFiles.add(affected.resolvedPath);
101057
- state.buildInfoEmitPending = true;
101058
- if (emitKind !== void 0) {
101059
- (state.seenEmittedFiles || (state.seenEmittedFiles = new Map())).set(affected.resolvedPath, emitKind);
101060
- }
101061
- if (isPendingEmit) {
101062
- state.affectedFilesPendingEmitIndex++;
101063
- } else {
101064
- state.affectedFilesIndex++;
101065
- }
101066
- }
101067
- }
101068
- function toAffectedFileResult(state, result, affected) {
101069
- doneWithAffectedFile(state, affected);
101070
- return { result, affected };
101071
- }
101072
- function toAffectedFileEmitResult(state, result, affected, emitKind, isPendingEmit, isBuildInfoEmit) {
101073
- doneWithAffectedFile(state, affected, emitKind, isPendingEmit, isBuildInfoEmit);
101074
- return { result, affected };
101075
- }
101076
101222
  function getSemanticDiagnosticsOfFile(state, sourceFile, cancellationToken) {
101077
101223
  return concatenate(
101078
101224
  getBinderAndCheckerDiagnosticsOfFile(state, sourceFile, cancellationToken),
@@ -101096,49 +101242,50 @@ function getBinderAndCheckerDiagnosticsOfFile(state, sourceFile, cancellationTok
101096
101242
  function isProgramBundleEmitBuildInfo(info) {
101097
101243
  return !!outFile(info.options || {});
101098
101244
  }
101099
- function getProgramBuildInfo(state, getCanonicalFileName) {
101100
- const outFilePath = outFile(state.compilerOptions);
101101
- if (outFilePath && !state.compilerOptions.composite)
101102
- return;
101245
+ function getBuildInfo2(state, getCanonicalFileName, bundle) {
101246
+ var _a2, _b, _c;
101103
101247
  const currentDirectory = Debug.checkDefined(state.program).getCurrentDirectory();
101104
101248
  const buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(getTsBuildInfoEmitOutputFilePath(state.compilerOptions), currentDirectory));
101105
101249
  const latestChangedDtsFile = state.latestChangedDtsFile ? relativeToBuildInfoEnsuringAbsolutePath(state.latestChangedDtsFile) : void 0;
101106
- if (outFilePath) {
101107
- const fileNames2 = [];
101108
- const fileInfos2 = [];
101109
- state.program.getRootFileNames().forEach((f) => {
101110
- const sourceFile = state.program.getSourceFile(f);
101111
- if (!sourceFile)
101112
- return;
101113
- fileNames2.push(relativeToBuildInfo(sourceFile.resolvedPath));
101114
- fileInfos2.push(sourceFile.version);
101250
+ const fileNames = [];
101251
+ const fileNameToFileId = new Map();
101252
+ if (outFile(state.compilerOptions)) {
101253
+ const fileInfos2 = arrayFrom(state.fileInfos.entries(), ([key, value]) => {
101254
+ toFileId(key);
101255
+ return value.impliedFormat ? { version: value.version, impliedFormat: value.impliedFormat, signature: void 0, affectsGlobalScope: void 0 } : value.version;
101115
101256
  });
101116
- const result2 = {
101117
- fileNames: fileNames2,
101257
+ const program2 = {
101258
+ fileNames,
101118
101259
  fileInfos: fileInfos2,
101119
- options: convertToProgramBuildInfoCompilerOptions(state.compilerOptions, "affectsBundleEmitBuildInfo"),
101260
+ options: convertToProgramBuildInfoCompilerOptions(state.compilerOptions),
101120
101261
  outSignature: state.outSignature,
101121
- latestChangedDtsFile
101262
+ latestChangedDtsFile,
101263
+ pendingEmit: !state.programEmitPending ? void 0 : state.programEmitPending === getBuilderFileEmit(state.compilerOptions) ? false : state.programEmitPending
101122
101264
  };
101123
- return result2;
101265
+ const { js, dts, commonSourceDirectory, sourceFiles } = bundle;
101266
+ state.bundle = bundle = {
101267
+ commonSourceDirectory,
101268
+ sourceFiles,
101269
+ js: js || (!state.compilerOptions.emitDeclarationOnly ? (_a2 = state.bundle) == null ? void 0 : _a2.js : void 0),
101270
+ dts: dts || (getEmitDeclarations(state.compilerOptions) ? (_b = state.bundle) == null ? void 0 : _b.dts : void 0)
101271
+ };
101272
+ return createBuildInfo(program2, bundle);
101124
101273
  }
101125
- const fileNames = [];
101126
- const fileNameToFileId = new Map();
101127
101274
  let fileIdsList;
101128
101275
  let fileNamesToFileIdListId;
101129
101276
  let emitSignatures;
101130
101277
  const fileInfos = arrayFrom(state.fileInfos.entries(), ([key, value]) => {
101131
- var _a2, _b;
101278
+ var _a3, _b2;
101132
101279
  const fileId = toFileId(key);
101133
101280
  Debug.assert(fileNames[fileId - 1] === relativeToBuildInfo(key));
101134
- const oldSignature = (_a2 = state.oldSignatures) == null ? void 0 : _a2.get(key);
101281
+ const oldSignature = (_a3 = state.oldSignatures) == null ? void 0 : _a3.get(key);
101135
101282
  const actualSignature = oldSignature !== void 0 ? oldSignature || void 0 : value.signature;
101136
101283
  if (state.compilerOptions.composite) {
101137
101284
  const file = state.program.getSourceFileByPath(key);
101138
101285
  if (!isJsonSourceFile(file) && sourceFileMayBeEmitted(file, state.program)) {
101139
- const emitSignature = (_b = state.emitSignatures) == null ? void 0 : _b.get(key);
101286
+ const emitSignature = (_b2 = state.emitSignatures) == null ? void 0 : _b2.get(key);
101140
101287
  if (emitSignature !== actualSignature) {
101141
- (emitSignatures || (emitSignatures = [])).push(emitSignature === void 0 ? fileId : [fileId, emitSignature]);
101288
+ (emitSignatures || (emitSignatures = [])).push(emitSignature === void 0 ? fileId : [fileId, !isString(emitSignature) && emitSignature[0] === actualSignature ? emptyArray : emitSignature]);
101142
101289
  }
101143
101290
  }
101144
101291
  }
@@ -101154,8 +101301,8 @@ function getProgramBuildInfo(state, getCanonicalFileName) {
101154
101301
  let exportedModulesMap;
101155
101302
  if (state.exportedModulesMap) {
101156
101303
  exportedModulesMap = mapDefined(arrayFrom(state.exportedModulesMap.keys()).sort(compareStringsCaseSensitive), (key) => {
101157
- var _a2;
101158
- const oldValue = (_a2 = state.oldExportedModulesMap) == null ? void 0 : _a2.get(key);
101304
+ var _a3;
101305
+ const oldValue = (_a3 = state.oldExportedModulesMap) == null ? void 0 : _a3.get(key);
101159
101306
  if (oldValue === void 0)
101160
101307
  return [toFileId(key), toFileIdListId(state.exportedModulesMap.getValues(key))];
101161
101308
  if (oldValue)
@@ -101176,16 +101323,17 @@ function getProgramBuildInfo(state, getCanonicalFileName) {
101176
101323
  }
101177
101324
  }
101178
101325
  let affectedFilesPendingEmit;
101179
- if (state.affectedFilesPendingEmit) {
101326
+ if ((_c = state.affectedFilesPendingEmit) == null ? void 0 : _c.size) {
101327
+ const fullEmitForOptions = getBuilderFileEmit(state.compilerOptions);
101180
101328
  const seenFiles = new Set();
101181
- for (const path of state.affectedFilesPendingEmit.slice(state.affectedFilesPendingEmitIndex).sort(compareStringsCaseSensitive)) {
101329
+ for (const path of arrayFrom(state.affectedFilesPendingEmit.keys()).sort(compareStringsCaseSensitive)) {
101182
101330
  if (tryAddToSet(seenFiles, path)) {
101183
101331
  const file = state.program.getSourceFileByPath(path);
101184
101332
  if (!sourceFileMayBeEmitted(file, state.program))
101185
101333
  continue;
101186
- const fileId = toFileId(path), emitKind = state.affectedFilesPendingEmitKind.get(path);
101334
+ const fileId = toFileId(path), pendingEmit = state.affectedFilesPendingEmit.get(path);
101187
101335
  (affectedFilesPendingEmit || (affectedFilesPendingEmit = [])).push(
101188
- emitKind === 1 /* Full */ ? fileId : [fileId]
101336
+ pendingEmit === fullEmitForOptions ? fileId : pendingEmit === 8 /* Dts */ ? [fileId] : [fileId, pendingEmit]
101189
101337
  );
101190
101338
  }
101191
101339
  }
@@ -101196,10 +101344,10 @@ function getProgramBuildInfo(state, getCanonicalFileName) {
101196
101344
  (changeFileSet || (changeFileSet = [])).push(toFileId(path));
101197
101345
  }
101198
101346
  }
101199
- const result = {
101347
+ const program = {
101200
101348
  fileNames,
101201
101349
  fileInfos,
101202
- options: convertToProgramBuildInfoCompilerOptions(state.compilerOptions, "affectsMultiFileEmitBuildInfo"),
101350
+ options: convertToProgramBuildInfoCompilerOptions(state.compilerOptions),
101203
101351
  fileIdsList,
101204
101352
  referencedMap,
101205
101353
  exportedModulesMap,
@@ -101209,7 +101357,7 @@ function getProgramBuildInfo(state, getCanonicalFileName) {
101209
101357
  emitSignatures,
101210
101358
  latestChangedDtsFile
101211
101359
  };
101212
- return result;
101360
+ return createBuildInfo(program, bundle);
101213
101361
  function relativeToBuildInfoEnsuringAbsolutePath(path) {
101214
101362
  return relativeToBuildInfo(getNormalizedAbsolutePath(path, currentDirectory));
101215
101363
  }
@@ -101234,20 +101382,20 @@ function getProgramBuildInfo(state, getCanonicalFileName) {
101234
101382
  }
101235
101383
  return fileIdListId;
101236
101384
  }
101237
- function convertToProgramBuildInfoCompilerOptions(options, optionKey) {
101238
- let result2;
101385
+ function convertToProgramBuildInfoCompilerOptions(options) {
101386
+ let result;
101239
101387
  const { optionsNameMap } = getOptionsNameMap();
101240
101388
  for (const name of getOwnKeys(options).sort(compareStringsCaseSensitive)) {
101241
101389
  const optionInfo = optionsNameMap.get(name.toLowerCase());
101242
- if (optionInfo == null ? void 0 : optionInfo[optionKey]) {
101243
- (result2 || (result2 = {}))[name] = convertToReusableCompilerOptionValue(
101390
+ if (optionInfo == null ? void 0 : optionInfo.affectsBuildInfo) {
101391
+ (result || (result = {}))[name] = convertToReusableCompilerOptionValue(
101244
101392
  optionInfo,
101245
101393
  options[name],
101246
101394
  relativeToBuildInfoEnsuringAbsolutePath
101247
101395
  );
101248
101396
  }
101249
101397
  }
101250
- return result2;
101398
+ return result;
101251
101399
  }
101252
101400
  }
101253
101401
  function convertToReusableCompilerOptionValue(option, value, relativeToBuildInfo) {
@@ -101349,7 +101497,7 @@ function createBuilderProgram(kind, { newProgram, host, oldProgram, configFilePa
101349
101497
  const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames());
101350
101498
  const computeHash = maybeBind(host, host.createHash);
101351
101499
  const state = createBuilderProgramState(newProgram, getCanonicalFileName, oldState, host.disableUseFileVersionAsSignature);
101352
- newProgram.getProgramBuildInfo = () => getProgramBuildInfo(state, getCanonicalFileName);
101500
+ newProgram.getBuildInfo = (bundle) => getBuildInfo2(state, getCanonicalFileName, bundle);
101353
101501
  newProgram = void 0;
101354
101502
  oldProgram = void 0;
101355
101503
  oldState = void 0;
@@ -101382,50 +101530,70 @@ function createBuilderProgram(kind, { newProgram, host, oldProgram, configFilePa
101382
101530
  return emitSkippedWithNoDiagnostics;
101383
101531
  }
101384
101532
  function emitNextAffectedFile(writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers) {
101533
+ var _a2, _b, _c, _d, _e;
101385
101534
  let affected = getNextAffectedFile(state, cancellationToken, computeHash, getCanonicalFileName, host);
101386
- let emitKind = 1 /* Full */;
101387
- let isPendingEmitFile = false;
101535
+ const programEmitKind = getBuilderFileEmit(state.compilerOptions);
101536
+ let emitKind = emitOnlyDtsFiles ? programEmitKind & 24 /* AllDts */ : programEmitKind;
101388
101537
  if (!affected) {
101389
101538
  if (!outFile(state.compilerOptions)) {
101390
- const pendingAffectedFile = getNextAffectedFilePendingEmit(state);
101539
+ const pendingAffectedFile = getNextAffectedFilePendingEmit(state, emitOnlyDtsFiles);
101391
101540
  if (!pendingAffectedFile) {
101392
- if (!state.buildInfoEmitPending) {
101541
+ if (!state.buildInfoEmitPending)
101393
101542
  return void 0;
101394
- }
101395
- const affected2 = Debug.checkDefined(state.program);
101396
- return toAffectedFileEmitResult(
101397
- state,
101398
- affected2.emitBuildInfo(writeFile2 || maybeBind(host, host.writeFile), cancellationToken),
101399
- affected2,
101400
- 1 /* Full */,
101401
- false,
101402
- true
101403
- );
101543
+ const affected2 = state.program;
101544
+ const result2 = affected2.emitBuildInfo(writeFile2 || maybeBind(host, host.writeFile), cancellationToken);
101545
+ state.buildInfoEmitPending = false;
101546
+ return { result: result2, affected: affected2 };
101404
101547
  }
101405
101548
  ({ affectedFile: affected, emitKind } = pendingAffectedFile);
101406
- isPendingEmitFile = true;
101407
101549
  } else {
101408
- const program = Debug.checkDefined(state.program);
101409
- if (state.programEmitComplete)
101550
+ if (!state.programEmitPending)
101551
+ return void 0;
101552
+ emitKind = state.programEmitPending;
101553
+ if (emitOnlyDtsFiles)
101554
+ emitKind = emitKind & 24 /* AllDts */;
101555
+ if (!emitKind)
101410
101556
  return void 0;
101411
- affected = program;
101557
+ affected = state.program;
101412
101558
  }
101413
101559
  }
101414
- return toAffectedFileEmitResult(
101415
- state,
101416
- Debug.checkDefined(state.program).emit(
101417
- affected === state.program ? void 0 : affected,
101418
- getEmitDeclarations(state.compilerOptions) ? getWriteFileCallback(writeFile2, customTransformers) : writeFile2 || maybeBind(host, host.writeFile),
101419
- cancellationToken,
101420
- emitOnlyDtsFiles || emitKind === 0 /* DtsOnly */,
101421
- customTransformers
101422
- ),
101423
- affected,
101424
- emitKind,
101425
- isPendingEmitFile
101560
+ let emitOnly;
101561
+ if (emitKind & 7 /* AllJs */)
101562
+ emitOnly = 0 /* Js */;
101563
+ if (emitKind & 24 /* AllDts */)
101564
+ emitOnly = emitOnly === void 0 ? 1 /* Dts */ : void 0;
101565
+ if (affected === state.program) {
101566
+ state.programEmitPending = state.changedFilesSet.size ? getPendingEmitKind(programEmitKind, emitKind) : state.programEmitPending ? getPendingEmitKind(state.programEmitPending, emitKind) : void 0;
101567
+ }
101568
+ const result = state.program.emit(
101569
+ affected === state.program ? void 0 : affected,
101570
+ getWriteFileCallback(writeFile2, customTransformers),
101571
+ cancellationToken,
101572
+ emitOnly,
101573
+ customTransformers
101426
101574
  );
101575
+ if (affected !== state.program) {
101576
+ const affectedSourceFile = affected;
101577
+ state.seenAffectedFiles.add(affectedSourceFile.resolvedPath);
101578
+ if (state.affectedFilesIndex !== void 0)
101579
+ state.affectedFilesIndex++;
101580
+ state.buildInfoEmitPending = true;
101581
+ const existing = ((_a2 = state.seenEmittedFiles) == null ? void 0 : _a2.get(affectedSourceFile.resolvedPath)) || 0 /* None */;
101582
+ ((_b = state.seenEmittedFiles) != null ? _b : state.seenEmittedFiles = new Map()).set(affectedSourceFile.resolvedPath, emitKind | existing);
101583
+ const existingPending = ((_c = state.affectedFilesPendingEmit) == null ? void 0 : _c.get(affectedSourceFile.resolvedPath)) || programEmitKind;
101584
+ const pendingKind = getPendingEmitKind(existingPending, emitKind | existing);
101585
+ if (pendingKind)
101586
+ ((_d = state.affectedFilesPendingEmit) != null ? _d : state.affectedFilesPendingEmit = new Map()).set(affectedSourceFile.resolvedPath, pendingKind);
101587
+ else
101588
+ (_e = state.affectedFilesPendingEmit) == null ? void 0 : _e.delete(affectedSourceFile.resolvedPath);
101589
+ } else {
101590
+ state.changedFilesSet.clear();
101591
+ }
101592
+ return { result, affected };
101427
101593
  }
101428
101594
  function getWriteFileCallback(writeFile2, customTransformers) {
101595
+ if (!getEmitDeclarations(state.compilerOptions))
101596
+ return writeFile2 || maybeBind(host, host.writeFile);
101429
101597
  return (fileName, text, writeByteOrderMark, onError, sourceFiles, data) => {
101430
101598
  var _a2, _b, _c, _d, _e, _f, _g;
101431
101599
  if (isDeclarationFileName(fileName)) {
@@ -101464,21 +101632,16 @@ function createBuilderProgram(kind, { newProgram, host, oldProgram, configFilePa
101464
101632
  }
101465
101633
  if (state.compilerOptions.composite) {
101466
101634
  const filePath = sourceFiles[0].resolvedPath;
101467
- const oldSignature = (_f = state.emitSignatures) == null ? void 0 : _f.get(filePath);
101468
- emitSignature != null ? emitSignature : emitSignature = computeSignature(text, computeHash, data);
101469
- if (emitSignature === oldSignature)
101635
+ emitSignature = handleNewSignature((_f = state.emitSignatures) == null ? void 0 : _f.get(filePath), emitSignature);
101636
+ if (!emitSignature)
101470
101637
  return;
101471
101638
  ((_g = state.emitSignatures) != null ? _g : state.emitSignatures = new Map()).set(filePath, emitSignature);
101472
- state.hasChangedEmitSignature = true;
101473
- state.latestChangedDtsFile = fileName;
101474
101639
  }
101475
101640
  } else if (state.compilerOptions.composite) {
101476
- const newSignature = computeSignature(text, computeHash, data);
101477
- if (newSignature === state.outSignature)
101641
+ const newSignature = handleNewSignature(state.outSignature, void 0);
101642
+ if (!newSignature)
101478
101643
  return;
101479
101644
  state.outSignature = newSignature;
101480
- state.hasChangedEmitSignature = true;
101481
- state.latestChangedDtsFile = fileName;
101482
101645
  }
101483
101646
  }
101484
101647
  if (writeFile2)
@@ -101487,10 +101650,25 @@ function createBuilderProgram(kind, { newProgram, host, oldProgram, configFilePa
101487
101650
  host.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);
101488
101651
  else
101489
101652
  state.program.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);
101653
+ function handleNewSignature(oldSignatureFormat, newSignature) {
101654
+ const oldSignature = !oldSignatureFormat || isString(oldSignatureFormat) ? oldSignatureFormat : oldSignatureFormat[0];
101655
+ newSignature != null ? newSignature : newSignature = computeSignature(text, computeHash, data);
101656
+ if (newSignature === oldSignature) {
101657
+ if (oldSignatureFormat === oldSignature)
101658
+ return void 0;
101659
+ else if (data)
101660
+ data.differsOnlyInMap = true;
101661
+ else
101662
+ data = { differsOnlyInMap: true };
101663
+ } else {
101664
+ state.hasChangedEmitSignature = true;
101665
+ state.latestChangedDtsFile = fileName;
101666
+ }
101667
+ return newSignature;
101668
+ }
101490
101669
  };
101491
101670
  }
101492
101671
  function emit(targetSourceFile, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers) {
101493
- var _a2;
101494
101672
  if (kind === 1 /* EmitAndSemanticDiagnosticsBuilderProgram */) {
101495
101673
  assertSourceFileOkWithoutNextAffectedCall(state, targetSourceFile);
101496
101674
  }
@@ -101516,16 +101694,13 @@ function createBuilderProgram(kind, { newProgram, host, oldProgram, configFilePa
101516
101694
  emittedFiles,
101517
101695
  sourceMaps
101518
101696
  };
101519
- } else if ((_a2 = state.affectedFilesPendingEmitKind) == null ? void 0 : _a2.size) {
101520
- Debug.assert(kind === 0 /* SemanticDiagnosticsBuilderProgram */);
101521
- if (!emitOnlyDtsFiles || every(state.affectedFilesPendingEmit, (path, index) => index < state.affectedFilesPendingEmitIndex || state.affectedFilesPendingEmitKind.get(path) === 0 /* DtsOnly */)) {
101522
- clearAffectedFilesPendingEmit(state);
101523
- }
101697
+ } else {
101698
+ clearAffectedFilesPendingEmit(state, emitOnlyDtsFiles);
101524
101699
  }
101525
101700
  }
101526
101701
  return Debug.checkDefined(state.program).emit(
101527
101702
  targetSourceFile,
101528
- getEmitDeclarations(state.compilerOptions) ? getWriteFileCallback(writeFile2, customTransformers) : writeFile2 || maybeBind(host, host.writeFile),
101703
+ getWriteFileCallback(writeFile2, customTransformers),
101529
101704
  cancellationToken,
101530
101705
  emitOnlyDtsFiles,
101531
101706
  customTransformers
@@ -101534,27 +101709,25 @@ function createBuilderProgram(kind, { newProgram, host, oldProgram, configFilePa
101534
101709
  function getSemanticDiagnosticsOfNextAffectedFile(cancellationToken, ignoreSourceFile) {
101535
101710
  while (true) {
101536
101711
  const affected = getNextAffectedFile(state, cancellationToken, computeHash, getCanonicalFileName, host);
101537
- if (!affected) {
101712
+ let result;
101713
+ if (!affected)
101538
101714
  return void 0;
101539
- } else if (affected === state.program) {
101540
- return toAffectedFileResult(
101541
- state,
101542
- state.program.getSemanticDiagnostics(void 0, cancellationToken),
101543
- affected
101544
- );
101545
- }
101546
- if (kind === 1 /* EmitAndSemanticDiagnosticsBuilderProgram */ || state.compilerOptions.noEmit || state.compilerOptions.noEmitOnError) {
101547
- addToAffectedFilesPendingEmit(state, affected.resolvedPath, 1 /* Full */);
101548
- }
101549
- if (ignoreSourceFile && ignoreSourceFile(affected)) {
101550
- doneWithAffectedFile(state, affected);
101551
- continue;
101715
+ else if (affected !== state.program) {
101716
+ const affectedSourceFile = affected;
101717
+ if (!ignoreSourceFile || !ignoreSourceFile(affectedSourceFile)) {
101718
+ result = getSemanticDiagnosticsOfFile(state, affectedSourceFile, cancellationToken);
101719
+ }
101720
+ state.seenAffectedFiles.add(affectedSourceFile.resolvedPath);
101721
+ state.affectedFilesIndex++;
101722
+ state.buildInfoEmitPending = true;
101723
+ if (!result)
101724
+ continue;
101725
+ } else {
101726
+ result = state.program.getSemanticDiagnostics(void 0, cancellationToken);
101727
+ state.changedFilesSet.clear();
101728
+ state.programEmitPending = getBuilderFileEmit(state.compilerOptions);
101552
101729
  }
101553
- return toAffectedFileResult(
101554
- state,
101555
- getSemanticDiagnosticsOfFile(state, affected, cancellationToken),
101556
- affected
101557
- );
101730
+ return { result, affected };
101558
101731
  }
101559
101732
  }
101560
101733
  function getSemanticDiagnostics(sourceFile, cancellationToken) {
@@ -101577,46 +101750,49 @@ function createBuilderProgram(kind, { newProgram, host, oldProgram, configFilePa
101577
101750
  }
101578
101751
  }
101579
101752
  function addToAffectedFilesPendingEmit(state, affectedFilePendingEmit, kind) {
101580
- if (!state.affectedFilesPendingEmit)
101581
- state.affectedFilesPendingEmit = [];
101582
- if (!state.affectedFilesPendingEmitKind)
101583
- state.affectedFilesPendingEmitKind = new Map();
101584
- const existingKind = state.affectedFilesPendingEmitKind.get(affectedFilePendingEmit);
101585
- state.affectedFilesPendingEmit.push(affectedFilePendingEmit);
101586
- state.affectedFilesPendingEmitKind.set(affectedFilePendingEmit, existingKind || kind);
101587
- if (state.affectedFilesPendingEmitIndex === void 0) {
101588
- state.affectedFilesPendingEmitIndex = 0;
101589
- }
101590
- }
101591
- function toBuilderStateFileInfo(fileInfo) {
101753
+ var _a2, _b;
101754
+ const existingKind = ((_a2 = state.affectedFilesPendingEmit) == null ? void 0 : _a2.get(affectedFilePendingEmit)) || 0 /* None */;
101755
+ ((_b = state.affectedFilesPendingEmit) != null ? _b : state.affectedFilesPendingEmit = new Map()).set(affectedFilePendingEmit, existingKind | kind);
101756
+ }
101757
+ function toBuilderStateFileInfoForMultiEmit(fileInfo) {
101592
101758
  return isString(fileInfo) ? { version: fileInfo, signature: fileInfo, affectsGlobalScope: void 0, impliedFormat: void 0 } : isString(fileInfo.signature) ? fileInfo : { version: fileInfo.version, signature: fileInfo.signature === false ? void 0 : fileInfo.version, affectsGlobalScope: fileInfo.affectsGlobalScope, impliedFormat: fileInfo.impliedFormat };
101593
101759
  }
101594
- function toBuilderFileEmit(value) {
101595
- return isNumber(value) ? 1 /* Full */ : 0 /* DtsOnly */;
101760
+ function toBuilderFileEmit(value, fullEmitForOptions) {
101761
+ return isNumber(value) ? fullEmitForOptions : value[1] || 8 /* Dts */;
101762
+ }
101763
+ function toProgramEmitPending(value, options) {
101764
+ return !value ? getBuilderFileEmit(options || {}) : value;
101596
101765
  }
101597
- function createBuilderProgramUsingProgramBuildInfo(program, buildInfoPath, host) {
101766
+ function createBuilderProgramUsingProgramBuildInfo(buildInfo, buildInfoPath, host) {
101598
101767
  var _a2, _b, _c, _d;
101768
+ const program = buildInfo.program;
101599
101769
  const buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(buildInfoPath, host.getCurrentDirectory()));
101600
101770
  const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames());
101601
101771
  let state;
101602
- let filePaths;
101772
+ const filePaths = (_a2 = program.fileNames) == null ? void 0 : _a2.map(toPath3);
101603
101773
  let filePathsSetList;
101604
101774
  const latestChangedDtsFile = program.latestChangedDtsFile ? toAbsolutePath(program.latestChangedDtsFile) : void 0;
101605
101775
  if (isProgramBundleEmitBuildInfo(program)) {
101776
+ const fileInfos = new Map();
101777
+ program.fileInfos.forEach((fileInfo, index) => {
101778
+ const path = toFilePath(index + 1);
101779
+ fileInfos.set(path, isString(fileInfo) ? { version: fileInfo, signature: void 0, affectsGlobalScope: void 0, impliedFormat: void 0 } : fileInfo);
101780
+ });
101606
101781
  state = {
101607
- fileInfos: new Map(),
101782
+ fileInfos,
101608
101783
  compilerOptions: program.options ? convertToOptionsWithAbsolutePaths(program.options, toAbsolutePath) : {},
101609
101784
  latestChangedDtsFile,
101610
- outSignature: program.outSignature
101785
+ outSignature: program.outSignature,
101786
+ programEmitPending: program.pendingEmit === void 0 ? void 0 : toProgramEmitPending(program.pendingEmit, program.options),
101787
+ bundle: buildInfo.bundle
101611
101788
  };
101612
101789
  } else {
101613
- filePaths = (_a2 = program.fileNames) == null ? void 0 : _a2.map(toPath3);
101614
101790
  filePathsSetList = (_b = program.fileIdsList) == null ? void 0 : _b.map((fileIds) => new Set(fileIds.map(toFilePath)));
101615
101791
  const fileInfos = new Map();
101616
101792
  const emitSignatures = ((_c = program.options) == null ? void 0 : _c.composite) && !outFile(program.options) ? new Map() : void 0;
101617
101793
  program.fileInfos.forEach((fileInfo, index) => {
101618
101794
  const path = toFilePath(index + 1);
101619
- const stateFileInfo = toBuilderStateFileInfo(fileInfo);
101795
+ const stateFileInfo = toBuilderStateFileInfoForMultiEmit(fileInfo);
101620
101796
  fileInfos.set(path, stateFileInfo);
101621
101797
  if (emitSignatures && stateFileInfo.signature)
101622
101798
  emitSignatures.set(path, stateFileInfo.signature);
@@ -101624,9 +101800,15 @@ function createBuilderProgramUsingProgramBuildInfo(program, buildInfoPath, host)
101624
101800
  (_d = program.emitSignatures) == null ? void 0 : _d.forEach((value) => {
101625
101801
  if (isNumber(value))
101626
101802
  emitSignatures.delete(toFilePath(value));
101627
- else
101628
- emitSignatures.set(toFilePath(value[0]), value[1]);
101803
+ else {
101804
+ const key = toFilePath(value[0]);
101805
+ emitSignatures.set(
101806
+ key,
101807
+ !isString(value[1]) && !value[1].length ? [emitSignatures.get(key)] : value[1]
101808
+ );
101809
+ }
101629
101810
  });
101811
+ const fullEmitForOptions = program.affectedFilesPendingEmit ? getBuilderFileEmit(program.options || {}) : void 0;
101630
101812
  state = {
101631
101813
  fileInfos,
101632
101814
  compilerOptions: program.options ? convertToOptionsWithAbsolutePaths(program.options, toAbsolutePath) : {},
@@ -101634,9 +101816,7 @@ function createBuilderProgramUsingProgramBuildInfo(program, buildInfoPath, host)
101634
101816
  exportedModulesMap: toManyToManyPathMap(program.exportedModulesMap),
101635
101817
  semanticDiagnosticsPerFile: program.semanticDiagnosticsPerFile && arrayToMap(program.semanticDiagnosticsPerFile, (value) => toFilePath(isNumber(value) ? value : value[0]), (value) => isNumber(value) ? emptyArray : value[1]),
101636
101818
  hasReusableDiagnostic: true,
101637
- affectedFilesPendingEmit: map(program.affectedFilesPendingEmit, (value) => toFilePath(isNumber(value) ? value : value[0])),
101638
- affectedFilesPendingEmitKind: program.affectedFilesPendingEmit && arrayToMap(program.affectedFilesPendingEmit, (value) => toFilePath(isNumber(value) ? value : value[0]), toBuilderFileEmit),
101639
- affectedFilesPendingEmitIndex: program.affectedFilesPendingEmit && 0,
101819
+ affectedFilesPendingEmit: program.affectedFilesPendingEmit && arrayToMap(program.affectedFilesPendingEmit, (value) => toFilePath(isNumber(value) ? value : value[0]), (value) => toBuilderFileEmit(value, fullEmitForOptions)),
101640
101820
  changedFilesSet: new Set(map(program.changeFileSet, toFilePath)),
101641
101821
  latestChangedDtsFile,
101642
101822
  emitSignatures: (emitSignatures == null ? void 0 : emitSignatures.size) ? emitSignatures : void 0
@@ -101838,7 +102018,7 @@ function createResolutionCache(resolutionHost, rootDirForResolution, logChangesW
101838
102018
  function getResolvedModule2(resolution) {
101839
102019
  return resolution.resolvedModule;
101840
102020
  }
101841
- function getResolvedTypeReferenceDirective(resolution) {
102021
+ function getResolvedTypeReferenceDirective2(resolution) {
101842
102022
  return resolution.resolvedTypeReferenceDirective;
101843
102023
  }
101844
102024
  function isInDirectoryPath(dir, file) {
@@ -101975,11 +102155,12 @@ function createResolutionCache(resolutionHost, rootDirForResolution, logChangesW
101975
102155
  getResolutionWithResolvedFileName,
101976
102156
  shouldRetryResolution,
101977
102157
  reusedNames,
102158
+ resolutionInfo,
101978
102159
  logChanges,
101979
102160
  containingSourceFile,
101980
102161
  containingSourceFileMode
101981
102162
  }) {
101982
- var _a2, _b, _c;
102163
+ var _a2, _b, _c, _d;
101983
102164
  const path = resolutionHost.toPath(containingFile);
101984
102165
  const resolutionsInFile = cache.get(path) || cache.set(path, createModeAwareCache()).get(path);
101985
102166
  const dirPath = getDirectoryPath(path);
@@ -101997,9 +102178,9 @@ function createResolutionCache(resolutionHost, rootDirForResolution, logChangesW
101997
102178
  const unmatchedRedirects = oldRedirect ? !redirectedReference || redirectedReference.sourceFile.path !== oldRedirect.sourceFile.path : !!redirectedReference;
101998
102179
  const seenNamesInFile = createModeAwareCache();
101999
102180
  let i = 0;
102000
- for (const entry of names) {
102001
- const name = isString(entry) ? entry : entry.fileName.toLowerCase();
102002
- const mode = !isString(entry) ? getModeForFileReference(entry, containingSourceFileMode) : containingSourceFile ? getModeForResolutionAtIndex(containingSourceFile, i) : void 0;
102181
+ for (const entry of containingSourceFile && resolutionInfo ? resolutionInfo.names : names) {
102182
+ const name = getResolutionName(entry);
102183
+ const mode = !isString(entry) ? isStringLiteralLike(entry) ? getModeForUsageLocation(containingSourceFile, entry) : getModeForFileReference(entry, containingSourceFileMode) : containingSourceFile ? getModeForResolutionAtIndex(containingSourceFile, i) : void 0;
102003
102184
  i++;
102004
102185
  let resolution = resolutionsInFile.get(name, mode);
102005
102186
  if (!seenNamesInFile.has(name, mode) && unmatchedRedirects || !resolution || resolution.isInvalidated || hasInvalidatedNonRelativeUnresolvedImport && !isExternalModuleNameRelative(name) && shouldRetryResolution(resolution)) {
@@ -102054,12 +102235,22 @@ function createResolutionCache(resolutionHost, rootDirForResolution, logChangesW
102054
102235
  seenNamesInFile.set(name, mode, true);
102055
102236
  resolvedModules.push(getResolutionWithResolvedFileName(resolution));
102056
102237
  }
102057
- resolutionsInFile.forEach((resolution, name, mode) => {
102058
- if (!seenNamesInFile.has(name, mode) && !contains(reusedNames, name)) {
102059
- stopWatchFailedLookupLocationOfResolution(resolution, path, getResolutionWithResolvedFileName);
102060
- resolutionsInFile.delete(name, mode);
102061
- }
102062
- });
102238
+ if (containingSourceFile && resolutionInfo) {
102239
+ (_d = resolutionInfo.reusedNames) == null ? void 0 : _d.forEach((entry) => seenNamesInFile.set(
102240
+ getResolutionName(entry),
102241
+ !isString(entry) && isStringLiteralLike(entry) ? getModeForUsageLocation(containingSourceFile, entry) : getModeForFileReference(entry, containingSourceFile.impliedNodeFormat),
102242
+ true
102243
+ ));
102244
+ reusedNames = void 0;
102245
+ }
102246
+ if (resolutionsInFile.size() !== seenNamesInFile.size()) {
102247
+ resolutionsInFile.forEach((resolution, name, mode) => {
102248
+ if (!seenNamesInFile.has(name, mode) && !contains(reusedNames, name)) {
102249
+ stopWatchFailedLookupLocationOfResolution(resolution, path, getResolutionWithResolvedFileName);
102250
+ resolutionsInFile.delete(name, mode);
102251
+ }
102252
+ });
102253
+ }
102063
102254
  return resolvedModules;
102064
102255
  function resolutionIsEqualTo(oldResolution, newResolution) {
102065
102256
  if (oldResolution === newResolution) {
@@ -102079,7 +102270,7 @@ function createResolutionCache(resolutionHost, rootDirForResolution, logChangesW
102079
102270
  return oldResult.resolvedFileName === newResult.resolvedFileName;
102080
102271
  }
102081
102272
  }
102082
- function resolveTypeReferenceDirectives(typeDirectiveNames, containingFile, redirectedReference, containingFileMode) {
102273
+ function resolveTypeReferenceDirectives(typeDirectiveNames, containingFile, redirectedReference, containingFileMode, resolutionInfo) {
102083
102274
  return resolveNamesWithLocalCache({
102084
102275
  names: typeDirectiveNames,
102085
102276
  containingFile,
@@ -102087,12 +102278,13 @@ function createResolutionCache(resolutionHost, rootDirForResolution, logChangesW
102087
102278
  cache: resolvedTypeReferenceDirectives,
102088
102279
  perDirectoryCacheWithRedirects: perDirectoryResolvedTypeReferenceDirectives,
102089
102280
  loader: resolveTypeReferenceDirective2,
102090
- getResolutionWithResolvedFileName: getResolvedTypeReferenceDirective,
102281
+ getResolutionWithResolvedFileName: getResolvedTypeReferenceDirective2,
102091
102282
  shouldRetryResolution: (resolution) => resolution.resolvedTypeReferenceDirective === void 0,
102092
- containingSourceFileMode: containingFileMode
102283
+ containingSourceFileMode: containingFileMode,
102284
+ resolutionInfo
102093
102285
  });
102094
102286
  }
102095
- function resolveModuleNames(moduleNames, containingFile, reusedNames, redirectedReference, containingSourceFile) {
102287
+ function resolveModuleNames(moduleNames, containingFile, reusedNames, redirectedReference, containingSourceFile, resolutionInfo) {
102096
102288
  return resolveNamesWithLocalCache({
102097
102289
  names: moduleNames,
102098
102290
  containingFile,
@@ -102103,6 +102295,7 @@ function createResolutionCache(resolutionHost, rootDirForResolution, logChangesW
102103
102295
  getResolutionWithResolvedFileName: getResolvedModule2,
102104
102296
  shouldRetryResolution: (resolution) => !resolution.resolvedModule || !resolutionExtensionIsTSOrJson(resolution.resolvedModule.extension),
102105
102297
  reusedNames,
102298
+ resolutionInfo,
102106
102299
  logChanges: logChangesWhenResolvingModule,
102107
102300
  containingSourceFile
102108
102301
  });
@@ -102379,7 +102572,7 @@ function createResolutionCache(resolutionHost, rootDirForResolution, logChangesW
102379
102572
  }
102380
102573
  function removeResolutionsOfFile(filePath) {
102381
102574
  removeResolutionsOfFileFromCache(resolvedModuleNames, filePath, getResolvedModule2);
102382
- removeResolutionsOfFileFromCache(resolvedTypeReferenceDirectives, filePath, getResolvedTypeReferenceDirective);
102575
+ removeResolutionsOfFileFromCache(resolvedTypeReferenceDirectives, filePath, getResolvedTypeReferenceDirective2);
102383
102576
  }
102384
102577
  function invalidateResolutions(resolutions, canInvalidate) {
102385
102578
  if (!resolutions)
@@ -102985,13 +103178,44 @@ function createCompilerHostFromProgramHost(host, getCompilerOptions, directorySt
102985
103178
  storeFilesChangingSignatureDuringEmit: host.storeFilesChangingSignatureDuringEmit
102986
103179
  };
102987
103180
  }
103181
+ function getSourceFileVersionAsHashFromText(host, text) {
103182
+ if (text.match(sourceMapCommentRegExpDontCareLineStart)) {
103183
+ let lineEnd = text.length;
103184
+ let lineStart = lineEnd;
103185
+ for (let pos = lineEnd - 1; pos >= 0; pos--) {
103186
+ const ch = text.charCodeAt(pos);
103187
+ switch (ch) {
103188
+ case 10 /* lineFeed */:
103189
+ if (pos && text.charCodeAt(pos - 1) === 13 /* carriageReturn */) {
103190
+ pos--;
103191
+ }
103192
+ case 13 /* carriageReturn */:
103193
+ break;
103194
+ default:
103195
+ if (ch < 127 /* maxAsciiCharacter */ || !isLineBreak(ch)) {
103196
+ lineStart = pos;
103197
+ continue;
103198
+ }
103199
+ break;
103200
+ }
103201
+ const line = text.substring(lineStart, lineEnd);
103202
+ if (line.match(sourceMapCommentRegExp)) {
103203
+ text = text.substring(0, lineStart);
103204
+ break;
103205
+ } else if (!line.match(whitespaceOrMapCommentRegExp)) {
103206
+ break;
103207
+ }
103208
+ lineEnd = lineStart;
103209
+ }
103210
+ }
103211
+ return (host.createHash || generateDjb2Hash)(text);
103212
+ }
102988
103213
  function setGetSourceFileAsHashVersioned(compilerHost, host) {
102989
103214
  const originalGetSourceFile = compilerHost.getSourceFile;
102990
- const computeHash = maybeBind(host, host.createHash) || generateDjb2Hash;
102991
103215
  compilerHost.getSourceFile = (...args) => {
102992
103216
  const result = originalGetSourceFile.call(compilerHost, ...args);
102993
103217
  if (result) {
102994
- result.version = computeHash(result.text);
103218
+ result.version = getSourceFileVersionAsHashFromText(host, result.text);
102995
103219
  }
102996
103220
  return result;
102997
103221
  };
@@ -103113,7 +103337,7 @@ function readBuilderProgram(compilerOptions, host) {
103113
103337
  }
103114
103338
  if (!buildInfo || buildInfo.version !== version || !buildInfo.program)
103115
103339
  return void 0;
103116
- return createBuilderProgramUsingProgramBuildInfo(buildInfo.program, buildInfoPath, host);
103340
+ return createBuilderProgramUsingProgramBuildInfo(buildInfo, buildInfoPath, host);
103117
103341
  }
103118
103342
  function createIncrementalCompilerHost(options, system = sys) {
103119
103343
  const host = createCompilerHostWorker(options, void 0, system);
@@ -103209,8 +103433,8 @@ function createWatchProgram(host) {
103209
103433
  configFileName ? getDirectoryPath(getNormalizedAbsolutePath(configFileName, currentDirectory)) : currentDirectory,
103210
103434
  false
103211
103435
  );
103212
- compilerHost.resolveModuleNames = host.resolveModuleNames ? (...args) => host.resolveModuleNames(...args) : (moduleNames, containingFile, reusedNames, redirectedReference, _options, sourceFile) => resolutionCache.resolveModuleNames(moduleNames, containingFile, reusedNames, redirectedReference, sourceFile);
103213
- compilerHost.resolveTypeReferenceDirectives = host.resolveTypeReferenceDirectives ? (...args) => host.resolveTypeReferenceDirectives(...args) : (typeDirectiveNames, containingFile, redirectedReference, _options, containingFileMode) => resolutionCache.resolveTypeReferenceDirectives(typeDirectiveNames, containingFile, redirectedReference, containingFileMode);
103436
+ compilerHost.resolveModuleNames = host.resolveModuleNames ? (...args) => host.resolveModuleNames(...args) : (moduleNames, containingFile, reusedNames, redirectedReference, _options, sourceFile, resolutionInfo) => resolutionCache.resolveModuleNames(moduleNames, containingFile, reusedNames, redirectedReference, sourceFile, resolutionInfo);
103437
+ compilerHost.resolveTypeReferenceDirectives = host.resolveTypeReferenceDirectives ? (...args) => host.resolveTypeReferenceDirectives(...args) : (typeDirectiveNames, containingFile, redirectedReference, _options, containingFileMode, resolutionInfo) => resolutionCache.resolveTypeReferenceDirectives(typeDirectiveNames, containingFile, redirectedReference, containingFileMode, resolutionInfo);
103214
103438
  compilerHost.getModuleResolutionCache = host.resolveModuleNames ? maybeBind(host, host.getModuleResolutionCache) : () => resolutionCache.getModuleResolutionCache();
103215
103439
  const userProvidedResolution = !!host.resolveModuleNames || !!host.resolveTypeReferenceDirectives;
103216
103440
  const customHasInvalidatedResolutions = userProvidedResolution ? maybeBind(host, host.hasInvalidatedResolutions) || returnTrue : returnFalse;
@@ -103852,14 +104076,14 @@ function createSolutionBuilderState(watch, hostOrHostWithWatch, rootNames, optio
103852
104076
  const typeReferenceDirectiveResolutionCache = !compilerHost.resolveTypeReferenceDirectives ? createTypeReferenceDirectiveResolutionCache(currentDirectory, getCanonicalFileName, void 0, moduleResolutionCache == null ? void 0 : moduleResolutionCache.getPackageJsonInfoCache()) : void 0;
103853
104077
  if (!compilerHost.resolveModuleNames) {
103854
104078
  const loader = (moduleName, resolverMode, containingFile, redirectedReference) => resolveModuleName(moduleName, containingFile, state.projectCompilerOptions, compilerHost, moduleResolutionCache, redirectedReference, resolverMode).resolvedModule;
103855
- compilerHost.resolveModuleNames = (moduleNames, containingFile, _reusedNames, redirectedReference, _options, containingSourceFile) => loadWithModeAwareCache(Debug.checkEachDefined(moduleNames), Debug.checkDefined(containingSourceFile), containingFile, redirectedReference, loader);
104079
+ compilerHost.resolveModuleNames = (moduleNames, containingFile, _reusedNames, redirectedReference, _options, containingSourceFile, resolutionInfo) => loadWithModeAwareCache(Debug.checkEachDefined(moduleNames), Debug.checkDefined(containingSourceFile), containingFile, redirectedReference, resolutionInfo, loader);
103856
104080
  compilerHost.getModuleResolutionCache = () => moduleResolutionCache;
103857
104081
  }
103858
104082
  if (!compilerHost.resolveTypeReferenceDirectives) {
103859
104083
  const loader = (moduleName, containingFile, redirectedReference, containingFileMode) => resolveTypeReferenceDirective(moduleName, containingFile, state.projectCompilerOptions, compilerHost, redirectedReference, state.typeReferenceDirectiveResolutionCache, containingFileMode).resolvedTypeReferenceDirective;
103860
104084
  compilerHost.resolveTypeReferenceDirectives = (typeReferenceDirectiveNames, containingFile, redirectedReference, _options, containingFileMode) => loadWithTypeDirectiveCache(Debug.checkEachDefined(typeReferenceDirectiveNames), containingFile, redirectedReference, containingFileMode, loader);
103861
104085
  }
103862
- compilerHost.getBuildInfo = (fileName, configFilePath) => getBuildInfo2(state, fileName, toResolvedConfigFilePath(state, configFilePath), void 0);
104086
+ compilerHost.getBuildInfo = (fileName, configFilePath) => getBuildInfo3(state, fileName, toResolvedConfigFilePath(state, configFilePath), void 0);
103863
104087
  const { watchFile: watchFile2, watchDirectory, writeLog } = createWatchFactory(hostWithWatch, options);
103864
104088
  const state = {
103865
104089
  host,
@@ -104345,7 +104569,7 @@ function createBuildOrUpdateInvalidedProject(kind, state, project, projectPath,
104345
104569
  reportDeclarationDiagnostics,
104346
104570
  void 0,
104347
104571
  void 0,
104348
- (name, text, writeByteOrderMark, _onError, _sourceFiles, data) => outputFiles.push({ name, text, writeByteOrderMark, buildInfo: data == null ? void 0 : data.buildInfo }),
104572
+ (name, text, writeByteOrderMark, _onError, _sourceFiles, data) => outputFiles.push({ name, text, writeByteOrderMark, data }),
104349
104573
  cancellationToken,
104350
104574
  false,
104351
104575
  customTransformers || ((_b = (_a2 = state.host).getCustomTransformers) == null ? void 0 : _b.call(_a2, project))
@@ -104374,13 +104598,16 @@ function createBuildOrUpdateInvalidedProject(kind, state, project, projectPath,
104374
104598
  const isIncremental = isIncrementalCompilation(options);
104375
104599
  let outputTimeStampMap;
104376
104600
  let now;
104377
- outputFiles.forEach(({ name, text, writeByteOrderMark, buildInfo }) => {
104601
+ outputFiles.forEach(({ name, text, writeByteOrderMark, data }) => {
104378
104602
  const path = toPath2(state, name);
104379
104603
  emittedOutputs.set(toPath2(state, name), name);
104380
- if (buildInfo)
104381
- setBuildInfo(state, buildInfo, projectPath, options, resultFlags);
104604
+ if (data == null ? void 0 : data.buildInfo)
104605
+ setBuildInfo(state, data.buildInfo, projectPath, options, resultFlags);
104606
+ const modifiedTime = (data == null ? void 0 : data.differsOnlyInMap) ? getModifiedTime(state.host, name) : void 0;
104382
104607
  writeFile(writeFileCallback ? { writeFile: writeFileCallback } : compilerHost, emitterDiagnostics, name, text, writeByteOrderMark);
104383
- if (!isIncremental && state.watch) {
104608
+ if (data == null ? void 0 : data.differsOnlyInMap)
104609
+ state.host.setModifiedTime(name, modifiedTime);
104610
+ else if (!isIncremental && state.watch) {
104384
104611
  (outputTimeStampMap || (outputTimeStampMap = getOutputTimeStampMap(state, projectPath))).set(path, now || (now = getCurrentTime(state.host)));
104385
104612
  }
104386
104613
  });
@@ -104484,14 +104711,14 @@ function createBuildOrUpdateInvalidedProject(kind, state, project, projectPath,
104484
104711
  const emittedOutputs = new Map();
104485
104712
  let resultFlags = 2 /* DeclarationOutputUnchanged */;
104486
104713
  const existingBuildInfo = state.buildInfoCache.get(projectPath).buildInfo || void 0;
104487
- outputFiles.forEach(({ name, text, writeByteOrderMark, buildInfo }) => {
104714
+ outputFiles.forEach(({ name, text, writeByteOrderMark, data }) => {
104488
104715
  var _a3, _b2;
104489
104716
  emittedOutputs.set(toPath2(state, name), name);
104490
- if (buildInfo) {
104491
- if (((_a3 = buildInfo.program) == null ? void 0 : _a3.outSignature) !== ((_b2 = existingBuildInfo == null ? void 0 : existingBuildInfo.program) == null ? void 0 : _b2.outSignature)) {
104717
+ if (data == null ? void 0 : data.buildInfo) {
104718
+ if (((_a3 = data.buildInfo.program) == null ? void 0 : _a3.outSignature) !== ((_b2 = existingBuildInfo == null ? void 0 : existingBuildInfo.program) == null ? void 0 : _b2.outSignature)) {
104492
104719
  resultFlags &= ~2 /* DeclarationOutputUnchanged */;
104493
104720
  }
104494
- setBuildInfo(state, buildInfo, projectPath, config.options, resultFlags);
104721
+ setBuildInfo(state, data.buildInfo, projectPath, config.options, resultFlags);
104495
104722
  }
104496
104723
  writeFile(writeFileCallback ? { writeFile: writeFileCallback } : compilerHost, emitterDiagnostics, name, text, writeByteOrderMark);
104497
104724
  });
@@ -104591,7 +104818,7 @@ function getNextInvalidatedProjectCreateInfo(state, buildOrder, reportQueue) {
104591
104818
  }
104592
104819
  continue;
104593
104820
  }
104594
- if (status.type === 2 /* UpToDateWithUpstreamTypes */ || status.type === 13 /* UpToDateWithInputFileText */) {
104821
+ if (status.type === 2 /* UpToDateWithUpstreamTypes */ || status.type === 14 /* UpToDateWithInputFileText */) {
104595
104822
  reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));
104596
104823
  return {
104597
104824
  kind: 2 /* UpdateOutputFileStamps */,
@@ -104603,7 +104830,7 @@ function getNextInvalidatedProjectCreateInfo(state, buildOrder, reportQueue) {
104603
104830
  };
104604
104831
  }
104605
104832
  }
104606
- if (status.type === 10 /* UpstreamBlocked */) {
104833
+ if (status.type === 11 /* UpstreamBlocked */) {
104607
104834
  verboseReportProjectStatus(state, project, status);
104608
104835
  reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));
104609
104836
  projectPendingBuild.delete(projectPath);
@@ -104617,7 +104844,7 @@ function getNextInvalidatedProjectCreateInfo(state, buildOrder, reportQueue) {
104617
104844
  }
104618
104845
  continue;
104619
104846
  }
104620
- if (status.type === 14 /* ContainerOnly */) {
104847
+ if (status.type === 15 /* ContainerOnly */) {
104621
104848
  verboseReportProjectStatus(state, project, status);
104622
104849
  reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));
104623
104850
  projectPendingBuild.delete(projectPath);
@@ -104779,7 +105006,7 @@ function getBuildInfoCacheEntry(state, buildInfoPath, resolvedConfigPath) {
104779
105006
  const existing = state.buildInfoCache.get(resolvedConfigPath);
104780
105007
  return (existing == null ? void 0 : existing.path) === path ? existing : void 0;
104781
105008
  }
104782
- function getBuildInfo2(state, buildInfoPath, resolvedConfigPath, modifiedTime) {
105009
+ function getBuildInfo3(state, buildInfoPath, resolvedConfigPath, modifiedTime) {
104783
105010
  const path = toPath2(state, buildInfoPath);
104784
105011
  const existing = state.buildInfoCache.get(resolvedConfigPath);
104785
105012
  if (existing !== void 0 && existing.path === path) {
@@ -104804,31 +105031,31 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
104804
105031
  var _a2, _b;
104805
105032
  if (!project.fileNames.length && !canJsonReportNoInputFiles(project.raw)) {
104806
105033
  return {
104807
- type: 14 /* ContainerOnly */
105034
+ type: 15 /* ContainerOnly */
104808
105035
  };
104809
105036
  }
104810
105037
  let referenceStatuses;
104811
105038
  const force = !!state.options.force;
104812
105039
  if (project.projectReferences) {
104813
- state.projectStatus.set(resolvedPath, { type: 11 /* ComputingUpstream */ });
105040
+ state.projectStatus.set(resolvedPath, { type: 12 /* ComputingUpstream */ });
104814
105041
  for (const ref of project.projectReferences) {
104815
105042
  const resolvedRef = resolveProjectReferencePath(ref);
104816
105043
  const resolvedRefPath = toResolvedConfigFilePath(state, resolvedRef);
104817
105044
  const resolvedConfig = parseConfigFile(state, resolvedRef, resolvedRefPath);
104818
105045
  const refStatus = getUpToDateStatus(state, resolvedConfig, resolvedRefPath);
104819
- if (refStatus.type === 11 /* ComputingUpstream */ || refStatus.type === 14 /* ContainerOnly */) {
105046
+ if (refStatus.type === 12 /* ComputingUpstream */ || refStatus.type === 15 /* ContainerOnly */) {
104820
105047
  continue;
104821
105048
  }
104822
- if (refStatus.type === 0 /* Unbuildable */ || refStatus.type === 10 /* UpstreamBlocked */) {
105049
+ if (refStatus.type === 0 /* Unbuildable */ || refStatus.type === 11 /* UpstreamBlocked */) {
104823
105050
  return {
104824
- type: 10 /* UpstreamBlocked */,
105051
+ type: 11 /* UpstreamBlocked */,
104825
105052
  upstreamProjectName: ref.path,
104826
- upstreamProjectBlocked: refStatus.type === 10 /* UpstreamBlocked */
105053
+ upstreamProjectBlocked: refStatus.type === 11 /* UpstreamBlocked */
104827
105054
  };
104828
105055
  }
104829
105056
  if (refStatus.type !== 1 /* UpToDate */) {
104830
105057
  return {
104831
- type: 9 /* UpstreamOutOfDate */,
105058
+ type: 10 /* UpstreamOutOfDate */,
104832
105059
  upstreamProjectName: ref.path
104833
105060
  };
104834
105061
  }
@@ -104837,7 +105064,7 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
104837
105064
  }
104838
105065
  }
104839
105066
  if (force)
104840
- return { type: 15 /* ForceBuild */ };
105067
+ return { type: 16 /* ForceBuild */ };
104841
105068
  const { host } = state;
104842
105069
  const buildInfoPath = getTsBuildInfoEmitOutputFilePath(project.options);
104843
105070
  let oldestOutputFileName;
@@ -104861,7 +105088,7 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
104861
105088
  missingOutputFileName: buildInfoPath
104862
105089
  };
104863
105090
  }
104864
- const buildInfo = getBuildInfo2(state, buildInfoPath, resolvedPath, buildInfoTime);
105091
+ const buildInfo = getBuildInfo3(state, buildInfoPath, resolvedPath, buildInfoTime);
104865
105092
  if (!buildInfo) {
104866
105093
  return {
104867
105094
  type: 5 /* ErrorReadingFile */,
@@ -104870,7 +105097,7 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
104870
105097
  }
104871
105098
  if ((buildInfo.bundle || buildInfo.program) && buildInfo.version !== version) {
104872
105099
  return {
104873
- type: 12 /* TsVersionOutputOfDate */,
105100
+ type: 13 /* TsVersionOutputOfDate */,
104874
105101
  version: buildInfo.version
104875
105102
  };
104876
105103
  }
@@ -104881,6 +105108,12 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
104881
105108
  buildInfoFile: buildInfoPath
104882
105109
  };
104883
105110
  }
105111
+ if (!project.options.noEmit && getPendingEmitKind(project.options, buildInfo.program.options || {})) {
105112
+ return {
105113
+ type: 9 /* OutOfDateOptions */,
105114
+ buildInfoFile: buildInfoPath
105115
+ };
105116
+ }
104884
105117
  buildInfoProgram = buildInfo.program;
104885
105118
  }
104886
105119
  oldestOutputFileTime = buildInfoTime;
@@ -104905,7 +105138,7 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
104905
105138
  buildInfoVersionMap = getBuildInfoFileVersionMap(buildInfoProgram, buildInfoPath, host);
104906
105139
  version2 = buildInfoVersionMap.get(toPath2(state, inputFile));
104907
105140
  const text = version2 ? state.readFileWithCache(inputFile) : void 0;
104908
- currentVersion = text && (host.createHash || generateDjb2Hash)(text);
105141
+ currentVersion = text && getSourceFileVersionAsHashFromText(host, text);
104909
105142
  if (version2 && version2 === currentVersion)
104910
105143
  pseudoInputUpToDate = true;
104911
105144
  }
@@ -105002,7 +105235,7 @@ function getUpToDateStatusWorker(state, project, resolvedPath) {
105002
105235
  };
105003
105236
  }
105004
105237
  return {
105005
- type: pseudoUpToDate ? 2 /* UpToDateWithUpstreamTypes */ : pseudoInputUpToDate ? 13 /* UpToDateWithInputFileText */ : 1 /* UpToDate */,
105238
+ type: pseudoUpToDate ? 2 /* UpToDateWithUpstreamTypes */ : pseudoInputUpToDate ? 14 /* UpToDateWithInputFileText */ : 1 /* UpToDate */,
105006
105239
  newestInputFileTime,
105007
105240
  newestInputFileName,
105008
105241
  oldestOutputFileName
@@ -105121,7 +105354,7 @@ function queueReferencingProjects(state, project, projectPath, projectIndex, con
105121
105354
  }
105122
105355
  break;
105123
105356
  }
105124
- case 13 /* UpToDateWithInputFileText */:
105357
+ case 14 /* UpToDateWithInputFileText */:
105125
105358
  case 2 /* UpToDateWithUpstreamTypes */:
105126
105359
  case 3 /* OutOfDateWithPrepend */:
105127
105360
  if (!(buildResult & 2 /* DeclarationOutputUnchanged */)) {
@@ -105132,7 +105365,7 @@ function queueReferencingProjects(state, project, projectPath, projectIndex, con
105132
105365
  });
105133
105366
  }
105134
105367
  break;
105135
- case 10 /* UpstreamBlocked */:
105368
+ case 11 /* UpstreamBlocked */:
105136
105369
  if (toResolvedConfigFilePath(state, resolveProjectName(state, status.upstreamProjectName)) === projectPath) {
105137
105370
  clearProjectStatus(state, nextProjectPath);
105138
105371
  }
@@ -105538,6 +105771,13 @@ function reportUpToDateStatus(state, configFileName, status) {
105538
105771
  relName(state, configFileName),
105539
105772
  relName(state, status.buildInfoFile)
105540
105773
  );
105774
+ case 9 /* OutOfDateOptions */:
105775
+ return reportStatus(
105776
+ state,
105777
+ Diagnostics.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions,
105778
+ relName(state, configFileName),
105779
+ relName(state, status.buildInfoFile)
105780
+ );
105541
105781
  case 1 /* UpToDate */:
105542
105782
  if (status.newestInputFileTime !== void 0) {
105543
105783
  return reportStatus(
@@ -105562,20 +105802,20 @@ function reportUpToDateStatus(state, configFileName, status) {
105562
105802
  Diagnostics.Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies,
105563
105803
  relName(state, configFileName)
105564
105804
  );
105565
- case 13 /* UpToDateWithInputFileText */:
105805
+ case 14 /* UpToDateWithInputFileText */:
105566
105806
  return reportStatus(
105567
105807
  state,
105568
105808
  Diagnostics.Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files,
105569
105809
  relName(state, configFileName)
105570
105810
  );
105571
- case 9 /* UpstreamOutOfDate */:
105811
+ case 10 /* UpstreamOutOfDate */:
105572
105812
  return reportStatus(
105573
105813
  state,
105574
105814
  Diagnostics.Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date,
105575
105815
  relName(state, configFileName),
105576
105816
  relName(state, status.upstreamProjectName)
105577
105817
  );
105578
- case 10 /* UpstreamBlocked */:
105818
+ case 11 /* UpstreamBlocked */:
105579
105819
  return reportStatus(
105580
105820
  state,
105581
105821
  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,
@@ -105589,7 +105829,7 @@ function reportUpToDateStatus(state, configFileName, status) {
105589
105829
  relName(state, configFileName),
105590
105830
  status.reason
105591
105831
  );
105592
- case 12 /* TsVersionOutputOfDate */:
105832
+ case 13 /* TsVersionOutputOfDate */:
105593
105833
  return reportStatus(
105594
105834
  state,
105595
105835
  Diagnostics.Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2,
@@ -105597,14 +105837,14 @@ function reportUpToDateStatus(state, configFileName, status) {
105597
105837
  status.version,
105598
105838
  version
105599
105839
  );
105600
- case 15 /* ForceBuild */:
105840
+ case 16 /* ForceBuild */:
105601
105841
  return reportStatus(
105602
105842
  state,
105603
105843
  Diagnostics.Project_0_is_being_forcibly_rebuilt,
105604
105844
  relName(state, configFileName)
105605
105845
  );
105606
- case 14 /* ContainerOnly */:
105607
- case 11 /* ComputingUpstream */:
105846
+ case 15 /* ContainerOnly */:
105847
+ case 12 /* ComputingUpstream */:
105608
105848
  break;
105609
105849
  default:
105610
105850
  assertType(status);