typescript 4.6.0-dev.20220211 → 4.6.2

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.
@@ -21,7 +21,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
21
21
  ar[i] = from[i];
22
22
  }
23
23
  }
24
- return to.concat(ar || from);
24
+ return to.concat(ar || Array.prototype.slice.call(from));
25
25
  };
26
26
  var __assign = (this && this.__assign) || function () {
27
27
  __assign = Object.assign || function(t) {
@@ -294,7 +294,7 @@ var ts;
294
294
  // The following is baselined as a literal template type without intervention
295
295
  /** The version of the TypeScript compiler release */
296
296
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
297
- ts.version = ts.versionMajorMinor + ".0-dev.20220211";
297
+ ts.version = "4.6.2";
298
298
  /* @internal */
299
299
  var Comparison;
300
300
  (function (Comparison) {
@@ -341,7 +341,7 @@ var ts;
341
341
  var constructor = (_a = NativeCollections[nativeFactory]()) !== null && _a !== void 0 ? _a : ts.ShimCollections === null || ts.ShimCollections === void 0 ? void 0 : ts.ShimCollections[shimFactory](ts.getIterator);
342
342
  if (constructor)
343
343
  return constructor;
344
- throw new Error("TypeScript requires an environment that provides a compatible native " + name + " implementation.");
344
+ throw new Error("TypeScript requires an environment that provides a compatible native ".concat(name, " implementation."));
345
345
  }
346
346
  })(ts || (ts = {}));
347
347
  /* @internal */
@@ -1691,7 +1691,7 @@ var ts;
1691
1691
  function cast(value, test) {
1692
1692
  if (value !== undefined && test(value))
1693
1693
  return value;
1694
- return ts.Debug.fail("Invalid cast. The supplied value " + value + " did not pass the test '" + ts.Debug.getFunctionName(test) + "'.");
1694
+ return ts.Debug.fail("Invalid cast. The supplied value ".concat(value, " did not pass the test '").concat(ts.Debug.getFunctionName(test), "'."));
1695
1695
  }
1696
1696
  ts.cast = cast;
1697
1697
  /** Does nothing. */
@@ -1782,7 +1782,7 @@ var ts;
1782
1782
  function memoizeOne(callback) {
1783
1783
  var map = new ts.Map();
1784
1784
  return function (arg) {
1785
- var key = typeof arg + ":" + arg;
1785
+ var key = "".concat(typeof arg, ":").concat(arg);
1786
1786
  var value = map.get(key);
1787
1787
  if (value === undefined && !map.has(key)) {
1788
1788
  value = callback(arg);
@@ -2232,7 +2232,7 @@ var ts;
2232
2232
  ts.createGetCanonicalFileName = createGetCanonicalFileName;
2233
2233
  function patternText(_a) {
2234
2234
  var prefix = _a.prefix, suffix = _a.suffix;
2235
- return prefix + "*" + suffix;
2235
+ return "".concat(prefix, "*").concat(suffix);
2236
2236
  }
2237
2237
  ts.patternText = patternText;
2238
2238
  /**
@@ -2545,7 +2545,7 @@ var ts;
2545
2545
  }
2546
2546
  function fail(message, stackCrawlMark) {
2547
2547
  debugger;
2548
- var e = new Error(message ? "Debug Failure. " + message : "Debug Failure.");
2548
+ var e = new Error(message ? "Debug Failure. ".concat(message) : "Debug Failure.");
2549
2549
  if (Error.captureStackTrace) {
2550
2550
  Error.captureStackTrace(e, stackCrawlMark || fail);
2551
2551
  }
@@ -2553,12 +2553,12 @@ var ts;
2553
2553
  }
2554
2554
  Debug.fail = fail;
2555
2555
  function failBadSyntaxKind(node, message, stackCrawlMark) {
2556
- return fail((message || "Unexpected node.") + "\r\nNode " + formatSyntaxKind(node.kind) + " was unexpected.", stackCrawlMark || failBadSyntaxKind);
2556
+ return fail("".concat(message || "Unexpected node.", "\r\nNode ").concat(formatSyntaxKind(node.kind), " was unexpected."), stackCrawlMark || failBadSyntaxKind);
2557
2557
  }
2558
2558
  Debug.failBadSyntaxKind = failBadSyntaxKind;
2559
2559
  function assert(expression, message, verboseDebugInfo, stackCrawlMark) {
2560
2560
  if (!expression) {
2561
- message = message ? "False expression: " + message : "False expression.";
2561
+ message = message ? "False expression: ".concat(message) : "False expression.";
2562
2562
  if (verboseDebugInfo) {
2563
2563
  message += "\r\nVerbose Debug Information: " + (typeof verboseDebugInfo === "string" ? verboseDebugInfo : verboseDebugInfo());
2564
2564
  }
@@ -2568,26 +2568,26 @@ var ts;
2568
2568
  Debug.assert = assert;
2569
2569
  function assertEqual(a, b, msg, msg2, stackCrawlMark) {
2570
2570
  if (a !== b) {
2571
- var message = msg ? msg2 ? msg + " " + msg2 : msg : "";
2572
- fail("Expected " + a + " === " + b + ". " + message, stackCrawlMark || assertEqual);
2571
+ var message = msg ? msg2 ? "".concat(msg, " ").concat(msg2) : msg : "";
2572
+ fail("Expected ".concat(a, " === ").concat(b, ". ").concat(message), stackCrawlMark || assertEqual);
2573
2573
  }
2574
2574
  }
2575
2575
  Debug.assertEqual = assertEqual;
2576
2576
  function assertLessThan(a, b, msg, stackCrawlMark) {
2577
2577
  if (a >= b) {
2578
- fail("Expected " + a + " < " + b + ". " + (msg || ""), stackCrawlMark || assertLessThan);
2578
+ fail("Expected ".concat(a, " < ").concat(b, ". ").concat(msg || ""), stackCrawlMark || assertLessThan);
2579
2579
  }
2580
2580
  }
2581
2581
  Debug.assertLessThan = assertLessThan;
2582
2582
  function assertLessThanOrEqual(a, b, stackCrawlMark) {
2583
2583
  if (a > b) {
2584
- fail("Expected " + a + " <= " + b, stackCrawlMark || assertLessThanOrEqual);
2584
+ fail("Expected ".concat(a, " <= ").concat(b), stackCrawlMark || assertLessThanOrEqual);
2585
2585
  }
2586
2586
  }
2587
2587
  Debug.assertLessThanOrEqual = assertLessThanOrEqual;
2588
2588
  function assertGreaterThanOrEqual(a, b, stackCrawlMark) {
2589
2589
  if (a < b) {
2590
- fail("Expected " + a + " >= " + b, stackCrawlMark || assertGreaterThanOrEqual);
2590
+ fail("Expected ".concat(a, " >= ").concat(b), stackCrawlMark || assertGreaterThanOrEqual);
2591
2591
  }
2592
2592
  }
2593
2593
  Debug.assertGreaterThanOrEqual = assertGreaterThanOrEqual;
@@ -2618,42 +2618,42 @@ var ts;
2618
2618
  function assertNever(member, message, stackCrawlMark) {
2619
2619
  if (message === void 0) { message = "Illegal value:"; }
2620
2620
  var detail = typeof member === "object" && ts.hasProperty(member, "kind") && ts.hasProperty(member, "pos") && formatSyntaxKind ? "SyntaxKind: " + formatSyntaxKind(member.kind) : JSON.stringify(member);
2621
- return fail(message + " " + detail, stackCrawlMark || assertNever);
2621
+ return fail("".concat(message, " ").concat(detail), stackCrawlMark || assertNever);
2622
2622
  }
2623
2623
  Debug.assertNever = assertNever;
2624
2624
  function assertEachNode(nodes, test, message, stackCrawlMark) {
2625
2625
  if (shouldAssertFunction(1 /* Normal */, "assertEachNode")) {
2626
- assert(test === undefined || ts.every(nodes, test), message || "Unexpected node.", function () { return "Node array did not pass test '" + getFunctionName(test) + "'."; }, stackCrawlMark || assertEachNode);
2626
+ assert(test === undefined || ts.every(nodes, test), message || "Unexpected node.", function () { return "Node array did not pass test '".concat(getFunctionName(test), "'."); }, stackCrawlMark || assertEachNode);
2627
2627
  }
2628
2628
  }
2629
2629
  Debug.assertEachNode = assertEachNode;
2630
2630
  function assertNode(node, test, message, stackCrawlMark) {
2631
2631
  if (shouldAssertFunction(1 /* Normal */, "assertNode")) {
2632
- assert(node !== undefined && (test === undefined || test(node)), message || "Unexpected node.", function () { return "Node " + formatSyntaxKind(node === null || node === void 0 ? void 0 : node.kind) + " did not pass test '" + getFunctionName(test) + "'."; }, stackCrawlMark || assertNode);
2632
+ assert(node !== undefined && (test === undefined || test(node)), message || "Unexpected node.", function () { return "Node ".concat(formatSyntaxKind(node === null || node === void 0 ? void 0 : node.kind), " did not pass test '").concat(getFunctionName(test), "'."); }, stackCrawlMark || assertNode);
2633
2633
  }
2634
2634
  }
2635
2635
  Debug.assertNode = assertNode;
2636
2636
  function assertNotNode(node, test, message, stackCrawlMark) {
2637
2637
  if (shouldAssertFunction(1 /* Normal */, "assertNotNode")) {
2638
- assert(node === undefined || test === undefined || !test(node), message || "Unexpected node.", function () { return "Node " + formatSyntaxKind(node.kind) + " should not have passed test '" + getFunctionName(test) + "'."; }, stackCrawlMark || assertNotNode);
2638
+ assert(node === undefined || test === undefined || !test(node), message || "Unexpected node.", function () { return "Node ".concat(formatSyntaxKind(node.kind), " should not have passed test '").concat(getFunctionName(test), "'."); }, stackCrawlMark || assertNotNode);
2639
2639
  }
2640
2640
  }
2641
2641
  Debug.assertNotNode = assertNotNode;
2642
2642
  function assertOptionalNode(node, test, message, stackCrawlMark) {
2643
2643
  if (shouldAssertFunction(1 /* Normal */, "assertOptionalNode")) {
2644
- assert(test === undefined || node === undefined || test(node), message || "Unexpected node.", function () { return "Node " + formatSyntaxKind(node === null || node === void 0 ? void 0 : node.kind) + " did not pass test '" + getFunctionName(test) + "'."; }, stackCrawlMark || assertOptionalNode);
2644
+ assert(test === undefined || node === undefined || test(node), message || "Unexpected node.", function () { return "Node ".concat(formatSyntaxKind(node === null || node === void 0 ? void 0 : node.kind), " did not pass test '").concat(getFunctionName(test), "'."); }, stackCrawlMark || assertOptionalNode);
2645
2645
  }
2646
2646
  }
2647
2647
  Debug.assertOptionalNode = assertOptionalNode;
2648
2648
  function assertOptionalToken(node, kind, message, stackCrawlMark) {
2649
2649
  if (shouldAssertFunction(1 /* Normal */, "assertOptionalToken")) {
2650
- assert(kind === undefined || node === undefined || node.kind === kind, message || "Unexpected node.", function () { return "Node " + formatSyntaxKind(node === null || node === void 0 ? void 0 : node.kind) + " was not a '" + formatSyntaxKind(kind) + "' token."; }, stackCrawlMark || assertOptionalToken);
2650
+ assert(kind === undefined || node === undefined || node.kind === kind, message || "Unexpected node.", function () { return "Node ".concat(formatSyntaxKind(node === null || node === void 0 ? void 0 : node.kind), " was not a '").concat(formatSyntaxKind(kind), "' token."); }, stackCrawlMark || assertOptionalToken);
2651
2651
  }
2652
2652
  }
2653
2653
  Debug.assertOptionalToken = assertOptionalToken;
2654
2654
  function assertMissingNode(node, message, stackCrawlMark) {
2655
2655
  if (shouldAssertFunction(1 /* Normal */, "assertMissingNode")) {
2656
- assert(node === undefined, message || "Unexpected node.", function () { return "Node " + formatSyntaxKind(node.kind) + " was unexpected'."; }, stackCrawlMark || assertMissingNode);
2656
+ assert(node === undefined, message || "Unexpected node.", function () { return "Node ".concat(formatSyntaxKind(node.kind), " was unexpected'."); }, stackCrawlMark || assertMissingNode);
2657
2657
  }
2658
2658
  }
2659
2659
  Debug.assertMissingNode = assertMissingNode;
@@ -2674,7 +2674,7 @@ var ts;
2674
2674
  }
2675
2675
  Debug.getFunctionName = getFunctionName;
2676
2676
  function formatSymbol(symbol) {
2677
- return "{ name: " + ts.unescapeLeadingUnderscores(symbol.escapedName) + "; flags: " + formatSymbolFlags(symbol.flags) + "; declarations: " + ts.map(symbol.declarations, function (node) { return formatSyntaxKind(node.kind); }) + " }";
2677
+ return "{ name: ".concat(ts.unescapeLeadingUnderscores(symbol.escapedName), "; flags: ").concat(formatSymbolFlags(symbol.flags), "; declarations: ").concat(ts.map(symbol.declarations, function (node) { return formatSyntaxKind(node.kind); }), " }");
2678
2678
  }
2679
2679
  Debug.formatSymbol = formatSymbol;
2680
2680
  /**
@@ -2695,7 +2695,7 @@ var ts;
2695
2695
  break;
2696
2696
  }
2697
2697
  if (enumValue !== 0 && enumValue & value) {
2698
- result = "" + result + (result ? "|" : "") + enumName;
2698
+ result = "".concat(result).concat(result ? "|" : "").concat(enumName);
2699
2699
  remainingFlags &= ~enumValue;
2700
2700
  }
2701
2701
  }
@@ -2805,7 +2805,7 @@ var ts;
2805
2805
  this.flags & 1 /* Unreachable */ ? "FlowUnreachable" :
2806
2806
  "UnknownFlow";
2807
2807
  var remainingFlags = this.flags & ~(2048 /* Referenced */ - 1);
2808
- return "" + flowHeader + (remainingFlags ? " (" + formatFlowFlags(remainingFlags) + ")" : "");
2808
+ return "".concat(flowHeader).concat(remainingFlags ? " (".concat(formatFlowFlags(remainingFlags), ")") : "");
2809
2809
  }
2810
2810
  },
2811
2811
  __debugFlowFlags: { get: function () { return formatEnum(this.flags, ts.FlowFlags, /*isFlags*/ true); } },
@@ -2844,7 +2844,7 @@ var ts;
2844
2844
  // We don't care, this is debug code that's only enabled with a debugger attached -
2845
2845
  // we're just taking note of it for anyone checking regex performance in the future.
2846
2846
  defaultValue = String(defaultValue).replace(/(?:,[\s\w\d_]+:[^,]+)+\]$/, "]");
2847
- return "NodeArray " + defaultValue;
2847
+ return "NodeArray ".concat(defaultValue);
2848
2848
  }
2849
2849
  }
2850
2850
  });
@@ -2899,7 +2899,7 @@ var ts;
2899
2899
  var symbolHeader = this.flags & 33554432 /* Transient */ ? "TransientSymbol" :
2900
2900
  "Symbol";
2901
2901
  var remainingSymbolFlags = this.flags & ~33554432 /* Transient */;
2902
- return symbolHeader + " '" + ts.symbolName(this) + "'" + (remainingSymbolFlags ? " (" + formatSymbolFlags(remainingSymbolFlags) + ")" : "");
2902
+ return "".concat(symbolHeader, " '").concat(ts.symbolName(this), "'").concat(remainingSymbolFlags ? " (".concat(formatSymbolFlags(remainingSymbolFlags), ")") : "");
2903
2903
  }
2904
2904
  },
2905
2905
  __debugFlags: { get: function () { return formatSymbolFlags(this.flags); } }
@@ -2909,11 +2909,11 @@ var ts;
2909
2909
  __tsDebuggerDisplay: {
2910
2910
  value: function () {
2911
2911
  var typeHeader = this.flags & 98304 /* Nullable */ ? "NullableType" :
2912
- this.flags & 384 /* StringOrNumberLiteral */ ? "LiteralType " + JSON.stringify(this.value) :
2913
- this.flags & 2048 /* BigIntLiteral */ ? "LiteralType " + (this.value.negative ? "-" : "") + this.value.base10Value + "n" :
2912
+ this.flags & 384 /* StringOrNumberLiteral */ ? "LiteralType ".concat(JSON.stringify(this.value)) :
2913
+ this.flags & 2048 /* BigIntLiteral */ ? "LiteralType ".concat(this.value.negative ? "-" : "").concat(this.value.base10Value, "n") :
2914
2914
  this.flags & 8192 /* UniqueESSymbol */ ? "UniqueESSymbolType" :
2915
2915
  this.flags & 32 /* Enum */ ? "EnumType" :
2916
- this.flags & 67359327 /* Intrinsic */ ? "IntrinsicType " + this.intrinsicName :
2916
+ this.flags & 67359327 /* Intrinsic */ ? "IntrinsicType ".concat(this.intrinsicName) :
2917
2917
  this.flags & 1048576 /* Union */ ? "UnionType" :
2918
2918
  this.flags & 2097152 /* Intersection */ ? "IntersectionType" :
2919
2919
  this.flags & 4194304 /* Index */ ? "IndexType" :
@@ -2932,7 +2932,7 @@ var ts;
2932
2932
  "ObjectType" :
2933
2933
  "Type";
2934
2934
  var remainingObjectFlags = this.flags & 524288 /* Object */ ? this.objectFlags & ~1343 /* ObjectTypeKindMask */ : 0;
2935
- return "" + typeHeader + (this.symbol ? " '" + ts.symbolName(this.symbol) + "'" : "") + (remainingObjectFlags ? " (" + formatObjectFlags(remainingObjectFlags) + ")" : "");
2935
+ return "".concat(typeHeader).concat(this.symbol ? " '".concat(ts.symbolName(this.symbol), "'") : "").concat(remainingObjectFlags ? " (".concat(formatObjectFlags(remainingObjectFlags), ")") : "");
2936
2936
  }
2937
2937
  },
2938
2938
  __debugFlags: { get: function () { return formatTypeFlags(this.flags); } },
@@ -2968,11 +2968,11 @@ var ts;
2968
2968
  __tsDebuggerDisplay: {
2969
2969
  value: function () {
2970
2970
  var nodeHeader = ts.isGeneratedIdentifier(this) ? "GeneratedIdentifier" :
2971
- ts.isIdentifier(this) ? "Identifier '" + ts.idText(this) + "'" :
2972
- ts.isPrivateIdentifier(this) ? "PrivateIdentifier '" + ts.idText(this) + "'" :
2973
- ts.isStringLiteral(this) ? "StringLiteral " + JSON.stringify(this.text.length < 10 ? this.text : this.text.slice(10) + "...") :
2974
- ts.isNumericLiteral(this) ? "NumericLiteral " + this.text :
2975
- ts.isBigIntLiteral(this) ? "BigIntLiteral " + this.text + "n" :
2971
+ ts.isIdentifier(this) ? "Identifier '".concat(ts.idText(this), "'") :
2972
+ ts.isPrivateIdentifier(this) ? "PrivateIdentifier '".concat(ts.idText(this), "'") :
2973
+ ts.isStringLiteral(this) ? "StringLiteral ".concat(JSON.stringify(this.text.length < 10 ? this.text : this.text.slice(10) + "...")) :
2974
+ ts.isNumericLiteral(this) ? "NumericLiteral ".concat(this.text) :
2975
+ ts.isBigIntLiteral(this) ? "BigIntLiteral ".concat(this.text, "n") :
2976
2976
  ts.isTypeParameterDeclaration(this) ? "TypeParameterDeclaration" :
2977
2977
  ts.isParameter(this) ? "ParameterDeclaration" :
2978
2978
  ts.isConstructorDeclaration(this) ? "ConstructorDeclaration" :
@@ -3004,7 +3004,7 @@ var ts;
3004
3004
  ts.isNamedTupleMember(this) ? "NamedTupleMember" :
3005
3005
  ts.isImportTypeNode(this) ? "ImportTypeNode" :
3006
3006
  formatSyntaxKind(this.kind);
3007
- return "" + nodeHeader + (this.flags ? " (" + formatNodeFlags(this.flags) + ")" : "");
3007
+ return "".concat(nodeHeader).concat(this.flags ? " (".concat(formatNodeFlags(this.flags), ")") : "");
3008
3008
  }
3009
3009
  },
3010
3010
  __debugKind: { get: function () { return formatSyntaxKind(this.kind); } },
@@ -3051,10 +3051,10 @@ var ts;
3051
3051
  Debug.enableDebugInfo = enableDebugInfo;
3052
3052
  function formatDeprecationMessage(name, error, errorAfter, since, message) {
3053
3053
  var deprecationMessage = error ? "DeprecationError: " : "DeprecationWarning: ";
3054
- deprecationMessage += "'" + name + "' ";
3055
- deprecationMessage += since ? "has been deprecated since v" + since : "is deprecated";
3056
- deprecationMessage += error ? " and can no longer be used." : errorAfter ? " and will no longer be usable after v" + errorAfter + "." : ".";
3057
- deprecationMessage += message ? " " + ts.formatStringFromArgs(message, [name], 0) : "";
3054
+ deprecationMessage += "'".concat(name, "' ");
3055
+ deprecationMessage += since ? "has been deprecated since v".concat(since) : "is deprecated";
3056
+ deprecationMessage += error ? " and can no longer be used." : errorAfter ? " and will no longer be usable after v".concat(errorAfter, ".") : ".";
3057
+ deprecationMessage += message ? " ".concat(ts.formatStringFromArgs(message, [name], 0)) : "";
3058
3058
  return deprecationMessage;
3059
3059
  }
3060
3060
  function createErrorDeprecation(name, errorAfter, since, message) {
@@ -3185,11 +3185,11 @@ var ts;
3185
3185
  }
3186
3186
  };
3187
3187
  Version.prototype.toString = function () {
3188
- var result = this.major + "." + this.minor + "." + this.patch;
3188
+ var result = "".concat(this.major, ".").concat(this.minor, ".").concat(this.patch);
3189
3189
  if (ts.some(this.prerelease))
3190
- result += "-" + this.prerelease.join(".");
3190
+ result += "-".concat(this.prerelease.join("."));
3191
3191
  if (ts.some(this.build))
3192
- result += "+" + this.build.join(".");
3192
+ result += "+".concat(this.build.join("."));
3193
3193
  return result;
3194
3194
  };
3195
3195
  Version.zero = new Version(0, 0, 0);
@@ -3456,7 +3456,7 @@ var ts;
3456
3456
  return ts.map(comparators, formatComparator).join(" ");
3457
3457
  }
3458
3458
  function formatComparator(comparator) {
3459
- return "" + comparator.operator + comparator.operand;
3459
+ return "".concat(comparator.operator).concat(comparator.operand);
3460
3460
  }
3461
3461
  })(ts || (ts = {}));
3462
3462
  /*@internal*/
@@ -3754,7 +3754,7 @@ var ts;
3754
3754
  fs = require("fs");
3755
3755
  }
3756
3756
  catch (e) {
3757
- throw new Error("tracing requires having fs\n(original error: " + (e.message || e) + ")");
3757
+ throw new Error("tracing requires having fs\n(original error: ".concat(e.message || e, ")"));
3758
3758
  }
3759
3759
  }
3760
3760
  mode = tracingMode;
@@ -3766,11 +3766,11 @@ var ts;
3766
3766
  if (!fs.existsSync(traceDir)) {
3767
3767
  fs.mkdirSync(traceDir, { recursive: true });
3768
3768
  }
3769
- var countPart = mode === "build" ? "." + process.pid + "-" + ++traceCount
3770
- : mode === "server" ? "." + process.pid
3769
+ var countPart = mode === "build" ? ".".concat(process.pid, "-").concat(++traceCount)
3770
+ : mode === "server" ? ".".concat(process.pid)
3771
3771
  : "";
3772
- var tracePath = ts.combinePaths(traceDir, "trace" + countPart + ".json");
3773
- var typesPath = ts.combinePaths(traceDir, "types" + countPart + ".json");
3772
+ var tracePath = ts.combinePaths(traceDir, "trace".concat(countPart, ".json"));
3773
+ var typesPath = ts.combinePaths(traceDir, "types".concat(countPart, ".json"));
3774
3774
  legend.push({
3775
3775
  configFilePath: configFilePath,
3776
3776
  tracePath: tracePath,
@@ -3860,7 +3860,7 @@ var ts;
3860
3860
  }
3861
3861
  // test if [time,endTime) straddles a sampling point
3862
3862
  else if (sampleInterval - (time % sampleInterval) <= endTime - time) {
3863
- writeEvent("X", phase, name, args, "\"dur\":" + (endTime - time), time);
3863
+ writeEvent("X", phase, name, args, "\"dur\":".concat(endTime - time), time);
3864
3864
  }
3865
3865
  }
3866
3866
  function writeEvent(eventType, phase, name, args, extras, time) {
@@ -3869,11 +3869,11 @@ var ts;
3869
3869
  if (mode === "server" && phase === "checkTypes" /* CheckTypes */)
3870
3870
  return;
3871
3871
  ts.performance.mark("beginTracing");
3872
- fs.writeSync(traceFd, ",\n{\"pid\":1,\"tid\":1,\"ph\":\"" + eventType + "\",\"cat\":\"" + phase + "\",\"ts\":" + time + ",\"name\":\"" + name + "\"");
3872
+ fs.writeSync(traceFd, ",\n{\"pid\":1,\"tid\":1,\"ph\":\"".concat(eventType, "\",\"cat\":\"").concat(phase, "\",\"ts\":").concat(time, ",\"name\":\"").concat(name, "\""));
3873
3873
  if (extras)
3874
- fs.writeSync(traceFd, "," + extras);
3874
+ fs.writeSync(traceFd, ",".concat(extras));
3875
3875
  if (args)
3876
- fs.writeSync(traceFd, ",\"args\":" + JSON.stringify(args));
3876
+ fs.writeSync(traceFd, ",\"args\":".concat(JSON.stringify(args)));
3877
3877
  fs.writeSync(traceFd, "}");
3878
3878
  ts.performance.mark("endTracing");
3879
3879
  ts.performance.measure("Tracing", "beginTracing", "endTracing");
@@ -5034,6 +5034,8 @@ var ts;
5034
5034
  TypeFlags[TypeFlags["ESSymbolLike"] = 12288] = "ESSymbolLike";
5035
5035
  TypeFlags[TypeFlags["VoidLike"] = 49152] = "VoidLike";
5036
5036
  /* @internal */
5037
+ TypeFlags[TypeFlags["DefinitelyNonNullable"] = 470302716] = "DefinitelyNonNullable";
5038
+ /* @internal */
5037
5039
  TypeFlags[TypeFlags["DisjointDomains"] = 469892092] = "DisjointDomains";
5038
5040
  TypeFlags[TypeFlags["UnionOrIntersection"] = 3145728] = "UnionOrIntersection";
5039
5041
  TypeFlags[TypeFlags["StructuredType"] = 3670016] = "StructuredType";
@@ -5986,7 +5988,7 @@ var ts;
5986
5988
  pollingChunkSize = getCustomPollingBasedLevels("TSC_WATCH_POLLINGCHUNKSIZE", defaultChunkLevels) || pollingChunkSize;
5987
5989
  ts.unchangedPollThresholds = getCustomPollingBasedLevels("TSC_WATCH_UNCHANGEDPOLLTHRESHOLDS", defaultChunkLevels) || ts.unchangedPollThresholds;
5988
5990
  function getLevel(envVar, level) {
5989
- return system.getEnvironmentVariable(envVar + "_" + level.toUpperCase());
5991
+ return system.getEnvironmentVariable("".concat(envVar, "_").concat(level.toUpperCase()));
5990
5992
  }
5991
5993
  function getCustomLevels(baseVariable) {
5992
5994
  var customLevels;
@@ -6455,7 +6457,7 @@ var ts;
6455
6457
  }
6456
6458
  function onTimerToUpdateChildWatches() {
6457
6459
  timerToUpdateChildWatches = undefined;
6458
- sysLog("sysLog:: onTimerToUpdateChildWatches:: " + cacheToUpdateChildWatches.size);
6460
+ sysLog("sysLog:: onTimerToUpdateChildWatches:: ".concat(cacheToUpdateChildWatches.size));
6459
6461
  var start = ts.timestamp();
6460
6462
  var invokeMap = new ts.Map();
6461
6463
  while (!timerToUpdateChildWatches && cacheToUpdateChildWatches.size) {
@@ -6468,7 +6470,7 @@ var ts;
6468
6470
  var hasChanges = updateChildWatches(dirName, dirPath, options);
6469
6471
  invokeCallbacks(dirPath, invokeMap, hasChanges ? undefined : fileNames);
6470
6472
  }
6471
- sysLog("sysLog:: invokingWatchers:: Elapsed:: " + (ts.timestamp() - start) + "ms:: " + cacheToUpdateChildWatches.size);
6473
+ sysLog("sysLog:: invokingWatchers:: Elapsed:: ".concat(ts.timestamp() - start, "ms:: ").concat(cacheToUpdateChildWatches.size));
6472
6474
  callbackCache.forEach(function (callbacks, rootDirName) {
6473
6475
  var existing = invokeMap.get(rootDirName);
6474
6476
  if (existing) {
@@ -6484,7 +6486,7 @@ var ts;
6484
6486
  }
6485
6487
  });
6486
6488
  var elapsed = ts.timestamp() - start;
6487
- sysLog("sysLog:: Elapsed:: " + elapsed + "ms:: onTimerToUpdateChildWatches:: " + cacheToUpdateChildWatches.size + " " + timerToUpdateChildWatches);
6489
+ sysLog("sysLog:: Elapsed:: ".concat(elapsed, "ms:: onTimerToUpdateChildWatches:: ").concat(cacheToUpdateChildWatches.size, " ").concat(timerToUpdateChildWatches));
6488
6490
  }
6489
6491
  function removeChildWatches(parentWatcher) {
6490
6492
  if (!parentWatcher)
@@ -6944,7 +6946,7 @@ var ts;
6944
6946
  var remappedPaths = new ts.Map();
6945
6947
  var normalizedDir = ts.normalizeSlashes(__dirname);
6946
6948
  // Windows rooted dir names need an extra `/` prepended to be valid file:/// urls
6947
- var fileUrlRoot = "file://" + (ts.getRootLength(normalizedDir) === 1 ? "" : "/") + normalizedDir;
6949
+ var fileUrlRoot = "file://".concat(ts.getRootLength(normalizedDir) === 1 ? "" : "/").concat(normalizedDir);
6948
6950
  for (var _i = 0, _a = profile.nodes; _i < _a.length; _i++) {
6949
6951
  var node = _a[_i];
6950
6952
  if (node.callFrame.url) {
@@ -6953,7 +6955,7 @@ var ts;
6953
6955
  node.callFrame.url = ts.getRelativePathToDirectoryOrUrl(fileUrlRoot, url, fileUrlRoot, ts.createGetCanonicalFileName(useCaseSensitiveFileNames), /*isAbsolutePathAnUrl*/ true);
6954
6956
  }
6955
6957
  else if (!nativePattern.test(url)) {
6956
- node.callFrame.url = (remappedPaths.has(url) ? remappedPaths : remappedPaths.set(url, "external" + externalFileCounter + ".js")).get(url);
6958
+ node.callFrame.url = (remappedPaths.has(url) ? remappedPaths : remappedPaths.set(url, "external".concat(externalFileCounter, ".js"))).get(url);
6957
6959
  externalFileCounter++;
6958
6960
  }
6959
6961
  }
@@ -6969,7 +6971,7 @@ var ts;
6969
6971
  if (!err) {
6970
6972
  try {
6971
6973
  if ((_b = statSync(profilePath)) === null || _b === void 0 ? void 0 : _b.isDirectory()) {
6972
- profilePath = _path.join(profilePath, (new Date()).toISOString().replace(/:/g, "-") + "+P" + process.pid + ".cpuprofile");
6974
+ profilePath = _path.join(profilePath, "".concat((new Date()).toISOString().replace(/:/g, "-"), "+P").concat(process.pid, ".cpuprofile"));
6973
6975
  }
6974
6976
  }
6975
6977
  catch (_c) {
@@ -7071,7 +7073,7 @@ var ts;
7071
7073
  * @param createWatcher
7072
7074
  */
7073
7075
  function invokeCallbackAndUpdateWatcher(createWatcher) {
7074
- sysLog("sysLog:: " + fileOrDirectory + ":: Changing watcher to " + (createWatcher === watchPresentFileSystemEntry ? "Present" : "Missing") + "FileSystemEntryWatcher");
7076
+ sysLog("sysLog:: ".concat(fileOrDirectory, ":: Changing watcher to ").concat(createWatcher === watchPresentFileSystemEntry ? "Present" : "Missing", "FileSystemEntryWatcher"));
7075
7077
  // Call the callback for current directory
7076
7078
  callback("rename", "");
7077
7079
  // If watcher is not closed, update it
@@ -7096,7 +7098,7 @@ var ts;
7096
7098
  }
7097
7099
  }
7098
7100
  if (hitSystemWatcherLimit) {
7099
- sysLog("sysLog:: " + fileOrDirectory + ":: Defaulting to fsWatchFile");
7101
+ sysLog("sysLog:: ".concat(fileOrDirectory, ":: Defaulting to fsWatchFile"));
7100
7102
  return watchPresentFileSystemEntryWithFsWatchFile();
7101
7103
  }
7102
7104
  try {
@@ -7112,7 +7114,7 @@ var ts;
7112
7114
  // Eg. on linux the number of watches are limited and one could easily exhaust watches and the exception ENOSPC is thrown when creating watcher at that point
7113
7115
  // so instead of throwing error, use fs.watchFile
7114
7116
  hitSystemWatcherLimit || (hitSystemWatcherLimit = e.code === "ENOSPC");
7115
- sysLog("sysLog:: " + fileOrDirectory + ":: Changing to fsWatchFile");
7117
+ sysLog("sysLog:: ".concat(fileOrDirectory, ":: Changing to fsWatchFile"));
7116
7118
  return watchPresentFileSystemEntryWithFsWatchFile();
7117
7119
  }
7118
7120
  }
@@ -8275,6 +8277,8 @@ var ts;
8275
8277
  Property_0_cannot_have_an_initializer_because_it_is_marked_abstract: diag(1267, ts.DiagnosticCategory.Error, "Property_0_cannot_have_an_initializer_because_it_is_marked_abstract_1267", "Property '{0}' cannot have an initializer because it is marked abstract."),
8276
8278
  An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type: diag(1268, ts.DiagnosticCategory.Error, "An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type_1268", "An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type."),
8277
8279
  Cannot_use_export_import_on_a_type_or_type_only_namespace_when_the_isolatedModules_flag_is_provided: diag(1269, ts.DiagnosticCategory.Error, "Cannot_use_export_import_on_a_type_or_type_only_namespace_when_the_isolatedModules_flag_is_provided_1269", "Cannot use 'export import' on a type or type-only namespace when the '--isolatedModules' flag is provided."),
8280
+ Decorator_function_return_type_0_is_not_assignable_to_type_1: diag(1270, ts.DiagnosticCategory.Error, "Decorator_function_return_type_0_is_not_assignable_to_type_1_1270", "Decorator function return type '{0}' is not assignable to type '{1}'."),
8281
+ Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any: diag(1271, ts.DiagnosticCategory.Error, "Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271", "Decorator function return type is '{0}' but is expected to be 'void' or 'any'."),
8278
8282
  with_statements_are_not_allowed_in_an_async_function_block: diag(1300, ts.DiagnosticCategory.Error, "with_statements_are_not_allowed_in_an_async_function_block_1300", "'with' statements are not allowed in an async function block."),
8279
8283
  await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules: diag(1308, ts.DiagnosticCategory.Error, "await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1308", "'await' expressions are only allowed within async functions and at the top levels of modules."),
8280
8284
  Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern: diag(1312, ts.DiagnosticCategory.Error, "Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_1312", "Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern."),
@@ -10127,7 +10131,7 @@ var ts;
10127
10131
  line = line < 0 ? 0 : line >= lineStarts.length ? lineStarts.length - 1 : line;
10128
10132
  }
10129
10133
  else {
10130
- ts.Debug.fail("Bad line number. Line: " + line + ", lineStarts.length: " + lineStarts.length + " , line map is correct? " + (debugText !== undefined ? ts.arraysEqual(lineStarts, computeLineStarts(debugText)) : "unknown"));
10134
+ ts.Debug.fail("Bad line number. Line: ".concat(line, ", lineStarts.length: ").concat(lineStarts.length, " , line map is correct? ").concat(debugText !== undefined ? ts.arraysEqual(lineStarts, computeLineStarts(debugText)) : "unknown"));
10131
10135
  }
10132
10136
  }
10133
10137
  var res = lineStarts[line] + character;
@@ -13017,7 +13021,7 @@ var ts;
13017
13021
  : "linkplain";
13018
13022
  var name = link.name ? ts.entityNameToString(link.name) : "";
13019
13023
  var space = link.name && link.text.startsWith("://") ? "" : " ";
13020
- return "{@" + kind + " " + name + space + link.text + "}";
13024
+ return "{@".concat(kind, " ").concat(name).concat(space).concat(link.text, "}");
13021
13025
  }
13022
13026
  /**
13023
13027
  * Gets the effective type parameters. If the node was parsed in a
@@ -14274,11 +14278,11 @@ var ts;
14274
14278
  }
14275
14279
  function packageIdToPackageName(_a) {
14276
14280
  var name = _a.name, subModuleName = _a.subModuleName;
14277
- return subModuleName ? name + "/" + subModuleName : name;
14281
+ return subModuleName ? "".concat(name, "/").concat(subModuleName) : name;
14278
14282
  }
14279
14283
  ts.packageIdToPackageName = packageIdToPackageName;
14280
14284
  function packageIdToString(packageId) {
14281
- return packageIdToPackageName(packageId) + "@" + packageId.version;
14285
+ return "".concat(packageIdToPackageName(packageId), "@").concat(packageId.version);
14282
14286
  }
14283
14287
  ts.packageIdToString = packageIdToString;
14284
14288
  function typeDirectiveIsEqualTo(oldResolution, newResolution) {
@@ -14361,7 +14365,7 @@ var ts;
14361
14365
  function nodePosToString(node) {
14362
14366
  var file = getSourceFileOfNode(node);
14363
14367
  var loc = ts.getLineAndCharacterOfPosition(file, node.pos);
14364
- return file.fileName + "(" + (loc.line + 1) + "," + (loc.character + 1) + ")";
14368
+ return "".concat(file.fileName, "(").concat(loc.line + 1, ",").concat(loc.character + 1, ")");
14365
14369
  }
14366
14370
  ts.nodePosToString = nodePosToString;
14367
14371
  function getEndLinePosition(line, sourceFile) {
@@ -14500,7 +14504,7 @@ var ts;
14500
14504
  ts.isPinnedComment = isPinnedComment;
14501
14505
  function createCommentDirectivesMap(sourceFile, commentDirectives) {
14502
14506
  var directivesByLine = new ts.Map(commentDirectives.map(function (commentDirective) { return ([
14503
- "" + ts.getLineAndCharacterOfPosition(sourceFile, commentDirective.range.end).line,
14507
+ "".concat(ts.getLineAndCharacterOfPosition(sourceFile, commentDirective.range.end).line),
14504
14508
  commentDirective,
14505
14509
  ]); }));
14506
14510
  var usedLines = new ts.Map();
@@ -14517,10 +14521,10 @@ var ts;
14517
14521
  });
14518
14522
  }
14519
14523
  function markUsed(line) {
14520
- if (!directivesByLine.has("" + line)) {
14524
+ if (!directivesByLine.has("".concat(line))) {
14521
14525
  return false;
14522
14526
  }
14523
- usedLines.set("" + line, true);
14527
+ usedLines.set("".concat(line), true);
14524
14528
  return true;
14525
14529
  }
14526
14530
  }
@@ -14750,7 +14754,7 @@ var ts;
14750
14754
  }
14751
14755
  return node.text;
14752
14756
  }
14753
- return ts.Debug.fail("Literal kind '" + node.kind + "' not accounted for.");
14757
+ return ts.Debug.fail("Literal kind '".concat(node.kind, "' not accounted for."));
14754
14758
  }
14755
14759
  ts.getLiteralText = getLiteralText;
14756
14760
  function canUseOriginalText(node, flags) {
@@ -17331,11 +17335,11 @@ var ts;
17331
17335
  }
17332
17336
  ts.getEscapedTextOfIdentifierOrLiteral = getEscapedTextOfIdentifierOrLiteral;
17333
17337
  function getPropertyNameForUniqueESSymbol(symbol) {
17334
- return "__@" + ts.getSymbolId(symbol) + "@" + symbol.escapedName;
17338
+ return "__@".concat(ts.getSymbolId(symbol), "@").concat(symbol.escapedName);
17335
17339
  }
17336
17340
  ts.getPropertyNameForUniqueESSymbol = getPropertyNameForUniqueESSymbol;
17337
17341
  function getSymbolNameForPrivateIdentifier(containingClassSymbol, description) {
17338
- return "__#" + ts.getSymbolId(containingClassSymbol) + "@" + description;
17342
+ return "__#".concat(ts.getSymbolId(containingClassSymbol), "@").concat(description);
17339
17343
  }
17340
17344
  ts.getSymbolNameForPrivateIdentifier = getSymbolNameForPrivateIdentifier;
17341
17345
  function isKnownSymbol(symbol) {
@@ -20037,7 +20041,7 @@ var ts;
20037
20041
  }
20038
20042
  ts.getJSXImplicitImportBase = getJSXImplicitImportBase;
20039
20043
  function getJSXRuntimeImport(base, options) {
20040
- return base ? base + "/" + (options.jsx === 5 /* ReactJSXDev */ ? "jsx-dev-runtime" : "jsx-runtime") : undefined;
20044
+ return base ? "".concat(base, "/").concat(options.jsx === 5 /* ReactJSXDev */ ? "jsx-dev-runtime" : "jsx-runtime") : undefined;
20041
20045
  }
20042
20046
  ts.getJSXRuntimeImport = getJSXRuntimeImport;
20043
20047
  function hasZeroOrOneAsteriskCharacter(str) {
@@ -20144,7 +20148,7 @@ var ts;
20144
20148
  }
20145
20149
  var wildcardCharCodes = [42 /* asterisk */, 63 /* question */];
20146
20150
  ts.commonPackageFolders = ["node_modules", "bower_components", "jspm_packages"];
20147
- var implicitExcludePathRegexPattern = "(?!(" + ts.commonPackageFolders.join("|") + ")(/|$))";
20151
+ var implicitExcludePathRegexPattern = "(?!(".concat(ts.commonPackageFolders.join("|"), ")(/|$))");
20148
20152
  var filesMatcher = {
20149
20153
  /**
20150
20154
  * Matches any single directory segment unless it is the last segment and a .min.js file
@@ -20157,7 +20161,7 @@ var ts;
20157
20161
  * Regex for the ** wildcard. Matches any number of subdirectories. When used for including
20158
20162
  * files or directories, does not match subdirectories that start with a . character
20159
20163
  */
20160
- doubleAsteriskRegexFragment: "(/" + implicitExcludePathRegexPattern + "[^/.][^/]*)*?",
20164
+ doubleAsteriskRegexFragment: "(/".concat(implicitExcludePathRegexPattern, "[^/.][^/]*)*?"),
20161
20165
  replaceWildcardCharacter: function (match) { return replaceWildcardCharacter(match, filesMatcher.singleAsteriskRegexFragment); }
20162
20166
  };
20163
20167
  var directoriesMatcher = {
@@ -20166,7 +20170,7 @@ var ts;
20166
20170
  * Regex for the ** wildcard. Matches any number of subdirectories. When used for including
20167
20171
  * files or directories, does not match subdirectories that start with a . character
20168
20172
  */
20169
- doubleAsteriskRegexFragment: "(/" + implicitExcludePathRegexPattern + "[^/.][^/]*)*?",
20173
+ doubleAsteriskRegexFragment: "(/".concat(implicitExcludePathRegexPattern, "[^/.][^/]*)*?"),
20170
20174
  replaceWildcardCharacter: function (match) { return replaceWildcardCharacter(match, directoriesMatcher.singleAsteriskRegexFragment); }
20171
20175
  };
20172
20176
  var excludeMatcher = {
@@ -20184,10 +20188,10 @@ var ts;
20184
20188
  if (!patterns || !patterns.length) {
20185
20189
  return undefined;
20186
20190
  }
20187
- var pattern = patterns.map(function (pattern) { return "(" + pattern + ")"; }).join("|");
20191
+ var pattern = patterns.map(function (pattern) { return "(".concat(pattern, ")"); }).join("|");
20188
20192
  // If excluding, match "foo/bar/baz...", but if including, only allow "foo".
20189
20193
  var terminator = usage === "exclude" ? "($|/)" : "$";
20190
- return "^(" + pattern + ")" + terminator;
20194
+ return "^(".concat(pattern, ")").concat(terminator);
20191
20195
  }
20192
20196
  ts.getRegularExpressionForWildcard = getRegularExpressionForWildcard;
20193
20197
  function getRegularExpressionsForWildcards(specs, basePath, usage) {
@@ -20209,7 +20213,7 @@ var ts;
20209
20213
  ts.isImplicitGlob = isImplicitGlob;
20210
20214
  function getPatternFromSpec(spec, basePath, usage) {
20211
20215
  var pattern = spec && getSubPatternFromSpec(spec, basePath, usage, wildcardMatchers[usage]);
20212
- return pattern && "^(" + pattern + ")" + (usage === "exclude" ? "($|/)" : "$");
20216
+ return pattern && "^(".concat(pattern, ")").concat(usage === "exclude" ? "($|/)" : "$");
20213
20217
  }
20214
20218
  ts.getPatternFromSpec = getPatternFromSpec;
20215
20219
  function getSubPatternFromSpec(spec, basePath, usage, _a) {
@@ -20287,7 +20291,7 @@ var ts;
20287
20291
  currentDirectory = ts.normalizePath(currentDirectory);
20288
20292
  var absolutePath = ts.combinePaths(currentDirectory, path);
20289
20293
  return {
20290
- includeFilePatterns: ts.map(getRegularExpressionsForWildcards(includes, absolutePath, "files"), function (pattern) { return "^" + pattern + "$"; }),
20294
+ includeFilePatterns: ts.map(getRegularExpressionsForWildcards(includes, absolutePath, "files"), function (pattern) { return "^".concat(pattern, "$"); }),
20291
20295
  includeFilePattern: getRegularExpressionForWildcard(includes, absolutePath, "files"),
20292
20296
  includeDirectoryPattern: getRegularExpressionForWildcard(includes, absolutePath, "directories"),
20293
20297
  excludePattern: getRegularExpressionForWildcard(excludes, absolutePath, "exclude"),
@@ -20568,7 +20572,7 @@ var ts;
20568
20572
  */
20569
20573
  function extensionFromPath(path) {
20570
20574
  var ext = tryGetExtensionFromPath(path);
20571
- return ext !== undefined ? ext : ts.Debug.fail("File " + path + " has unknown extension.");
20575
+ return ext !== undefined ? ext : ts.Debug.fail("File ".concat(path, " has unknown extension."));
20572
20576
  }
20573
20577
  ts.extensionFromPath = extensionFromPath;
20574
20578
  function isAnySupportedFileExtension(path) {
@@ -26651,7 +26655,7 @@ var ts;
26651
26655
  case 326 /* JSDocAugmentsTag */: return "augments";
26652
26656
  case 327 /* JSDocImplementsTag */: return "implements";
26653
26657
  default:
26654
- return ts.Debug.fail("Unsupported kind: " + ts.Debug.formatSyntaxKind(kind));
26658
+ return ts.Debug.fail("Unsupported kind: ".concat(ts.Debug.formatSyntaxKind(kind)));
26655
26659
  }
26656
26660
  }
26657
26661
  var rawTextScanner;
@@ -26979,7 +26983,7 @@ var ts;
26979
26983
  };
26980
26984
  var definedTextGetter_1 = function (path) {
26981
26985
  var result = textGetter_1(path);
26982
- return result !== undefined ? result : "/* Input file " + path + " was missing */\r\n";
26986
+ return result !== undefined ? result : "/* Input file ".concat(path, " was missing */\r\n");
26983
26987
  };
26984
26988
  var buildInfo_1;
26985
26989
  var getAndCacheBuildInfo_1 = function (getText) {
@@ -31517,7 +31521,7 @@ var ts;
31517
31521
  for (var _i = 0, viableKeywordSuggestions_1 = viableKeywordSuggestions; _i < viableKeywordSuggestions_1.length; _i++) {
31518
31522
  var keyword = viableKeywordSuggestions_1[_i];
31519
31523
  if (expressionText.length > keyword.length + 2 && ts.startsWith(expressionText, keyword)) {
31520
- return keyword + " " + expressionText.slice(keyword.length);
31524
+ return "".concat(keyword, " ").concat(expressionText.slice(keyword.length));
31521
31525
  }
31522
31526
  }
31523
31527
  return undefined;
@@ -38287,7 +38291,7 @@ var ts;
38287
38291
  if (namedArgRegExCache.has(name)) {
38288
38292
  return namedArgRegExCache.get(name);
38289
38293
  }
38290
- var result = new RegExp("(\\s" + name + "\\s*=\\s*)(?:(?:'([^']*)')|(?:\"([^\"]*)\"))", "im");
38294
+ var result = new RegExp("(\\s".concat(name, "\\s*=\\s*)(?:(?:'([^']*)')|(?:\"([^\"]*)\"))"), "im");
38291
38295
  namedArgRegExCache.set(name, result);
38292
38296
  return result;
38293
38297
  }
@@ -39765,8 +39769,8 @@ var ts;
39765
39769
  }
39766
39770
  ts.createCompilerDiagnosticForInvalidCustomType = createCompilerDiagnosticForInvalidCustomType;
39767
39771
  function createDiagnosticForInvalidCustomType(opt, createDiagnostic) {
39768
- var namesOfType = ts.arrayFrom(opt.type.keys()).map(function (key) { return "'" + key + "'"; }).join(", ");
39769
- return createDiagnostic(ts.Diagnostics.Argument_for_0_option_must_be_Colon_1, "--" + opt.name, namesOfType);
39772
+ var namesOfType = ts.arrayFrom(opt.type.keys()).map(function (key) { return "'".concat(key, "'"); }).join(", ");
39773
+ return createDiagnostic(ts.Diagnostics.Argument_for_0_option_must_be_Colon_1, "--".concat(opt.name), namesOfType);
39770
39774
  }
39771
39775
  /* @internal */
39772
39776
  function parseCustomTypeOption(opt, value, errors) {
@@ -40560,10 +40564,10 @@ var ts;
40560
40564
  var newValue = compilerOptionsMap.get(cmd.name);
40561
40565
  var defaultValue = getDefaultValueForOption(cmd);
40562
40566
  if (newValue !== defaultValue) {
40563
- result.push("" + tab + cmd.name + ": " + newValue);
40567
+ result.push("".concat(tab).concat(cmd.name, ": ").concat(newValue));
40564
40568
  }
40565
40569
  else if (ts.hasProperty(ts.defaultInitCompilerOptions, cmd.name)) {
40566
- result.push("" + tab + cmd.name + ": " + defaultValue);
40570
+ result.push("".concat(tab).concat(cmd.name, ": ").concat(defaultValue));
40567
40571
  }
40568
40572
  });
40569
40573
  return result.join(newLine) + newLine;
@@ -40614,19 +40618,19 @@ var ts;
40614
40618
  if (entries.length !== 0) {
40615
40619
  entries.push({ value: "" });
40616
40620
  }
40617
- entries.push({ value: "/* " + category + " */" });
40621
+ entries.push({ value: "/* ".concat(category, " */") });
40618
40622
  for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {
40619
40623
  var option = options_1[_i];
40620
40624
  var optionName = void 0;
40621
40625
  if (compilerOptionsMap.has(option.name)) {
40622
- optionName = "\"" + option.name + "\": " + JSON.stringify(compilerOptionsMap.get(option.name)) + ((seenKnownKeys += 1) === compilerOptionsMap.size ? "" : ",");
40626
+ optionName = "\"".concat(option.name, "\": ").concat(JSON.stringify(compilerOptionsMap.get(option.name))).concat((seenKnownKeys += 1) === compilerOptionsMap.size ? "" : ",");
40623
40627
  }
40624
40628
  else {
40625
- optionName = "// \"" + option.name + "\": " + JSON.stringify(getDefaultValueForOption(option)) + ",";
40629
+ optionName = "// \"".concat(option.name, "\": ").concat(JSON.stringify(getDefaultValueForOption(option)), ",");
40626
40630
  }
40627
40631
  entries.push({
40628
40632
  value: optionName,
40629
- description: "/* " + (option.description && ts.getLocaleSpecificMessage(option.description) || option.name) + " */"
40633
+ description: "/* ".concat(option.description && ts.getLocaleSpecificMessage(option.description) || option.name, " */")
40630
40634
  });
40631
40635
  marginLength = Math.max(optionName.length, marginLength);
40632
40636
  }
@@ -40635,25 +40639,25 @@ var ts;
40635
40639
  var tab = makePadding(2);
40636
40640
  var result = [];
40637
40641
  result.push("{");
40638
- result.push(tab + "\"compilerOptions\": {");
40639
- result.push("" + tab + tab + "/* " + ts.getLocaleSpecificMessage(ts.Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_json_to_read_more_about_this_file) + " */");
40642
+ result.push("".concat(tab, "\"compilerOptions\": {"));
40643
+ result.push("".concat(tab).concat(tab, "/* ").concat(ts.getLocaleSpecificMessage(ts.Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_json_to_read_more_about_this_file), " */"));
40640
40644
  result.push("");
40641
40645
  // Print out each row, aligning all the descriptions on the same column.
40642
40646
  for (var _a = 0, entries_2 = entries; _a < entries_2.length; _a++) {
40643
40647
  var entry = entries_2[_a];
40644
40648
  var value = entry.value, _b = entry.description, description = _b === void 0 ? "" : _b;
40645
- result.push(value && "" + tab + tab + value + (description && (makePadding(marginLength - value.length + 2) + description)));
40649
+ result.push(value && "".concat(tab).concat(tab).concat(value).concat(description && (makePadding(marginLength - value.length + 2) + description)));
40646
40650
  }
40647
40651
  if (fileNames.length) {
40648
- result.push(tab + "},");
40649
- result.push(tab + "\"files\": [");
40652
+ result.push("".concat(tab, "},"));
40653
+ result.push("".concat(tab, "\"files\": ["));
40650
40654
  for (var i = 0; i < fileNames.length; i++) {
40651
- result.push("" + tab + tab + JSON.stringify(fileNames[i]) + (i === fileNames.length - 1 ? "" : ","));
40655
+ result.push("".concat(tab).concat(tab).concat(JSON.stringify(fileNames[i])).concat(i === fileNames.length - 1 ? "" : ","));
40652
40656
  }
40653
- result.push(tab + "]");
40657
+ result.push("".concat(tab, "]"));
40654
40658
  }
40655
40659
  else {
40656
- result.push(tab + "}");
40660
+ result.push("".concat(tab, "}"));
40657
40661
  }
40658
40662
  result.push("}");
40659
40663
  return result.join(newLine) + newLine;
@@ -41051,7 +41055,7 @@ var ts;
41051
41055
  if (ts.isRootedDiskPath(extendedConfig) || ts.startsWith(extendedConfig, "./") || ts.startsWith(extendedConfig, "../")) {
41052
41056
  var extendedConfigPath = ts.getNormalizedAbsolutePath(extendedConfig, basePath);
41053
41057
  if (!host.fileExists(extendedConfigPath) && !ts.endsWith(extendedConfigPath, ".json" /* Json */)) {
41054
- extendedConfigPath = extendedConfigPath + ".json";
41058
+ extendedConfigPath = "".concat(extendedConfigPath, ".json");
41055
41059
  if (!host.fileExists(extendedConfigPath)) {
41056
41060
  errors.push(createDiagnostic(ts.Diagnostics.File_0_not_found, extendedConfig));
41057
41061
  return undefined;
@@ -41296,7 +41300,7 @@ var ts;
41296
41300
  // Valid only if *.json specified
41297
41301
  if (!jsonOnlyIncludeRegexes) {
41298
41302
  var includes = validatedIncludeSpecs.filter(function (s) { return ts.endsWith(s, ".json" /* Json */); });
41299
- var includeFilePatterns = ts.map(ts.getRegularExpressionsForWildcards(includes, basePath, "files"), function (pattern) { return "^" + pattern + "$"; });
41303
+ var includeFilePatterns = ts.map(ts.getRegularExpressionsForWildcards(includes, basePath, "files"), function (pattern) { return "^".concat(pattern, "$"); });
41300
41304
  jsonOnlyIncludeRegexes = includeFilePatterns ? includeFilePatterns.map(function (pattern) { return ts.getRegexFromPattern(pattern, host.useCaseSensitiveFileNames); }) : ts.emptyArray;
41301
41305
  }
41302
41306
  var includeIndex = ts.findIndex(jsonOnlyIncludeRegexes, function (re) { return re.test(file); });
@@ -41732,7 +41736,7 @@ var ts;
41732
41736
  var bestVersionKey = result.version, bestVersionPaths = result.paths;
41733
41737
  if (typeof bestVersionPaths !== "object") {
41734
41738
  if (state.traceEnabled) {
41735
- trace(state.host, ts.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2, "typesVersions['" + bestVersionKey + "']", "object", typeof bestVersionPaths);
41739
+ trace(state.host, ts.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2, "typesVersions['".concat(bestVersionKey, "']"), "object", typeof bestVersionPaths);
41736
41740
  }
41737
41741
  return;
41738
41742
  }
@@ -42139,7 +42143,7 @@ var ts;
42139
42143
  };
42140
42144
  return cache;
42141
42145
  function getUnderlyingCacheKey(specifier, mode) {
42142
- var result = mode === undefined ? specifier : mode + "|" + specifier;
42146
+ var result = mode === undefined ? specifier : "".concat(mode, "|").concat(specifier);
42143
42147
  memoizedReverseKeys.set(result, [specifier, mode]);
42144
42148
  return result;
42145
42149
  }
@@ -42170,7 +42174,7 @@ var ts;
42170
42174
  }
42171
42175
  function getOrCreateCacheForModuleName(nonRelativeModuleName, mode, redirectedReference) {
42172
42176
  ts.Debug.assert(!ts.isExternalModuleNameRelative(nonRelativeModuleName));
42173
- return getOrCreateCache(moduleNameToDirectoryMap, redirectedReference, mode === undefined ? nonRelativeModuleName : mode + "|" + nonRelativeModuleName, createPerModuleNameCache);
42177
+ return getOrCreateCache(moduleNameToDirectoryMap, redirectedReference, mode === undefined ? nonRelativeModuleName : "".concat(mode, "|").concat(nonRelativeModuleName), createPerModuleNameCache);
42174
42178
  }
42175
42179
  function createPerModuleNameCache() {
42176
42180
  var directoryPathMap = new ts.Map();
@@ -42317,10 +42321,10 @@ var ts;
42317
42321
  result = classicNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference);
42318
42322
  break;
42319
42323
  default:
42320
- return ts.Debug.fail("Unexpected moduleResolution: " + moduleResolution);
42324
+ return ts.Debug.fail("Unexpected moduleResolution: ".concat(moduleResolution));
42321
42325
  }
42322
42326
  if (result && result.resolvedModule)
42323
- ts.perfLogger.logInfoEvent("Module \"" + moduleName + "\" resolved to \"" + result.resolvedModule.resolvedFileName + "\"");
42327
+ ts.perfLogger.logInfoEvent("Module \"".concat(moduleName, "\" resolved to \"").concat(result.resolvedModule.resolvedFileName, "\""));
42324
42328
  ts.perfLogger.logStopResolveModule((result && result.resolvedModule) ? "" + result.resolvedModule.resolvedFileName : "null");
42325
42329
  if (perFolderCache) {
42326
42330
  perFolderCache.set(moduleName, resolutionMode, result);
@@ -42523,7 +42527,7 @@ var ts;
42523
42527
  function resolveJSModule(moduleName, initialDir, host) {
42524
42528
  var _a = tryResolveJSModuleWorker(moduleName, initialDir, host), resolvedModule = _a.resolvedModule, failedLookupLocations = _a.failedLookupLocations;
42525
42529
  if (!resolvedModule) {
42526
- throw new Error("Could not resolve JS module '" + moduleName + "' starting at '" + initialDir + "'. Looked in: " + failedLookupLocations.join(", "));
42530
+ throw new Error("Could not resolve JS module '".concat(moduleName, "' starting at '").concat(initialDir, "'. Looked in: ").concat(failedLookupLocations.join(", ")));
42527
42531
  }
42528
42532
  return resolvedModule.resolvedFileName;
42529
42533
  }
@@ -42633,7 +42637,7 @@ var ts;
42633
42637
  if (traceEnabled) {
42634
42638
  trace(host, ts.Diagnostics.Resolving_real_path_for_0_result_1, path, real);
42635
42639
  }
42636
- ts.Debug.assert(host.fileExists(real), path + " linked to nonexistent file " + real);
42640
+ ts.Debug.assert(host.fileExists(real), "".concat(path, " linked to nonexistent file ").concat(real));
42637
42641
  return real;
42638
42642
  }
42639
42643
  function nodeLoadModuleByRelativeName(extensions, candidate, onlyRecordFailures, state, considerPackageJson) {
@@ -43110,7 +43114,7 @@ var ts;
43110
43114
  return undefined;
43111
43115
  }
43112
43116
  var trailingParts = parts.slice(nameParts.length);
43113
- return loadModuleFromExports(scope, extensions, !ts.length(trailingParts) ? "." : "." + ts.directorySeparator + trailingParts.join(ts.directorySeparator), state, cache, redirectedReference);
43117
+ return loadModuleFromExports(scope, extensions, !ts.length(trailingParts) ? "." : ".".concat(ts.directorySeparator).concat(trailingParts.join(ts.directorySeparator)), state, cache, redirectedReference);
43114
43118
  }
43115
43119
  function loadModuleFromExports(scope, extensions, subpath, state, cache, redirectedReference) {
43116
43120
  if (!scope.packageJsonContent.exports) {
@@ -43438,7 +43442,7 @@ var ts;
43438
43442
  }
43439
43443
  /* @internal */
43440
43444
  function getTypesPackageName(packageName) {
43441
- return "@types/" + mangleScopedPackageName(packageName);
43445
+ return "@types/".concat(mangleScopedPackageName(packageName));
43442
43446
  }
43443
43447
  ts.getTypesPackageName = getTypesPackageName;
43444
43448
  /* @internal */
@@ -43839,7 +43843,7 @@ var ts;
43839
43843
  if (name) {
43840
43844
  if (ts.isAmbientModule(node)) {
43841
43845
  var moduleName = ts.getTextOfIdentifierOrLiteral(name);
43842
- return (ts.isGlobalScopeAugmentation(node) ? "__global" : "\"" + moduleName + "\"");
43846
+ return (ts.isGlobalScopeAugmentation(node) ? "__global" : "\"".concat(moduleName, "\""));
43843
43847
  }
43844
43848
  if (name.kind === 161 /* ComputedPropertyName */) {
43845
43849
  var nameExpression = name.expression;
@@ -43896,7 +43900,7 @@ var ts;
43896
43900
  case 163 /* Parameter */:
43897
43901
  // Parameters with names are handled at the top of this function. Parameters
43898
43902
  // without names can only come from JSDocFunctionTypes.
43899
- ts.Debug.assert(node.parent.kind === 315 /* JSDocFunctionType */, "Impossible parameter parent kind", function () { return "parent is: " + (ts.SyntaxKind ? ts.SyntaxKind[node.parent.kind] : node.parent.kind) + ", expected JSDocFunctionType"; });
43903
+ ts.Debug.assert(node.parent.kind === 315 /* JSDocFunctionType */, "Impossible parameter parent kind", function () { return "parent is: ".concat(ts.SyntaxKind ? ts.SyntaxKind[node.parent.kind] : node.parent.kind, ", expected JSDocFunctionType"); });
43900
43904
  var functionType = node.parent;
43901
43905
  var index = functionType.parameters.indexOf(node);
43902
43906
  return "arg" + index;
@@ -44008,7 +44012,7 @@ var ts;
44008
44012
  var relatedInformation_1 = [];
44009
44013
  if (ts.isTypeAliasDeclaration(node) && ts.nodeIsMissing(node.type) && ts.hasSyntacticModifier(node, 1 /* Export */) && symbol.flags & (2097152 /* Alias */ | 788968 /* Type */ | 1920 /* Namespace */)) {
44010
44014
  // export type T; - may have meant export type { T }?
44011
- relatedInformation_1.push(createDiagnosticForNode(node, ts.Diagnostics.Did_you_mean_0, "export type { " + ts.unescapeLeadingUnderscores(node.name.escapedText) + " }"));
44015
+ relatedInformation_1.push(createDiagnosticForNode(node, ts.Diagnostics.Did_you_mean_0, "export type { ".concat(ts.unescapeLeadingUnderscores(node.name.escapedText), " }")));
44012
44016
  }
44013
44017
  var declarationName_1 = ts.getNameOfDeclaration(node) || node;
44014
44018
  ts.forEach(symbol.declarations, function (declaration, index) {
@@ -46084,7 +46088,7 @@ var ts;
46084
46088
  }
46085
46089
  }
46086
46090
  function bindSourceFileAsExternalModule() {
46087
- bindAnonymousDeclaration(file, 512 /* ValueModule */, "\"" + ts.removeFileExtension(file.fileName) + "\"");
46091
+ bindAnonymousDeclaration(file, 512 /* ValueModule */, "\"".concat(ts.removeFileExtension(file.fileName), "\""));
46088
46092
  }
46089
46093
  function bindExportAssignment(node) {
46090
46094
  if (!container.symbol || !container.symbol.exports) {
@@ -47135,8 +47139,7 @@ var ts;
47135
47139
  IntersectionState[IntersectionState["Source"] = 1] = "Source";
47136
47140
  IntersectionState[IntersectionState["Target"] = 2] = "Target";
47137
47141
  IntersectionState[IntersectionState["PropertyCheck"] = 4] = "PropertyCheck";
47138
- IntersectionState[IntersectionState["UnionIntersectionCheck"] = 8] = "UnionIntersectionCheck";
47139
- IntersectionState[IntersectionState["InPropertyCheck"] = 16] = "InPropertyCheck";
47142
+ IntersectionState[IntersectionState["InPropertyCheck"] = 8] = "InPropertyCheck";
47140
47143
  })(IntersectionState || (IntersectionState = {}));
47141
47144
  var RecursionFlags;
47142
47145
  (function (RecursionFlags) {
@@ -48184,7 +48187,7 @@ var ts;
48184
48187
  if (sourceSymbolFile && targetSymbolFile && amalgamatedDuplicates && !isEitherEnum && sourceSymbolFile !== targetSymbolFile) {
48185
48188
  var firstFile_1 = ts.comparePaths(sourceSymbolFile.path, targetSymbolFile.path) === -1 /* LessThan */ ? sourceSymbolFile : targetSymbolFile;
48186
48189
  var secondFile_1 = firstFile_1 === sourceSymbolFile ? targetSymbolFile : sourceSymbolFile;
48187
- var filesDuplicates = ts.getOrUpdate(amalgamatedDuplicates, firstFile_1.path + "|" + secondFile_1.path, function () {
48190
+ var filesDuplicates = ts.getOrUpdate(amalgamatedDuplicates, "".concat(firstFile_1.path, "|").concat(secondFile_1.path), function () {
48188
48191
  return ({ firstFile: firstFile_1, secondFile: secondFile_1, conflictingSymbols: new ts.Map() });
48189
48192
  });
48190
48193
  var conflictingSymbolInfo = ts.getOrUpdate(filesDuplicates.conflictingSymbols, symbolName_1, function () {
@@ -50837,7 +50840,7 @@ var ts;
50837
50840
  var cache = (links.accessibleChainCache || (links.accessibleChainCache = new ts.Map()));
50838
50841
  // Go from enclosingDeclaration to the first scope we check, so the cache is keyed off the scope and thus shared more
50839
50842
  var firstRelevantLocation = forEachSymbolTableInScope(enclosingDeclaration, function (_, __, ___, node) { return node; });
50840
- var key = (useOnlyExternalAliasing ? 0 : 1) + "|" + (firstRelevantLocation && getNodeId(firstRelevantLocation)) + "|" + meaning;
50843
+ var key = "".concat(useOnlyExternalAliasing ? 0 : 1, "|").concat(firstRelevantLocation && getNodeId(firstRelevantLocation), "|").concat(meaning);
50841
50844
  if (cache.has(key)) {
50842
50845
  return cache.get(key);
50843
50846
  }
@@ -51686,7 +51689,7 @@ var ts;
51686
51689
  context.symbolDepth = new ts.Map();
51687
51690
  }
51688
51691
  var links = context.enclosingDeclaration && getNodeLinks(context.enclosingDeclaration);
51689
- var key = getTypeId(type) + "|" + context.flags;
51692
+ var key = "".concat(getTypeId(type), "|").concat(context.flags);
51690
51693
  if (links) {
51691
51694
  links.serializedTypes || (links.serializedTypes = new ts.Map());
51692
51695
  }
@@ -51955,7 +51958,7 @@ var ts;
51955
51958
  }
51956
51959
  }
51957
51960
  if (checkTruncationLength(context) && (i + 2 < properties.length - 1)) {
51958
- typeElements.push(ts.factory.createPropertySignature(/*modifiers*/ undefined, "... " + (properties.length - i) + " more ...", /*questionToken*/ undefined, /*type*/ undefined));
51961
+ typeElements.push(ts.factory.createPropertySignature(/*modifiers*/ undefined, "... ".concat(properties.length - i, " more ..."), /*questionToken*/ undefined, /*type*/ undefined));
51959
51962
  addPropertyToElementList(properties[properties.length - 1], context, typeElements);
51960
51963
  break;
51961
51964
  }
@@ -52070,7 +52073,7 @@ var ts;
52070
52073
  else if (types.length > 2) {
52071
52074
  return [
52072
52075
  typeToTypeNodeHelper(types[0], context),
52073
- ts.factory.createTypeReferenceNode("... " + (types.length - 2) + " more ...", /*typeArguments*/ undefined),
52076
+ ts.factory.createTypeReferenceNode("... ".concat(types.length - 2, " more ..."), /*typeArguments*/ undefined),
52074
52077
  typeToTypeNodeHelper(types[types.length - 1], context)
52075
52078
  ];
52076
52079
  }
@@ -52084,7 +52087,7 @@ var ts;
52084
52087
  var type = types_2[_i];
52085
52088
  i++;
52086
52089
  if (checkTruncationLength(context) && (i + 2 < types.length - 1)) {
52087
- result_5.push(ts.factory.createTypeReferenceNode("... " + (types.length - i) + " more ...", /*typeArguments*/ undefined));
52090
+ result_5.push(ts.factory.createTypeReferenceNode("... ".concat(types.length - i, " more ..."), /*typeArguments*/ undefined));
52088
52091
  var typeNode_1 = typeToTypeNodeHelper(types[types.length - 1], context);
52089
52092
  if (typeNode_1) {
52090
52093
  result_5.push(typeNode_1);
@@ -52607,7 +52610,7 @@ var ts;
52607
52610
  var text = rawtext;
52608
52611
  while (((_b = context.typeParameterNamesByText) === null || _b === void 0 ? void 0 : _b.has(text)) || typeParameterShadowsNameInScope(text, context, type)) {
52609
52612
  i++;
52610
- text = rawtext + "_" + i;
52613
+ text = "".concat(rawtext, "_").concat(i);
52611
52614
  }
52612
52615
  if (text !== rawtext) {
52613
52616
  result = ts.factory.createIdentifier(text, result.typeArguments);
@@ -52927,7 +52930,7 @@ var ts;
52927
52930
  function getNameForJSDocFunctionParameter(p, index) {
52928
52931
  return p.name && ts.isIdentifier(p.name) && p.name.escapedText === "this" ? "this"
52929
52932
  : getEffectiveDotDotDotForParameter(p) ? "args"
52930
- : "arg" + index;
52933
+ : "arg".concat(index);
52931
52934
  }
52932
52935
  function rewriteModuleSpecifier(parent, lit) {
52933
52936
  if (bundled) {
@@ -54012,7 +54015,7 @@ var ts;
54012
54015
  return results_1;
54013
54016
  }
54014
54017
  // The `Constructor`'s symbol isn't in the class's properties lists, obviously, since it's a signature on the static
54015
- return ts.Debug.fail("Unhandled class member kind! " + (p.__debugFlags || p.flags));
54018
+ return ts.Debug.fail("Unhandled class member kind! ".concat(p.__debugFlags || p.flags));
54016
54019
  };
54017
54020
  }
54018
54021
  function serializePropertySymbolForInterface(p, baseType) {
@@ -54087,7 +54090,7 @@ var ts;
54087
54090
  if (ref) {
54088
54091
  return ref;
54089
54092
  }
54090
- var tempName = getUnusedName(rootName + "_base");
54093
+ var tempName = getUnusedName("".concat(rootName, "_base"));
54091
54094
  var statement = ts.factory.createVariableStatement(/*modifiers*/ undefined, ts.factory.createVariableDeclarationList([
54092
54095
  ts.factory.createVariableDeclaration(tempName, /*exclamationToken*/ undefined, typeToTypeNodeHelper(staticType, context))
54093
54096
  ], 2 /* Const */));
@@ -54134,7 +54137,7 @@ var ts;
54134
54137
  var original = input;
54135
54138
  while ((_a = context.usedSymbolNames) === null || _a === void 0 ? void 0 : _a.has(input)) {
54136
54139
  i++;
54137
- input = original + "_" + i;
54140
+ input = "".concat(original, "_").concat(i);
54138
54141
  }
54139
54142
  (_b = context.usedSymbolNames) === null || _b === void 0 ? void 0 : _b.add(input);
54140
54143
  if (id) {
@@ -54242,15 +54245,15 @@ var ts;
54242
54245
  if (nameType.flags & 384 /* StringOrNumberLiteral */) {
54243
54246
  var name = "" + nameType.value;
54244
54247
  if (!ts.isIdentifierText(name, ts.getEmitScriptTarget(compilerOptions)) && !ts.isNumericLiteralName(name)) {
54245
- return "\"" + ts.escapeString(name, 34 /* doubleQuote */) + "\"";
54248
+ return "\"".concat(ts.escapeString(name, 34 /* doubleQuote */), "\"");
54246
54249
  }
54247
54250
  if (ts.isNumericLiteralName(name) && ts.startsWith(name, "-")) {
54248
- return "[" + name + "]";
54251
+ return "[".concat(name, "]");
54249
54252
  }
54250
54253
  return name;
54251
54254
  }
54252
54255
  if (nameType.flags & 8192 /* UniqueESSymbol */) {
54253
- return "[" + getNameOfSymbolAsWritten(nameType.symbol, context) + "]";
54256
+ return "[".concat(getNameOfSymbolAsWritten(nameType.symbol, context), "]");
54254
54257
  }
54255
54258
  }
54256
54259
  }
@@ -57081,7 +57084,7 @@ var ts;
57081
57084
  !leftName ? rightName :
57082
57085
  !rightName ? leftName :
57083
57086
  undefined;
57084
- var paramSymbol = createSymbol(1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0), paramName || "arg" + i);
57087
+ var paramSymbol = createSymbol(1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0), paramName || "arg".concat(i));
57085
57088
  paramSymbol.type = isRestParam ? createArrayType(unionParamType) : unionParamType;
57086
57089
  params[i] = paramSymbol;
57087
57090
  }
@@ -59032,7 +59035,7 @@ var ts;
59032
59035
  return result;
59033
59036
  }
59034
59037
  function getAliasId(aliasSymbol, aliasTypeArguments) {
59035
- return aliasSymbol ? "@" + getSymbolId(aliasSymbol) + (aliasTypeArguments ? ":" + getTypeListId(aliasTypeArguments) : "") : "";
59038
+ return aliasSymbol ? "@".concat(getSymbolId(aliasSymbol)) + (aliasTypeArguments ? ":".concat(getTypeListId(aliasTypeArguments)) : "") : "";
59036
59039
  }
59037
59040
  // This function is used to propagate certain flags when creating new object type references and union types.
59038
59041
  // It is only necessary to do so if a constituent type might be the undefined type, the null type, the type
@@ -59218,7 +59221,7 @@ var ts;
59218
59221
  return undefined;
59219
59222
  }
59220
59223
  function getSymbolPath(symbol) {
59221
- return symbol.parent ? getSymbolPath(symbol.parent) + "." + symbol.escapedName : symbol.escapedName;
59224
+ return symbol.parent ? "".concat(getSymbolPath(symbol.parent), ".").concat(symbol.escapedName) : symbol.escapedName;
59222
59225
  }
59223
59226
  function getUnresolvedSymbolForEntityName(name) {
59224
59227
  var identifier = name.kind === 160 /* QualifiedName */ ? name.right :
@@ -59229,7 +59232,7 @@ var ts;
59229
59232
  var parentSymbol = name.kind === 160 /* QualifiedName */ ? getUnresolvedSymbolForEntityName(name.left) :
59230
59233
  name.kind === 205 /* PropertyAccessExpression */ ? getUnresolvedSymbolForEntityName(name.expression) :
59231
59234
  undefined;
59232
- var path = parentSymbol ? getSymbolPath(parentSymbol) + "." + text : text;
59235
+ var path = parentSymbol ? "".concat(getSymbolPath(parentSymbol), ".").concat(text) : text;
59233
59236
  var result = unresolvedSymbols.get(path);
59234
59237
  if (!result) {
59235
59238
  unresolvedSymbols.set(path, result = createSymbol(524288 /* TypeAlias */, text, 1048576 /* Unresolved */));
@@ -59302,7 +59305,7 @@ var ts;
59302
59305
  if (substitute.flags & 3 /* AnyOrUnknown */ || substitute === baseType) {
59303
59306
  return baseType;
59304
59307
  }
59305
- var id = getTypeId(baseType) + ">" + getTypeId(substitute);
59308
+ var id = "".concat(getTypeId(baseType), ">").concat(getTypeId(substitute));
59306
59309
  var cached = substitutionTypes.get(id);
59307
59310
  if (cached) {
59308
59311
  return cached;
@@ -60226,9 +60229,9 @@ var ts;
60226
60229
  return types[0];
60227
60230
  }
60228
60231
  var typeKey = !origin ? getTypeListId(types) :
60229
- origin.flags & 1048576 /* Union */ ? "|" + getTypeListId(origin.types) :
60230
- origin.flags & 2097152 /* Intersection */ ? "&" + getTypeListId(origin.types) :
60231
- "#" + origin.type.id + "|" + getTypeListId(types); // origin type id alone is insufficient, as `keyof x` may resolve to multiple WIP values while `x` is still resolving
60232
+ origin.flags & 1048576 /* Union */ ? "|".concat(getTypeListId(origin.types)) :
60233
+ origin.flags & 2097152 /* Intersection */ ? "&".concat(getTypeListId(origin.types)) :
60234
+ "#".concat(origin.type.id, "|").concat(getTypeListId(types)); // origin type id alone is insufficient, as `keyof x` may resolve to multiple WIP values while `x` is still resolving
60232
60235
  var id = typeKey + getAliasId(aliasSymbol, aliasTypeArguments);
60233
60236
  var type = unionTypes.get(id);
60234
60237
  if (!type) {
@@ -60750,7 +60753,7 @@ var ts;
60750
60753
  if (ts.every(newTexts, function (t) { return t === ""; }) && ts.every(newTypes, function (t) { return !!(t.flags & 4 /* String */); })) {
60751
60754
  return stringType;
60752
60755
  }
60753
- var id = getTypeListId(newTypes) + "|" + ts.map(newTexts, function (t) { return t.length; }).join(",") + "|" + newTexts.join("");
60756
+ var id = "".concat(getTypeListId(newTypes), "|").concat(ts.map(newTexts, function (t) { return t.length; }).join(","), "|").concat(newTexts.join(""));
60754
60757
  var type = templateLiteralTypes.get(id);
60755
60758
  if (!type) {
60756
60759
  templateLiteralTypes.set(id, type = createTemplateLiteralType(newTexts, newTypes));
@@ -60810,7 +60813,7 @@ var ts;
60810
60813
  return str;
60811
60814
  }
60812
60815
  function getStringMappingTypeForGenericType(symbol, type) {
60813
- var id = getSymbolId(symbol) + "," + getTypeId(type);
60816
+ var id = "".concat(getSymbolId(symbol), ",").concat(getTypeId(type));
60814
60817
  var result = stringMappingTypes.get(id);
60815
60818
  if (!result) {
60816
60819
  stringMappingTypes.set(id, result = createStringMappingType(symbol, type));
@@ -61827,7 +61830,7 @@ var ts;
61827
61830
  function createUniqueESSymbolType(symbol) {
61828
61831
  var type = createType(8192 /* UniqueESSymbol */);
61829
61832
  type.symbol = symbol;
61830
- type.escapedName = "__@" + type.symbol.escapedName + "@" + getSymbolId(type.symbol);
61833
+ type.escapedName = "__@".concat(type.symbol.escapedName, "@").concat(getSymbolId(type.symbol));
61831
61834
  return type;
61832
61835
  }
61833
61836
  function getESSymbolLikeTypeForNode(node) {
@@ -63422,11 +63425,11 @@ var ts;
63422
63425
  var overflow = false;
63423
63426
  var overrideNextErrorInfo = 0; // How many `reportRelationError` calls should be skipped in the elaboration pyramid
63424
63427
  var lastSkippedInfo;
63425
- var incompatibleStack = [];
63428
+ var incompatibleStack;
63426
63429
  var inPropertyCheck = false;
63427
63430
  ts.Debug.assert(relation !== identityRelation || !errorNode, "no error reporting in identity checking");
63428
63431
  var result = isRelatedTo(source, target, 3 /* Both */, /*reportErrors*/ !!errorNode, headMessage);
63429
- if (incompatibleStack.length) {
63432
+ if (incompatibleStack) {
63430
63433
  reportIncompatibleStack();
63431
63434
  }
63432
63435
  if (overflow) {
@@ -63483,19 +63486,19 @@ var ts;
63483
63486
  return {
63484
63487
  errorInfo: errorInfo,
63485
63488
  lastSkippedInfo: lastSkippedInfo,
63486
- incompatibleStack: incompatibleStack.slice(),
63489
+ incompatibleStack: incompatibleStack === null || incompatibleStack === void 0 ? void 0 : incompatibleStack.slice(),
63487
63490
  overrideNextErrorInfo: overrideNextErrorInfo,
63488
- relatedInfo: !relatedInfo ? undefined : relatedInfo.slice()
63491
+ relatedInfo: relatedInfo === null || relatedInfo === void 0 ? void 0 : relatedInfo.slice(),
63489
63492
  };
63490
63493
  }
63491
63494
  function reportIncompatibleError(message, arg0, arg1, arg2, arg3) {
63492
63495
  overrideNextErrorInfo++; // Suppress the next relation error
63493
63496
  lastSkippedInfo = undefined; // Reset skipped info cache
63494
- incompatibleStack.push([message, arg0, arg1, arg2, arg3]);
63497
+ (incompatibleStack || (incompatibleStack = [])).push([message, arg0, arg1, arg2, arg3]);
63495
63498
  }
63496
63499
  function reportIncompatibleStack() {
63497
- var stack = incompatibleStack;
63498
- incompatibleStack = [];
63500
+ var stack = incompatibleStack || [];
63501
+ incompatibleStack = undefined;
63499
63502
  var info = lastSkippedInfo;
63500
63503
  lastSkippedInfo = undefined;
63501
63504
  if (stack.length === 1) {
@@ -63516,24 +63519,24 @@ var ts;
63516
63519
  case ts.Diagnostics.Types_of_property_0_are_incompatible.code: {
63517
63520
  // Parenthesize a `new` if there is one
63518
63521
  if (path.indexOf("new ") === 0) {
63519
- path = "(" + path + ")";
63522
+ path = "(".concat(path, ")");
63520
63523
  }
63521
63524
  var str = "" + args[0];
63522
63525
  // If leading, just print back the arg (irrespective of if it's a valid identifier)
63523
63526
  if (path.length === 0) {
63524
- path = "" + str;
63527
+ path = "".concat(str);
63525
63528
  }
63526
63529
  // Otherwise write a dotted name if possible
63527
63530
  else if (ts.isIdentifierText(str, ts.getEmitScriptTarget(compilerOptions))) {
63528
- path = path + "." + str;
63531
+ path = "".concat(path, ".").concat(str);
63529
63532
  }
63530
63533
  // Failing that, check if the name is already a computed name
63531
63534
  else if (str[0] === "[" && str[str.length - 1] === "]") {
63532
- path = "" + path + str;
63535
+ path = "".concat(path).concat(str);
63533
63536
  }
63534
63537
  // And finally write out a computed name as a last resort
63535
63538
  else {
63536
- path = path + "[" + str + "]";
63539
+ path = "".concat(path, "[").concat(str, "]");
63537
63540
  }
63538
63541
  break;
63539
63542
  }
@@ -63562,7 +63565,7 @@ var ts;
63562
63565
  msg.code === ts.Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code)
63563
63566
  ? ""
63564
63567
  : "...";
63565
- path = "" + prefix + path + "(" + params + ")";
63568
+ path = "".concat(prefix).concat(path, "(").concat(params, ")");
63566
63569
  }
63567
63570
  break;
63568
63571
  }
@@ -63575,7 +63578,7 @@ var ts;
63575
63578
  break;
63576
63579
  }
63577
63580
  default:
63578
- return ts.Debug.fail("Unhandled Diagnostic: " + msg.code);
63581
+ return ts.Debug.fail("Unhandled Diagnostic: ".concat(msg.code));
63579
63582
  }
63580
63583
  }
63581
63584
  if (path) {
@@ -63601,7 +63604,7 @@ var ts;
63601
63604
  }
63602
63605
  function reportError(message, arg0, arg1, arg2, arg3) {
63603
63606
  ts.Debug.assert(!!errorNode);
63604
- if (incompatibleStack.length)
63607
+ if (incompatibleStack)
63605
63608
  reportIncompatibleStack();
63606
63609
  if (message.elidedInCompatabilityPyramid)
63607
63610
  return;
@@ -63617,7 +63620,7 @@ var ts;
63617
63620
  }
63618
63621
  }
63619
63622
  function reportRelationError(message, source, target) {
63620
- if (incompatibleStack.length)
63623
+ if (incompatibleStack)
63621
63624
  reportIncompatibleStack();
63622
63625
  var _a = getTypeNamesForErrorDisplay(source, target), sourceType = _a[0], targetType = _a[1];
63623
63626
  var generalizedSource = source;
@@ -63729,7 +63732,9 @@ var ts;
63729
63732
  if (isSimpleTypeRelatedTo(originalSource, originalTarget, relation, reportErrors ? reportError : undefined)) {
63730
63733
  return -1 /* True */;
63731
63734
  }
63732
- reportErrorResults(originalSource, originalTarget, 0 /* False */, !!(ts.getObjectFlags(originalSource) & 2048 /* JsxAttributes */));
63735
+ if (reportErrors) {
63736
+ reportErrorResults(originalSource, originalTarget, originalSource, originalTarget, headMessage);
63737
+ }
63733
63738
  return 0 /* False */;
63734
63739
  }
63735
63740
  // Normalize the source and target types: Turn fresh literal types into regular literal types,
@@ -63741,7 +63746,12 @@ var ts;
63741
63746
  if (source === target)
63742
63747
  return -1 /* True */;
63743
63748
  if (relation === identityRelation) {
63744
- return isIdenticalTo(source, target, recursionFlags);
63749
+ if (source.flags !== target.flags)
63750
+ return 0 /* False */;
63751
+ if (source.flags & 67358815 /* Singleton */)
63752
+ return -1 /* True */;
63753
+ traceUnionsOrIntersectionsTooLarge(source, target);
63754
+ return recursiveTypeRelatedTo(source, target, /*reportErrors*/ false, 0 /* None */, recursionFlags);
63745
63755
  }
63746
63756
  // We fastpath comparing a type parameter to exactly its constraint, as this is _super_ common,
63747
63757
  // and otherwise, for type parameters in large unions, causes us to need to compare the union to itself,
@@ -63751,163 +63761,130 @@ var ts;
63751
63761
  if (source.flags & 262144 /* TypeParameter */ && getConstraintOfType(source) === target) {
63752
63762
  return -1 /* True */;
63753
63763
  }
63754
- // Try to see if we're relating something like `Foo` -> `Bar | null | undefined`.
63755
- // If so, reporting the `null` and `undefined` in the type is hardly useful.
63756
- // First, see if we're even relating an object type to a union.
63757
- // Then see if the target is stripped down to a single non-union type.
63758
- // Note
63759
- // * We actually want to remove null and undefined naively here (rather than using getNonNullableType),
63760
- // since we don't want to end up with a worse error like "`Foo` is not assignable to `NonNullable<T>`"
63761
- // when dealing with generics.
63762
- // * We also don't deal with primitive source types, since we already halt elaboration below.
63763
- if (target.flags & 1048576 /* Union */ && source.flags & 524288 /* Object */ &&
63764
- target.types.length <= 3 && maybeTypeOfKind(target, 98304 /* Nullable */)) {
63765
- var nullStrippedTarget = extractTypesOfKind(target, ~98304 /* Nullable */);
63766
- if (!(nullStrippedTarget.flags & (1048576 /* Union */ | 131072 /* Never */))) {
63767
- target = getNormalizedType(nullStrippedTarget, /*writing*/ true);
63768
- }
63769
- if (source === nullStrippedTarget)
63770
- return -1 /* True */;
63764
+ // See if we're relating a definitely non-nullable type to a union that includes null and/or undefined
63765
+ // plus a single non-nullable type. If so, remove null and/or undefined from the target type.
63766
+ if (source.flags & 470302716 /* DefinitelyNonNullable */ && target.flags & 1048576 /* Union */) {
63767
+ var types = target.types;
63768
+ var candidate = types.length === 2 && types[0].flags & 98304 /* Nullable */ ? types[1] :
63769
+ types.length === 3 && types[0].flags & 98304 /* Nullable */ && types[1].flags & 98304 /* Nullable */ ? types[2] :
63770
+ undefined;
63771
+ if (candidate && !(candidate.flags & 98304 /* Nullable */)) {
63772
+ target = getNormalizedType(candidate, /*writing*/ true);
63773
+ if (source === target)
63774
+ return -1 /* True */;
63775
+ }
63771
63776
  }
63772
63777
  if (relation === comparableRelation && !(target.flags & 131072 /* Never */) && isSimpleTypeRelatedTo(target, source, relation) ||
63773
63778
  isSimpleTypeRelatedTo(source, target, relation, reportErrors ? reportError : undefined))
63774
63779
  return -1 /* True */;
63775
- var isComparingJsxAttributes = !!(ts.getObjectFlags(source) & 2048 /* JsxAttributes */);
63776
- var isPerformingExcessPropertyChecks = !(intersectionState & 2 /* Target */) && (isObjectLiteralType(source) && ts.getObjectFlags(source) & 16384 /* FreshLiteral */);
63777
- if (isPerformingExcessPropertyChecks) {
63778
- if (hasExcessProperties(source, target, reportErrors)) {
63780
+ if (source.flags & 469499904 /* StructuredOrInstantiable */ || target.flags & 469499904 /* StructuredOrInstantiable */) {
63781
+ var isPerformingExcessPropertyChecks = !(intersectionState & 2 /* Target */) && (isObjectLiteralType(source) && ts.getObjectFlags(source) & 16384 /* FreshLiteral */);
63782
+ if (isPerformingExcessPropertyChecks) {
63783
+ if (hasExcessProperties(source, target, reportErrors)) {
63784
+ if (reportErrors) {
63785
+ reportRelationError(headMessage, source, originalTarget.aliasSymbol ? originalTarget : target);
63786
+ }
63787
+ return 0 /* False */;
63788
+ }
63789
+ }
63790
+ var isPerformingCommonPropertyChecks = relation !== comparableRelation && !(intersectionState & 2 /* Target */) &&
63791
+ source.flags & (131068 /* Primitive */ | 524288 /* Object */ | 2097152 /* Intersection */) && source !== globalObjectType &&
63792
+ target.flags & (524288 /* Object */ | 2097152 /* Intersection */) && isWeakType(target) &&
63793
+ (getPropertiesOfType(source).length > 0 || typeHasCallOrConstructSignatures(source));
63794
+ var isComparingJsxAttributes = !!(ts.getObjectFlags(source) & 2048 /* JsxAttributes */);
63795
+ if (isPerformingCommonPropertyChecks && !hasCommonProperties(source, target, isComparingJsxAttributes)) {
63779
63796
  if (reportErrors) {
63780
- reportRelationError(headMessage, source, originalTarget.aliasSymbol ? originalTarget : target);
63797
+ var sourceString = typeToString(originalSource.aliasSymbol ? originalSource : source);
63798
+ var targetString = typeToString(originalTarget.aliasSymbol ? originalTarget : target);
63799
+ var calls = getSignaturesOfType(source, 0 /* Call */);
63800
+ var constructs = getSignaturesOfType(source, 1 /* Construct */);
63801
+ if (calls.length > 0 && isRelatedTo(getReturnTypeOfSignature(calls[0]), target, 1 /* Source */, /*reportErrors*/ false) ||
63802
+ constructs.length > 0 && isRelatedTo(getReturnTypeOfSignature(constructs[0]), target, 1 /* Source */, /*reportErrors*/ false)) {
63803
+ reportError(ts.Diagnostics.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it, sourceString, targetString);
63804
+ }
63805
+ else {
63806
+ reportError(ts.Diagnostics.Type_0_has_no_properties_in_common_with_type_1, sourceString, targetString);
63807
+ }
63781
63808
  }
63782
63809
  return 0 /* False */;
63783
63810
  }
63784
- }
63785
- var isPerformingCommonPropertyChecks = relation !== comparableRelation && !(intersectionState & 2 /* Target */) &&
63786
- source.flags & (131068 /* Primitive */ | 524288 /* Object */ | 2097152 /* Intersection */) && source !== globalObjectType &&
63787
- target.flags & (524288 /* Object */ | 2097152 /* Intersection */) && isWeakType(target) &&
63788
- (getPropertiesOfType(source).length > 0 || typeHasCallOrConstructSignatures(source));
63789
- if (isPerformingCommonPropertyChecks && !hasCommonProperties(source, target, isComparingJsxAttributes)) {
63790
- if (reportErrors) {
63791
- var sourceString = typeToString(originalSource.aliasSymbol ? originalSource : source);
63792
- var targetString = typeToString(originalTarget.aliasSymbol ? originalTarget : target);
63793
- var calls = getSignaturesOfType(source, 0 /* Call */);
63794
- var constructs = getSignaturesOfType(source, 1 /* Construct */);
63795
- if (calls.length > 0 && isRelatedTo(getReturnTypeOfSignature(calls[0]), target, 1 /* Source */, /*reportErrors*/ false) ||
63796
- constructs.length > 0 && isRelatedTo(getReturnTypeOfSignature(constructs[0]), target, 1 /* Source */, /*reportErrors*/ false)) {
63797
- reportError(ts.Diagnostics.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it, sourceString, targetString);
63798
- }
63799
- else {
63800
- reportError(ts.Diagnostics.Type_0_has_no_properties_in_common_with_type_1, sourceString, targetString);
63801
- }
63811
+ traceUnionsOrIntersectionsTooLarge(source, target);
63812
+ var skipCaching = source.flags & 1048576 /* Union */ && source.types.length < 4 && !(target.flags & 1048576 /* Union */) ||
63813
+ target.flags & 1048576 /* Union */ && target.types.length < 4 && !(source.flags & 469499904 /* StructuredOrInstantiable */);
63814
+ var result_7 = skipCaching ?
63815
+ unionOrIntersectionRelatedTo(source, target, reportErrors, intersectionState) :
63816
+ recursiveTypeRelatedTo(source, target, reportErrors, intersectionState, recursionFlags);
63817
+ // For certain combinations involving intersections and optional, excess, or mismatched properties we need
63818
+ // an extra property check where the intersection is viewed as a single object. The following are motivating
63819
+ // examples that all should be errors, but aren't without this extra property check:
63820
+ //
63821
+ // let obj: { a: { x: string } } & { c: number } = { a: { x: 'hello', y: 2 }, c: 5 }; // Nested excess property
63822
+ //
63823
+ // declare let wrong: { a: { y: string } };
63824
+ // let weak: { a?: { x?: number } } & { c?: string } = wrong; // Nested weak object type
63825
+ //
63826
+ // function foo<T extends object>(x: { a?: string }, y: T & { a: boolean }) {
63827
+ // x = y; // Mismatched property in source intersection
63828
+ // }
63829
+ //
63830
+ // We suppress recursive intersection property checks because they can generate lots of work when relating
63831
+ // recursive intersections that are structurally similar but not exactly identical. See #37854.
63832
+ if (result_7 && !inPropertyCheck && (target.flags & 2097152 /* Intersection */ && (isPerformingExcessPropertyChecks || isPerformingCommonPropertyChecks) ||
63833
+ isNonGenericObjectType(target) && !isArrayType(target) && !isTupleType(target) && source.flags & 2097152 /* Intersection */ && getApparentType(source).flags & 3670016 /* StructuredType */ && !ts.some(source.types, function (t) { return !!(ts.getObjectFlags(t) & 524288 /* NonInferrableType */); }))) {
63834
+ inPropertyCheck = true;
63835
+ result_7 &= recursiveTypeRelatedTo(source, target, reportErrors, 4 /* PropertyCheck */, recursionFlags);
63836
+ inPropertyCheck = false;
63837
+ }
63838
+ if (result_7) {
63839
+ return result_7;
63802
63840
  }
63803
- return 0 /* False */;
63804
- }
63805
- traceUnionsOrIntersectionsTooLarge(source, target);
63806
- var result = 0 /* False */;
63807
- var saveErrorInfo = captureErrorCalculationState();
63808
- if ((source.flags & 1048576 /* Union */ || target.flags & 1048576 /* Union */) && getConstituentCount(source) * getConstituentCount(target) < 4) {
63809
- // We skip caching when source or target is a union with no more than three constituents.
63810
- result = structuredTypeRelatedTo(source, target, reportErrors, intersectionState | 8 /* UnionIntersectionCheck */);
63811
63841
  }
63812
- else if (source.flags & 3145728 /* UnionOrIntersection */ || target.flags & 3145728 /* UnionOrIntersection */) {
63813
- result = recursiveTypeRelatedTo(source, target, reportErrors, intersectionState | 8 /* UnionIntersectionCheck */, recursionFlags);
63842
+ if (reportErrors) {
63843
+ reportErrorResults(originalSource, originalTarget, source, target, headMessage);
63814
63844
  }
63815
- if (!result && !(source.flags & 1048576 /* Union */) && (source.flags & (469499904 /* StructuredOrInstantiable */) || target.flags & 469499904 /* StructuredOrInstantiable */)) {
63816
- if (result = recursiveTypeRelatedTo(source, target, reportErrors, intersectionState, recursionFlags)) {
63817
- resetErrorInfo(saveErrorInfo);
63845
+ return 0 /* False */;
63846
+ }
63847
+ function reportErrorResults(originalSource, originalTarget, source, target, headMessage) {
63848
+ var sourceHasBase = !!getSingleBaseForNonAugmentingSubtype(originalSource);
63849
+ var targetHasBase = !!getSingleBaseForNonAugmentingSubtype(originalTarget);
63850
+ source = (originalSource.aliasSymbol || sourceHasBase) ? originalSource : source;
63851
+ target = (originalTarget.aliasSymbol || targetHasBase) ? originalTarget : target;
63852
+ var maybeSuppress = overrideNextErrorInfo > 0;
63853
+ if (maybeSuppress) {
63854
+ overrideNextErrorInfo--;
63855
+ }
63856
+ if (source.flags & 524288 /* Object */ && target.flags & 524288 /* Object */) {
63857
+ var currentError = errorInfo;
63858
+ tryElaborateArrayLikeErrors(source, target, /*reportErrors*/ true);
63859
+ if (errorInfo !== currentError) {
63860
+ maybeSuppress = !!errorInfo;
63861
+ }
63862
+ }
63863
+ if (source.flags & 524288 /* Object */ && target.flags & 131068 /* Primitive */) {
63864
+ tryElaborateErrorsForPrimitivesAndObjects(source, target);
63865
+ }
63866
+ else if (source.symbol && source.flags & 524288 /* Object */ && globalObjectType === source) {
63867
+ reportError(ts.Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);
63868
+ }
63869
+ else if (ts.getObjectFlags(source) & 2048 /* JsxAttributes */ && target.flags & 2097152 /* Intersection */) {
63870
+ var targetTypes = target.types;
63871
+ var intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes, errorNode);
63872
+ var intrinsicClassAttributes = getJsxType(JsxNames.IntrinsicClassAttributes, errorNode);
63873
+ if (!isErrorType(intrinsicAttributes) && !isErrorType(intrinsicClassAttributes) &&
63874
+ (ts.contains(targetTypes, intrinsicAttributes) || ts.contains(targetTypes, intrinsicClassAttributes))) {
63875
+ // do not report top error
63876
+ return;
63818
63877
  }
63819
63878
  }
63820
- if (!result && source.flags & (2097152 /* Intersection */ | 262144 /* TypeParameter */)) {
63821
- // The combined constraint of an intersection type is the intersection of the constraints of
63822
- // the constituents. When an intersection type contains instantiable types with union type
63823
- // constraints, there are situations where we need to examine the combined constraint. One is
63824
- // when the target is a union type. Another is when the intersection contains types belonging
63825
- // to one of the disjoint domains. For example, given type variables T and U, each with the
63826
- // constraint 'string | number', the combined constraint of 'T & U' is 'string | number' and
63827
- // we need to check this constraint against a union on the target side. Also, given a type
63828
- // variable V constrained to 'string | number', 'V & number' has a combined constraint of
63829
- // 'string & number | number & number' which reduces to just 'number'.
63830
- // This also handles type parameters, as a type parameter with a union constraint compared against a union
63831
- // needs to have its constraint hoisted into an intersection with said type parameter, this way
63832
- // the type param can be compared with itself in the target (with the influence of its constraint to match other parts)
63833
- // For example, if `T extends 1 | 2` and `U extends 2 | 3` and we compare `T & U` to `T & U & (1 | 2 | 3)`
63834
- var constraint = getEffectiveConstraintOfIntersection(source.flags & 2097152 /* Intersection */ ? source.types : [source], !!(target.flags & 1048576 /* Union */));
63835
- if (constraint && (source.flags & 2097152 /* Intersection */ || target.flags & 1048576 /* Union */)) {
63836
- if (everyType(constraint, function (c) { return c !== source; })) { // Skip comparison if expansion contains the source itself
63837
- // TODO: Stack errors so we get a pyramid for the "normal" comparison above, _and_ a second for this
63838
- if (result = isRelatedTo(constraint, target, 1 /* Source */, /*reportErrors*/ false, /*headMessage*/ undefined, intersectionState)) {
63839
- resetErrorInfo(saveErrorInfo);
63840
- }
63841
- }
63842
- }
63879
+ else {
63880
+ errorInfo = elaborateNeverIntersection(errorInfo, originalTarget);
63843
63881
  }
63844
- // For certain combinations involving intersections and optional, excess, or mismatched properties we need
63845
- // an extra property check where the intersection is viewed as a single object. The following are motivating
63846
- // examples that all should be errors, but aren't without this extra property check:
63847
- //
63848
- // let obj: { a: { x: string } } & { c: number } = { a: { x: 'hello', y: 2 }, c: 5 }; // Nested excess property
63849
- //
63850
- // declare let wrong: { a: { y: string } };
63851
- // let weak: { a?: { x?: number } } & { c?: string } = wrong; // Nested weak object type
63852
- //
63853
- // function foo<T extends object>(x: { a?: string }, y: T & { a: boolean }) {
63854
- // x = y; // Mismatched property in source intersection
63855
- // }
63856
- //
63857
- // We suppress recursive intersection property checks because they can generate lots of work when relating
63858
- // recursive intersections that are structurally similar but not exactly identical. See #37854.
63859
- if (result && !inPropertyCheck && (target.flags & 2097152 /* Intersection */ && (isPerformingExcessPropertyChecks || isPerformingCommonPropertyChecks) ||
63860
- isNonGenericObjectType(target) && !isArrayType(target) && !isTupleType(target) && source.flags & 2097152 /* Intersection */ && getApparentType(source).flags & 3670016 /* StructuredType */ && !ts.some(source.types, function (t) { return !!(ts.getObjectFlags(t) & 524288 /* NonInferrableType */); }))) {
63861
- inPropertyCheck = true;
63862
- result &= recursiveTypeRelatedTo(source, target, reportErrors, 4 /* PropertyCheck */, recursionFlags);
63863
- inPropertyCheck = false;
63864
- }
63865
- reportErrorResults(source, target, result, isComparingJsxAttributes);
63866
- return result;
63867
- function reportErrorResults(source, target, result, isComparingJsxAttributes) {
63868
- if (!result && reportErrors) {
63869
- var sourceHasBase = !!getSingleBaseForNonAugmentingSubtype(originalSource);
63870
- var targetHasBase = !!getSingleBaseForNonAugmentingSubtype(originalTarget);
63871
- source = (originalSource.aliasSymbol || sourceHasBase) ? originalSource : source;
63872
- target = (originalTarget.aliasSymbol || targetHasBase) ? originalTarget : target;
63873
- var maybeSuppress = overrideNextErrorInfo > 0;
63874
- if (maybeSuppress) {
63875
- overrideNextErrorInfo--;
63876
- }
63877
- if (source.flags & 524288 /* Object */ && target.flags & 524288 /* Object */) {
63878
- var currentError = errorInfo;
63879
- tryElaborateArrayLikeErrors(source, target, reportErrors);
63880
- if (errorInfo !== currentError) {
63881
- maybeSuppress = !!errorInfo;
63882
- }
63883
- }
63884
- if (source.flags & 524288 /* Object */ && target.flags & 131068 /* Primitive */) {
63885
- tryElaborateErrorsForPrimitivesAndObjects(source, target);
63886
- }
63887
- else if (source.symbol && source.flags & 524288 /* Object */ && globalObjectType === source) {
63888
- reportError(ts.Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);
63889
- }
63890
- else if (isComparingJsxAttributes && target.flags & 2097152 /* Intersection */) {
63891
- var targetTypes = target.types;
63892
- var intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes, errorNode);
63893
- var intrinsicClassAttributes = getJsxType(JsxNames.IntrinsicClassAttributes, errorNode);
63894
- if (!isErrorType(intrinsicAttributes) && !isErrorType(intrinsicClassAttributes) &&
63895
- (ts.contains(targetTypes, intrinsicAttributes) || ts.contains(targetTypes, intrinsicClassAttributes))) {
63896
- // do not report top error
63897
- return result;
63898
- }
63899
- }
63900
- else {
63901
- errorInfo = elaborateNeverIntersection(errorInfo, originalTarget);
63902
- }
63903
- if (!headMessage && maybeSuppress) {
63904
- lastSkippedInfo = [source, target];
63905
- // Used by, eg, missing property checking to replace the top-level message with a more informative one
63906
- return result;
63907
- }
63908
- reportRelationError(headMessage, source, target);
63909
- }
63882
+ if (!headMessage && maybeSuppress) {
63883
+ lastSkippedInfo = [source, target];
63884
+ // Used by, eg, missing property checking to replace the top-level message with a more informative one
63885
+ return;
63910
63886
  }
63887
+ reportRelationError(headMessage, source, target);
63911
63888
  }
63912
63889
  function traceUnionsOrIntersectionsTooLarge(source, target) {
63913
63890
  if (!ts.tracing) {
@@ -63934,21 +63911,6 @@ var ts;
63934
63911
  }
63935
63912
  }
63936
63913
  }
63937
- function isIdenticalTo(source, target, recursionFlags) {
63938
- if (source.flags !== target.flags)
63939
- return 0 /* False */;
63940
- if (source.flags & 67358815 /* Singleton */)
63941
- return -1 /* True */;
63942
- traceUnionsOrIntersectionsTooLarge(source, target);
63943
- if (source.flags & 3145728 /* UnionOrIntersection */) {
63944
- var result_7 = eachTypeRelatedToSomeType(source, target);
63945
- if (result_7) {
63946
- result_7 &= eachTypeRelatedToSomeType(target, source);
63947
- }
63948
- return result_7;
63949
- }
63950
- return recursiveTypeRelatedTo(source, target, /*reportErrors*/ false, 0 /* None */, recursionFlags);
63951
- }
63952
63914
  function getTypeOfPropertyInTypes(types, name) {
63953
63915
  var appendPropType = function (propTypes, type) {
63954
63916
  var _a;
@@ -64047,6 +64009,41 @@ var ts;
64047
64009
  function shouldCheckAsExcessProperty(prop, container) {
64048
64010
  return prop.valueDeclaration && container.valueDeclaration && prop.valueDeclaration.parent === container.valueDeclaration;
64049
64011
  }
64012
+ function unionOrIntersectionRelatedTo(source, target, reportErrors, intersectionState) {
64013
+ // Note that these checks are specifically ordered to produce correct results. In particular,
64014
+ // we need to deconstruct unions before intersections (because unions are always at the top),
64015
+ // and we need to handle "each" relations before "some" relations for the same kind of type.
64016
+ if (source.flags & 1048576 /* Union */) {
64017
+ return relation === comparableRelation ?
64018
+ someTypeRelatedToType(source, target, reportErrors && !(source.flags & 131068 /* Primitive */), intersectionState) :
64019
+ eachTypeRelatedToType(source, target, reportErrors && !(source.flags & 131068 /* Primitive */), intersectionState);
64020
+ }
64021
+ if (target.flags & 1048576 /* Union */) {
64022
+ return typeRelatedToSomeType(getRegularTypeOfObjectLiteral(source), target, reportErrors && !(source.flags & 131068 /* Primitive */) && !(target.flags & 131068 /* Primitive */));
64023
+ }
64024
+ if (target.flags & 2097152 /* Intersection */) {
64025
+ return typeRelatedToEachType(getRegularTypeOfObjectLiteral(source), target, reportErrors, 2 /* Target */);
64026
+ }
64027
+ // Source is an intersection. For the comparable relation, if the target is a primitive type we hoist the
64028
+ // constraints of all non-primitive types in the source into a new intersection. We do this because the
64029
+ // intersection may further constrain the constraints of the non-primitive types. For example, given a type
64030
+ // parameter 'T extends 1 | 2', the intersection 'T & 1' should be reduced to '1' such that it doesn't
64031
+ // appear to be comparable to '2'.
64032
+ if (relation === comparableRelation && target.flags & 131068 /* Primitive */) {
64033
+ var constraints = ts.sameMap(source.types, getBaseConstraintOrType);
64034
+ if (constraints !== source.types) {
64035
+ source = getIntersectionType(constraints);
64036
+ if (!(source.flags & 2097152 /* Intersection */)) {
64037
+ return isRelatedTo(source, target, 1 /* Source */, /*reportErrors*/ false);
64038
+ }
64039
+ }
64040
+ }
64041
+ // Check to see if any constituents of the intersection are immediately related to the target.
64042
+ // Don't report errors though. Elaborating on whether a source constituent is related to the target is
64043
+ // not actually useful and leads to some confusing error messages. Instead, we rely on the caller
64044
+ // checking whether the full intersection viewed as an object is related to the target.
64045
+ return someTypeRelatedToType(source, target, /*reportErrors*/ false, 1 /* Source */);
64046
+ }
64050
64047
  function eachTypeRelatedToSomeType(source, target) {
64051
64048
  var result = -1 /* True */;
64052
64049
  var sourceTypes = source.types;
@@ -64082,8 +64079,11 @@ var ts;
64082
64079
  }
64083
64080
  }
64084
64081
  if (reportErrors) {
64082
+ // Elaborate only if we can find a best matching type in the target union
64085
64083
  var bestMatchingType = getBestMatchingType(source, target, isRelatedTo);
64086
- isRelatedTo(source, bestMatchingType || targetTypes[targetTypes.length - 1], 2 /* Target */, /*reportErrors*/ true);
64084
+ if (bestMatchingType) {
64085
+ isRelatedTo(source, bestMatchingType, 2 /* Target */, /*reportErrors*/ true);
64086
+ }
64087
64087
  }
64088
64088
  return 0 /* False */;
64089
64089
  }
@@ -64219,7 +64219,7 @@ var ts;
64219
64219
  if (overflow) {
64220
64220
  return 0 /* False */;
64221
64221
  }
64222
- var keyIntersectionState = intersectionState | (inPropertyCheck ? 16 /* InPropertyCheck */ : 0);
64222
+ var keyIntersectionState = intersectionState | (inPropertyCheck ? 8 /* InPropertyCheck */ : 0);
64223
64223
  var id = getRelationKey(source, target, keyIntersectionState, relation, /*ingnoreConstraints*/ false);
64224
64224
  var entry = relation.get(id);
64225
64225
  if (entry !== undefined) {
@@ -64287,6 +64287,7 @@ var ts;
64287
64287
  return originalHandler(onlyUnreliable);
64288
64288
  };
64289
64289
  }
64290
+ var result;
64290
64291
  if (expandingFlags === 3 /* Both */) {
64291
64292
  ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.instant("checkTypes" /* CheckTypes */, "recursiveTypeRelatedTo_DepthLimit", {
64292
64293
  sourceId: source.id,
@@ -64296,8 +64297,13 @@ var ts;
64296
64297
  depth: sourceDepth,
64297
64298
  targetDepth: targetDepth
64298
64299
  });
64300
+ result = 3 /* Maybe */;
64301
+ }
64302
+ else {
64303
+ ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.push("checkTypes" /* CheckTypes */, "structuredTypeRelatedTo", { sourceId: source.id, targetId: target.id });
64304
+ result = structuredTypeRelatedTo(source, target, reportErrors, intersectionState);
64305
+ ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.pop();
64299
64306
  }
64300
- var result = expandingFlags !== 3 /* Both */ ? structuredTypeRelatedTo(source, target, reportErrors, intersectionState) : 3 /* Maybe */;
64301
64307
  if (outofbandVarianceMarkerHandler) {
64302
64308
  outofbandVarianceMarkerHandler = originalHandler;
64303
64309
  }
@@ -64329,98 +64335,97 @@ var ts;
64329
64335
  return result;
64330
64336
  }
64331
64337
  function structuredTypeRelatedTo(source, target, reportErrors, intersectionState) {
64332
- ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.push("checkTypes" /* CheckTypes */, "structuredTypeRelatedTo", { sourceId: source.id, targetId: target.id });
64333
- var result = structuredTypeRelatedToWorker(source, target, reportErrors, intersectionState);
64334
- ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.pop();
64335
- return result;
64336
- }
64337
- function structuredTypeRelatedToWorker(source, target, reportErrors, intersectionState) {
64338
64338
  if (intersectionState & 4 /* PropertyCheck */) {
64339
64339
  return propertiesRelatedTo(source, target, reportErrors, /*excludedProperties*/ undefined, 0 /* None */);
64340
64340
  }
64341
- if (intersectionState & 8 /* UnionIntersectionCheck */) {
64342
- // Note that these checks are specifically ordered to produce correct results. In particular,
64343
- // we need to deconstruct unions before intersections (because unions are always at the top),
64344
- // and we need to handle "each" relations before "some" relations for the same kind of type.
64345
- if (source.flags & 1048576 /* Union */) {
64346
- return relation === comparableRelation ?
64347
- someTypeRelatedToType(source, target, reportErrors && !(source.flags & 131068 /* Primitive */), intersectionState & ~8 /* UnionIntersectionCheck */) :
64348
- eachTypeRelatedToType(source, target, reportErrors && !(source.flags & 131068 /* Primitive */), intersectionState & ~8 /* UnionIntersectionCheck */);
64349
- }
64350
- if (target.flags & 1048576 /* Union */) {
64351
- return typeRelatedToSomeType(getRegularTypeOfObjectLiteral(source), target, reportErrors && !(source.flags & 131068 /* Primitive */) && !(target.flags & 131068 /* Primitive */));
64352
- }
64353
- if (target.flags & 2097152 /* Intersection */) {
64354
- return typeRelatedToEachType(getRegularTypeOfObjectLiteral(source), target, reportErrors, 2 /* Target */);
64355
- }
64356
- // Source is an intersection. For the comparable relation, if the target is a primitive type we hoist the
64357
- // constraints of all non-primitive types in the source into a new intersection. We do this because the
64358
- // intersection may further constrain the constraints of the non-primitive types. For example, given a type
64359
- // parameter 'T extends 1 | 2', the intersection 'T & 1' should be reduced to '1' such that it doesn't
64360
- // appear to be comparable to '2'.
64361
- if (relation === comparableRelation && target.flags & 131068 /* Primitive */) {
64362
- var constraints = ts.sameMap(source.types, getBaseConstraintOrType);
64363
- if (constraints !== source.types) {
64364
- source = getIntersectionType(constraints);
64365
- if (!(source.flags & 2097152 /* Intersection */)) {
64366
- return isRelatedTo(source, target, 1 /* Source */, /*reportErrors*/ false);
64367
- }
64341
+ var result;
64342
+ var originalErrorInfo;
64343
+ var varianceCheckFailed = false;
64344
+ var saveErrorInfo = captureErrorCalculationState();
64345
+ var sourceFlags = source.flags;
64346
+ var targetFlags = target.flags;
64347
+ if (relation === identityRelation) {
64348
+ // We've already checked that source.flags and target.flags are identical
64349
+ if (sourceFlags & 3145728 /* UnionOrIntersection */) {
64350
+ var result_8 = eachTypeRelatedToSomeType(source, target);
64351
+ if (result_8) {
64352
+ result_8 &= eachTypeRelatedToSomeType(target, source);
64368
64353
  }
64354
+ return result_8;
64369
64355
  }
64370
- // Check to see if any constituents of the intersection are immediately related to the target.
64371
- //
64372
- // Don't report errors though. Checking whether a constituent is related to the source is not actually
64373
- // useful and leads to some confusing error messages. Instead it is better to let the below checks
64374
- // take care of this, or to not elaborate at all. For instance,
64375
- //
64376
- // - For an object type (such as 'C = A & B'), users are usually more interested in structural errors.
64377
- //
64378
- // - For a union type (such as '(A | B) = (C & D)'), it's better to hold onto the whole intersection
64379
- // than to report that 'D' is not assignable to 'A' or 'B'.
64380
- //
64381
- // - For a primitive type or type parameter (such as 'number = A & B') there is no point in
64382
- // breaking the intersection apart.
64383
- return someTypeRelatedToType(source, target, /*reportErrors*/ false, 1 /* Source */);
64384
- }
64385
- var flags = source.flags & target.flags;
64386
- if (relation === identityRelation && !(flags & 524288 /* Object */)) {
64387
- if (flags & 4194304 /* Index */) {
64356
+ if (sourceFlags & 4194304 /* Index */) {
64388
64357
  return isRelatedTo(source.type, target.type, 3 /* Both */, /*reportErrors*/ false);
64389
64358
  }
64390
- var result_8 = 0 /* False */;
64391
- if (flags & 8388608 /* IndexedAccess */) {
64392
- if (result_8 = isRelatedTo(source.objectType, target.objectType, 3 /* Both */, /*reportErrors*/ false)) {
64393
- if (result_8 &= isRelatedTo(source.indexType, target.indexType, 3 /* Both */, /*reportErrors*/ false)) {
64394
- return result_8;
64359
+ if (sourceFlags & 8388608 /* IndexedAccess */) {
64360
+ if (result = isRelatedTo(source.objectType, target.objectType, 3 /* Both */, /*reportErrors*/ false)) {
64361
+ if (result &= isRelatedTo(source.indexType, target.indexType, 3 /* Both */, /*reportErrors*/ false)) {
64362
+ return result;
64395
64363
  }
64396
64364
  }
64397
64365
  }
64398
- if (flags & 16777216 /* Conditional */) {
64366
+ if (sourceFlags & 16777216 /* Conditional */) {
64399
64367
  if (source.root.isDistributive === target.root.isDistributive) {
64400
- if (result_8 = isRelatedTo(source.checkType, target.checkType, 3 /* Both */, /*reportErrors*/ false)) {
64401
- if (result_8 &= isRelatedTo(source.extendsType, target.extendsType, 3 /* Both */, /*reportErrors*/ false)) {
64402
- if (result_8 &= isRelatedTo(getTrueTypeFromConditionalType(source), getTrueTypeFromConditionalType(target), 3 /* Both */, /*reportErrors*/ false)) {
64403
- if (result_8 &= isRelatedTo(getFalseTypeFromConditionalType(source), getFalseTypeFromConditionalType(target), 3 /* Both */, /*reportErrors*/ false)) {
64404
- return result_8;
64368
+ if (result = isRelatedTo(source.checkType, target.checkType, 3 /* Both */, /*reportErrors*/ false)) {
64369
+ if (result &= isRelatedTo(source.extendsType, target.extendsType, 3 /* Both */, /*reportErrors*/ false)) {
64370
+ if (result &= isRelatedTo(getTrueTypeFromConditionalType(source), getTrueTypeFromConditionalType(target), 3 /* Both */, /*reportErrors*/ false)) {
64371
+ if (result &= isRelatedTo(getFalseTypeFromConditionalType(source), getFalseTypeFromConditionalType(target), 3 /* Both */, /*reportErrors*/ false)) {
64372
+ return result;
64405
64373
  }
64406
64374
  }
64407
64375
  }
64408
64376
  }
64409
64377
  }
64410
64378
  }
64411
- if (flags & 33554432 /* Substitution */) {
64379
+ if (sourceFlags & 33554432 /* Substitution */) {
64412
64380
  return isRelatedTo(source.substitute, target.substitute, 3 /* Both */, /*reportErrors*/ false);
64413
64381
  }
64414
- return 0 /* False */;
64382
+ if (!(sourceFlags & 524288 /* Object */)) {
64383
+ return 0 /* False */;
64384
+ }
64385
+ }
64386
+ else if (sourceFlags & 3145728 /* UnionOrIntersection */ || targetFlags & 3145728 /* UnionOrIntersection */) {
64387
+ if (result = unionOrIntersectionRelatedTo(source, target, reportErrors, intersectionState)) {
64388
+ return result;
64389
+ }
64390
+ if (source.flags & 2097152 /* Intersection */ || source.flags & 262144 /* TypeParameter */ && target.flags & 1048576 /* Union */) {
64391
+ // The combined constraint of an intersection type is the intersection of the constraints of
64392
+ // the constituents. When an intersection type contains instantiable types with union type
64393
+ // constraints, there are situations where we need to examine the combined constraint. One is
64394
+ // when the target is a union type. Another is when the intersection contains types belonging
64395
+ // to one of the disjoint domains. For example, given type variables T and U, each with the
64396
+ // constraint 'string | number', the combined constraint of 'T & U' is 'string | number' and
64397
+ // we need to check this constraint against a union on the target side. Also, given a type
64398
+ // variable V constrained to 'string | number', 'V & number' has a combined constraint of
64399
+ // 'string & number | number & number' which reduces to just 'number'.
64400
+ // This also handles type parameters, as a type parameter with a union constraint compared against a union
64401
+ // needs to have its constraint hoisted into an intersection with said type parameter, this way
64402
+ // the type param can be compared with itself in the target (with the influence of its constraint to match other parts)
64403
+ // For example, if `T extends 1 | 2` and `U extends 2 | 3` and we compare `T & U` to `T & U & (1 | 2 | 3)`
64404
+ var constraint = getEffectiveConstraintOfIntersection(source.flags & 2097152 /* Intersection */ ? source.types : [source], !!(target.flags & 1048576 /* Union */));
64405
+ if (constraint && everyType(constraint, function (c) { return c !== source; })) { // Skip comparison if expansion contains the source itself
64406
+ // TODO: Stack errors so we get a pyramid for the "normal" comparison above, _and_ a second for this
64407
+ if (result = isRelatedTo(constraint, target, 1 /* Source */, /*reportErrors*/ false, /*headMessage*/ undefined, intersectionState)) {
64408
+ resetErrorInfo(saveErrorInfo);
64409
+ return result;
64410
+ }
64411
+ }
64412
+ }
64413
+ // The ordered decomposition above doesn't handle all cases. Specifically, we also need to handle:
64414
+ // Source is instantiable (e.g. source has union or intersection constraint).
64415
+ // Source is an object, target is a union (e.g. { a, b: boolean } <=> { a, b: true } | { a, b: false }).
64416
+ // Source is an intersection, target is an object (e.g. { a } & { b } <=> { a, b }).
64417
+ // Source is an intersection, target is a union (e.g. { a } & { b: boolean } <=> { a, b: true } | { a, b: false }).
64418
+ // Source is an intersection, target instantiable (e.g. string & { tag } <=> T["a"] constrained to string & { tag }).
64419
+ if (!(sourceFlags & 465829888 /* Instantiable */ ||
64420
+ sourceFlags & 524288 /* Object */ && targetFlags & 1048576 /* Union */ ||
64421
+ sourceFlags & 2097152 /* Intersection */ && targetFlags & (524288 /* Object */ | 1048576 /* Union */ | 465829888 /* Instantiable */))) {
64422
+ return 0 /* False */;
64423
+ }
64415
64424
  }
64416
- var result;
64417
- var originalErrorInfo;
64418
- var varianceCheckFailed = false;
64419
- var saveErrorInfo = captureErrorCalculationState();
64420
64425
  // We limit alias variance probing to only object and conditional types since their alias behavior
64421
64426
  // is more predictable than other, interned types, which may or may not have an alias depending on
64422
64427
  // the order in which things were checked.
64423
- if (source.flags & (524288 /* Object */ | 16777216 /* Conditional */) && source.aliasSymbol &&
64428
+ if (sourceFlags & (524288 /* Object */ | 16777216 /* Conditional */) && source.aliasSymbol &&
64424
64429
  source.aliasTypeArguments && source.aliasSymbol === target.aliasSymbol &&
64425
64430
  !(source.aliasTypeArgumentsContainsMarker || target.aliasTypeArgumentsContainsMarker)) {
64426
64431
  var variances = getAliasVariances(source.aliasSymbol);
@@ -64438,7 +64443,7 @@ var ts;
64438
64443
  isSingleElementGenericTupleType(target) && (target.target.readonly || isMutableArrayOrTuple(getBaseConstraintOfType(source) || source)) && (result = isRelatedTo(source, getTypeArguments(target)[0], 2 /* Target */))) {
64439
64444
  return result;
64440
64445
  }
64441
- if (target.flags & 262144 /* TypeParameter */) {
64446
+ if (targetFlags & 262144 /* TypeParameter */) {
64442
64447
  // A source type { [P in Q]: X } is related to a target type T if keyof T is related to Q and X is related to T[Q].
64443
64448
  if (ts.getObjectFlags(source) & 32 /* Mapped */ && !source.declaration.nameType && isRelatedTo(getIndexType(target), getConstraintTypeFromMappedType(source), 3 /* Both */)) {
64444
64449
  if (!(getMappedTypeModifiers(source) & 4 /* IncludeOptional */)) {
@@ -64450,10 +64455,10 @@ var ts;
64450
64455
  }
64451
64456
  }
64452
64457
  }
64453
- else if (target.flags & 4194304 /* Index */) {
64458
+ else if (targetFlags & 4194304 /* Index */) {
64454
64459
  var targetType_1 = target.type;
64455
64460
  // A keyof S is related to a keyof T if T is related to S.
64456
- if (source.flags & 4194304 /* Index */) {
64461
+ if (sourceFlags & 4194304 /* Index */) {
64457
64462
  if (result = isRelatedTo(targetType_1, source.type, 3 /* Both */, /*reportErrors*/ false)) {
64458
64463
  return result;
64459
64464
  }
@@ -64504,8 +64509,8 @@ var ts;
64504
64509
  }
64505
64510
  }
64506
64511
  }
64507
- else if (target.flags & 8388608 /* IndexedAccess */) {
64508
- if (source.flags & 8388608 /* IndexedAccess */) {
64512
+ else if (targetFlags & 8388608 /* IndexedAccess */) {
64513
+ if (sourceFlags & 8388608 /* IndexedAccess */) {
64509
64514
  // Relate components directly before falling back to constraint relationships
64510
64515
  // A type S[K] is related to a type T[J] if S is related to T and K is related to J.
64511
64516
  if (result = isRelatedTo(source.objectType, target.objectType, 3 /* Both */, reportErrors)) {
@@ -64611,7 +64616,7 @@ var ts;
64611
64616
  }
64612
64617
  }
64613
64618
  }
64614
- else if (target.flags & 16777216 /* Conditional */) {
64619
+ else if (targetFlags & 16777216 /* Conditional */) {
64615
64620
  // If we reach 10 levels of nesting for the same conditional type, assume it is an infinitely expanding recursive
64616
64621
  // conditional type and bail out with a Ternary.Maybe result.
64617
64622
  if (isDeeplyNestedType(target, targetStack, targetDepth, 10)) {
@@ -64636,8 +64641,8 @@ var ts;
64636
64641
  }
64637
64642
  }
64638
64643
  }
64639
- else if (target.flags & 134217728 /* TemplateLiteral */) {
64640
- if (source.flags & 134217728 /* TemplateLiteral */) {
64644
+ else if (targetFlags & 134217728 /* TemplateLiteral */) {
64645
+ if (sourceFlags & 134217728 /* TemplateLiteral */) {
64641
64646
  if (relation === comparableRelation) {
64642
64647
  return templateLiteralTypesDefinitelyUnrelated(source, target) ? 0 /* False */ : -1 /* True */;
64643
64648
  }
@@ -64649,11 +64654,11 @@ var ts;
64649
64654
  return -1 /* True */;
64650
64655
  }
64651
64656
  }
64652
- if (source.flags & 8650752 /* TypeVariable */) {
64653
- // IndexedAccess comparisons are handled above in the `target.flags & TypeFlage.IndexedAccess` branch
64654
- if (!(source.flags & 8388608 /* IndexedAccess */ && target.flags & 8388608 /* IndexedAccess */)) {
64657
+ if (sourceFlags & 8650752 /* TypeVariable */) {
64658
+ // IndexedAccess comparisons are handled above in the `targetFlags & TypeFlage.IndexedAccess` branch
64659
+ if (!(sourceFlags & 8388608 /* IndexedAccess */ && targetFlags & 8388608 /* IndexedAccess */)) {
64655
64660
  var constraint = getConstraintOfType(source);
64656
- if (!constraint || (source.flags & 262144 /* TypeParameter */ && constraint.flags & 1 /* Any */)) {
64661
+ if (!constraint || (sourceFlags & 262144 /* TypeParameter */ && constraint.flags & 1 /* Any */)) {
64657
64662
  // A type variable with no constraint is not related to the non-primitive object type.
64658
64663
  if (result = isRelatedTo(emptyObjectType, extractTypesOfKind(target, ~67108864 /* NonPrimitive */), 3 /* Both */)) {
64659
64664
  resetErrorInfo(saveErrorInfo);
@@ -64666,7 +64671,7 @@ var ts;
64666
64671
  return result;
64667
64672
  }
64668
64673
  // slower, fuller, this-instantiated check (necessary when comparing raw `this` types from base classes), see `subclassWithPolymorphicThisIsAssignable.ts` test for example
64669
- else if (result = isRelatedTo(getTypeWithThisArgument(constraint, source), target, 1 /* Source */, reportErrors && !(target.flags & source.flags & 262144 /* TypeParameter */), /*headMessage*/ undefined, intersectionState)) {
64674
+ else if (result = isRelatedTo(getTypeWithThisArgument(constraint, source), target, 1 /* Source */, reportErrors && !(targetFlags & sourceFlags & 262144 /* TypeParameter */), /*headMessage*/ undefined, intersectionState)) {
64670
64675
  resetErrorInfo(saveErrorInfo);
64671
64676
  return result;
64672
64677
  }
@@ -64683,14 +64688,14 @@ var ts;
64683
64688
  }
64684
64689
  }
64685
64690
  }
64686
- else if (source.flags & 4194304 /* Index */) {
64691
+ else if (sourceFlags & 4194304 /* Index */) {
64687
64692
  if (result = isRelatedTo(keyofConstraintType, target, 1 /* Source */, reportErrors)) {
64688
64693
  resetErrorInfo(saveErrorInfo);
64689
64694
  return result;
64690
64695
  }
64691
64696
  }
64692
- else if (source.flags & 134217728 /* TemplateLiteral */ && !(target.flags & 524288 /* Object */)) {
64693
- if (!(target.flags & 134217728 /* TemplateLiteral */)) {
64697
+ else if (sourceFlags & 134217728 /* TemplateLiteral */ && !(targetFlags & 524288 /* Object */)) {
64698
+ if (!(targetFlags & 134217728 /* TemplateLiteral */)) {
64694
64699
  var constraint = getBaseConstraintOfType(source);
64695
64700
  if (constraint && constraint !== source && (result = isRelatedTo(constraint, target, 1 /* Source */, reportErrors))) {
64696
64701
  resetErrorInfo(saveErrorInfo);
@@ -64698,8 +64703,8 @@ var ts;
64698
64703
  }
64699
64704
  }
64700
64705
  }
64701
- else if (source.flags & 268435456 /* StringMapping */) {
64702
- if (target.flags & 268435456 /* StringMapping */ && source.symbol === target.symbol) {
64706
+ else if (sourceFlags & 268435456 /* StringMapping */) {
64707
+ if (targetFlags & 268435456 /* StringMapping */ && source.symbol === target.symbol) {
64703
64708
  if (result = isRelatedTo(source.type, target.type, 3 /* Both */, reportErrors)) {
64704
64709
  resetErrorInfo(saveErrorInfo);
64705
64710
  return result;
@@ -64713,14 +64718,14 @@ var ts;
64713
64718
  }
64714
64719
  }
64715
64720
  }
64716
- else if (source.flags & 16777216 /* Conditional */) {
64721
+ else if (sourceFlags & 16777216 /* Conditional */) {
64717
64722
  // If we reach 10 levels of nesting for the same conditional type, assume it is an infinitely expanding recursive
64718
64723
  // conditional type and bail out with a Ternary.Maybe result.
64719
64724
  if (isDeeplyNestedType(source, sourceStack, sourceDepth, 10)) {
64720
64725
  resetErrorInfo(saveErrorInfo);
64721
64726
  return 3 /* Maybe */;
64722
64727
  }
64723
- if (target.flags & 16777216 /* Conditional */) {
64728
+ if (targetFlags & 16777216 /* Conditional */) {
64724
64729
  // Two conditional types 'T1 extends U1 ? X1 : Y1' and 'T2 extends U2 ? X2 : Y2' are related if
64725
64730
  // one of T1 and T2 is related to the other, U1 and U2 are identical types, X1 is related to X2,
64726
64731
  // and Y1 is related to Y2.
@@ -64780,9 +64785,10 @@ var ts;
64780
64785
  }
64781
64786
  return 0 /* False */;
64782
64787
  }
64783
- var sourceIsPrimitive = !!(source.flags & 131068 /* Primitive */);
64788
+ var sourceIsPrimitive = !!(sourceFlags & 131068 /* Primitive */);
64784
64789
  if (relation !== identityRelation) {
64785
64790
  source = getApparentType(source);
64791
+ sourceFlags = source.flags;
64786
64792
  }
64787
64793
  else if (isGenericMappedType(source)) {
64788
64794
  return 0 /* False */;
@@ -64824,7 +64830,7 @@ var ts;
64824
64830
  // In a check of the form X = A & B, we will have previously checked if A relates to X or B relates
64825
64831
  // to X. Failing both of those we want to check if the aggregation of A and B's members structurally
64826
64832
  // relates to X. Thus, we include intersection types on the source side here.
64827
- if (source.flags & (524288 /* Object */ | 2097152 /* Intersection */) && target.flags & 524288 /* Object */) {
64833
+ if (sourceFlags & (524288 /* Object */ | 2097152 /* Intersection */) && targetFlags & 524288 /* Object */) {
64828
64834
  // Report structural errors only if we haven't reported any errors yet
64829
64835
  var reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo.errorInfo && !sourceIsPrimitive;
64830
64836
  result = propertiesRelatedTo(source, target, reportStructuralErrors, /*excludedProperties*/ undefined, intersectionState);
@@ -64848,7 +64854,7 @@ var ts;
64848
64854
  // there exists a constituent of T for every combination of the discriminants of S
64849
64855
  // with respect to T. We do not report errors here, as we will use the existing
64850
64856
  // error result from checking each constituent of the union.
64851
- if (source.flags & (524288 /* Object */ | 2097152 /* Intersection */) && target.flags & 1048576 /* Union */) {
64857
+ if (sourceFlags & (524288 /* Object */ | 2097152 /* Intersection */) && targetFlags & 1048576 /* Union */) {
64852
64858
  var objectOnlyTarget = extractTypesOfKind(target, 524288 /* Object */ | 2097152 /* Intersection */ | 33554432 /* Substitution */);
64853
64859
  if (objectOnlyTarget.flags & 1048576 /* Union */) {
64854
64860
  var result_9 = typeRelatedToDiscriminatedType(source, objectOnlyTarget);
@@ -65363,7 +65369,6 @@ var ts;
65363
65369
  }
65364
65370
  }
65365
65371
  var result = -1 /* True */;
65366
- var saveErrorInfo = captureErrorCalculationState();
65367
65372
  var incompatibleReporter = kind === 1 /* Construct */ ? reportIncompatibleConstructSignatureReturn : reportIncompatibleCallSignatureReturn;
65368
65373
  var sourceObjectFlags = ts.getObjectFlags(source);
65369
65374
  var targetObjectFlags = ts.getObjectFlags(target);
@@ -65404,6 +65409,7 @@ var ts;
65404
65409
  else {
65405
65410
  outer: for (var _i = 0, targetSignatures_1 = targetSignatures; _i < targetSignatures_1.length; _i++) {
65406
65411
  var t = targetSignatures_1[_i];
65412
+ var saveErrorInfo = captureErrorCalculationState();
65407
65413
  // Only elaborate errors from the first failure
65408
65414
  var shouldElaborateErrors = reportErrors;
65409
65415
  for (var _c = 0, sourceSignatures_1 = sourceSignatures; _c < sourceSignatures_1.length; _c++) {
@@ -65777,7 +65783,7 @@ var ts;
65777
65783
  var constraintMarker = "";
65778
65784
  var sourceId = getTypeReferenceId(source, 0);
65779
65785
  var targetId = getTypeReferenceId(target, 0);
65780
- return "" + constraintMarker + sourceId + "," + targetId + postFix;
65786
+ return "".concat(constraintMarker).concat(sourceId, ",").concat(targetId).concat(postFix);
65781
65787
  // getTypeReferenceId(A<T, number, U>) returns "111=0-12=1"
65782
65788
  // where A.id=111 and number.id=12
65783
65789
  function getTypeReferenceId(type, depth) {
@@ -65821,7 +65827,7 @@ var ts;
65821
65827
  var postFix = intersectionState ? ":" + intersectionState : "";
65822
65828
  return isTypeReferenceWithGenericArguments(source) && isTypeReferenceWithGenericArguments(target) ?
65823
65829
  getGenericTypeReferenceRelationKey(source, target, postFix, ignoreConstraints) :
65824
- source.id + "," + target.id + postFix;
65830
+ "".concat(source.id, ",").concat(target.id).concat(postFix);
65825
65831
  }
65826
65832
  // Invoke the callback for each underlying property symbol of the given symbol and return the first
65827
65833
  // value that isn't undefined.
@@ -67948,11 +67954,11 @@ var ts;
67948
67954
  case 79 /* Identifier */:
67949
67955
  if (!ts.isThisInTypeQuery(node)) {
67950
67956
  var symbol = getResolvedSymbol(node);
67951
- return symbol !== unknownSymbol ? (flowContainer ? getNodeId(flowContainer) : "-1") + "|" + getTypeId(declaredType) + "|" + getTypeId(initialType) + "|" + getSymbolId(symbol) : undefined;
67957
+ return symbol !== unknownSymbol ? "".concat(flowContainer ? getNodeId(flowContainer) : "-1", "|").concat(getTypeId(declaredType), "|").concat(getTypeId(initialType), "|").concat(getSymbolId(symbol)) : undefined;
67952
67958
  }
67953
67959
  // falls through
67954
67960
  case 108 /* ThisKeyword */:
67955
- return "0|" + (flowContainer ? getNodeId(flowContainer) : "-1") + "|" + getTypeId(declaredType) + "|" + getTypeId(initialType);
67961
+ return "0|".concat(flowContainer ? getNodeId(flowContainer) : "-1", "|").concat(getTypeId(declaredType), "|").concat(getTypeId(initialType));
67956
67962
  case 229 /* NonNullExpression */:
67957
67963
  case 211 /* ParenthesizedExpression */:
67958
67964
  return getFlowCacheKey(node.expression, declaredType, initialType, flowContainer);
@@ -68574,9 +68580,6 @@ var ts;
68574
68580
  getUnionType(ts.map(type.types, mapper), 1 /* Literal */, aliasSymbol, aliasTypeArguments) :
68575
68581
  mapType(type, mapper);
68576
68582
  }
68577
- function getConstituentCount(type) {
68578
- return type.flags & 1048576 /* Union */ ? type.types.length : 1;
68579
- }
68580
68583
  function extractTypesOfKind(type, kind) {
68581
68584
  return filterType(type, function (t) { return (t.flags & kind) !== 0; });
68582
68585
  }
@@ -70150,7 +70153,7 @@ var ts;
70150
70153
  var substituteConstraints = !(checkMode && checkMode & 2 /* Inferential */) &&
70151
70154
  someType(type, isGenericTypeWithUnionConstraint) &&
70152
70155
  (isConstraintPosition(type, reference) || hasContextualTypeWithNoGenericTypes(reference, checkMode));
70153
- return substituteConstraints ? mapType(type, function (t) { return t.flags & 465829888 /* Instantiable */ && !isMappedTypeGenericIndexedAccess(t) ? getBaseConstraintOrType(t) : t; }) : type;
70156
+ return substituteConstraints ? mapType(type, function (t) { return t.flags & 465829888 /* Instantiable */ ? getBaseConstraintOrType(t) : t; }) : type;
70154
70157
  }
70155
70158
  function isExportOrExportExpression(location) {
70156
70159
  return !!ts.findAncestor(location, function (n) {
@@ -70222,6 +70225,9 @@ var ts;
70222
70225
  if (parentType && parentType.flags & 1048576 /* Union */ && !(parent.kind === 163 /* Parameter */ && isSymbolAssigned(symbol))) {
70223
70226
  var pattern = declaration.parent;
70224
70227
  var narrowedType = getFlowTypeOfReference(pattern, parentType, parentType, /*flowContainer*/ undefined, location.flowNode);
70228
+ if (narrowedType.flags & 131072 /* Never */) {
70229
+ return neverType;
70230
+ }
70225
70231
  return getBindingElementTypeFromParentType(declaration, narrowedType);
70226
70232
  }
70227
70233
  }
@@ -71841,7 +71847,7 @@ var ts;
71841
71847
  !leftName ? rightName :
71842
71848
  !rightName ? leftName :
71843
71849
  undefined;
71844
- var paramSymbol = createSymbol(1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0), paramName || "arg" + i);
71850
+ var paramSymbol = createSymbol(1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0), paramName || "arg".concat(i));
71845
71851
  paramSymbol.type = isRestParam ? createArrayType(unionParamType) : unionParamType;
71846
71852
  params[i] = paramSymbol;
71847
71853
  }
@@ -76242,21 +76248,22 @@ var ts;
76242
76248
  if (links.type === unknownType) {
76243
76249
  links.type = getTypeFromBindingPattern(declaration.name);
76244
76250
  }
76245
- assignBindingElementTypes(declaration.name);
76251
+ assignBindingElementTypes(declaration.name, links.type);
76246
76252
  }
76247
76253
  }
76248
76254
  }
76249
76255
  // When contextual typing assigns a type to a parameter that contains a binding pattern, we also need to push
76250
76256
  // the destructured type into the contained binding elements.
76251
- function assignBindingElementTypes(pattern) {
76257
+ function assignBindingElementTypes(pattern, parentType) {
76252
76258
  for (var _i = 0, _a = pattern.elements; _i < _a.length; _i++) {
76253
76259
  var element = _a[_i];
76254
76260
  if (!ts.isOmittedExpression(element)) {
76261
+ var type = getBindingElementTypeFromParentType(element, parentType);
76255
76262
  if (element.name.kind === 79 /* Identifier */) {
76256
- getSymbolLinks(getSymbolOfNode(element)).type = getTypeForBindingElement(element);
76263
+ getSymbolLinks(getSymbolOfNode(element)).type = type;
76257
76264
  }
76258
76265
  else {
76259
- assignBindingElementTypes(element.name);
76266
+ assignBindingElementTypes(element.name, type);
76260
76267
  }
76261
76268
  }
76262
76269
  }
@@ -79997,28 +80004,24 @@ var ts;
79997
80004
  if (returnType.flags & 1 /* Any */) {
79998
80005
  return;
79999
80006
  }
80007
+ var headMessage;
80000
80008
  var expectedReturnType;
80001
- var headMessage = getDiagnosticHeadMessageForDecoratorResolution(node);
80002
- var errorInfo;
80003
80009
  switch (node.parent.kind) {
80004
80010
  case 256 /* ClassDeclaration */:
80011
+ headMessage = ts.Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1;
80005
80012
  var classSymbol = getSymbolOfNode(node.parent);
80006
80013
  var classConstructorType = getTypeOfSymbol(classSymbol);
80007
80014
  expectedReturnType = getUnionType([classConstructorType, voidType]);
80008
80015
  break;
80009
- case 163 /* Parameter */:
80010
- expectedReturnType = voidType;
80011
- errorInfo = ts.chainDiagnosticMessages(
80012
- /*details*/ undefined, ts.Diagnostics.The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any);
80013
- break;
80014
80016
  case 166 /* PropertyDeclaration */:
80017
+ case 163 /* Parameter */:
80018
+ headMessage = ts.Diagnostics.Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any;
80015
80019
  expectedReturnType = voidType;
80016
- errorInfo = ts.chainDiagnosticMessages(
80017
- /*details*/ undefined, ts.Diagnostics.The_return_type_of_a_property_decorator_function_must_be_either_void_or_any);
80018
80020
  break;
80019
80021
  case 168 /* MethodDeclaration */:
80020
80022
  case 171 /* GetAccessor */:
80021
80023
  case 172 /* SetAccessor */:
80024
+ headMessage = ts.Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1;
80022
80025
  var methodType = getTypeOfNode(node.parent);
80023
80026
  var descriptorType = createTypedPropertyDescriptorType(methodType);
80024
80027
  expectedReturnType = getUnionType([descriptorType, voidType]);
@@ -80026,7 +80029,7 @@ var ts;
80026
80029
  default:
80027
80030
  return ts.Debug.fail();
80028
80031
  }
80029
- checkTypeAssignableTo(returnType, expectedReturnType, node, headMessage, function () { return errorInfo; });
80032
+ checkTypeAssignableTo(returnType, expectedReturnType, node, headMessage);
80030
80033
  }
80031
80034
  /**
80032
80035
  * If a TypeNode can be resolved to a value symbol imported from an external module, it is
@@ -81708,7 +81711,7 @@ var ts;
81708
81711
  function getPropertyNameForKnownSymbolName(symbolName) {
81709
81712
  var ctorType = getGlobalESSymbolConstructorSymbol(/*reportErrors*/ false);
81710
81713
  var uniqueType = ctorType && getTypeOfPropertyOfType(getTypeOfSymbol(ctorType), ts.escapeLeadingUnderscores(symbolName));
81711
- return uniqueType && isTypeUsableAsPropertyName(uniqueType) ? getPropertyNameFromType(uniqueType) : "__@" + symbolName;
81714
+ return uniqueType && isTypeUsableAsPropertyName(uniqueType) ? getPropertyNameFromType(uniqueType) : "__@".concat(symbolName);
81712
81715
  }
81713
81716
  /**
81714
81717
  * Gets the *yield*, *return*, and *next* types of an `Iterable`-like or `AsyncIterable`-like
@@ -82299,9 +82302,9 @@ var ts;
82299
82302
  var containsArguments = containsArgumentsReference(node);
82300
82303
  if (containsArguments) {
82301
82304
  var lastJSDocParam = ts.lastOrUndefined(jsdocParameters);
82302
- if (lastJSDocParam && ts.isIdentifier(lastJSDocParam.name) && lastJSDocParam.typeExpression &&
82305
+ if (isJs && lastJSDocParam && ts.isIdentifier(lastJSDocParam.name) && lastJSDocParam.typeExpression &&
82303
82306
  lastJSDocParam.typeExpression.type && !parameters.has(lastJSDocParam.name.escapedText) && !isArrayType(getTypeFromTypeNode(lastJSDocParam.typeExpression.type))) {
82304
- errorOrSuggestion(isJs, lastJSDocParam.name, ts.Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type, ts.idText(lastJSDocParam.name));
82307
+ error(lastJSDocParam.name, ts.Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type, ts.idText(lastJSDocParam.name));
82305
82308
  }
82306
82309
  }
82307
82310
  else {
@@ -82311,7 +82314,9 @@ var ts;
82311
82314
  return;
82312
82315
  }
82313
82316
  if (ts.isQualifiedName(name)) {
82314
- errorOrSuggestion(isJs, name, ts.Diagnostics.Qualified_name_0_is_not_allowed_without_a_leading_param_object_1, ts.entityNameToString(name), ts.entityNameToString(name.left));
82317
+ if (isJs) {
82318
+ error(name, ts.Diagnostics.Qualified_name_0_is_not_allowed_without_a_leading_param_object_1, ts.entityNameToString(name), ts.entityNameToString(name.left));
82319
+ }
82315
82320
  }
82316
82321
  else {
82317
82322
  errorOrSuggestion(isJs, name, ts.Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name, ts.idText(name));
@@ -87490,28 +87495,27 @@ var ts;
87490
87495
  }
87491
87496
  function findMostOverlappyType(source, unionTarget) {
87492
87497
  var bestMatch;
87493
- var matchingCount = 0;
87494
- for (var _i = 0, _a = unionTarget.types; _i < _a.length; _i++) {
87495
- var target = _a[_i];
87496
- var overlap = getIntersectionType([getIndexType(source), getIndexType(target)]);
87497
- if (overlap.flags & 4194304 /* Index */) {
87498
- // perfect overlap of keys
87499
- bestMatch = target;
87500
- matchingCount = Infinity;
87501
- }
87502
- else if (overlap.flags & 1048576 /* Union */) {
87503
- // We only want to account for literal types otherwise.
87504
- // If we have a union of index types, it seems likely that we
87505
- // needed to elaborate between two generic mapped types anyway.
87506
- var len = ts.length(ts.filter(overlap.types, isUnitType));
87507
- if (len >= matchingCount) {
87508
- bestMatch = target;
87509
- matchingCount = len;
87510
- }
87511
- }
87512
- else if (isUnitType(overlap) && 1 >= matchingCount) {
87513
- bestMatch = target;
87514
- matchingCount = 1;
87498
+ if (!(source.flags & (131068 /* Primitive */ | 406847488 /* InstantiablePrimitive */))) {
87499
+ var matchingCount = 0;
87500
+ for (var _i = 0, _a = unionTarget.types; _i < _a.length; _i++) {
87501
+ var target = _a[_i];
87502
+ if (!(target.flags & (131068 /* Primitive */ | 406847488 /* InstantiablePrimitive */))) {
87503
+ var overlap = getIntersectionType([getIndexType(source), getIndexType(target)]);
87504
+ if (overlap.flags & 4194304 /* Index */) {
87505
+ // perfect overlap of keys
87506
+ return target;
87507
+ }
87508
+ else if (isUnitType(overlap) || overlap.flags & 1048576 /* Union */) {
87509
+ // We only want to account for literal types otherwise.
87510
+ // If we have a union of index types, it seems likely that we
87511
+ // needed to elaborate between two generic mapped types anyway.
87512
+ var len = overlap.flags & 1048576 /* Union */ ? ts.countWhere(overlap.types, isUnitType) : 1;
87513
+ if (len >= matchingCount) {
87514
+ bestMatch = target;
87515
+ matchingCount = len;
87516
+ }
87517
+ }
87518
+ }
87515
87519
  }
87516
87520
  }
87517
87521
  return bestMatch;
@@ -88760,7 +88764,7 @@ var ts;
88760
88764
  value >= 52 && value < 62 ? 48 /* _0 */ + value - 52 :
88761
88765
  value === 62 ? 43 /* plus */ :
88762
88766
  value === 63 ? 47 /* slash */ :
88763
- ts.Debug.fail(value + ": not a base64 value");
88767
+ ts.Debug.fail("".concat(value, ": not a base64 value"));
88764
88768
  }
88765
88769
  function base64FormatDecode(ch) {
88766
88770
  return ch >= 65 /* A */ && ch <= 90 /* Z */ ? ch - 65 /* A */ :
@@ -88835,7 +88839,7 @@ var ts;
88835
88839
  var mappings = ts.arrayFrom(decoder, processMapping);
88836
88840
  if (decoder.error !== undefined) {
88837
88841
  if (host.log) {
88838
- host.log("Encountered error while decoding sourcemap: " + decoder.error);
88842
+ host.log("Encountered error while decoding sourcemap: ".concat(decoder.error));
88839
88843
  }
88840
88844
  decodedMappings = ts.emptyArray;
88841
88845
  }
@@ -92510,7 +92514,7 @@ var ts;
92510
92514
  var propertyName = ts.isPropertyAccessExpression(originalNode)
92511
92515
  ? ts.declarationNameToString(originalNode.name)
92512
92516
  : ts.getTextOfNode(originalNode.argumentExpression);
92513
- ts.addSyntheticTrailingComment(substitute, 3 /* MultiLineCommentTrivia */, " " + propertyName + " ");
92517
+ ts.addSyntheticTrailingComment(substitute, 3 /* MultiLineCommentTrivia */, " ".concat(propertyName, " "));
92514
92518
  }
92515
92519
  return substitute;
92516
92520
  }
@@ -93986,8 +93990,8 @@ var ts;
93986
93990
  }
93987
93991
  function createHoistedVariableForClass(name, node) {
93988
93992
  var className = getPrivateIdentifierEnvironment().className;
93989
- var prefix = className ? "_" + className : "";
93990
- var identifier = factory.createUniqueName(prefix + "_" + name, 16 /* Optimistic */);
93993
+ var prefix = className ? "_".concat(className) : "";
93994
+ var identifier = factory.createUniqueName("".concat(prefix, "_").concat(name), 16 /* Optimistic */);
93991
93995
  if (resolver.getNodeCheckFlags(node) & 524288 /* BlockScopedBindingInLoop */) {
93992
93996
  addBlockScopedVariable(identifier);
93993
93997
  }
@@ -95992,7 +95996,7 @@ var ts;
95992
95996
  specifierSourceImports = new ts.Map();
95993
95997
  currentFileState.utilizedImplicitRuntimeImports.set(importSource, specifierSourceImports);
95994
95998
  }
95995
- var generatedName = factory.createUniqueName("_" + name, 16 /* Optimistic */ | 32 /* FileLevel */ | 64 /* AllowNameSubstitution */);
95999
+ var generatedName = factory.createUniqueName("_".concat(name), 16 /* Optimistic */ | 32 /* FileLevel */ | 64 /* AllowNameSubstitution */);
95996
96000
  var specifier = factory.createImportSpecifier(/*isTypeOnly*/ false, factory.createIdentifier(name), generatedName);
95997
96001
  generatedName.generatedImportReference = specifier;
95998
96002
  specifierSourceImports.set(name, specifier);
@@ -97140,11 +97144,11 @@ var ts;
97140
97144
  }
97141
97145
  else {
97142
97146
  if (node.kind === 245 /* BreakStatement */) {
97143
- labelMarker = "break-" + label.escapedText;
97147
+ labelMarker = "break-".concat(label.escapedText);
97144
97148
  setLabeledJump(convertedLoopState, /*isBreak*/ true, ts.idText(label), labelMarker);
97145
97149
  }
97146
97150
  else {
97147
- labelMarker = "continue-" + label.escapedText;
97151
+ labelMarker = "continue-".concat(label.escapedText);
97148
97152
  setLabeledJump(convertedLoopState, /*isBreak*/ false, ts.idText(label), labelMarker);
97149
97153
  }
97150
97154
  }
@@ -106001,7 +106005,7 @@ var ts;
106001
106005
  return getTypeAliasDeclarationVisibilityError;
106002
106006
  }
106003
106007
  else {
106004
- return ts.Debug.assertNever(node, "Attempted to set a declaration diagnostic context for unhandled node kind: " + ts.SyntaxKind[node.kind]);
106008
+ return ts.Debug.assertNever(node, "Attempted to set a declaration diagnostic context for unhandled node kind: ".concat(ts.SyntaxKind[node.kind]));
106005
106009
  }
106006
106010
  function getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccessibilityResult) {
106007
106011
  if (node.kind === 253 /* VariableDeclaration */ || node.kind === 202 /* BindingElement */) {
@@ -106212,7 +106216,7 @@ var ts;
106212
106216
  ts.Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2 :
106213
106217
  ts.Diagnostics.Parameter_0_of_accessor_has_or_is_using_private_name_1;
106214
106218
  default:
106215
- return ts.Debug.fail("Unknown parent for parameter: " + ts.SyntaxKind[node.parent.kind]);
106219
+ return ts.Debug.fail("Unknown parent for parameter: ".concat(ts.SyntaxKind[node.parent.kind]));
106216
106220
  }
106217
106221
  }
106218
106222
  function getTypeParameterConstraintVisibilityError() {
@@ -106970,7 +106974,7 @@ var ts;
106970
106974
  while (ts.length(lateMarkedStatements)) {
106971
106975
  var i = lateMarkedStatements.shift();
106972
106976
  if (!ts.isLateVisibilityPaintedStatement(i)) {
106973
- return ts.Debug.fail("Late replaced statement was found which is not handled by the declaration transformer!: " + (ts.SyntaxKind ? ts.SyntaxKind[i.kind] : i.kind));
106977
+ return ts.Debug.fail("Late replaced statement was found which is not handled by the declaration transformer!: ".concat(ts.SyntaxKind ? ts.SyntaxKind[i.kind] : i.kind));
106974
106978
  }
106975
106979
  var priorNeedsDeclare = needsDeclare;
106976
106980
  needsDeclare = i.parent && ts.isSourceFile(i.parent) && !(ts.isExternalModule(i.parent) && isBundledEmit);
@@ -107159,7 +107163,7 @@ var ts;
107159
107163
  return cleanup(input);
107160
107164
  return cleanup(factory.updateImportTypeNode(input, factory.updateLiteralTypeNode(input.argument, rewriteModuleSpecifier(input, input.argument.literal)), input.qualifier, ts.visitNodes(input.typeArguments, visitDeclarationSubtree, ts.isTypeNode), input.isTypeOf));
107161
107165
  }
107162
- default: ts.Debug.assertNever(input, "Attempted to process unhandled node kind: " + ts.SyntaxKind[input.kind]);
107166
+ default: ts.Debug.assertNever(input, "Attempted to process unhandled node kind: ".concat(ts.SyntaxKind[input.kind]));
107163
107167
  }
107164
107168
  }
107165
107169
  if (ts.isTupleTypeNode(input) && (ts.getLineAndCharacterOfPosition(currentSourceFile, input.pos).line === ts.getLineAndCharacterOfPosition(currentSourceFile, input.end).line)) {
@@ -107450,7 +107454,7 @@ var ts;
107450
107454
  if (extendsClause_1 && !ts.isEntityNameExpression(extendsClause_1.expression) && extendsClause_1.expression.kind !== 104 /* NullKeyword */) {
107451
107455
  // We must add a temporary declaration for the extends clause expression
107452
107456
  var oldId = input.name ? ts.unescapeLeadingUnderscores(input.name.escapedText) : "default";
107453
- var newId_1 = factory.createUniqueName(oldId + "_base", 16 /* Optimistic */);
107457
+ var newId_1 = factory.createUniqueName("".concat(oldId, "_base"), 16 /* Optimistic */);
107454
107458
  getSymbolAccessibilityDiagnostic = function () { return ({
107455
107459
  diagnosticMessage: ts.Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1,
107456
107460
  errorNode: extendsClause_1,
@@ -107491,7 +107495,7 @@ var ts;
107491
107495
  }
107492
107496
  }
107493
107497
  // Anything left unhandled is an error, so this should be unreachable
107494
- return ts.Debug.assertNever(input, "Unhandled top-level node in declaration emit: " + ts.SyntaxKind[input.kind]);
107498
+ return ts.Debug.assertNever(input, "Unhandled top-level node in declaration emit: ".concat(ts.SyntaxKind[input.kind]));
107495
107499
  function cleanup(node) {
107496
107500
  if (isEnclosingDeclaration(input)) {
107497
107501
  enclosingDeclaration = previousEnclosingDeclaration;
@@ -108383,13 +108387,13 @@ var ts;
108383
108387
  if (ts.fileExtensionIs(inputFileName, ".json" /* Json */))
108384
108388
  return;
108385
108389
  if (js && configFile.options.sourceMap) {
108386
- addOutput(js + ".map");
108390
+ addOutput("".concat(js, ".map"));
108387
108391
  }
108388
108392
  if (ts.getEmitDeclarations(configFile.options)) {
108389
108393
  var dts = getOutputDeclarationFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory);
108390
108394
  addOutput(dts);
108391
108395
  if (configFile.options.declarationMap) {
108392
- addOutput(dts + ".map");
108396
+ addOutput("".concat(dts, ".map"));
108393
108397
  }
108394
108398
  }
108395
108399
  }
@@ -108458,7 +108462,7 @@ var ts;
108458
108462
  function getFirstProjectOutput(configFile, ignoreCase) {
108459
108463
  if (ts.outFile(configFile.options)) {
108460
108464
  var jsFilePath = getOutputPathsForBundle(configFile.options, /*forceDtsPaths*/ false).jsFilePath;
108461
- return ts.Debug.checkDefined(jsFilePath, "project " + configFile.options.configFilePath + " expected to have at least one output");
108465
+ return ts.Debug.checkDefined(jsFilePath, "project ".concat(configFile.options.configFilePath, " expected to have at least one output"));
108462
108466
  }
108463
108467
  var getCommonSourceDirectory = ts.memoize(function () { return getCommonSourceDirectoryOfConfig(configFile, ignoreCase); });
108464
108468
  for (var _a = 0, _b = configFile.fileNames; _a < _b.length; _a++) {
@@ -108477,7 +108481,7 @@ var ts;
108477
108481
  var buildInfoPath = getTsBuildInfoEmitOutputFilePath(configFile.options);
108478
108482
  if (buildInfoPath)
108479
108483
  return buildInfoPath;
108480
- return ts.Debug.fail("project " + configFile.options.configFilePath + " expected to have at least one output");
108484
+ return ts.Debug.fail("project ".concat(configFile.options.configFilePath, " expected to have at least one output"));
108481
108485
  }
108482
108486
  ts.getFirstProjectOutput = getFirstProjectOutput;
108483
108487
  /*@internal*/
@@ -108703,7 +108707,7 @@ var ts;
108703
108707
  if (sourceMappingURL) {
108704
108708
  if (!writer.isAtStartOfLine())
108705
108709
  writer.rawWrite(newLine);
108706
- writer.writeComment("//# " + "sourceMappingURL" + "=" + sourceMappingURL); // Tools can sometimes see this line as a source mapping url comment
108710
+ writer.writeComment("//# ".concat("sourceMappingURL", "=").concat(sourceMappingURL)); // Tools can sometimes see this line as a source mapping url comment
108707
108711
  }
108708
108712
  // Write the source map
108709
108713
  if (sourceMapFilePath) {
@@ -108752,7 +108756,7 @@ var ts;
108752
108756
  // Encode the sourceMap into the sourceMap url
108753
108757
  var sourceMapText = sourceMapGenerator.toString();
108754
108758
  var base64SourceMapText = ts.base64encode(ts.sys, sourceMapText);
108755
- return "data:application/json;base64," + base64SourceMapText;
108759
+ return "data:application/json;base64,".concat(base64SourceMapText);
108756
108760
  }
108757
108761
  var sourceMapFile = ts.getBaseFileName(ts.normalizeSlashes(ts.Debug.checkDefined(sourceMapFilePath)));
108758
108762
  if (mapOptions.mapRoot) {
@@ -108932,7 +108936,7 @@ var ts;
108932
108936
  return;
108933
108937
  break;
108934
108938
  default:
108935
- ts.Debug.fail("Unexpected path: " + name);
108939
+ ts.Debug.fail("Unexpected path: ".concat(name));
108936
108940
  }
108937
108941
  outputFiles.push({ name: name, text: text, writeByteOrderMark: writeByteOrderMark });
108938
108942
  },
@@ -109792,7 +109796,7 @@ var ts;
109792
109796
  return writeTokenNode(node, writeKeyword);
109793
109797
  if (ts.isTokenKind(node.kind))
109794
109798
  return writeTokenNode(node, writePunctuation);
109795
- ts.Debug.fail("Unhandled SyntaxKind: " + ts.Debug.formatSyntaxKind(node.kind) + ".");
109799
+ ts.Debug.fail("Unhandled SyntaxKind: ".concat(ts.Debug.formatSyntaxKind(node.kind), "."));
109796
109800
  }
109797
109801
  function emitMappedTypeParameter(node) {
109798
109802
  emit(node.name);
@@ -109962,16 +109966,16 @@ var ts;
109962
109966
  }
109963
109967
  }
109964
109968
  function emitPlaceholder(hint, node, snippet) {
109965
- nonEscapingWrite("${" + snippet.order + ":"); // `${2:`
109969
+ nonEscapingWrite("${".concat(snippet.order, ":")); // `${2:`
109966
109970
  pipelineEmitWithHintWorker(hint, node, /*allowSnippets*/ false); // `...`
109967
109971
  nonEscapingWrite("}"); // `}`
109968
109972
  // `${2:...}`
109969
109973
  }
109970
109974
  function emitTabStop(hint, node, snippet) {
109971
109975
  // A tab stop should only be attached to an empty node, i.e. a node that doesn't emit any text.
109972
- ts.Debug.assert(node.kind === 235 /* EmptyStatement */, "A tab stop cannot be attached to a node of kind " + ts.Debug.formatSyntaxKind(node.kind) + ".");
109976
+ ts.Debug.assert(node.kind === 235 /* EmptyStatement */, "A tab stop cannot be attached to a node of kind ".concat(ts.Debug.formatSyntaxKind(node.kind), "."));
109973
109977
  ts.Debug.assert(hint !== 5 /* EmbeddedStatement */, "A tab stop cannot be attached to an embedded statement.");
109974
- nonEscapingWrite("$" + snippet.order);
109978
+ nonEscapingWrite("$".concat(snippet.order));
109975
109979
  }
109976
109980
  //
109977
109981
  // Identifiers
@@ -111733,17 +111737,17 @@ var ts;
111733
111737
  writeLine();
111734
111738
  }
111735
111739
  if (currentSourceFile && currentSourceFile.moduleName) {
111736
- writeComment("/// <amd-module name=\"" + currentSourceFile.moduleName + "\" />");
111740
+ writeComment("/// <amd-module name=\"".concat(currentSourceFile.moduleName, "\" />"));
111737
111741
  writeLine();
111738
111742
  }
111739
111743
  if (currentSourceFile && currentSourceFile.amdDependencies) {
111740
111744
  for (var _a = 0, _b = currentSourceFile.amdDependencies; _a < _b.length; _a++) {
111741
111745
  var dep = _b[_a];
111742
111746
  if (dep.name) {
111743
- writeComment("/// <amd-dependency name=\"" + dep.name + "\" path=\"" + dep.path + "\" />");
111747
+ writeComment("/// <amd-dependency name=\"".concat(dep.name, "\" path=\"").concat(dep.path, "\" />"));
111744
111748
  }
111745
111749
  else {
111746
- writeComment("/// <amd-dependency path=\"" + dep.path + "\" />");
111750
+ writeComment("/// <amd-dependency path=\"".concat(dep.path, "\" />"));
111747
111751
  }
111748
111752
  writeLine();
111749
111753
  }
@@ -111751,7 +111755,7 @@ var ts;
111751
111755
  for (var _c = 0, files_2 = files; _c < files_2.length; _c++) {
111752
111756
  var directive = files_2[_c];
111753
111757
  var pos = writer.getTextPos();
111754
- writeComment("/// <reference path=\"" + directive.fileName + "\" />");
111758
+ writeComment("/// <reference path=\"".concat(directive.fileName, "\" />"));
111755
111759
  if (bundleFileInfo)
111756
111760
  bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "reference" /* Reference */, data: directive.fileName });
111757
111761
  writeLine();
@@ -111759,7 +111763,7 @@ var ts;
111759
111763
  for (var _d = 0, types_24 = types; _d < types_24.length; _d++) {
111760
111764
  var directive = types_24[_d];
111761
111765
  var pos = writer.getTextPos();
111762
- writeComment("/// <reference types=\"" + directive.fileName + "\" />");
111766
+ writeComment("/// <reference types=\"".concat(directive.fileName, "\" />"));
111763
111767
  if (bundleFileInfo)
111764
111768
  bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "type" /* Type */, data: directive.fileName });
111765
111769
  writeLine();
@@ -111767,7 +111771,7 @@ var ts;
111767
111771
  for (var _e = 0, libs_1 = libs; _e < libs_1.length; _e++) {
111768
111772
  var directive = libs_1[_e];
111769
111773
  var pos = writer.getTextPos();
111770
- writeComment("/// <reference lib=\"" + directive.fileName + "\" />");
111774
+ writeComment("/// <reference lib=\"".concat(directive.fileName, "\" />"));
111771
111775
  if (bundleFileInfo)
111772
111776
  bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "lib" /* Lib */, data: directive.fileName });
111773
111777
  writeLine();
@@ -112547,9 +112551,9 @@ var ts;
112547
112551
  var textSourceNode = node.textSourceNode;
112548
112552
  if (ts.isIdentifier(textSourceNode) || ts.isNumericLiteral(textSourceNode)) {
112549
112553
  var text = ts.isNumericLiteral(textSourceNode) ? textSourceNode.text : getTextOfNode(textSourceNode);
112550
- return jsxAttributeEscape ? "\"" + ts.escapeJsxAttributeString(text) + "\"" :
112551
- neverAsciiEscape || (ts.getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ? "\"" + ts.escapeString(text) + "\"" :
112552
- "\"" + ts.escapeNonAsciiString(text) + "\"";
112554
+ return jsxAttributeEscape ? "\"".concat(ts.escapeJsxAttributeString(text), "\"") :
112555
+ neverAsciiEscape || (ts.getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ? "\"".concat(ts.escapeString(text), "\"") :
112556
+ "\"".concat(ts.escapeNonAsciiString(text), "\"");
112553
112557
  }
112554
112558
  else {
112555
112559
  return getLiteralTextOfNode(textSourceNode, neverAsciiEscape, jsxAttributeEscape);
@@ -113026,8 +113030,8 @@ var ts;
113026
113030
  }
113027
113031
  function formatSynthesizedComment(comment) {
113028
113032
  return comment.kind === 3 /* MultiLineCommentTrivia */
113029
- ? "/*" + comment.text + "*/"
113030
- : "//" + comment.text;
113033
+ ? "/*".concat(comment.text, "*/")
113034
+ : "//".concat(comment.text);
113031
113035
  }
113032
113036
  function emitBodyWithDetachedComments(node, detachedRange, emitCallback) {
113033
113037
  enterComment();
@@ -113748,7 +113752,7 @@ var ts;
113748
113752
  var watchedDirPath = _a.watchedDirPath, fileOrDirectory = _a.fileOrDirectory, fileOrDirectoryPath = _a.fileOrDirectoryPath, configFileName = _a.configFileName, options = _a.options, program = _a.program, extraFileExtensions = _a.extraFileExtensions, currentDirectory = _a.currentDirectory, useCaseSensitiveFileNames = _a.useCaseSensitiveFileNames, writeLog = _a.writeLog, toPath = _a.toPath;
113749
113753
  var newPath = ts.removeIgnoredPath(fileOrDirectoryPath);
113750
113754
  if (!newPath) {
113751
- writeLog("Project: " + configFileName + " Detected ignored path: " + fileOrDirectory);
113755
+ writeLog("Project: ".concat(configFileName, " Detected ignored path: ").concat(fileOrDirectory));
113752
113756
  return true;
113753
113757
  }
113754
113758
  fileOrDirectoryPath = newPath;
@@ -113757,11 +113761,11 @@ var ts;
113757
113761
  // If the the added or created file or directory is not supported file name, ignore the file
113758
113762
  // But when watched directory is added/removed, we need to reload the file list
113759
113763
  if (ts.hasExtension(fileOrDirectoryPath) && !ts.isSupportedSourceFileName(fileOrDirectory, options, extraFileExtensions)) {
113760
- writeLog("Project: " + configFileName + " Detected file add/remove of non supported extension: " + fileOrDirectory);
113764
+ writeLog("Project: ".concat(configFileName, " Detected file add/remove of non supported extension: ").concat(fileOrDirectory));
113761
113765
  return true;
113762
113766
  }
113763
113767
  if (ts.isExcludedFile(fileOrDirectory, options.configFile.configFileSpecs, ts.getNormalizedAbsolutePath(ts.getDirectoryPath(configFileName), currentDirectory), useCaseSensitiveFileNames, currentDirectory)) {
113764
- writeLog("Project: " + configFileName + " Detected excluded file: " + fileOrDirectory);
113768
+ writeLog("Project: ".concat(configFileName, " Detected excluded file: ").concat(fileOrDirectory));
113765
113769
  return true;
113766
113770
  }
113767
113771
  if (!program)
@@ -113785,7 +113789,7 @@ var ts;
113785
113789
  var builderProgram = !realProgram && !ts.isArray(program) ? program : undefined;
113786
113790
  if (hasSourceFile((filePathWithoutExtension + ".ts" /* Ts */)) ||
113787
113791
  hasSourceFile((filePathWithoutExtension + ".tsx" /* Tsx */))) {
113788
- writeLog("Project: " + configFileName + " Detected output file: " + fileOrDirectory);
113792
+ writeLog("Project: ".concat(configFileName, " Detected output file: ").concat(fileOrDirectory));
113789
113793
  return true;
113790
113794
  }
113791
113795
  return false;
@@ -113853,36 +113857,36 @@ var ts;
113853
113857
  host.useCaseSensitiveFileNames();
113854
113858
  }
113855
113859
  function createExcludeWatcherWithLogging(file, flags, options, detailInfo1, detailInfo2) {
113856
- log("ExcludeWatcher:: Added:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
113860
+ log("ExcludeWatcher:: Added:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo)));
113857
113861
  return {
113858
- close: function () { return log("ExcludeWatcher:: Close:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo)); }
113862
+ close: function () { return log("ExcludeWatcher:: Close:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo))); }
113859
113863
  };
113860
113864
  }
113861
113865
  function createFileWatcherWithLogging(file, cb, flags, options, detailInfo1, detailInfo2) {
113862
- log("FileWatcher:: Added:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
113866
+ log("FileWatcher:: Added:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo)));
113863
113867
  var watcher = triggerInvokingFactory.watchFile(file, cb, flags, options, detailInfo1, detailInfo2);
113864
113868
  return {
113865
113869
  close: function () {
113866
- log("FileWatcher:: Close:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
113870
+ log("FileWatcher:: Close:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo)));
113867
113871
  watcher.close();
113868
113872
  }
113869
113873
  };
113870
113874
  }
113871
113875
  function createDirectoryWatcherWithLogging(file, cb, flags, options, detailInfo1, detailInfo2) {
113872
- var watchInfo = "DirectoryWatcher:: Added:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo);
113876
+ var watchInfo = "DirectoryWatcher:: Added:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
113873
113877
  log(watchInfo);
113874
113878
  var start = ts.timestamp();
113875
113879
  var watcher = triggerInvokingFactory.watchDirectory(file, cb, flags, options, detailInfo1, detailInfo2);
113876
113880
  var elapsed = ts.timestamp() - start;
113877
- log("Elapsed:: " + elapsed + "ms " + watchInfo);
113881
+ log("Elapsed:: ".concat(elapsed, "ms ").concat(watchInfo));
113878
113882
  return {
113879
113883
  close: function () {
113880
- var watchInfo = "DirectoryWatcher:: Close:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo);
113884
+ var watchInfo = "DirectoryWatcher:: Close:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
113881
113885
  log(watchInfo);
113882
113886
  var start = ts.timestamp();
113883
113887
  watcher.close();
113884
113888
  var elapsed = ts.timestamp() - start;
113885
- log("Elapsed:: " + elapsed + "ms " + watchInfo);
113889
+ log("Elapsed:: ".concat(elapsed, "ms ").concat(watchInfo));
113886
113890
  }
113887
113891
  };
113888
113892
  }
@@ -113892,16 +113896,16 @@ var ts;
113892
113896
  for (var _i = 0; _i < arguments.length; _i++) {
113893
113897
  args[_i] = arguments[_i];
113894
113898
  }
113895
- var triggerredInfo = (key === "watchFile" ? "FileWatcher" : "DirectoryWatcher") + ":: Triggered with " + args[0] + " " + (args[1] !== undefined ? args[1] : "") + ":: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo);
113899
+ var triggerredInfo = "".concat(key === "watchFile" ? "FileWatcher" : "DirectoryWatcher", ":: Triggered with ").concat(args[0], " ").concat(args[1] !== undefined ? args[1] : "", ":: ").concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
113896
113900
  log(triggerredInfo);
113897
113901
  var start = ts.timestamp();
113898
113902
  cb.call.apply(cb, __spreadArray([/*thisArg*/ undefined], args, false));
113899
113903
  var elapsed = ts.timestamp() - start;
113900
- log("Elapsed:: " + elapsed + "ms " + triggerredInfo);
113904
+ log("Elapsed:: ".concat(elapsed, "ms ").concat(triggerredInfo));
113901
113905
  }, flags, options, detailInfo1, detailInfo2); };
113902
113906
  }
113903
113907
  function getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo) {
113904
- return "WatchInfo: " + file + " " + flags + " " + JSON.stringify(options) + " " + (getDetailWatchInfo ? getDetailWatchInfo(detailInfo1, detailInfo2) : detailInfo2 === undefined ? detailInfo1 : detailInfo1 + " " + detailInfo2);
113908
+ return "WatchInfo: ".concat(file, " ").concat(flags, " ").concat(JSON.stringify(options), " ").concat(getDetailWatchInfo ? getDetailWatchInfo(detailInfo1, detailInfo2) : detailInfo2 === undefined ? detailInfo1 : "".concat(detailInfo1, " ").concat(detailInfo2));
113905
113909
  }
113906
113910
  }
113907
113911
  ts.getWatchFactory = getWatchFactory;
@@ -114208,12 +114212,12 @@ var ts;
114208
114212
  }
114209
114213
  ts.formatDiagnostics = formatDiagnostics;
114210
114214
  function formatDiagnostic(diagnostic, host) {
114211
- var errorMessage = ts.diagnosticCategoryName(diagnostic) + " TS" + diagnostic.code + ": " + flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine()) + host.getNewLine();
114215
+ var errorMessage = "".concat(ts.diagnosticCategoryName(diagnostic), " TS").concat(diagnostic.code, ": ").concat(flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine())).concat(host.getNewLine());
114212
114216
  if (diagnostic.file) {
114213
114217
  var _a = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start), line = _a.line, character = _a.character; // TODO: GH#18217
114214
114218
  var fileName = diagnostic.file.fileName;
114215
114219
  var relativeFileName = ts.convertToRelativePath(fileName, host.getCurrentDirectory(), function (fileName) { return host.getCanonicalFileName(fileName); });
114216
- return relativeFileName + "(" + (line + 1) + "," + (character + 1) + "): " + errorMessage;
114220
+ return "".concat(relativeFileName, "(").concat(line + 1, ",").concat(character + 1, "): ") + errorMessage;
114217
114221
  }
114218
114222
  return errorMessage;
114219
114223
  }
@@ -114301,9 +114305,9 @@ var ts;
114301
114305
  var output = "";
114302
114306
  output += color(relativeFileName, ForegroundColorEscapeSequences.Cyan);
114303
114307
  output += ":";
114304
- output += color("" + (firstLine + 1), ForegroundColorEscapeSequences.Yellow);
114308
+ output += color("".concat(firstLine + 1), ForegroundColorEscapeSequences.Yellow);
114305
114309
  output += ":";
114306
- output += color("" + (firstLineChar + 1), ForegroundColorEscapeSequences.Yellow);
114310
+ output += color("".concat(firstLineChar + 1), ForegroundColorEscapeSequences.Yellow);
114307
114311
  return output;
114308
114312
  }
114309
114313
  ts.formatLocation = formatLocation;
@@ -114317,7 +114321,7 @@ var ts;
114317
114321
  output += " - ";
114318
114322
  }
114319
114323
  output += formatColorAndReset(ts.diagnosticCategoryName(diagnostic), getCategoryFormat(diagnostic.category));
114320
- output += formatColorAndReset(" TS" + diagnostic.code + ": ", ForegroundColorEscapeSequences.Grey);
114324
+ output += formatColorAndReset(" TS".concat(diagnostic.code, ": "), ForegroundColorEscapeSequences.Grey);
114321
114325
  output += flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine());
114322
114326
  if (diagnostic.file) {
114323
114327
  output += host.getNewLine();
@@ -114426,7 +114430,7 @@ var ts;
114426
114430
  var result = void 0;
114427
114431
  var mode = getModeForResolutionAtIndex(containingFile, i);
114428
114432
  i++;
114429
- var cacheKey = mode !== undefined ? mode + "|" + name : name;
114433
+ var cacheKey = mode !== undefined ? "".concat(mode, "|").concat(name) : name;
114430
114434
  if (cache.has(cacheKey)) {
114431
114435
  result = cache.get(cacheKey);
114432
114436
  }
@@ -116615,7 +116619,7 @@ var ts;
116615
116619
  path += (i === 2 ? "/" : "-") + components[i];
116616
116620
  i++;
116617
116621
  }
116618
- var resolveFrom = ts.combinePaths(currentDirectory, "__lib_node_modules_lookup_" + libFileName + "__.ts");
116622
+ var resolveFrom = ts.combinePaths(currentDirectory, "__lib_node_modules_lookup_".concat(libFileName, "__.ts"));
116619
116623
  var localOverrideModuleResult = ts.resolveModuleName("@typescript/lib-" + path, resolveFrom, { moduleResolution: ts.ModuleResolutionKind.NodeJs }, host, moduleResolutionCache);
116620
116624
  if (localOverrideModuleResult === null || localOverrideModuleResult === void 0 ? void 0 : localOverrideModuleResult.resolvedModule) {
116621
116625
  return localOverrideModuleResult.resolvedModule.resolvedFileName;
@@ -117436,12 +117440,12 @@ var ts;
117436
117440
  }
117437
117441
  function directoryExistsIfProjectReferenceDeclDir(dir) {
117438
117442
  var dirPath = host.toPath(dir);
117439
- var dirPathWithTrailingDirectorySeparator = "" + dirPath + ts.directorySeparator;
117443
+ var dirPathWithTrailingDirectorySeparator = "".concat(dirPath).concat(ts.directorySeparator);
117440
117444
  return ts.forEachKey(setOfDeclarationDirectories, function (declDirPath) { return dirPath === declDirPath ||
117441
117445
  // Any parent directory of declaration dir
117442
117446
  ts.startsWith(declDirPath, dirPathWithTrailingDirectorySeparator) ||
117443
117447
  // Any directory inside declaration dir
117444
- ts.startsWith(dirPath, declDirPath + "/"); });
117448
+ ts.startsWith(dirPath, "".concat(declDirPath, "/")); });
117445
117449
  }
117446
117450
  function handleDirectoryCouldBeSymlink(directory) {
117447
117451
  var _a;
@@ -117494,7 +117498,7 @@ var ts;
117494
117498
  if (isFile && result) {
117495
117499
  // Store the real path for the file'
117496
117500
  var absolutePath = ts.getNormalizedAbsolutePath(fileOrDirectory, host.compilerHost.getCurrentDirectory());
117497
- symlinkCache.setSymlinkedFile(fileOrDirectoryPath, "" + symlinkedDirectory.real + absolutePath.replace(new RegExp(directoryPath, "i"), ""));
117501
+ symlinkCache.setSymlinkedFile(fileOrDirectoryPath, "".concat(symlinkedDirectory.real).concat(absolutePath.replace(new RegExp(directoryPath, "i"), "")));
117498
117502
  }
117499
117503
  return result;
117500
117504
  }) || false;
@@ -117952,7 +117956,7 @@ var ts;
117952
117956
  /*forceDtsEmit*/ true);
117953
117957
  var firstDts_1 = ts.firstOrUndefined(emitOutput_1.outputFiles);
117954
117958
  if (firstDts_1) {
117955
- ts.Debug.assert(ts.fileExtensionIsOneOf(firstDts_1.name, [".d.ts" /* Dts */, ".d.mts" /* Dmts */, ".d.cts" /* Dcts */]), "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; })); });
117959
+ ts.Debug.assert(ts.fileExtensionIsOneOf(firstDts_1.name, [".d.ts" /* Dts */, ".d.mts" /* Dmts */, ".d.cts" /* Dcts */]), "File extension for signature expected to be dts", function () { return "Found: ".concat(ts.getAnyExtensionFromPath(firstDts_1.name), " for ").concat(firstDts_1.name, ":: All output files: ").concat(JSON.stringify(emitOutput_1.outputFiles.map(function (f) { return f.name; }))); });
117956
117960
  latestSignature = (computeHash || ts.generateDjb2Hash)(firstDts_1.text);
117957
117961
  if (exportedModulesMapCache && latestSignature !== prevSignature) {
117958
117962
  updateExportedModules(sourceFile, emitOutput_1.exportedModulesFromDeclarationEmit, exportedModulesMapCache);
@@ -118460,7 +118464,7 @@ var ts;
118460
118464
  return;
118461
118465
  }
118462
118466
  else {
118463
- 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);
118467
+ 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: ".concat(affectedFile.fileName));
118464
118468
  }
118465
118469
  if (!state.compilerOptions.assumeChangesOnlyAffectDirectDependencies) {
118466
118470
  forEachReferencingModulesOfExportOfAffectedFile(state, affectedFile, function (state, path) { return handleDtsMayChangeOf(state, path, cancellationToken, computeHash); });
@@ -119605,7 +119609,7 @@ var ts;
119605
119609
  failedLookupLocation = ts.isRootedDiskPath(failedLookupLocation) ? ts.normalizePath(failedLookupLocation) : ts.getNormalizedAbsolutePath(failedLookupLocation, getCurrentDirectory());
119606
119610
  var failedLookupPathSplit = failedLookupLocationPath.split(ts.directorySeparator);
119607
119611
  var failedLookupSplit = failedLookupLocation.split(ts.directorySeparator);
119608
- ts.Debug.assert(failedLookupSplit.length === failedLookupPathSplit.length, "FailedLookup: " + failedLookupLocation + " failedLookupLocationPath: " + failedLookupLocationPath);
119612
+ ts.Debug.assert(failedLookupSplit.length === failedLookupPathSplit.length, "FailedLookup: ".concat(failedLookupLocation, " failedLookupLocationPath: ").concat(failedLookupLocationPath));
119609
119613
  if (failedLookupPathSplit.length > rootSplitLength + 1) {
119610
119614
  // Instead of watching root, watch directory in root to avoid watching excluded directories not needed for module resolution
119611
119615
  return {
@@ -120687,7 +120691,7 @@ var ts;
120687
120691
  }
120688
120692
  function getJSExtensionForFile(fileName, options) {
120689
120693
  var _a;
120690
- return (_a = tryGetJSExtensionForFile(fileName, options)) !== null && _a !== void 0 ? _a : ts.Debug.fail("Extension " + ts.extensionFromPath(fileName) + " is unsupported:: FileName:: " + fileName);
120694
+ return (_a = tryGetJSExtensionForFile(fileName, options)) !== null && _a !== void 0 ? _a : ts.Debug.fail("Extension ".concat(ts.extensionFromPath(fileName), " is unsupported:: FileName:: ").concat(fileName));
120691
120695
  }
120692
120696
  function tryGetJSExtensionForFile(fileName, options) {
120693
120697
  var ext = ts.tryGetExtensionFromPath(fileName);
@@ -120790,8 +120794,8 @@ var ts;
120790
120794
  return pretty ?
120791
120795
  function (diagnostic, newLine, options) {
120792
120796
  clearScreenIfNotWatchingForFileChanges(system, diagnostic, options);
120793
- var output = "[" + ts.formatColorAndReset(getLocaleTimeString(system), ts.ForegroundColorEscapeSequences.Grey) + "] ";
120794
- output += "" + ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine) + (newLine + newLine);
120797
+ var output = "[".concat(ts.formatColorAndReset(getLocaleTimeString(system), ts.ForegroundColorEscapeSequences.Grey), "] ");
120798
+ output += "".concat(ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)).concat(newLine + newLine);
120795
120799
  system.write(output);
120796
120800
  } :
120797
120801
  function (diagnostic, newLine, options) {
@@ -120799,8 +120803,8 @@ var ts;
120799
120803
  if (!clearScreenIfNotWatchingForFileChanges(system, diagnostic, options)) {
120800
120804
  output += newLine;
120801
120805
  }
120802
- output += getLocaleTimeString(system) + " - ";
120803
- output += "" + ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine) + getPlainDiagnosticFollowingNewLines(diagnostic, newLine);
120806
+ output += "".concat(getLocaleTimeString(system), " - ");
120807
+ output += "".concat(ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)).concat(getPlainDiagnosticFollowingNewLines(diagnostic, newLine));
120804
120808
  system.write(output);
120805
120809
  };
120806
120810
  }
@@ -120823,7 +120827,7 @@ var ts;
120823
120827
  .map(function (errorDiagnostic) {
120824
120828
  if (errorDiagnostic.file === undefined)
120825
120829
  return;
120826
- return "" + errorDiagnostic.file.fileName;
120830
+ return "".concat(errorDiagnostic.file.fileName);
120827
120831
  });
120828
120832
  return filesInError.map(function (fileName) {
120829
120833
  var diagnosticForFileName = ts.find(diagnostics, function (diagnostic) {
@@ -120856,7 +120860,7 @@ var ts;
120856
120860
  if (errorCount === 0)
120857
120861
  return "";
120858
120862
  var nonNilFiles = filesInError.filter(function (fileInError) { return fileInError !== undefined; });
120859
- var distinctFileNamesWithLines = nonNilFiles.map(function (fileInError) { return fileInError.fileName + ":" + fileInError.line; })
120863
+ var distinctFileNamesWithLines = nonNilFiles.map(function (fileInError) { return "".concat(fileInError.fileName, ":").concat(fileInError.line); })
120860
120864
  .filter(function (value, index, self) { return self.indexOf(value) === index; });
120861
120865
  var firstFileReference = nonNilFiles[0] && prettyPathForFileError(nonNilFiles[0], host.getCurrentDirectory());
120862
120866
  var d = errorCount === 1 ?
@@ -120869,7 +120873,7 @@ var ts;
120869
120873
  ts.Diagnostics.Found_0_errors_in_the_same_file_starting_at_Colon_1 :
120870
120874
  ts.Diagnostics.Found_0_errors_in_1_files, errorCount, distinctFileNamesWithLines.length === 1 ? firstFileReference : distinctFileNamesWithLines.length);
120871
120875
  var suffix = distinctFileNamesWithLines.length > 1 ? createTabularErrorsDisplay(nonNilFiles, host) : "";
120872
- return "" + newLine + ts.flattenDiagnosticMessageText(d.messageText, newLine) + newLine + newLine + suffix;
120876
+ return "".concat(newLine).concat(ts.flattenDiagnosticMessageText(d.messageText, newLine)).concat(newLine).concat(newLine).concat(suffix);
120873
120877
  }
120874
120878
  ts.getErrorSummaryText = getErrorSummaryText;
120875
120879
  function createTabularErrorsDisplay(filesInError, host) {
@@ -120892,7 +120896,7 @@ var ts;
120892
120896
  " ".repeat(leftPaddingGoal - errorCountDigitsLength)
120893
120897
  : "";
120894
120898
  var fileRef = prettyPathForFileError(file, host.getCurrentDirectory());
120895
- tabularData += "" + leftPadding + errorCount + " " + fileRef + "\n";
120899
+ tabularData += "".concat(leftPadding).concat(errorCount, " ").concat(fileRef, "\n");
120896
120900
  });
120897
120901
  return tabularData;
120898
120902
  }
@@ -120919,9 +120923,9 @@ var ts;
120919
120923
  var relativeFileName = function (fileName) { return ts.convertToRelativePath(fileName, program.getCurrentDirectory(), getCanonicalFileName); };
120920
120924
  for (var _i = 0, _c = program.getSourceFiles(); _i < _c.length; _i++) {
120921
120925
  var file = _c[_i];
120922
- write("" + toFileName(file, relativeFileName));
120923
- (_a = reasons.get(file.path)) === null || _a === void 0 ? void 0 : _a.forEach(function (reason) { return write(" " + fileIncludeReasonToDiagnostics(program, reason, relativeFileName).messageText); });
120924
- (_b = explainIfFileIsRedirect(file, relativeFileName)) === null || _b === void 0 ? void 0 : _b.forEach(function (d) { return write(" " + d.messageText); });
120926
+ write("".concat(toFileName(file, relativeFileName)));
120927
+ (_a = reasons.get(file.path)) === null || _a === void 0 ? void 0 : _a.forEach(function (reason) { return write(" ".concat(fileIncludeReasonToDiagnostics(program, reason, relativeFileName).messageText)); });
120928
+ (_b = explainIfFileIsRedirect(file, relativeFileName)) === null || _b === void 0 ? void 0 : _b.forEach(function (d) { return write(" ".concat(d.messageText)); });
120925
120929
  }
120926
120930
  }
120927
120931
  ts.explainFiles = explainFiles;
@@ -120961,7 +120965,7 @@ var ts;
120961
120965
  if (isJsonFile && !ts.endsWith(includeSpec, ".json" /* Json */))
120962
120966
  return false;
120963
120967
  var pattern = ts.getPatternFromSpec(includeSpec, basePath, "files");
120964
- return !!pattern && ts.getRegexFromPattern("(" + pattern + ")$", useCaseSensitiveFileNames).test(fileName);
120968
+ return !!pattern && ts.getRegexFromPattern("(".concat(pattern, ")$"), useCaseSensitiveFileNames).test(fileName);
120965
120969
  });
120966
120970
  }
120967
120971
  ts.getMatchedIncludeSpec = getMatchedIncludeSpec;
@@ -120970,7 +120974,7 @@ var ts;
120970
120974
  var options = program.getCompilerOptions();
120971
120975
  if (ts.isReferencedFile(reason)) {
120972
120976
  var referenceLocation = ts.getReferencedFileLocation(function (path) { return program.getSourceFileByPath(path); }, reason);
120973
- var referenceText = ts.isReferenceFileLocation(referenceLocation) ? referenceLocation.file.text.substring(referenceLocation.pos, referenceLocation.end) : "\"" + referenceLocation.text + "\"";
120977
+ var referenceText = ts.isReferenceFileLocation(referenceLocation) ? referenceLocation.file.text.substring(referenceLocation.pos, referenceLocation.end) : "\"".concat(referenceLocation.text, "\"");
120974
120978
  var message = void 0;
120975
120979
  ts.Debug.assert(ts.isReferenceFileLocation(referenceLocation) || reason.kind === ts.FileIncludeKind.Import, "Only synthetic references are imports");
120976
120980
  switch (reason.kind) {
@@ -121094,7 +121098,7 @@ var ts;
121094
121098
  var currentDir_1 = program.getCurrentDirectory();
121095
121099
  ts.forEach(emittedFiles, function (file) {
121096
121100
  var filepath = ts.getNormalizedAbsolutePath(file, currentDir_1);
121097
- write("TSFILE: " + filepath);
121101
+ write("TSFILE: ".concat(filepath));
121098
121102
  });
121099
121103
  listFiles(program, write);
121100
121104
  }
@@ -121423,7 +121427,7 @@ var ts;
121423
121427
  }
121424
121428
  var _b = ts.createWatchFactory(host, compilerOptions), watchFile = _b.watchFile, watchDirectory = _b.watchDirectory, writeLog = _b.writeLog;
121425
121429
  var getCanonicalFileName = ts.createGetCanonicalFileName(useCaseSensitiveFileNames);
121426
- writeLog("Current directory: " + currentDirectory + " CaseSensitiveFileNames: " + useCaseSensitiveFileNames);
121430
+ writeLog("Current directory: ".concat(currentDirectory, " CaseSensitiveFileNames: ").concat(useCaseSensitiveFileNames));
121427
121431
  var configFileWatcher;
121428
121432
  if (configFileName) {
121429
121433
  configFileWatcher = watchFile(configFileName, scheduleProgramReload, ts.PollingInterval.High, watchOptions, ts.WatchType.ConfigFile);
@@ -121579,10 +121583,10 @@ var ts;
121579
121583
  function createNewProgram(hasInvalidatedResolution) {
121580
121584
  // Compile the program
121581
121585
  writeLog("CreatingProgramWith::");
121582
- writeLog(" roots: " + JSON.stringify(rootFileNames));
121583
- writeLog(" options: " + JSON.stringify(compilerOptions));
121586
+ writeLog(" roots: ".concat(JSON.stringify(rootFileNames)));
121587
+ writeLog(" options: ".concat(JSON.stringify(compilerOptions)));
121584
121588
  if (projectReferences)
121585
- writeLog(" projectReferences: " + JSON.stringify(projectReferences));
121589
+ writeLog(" projectReferences: ".concat(JSON.stringify(projectReferences)));
121586
121590
  var needsUpdateInTypeRootWatch = hasChangedCompilerOptions || !getCurrentProgram();
121587
121591
  hasChangedCompilerOptions = false;
121588
121592
  hasChangedConfigFileParsingErrors = false;
@@ -121743,7 +121747,7 @@ var ts;
121743
121747
  return resolutionCache.invalidateResolutionsOfFailedLookupLocations();
121744
121748
  }
121745
121749
  var pending = clearInvalidateResolutionsOfFailedLookupLocations();
121746
- writeLog("Scheduling invalidateFailedLookup" + (pending ? ", Cancelled earlier one" : ""));
121750
+ writeLog("Scheduling invalidateFailedLookup".concat(pending ? ", Cancelled earlier one" : ""));
121747
121751
  timerToInvalidateFailedLookupResolutions = host.setTimeout(invalidateResolutionsOfFailedLookup, 250);
121748
121752
  }
121749
121753
  function invalidateResolutionsOfFailedLookup() {
@@ -121803,7 +121807,7 @@ var ts;
121803
121807
  synchronizeProgram();
121804
121808
  }
121805
121809
  function reloadConfigFile() {
121806
- writeLog("Reloading config file: " + configFileName);
121810
+ writeLog("Reloading config file: ".concat(configFileName));
121807
121811
  reloadLevel = ts.ConfigFileProgramReloadLevel.None;
121808
121812
  if (cachedDirectoryStructureHost) {
121809
121813
  cachedDirectoryStructureHost.clearCache();
@@ -121844,7 +121848,7 @@ var ts;
121844
121848
  return config.parsedCommandLine;
121845
121849
  }
121846
121850
  }
121847
- writeLog("Loading config file: " + configFileName);
121851
+ writeLog("Loading config file: ".concat(configFileName));
121848
121852
  var parsedCommandLine = host.getParsedCommandLine ?
121849
121853
  host.getParsedCommandLine(configFileName) :
121850
121854
  getParsedCommandLineFromConfigFileHost(configFileName);
@@ -122148,8 +122152,8 @@ var ts;
122148
122152
  */
122149
122153
  function createBuilderStatusReporter(system, pretty) {
122150
122154
  return function (diagnostic) {
122151
- var output = pretty ? "[" + ts.formatColorAndReset(ts.getLocaleTimeString(system), ts.ForegroundColorEscapeSequences.Grey) + "] " : ts.getLocaleTimeString(system) + " - ";
122152
- output += "" + ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine) + (system.newLine + system.newLine);
122155
+ var output = pretty ? "[".concat(ts.formatColorAndReset(ts.getLocaleTimeString(system), ts.ForegroundColorEscapeSequences.Grey), "] ") : "".concat(ts.getLocaleTimeString(system), " - ");
122156
+ output += "".concat(ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)).concat(system.newLine + system.newLine);
122153
122157
  system.write(output);
122154
122158
  };
122155
122159
  }
@@ -122924,7 +122928,7 @@ var ts;
122924
122928
  function listEmittedFile(_a, proj, file) {
122925
122929
  var write = _a.write;
122926
122930
  if (write && proj.options.listEmittedFiles) {
122927
- write("TSFILE: " + file);
122931
+ write("TSFILE: ".concat(file));
122928
122932
  }
122929
122933
  }
122930
122934
  function getOldProgram(_a, proj, parsed) {
@@ -122953,7 +122957,7 @@ var ts;
122953
122957
  function buildErrors(state, resolvedPath, program, config, diagnostics, buildResult, errorType) {
122954
122958
  var canEmitBuildInfo = !(buildResult & BuildResultFlags.SyntaxErrors) && program && !ts.outFile(program.getCompilerOptions());
122955
122959
  reportAndStoreErrors(state, resolvedPath, diagnostics);
122956
- state.projectStatus.set(resolvedPath, { type: ts.UpToDateStatusType.Unbuildable, reason: errorType + " errors" });
122960
+ state.projectStatus.set(resolvedPath, { type: ts.UpToDateStatusType.Unbuildable, reason: "".concat(errorType, " errors") });
122957
122961
  if (canEmitBuildInfo)
122958
122962
  return { buildResult: buildResult, step: BuildStep.EmitBuildInfo };
122959
122963
  afterProgramDone(state, program, config);
@@ -122981,7 +122985,7 @@ var ts;
122981
122985
  if (!host.fileExists(inputFile)) {
122982
122986
  return {
122983
122987
  type: ts.UpToDateStatusType.Unbuildable,
122984
- reason: inputFile + " does not exist"
122988
+ reason: "".concat(inputFile, " does not exist")
122985
122989
  };
122986
122990
  }
122987
122991
  if (!force) {
@@ -123340,7 +123344,7 @@ var ts;
123340
123344
  }
123341
123345
  }
123342
123346
  if (filesToDelete) {
123343
- reportStatus(state, ts.Diagnostics.A_non_dry_build_would_delete_the_following_files_Colon_0, filesToDelete.map(function (f) { return "\r\n * " + f; }).join(""));
123347
+ reportStatus(state, ts.Diagnostics.A_non_dry_build_would_delete_the_following_files_Colon_0, filesToDelete.map(function (f) { return "\r\n * ".concat(f); }).join(""));
123344
123348
  }
123345
123349
  return ts.ExitStatus.Success;
123346
123350
  }
@@ -123678,7 +123682,7 @@ var ts;
123678
123682
  function nowString() {
123679
123683
  // E.g. "12:34:56.789"
123680
123684
  var d = new Date();
123681
- return ts.padLeft(d.getHours().toString(), 2, "0") + ":" + ts.padLeft(d.getMinutes().toString(), 2, "0") + ":" + ts.padLeft(d.getSeconds().toString(), 2, "0") + "." + ts.padLeft(d.getMilliseconds().toString(), 3, "0");
123685
+ return "".concat(ts.padLeft(d.getHours().toString(), 2, "0"), ":").concat(ts.padLeft(d.getMinutes().toString(), 2, "0"), ":").concat(ts.padLeft(d.getSeconds().toString(), 2, "0"), ".").concat(ts.padLeft(d.getMilliseconds().toString(), 3, "0"));
123682
123686
  }
123683
123687
  server.nowString = nowString;
123684
123688
  })(server = ts.server || (ts.server = {}));
@@ -123689,7 +123693,7 @@ var ts;
123689
123693
  var JsTyping;
123690
123694
  (function (JsTyping) {
123691
123695
  function isTypingUpToDate(cachedTyping, availableTypingVersions) {
123692
- var availableVersion = new ts.Version(ts.getProperty(availableTypingVersions, "ts" + ts.versionMajorMinor) || ts.getProperty(availableTypingVersions, "latest"));
123696
+ var availableVersion = new ts.Version(ts.getProperty(availableTypingVersions, "ts".concat(ts.versionMajorMinor)) || ts.getProperty(availableTypingVersions, "latest"));
123693
123697
  return availableVersion.compareTo(cachedTyping.version) <= 0;
123694
123698
  }
123695
123699
  JsTyping.isTypingUpToDate = isTypingUpToDate;
@@ -123742,7 +123746,7 @@ var ts;
123742
123746
  "worker_threads",
123743
123747
  "zlib"
123744
123748
  ];
123745
- JsTyping.prefixedNodeCoreModuleList = unprefixedNodeCoreModuleList.map(function (name) { return "node:" + name; });
123749
+ JsTyping.prefixedNodeCoreModuleList = unprefixedNodeCoreModuleList.map(function (name) { return "node:".concat(name); });
123746
123750
  JsTyping.nodeCoreModuleList = __spreadArray(__spreadArray([], unprefixedNodeCoreModuleList, true), JsTyping.prefixedNodeCoreModuleList, true);
123747
123751
  JsTyping.nodeCoreModules = new ts.Set(JsTyping.nodeCoreModuleList);
123748
123752
  function nonRelativeModuleNameForTypingCache(moduleName) {
@@ -123815,7 +123819,7 @@ var ts;
123815
123819
  var excludeTypingName = exclude_1[_i];
123816
123820
  var didDelete = inferredTypings.delete(excludeTypingName);
123817
123821
  if (didDelete && log)
123818
- log("Typing for " + excludeTypingName + " is in exclude list, will be ignored.");
123822
+ log("Typing for ".concat(excludeTypingName, " is in exclude list, will be ignored."));
123819
123823
  }
123820
123824
  var newTypingNames = [];
123821
123825
  var cachedTypingPaths = [];
@@ -123829,7 +123833,7 @@ var ts;
123829
123833
  });
123830
123834
  var result = { cachedTypingPaths: cachedTypingPaths, newTypingNames: newTypingNames, filesToWatch: filesToWatch };
123831
123835
  if (log)
123832
- log("Result: " + JSON.stringify(result));
123836
+ log("Result: ".concat(JSON.stringify(result)));
123833
123837
  return result;
123834
123838
  function addInferredTyping(typingName) {
123835
123839
  if (!inferredTypings.has(typingName)) {
@@ -123838,7 +123842,7 @@ var ts;
123838
123842
  }
123839
123843
  function addInferredTypings(typingNames, message) {
123840
123844
  if (log)
123841
- log(message + ": " + JSON.stringify(typingNames));
123845
+ log("".concat(message, ": ").concat(JSON.stringify(typingNames)));
123842
123846
  ts.forEach(typingNames, addInferredTyping);
123843
123847
  }
123844
123848
  /**
@@ -123860,7 +123864,7 @@ var ts;
123860
123864
  filesToWatch.push(manifestPath);
123861
123865
  manifest = ts.readConfigFile(manifestPath, function (path) { return host.readFile(path); }).config;
123862
123866
  manifestTypingNames = ts.flatMap([manifest.dependencies, manifest.devDependencies, manifest.optionalDependencies, manifest.peerDependencies], ts.getOwnKeys);
123863
- addInferredTypings(manifestTypingNames, "Typing names in '" + manifestPath + "' dependencies");
123867
+ addInferredTypings(manifestTypingNames, "Typing names in '".concat(manifestPath, "' dependencies"));
123864
123868
  }
123865
123869
  // Now we scan the directories for typing information in
123866
123870
  // already-installed dependencies (if present). Note that this
@@ -123904,7 +123908,7 @@ var ts;
123904
123908
  !isScoped && pathComponents[pathComponents.length - 3].toLowerCase() === modulesDirName; // `node_modules/foo`
123905
123909
  });
123906
123910
  if (log)
123907
- log("Searching for typing names in " + packagesFolderPath + "; all files: " + JSON.stringify(dependencyManifestNames));
123911
+ log("Searching for typing names in ".concat(packagesFolderPath, "; all files: ").concat(JSON.stringify(dependencyManifestNames)));
123908
123912
  // Once we have the names of things to look up, we iterate over
123909
123913
  // and either collect their included typings, or add them to the
123910
123914
  // list of typings we need to look up separately.
@@ -123923,12 +123927,12 @@ var ts;
123923
123927
  var absolutePath = ts.getNormalizedAbsolutePath(ownTypes, ts.getDirectoryPath(normalizedFileName));
123924
123928
  if (host.fileExists(absolutePath)) {
123925
123929
  if (log)
123926
- log(" Package '" + manifest_1.name + "' provides its own types.");
123930
+ log(" Package '".concat(manifest_1.name, "' provides its own types."));
123927
123931
  inferredTypings.set(manifest_1.name, absolutePath);
123928
123932
  }
123929
123933
  else {
123930
123934
  if (log)
123931
- log(" Package '" + manifest_1.name + "' provides its own types but they are missing.");
123935
+ log(" Package '".concat(manifest_1.name, "' provides its own types but they are missing."));
123932
123936
  }
123933
123937
  }
123934
123938
  else {
@@ -124024,15 +124028,15 @@ var ts;
124024
124028
  var kind = isScopeName ? "Scope" : "Package";
124025
124029
  switch (result) {
124026
124030
  case 1 /* EmptyName */:
124027
- return "'" + typing + "':: " + kind + " name '" + name + "' cannot be empty";
124031
+ return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' cannot be empty");
124028
124032
  case 2 /* NameTooLong */:
124029
- return "'" + typing + "':: " + kind + " name '" + name + "' should be less than " + maxPackageNameLength + " characters";
124033
+ return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' should be less than ").concat(maxPackageNameLength, " characters");
124030
124034
  case 3 /* NameStartsWithDot */:
124031
- return "'" + typing + "':: " + kind + " name '" + name + "' cannot start with '.'";
124035
+ return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' cannot start with '.'");
124032
124036
  case 4 /* NameStartsWithUnderscore */:
124033
- return "'" + typing + "':: " + kind + " name '" + name + "' cannot start with '_'";
124037
+ return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' cannot start with '_'");
124034
124038
  case 5 /* NameContainsNonURISafeCharacters */:
124035
- return "'" + typing + "':: " + kind + " name '" + name + "' contains non URI safe characters";
124039
+ return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' contains non URI safe characters");
124036
124040
  case 0 /* Ok */:
124037
124041
  return ts.Debug.fail(); // Shouldn't have called this.
124038
124042
  default:
@@ -126587,7 +126591,7 @@ var ts;
126587
126591
  var prefix = ts.isJSDocLink(link) ? "link"
126588
126592
  : ts.isJSDocLinkCode(link) ? "linkcode"
126589
126593
  : "linkplain";
126590
- var parts = [linkPart("{@" + prefix + " ")];
126594
+ var parts = [linkPart("{@".concat(prefix, " "))];
126591
126595
  if (!link.name) {
126592
126596
  if (link.text)
126593
126597
  parts.push(linkTextPart(link.text));
@@ -126835,7 +126839,7 @@ var ts;
126835
126839
  function getUniqueName(baseName, sourceFile) {
126836
126840
  var nameText = baseName;
126837
126841
  for (var i = 1; !ts.isFileLevelUniqueName(sourceFile, nameText); i++) {
126838
- nameText = baseName + "_" + i;
126842
+ nameText = "".concat(baseName, "_").concat(i);
126839
126843
  }
126840
126844
  return nameText;
126841
126845
  }
@@ -126945,7 +126949,7 @@ var ts;
126945
126949
  // Editors can pass in undefined or empty string - we want to infer the preference in those cases.
126946
126950
  var quotePreference = getQuotePreference(sourceFile, preferences);
126947
126951
  var quoted = JSON.stringify(text);
126948
- return quotePreference === 0 /* Single */ ? "'" + ts.stripQuotes(quoted).replace(/'/g, "\\'").replace(/\\"/g, '"') + "'" : quoted;
126952
+ return quotePreference === 0 /* Single */ ? "'".concat(ts.stripQuotes(quoted).replace(/'/g, "\\'").replace(/\\"/g, '"'), "'") : quoted;
126949
126953
  }
126950
126954
  ts.quote = quote;
126951
126955
  function isEqualityOperatorKind(kind) {
@@ -127329,7 +127333,7 @@ var ts;
127329
127333
  var components = ts.getPathComponents(ts.getPackageNameFromTypesPackageName(fullSpecifier)).slice(1);
127330
127334
  // Scoped packages
127331
127335
  if (ts.startsWith(components[0], "@")) {
127332
- return components[0] + "/" + components[1];
127336
+ return "".concat(components[0], "/").concat(components[1]);
127333
127337
  }
127334
127338
  return components[0];
127335
127339
  }
@@ -127456,13 +127460,13 @@ var ts;
127456
127460
  }
127457
127461
  function getSymbolParentOrFail(symbol) {
127458
127462
  var _a;
127459
- return ts.Debug.checkDefined(symbol.parent, "Symbol parent was undefined. Flags: " + ts.Debug.formatSymbolFlags(symbol.flags) + ". " +
127460
- ("Declarations: " + ((_a = symbol.declarations) === null || _a === void 0 ? void 0 : _a.map(function (d) {
127463
+ return ts.Debug.checkDefined(symbol.parent, "Symbol parent was undefined. Flags: ".concat(ts.Debug.formatSymbolFlags(symbol.flags), ". ") +
127464
+ "Declarations: ".concat((_a = symbol.declarations) === null || _a === void 0 ? void 0 : _a.map(function (d) {
127461
127465
  var kind = ts.Debug.formatSyntaxKind(d.kind);
127462
127466
  var inJS = ts.isInJSFile(d);
127463
127467
  var expression = d.expression;
127464
- return (inJS ? "[JS]" : "") + kind + (expression ? " (expression: " + ts.Debug.formatSyntaxKind(expression.kind) + ")" : "");
127465
- }).join(", ")) + "."));
127468
+ return (inJS ? "[JS]" : "") + kind + (expression ? " (expression: ".concat(ts.Debug.formatSyntaxKind(expression.kind), ")") : "");
127469
+ }).join(", "), "."));
127466
127470
  }
127467
127471
  /**
127468
127472
  * Useful to check whether a string contains another string at a specific index
@@ -127723,7 +127727,7 @@ var ts;
127723
127727
  : checker.tryFindAmbientModule(info.moduleName));
127724
127728
  var symbol = info.symbol || cachedSymbol || ts.Debug.checkDefined(exportKind === 2 /* ExportEquals */
127725
127729
  ? checker.resolveExternalModuleSymbol(moduleSymbol)
127726
- : checker.tryGetMemberInModuleExportsAndProperties(ts.unescapeLeadingUnderscores(info.symbolTableKey), moduleSymbol), "Could not find symbol '" + info.symbolName + "' by key '" + info.symbolTableKey + "' in module " + moduleSymbol.name);
127730
+ : checker.tryGetMemberInModuleExportsAndProperties(ts.unescapeLeadingUnderscores(info.symbolTableKey), moduleSymbol), "Could not find symbol '".concat(info.symbolName, "' by key '").concat(info.symbolTableKey, "' in module ").concat(moduleSymbol.name));
127727
127731
  symbols.set(id, [symbol, moduleSymbol]);
127728
127732
  return {
127729
127733
  symbol: symbol,
@@ -127736,7 +127740,7 @@ var ts;
127736
127740
  }
127737
127741
  function key(importedName, symbol, ambientModuleName, checker) {
127738
127742
  var moduleKey = ambientModuleName || "";
127739
- return importedName + "|" + ts.getSymbolId(ts.skipAlias(symbol, checker)) + "|" + moduleKey;
127743
+ return "".concat(importedName, "|").concat(ts.getSymbolId(ts.skipAlias(symbol, checker)), "|").concat(moduleKey);
127740
127744
  }
127741
127745
  function parseKey(key) {
127742
127746
  var symbolName = key.substring(0, key.indexOf("|"));
@@ -127822,7 +127826,7 @@ var ts;
127822
127826
  if (autoImportProvider) {
127823
127827
  var start = ts.timestamp();
127824
127828
  forEachExternalModule(autoImportProvider.getTypeChecker(), autoImportProvider.getSourceFiles(), function (module, file) { return cb(module, file, autoImportProvider, /*isFromPackageJson*/ true); });
127825
- (_b = host.log) === null || _b === void 0 ? void 0 : _b.call(host, "forEachExternalModuleToImportFrom autoImportProvider: " + (ts.timestamp() - start));
127829
+ (_b = host.log) === null || _b === void 0 ? void 0 : _b.call(host, "forEachExternalModuleToImportFrom autoImportProvider: ".concat(ts.timestamp() - start));
127826
127830
  }
127827
127831
  }
127828
127832
  ts.forEachExternalModuleToImportFrom = forEachExternalModuleToImportFrom;
@@ -127875,7 +127879,7 @@ var ts;
127875
127879
  }
127876
127880
  });
127877
127881
  });
127878
- (_e = host.log) === null || _e === void 0 ? void 0 : _e.call(host, "getExportInfoMap: done in " + (ts.timestamp() - start) + " ms");
127882
+ (_e = host.log) === null || _e === void 0 ? void 0 : _e.call(host, "getExportInfoMap: done in ".concat(ts.timestamp() - start, " ms"));
127879
127883
  return cache;
127880
127884
  }
127881
127885
  ts.getExportInfoMap = getExportInfoMap;
@@ -128408,7 +128412,7 @@ var ts;
128408
128412
  return { spans: spans, endOfLineState: 0 /* None */ };
128409
128413
  function pushClassification(start, end, type) {
128410
128414
  var length = end - start;
128411
- ts.Debug.assert(length > 0, "Classification had non-positive length of " + length);
128415
+ ts.Debug.assert(length > 0, "Classification had non-positive length of ".concat(length));
128412
128416
  spans.push(start);
128413
128417
  spans.push(length);
128414
128418
  spans.push(type);
@@ -129280,7 +129284,7 @@ var ts;
129280
129284
  case ".d.cts" /* Dcts */: return ".d.cts" /* dctsModifier */;
129281
129285
  case ".cjs" /* Cjs */: return ".cjs" /* cjsModifier */;
129282
129286
  case ".cts" /* Cts */: return ".cts" /* ctsModifier */;
129283
- case ".tsbuildinfo" /* TsBuildInfo */: return ts.Debug.fail("Extension " + ".tsbuildinfo" /* TsBuildInfo */ + " is unsupported.");
129287
+ case ".tsbuildinfo" /* TsBuildInfo */: return ts.Debug.fail("Extension ".concat(".tsbuildinfo" /* TsBuildInfo */, " is unsupported."));
129284
129288
  case undefined: return "" /* none */;
129285
129289
  default:
129286
129290
  return ts.Debug.assertNever(extension);
@@ -130016,10 +130020,10 @@ var ts;
130016
130020
  var resolvedFromCacheCount = 0;
130017
130021
  var cacheAttemptCount = 0;
130018
130022
  var result = cb({ tryResolve: tryResolve, resolutionLimitExceeded: function () { return resolutionLimitExceeded; } });
130019
- var hitRateMessage = cacheAttemptCount ? " (" + (resolvedFromCacheCount / cacheAttemptCount * 100).toFixed(1) + "% hit rate)" : "";
130020
- (_a = host.log) === null || _a === void 0 ? void 0 : _a.call(host, logPrefix + ": resolved " + resolvedCount + " module specifiers, plus " + ambientCount + " ambient and " + resolvedFromCacheCount + " from cache" + hitRateMessage);
130021
- (_b = host.log) === null || _b === void 0 ? void 0 : _b.call(host, logPrefix + ": response is " + (resolutionLimitExceeded ? "incomplete" : "complete"));
130022
- (_c = host.log) === null || _c === void 0 ? void 0 : _c.call(host, logPrefix + ": " + (ts.timestamp() - start));
130023
+ var hitRateMessage = cacheAttemptCount ? " (".concat((resolvedFromCacheCount / cacheAttemptCount * 100).toFixed(1), "% hit rate)") : "";
130024
+ (_a = host.log) === null || _a === void 0 ? void 0 : _a.call(host, "".concat(logPrefix, ": resolved ").concat(resolvedCount, " module specifiers, plus ").concat(ambientCount, " ambient and ").concat(resolvedFromCacheCount, " from cache").concat(hitRateMessage));
130025
+ (_b = host.log) === null || _b === void 0 ? void 0 : _b.call(host, "".concat(logPrefix, ": response is ").concat(resolutionLimitExceeded ? "incomplete" : "complete"));
130026
+ (_c = host.log) === null || _c === void 0 ? void 0 : _c.call(host, "".concat(logPrefix, ": ").concat(ts.timestamp() - start));
130023
130027
  return result;
130024
130028
  function tryResolve(exportInfo, isFromAmbientModule) {
130025
130029
  if (isFromAmbientModule) {
@@ -130352,15 +130356,15 @@ var ts;
130352
130356
  var useBraces = origin && originIsSymbolMember(origin) || needsConvertPropertyAccess;
130353
130357
  if (origin && originIsThisType(origin)) {
130354
130358
  insertText = needsConvertPropertyAccess
130355
- ? "this" + (insertQuestionDot ? "?." : "") + "[" + quotePropertyName(sourceFile, preferences, name) + "]"
130356
- : "this" + (insertQuestionDot ? "?." : ".") + name;
130359
+ ? "this".concat(insertQuestionDot ? "?." : "", "[").concat(quotePropertyName(sourceFile, preferences, name), "]")
130360
+ : "this".concat(insertQuestionDot ? "?." : ".").concat(name);
130357
130361
  }
130358
130362
  // We should only have needsConvertPropertyAccess if there's a property access to convert. But see #21790.
130359
130363
  // Somehow there was a global with a non-identifier name. Hopefully someone will complain about getting a "foo bar" global completion and provide a repro.
130360
130364
  else if ((useBraces || insertQuestionDot) && propertyAccessToConvert) {
130361
- insertText = useBraces ? needsConvertPropertyAccess ? "[" + quotePropertyName(sourceFile, preferences, name) + "]" : "[" + name + "]" : name;
130365
+ insertText = useBraces ? needsConvertPropertyAccess ? "[".concat(quotePropertyName(sourceFile, preferences, name), "]") : "[".concat(name, "]") : name;
130362
130366
  if (insertQuestionDot || propertyAccessToConvert.questionDotToken) {
130363
- insertText = "?." + insertText;
130367
+ insertText = "?.".concat(insertText);
130364
130368
  }
130365
130369
  var dot = ts.findChildOfKind(propertyAccessToConvert, 24 /* DotToken */, sourceFile) ||
130366
130370
  ts.findChildOfKind(propertyAccessToConvert, 28 /* QuestionDotToken */, sourceFile);
@@ -130374,7 +130378,7 @@ var ts;
130374
130378
  if (isJsxInitializer) {
130375
130379
  if (insertText === undefined)
130376
130380
  insertText = name;
130377
- insertText = "{" + insertText + "}";
130381
+ insertText = "{".concat(insertText, "}");
130378
130382
  if (typeof isJsxInitializer !== "boolean") {
130379
130383
  replacementSpan = ts.createTextSpanFromNode(isJsxInitializer, sourceFile);
130380
130384
  }
@@ -130387,8 +130391,8 @@ var ts;
130387
130391
  if (precedingToken && ts.positionIsASICandidate(precedingToken.end, precedingToken.parent, sourceFile)) {
130388
130392
  awaitText = ";";
130389
130393
  }
130390
- awaitText += "(await " + propertyAccessToConvert.expression.getText() + ")";
130391
- insertText = needsConvertPropertyAccess ? "" + awaitText + insertText : "" + awaitText + (insertQuestionDot ? "?." : ".") + insertText;
130394
+ awaitText += "(await ".concat(propertyAccessToConvert.expression.getText(), ")");
130395
+ insertText = needsConvertPropertyAccess ? "".concat(awaitText).concat(insertText) : "".concat(awaitText).concat(insertQuestionDot ? "?." : ".").concat(insertText);
130392
130396
  replacementSpan = ts.createTextSpanFromBounds(propertyAccessToConvert.getStart(sourceFile), propertyAccessToConvert.end);
130393
130397
  }
130394
130398
  if (originIsResolvedExport(origin)) {
@@ -130421,7 +130425,7 @@ var ts;
130421
130425
  && !(type.flags & 1048576 /* Union */ && ts.find(type.types, function (type) { return !!(type.flags & 528 /* BooleanLike */); }))) {
130422
130426
  if (type.flags & 402653316 /* StringLike */ || (type.flags & 1048576 /* Union */ && ts.every(type.types, function (type) { return !!(type.flags & (402653316 /* StringLike */ | 32768 /* Undefined */)); }))) {
130423
130427
  // If is string like or undefined use quotes
130424
- insertText = ts.escapeSnippetText(name) + "=" + ts.quote(sourceFile, preferences, "$1");
130428
+ insertText = "".concat(ts.escapeSnippetText(name), "=").concat(ts.quote(sourceFile, preferences, "$1"));
130425
130429
  isSnippet = true;
130426
130430
  }
130427
130431
  else {
@@ -130430,7 +130434,7 @@ var ts;
130430
130434
  }
130431
130435
  }
130432
130436
  if (useBraces_1) {
130433
- insertText = ts.escapeSnippetText(name) + "={$1}";
130437
+ insertText = "".concat(ts.escapeSnippetText(name), "={$1}");
130434
130438
  isSnippet = true;
130435
130439
  }
130436
130440
  }
@@ -130715,14 +130719,14 @@ var ts;
130715
130719
  var importKind = ts.codefix.getImportKind(sourceFile, exportKind, options, /*forceImportKeyword*/ true);
130716
130720
  var isTopLevelTypeOnly = ((_b = (_a = ts.tryCast(importCompletionNode, ts.isImportDeclaration)) === null || _a === void 0 ? void 0 : _a.importClause) === null || _b === void 0 ? void 0 : _b.isTypeOnly) || ((_c = ts.tryCast(importCompletionNode, ts.isImportEqualsDeclaration)) === null || _c === void 0 ? void 0 : _c.isTypeOnly);
130717
130721
  var isImportSpecifierTypeOnly = couldBeTypeOnlyImportSpecifier(importCompletionNode, contextToken);
130718
- var topLevelTypeOnlyText = isTopLevelTypeOnly ? " " + ts.tokenToString(151 /* TypeKeyword */) + " " : " ";
130719
- var importSpecifierTypeOnlyText = isImportSpecifierTypeOnly ? ts.tokenToString(151 /* TypeKeyword */) + " " : "";
130722
+ var topLevelTypeOnlyText = isTopLevelTypeOnly ? " ".concat(ts.tokenToString(151 /* TypeKeyword */), " ") : " ";
130723
+ var importSpecifierTypeOnlyText = isImportSpecifierTypeOnly ? "".concat(ts.tokenToString(151 /* TypeKeyword */), " ") : "";
130720
130724
  var suffix = useSemicolons ? ";" : "";
130721
130725
  switch (importKind) {
130722
- case 3 /* CommonJS */: return { replacementSpan: replacementSpan, insertText: "import" + topLevelTypeOnlyText + ts.escapeSnippetText(name) + tabStop + " = require(" + quotedModuleSpecifier + ")" + suffix };
130723
- case 1 /* Default */: return { replacementSpan: replacementSpan, insertText: "import" + topLevelTypeOnlyText + ts.escapeSnippetText(name) + tabStop + " from " + quotedModuleSpecifier + suffix };
130724
- case 2 /* Namespace */: return { replacementSpan: replacementSpan, insertText: "import" + topLevelTypeOnlyText + "* as " + ts.escapeSnippetText(name) + " from " + quotedModuleSpecifier + suffix };
130725
- case 0 /* Named */: return { replacementSpan: replacementSpan, insertText: "import" + topLevelTypeOnlyText + "{ " + importSpecifierTypeOnlyText + ts.escapeSnippetText(name) + tabStop + " } from " + quotedModuleSpecifier + suffix };
130726
+ case 3 /* CommonJS */: return { replacementSpan: replacementSpan, insertText: "import".concat(topLevelTypeOnlyText).concat(ts.escapeSnippetText(name)).concat(tabStop, " = require(").concat(quotedModuleSpecifier, ")").concat(suffix) };
130727
+ case 1 /* Default */: return { replacementSpan: replacementSpan, insertText: "import".concat(topLevelTypeOnlyText).concat(ts.escapeSnippetText(name)).concat(tabStop, " from ").concat(quotedModuleSpecifier).concat(suffix) };
130728
+ case 2 /* Namespace */: return { replacementSpan: replacementSpan, insertText: "import".concat(topLevelTypeOnlyText, "* as ").concat(ts.escapeSnippetText(name), " from ").concat(quotedModuleSpecifier).concat(suffix) };
130729
+ case 0 /* Named */: return { replacementSpan: replacementSpan, insertText: "import".concat(topLevelTypeOnlyText, "{ ").concat(importSpecifierTypeOnlyText).concat(ts.escapeSnippetText(name)).concat(tabStop, " } from ").concat(quotedModuleSpecifier).concat(suffix) };
130726
130730
  }
130727
130731
  }
130728
130732
  function quotePropertyName(sourceFile, preferences, name) {
@@ -133684,7 +133688,7 @@ var ts;
133684
133688
  }
133685
133689
  function getDocumentRegistryEntry(bucketEntry, scriptKind) {
133686
133690
  var entry = isDocumentRegistryEntry(bucketEntry) ? bucketEntry : bucketEntry.get(ts.Debug.checkDefined(scriptKind, "If there are more than one scriptKind's for same document the scriptKind should be provided"));
133687
- ts.Debug.assert(scriptKind === undefined || !entry || entry.sourceFile.scriptKind === scriptKind, "Script kind should match provided ScriptKind:" + scriptKind + " and sourceFile.scriptKind: " + (entry === null || entry === void 0 ? void 0 : entry.sourceFile.scriptKind) + ", !entry: " + !entry);
133691
+ ts.Debug.assert(scriptKind === undefined || !entry || entry.sourceFile.scriptKind === scriptKind, "Script kind should match provided ScriptKind:".concat(scriptKind, " and sourceFile.scriptKind: ").concat(entry === null || entry === void 0 ? void 0 : entry.sourceFile.scriptKind, ", !entry: ").concat(!entry));
133688
133692
  return entry;
133689
133693
  }
133690
133694
  function acquireOrUpdateDocument(fileName, path, compilationSettings, key, scriptSnapshot, version, acquiring, scriptKind) {
@@ -134713,7 +134717,7 @@ var ts;
134713
134717
  sourceFile: def.file,
134714
134718
  name: def.reference.fileName,
134715
134719
  kind: "string" /* string */,
134716
- displayParts: [ts.displayPart("\"" + def.reference.fileName + "\"", ts.SymbolDisplayPartKind.stringLiteral)]
134720
+ displayParts: [ts.displayPart("\"".concat(def.reference.fileName, "\""), ts.SymbolDisplayPartKind.stringLiteral)]
134717
134721
  };
134718
134722
  }
134719
134723
  default:
@@ -135293,7 +135297,7 @@ var ts;
135293
135297
  if (symbol.flags & 33554432 /* Transient */)
135294
135298
  return undefined;
135295
135299
  // Assertions for GH#21814. We should be handling SourceFile symbols in `getReferencedSymbolsForModule` instead of getting here.
135296
- ts.Debug.fail("Unexpected symbol at " + ts.Debug.formatSyntaxKind(node.kind) + ": " + ts.Debug.formatSymbol(symbol));
135300
+ ts.Debug.fail("Unexpected symbol at ".concat(ts.Debug.formatSyntaxKind(node.kind), ": ").concat(ts.Debug.formatSymbol(symbol)));
135297
135301
  }
135298
135302
  return ts.isTypeLiteralNode(decl.parent) && ts.isUnionTypeNode(decl.parent.parent)
135299
135303
  ? checker.getPropertyOfType(checker.getTypeFromTypeNode(decl.parent.parent), symbol.name)
@@ -136578,8 +136582,8 @@ var ts;
136578
136582
  var end = pos + 6; /* "static".length */
136579
136583
  var typeChecker = program.getTypeChecker();
136580
136584
  var symbol = typeChecker.getSymbolAtLocation(node.parent);
136581
- var prefix = symbol ? typeChecker.symbolToString(symbol, node.parent) + " " : "";
136582
- return { text: prefix + "static {}", pos: pos, end: end };
136585
+ var prefix = symbol ? "".concat(typeChecker.symbolToString(symbol, node.parent), " ") : "";
136586
+ return { text: "".concat(prefix, "static {}"), pos: pos, end: end };
136583
136587
  }
136584
136588
  var declName = isConstNamedExpression(node) ? node.parent.name :
136585
136589
  ts.Debug.checkDefined(ts.getNameOfDeclaration(node), "Expected call hierarchy item to have a name");
@@ -137863,7 +137867,7 @@ var ts;
137863
137867
  function getJSDocTagCompletions() {
137864
137868
  return jsDocTagCompletionEntries || (jsDocTagCompletionEntries = ts.map(jsDocTagNames, function (tagName) {
137865
137869
  return {
137866
- name: "@" + tagName,
137870
+ name: "@".concat(tagName),
137867
137871
  kind: "keyword" /* keyword */,
137868
137872
  kindModifiers: "",
137869
137873
  sortText: ts.Completions.SortText.LocationPriority
@@ -137995,11 +137999,11 @@ var ts;
137995
137999
  var name = _a.name, dotDotDotToken = _a.dotDotDotToken;
137996
138000
  var paramName = name.kind === 79 /* Identifier */ ? name.text : "param" + i;
137997
138001
  var type = isJavaScriptFile ? (dotDotDotToken ? "{...any} " : "{any} ") : "";
137998
- return indentationStr + " * @param " + type + paramName + newLine;
138002
+ return "".concat(indentationStr, " * @param ").concat(type).concat(paramName).concat(newLine);
137999
138003
  }).join("");
138000
138004
  }
138001
138005
  function returnsDocComment(indentationStr, newLine) {
138002
- return indentationStr + " * @returns" + newLine;
138006
+ return "".concat(indentationStr, " * @returns").concat(newLine);
138003
138007
  }
138004
138008
  function getCommentOwnerInfo(tokenAtPos, options) {
138005
138009
  return ts.forEachAncestor(tokenAtPos, function (n) { return getCommentOwnerInfoWorker(n, options); });
@@ -138842,7 +138846,7 @@ var ts;
138842
138846
  }
138843
138847
  if (name) {
138844
138848
  var text = ts.isIdentifier(name) ? name.text
138845
- : ts.isElementAccessExpression(name) ? "[" + nodeText(name.argumentExpression) + "]"
138849
+ : ts.isElementAccessExpression(name) ? "[".concat(nodeText(name.argumentExpression), "]")
138846
138850
  : nodeText(name);
138847
138851
  if (text.length > 0) {
138848
138852
  return cleanText(text);
@@ -138852,7 +138856,7 @@ var ts;
138852
138856
  case 303 /* SourceFile */:
138853
138857
  var sourceFile = node;
138854
138858
  return ts.isExternalModule(sourceFile)
138855
- ? "\"" + ts.escapeString(ts.getBaseFileName(ts.removeFileExtension(ts.normalizePath(sourceFile.fileName)))) + "\""
138859
+ ? "\"".concat(ts.escapeString(ts.getBaseFileName(ts.removeFileExtension(ts.normalizePath(sourceFile.fileName)))), "\"")
138856
138860
  : "<global>";
138857
138861
  case 270 /* ExportAssignment */:
138858
138862
  return ts.isExportAssignment(node) && node.isExportEquals ? "export=" /* ExportEquals */ : "default" /* Default */;
@@ -139048,10 +139052,10 @@ var ts;
139048
139052
  if (name !== undefined) {
139049
139053
  name = cleanText(name);
139050
139054
  if (name.length > maxLength) {
139051
- return name + " callback";
139055
+ return "".concat(name, " callback");
139052
139056
  }
139053
139057
  var args = cleanText(ts.mapDefined(parent.arguments, function (a) { return ts.isStringLiteralLike(a) ? a.getText(curSourceFile) : undefined; }).join(", "));
139054
- return name + "(" + args + ") callback";
139058
+ return "".concat(name, "(").concat(args, ") callback");
139055
139059
  }
139056
139060
  }
139057
139061
  return "<function>";
@@ -139064,7 +139068,7 @@ var ts;
139064
139068
  else if (ts.isPropertyAccessExpression(expr)) {
139065
139069
  var left = getCalledExpressionName(expr.expression);
139066
139070
  var right = expr.name.text;
139067
- return left === undefined ? right : left + "." + right;
139071
+ return left === undefined ? right : "".concat(left, ".").concat(right);
139068
139072
  }
139069
139073
  else {
139070
139074
  return undefined;
@@ -141511,7 +141515,7 @@ var ts;
141511
141515
  var _loop_9 = function (n) {
141512
141516
  // If the node is not a subspan of its parent, this is a big problem.
141513
141517
  // There have been crashes that might be caused by this violation.
141514
- ts.Debug.assert(ts.rangeContainsRange(n.parent, n), "Not a subspan", function () { return "Child: " + ts.Debug.formatSyntaxKind(n.kind) + ", parent: " + ts.Debug.formatSyntaxKind(n.parent.kind); });
141518
+ ts.Debug.assert(ts.rangeContainsRange(n.parent, n), "Not a subspan", function () { return "Child: ".concat(ts.Debug.formatSyntaxKind(n.kind), ", parent: ").concat(ts.Debug.formatSyntaxKind(n.parent.kind)); });
141515
141519
  var argumentInfo = getImmediatelyContainingArgumentOrContextualParameterInfo(n, position, sourceFile, checker);
141516
141520
  if (argumentInfo) {
141517
141521
  return { value: argumentInfo };
@@ -141683,7 +141687,7 @@ var ts;
141683
141687
  (function (InlayHints) {
141684
141688
  var maxHintsLength = 30;
141685
141689
  var leadingParameterNameCommentRegexFactory = function (name) {
141686
- return new RegExp("^\\s?/\\*\\*?\\s?" + name + "\\s?\\*\\/\\s?$");
141690
+ return new RegExp("^\\s?/\\*\\*?\\s?".concat(name, "\\s?\\*\\/\\s?$"));
141687
141691
  };
141688
141692
  function shouldShowParameterNameHints(preferences) {
141689
141693
  return preferences.includeInlayParameterNameHints === "literals" || preferences.includeInlayParameterNameHints === "all";
@@ -141747,7 +141751,7 @@ var ts;
141747
141751
  }
141748
141752
  function addParameterHints(text, position, isFirstVariadicArgument) {
141749
141753
  result.push({
141750
- text: "" + (isFirstVariadicArgument ? "..." : "") + truncation(text, maxHintsLength) + ":",
141754
+ text: "".concat(isFirstVariadicArgument ? "..." : "").concat(truncation(text, maxHintsLength), ":"),
141751
141755
  position: position,
141752
141756
  kind: "Parameter" /* Parameter */,
141753
141757
  whitespaceAfter: true,
@@ -141755,7 +141759,7 @@ var ts;
141755
141759
  }
141756
141760
  function addTypeHints(text, position) {
141757
141761
  result.push({
141758
- text: ": " + truncation(text, maxHintsLength),
141762
+ text: ": ".concat(truncation(text, maxHintsLength)),
141759
141763
  position: position,
141760
141764
  kind: "Type" /* Type */,
141761
141765
  whitespaceBefore: true,
@@ -141763,7 +141767,7 @@ var ts;
141763
141767
  }
141764
141768
  function addEnumMemberValueHints(text, position) {
141765
141769
  result.push({
141766
- text: "= " + truncation(text, maxHintsLength),
141770
+ text: "= ".concat(truncation(text, maxHintsLength)),
141767
141771
  position: position,
141768
141772
  kind: "Enum" /* Enum */,
141769
141773
  whitespaceBefore: true,
@@ -142298,7 +142302,7 @@ var ts;
142298
142302
  }
142299
142303
  }
142300
142304
  function getKeyFromNode(exp) {
142301
- return exp.pos.toString() + ":" + exp.end.toString();
142305
+ return "".concat(exp.pos.toString(), ":").concat(exp.end.toString());
142302
142306
  }
142303
142307
  function canBeConvertedToClass(node, checker) {
142304
142308
  var _a, _b, _c, _d;
@@ -146447,7 +146451,7 @@ var ts;
146447
146451
  var insertAtLineStart = isValidLocationToAddComment(sourceFile, startPosition);
146448
146452
  var token = ts.getTouchingToken(sourceFile, insertAtLineStart ? startPosition : position);
146449
146453
  var indent = sourceFile.text.slice(lineStartPosition, startPosition);
146450
- var text = (insertAtLineStart ? "" : this.newLineCharacter) + "//" + commentText + this.newLineCharacter + indent;
146454
+ var text = "".concat(insertAtLineStart ? "" : this.newLineCharacter, "//").concat(commentText).concat(this.newLineCharacter).concat(indent);
146451
146455
  this.insertText(sourceFile, token.getStart(sourceFile), text);
146452
146456
  };
146453
146457
  ChangeTracker.prototype.insertJsdocCommentBefore = function (sourceFile, node, tag) {
@@ -146671,7 +146675,7 @@ var ts;
146671
146675
  };
146672
146676
  ChangeTracker.prototype.getInsertNodeAfterOptions = function (sourceFile, after) {
146673
146677
  var options = this.getInsertNodeAfterOptionsWorker(after);
146674
- return __assign(__assign({}, options), { prefix: after.end === sourceFile.end && ts.isStatement(after) ? (options.prefix ? "\n" + options.prefix : "\n") : options.prefix });
146678
+ return __assign(__assign({}, options), { prefix: after.end === sourceFile.end && ts.isStatement(after) ? (options.prefix ? "\n".concat(options.prefix) : "\n") : options.prefix });
146675
146679
  };
146676
146680
  ChangeTracker.prototype.getInsertNodeAfterOptionsWorker = function (node) {
146677
146681
  switch (node.kind) {
@@ -146705,7 +146709,7 @@ var ts;
146705
146709
  }
146706
146710
  else {
146707
146711
  // `x => {}` -> `function f(x) {}`
146708
- this.insertText(sourceFile, ts.first(node.parameters).getStart(sourceFile), "function " + name + "(");
146712
+ this.insertText(sourceFile, ts.first(node.parameters).getStart(sourceFile), "function ".concat(name, "("));
146709
146713
  // Replacing full range of arrow to get rid of the leading space -- replace ` =>` with `)`
146710
146714
  this.replaceRange(sourceFile, arrow, ts.factory.createToken(21 /* CloseParenToken */));
146711
146715
  }
@@ -146771,7 +146775,7 @@ var ts;
146771
146775
  var nextNode = containingList[index + 1];
146772
146776
  var startPos = skipWhitespacesAndLineBreaks(sourceFile.text, nextNode.getFullStart());
146773
146777
  // write separator and leading trivia of the next element as suffix
146774
- var suffix = "" + ts.tokenToString(nextToken.kind) + sourceFile.text.substring(nextToken.end, startPos);
146778
+ var suffix = "".concat(ts.tokenToString(nextToken.kind)).concat(sourceFile.text.substring(nextToken.end, startPos));
146775
146779
  this.insertNodesAt(sourceFile, startPos, [newNode], { suffix: suffix });
146776
146780
  }
146777
146781
  }
@@ -146816,7 +146820,7 @@ var ts;
146816
146820
  this.replaceRange(sourceFile, ts.createRange(insertPos), newNode, { indentation: indentation, prefix: this.newLineCharacter });
146817
146821
  }
146818
146822
  else {
146819
- this.replaceRange(sourceFile, ts.createRange(end), newNode, { prefix: ts.tokenToString(separator) + " " });
146823
+ this.replaceRange(sourceFile, ts.createRange(end), newNode, { prefix: "".concat(ts.tokenToString(separator), " ") });
146820
146824
  }
146821
146825
  }
146822
146826
  };
@@ -146947,7 +146951,7 @@ var ts;
146947
146951
  var normalized = ts.stableSort(changesInFile, function (a, b) { return (a.range.pos - b.range.pos) || (a.range.end - b.range.end); });
146948
146952
  var _loop_12 = function (i) {
146949
146953
  ts.Debug.assert(normalized[i].range.end <= normalized[i + 1].range.pos, "Changes overlap", function () {
146950
- return JSON.stringify(normalized[i].range) + " and " + JSON.stringify(normalized[i + 1].range);
146954
+ return "".concat(JSON.stringify(normalized[i].range), " and ").concat(JSON.stringify(normalized[i + 1].range));
146951
146955
  });
146952
146956
  };
146953
146957
  // verify that change intervals do not overlap, except possibly at end points.
@@ -147038,7 +147042,7 @@ var ts;
147038
147042
  function applyChanges(text, changes) {
147039
147043
  for (var i = changes.length - 1; i >= 0; i--) {
147040
147044
  var _a = changes[i], span = _a.span, newText = _a.newText;
147041
- text = "" + text.substring(0, span.start) + newText + text.substring(ts.textSpanEnd(span));
147045
+ text = "".concat(text.substring(0, span.start)).concat(newText).concat(text.substring(ts.textSpanEnd(span)));
147042
147046
  }
147043
147047
  return text;
147044
147048
  }
@@ -149523,7 +149527,7 @@ var ts;
149523
149527
  if (!res.has(text) && (originalKeywordKind !== undefined && ts.isNonContextualKeyword(originalKeywordKind)
149524
149528
  || checker.resolveName(text, node, 111551 /* Value */, /*excludeGlobals*/ true))) {
149525
149529
  // Unconditionally add an underscore in case `text` is a keyword.
149526
- res.set(text, makeUniqueName("_" + text, identifiers));
149530
+ res.set(text, makeUniqueName("_".concat(text), identifiers));
149527
149531
  }
149528
149532
  });
149529
149533
  return res;
@@ -149623,7 +149627,7 @@ var ts;
149623
149627
  // `const a = require("b").c` --> `import { c as a } from "./b";
149624
149628
  return convertedImports([makeSingleImport(name.text, propertyName, moduleSpecifier, quotePreference)]);
149625
149629
  default:
149626
- return ts.Debug.assertNever(name, "Convert to ES module got invalid syntax form " + name.kind);
149630
+ return ts.Debug.assertNever(name, "Convert to ES module got invalid syntax form ".concat(name.kind));
149627
149631
  }
149628
149632
  }
149629
149633
  function convertAssignment(sourceFile, checker, assignment, changes, exports, useSitesToUnqualify) {
@@ -149674,7 +149678,7 @@ var ts;
149674
149678
  case 168 /* MethodDeclaration */:
149675
149679
  return !ts.isIdentifier(prop.name) ? undefined : functionExpressionToDeclaration(prop.name.text, [ts.factory.createToken(93 /* ExportKeyword */)], prop, useSitesToUnqualify);
149676
149680
  default:
149677
- ts.Debug.assertNever(prop, "Convert to ES6 got invalid prop kind " + prop.kind);
149681
+ ts.Debug.assertNever(prop, "Convert to ES6 got invalid prop kind ".concat(prop.kind));
149678
149682
  }
149679
149683
  });
149680
149684
  return statements && [statements, false];
@@ -149806,7 +149810,7 @@ var ts;
149806
149810
  case 79 /* Identifier */:
149807
149811
  return convertSingleIdentifierImport(name, moduleSpecifier, checker, identifiers, quotePreference);
149808
149812
  default:
149809
- return ts.Debug.assertNever(name, "Convert to ES module got invalid name kind " + name.kind);
149813
+ return ts.Debug.assertNever(name, "Convert to ES module got invalid name kind ".concat(name.kind));
149810
149814
  }
149811
149815
  }
149812
149816
  /**
@@ -149863,7 +149867,7 @@ var ts;
149863
149867
  // Identifiers helpers
149864
149868
  function makeUniqueName(name, identifiers) {
149865
149869
  while (identifiers.original.has(name) || identifiers.additional.has(name)) {
149866
- name = "_" + name;
149870
+ name = "_".concat(name);
149867
149871
  }
149868
149872
  identifiers.additional.add(name);
149869
149873
  return name;
@@ -149943,7 +149947,7 @@ var ts;
149943
149947
  if (!qualifiedName)
149944
149948
  return undefined;
149945
149949
  var changes = ts.textChanges.ChangeTracker.with(context, function (t) { return doChange(t, context.sourceFile, qualifiedName); });
149946
- var newText = qualifiedName.left.text + "[\"" + qualifiedName.right.text + "\"]";
149950
+ var newText = "".concat(qualifiedName.left.text, "[\"").concat(qualifiedName.right.text, "\"]");
149947
149951
  return [codefix.createCodeFixAction(fixId, changes, [ts.Diagnostics.Rewrite_as_the_indexed_access_type_0, newText], fixId, ts.Diagnostics.Rewrite_all_as_indexed_access_types)];
149948
149952
  },
149949
149953
  fixIds: [fixId],
@@ -150345,7 +150349,7 @@ var ts;
150345
150349
  // Excluding from fix-all
150346
150350
  break;
150347
150351
  default:
150348
- ts.Debug.assertNever(fix, "fix wasn't never - got kind " + fix.kind);
150352
+ ts.Debug.assertNever(fix, "fix wasn't never - got kind ".concat(fix.kind));
150349
150353
  }
150350
150354
  function reduceAddAsTypeOnlyValues(prevValue, newValue) {
150351
150355
  // `NotAllowed` overrides `Required` because one addition of a new import might be required to be type-only
@@ -150389,7 +150393,7 @@ var ts;
150389
150393
  return newEntry;
150390
150394
  }
150391
150395
  function newImportsKey(moduleSpecifier, topLevelTypeOnly) {
150392
- return (topLevelTypeOnly ? 1 : 0) + "|" + moduleSpecifier;
150396
+ return "".concat(topLevelTypeOnly ? 1 : 0, "|").concat(moduleSpecifier);
150393
150397
  }
150394
150398
  }
150395
150399
  function writeFixes(changeTracker) {
@@ -150887,7 +150891,7 @@ var ts;
150887
150891
  case ts.ModuleKind.NodeNext:
150888
150892
  return importingFile.impliedNodeFormat === ts.ModuleKind.ESNext ? 2 /* Namespace */ : 3 /* CommonJS */;
150889
150893
  default:
150890
- return ts.Debug.assertNever(moduleKind, "Unexpected moduleKind " + moduleKind);
150894
+ return ts.Debug.assertNever(moduleKind, "Unexpected moduleKind ".concat(moduleKind));
150891
150895
  }
150892
150896
  }
150893
150897
  function getFixesInfoForNonUMDImport(_a, symbolToken, useAutoImportProvider) {
@@ -151010,7 +151014,7 @@ var ts;
151010
151014
  switch (fix.kind) {
151011
151015
  case 0 /* UseNamespace */:
151012
151016
  addNamespaceQualifier(changes, sourceFile, fix);
151013
- return [ts.Diagnostics.Change_0_to_1, symbolName, fix.namespacePrefix + "." + symbolName];
151017
+ return [ts.Diagnostics.Change_0_to_1, symbolName, "".concat(fix.namespacePrefix, ".").concat(symbolName)];
151014
151018
  case 1 /* JsdocTypeImport */:
151015
151019
  addImportType(changes, sourceFile, fix, quotePreference);
151016
151020
  return [ts.Diagnostics.Change_0_to_1, symbolName, getImportTypePrefix(fix.moduleSpecifier, quotePreference) + symbolName];
@@ -151041,7 +151045,7 @@ var ts;
151041
151045
  : [ts.Diagnostics.Remove_type_from_import_declaration_from_0, getModuleSpecifierText(promotedDeclaration)];
151042
151046
  }
151043
151047
  default:
151044
- return ts.Debug.assertNever(fix, "Unexpected fix kind " + fix.kind);
151048
+ return ts.Debug.assertNever(fix, "Unexpected fix kind ".concat(fix.kind));
151045
151049
  }
151046
151050
  }
151047
151051
  function getModuleSpecifierText(promotedDeclaration) {
@@ -151194,7 +151198,7 @@ var ts;
151194
151198
  }
151195
151199
  function getImportTypePrefix(moduleSpecifier, quotePreference) {
151196
151200
  var quote = ts.getQuoteFromPreference(quotePreference);
151197
- return "import(" + quote + moduleSpecifier + quote + ").";
151201
+ return "import(".concat(quote).concat(moduleSpecifier).concat(quote, ").");
151198
151202
  }
151199
151203
  function needsTypeOnly(_a) {
151200
151204
  var addAsTypeOnly = _a.addAsTypeOnly;
@@ -151290,7 +151294,7 @@ var ts;
151290
151294
  lastCharWasValid = isValid;
151291
151295
  }
151292
151296
  // Need `|| "_"` to ensure result isn't empty.
151293
- return !ts.isStringANonContextualKeyword(res) ? res || "_" : "_" + res;
151297
+ return !ts.isStringANonContextualKeyword(res) ? res || "_" : "_".concat(res);
151294
151298
  }
151295
151299
  codefix.moduleSpecifierToValidIdentifier = moduleSpecifierToValidIdentifier;
151296
151300
  })(codefix = ts.codefix || (ts.codefix = {}));
@@ -152546,7 +152550,7 @@ var ts;
152546
152550
  break;
152547
152551
  }
152548
152552
  default:
152549
- ts.Debug.fail("Bad fixId: " + context.fixId);
152553
+ ts.Debug.fail("Bad fixId: ".concat(context.fixId));
152550
152554
  }
152551
152555
  });
152552
152556
  },
@@ -152994,7 +152998,7 @@ var ts;
152994
152998
  if (!isValidCharacter(character)) {
152995
152999
  return;
152996
153000
  }
152997
- var replacement = useHtmlEntity ? htmlEntity[character] : "{" + ts.quote(sourceFile, preferences, character) + "}";
153001
+ var replacement = useHtmlEntity ? htmlEntity[character] : "{".concat(ts.quote(sourceFile, preferences, character), "}");
152998
153002
  changes.replaceRangeWithText(sourceFile, { pos: start, end: start + 1 }, replacement);
152999
153003
  }
153000
153004
  })(codefix = ts.codefix || (ts.codefix = {}));
@@ -153274,11 +153278,11 @@ var ts;
153274
153278
  token = ts.cast(token.parent, ts.isInferTypeNode).typeParameter.name;
153275
153279
  }
153276
153280
  if (ts.isIdentifier(token) && canPrefix(token)) {
153277
- changes.replaceNode(sourceFile, token, ts.factory.createIdentifier("_" + token.text));
153281
+ changes.replaceNode(sourceFile, token, ts.factory.createIdentifier("_".concat(token.text)));
153278
153282
  if (ts.isParameter(token.parent)) {
153279
153283
  ts.getJSDocParameterTags(token.parent).forEach(function (tag) {
153280
153284
  if (ts.isIdentifier(tag.name)) {
153281
- changes.replaceNode(sourceFile, tag.name, ts.factory.createIdentifier("_" + tag.name.text));
153285
+ changes.replaceNode(sourceFile, tag.name, ts.factory.createIdentifier("_".concat(tag.name.text)));
153282
153286
  }
153283
153287
  });
153284
153288
  }
@@ -153620,7 +153624,7 @@ var ts;
153620
153624
  }); }
153621
153625
  });
153622
153626
  function doChange(changes, sourceFile, name) {
153623
- changes.replaceNodeWithText(sourceFile, name, name.text + "()");
153627
+ changes.replaceNodeWithText(sourceFile, name, "".concat(name.text, "()"));
153624
153628
  }
153625
153629
  function getCallName(sourceFile, start) {
153626
153630
  var token = ts.getTokenAtPosition(sourceFile, start);
@@ -154744,7 +154748,7 @@ var ts;
154744
154748
  var parameters = [];
154745
154749
  var length = Math.max.apply(Math, calls.map(function (c) { return c.argumentTypes.length; }));
154746
154750
  var _loop_16 = function (i) {
154747
- var symbol = checker.createSymbol(1 /* FunctionScopedVariable */, ts.escapeLeadingUnderscores("arg" + i));
154751
+ var symbol = checker.createSymbol(1 /* FunctionScopedVariable */, ts.escapeLeadingUnderscores("arg".concat(i)));
154748
154752
  symbol.type = combineTypes(calls.map(function (call) { return call.argumentTypes[i] || checker.getUndefinedType(); }));
154749
154753
  if (calls.some(function (call) { return call.argumentTypes[i] === undefined; })) {
154750
154754
  symbol.flags |= 16777216 /* Optional */;
@@ -154847,7 +154851,7 @@ var ts;
154847
154851
  codefix.createCodeFixActionWithoutFixAll(fixName, [codefix.createFileTextChanges(sourceFile.fileName, [
154848
154852
  ts.createTextChange(sourceFile.checkJsDirective
154849
154853
  ? ts.createTextSpanFromBounds(sourceFile.checkJsDirective.pos, sourceFile.checkJsDirective.end)
154850
- : ts.createTextSpan(0, 0), "// @ts-nocheck" + newLineCharacter),
154854
+ : ts.createTextSpan(0, 0), "// @ts-nocheck".concat(newLineCharacter)),
154851
154855
  ])], ts.Diagnostics.Disable_checking_for_this_file),
154852
154856
  ];
154853
154857
  if (ts.textChanges.isValidLocationToAddComment(sourceFile, span.start)) {
@@ -155113,7 +155117,7 @@ var ts;
155113
155117
  var typeParameters = isJs || typeArguments === undefined
155114
155118
  ? undefined
155115
155119
  : ts.map(typeArguments, function (_, i) {
155116
- return ts.factory.createTypeParameterDeclaration(84 /* T */ + typeArguments.length - 1 <= 90 /* Z */ ? String.fromCharCode(84 /* T */ + i) : "T" + i);
155120
+ return ts.factory.createTypeParameterDeclaration(84 /* T */ + typeArguments.length - 1 <= 90 /* Z */ ? String.fromCharCode(84 /* T */ + i) : "T".concat(i));
155117
155121
  });
155118
155122
  var parameters = createDummyParameters(args.length, names, types, /*minArgumentCount*/ undefined, isJs);
155119
155123
  var type = isJs || contextualType === undefined
@@ -155148,7 +155152,7 @@ var ts;
155148
155152
  /*decorators*/ undefined,
155149
155153
  /*modifiers*/ undefined,
155150
155154
  /*dotDotDotToken*/ undefined,
155151
- /*name*/ names && names[i] || "arg" + i,
155155
+ /*name*/ names && names[i] || "arg".concat(i),
155152
155156
  /*questionToken*/ minArgumentCount !== undefined && i >= minArgumentCount ? ts.factory.createToken(57 /* QuestionToken */) : undefined,
155153
155157
  /*type*/ inJs ? undefined : types && types[i] || ts.factory.createKeywordTypeNode(130 /* AnyKeyword */),
155154
155158
  /*initializer*/ undefined);
@@ -155399,7 +155403,7 @@ var ts;
155399
155403
  }
155400
155404
  var name = declaration.name.text;
155401
155405
  var startWithUnderscore = ts.startsWithUnderscore(name);
155402
- var fieldName = createPropertyName(startWithUnderscore ? name : ts.getUniqueName("_" + name, file), declaration.name);
155406
+ var fieldName = createPropertyName(startWithUnderscore ? name : ts.getUniqueName("_".concat(name), file), declaration.name);
155403
155407
  var accessorName = createPropertyName(startWithUnderscore ? ts.getUniqueName(name.substring(1), file) : name, declaration.name);
155404
155408
  return {
155405
155409
  isStatic: ts.hasStaticModifier(declaration),
@@ -156438,7 +156442,7 @@ var ts;
156438
156442
  changes.insertNodeAfter(exportingSourceFile, exportNode, ts.factory.createExportDefault(ts.factory.createIdentifier(exportName.text)));
156439
156443
  break;
156440
156444
  default:
156441
- ts.Debug.fail("Unexpected exportNode kind " + exportNode.kind);
156445
+ ts.Debug.fail("Unexpected exportNode kind ".concat(exportNode.kind));
156442
156446
  }
156443
156447
  }
156444
156448
  }
@@ -156526,7 +156530,7 @@ var ts;
156526
156530
  break;
156527
156531
  }
156528
156532
  default:
156529
- ts.Debug.assertNever(parent, "Unexpected parent kind " + parent.kind);
156533
+ ts.Debug.assertNever(parent, "Unexpected parent kind ".concat(parent.kind));
156530
156534
  }
156531
156535
  }
156532
156536
  function makeImportSpecifier(propertyName, name) {
@@ -157109,7 +157113,7 @@ var ts;
157109
157113
  var newComment = ts.displayPartsToString(parameterDocComment);
157110
157114
  if (newComment.length) {
157111
157115
  ts.setSyntheticLeadingComments(result, [{
157112
- text: "*\n" + newComment.split("\n").map(function (c) { return " * " + c; }).join("\n") + "\n ",
157116
+ text: "*\n".concat(newComment.split("\n").map(function (c) { return " * ".concat(c); }).join("\n"), "\n "),
157113
157117
  kind: 3 /* MultiLineCommentTrivia */,
157114
157118
  pos: -1,
157115
157119
  end: -1,
@@ -157254,7 +157258,7 @@ var ts;
157254
157258
  usedFunctionNames.set(description, true);
157255
157259
  functionActions.push({
157256
157260
  description: description,
157257
- name: "function_scope_" + i,
157261
+ name: "function_scope_".concat(i),
157258
157262
  kind: extractFunctionAction.kind
157259
157263
  });
157260
157264
  }
@@ -157262,7 +157266,7 @@ var ts;
157262
157266
  else if (!innermostErrorFunctionAction) {
157263
157267
  innermostErrorFunctionAction = {
157264
157268
  description: description,
157265
- name: "function_scope_" + i,
157269
+ name: "function_scope_".concat(i),
157266
157270
  notApplicableReason: getStringError(functionExtraction.errors),
157267
157271
  kind: extractFunctionAction.kind
157268
157272
  };
@@ -157278,7 +157282,7 @@ var ts;
157278
157282
  usedConstantNames.set(description_1, true);
157279
157283
  constantActions.push({
157280
157284
  description: description_1,
157281
- name: "constant_scope_" + i,
157285
+ name: "constant_scope_".concat(i),
157282
157286
  kind: extractConstantAction.kind
157283
157287
  });
157284
157288
  }
@@ -157286,7 +157290,7 @@ var ts;
157286
157290
  else if (!innermostErrorConstantAction) {
157287
157291
  innermostErrorConstantAction = {
157288
157292
  description: description,
157289
- name: "constant_scope_" + i,
157293
+ name: "constant_scope_".concat(i),
157290
157294
  notApplicableReason: getStringError(constantExtraction.errors),
157291
157295
  kind: extractConstantAction.kind
157292
157296
  };
@@ -157428,7 +157432,7 @@ var ts;
157428
157432
  // cannot find either start or end node
157429
157433
  return { errors: [ts.createFileDiagnostic(sourceFile, span.start, length, Messages.cannotExtractRange)] };
157430
157434
  }
157431
- if (ts.isJSDoc(start)) {
157435
+ if (start.flags & 4194304 /* JSDoc */) {
157432
157436
  return { errors: [ts.createFileDiagnostic(sourceFile, span.start, length, Messages.cannotExtractJSDoc)] };
157433
157437
  }
157434
157438
  if (start.parent !== end.parent) {
@@ -157870,28 +157874,28 @@ var ts;
157870
157874
  case 212 /* FunctionExpression */:
157871
157875
  case 255 /* FunctionDeclaration */:
157872
157876
  return scope.name
157873
- ? "function '" + scope.name.text + "'"
157877
+ ? "function '".concat(scope.name.text, "'")
157874
157878
  : ts.ANONYMOUS;
157875
157879
  case 213 /* ArrowFunction */:
157876
157880
  return "arrow function";
157877
157881
  case 168 /* MethodDeclaration */:
157878
- return "method '" + scope.name.getText() + "'";
157882
+ return "method '".concat(scope.name.getText(), "'");
157879
157883
  case 171 /* GetAccessor */:
157880
- return "'get " + scope.name.getText() + "'";
157884
+ return "'get ".concat(scope.name.getText(), "'");
157881
157885
  case 172 /* SetAccessor */:
157882
- return "'set " + scope.name.getText() + "'";
157886
+ return "'set ".concat(scope.name.getText(), "'");
157883
157887
  default:
157884
- throw ts.Debug.assertNever(scope, "Unexpected scope kind " + scope.kind);
157888
+ throw ts.Debug.assertNever(scope, "Unexpected scope kind ".concat(scope.kind));
157885
157889
  }
157886
157890
  }
157887
157891
  function getDescriptionForClassLikeDeclaration(scope) {
157888
157892
  return scope.kind === 256 /* ClassDeclaration */
157889
- ? scope.name ? "class '" + scope.name.text + "'" : "anonymous class declaration"
157890
- : scope.name ? "class expression '" + scope.name.text + "'" : "anonymous class expression";
157893
+ ? scope.name ? "class '".concat(scope.name.text, "'") : "anonymous class declaration"
157894
+ : scope.name ? "class expression '".concat(scope.name.text, "'") : "anonymous class expression";
157891
157895
  }
157892
157896
  function getDescriptionForModuleLikeDeclaration(scope) {
157893
157897
  return scope.kind === 261 /* ModuleBlock */
157894
- ? "namespace '" + scope.parent.name.getText() + "'"
157898
+ ? "namespace '".concat(scope.parent.name.getText(), "'")
157895
157899
  : scope.externalModuleIndicator ? 0 /* Module */ : 1 /* Global */;
157896
157900
  }
157897
157901
  var SpecialScope;
@@ -159367,7 +159371,7 @@ var ts;
159367
159371
  case 253 /* VariableDeclaration */:
159368
159372
  return ts.tryCast(node.name, ts.isIdentifier);
159369
159373
  default:
159370
- return ts.Debug.assertNever(node, "Unexpected node kind " + node.kind);
159374
+ return ts.Debug.assertNever(node, "Unexpected node kind ".concat(node.kind));
159371
159375
  }
159372
159376
  }
159373
159377
  function updateNamespaceLikeImport(changes, sourceFile, checker, movedSymbols, newModuleName, newModuleSpecifier, oldImportId, oldImportNode) {
@@ -159404,7 +159408,7 @@ var ts;
159404
159408
  case 253 /* VariableDeclaration */:
159405
159409
  return ts.factory.createVariableDeclaration(newNamespaceId, /*exclamationToken*/ undefined, /*type*/ undefined, createRequireCall(newModuleString));
159406
159410
  default:
159407
- return ts.Debug.assertNever(node, "Unexpected node kind " + node.kind);
159411
+ return ts.Debug.assertNever(node, "Unexpected node kind ".concat(node.kind));
159408
159412
  }
159409
159413
  }
159410
159414
  function moduleSpecifierFromImport(i) {
@@ -159491,7 +159495,7 @@ var ts;
159491
159495
  deleteUnusedImportsInVariableDeclaration(sourceFile, importDecl, changes, isUnused);
159492
159496
  break;
159493
159497
  default:
159494
- ts.Debug.assertNever(importDecl, "Unexpected import decl kind " + importDecl.kind);
159498
+ ts.Debug.assertNever(importDecl, "Unexpected import decl kind ".concat(importDecl.kind));
159495
159499
  }
159496
159500
  }
159497
159501
  function deleteUnusedImportsInDeclaration(sourceFile, importDecl, changes, isUnused) {
@@ -159591,7 +159595,7 @@ var ts;
159591
159595
  var name = ts.combinePaths(inDirectory, newModuleName + extension);
159592
159596
  if (!host.fileExists(name))
159593
159597
  return newModuleName; // TODO: GH#18217
159594
- newModuleName = moduleName + "." + i;
159598
+ newModuleName = "".concat(moduleName, ".").concat(i);
159595
159599
  }
159596
159600
  }
159597
159601
  function getNewModuleName(movedSymbols) {
@@ -159698,7 +159702,7 @@ var ts;
159698
159702
  return name ? makeVariableStatement(name, i.type, createRequireCall(moduleSpecifier), i.parent.flags) : undefined;
159699
159703
  }
159700
159704
  default:
159701
- return ts.Debug.assertNever(i, "Unexpected import kind " + i.kind);
159705
+ return ts.Debug.assertNever(i, "Unexpected import kind ".concat(i.kind));
159702
159706
  }
159703
159707
  }
159704
159708
  function filterNamedBindings(namedBindings, keep) {
@@ -159813,7 +159817,7 @@ var ts;
159813
159817
  case 200 /* ObjectBindingPattern */:
159814
159818
  return ts.firstDefined(name.elements, function (em) { return ts.isOmittedExpression(em) ? undefined : forEachTopLevelDeclarationInBindingName(em.name, cb); });
159815
159819
  default:
159816
- return ts.Debug.assertNever(name, "Unexpected name kind " + name.kind);
159820
+ return ts.Debug.assertNever(name, "Unexpected name kind ".concat(name.kind));
159817
159821
  }
159818
159822
  }
159819
159823
  function nameOfTopLevelDeclaration(d) {
@@ -159874,7 +159878,7 @@ var ts;
159874
159878
  case 237 /* ExpressionStatement */:
159875
159879
  return ts.Debug.fail(); // Shouldn't try to add 'export' keyword to `exports.x = ...`
159876
159880
  default:
159877
- return ts.Debug.assertNever(d, "Unexpected declaration kind " + d.kind);
159881
+ return ts.Debug.assertNever(d, "Unexpected declaration kind ".concat(d.kind));
159878
159882
  }
159879
159883
  }
159880
159884
  function addCommonjsExport(decl) {
@@ -159896,7 +159900,7 @@ var ts;
159896
159900
  case 237 /* ExpressionStatement */:
159897
159901
  return ts.Debug.fail("Can't export an ExpressionStatement"); // Shouldn't try to add 'export' keyword to `exports.x = ...`
159898
159902
  default:
159899
- return ts.Debug.assertNever(decl, "Unexpected decl kind " + decl.kind);
159903
+ return ts.Debug.assertNever(decl, "Unexpected decl kind ".concat(decl.kind));
159900
159904
  }
159901
159905
  }
159902
159906
  /** Creates `exports.x = x;` */
@@ -160534,7 +160538,7 @@ var ts;
160534
160538
  return [functionDeclaration.name, functionDeclaration.parent.name];
160535
160539
  return [functionDeclaration.parent.name];
160536
160540
  default:
160537
- return ts.Debug.assertNever(functionDeclaration, "Unexpected function declaration kind " + functionDeclaration.kind);
160541
+ return ts.Debug.assertNever(functionDeclaration, "Unexpected function declaration kind ".concat(functionDeclaration.kind));
160538
160542
  }
160539
160543
  }
160540
160544
  })(convertParamsToDestructuredObject = refactor.convertParamsToDestructuredObject || (refactor.convertParamsToDestructuredObject = {}));
@@ -161238,7 +161242,7 @@ var ts;
161238
161242
  var textPos = ts.scanner.getTextPos();
161239
161243
  if (textPos <= end) {
161240
161244
  if (token === 79 /* Identifier */) {
161241
- ts.Debug.fail("Did not expect " + ts.Debug.formatSyntaxKind(parent.kind) + " to have an Identifier in its trivia");
161245
+ ts.Debug.fail("Did not expect ".concat(ts.Debug.formatSyntaxKind(parent.kind), " to have an Identifier in its trivia"));
161242
161246
  }
161243
161247
  nodes.push(createNode(token, pos, textPos, parent));
161244
161248
  }
@@ -162168,7 +162172,7 @@ var ts;
162168
162172
  function getValidSourceFile(fileName) {
162169
162173
  var sourceFile = program.getSourceFile(fileName);
162170
162174
  if (!sourceFile) {
162171
- var error = new Error("Could not find source file: '" + fileName + "'.");
162175
+ var error = new Error("Could not find source file: '".concat(fileName, "'."));
162172
162176
  // We've been having trouble debugging this, so attach sidecar data for the tsserver log.
162173
162177
  // See https://github.com/microsoft/TypeScript/issues/30180.
162174
162178
  error.ProgramFiles = program.getSourceFiles().map(function (f) { return f.fileName; });
@@ -162844,7 +162848,7 @@ var ts;
162844
162848
  var element = token.kind === 31 /* GreaterThanToken */ && ts.isJsxOpeningElement(token.parent) ? token.parent.parent
162845
162849
  : ts.isJsxText(token) && ts.isJsxElement(token.parent) ? token.parent : undefined;
162846
162850
  if (element && isUnclosedTag(element)) {
162847
- return { newText: "</" + element.openingElement.tagName.getText(sourceFile) + ">" };
162851
+ return { newText: "</".concat(element.openingElement.tagName.getText(sourceFile), ">") };
162848
162852
  }
162849
162853
  var fragment = token.kind === 31 /* GreaterThanToken */ && ts.isJsxOpeningFragment(token.parent) ? token.parent.parent
162850
162854
  : ts.isJsxText(token) && ts.isJsxFragment(token.parent) ? token.parent : undefined;
@@ -162950,7 +162954,7 @@ var ts;
162950
162954
  pos = commentRange.end + 1;
162951
162955
  }
162952
162956
  else { // If it's not in a comment range, then we need to comment the uncommented portions.
162953
- var newPos = text.substring(pos, textRange.end).search("(" + openMultilineRegex + ")|(" + closeMultilineRegex + ")");
162957
+ var newPos = text.substring(pos, textRange.end).search("(".concat(openMultilineRegex, ")|(").concat(closeMultilineRegex, ")"));
162954
162958
  isCommenting = insertComment !== undefined
162955
162959
  ? insertComment
162956
162960
  : isCommenting || !ts.isTextWhiteSpaceLike(text, pos, newPos === -1 ? textRange.end : pos + newPos); // If isCommenting is already true we don't need to check whitespace again.
@@ -163345,14 +163349,14 @@ var ts;
163345
163349
  case ts.LanguageServiceMode.PartialSemantic:
163346
163350
  invalidOperationsInPartialSemanticMode.forEach(function (key) {
163347
163351
  return ls[key] = function () {
163348
- throw new Error("LanguageService Operation: " + key + " not allowed in LanguageServiceMode.PartialSemantic");
163352
+ throw new Error("LanguageService Operation: ".concat(key, " not allowed in LanguageServiceMode.PartialSemantic"));
163349
163353
  };
163350
163354
  });
163351
163355
  break;
163352
163356
  case ts.LanguageServiceMode.Syntactic:
163353
163357
  invalidOperationsInSyntacticMode.forEach(function (key) {
163354
163358
  return ls[key] = function () {
163355
- throw new Error("LanguageService Operation: " + key + " not allowed in LanguageServiceMode.Syntactic");
163359
+ throw new Error("LanguageService Operation: ".concat(key, " not allowed in LanguageServiceMode.Syntactic"));
163356
163360
  };
163357
163361
  });
163358
163362
  break;
@@ -164334,13 +164338,13 @@ var ts;
164334
164338
  var result = action();
164335
164339
  if (logPerformance) {
164336
164340
  var end = ts.timestamp();
164337
- logger.log(actionDescription + " completed in " + (end - start) + " msec");
164341
+ logger.log("".concat(actionDescription, " completed in ").concat(end - start, " msec"));
164338
164342
  if (ts.isString(result)) {
164339
164343
  var str = result;
164340
164344
  if (str.length > 128) {
164341
164345
  str = str.substring(0, 128) + "...";
164342
164346
  }
164343
- logger.log(" result.length=" + str.length + ", result='" + JSON.stringify(str) + "'");
164347
+ logger.log(" result.length=".concat(str.length, ", result='").concat(JSON.stringify(str), "'"));
164344
164348
  }
164345
164349
  }
164346
164350
  return result;
@@ -164422,7 +164426,7 @@ var ts;
164422
164426
  * Update the list of scripts known to the compiler
164423
164427
  */
164424
164428
  LanguageServiceShimObject.prototype.refresh = function (throwOnError) {
164425
- this.forwardJSONCall("refresh(" + throwOnError + ")", function () { return null; } // eslint-disable-line no-null/no-null
164429
+ this.forwardJSONCall("refresh(".concat(throwOnError, ")"), function () { return null; } // eslint-disable-line no-null/no-null
164426
164430
  );
164427
164431
  };
164428
164432
  LanguageServiceShimObject.prototype.cleanupSemanticCache = function () {
@@ -164438,43 +164442,43 @@ var ts;
164438
164442
  };
164439
164443
  LanguageServiceShimObject.prototype.getSyntacticClassifications = function (fileName, start, length) {
164440
164444
  var _this = this;
164441
- return this.forwardJSONCall("getSyntacticClassifications('" + fileName + "', " + start + ", " + length + ")", function () { return _this.languageService.getSyntacticClassifications(fileName, ts.createTextSpan(start, length)); });
164445
+ return this.forwardJSONCall("getSyntacticClassifications('".concat(fileName, "', ").concat(start, ", ").concat(length, ")"), function () { return _this.languageService.getSyntacticClassifications(fileName, ts.createTextSpan(start, length)); });
164442
164446
  };
164443
164447
  LanguageServiceShimObject.prototype.getSemanticClassifications = function (fileName, start, length) {
164444
164448
  var _this = this;
164445
- return this.forwardJSONCall("getSemanticClassifications('" + fileName + "', " + start + ", " + length + ")", function () { return _this.languageService.getSemanticClassifications(fileName, ts.createTextSpan(start, length)); });
164449
+ return this.forwardJSONCall("getSemanticClassifications('".concat(fileName, "', ").concat(start, ", ").concat(length, ")"), function () { return _this.languageService.getSemanticClassifications(fileName, ts.createTextSpan(start, length)); });
164446
164450
  };
164447
164451
  LanguageServiceShimObject.prototype.getEncodedSyntacticClassifications = function (fileName, start, length) {
164448
164452
  var _this = this;
164449
- return this.forwardJSONCall("getEncodedSyntacticClassifications('" + fileName + "', " + start + ", " + length + ")",
164453
+ return this.forwardJSONCall("getEncodedSyntacticClassifications('".concat(fileName, "', ").concat(start, ", ").concat(length, ")"),
164450
164454
  // directly serialize the spans out to a string. This is much faster to decode
164451
164455
  // on the managed side versus a full JSON array.
164452
164456
  function () { return convertClassifications(_this.languageService.getEncodedSyntacticClassifications(fileName, ts.createTextSpan(start, length))); });
164453
164457
  };
164454
164458
  LanguageServiceShimObject.prototype.getEncodedSemanticClassifications = function (fileName, start, length) {
164455
164459
  var _this = this;
164456
- return this.forwardJSONCall("getEncodedSemanticClassifications('" + fileName + "', " + start + ", " + length + ")",
164460
+ return this.forwardJSONCall("getEncodedSemanticClassifications('".concat(fileName, "', ").concat(start, ", ").concat(length, ")"),
164457
164461
  // directly serialize the spans out to a string. This is much faster to decode
164458
164462
  // on the managed side versus a full JSON array.
164459
164463
  function () { return convertClassifications(_this.languageService.getEncodedSemanticClassifications(fileName, ts.createTextSpan(start, length))); });
164460
164464
  };
164461
164465
  LanguageServiceShimObject.prototype.getSyntacticDiagnostics = function (fileName) {
164462
164466
  var _this = this;
164463
- return this.forwardJSONCall("getSyntacticDiagnostics('" + fileName + "')", function () {
164467
+ return this.forwardJSONCall("getSyntacticDiagnostics('".concat(fileName, "')"), function () {
164464
164468
  var diagnostics = _this.languageService.getSyntacticDiagnostics(fileName);
164465
164469
  return _this.realizeDiagnostics(diagnostics);
164466
164470
  });
164467
164471
  };
164468
164472
  LanguageServiceShimObject.prototype.getSemanticDiagnostics = function (fileName) {
164469
164473
  var _this = this;
164470
- return this.forwardJSONCall("getSemanticDiagnostics('" + fileName + "')", function () {
164474
+ return this.forwardJSONCall("getSemanticDiagnostics('".concat(fileName, "')"), function () {
164471
164475
  var diagnostics = _this.languageService.getSemanticDiagnostics(fileName);
164472
164476
  return _this.realizeDiagnostics(diagnostics);
164473
164477
  });
164474
164478
  };
164475
164479
  LanguageServiceShimObject.prototype.getSuggestionDiagnostics = function (fileName) {
164476
164480
  var _this = this;
164477
- return this.forwardJSONCall("getSuggestionDiagnostics('" + fileName + "')", function () { return _this.realizeDiagnostics(_this.languageService.getSuggestionDiagnostics(fileName)); });
164481
+ return this.forwardJSONCall("getSuggestionDiagnostics('".concat(fileName, "')"), function () { return _this.realizeDiagnostics(_this.languageService.getSuggestionDiagnostics(fileName)); });
164478
164482
  };
164479
164483
  LanguageServiceShimObject.prototype.getCompilerOptionsDiagnostics = function () {
164480
164484
  var _this = this;
@@ -164490,7 +164494,7 @@ var ts;
164490
164494
  */
164491
164495
  LanguageServiceShimObject.prototype.getQuickInfoAtPosition = function (fileName, position) {
164492
164496
  var _this = this;
164493
- return this.forwardJSONCall("getQuickInfoAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getQuickInfoAtPosition(fileName, position); });
164497
+ return this.forwardJSONCall("getQuickInfoAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getQuickInfoAtPosition(fileName, position); });
164494
164498
  };
164495
164499
  /// NAMEORDOTTEDNAMESPAN
164496
164500
  /**
@@ -164499,7 +164503,7 @@ var ts;
164499
164503
  */
164500
164504
  LanguageServiceShimObject.prototype.getNameOrDottedNameSpan = function (fileName, startPos, endPos) {
164501
164505
  var _this = this;
164502
- return this.forwardJSONCall("getNameOrDottedNameSpan('" + fileName + "', " + startPos + ", " + endPos + ")", function () { return _this.languageService.getNameOrDottedNameSpan(fileName, startPos, endPos); });
164506
+ return this.forwardJSONCall("getNameOrDottedNameSpan('".concat(fileName, "', ").concat(startPos, ", ").concat(endPos, ")"), function () { return _this.languageService.getNameOrDottedNameSpan(fileName, startPos, endPos); });
164503
164507
  };
164504
164508
  /**
164505
164509
  * STATEMENTSPAN
@@ -164507,12 +164511,12 @@ var ts;
164507
164511
  */
164508
164512
  LanguageServiceShimObject.prototype.getBreakpointStatementAtPosition = function (fileName, position) {
164509
164513
  var _this = this;
164510
- return this.forwardJSONCall("getBreakpointStatementAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getBreakpointStatementAtPosition(fileName, position); });
164514
+ return this.forwardJSONCall("getBreakpointStatementAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getBreakpointStatementAtPosition(fileName, position); });
164511
164515
  };
164512
164516
  /// SIGNATUREHELP
164513
164517
  LanguageServiceShimObject.prototype.getSignatureHelpItems = function (fileName, position, options) {
164514
164518
  var _this = this;
164515
- return this.forwardJSONCall("getSignatureHelpItems('" + fileName + "', " + position + ")", function () { return _this.languageService.getSignatureHelpItems(fileName, position, options); });
164519
+ return this.forwardJSONCall("getSignatureHelpItems('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getSignatureHelpItems(fileName, position, options); });
164516
164520
  };
164517
164521
  /// GOTO DEFINITION
164518
164522
  /**
@@ -164521,7 +164525,7 @@ var ts;
164521
164525
  */
164522
164526
  LanguageServiceShimObject.prototype.getDefinitionAtPosition = function (fileName, position) {
164523
164527
  var _this = this;
164524
- return this.forwardJSONCall("getDefinitionAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getDefinitionAtPosition(fileName, position); });
164528
+ return this.forwardJSONCall("getDefinitionAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getDefinitionAtPosition(fileName, position); });
164525
164529
  };
164526
164530
  /**
164527
164531
  * Computes the definition location and file for the symbol
@@ -164529,7 +164533,7 @@ var ts;
164529
164533
  */
164530
164534
  LanguageServiceShimObject.prototype.getDefinitionAndBoundSpan = function (fileName, position) {
164531
164535
  var _this = this;
164532
- return this.forwardJSONCall("getDefinitionAndBoundSpan('" + fileName + "', " + position + ")", function () { return _this.languageService.getDefinitionAndBoundSpan(fileName, position); });
164536
+ return this.forwardJSONCall("getDefinitionAndBoundSpan('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getDefinitionAndBoundSpan(fileName, position); });
164533
164537
  };
164534
164538
  /// GOTO Type
164535
164539
  /**
@@ -164538,7 +164542,7 @@ var ts;
164538
164542
  */
164539
164543
  LanguageServiceShimObject.prototype.getTypeDefinitionAtPosition = function (fileName, position) {
164540
164544
  var _this = this;
164541
- return this.forwardJSONCall("getTypeDefinitionAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getTypeDefinitionAtPosition(fileName, position); });
164545
+ return this.forwardJSONCall("getTypeDefinitionAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getTypeDefinitionAtPosition(fileName, position); });
164542
164546
  };
164543
164547
  /// GOTO Implementation
164544
164548
  /**
@@ -164547,37 +164551,37 @@ var ts;
164547
164551
  */
164548
164552
  LanguageServiceShimObject.prototype.getImplementationAtPosition = function (fileName, position) {
164549
164553
  var _this = this;
164550
- return this.forwardJSONCall("getImplementationAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getImplementationAtPosition(fileName, position); });
164554
+ return this.forwardJSONCall("getImplementationAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getImplementationAtPosition(fileName, position); });
164551
164555
  };
164552
164556
  LanguageServiceShimObject.prototype.getRenameInfo = function (fileName, position, options) {
164553
164557
  var _this = this;
164554
- return this.forwardJSONCall("getRenameInfo('" + fileName + "', " + position + ")", function () { return _this.languageService.getRenameInfo(fileName, position, options); });
164558
+ return this.forwardJSONCall("getRenameInfo('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getRenameInfo(fileName, position, options); });
164555
164559
  };
164556
164560
  LanguageServiceShimObject.prototype.getSmartSelectionRange = function (fileName, position) {
164557
164561
  var _this = this;
164558
- return this.forwardJSONCall("getSmartSelectionRange('" + fileName + "', " + position + ")", function () { return _this.languageService.getSmartSelectionRange(fileName, position); });
164562
+ return this.forwardJSONCall("getSmartSelectionRange('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getSmartSelectionRange(fileName, position); });
164559
164563
  };
164560
164564
  LanguageServiceShimObject.prototype.findRenameLocations = function (fileName, position, findInStrings, findInComments, providePrefixAndSuffixTextForRename) {
164561
164565
  var _this = this;
164562
- return this.forwardJSONCall("findRenameLocations('" + fileName + "', " + position + ", " + findInStrings + ", " + findInComments + ", " + providePrefixAndSuffixTextForRename + ")", function () { return _this.languageService.findRenameLocations(fileName, position, findInStrings, findInComments, providePrefixAndSuffixTextForRename); });
164566
+ return this.forwardJSONCall("findRenameLocations('".concat(fileName, "', ").concat(position, ", ").concat(findInStrings, ", ").concat(findInComments, ", ").concat(providePrefixAndSuffixTextForRename, ")"), function () { return _this.languageService.findRenameLocations(fileName, position, findInStrings, findInComments, providePrefixAndSuffixTextForRename); });
164563
164567
  };
164564
164568
  /// GET BRACE MATCHING
164565
164569
  LanguageServiceShimObject.prototype.getBraceMatchingAtPosition = function (fileName, position) {
164566
164570
  var _this = this;
164567
- return this.forwardJSONCall("getBraceMatchingAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getBraceMatchingAtPosition(fileName, position); });
164571
+ return this.forwardJSONCall("getBraceMatchingAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getBraceMatchingAtPosition(fileName, position); });
164568
164572
  };
164569
164573
  LanguageServiceShimObject.prototype.isValidBraceCompletionAtPosition = function (fileName, position, openingBrace) {
164570
164574
  var _this = this;
164571
- return this.forwardJSONCall("isValidBraceCompletionAtPosition('" + fileName + "', " + position + ", " + openingBrace + ")", function () { return _this.languageService.isValidBraceCompletionAtPosition(fileName, position, openingBrace); });
164575
+ return this.forwardJSONCall("isValidBraceCompletionAtPosition('".concat(fileName, "', ").concat(position, ", ").concat(openingBrace, ")"), function () { return _this.languageService.isValidBraceCompletionAtPosition(fileName, position, openingBrace); });
164572
164576
  };
164573
164577
  LanguageServiceShimObject.prototype.getSpanOfEnclosingComment = function (fileName, position, onlyMultiLine) {
164574
164578
  var _this = this;
164575
- return this.forwardJSONCall("getSpanOfEnclosingComment('" + fileName + "', " + position + ")", function () { return _this.languageService.getSpanOfEnclosingComment(fileName, position, onlyMultiLine); });
164579
+ return this.forwardJSONCall("getSpanOfEnclosingComment('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getSpanOfEnclosingComment(fileName, position, onlyMultiLine); });
164576
164580
  };
164577
164581
  /// GET SMART INDENT
164578
164582
  LanguageServiceShimObject.prototype.getIndentationAtPosition = function (fileName, position, options /*Services.EditorOptions*/) {
164579
164583
  var _this = this;
164580
- return this.forwardJSONCall("getIndentationAtPosition('" + fileName + "', " + position + ")", function () {
164584
+ return this.forwardJSONCall("getIndentationAtPosition('".concat(fileName, "', ").concat(position, ")"), function () {
164581
164585
  var localOptions = JSON.parse(options);
164582
164586
  return _this.languageService.getIndentationAtPosition(fileName, position, localOptions);
164583
164587
  });
@@ -164585,23 +164589,23 @@ var ts;
164585
164589
  /// GET REFERENCES
164586
164590
  LanguageServiceShimObject.prototype.getReferencesAtPosition = function (fileName, position) {
164587
164591
  var _this = this;
164588
- return this.forwardJSONCall("getReferencesAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getReferencesAtPosition(fileName, position); });
164592
+ return this.forwardJSONCall("getReferencesAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getReferencesAtPosition(fileName, position); });
164589
164593
  };
164590
164594
  LanguageServiceShimObject.prototype.findReferences = function (fileName, position) {
164591
164595
  var _this = this;
164592
- return this.forwardJSONCall("findReferences('" + fileName + "', " + position + ")", function () { return _this.languageService.findReferences(fileName, position); });
164596
+ return this.forwardJSONCall("findReferences('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.findReferences(fileName, position); });
164593
164597
  };
164594
164598
  LanguageServiceShimObject.prototype.getFileReferences = function (fileName) {
164595
164599
  var _this = this;
164596
- return this.forwardJSONCall("getFileReferences('" + fileName + ")", function () { return _this.languageService.getFileReferences(fileName); });
164600
+ return this.forwardJSONCall("getFileReferences('".concat(fileName, ")"), function () { return _this.languageService.getFileReferences(fileName); });
164597
164601
  };
164598
164602
  LanguageServiceShimObject.prototype.getOccurrencesAtPosition = function (fileName, position) {
164599
164603
  var _this = this;
164600
- return this.forwardJSONCall("getOccurrencesAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getOccurrencesAtPosition(fileName, position); });
164604
+ return this.forwardJSONCall("getOccurrencesAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getOccurrencesAtPosition(fileName, position); });
164601
164605
  };
164602
164606
  LanguageServiceShimObject.prototype.getDocumentHighlights = function (fileName, position, filesToSearch) {
164603
164607
  var _this = this;
164604
- return this.forwardJSONCall("getDocumentHighlights('" + fileName + "', " + position + ")", function () {
164608
+ return this.forwardJSONCall("getDocumentHighlights('".concat(fileName, "', ").concat(position, ")"), function () {
164605
164609
  var results = _this.languageService.getDocumentHighlights(fileName, position, JSON.parse(filesToSearch));
164606
164610
  // workaround for VS document highlighting issue - keep only items from the initial file
164607
164611
  var normalizedName = ts.toFileNameLowerCase(ts.normalizeSlashes(fileName));
@@ -164616,108 +164620,108 @@ var ts;
164616
164620
  */
164617
164621
  LanguageServiceShimObject.prototype.getCompletionsAtPosition = function (fileName, position, preferences, formattingSettings) {
164618
164622
  var _this = this;
164619
- return this.forwardJSONCall("getCompletionsAtPosition('" + fileName + "', " + position + ", " + preferences + ", " + formattingSettings + ")", function () { return _this.languageService.getCompletionsAtPosition(fileName, position, preferences, formattingSettings); });
164623
+ return this.forwardJSONCall("getCompletionsAtPosition('".concat(fileName, "', ").concat(position, ", ").concat(preferences, ", ").concat(formattingSettings, ")"), function () { return _this.languageService.getCompletionsAtPosition(fileName, position, preferences, formattingSettings); });
164620
164624
  };
164621
164625
  /** Get a string based representation of a completion list entry details */
164622
164626
  LanguageServiceShimObject.prototype.getCompletionEntryDetails = function (fileName, position, entryName, formatOptions, source, preferences, data) {
164623
164627
  var _this = this;
164624
- return this.forwardJSONCall("getCompletionEntryDetails('" + fileName + "', " + position + ", '" + entryName + "')", function () {
164628
+ return this.forwardJSONCall("getCompletionEntryDetails('".concat(fileName, "', ").concat(position, ", '").concat(entryName, "')"), function () {
164625
164629
  var localOptions = formatOptions === undefined ? undefined : JSON.parse(formatOptions);
164626
164630
  return _this.languageService.getCompletionEntryDetails(fileName, position, entryName, localOptions, source, preferences, data);
164627
164631
  });
164628
164632
  };
164629
164633
  LanguageServiceShimObject.prototype.getFormattingEditsForRange = function (fileName, start, end, options /*Services.FormatCodeOptions*/) {
164630
164634
  var _this = this;
164631
- return this.forwardJSONCall("getFormattingEditsForRange('" + fileName + "', " + start + ", " + end + ")", function () {
164635
+ return this.forwardJSONCall("getFormattingEditsForRange('".concat(fileName, "', ").concat(start, ", ").concat(end, ")"), function () {
164632
164636
  var localOptions = JSON.parse(options);
164633
164637
  return _this.languageService.getFormattingEditsForRange(fileName, start, end, localOptions);
164634
164638
  });
164635
164639
  };
164636
164640
  LanguageServiceShimObject.prototype.getFormattingEditsForDocument = function (fileName, options /*Services.FormatCodeOptions*/) {
164637
164641
  var _this = this;
164638
- return this.forwardJSONCall("getFormattingEditsForDocument('" + fileName + "')", function () {
164642
+ return this.forwardJSONCall("getFormattingEditsForDocument('".concat(fileName, "')"), function () {
164639
164643
  var localOptions = JSON.parse(options);
164640
164644
  return _this.languageService.getFormattingEditsForDocument(fileName, localOptions);
164641
164645
  });
164642
164646
  };
164643
164647
  LanguageServiceShimObject.prototype.getFormattingEditsAfterKeystroke = function (fileName, position, key, options /*Services.FormatCodeOptions*/) {
164644
164648
  var _this = this;
164645
- return this.forwardJSONCall("getFormattingEditsAfterKeystroke('" + fileName + "', " + position + ", '" + key + "')", function () {
164649
+ return this.forwardJSONCall("getFormattingEditsAfterKeystroke('".concat(fileName, "', ").concat(position, ", '").concat(key, "')"), function () {
164646
164650
  var localOptions = JSON.parse(options);
164647
164651
  return _this.languageService.getFormattingEditsAfterKeystroke(fileName, position, key, localOptions);
164648
164652
  });
164649
164653
  };
164650
164654
  LanguageServiceShimObject.prototype.getDocCommentTemplateAtPosition = function (fileName, position, options) {
164651
164655
  var _this = this;
164652
- return this.forwardJSONCall("getDocCommentTemplateAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getDocCommentTemplateAtPosition(fileName, position, options); });
164656
+ return this.forwardJSONCall("getDocCommentTemplateAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getDocCommentTemplateAtPosition(fileName, position, options); });
164653
164657
  };
164654
164658
  /// NAVIGATE TO
164655
164659
  /** Return a list of symbols that are interesting to navigate to */
164656
164660
  LanguageServiceShimObject.prototype.getNavigateToItems = function (searchValue, maxResultCount, fileName) {
164657
164661
  var _this = this;
164658
- return this.forwardJSONCall("getNavigateToItems('" + searchValue + "', " + maxResultCount + ", " + fileName + ")", function () { return _this.languageService.getNavigateToItems(searchValue, maxResultCount, fileName); });
164662
+ return this.forwardJSONCall("getNavigateToItems('".concat(searchValue, "', ").concat(maxResultCount, ", ").concat(fileName, ")"), function () { return _this.languageService.getNavigateToItems(searchValue, maxResultCount, fileName); });
164659
164663
  };
164660
164664
  LanguageServiceShimObject.prototype.getNavigationBarItems = function (fileName) {
164661
164665
  var _this = this;
164662
- return this.forwardJSONCall("getNavigationBarItems('" + fileName + "')", function () { return _this.languageService.getNavigationBarItems(fileName); });
164666
+ return this.forwardJSONCall("getNavigationBarItems('".concat(fileName, "')"), function () { return _this.languageService.getNavigationBarItems(fileName); });
164663
164667
  };
164664
164668
  LanguageServiceShimObject.prototype.getNavigationTree = function (fileName) {
164665
164669
  var _this = this;
164666
- return this.forwardJSONCall("getNavigationTree('" + fileName + "')", function () { return _this.languageService.getNavigationTree(fileName); });
164670
+ return this.forwardJSONCall("getNavigationTree('".concat(fileName, "')"), function () { return _this.languageService.getNavigationTree(fileName); });
164667
164671
  };
164668
164672
  LanguageServiceShimObject.prototype.getOutliningSpans = function (fileName) {
164669
164673
  var _this = this;
164670
- return this.forwardJSONCall("getOutliningSpans('" + fileName + "')", function () { return _this.languageService.getOutliningSpans(fileName); });
164674
+ return this.forwardJSONCall("getOutliningSpans('".concat(fileName, "')"), function () { return _this.languageService.getOutliningSpans(fileName); });
164671
164675
  };
164672
164676
  LanguageServiceShimObject.prototype.getTodoComments = function (fileName, descriptors) {
164673
164677
  var _this = this;
164674
- return this.forwardJSONCall("getTodoComments('" + fileName + "')", function () { return _this.languageService.getTodoComments(fileName, JSON.parse(descriptors)); });
164678
+ return this.forwardJSONCall("getTodoComments('".concat(fileName, "')"), function () { return _this.languageService.getTodoComments(fileName, JSON.parse(descriptors)); });
164675
164679
  };
164676
164680
  /// CALL HIERARCHY
164677
164681
  LanguageServiceShimObject.prototype.prepareCallHierarchy = function (fileName, position) {
164678
164682
  var _this = this;
164679
- return this.forwardJSONCall("prepareCallHierarchy('" + fileName + "', " + position + ")", function () { return _this.languageService.prepareCallHierarchy(fileName, position); });
164683
+ return this.forwardJSONCall("prepareCallHierarchy('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.prepareCallHierarchy(fileName, position); });
164680
164684
  };
164681
164685
  LanguageServiceShimObject.prototype.provideCallHierarchyIncomingCalls = function (fileName, position) {
164682
164686
  var _this = this;
164683
- return this.forwardJSONCall("provideCallHierarchyIncomingCalls('" + fileName + "', " + position + ")", function () { return _this.languageService.provideCallHierarchyIncomingCalls(fileName, position); });
164687
+ return this.forwardJSONCall("provideCallHierarchyIncomingCalls('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.provideCallHierarchyIncomingCalls(fileName, position); });
164684
164688
  };
164685
164689
  LanguageServiceShimObject.prototype.provideCallHierarchyOutgoingCalls = function (fileName, position) {
164686
164690
  var _this = this;
164687
- return this.forwardJSONCall("provideCallHierarchyOutgoingCalls('" + fileName + "', " + position + ")", function () { return _this.languageService.provideCallHierarchyOutgoingCalls(fileName, position); });
164691
+ return this.forwardJSONCall("provideCallHierarchyOutgoingCalls('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.provideCallHierarchyOutgoingCalls(fileName, position); });
164688
164692
  };
164689
164693
  LanguageServiceShimObject.prototype.provideInlayHints = function (fileName, span, preference) {
164690
164694
  var _this = this;
164691
- return this.forwardJSONCall("provideInlayHints('" + fileName + "', '" + JSON.stringify(span) + "', " + JSON.stringify(preference) + ")", function () { return _this.languageService.provideInlayHints(fileName, span, preference); });
164695
+ return this.forwardJSONCall("provideInlayHints('".concat(fileName, "', '").concat(JSON.stringify(span), "', ").concat(JSON.stringify(preference), ")"), function () { return _this.languageService.provideInlayHints(fileName, span, preference); });
164692
164696
  };
164693
164697
  /// Emit
164694
164698
  LanguageServiceShimObject.prototype.getEmitOutput = function (fileName) {
164695
164699
  var _this = this;
164696
- return this.forwardJSONCall("getEmitOutput('" + fileName + "')", function () {
164700
+ return this.forwardJSONCall("getEmitOutput('".concat(fileName, "')"), function () {
164697
164701
  var _a = _this.languageService.getEmitOutput(fileName), diagnostics = _a.diagnostics, rest = __rest(_a, ["diagnostics"]);
164698
164702
  return __assign(__assign({}, rest), { diagnostics: _this.realizeDiagnostics(diagnostics) });
164699
164703
  });
164700
164704
  };
164701
164705
  LanguageServiceShimObject.prototype.getEmitOutputObject = function (fileName) {
164702
164706
  var _this = this;
164703
- return forwardCall(this.logger, "getEmitOutput('" + fileName + "')",
164707
+ return forwardCall(this.logger, "getEmitOutput('".concat(fileName, "')"),
164704
164708
  /*returnJson*/ false, function () { return _this.languageService.getEmitOutput(fileName); }, this.logPerformance);
164705
164709
  };
164706
164710
  LanguageServiceShimObject.prototype.toggleLineComment = function (fileName, textRange) {
164707
164711
  var _this = this;
164708
- return this.forwardJSONCall("toggleLineComment('" + fileName + "', '" + JSON.stringify(textRange) + "')", function () { return _this.languageService.toggleLineComment(fileName, textRange); });
164712
+ return this.forwardJSONCall("toggleLineComment('".concat(fileName, "', '").concat(JSON.stringify(textRange), "')"), function () { return _this.languageService.toggleLineComment(fileName, textRange); });
164709
164713
  };
164710
164714
  LanguageServiceShimObject.prototype.toggleMultilineComment = function (fileName, textRange) {
164711
164715
  var _this = this;
164712
- return this.forwardJSONCall("toggleMultilineComment('" + fileName + "', '" + JSON.stringify(textRange) + "')", function () { return _this.languageService.toggleMultilineComment(fileName, textRange); });
164716
+ return this.forwardJSONCall("toggleMultilineComment('".concat(fileName, "', '").concat(JSON.stringify(textRange), "')"), function () { return _this.languageService.toggleMultilineComment(fileName, textRange); });
164713
164717
  };
164714
164718
  LanguageServiceShimObject.prototype.commentSelection = function (fileName, textRange) {
164715
164719
  var _this = this;
164716
- return this.forwardJSONCall("commentSelection('" + fileName + "', '" + JSON.stringify(textRange) + "')", function () { return _this.languageService.commentSelection(fileName, textRange); });
164720
+ return this.forwardJSONCall("commentSelection('".concat(fileName, "', '").concat(JSON.stringify(textRange), "')"), function () { return _this.languageService.commentSelection(fileName, textRange); });
164717
164721
  };
164718
164722
  LanguageServiceShimObject.prototype.uncommentSelection = function (fileName, textRange) {
164719
164723
  var _this = this;
164720
- return this.forwardJSONCall("uncommentSelection('" + fileName + "', '" + JSON.stringify(textRange) + "')", function () { return _this.languageService.uncommentSelection(fileName, textRange); });
164724
+ return this.forwardJSONCall("uncommentSelection('".concat(fileName, "', '").concat(JSON.stringify(textRange), "')"), function () { return _this.languageService.uncommentSelection(fileName, textRange); });
164721
164725
  };
164722
164726
  return LanguageServiceShimObject;
164723
164727
  }(ShimBase));
@@ -164767,7 +164771,7 @@ var ts;
164767
164771
  };
164768
164772
  CoreServicesShimObject.prototype.resolveModuleName = function (fileName, moduleName, compilerOptionsJson) {
164769
164773
  var _this = this;
164770
- return this.forwardJSONCall("resolveModuleName('" + fileName + "')", function () {
164774
+ return this.forwardJSONCall("resolveModuleName('".concat(fileName, "')"), function () {
164771
164775
  var compilerOptions = JSON.parse(compilerOptionsJson);
164772
164776
  var result = ts.resolveModuleName(moduleName, ts.normalizeSlashes(fileName), compilerOptions, _this.host);
164773
164777
  var resolvedFileName = result.resolvedModule ? result.resolvedModule.resolvedFileName : undefined;
@@ -164782,7 +164786,7 @@ var ts;
164782
164786
  };
164783
164787
  CoreServicesShimObject.prototype.resolveTypeReferenceDirective = function (fileName, typeReferenceDirective, compilerOptionsJson) {
164784
164788
  var _this = this;
164785
- return this.forwardJSONCall("resolveTypeReferenceDirective(" + fileName + ")", function () {
164789
+ return this.forwardJSONCall("resolveTypeReferenceDirective(".concat(fileName, ")"), function () {
164786
164790
  var compilerOptions = JSON.parse(compilerOptionsJson);
164787
164791
  var result = ts.resolveTypeReferenceDirective(typeReferenceDirective, ts.normalizeSlashes(fileName), compilerOptions, _this.host);
164788
164792
  return {
@@ -164794,7 +164798,7 @@ var ts;
164794
164798
  };
164795
164799
  CoreServicesShimObject.prototype.getPreProcessedFileInfo = function (fileName, sourceTextSnapshot) {
164796
164800
  var _this = this;
164797
- return this.forwardJSONCall("getPreProcessedFileInfo('" + fileName + "')", function () {
164801
+ return this.forwardJSONCall("getPreProcessedFileInfo('".concat(fileName, "')"), function () {
164798
164802
  // for now treat files as JavaScript
164799
164803
  var result = ts.preProcessFile(ts.getSnapshotText(sourceTextSnapshot), /* readImportFiles */ true, /* detectJavaScriptImports */ true);
164800
164804
  return {
@@ -164809,7 +164813,7 @@ var ts;
164809
164813
  };
164810
164814
  CoreServicesShimObject.prototype.getAutomaticTypeDirectiveNames = function (compilerOptionsJson) {
164811
164815
  var _this = this;
164812
- return this.forwardJSONCall("getAutomaticTypeDirectiveNames('" + compilerOptionsJson + "')", function () {
164816
+ return this.forwardJSONCall("getAutomaticTypeDirectiveNames('".concat(compilerOptionsJson, "')"), function () {
164813
164817
  var compilerOptions = JSON.parse(compilerOptionsJson);
164814
164818
  return ts.getAutomaticTypeDirectiveNames(compilerOptions, _this.host);
164815
164819
  });
@@ -164831,7 +164835,7 @@ var ts;
164831
164835
  };
164832
164836
  CoreServicesShimObject.prototype.getTSConfigFileInfo = function (fileName, sourceTextSnapshot) {
164833
164837
  var _this = this;
164834
- return this.forwardJSONCall("getTSConfigFileInfo('" + fileName + "')", function () {
164838
+ return this.forwardJSONCall("getTSConfigFileInfo('".concat(fileName, "')"), function () {
164835
164839
  var result = ts.parseJsonText(fileName, ts.getSnapshotText(sourceTextSnapshot));
164836
164840
  var normalizedFileName = ts.normalizeSlashes(fileName);
164837
164841
  var configFile = ts.parseJsonSourceFileConfigFileContent(result, _this.host, ts.getDirectoryPath(normalizedFileName), /*existingOptions*/ {}, normalizedFileName);