typescript 4.8.1-rc → 4.9.0-dev.20220813

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/tsc.js CHANGED
@@ -22,7 +22,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
22
22
  ar[i] = from[i];
23
23
  }
24
24
  }
25
- return to.concat(ar || Array.prototype.slice.call(from));
25
+ return to.concat(ar || from);
26
26
  };
27
27
  var __assign = (this && this.__assign) || function () {
28
28
  __assign = Object.assign || function(t) {
@@ -68,8 +68,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
68
68
  };
69
69
  var ts;
70
70
  (function (ts) {
71
- ts.versionMajorMinor = "4.8";
72
- ts.version = "4.8.1-rc";
71
+ ts.versionMajorMinor = "4.9";
72
+ ts.version = ts.versionMajorMinor + ".0-dev.20220813";
73
73
  var NativeCollections;
74
74
  (function (NativeCollections) {
75
75
  var globals = typeof globalThis !== "undefined" ? globalThis :
@@ -78,24 +78,25 @@ var ts;
78
78
  undefined;
79
79
  function tryGetNativeMap() {
80
80
  var gMap = globals === null || globals === void 0 ? void 0 : globals.Map;
81
- return typeof gMap !== "undefined" && "entries" in gMap.prototype && new gMap([[0, 0]]).size === 1 ? gMap : undefined;
81
+ var constructor = typeof gMap !== "undefined" && "entries" in gMap.prototype && new gMap([[0, 0]]).size === 1 ? gMap : undefined;
82
+ if (!constructor) {
83
+ throw new Error("No compatible Map implementation found.");
84
+ }
85
+ return constructor;
82
86
  }
83
87
  NativeCollections.tryGetNativeMap = tryGetNativeMap;
84
88
  function tryGetNativeSet() {
85
89
  var gSet = globals === null || globals === void 0 ? void 0 : globals.Set;
86
- return typeof gSet !== "undefined" && "entries" in gSet.prototype && new gSet([0]).size === 1 ? gSet : undefined;
90
+ var constructor = typeof gSet !== "undefined" && "entries" in gSet.prototype && new gSet([0]).size === 1 ? gSet : undefined;
91
+ if (!constructor) {
92
+ throw new Error("No compatible Set implementation found.");
93
+ }
94
+ return constructor;
87
95
  }
88
96
  NativeCollections.tryGetNativeSet = tryGetNativeSet;
89
97
  })(NativeCollections || (NativeCollections = {}));
90
- ts.Map = getCollectionImplementation("Map", "tryGetNativeMap", "createMapShim");
91
- ts.Set = getCollectionImplementation("Set", "tryGetNativeSet", "createSetShim");
92
- function getCollectionImplementation(name, nativeFactory, shimFactory) {
93
- var _a;
94
- var constructor = (_a = NativeCollections[nativeFactory]()) !== null && _a !== void 0 ? _a : ts.ShimCollections === null || ts.ShimCollections === void 0 ? void 0 : ts.ShimCollections[shimFactory](ts.getIterator);
95
- if (constructor)
96
- return constructor;
97
- throw new Error("TypeScript requires an environment that provides a compatible native ".concat(name, " implementation."));
98
- }
98
+ ts.Map = NativeCollections.tryGetNativeMap();
99
+ ts.Set = NativeCollections.tryGetNativeSet();
99
100
  })(ts || (ts = {}));
100
101
  var ts;
101
102
  (function (ts) {
@@ -759,15 +760,18 @@ var ts;
759
760
  function insertSorted(array, insert, compare, allowDuplicates) {
760
761
  if (array.length === 0) {
761
762
  array.push(insert);
762
- return;
763
+ return true;
763
764
  }
764
765
  var insertIndex = binarySearch(array, insert, identity, compare);
765
766
  if (insertIndex < 0) {
766
767
  array.splice(~insertIndex, 0, insert);
768
+ return true;
767
769
  }
768
- else if (allowDuplicates) {
770
+ if (allowDuplicates) {
769
771
  array.splice(insertIndex, 0, insert);
772
+ return true;
770
773
  }
774
+ return false;
771
775
  }
772
776
  ts.insertSorted = insertSorted;
773
777
  function sortAndDeduplicate(array, comparer, equalityComparer) {
@@ -1479,7 +1483,7 @@ var ts;
1479
1483
  function cast(value, test) {
1480
1484
  if (value !== undefined && test(value))
1481
1485
  return value;
1482
- return ts.Debug.fail("Invalid cast. The supplied value ".concat(value, " did not pass the test '").concat(ts.Debug.getFunctionName(test), "'."));
1486
+ return ts.Debug.fail("Invalid cast. The supplied value " + value + " did not pass the test '" + ts.Debug.getFunctionName(test) + "'.");
1483
1487
  }
1484
1488
  ts.cast = cast;
1485
1489
  function noop(_) { }
@@ -1533,7 +1537,7 @@ var ts;
1533
1537
  function memoizeOne(callback) {
1534
1538
  var map = new ts.Map();
1535
1539
  return function (arg) {
1536
- var key = "".concat(typeof arg, ":").concat(arg);
1540
+ var key = typeof arg + ":" + arg;
1537
1541
  var value = map.get(key);
1538
1542
  if (value === undefined && !map.has(key)) {
1539
1543
  value = callback(arg);
@@ -1868,7 +1872,7 @@ var ts;
1868
1872
  ts.createGetCanonicalFileName = createGetCanonicalFileName;
1869
1873
  function patternText(_a) {
1870
1874
  var prefix = _a.prefix, suffix = _a.suffix;
1871
- return "".concat(prefix, "*").concat(suffix);
1875
+ return prefix + "*" + suffix;
1872
1876
  }
1873
1877
  ts.patternText = patternText;
1874
1878
  function matchedText(pattern, candidate) {
@@ -2140,7 +2144,7 @@ var ts;
2140
2144
  }
2141
2145
  function fail(message, stackCrawlMark) {
2142
2146
  debugger;
2143
- var e = new Error(message ? "Debug Failure. ".concat(message) : "Debug Failure.");
2147
+ var e = new Error(message ? "Debug Failure. " + message : "Debug Failure.");
2144
2148
  if (Error.captureStackTrace) {
2145
2149
  Error.captureStackTrace(e, stackCrawlMark || fail);
2146
2150
  }
@@ -2148,12 +2152,12 @@ var ts;
2148
2152
  }
2149
2153
  Debug.fail = fail;
2150
2154
  function failBadSyntaxKind(node, message, stackCrawlMark) {
2151
- return fail("".concat(message || "Unexpected node.", "\r\nNode ").concat(formatSyntaxKind(node.kind), " was unexpected."), stackCrawlMark || failBadSyntaxKind);
2155
+ return fail((message || "Unexpected node.") + "\r\nNode " + formatSyntaxKind(node.kind) + " was unexpected.", stackCrawlMark || failBadSyntaxKind);
2152
2156
  }
2153
2157
  Debug.failBadSyntaxKind = failBadSyntaxKind;
2154
2158
  function assert(expression, message, verboseDebugInfo, stackCrawlMark) {
2155
2159
  if (!expression) {
2156
- message = message ? "False expression: ".concat(message) : "False expression.";
2160
+ message = message ? "False expression: " + message : "False expression.";
2157
2161
  if (verboseDebugInfo) {
2158
2162
  message += "\r\nVerbose Debug Information: " + (typeof verboseDebugInfo === "string" ? verboseDebugInfo : verboseDebugInfo());
2159
2163
  }
@@ -2163,26 +2167,26 @@ var ts;
2163
2167
  Debug.assert = assert;
2164
2168
  function assertEqual(a, b, msg, msg2, stackCrawlMark) {
2165
2169
  if (a !== b) {
2166
- var message = msg ? msg2 ? "".concat(msg, " ").concat(msg2) : msg : "";
2167
- fail("Expected ".concat(a, " === ").concat(b, ". ").concat(message), stackCrawlMark || assertEqual);
2170
+ var message = msg ? msg2 ? msg + " " + msg2 : msg : "";
2171
+ fail("Expected " + a + " === " + b + ". " + message, stackCrawlMark || assertEqual);
2168
2172
  }
2169
2173
  }
2170
2174
  Debug.assertEqual = assertEqual;
2171
2175
  function assertLessThan(a, b, msg, stackCrawlMark) {
2172
2176
  if (a >= b) {
2173
- fail("Expected ".concat(a, " < ").concat(b, ". ").concat(msg || ""), stackCrawlMark || assertLessThan);
2177
+ fail("Expected " + a + " < " + b + ". " + (msg || ""), stackCrawlMark || assertLessThan);
2174
2178
  }
2175
2179
  }
2176
2180
  Debug.assertLessThan = assertLessThan;
2177
2181
  function assertLessThanOrEqual(a, b, stackCrawlMark) {
2178
2182
  if (a > b) {
2179
- fail("Expected ".concat(a, " <= ").concat(b), stackCrawlMark || assertLessThanOrEqual);
2183
+ fail("Expected " + a + " <= " + b, stackCrawlMark || assertLessThanOrEqual);
2180
2184
  }
2181
2185
  }
2182
2186
  Debug.assertLessThanOrEqual = assertLessThanOrEqual;
2183
2187
  function assertGreaterThanOrEqual(a, b, stackCrawlMark) {
2184
2188
  if (a < b) {
2185
- fail("Expected ".concat(a, " >= ").concat(b), stackCrawlMark || assertGreaterThanOrEqual);
2189
+ fail("Expected " + a + " >= " + b, stackCrawlMark || assertGreaterThanOrEqual);
2186
2190
  }
2187
2191
  }
2188
2192
  Debug.assertGreaterThanOrEqual = assertGreaterThanOrEqual;
@@ -2212,42 +2216,42 @@ var ts;
2212
2216
  function assertNever(member, message, stackCrawlMark) {
2213
2217
  if (message === void 0) { message = "Illegal value:"; }
2214
2218
  var detail = typeof member === "object" && ts.hasProperty(member, "kind") && ts.hasProperty(member, "pos") ? "SyntaxKind: " + formatSyntaxKind(member.kind) : JSON.stringify(member);
2215
- return fail("".concat(message, " ").concat(detail), stackCrawlMark || assertNever);
2219
+ return fail(message + " " + detail, stackCrawlMark || assertNever);
2216
2220
  }
2217
2221
  Debug.assertNever = assertNever;
2218
2222
  function assertEachNode(nodes, test, message, stackCrawlMark) {
2219
2223
  if (shouldAssertFunction(1, "assertEachNode")) {
2220
- assert(test === undefined || ts.every(nodes, test), message || "Unexpected node.", function () { return "Node array did not pass test '".concat(getFunctionName(test), "'."); }, stackCrawlMark || assertEachNode);
2224
+ assert(test === undefined || ts.every(nodes, test), message || "Unexpected node.", function () { return "Node array did not pass test '" + getFunctionName(test) + "'."; }, stackCrawlMark || assertEachNode);
2221
2225
  }
2222
2226
  }
2223
2227
  Debug.assertEachNode = assertEachNode;
2224
2228
  function assertNode(node, test, message, stackCrawlMark) {
2225
2229
  if (shouldAssertFunction(1, "assertNode")) {
2226
- 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);
2230
+ 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);
2227
2231
  }
2228
2232
  }
2229
2233
  Debug.assertNode = assertNode;
2230
2234
  function assertNotNode(node, test, message, stackCrawlMark) {
2231
2235
  if (shouldAssertFunction(1, "assertNotNode")) {
2232
- 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);
2236
+ 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);
2233
2237
  }
2234
2238
  }
2235
2239
  Debug.assertNotNode = assertNotNode;
2236
2240
  function assertOptionalNode(node, test, message, stackCrawlMark) {
2237
2241
  if (shouldAssertFunction(1, "assertOptionalNode")) {
2238
- 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);
2242
+ 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);
2239
2243
  }
2240
2244
  }
2241
2245
  Debug.assertOptionalNode = assertOptionalNode;
2242
2246
  function assertOptionalToken(node, kind, message, stackCrawlMark) {
2243
2247
  if (shouldAssertFunction(1, "assertOptionalToken")) {
2244
- 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);
2248
+ 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);
2245
2249
  }
2246
2250
  }
2247
2251
  Debug.assertOptionalToken = assertOptionalToken;
2248
2252
  function assertMissingNode(node, message, stackCrawlMark) {
2249
2253
  if (shouldAssertFunction(1, "assertMissingNode")) {
2250
- assert(node === undefined, message || "Unexpected node.", function () { return "Node ".concat(formatSyntaxKind(node.kind), " was unexpected'."); }, stackCrawlMark || assertMissingNode);
2254
+ assert(node === undefined, message || "Unexpected node.", function () { return "Node " + formatSyntaxKind(node.kind) + " was unexpected'."; }, stackCrawlMark || assertMissingNode);
2251
2255
  }
2252
2256
  }
2253
2257
  Debug.assertMissingNode = assertMissingNode;
@@ -2268,7 +2272,7 @@ var ts;
2268
2272
  }
2269
2273
  Debug.getFunctionName = getFunctionName;
2270
2274
  function formatSymbol(symbol) {
2271
- return "{ name: ".concat(ts.unescapeLeadingUnderscores(symbol.escapedName), "; flags: ").concat(formatSymbolFlags(symbol.flags), "; declarations: ").concat(ts.map(symbol.declarations, function (node) { return formatSyntaxKind(node.kind); }), " }");
2275
+ return "{ name: " + ts.unescapeLeadingUnderscores(symbol.escapedName) + "; flags: " + formatSymbolFlags(symbol.flags) + "; declarations: " + ts.map(symbol.declarations, function (node) { return formatSyntaxKind(node.kind); }) + " }";
2272
2276
  }
2273
2277
  Debug.formatSymbol = formatSymbol;
2274
2278
  function formatEnum(value, enumObject, isFlags) {
@@ -2418,7 +2422,7 @@ var ts;
2418
2422
  this.flags & 1 ? "FlowUnreachable" :
2419
2423
  "UnknownFlow";
2420
2424
  var remainingFlags = this.flags & ~(2048 - 1);
2421
- return "".concat(flowHeader).concat(remainingFlags ? " (".concat(formatFlowFlags(remainingFlags), ")") : "");
2425
+ return "" + flowHeader + (remainingFlags ? " (" + formatFlowFlags(remainingFlags) + ")" : "");
2422
2426
  }
2423
2427
  },
2424
2428
  __debugFlowFlags: { get: function () { return formatEnum(this.flags, ts.FlowFlags, true); } },
@@ -2448,7 +2452,7 @@ var ts;
2448
2452
  __tsDebuggerDisplay: {
2449
2453
  value: function (defaultValue) {
2450
2454
  defaultValue = String(defaultValue).replace(/(?:,[\s\w\d_]+:[^,]+)+\]$/, "]");
2451
- return "NodeArray ".concat(defaultValue);
2455
+ return "NodeArray " + defaultValue;
2452
2456
  }
2453
2457
  }
2454
2458
  });
@@ -2494,7 +2498,7 @@ var ts;
2494
2498
  var symbolHeader = this.flags & 33554432 ? "TransientSymbol" :
2495
2499
  "Symbol";
2496
2500
  var remainingSymbolFlags = this.flags & ~33554432;
2497
- return "".concat(symbolHeader, " '").concat(ts.symbolName(this), "'").concat(remainingSymbolFlags ? " (".concat(formatSymbolFlags(remainingSymbolFlags), ")") : "");
2501
+ return symbolHeader + " '" + ts.symbolName(this) + "'" + (remainingSymbolFlags ? " (" + formatSymbolFlags(remainingSymbolFlags) + ")" : "");
2498
2502
  }
2499
2503
  },
2500
2504
  __debugFlags: { get: function () { return formatSymbolFlags(this.flags); } }
@@ -2503,11 +2507,11 @@ var ts;
2503
2507
  __tsDebuggerDisplay: {
2504
2508
  value: function () {
2505
2509
  var typeHeader = this.flags & 98304 ? "NullableType" :
2506
- this.flags & 384 ? "LiteralType ".concat(JSON.stringify(this.value)) :
2507
- this.flags & 2048 ? "LiteralType ".concat(this.value.negative ? "-" : "").concat(this.value.base10Value, "n") :
2510
+ this.flags & 384 ? "LiteralType " + JSON.stringify(this.value) :
2511
+ this.flags & 2048 ? "LiteralType " + (this.value.negative ? "-" : "") + this.value.base10Value + "n" :
2508
2512
  this.flags & 8192 ? "UniqueESSymbolType" :
2509
2513
  this.flags & 32 ? "EnumType" :
2510
- this.flags & 67359327 ? "IntrinsicType ".concat(this.intrinsicName) :
2514
+ this.flags & 67359327 ? "IntrinsicType " + this.intrinsicName :
2511
2515
  this.flags & 1048576 ? "UnionType" :
2512
2516
  this.flags & 2097152 ? "IntersectionType" :
2513
2517
  this.flags & 4194304 ? "IndexType" :
@@ -2526,7 +2530,7 @@ var ts;
2526
2530
  "ObjectType" :
2527
2531
  "Type";
2528
2532
  var remainingObjectFlags = this.flags & 524288 ? this.objectFlags & ~1343 : 0;
2529
- return "".concat(typeHeader).concat(this.symbol ? " '".concat(ts.symbolName(this.symbol), "'") : "").concat(remainingObjectFlags ? " (".concat(formatObjectFlags(remainingObjectFlags), ")") : "");
2533
+ return "" + typeHeader + (this.symbol ? " '" + ts.symbolName(this.symbol) + "'" : "") + (remainingObjectFlags ? " (" + formatObjectFlags(remainingObjectFlags) + ")" : "");
2530
2534
  }
2531
2535
  },
2532
2536
  __debugFlags: { get: function () { return formatTypeFlags(this.flags); } },
@@ -2560,11 +2564,11 @@ var ts;
2560
2564
  __tsDebuggerDisplay: {
2561
2565
  value: function () {
2562
2566
  var nodeHeader = ts.isGeneratedIdentifier(this) ? "GeneratedIdentifier" :
2563
- ts.isIdentifier(this) ? "Identifier '".concat(ts.idText(this), "'") :
2564
- ts.isPrivateIdentifier(this) ? "PrivateIdentifier '".concat(ts.idText(this), "'") :
2565
- ts.isStringLiteral(this) ? "StringLiteral ".concat(JSON.stringify(this.text.length < 10 ? this.text : this.text.slice(10) + "...")) :
2566
- ts.isNumericLiteral(this) ? "NumericLiteral ".concat(this.text) :
2567
- ts.isBigIntLiteral(this) ? "BigIntLiteral ".concat(this.text, "n") :
2567
+ ts.isIdentifier(this) ? "Identifier '" + ts.idText(this) + "'" :
2568
+ ts.isPrivateIdentifier(this) ? "PrivateIdentifier '" + ts.idText(this) + "'" :
2569
+ ts.isStringLiteral(this) ? "StringLiteral " + JSON.stringify(this.text.length < 10 ? this.text : this.text.slice(10) + "...") :
2570
+ ts.isNumericLiteral(this) ? "NumericLiteral " + this.text :
2571
+ ts.isBigIntLiteral(this) ? "BigIntLiteral " + this.text + "n" :
2568
2572
  ts.isTypeParameterDeclaration(this) ? "TypeParameterDeclaration" :
2569
2573
  ts.isParameter(this) ? "ParameterDeclaration" :
2570
2574
  ts.isConstructorDeclaration(this) ? "ConstructorDeclaration" :
@@ -2596,7 +2600,7 @@ var ts;
2596
2600
  ts.isNamedTupleMember(this) ? "NamedTupleMember" :
2597
2601
  ts.isImportTypeNode(this) ? "ImportTypeNode" :
2598
2602
  formatSyntaxKind(this.kind);
2599
- return "".concat(nodeHeader).concat(this.flags ? " (".concat(formatNodeFlags(this.flags), ")") : "");
2603
+ return "" + nodeHeader + (this.flags ? " (" + formatNodeFlags(this.flags) + ")" : "");
2600
2604
  }
2601
2605
  },
2602
2606
  __debugKind: { get: function () { return formatSyntaxKind(this.kind); } },
@@ -2640,10 +2644,10 @@ var ts;
2640
2644
  Debug.enableDebugInfo = enableDebugInfo;
2641
2645
  function formatDeprecationMessage(name, error, errorAfter, since, message) {
2642
2646
  var deprecationMessage = error ? "DeprecationError: " : "DeprecationWarning: ";
2643
- deprecationMessage += "'".concat(name, "' ");
2644
- deprecationMessage += since ? "has been deprecated since v".concat(since) : "is deprecated";
2645
- deprecationMessage += error ? " and can no longer be used." : errorAfter ? " and will no longer be usable after v".concat(errorAfter, ".") : ".";
2646
- deprecationMessage += message ? " ".concat(ts.formatStringFromArgs(message, [name], 0)) : "";
2647
+ deprecationMessage += "'" + name + "' ";
2648
+ deprecationMessage += since ? "has been deprecated since v" + since : "is deprecated";
2649
+ deprecationMessage += error ? " and can no longer be used." : errorAfter ? " and will no longer be usable after v" + errorAfter + "." : ".";
2650
+ deprecationMessage += message ? " " + ts.formatStringFromArgs(message, [name], 0) : "";
2647
2651
  return deprecationMessage;
2648
2652
  }
2649
2653
  function createErrorDeprecation(name, errorAfter, since, message) {
@@ -2711,11 +2715,11 @@ var ts;
2711
2715
  type(this);
2712
2716
  switch (this.kind) {
2713
2717
  case 3: return ((_a = this.debugInfo) === null || _a === void 0 ? void 0 : _a.call(this)) || "(function mapper)";
2714
- case 0: return "".concat(this.source.__debugTypeToString(), " -> ").concat(this.target.__debugTypeToString());
2715
- case 1: return ts.zipWith(this.sources, this.targets || ts.map(this.sources, function () { return "any"; }), function (s, t) { return "".concat(s.__debugTypeToString(), " -> ").concat(typeof t === "string" ? t : t.__debugTypeToString()); }).join(", ");
2716
- case 2: return ts.zipWith(this.sources, this.targets, function (s, t) { return "".concat(s.__debugTypeToString(), " -> ").concat(t().__debugTypeToString()); }).join(", ");
2718
+ case 0: return this.source.__debugTypeToString() + " -> " + this.target.__debugTypeToString();
2719
+ case 1: return ts.zipWith(this.sources, this.targets || ts.map(this.sources, function () { return "any"; }), function (s, t) { return s.__debugTypeToString() + " -> " + (typeof t === "string" ? t : t.__debugTypeToString()); }).join(", ");
2720
+ case 2: return ts.zipWith(this.sources, this.targets, function (s, t) { return s.__debugTypeToString() + " -> " + t().__debugTypeToString(); }).join(", ");
2717
2721
  case 5:
2718
- case 4: return "m1: ".concat(this.mapper1.__debugToString().split("\n").join("\n "), "\nm2: ").concat(this.mapper2.__debugToString().split("\n").join("\n "));
2722
+ case 4: return "m1: " + this.mapper1.__debugToString().split("\n").join("\n ") + "\nm2: " + this.mapper2.__debugToString().split("\n").join("\n ");
2719
2723
  default: return assertNever(this);
2720
2724
  }
2721
2725
  };
@@ -2784,11 +2788,11 @@ var ts;
2784
2788
  }
2785
2789
  };
2786
2790
  Version.prototype.toString = function () {
2787
- var result = "".concat(this.major, ".").concat(this.minor, ".").concat(this.patch);
2791
+ var result = this.major + "." + this.minor + "." + this.patch;
2788
2792
  if (ts.some(this.prerelease))
2789
- result += "-".concat(this.prerelease.join("."));
2793
+ result += "-" + this.prerelease.join(".");
2790
2794
  if (ts.some(this.build))
2791
- result += "+".concat(this.build.join("."));
2795
+ result += "+" + this.build.join(".");
2792
2796
  return result;
2793
2797
  };
2794
2798
  Version.zero = new Version(0, 0, 0);
@@ -3010,7 +3014,7 @@ var ts;
3010
3014
  return ts.map(comparators, formatComparator).join(" ");
3011
3015
  }
3012
3016
  function formatComparator(comparator) {
3013
- return "".concat(comparator.operator).concat(comparator.operand);
3017
+ return "" + comparator.operator + comparator.operand;
3014
3018
  }
3015
3019
  })(ts || (ts = {}));
3016
3020
  var ts;
@@ -3021,6 +3025,8 @@ var ts;
3021
3025
  typeof performance.mark === "function" &&
3022
3026
  typeof performance.measure === "function" &&
3023
3027
  typeof performance.now === "function" &&
3028
+ typeof performance.clearMarks === "function" &&
3029
+ typeof performance.clearMeasures === "function" &&
3024
3030
  typeof PerformanceObserver === "function";
3025
3031
  }
3026
3032
  function tryGetWebPerformanceHooks() {
@@ -3058,7 +3064,9 @@ var ts;
3058
3064
  if (end === "__performance.measure-fix__") {
3059
3065
  nodePerformance_1.clearMarks("__performance.measure-fix__");
3060
3066
  }
3061
- }
3067
+ },
3068
+ clearMarks: function (name) { return nodePerformance_1.clearMarks(name); },
3069
+ clearMeasures: function (name) { return nodePerformance_1.clearMeasures(name); },
3062
3070
  };
3063
3071
  }
3064
3072
  return {
@@ -3153,6 +3161,30 @@ var ts;
3153
3161
  durations.forEach(function (duration, measureName) { return cb(measureName, duration); });
3154
3162
  }
3155
3163
  performance.forEachMeasure = forEachMeasure;
3164
+ function forEachMark(cb) {
3165
+ marks.forEach(function (_time, markName) { return cb(markName); });
3166
+ }
3167
+ performance.forEachMark = forEachMark;
3168
+ function clearMeasures(name) {
3169
+ if (name !== undefined)
3170
+ durations.delete(name);
3171
+ else
3172
+ durations.clear();
3173
+ performanceImpl === null || performanceImpl === void 0 ? void 0 : performanceImpl.clearMeasures(name);
3174
+ }
3175
+ performance.clearMeasures = clearMeasures;
3176
+ function clearMarks(name) {
3177
+ if (name !== undefined) {
3178
+ counts.delete(name);
3179
+ marks.delete(name);
3180
+ }
3181
+ else {
3182
+ counts.clear();
3183
+ marks.clear();
3184
+ }
3185
+ performanceImpl === null || performanceImpl === void 0 ? void 0 : performanceImpl.clearMarks(name);
3186
+ }
3187
+ performance.clearMarks = clearMarks;
3156
3188
  function isEnabled() {
3157
3189
  return enabled;
3158
3190
  }
@@ -3239,7 +3271,7 @@ var ts;
3239
3271
  fs = require("fs");
3240
3272
  }
3241
3273
  catch (e) {
3242
- throw new Error("tracing requires having fs\n(original error: ".concat(e.message || e, ")"));
3274
+ throw new Error("tracing requires having fs\n(original error: " + (e.message || e) + ")");
3243
3275
  }
3244
3276
  }
3245
3277
  mode = tracingMode;
@@ -3250,11 +3282,11 @@ var ts;
3250
3282
  if (!fs.existsSync(traceDir)) {
3251
3283
  fs.mkdirSync(traceDir, { recursive: true });
3252
3284
  }
3253
- var countPart = mode === "build" ? ".".concat(process.pid, "-").concat(++traceCount)
3254
- : mode === "server" ? ".".concat(process.pid)
3285
+ var countPart = mode === "build" ? "." + process.pid + "-" + ++traceCount
3286
+ : mode === "server" ? "." + process.pid
3255
3287
  : "";
3256
- var tracePath = ts.combinePaths(traceDir, "trace".concat(countPart, ".json"));
3257
- var typesPath = ts.combinePaths(traceDir, "types".concat(countPart, ".json"));
3288
+ var tracePath = ts.combinePaths(traceDir, "trace" + countPart + ".json");
3289
+ var typesPath = ts.combinePaths(traceDir, "types" + countPart + ".json");
3258
3290
  legend.push({
3259
3291
  configFilePath: configFilePath,
3260
3292
  tracePath: tracePath,
@@ -3323,7 +3355,7 @@ var ts;
3323
3355
  writeEvent("E", phase, name, args, undefined, endTime);
3324
3356
  }
3325
3357
  else if (sampleInterval - (time % sampleInterval) <= endTime - time) {
3326
- writeEvent("X", phase, name, __assign(__assign({}, args), { results: results }), "\"dur\":".concat(endTime - time), time);
3358
+ writeEvent("X", phase, name, __assign(__assign({}, args), { results: results }), "\"dur\":" + (endTime - time), time);
3327
3359
  }
3328
3360
  }
3329
3361
  function writeEvent(eventType, phase, name, args, extras, time) {
@@ -3331,11 +3363,11 @@ var ts;
3331
3363
  if (mode === "server" && phase === "checkTypes")
3332
3364
  return;
3333
3365
  ts.performance.mark("beginTracing");
3334
- fs.writeSync(traceFd, ",\n{\"pid\":1,\"tid\":1,\"ph\":\"".concat(eventType, "\",\"cat\":\"").concat(phase, "\",\"ts\":").concat(time, ",\"name\":\"").concat(name, "\""));
3366
+ fs.writeSync(traceFd, ",\n{\"pid\":1,\"tid\":1,\"ph\":\"" + eventType + "\",\"cat\":\"" + phase + "\",\"ts\":" + time + ",\"name\":\"" + name + "\"");
3335
3367
  if (extras)
3336
- fs.writeSync(traceFd, ",".concat(extras));
3368
+ fs.writeSync(traceFd, "," + extras);
3337
3369
  if (args)
3338
- fs.writeSync(traceFd, ",\"args\":".concat(JSON.stringify(args)));
3370
+ fs.writeSync(traceFd, ",\"args\":" + JSON.stringify(args));
3339
3371
  fs.writeSync(traceFd, "}");
3340
3372
  ts.performance.mark("endTracing");
3341
3373
  ts.performance.measure("Tracing", "beginTracing", "endTracing");
@@ -3662,7 +3694,7 @@ var ts;
3662
3694
  pollingChunkSize = getCustomPollingBasedLevels("TSC_WATCH_POLLINGCHUNKSIZE", defaultChunkLevels) || pollingChunkSize;
3663
3695
  ts.unchangedPollThresholds = getCustomPollingBasedLevels("TSC_WATCH_UNCHANGEDPOLLTHRESHOLDS", defaultChunkLevels) || ts.unchangedPollThresholds;
3664
3696
  function getLevel(envVar, level) {
3665
- return system.getEnvironmentVariable("".concat(envVar, "_").concat(level.toUpperCase()));
3697
+ return system.getEnvironmentVariable(envVar + "_" + level.toUpperCase());
3666
3698
  }
3667
3699
  function getCustomLevels(baseVariable) {
3668
3700
  var customLevels;
@@ -4086,7 +4118,7 @@ var ts;
4086
4118
  }
4087
4119
  function onTimerToUpdateChildWatches() {
4088
4120
  timerToUpdateChildWatches = undefined;
4089
- sysLog("sysLog:: onTimerToUpdateChildWatches:: ".concat(cacheToUpdateChildWatches.size));
4121
+ sysLog("sysLog:: onTimerToUpdateChildWatches:: " + cacheToUpdateChildWatches.size);
4090
4122
  var start = ts.timestamp();
4091
4123
  var invokeMap = new ts.Map();
4092
4124
  while (!timerToUpdateChildWatches && cacheToUpdateChildWatches.size) {
@@ -4097,7 +4129,7 @@ var ts;
4097
4129
  var hasChanges = updateChildWatches(dirName, dirPath, options);
4098
4130
  invokeCallbacks(dirPath, invokeMap, hasChanges ? undefined : fileNames);
4099
4131
  }
4100
- sysLog("sysLog:: invokingWatchers:: Elapsed:: ".concat(ts.timestamp() - start, "ms:: ").concat(cacheToUpdateChildWatches.size));
4132
+ sysLog("sysLog:: invokingWatchers:: Elapsed:: " + (ts.timestamp() - start) + "ms:: " + cacheToUpdateChildWatches.size);
4101
4133
  callbackCache.forEach(function (callbacks, rootDirName) {
4102
4134
  var existing = invokeMap.get(rootDirName);
4103
4135
  if (existing) {
@@ -4113,7 +4145,7 @@ var ts;
4113
4145
  }
4114
4146
  });
4115
4147
  var elapsed = ts.timestamp() - start;
4116
- sysLog("sysLog:: Elapsed:: ".concat(elapsed, "ms:: onTimerToUpdateChildWatches:: ").concat(cacheToUpdateChildWatches.size, " ").concat(timerToUpdateChildWatches));
4148
+ sysLog("sysLog:: Elapsed:: " + elapsed + "ms:: onTimerToUpdateChildWatches:: " + cacheToUpdateChildWatches.size + " " + timerToUpdateChildWatches);
4117
4149
  }
4118
4150
  function removeChildWatches(parentWatcher) {
4119
4151
  if (!parentWatcher)
@@ -4329,14 +4361,14 @@ var ts;
4329
4361
  };
4330
4362
  function updateWatcher(createWatcher) {
4331
4363
  if (watcher) {
4332
- sysLog("sysLog:: ".concat(fileOrDirectory, ":: Changing watcher to ").concat(createWatcher === watchPresentFileSystemEntry ? "Present" : "Missing", "FileSystemEntryWatcher"));
4364
+ sysLog("sysLog:: " + fileOrDirectory + ":: Changing watcher to " + (createWatcher === watchPresentFileSystemEntry ? "Present" : "Missing") + "FileSystemEntryWatcher");
4333
4365
  watcher.close();
4334
4366
  watcher = createWatcher();
4335
4367
  }
4336
4368
  }
4337
4369
  function watchPresentFileSystemEntry() {
4338
4370
  if (hitSystemWatcherLimit) {
4339
- sysLog("sysLog:: ".concat(fileOrDirectory, ":: Defaulting to watchFile"));
4371
+ sysLog("sysLog:: " + fileOrDirectory + ":: Defaulting to watchFile");
4340
4372
  return watchPresentFileSystemEntryWithFsWatchFile();
4341
4373
  }
4342
4374
  try {
@@ -4351,7 +4383,7 @@ var ts;
4351
4383
  }
4352
4384
  catch (e) {
4353
4385
  hitSystemWatcherLimit || (hitSystemWatcherLimit = e.code === "ENOSPC");
4354
- sysLog("sysLog:: ".concat(fileOrDirectory, ":: Changing to watchFile"));
4386
+ sysLog("sysLog:: " + fileOrDirectory + ":: Changing to watchFile");
4355
4387
  return watchPresentFileSystemEntryWithFsWatchFile();
4356
4388
  }
4357
4389
  }
@@ -4595,7 +4627,7 @@ var ts;
4595
4627
  var externalFileCounter = 0;
4596
4628
  var remappedPaths = new ts.Map();
4597
4629
  var normalizedDir = ts.normalizeSlashes(__dirname);
4598
- var fileUrlRoot = "file://".concat(ts.getRootLength(normalizedDir) === 1 ? "" : "/").concat(normalizedDir);
4630
+ var fileUrlRoot = "file://" + (ts.getRootLength(normalizedDir) === 1 ? "" : "/") + normalizedDir;
4599
4631
  for (var _i = 0, _a = profile.nodes; _i < _a.length; _i++) {
4600
4632
  var node = _a[_i];
4601
4633
  if (node.callFrame.url) {
@@ -4604,7 +4636,7 @@ var ts;
4604
4636
  node.callFrame.url = ts.getRelativePathToDirectoryOrUrl(fileUrlRoot, url, fileUrlRoot, ts.createGetCanonicalFileName(useCaseSensitiveFileNames), true);
4605
4637
  }
4606
4638
  else if (!nativePattern.test(url)) {
4607
- node.callFrame.url = (remappedPaths.has(url) ? remappedPaths : remappedPaths.set(url, "external".concat(externalFileCounter, ".js"))).get(url);
4639
+ node.callFrame.url = (remappedPaths.has(url) ? remappedPaths : remappedPaths.set(url, "external" + externalFileCounter + ".js")).get(url);
4608
4640
  externalFileCounter++;
4609
4641
  }
4610
4642
  }
@@ -4620,7 +4652,7 @@ var ts;
4620
4652
  if (!err) {
4621
4653
  try {
4622
4654
  if ((_b = statSync(profilePath)) === null || _b === void 0 ? void 0 : _b.isDirectory()) {
4623
- profilePath = _path.join(profilePath, "".concat((new Date()).toISOString().replace(/:/g, "-"), "+P").concat(process.pid, ".cpuprofile"));
4655
+ profilePath = _path.join(profilePath, (new Date()).toISOString().replace(/:/g, "-") + "+P" + process.pid + ".cpuprofile");
4624
4656
  }
4625
4657
  }
4626
4658
  catch (_c) {
@@ -5078,12 +5110,9 @@ var ts;
5078
5110
  }
5079
5111
  ts.getPathFromPathComponents = getPathFromPathComponents;
5080
5112
  function normalizeSlashes(path) {
5081
- var index = path.indexOf("\\");
5082
- if (index === -1) {
5083
- return path;
5084
- }
5085
- backslashRegExp.lastIndex = index;
5086
- return path.replace(backslashRegExp, ts.directorySeparator);
5113
+ return path.indexOf("\\") !== -1
5114
+ ? path.replace(backslashRegExp, ts.directorySeparator)
5115
+ : path;
5087
5116
  }
5088
5117
  ts.normalizeSlashes = normalizeSlashes;
5089
5118
  function reducePathComponents(components) {
@@ -6704,6 +6733,7 @@ var ts;
6704
6733
  Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_resolved: diag(6398, ts.DiagnosticCategory.Message, "Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_re_6398", "Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved."),
6705
6734
  Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted: diag(6399, ts.DiagnosticCategory.Message, "Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitte_6399", "Project '{0}' is out of date because buildinfo file '{1}' indicates that some of the changes were not emitted"),
6706
6735
  Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files: diag(6400, ts.DiagnosticCategory.Message, "Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_fil_6400", "Project '{0}' is up to date but needs to update timestamps of output files that are older than input files"),
6736
+ Project_0_is_out_of_date_because_there_was_error_reading_file_1: diag(6401, ts.DiagnosticCategory.Message, "Project_0_is_out_of_date_because_there_was_error_reading_file_1_6401", "Project '{0}' is out of date because there was error reading file '{1}'"),
6707
6737
  The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1: diag(6500, ts.DiagnosticCategory.Message, "The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500", "The expected type comes from property '{0}' which is declared here on type '{1}'"),
6708
6738
  The_expected_type_comes_from_this_index_signature: diag(6501, ts.DiagnosticCategory.Message, "The_expected_type_comes_from_this_index_signature_6501", "The expected type comes from this index signature."),
6709
6739
  The_expected_type_comes_from_the_return_type_of_this_signature: diag(6502, ts.DiagnosticCategory.Message, "The_expected_type_comes_from_the_return_type_of_this_signature_6502", "The expected type comes from the return type of this signature."),
@@ -7416,7 +7446,7 @@ var ts;
7416
7446
  line = line < 0 ? 0 : line >= lineStarts.length ? lineStarts.length - 1 : line;
7417
7447
  }
7418
7448
  else {
7419
- 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"));
7449
+ ts.Debug.fail("Bad line number. Line: " + line + ", lineStarts.length: " + lineStarts.length + " , line map is correct? " + (debugText !== undefined ? ts.arraysEqual(lineStarts, computeLineStarts(debugText)) : "unknown"));
7420
7450
  }
7421
7451
  }
7422
7452
  var res = lineStarts[line] + character;
@@ -9943,7 +9973,7 @@ var ts;
9943
9973
  : "linkplain";
9944
9974
  var name = link.name ? ts.entityNameToString(link.name) : "";
9945
9975
  var space = link.name && link.text.startsWith("://") ? "" : " ";
9946
- return "{@".concat(kind, " ").concat(name).concat(space).concat(link.text, "}");
9976
+ return "{@" + kind + " " + name + space + link.text + "}";
9947
9977
  }
9948
9978
  function getEffectiveTypeParameterDeclarations(node) {
9949
9979
  if (ts.isJSDocSignature(node)) {
@@ -11070,11 +11100,11 @@ var ts;
11070
11100
  }
11071
11101
  function packageIdToPackageName(_a) {
11072
11102
  var name = _a.name, subModuleName = _a.subModuleName;
11073
- return subModuleName ? "".concat(name, "/").concat(subModuleName) : name;
11103
+ return subModuleName ? name + "/" + subModuleName : name;
11074
11104
  }
11075
11105
  ts.packageIdToPackageName = packageIdToPackageName;
11076
11106
  function packageIdToString(packageId) {
11077
- return "".concat(packageIdToPackageName(packageId), "@").concat(packageId.version);
11107
+ return packageIdToPackageName(packageId) + "@" + packageId.version;
11078
11108
  }
11079
11109
  ts.packageIdToString = packageIdToString;
11080
11110
  function typeDirectiveIsEqualTo(oldResolution, newResolution) {
@@ -11151,7 +11181,7 @@ var ts;
11151
11181
  function nodePosToString(node) {
11152
11182
  var file = getSourceFileOfNode(node);
11153
11183
  var loc = ts.getLineAndCharacterOfPosition(file, node.pos);
11154
- return "".concat(file.fileName, "(").concat(loc.line + 1, ",").concat(loc.character + 1, ")");
11184
+ return file.fileName + "(" + (loc.line + 1) + "," + (loc.character + 1) + ")";
11155
11185
  }
11156
11186
  ts.nodePosToString = nodePosToString;
11157
11187
  function getEndLinePosition(line, sourceFile) {
@@ -11252,7 +11282,7 @@ var ts;
11252
11282
  ts.isPinnedComment = isPinnedComment;
11253
11283
  function createCommentDirectivesMap(sourceFile, commentDirectives) {
11254
11284
  var directivesByLine = new ts.Map(commentDirectives.map(function (commentDirective) { return ([
11255
- "".concat(ts.getLineAndCharacterOfPosition(sourceFile, commentDirective.range.end).line),
11285
+ "" + ts.getLineAndCharacterOfPosition(sourceFile, commentDirective.range.end).line,
11256
11286
  commentDirective,
11257
11287
  ]); }));
11258
11288
  var usedLines = new ts.Map();
@@ -11269,10 +11299,10 @@ var ts;
11269
11299
  });
11270
11300
  }
11271
11301
  function markUsed(line) {
11272
- if (!directivesByLine.has("".concat(line))) {
11302
+ if (!directivesByLine.has("" + line)) {
11273
11303
  return false;
11274
11304
  }
11275
- usedLines.set("".concat(line), true);
11305
+ usedLines.set("" + line, true);
11276
11306
  return true;
11277
11307
  }
11278
11308
  }
@@ -11472,7 +11502,7 @@ var ts;
11472
11502
  }
11473
11503
  return node.text;
11474
11504
  }
11475
- return ts.Debug.fail("Literal kind '".concat(node.kind, "' not accounted for."));
11505
+ return ts.Debug.fail("Literal kind '" + node.kind + "' not accounted for.");
11476
11506
  }
11477
11507
  ts.getLiteralText = getLiteralText;
11478
11508
  function canUseOriginalText(node, flags) {
@@ -13831,11 +13861,11 @@ var ts;
13831
13861
  }
13832
13862
  ts.getEscapedTextOfIdentifierOrLiteral = getEscapedTextOfIdentifierOrLiteral;
13833
13863
  function getPropertyNameForUniqueESSymbol(symbol) {
13834
- return "__@".concat(ts.getSymbolId(symbol), "@").concat(symbol.escapedName);
13864
+ return "__@" + ts.getSymbolId(symbol) + "@" + symbol.escapedName;
13835
13865
  }
13836
13866
  ts.getPropertyNameForUniqueESSymbol = getPropertyNameForUniqueESSymbol;
13837
13867
  function getSymbolNameForPrivateIdentifier(containingClassSymbol, description) {
13838
- return "__#".concat(ts.getSymbolId(containingClassSymbol), "@").concat(description);
13868
+ return "__#" + ts.getSymbolId(containingClassSymbol) + "@" + description;
13839
13869
  }
13840
13870
  ts.getSymbolNameForPrivateIdentifier = getSymbolNameForPrivateIdentifier;
13841
13871
  function isKnownSymbol(symbol) {
@@ -15279,20 +15309,16 @@ var ts;
15279
15309
  return getStringFromExpandedCharCodes(expandedCharCodes);
15280
15310
  }
15281
15311
  ts.base64decode = base64decode;
15312
+ function readJsonOrUndefined(path, hostOrText) {
15313
+ var jsonText = ts.isString(hostOrText) ? hostOrText : hostOrText.readFile(path);
15314
+ if (!jsonText)
15315
+ return undefined;
15316
+ var result = ts.parseConfigFileTextToJson(path, jsonText);
15317
+ return !result.error ? result.config : undefined;
15318
+ }
15319
+ ts.readJsonOrUndefined = readJsonOrUndefined;
15282
15320
  function readJson(path, host) {
15283
- try {
15284
- var jsonText = host.readFile(path);
15285
- if (!jsonText)
15286
- return {};
15287
- var result = ts.parseConfigFileTextToJson(path, jsonText);
15288
- if (result.error) {
15289
- return {};
15290
- }
15291
- return result.config;
15292
- }
15293
- catch (e) {
15294
- return {};
15295
- }
15321
+ return readJsonOrUndefined(path, host) || {};
15296
15322
  }
15297
15323
  ts.readJson = readJson;
15298
15324
  function directoryProbablyExists(directoryName, host) {
@@ -16232,7 +16258,7 @@ var ts;
16232
16258
  }
16233
16259
  ts.getJSXImplicitImportBase = getJSXImplicitImportBase;
16234
16260
  function getJSXRuntimeImport(base, options) {
16235
- return base ? "".concat(base, "/").concat(options.jsx === 5 ? "jsx-dev-runtime" : "jsx-runtime") : undefined;
16261
+ return base ? base + "/" + (options.jsx === 5 ? "jsx-dev-runtime" : "jsx-runtime") : undefined;
16236
16262
  }
16237
16263
  ts.getJSXRuntimeImport = getJSXRuntimeImport;
16238
16264
  function hasZeroOrOneAsteriskCharacter(str) {
@@ -16330,15 +16356,15 @@ var ts;
16330
16356
  }
16331
16357
  var wildcardCharCodes = [42, 63];
16332
16358
  ts.commonPackageFolders = ["node_modules", "bower_components", "jspm_packages"];
16333
- var implicitExcludePathRegexPattern = "(?!(".concat(ts.commonPackageFolders.join("|"), ")(/|$))");
16359
+ var implicitExcludePathRegexPattern = "(?!(" + ts.commonPackageFolders.join("|") + ")(/|$))";
16334
16360
  var filesMatcher = {
16335
16361
  singleAsteriskRegexFragment: "([^./]|(\\.(?!min\\.js$))?)*",
16336
- doubleAsteriskRegexFragment: "(/".concat(implicitExcludePathRegexPattern, "[^/.][^/]*)*?"),
16362
+ doubleAsteriskRegexFragment: "(/" + implicitExcludePathRegexPattern + "[^/.][^/]*)*?",
16337
16363
  replaceWildcardCharacter: function (match) { return replaceWildcardCharacter(match, filesMatcher.singleAsteriskRegexFragment); }
16338
16364
  };
16339
16365
  var directoriesMatcher = {
16340
16366
  singleAsteriskRegexFragment: "[^/]*",
16341
- doubleAsteriskRegexFragment: "(/".concat(implicitExcludePathRegexPattern, "[^/.][^/]*)*?"),
16367
+ doubleAsteriskRegexFragment: "(/" + implicitExcludePathRegexPattern + "[^/.][^/]*)*?",
16342
16368
  replaceWildcardCharacter: function (match) { return replaceWildcardCharacter(match, directoriesMatcher.singleAsteriskRegexFragment); }
16343
16369
  };
16344
16370
  var excludeMatcher = {
@@ -16356,9 +16382,9 @@ var ts;
16356
16382
  if (!patterns || !patterns.length) {
16357
16383
  return undefined;
16358
16384
  }
16359
- var pattern = patterns.map(function (pattern) { return "(".concat(pattern, ")"); }).join("|");
16385
+ var pattern = patterns.map(function (pattern) { return "(" + pattern + ")"; }).join("|");
16360
16386
  var terminator = usage === "exclude" ? "($|/)" : "$";
16361
- return "^(".concat(pattern, ")").concat(terminator);
16387
+ return "^(" + pattern + ")" + terminator;
16362
16388
  }
16363
16389
  ts.getRegularExpressionForWildcard = getRegularExpressionForWildcard;
16364
16390
  function getRegularExpressionsForWildcards(specs, basePath, usage) {
@@ -16376,7 +16402,7 @@ var ts;
16376
16402
  ts.isImplicitGlob = isImplicitGlob;
16377
16403
  function getPatternFromSpec(spec, basePath, usage) {
16378
16404
  var pattern = spec && getSubPatternFromSpec(spec, basePath, usage, wildcardMatchers[usage]);
16379
- return pattern && "^(".concat(pattern, ")").concat(usage === "exclude" ? "($|/)" : "$");
16405
+ return pattern && "^(" + pattern + ")" + (usage === "exclude" ? "($|/)" : "$");
16380
16406
  }
16381
16407
  ts.getPatternFromSpec = getPatternFromSpec;
16382
16408
  function getSubPatternFromSpec(spec, basePath, usage, _a) {
@@ -16442,7 +16468,7 @@ var ts;
16442
16468
  currentDirectory = ts.normalizePath(currentDirectory);
16443
16469
  var absolutePath = ts.combinePaths(currentDirectory, path);
16444
16470
  return {
16445
- includeFilePatterns: ts.map(getRegularExpressionsForWildcards(includes, absolutePath, "files"), function (pattern) { return "^".concat(pattern, "$"); }),
16471
+ includeFilePatterns: ts.map(getRegularExpressionsForWildcards(includes, absolutePath, "files"), function (pattern) { return "^" + pattern + "$"; }),
16446
16472
  includeFilePattern: getRegularExpressionForWildcard(includes, absolutePath, "files"),
16447
16473
  includeDirectoryPattern: getRegularExpressionForWildcard(includes, absolutePath, "directories"),
16448
16474
  excludePattern: getRegularExpressionForWildcard(excludes, absolutePath, "exclude"),
@@ -16688,7 +16714,7 @@ var ts;
16688
16714
  ts.resolutionExtensionIsTSOrJson = resolutionExtensionIsTSOrJson;
16689
16715
  function extensionFromPath(path) {
16690
16716
  var ext = tryGetExtensionFromPath(path);
16691
- return ext !== undefined ? ext : ts.Debug.fail("File ".concat(path, " has unknown extension."));
16717
+ return ext !== undefined ? ext : ts.Debug.fail("File " + path + " has unknown extension.");
16692
16718
  }
16693
16719
  ts.extensionFromPath = extensionFromPath;
16694
16720
  function isAnySupportedFileExtension(path) {
@@ -22021,7 +22047,7 @@ var ts;
22021
22047
  case 328: return "augments";
22022
22048
  case 329: return "implements";
22023
22049
  default:
22024
- return ts.Debug.fail("Unsupported kind: ".concat(ts.Debug.formatSyntaxKind(kind)));
22050
+ return ts.Debug.fail("Unsupported kind: " + ts.Debug.formatSyntaxKind(kind));
22025
22051
  }
22026
22052
  }
22027
22053
  var rawTextScanner;
@@ -22348,13 +22374,14 @@ var ts;
22348
22374
  };
22349
22375
  var definedTextGetter_1 = function (path) {
22350
22376
  var result = textGetter_1(path);
22351
- return result !== undefined ? result : "/* Input file ".concat(path, " was missing */\r\n");
22377
+ return result !== undefined ? result : "/* Input file " + path + " was missing */\r\n";
22352
22378
  };
22353
22379
  var buildInfo_1;
22354
22380
  var getAndCacheBuildInfo_1 = function (getText) {
22381
+ var _a;
22355
22382
  if (buildInfo_1 === undefined) {
22356
22383
  var result = getText();
22357
- buildInfo_1 = result !== undefined ? ts.getBuildInfo(result) : false;
22384
+ buildInfo_1 = result !== undefined ? (_a = ts.getBuildInfo(node.buildInfoPath, result)) !== null && _a !== void 0 ? _a : false : false;
22358
22385
  }
22359
22386
  return buildInfo_1 || undefined;
22360
22387
  };
@@ -26204,7 +26231,7 @@ var ts;
26204
26231
  for (var _i = 0, viableKeywordSuggestions_1 = viableKeywordSuggestions; _i < viableKeywordSuggestions_1.length; _i++) {
26205
26232
  var keyword = viableKeywordSuggestions_1[_i];
26206
26233
  if (expressionText.length > keyword.length + 2 && ts.startsWith(expressionText, keyword)) {
26207
- return "".concat(keyword, " ").concat(expressionText.slice(keyword.length));
26234
+ return keyword + " " + expressionText.slice(keyword.length);
26208
26235
  }
26209
26236
  }
26210
26237
  return undefined;
@@ -31812,7 +31839,7 @@ var ts;
31812
31839
  if (namedArgRegExCache.has(name)) {
31813
31840
  return namedArgRegExCache.get(name);
31814
31841
  }
31815
- var result = new RegExp("(\\s".concat(name, "\\s*=\\s*)(?:(?:'([^']*)')|(?:\"([^\"]*)\"))"), "im");
31842
+ var result = new RegExp("(\\s" + name + "\\s*=\\s*)(?:(?:'([^']*)')|(?:\"([^\"]*)\"))", "im");
31816
31843
  namedArgRegExCache.set(name, result);
31817
31844
  return result;
31818
31845
  }
@@ -33331,8 +33358,8 @@ var ts;
33331
33358
  }
33332
33359
  ts.createCompilerDiagnosticForInvalidCustomType = createCompilerDiagnosticForInvalidCustomType;
33333
33360
  function createDiagnosticForInvalidCustomType(opt, createDiagnostic) {
33334
- var namesOfType = ts.arrayFrom(opt.type.keys()).map(function (key) { return "'".concat(key, "'"); }).join(", ");
33335
- return createDiagnostic(ts.Diagnostics.Argument_for_0_option_must_be_Colon_1, "--".concat(opt.name), namesOfType);
33361
+ var namesOfType = ts.arrayFrom(opt.type.keys()).map(function (key) { return "'" + key + "'"; }).join(", ");
33362
+ return createDiagnostic(ts.Diagnostics.Argument_for_0_option_must_be_Colon_1, "--" + opt.name, namesOfType);
33336
33363
  }
33337
33364
  function parseCustomTypeOption(opt, value, errors) {
33338
33365
  return convertJsonOptionOfCustomType(opt, ts.trimString(value || ""), errors);
@@ -34050,10 +34077,10 @@ var ts;
34050
34077
  var newValue = compilerOptionsMap.get(cmd.name);
34051
34078
  var defaultValue = getDefaultValueForOption(cmd);
34052
34079
  if (newValue !== defaultValue) {
34053
- result.push("".concat(tab).concat(cmd.name, ": ").concat(newValue));
34080
+ result.push("" + tab + cmd.name + ": " + newValue);
34054
34081
  }
34055
34082
  else if (ts.hasProperty(ts.defaultInitCompilerOptions, cmd.name)) {
34056
- result.push("".concat(tab).concat(cmd.name, ": ").concat(defaultValue));
34083
+ result.push("" + tab + cmd.name + ": " + defaultValue);
34057
34084
  }
34058
34085
  });
34059
34086
  return result.join(newLine) + newLine;
@@ -34091,19 +34118,19 @@ var ts;
34091
34118
  if (entries.length !== 0) {
34092
34119
  entries.push({ value: "" });
34093
34120
  }
34094
- entries.push({ value: "/* ".concat(category, " */") });
34121
+ entries.push({ value: "/* " + category + " */" });
34095
34122
  for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {
34096
34123
  var option = options_1[_i];
34097
34124
  var optionName = void 0;
34098
34125
  if (compilerOptionsMap.has(option.name)) {
34099
- optionName = "\"".concat(option.name, "\": ").concat(JSON.stringify(compilerOptionsMap.get(option.name))).concat((seenKnownKeys += 1) === compilerOptionsMap.size ? "" : ",");
34126
+ optionName = "\"" + option.name + "\": " + JSON.stringify(compilerOptionsMap.get(option.name)) + ((seenKnownKeys += 1) === compilerOptionsMap.size ? "" : ",");
34100
34127
  }
34101
34128
  else {
34102
- optionName = "// \"".concat(option.name, "\": ").concat(JSON.stringify(getDefaultValueForOption(option)), ",");
34129
+ optionName = "// \"" + option.name + "\": " + JSON.stringify(getDefaultValueForOption(option)) + ",";
34103
34130
  }
34104
34131
  entries.push({
34105
34132
  value: optionName,
34106
- description: "/* ".concat(option.description && ts.getLocaleSpecificMessage(option.description) || option.name, " */")
34133
+ description: "/* " + (option.description && ts.getLocaleSpecificMessage(option.description) || option.name) + " */"
34107
34134
  });
34108
34135
  marginLength = Math.max(optionName.length, marginLength);
34109
34136
  }
@@ -34111,24 +34138,24 @@ var ts;
34111
34138
  var tab = makePadding(2);
34112
34139
  var result = [];
34113
34140
  result.push("{");
34114
- result.push("".concat(tab, "\"compilerOptions\": {"));
34115
- result.push("".concat(tab).concat(tab, "/* ").concat(ts.getLocaleSpecificMessage(ts.Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file), " */"));
34141
+ result.push(tab + "\"compilerOptions\": {");
34142
+ result.push("" + tab + tab + "/* " + ts.getLocaleSpecificMessage(ts.Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file) + " */");
34116
34143
  result.push("");
34117
34144
  for (var _a = 0, entries_2 = entries; _a < entries_2.length; _a++) {
34118
34145
  var entry = entries_2[_a];
34119
34146
  var value = entry.value, _b = entry.description, description = _b === void 0 ? "" : _b;
34120
- result.push(value && "".concat(tab).concat(tab).concat(value).concat(description && (makePadding(marginLength - value.length + 2) + description)));
34147
+ result.push(value && "" + tab + tab + value + (description && (makePadding(marginLength - value.length + 2) + description)));
34121
34148
  }
34122
34149
  if (fileNames.length) {
34123
- result.push("".concat(tab, "},"));
34124
- result.push("".concat(tab, "\"files\": ["));
34150
+ result.push(tab + "},");
34151
+ result.push(tab + "\"files\": [");
34125
34152
  for (var i = 0; i < fileNames.length; i++) {
34126
- result.push("".concat(tab).concat(tab).concat(JSON.stringify(fileNames[i])).concat(i === fileNames.length - 1 ? "" : ","));
34153
+ result.push("" + tab + tab + JSON.stringify(fileNames[i]) + (i === fileNames.length - 1 ? "" : ","));
34127
34154
  }
34128
- result.push("".concat(tab, "]"));
34155
+ result.push(tab + "]");
34129
34156
  }
34130
34157
  else {
34131
- result.push("".concat(tab, "}"));
34158
+ result.push(tab + "}");
34132
34159
  }
34133
34160
  result.push("}");
34134
34161
  return result.join(newLine) + newLine;
@@ -34485,7 +34512,7 @@ var ts;
34485
34512
  if (ts.isRootedDiskPath(extendedConfig) || ts.startsWith(extendedConfig, "./") || ts.startsWith(extendedConfig, "../")) {
34486
34513
  var extendedConfigPath = ts.getNormalizedAbsolutePath(extendedConfig, basePath);
34487
34514
  if (!host.fileExists(extendedConfigPath) && !ts.endsWith(extendedConfigPath, ".json")) {
34488
- extendedConfigPath = "".concat(extendedConfigPath, ".json");
34515
+ extendedConfigPath = extendedConfigPath + ".json";
34489
34516
  if (!host.fileExists(extendedConfigPath)) {
34490
34517
  errors.push(createDiagnostic(ts.Diagnostics.File_0_not_found, extendedConfig));
34491
34518
  return undefined;
@@ -34681,7 +34708,7 @@ var ts;
34681
34708
  if (ts.fileExtensionIs(file, ".json")) {
34682
34709
  if (!jsonOnlyIncludeRegexes) {
34683
34710
  var includes = validatedIncludeSpecs.filter(function (s) { return ts.endsWith(s, ".json"); });
34684
- var includeFilePatterns = ts.map(ts.getRegularExpressionsForWildcards(includes, basePath, "files"), function (pattern) { return "^".concat(pattern, "$"); });
34711
+ var includeFilePatterns = ts.map(ts.getRegularExpressionsForWildcards(includes, basePath, "files"), function (pattern) { return "^" + pattern + "$"; });
34685
34712
  jsonOnlyIncludeRegexes = includeFilePatterns ? includeFilePatterns.map(function (pattern) { return ts.getRegexFromPattern(pattern, host.useCaseSensitiveFileNames); }) : ts.emptyArray;
34686
34713
  }
34687
34714
  var includeIndex = ts.findIndex(jsonOnlyIncludeRegexes, function (re) { return re.test(file); });
@@ -34909,7 +34936,7 @@ var ts;
34909
34936
  return true;
34910
34937
  case "string":
34911
34938
  var defaultValue = option.defaultValueDescription;
34912
- return option.isFilePath ? "./".concat(defaultValue && typeof defaultValue === "string" ? defaultValue : "") : "";
34939
+ return option.isFilePath ? "./" + (defaultValue && typeof defaultValue === "string" ? defaultValue : "") : "";
34913
34940
  case "list":
34914
34941
  return [];
34915
34942
  case "object":
@@ -35058,7 +35085,7 @@ var ts;
35058
35085
  var bestVersionKey = result.version, bestVersionPaths = result.paths;
35059
35086
  if (typeof bestVersionPaths !== "object") {
35060
35087
  if (state.traceEnabled) {
35061
- trace(state.host, ts.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2, "typesVersions['".concat(bestVersionKey, "']"), "object", typeof bestVersionPaths);
35088
+ trace(state.host, ts.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2, "typesVersions['" + bestVersionKey + "']", "object", typeof bestVersionPaths);
35062
35089
  }
35063
35090
  return;
35064
35091
  }
@@ -35440,7 +35467,7 @@ var ts;
35440
35467
  };
35441
35468
  return cache;
35442
35469
  function getUnderlyingCacheKey(specifier, mode) {
35443
- var result = mode === undefined ? specifier : "".concat(mode, "|").concat(specifier);
35470
+ var result = mode === undefined ? specifier : mode + "|" + specifier;
35444
35471
  memoizedReverseKeys.set(result, [specifier, mode]);
35445
35472
  return result;
35446
35473
  }
@@ -35476,7 +35503,7 @@ var ts;
35476
35503
  }
35477
35504
  function getOrCreateCacheForModuleName(nonRelativeModuleName, mode, redirectedReference) {
35478
35505
  ts.Debug.assert(!ts.isExternalModuleNameRelative(nonRelativeModuleName));
35479
- return getOrCreateCache(moduleNameToDirectoryMap, redirectedReference, mode === undefined ? nonRelativeModuleName : "".concat(mode, "|").concat(nonRelativeModuleName), createPerModuleNameCache);
35506
+ return getOrCreateCache(moduleNameToDirectoryMap, redirectedReference, mode === undefined ? nonRelativeModuleName : mode + "|" + nonRelativeModuleName, createPerModuleNameCache);
35480
35507
  }
35481
35508
  function createPerModuleNameCache() {
35482
35509
  var directoryPathMap = new ts.Map();
@@ -35607,10 +35634,10 @@ var ts;
35607
35634
  result = classicNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference);
35608
35635
  break;
35609
35636
  default:
35610
- return ts.Debug.fail("Unexpected moduleResolution: ".concat(moduleResolution));
35637
+ return ts.Debug.fail("Unexpected moduleResolution: " + moduleResolution);
35611
35638
  }
35612
35639
  if (result && result.resolvedModule)
35613
- ts.perfLogger.logInfoEvent("Module \"".concat(moduleName, "\" resolved to \"").concat(result.resolvedModule.resolvedFileName, "\""));
35640
+ ts.perfLogger.logInfoEvent("Module \"" + moduleName + "\" resolved to \"" + result.resolvedModule.resolvedFileName + "\"");
35614
35641
  ts.perfLogger.logStopResolveModule((result && result.resolvedModule) ? "" + result.resolvedModule.resolvedFileName : "null");
35615
35642
  if (perFolderCache) {
35616
35643
  perFolderCache.set(moduleName, resolutionMode, result);
@@ -35740,7 +35767,7 @@ var ts;
35740
35767
  function resolveJSModule(moduleName, initialDir, host) {
35741
35768
  var _a = tryResolveJSModuleWorker(moduleName, initialDir, host), resolvedModule = _a.resolvedModule, failedLookupLocations = _a.failedLookupLocations;
35742
35769
  if (!resolvedModule) {
35743
- throw new Error("Could not resolve JS module '".concat(moduleName, "' starting at '").concat(initialDir, "'. Looked in: ").concat(failedLookupLocations.join(", ")));
35770
+ throw new Error("Could not resolve JS module '" + moduleName + "' starting at '" + initialDir + "'. Looked in: " + failedLookupLocations.join(", "));
35744
35771
  }
35745
35772
  return resolvedModule.resolvedFileName;
35746
35773
  }
@@ -35873,7 +35900,7 @@ var ts;
35873
35900
  if (traceEnabled) {
35874
35901
  trace(host, ts.Diagnostics.Resolving_real_path_for_0_result_1, path, real);
35875
35902
  }
35876
- ts.Debug.assert(host.fileExists(real), "".concat(path, " linked to nonexistent file ").concat(real));
35903
+ ts.Debug.assert(host.fileExists(real), path + " linked to nonexistent file " + real);
35877
35904
  return real;
35878
35905
  }
35879
35906
  function nodeLoadModuleByRelativeName(extensions, candidate, onlyRecordFailures, state, considerPackageJson) {
@@ -36330,7 +36357,7 @@ var ts;
36330
36357
  return undefined;
36331
36358
  }
36332
36359
  var trailingParts = parts.slice(nameParts.length);
36333
- return loadModuleFromExports(scope, extensions, !ts.length(trailingParts) ? "." : ".".concat(ts.directorySeparator).concat(trailingParts.join(ts.directorySeparator)), state, cache, redirectedReference);
36360
+ return loadModuleFromExports(scope, extensions, !ts.length(trailingParts) ? "." : "." + ts.directorySeparator + trailingParts.join(ts.directorySeparator), state, cache, redirectedReference);
36334
36361
  }
36335
36362
  function loadModuleFromExports(scope, extensions, subpath, state, cache, redirectedReference) {
36336
36363
  if (!scope.packageJsonContent.exports) {
@@ -36757,7 +36784,7 @@ var ts;
36757
36784
  return mangled;
36758
36785
  }
36759
36786
  function getTypesPackageName(packageName) {
36760
- return "@types/".concat(mangleScopedPackageName(packageName));
36787
+ return "@types/" + mangleScopedPackageName(packageName);
36761
36788
  }
36762
36789
  ts.getTypesPackageName = getTypesPackageName;
36763
36790
  function mangleScopedPackageName(packageName) {
@@ -37109,7 +37136,7 @@ var ts;
37109
37136
  if (name) {
37110
37137
  if (ts.isAmbientModule(node)) {
37111
37138
  var moduleName = ts.getTextOfIdentifierOrLiteral(name);
37112
- return (ts.isGlobalScopeAugmentation(node) ? "__global" : "\"".concat(moduleName, "\""));
37139
+ return (ts.isGlobalScopeAugmentation(node) ? "__global" : "\"" + moduleName + "\"");
37113
37140
  }
37114
37141
  if (name.kind === 162) {
37115
37142
  var nameExpression = name.expression;
@@ -37158,7 +37185,7 @@ var ts;
37158
37185
  case 317:
37159
37186
  return (ts.isJSDocConstructSignature(node) ? "__new" : "__call");
37160
37187
  case 164:
37161
- ts.Debug.assert(node.parent.kind === 317, "Impossible parameter parent kind", function () { return "parent is: ".concat(ts.Debug.formatSyntaxKind(node.parent.kind), ", expected JSDocFunctionType"); });
37188
+ ts.Debug.assert(node.parent.kind === 317, "Impossible parameter parent kind", function () { return "parent is: " + ts.Debug.formatSyntaxKind(node.parent.kind) + ", expected JSDocFunctionType"; });
37162
37189
  var functionType = node.parent;
37163
37190
  var index = functionType.parameters.indexOf(node);
37164
37191
  return "arg" + index;
@@ -37224,7 +37251,7 @@ var ts;
37224
37251
  }
37225
37252
  var relatedInformation_1 = [];
37226
37253
  if (ts.isTypeAliasDeclaration(node) && ts.nodeIsMissing(node.type) && ts.hasSyntacticModifier(node, 1) && symbol.flags & (2097152 | 788968 | 1920)) {
37227
- relatedInformation_1.push(createDiagnosticForNode(node, ts.Diagnostics.Did_you_mean_0, "export type { ".concat(ts.unescapeLeadingUnderscores(node.name.escapedText), " }")));
37254
+ relatedInformation_1.push(createDiagnosticForNode(node, ts.Diagnostics.Did_you_mean_0, "export type { " + ts.unescapeLeadingUnderscores(node.name.escapedText) + " }"));
37228
37255
  }
37229
37256
  var declarationName_1 = ts.getNameOfDeclaration(node) || node;
37230
37257
  ts.forEach(symbol.declarations, function (declaration, index) {
@@ -37498,6 +37525,9 @@ var ts;
37498
37525
  case 203:
37499
37526
  bindBindingElementFlow(node);
37500
37527
  break;
37528
+ case 164:
37529
+ bindParameterFlow(node);
37530
+ break;
37501
37531
  case 205:
37502
37532
  case 204:
37503
37533
  case 296:
@@ -38192,15 +38222,32 @@ var ts;
38192
38222
  }
38193
38223
  }
38194
38224
  function bindBindingElementFlow(node) {
38195
- if (ts.isBindingPattern(node.name)) {
38196
- bind(node.dotDotDotToken);
38197
- bind(node.propertyName);
38198
- bind(node.initializer);
38199
- bind(node.name);
38225
+ bind(node.dotDotDotToken);
38226
+ bind(node.propertyName);
38227
+ bindInitializer(node.initializer);
38228
+ bind(node.name);
38229
+ }
38230
+ function bindParameterFlow(node) {
38231
+ bindEach(node.modifiers);
38232
+ bind(node.dotDotDotToken);
38233
+ bind(node.questionToken);
38234
+ bind(node.type);
38235
+ bindInitializer(node.initializer);
38236
+ bind(node.name);
38237
+ }
38238
+ function bindInitializer(node) {
38239
+ if (!node) {
38240
+ return;
38200
38241
  }
38201
- else {
38202
- bindEachChild(node);
38242
+ var entryFlow = currentFlow;
38243
+ bind(node);
38244
+ if (entryFlow === unreachableFlow || entryFlow === currentFlow) {
38245
+ return;
38203
38246
  }
38247
+ var exitFlow = createBranchLabel();
38248
+ addAntecedent(exitFlow, entryFlow);
38249
+ addAntecedent(exitFlow, currentFlow);
38250
+ currentFlow = finishFlowLabel(exitFlow);
38204
38251
  }
38205
38252
  function bindJSDocTypeAlias(node) {
38206
38253
  bind(node.tagName);
@@ -39028,7 +39075,7 @@ var ts;
39028
39075
  }
39029
39076
  }
39030
39077
  function bindSourceFileAsExternalModule() {
39031
- bindAnonymousDeclaration(file, 512, "\"".concat(ts.removeFileExtension(file.fileName), "\""));
39078
+ bindAnonymousDeclaration(file, 512, "\"" + ts.removeFileExtension(file.fileName) + "\"");
39032
39079
  }
39033
39080
  function bindExportAssignment(node) {
39034
39081
  if (!container.symbol || !container.symbol.exports) {
@@ -40780,7 +40827,7 @@ var ts;
40780
40827
  if (sourceSymbolFile && targetSymbolFile && amalgamatedDuplicates && !isEitherEnum && sourceSymbolFile !== targetSymbolFile) {
40781
40828
  var firstFile_1 = ts.comparePaths(sourceSymbolFile.path, targetSymbolFile.path) === -1 ? sourceSymbolFile : targetSymbolFile;
40782
40829
  var secondFile_1 = firstFile_1 === sourceSymbolFile ? targetSymbolFile : sourceSymbolFile;
40783
- var filesDuplicates = ts.getOrUpdate(amalgamatedDuplicates, "".concat(firstFile_1.path, "|").concat(secondFile_1.path), function () {
40830
+ var filesDuplicates = ts.getOrUpdate(amalgamatedDuplicates, firstFile_1.path + "|" + secondFile_1.path, function () {
40784
40831
  return ({ firstFile: firstFile_1, secondFile: secondFile_1, conflictingSymbols: new ts.Map() });
40785
40832
  });
40786
40833
  var conflictingSymbolInfo = ts.getOrUpdate(filesDuplicates.conflictingSymbols, symbolName_1, function () {
@@ -40846,7 +40893,7 @@ var ts;
40846
40893
  if (unidirectional === void 0) { unidirectional = false; }
40847
40894
  source.forEach(function (sourceSymbol, id) {
40848
40895
  var targetSymbol = target.get(id);
40849
- target.set(id, targetSymbol ? mergeSymbol(targetSymbol, sourceSymbol, unidirectional) : sourceSymbol);
40896
+ target.set(id, targetSymbol ? mergeSymbol(targetSymbol, sourceSymbol, unidirectional) : getMergedSymbol(sourceSymbol));
40850
40897
  });
40851
40898
  }
40852
40899
  function mergeModuleAugmentation(moduleName) {
@@ -43130,7 +43177,7 @@ var ts;
43130
43177
  var links = getSymbolLinks(symbol);
43131
43178
  var cache = (links.accessibleChainCache || (links.accessibleChainCache = new ts.Map()));
43132
43179
  var firstRelevantLocation = forEachSymbolTableInScope(enclosingDeclaration, function (_, __, ___, node) { return node; });
43133
- var key = "".concat(useOnlyExternalAliasing ? 0 : 1, "|").concat(firstRelevantLocation && getNodeId(firstRelevantLocation), "|").concat(meaning);
43180
+ var key = (useOnlyExternalAliasing ? 0 : 1) + "|" + (firstRelevantLocation && getNodeId(firstRelevantLocation)) + "|" + meaning;
43134
43181
  if (cache.has(key)) {
43135
43182
  return cache.get(key);
43136
43183
  }
@@ -43963,7 +44010,7 @@ var ts;
43963
44010
  context.symbolDepth = new ts.Map();
43964
44011
  }
43965
44012
  var links = context.enclosingDeclaration && getNodeLinks(context.enclosingDeclaration);
43966
- var key = "".concat(getTypeId(type), "|").concat(context.flags);
44013
+ var key = getTypeId(type) + "|" + context.flags;
43967
44014
  if (links) {
43968
44015
  links.serializedTypes || (links.serializedTypes = new ts.Map());
43969
44016
  }
@@ -44224,7 +44271,7 @@ var ts;
44224
44271
  }
44225
44272
  }
44226
44273
  if (checkTruncationLength(context) && (i + 2 < properties.length - 1)) {
44227
- typeElements.push(ts.factory.createPropertySignature(undefined, "... ".concat(properties.length - i, " more ..."), undefined, undefined));
44274
+ typeElements.push(ts.factory.createPropertySignature(undefined, "... " + (properties.length - i) + " more ...", undefined, undefined));
44228
44275
  addPropertyToElementList(properties[properties.length - 1], context, typeElements);
44229
44276
  break;
44230
44277
  }
@@ -44332,7 +44379,7 @@ var ts;
44332
44379
  else if (types.length > 2) {
44333
44380
  return [
44334
44381
  typeToTypeNodeHelper(types[0], context),
44335
- ts.factory.createTypeReferenceNode("... ".concat(types.length - 2, " more ..."), undefined),
44382
+ ts.factory.createTypeReferenceNode("... " + (types.length - 2) + " more ...", undefined),
44336
44383
  typeToTypeNodeHelper(types[types.length - 1], context)
44337
44384
  ];
44338
44385
  }
@@ -44345,7 +44392,7 @@ var ts;
44345
44392
  var type = types_2[_i];
44346
44393
  i++;
44347
44394
  if (checkTruncationLength(context) && (i + 2 < types.length - 1)) {
44348
- result_5.push(ts.factory.createTypeReferenceNode("... ".concat(types.length - i, " more ..."), undefined));
44395
+ result_5.push(ts.factory.createTypeReferenceNode("... " + (types.length - i) + " more ...", undefined));
44349
44396
  var typeNode_1 = typeToTypeNodeHelper(types[types.length - 1], context);
44350
44397
  if (typeNode_1) {
44351
44398
  result_5.push(typeNode_1);
@@ -44707,7 +44754,7 @@ var ts;
44707
44754
  }
44708
44755
  return specifier;
44709
44756
  function getSpecifierCacheKey(path, mode) {
44710
- return mode === undefined ? path : "".concat(mode, "|").concat(path);
44757
+ return mode === undefined ? path : mode + "|" + path;
44711
44758
  }
44712
44759
  }
44713
44760
  function symbolToEntityNameNode(symbol) {
@@ -44874,7 +44921,7 @@ var ts;
44874
44921
  var text = rawtext;
44875
44922
  while (((_b = context.typeParameterNamesByText) === null || _b === void 0 ? void 0 : _b.has(text)) || typeParameterShadowsNameInScope(text, context, type)) {
44876
44923
  i++;
44877
- text = "".concat(rawtext, "_").concat(i);
44924
+ text = rawtext + "_" + i;
44878
44925
  }
44879
44926
  if (text !== rawtext) {
44880
44927
  result = ts.factory.createIdentifier(text, result.typeArguments);
@@ -45166,7 +45213,7 @@ var ts;
45166
45213
  function getNameForJSDocFunctionParameter(p, index) {
45167
45214
  return p.name && ts.isIdentifier(p.name) && p.name.escapedText === "this" ? "this"
45168
45215
  : getEffectiveDotDotDotForParameter(p) ? "args"
45169
- : "arg".concat(index);
45216
+ : "arg" + index;
45170
45217
  }
45171
45218
  function rewriteModuleSpecifier(parent, lit) {
45172
45219
  if (bundled) {
@@ -45978,7 +46025,7 @@ var ts;
45978
46025
  }
45979
46026
  return results_1;
45980
46027
  }
45981
- return ts.Debug.fail("Unhandled class member kind! ".concat(p.__debugFlags || p.flags));
46028
+ return ts.Debug.fail("Unhandled class member kind! " + (p.__debugFlags || p.flags));
45982
46029
  };
45983
46030
  }
45984
46031
  function serializePropertySymbolForInterface(p, baseType) {
@@ -46048,7 +46095,7 @@ var ts;
46048
46095
  if (ref) {
46049
46096
  return ref;
46050
46097
  }
46051
- var tempName = getUnusedName("".concat(rootName, "_base"));
46098
+ var tempName = getUnusedName(rootName + "_base");
46052
46099
  var statement = ts.factory.createVariableStatement(undefined, ts.factory.createVariableDeclarationList([
46053
46100
  ts.factory.createVariableDeclaration(tempName, undefined, typeToTypeNodeHelper(staticType, context))
46054
46101
  ], 2));
@@ -46093,7 +46140,7 @@ var ts;
46093
46140
  var original = input;
46094
46141
  while ((_a = context.usedSymbolNames) === null || _a === void 0 ? void 0 : _a.has(input)) {
46095
46142
  i++;
46096
- input = "".concat(original, "_").concat(i);
46143
+ input = original + "_" + i;
46097
46144
  }
46098
46145
  (_b = context.usedSymbolNames) === null || _b === void 0 ? void 0 : _b.add(input);
46099
46146
  if (id) {
@@ -46199,15 +46246,15 @@ var ts;
46199
46246
  if (nameType.flags & 384) {
46200
46247
  var name = "" + nameType.value;
46201
46248
  if (!ts.isIdentifierText(name, ts.getEmitScriptTarget(compilerOptions)) && !ts.isNumericLiteralName(name)) {
46202
- return "\"".concat(ts.escapeString(name, 34), "\"");
46249
+ return "\"" + ts.escapeString(name, 34) + "\"";
46203
46250
  }
46204
46251
  if (ts.isNumericLiteralName(name) && ts.startsWith(name, "-")) {
46205
- return "[".concat(name, "]");
46252
+ return "[" + name + "]";
46206
46253
  }
46207
46254
  return name;
46208
46255
  }
46209
46256
  if (nameType.flags & 8192) {
46210
- return "[".concat(getNameOfSymbolAsWritten(nameType.symbol, context), "]");
46257
+ return "[" + getNameOfSymbolAsWritten(nameType.symbol, context) + "]";
46211
46258
  }
46212
46259
  }
46213
46260
  }
@@ -46698,11 +46745,9 @@ var ts;
46698
46745
  return getReturnTypeOfSignature(getterSignature);
46699
46746
  }
46700
46747
  }
46701
- if (ts.isInJSFile(declaration)) {
46702
- var type_1 = getParameterTypeOfTypeTag(func, declaration);
46703
- if (type_1)
46704
- return type_1;
46705
- }
46748
+ var parameterTypeOfTypeTag = getParameterTypeOfTypeTag(func, declaration);
46749
+ if (parameterTypeOfTypeTag)
46750
+ return parameterTypeOfTypeTag;
46706
46751
  var type = declaration.symbol.escapedName === "this" ? getContextualThisParameterType(func) : getContextuallyTypedParameterType(declaration);
46707
46752
  if (type) {
46708
46753
  return addOptionality(type, false, isOptional);
@@ -47207,8 +47252,8 @@ var ts;
47207
47252
  if (typeNode === undefined) {
47208
47253
  return useUnknownInCatchVariables ? unknownType : anyType;
47209
47254
  }
47210
- var type_2 = getTypeOfNode(typeNode);
47211
- return isTypeAny(type_2) || type_2 === unknownType ? type_2 : errorType;
47255
+ var type_1 = getTypeOfNode(typeNode);
47256
+ return isTypeAny(type_1) || type_1 === unknownType ? type_1 : errorType;
47212
47257
  }
47213
47258
  if (ts.isSourceFile(declaration) && ts.isJsonSourceFile(declaration)) {
47214
47259
  if (!declaration.statements.length) {
@@ -47405,11 +47450,11 @@ var ts;
47405
47450
  return errorType;
47406
47451
  }
47407
47452
  var exportEquals = getMergedSymbol(symbol.exports.get("export="));
47408
- var type_3 = getWidenedTypeForAssignmentDeclaration(exportEquals, exportEquals === resolvedModule ? undefined : resolvedModule);
47453
+ var type_2 = getWidenedTypeForAssignmentDeclaration(exportEquals, exportEquals === resolvedModule ? undefined : resolvedModule);
47409
47454
  if (!popTypeResolution()) {
47410
47455
  return reportCircularityError(symbol);
47411
47456
  }
47412
- return type_3;
47457
+ return type_2;
47413
47458
  }
47414
47459
  }
47415
47460
  var type = createObjectType(16, symbol);
@@ -48635,7 +48680,7 @@ var ts;
48635
48680
  !leftName ? rightName :
48636
48681
  !rightName ? leftName :
48637
48682
  undefined;
48638
- var paramSymbol = createSymbol(1 | (isOptional && !isRestParam ? 16777216 : 0), paramName || "arg".concat(i));
48683
+ var paramSymbol = createSymbol(1 | (isOptional && !isRestParam ? 16777216 : 0), paramName || "arg" + i);
48639
48684
  paramSymbol.type = isRestParam ? createArrayType(unionParamType) : unionParamType;
48640
48685
  params[i] = paramSymbol;
48641
48686
  }
@@ -49335,10 +49380,10 @@ var ts;
49335
49380
  var baseTypes = [];
49336
49381
  var different = false;
49337
49382
  for (var _i = 0, types_7 = types; _i < types_7.length; _i++) {
49338
- var type_4 = types_7[_i];
49339
- var baseType = getBaseConstraint(type_4);
49383
+ var type_3 = types_7[_i];
49384
+ var baseType = getBaseConstraint(type_3);
49340
49385
  if (baseType) {
49341
- if (baseType !== type_4) {
49386
+ if (baseType !== type_3) {
49342
49387
  different = true;
49343
49388
  }
49344
49389
  baseTypes.push(baseType);
@@ -50019,7 +50064,10 @@ var ts;
50019
50064
  continue;
50020
50065
  }
50021
50066
  }
50022
- result.push(getSignatureFromDeclaration(decl));
50067
+ result.push((!ts.isFunctionExpressionOrArrowFunction(decl) &&
50068
+ !ts.isObjectLiteralMethod(decl) &&
50069
+ getSignatureOfTypeTag(decl)) ||
50070
+ getSignatureFromDeclaration(decl));
50023
50071
  }
50024
50072
  return result;
50025
50073
  }
@@ -50050,7 +50098,7 @@ var ts;
50050
50098
  else {
50051
50099
  var type = signature.declaration && ts.getEffectiveReturnTypeNode(signature.declaration);
50052
50100
  var jsdocPredicate = void 0;
50053
- if (!type && ts.isInJSFile(signature.declaration)) {
50101
+ if (!type) {
50054
50102
  var jsdocSignature = getSignatureOfTypeTag(signature.declaration);
50055
50103
  if (jsdocSignature && signature !== jsdocSignature) {
50056
50104
  jsdocPredicate = getTypePredicateOfSignature(jsdocSignature);
@@ -50375,7 +50423,7 @@ var ts;
50375
50423
  return result;
50376
50424
  }
50377
50425
  function getAliasId(aliasSymbol, aliasTypeArguments) {
50378
- return aliasSymbol ? "@".concat(getSymbolId(aliasSymbol)) + (aliasTypeArguments ? ":".concat(getTypeListId(aliasTypeArguments)) : "") : "";
50426
+ return aliasSymbol ? "@" + getSymbolId(aliasSymbol) + (aliasTypeArguments ? ":" + getTypeListId(aliasTypeArguments) : "") : "";
50379
50427
  }
50380
50428
  function getPropagatingFlagsOfTypes(types, excludeKinds) {
50381
50429
  var result = 0;
@@ -50538,7 +50586,7 @@ var ts;
50538
50586
  return undefined;
50539
50587
  }
50540
50588
  function getSymbolPath(symbol) {
50541
- return symbol.parent ? "".concat(getSymbolPath(symbol.parent), ".").concat(symbol.escapedName) : symbol.escapedName;
50589
+ return symbol.parent ? getSymbolPath(symbol.parent) + "." + symbol.escapedName : symbol.escapedName;
50542
50590
  }
50543
50591
  function getUnresolvedSymbolForEntityName(name) {
50544
50592
  var identifier = name.kind === 161 ? name.right :
@@ -50549,7 +50597,7 @@ var ts;
50549
50597
  var parentSymbol = name.kind === 161 ? getUnresolvedSymbolForEntityName(name.left) :
50550
50598
  name.kind === 206 ? getUnresolvedSymbolForEntityName(name.expression) :
50551
50599
  undefined;
50552
- var path = parentSymbol ? "".concat(getSymbolPath(parentSymbol), ".").concat(text) : text;
50600
+ var path = parentSymbol ? getSymbolPath(parentSymbol) + "." + text : text;
50553
50601
  var result = unresolvedSymbols.get(path);
50554
50602
  if (!result) {
50555
50603
  unresolvedSymbols.set(path, result = createSymbol(524288, text, 1048576));
@@ -50615,7 +50663,7 @@ var ts;
50615
50663
  if (substitute.flags & 3 || substitute === baseType) {
50616
50664
  return baseType;
50617
50665
  }
50618
- var id = "".concat(getTypeId(baseType), ">").concat(getTypeId(substitute));
50666
+ var id = getTypeId(baseType) + ">" + getTypeId(substitute);
50619
50667
  var cached = substitutionTypes.get(id);
50620
50668
  if (cached) {
50621
50669
  return cached;
@@ -51474,9 +51522,9 @@ var ts;
51474
51522
  return types[0];
51475
51523
  }
51476
51524
  var typeKey = !origin ? getTypeListId(types) :
51477
- origin.flags & 1048576 ? "|".concat(getTypeListId(origin.types)) :
51478
- origin.flags & 2097152 ? "&".concat(getTypeListId(origin.types)) :
51479
- "#".concat(origin.type.id, "|").concat(getTypeListId(types));
51525
+ origin.flags & 1048576 ? "|" + getTypeListId(origin.types) :
51526
+ origin.flags & 2097152 ? "&" + getTypeListId(origin.types) :
51527
+ "#" + origin.type.id + "|" + getTypeListId(types);
51480
51528
  var id = typeKey + getAliasId(aliasSymbol, aliasTypeArguments);
51481
51529
  var type = unionTypes.get(id);
51482
51530
  if (!type) {
@@ -51949,7 +51997,7 @@ var ts;
51949
51997
  if (ts.every(newTexts, function (t) { return t === ""; }) && ts.every(newTypes, function (t) { return !!(t.flags & 4); })) {
51950
51998
  return stringType;
51951
51999
  }
51952
- var id = "".concat(getTypeListId(newTypes), "|").concat(ts.map(newTexts, function (t) { return t.length; }).join(","), "|").concat(newTexts.join(""));
52000
+ var id = getTypeListId(newTypes) + "|" + ts.map(newTexts, function (t) { return t.length; }).join(",") + "|" + newTexts.join("");
51953
52001
  var type = templateLiteralTypes.get(id);
51954
52002
  if (!type) {
51955
52003
  templateLiteralTypes.set(id, type = createTemplateLiteralType(newTexts, newTypes));
@@ -52031,7 +52079,7 @@ var ts;
52031
52079
  return [texts, types];
52032
52080
  }
52033
52081
  function getStringMappingTypeForGenericType(symbol, type) {
52034
- var id = "".concat(getSymbolId(symbol), ",").concat(getTypeId(type));
52082
+ var id = getSymbolId(symbol) + "," + getTypeId(type);
52035
52083
  var result = stringMappingTypes.get(id);
52036
52084
  if (!result) {
52037
52085
  stringMappingTypes.set(id, result = createStringMappingType(symbol, type));
@@ -52980,7 +53028,7 @@ var ts;
52980
53028
  function createUniqueESSymbolType(symbol) {
52981
53029
  var type = createType(8192);
52982
53030
  type.symbol = symbol;
52983
- type.escapedName = "__@".concat(type.symbol.escapedName, "@").concat(getSymbolId(type.symbol));
53031
+ type.escapedName = "__@" + type.symbol.escapedName + "@" + getSymbolId(type.symbol);
52984
53032
  return type;
52985
53033
  }
52986
53034
  function getESSymbolLikeTypeForNode(node) {
@@ -53643,14 +53691,13 @@ var ts;
53643
53691
  return false;
53644
53692
  }
53645
53693
  function isContextSensitiveFunctionLikeDeclaration(node) {
53646
- return (!ts.isFunctionDeclaration(node) || ts.isInJSFile(node) && !!getTypeForDeclarationFromJSDocComment(node)) &&
53647
- (ts.hasContextSensitiveParameters(node) || hasContextSensitiveReturnExpression(node));
53694
+ return ts.hasContextSensitiveParameters(node) || hasContextSensitiveReturnExpression(node);
53648
53695
  }
53649
53696
  function hasContextSensitiveReturnExpression(node) {
53650
53697
  return !node.typeParameters && !ts.getEffectiveReturnTypeNode(node) && !!node.body && node.body.kind !== 235 && isContextSensitive(node.body);
53651
53698
  }
53652
53699
  function isContextSensitiveFunctionOrObjectLiteralMethod(func) {
53653
- return (ts.isInJSFile(func) && ts.isFunctionDeclaration(func) || ts.isFunctionExpressionOrArrowFunction(func) || ts.isObjectLiteralMethod(func)) &&
53700
+ return (ts.isFunctionExpressionOrArrowFunction(func) || ts.isObjectLiteralMethod(func)) &&
53654
53701
  isContextSensitiveFunctionLikeDeclaration(func);
53655
53702
  }
53656
53703
  function getTypeWithoutSignatures(type) {
@@ -54552,20 +54599,20 @@ var ts;
54552
54599
  switch (msg.code) {
54553
54600
  case ts.Diagnostics.Types_of_property_0_are_incompatible.code: {
54554
54601
  if (path.indexOf("new ") === 0) {
54555
- path = "(".concat(path, ")");
54602
+ path = "(" + path + ")";
54556
54603
  }
54557
54604
  var str = "" + args[0];
54558
54605
  if (path.length === 0) {
54559
- path = "".concat(str);
54606
+ path = "" + str;
54560
54607
  }
54561
54608
  else if (ts.isIdentifierText(str, ts.getEmitScriptTarget(compilerOptions))) {
54562
- path = "".concat(path, ".").concat(str);
54609
+ path = path + "." + str;
54563
54610
  }
54564
54611
  else if (str[0] === "[" && str[str.length - 1] === "]") {
54565
- path = "".concat(path).concat(str);
54612
+ path = "" + path + str;
54566
54613
  }
54567
54614
  else {
54568
- path = "".concat(path, "[").concat(str, "]");
54615
+ path = path + "[" + str + "]";
54569
54616
  }
54570
54617
  break;
54571
54618
  }
@@ -54592,7 +54639,7 @@ var ts;
54592
54639
  msg.code === ts.Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code)
54593
54640
  ? ""
54594
54641
  : "...";
54595
- path = "".concat(prefix).concat(path, "(").concat(params, ")");
54642
+ path = "" + prefix + path + "(" + params + ")";
54596
54643
  }
54597
54644
  break;
54598
54645
  }
@@ -54605,7 +54652,7 @@ var ts;
54605
54652
  break;
54606
54653
  }
54607
54654
  default:
54608
- return ts.Debug.fail("Unhandled Diagnostic: ".concat(msg.code));
54655
+ return ts.Debug.fail("Unhandled Diagnostic: " + msg.code);
54609
54656
  }
54610
54657
  }
54611
54658
  if (path) {
@@ -56500,7 +56547,7 @@ var ts;
56500
56547
  var constraintMarker = "";
56501
56548
  var sourceId = getTypeReferenceId(source, 0);
56502
56549
  var targetId = getTypeReferenceId(target, 0);
56503
- return "".concat(constraintMarker).concat(sourceId, ",").concat(targetId).concat(postFix);
56550
+ return "" + constraintMarker + sourceId + "," + targetId + postFix;
56504
56551
  function getTypeReferenceId(type, depth) {
56505
56552
  if (depth === void 0) { depth = 0; }
56506
56553
  var result = "" + type.target.id;
@@ -56536,7 +56583,7 @@ var ts;
56536
56583
  var postFix = intersectionState ? ":" + intersectionState : "";
56537
56584
  return isTypeReferenceWithGenericArguments(source) && isTypeReferenceWithGenericArguments(target) ?
56538
56585
  getGenericTypeReferenceRelationKey(source, target, postFix, ignoreConstraints) :
56539
- "".concat(source.id, ",").concat(target.id).concat(postFix);
56586
+ source.id + "," + target.id + postFix;
56540
56587
  }
56541
56588
  function forEachProperty(prop, callback) {
56542
56589
  if (ts.getCheckFlags(prop) & 6) {
@@ -56855,7 +56902,7 @@ var ts;
56855
56902
  }
56856
56903
  function getBaseTypeOfLiteralTypeUnion(type) {
56857
56904
  var _a;
56858
- var key = "B".concat(getTypeId(type));
56905
+ var key = "B" + getTypeId(type);
56859
56906
  return (_a = getCachedType(key)) !== null && _a !== void 0 ? _a : setCachedType(key, mapType(type, getBaseTypeOfLiteralType));
56860
56907
  }
56861
56908
  function getWidenedLiteralType(type) {
@@ -57578,7 +57625,7 @@ var ts;
57578
57625
  }
57579
57626
  function parseBigIntLiteralType(text) {
57580
57627
  var negative = text.startsWith("-");
57581
- var base10Value = ts.parsePseudoBigInt("".concat(negative ? text.slice(1) : text, "n"));
57628
+ var base10Value = ts.parsePseudoBigInt((negative ? text.slice(1) : text) + "n");
57582
57629
  return getBigIntLiteralType({ negative: negative, base10Value: base10Value });
57583
57630
  }
57584
57631
  function isValidBigIntString(s, roundTripOnly) {
@@ -58449,10 +58496,10 @@ var ts;
58449
58496
  case 79:
58450
58497
  if (!ts.isThisInTypeQuery(node)) {
58451
58498
  var symbol = getResolvedSymbol(node);
58452
- return symbol !== unknownSymbol ? "".concat(flowContainer ? getNodeId(flowContainer) : "-1", "|").concat(getTypeId(declaredType), "|").concat(getTypeId(initialType), "|").concat(getSymbolId(symbol)) : undefined;
58499
+ return symbol !== unknownSymbol ? (flowContainer ? getNodeId(flowContainer) : "-1") + "|" + getTypeId(declaredType) + "|" + getTypeId(initialType) + "|" + getSymbolId(symbol) : undefined;
58453
58500
  }
58454
58501
  case 108:
58455
- return "0|".concat(flowContainer ? getNodeId(flowContainer) : "-1", "|").concat(getTypeId(declaredType), "|").concat(getTypeId(initialType));
58502
+ return "0|" + (flowContainer ? getNodeId(flowContainer) : "-1") + "|" + getTypeId(declaredType) + "|" + getTypeId(initialType);
58456
58503
  case 230:
58457
58504
  case 212:
58458
58505
  return getFlowCacheKey(node.expression, declaredType, initialType, flowContainer);
@@ -58473,7 +58520,7 @@ var ts;
58473
58520
  case 213:
58474
58521
  case 214:
58475
58522
  case 169:
58476
- return "".concat(getNodeId(node), "#").concat(getTypeId(declaredType));
58523
+ return getNodeId(node) + "#" + getTypeId(declaredType);
58477
58524
  }
58478
58525
  return undefined;
58479
58526
  }
@@ -58726,7 +58773,7 @@ var ts;
58726
58773
  if (assignedType.flags & 131072) {
58727
58774
  return assignedType;
58728
58775
  }
58729
- var key = "A".concat(getTypeId(declaredType), ",").concat(getTypeId(assignedType));
58776
+ var key = "A" + getTypeId(declaredType) + "," + getTypeId(assignedType);
58730
58777
  return (_a = getCachedType(key)) !== null && _a !== void 0 ? _a : setCachedType(key, getAssignmentReducedTypeWorker(declaredType, assignedType));
58731
58778
  }
58732
58779
  function getAssignmentReducedTypeWorker(declaredType, assignedType) {
@@ -60214,7 +60261,7 @@ var ts;
60214
60261
  }
60215
60262
  function getNarrowedType(type, candidate, assumeTrue, checkDerived) {
60216
60263
  var _a;
60217
- var key = type.flags & 1048576 ? "N".concat(getTypeId(type), ",").concat(getTypeId(candidate), ",").concat((assumeTrue ? 1 : 0) | (checkDerived ? 2 : 0)) : undefined;
60264
+ var key = type.flags & 1048576 ? "N" + getTypeId(type) + "," + getTypeId(candidate) + "," + ((assumeTrue ? 1 : 0) | (checkDerived ? 2 : 0)) : undefined;
60218
60265
  return (_a = getCachedType(key)) !== null && _a !== void 0 ? _a : setCachedType(key, getNarrowedTypeWorker(type, candidate, assumeTrue, checkDerived));
60219
60266
  }
60220
60267
  function getNarrowedTypeWorker(type, candidate, assumeTrue, checkDerived) {
@@ -61414,8 +61461,11 @@ var ts;
61414
61461
  case 1:
61415
61462
  case 6:
61416
61463
  case 3:
61417
- var valueDeclaration = (_a = binaryExpression.left.symbol) === null || _a === void 0 ? void 0 : _a.valueDeclaration;
61418
61464
  case 2:
61465
+ var valueDeclaration = void 0;
61466
+ if (kind !== 2) {
61467
+ valueDeclaration = (_a = binaryExpression.left.symbol) === null || _a === void 0 ? void 0 : _a.valueDeclaration;
61468
+ }
61419
61469
  valueDeclaration || (valueDeclaration = (_b = binaryExpression.symbol) === null || _b === void 0 ? void 0 : _b.valueDeclaration);
61420
61470
  var annotated = valueDeclaration && ts.getEffectiveTypeAnnotationNode(valueDeclaration);
61421
61471
  return annotated ? getTypeFromTypeNode(annotated) : undefined;
@@ -61464,25 +61514,7 @@ var ts;
61464
61514
  }
61465
61515
  function getTypeOfPropertyOfContextualType(type, name, nameType) {
61466
61516
  return mapType(type, function (t) {
61467
- if (t.flags & 2097152) {
61468
- var intersection = t;
61469
- var newTypes = ts.mapDefined(intersection.types, getTypeOfConcretePropertyOfContextualType);
61470
- if (newTypes.length > 0) {
61471
- return getIntersectionType(newTypes);
61472
- }
61473
- newTypes = ts.mapDefined(intersection.types, getTypeOfApplicableIndexInfoOfContextualType);
61474
- if (newTypes.length > 0) {
61475
- return getIntersectionType(newTypes);
61476
- }
61477
- return undefined;
61478
- }
61479
- var concretePropertyType = getTypeOfConcretePropertyOfContextualType(t);
61480
- if (concretePropertyType) {
61481
- return concretePropertyType;
61482
- }
61483
- return getTypeOfApplicableIndexInfoOfContextualType(t);
61484
- }, true);
61485
- function getTypeOfConcretePropertyOfContextualType(t) {
61517
+ var _a;
61486
61518
  if (isGenericMappedType(t) && !t.declaration.nameType) {
61487
61519
  var constraint = getConstraintTypeFromMappedType(t);
61488
61520
  var constraintOfConstraint = getBaseConstraintOfType(constraint) || constraint;
@@ -61490,9 +61522,8 @@ var ts;
61490
61522
  if (isTypeAssignableTo(propertyNameType, constraintOfConstraint)) {
61491
61523
  return substituteIndexedMappedType(t, propertyNameType);
61492
61524
  }
61493
- return undefined;
61494
61525
  }
61495
- if (t.flags & 3670016) {
61526
+ else if (t.flags & 3670016) {
61496
61527
  var prop = getPropertyOfType(t, name);
61497
61528
  if (prop) {
61498
61529
  return isCircularMappedProperty(prop) ? undefined : getTypeOfSymbol(prop);
@@ -61503,16 +61534,10 @@ var ts;
61503
61534
  return restType;
61504
61535
  }
61505
61536
  }
61537
+ return (_a = findApplicableIndexInfo(getIndexInfosOfStructuredType(t), nameType || getStringLiteralType(ts.unescapeLeadingUnderscores(name)))) === null || _a === void 0 ? void 0 : _a.type;
61506
61538
  }
61507
61539
  return undefined;
61508
- }
61509
- function getTypeOfApplicableIndexInfoOfContextualType(t) {
61510
- var _a;
61511
- if (!(t.flags & 3670016)) {
61512
- return undefined;
61513
- }
61514
- return (_a = findApplicableIndexInfo(getIndexInfosOfStructuredType(t), nameType || getStringLiteralType(ts.unescapeLeadingUnderscores(name)))) === null || _a === void 0 ? void 0 : _a.type;
61515
- }
61540
+ }, true);
61516
61541
  }
61517
61542
  function getContextualTypeForObjectLiteralMethod(node, contextFlags) {
61518
61543
  ts.Debug.assert(ts.isObjectLiteralMethod(node));
@@ -61824,9 +61849,14 @@ var ts;
61824
61849
  if (!isErrorType(intrinsicClassAttribs)) {
61825
61850
  var typeParams = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(intrinsicClassAttribs.symbol);
61826
61851
  var hostClassType = getReturnTypeOfSignature(sig);
61827
- apparentAttributesType = intersectTypes(typeParams
61828
- ? createTypeReference(intrinsicClassAttribs, fillMissingTypeArguments([hostClassType], typeParams, getMinTypeArgumentCount(typeParams), ts.isInJSFile(context)))
61829
- : intrinsicClassAttribs, apparentAttributesType);
61852
+ var libraryManagedAttributeType = void 0;
61853
+ if (typeParams) {
61854
+ var inferredArgs = fillMissingTypeArguments([hostClassType], typeParams, getMinTypeArgumentCount(typeParams), ts.isInJSFile(context));
61855
+ libraryManagedAttributeType = instantiateType(intrinsicClassAttribs, createTypeMapper(typeParams, inferredArgs));
61856
+ }
61857
+ else
61858
+ libraryManagedAttributeType = intrinsicClassAttribs;
61859
+ apparentAttributesType = intersectTypes(libraryManagedAttributeType, apparentAttributesType);
61830
61860
  }
61831
61861
  var intrinsicAttribs = getJsxType(JsxNames.IntrinsicAttributes, context);
61832
61862
  if (!isErrorType(intrinsicAttribs)) {
@@ -61878,7 +61908,7 @@ var ts;
61878
61908
  !leftName ? rightName :
61879
61909
  !rightName ? leftName :
61880
61910
  undefined;
61881
- var paramSymbol = createSymbol(1 | (isOptional && !isRestParam ? 16777216 : 0), paramName || "arg".concat(i));
61911
+ var paramSymbol = createSymbol(1 | (isOptional && !isRestParam ? 16777216 : 0), paramName || "arg" + i);
61882
61912
  paramSymbol.type = isRestParam ? createArrayType(unionParamType) : unionParamType;
61883
61913
  params[i] = paramSymbol;
61884
61914
  }
@@ -62272,15 +62302,26 @@ var ts;
62272
62302
  }
62273
62303
  propertiesArray.push(member);
62274
62304
  }
62275
- if (contextualTypeHasPattern && node.parent.kind !== 298) {
62276
- for (var _d = 0, _e = getPropertiesOfType(contextualType); _d < _e.length; _d++) {
62277
- var prop = _e[_d];
62278
- if (!propertiesTable.get(prop.escapedName) && !getPropertyOfType(spread, prop.escapedName)) {
62279
- if (!(prop.flags & 16777216)) {
62280
- error(prop.valueDeclaration || prop.bindingElement, ts.Diagnostics.Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value);
62305
+ if (contextualTypeHasPattern) {
62306
+ var rootPatternParent_1 = ts.findAncestor(contextualType.pattern.parent, function (n) {
62307
+ return n.kind === 254 ||
62308
+ n.kind === 221 ||
62309
+ n.kind === 164;
62310
+ });
62311
+ var spreadOrOutsideRootObject = ts.findAncestor(node, function (n) {
62312
+ return n === rootPatternParent_1 ||
62313
+ n.kind === 298;
62314
+ });
62315
+ if (spreadOrOutsideRootObject.kind !== 298) {
62316
+ for (var _d = 0, _e = getPropertiesOfType(contextualType); _d < _e.length; _d++) {
62317
+ var prop = _e[_d];
62318
+ if (!propertiesTable.get(prop.escapedName) && !getPropertyOfType(spread, prop.escapedName)) {
62319
+ if (!(prop.flags & 16777216)) {
62320
+ error(prop.valueDeclaration || prop.bindingElement, ts.Diagnostics.Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value);
62321
+ }
62322
+ propertiesTable.set(prop.escapedName, prop);
62323
+ propertiesArray.push(prop);
62281
62324
  }
62282
- propertiesTable.set(prop.escapedName, prop);
62283
- propertiesArray.push(prop);
62284
62325
  }
62285
62326
  }
62286
62327
  }
@@ -65032,11 +65073,13 @@ var ts;
65032
65073
  return false;
65033
65074
  }
65034
65075
  var func = ts.isFunctionDeclaration(node) || ts.isFunctionExpression(node) ? node :
65035
- ts.isVariableDeclaration(node) && node.initializer && ts.isFunctionExpression(node.initializer) ? node.initializer :
65076
+ (ts.isVariableDeclaration(node) || ts.isPropertyAssignment(node)) && node.initializer && ts.isFunctionExpression(node.initializer) ? node.initializer :
65036
65077
  undefined;
65037
65078
  if (func) {
65038
65079
  if (ts.getJSDocClassTag(node))
65039
65080
  return true;
65081
+ if (ts.isPropertyAssignment(ts.walkUpParenthesizedExpressions(func.parent)))
65082
+ return false;
65040
65083
  var symbol = getSymbolOfNode(func);
65041
65084
  return !!((_a = symbol === null || symbol === void 0 ? void 0 : symbol.members) === null || _a === void 0 ? void 0 : _a.size);
65042
65085
  }
@@ -65268,8 +65311,8 @@ var ts;
65268
65311
  if (hasDefaultOnly && type && !isErrorType(type)) {
65269
65312
  var synthType = type;
65270
65313
  if (!synthType.defaultOnlyType) {
65271
- var type_5 = createDefaultPropertyWrapperForModule(symbol, originalSymbol);
65272
- synthType.defaultOnlyType = type_5;
65314
+ var type_4 = createDefaultPropertyWrapperForModule(symbol, originalSymbol);
65315
+ synthType.defaultOnlyType = type_4;
65273
65316
  }
65274
65317
  return synthType.defaultOnlyType;
65275
65318
  }
@@ -70660,7 +70703,7 @@ var ts;
70660
70703
  function getPropertyNameForKnownSymbolName(symbolName) {
70661
70704
  var ctorType = getGlobalESSymbolConstructorSymbol(false);
70662
70705
  var uniqueType = ctorType && getTypeOfPropertyOfType(getTypeOfSymbol(ctorType), ts.escapeLeadingUnderscores(symbolName));
70663
- return uniqueType && isTypeUsableAsPropertyName(uniqueType) ? getPropertyNameFromType(uniqueType) : "__@".concat(symbolName);
70706
+ return uniqueType && isTypeUsableAsPropertyName(uniqueType) ? getPropertyNameFromType(uniqueType) : "__@" + symbolName;
70664
70707
  }
70665
70708
  function getIterationTypesOfIterableSlow(type, resolver, errorNode, errorOutputContainer, noCache) {
70666
70709
  var _a;
@@ -72271,7 +72314,7 @@ var ts;
72271
72314
  var importDeclaration = ts.findAncestor(node, ts.or(ts.isImportDeclaration, ts.isImportEqualsDeclaration));
72272
72315
  var moduleSpecifier = (_e = (importDeclaration && ((_d = ts.tryGetModuleSpecifierFromDeclaration(importDeclaration)) === null || _d === void 0 ? void 0 : _d.text))) !== null && _e !== void 0 ? _e : "...";
72273
72316
  var importedIdentifier = ts.unescapeLeadingUnderscores(ts.isIdentifier(errorNode) ? errorNode.escapedText : symbol.escapedName);
72274
- error(errorNode, ts.Diagnostics._0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation, importedIdentifier, "import(\"".concat(moduleSpecifier, "\").").concat(importedIdentifier));
72317
+ error(errorNode, ts.Diagnostics._0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation, importedIdentifier, "import(\"" + moduleSpecifier + "\")." + importedIdentifier);
72275
72318
  }
72276
72319
  return;
72277
72320
  }
@@ -73393,6 +73436,12 @@ var ts;
73393
73436
  return resolveJSDocMemberName(name, false, getSymbolOfNode(container));
73394
73437
  }
73395
73438
  }
73439
+ if (result && isJSDoc_1) {
73440
+ var container = ts.getJSDocHost(name);
73441
+ if (container && ts.isEnumMember(container) && container === result.valueDeclaration) {
73442
+ return resolveEntityName(name, meaning, true, true, ts.getSourceFileOfNode(container)) || result;
73443
+ }
73444
+ }
73396
73445
  return result;
73397
73446
  }
73398
73447
  else if (ts.isPrivateIdentifier(name)) {
@@ -77208,7 +77257,7 @@ var ts;
77208
77257
  value >= 52 && value < 62 ? 48 + value - 52 :
77209
77258
  value === 62 ? 43 :
77210
77259
  value === 63 ? 47 :
77211
- ts.Debug.fail("".concat(value, ": not a base64 value"));
77260
+ ts.Debug.fail(value + ": not a base64 value");
77212
77261
  }
77213
77262
  function base64FormatDecode(ch) {
77214
77263
  return ch >= 65 && ch <= 90 ? ch - 65 :
@@ -77281,7 +77330,7 @@ var ts;
77281
77330
  var mappings = ts.arrayFrom(decoder, processMapping);
77282
77331
  if (decoder.error !== undefined) {
77283
77332
  if (host.log) {
77284
- host.log("Encountered error while decoding sourcemap: ".concat(decoder.error));
77333
+ host.log("Encountered error while decoding sourcemap: " + decoder.error);
77285
77334
  }
77286
77335
  decodedMappings = ts.emptyArray;
77287
77336
  }
@@ -79368,7 +79417,7 @@ var ts;
79368
79417
  var substitute = typeof constantValue === "string" ? factory.createStringLiteral(constantValue) : factory.createNumericLiteral(constantValue);
79369
79418
  if (!compilerOptions.removeComments) {
79370
79419
  var originalNode = ts.getOriginalNode(node, ts.isAccessExpression);
79371
- ts.addSyntheticTrailingComment(substitute, 3, " ".concat(safeMultiLineComment(ts.getTextOfNode(originalNode)), " "));
79420
+ ts.addSyntheticTrailingComment(substitute, 3, " " + safeMultiLineComment(ts.getTextOfNode(originalNode)) + " ");
79372
79421
  }
79373
79422
  return substitute;
79374
79423
  }
@@ -80620,8 +80669,8 @@ var ts;
80620
80669
  }
80621
80670
  function createHoistedVariableForClass(name, node) {
80622
80671
  var className = getPrivateIdentifierEnvironment().className;
80623
- var prefix = className ? "_".concat(className) : "";
80624
- var identifier = factory.createUniqueName("".concat(prefix, "_").concat(name), 16);
80672
+ var prefix = className ? "_" + className : "";
80673
+ var identifier = factory.createUniqueName(prefix + "_" + name, 16);
80625
80674
  if (resolver.getNodeCheckFlags(node) & 524288) {
80626
80675
  addBlockScopedVariable(identifier);
80627
80676
  }
@@ -82932,7 +82981,7 @@ var ts;
82932
82981
  specifierSourceImports = new ts.Map();
82933
82982
  currentFileState.utilizedImplicitRuntimeImports.set(importSource, specifierSourceImports);
82934
82983
  }
82935
- var generatedName = factory.createUniqueName("_".concat(name), 16 | 32 | 64);
82984
+ var generatedName = factory.createUniqueName("_" + name, 16 | 32 | 64);
82936
82985
  var specifier = factory.createImportSpecifier(false, factory.createIdentifier(name), generatedName);
82937
82986
  generatedName.generatedImportReference = specifier;
82938
82987
  specifierSourceImports.set(name, specifier);
@@ -83880,11 +83929,11 @@ var ts;
83880
83929
  }
83881
83930
  else {
83882
83931
  if (node.kind === 246) {
83883
- labelMarker = "break-".concat(label.escapedText);
83932
+ labelMarker = "break-" + label.escapedText;
83884
83933
  setLabeledJump(convertedLoopState, true, ts.idText(label), labelMarker);
83885
83934
  }
83886
83935
  else {
83887
- labelMarker = "continue-".concat(label.escapedText);
83936
+ labelMarker = "continue-" + label.escapedText;
83888
83937
  setLabeledJump(convertedLoopState, false, ts.idText(label), labelMarker);
83889
83938
  }
83890
83939
  }
@@ -88476,6 +88525,12 @@ var ts;
88476
88525
  case 265:
88477
88526
  ts.Debug.assert(importVariableName !== undefined);
88478
88527
  statements.push(factory.createExpressionStatement(factory.createAssignment(importVariableName, parameterName)));
88528
+ if (ts.hasSyntacticModifier(entry, 1)) {
88529
+ statements.push(factory.createExpressionStatement(factory.createCallExpression(exportFunction, undefined, [
88530
+ factory.createStringLiteral(ts.idText(importVariableName)),
88531
+ parameterName,
88532
+ ])));
88533
+ }
88479
88534
  break;
88480
88535
  case 272:
88481
88536
  ts.Debug.assert(importVariableName !== undefined);
@@ -89539,7 +89594,7 @@ var ts;
89539
89594
  return getTypeAliasDeclarationVisibilityError;
89540
89595
  }
89541
89596
  else {
89542
- return ts.Debug.assertNever(node, "Attempted to set a declaration diagnostic context for unhandled node kind: ".concat(ts.Debug.formatSyntaxKind(node.kind)));
89597
+ return ts.Debug.assertNever(node, "Attempted to set a declaration diagnostic context for unhandled node kind: " + ts.Debug.formatSyntaxKind(node.kind));
89543
89598
  }
89544
89599
  function getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccessibilityResult) {
89545
89600
  if (node.kind === 254 || node.kind === 203) {
@@ -89736,7 +89791,7 @@ var ts;
89736
89791
  ts.Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2 :
89737
89792
  ts.Diagnostics.Parameter_0_of_accessor_has_or_is_using_private_name_1;
89738
89793
  default:
89739
- return ts.Debug.fail("Unknown parent for parameter: ".concat(ts.Debug.formatSyntaxKind(node.parent.kind)));
89794
+ return ts.Debug.fail("Unknown parent for parameter: " + ts.Debug.formatSyntaxKind(node.parent.kind));
89740
89795
  }
89741
89796
  }
89742
89797
  function getTypeParameterConstraintVisibilityError() {
@@ -90443,7 +90498,7 @@ var ts;
90443
90498
  while (ts.length(lateMarkedStatements)) {
90444
90499
  var i = lateMarkedStatements.shift();
90445
90500
  if (!ts.isLateVisibilityPaintedStatement(i)) {
90446
- return ts.Debug.fail("Late replaced statement was found which is not handled by the declaration transformer!: ".concat(ts.Debug.formatSyntaxKind(i.kind)));
90501
+ return ts.Debug.fail("Late replaced statement was found which is not handled by the declaration transformer!: " + ts.Debug.formatSyntaxKind(i.kind));
90447
90502
  }
90448
90503
  var priorNeedsDeclare = needsDeclare;
90449
90504
  needsDeclare = i.parent && ts.isSourceFile(i.parent) && !(ts.isExternalModule(i.parent) && isBundledEmit);
@@ -90608,7 +90663,7 @@ var ts;
90608
90663
  return cleanup(input);
90609
90664
  return cleanup(factory.updateImportTypeNode(input, factory.updateLiteralTypeNode(input.argument, rewriteModuleSpecifier(input, input.argument.literal)), input.assertions, input.qualifier, ts.visitNodes(input.typeArguments, visitDeclarationSubtree, ts.isTypeNode), input.isTypeOf));
90610
90665
  }
90611
- default: ts.Debug.assertNever(input, "Attempted to process unhandled node kind: ".concat(ts.Debug.formatSyntaxKind(input.kind)));
90666
+ default: ts.Debug.assertNever(input, "Attempted to process unhandled node kind: " + ts.Debug.formatSyntaxKind(input.kind));
90612
90667
  }
90613
90668
  }
90614
90669
  if (ts.isTupleTypeNode(input) && (ts.getLineAndCharacterOfPosition(currentSourceFile, input.pos).line === ts.getLineAndCharacterOfPosition(currentSourceFile, input.end).line)) {
@@ -90717,8 +90772,12 @@ var ts;
90717
90772
  }
90718
90773
  var previousNeedsDeclare = needsDeclare;
90719
90774
  switch (input.kind) {
90720
- case 259:
90721
- return cleanup(factory.updateTypeAliasDeclaration(input, ensureModifiers(input), input.name, ts.visitNodes(input.typeParameters, visitDeclarationSubtree, ts.isTypeParameterDeclaration), ts.visitNode(input.type, visitDeclarationSubtree, ts.isTypeNode)));
90775
+ case 259: {
90776
+ needsDeclare = false;
90777
+ var clean = cleanup(factory.updateTypeAliasDeclaration(input, ensureModifiers(input), input.name, ts.visitNodes(input.typeParameters, visitDeclarationSubtree, ts.isTypeParameterDeclaration), ts.visitNode(input.type, visitDeclarationSubtree, ts.isTypeNode)));
90778
+ needsDeclare = previousNeedsDeclare;
90779
+ return clean;
90780
+ }
90722
90781
  case 258: {
90723
90782
  return cleanup(factory.updateInterfaceDeclaration(input, ensureModifiers(input), input.name, ensureTypeParams(input, input.typeParameters), transformHeritageClauses(input.heritageClauses), ts.visitNodes(input.members, visitDeclarationSubtree)));
90724
90783
  }
@@ -90858,7 +90917,7 @@ var ts;
90858
90917
  var extendsClause_1 = ts.getEffectiveBaseTypeNode(input);
90859
90918
  if (extendsClause_1 && !ts.isEntityNameExpression(extendsClause_1.expression) && extendsClause_1.expression.kind !== 104) {
90860
90919
  var oldId = input.name ? ts.unescapeLeadingUnderscores(input.name.escapedText) : "default";
90861
- var newId_1 = factory.createUniqueName("".concat(oldId, "_base"), 16);
90920
+ var newId_1 = factory.createUniqueName(oldId + "_base", 16);
90862
90921
  getSymbolAccessibilityDiagnostic = function () { return ({
90863
90922
  diagnosticMessage: ts.Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1,
90864
90923
  errorNode: extendsClause_1,
@@ -90895,7 +90954,7 @@ var ts;
90895
90954
  }))));
90896
90955
  }
90897
90956
  }
90898
- return ts.Debug.assertNever(input, "Unhandled top-level node in declaration emit: ".concat(ts.Debug.formatSyntaxKind(input.kind)));
90957
+ return ts.Debug.assertNever(input, "Unhandled top-level node in declaration emit: " + ts.Debug.formatSyntaxKind(input.kind));
90899
90958
  function cleanup(node) {
90900
90959
  if (isEnclosingDeclaration(input)) {
90901
90960
  enclosingDeclaration = previousEnclosingDeclaration;
@@ -91665,13 +91724,13 @@ var ts;
91665
91724
  if (ts.fileExtensionIs(inputFileName, ".json"))
91666
91725
  return;
91667
91726
  if (js && configFile.options.sourceMap) {
91668
- addOutput("".concat(js, ".map"));
91727
+ addOutput(js + ".map");
91669
91728
  }
91670
91729
  if (ts.getEmitDeclarations(configFile.options)) {
91671
91730
  var dts = getOutputDeclarationFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory);
91672
91731
  addOutput(dts);
91673
91732
  if (configFile.options.declarationMap) {
91674
- addOutput("".concat(dts, ".map"));
91733
+ addOutput(dts + ".map");
91675
91734
  }
91676
91735
  }
91677
91736
  }
@@ -91731,7 +91790,7 @@ var ts;
91731
91790
  function getFirstProjectOutput(configFile, ignoreCase) {
91732
91791
  if (ts.outFile(configFile.options)) {
91733
91792
  var jsFilePath = getOutputPathsForBundle(configFile.options, false).jsFilePath;
91734
- return ts.Debug.checkDefined(jsFilePath, "project ".concat(configFile.options.configFilePath, " expected to have at least one output"));
91793
+ return ts.Debug.checkDefined(jsFilePath, "project " + configFile.options.configFilePath + " expected to have at least one output");
91735
91794
  }
91736
91795
  var getCommonSourceDirectory = ts.memoize(function () { return getCommonSourceDirectoryOfConfig(configFile, ignoreCase); });
91737
91796
  for (var _a = 0, _b = configFile.fileNames; _a < _b.length; _a++) {
@@ -91750,7 +91809,7 @@ var ts;
91750
91809
  var buildInfoPath = getTsBuildInfoEmitOutputFilePath(configFile.options);
91751
91810
  if (buildInfoPath)
91752
91811
  return buildInfoPath;
91753
- return ts.Debug.fail("project ".concat(configFile.options.configFilePath, " expected to have at least one output"));
91812
+ return ts.Debug.fail("project " + configFile.options.configFilePath + " expected to have at least one output");
91754
91813
  }
91755
91814
  ts.getFirstProjectOutput = getFirstProjectOutput;
91756
91815
  function emitFiles(resolver, host, targetSourceFile, _a, emitOnlyDtsFiles, onlyBuildInfo, forceDtsEmit) {
@@ -91958,7 +92017,7 @@ var ts;
91958
92017
  if (!writer.isAtStartOfLine())
91959
92018
  writer.rawWrite(newLine);
91960
92019
  sourceMapUrlPos = writer.getTextPos();
91961
- writer.writeComment("//# ".concat("sourceMappingURL", "=").concat(sourceMappingURL));
92020
+ writer.writeComment("//# " + "sourceMappingURL" + "=" + sourceMappingURL);
91962
92021
  }
91963
92022
  if (sourceMapFilePath) {
91964
92023
  var sourceMap = sourceMapGenerator.toString();
@@ -92003,7 +92062,7 @@ var ts;
92003
92062
  if (mapOptions.inlineSourceMap) {
92004
92063
  var sourceMapText = sourceMapGenerator.toString();
92005
92064
  var base64SourceMapText = ts.base64encode(ts.sys, sourceMapText);
92006
- return "data:application/json;base64,".concat(base64SourceMapText);
92065
+ return "data:application/json;base64," + base64SourceMapText;
92007
92066
  }
92008
92067
  var sourceMapFile = ts.getBaseFileName(ts.normalizeSlashes(ts.Debug.checkDefined(sourceMapFilePath)));
92009
92068
  if (mapOptions.mapRoot) {
@@ -92027,8 +92086,8 @@ var ts;
92027
92086
  return JSON.stringify(buildInfo);
92028
92087
  }
92029
92088
  ts.getBuildInfoText = getBuildInfoText;
92030
- function getBuildInfo(buildInfoText) {
92031
- return JSON.parse(buildInfoText);
92089
+ function getBuildInfo(buildInfoFile, buildInfoText) {
92090
+ return ts.readJsonOrUndefined(buildInfoFile, buildInfoText);
92032
92091
  }
92033
92092
  ts.getBuildInfo = getBuildInfo;
92034
92093
  ts.notImplementedResolver = {
@@ -92102,17 +92161,16 @@ var ts;
92102
92161
  var _a = getOutputPathsForBundle(config.options, false), buildInfoPath = _a.buildInfoPath, jsFilePath = _a.jsFilePath, sourceMapFilePath = _a.sourceMapFilePath, declarationFilePath = _a.declarationFilePath, declarationMapPath = _a.declarationMapPath;
92103
92162
  var buildInfo;
92104
92163
  if (host.getBuildInfo) {
92105
- var hostBuildInfo = host.getBuildInfo(buildInfoPath, config.options.configFilePath);
92106
- if (!hostBuildInfo)
92107
- return buildInfoPath;
92108
- buildInfo = hostBuildInfo;
92164
+ buildInfo = host.getBuildInfo(buildInfoPath, config.options.configFilePath);
92109
92165
  }
92110
92166
  else {
92111
92167
  var buildInfoText = host.readFile(buildInfoPath);
92112
92168
  if (!buildInfoText)
92113
92169
  return buildInfoPath;
92114
- buildInfo = getBuildInfo(buildInfoText);
92170
+ buildInfo = getBuildInfo(buildInfoPath, buildInfoText);
92115
92171
  }
92172
+ if (!buildInfo)
92173
+ return buildInfoPath;
92116
92174
  if (!buildInfo.bundle || !buildInfo.bundle.js || (declarationFilePath && !buildInfo.bundle.dts))
92117
92175
  return buildInfoPath;
92118
92176
  var jsFileText = host.readFile(ts.Debug.checkDefined(jsFilePath));
@@ -92192,7 +92250,7 @@ var ts;
92192
92250
  return;
92193
92251
  break;
92194
92252
  default:
92195
- ts.Debug.fail("Unexpected path: ".concat(name));
92253
+ ts.Debug.fail("Unexpected path: " + name);
92196
92254
  }
92197
92255
  outputFiles.push({ name: name, text: text, writeByteOrderMark: writeByteOrderMark });
92198
92256
  },
@@ -93006,7 +93064,7 @@ var ts;
93006
93064
  return writeTokenNode(node, writeKeyword);
93007
93065
  if (ts.isTokenKind(node.kind))
93008
93066
  return writeTokenNode(node, writePunctuation);
93009
- ts.Debug.fail("Unhandled SyntaxKind: ".concat(ts.Debug.formatSyntaxKind(node.kind), "."));
93067
+ ts.Debug.fail("Unhandled SyntaxKind: " + ts.Debug.formatSyntaxKind(node.kind) + ".");
93010
93068
  }
93011
93069
  function emitMappedTypeParameter(node) {
93012
93070
  emit(node.name);
@@ -93146,14 +93204,14 @@ var ts;
93146
93204
  }
93147
93205
  }
93148
93206
  function emitPlaceholder(hint, node, snippet) {
93149
- nonEscapingWrite("${".concat(snippet.order, ":"));
93207
+ nonEscapingWrite("${" + snippet.order + ":");
93150
93208
  pipelineEmitWithHintWorker(hint, node, false);
93151
93209
  nonEscapingWrite("}");
93152
93210
  }
93153
93211
  function emitTabStop(hint, node, snippet) {
93154
- ts.Debug.assert(node.kind === 236, "A tab stop cannot be attached to a node of kind ".concat(ts.Debug.formatSyntaxKind(node.kind), "."));
93212
+ ts.Debug.assert(node.kind === 236, "A tab stop cannot be attached to a node of kind " + ts.Debug.formatSyntaxKind(node.kind) + ".");
93155
93213
  ts.Debug.assert(hint !== 5, "A tab stop cannot be attached to an embedded statement.");
93156
- nonEscapingWrite("$".concat(snippet.order));
93214
+ nonEscapingWrite("$" + snippet.order);
93157
93215
  }
93158
93216
  function emitIdentifier(node) {
93159
93217
  var writeText = node.symbol ? writeSymbol : write;
@@ -94812,17 +94870,17 @@ var ts;
94812
94870
  writeLine();
94813
94871
  }
94814
94872
  if (currentSourceFile && currentSourceFile.moduleName) {
94815
- writeComment("/// <amd-module name=\"".concat(currentSourceFile.moduleName, "\" />"));
94873
+ writeComment("/// <amd-module name=\"" + currentSourceFile.moduleName + "\" />");
94816
94874
  writeLine();
94817
94875
  }
94818
94876
  if (currentSourceFile && currentSourceFile.amdDependencies) {
94819
94877
  for (var _a = 0, _b = currentSourceFile.amdDependencies; _a < _b.length; _a++) {
94820
94878
  var dep = _b[_a];
94821
94879
  if (dep.name) {
94822
- writeComment("/// <amd-dependency name=\"".concat(dep.name, "\" path=\"").concat(dep.path, "\" />"));
94880
+ writeComment("/// <amd-dependency name=\"" + dep.name + "\" path=\"" + dep.path + "\" />");
94823
94881
  }
94824
94882
  else {
94825
- writeComment("/// <amd-dependency path=\"".concat(dep.path, "\" />"));
94883
+ writeComment("/// <amd-dependency path=\"" + dep.path + "\" />");
94826
94884
  }
94827
94885
  writeLine();
94828
94886
  }
@@ -94830,7 +94888,7 @@ var ts;
94830
94888
  for (var _c = 0, files_2 = files; _c < files_2.length; _c++) {
94831
94889
  var directive = files_2[_c];
94832
94890
  var pos = writer.getTextPos();
94833
- writeComment("/// <reference path=\"".concat(directive.fileName, "\" />"));
94891
+ writeComment("/// <reference path=\"" + directive.fileName + "\" />");
94834
94892
  if (bundleFileInfo)
94835
94893
  bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "reference", data: directive.fileName });
94836
94894
  writeLine();
@@ -94839,9 +94897,9 @@ var ts;
94839
94897
  var directive = types_23[_d];
94840
94898
  var pos = writer.getTextPos();
94841
94899
  var resolutionMode = directive.resolutionMode && directive.resolutionMode !== (currentSourceFile === null || currentSourceFile === void 0 ? void 0 : currentSourceFile.impliedNodeFormat)
94842
- ? "resolution-mode=\"".concat(directive.resolutionMode === ts.ModuleKind.ESNext ? "import" : "require", "\"")
94900
+ ? "resolution-mode=\"" + (directive.resolutionMode === ts.ModuleKind.ESNext ? "import" : "require") + "\""
94843
94901
  : "";
94844
- writeComment("/// <reference types=\"".concat(directive.fileName, "\" ").concat(resolutionMode, "/>"));
94902
+ writeComment("/// <reference types=\"" + directive.fileName + "\" " + resolutionMode + "/>");
94845
94903
  if (bundleFileInfo)
94846
94904
  bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: !directive.resolutionMode ? "type" : directive.resolutionMode === ts.ModuleKind.ESNext ? "type-import" : "type-require", data: directive.fileName });
94847
94905
  writeLine();
@@ -94849,7 +94907,7 @@ var ts;
94849
94907
  for (var _e = 0, libs_1 = libs; _e < libs_1.length; _e++) {
94850
94908
  var directive = libs_1[_e];
94851
94909
  var pos = writer.getTextPos();
94852
- writeComment("/// <reference lib=\"".concat(directive.fileName, "\" />"));
94910
+ writeComment("/// <reference lib=\"" + directive.fileName + "\" />");
94853
94911
  if (bundleFileInfo)
94854
94912
  bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "lib", data: directive.fileName });
94855
94913
  writeLine();
@@ -95576,9 +95634,9 @@ var ts;
95576
95634
  var textSourceNode = node.textSourceNode;
95577
95635
  if (ts.isIdentifier(textSourceNode) || ts.isNumericLiteral(textSourceNode)) {
95578
95636
  var text = ts.isNumericLiteral(textSourceNode) ? textSourceNode.text : getTextOfNode(textSourceNode);
95579
- return jsxAttributeEscape ? "\"".concat(ts.escapeJsxAttributeString(text), "\"") :
95580
- neverAsciiEscape || (ts.getEmitFlags(node) & 16777216) ? "\"".concat(ts.escapeString(text), "\"") :
95581
- "\"".concat(ts.escapeNonAsciiString(text), "\"");
95637
+ return jsxAttributeEscape ? "\"" + ts.escapeJsxAttributeString(text) + "\"" :
95638
+ neverAsciiEscape || (ts.getEmitFlags(node) & 16777216) ? "\"" + ts.escapeString(text) + "\"" :
95639
+ "\"" + ts.escapeNonAsciiString(text) + "\"";
95582
95640
  }
95583
95641
  else {
95584
95642
  return getLiteralTextOfNode(textSourceNode, neverAsciiEscape, jsxAttributeEscape);
@@ -95981,8 +96039,8 @@ var ts;
95981
96039
  }
95982
96040
  function formatSynthesizedComment(comment) {
95983
96041
  return comment.kind === 3
95984
- ? "/*".concat(comment.text, "*/")
95985
- : "//".concat(comment.text);
96042
+ ? "/*" + comment.text + "*/"
96043
+ : "//" + comment.text;
95986
96044
  }
95987
96045
  function emitBodyWithDetachedComments(node, detachedRange, emitCallback) {
95988
96046
  enterComment();
@@ -96356,7 +96414,15 @@ var ts;
96356
96414
  return cachedReadDirectoryResult.get(ts.ensureTrailingDirectorySeparator(rootDirPath));
96357
96415
  }
96358
96416
  function getCachedFileSystemEntriesForBaseDir(path) {
96359
- return getCachedFileSystemEntries(ts.getDirectoryPath(path));
96417
+ var entries = getCachedFileSystemEntries(ts.getDirectoryPath(path));
96418
+ if (!entries) {
96419
+ return entries;
96420
+ }
96421
+ if (!entries.sortedAndCanonicalizedFiles) {
96422
+ entries.sortedAndCanonicalizedFiles = entries.files.map(getCanonicalFileName).sort();
96423
+ entries.sortedAndCanonicalizedDirectories = entries.directories.map(getCanonicalFileName).sort();
96424
+ }
96425
+ return entries;
96360
96426
  }
96361
96427
  function getBaseNameOfFileName(fileName) {
96362
96428
  return ts.getBaseFileName(ts.normalizePath(fileName));
@@ -96391,21 +96457,9 @@ var ts;
96391
96457
  return undefined;
96392
96458
  }
96393
96459
  }
96394
- function fileNameEqual(name1, name2) {
96395
- return getCanonicalFileName(name1) === getCanonicalFileName(name2);
96396
- }
96397
96460
  function hasEntry(entries, name) {
96398
- return ts.some(entries, function (file) { return fileNameEqual(file, name); });
96399
- }
96400
- function updateFileSystemEntry(entries, baseName, isValid) {
96401
- if (hasEntry(entries, baseName)) {
96402
- if (!isValid) {
96403
- return ts.filterMutate(entries, function (entry) { return !fileNameEqual(entry, baseName); });
96404
- }
96405
- }
96406
- else if (isValid) {
96407
- return entries.push(baseName);
96408
- }
96461
+ var index = ts.binarySearch(entries, name, ts.identity, ts.compareStringsCaseSensitive);
96462
+ return index >= 0;
96409
96463
  }
96410
96464
  function writeFile(fileName, data, writeByteOrderMark) {
96411
96465
  var path = toPath(fileName);
@@ -96418,7 +96472,7 @@ var ts;
96418
96472
  function fileExists(fileName) {
96419
96473
  var path = toPath(fileName);
96420
96474
  var result = getCachedFileSystemEntriesForBaseDir(path);
96421
- return result && hasEntry(result.files, getBaseNameOfFileName(fileName)) ||
96475
+ return result && hasEntry(result.sortedAndCanonicalizedFiles, getCanonicalFileName(getBaseNameOfFileName(fileName))) ||
96422
96476
  host.fileExists(fileName);
96423
96477
  }
96424
96478
  function directoryExists(dirPath) {
@@ -96428,9 +96482,13 @@ var ts;
96428
96482
  function createDirectory(dirPath) {
96429
96483
  var path = toPath(dirPath);
96430
96484
  var result = getCachedFileSystemEntriesForBaseDir(path);
96431
- var baseFileName = getBaseNameOfFileName(dirPath);
96432
96485
  if (result) {
96433
- updateFileSystemEntry(result.directories, baseFileName, true);
96486
+ var baseName = getBaseNameOfFileName(dirPath);
96487
+ var canonicalizedBaseName = getCanonicalFileName(baseName);
96488
+ var canonicalizedDirectories = result.sortedAndCanonicalizedDirectories;
96489
+ if (ts.insertSorted(canonicalizedDirectories, canonicalizedBaseName, ts.compareStringsCaseSensitive)) {
96490
+ result.directories.push(baseName);
96491
+ }
96434
96492
  }
96435
96493
  host.createDirectory(dirPath);
96436
96494
  }
@@ -96494,7 +96552,7 @@ var ts;
96494
96552
  fileExists: host.fileExists(fileOrDirectoryPath),
96495
96553
  directoryExists: host.directoryExists(fileOrDirectoryPath)
96496
96554
  };
96497
- if (fsQueryResult.directoryExists || hasEntry(parentResult.directories, baseName)) {
96555
+ if (fsQueryResult.directoryExists || hasEntry(parentResult.sortedAndCanonicalizedDirectories, getCanonicalFileName(baseName))) {
96498
96556
  clearCache();
96499
96557
  }
96500
96558
  else {
@@ -96512,7 +96570,21 @@ var ts;
96512
96570
  }
96513
96571
  }
96514
96572
  function updateFilesOfFileSystemEntry(parentResult, baseName, fileExists) {
96515
- updateFileSystemEntry(parentResult.files, baseName, fileExists);
96573
+ var canonicalizedFiles = parentResult.sortedAndCanonicalizedFiles;
96574
+ var canonicalizedBaseName = getCanonicalFileName(baseName);
96575
+ if (fileExists) {
96576
+ if (ts.insertSorted(canonicalizedFiles, canonicalizedBaseName, ts.compareStringsCaseSensitive)) {
96577
+ parentResult.files.push(baseName);
96578
+ }
96579
+ }
96580
+ else {
96581
+ var sortedIndex = ts.binarySearch(canonicalizedFiles, canonicalizedBaseName, ts.identity, ts.compareStringsCaseSensitive);
96582
+ if (sortedIndex >= 0) {
96583
+ canonicalizedFiles.splice(sortedIndex, 1);
96584
+ var unsortedIndex = parentResult.files.findIndex(function (entry) { return getCanonicalFileName(entry) === canonicalizedBaseName; });
96585
+ parentResult.files.splice(unsortedIndex, 1);
96586
+ }
96587
+ }
96516
96588
  }
96517
96589
  function clearCache() {
96518
96590
  cachedReadDirectoryResult.clear();
@@ -96616,18 +96688,18 @@ var ts;
96616
96688
  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;
96617
96689
  var newPath = ts.removeIgnoredPath(fileOrDirectoryPath);
96618
96690
  if (!newPath) {
96619
- writeLog("Project: ".concat(configFileName, " Detected ignored path: ").concat(fileOrDirectory));
96691
+ writeLog("Project: " + configFileName + " Detected ignored path: " + fileOrDirectory);
96620
96692
  return true;
96621
96693
  }
96622
96694
  fileOrDirectoryPath = newPath;
96623
96695
  if (fileOrDirectoryPath === watchedDirPath)
96624
96696
  return false;
96625
96697
  if (ts.hasExtension(fileOrDirectoryPath) && !ts.isSupportedSourceFileName(fileOrDirectory, options, extraFileExtensions)) {
96626
- writeLog("Project: ".concat(configFileName, " Detected file add/remove of non supported extension: ").concat(fileOrDirectory));
96698
+ writeLog("Project: " + configFileName + " Detected file add/remove of non supported extension: " + fileOrDirectory);
96627
96699
  return true;
96628
96700
  }
96629
96701
  if (ts.isExcludedFile(fileOrDirectory, options.configFile.configFileSpecs, ts.getNormalizedAbsolutePath(ts.getDirectoryPath(configFileName), currentDirectory), useCaseSensitiveFileNames, currentDirectory)) {
96630
- writeLog("Project: ".concat(configFileName, " Detected excluded file: ").concat(fileOrDirectory));
96702
+ writeLog("Project: " + configFileName + " Detected excluded file: " + fileOrDirectory);
96631
96703
  return true;
96632
96704
  }
96633
96705
  if (!program)
@@ -96646,7 +96718,7 @@ var ts;
96646
96718
  var builderProgram = !realProgram && !ts.isArray(program) ? program : undefined;
96647
96719
  if (hasSourceFile((filePathWithoutExtension + ".ts")) ||
96648
96720
  hasSourceFile((filePathWithoutExtension + ".tsx"))) {
96649
- writeLog("Project: ".concat(configFileName, " Detected output file: ").concat(fileOrDirectory));
96721
+ writeLog("Project: " + configFileName + " Detected output file: " + fileOrDirectory);
96650
96722
  return true;
96651
96723
  }
96652
96724
  return false;
@@ -96714,36 +96786,36 @@ var ts;
96714
96786
  host.useCaseSensitiveFileNames();
96715
96787
  }
96716
96788
  function createExcludeWatcherWithLogging(file, flags, options, detailInfo1, detailInfo2) {
96717
- log("ExcludeWatcher:: Added:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo)));
96789
+ log("ExcludeWatcher:: Added:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
96718
96790
  return {
96719
- close: function () { return log("ExcludeWatcher:: Close:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo))); }
96791
+ close: function () { return log("ExcludeWatcher:: Close:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo)); }
96720
96792
  };
96721
96793
  }
96722
96794
  function createFileWatcherWithLogging(file, cb, flags, options, detailInfo1, detailInfo2) {
96723
- log("FileWatcher:: Added:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo)));
96795
+ log("FileWatcher:: Added:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
96724
96796
  var watcher = triggerInvokingFactory.watchFile(file, cb, flags, options, detailInfo1, detailInfo2);
96725
96797
  return {
96726
96798
  close: function () {
96727
- log("FileWatcher:: Close:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo)));
96799
+ log("FileWatcher:: Close:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
96728
96800
  watcher.close();
96729
96801
  }
96730
96802
  };
96731
96803
  }
96732
96804
  function createDirectoryWatcherWithLogging(file, cb, flags, options, detailInfo1, detailInfo2) {
96733
- var watchInfo = "DirectoryWatcher:: Added:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
96805
+ var watchInfo = "DirectoryWatcher:: Added:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo);
96734
96806
  log(watchInfo);
96735
96807
  var start = ts.timestamp();
96736
96808
  var watcher = triggerInvokingFactory.watchDirectory(file, cb, flags, options, detailInfo1, detailInfo2);
96737
96809
  var elapsed = ts.timestamp() - start;
96738
- log("Elapsed:: ".concat(elapsed, "ms ").concat(watchInfo));
96810
+ log("Elapsed:: " + elapsed + "ms " + watchInfo);
96739
96811
  return {
96740
96812
  close: function () {
96741
- var watchInfo = "DirectoryWatcher:: Close:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
96813
+ var watchInfo = "DirectoryWatcher:: Close:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo);
96742
96814
  log(watchInfo);
96743
96815
  var start = ts.timestamp();
96744
96816
  watcher.close();
96745
96817
  var elapsed = ts.timestamp() - start;
96746
- log("Elapsed:: ".concat(elapsed, "ms ").concat(watchInfo));
96818
+ log("Elapsed:: " + elapsed + "ms " + watchInfo);
96747
96819
  }
96748
96820
  };
96749
96821
  }
@@ -96753,16 +96825,16 @@ var ts;
96753
96825
  for (var _i = 0; _i < arguments.length; _i++) {
96754
96826
  args[_i] = arguments[_i];
96755
96827
  }
96756
- 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));
96828
+ var triggerredInfo = (key === "watchFile" ? "FileWatcher" : "DirectoryWatcher") + ":: Triggered with " + args[0] + " " + (args[1] !== undefined ? args[1] : "") + ":: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo);
96757
96829
  log(triggerredInfo);
96758
96830
  var start = ts.timestamp();
96759
96831
  cb.call.apply(cb, __spreadArray([undefined], args, false));
96760
96832
  var elapsed = ts.timestamp() - start;
96761
- log("Elapsed:: ".concat(elapsed, "ms ").concat(triggerredInfo));
96833
+ log("Elapsed:: " + elapsed + "ms " + triggerredInfo);
96762
96834
  }, flags, options, detailInfo1, detailInfo2); };
96763
96835
  }
96764
96836
  function getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo) {
96765
- return "WatchInfo: ".concat(file, " ").concat(flags, " ").concat(JSON.stringify(options), " ").concat(getDetailWatchInfo ? getDetailWatchInfo(detailInfo1, detailInfo2) : detailInfo2 === undefined ? detailInfo1 : "".concat(detailInfo1, " ").concat(detailInfo2));
96837
+ return "WatchInfo: " + file + " " + flags + " " + JSON.stringify(options) + " " + (getDetailWatchInfo ? getDetailWatchInfo(detailInfo1, detailInfo2) : detailInfo2 === undefined ? detailInfo1 : detailInfo1 + " " + detailInfo2);
96766
96838
  }
96767
96839
  }
96768
96840
  ts.getWatchFactory = getWatchFactory;
@@ -97029,12 +97101,12 @@ var ts;
97029
97101
  }
97030
97102
  ts.formatDiagnostics = formatDiagnostics;
97031
97103
  function formatDiagnostic(diagnostic, host) {
97032
- var errorMessage = "".concat(ts.diagnosticCategoryName(diagnostic), " TS").concat(diagnostic.code, ": ").concat(flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine())).concat(host.getNewLine());
97104
+ var errorMessage = ts.diagnosticCategoryName(diagnostic) + " TS" + diagnostic.code + ": " + flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine()) + host.getNewLine();
97033
97105
  if (diagnostic.file) {
97034
97106
  var _a = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start), line = _a.line, character = _a.character;
97035
97107
  var fileName = diagnostic.file.fileName;
97036
97108
  var relativeFileName = ts.convertToRelativePath(fileName, host.getCurrentDirectory(), function (fileName) { return host.getCanonicalFileName(fileName); });
97037
- return "".concat(relativeFileName, "(").concat(line + 1, ",").concat(character + 1, "): ") + errorMessage;
97109
+ return relativeFileName + "(" + (line + 1) + "," + (character + 1) + "): " + errorMessage;
97038
97110
  }
97039
97111
  return errorMessage;
97040
97112
  }
@@ -97112,9 +97184,9 @@ var ts;
97112
97184
  var output = "";
97113
97185
  output += color(relativeFileName, ForegroundColorEscapeSequences.Cyan);
97114
97186
  output += ":";
97115
- output += color("".concat(firstLine + 1), ForegroundColorEscapeSequences.Yellow);
97187
+ output += color("" + (firstLine + 1), ForegroundColorEscapeSequences.Yellow);
97116
97188
  output += ":";
97117
- output += color("".concat(firstLineChar + 1), ForegroundColorEscapeSequences.Yellow);
97189
+ output += color("" + (firstLineChar + 1), ForegroundColorEscapeSequences.Yellow);
97118
97190
  return output;
97119
97191
  }
97120
97192
  ts.formatLocation = formatLocation;
@@ -97128,7 +97200,7 @@ var ts;
97128
97200
  output += " - ";
97129
97201
  }
97130
97202
  output += formatColorAndReset(ts.diagnosticCategoryName(diagnostic), getCategoryFormat(diagnostic.category));
97131
- output += formatColorAndReset(" TS".concat(diagnostic.code, ": "), ForegroundColorEscapeSequences.Grey);
97203
+ output += formatColorAndReset(" TS" + diagnostic.code + ": ", ForegroundColorEscapeSequences.Grey);
97132
97204
  output += flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine());
97133
97205
  if (diagnostic.file) {
97134
97206
  output += host.getNewLine();
@@ -97189,7 +97261,7 @@ var ts;
97189
97261
  var result = void 0;
97190
97262
  var mode = getModeForFileReference(name, containingFileMode);
97191
97263
  var strName = ts.isString(name) ? name : name.fileName.toLowerCase();
97192
- var cacheKey = mode !== undefined ? "".concat(mode, "|").concat(strName) : strName;
97264
+ var cacheKey = mode !== undefined ? mode + "|" + strName : strName;
97193
97265
  if (cache.has(cacheKey)) {
97194
97266
  result = cache.get(cacheKey);
97195
97267
  }
@@ -97284,7 +97356,7 @@ var ts;
97284
97356
  var result = void 0;
97285
97357
  var mode = getModeForResolutionAtIndex(containingFile, i);
97286
97358
  i++;
97287
- var cacheKey = mode !== undefined ? "".concat(mode, "|").concat(name) : name;
97359
+ var cacheKey = mode !== undefined ? mode + "|" + name : name;
97288
97360
  if (cache.has(cacheKey)) {
97289
97361
  result = cache.get(cacheKey);
97290
97362
  }
@@ -99228,7 +99300,7 @@ var ts;
99228
99300
  path += (i === 2 ? "/" : "-") + components[i];
99229
99301
  i++;
99230
99302
  }
99231
- var resolveFrom = ts.combinePaths(currentDirectory, "__lib_node_modules_lookup_".concat(libFileName, "__.ts"));
99303
+ var resolveFrom = ts.combinePaths(currentDirectory, "__lib_node_modules_lookup_" + libFileName + "__.ts");
99232
99304
  var localOverrideModuleResult = ts.resolveModuleName("@typescript/lib-" + path, resolveFrom, { moduleResolution: ts.ModuleResolutionKind.NodeJs }, host, moduleResolutionCache);
99233
99305
  if (localOverrideModuleResult === null || localOverrideModuleResult === void 0 ? void 0 : localOverrideModuleResult.resolvedModule) {
99234
99306
  return localOverrideModuleResult.resolvedModule.resolvedFileName;
@@ -99982,10 +100054,10 @@ var ts;
99982
100054
  }
99983
100055
  function directoryExistsIfProjectReferenceDeclDir(dir) {
99984
100056
  var dirPath = host.toPath(dir);
99985
- var dirPathWithTrailingDirectorySeparator = "".concat(dirPath).concat(ts.directorySeparator);
100057
+ var dirPathWithTrailingDirectorySeparator = "" + dirPath + ts.directorySeparator;
99986
100058
  return ts.forEachKey(setOfDeclarationDirectories, function (declDirPath) { return dirPath === declDirPath ||
99987
100059
  ts.startsWith(declDirPath, dirPathWithTrailingDirectorySeparator) ||
99988
- ts.startsWith(dirPath, "".concat(declDirPath, "/")); });
100060
+ ts.startsWith(dirPath, declDirPath + "/"); });
99989
100061
  }
99990
100062
  function handleDirectoryCouldBeSymlink(directory) {
99991
100063
  var _a;
@@ -100033,7 +100105,7 @@ var ts;
100033
100105
  var result = fileOrDirectoryExistsUsingSource(fileOrDirectoryPath.replace(directoryPath, symlinkedDirectory.realPath));
100034
100106
  if (isFile && result) {
100035
100107
  var absolutePath = ts.getNormalizedAbsolutePath(fileOrDirectory, host.compilerHost.getCurrentDirectory());
100036
- symlinkCache.setSymlinkedFile(fileOrDirectoryPath, "".concat(symlinkedDirectory.real).concat(absolutePath.replace(new RegExp(directoryPath, "i"), "")));
100108
+ symlinkCache.setSymlinkedFile(fileOrDirectoryPath, "" + symlinkedDirectory.real + absolutePath.replace(new RegExp(directoryPath, "i"), ""));
100037
100109
  }
100038
100110
  return result;
100039
100111
  }) || false;
@@ -100394,7 +100466,7 @@ var ts;
100394
100466
  var latestSignature;
100395
100467
  if (!sourceFile.isDeclarationFile && !useFileVersionAsSignature) {
100396
100468
  programOfThisState.emit(sourceFile, function (fileName, text, _writeByteOrderMark, _onError, sourceFiles, data) {
100397
- ts.Debug.assert(ts.isDeclarationFileName(fileName), "File extension for signature expected to be dts: Got:: ".concat(fileName));
100469
+ ts.Debug.assert(ts.isDeclarationFileName(fileName), "File extension for signature expected to be dts: Got:: " + fileName);
100398
100470
  latestSignature = ts.computeSignatureWithDiagnostics(sourceFile, text, computeHash, getCanonicalFileName, data);
100399
100471
  if (latestSignature !== prevSignature) {
100400
100472
  updateExportedModules(state, sourceFile, sourceFiles[0].exportedModulesFromDeclarationEmit);
@@ -101161,7 +101233,7 @@ var ts;
101161
101233
  var sourceFileDirectory;
101162
101234
  if ((_a = data === null || data === void 0 ? void 0 : data.diagnostics) === null || _a === void 0 ? void 0 : _a.length) {
101163
101235
  text += data.diagnostics.map(function (diagnostic) {
101164
- return "".concat(locationInfo(diagnostic)).concat(ts.DiagnosticCategory[diagnostic.category]).concat(diagnostic.code, ": ").concat(flattenDiagnosticMessageText(diagnostic.messageText));
101236
+ return "" + locationInfo(diagnostic) + ts.DiagnosticCategory[diagnostic.category] + diagnostic.code + ": " + flattenDiagnosticMessageText(diagnostic.messageText);
101165
101237
  }).join("\n");
101166
101238
  }
101167
101239
  return (computeHash !== null && computeHash !== void 0 ? computeHash : ts.generateDjb2Hash)(text);
@@ -101176,10 +101248,10 @@ var ts;
101176
101248
  }
101177
101249
  function locationInfo(diagnostic) {
101178
101250
  if (diagnostic.file.resolvedPath === sourceFile.resolvedPath)
101179
- return "(".concat(diagnostic.start, ",").concat(diagnostic.length, ")");
101251
+ return "(" + diagnostic.start + "," + diagnostic.length + ")";
101180
101252
  if (sourceFileDirectory === undefined)
101181
101253
  sourceFileDirectory = ts.getDirectoryPath(sourceFile.resolvedPath);
101182
- return "".concat(ts.ensurePathIsNonModuleName(ts.getRelativePathFromDirectory(sourceFileDirectory, diagnostic.file.resolvedPath, getCanonicalFileName)), "(").concat(diagnostic.start, ",").concat(diagnostic.length, ")");
101254
+ return ts.ensurePathIsNonModuleName(ts.getRelativePathFromDirectory(sourceFileDirectory, diagnostic.file.resolvedPath, getCanonicalFileName)) + "(" + diagnostic.start + "," + diagnostic.length + ")";
101183
101255
  }
101184
101256
  }
101185
101257
  ts.computeSignatureWithDiagnostics = computeSignatureWithDiagnostics;
@@ -101962,7 +102034,7 @@ var ts;
101962
102034
  failedLookupLocation = ts.isRootedDiskPath(failedLookupLocation) ? ts.normalizePath(failedLookupLocation) : ts.getNormalizedAbsolutePath(failedLookupLocation, getCurrentDirectory());
101963
102035
  var failedLookupPathSplit = failedLookupLocationPath.split(ts.directorySeparator);
101964
102036
  var failedLookupSplit = failedLookupLocation.split(ts.directorySeparator);
101965
- ts.Debug.assert(failedLookupSplit.length === failedLookupPathSplit.length, "FailedLookup: ".concat(failedLookupLocation, " failedLookupLocationPath: ").concat(failedLookupLocationPath));
102037
+ ts.Debug.assert(failedLookupSplit.length === failedLookupPathSplit.length, "FailedLookup: " + failedLookupLocation + " failedLookupLocationPath: " + failedLookupLocationPath);
101966
102038
  if (failedLookupPathSplit.length > rootSplitLength + 1) {
101967
102039
  return {
101968
102040
  dir: failedLookupSplit.slice(0, rootSplitLength + 1).join(ts.directorySeparator),
@@ -103042,7 +103114,7 @@ var ts;
103042
103114
  }
103043
103115
  function getJSExtensionForFile(fileName, options) {
103044
103116
  var _a;
103045
- return (_a = tryGetJSExtensionForFile(fileName, options)) !== null && _a !== void 0 ? _a : ts.Debug.fail("Extension ".concat(ts.extensionFromPath(fileName), " is unsupported:: FileName:: ").concat(fileName));
103117
+ return (_a = tryGetJSExtensionForFile(fileName, options)) !== null && _a !== void 0 ? _a : ts.Debug.fail("Extension " + ts.extensionFromPath(fileName) + " is unsupported:: FileName:: " + fileName);
103046
103118
  }
103047
103119
  function tryGetJSExtensionForFile(fileName, options) {
103048
103120
  var ext = ts.tryGetExtensionFromPath(fileName);
@@ -103132,8 +103204,8 @@ var ts;
103132
103204
  return pretty ?
103133
103205
  function (diagnostic, newLine, options) {
103134
103206
  clearScreenIfNotWatchingForFileChanges(system, diagnostic, options);
103135
- var output = "[".concat(ts.formatColorAndReset(getLocaleTimeString(system), ts.ForegroundColorEscapeSequences.Grey), "] ");
103136
- output += "".concat(ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)).concat(newLine + newLine);
103207
+ var output = "[" + ts.formatColorAndReset(getLocaleTimeString(system), ts.ForegroundColorEscapeSequences.Grey) + "] ";
103208
+ output += "" + ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine) + (newLine + newLine);
103137
103209
  system.write(output);
103138
103210
  } :
103139
103211
  function (diagnostic, newLine, options) {
@@ -103141,8 +103213,8 @@ var ts;
103141
103213
  if (!clearScreenIfNotWatchingForFileChanges(system, diagnostic, options)) {
103142
103214
  output += newLine;
103143
103215
  }
103144
- output += "".concat(getLocaleTimeString(system), " - ");
103145
- output += "".concat(ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)).concat(getPlainDiagnosticFollowingNewLines(diagnostic, newLine));
103216
+ output += getLocaleTimeString(system) + " - ";
103217
+ output += "" + ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine) + getPlainDiagnosticFollowingNewLines(diagnostic, newLine);
103146
103218
  system.write(output);
103147
103219
  };
103148
103220
  }
@@ -103164,7 +103236,7 @@ var ts;
103164
103236
  .map(function (errorDiagnostic) {
103165
103237
  if (errorDiagnostic.file === undefined)
103166
103238
  return;
103167
- return "".concat(errorDiagnostic.file.fileName);
103239
+ return "" + errorDiagnostic.file.fileName;
103168
103240
  });
103169
103241
  return filesInError.map(function (fileName) {
103170
103242
  var diagnosticForFileName = ts.find(diagnostics, function (diagnostic) {
@@ -103197,7 +103269,7 @@ var ts;
103197
103269
  if (errorCount === 0)
103198
103270
  return "";
103199
103271
  var nonNilFiles = filesInError.filter(function (fileInError) { return fileInError !== undefined; });
103200
- var distinctFileNamesWithLines = nonNilFiles.map(function (fileInError) { return "".concat(fileInError.fileName, ":").concat(fileInError.line); })
103272
+ var distinctFileNamesWithLines = nonNilFiles.map(function (fileInError) { return fileInError.fileName + ":" + fileInError.line; })
103201
103273
  .filter(function (value, index, self) { return self.indexOf(value) === index; });
103202
103274
  var firstFileReference = nonNilFiles[0] && prettyPathForFileError(nonNilFiles[0], host.getCurrentDirectory());
103203
103275
  var d = errorCount === 1 ?
@@ -103210,7 +103282,7 @@ var ts;
103210
103282
  ts.Diagnostics.Found_0_errors_in_the_same_file_starting_at_Colon_1 :
103211
103283
  ts.Diagnostics.Found_0_errors_in_1_files, errorCount, distinctFileNamesWithLines.length === 1 ? firstFileReference : distinctFileNamesWithLines.length);
103212
103284
  var suffix = distinctFileNamesWithLines.length > 1 ? createTabularErrorsDisplay(nonNilFiles, host) : "";
103213
- return "".concat(newLine).concat(ts.flattenDiagnosticMessageText(d.messageText, newLine)).concat(newLine).concat(newLine).concat(suffix);
103285
+ return "" + newLine + ts.flattenDiagnosticMessageText(d.messageText, newLine) + newLine + newLine + suffix;
103214
103286
  }
103215
103287
  ts.getErrorSummaryText = getErrorSummaryText;
103216
103288
  function createTabularErrorsDisplay(filesInError, host) {
@@ -103233,7 +103305,7 @@ var ts;
103233
103305
  " ".repeat(leftPaddingGoal - errorCountDigitsLength)
103234
103306
  : "";
103235
103307
  var fileRef = prettyPathForFileError(file, host.getCurrentDirectory());
103236
- tabularData += "".concat(leftPadding).concat(errorCount, " ").concat(fileRef, "\n");
103308
+ tabularData += "" + leftPadding + errorCount + " " + fileRef + "\n";
103237
103309
  });
103238
103310
  return tabularData;
103239
103311
  }
@@ -103260,9 +103332,9 @@ var ts;
103260
103332
  var relativeFileName = function (fileName) { return ts.convertToRelativePath(fileName, program.getCurrentDirectory(), getCanonicalFileName); };
103261
103333
  for (var _i = 0, _c = program.getSourceFiles(); _i < _c.length; _i++) {
103262
103334
  var file = _c[_i];
103263
- write("".concat(toFileName(file, relativeFileName)));
103264
- (_a = reasons.get(file.path)) === null || _a === void 0 ? void 0 : _a.forEach(function (reason) { return write(" ".concat(fileIncludeReasonToDiagnostics(program, reason, relativeFileName).messageText)); });
103265
- (_b = explainIfFileIsRedirectAndImpliedFormat(file, relativeFileName)) === null || _b === void 0 ? void 0 : _b.forEach(function (d) { return write(" ".concat(d.messageText)); });
103335
+ write("" + toFileName(file, relativeFileName));
103336
+ (_a = reasons.get(file.path)) === null || _a === void 0 ? void 0 : _a.forEach(function (reason) { return write(" " + fileIncludeReasonToDiagnostics(program, reason, relativeFileName).messageText); });
103337
+ (_b = explainIfFileIsRedirectAndImpliedFormat(file, relativeFileName)) === null || _b === void 0 ? void 0 : _b.forEach(function (d) { return write(" " + d.messageText); });
103266
103338
  }
103267
103339
  }
103268
103340
  ts.explainFiles = explainFiles;
@@ -103322,7 +103394,7 @@ var ts;
103322
103394
  if (isJsonFile && !ts.endsWith(includeSpec, ".json"))
103323
103395
  return false;
103324
103396
  var pattern = ts.getPatternFromSpec(includeSpec, basePath, "files");
103325
- return !!pattern && ts.getRegexFromPattern("(".concat(pattern, ")$"), useCaseSensitiveFileNames).test(fileName);
103397
+ return !!pattern && ts.getRegexFromPattern("(" + pattern + ")$", useCaseSensitiveFileNames).test(fileName);
103326
103398
  });
103327
103399
  }
103328
103400
  ts.getMatchedIncludeSpec = getMatchedIncludeSpec;
@@ -103331,7 +103403,7 @@ var ts;
103331
103403
  var options = program.getCompilerOptions();
103332
103404
  if (ts.isReferencedFile(reason)) {
103333
103405
  var referenceLocation = ts.getReferencedFileLocation(function (path) { return program.getSourceFileByPath(path); }, reason);
103334
- var referenceText = ts.isReferenceFileLocation(referenceLocation) ? referenceLocation.file.text.substring(referenceLocation.pos, referenceLocation.end) : "\"".concat(referenceLocation.text, "\"");
103406
+ var referenceText = ts.isReferenceFileLocation(referenceLocation) ? referenceLocation.file.text.substring(referenceLocation.pos, referenceLocation.end) : "\"" + referenceLocation.text + "\"";
103335
103407
  var message = void 0;
103336
103408
  ts.Debug.assert(ts.isReferenceFileLocation(referenceLocation) || reason.kind === ts.FileIncludeKind.Import, "Only synthetic references are imports");
103337
103409
  switch (reason.kind) {
@@ -103444,7 +103516,7 @@ var ts;
103444
103516
  var currentDir_1 = program.getCurrentDirectory();
103445
103517
  ts.forEach(emittedFiles, function (file) {
103446
103518
  var filepath = ts.getNormalizedAbsolutePath(file, currentDir_1);
103447
- write("TSFILE: ".concat(filepath));
103519
+ write("TSFILE: " + filepath);
103448
103520
  });
103449
103521
  listFiles(program, write);
103450
103522
  }
@@ -103666,18 +103738,14 @@ var ts;
103666
103738
  var buildInfo;
103667
103739
  if (host.getBuildInfo) {
103668
103740
  buildInfo = host.getBuildInfo(buildInfoPath, compilerOptions.configFilePath);
103669
- if (!buildInfo)
103670
- return undefined;
103671
103741
  }
103672
103742
  else {
103673
103743
  var content = host.readFile(buildInfoPath);
103674
103744
  if (!content)
103675
103745
  return undefined;
103676
- buildInfo = ts.getBuildInfo(content);
103746
+ buildInfo = ts.getBuildInfo(buildInfoPath, content);
103677
103747
  }
103678
- if (buildInfo.version !== ts.version)
103679
- return undefined;
103680
- if (!buildInfo.program)
103748
+ if (!buildInfo || buildInfo.version !== ts.version || !buildInfo.program)
103681
103749
  return undefined;
103682
103750
  return ts.createBuilderProgramUsingProgramBuildInfo(buildInfo.program, buildInfoPath, host);
103683
103751
  }
@@ -103767,7 +103835,7 @@ var ts;
103767
103835
  }
103768
103836
  var _b = ts.createWatchFactory(host, compilerOptions), watchFile = _b.watchFile, watchDirectory = _b.watchDirectory, writeLog = _b.writeLog;
103769
103837
  var getCanonicalFileName = ts.createGetCanonicalFileName(useCaseSensitiveFileNames);
103770
- writeLog("Current directory: ".concat(currentDirectory, " CaseSensitiveFileNames: ").concat(useCaseSensitiveFileNames));
103838
+ writeLog("Current directory: " + currentDirectory + " CaseSensitiveFileNames: " + useCaseSensitiveFileNames);
103771
103839
  var configFileWatcher;
103772
103840
  if (configFileName) {
103773
103841
  configFileWatcher = watchFile(configFileName, scheduleProgramReload, ts.PollingInterval.High, watchOptions, ts.WatchType.ConfigFile);
@@ -103890,7 +103958,8 @@ var ts;
103890
103958
  }
103891
103959
  }
103892
103960
  var hasInvalidatedResolution = resolutionCache.createHasInvalidatedResolution(userProvidedResolution);
103893
- if (ts.isProgramUptoDate(getCurrentProgram(), rootFileNames, compilerOptions, getSourceVersion, fileExists, hasInvalidatedResolution, hasChangedAutomaticTypeDirectiveNames, getParsedCommandLine, projectReferences)) {
103961
+ var _a = ts.changeCompilerHostLikeToUseCache(compilerHost, toPath), originalReadFile = _a.originalReadFile, originalFileExists = _a.originalFileExists, originalDirectoryExists = _a.originalDirectoryExists, originalCreateDirectory = _a.originalCreateDirectory, originalWriteFile = _a.originalWriteFile;
103962
+ if (ts.isProgramUptoDate(getCurrentProgram(), rootFileNames, compilerOptions, getSourceVersion, function (fileName) { return compilerHost.fileExists(fileName); }, hasInvalidatedResolution, hasChangedAutomaticTypeDirectiveNames, getParsedCommandLine, projectReferences)) {
103894
103963
  if (hasChangedConfigFileParsingErrors) {
103895
103964
  if (reportFileChangeDetectedOnCreateProgram) {
103896
103965
  reportWatchDiagnostic(ts.Diagnostics.File_change_detected_Starting_incremental_compilation);
@@ -103909,14 +103978,19 @@ var ts;
103909
103978
  if (host.afterProgramCreate && program !== builderProgram) {
103910
103979
  host.afterProgramCreate(builderProgram);
103911
103980
  }
103981
+ compilerHost.readFile = originalReadFile;
103982
+ compilerHost.fileExists = originalFileExists;
103983
+ compilerHost.directoryExists = originalDirectoryExists;
103984
+ compilerHost.createDirectory = originalCreateDirectory;
103985
+ compilerHost.writeFile = originalWriteFile;
103912
103986
  return builderProgram;
103913
103987
  }
103914
103988
  function createNewProgram(hasInvalidatedResolution) {
103915
103989
  writeLog("CreatingProgramWith::");
103916
- writeLog(" roots: ".concat(JSON.stringify(rootFileNames)));
103917
- writeLog(" options: ".concat(JSON.stringify(compilerOptions)));
103990
+ writeLog(" roots: " + JSON.stringify(rootFileNames));
103991
+ writeLog(" options: " + JSON.stringify(compilerOptions));
103918
103992
  if (projectReferences)
103919
- writeLog(" projectReferences: ".concat(JSON.stringify(projectReferences)));
103993
+ writeLog(" projectReferences: " + JSON.stringify(projectReferences));
103920
103994
  var needsUpdateInTypeRootWatch = hasChangedCompilerOptions || !getCurrentProgram();
103921
103995
  hasChangedCompilerOptions = false;
103922
103996
  hasChangedConfigFileParsingErrors = false;
@@ -104051,7 +104125,7 @@ var ts;
104051
104125
  return resolutionCache.invalidateResolutionsOfFailedLookupLocations();
104052
104126
  }
104053
104127
  var pending = clearInvalidateResolutionsOfFailedLookupLocations();
104054
- writeLog("Scheduling invalidateFailedLookup".concat(pending ? ", Cancelled earlier one" : ""));
104128
+ writeLog("Scheduling invalidateFailedLookup" + (pending ? ", Cancelled earlier one" : ""));
104055
104129
  timerToInvalidateFailedLookupResolutions = host.setTimeout(invalidateResolutionsOfFailedLookup, 250);
104056
104130
  }
104057
104131
  function invalidateResolutionsOfFailedLookup() {
@@ -104108,7 +104182,7 @@ var ts;
104108
104182
  synchronizeProgram();
104109
104183
  }
104110
104184
  function reloadConfigFile() {
104111
- writeLog("Reloading config file: ".concat(configFileName));
104185
+ writeLog("Reloading config file: " + configFileName);
104112
104186
  reloadLevel = ts.ConfigFileProgramReloadLevel.None;
104113
104187
  if (cachedDirectoryStructureHost) {
104114
104188
  cachedDirectoryStructureHost.clearCache();
@@ -104146,7 +104220,7 @@ var ts;
104146
104220
  return config.parsedCommandLine;
104147
104221
  }
104148
104222
  }
104149
- writeLog("Loading config file: ".concat(configFileName));
104223
+ writeLog("Loading config file: " + configFileName);
104150
104224
  var parsedCommandLine = host.getParsedCommandLine ?
104151
104225
  host.getParsedCommandLine(configFileName) :
104152
104226
  getParsedCommandLineFromConfigFileHost(configFileName);
@@ -104328,16 +104402,17 @@ var ts;
104328
104402
  UpToDateStatusType[UpToDateStatusType["UpToDateWithUpstreamTypes"] = 2] = "UpToDateWithUpstreamTypes";
104329
104403
  UpToDateStatusType[UpToDateStatusType["OutOfDateWithPrepend"] = 3] = "OutOfDateWithPrepend";
104330
104404
  UpToDateStatusType[UpToDateStatusType["OutputMissing"] = 4] = "OutputMissing";
104331
- UpToDateStatusType[UpToDateStatusType["OutOfDateWithSelf"] = 5] = "OutOfDateWithSelf";
104332
- UpToDateStatusType[UpToDateStatusType["OutOfDateWithUpstream"] = 6] = "OutOfDateWithUpstream";
104333
- UpToDateStatusType[UpToDateStatusType["OutOfDateBuildInfo"] = 7] = "OutOfDateBuildInfo";
104334
- UpToDateStatusType[UpToDateStatusType["UpstreamOutOfDate"] = 8] = "UpstreamOutOfDate";
104335
- UpToDateStatusType[UpToDateStatusType["UpstreamBlocked"] = 9] = "UpstreamBlocked";
104336
- UpToDateStatusType[UpToDateStatusType["ComputingUpstream"] = 10] = "ComputingUpstream";
104337
- UpToDateStatusType[UpToDateStatusType["TsVersionOutputOfDate"] = 11] = "TsVersionOutputOfDate";
104338
- UpToDateStatusType[UpToDateStatusType["UpToDateWithInputFileText"] = 12] = "UpToDateWithInputFileText";
104339
- UpToDateStatusType[UpToDateStatusType["ContainerOnly"] = 13] = "ContainerOnly";
104340
- UpToDateStatusType[UpToDateStatusType["ForceBuild"] = 14] = "ForceBuild";
104405
+ UpToDateStatusType[UpToDateStatusType["ErrorReadingFile"] = 5] = "ErrorReadingFile";
104406
+ UpToDateStatusType[UpToDateStatusType["OutOfDateWithSelf"] = 6] = "OutOfDateWithSelf";
104407
+ UpToDateStatusType[UpToDateStatusType["OutOfDateWithUpstream"] = 7] = "OutOfDateWithUpstream";
104408
+ UpToDateStatusType[UpToDateStatusType["OutOfDateBuildInfo"] = 8] = "OutOfDateBuildInfo";
104409
+ UpToDateStatusType[UpToDateStatusType["UpstreamOutOfDate"] = 9] = "UpstreamOutOfDate";
104410
+ UpToDateStatusType[UpToDateStatusType["UpstreamBlocked"] = 10] = "UpstreamBlocked";
104411
+ UpToDateStatusType[UpToDateStatusType["ComputingUpstream"] = 11] = "ComputingUpstream";
104412
+ UpToDateStatusType[UpToDateStatusType["TsVersionOutputOfDate"] = 12] = "TsVersionOutputOfDate";
104413
+ UpToDateStatusType[UpToDateStatusType["UpToDateWithInputFileText"] = 13] = "UpToDateWithInputFileText";
104414
+ UpToDateStatusType[UpToDateStatusType["ContainerOnly"] = 14] = "ContainerOnly";
104415
+ UpToDateStatusType[UpToDateStatusType["ForceBuild"] = 15] = "ForceBuild";
104341
104416
  })(UpToDateStatusType = ts.UpToDateStatusType || (ts.UpToDateStatusType = {}));
104342
104417
  function resolveConfigFileProjectName(project) {
104343
104418
  if (ts.fileExtensionIs(project, ".json")) {
@@ -104389,8 +104464,8 @@ var ts;
104389
104464
  ts.getBuildOrderFromAnyBuildOrder = getBuildOrderFromAnyBuildOrder;
104390
104465
  function createBuilderStatusReporter(system, pretty) {
104391
104466
  return function (diagnostic) {
104392
- var output = pretty ? "[".concat(ts.formatColorAndReset(ts.getLocaleTimeString(system), ts.ForegroundColorEscapeSequences.Grey), "] ") : "".concat(ts.getLocaleTimeString(system), " - ");
104393
- output += "".concat(ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)).concat(system.newLine + system.newLine);
104467
+ var output = pretty ? "[" + ts.formatColorAndReset(ts.getLocaleTimeString(system), ts.ForegroundColorEscapeSequences.Grey) + "] " : ts.getLocaleTimeString(system) + " - ";
104468
+ output += "" + ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine) + (system.newLine + system.newLine);
104394
104469
  system.write(output);
104395
104470
  };
104396
104471
  }
@@ -104537,6 +104612,7 @@ var ts;
104537
104612
  if (value) {
104538
104613
  return isParsedCommandLine(value) ? value : undefined;
104539
104614
  }
104615
+ ts.performance.mark("SolutionBuilder::beforeConfigFileParsing");
104540
104616
  var diagnostic;
104541
104617
  var parseConfigFileHost = state.parseConfigFileHost, baseCompilerOptions = state.baseCompilerOptions, baseWatchOptions = state.baseWatchOptions, extendedConfigCache = state.extendedConfigCache, host = state.host;
104542
104618
  var parsed;
@@ -104551,6 +104627,8 @@ var ts;
104551
104627
  parseConfigFileHost.onUnRecoverableConfigFileDiagnostic = ts.noop;
104552
104628
  }
104553
104629
  configFileCache.set(configFilePath, parsed || diagnostic);
104630
+ ts.performance.mark("SolutionBuilder::afterConfigFileParsing");
104631
+ ts.performance.measure("SolutionBuilder::Config file parsing", "SolutionBuilder::beforeConfigFileParsing", "SolutionBuilder::afterConfigFileParsing");
104554
104632
  return parsed;
104555
104633
  }
104556
104634
  function resolveProjectName(state, name) {
@@ -104743,6 +104821,7 @@ var ts;
104743
104821
  if (updateOutputFileStampsPending) {
104744
104822
  updateOutputTimestamps(state, config, projectPath);
104745
104823
  }
104824
+ ts.performance.mark("SolutionBuilder::Timestamps only updates");
104746
104825
  return doneInvalidatedProject(state, projectPath);
104747
104826
  }
104748
104827
  };
@@ -104836,6 +104915,10 @@ var ts;
104836
104915
  };
104837
104916
  function done(cancellationToken, writeFile, customTransformers) {
104838
104917
  executeSteps(BuildStep.Done, cancellationToken, writeFile, customTransformers);
104918
+ if (kind === InvalidatedProjectKind.Build)
104919
+ ts.performance.mark("SolutionBuilder::Projects built");
104920
+ else
104921
+ ts.performance.mark("SolutionBuilder::Bundles updated");
104839
104922
  return doneInvalidatedProject(state, projectPath);
104840
104923
  }
104841
104924
  function withProgramOrUndefined(action) {
@@ -105002,13 +105085,13 @@ var ts;
105002
105085
  var emitterDiagnostics = ts.createDiagnosticCollection();
105003
105086
  var emittedOutputs = new ts.Map();
105004
105087
  var resultFlags = BuildResultFlags.DeclarationOutputUnchanged;
105005
- var existingBuildInfo = state.buildInfoCache.get(projectPath).buildInfo;
105088
+ var existingBuildInfo = state.buildInfoCache.get(projectPath).buildInfo || undefined;
105006
105089
  outputFiles.forEach(function (_a) {
105007
105090
  var _b, _c;
105008
105091
  var name = _a.name, text = _a.text, writeByteOrderMark = _a.writeByteOrderMark, buildInfo = _a.buildInfo;
105009
105092
  emittedOutputs.set(toPath(state, name), name);
105010
105093
  if (buildInfo) {
105011
- if (((_b = buildInfo.program) === null || _b === void 0 ? void 0 : _b.outSignature) !== ((_c = existingBuildInfo.program) === null || _c === void 0 ? void 0 : _c.outSignature)) {
105094
+ if (((_b = buildInfo.program) === null || _b === void 0 ? void 0 : _b.outSignature) !== ((_c = existingBuildInfo === null || existingBuildInfo === void 0 ? void 0 : existingBuildInfo.program) === null || _c === void 0 ? void 0 : _c.outSignature)) {
105012
105095
  resultFlags &= ~BuildResultFlags.DeclarationOutputUnchanged;
105013
105096
  }
105014
105097
  setBuildInfo(state, buildInfo, projectPath, config.options, resultFlags);
@@ -105167,7 +105250,7 @@ var ts;
105167
105250
  function listEmittedFile(_a, proj, file) {
105168
105251
  var write = _a.write;
105169
105252
  if (write && proj.options.listEmittedFiles) {
105170
- write("TSFILE: ".concat(file));
105253
+ write("TSFILE: " + file);
105171
105254
  }
105172
105255
  }
105173
105256
  function getOldProgram(_a, proj, parsed) {
@@ -105196,7 +105279,7 @@ var ts;
105196
105279
  function buildErrors(state, resolvedPath, program, config, diagnostics, buildResult, errorType) {
105197
105280
  var canEmitBuildInfo = program && !ts.outFile(program.getCompilerOptions());
105198
105281
  reportAndStoreErrors(state, resolvedPath, diagnostics);
105199
- state.projectStatus.set(resolvedPath, { type: ts.UpToDateStatusType.Unbuildable, reason: "".concat(errorType, " errors") });
105282
+ state.projectStatus.set(resolvedPath, { type: ts.UpToDateStatusType.Unbuildable, reason: errorType + " errors" });
105200
105283
  if (canEmitBuildInfo)
105201
105284
  return { buildResult: buildResult, step: BuildStep.EmitBuildInfo };
105202
105285
  afterProgramDone(state, program, config);
@@ -105291,8 +105374,7 @@ var ts;
105291
105374
  return existing.buildInfo || undefined;
105292
105375
  }
105293
105376
  var value = state.readFileWithCache(buildInfoPath);
105294
- var buildInfo = value ? ts.getBuildInfo(value) : undefined;
105295
- ts.Debug.assert(modifiedTime || !buildInfo);
105377
+ var buildInfo = value ? ts.getBuildInfo(buildInfoPath, value) : undefined;
105296
105378
  state.buildInfoCache.set(resolvedConfigPath, { path: path, buildInfo: buildInfo || false, modifiedTime: modifiedTime || ts.missingFileModifiedTime });
105297
105379
  return buildInfo;
105298
105380
  }
@@ -105370,7 +105452,13 @@ var ts;
105370
105452
  missingOutputFileName: buildInfoPath
105371
105453
  };
105372
105454
  }
105373
- var buildInfo = ts.Debug.checkDefined(getBuildInfo(state, buildInfoPath, resolvedPath, buildInfoTime));
105455
+ var buildInfo = getBuildInfo(state, buildInfoPath, resolvedPath, buildInfoTime);
105456
+ if (!buildInfo) {
105457
+ return {
105458
+ type: ts.UpToDateStatusType.ErrorReadingFile,
105459
+ fileName: buildInfoPath
105460
+ };
105461
+ }
105374
105462
  if ((buildInfo.bundle || buildInfo.program) && buildInfo.version !== ts.version) {
105375
105463
  return {
105376
105464
  type: ts.UpToDateStatusType.TsVersionOutputOfDate,
@@ -105399,7 +105487,7 @@ var ts;
105399
105487
  if (inputTime === ts.missingFileModifiedTime) {
105400
105488
  return {
105401
105489
  type: ts.UpToDateStatusType.Unbuildable,
105402
- reason: "".concat(inputFile, " does not exist")
105490
+ reason: inputFile + " does not exist"
105403
105491
  };
105404
105492
  }
105405
105493
  if (buildInfoTime && buildInfoTime < inputTime) {
@@ -105548,7 +105636,10 @@ var ts;
105548
105636
  if (prior !== undefined) {
105549
105637
  return prior;
105550
105638
  }
105639
+ ts.performance.mark("SolutionBuilder::beforeUpToDateCheck");
105551
105640
  var actual = getUpToDateStatusWorker(state, project, resolvedPath);
105641
+ ts.performance.mark("SolutionBuilder::afterUpToDateCheck");
105642
+ ts.performance.measure("SolutionBuilder::Up-to-date check", "SolutionBuilder::beforeUpToDateCheck", "SolutionBuilder::afterUpToDateCheck");
105552
105643
  state.projectStatus.set(resolvedPath, actual);
105553
105644
  return actual;
105554
105645
  }
@@ -105675,6 +105766,13 @@ var ts;
105675
105766
  }
105676
105767
  }
105677
105768
  function build(state, project, cancellationToken, writeFile, getCustomTransformers, onlyReferences) {
105769
+ ts.performance.mark("SolutionBuilder::beforeBuild");
105770
+ var result = buildWorker(state, project, cancellationToken, writeFile, getCustomTransformers, onlyReferences);
105771
+ ts.performance.mark("SolutionBuilder::afterBuild");
105772
+ ts.performance.measure("SolutionBuilder::Build", "SolutionBuilder::beforeBuild", "SolutionBuilder::afterBuild");
105773
+ return result;
105774
+ }
105775
+ function buildWorker(state, project, cancellationToken, writeFile, getCustomTransformers, onlyReferences) {
105678
105776
  var buildOrder = getBuildOrderFor(state, project, onlyReferences);
105679
105777
  if (!buildOrder)
105680
105778
  return ts.ExitStatus.InvalidProject_OutputsSkipped;
@@ -105702,6 +105800,13 @@ var ts;
105702
105800
  : ts.ExitStatus.DiagnosticsPresent_OutputsSkipped;
105703
105801
  }
105704
105802
  function clean(state, project, onlyReferences) {
105803
+ ts.performance.mark("SolutionBuilder::beforeClean");
105804
+ var result = cleanWorker(state, project, onlyReferences);
105805
+ ts.performance.mark("SolutionBuilder::afterClean");
105806
+ ts.performance.measure("SolutionBuilder::Clean", "SolutionBuilder::beforeClean", "SolutionBuilder::afterClean");
105807
+ return result;
105808
+ }
105809
+ function cleanWorker(state, project, onlyReferences) {
105705
105810
  var buildOrder = getBuildOrderFor(state, project, onlyReferences);
105706
105811
  if (!buildOrder)
105707
105812
  return ts.ExitStatus.InvalidProject_OutputsSkipped;
@@ -105739,7 +105844,7 @@ var ts;
105739
105844
  }
105740
105845
  }
105741
105846
  if (filesToDelete) {
105742
- 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(""));
105847
+ reportStatus(state, ts.Diagnostics.A_non_dry_build_would_delete_the_following_files_Colon_0, filesToDelete.map(function (f) { return "\r\n * " + f; }).join(""));
105743
105848
  }
105744
105849
  return ts.ExitStatus.Success;
105745
105850
  }
@@ -105772,6 +105877,14 @@ var ts;
105772
105877
  state.timerToBuildInvalidatedProject = hostWithWatch.setTimeout(buildNextInvalidatedProject, time, state, changeDetected);
105773
105878
  }
105774
105879
  function buildNextInvalidatedProject(state, changeDetected) {
105880
+ ts.performance.mark("SolutionBuilder::beforeBuild");
105881
+ var buildOrder = buildNextInvalidatedProjectWorker(state, changeDetected);
105882
+ ts.performance.mark("SolutionBuilder::afterBuild");
105883
+ ts.performance.measure("SolutionBuilder::Build", "SolutionBuilder::beforeBuild", "SolutionBuilder::afterBuild");
105884
+ if (buildOrder)
105885
+ reportErrorSummary(state, buildOrder);
105886
+ }
105887
+ function buildNextInvalidatedProjectWorker(state, changeDetected) {
105775
105888
  state.timerToBuildInvalidatedProject = undefined;
105776
105889
  if (state.reportFileChangeDetected) {
105777
105890
  state.reportFileChangeDetected = false;
@@ -105801,7 +105914,7 @@ var ts;
105801
105914
  }
105802
105915
  }
105803
105916
  disableCache(state);
105804
- reportErrorSummary(state, buildOrder);
105917
+ return buildOrder;
105805
105918
  }
105806
105919
  function watchConfigFile(state, resolved, resolvedPath, parsed) {
105807
105920
  if (!state.watch || state.allWatchedConfigFiles.has(resolvedPath))
@@ -105856,6 +105969,7 @@ var ts;
105856
105969
  function startWatching(state, buildOrder) {
105857
105970
  if (!state.watchAllProjectsPending)
105858
105971
  return;
105972
+ ts.performance.mark("SolutionBuilder::beforeWatcherCreation");
105859
105973
  state.watchAllProjectsPending = false;
105860
105974
  for (var _i = 0, _a = getBuildOrderFromAnyBuildOrder(buildOrder); _i < _a.length; _i++) {
105861
105975
  var resolved = _a[_i];
@@ -105869,6 +105983,8 @@ var ts;
105869
105983
  watchPackageJsonFiles(state, resolved, resolvedPath, cfg);
105870
105984
  }
105871
105985
  }
105986
+ ts.performance.mark("SolutionBuilder::afterWatcherCreation");
105987
+ ts.performance.measure("SolutionBuilder::Watcher creation", "SolutionBuilder::beforeWatcherCreation", "SolutionBuilder::afterWatcherCreation");
105872
105988
  }
105873
105989
  function stopWatching(state) {
105874
105990
  ts.clearMap(state.allWatchedConfigFiles, ts.closeFileWatcher);
@@ -105978,6 +106094,8 @@ var ts;
105978
106094
  return reportStatus(state, ts.Diagnostics.Project_0_is_out_of_date_because_output_1_is_older_than_input_2, relName(state, configFileName), relName(state, status.outOfDateOutputFileName), relName(state, status.newerProjectName));
105979
106095
  case ts.UpToDateStatusType.OutputMissing:
105980
106096
  return reportStatus(state, ts.Diagnostics.Project_0_is_out_of_date_because_output_file_1_does_not_exist, relName(state, configFileName), relName(state, status.missingOutputFileName));
106097
+ case ts.UpToDateStatusType.ErrorReadingFile:
106098
+ return reportStatus(state, ts.Diagnostics.Project_0_is_out_of_date_because_there_was_error_reading_file_1, relName(state, configFileName), relName(state, status.fileName));
105981
106099
  case ts.UpToDateStatusType.OutOfDateBuildInfo:
105982
106100
  return reportStatus(state, ts.Diagnostics.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted, relName(state, configFileName), relName(state, status.buildInfoFile));
105983
106101
  case ts.UpToDateStatusType.UpToDate:
@@ -106018,6 +106136,12 @@ var ts;
106018
106136
  })(ts || (ts = {}));
106019
106137
  var ts;
106020
106138
  (function (ts) {
106139
+ var StatisticType;
106140
+ (function (StatisticType) {
106141
+ StatisticType[StatisticType["time"] = 0] = "time";
106142
+ StatisticType[StatisticType["count"] = 1] = "count";
106143
+ StatisticType[StatisticType["memory"] = 2] = "memory";
106144
+ })(StatisticType = ts.StatisticType || (ts.StatisticType = {}));
106021
106145
  function countLines(program) {
106022
106146
  var counts = getCountsMap();
106023
106147
  ts.forEach(program.getSourceFiles(), function (file) {
@@ -106027,14 +106151,6 @@ var ts;
106027
106151
  });
106028
106152
  return counts;
106029
106153
  }
106030
- function countNodes(program) {
106031
- var counts = getCountsMap();
106032
- ts.forEach(program.getSourceFiles(), function (file) {
106033
- var key = getCountKey(program, file);
106034
- counts.set(key, counts.get(key) + file.nodeCount);
106035
- });
106036
- return counts;
106037
- }
106038
106154
  function getCountsMap() {
106039
106155
  var counts = new ts.Map();
106040
106156
  counts.set("Library", 0);
@@ -106099,7 +106215,7 @@ var ts;
106099
106215
  };
106100
106216
  }
106101
106217
  function bold(str) {
106102
- return "\u001B[1m".concat(str, "\u001B[22m");
106218
+ return "\u001B[1m" + str + "\u001B[22m";
106103
106219
  }
106104
106220
  var isWindows = sys.getEnvironmentVariable("OS") && ts.stringContains(sys.getEnvironmentVariable("OS").toLowerCase(), "windows");
106105
106221
  var isWindowsTerminal = sys.getEnvironmentVariable("WT_SESSION");
@@ -106108,19 +106224,19 @@ var ts;
106108
106224
  if (isWindows && !isWindowsTerminal && !isVSCode) {
106109
106225
  return brightWhite(str);
106110
106226
  }
106111
- return "\u001B[94m".concat(str, "\u001B[39m");
106227
+ return "\u001B[94m" + str + "\u001B[39m";
106112
106228
  }
106113
106229
  var supportsRicherColors = sys.getEnvironmentVariable("COLORTERM") === "truecolor" || sys.getEnvironmentVariable("TERM") === "xterm-256color";
106114
106230
  function blueBackground(str) {
106115
106231
  if (supportsRicherColors) {
106116
- return "\u001B[48;5;68m".concat(str, "\u001B[39;49m");
106232
+ return "\u001B[48;5;68m" + str + "\u001B[39;49m";
106117
106233
  }
106118
106234
  else {
106119
- return "\u001B[44m".concat(str, "\u001B[39;49m");
106235
+ return "\u001B[44m" + str + "\u001B[39;49m";
106120
106236
  }
106121
106237
  }
106122
106238
  function brightWhite(str) {
106123
- return "\u001B[97m".concat(str, "\u001B[39m");
106239
+ return "\u001B[97m" + str + "\u001B[39m";
106124
106240
  }
106125
106241
  return {
106126
106242
  bold: bold,
@@ -106130,7 +106246,7 @@ var ts;
106130
106246
  };
106131
106247
  }
106132
106248
  function getDisplayNameTextOfOption(option) {
106133
- return "--".concat(option.name).concat(option.shortName ? ", -".concat(option.shortName) : "");
106249
+ return "--" + option.name + (option.shortName ? ", -" + option.shortName : "");
106134
106250
  }
106135
106251
  function generateOptionOutput(sys, option, rightAlignOfLeft, leftAlignOfRight) {
106136
106252
  var _a, _b;
@@ -106167,13 +106283,13 @@ var ts;
106167
106283
  text.push(sys.newLine);
106168
106284
  if (showAdditionalInfoOutput(valueCandidates, option)) {
106169
106285
  if (valueCandidates) {
106170
- text.push("".concat(valueCandidates.valueType, " ").concat(valueCandidates.possibleValues));
106286
+ text.push(valueCandidates.valueType + " " + valueCandidates.possibleValues);
106171
106287
  }
106172
106288
  if (defaultValueDescription) {
106173
106289
  if (valueCandidates)
106174
106290
  text.push(sys.newLine);
106175
106291
  var diagType = ts.getDiagnosticText(ts.Diagnostics.default_Colon);
106176
- text.push("".concat(diagType, " ").concat(defaultValueDescription));
106292
+ text.push(diagType + " " + defaultValueDescription);
106177
106293
  }
106178
106294
  text.push(sys.newLine);
106179
106295
  }
@@ -106222,7 +106338,7 @@ var ts;
106222
106338
  }
106223
106339
  var curRight = remainRight.substr(0, rightCharacterNumber);
106224
106340
  remainRight = remainRight.slice(rightCharacterNumber);
106225
- res.push("".concat(curLeft).concat(curRight));
106341
+ res.push("" + curLeft + curRight);
106226
106342
  isFirstLine = false;
106227
106343
  }
106228
106344
  return res;
@@ -106323,7 +106439,7 @@ var ts;
106323
106439
  categoryMap.set(curCategory, optionsOfCurCategory);
106324
106440
  }
106325
106441
  categoryMap.forEach(function (value, key) {
106326
- res.push("### ".concat(key).concat(sys.newLine).concat(sys.newLine));
106442
+ res.push("### " + key + sys.newLine + sys.newLine);
106327
106443
  res = __spreadArray(__spreadArray([], res, true), generateGroupOptionOutput(sys, value), true);
106328
106444
  });
106329
106445
  if (afterOptionsDescription) {
@@ -106333,7 +106449,7 @@ var ts;
106333
106449
  }
106334
106450
  function printEasyHelp(sys, simpleOptions) {
106335
106451
  var colors = createColors(sys);
106336
- var output = __spreadArray([], getHeader(sys, "".concat(ts.getDiagnosticText(ts.Diagnostics.tsc_Colon_The_TypeScript_Compiler), " - ").concat(ts.getDiagnosticText(ts.Diagnostics.Version_0, ts.version))), true);
106452
+ var output = __spreadArray([], getHeader(sys, ts.getDiagnosticText(ts.Diagnostics.tsc_Colon_The_TypeScript_Compiler) + " - " + ts.getDiagnosticText(ts.Diagnostics.Version_0, ts.version)), true);
106337
106453
  output.push(colors.bold(ts.getDiagnosticText(ts.Diagnostics.COMMON_COMMANDS)) + sys.newLine + sys.newLine);
106338
106454
  example("tsc", ts.Diagnostics.Compiles_the_current_project_tsconfig_json_in_the_working_directory);
106339
106455
  example("tsc app.ts util.ts", ts.Diagnostics.Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options);
@@ -106359,7 +106475,7 @@ var ts;
106359
106475
  }
106360
106476
  }
106361
106477
  function printAllHelp(sys, compilerOptions, buildOptions, watchOptions) {
106362
- var output = __spreadArray([], getHeader(sys, "".concat(ts.getDiagnosticText(ts.Diagnostics.tsc_Colon_The_TypeScript_Compiler), " - ").concat(ts.getDiagnosticText(ts.Diagnostics.Version_0, ts.version))), true);
106478
+ var output = __spreadArray([], getHeader(sys, ts.getDiagnosticText(ts.Diagnostics.tsc_Colon_The_TypeScript_Compiler) + " - " + ts.getDiagnosticText(ts.Diagnostics.Version_0, ts.version)), true);
106363
106479
  output = __spreadArray(__spreadArray([], output, true), generateSectionOptionsOutput(sys, ts.getDiagnosticText(ts.Diagnostics.ALL_COMPILER_OPTIONS), compilerOptions, true, undefined, ts.formatMessage(undefined, ts.Diagnostics.You_can_learn_about_all_of_the_compiler_options_at_0, "https://aka.ms/tsc")), true);
106364
106480
  output = __spreadArray(__spreadArray([], output, true), generateSectionOptionsOutput(sys, ts.getDiagnosticText(ts.Diagnostics.WATCH_OPTIONS), watchOptions, false, ts.getDiagnosticText(ts.Diagnostics.Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon)), true);
106365
106481
  output = __spreadArray(__spreadArray([], output, true), generateSectionOptionsOutput(sys, ts.getDiagnosticText(ts.Diagnostics.BUILD_OPTIONS), buildOptions, false, ts.formatMessage(undefined, ts.Diagnostics.Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0, "https://aka.ms/tsc-composite-builds")), true);
@@ -106369,7 +106485,7 @@ var ts;
106369
106485
  }
106370
106486
  }
106371
106487
  function printBuildHelp(sys, buildOptions) {
106372
- var output = __spreadArray([], getHeader(sys, "".concat(ts.getDiagnosticText(ts.Diagnostics.tsc_Colon_The_TypeScript_Compiler), " - ").concat(ts.getDiagnosticText(ts.Diagnostics.Version_0, ts.version))), true);
106488
+ var output = __spreadArray([], getHeader(sys, ts.getDiagnosticText(ts.Diagnostics.tsc_Colon_The_TypeScript_Compiler) + " - " + ts.getDiagnosticText(ts.Diagnostics.Version_0, ts.version)), true);
106373
106489
  output = __spreadArray(__spreadArray([], output, true), generateSectionOptionsOutput(sys, ts.getDiagnosticText(ts.Diagnostics.BUILD_OPTIONS), buildOptions, false, ts.formatMessage(undefined, ts.Diagnostics.Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0, "https://aka.ms/tsc-composite-builds")), true);
106374
106490
  for (var _i = 0, output_3 = output; _i < output_3.length; _i++) {
106375
106491
  var line = output_3[_i];
@@ -106578,15 +106694,26 @@ var ts;
106578
106694
  if (reportWatchModeWithoutSysSupport(sys, reportDiagnostic))
106579
106695
  return;
106580
106696
  var buildHost_1 = ts.createSolutionBuilderWithWatchHost(sys, undefined, reportDiagnostic, ts.createBuilderStatusReporter(sys, shouldBePretty(sys, buildOptions)), createWatchStatusReporter(sys, buildOptions));
106581
- updateSolutionBuilderHost(sys, cb, buildHost_1);
106697
+ var solutionPerformance_1 = enableSolutionPerformance(sys, buildOptions);
106698
+ updateSolutionBuilderHost(sys, cb, buildHost_1, solutionPerformance_1);
106699
+ var onWatchStatusChange_1 = buildHost_1.onWatchStatusChange;
106700
+ buildHost_1.onWatchStatusChange = function (d, newLine, options, errorCount) {
106701
+ onWatchStatusChange_1 === null || onWatchStatusChange_1 === void 0 ? void 0 : onWatchStatusChange_1(d, newLine, options, errorCount);
106702
+ if (d.code === ts.Diagnostics.Found_0_errors_Watching_for_file_changes.code ||
106703
+ d.code === ts.Diagnostics.Found_1_error_Watching_for_file_changes.code) {
106704
+ reportSolutionBuilderTimes(builder_1, solutionPerformance_1);
106705
+ }
106706
+ };
106582
106707
  var builder_1 = ts.createSolutionBuilderWithWatch(buildHost_1, projects, buildOptions, watchOptions);
106583
106708
  builder_1.build();
106584
106709
  return builder_1;
106585
106710
  }
106586
106711
  var buildHost = ts.createSolutionBuilderHost(sys, undefined, reportDiagnostic, ts.createBuilderStatusReporter(sys, shouldBePretty(sys, buildOptions)), createReportErrorSummary(sys, buildOptions));
106587
- updateSolutionBuilderHost(sys, cb, buildHost);
106712
+ var solutionPerformance = enableSolutionPerformance(sys, buildOptions);
106713
+ updateSolutionBuilderHost(sys, cb, buildHost, solutionPerformance);
106588
106714
  var builder = ts.createSolutionBuilder(buildHost, projects, buildOptions);
106589
106715
  var exitStatus = buildOptions.clean ? builder.clean() : builder.build();
106716
+ reportSolutionBuilderTimes(builder, solutionPerformance);
106590
106717
  ts.dumpTracingLegend();
106591
106718
  return sys.exit(exitStatus);
106592
106719
  }
@@ -106611,7 +106738,7 @@ var ts;
106611
106738
  };
106612
106739
  var program = ts.createProgram(programOptions);
106613
106740
  var exitStatus = ts.emitFilesAndReportErrorsAndGetExitStatus(program, reportDiagnostic, function (s) { return sys.write(s + sys.newLine); }, createReportErrorSummary(sys, options));
106614
- reportStatistics(sys, program);
106741
+ reportStatistics(sys, program, undefined);
106615
106742
  cb(program);
106616
106743
  return sys.exit(exitStatus);
106617
106744
  }
@@ -106629,36 +106756,36 @@ var ts;
106629
106756
  reportDiagnostic: reportDiagnostic,
106630
106757
  reportErrorSummary: createReportErrorSummary(sys, options),
106631
106758
  afterProgramEmitAndDiagnostics: function (builderProgram) {
106632
- reportStatistics(sys, builderProgram.getProgram());
106759
+ reportStatistics(sys, builderProgram.getProgram(), undefined);
106633
106760
  cb(builderProgram);
106634
106761
  }
106635
106762
  });
106636
106763
  return sys.exit(exitStatus);
106637
106764
  }
106638
- function updateSolutionBuilderHost(sys, cb, buildHost) {
106639
- updateCreateProgram(sys, buildHost);
106765
+ function updateSolutionBuilderHost(sys, cb, buildHost, solutionPerformance) {
106766
+ updateCreateProgram(sys, buildHost, true);
106640
106767
  buildHost.afterProgramEmitAndDiagnostics = function (program) {
106641
- reportStatistics(sys, program.getProgram());
106768
+ reportStatistics(sys, program.getProgram(), solutionPerformance);
106642
106769
  cb(program);
106643
106770
  };
106644
106771
  buildHost.afterEmitBundle = cb;
106645
106772
  }
106646
- function updateCreateProgram(sys, host) {
106773
+ function updateCreateProgram(sys, host, isBuildMode) {
106647
106774
  var compileUsingBuilder = host.createProgram;
106648
106775
  host.createProgram = function (rootNames, options, host, oldProgram, configFileParsingDiagnostics, projectReferences) {
106649
106776
  ts.Debug.assert(rootNames !== undefined || (options === undefined && !!oldProgram));
106650
106777
  if (options !== undefined) {
106651
- enableStatisticsAndTracing(sys, options, true);
106778
+ enableStatisticsAndTracing(sys, options, isBuildMode);
106652
106779
  }
106653
106780
  return compileUsingBuilder(rootNames, options, host, oldProgram, configFileParsingDiagnostics, projectReferences);
106654
106781
  };
106655
106782
  }
106656
106783
  function updateWatchCompilationHost(sys, cb, watchCompilerHost) {
106657
- updateCreateProgram(sys, watchCompilerHost);
106784
+ updateCreateProgram(sys, watchCompilerHost, false);
106658
106785
  var emitFilesUsingBuilder = watchCompilerHost.afterProgramCreate;
106659
106786
  watchCompilerHost.afterProgramCreate = function (builderProgram) {
106660
106787
  emitFilesUsingBuilder(builderProgram);
106661
- reportStatistics(sys, builderProgram.getProgram());
106788
+ reportStatistics(sys, builderProgram.getProgram(), undefined);
106662
106789
  cb(builderProgram);
106663
106790
  };
106664
106791
  }
@@ -106691,6 +106818,71 @@ var ts;
106691
106818
  updateWatchCompilationHost(system, cb, watchCompilerHost);
106692
106819
  return ts.createWatchProgram(watchCompilerHost);
106693
106820
  }
106821
+ function enableSolutionPerformance(system, options) {
106822
+ if (system === ts.sys && options.extendedDiagnostics) {
106823
+ ts.performance.enable();
106824
+ return createSolutionPerfomrance();
106825
+ }
106826
+ }
106827
+ function createSolutionPerfomrance() {
106828
+ var statistics;
106829
+ return {
106830
+ addAggregateStatistic: addAggregateStatistic,
106831
+ forEachAggregateStatistics: forEachAggreateStatistics,
106832
+ clear: clear,
106833
+ };
106834
+ function addAggregateStatistic(s) {
106835
+ var existing = statistics === null || statistics === void 0 ? void 0 : statistics.get(s.name);
106836
+ if (existing) {
106837
+ if (existing.type === StatisticType.memory)
106838
+ existing.value = Math.max(existing.value, s.value);
106839
+ else
106840
+ existing.value += s.value;
106841
+ }
106842
+ else {
106843
+ (statistics !== null && statistics !== void 0 ? statistics : (statistics = new ts.Map())).set(s.name, s);
106844
+ }
106845
+ }
106846
+ function forEachAggreateStatistics(cb) {
106847
+ statistics === null || statistics === void 0 ? void 0 : statistics.forEach(cb);
106848
+ }
106849
+ function clear() {
106850
+ statistics = undefined;
106851
+ }
106852
+ }
106853
+ function reportSolutionBuilderTimes(builder, solutionPerformance) {
106854
+ if (!solutionPerformance)
106855
+ return;
106856
+ if (!ts.performance.isEnabled()) {
106857
+ ts.sys.write(ts.Diagnostics.Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found.message + "\n");
106858
+ return;
106859
+ }
106860
+ var statistics = [];
106861
+ statistics.push({ name: "Projects in scope", value: ts.getBuildOrderFromAnyBuildOrder(builder.getBuildOrder()).length, type: StatisticType.count });
106862
+ reportSolutionBuilderCountStatistic("SolutionBuilder::Projects built");
106863
+ reportSolutionBuilderCountStatistic("SolutionBuilder::Timestamps only updates");
106864
+ reportSolutionBuilderCountStatistic("SolutionBuilder::Bundles updated");
106865
+ solutionPerformance.forEachAggregateStatistics(function (s) {
106866
+ s.name = "Aggregate " + s.name;
106867
+ statistics.push(s);
106868
+ });
106869
+ ts.performance.forEachMeasure(function (name, duration) {
106870
+ if (isSolutionMarkOrMeasure(name))
106871
+ statistics.push({ name: getNameFromSolutionBuilderMarkOrMeasure(name) + " time", value: duration, type: StatisticType.time });
106872
+ });
106873
+ ts.performance.disable();
106874
+ ts.performance.enable();
106875
+ reportAllStatistics(ts.sys, statistics);
106876
+ function reportSolutionBuilderCountStatistic(name) {
106877
+ var value = ts.performance.getCount(name);
106878
+ if (value) {
106879
+ statistics.push({ name: getNameFromSolutionBuilderMarkOrMeasure(name), value: value, type: StatisticType.count });
106880
+ }
106881
+ }
106882
+ function getNameFromSolutionBuilderMarkOrMeasure(name) {
106883
+ return name.replace("SolutionBuilder::", "");
106884
+ }
106885
+ }
106694
106886
  function canReportDiagnostics(system, compilerOptions) {
106695
106887
  return system === ts.sys && (compilerOptions.diagnostics || compilerOptions.extendedDiagnostics);
106696
106888
  }
@@ -106705,7 +106897,10 @@ var ts;
106705
106897
  ts.startTracing(isBuildMode ? "build" : "project", compilerOptions.generateTrace, compilerOptions.configFilePath);
106706
106898
  }
106707
106899
  }
106708
- function reportStatistics(sys, program) {
106900
+ function isSolutionMarkOrMeasure(name) {
106901
+ return ts.startsWith(name, "SolutionBuilder::");
106902
+ }
106903
+ function reportStatistics(sys, program, solutionPerformance) {
106709
106904
  var compilerOptions = program.getCompilerOptions();
106710
106905
  if (canTrace(sys, compilerOptions)) {
106711
106906
  ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.stopTracing();
@@ -106716,27 +106911,21 @@ var ts;
106716
106911
  var memoryUsed = sys.getMemoryUsage ? sys.getMemoryUsage() : -1;
106717
106912
  reportCountStatistic("Files", program.getSourceFiles().length);
106718
106913
  var lineCounts = countLines(program);
106719
- var nodeCounts = countNodes(program);
106720
106914
  if (compilerOptions.extendedDiagnostics) {
106721
106915
  for (var _i = 0, _a = ts.arrayFrom(lineCounts.keys()); _i < _a.length; _i++) {
106722
106916
  var key = _a[_i];
106723
106917
  reportCountStatistic("Lines of " + key, lineCounts.get(key));
106724
106918
  }
106725
- for (var _b = 0, _c = ts.arrayFrom(nodeCounts.keys()); _b < _c.length; _b++) {
106726
- var key = _c[_b];
106727
- reportCountStatistic("Nodes of " + key, nodeCounts.get(key));
106728
- }
106729
106919
  }
106730
106920
  else {
106731
106921
  reportCountStatistic("Lines", ts.reduceLeftIterator(lineCounts.values(), function (sum, count) { return sum + count; }, 0));
106732
- reportCountStatistic("Nodes", ts.reduceLeftIterator(nodeCounts.values(), function (sum, count) { return sum + count; }, 0));
106733
106922
  }
106734
106923
  reportCountStatistic("Identifiers", program.getIdentifierCount());
106735
106924
  reportCountStatistic("Symbols", program.getSymbolCount());
106736
106925
  reportCountStatistic("Types", program.getTypeCount());
106737
106926
  reportCountStatistic("Instantiations", program.getInstantiationCount());
106738
106927
  if (memoryUsed >= 0) {
106739
- reportStatisticalValue("Memory used", Math.round(memoryUsed / 1000) + "K");
106928
+ reportStatisticalValue({ name: "Memory used", value: memoryUsed, type: StatisticType.memory }, true);
106740
106929
  }
106741
106930
  var isPerformanceEnabled = ts.performance.isEnabled();
106742
106931
  var programTime = isPerformanceEnabled ? ts.performance.getDuration("Program") : 0;
@@ -106750,53 +106939,83 @@ var ts;
106750
106939
  reportCountStatistic("Subtype cache size", caches.subtype);
106751
106940
  reportCountStatistic("Strict subtype cache size", caches.strictSubtype);
106752
106941
  if (isPerformanceEnabled) {
106753
- ts.performance.forEachMeasure(function (name, duration) { return reportTimeStatistic("".concat(name, " time"), duration); });
106942
+ ts.performance.forEachMeasure(function (name, duration) {
106943
+ if (!isSolutionMarkOrMeasure(name))
106944
+ reportTimeStatistic(name + " time", duration, true);
106945
+ });
106754
106946
  }
106755
106947
  }
106756
106948
  else if (isPerformanceEnabled) {
106757
- reportTimeStatistic("I/O read", ts.performance.getDuration("I/O Read"));
106758
- reportTimeStatistic("I/O write", ts.performance.getDuration("I/O Write"));
106759
- reportTimeStatistic("Parse time", programTime);
106760
- reportTimeStatistic("Bind time", bindTime);
106761
- reportTimeStatistic("Check time", checkTime);
106762
- reportTimeStatistic("Emit time", emitTime);
106949
+ reportTimeStatistic("I/O read", ts.performance.getDuration("I/O Read"), true);
106950
+ reportTimeStatistic("I/O write", ts.performance.getDuration("I/O Write"), true);
106951
+ reportTimeStatistic("Parse time", programTime, true);
106952
+ reportTimeStatistic("Bind time", bindTime, true);
106953
+ reportTimeStatistic("Check time", checkTime, true);
106954
+ reportTimeStatistic("Emit time", emitTime, true);
106763
106955
  }
106764
106956
  if (isPerformanceEnabled) {
106765
- reportTimeStatistic("Total time", programTime + bindTime + checkTime + emitTime);
106957
+ reportTimeStatistic("Total time", programTime + bindTime + checkTime + emitTime, false);
106766
106958
  }
106767
- reportStatistics();
106959
+ reportAllStatistics(sys, statistics);
106768
106960
  if (!isPerformanceEnabled) {
106769
106961
  sys.write(ts.Diagnostics.Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found.message + "\n");
106770
106962
  }
106771
106963
  else {
106772
- ts.performance.disable();
106773
- }
106774
- }
106775
- function reportStatistics() {
106776
- var nameSize = 0;
106777
- var valueSize = 0;
106778
- for (var _i = 0, statistics_1 = statistics; _i < statistics_1.length; _i++) {
106779
- var _a = statistics_1[_i], name = _a.name, value = _a.value;
106780
- if (name.length > nameSize) {
106781
- nameSize = name.length;
106964
+ if (solutionPerformance) {
106965
+ ts.performance.forEachMeasure(function (name) {
106966
+ if (!isSolutionMarkOrMeasure(name))
106967
+ ts.performance.clearMeasures(name);
106968
+ });
106969
+ ts.performance.forEachMark(function (name) {
106970
+ if (!isSolutionMarkOrMeasure(name))
106971
+ ts.performance.clearMarks(name);
106972
+ });
106782
106973
  }
106783
- if (value.length > valueSize) {
106784
- valueSize = value.length;
106974
+ else {
106975
+ ts.performance.disable();
106785
106976
  }
106786
106977
  }
106787
- for (var _b = 0, statistics_2 = statistics; _b < statistics_2.length; _b++) {
106788
- var _c = statistics_2[_b], name = _c.name, value = _c.value;
106789
- sys.write(ts.padRight(name + ":", nameSize + 2) + ts.padLeft(value.toString(), valueSize) + sys.newLine);
106790
- }
106791
106978
  }
106792
- function reportStatisticalValue(name, value) {
106793
- statistics.push({ name: name, value: value });
106979
+ function reportStatisticalValue(s, aggregate) {
106980
+ statistics.push(s);
106981
+ if (aggregate)
106982
+ solutionPerformance === null || solutionPerformance === void 0 ? void 0 : solutionPerformance.addAggregateStatistic(s);
106794
106983
  }
106795
106984
  function reportCountStatistic(name, count) {
106796
- reportStatisticalValue(name, "" + count);
106985
+ reportStatisticalValue({ name: name, value: count, type: StatisticType.count }, true);
106986
+ }
106987
+ function reportTimeStatistic(name, time, aggregate) {
106988
+ reportStatisticalValue({ name: name, value: time, type: StatisticType.time }, aggregate);
106797
106989
  }
106798
- function reportTimeStatistic(name, time) {
106799
- reportStatisticalValue(name, (time / 1000).toFixed(2) + "s");
106990
+ }
106991
+ function reportAllStatistics(sys, statistics) {
106992
+ var nameSize = 0;
106993
+ var valueSize = 0;
106994
+ for (var _i = 0, statistics_1 = statistics; _i < statistics_1.length; _i++) {
106995
+ var s = statistics_1[_i];
106996
+ if (s.name.length > nameSize) {
106997
+ nameSize = s.name.length;
106998
+ }
106999
+ var value = statisticValue(s);
107000
+ if (value.length > valueSize) {
107001
+ valueSize = value.length;
107002
+ }
107003
+ }
107004
+ for (var _a = 0, statistics_2 = statistics; _a < statistics_2.length; _a++) {
107005
+ var s = statistics_2[_a];
107006
+ sys.write(ts.padRight(s.name + ":", nameSize + 2) + ts.padLeft(statisticValue(s).toString(), valueSize) + sys.newLine);
107007
+ }
107008
+ }
107009
+ function statisticValue(s) {
107010
+ switch (s.type) {
107011
+ case StatisticType.count:
107012
+ return "" + s.value;
107013
+ case StatisticType.time:
107014
+ return (s.value / 1000).toFixed(2) + "s";
107015
+ case StatisticType.memory:
107016
+ return Math.round(s.value / 1000) + "K";
107017
+ default:
107018
+ ts.Debug.assertNever(s.type);
106800
107019
  }
106801
107020
  }
106802
107021
  function writeConfigFile(sys, reportDiagnostic, options, fileNames) {
@@ -106822,7 +107041,7 @@ var ts;
106822
107041
  // enable deprecation logging
106823
107042
  ts.Debug.loggingHost = {
106824
107043
  log: function (_level, s) {
106825
- ts.sys.write("".concat(s || "").concat(ts.sys.newLine));
107044
+ ts.sys.write("" + (s || "") + ts.sys.newLine);
106826
107045
  }
106827
107046
  };
106828
107047
  if (ts.Debug.isDebugging) {