typescript 4.7.0-dev.20220408 → 4.7.0-dev.20220417

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.20220408";
72
+ ts.version = ts.versionMajorMinor + ".0-dev.20220417";
73
73
  var NativeCollections;
74
74
  (function (NativeCollections) {
75
75
  var globals = typeof globalThis !== "undefined" ? globalThis :
@@ -11444,6 +11444,10 @@ var ts;
11444
11444
  }
11445
11445
  }
11446
11446
  ts.isAnyImportSyntax = isAnyImportSyntax;
11447
+ function isAnyImportOrBareOrAccessedRequire(node) {
11448
+ return isAnyImportSyntax(node) || isVariableDeclarationInitializedToBareOrAccessedRequire(node);
11449
+ }
11450
+ ts.isAnyImportOrBareOrAccessedRequire = isAnyImportOrBareOrAccessedRequire;
11447
11451
  function isLateVisibilityPaintedStatement(node) {
11448
11452
  switch (node.kind) {
11449
11453
  case 266:
@@ -12674,17 +12678,13 @@ var ts;
12674
12678
  if (isPropertyNameLiteral(name) && isPropertyNameLiteral(initializer)) {
12675
12679
  return getTextOfIdentifierOrLiteral(name) === getTextOfIdentifierOrLiteral(initializer);
12676
12680
  }
12677
- if (ts.isIdentifier(name) && isLiteralLikeAccess(initializer) &&
12681
+ if (ts.isMemberName(name) && isLiteralLikeAccess(initializer) &&
12678
12682
  (initializer.expression.kind === 108 ||
12679
12683
  ts.isIdentifier(initializer.expression) &&
12680
12684
  (initializer.expression.escapedText === "window" ||
12681
12685
  initializer.expression.escapedText === "self" ||
12682
12686
  initializer.expression.escapedText === "global"))) {
12683
- var nameOrArgument = getNameOrArgument(initializer);
12684
- if (ts.isPrivateIdentifier(nameOrArgument)) {
12685
- ts.Debug.fail("Unexpected PrivateIdentifier in name expression with literal-like access.");
12686
- }
12687
- return isSameEntityName(name, nameOrArgument);
12687
+ return isSameEntityName(name, getNameOrArgument(initializer));
12688
12688
  }
12689
12689
  if (isLiteralLikeAccess(name) && isLiteralLikeAccess(initializer)) {
12690
12690
  return getElementOrPropertyAccessName(name) === getElementOrPropertyAccessName(initializer)
@@ -12874,14 +12874,14 @@ var ts;
12874
12874
  }
12875
12875
  ts.isFunctionSymbol = isFunctionSymbol;
12876
12876
  function tryGetModuleSpecifierFromDeclaration(node) {
12877
- var _a, _b, _c;
12877
+ var _a, _b;
12878
12878
  switch (node.kind) {
12879
12879
  case 254:
12880
- 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];
12881
12881
  case 266:
12882
- return (_a = ts.tryCast(node.moduleSpecifier, ts.isStringLiteralLike)) === null || _a === void 0 ? void 0 : _a.text;
12882
+ return ts.tryCast(node.moduleSpecifier, ts.isStringLiteralLike);
12883
12883
  case 265:
12884
- 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);
12885
12885
  default:
12886
12886
  ts.Debug.assertNever(node);
12887
12887
  }
@@ -13354,24 +13354,31 @@ var ts;
13354
13354
  return parent.propertyName === node;
13355
13355
  case 275:
13356
13356
  case 285:
13357
+ case 279:
13358
+ case 280:
13359
+ case 281:
13357
13360
  return true;
13358
13361
  }
13359
13362
  return false;
13360
13363
  }
13361
13364
  ts.isIdentifierName = isIdentifierName;
13362
13365
  function isAliasSymbolDeclaration(node) {
13363
- return node.kind === 265 ||
13366
+ if (node.kind === 265 ||
13364
13367
  node.kind === 264 ||
13365
13368
  node.kind === 267 && !!node.name ||
13366
13369
  node.kind === 268 ||
13367
13370
  node.kind === 274 ||
13368
13371
  node.kind === 270 ||
13369
13372
  node.kind === 275 ||
13370
- node.kind === 271 && exportAssignmentIsAlias(node) ||
13371
- ts.isBinaryExpression(node) && getAssignmentDeclarationKind(node) === 2 && exportAssignmentIsAlias(node) ||
13372
- ts.isPropertyAccessExpression(node) && ts.isBinaryExpression(node.parent) && node.parent.left === node && node.parent.operatorToken.kind === 63 && isAliasableExpression(node.parent.right) ||
13373
- node.kind === 297 ||
13374
- 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));
13375
13382
  }
13376
13383
  ts.isAliasSymbolDeclaration = isAliasSymbolDeclaration;
13377
13384
  function getAliasDeclarationFromName(node) {
@@ -13382,6 +13389,7 @@ var ts;
13382
13389
  case 275:
13383
13390
  case 271:
13384
13391
  case 265:
13392
+ case 274:
13385
13393
  return node.parent;
13386
13394
  case 161:
13387
13395
  do {
@@ -14881,6 +14889,11 @@ var ts;
14881
14889
  (node.parent.kind === 206 && node.parent.name === node);
14882
14890
  }
14883
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;
14884
14897
  function isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName(node) {
14885
14898
  return ts.isQualifiedName(node.parent) && node.parent.right === node
14886
14899
  || ts.isPropertyAccessExpression(node.parent) && node.parent.name === node
@@ -15441,6 +15454,38 @@ var ts;
15441
15454
  return expr;
15442
15455
  }
15443
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;
15444
15489
  function getLeftmostExpression(node, stopAtCallExpressions) {
15445
15490
  while (true) {
15446
15491
  switch (node.kind) {
@@ -16298,6 +16343,7 @@ var ts;
16298
16343
  ts.supportedJSExtensionsFlat = ts.flatten(ts.supportedJSExtensions);
16299
16344
  var allSupportedExtensions = [[".ts", ".tsx", ".d.ts", ".js", ".jsx"], [".cts", ".d.cts", ".cjs"], [".mts", ".d.mts", ".mjs"]];
16300
16345
  var allSupportedExtensionsWithJson = __spreadArray(__spreadArray([], allSupportedExtensions, true), [[".json"]], false);
16346
+ ts.supportedDeclarationExtensions = [".d.ts", ".d.cts", ".d.mts"];
16301
16347
  function getSupportedExtensions(options, extraFileExtensions) {
16302
16348
  var needJsExtensions = options && getAllowJSCompilerOption(options);
16303
16349
  if (!extraFileExtensions || extraFileExtensions.length === 0) {
@@ -16886,6 +16932,11 @@ var ts;
16886
16932
  return state > 1 ? { topLevelNodeModulesIndex: topLevelNodeModulesIndex, topLevelPackageNameIndex: topLevelPackageNameIndex, packageRootIndex: packageRootIndex, fileNameIndex: fileNameIndex } : undefined;
16887
16933
  }
16888
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;
16889
16940
  })(ts || (ts = {}));
16890
16941
  var ts;
16891
16942
  (function (ts) {
@@ -28387,29 +28438,9 @@ var ts;
28387
28438
  case 20:
28388
28439
  case 14:
28389
28440
  case 15:
28390
- case 27:
28391
- case 24:
28392
- case 28:
28393
- case 21:
28394
- case 23:
28395
- case 58:
28396
- case 26:
28397
- case 57:
28398
- case 34:
28399
- case 36:
28400
- case 35:
28401
- case 37:
28402
- case 55:
28403
- case 56:
28404
- case 60:
28405
- case 52:
28406
- case 50:
28407
- case 51:
28408
- case 19:
28409
- case 1:
28410
28441
  return true;
28411
28442
  }
28412
- return false;
28443
+ return !isStartOfExpression();
28413
28444
  }
28414
28445
  function parsePrimaryExpression() {
28415
28446
  switch (token()) {
@@ -31135,7 +31166,7 @@ var ts;
31135
31166
  IncrementalParser.createSyntaxCursor = createSyntaxCursor;
31136
31167
  })(IncrementalParser || (IncrementalParser = {}));
31137
31168
  function isDeclarationFileName(fileName) {
31138
- return ts.fileExtensionIsOneOf(fileName, [".d.ts", ".d.mts", ".d.cts"]);
31169
+ return ts.fileExtensionIsOneOf(fileName, ts.supportedDeclarationExtensions);
31139
31170
  }
31140
31171
  ts.isDeclarationFileName = isDeclarationFileName;
31141
31172
  function parseResolutionMode(mode, pos, end, reportDiagnostic) {
@@ -34319,6 +34350,7 @@ var ts;
34319
34350
  Extensions[Extensions["Json"] = 2] = "Json";
34320
34351
  Extensions[Extensions["TSConfig"] = 3] = "TSConfig";
34321
34352
  Extensions[Extensions["DtsOnly"] = 4] = "DtsOnly";
34353
+ Extensions[Extensions["TsOnly"] = 5] = "TsOnly";
34322
34354
  })(Extensions || (Extensions = {}));
34323
34355
  function resolvedTypeScriptOnly(resolved) {
34324
34356
  if (!resolved) {
@@ -35115,13 +35147,31 @@ var ts;
35115
35147
  return nodeModuleNameResolverWorker(NodeResolutionFeatures.None, moduleName, initialDir, { moduleResolution: ts.ModuleResolutionKind.NodeJs, allowJs: true }, host, undefined, jsOnlyExtensions, undefined);
35116
35148
  }
35117
35149
  function nodeModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, lookupConfig) {
35118
- 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);
35119
35165
  }
35120
35166
  ts.nodeModuleNameResolver = nodeModuleNameResolver;
35121
35167
  function nodeModuleNameResolverWorker(features, moduleName, containingDirectory, compilerOptions, host, cache, extensions, redirectedReference) {
35122
35168
  var _a, _b;
35123
35169
  var traceEnabled = isTraceEnabled(compilerOptions, host);
35124
35170
  var failedLookupLocations = [];
35171
+ var conditions = features & NodeResolutionFeatures.EsmMode ? ["node", "import", "types"] : ["node", "require", "types"];
35172
+ if (compilerOptions.noDtsResolution) {
35173
+ conditions.pop();
35174
+ }
35125
35175
  var state = {
35126
35176
  compilerOptions: compilerOptions,
35127
35177
  host: host,
@@ -35129,7 +35179,7 @@ var ts;
35129
35179
  failedLookupLocations: failedLookupLocations,
35130
35180
  packageJsonInfoCache: cache,
35131
35181
  features: features,
35132
- conditions: features & NodeResolutionFeatures.EsmMode ? ["node", "import", "types"] : ["node", "require", "types"]
35182
+ conditions: conditions,
35133
35183
  };
35134
35184
  var result = ts.forEach(extensions, function (ext) { return tryResolve(ext); });
35135
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);
@@ -35274,9 +35324,9 @@ var ts;
35274
35324
  }
35275
35325
  }
35276
35326
  function loadJSOrExactTSFileName(extensions, candidate, onlyRecordFailures, state) {
35277
- 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)) {
35278
35328
  var result = tryFile(candidate, onlyRecordFailures, state);
35279
- 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;
35280
35330
  }
35281
35331
  return loadModuleFromFileNoImplicitExtensions(extensions, candidate, onlyRecordFailures, state);
35282
35332
  }
@@ -35304,20 +35354,22 @@ var ts;
35304
35354
  default: return tryExtension(".d.ts");
35305
35355
  }
35306
35356
  case Extensions.TypeScript:
35357
+ case Extensions.TsOnly:
35358
+ var useDts = extensions === Extensions.TypeScript;
35307
35359
  switch (originalExtension) {
35308
35360
  case ".mjs":
35309
35361
  case ".mts":
35310
35362
  case ".d.mts":
35311
- return tryExtension(".mts") || tryExtension(".d.mts");
35363
+ return tryExtension(".mts") || (useDts ? tryExtension(".d.mts") : undefined);
35312
35364
  case ".cjs":
35313
35365
  case ".cts":
35314
35366
  case ".d.cts":
35315
- return tryExtension(".cts") || tryExtension(".d.cts");
35367
+ return tryExtension(".cts") || (useDts ? tryExtension(".d.cts") : undefined);
35316
35368
  case ".json":
35317
35369
  candidate += ".json";
35318
- return tryExtension(".d.ts");
35370
+ return useDts ? tryExtension(".d.ts") : undefined;
35319
35371
  default:
35320
- return tryExtension(".ts") || tryExtension(".tsx") || tryExtension(".d.ts");
35372
+ return tryExtension(".ts") || tryExtension(".tsx") || (useDts ? tryExtension(".d.ts") : undefined);
35321
35373
  }
35322
35374
  case Extensions.JavaScript:
35323
35375
  switch (originalExtension) {
@@ -35531,6 +35583,7 @@ var ts;
35531
35583
  switch (extensions) {
35532
35584
  case Extensions.JavaScript:
35533
35585
  case Extensions.Json:
35586
+ case Extensions.TsOnly:
35534
35587
  packageFile = readPackageJsonMainField(jsonContent, candidate, state);
35535
35588
  break;
35536
35589
  case Extensions.TypeScript:
@@ -35593,14 +35646,16 @@ var ts;
35593
35646
  function extensionIsOk(extensions, extension) {
35594
35647
  switch (extensions) {
35595
35648
  case Extensions.JavaScript:
35596
- return extension === ".js" || extension === ".jsx";
35649
+ return extension === ".js" || extension === ".jsx" || extension === ".mjs" || extension === ".cjs";
35597
35650
  case Extensions.TSConfig:
35598
35651
  case Extensions.Json:
35599
35652
  return extension === ".json";
35600
35653
  case Extensions.TypeScript:
35601
- 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";
35602
35657
  case Extensions.DtsOnly:
35603
- return extension === ".d.ts";
35658
+ return extension === ".d.ts" || extension === ".d.mts" || extension === ".d.cts";
35604
35659
  }
35605
35660
  }
35606
35661
  function parsePackageName(moduleName) {
@@ -43602,9 +43657,6 @@ var ts;
43602
43657
  if (parameterDeclaration && isRequiredInitializedParameter(parameterDeclaration)) {
43603
43658
  parameterType = getOptionalType(parameterType);
43604
43659
  }
43605
- if ((context.flags & 1073741824) && parameterDeclaration && !ts.isJSDocParameterTag(parameterDeclaration) && isOptionalUninitializedParameter(parameterDeclaration)) {
43606
- parameterType = getTypeWithFacts(parameterType, 524288);
43607
- }
43608
43660
  var parameterTypeNode = serializeTypeForDeclaration(context, parameterType, parameterSymbol, context.enclosingDeclaration, privateSymbolVisitor, bundledImports);
43609
43661
  var modifiers = !(context.flags & 8192) && preserveModifierFlags && parameterDeclaration && parameterDeclaration.modifiers ? parameterDeclaration.modifiers.map(ts.factory.cloneNode) : undefined;
43610
43662
  var isRest = parameterDeclaration && ts.isRestParameter(parameterDeclaration) || ts.getCheckFlags(parameterSymbol) & 32768;
@@ -44111,7 +44163,7 @@ var ts;
44111
44163
  var declWithExistingAnnotation = getDeclarationWithTypeAnnotation(symbol, enclosingDeclaration);
44112
44164
  if (declWithExistingAnnotation && !ts.isFunctionLikeDeclaration(declWithExistingAnnotation) && !ts.isGetAccessorDeclaration(declWithExistingAnnotation)) {
44113
44165
  var existing = ts.getEffectiveTypeAnnotationNode(declWithExistingAnnotation);
44114
- if (getTypeFromTypeNode(existing) === type && existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type)) {
44166
+ if (typeNodeIsEquivalentToType(existing, declWithExistingAnnotation, type) && existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type)) {
44115
44167
  var result_6 = serializeExistingTypeNode(context, existing, includePrivateSymbol, bundled);
44116
44168
  if (result_6) {
44117
44169
  return result_6;
@@ -44128,6 +44180,16 @@ var ts;
44128
44180
  context.flags = oldFlags;
44129
44181
  return result;
44130
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
+ }
44131
44193
  function serializeReturnTypeForSignature(context, type, signature, includePrivateSymbol, bundled) {
44132
44194
  if (!isErrorType(type) && context.enclosingDeclaration) {
44133
44195
  var annotation = signature.declaration && ts.getEffectiveReturnTypeNode(signature.declaration);
@@ -45981,7 +46043,7 @@ var ts;
45981
46043
  }
45982
46044
  }
45983
46045
  var sourceTypes = ts.some(constructorTypes, function (t) { return !!(t.flags & ~98304); }) ? constructorTypes : types;
45984
- type = getUnionType(sourceTypes, 2);
46046
+ type = getUnionType(sourceTypes);
45985
46047
  }
45986
46048
  }
45987
46049
  var widened = getWidenedType(addOptionality(type, false, definedInMethod && !definedInConstructor));
@@ -48367,8 +48429,9 @@ var ts;
48367
48429
  return circularConstraintType;
48368
48430
  }
48369
48431
  var result = void 0;
48370
- if (stack.length < 10 || stack.length < 50 && !isDeeplyNestedType(t, stack, stack.length)) {
48371
- 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);
48372
48435
  result = computeBaseConstraint(getSimplifiedType(t, false));
48373
48436
  stack.pop();
48374
48437
  }
@@ -55545,12 +55608,12 @@ var ts;
55545
55608
  function isDeeplyNestedType(type, stack, depth, maxDepth) {
55546
55609
  if (maxDepth === void 0) { maxDepth = 3; }
55547
55610
  if (depth >= maxDepth) {
55548
- var identity_1 = getRecursionIdentity(type);
55611
+ var identity_2 = getRecursionIdentity(type);
55549
55612
  var count = 0;
55550
55613
  var lastTypeId = 0;
55551
55614
  for (var i = 0; i < depth; i++) {
55552
55615
  var t = stack[i];
55553
- if (getRecursionIdentity(t) === identity_1) {
55616
+ if (getRecursionIdentity(t) === identity_2) {
55554
55617
  if (t.id >= lastTypeId) {
55555
55618
  count++;
55556
55619
  if (count >= maxDepth) {
@@ -66602,11 +66665,16 @@ var ts;
66602
66665
  if (constraintType && defaultType) {
66603
66666
  checkTypeAssignableTo(defaultType, getTypeWithThisArgument(instantiateType(constraintType, makeUnaryTypeMapper(typeParameter, defaultType)), defaultType), node.default, ts.Diagnostics.Type_0_does_not_satisfy_the_constraint_1);
66604
66667
  }
66605
- 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));
66606
66674
  var modifiers = getVarianceModifiers(typeParameter);
66607
66675
  if (modifiers) {
66608
66676
  var symbol = getSymbolOfNode(node.parent);
66609
- if (node.parent.kind === 259 && !(ts.getObjectFlags(getDeclaredTypeOfSymbol(symbol)) & (16 | 32))) {
66677
+ if (ts.isTypeAliasDeclaration(node.parent) && !(ts.getObjectFlags(getDeclaredTypeOfSymbol(symbol)) & (16 | 32))) {
66610
66678
  error(node, ts.Diagnostics.Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types);
66611
66679
  }
66612
66680
  else if (modifiers === 32768 || modifiers === 65536) {
@@ -66619,7 +66687,6 @@ var ts;
66619
66687
  }
66620
66688
  }
66621
66689
  }
66622
- addLazyDiagnostic(function () { return checkTypeNameIsReserved(node.name, ts.Diagnostics.Type_parameter_name_cannot_be_0); });
66623
66690
  }
66624
66691
  function checkParameter(node) {
66625
66692
  checkGrammarDecoratorsAndModifiers(node);
@@ -67046,7 +67113,7 @@ var ts;
67046
67113
  superCallStatement = statement;
67047
67114
  break;
67048
67115
  }
67049
- if (!ts.isPrologueDirective(statement) && nodeImmediatelyReferencesSuperOrThis(statement)) {
67116
+ if (nodeImmediatelyReferencesSuperOrThis(statement)) {
67050
67117
  break;
67051
67118
  }
67052
67119
  }
@@ -71584,6 +71651,9 @@ var ts;
71584
71651
  case 226:
71585
71652
  checkClassExpressionDeferred(node);
71586
71653
  break;
71654
+ case 163:
71655
+ checkTypeParameterDeferred(node);
71656
+ break;
71587
71657
  case 279:
71588
71658
  checkJsxSelfClosingElementDeferred(node);
71589
71659
  break;
@@ -72519,11 +72589,6 @@ var ts;
72519
72589
  !parameter.initializer &&
72520
72590
  ts.hasSyntacticModifier(parameter, 16476);
72521
72591
  }
72522
- function isOptionalUninitializedParameter(parameter) {
72523
- return !!strictNullChecks &&
72524
- isOptionalParameter(parameter) &&
72525
- !parameter.initializer;
72526
- }
72527
72592
  function isExpandoFunctionDeclaration(node) {
72528
72593
  var declaration = ts.getParseTreeNode(node, ts.isFunctionDeclaration);
72529
72594
  if (!declaration) {
@@ -73388,8 +73453,7 @@ var ts;
73388
73453
  case 144:
73389
73454
  var inOutFlag = modifier.kind === 101 ? 32768 : 65536;
73390
73455
  var inOutText = modifier.kind === 101 ? "in" : "out";
73391
- if (node.kind !== 163 || (node.parent.kind !== 258 &&
73392
- 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))) {
73393
73457
  return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias, inOutText);
73394
73458
  }
73395
73459
  if (flags & inOutFlag) {
@@ -77585,19 +77649,19 @@ var ts;
77585
77649
  }
77586
77650
  var statements = [];
77587
77651
  resumeLexicalEnvironment();
77588
- var indexAfterLastPrologueStatement = factory.copyPrologue(body.statements, statements, false, visitor);
77589
- 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);
77590
77654
  if (superStatementIndex >= 0) {
77591
- 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));
77592
77656
  }
77593
77657
  var parameterPropertyAssignments = ts.mapDefined(parametersWithPropertyAssignments, transformParameterWithPropertyAssignment);
77594
77658
  if (superStatementIndex >= 0) {
77595
77659
  ts.addRange(statements, parameterPropertyAssignments);
77596
77660
  }
77597
77661
  else {
77598
- statements = ts.addRange(parameterPropertyAssignments, statements);
77662
+ statements = __spreadArray(__spreadArray(__spreadArray([], statements.slice(0, prologueStatementCount), true), parameterPropertyAssignments, true), statements.slice(prologueStatementCount), true);
77599
77663
  }
77600
- 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));
77601
77665
  statements = factory.mergeLexicalEnvironment(statements, endLexicalEnvironment());
77602
77666
  var block = factory.createBlock(ts.setTextRange(factory.createNodeArray(statements), body.statements), true);
77603
77667
  ts.setTextRange(block, body);
@@ -89853,7 +89917,7 @@ var ts;
89853
89917
  addOutput(buildInfoPath);
89854
89918
  }
89855
89919
  function getOwnOutputFileNames(configFile, inputFileName, ignoreCase, addOutput, getCommonSourceDirectory) {
89856
- if (ts.fileExtensionIs(inputFileName, ".d.ts"))
89920
+ if (ts.isDeclarationFileName(inputFileName))
89857
89921
  return;
89858
89922
  var js = getOutputJSFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory);
89859
89923
  addOutput(js);
@@ -89891,7 +89955,7 @@ var ts;
89891
89955
  ts.getCommonSourceDirectory = getCommonSourceDirectory;
89892
89956
  function getCommonSourceDirectoryOfConfig(_a, ignoreCase) {
89893
89957
  var options = _a.options, fileNames = _a.fileNames;
89894
- 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));
89895
89959
  }
89896
89960
  ts.getCommonSourceDirectoryOfConfig = getCommonSourceDirectoryOfConfig;
89897
89961
  function getAllProjectOutputs(configFile, ignoreCase) {
@@ -89931,7 +89995,7 @@ var ts;
89931
89995
  var getCommonSourceDirectory = ts.memoize(function () { return getCommonSourceDirectoryOfConfig(configFile, ignoreCase); });
89932
89996
  for (var _a = 0, _b = configFile.fileNames; _a < _b.length; _a++) {
89933
89997
  var inputFileName = _b[_a];
89934
- if (ts.fileExtensionIs(inputFileName, ".d.ts"))
89998
+ if (ts.isDeclarationFileName(inputFileName))
89935
89999
  continue;
89936
90000
  var jsFilePath = getOutputJSFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory);
89937
90001
  if (jsFilePath)
@@ -94786,7 +94850,7 @@ var ts;
94786
94850
  return false;
94787
94851
  if (ts.outFile(options) || options.outDir)
94788
94852
  return false;
94789
- if (ts.fileExtensionIs(fileOrDirectoryPath, ".d.ts")) {
94853
+ if (ts.isDeclarationFileName(fileOrDirectoryPath)) {
94790
94854
  if (options.declarationDir)
94791
94855
  return false;
94792
94856
  }
@@ -95844,7 +95908,7 @@ var ts;
95844
95908
  var getCommonSourceDirectory_2 = ts.memoize(function () { return ts.getCommonSourceDirectoryOfConfig(parsedRef.commandLine, !host.useCaseSensitiveFileNames()); });
95845
95909
  for (var _b = 0, _c = parsedRef.commandLine.fileNames; _b < _c.length; _b++) {
95846
95910
  var fileName = _c[_b];
95847
- if (!ts.fileExtensionIs(fileName, ".d.ts") && !ts.fileExtensionIs(fileName, ".json")) {
95911
+ if (!ts.isDeclarationFileName(fileName) && !ts.fileExtensionIs(fileName, ".json")) {
95848
95912
  processProjectReferenceFile(ts.getOutputDeclarationFileName(fileName, parsedRef.commandLine, !host.useCaseSensitiveFileNames(), getCommonSourceDirectory_2), { kind: ts.FileIncludeKind.OutputFromProjectReference, index: index });
95849
95913
  }
95850
95914
  }
@@ -96020,7 +96084,7 @@ var ts;
96020
96084
  }
96021
96085
  function getRedirectReferenceForResolution(file) {
96022
96086
  var redirect = getResolvedProjectReferenceToRedirect(file.originalFileName);
96023
- if (redirect || !ts.fileExtensionIsOneOf(file.originalFileName, [".d.ts", ".d.cts", ".d.mts"]))
96087
+ if (redirect || !ts.isDeclarationFileName(file.originalFileName))
96024
96088
  return redirect;
96025
96089
  var resultFromDts = getRedirectReferenceForResolutionFromSourceOfProject(file.path);
96026
96090
  if (resultFromDts)
@@ -97209,7 +97273,7 @@ var ts;
97209
97273
  return referencedProject && getProjectReferenceOutputName(referencedProject, fileName);
97210
97274
  }
97211
97275
  function getProjectReferenceRedirectProject(fileName) {
97212
- 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")) {
97213
97277
  return undefined;
97214
97278
  }
97215
97279
  return getResolvedProjectReferenceToRedirect(fileName);
@@ -97251,7 +97315,7 @@ var ts;
97251
97315
  else {
97252
97316
  var getCommonSourceDirectory_3 = ts.memoize(function () { return ts.getCommonSourceDirectoryOfConfig(resolvedRef.commandLine, !host.useCaseSensitiveFileNames()); });
97253
97317
  ts.forEach(resolvedRef.commandLine.fileNames, function (fileName) {
97254
- if (!ts.fileExtensionIs(fileName, ".d.ts") && !ts.fileExtensionIs(fileName, ".json")) {
97318
+ if (!ts.isDeclarationFileName(fileName) && !ts.fileExtensionIs(fileName, ".json")) {
97255
97319
  var outputDts = ts.getOutputDeclarationFileName(fileName, resolvedRef.commandLine, !host.useCaseSensitiveFileNames(), getCommonSourceDirectory_3);
97256
97320
  mapFromToProjectReferenceRedirectSource.set(toPath(outputDts), fileName);
97257
97321
  }
@@ -98000,7 +98064,7 @@ var ts;
98000
98064
  if (options.outDir) {
98001
98065
  return ts.containsPath(options.outDir, filePath, currentDirectory, !host.useCaseSensitiveFileNames());
98002
98066
  }
98003
- if (ts.fileExtensionIsOneOf(filePath, ts.supportedJSExtensionsFlat) || ts.fileExtensionIs(filePath, ".d.ts")) {
98067
+ if (ts.fileExtensionIsOneOf(filePath, ts.supportedJSExtensionsFlat) || ts.isDeclarationFileName(filePath)) {
98004
98068
  var filePathWithoutExtension = ts.removeFileExtension(filePath);
98005
98069
  return !!getSourceFileByPath((filePathWithoutExtension + ".ts")) ||
98006
98070
  !!getSourceFileByPath((filePathWithoutExtension + ".tsx"));
@@ -98292,13 +98356,9 @@ var ts;
98292
98356
  ts.getFileEmitOutput = getFileEmitOutput;
98293
98357
  var BuilderState;
98294
98358
  (function (BuilderState) {
98295
- var manyToManyPathMapCount = 0;
98296
98359
  function createManyToManyPathMap() {
98297
98360
  function create(forward, reverse, deleted) {
98298
- var version = 0;
98299
98361
  var map = {
98300
- id: manyToManyPathMapCount++,
98301
- version: function () { return version; },
98302
98362
  clone: function () { return create(new ts.Map(forward), new ts.Map(reverse), deleted && new ts.Set(deleted)); },
98303
98363
  forEach: function (fn) { return forward.forEach(fn); },
98304
98364
  getKeys: function (v) { return reverse.get(v); },
@@ -98314,30 +98374,29 @@ var ts;
98314
98374
  }
98315
98375
  set.forEach(function (v) { return deleteFromMultimap(reverse, v, k); });
98316
98376
  forward.delete(k);
98317
- version++;
98318
98377
  return true;
98319
98378
  },
98320
98379
  set: function (k, vSet) {
98321
- var changed = !!(deleted === null || deleted === void 0 ? void 0 : deleted.delete(k));
98380
+ deleted === null || deleted === void 0 ? void 0 : deleted.delete(k);
98322
98381
  var existingVSet = forward.get(k);
98323
98382
  forward.set(k, vSet);
98324
98383
  existingVSet === null || existingVSet === void 0 ? void 0 : existingVSet.forEach(function (v) {
98325
98384
  if (!vSet.has(v)) {
98326
- changed = true;
98327
98385
  deleteFromMultimap(reverse, v, k);
98328
98386
  }
98329
98387
  });
98330
98388
  vSet.forEach(function (v) {
98331
98389
  if (!(existingVSet === null || existingVSet === void 0 ? void 0 : existingVSet.has(v))) {
98332
- changed = true;
98333
98390
  addToMultimap(reverse, v, k);
98334
98391
  }
98335
98392
  });
98336
- if (changed) {
98337
- version++;
98338
- }
98339
98393
  return map;
98340
98394
  },
98395
+ clear: function () {
98396
+ forward.clear();
98397
+ reverse.clear();
98398
+ deleted === null || deleted === void 0 ? void 0 : deleted.clear();
98399
+ }
98341
98400
  };
98342
98401
  return map;
98343
98402
  }
@@ -98352,11 +98411,10 @@ var ts;
98352
98411
  }
98353
98412
  set.add(v);
98354
98413
  }
98355
- function deleteFromMultimap(map, k, v, removeEmpty) {
98356
- if (removeEmpty === void 0) { removeEmpty = true; }
98414
+ function deleteFromMultimap(map, k, v) {
98357
98415
  var set = map.get(k);
98358
98416
  if (set === null || set === void 0 ? void 0 : set.delete(v)) {
98359
- if (removeEmpty && !set.size) {
98417
+ if (!set.size) {
98360
98418
  map.delete(k);
98361
98419
  }
98362
98420
  return true;
@@ -98532,7 +98590,7 @@ var ts;
98532
98590
  var emitOutput_1 = getFileEmitOutput(programOfThisState, sourceFile, true, cancellationToken, undefined, true);
98533
98591
  var firstDts_1 = ts.firstOrUndefined(emitOutput_1.outputFiles);
98534
98592
  if (firstDts_1) {
98535
- 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; })); });
98536
98594
  latestSignature = (computeHash || ts.generateDjb2Hash)(firstDts_1.text);
98537
98595
  if (exportedModulesMapCache && latestSignature !== prevSignature) {
98538
98596
  updateExportedModules(sourceFile, emitOutput_1.exportedModulesFromDeclarationEmit, exportedModulesMapCache);
@@ -98581,18 +98639,6 @@ var ts;
98581
98639
  var _a;
98582
98640
  if (exportedModulesMapCache) {
98583
98641
  ts.Debug.assert(!!state.exportedModulesMap);
98584
- var cacheId = exportedModulesMapCache.id;
98585
- var cacheVersion = exportedModulesMapCache.version();
98586
- if (state.previousCache) {
98587
- if (state.previousCache.id === cacheId && state.previousCache.version === cacheVersion) {
98588
- return;
98589
- }
98590
- state.previousCache.id = cacheId;
98591
- state.previousCache.version = cacheVersion;
98592
- }
98593
- else {
98594
- state.previousCache = { id: cacheId, version: cacheVersion };
98595
- }
98596
98642
  (_a = exportedModulesMapCache.deletedKeys()) === null || _a === void 0 ? void 0 : _a.forEach(function (path) { return state.exportedModulesMap.deleteKey(path); });
98597
98643
  exportedModulesMapCache.forEach(function (exportedModules, path) { return state.exportedModulesMap.set(path, exportedModules); });
98598
98644
  }
@@ -98845,7 +98891,8 @@ var ts;
98845
98891
  function assertSourceFileOkWithoutNextAffectedCall(state, sourceFile) {
98846
98892
  ts.Debug.assert(!sourceFile || !state.affectedFiles || state.affectedFiles[state.affectedFilesIndex - 1] !== sourceFile || !state.semanticDiagnosticsPerFile.has(sourceFile.resolvedPath));
98847
98893
  }
98848
- function getNextAffectedFile(state, cancellationToken, computeHash) {
98894
+ function getNextAffectedFile(state, cancellationToken, computeHash, host) {
98895
+ var _a;
98849
98896
  while (true) {
98850
98897
  var affectedFiles = state.affectedFiles;
98851
98898
  if (affectedFiles) {
@@ -98855,7 +98902,7 @@ var ts;
98855
98902
  var affectedFile = affectedFiles[affectedFilesIndex];
98856
98903
  if (!seenAffectedFiles.has(affectedFile.resolvedPath)) {
98857
98904
  state.affectedFilesIndex = affectedFilesIndex;
98858
- handleDtsMayChangeOfAffectedFile(state, affectedFile, cancellationToken, computeHash);
98905
+ handleDtsMayChangeOfAffectedFile(state, affectedFile, cancellationToken, computeHash, host);
98859
98906
  return affectedFile;
98860
98907
  }
98861
98908
  affectedFilesIndex++;
@@ -98865,6 +98912,7 @@ var ts;
98865
98912
  ts.BuilderState.updateSignaturesFromCache(state, state.currentAffectedFilesSignatures);
98866
98913
  state.currentAffectedFilesSignatures.clear();
98867
98914
  ts.BuilderState.updateExportedFilesMapFromCache(state, state.currentAffectedFilesExportedModulesMap);
98915
+ (_a = state.currentAffectedFilesExportedModulesMap) === null || _a === void 0 ? void 0 : _a.clear();
98868
98916
  state.affectedFiles = undefined;
98869
98917
  }
98870
98918
  var nextKey = state.changedFilesSet.keys().next();
@@ -98889,6 +98937,11 @@ var ts;
98889
98937
  state.seenAffectedFiles = new ts.Set();
98890
98938
  }
98891
98939
  }
98940
+ function clearAffectedFilesPendingEmit(state) {
98941
+ state.affectedFilesPendingEmit = undefined;
98942
+ state.affectedFilesPendingEmitKind = undefined;
98943
+ state.affectedFilesPendingEmitIndex = undefined;
98944
+ }
98892
98945
  function getNextAffectedFilePendingEmit(state) {
98893
98946
  var affectedFilesPendingEmit = state.affectedFilesPendingEmit;
98894
98947
  if (affectedFilesPendingEmit) {
@@ -98904,13 +98957,11 @@ var ts;
98904
98957
  }
98905
98958
  }
98906
98959
  }
98907
- state.affectedFilesPendingEmit = undefined;
98908
- state.affectedFilesPendingEmitKind = undefined;
98909
- state.affectedFilesPendingEmitIndex = undefined;
98960
+ clearAffectedFilesPendingEmit(state);
98910
98961
  }
98911
98962
  return undefined;
98912
98963
  }
98913
- function handleDtsMayChangeOfAffectedFile(state, affectedFile, cancellationToken, computeHash) {
98964
+ function handleDtsMayChangeOfAffectedFile(state, affectedFile, cancellationToken, computeHash, host) {
98914
98965
  var _a;
98915
98966
  removeSemanticDiagnosticsOf(state, affectedFile.resolvedPath);
98916
98967
  if (state.allFilesExcludingDefaultLibraryFile === state.affectedFiles) {
@@ -98931,16 +98982,16 @@ var ts;
98931
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);
98932
98983
  }
98933
98984
  if (!state.compilerOptions.assumeChangesOnlyAffectDirectDependencies) {
98934
- 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); });
98935
98986
  }
98936
98987
  }
98937
- function handleDtsMayChangeOf(state, path, cancellationToken, computeHash) {
98988
+ function handleDtsMayChangeOf(state, path, cancellationToken, computeHash, host) {
98938
98989
  removeSemanticDiagnosticsOf(state, path);
98939
98990
  if (!state.changedFilesSet.has(path)) {
98940
98991
  var program = ts.Debug.checkDefined(state.program);
98941
98992
  var sourceFile = program.getSourceFileByPath(path);
98942
98993
  if (sourceFile) {
98943
- 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);
98944
98995
  if (ts.getEmitDeclarations(state.compilerOptions)) {
98945
98996
  addToAffectedFilesPendingEmit(state, path, 0);
98946
98997
  }
@@ -99085,8 +99136,8 @@ var ts;
99085
99136
  var signature = state.currentAffectedFilesSignatures && state.currentAffectedFilesSignatures.get(key);
99086
99137
  var actualSignature = signature !== null && signature !== void 0 ? signature : value.signature;
99087
99138
  return value.version === actualSignature ?
99088
- value.affectsGlobalScope ?
99089
- { 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 } :
99090
99141
  value.version :
99091
99142
  actualSignature !== undefined ?
99092
99143
  signature === undefined ?
@@ -99319,7 +99370,7 @@ var ts;
99319
99370
  return ts.emitSkippedWithNoDiagnostics;
99320
99371
  }
99321
99372
  function emitNextAffectedFile(writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers) {
99322
- var affected = getNextAffectedFile(state, cancellationToken, computeHash);
99373
+ var affected = getNextAffectedFile(state, cancellationToken, computeHash, host);
99323
99374
  var emitKind = 1;
99324
99375
  var isPendingEmitFile = false;
99325
99376
  if (!affected) {
@@ -99345,55 +99396,49 @@ var ts;
99345
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);
99346
99397
  }
99347
99398
  function emit(targetSourceFile, writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers) {
99348
- var restorePendingEmitOnHandlingNoEmitSuccess = false;
99349
- var savedAffectedFilesPendingEmit;
99350
- var savedAffectedFilesPendingEmitKind;
99351
- var savedAffectedFilesPendingEmitIndex;
99352
- if (kind !== BuilderProgramKind.EmitAndSemanticDiagnosticsBuilderProgram &&
99353
- !targetSourceFile &&
99354
- !ts.outFile(state.compilerOptions) &&
99355
- !state.compilerOptions.noEmit &&
99356
- state.compilerOptions.noEmitOnError) {
99357
- restorePendingEmitOnHandlingNoEmitSuccess = true;
99358
- savedAffectedFilesPendingEmit = state.affectedFilesPendingEmit && state.affectedFilesPendingEmit.slice();
99359
- savedAffectedFilesPendingEmitKind = state.affectedFilesPendingEmitKind && new ts.Map(state.affectedFilesPendingEmitKind);
99360
- savedAffectedFilesPendingEmitIndex = state.affectedFilesPendingEmitIndex;
99361
- }
99399
+ var _a;
99362
99400
  if (kind === BuilderProgramKind.EmitAndSemanticDiagnosticsBuilderProgram) {
99363
99401
  assertSourceFileOkWithoutNextAffectedCall(state, targetSourceFile);
99364
99402
  }
99365
99403
  var result = ts.handleNoEmitOptions(builderProgram, targetSourceFile, writeFile, cancellationToken);
99366
99404
  if (result)
99367
99405
  return result;
99368
- if (restorePendingEmitOnHandlingNoEmitSuccess) {
99369
- state.affectedFilesPendingEmit = savedAffectedFilesPendingEmit;
99370
- state.affectedFilesPendingEmitKind = savedAffectedFilesPendingEmitKind;
99371
- state.affectedFilesPendingEmitIndex = savedAffectedFilesPendingEmitIndex;
99372
- }
99373
- if (!targetSourceFile && kind === BuilderProgramKind.EmitAndSemanticDiagnosticsBuilderProgram) {
99374
- var sourceMaps = [];
99375
- var emitSkipped = false;
99376
- var diagnostics = void 0;
99377
- var emittedFiles = [];
99378
- var affectedEmitResult = void 0;
99379
- while (affectedEmitResult = emitNextAffectedFile(writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers)) {
99380
- emitSkipped = emitSkipped || affectedEmitResult.result.emitSkipped;
99381
- diagnostics = ts.addRange(diagnostics, affectedEmitResult.result.diagnostics);
99382
- emittedFiles = ts.addRange(emittedFiles, affectedEmitResult.result.emittedFiles);
99383
- 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
+ }
99384
99435
  }
99385
- return {
99386
- emitSkipped: emitSkipped,
99387
- diagnostics: diagnostics || ts.emptyArray,
99388
- emittedFiles: emittedFiles,
99389
- sourceMaps: sourceMaps
99390
- };
99391
99436
  }
99392
99437
  return ts.Debug.checkDefined(state.program).emit(targetSourceFile, writeFile || ts.maybeBind(host, host.writeFile), cancellationToken, emitOnlyDtsFiles, customTransformers);
99393
99438
  }
99394
99439
  function getSemanticDiagnosticsOfNextAffectedFile(cancellationToken, ignoreSourceFile) {
99395
99440
  while (true) {
99396
- var affected = getNextAffectedFile(state, cancellationToken, computeHash);
99441
+ var affected = getNextAffectedFile(state, cancellationToken, computeHash, host);
99397
99442
  if (!affected) {
99398
99443
  return undefined;
99399
99444
  }
@@ -102148,9 +102193,6 @@ var ts;
102148
102193
  function newer(date1, date2) {
102149
102194
  return date2 > date1 ? date2 : date1;
102150
102195
  }
102151
- function isDeclarationFile(fileName) {
102152
- return ts.fileExtensionIs(fileName, ".d.ts");
102153
- }
102154
102196
  function isCircularBuildOrder(buildOrder) {
102155
102197
  return !!buildOrder && !!buildOrder.buildOrder;
102156
102198
  }
@@ -102688,7 +102730,7 @@ var ts;
102688
102730
  outputFiles.forEach(function (_a) {
102689
102731
  var name = _a.name, text = _a.text, writeByteOrderMark = _a.writeByteOrderMark;
102690
102732
  var priorChangeTime;
102691
- if (!anyDtsChanged && isDeclarationFile(name)) {
102733
+ if (!anyDtsChanged && ts.isDeclarationFileName(name)) {
102692
102734
  if (host.fileExists(name) && state.readFileWithCache(name) === text) {
102693
102735
  priorChangeTime = host.getModifiedTime(name);
102694
102736
  }
@@ -103004,7 +103046,7 @@ var ts;
103004
103046
  newestOutputFileTime = outputTime;
103005
103047
  newestOutputFileName = output;
103006
103048
  }
103007
- if (isDeclarationFile(output)) {
103049
+ if (ts.isDeclarationFileName(output)) {
103008
103050
  var outputModifiedTime = ts.getModifiedTime(host, output);
103009
103051
  newestDeclarationFileContentChangedTime = newer(newestDeclarationFileContentChangedTime, outputModifiedTime);
103010
103052
  }
@@ -103144,7 +103186,7 @@ var ts;
103144
103186
  reportVerbose = false;
103145
103187
  reportStatus(state, verboseMessage, proj.options.configFilePath);
103146
103188
  }
103147
- if (isDeclarationFile(file)) {
103189
+ if (ts.isDeclarationFileName(file)) {
103148
103190
  priorNewestUpdateTime = newer(priorNewestUpdateTime, ts.getModifiedTime(host, file));
103149
103191
  }
103150
103192
  host.setModifiedTime(file, now);