typescript 4.7.0-dev.20220406 → 4.7.0-dev.20220416

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
@@ -69,7 +69,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
69
69
  var ts;
70
70
  (function (ts) {
71
71
  ts.versionMajorMinor = "4.7";
72
- ts.version = ts.versionMajorMinor + ".0-dev.20220406";
72
+ ts.version = ts.versionMajorMinor + ".0-dev.20220416";
73
73
  var NativeCollections;
74
74
  (function (NativeCollections) {
75
75
  var globals = typeof globalThis !== "undefined" ? globalThis :
@@ -5901,6 +5901,7 @@ var ts;
5901
5901
  _0_index_signatures_are_incompatible: diag(2634, ts.DiagnosticCategory.Error, "_0_index_signatures_are_incompatible_2634", "'{0}' index signatures are incompatible."),
5902
5902
  Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable: diag(2635, ts.DiagnosticCategory.Error, "Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635", "Type '{0}' has no signatures for which the type argument list is applicable."),
5903
5903
  Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation: diag(2636, ts.DiagnosticCategory.Error, "Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation_2636", "Type '{0}' is not assignable to type '{1}' as implied by variance annotation."),
5904
+ Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types: diag(2637, ts.DiagnosticCategory.Error, "Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_t_2637", "Variance annotations are only supported in type aliases for object, function, constructor, and mapped types."),
5904
5905
  Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity: diag(2649, ts.DiagnosticCategory.Error, "Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649", "Cannot augment module '{0}' with value exports because it resolves to a non-module entity."),
5905
5906
  A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums: diag(2651, ts.DiagnosticCategory.Error, "A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651", "A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums."),
5906
5907
  Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead: diag(2652, ts.DiagnosticCategory.Error, "Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652", "Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead."),
@@ -11443,6 +11444,10 @@ var ts;
11443
11444
  }
11444
11445
  }
11445
11446
  ts.isAnyImportSyntax = isAnyImportSyntax;
11447
+ function isAnyImportOrBareOrAccessedRequire(node) {
11448
+ return isAnyImportSyntax(node) || isVariableDeclarationInitializedToBareOrAccessedRequire(node);
11449
+ }
11450
+ ts.isAnyImportOrBareOrAccessedRequire = isAnyImportOrBareOrAccessedRequire;
11446
11451
  function isLateVisibilityPaintedStatement(node) {
11447
11452
  switch (node.kind) {
11448
11453
  case 266:
@@ -12673,17 +12678,13 @@ var ts;
12673
12678
  if (isPropertyNameLiteral(name) && isPropertyNameLiteral(initializer)) {
12674
12679
  return getTextOfIdentifierOrLiteral(name) === getTextOfIdentifierOrLiteral(initializer);
12675
12680
  }
12676
- if (ts.isIdentifier(name) && isLiteralLikeAccess(initializer) &&
12681
+ if (ts.isMemberName(name) && isLiteralLikeAccess(initializer) &&
12677
12682
  (initializer.expression.kind === 108 ||
12678
12683
  ts.isIdentifier(initializer.expression) &&
12679
12684
  (initializer.expression.escapedText === "window" ||
12680
12685
  initializer.expression.escapedText === "self" ||
12681
12686
  initializer.expression.escapedText === "global"))) {
12682
- var nameOrArgument = getNameOrArgument(initializer);
12683
- if (ts.isPrivateIdentifier(nameOrArgument)) {
12684
- ts.Debug.fail("Unexpected PrivateIdentifier in name expression with literal-like access.");
12685
- }
12686
- return isSameEntityName(name, nameOrArgument);
12687
+ return isSameEntityName(name, getNameOrArgument(initializer));
12687
12688
  }
12688
12689
  if (isLiteralLikeAccess(name) && isLiteralLikeAccess(initializer)) {
12689
12690
  return getElementOrPropertyAccessName(name) === getElementOrPropertyAccessName(initializer)
@@ -12873,14 +12874,14 @@ var ts;
12873
12874
  }
12874
12875
  ts.isFunctionSymbol = isFunctionSymbol;
12875
12876
  function tryGetModuleSpecifierFromDeclaration(node) {
12876
- var _a, _b, _c;
12877
+ var _a, _b;
12877
12878
  switch (node.kind) {
12878
12879
  case 254:
12879
- return node.initializer.arguments[0].text;
12880
+ return (_a = ts.findAncestor(node.initializer, function (node) { return isRequireCall(node, true); })) === null || _a === void 0 ? void 0 : _a.arguments[0];
12880
12881
  case 266:
12881
- return (_a = ts.tryCast(node.moduleSpecifier, ts.isStringLiteralLike)) === null || _a === void 0 ? void 0 : _a.text;
12882
+ return ts.tryCast(node.moduleSpecifier, ts.isStringLiteralLike);
12882
12883
  case 265:
12883
- return (_c = ts.tryCast((_b = ts.tryCast(node.moduleReference, ts.isExternalModuleReference)) === null || _b === void 0 ? void 0 : _b.expression, ts.isStringLiteralLike)) === null || _c === void 0 ? void 0 : _c.text;
12884
+ return ts.tryCast((_b = ts.tryCast(node.moduleReference, ts.isExternalModuleReference)) === null || _b === void 0 ? void 0 : _b.expression, ts.isStringLiteralLike);
12884
12885
  default:
12885
12886
  ts.Debug.assertNever(node);
12886
12887
  }
@@ -13353,24 +13354,31 @@ var ts;
13353
13354
  return parent.propertyName === node;
13354
13355
  case 275:
13355
13356
  case 285:
13357
+ case 279:
13358
+ case 280:
13359
+ case 281:
13356
13360
  return true;
13357
13361
  }
13358
13362
  return false;
13359
13363
  }
13360
13364
  ts.isIdentifierName = isIdentifierName;
13361
13365
  function isAliasSymbolDeclaration(node) {
13362
- return node.kind === 265 ||
13366
+ if (node.kind === 265 ||
13363
13367
  node.kind === 264 ||
13364
13368
  node.kind === 267 && !!node.name ||
13365
13369
  node.kind === 268 ||
13366
13370
  node.kind === 274 ||
13367
13371
  node.kind === 270 ||
13368
13372
  node.kind === 275 ||
13369
- node.kind === 271 && exportAssignmentIsAlias(node) ||
13370
- ts.isBinaryExpression(node) && getAssignmentDeclarationKind(node) === 2 && exportAssignmentIsAlias(node) ||
13371
- ts.isPropertyAccessExpression(node) && ts.isBinaryExpression(node.parent) && node.parent.left === node && node.parent.operatorToken.kind === 63 && isAliasableExpression(node.parent.right) ||
13372
- node.kind === 297 ||
13373
- node.kind === 296 && isAliasableExpression(node.initializer);
13373
+ node.kind === 271 && exportAssignmentIsAlias(node)) {
13374
+ return true;
13375
+ }
13376
+ return isInJSFile(node) && (ts.isBinaryExpression(node) && getAssignmentDeclarationKind(node) === 2 && exportAssignmentIsAlias(node) ||
13377
+ ts.isPropertyAccessExpression(node)
13378
+ && ts.isBinaryExpression(node.parent)
13379
+ && node.parent.left === node
13380
+ && node.parent.operatorToken.kind === 63
13381
+ && isAliasableExpression(node.parent.right));
13374
13382
  }
13375
13383
  ts.isAliasSymbolDeclaration = isAliasSymbolDeclaration;
13376
13384
  function getAliasDeclarationFromName(node) {
@@ -13381,6 +13389,7 @@ var ts;
13381
13389
  case 275:
13382
13390
  case 271:
13383
13391
  case 265:
13392
+ case 274:
13384
13393
  return node.parent;
13385
13394
  case 161:
13386
13395
  do {
@@ -14880,6 +14889,11 @@ var ts;
14880
14889
  (node.parent.kind === 206 && node.parent.name === node);
14881
14890
  }
14882
14891
  ts.isRightSideOfQualifiedNameOrPropertyAccess = isRightSideOfQualifiedNameOrPropertyAccess;
14892
+ function isRightSideOfAccessExpression(node) {
14893
+ return ts.isPropertyAccessExpression(node.parent) && node.parent.name === node
14894
+ || ts.isElementAccessExpression(node.parent) && node.parent.argumentExpression === node;
14895
+ }
14896
+ ts.isRightSideOfAccessExpression = isRightSideOfAccessExpression;
14883
14897
  function isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName(node) {
14884
14898
  return ts.isQualifiedName(node.parent) && node.parent.right === node
14885
14899
  || ts.isPropertyAccessExpression(node.parent) && node.parent.name === node
@@ -15440,6 +15454,38 @@ var ts;
15440
15454
  return expr;
15441
15455
  }
15442
15456
  ts.getLeftmostAccessExpression = getLeftmostAccessExpression;
15457
+ function forEachNameInAccessChainWalkingLeft(name, action) {
15458
+ if (isAccessExpression(name.parent) && isRightSideOfAccessExpression(name)) {
15459
+ return walkAccessExpression(name.parent);
15460
+ }
15461
+ function walkAccessExpression(access) {
15462
+ if (access.kind === 206) {
15463
+ var res = action(access.name);
15464
+ if (res !== undefined) {
15465
+ return res;
15466
+ }
15467
+ }
15468
+ else if (access.kind === 207) {
15469
+ if (ts.isIdentifier(access.argumentExpression) || ts.isStringLiteralLike(access.argumentExpression)) {
15470
+ var res = action(access.argumentExpression);
15471
+ if (res !== undefined) {
15472
+ return res;
15473
+ }
15474
+ }
15475
+ else {
15476
+ return undefined;
15477
+ }
15478
+ }
15479
+ if (isAccessExpression(access.expression)) {
15480
+ return walkAccessExpression(access.expression);
15481
+ }
15482
+ if (ts.isIdentifier(access.expression)) {
15483
+ return action(access.expression);
15484
+ }
15485
+ return undefined;
15486
+ }
15487
+ }
15488
+ ts.forEachNameInAccessChainWalkingLeft = forEachNameInAccessChainWalkingLeft;
15443
15489
  function getLeftmostExpression(node, stopAtCallExpressions) {
15444
15490
  while (true) {
15445
15491
  switch (node.kind) {
@@ -16297,6 +16343,7 @@ var ts;
16297
16343
  ts.supportedJSExtensionsFlat = ts.flatten(ts.supportedJSExtensions);
16298
16344
  var allSupportedExtensions = [[".ts", ".tsx", ".d.ts", ".js", ".jsx"], [".cts", ".d.cts", ".cjs"], [".mts", ".d.mts", ".mjs"]];
16299
16345
  var allSupportedExtensionsWithJson = __spreadArray(__spreadArray([], allSupportedExtensions, true), [[".json"]], false);
16346
+ ts.supportedDeclarationExtensions = [".d.ts", ".d.cts", ".d.mts"];
16300
16347
  function getSupportedExtensions(options, extraFileExtensions) {
16301
16348
  var needJsExtensions = options && getAllowJSCompilerOption(options);
16302
16349
  if (!extraFileExtensions || extraFileExtensions.length === 0) {
@@ -16885,6 +16932,11 @@ var ts;
16885
16932
  return state > 1 ? { topLevelNodeModulesIndex: topLevelNodeModulesIndex, topLevelPackageNameIndex: topLevelPackageNameIndex, packageRootIndex: packageRootIndex, fileNameIndex: fileNameIndex } : undefined;
16886
16933
  }
16887
16934
  ts.getNodeModulePathParts = getNodeModulePathParts;
16935
+ function getParameterTypeNode(parameter) {
16936
+ var _a;
16937
+ return parameter.kind === 340 ? (_a = parameter.typeExpression) === null || _a === void 0 ? void 0 : _a.type : parameter.type;
16938
+ }
16939
+ ts.getParameterTypeNode = getParameterTypeNode;
16888
16940
  })(ts || (ts = {}));
16889
16941
  var ts;
16890
16942
  (function (ts) {
@@ -28386,29 +28438,9 @@ var ts;
28386
28438
  case 20:
28387
28439
  case 14:
28388
28440
  case 15:
28389
- case 27:
28390
- case 24:
28391
- case 28:
28392
- case 21:
28393
- case 23:
28394
- case 58:
28395
- case 26:
28396
- case 57:
28397
- case 34:
28398
- case 36:
28399
- case 35:
28400
- case 37:
28401
- case 55:
28402
- case 56:
28403
- case 60:
28404
- case 52:
28405
- case 50:
28406
- case 51:
28407
- case 19:
28408
- case 1:
28409
28441
  return true;
28410
28442
  }
28411
- return false;
28443
+ return !isStartOfExpression();
28412
28444
  }
28413
28445
  function parsePrimaryExpression() {
28414
28446
  switch (token()) {
@@ -31134,7 +31166,7 @@ var ts;
31134
31166
  IncrementalParser.createSyntaxCursor = createSyntaxCursor;
31135
31167
  })(IncrementalParser || (IncrementalParser = {}));
31136
31168
  function isDeclarationFileName(fileName) {
31137
- return ts.fileExtensionIsOneOf(fileName, [".d.ts", ".d.mts", ".d.cts"]);
31169
+ return ts.fileExtensionIsOneOf(fileName, ts.supportedDeclarationExtensions);
31138
31170
  }
31139
31171
  ts.isDeclarationFileName = isDeclarationFileName;
31140
31172
  function parseResolutionMode(mode, pos, end, reportDiagnostic) {
@@ -34318,6 +34350,7 @@ var ts;
34318
34350
  Extensions[Extensions["Json"] = 2] = "Json";
34319
34351
  Extensions[Extensions["TSConfig"] = 3] = "TSConfig";
34320
34352
  Extensions[Extensions["DtsOnly"] = 4] = "DtsOnly";
34353
+ Extensions[Extensions["TsOnly"] = 5] = "TsOnly";
34321
34354
  })(Extensions || (Extensions = {}));
34322
34355
  function resolvedTypeScriptOnly(resolved) {
34323
34356
  if (!resolved) {
@@ -35114,13 +35147,31 @@ var ts;
35114
35147
  return nodeModuleNameResolverWorker(NodeResolutionFeatures.None, moduleName, initialDir, { moduleResolution: ts.ModuleResolutionKind.NodeJs, allowJs: true }, host, undefined, jsOnlyExtensions, undefined);
35115
35148
  }
35116
35149
  function nodeModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, lookupConfig) {
35117
- return nodeModuleNameResolverWorker(NodeResolutionFeatures.None, moduleName, ts.getDirectoryPath(containingFile), compilerOptions, host, cache, lookupConfig ? tsconfigExtensions : (compilerOptions.resolveJsonModule ? tsPlusJsonExtensions : tsExtensions), redirectedReference);
35150
+ var extensions;
35151
+ if (lookupConfig) {
35152
+ extensions = tsconfigExtensions;
35153
+ }
35154
+ else if (compilerOptions.noDtsResolution) {
35155
+ extensions = [Extensions.TsOnly];
35156
+ if (compilerOptions.allowJs)
35157
+ extensions.push(Extensions.JavaScript);
35158
+ if (compilerOptions.resolveJsonModule)
35159
+ extensions.push(Extensions.Json);
35160
+ }
35161
+ else {
35162
+ extensions = compilerOptions.resolveJsonModule ? tsPlusJsonExtensions : tsExtensions;
35163
+ }
35164
+ return nodeModuleNameResolverWorker(NodeResolutionFeatures.None, moduleName, ts.getDirectoryPath(containingFile), compilerOptions, host, cache, extensions, redirectedReference);
35118
35165
  }
35119
35166
  ts.nodeModuleNameResolver = nodeModuleNameResolver;
35120
35167
  function nodeModuleNameResolverWorker(features, moduleName, containingDirectory, compilerOptions, host, cache, extensions, redirectedReference) {
35121
35168
  var _a, _b;
35122
35169
  var traceEnabled = isTraceEnabled(compilerOptions, host);
35123
35170
  var failedLookupLocations = [];
35171
+ var conditions = features & NodeResolutionFeatures.EsmMode ? ["node", "import", "types"] : ["node", "require", "types"];
35172
+ if (compilerOptions.noDtsResolution) {
35173
+ conditions.pop();
35174
+ }
35124
35175
  var state = {
35125
35176
  compilerOptions: compilerOptions,
35126
35177
  host: host,
@@ -35128,7 +35179,7 @@ var ts;
35128
35179
  failedLookupLocations: failedLookupLocations,
35129
35180
  packageJsonInfoCache: cache,
35130
35181
  features: features,
35131
- conditions: features & NodeResolutionFeatures.EsmMode ? ["node", "import", "types"] : ["node", "require", "types"]
35182
+ conditions: conditions,
35132
35183
  };
35133
35184
  var result = ts.forEach(extensions, function (ext) { return tryResolve(ext); });
35134
35185
  return createResolvedModuleWithFailedLookupLocations((_a = result === null || result === void 0 ? void 0 : result.value) === null || _a === void 0 ? void 0 : _a.resolved, (_b = result === null || result === void 0 ? void 0 : result.value) === null || _b === void 0 ? void 0 : _b.isExternalLibraryImport, failedLookupLocations, state.resultFromCache);
@@ -35273,9 +35324,9 @@ var ts;
35273
35324
  }
35274
35325
  }
35275
35326
  function loadJSOrExactTSFileName(extensions, candidate, onlyRecordFailures, state) {
35276
- if ((extensions === Extensions.TypeScript || extensions === Extensions.DtsOnly) && ts.fileExtensionIsOneOf(candidate, [".d.ts", ".d.cts", ".d.mts"])) {
35327
+ if ((extensions === Extensions.TypeScript || extensions === Extensions.DtsOnly) && ts.isDeclarationFileName(candidate)) {
35277
35328
  var result = tryFile(candidate, onlyRecordFailures, state);
35278
- return result !== undefined ? { path: candidate, ext: ts.forEach([".d.ts", ".d.cts", ".d.mts"], function (e) { return ts.fileExtensionIs(candidate, e) ? e : undefined; }) } : undefined;
35329
+ return result !== undefined ? { path: candidate, ext: ts.forEach(ts.supportedDeclarationExtensions, function (e) { return ts.fileExtensionIs(candidate, e) ? e : undefined; }) } : undefined;
35279
35330
  }
35280
35331
  return loadModuleFromFileNoImplicitExtensions(extensions, candidate, onlyRecordFailures, state);
35281
35332
  }
@@ -35303,20 +35354,22 @@ var ts;
35303
35354
  default: return tryExtension(".d.ts");
35304
35355
  }
35305
35356
  case Extensions.TypeScript:
35357
+ case Extensions.TsOnly:
35358
+ var useDts = extensions === Extensions.TypeScript;
35306
35359
  switch (originalExtension) {
35307
35360
  case ".mjs":
35308
35361
  case ".mts":
35309
35362
  case ".d.mts":
35310
- return tryExtension(".mts") || tryExtension(".d.mts");
35363
+ return tryExtension(".mts") || (useDts ? tryExtension(".d.mts") : undefined);
35311
35364
  case ".cjs":
35312
35365
  case ".cts":
35313
35366
  case ".d.cts":
35314
- return tryExtension(".cts") || tryExtension(".d.cts");
35367
+ return tryExtension(".cts") || (useDts ? tryExtension(".d.cts") : undefined);
35315
35368
  case ".json":
35316
35369
  candidate += ".json";
35317
- return tryExtension(".d.ts");
35370
+ return useDts ? tryExtension(".d.ts") : undefined;
35318
35371
  default:
35319
- return tryExtension(".ts") || tryExtension(".tsx") || tryExtension(".d.ts");
35372
+ return tryExtension(".ts") || tryExtension(".tsx") || (useDts ? tryExtension(".d.ts") : undefined);
35320
35373
  }
35321
35374
  case Extensions.JavaScript:
35322
35375
  switch (originalExtension) {
@@ -35530,6 +35583,7 @@ var ts;
35530
35583
  switch (extensions) {
35531
35584
  case Extensions.JavaScript:
35532
35585
  case Extensions.Json:
35586
+ case Extensions.TsOnly:
35533
35587
  packageFile = readPackageJsonMainField(jsonContent, candidate, state);
35534
35588
  break;
35535
35589
  case Extensions.TypeScript:
@@ -35592,14 +35646,16 @@ var ts;
35592
35646
  function extensionIsOk(extensions, extension) {
35593
35647
  switch (extensions) {
35594
35648
  case Extensions.JavaScript:
35595
- return extension === ".js" || extension === ".jsx";
35649
+ return extension === ".js" || extension === ".jsx" || extension === ".mjs" || extension === ".cjs";
35596
35650
  case Extensions.TSConfig:
35597
35651
  case Extensions.Json:
35598
35652
  return extension === ".json";
35599
35653
  case Extensions.TypeScript:
35600
- return extension === ".ts" || extension === ".tsx" || extension === ".d.ts";
35654
+ return extension === ".ts" || extension === ".tsx" || extension === ".mts" || extension === ".cts" || extension === ".d.ts" || extension === ".d.mts" || extension === ".d.cts";
35655
+ case Extensions.TsOnly:
35656
+ return extension === ".ts" || extension === ".tsx" || extension === ".mts" || extension === ".cts";
35601
35657
  case Extensions.DtsOnly:
35602
- return extension === ".d.ts";
35658
+ return extension === ".d.ts" || extension === ".d.mts" || extension === ".d.cts";
35603
35659
  }
35604
35660
  }
35605
35661
  function parsePackageName(moduleName) {
@@ -37492,6 +37548,7 @@ var ts;
37492
37548
  case 261:
37493
37549
  case 259:
37494
37550
  case 195:
37551
+ case 176:
37495
37552
  return 1 | 32;
37496
37553
  case 305:
37497
37554
  return 1 | 4 | 32;
@@ -37509,7 +37566,6 @@ var ts;
37509
37566
  case 317:
37510
37567
  case 179:
37511
37568
  case 175:
37512
- case 176:
37513
37569
  case 180:
37514
37570
  case 170:
37515
37571
  return 1 | 4 | 32 | 8;
@@ -41330,27 +41386,27 @@ var ts;
41330
41386
  function resolveAlias(symbol) {
41331
41387
  ts.Debug.assert((symbol.flags & 2097152) !== 0, "Should only get Alias here.");
41332
41388
  var links = getSymbolLinks(symbol);
41333
- if (!links.target) {
41334
- links.target = resolvingSymbol;
41389
+ if (!links.aliasTarget) {
41390
+ links.aliasTarget = resolvingSymbol;
41335
41391
  var node = getDeclarationOfAliasSymbol(symbol);
41336
41392
  if (!node)
41337
41393
  return ts.Debug.fail();
41338
41394
  var target = getTargetOfAliasDeclaration(node);
41339
- if (links.target === resolvingSymbol) {
41340
- links.target = target || unknownSymbol;
41395
+ if (links.aliasTarget === resolvingSymbol) {
41396
+ links.aliasTarget = target || unknownSymbol;
41341
41397
  }
41342
41398
  else {
41343
41399
  error(node, ts.Diagnostics.Circular_definition_of_import_alias_0, symbolToString(symbol));
41344
41400
  }
41345
41401
  }
41346
- else if (links.target === resolvingSymbol) {
41347
- links.target = unknownSymbol;
41402
+ else if (links.aliasTarget === resolvingSymbol) {
41403
+ links.aliasTarget = unknownSymbol;
41348
41404
  }
41349
- return links.target;
41405
+ return links.aliasTarget;
41350
41406
  }
41351
41407
  function tryResolveAlias(symbol) {
41352
41408
  var links = getSymbolLinks(symbol);
41353
- if (links.target !== resolvingSymbol) {
41409
+ if (links.aliasTarget !== resolvingSymbol) {
41354
41410
  return resolveAlias(symbol);
41355
41411
  }
41356
41412
  return undefined;
@@ -42937,13 +42993,27 @@ var ts;
42937
42993
  return ts.Debug.fail("Should be unreachable.");
42938
42994
  function conditionalTypeToTypeNode(type) {
42939
42995
  var checkTypeNode = typeToTypeNodeHelper(type.checkType, context);
42996
+ context.approximateLength += 15;
42997
+ if (context.flags & 4 && type.root.isDistributive && !(type.checkType.flags & 262144)) {
42998
+ var newParam = createTypeParameter(createSymbol(262144, "T"));
42999
+ var name = typeParameterToName(newParam, context);
43000
+ var newTypeVariable = ts.factory.createTypeReferenceNode(name);
43001
+ context.approximateLength += 37;
43002
+ var newMapper = prependTypeMapping(type.root.checkType, newParam, type.combinedMapper || type.mapper);
43003
+ var saveInferTypeParameters_1 = context.inferTypeParameters;
43004
+ context.inferTypeParameters = type.root.inferTypeParameters;
43005
+ var extendsTypeNode_1 = typeToTypeNodeHelper(instantiateType(type.root.extendsType, newMapper), context);
43006
+ context.inferTypeParameters = saveInferTypeParameters_1;
43007
+ var trueTypeNode_1 = typeToTypeNodeOrCircularityElision(instantiateType(getTypeFromTypeNode(type.root.node.trueType), newMapper));
43008
+ var falseTypeNode_1 = typeToTypeNodeOrCircularityElision(instantiateType(getTypeFromTypeNode(type.root.node.falseType), newMapper));
43009
+ return ts.factory.createConditionalTypeNode(checkTypeNode, ts.factory.createInferTypeNode(ts.factory.createTypeParameterDeclaration(undefined, ts.factory.cloneNode(newTypeVariable.typeName))), ts.factory.createConditionalTypeNode(ts.factory.createTypeReferenceNode(ts.factory.cloneNode(name)), typeToTypeNodeHelper(type.checkType, context), ts.factory.createConditionalTypeNode(newTypeVariable, extendsTypeNode_1, trueTypeNode_1, falseTypeNode_1), ts.factory.createKeywordTypeNode(143)), ts.factory.createKeywordTypeNode(143));
43010
+ }
42940
43011
  var saveInferTypeParameters = context.inferTypeParameters;
42941
43012
  context.inferTypeParameters = type.root.inferTypeParameters;
42942
43013
  var extendsTypeNode = typeToTypeNodeHelper(type.extendsType, context);
42943
43014
  context.inferTypeParameters = saveInferTypeParameters;
42944
43015
  var trueTypeNode = typeToTypeNodeOrCircularityElision(getTrueTypeFromConditionalType(type));
42945
43016
  var falseTypeNode = typeToTypeNodeOrCircularityElision(getFalseTypeFromConditionalType(type));
42946
- context.approximateLength += 15;
42947
43017
  return ts.factory.createConditionalTypeNode(checkTypeNode, extendsTypeNode, trueTypeNode, falseTypeNode);
42948
43018
  }
42949
43019
  function typeToTypeNodeOrCircularityElision(type) {
@@ -43587,9 +43657,6 @@ var ts;
43587
43657
  if (parameterDeclaration && isRequiredInitializedParameter(parameterDeclaration)) {
43588
43658
  parameterType = getOptionalType(parameterType);
43589
43659
  }
43590
- if ((context.flags & 1073741824) && parameterDeclaration && !ts.isJSDocParameterTag(parameterDeclaration) && isOptionalUninitializedParameter(parameterDeclaration)) {
43591
- parameterType = getTypeWithFacts(parameterType, 524288);
43592
- }
43593
43660
  var parameterTypeNode = serializeTypeForDeclaration(context, parameterType, parameterSymbol, context.enclosingDeclaration, privateSymbolVisitor, bundledImports);
43594
43661
  var modifiers = !(context.flags & 8192) && preserveModifierFlags && parameterDeclaration && parameterDeclaration.modifiers ? parameterDeclaration.modifiers.map(ts.factory.cloneNode) : undefined;
43595
43662
  var isRest = parameterDeclaration && ts.isRestParameter(parameterDeclaration) || ts.getCheckFlags(parameterSymbol) & 32768;
@@ -44096,7 +44163,7 @@ var ts;
44096
44163
  var declWithExistingAnnotation = getDeclarationWithTypeAnnotation(symbol, enclosingDeclaration);
44097
44164
  if (declWithExistingAnnotation && !ts.isFunctionLikeDeclaration(declWithExistingAnnotation) && !ts.isGetAccessorDeclaration(declWithExistingAnnotation)) {
44098
44165
  var existing = ts.getEffectiveTypeAnnotationNode(declWithExistingAnnotation);
44099
- if (getTypeFromTypeNode(existing) === type && existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type)) {
44166
+ if (typeNodeIsEquivalentToType(existing, declWithExistingAnnotation, type) && existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type)) {
44100
44167
  var result_6 = serializeExistingTypeNode(context, existing, includePrivateSymbol, bundled);
44101
44168
  if (result_6) {
44102
44169
  return result_6;
@@ -44113,6 +44180,16 @@ var ts;
44113
44180
  context.flags = oldFlags;
44114
44181
  return result;
44115
44182
  }
44183
+ function typeNodeIsEquivalentToType(typeNode, annotatedDeclaration, type) {
44184
+ var typeFromTypeNode = getTypeFromTypeNode(typeNode);
44185
+ if (typeFromTypeNode === type) {
44186
+ return true;
44187
+ }
44188
+ if (ts.isParameter(annotatedDeclaration) && annotatedDeclaration.questionToken) {
44189
+ return getTypeWithFacts(type, 524288) === typeFromTypeNode;
44190
+ }
44191
+ return false;
44192
+ }
44116
44193
  function serializeReturnTypeForSignature(context, type, signature, includePrivateSymbol, bundled) {
44117
44194
  if (!isErrorType(type) && context.enclosingDeclaration) {
44118
44195
  var annotation = signature.declaration && ts.getEffectiveReturnTypeNode(signature.declaration);
@@ -45966,7 +46043,7 @@ var ts;
45966
46043
  }
45967
46044
  }
45968
46045
  var sourceTypes = ts.some(constructorTypes, function (t) { return !!(t.flags & ~98304); }) ? constructorTypes : types;
45969
- type = getUnionType(sourceTypes, 2);
46046
+ type = getUnionType(sourceTypes);
45970
46047
  }
45971
46048
  }
45972
46049
  var widened = getWidenedType(addOptionality(type, false, definedInMethod && !definedInConstructor));
@@ -48352,8 +48429,9 @@ var ts;
48352
48429
  return circularConstraintType;
48353
48430
  }
48354
48431
  var result = void 0;
48355
- if (stack.length < 10 || stack.length < 50 && !isDeeplyNestedType(t, stack, stack.length)) {
48356
- stack.push(t);
48432
+ var identity_1 = getRecursionIdentity(t);
48433
+ if (stack.length < 10 || stack.length < 50 && !ts.contains(stack, identity_1)) {
48434
+ stack.push(identity_1);
48357
48435
  result = computeBaseConstraint(getSimplifiedType(t, false));
48358
48436
  stack.pop();
48359
48437
  }
@@ -55530,12 +55608,12 @@ var ts;
55530
55608
  function isDeeplyNestedType(type, stack, depth, maxDepth) {
55531
55609
  if (maxDepth === void 0) { maxDepth = 3; }
55532
55610
  if (depth >= maxDepth) {
55533
- var identity_1 = getRecursionIdentity(type);
55611
+ var identity_2 = getRecursionIdentity(type);
55534
55612
  var count = 0;
55535
55613
  var lastTypeId = 0;
55536
55614
  for (var i = 0; i < depth; i++) {
55537
55615
  var t = stack[i];
55538
- if (getRecursionIdentity(t) === identity_1) {
55616
+ if (getRecursionIdentity(t) === identity_2) {
55539
55617
  if (t.id >= lastTypeId) {
55540
55618
  count++;
55541
55619
  if (count >= maxDepth) {
@@ -64063,7 +64141,7 @@ var ts;
64063
64141
  var newSymbol = createSymbol(2097152, "default");
64064
64142
  newSymbol.parent = originalSymbol;
64065
64143
  newSymbol.nameType = getStringLiteralType("default");
64066
- newSymbol.target = resolveSymbol(symbol);
64144
+ newSymbol.aliasTarget = resolveSymbol(symbol);
64067
64145
  memberTable.set("default", newSymbol);
64068
64146
  return createAnonymousType(anonymousSymbol, memberTable, ts.emptyArray, ts.emptyArray, ts.emptyArray);
64069
64147
  }
@@ -66587,19 +66665,28 @@ var ts;
66587
66665
  if (constraintType && defaultType) {
66588
66666
  checkTypeAssignableTo(defaultType, getTypeWithThisArgument(instantiateType(constraintType, makeUnaryTypeMapper(typeParameter, defaultType)), defaultType), node.default, ts.Diagnostics.Type_0_does_not_satisfy_the_constraint_1);
66589
66667
  }
66590
- if (node.parent.kind === 258 || node.parent.kind === 257 || node.parent.kind === 259) {
66668
+ checkNodeDeferred(node);
66669
+ addLazyDiagnostic(function () { return checkTypeNameIsReserved(node.name, ts.Diagnostics.Type_parameter_name_cannot_be_0); });
66670
+ }
66671
+ function checkTypeParameterDeferred(node) {
66672
+ if (ts.isInterfaceDeclaration(node.parent) || ts.isClassLike(node.parent) || ts.isTypeAliasDeclaration(node.parent)) {
66673
+ var typeParameter = getDeclaredTypeOfTypeParameter(getSymbolOfNode(node));
66591
66674
  var modifiers = getVarianceModifiers(typeParameter);
66592
- if (modifiers === 32768 || modifiers === 65536) {
66675
+ if (modifiers) {
66593
66676
  var symbol = getSymbolOfNode(node.parent);
66594
- var source = createMarkerType(symbol, typeParameter, modifiers === 65536 ? markerSubType : markerSuperType);
66595
- var target = createMarkerType(symbol, typeParameter, modifiers === 65536 ? markerSuperType : markerSubType);
66596
- var saveVarianceTypeParameter = typeParameter;
66597
- varianceTypeParameter = typeParameter;
66598
- checkTypeAssignableTo(source, target, node, ts.Diagnostics.Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation);
66599
- varianceTypeParameter = saveVarianceTypeParameter;
66677
+ if (ts.isTypeAliasDeclaration(node.parent) && !(ts.getObjectFlags(getDeclaredTypeOfSymbol(symbol)) & (16 | 32))) {
66678
+ error(node, ts.Diagnostics.Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types);
66679
+ }
66680
+ else if (modifiers === 32768 || modifiers === 65536) {
66681
+ var source = createMarkerType(symbol, typeParameter, modifiers === 65536 ? markerSubType : markerSuperType);
66682
+ var target = createMarkerType(symbol, typeParameter, modifiers === 65536 ? markerSuperType : markerSubType);
66683
+ var saveVarianceTypeParameter = typeParameter;
66684
+ varianceTypeParameter = typeParameter;
66685
+ checkTypeAssignableTo(source, target, node, ts.Diagnostics.Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation);
66686
+ varianceTypeParameter = saveVarianceTypeParameter;
66687
+ }
66600
66688
  }
66601
66689
  }
66602
- addLazyDiagnostic(function () { return checkTypeNameIsReserved(node.name, ts.Diagnostics.Type_parameter_name_cannot_be_0); });
66603
66690
  }
66604
66691
  function checkParameter(node) {
66605
66692
  checkGrammarDecoratorsAndModifiers(node);
@@ -67026,7 +67113,7 @@ var ts;
67026
67113
  superCallStatement = statement;
67027
67114
  break;
67028
67115
  }
67029
- if (!ts.isPrologueDirective(statement) && nodeImmediatelyReferencesSuperOrThis(statement)) {
67116
+ if (nodeImmediatelyReferencesSuperOrThis(statement)) {
67030
67117
  break;
67031
67118
  }
67032
67119
  }
@@ -71564,6 +71651,9 @@ var ts;
71564
71651
  case 226:
71565
71652
  checkClassExpressionDeferred(node);
71566
71653
  break;
71654
+ case 163:
71655
+ checkTypeParameterDeferred(node);
71656
+ break;
71567
71657
  case 279:
71568
71658
  checkJsxSelfClosingElementDeferred(node);
71569
71659
  break;
@@ -72274,11 +72364,11 @@ var ts;
72274
72364
  var _a = symbol, leftSpread = _a.leftSpread, rightSpread = _a.rightSpread, syntheticOrigin = _a.syntheticOrigin;
72275
72365
  return leftSpread ? [leftSpread, rightSpread]
72276
72366
  : syntheticOrigin ? [syntheticOrigin]
72277
- : ts.singleElementArray(tryGetAliasTarget(symbol));
72367
+ : ts.singleElementArray(tryGetTarget(symbol));
72278
72368
  }
72279
72369
  return undefined;
72280
72370
  }
72281
- function tryGetAliasTarget(symbol) {
72371
+ function tryGetTarget(symbol) {
72282
72372
  var target;
72283
72373
  var next = symbol;
72284
72374
  while (next = getSymbolLinks(next).target) {
@@ -72463,7 +72553,7 @@ var ts;
72463
72553
  if (links === null || links === void 0 ? void 0 : links.referenced) {
72464
72554
  return true;
72465
72555
  }
72466
- var target = getSymbolLinks(symbol).target;
72556
+ var target = getSymbolLinks(symbol).aliasTarget;
72467
72557
  if (target && ts.getEffectiveModifierFlags(node) & 1 &&
72468
72558
  target.flags & 111551 &&
72469
72559
  (ts.shouldPreserveConstEnums(compilerOptions) || !isConstEnumOrConstEnumOnlyModule(target))) {
@@ -72499,11 +72589,6 @@ var ts;
72499
72589
  !parameter.initializer &&
72500
72590
  ts.hasSyntacticModifier(parameter, 16476);
72501
72591
  }
72502
- function isOptionalUninitializedParameter(parameter) {
72503
- return !!strictNullChecks &&
72504
- isOptionalParameter(parameter) &&
72505
- !parameter.initializer;
72506
- }
72507
72592
  function isExpandoFunctionDeclaration(node) {
72508
72593
  var declaration = ts.getParseTreeNode(node, ts.isFunctionDeclaration);
72509
72594
  if (!declaration) {
@@ -73368,8 +73453,7 @@ var ts;
73368
73453
  case 144:
73369
73454
  var inOutFlag = modifier.kind === 101 ? 32768 : 65536;
73370
73455
  var inOutText = modifier.kind === 101 ? "in" : "out";
73371
- if (node.kind !== 163 || (node.parent.kind !== 258 &&
73372
- node.parent.kind !== 257 && node.parent.kind !== 259)) {
73456
+ if (node.kind !== 163 || !(ts.isInterfaceDeclaration(node.parent) || ts.isClassLike(node.parent) || ts.isTypeAliasDeclaration(node.parent))) {
73373
73457
  return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias, inOutText);
73374
73458
  }
73375
73459
  if (flags & inOutFlag) {
@@ -77565,19 +77649,19 @@ var ts;
77565
77649
  }
77566
77650
  var statements = [];
77567
77651
  resumeLexicalEnvironment();
77568
- var indexAfterLastPrologueStatement = factory.copyPrologue(body.statements, statements, false, visitor);
77569
- var superStatementIndex = ts.findSuperStatementIndex(body.statements, indexAfterLastPrologueStatement);
77652
+ var prologueStatementCount = factory.copyPrologue(body.statements, statements, false, visitor);
77653
+ var superStatementIndex = ts.findSuperStatementIndex(body.statements, prologueStatementCount);
77570
77654
  if (superStatementIndex >= 0) {
77571
- ts.addRange(statements, ts.visitNodes(body.statements, visitor, ts.isStatement, indexAfterLastPrologueStatement, superStatementIndex + 1 - indexAfterLastPrologueStatement));
77655
+ ts.addRange(statements, ts.visitNodes(body.statements, visitor, ts.isStatement, prologueStatementCount, superStatementIndex + 1 - prologueStatementCount));
77572
77656
  }
77573
77657
  var parameterPropertyAssignments = ts.mapDefined(parametersWithPropertyAssignments, transformParameterWithPropertyAssignment);
77574
77658
  if (superStatementIndex >= 0) {
77575
77659
  ts.addRange(statements, parameterPropertyAssignments);
77576
77660
  }
77577
77661
  else {
77578
- statements = ts.addRange(parameterPropertyAssignments, statements);
77662
+ statements = __spreadArray(__spreadArray(__spreadArray([], statements.slice(0, prologueStatementCount), true), parameterPropertyAssignments, true), statements.slice(prologueStatementCount), true);
77579
77663
  }
77580
- ts.addRange(statements, ts.visitNodes(body.statements, visitor, ts.isStatement, superStatementIndex + 1));
77664
+ ts.addRange(statements, ts.visitNodes(body.statements, visitor, ts.isStatement, superStatementIndex + 1 + prologueStatementCount));
77581
77665
  statements = factory.mergeLexicalEnvironment(statements, endLexicalEnvironment());
77582
77666
  var block = factory.createBlock(ts.setTextRange(factory.createNodeArray(statements), body.statements), true);
77583
77667
  ts.setTextRange(block, body);
@@ -88863,6 +88947,10 @@ var ts;
88863
88947
  return factory.updateModifiers(statement, modifiers);
88864
88948
  }
88865
88949
  function transformTopLevelDeclaration(input) {
88950
+ if (lateMarkedStatements) {
88951
+ while (ts.orderedRemoveItem(lateMarkedStatements, input))
88952
+ ;
88953
+ }
88866
88954
  if (shouldStripInternal(input))
88867
88955
  return;
88868
88956
  switch (input.kind) {
@@ -89829,7 +89917,7 @@ var ts;
89829
89917
  addOutput(buildInfoPath);
89830
89918
  }
89831
89919
  function getOwnOutputFileNames(configFile, inputFileName, ignoreCase, addOutput, getCommonSourceDirectory) {
89832
- if (ts.fileExtensionIs(inputFileName, ".d.ts"))
89920
+ if (ts.isDeclarationFileName(inputFileName))
89833
89921
  return;
89834
89922
  var js = getOutputJSFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory);
89835
89923
  addOutput(js);
@@ -89867,7 +89955,7 @@ var ts;
89867
89955
  ts.getCommonSourceDirectory = getCommonSourceDirectory;
89868
89956
  function getCommonSourceDirectoryOfConfig(_a, ignoreCase) {
89869
89957
  var options = _a.options, fileNames = _a.fileNames;
89870
- return getCommonSourceDirectory(options, function () { return ts.filter(fileNames, function (file) { return !(options.noEmitForJsFiles && ts.fileExtensionIsOneOf(file, ts.supportedJSExtensionsFlat)) && !ts.fileExtensionIs(file, ".d.ts"); }); }, ts.getDirectoryPath(ts.normalizeSlashes(ts.Debug.checkDefined(options.configFilePath))), ts.createGetCanonicalFileName(!ignoreCase));
89958
+ return getCommonSourceDirectory(options, function () { return ts.filter(fileNames, function (file) { return !(options.noEmitForJsFiles && ts.fileExtensionIsOneOf(file, ts.supportedJSExtensionsFlat)) && !ts.isDeclarationFileName(file); }); }, ts.getDirectoryPath(ts.normalizeSlashes(ts.Debug.checkDefined(options.configFilePath))), ts.createGetCanonicalFileName(!ignoreCase));
89871
89959
  }
89872
89960
  ts.getCommonSourceDirectoryOfConfig = getCommonSourceDirectoryOfConfig;
89873
89961
  function getAllProjectOutputs(configFile, ignoreCase) {
@@ -89907,7 +89995,7 @@ var ts;
89907
89995
  var getCommonSourceDirectory = ts.memoize(function () { return getCommonSourceDirectoryOfConfig(configFile, ignoreCase); });
89908
89996
  for (var _a = 0, _b = configFile.fileNames; _a < _b.length; _a++) {
89909
89997
  var inputFileName = _b[_a];
89910
- if (ts.fileExtensionIs(inputFileName, ".d.ts"))
89998
+ if (ts.isDeclarationFileName(inputFileName))
89911
89999
  continue;
89912
90000
  var jsFilePath = getOutputJSFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory);
89913
90001
  if (jsFilePath)
@@ -94762,7 +94850,7 @@ var ts;
94762
94850
  return false;
94763
94851
  if (ts.outFile(options) || options.outDir)
94764
94852
  return false;
94765
- if (ts.fileExtensionIs(fileOrDirectoryPath, ".d.ts")) {
94853
+ if (ts.isDeclarationFileName(fileOrDirectoryPath)) {
94766
94854
  if (options.declarationDir)
94767
94855
  return false;
94768
94856
  }
@@ -95820,7 +95908,7 @@ var ts;
95820
95908
  var getCommonSourceDirectory_2 = ts.memoize(function () { return ts.getCommonSourceDirectoryOfConfig(parsedRef.commandLine, !host.useCaseSensitiveFileNames()); });
95821
95909
  for (var _b = 0, _c = parsedRef.commandLine.fileNames; _b < _c.length; _b++) {
95822
95910
  var fileName = _c[_b];
95823
- if (!ts.fileExtensionIs(fileName, ".d.ts") && !ts.fileExtensionIs(fileName, ".json")) {
95911
+ if (!ts.isDeclarationFileName(fileName) && !ts.fileExtensionIs(fileName, ".json")) {
95824
95912
  processProjectReferenceFile(ts.getOutputDeclarationFileName(fileName, parsedRef.commandLine, !host.useCaseSensitiveFileNames(), getCommonSourceDirectory_2), { kind: ts.FileIncludeKind.OutputFromProjectReference, index: index });
95825
95913
  }
95826
95914
  }
@@ -95996,7 +96084,7 @@ var ts;
95996
96084
  }
95997
96085
  function getRedirectReferenceForResolution(file) {
95998
96086
  var redirect = getResolvedProjectReferenceToRedirect(file.originalFileName);
95999
- if (redirect || !ts.fileExtensionIsOneOf(file.originalFileName, [".d.ts", ".d.cts", ".d.mts"]))
96087
+ if (redirect || !ts.isDeclarationFileName(file.originalFileName))
96000
96088
  return redirect;
96001
96089
  var resultFromDts = getRedirectReferenceForResolutionFromSourceOfProject(file.path);
96002
96090
  if (resultFromDts)
@@ -97185,7 +97273,7 @@ var ts;
97185
97273
  return referencedProject && getProjectReferenceOutputName(referencedProject, fileName);
97186
97274
  }
97187
97275
  function getProjectReferenceRedirectProject(fileName) {
97188
- if (!resolvedProjectReferences || !resolvedProjectReferences.length || ts.fileExtensionIs(fileName, ".d.ts") || ts.fileExtensionIs(fileName, ".json")) {
97276
+ if (!resolvedProjectReferences || !resolvedProjectReferences.length || ts.isDeclarationFileName(fileName) || ts.fileExtensionIs(fileName, ".json")) {
97189
97277
  return undefined;
97190
97278
  }
97191
97279
  return getResolvedProjectReferenceToRedirect(fileName);
@@ -97227,7 +97315,7 @@ var ts;
97227
97315
  else {
97228
97316
  var getCommonSourceDirectory_3 = ts.memoize(function () { return ts.getCommonSourceDirectoryOfConfig(resolvedRef.commandLine, !host.useCaseSensitiveFileNames()); });
97229
97317
  ts.forEach(resolvedRef.commandLine.fileNames, function (fileName) {
97230
- if (!ts.fileExtensionIs(fileName, ".d.ts") && !ts.fileExtensionIs(fileName, ".json")) {
97318
+ if (!ts.isDeclarationFileName(fileName) && !ts.fileExtensionIs(fileName, ".json")) {
97231
97319
  var outputDts = ts.getOutputDeclarationFileName(fileName, resolvedRef.commandLine, !host.useCaseSensitiveFileNames(), getCommonSourceDirectory_3);
97232
97320
  mapFromToProjectReferenceRedirectSource.set(toPath(outputDts), fileName);
97233
97321
  }
@@ -97976,7 +98064,7 @@ var ts;
97976
98064
  if (options.outDir) {
97977
98065
  return ts.containsPath(options.outDir, filePath, currentDirectory, !host.useCaseSensitiveFileNames());
97978
98066
  }
97979
- if (ts.fileExtensionIsOneOf(filePath, ts.supportedJSExtensionsFlat) || ts.fileExtensionIs(filePath, ".d.ts")) {
98067
+ if (ts.fileExtensionIsOneOf(filePath, ts.supportedJSExtensionsFlat) || ts.isDeclarationFileName(filePath)) {
97980
98068
  var filePathWithoutExtension = ts.removeFileExtension(filePath);
97981
98069
  return !!getSourceFileByPath((filePathWithoutExtension + ".ts")) ||
97982
98070
  !!getSourceFileByPath((filePathWithoutExtension + ".tsx"));
@@ -98268,13 +98356,9 @@ var ts;
98268
98356
  ts.getFileEmitOutput = getFileEmitOutput;
98269
98357
  var BuilderState;
98270
98358
  (function (BuilderState) {
98271
- var manyToManyPathMapCount = 0;
98272
98359
  function createManyToManyPathMap() {
98273
98360
  function create(forward, reverse, deleted) {
98274
- var version = 0;
98275
98361
  var map = {
98276
- id: manyToManyPathMapCount++,
98277
- version: function () { return version; },
98278
98362
  clone: function () { return create(new ts.Map(forward), new ts.Map(reverse), deleted && new ts.Set(deleted)); },
98279
98363
  forEach: function (fn) { return forward.forEach(fn); },
98280
98364
  getKeys: function (v) { return reverse.get(v); },
@@ -98290,30 +98374,29 @@ var ts;
98290
98374
  }
98291
98375
  set.forEach(function (v) { return deleteFromMultimap(reverse, v, k); });
98292
98376
  forward.delete(k);
98293
- version++;
98294
98377
  return true;
98295
98378
  },
98296
98379
  set: function (k, vSet) {
98297
- var changed = !!(deleted === null || deleted === void 0 ? void 0 : deleted.delete(k));
98380
+ deleted === null || deleted === void 0 ? void 0 : deleted.delete(k);
98298
98381
  var existingVSet = forward.get(k);
98299
98382
  forward.set(k, vSet);
98300
98383
  existingVSet === null || existingVSet === void 0 ? void 0 : existingVSet.forEach(function (v) {
98301
98384
  if (!vSet.has(v)) {
98302
- changed = true;
98303
98385
  deleteFromMultimap(reverse, v, k);
98304
98386
  }
98305
98387
  });
98306
98388
  vSet.forEach(function (v) {
98307
98389
  if (!(existingVSet === null || existingVSet === void 0 ? void 0 : existingVSet.has(v))) {
98308
- changed = true;
98309
98390
  addToMultimap(reverse, v, k);
98310
98391
  }
98311
98392
  });
98312
- if (changed) {
98313
- version++;
98314
- }
98315
98393
  return map;
98316
98394
  },
98395
+ clear: function () {
98396
+ forward.clear();
98397
+ reverse.clear();
98398
+ deleted === null || deleted === void 0 ? void 0 : deleted.clear();
98399
+ }
98317
98400
  };
98318
98401
  return map;
98319
98402
  }
@@ -98328,11 +98411,10 @@ var ts;
98328
98411
  }
98329
98412
  set.add(v);
98330
98413
  }
98331
- function deleteFromMultimap(map, k, v, removeEmpty) {
98332
- if (removeEmpty === void 0) { removeEmpty = true; }
98414
+ function deleteFromMultimap(map, k, v) {
98333
98415
  var set = map.get(k);
98334
98416
  if (set === null || set === void 0 ? void 0 : set.delete(v)) {
98335
- if (removeEmpty && !set.size) {
98417
+ if (!set.size) {
98336
98418
  map.delete(k);
98337
98419
  }
98338
98420
  return true;
@@ -98508,7 +98590,7 @@ var ts;
98508
98590
  var emitOutput_1 = getFileEmitOutput(programOfThisState, sourceFile, true, cancellationToken, undefined, true);
98509
98591
  var firstDts_1 = ts.firstOrUndefined(emitOutput_1.outputFiles);
98510
98592
  if (firstDts_1) {
98511
- ts.Debug.assert(ts.fileExtensionIsOneOf(firstDts_1.name, [".d.ts", ".d.mts", ".d.cts"]), "File extension for signature expected to be dts", function () { return "Found: " + ts.getAnyExtensionFromPath(firstDts_1.name) + " for " + firstDts_1.name + ":: All output files: " + JSON.stringify(emitOutput_1.outputFiles.map(function (f) { return f.name; })); });
98593
+ ts.Debug.assert(ts.isDeclarationFileName(firstDts_1.name), "File extension for signature expected to be dts", function () { return "Found: " + ts.getAnyExtensionFromPath(firstDts_1.name) + " for " + firstDts_1.name + ":: All output files: " + JSON.stringify(emitOutput_1.outputFiles.map(function (f) { return f.name; })); });
98512
98594
  latestSignature = (computeHash || ts.generateDjb2Hash)(firstDts_1.text);
98513
98595
  if (exportedModulesMapCache && latestSignature !== prevSignature) {
98514
98596
  updateExportedModules(sourceFile, emitOutput_1.exportedModulesFromDeclarationEmit, exportedModulesMapCache);
@@ -98557,18 +98639,6 @@ var ts;
98557
98639
  var _a;
98558
98640
  if (exportedModulesMapCache) {
98559
98641
  ts.Debug.assert(!!state.exportedModulesMap);
98560
- var cacheId = exportedModulesMapCache.id;
98561
- var cacheVersion = exportedModulesMapCache.version();
98562
- if (state.previousCache) {
98563
- if (state.previousCache.id === cacheId && state.previousCache.version === cacheVersion) {
98564
- return;
98565
- }
98566
- state.previousCache.id = cacheId;
98567
- state.previousCache.version = cacheVersion;
98568
- }
98569
- else {
98570
- state.previousCache = { id: cacheId, version: cacheVersion };
98571
- }
98572
98642
  (_a = exportedModulesMapCache.deletedKeys()) === null || _a === void 0 ? void 0 : _a.forEach(function (path) { return state.exportedModulesMap.deleteKey(path); });
98573
98643
  exportedModulesMapCache.forEach(function (exportedModules, path) { return state.exportedModulesMap.set(path, exportedModules); });
98574
98644
  }
@@ -98821,7 +98891,8 @@ var ts;
98821
98891
  function assertSourceFileOkWithoutNextAffectedCall(state, sourceFile) {
98822
98892
  ts.Debug.assert(!sourceFile || !state.affectedFiles || state.affectedFiles[state.affectedFilesIndex - 1] !== sourceFile || !state.semanticDiagnosticsPerFile.has(sourceFile.resolvedPath));
98823
98893
  }
98824
- function getNextAffectedFile(state, cancellationToken, computeHash) {
98894
+ function getNextAffectedFile(state, cancellationToken, computeHash, host) {
98895
+ var _a;
98825
98896
  while (true) {
98826
98897
  var affectedFiles = state.affectedFiles;
98827
98898
  if (affectedFiles) {
@@ -98831,7 +98902,7 @@ var ts;
98831
98902
  var affectedFile = affectedFiles[affectedFilesIndex];
98832
98903
  if (!seenAffectedFiles.has(affectedFile.resolvedPath)) {
98833
98904
  state.affectedFilesIndex = affectedFilesIndex;
98834
- handleDtsMayChangeOfAffectedFile(state, affectedFile, cancellationToken, computeHash);
98905
+ handleDtsMayChangeOfAffectedFile(state, affectedFile, cancellationToken, computeHash, host);
98835
98906
  return affectedFile;
98836
98907
  }
98837
98908
  affectedFilesIndex++;
@@ -98841,6 +98912,7 @@ var ts;
98841
98912
  ts.BuilderState.updateSignaturesFromCache(state, state.currentAffectedFilesSignatures);
98842
98913
  state.currentAffectedFilesSignatures.clear();
98843
98914
  ts.BuilderState.updateExportedFilesMapFromCache(state, state.currentAffectedFilesExportedModulesMap);
98915
+ (_a = state.currentAffectedFilesExportedModulesMap) === null || _a === void 0 ? void 0 : _a.clear();
98844
98916
  state.affectedFiles = undefined;
98845
98917
  }
98846
98918
  var nextKey = state.changedFilesSet.keys().next();
@@ -98865,6 +98937,11 @@ var ts;
98865
98937
  state.seenAffectedFiles = new ts.Set();
98866
98938
  }
98867
98939
  }
98940
+ function clearAffectedFilesPendingEmit(state) {
98941
+ state.affectedFilesPendingEmit = undefined;
98942
+ state.affectedFilesPendingEmitKind = undefined;
98943
+ state.affectedFilesPendingEmitIndex = undefined;
98944
+ }
98868
98945
  function getNextAffectedFilePendingEmit(state) {
98869
98946
  var affectedFilesPendingEmit = state.affectedFilesPendingEmit;
98870
98947
  if (affectedFilesPendingEmit) {
@@ -98880,13 +98957,11 @@ var ts;
98880
98957
  }
98881
98958
  }
98882
98959
  }
98883
- state.affectedFilesPendingEmit = undefined;
98884
- state.affectedFilesPendingEmitKind = undefined;
98885
- state.affectedFilesPendingEmitIndex = undefined;
98960
+ clearAffectedFilesPendingEmit(state);
98886
98961
  }
98887
98962
  return undefined;
98888
98963
  }
98889
- function handleDtsMayChangeOfAffectedFile(state, affectedFile, cancellationToken, computeHash) {
98964
+ function handleDtsMayChangeOfAffectedFile(state, affectedFile, cancellationToken, computeHash, host) {
98890
98965
  var _a;
98891
98966
  removeSemanticDiagnosticsOf(state, affectedFile.resolvedPath);
98892
98967
  if (state.allFilesExcludingDefaultLibraryFile === state.affectedFiles) {
@@ -98907,16 +98982,16 @@ var ts;
98907
98982
  ts.Debug.assert(state.hasCalledUpdateShapeSignature.has(affectedFile.resolvedPath) || ((_a = state.currentAffectedFilesSignatures) === null || _a === void 0 ? void 0 : _a.has(affectedFile.resolvedPath)), "Signature not updated for affected file: " + affectedFile.fileName);
98908
98983
  }
98909
98984
  if (!state.compilerOptions.assumeChangesOnlyAffectDirectDependencies) {
98910
- forEachReferencingModulesOfExportOfAffectedFile(state, affectedFile, function (state, path) { return handleDtsMayChangeOf(state, path, cancellationToken, computeHash); });
98985
+ forEachReferencingModulesOfExportOfAffectedFile(state, affectedFile, function (state, path) { return handleDtsMayChangeOf(state, path, cancellationToken, computeHash, host); });
98911
98986
  }
98912
98987
  }
98913
- function handleDtsMayChangeOf(state, path, cancellationToken, computeHash) {
98988
+ function handleDtsMayChangeOf(state, path, cancellationToken, computeHash, host) {
98914
98989
  removeSemanticDiagnosticsOf(state, path);
98915
98990
  if (!state.changedFilesSet.has(path)) {
98916
98991
  var program = ts.Debug.checkDefined(state.program);
98917
98992
  var sourceFile = program.getSourceFileByPath(path);
98918
98993
  if (sourceFile) {
98919
- ts.BuilderState.updateShapeSignature(state, program, sourceFile, ts.Debug.checkDefined(state.currentAffectedFilesSignatures), cancellationToken, computeHash, state.currentAffectedFilesExportedModulesMap, true);
98994
+ ts.BuilderState.updateShapeSignature(state, program, sourceFile, ts.Debug.checkDefined(state.currentAffectedFilesSignatures), cancellationToken, computeHash, state.currentAffectedFilesExportedModulesMap, !host.disableUseFileVersionAsSignature);
98920
98995
  if (ts.getEmitDeclarations(state.compilerOptions)) {
98921
98996
  addToAffectedFilesPendingEmit(state, path, 0);
98922
98997
  }
@@ -99061,8 +99136,8 @@ var ts;
99061
99136
  var signature = state.currentAffectedFilesSignatures && state.currentAffectedFilesSignatures.get(key);
99062
99137
  var actualSignature = signature !== null && signature !== void 0 ? signature : value.signature;
99063
99138
  return value.version === actualSignature ?
99064
- value.affectsGlobalScope ?
99065
- { version: value.version, signature: undefined, affectsGlobalScope: true, impliedFormat: value.impliedFormat } :
99139
+ value.affectsGlobalScope || value.impliedFormat ?
99140
+ { version: value.version, signature: undefined, affectsGlobalScope: value.affectsGlobalScope, impliedFormat: value.impliedFormat } :
99066
99141
  value.version :
99067
99142
  actualSignature !== undefined ?
99068
99143
  signature === undefined ?
@@ -99295,7 +99370,7 @@ var ts;
99295
99370
  return ts.emitSkippedWithNoDiagnostics;
99296
99371
  }
99297
99372
  function emitNextAffectedFile(writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers) {
99298
- var affected = getNextAffectedFile(state, cancellationToken, computeHash);
99373
+ var affected = getNextAffectedFile(state, cancellationToken, computeHash, host);
99299
99374
  var emitKind = 1;
99300
99375
  var isPendingEmitFile = false;
99301
99376
  if (!affected) {
@@ -99321,55 +99396,49 @@ var ts;
99321
99396
  return toAffectedFileEmitResult(state, ts.Debug.checkDefined(state.program).emit(affected === state.program ? undefined : affected, writeFile || ts.maybeBind(host, host.writeFile), cancellationToken, emitOnlyDtsFiles || emitKind === 0, customTransformers), affected, emitKind, isPendingEmitFile);
99322
99397
  }
99323
99398
  function emit(targetSourceFile, writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers) {
99324
- var restorePendingEmitOnHandlingNoEmitSuccess = false;
99325
- var savedAffectedFilesPendingEmit;
99326
- var savedAffectedFilesPendingEmitKind;
99327
- var savedAffectedFilesPendingEmitIndex;
99328
- if (kind !== BuilderProgramKind.EmitAndSemanticDiagnosticsBuilderProgram &&
99329
- !targetSourceFile &&
99330
- !ts.outFile(state.compilerOptions) &&
99331
- !state.compilerOptions.noEmit &&
99332
- state.compilerOptions.noEmitOnError) {
99333
- restorePendingEmitOnHandlingNoEmitSuccess = true;
99334
- savedAffectedFilesPendingEmit = state.affectedFilesPendingEmit && state.affectedFilesPendingEmit.slice();
99335
- savedAffectedFilesPendingEmitKind = state.affectedFilesPendingEmitKind && new ts.Map(state.affectedFilesPendingEmitKind);
99336
- savedAffectedFilesPendingEmitIndex = state.affectedFilesPendingEmitIndex;
99337
- }
99399
+ var _a;
99338
99400
  if (kind === BuilderProgramKind.EmitAndSemanticDiagnosticsBuilderProgram) {
99339
99401
  assertSourceFileOkWithoutNextAffectedCall(state, targetSourceFile);
99340
99402
  }
99341
99403
  var result = ts.handleNoEmitOptions(builderProgram, targetSourceFile, writeFile, cancellationToken);
99342
99404
  if (result)
99343
99405
  return result;
99344
- if (restorePendingEmitOnHandlingNoEmitSuccess) {
99345
- state.affectedFilesPendingEmit = savedAffectedFilesPendingEmit;
99346
- state.affectedFilesPendingEmitKind = savedAffectedFilesPendingEmitKind;
99347
- state.affectedFilesPendingEmitIndex = savedAffectedFilesPendingEmitIndex;
99348
- }
99349
- if (!targetSourceFile && kind === BuilderProgramKind.EmitAndSemanticDiagnosticsBuilderProgram) {
99350
- var sourceMaps = [];
99351
- var emitSkipped = false;
99352
- var diagnostics = void 0;
99353
- var emittedFiles = [];
99354
- var affectedEmitResult = void 0;
99355
- while (affectedEmitResult = emitNextAffectedFile(writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers)) {
99356
- emitSkipped = emitSkipped || affectedEmitResult.result.emitSkipped;
99357
- diagnostics = ts.addRange(diagnostics, affectedEmitResult.result.diagnostics);
99358
- emittedFiles = ts.addRange(emittedFiles, affectedEmitResult.result.emittedFiles);
99359
- sourceMaps = ts.addRange(sourceMaps, affectedEmitResult.result.sourceMaps);
99406
+ if (!targetSourceFile) {
99407
+ if (kind === BuilderProgramKind.EmitAndSemanticDiagnosticsBuilderProgram) {
99408
+ var sourceMaps = [];
99409
+ var emitSkipped = false;
99410
+ var diagnostics = void 0;
99411
+ var emittedFiles = [];
99412
+ var affectedEmitResult = void 0;
99413
+ while (affectedEmitResult = emitNextAffectedFile(writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers)) {
99414
+ emitSkipped = emitSkipped || affectedEmitResult.result.emitSkipped;
99415
+ diagnostics = ts.addRange(diagnostics, affectedEmitResult.result.diagnostics);
99416
+ emittedFiles = ts.addRange(emittedFiles, affectedEmitResult.result.emittedFiles);
99417
+ sourceMaps = ts.addRange(sourceMaps, affectedEmitResult.result.sourceMaps);
99418
+ }
99419
+ return {
99420
+ emitSkipped: emitSkipped,
99421
+ diagnostics: diagnostics || ts.emptyArray,
99422
+ emittedFiles: emittedFiles,
99423
+ sourceMaps: sourceMaps
99424
+ };
99425
+ }
99426
+ else if ((_a = state.affectedFilesPendingEmitKind) === null || _a === void 0 ? void 0 : _a.size) {
99427
+ ts.Debug.assert(kind === BuilderProgramKind.SemanticDiagnosticsBuilderProgram);
99428
+ if (!emitOnlyDtsFiles
99429
+ || ts.every(state.affectedFilesPendingEmit, function (path, index) {
99430
+ return index < state.affectedFilesPendingEmitIndex ||
99431
+ state.affectedFilesPendingEmitKind.get(path) === 0;
99432
+ })) {
99433
+ clearAffectedFilesPendingEmit(state);
99434
+ }
99360
99435
  }
99361
- return {
99362
- emitSkipped: emitSkipped,
99363
- diagnostics: diagnostics || ts.emptyArray,
99364
- emittedFiles: emittedFiles,
99365
- sourceMaps: sourceMaps
99366
- };
99367
99436
  }
99368
99437
  return ts.Debug.checkDefined(state.program).emit(targetSourceFile, writeFile || ts.maybeBind(host, host.writeFile), cancellationToken, emitOnlyDtsFiles, customTransformers);
99369
99438
  }
99370
99439
  function getSemanticDiagnosticsOfNextAffectedFile(cancellationToken, ignoreSourceFile) {
99371
99440
  while (true) {
99372
- var affected = getNextAffectedFile(state, cancellationToken, computeHash);
99441
+ var affected = getNextAffectedFile(state, cancellationToken, computeHash, host);
99373
99442
  if (!affected) {
99374
99443
  return undefined;
99375
99444
  }
@@ -102124,9 +102193,6 @@ var ts;
102124
102193
  function newer(date1, date2) {
102125
102194
  return date2 > date1 ? date2 : date1;
102126
102195
  }
102127
- function isDeclarationFile(fileName) {
102128
- return ts.fileExtensionIs(fileName, ".d.ts");
102129
- }
102130
102196
  function isCircularBuildOrder(buildOrder) {
102131
102197
  return !!buildOrder && !!buildOrder.buildOrder;
102132
102198
  }
@@ -102664,7 +102730,7 @@ var ts;
102664
102730
  outputFiles.forEach(function (_a) {
102665
102731
  var name = _a.name, text = _a.text, writeByteOrderMark = _a.writeByteOrderMark;
102666
102732
  var priorChangeTime;
102667
- if (!anyDtsChanged && isDeclarationFile(name)) {
102733
+ if (!anyDtsChanged && ts.isDeclarationFileName(name)) {
102668
102734
  if (host.fileExists(name) && state.readFileWithCache(name) === text) {
102669
102735
  priorChangeTime = host.getModifiedTime(name);
102670
102736
  }
@@ -102980,7 +103046,7 @@ var ts;
102980
103046
  newestOutputFileTime = outputTime;
102981
103047
  newestOutputFileName = output;
102982
103048
  }
102983
- if (isDeclarationFile(output)) {
103049
+ if (ts.isDeclarationFileName(output)) {
102984
103050
  var outputModifiedTime = ts.getModifiedTime(host, output);
102985
103051
  newestDeclarationFileContentChangedTime = newer(newestDeclarationFileContentChangedTime, outputModifiedTime);
102986
103052
  }
@@ -103120,7 +103186,7 @@ var ts;
103120
103186
  reportVerbose = false;
103121
103187
  reportStatus(state, verboseMessage, proj.options.configFilePath);
103122
103188
  }
103123
- if (isDeclarationFile(file)) {
103189
+ if (ts.isDeclarationFileName(file)) {
103124
103190
  priorNewestUpdateTime = newer(priorNewestUpdateTime, ts.getModifiedTime(host, file));
103125
103191
  }
103126
103192
  host.setModifiedTime(file, now);