typescript 4.6.1-rc → 4.7.0-dev.20220215

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/tsserver.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) {
@@ -96,11 +96,11 @@ var ts;
96
96
  (function (ts) {
97
97
  // WARNING: The script `configurePrerelease.ts` uses a regexp to parse out these values.
98
98
  // If changing the text in this section, be sure to test `configurePrerelease` too.
99
- ts.versionMajorMinor = "4.6";
99
+ ts.versionMajorMinor = "4.7";
100
100
  // The following is baselined as a literal template type without intervention
101
101
  /** The version of the TypeScript compiler release */
102
102
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
103
- ts.version = "".concat(ts.versionMajorMinor, ".1-rc");
103
+ ts.version = ts.versionMajorMinor + ".0-dev.20220215";
104
104
  /* @internal */
105
105
  var Comparison;
106
106
  (function (Comparison) {
@@ -147,7 +147,7 @@ var ts;
147
147
  var constructor = (_a = NativeCollections[nativeFactory]()) !== null && _a !== void 0 ? _a : ts.ShimCollections === null || ts.ShimCollections === void 0 ? void 0 : ts.ShimCollections[shimFactory](ts.getIterator);
148
148
  if (constructor)
149
149
  return constructor;
150
- throw new Error("TypeScript requires an environment that provides a compatible native ".concat(name, " implementation."));
150
+ throw new Error("TypeScript requires an environment that provides a compatible native " + name + " implementation.");
151
151
  }
152
152
  })(ts || (ts = {}));
153
153
  /* @internal */
@@ -1497,7 +1497,7 @@ var ts;
1497
1497
  function cast(value, test) {
1498
1498
  if (value !== undefined && test(value))
1499
1499
  return value;
1500
- return ts.Debug.fail("Invalid cast. The supplied value ".concat(value, " did not pass the test '").concat(ts.Debug.getFunctionName(test), "'."));
1500
+ return ts.Debug.fail("Invalid cast. The supplied value " + value + " did not pass the test '" + ts.Debug.getFunctionName(test) + "'.");
1501
1501
  }
1502
1502
  ts.cast = cast;
1503
1503
  /** Does nothing. */
@@ -1588,7 +1588,7 @@ var ts;
1588
1588
  function memoizeOne(callback) {
1589
1589
  var map = new ts.Map();
1590
1590
  return function (arg) {
1591
- var key = "".concat(typeof arg, ":").concat(arg);
1591
+ var key = typeof arg + ":" + arg;
1592
1592
  var value = map.get(key);
1593
1593
  if (value === undefined && !map.has(key)) {
1594
1594
  value = callback(arg);
@@ -2038,7 +2038,7 @@ var ts;
2038
2038
  ts.createGetCanonicalFileName = createGetCanonicalFileName;
2039
2039
  function patternText(_a) {
2040
2040
  var prefix = _a.prefix, suffix = _a.suffix;
2041
- return "".concat(prefix, "*").concat(suffix);
2041
+ return prefix + "*" + suffix;
2042
2042
  }
2043
2043
  ts.patternText = patternText;
2044
2044
  /**
@@ -2351,7 +2351,7 @@ var ts;
2351
2351
  }
2352
2352
  function fail(message, stackCrawlMark) {
2353
2353
  debugger;
2354
- var e = new Error(message ? "Debug Failure. ".concat(message) : "Debug Failure.");
2354
+ var e = new Error(message ? "Debug Failure. " + message : "Debug Failure.");
2355
2355
  if (Error.captureStackTrace) {
2356
2356
  Error.captureStackTrace(e, stackCrawlMark || fail);
2357
2357
  }
@@ -2359,12 +2359,12 @@ var ts;
2359
2359
  }
2360
2360
  Debug.fail = fail;
2361
2361
  function failBadSyntaxKind(node, message, stackCrawlMark) {
2362
- return fail("".concat(message || "Unexpected node.", "\r\nNode ").concat(formatSyntaxKind(node.kind), " was unexpected."), stackCrawlMark || failBadSyntaxKind);
2362
+ return fail((message || "Unexpected node.") + "\r\nNode " + formatSyntaxKind(node.kind) + " was unexpected.", stackCrawlMark || failBadSyntaxKind);
2363
2363
  }
2364
2364
  Debug.failBadSyntaxKind = failBadSyntaxKind;
2365
2365
  function assert(expression, message, verboseDebugInfo, stackCrawlMark) {
2366
2366
  if (!expression) {
2367
- message = message ? "False expression: ".concat(message) : "False expression.";
2367
+ message = message ? "False expression: " + message : "False expression.";
2368
2368
  if (verboseDebugInfo) {
2369
2369
  message += "\r\nVerbose Debug Information: " + (typeof verboseDebugInfo === "string" ? verboseDebugInfo : verboseDebugInfo());
2370
2370
  }
@@ -2374,26 +2374,26 @@ var ts;
2374
2374
  Debug.assert = assert;
2375
2375
  function assertEqual(a, b, msg, msg2, stackCrawlMark) {
2376
2376
  if (a !== b) {
2377
- var message = msg ? msg2 ? "".concat(msg, " ").concat(msg2) : msg : "";
2378
- fail("Expected ".concat(a, " === ").concat(b, ". ").concat(message), stackCrawlMark || assertEqual);
2377
+ var message = msg ? msg2 ? msg + " " + msg2 : msg : "";
2378
+ fail("Expected " + a + " === " + b + ". " + message, stackCrawlMark || assertEqual);
2379
2379
  }
2380
2380
  }
2381
2381
  Debug.assertEqual = assertEqual;
2382
2382
  function assertLessThan(a, b, msg, stackCrawlMark) {
2383
2383
  if (a >= b) {
2384
- fail("Expected ".concat(a, " < ").concat(b, ". ").concat(msg || ""), stackCrawlMark || assertLessThan);
2384
+ fail("Expected " + a + " < " + b + ". " + (msg || ""), stackCrawlMark || assertLessThan);
2385
2385
  }
2386
2386
  }
2387
2387
  Debug.assertLessThan = assertLessThan;
2388
2388
  function assertLessThanOrEqual(a, b, stackCrawlMark) {
2389
2389
  if (a > b) {
2390
- fail("Expected ".concat(a, " <= ").concat(b), stackCrawlMark || assertLessThanOrEqual);
2390
+ fail("Expected " + a + " <= " + b, stackCrawlMark || assertLessThanOrEqual);
2391
2391
  }
2392
2392
  }
2393
2393
  Debug.assertLessThanOrEqual = assertLessThanOrEqual;
2394
2394
  function assertGreaterThanOrEqual(a, b, stackCrawlMark) {
2395
2395
  if (a < b) {
2396
- fail("Expected ".concat(a, " >= ").concat(b), stackCrawlMark || assertGreaterThanOrEqual);
2396
+ fail("Expected " + a + " >= " + b, stackCrawlMark || assertGreaterThanOrEqual);
2397
2397
  }
2398
2398
  }
2399
2399
  Debug.assertGreaterThanOrEqual = assertGreaterThanOrEqual;
@@ -2424,42 +2424,42 @@ var ts;
2424
2424
  function assertNever(member, message, stackCrawlMark) {
2425
2425
  if (message === void 0) { message = "Illegal value:"; }
2426
2426
  var detail = typeof member === "object" && ts.hasProperty(member, "kind") && ts.hasProperty(member, "pos") && formatSyntaxKind ? "SyntaxKind: " + formatSyntaxKind(member.kind) : JSON.stringify(member);
2427
- return fail("".concat(message, " ").concat(detail), stackCrawlMark || assertNever);
2427
+ return fail(message + " " + detail, stackCrawlMark || assertNever);
2428
2428
  }
2429
2429
  Debug.assertNever = assertNever;
2430
2430
  function assertEachNode(nodes, test, message, stackCrawlMark) {
2431
2431
  if (shouldAssertFunction(1 /* Normal */, "assertEachNode")) {
2432
- assert(test === undefined || ts.every(nodes, test), message || "Unexpected node.", function () { return "Node array did not pass test '".concat(getFunctionName(test), "'."); }, stackCrawlMark || assertEachNode);
2432
+ assert(test === undefined || ts.every(nodes, test), message || "Unexpected node.", function () { return "Node array did not pass test '" + getFunctionName(test) + "'."; }, stackCrawlMark || assertEachNode);
2433
2433
  }
2434
2434
  }
2435
2435
  Debug.assertEachNode = assertEachNode;
2436
2436
  function assertNode(node, test, message, stackCrawlMark) {
2437
2437
  if (shouldAssertFunction(1 /* Normal */, "assertNode")) {
2438
- 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);
2438
+ 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);
2439
2439
  }
2440
2440
  }
2441
2441
  Debug.assertNode = assertNode;
2442
2442
  function assertNotNode(node, test, message, stackCrawlMark) {
2443
2443
  if (shouldAssertFunction(1 /* Normal */, "assertNotNode")) {
2444
- 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);
2444
+ 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);
2445
2445
  }
2446
2446
  }
2447
2447
  Debug.assertNotNode = assertNotNode;
2448
2448
  function assertOptionalNode(node, test, message, stackCrawlMark) {
2449
2449
  if (shouldAssertFunction(1 /* Normal */, "assertOptionalNode")) {
2450
- 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);
2450
+ 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);
2451
2451
  }
2452
2452
  }
2453
2453
  Debug.assertOptionalNode = assertOptionalNode;
2454
2454
  function assertOptionalToken(node, kind, message, stackCrawlMark) {
2455
2455
  if (shouldAssertFunction(1 /* Normal */, "assertOptionalToken")) {
2456
- 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);
2456
+ 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);
2457
2457
  }
2458
2458
  }
2459
2459
  Debug.assertOptionalToken = assertOptionalToken;
2460
2460
  function assertMissingNode(node, message, stackCrawlMark) {
2461
2461
  if (shouldAssertFunction(1 /* Normal */, "assertMissingNode")) {
2462
- assert(node === undefined, message || "Unexpected node.", function () { return "Node ".concat(formatSyntaxKind(node.kind), " was unexpected'."); }, stackCrawlMark || assertMissingNode);
2462
+ assert(node === undefined, message || "Unexpected node.", function () { return "Node " + formatSyntaxKind(node.kind) + " was unexpected'."; }, stackCrawlMark || assertMissingNode);
2463
2463
  }
2464
2464
  }
2465
2465
  Debug.assertMissingNode = assertMissingNode;
@@ -2480,7 +2480,7 @@ var ts;
2480
2480
  }
2481
2481
  Debug.getFunctionName = getFunctionName;
2482
2482
  function formatSymbol(symbol) {
2483
- return "{ name: ".concat(ts.unescapeLeadingUnderscores(symbol.escapedName), "; flags: ").concat(formatSymbolFlags(symbol.flags), "; declarations: ").concat(ts.map(symbol.declarations, function (node) { return formatSyntaxKind(node.kind); }), " }");
2483
+ return "{ name: " + ts.unescapeLeadingUnderscores(symbol.escapedName) + "; flags: " + formatSymbolFlags(symbol.flags) + "; declarations: " + ts.map(symbol.declarations, function (node) { return formatSyntaxKind(node.kind); }) + " }";
2484
2484
  }
2485
2485
  Debug.formatSymbol = formatSymbol;
2486
2486
  /**
@@ -2501,7 +2501,7 @@ var ts;
2501
2501
  break;
2502
2502
  }
2503
2503
  if (enumValue !== 0 && enumValue & value) {
2504
- result = "".concat(result).concat(result ? "|" : "").concat(enumName);
2504
+ result = "" + result + (result ? "|" : "") + enumName;
2505
2505
  remainingFlags &= ~enumValue;
2506
2506
  }
2507
2507
  }
@@ -2611,7 +2611,7 @@ var ts;
2611
2611
  this.flags & 1 /* Unreachable */ ? "FlowUnreachable" :
2612
2612
  "UnknownFlow";
2613
2613
  var remainingFlags = this.flags & ~(2048 /* Referenced */ - 1);
2614
- return "".concat(flowHeader).concat(remainingFlags ? " (".concat(formatFlowFlags(remainingFlags), ")") : "");
2614
+ return "" + flowHeader + (remainingFlags ? " (" + formatFlowFlags(remainingFlags) + ")" : "");
2615
2615
  }
2616
2616
  },
2617
2617
  __debugFlowFlags: { get: function () { return formatEnum(this.flags, ts.FlowFlags, /*isFlags*/ true); } },
@@ -2650,7 +2650,7 @@ var ts;
2650
2650
  // We don't care, this is debug code that's only enabled with a debugger attached -
2651
2651
  // we're just taking note of it for anyone checking regex performance in the future.
2652
2652
  defaultValue = String(defaultValue).replace(/(?:,[\s\w\d_]+:[^,]+)+\]$/, "]");
2653
- return "NodeArray ".concat(defaultValue);
2653
+ return "NodeArray " + defaultValue;
2654
2654
  }
2655
2655
  }
2656
2656
  });
@@ -2705,7 +2705,7 @@ var ts;
2705
2705
  var symbolHeader = this.flags & 33554432 /* Transient */ ? "TransientSymbol" :
2706
2706
  "Symbol";
2707
2707
  var remainingSymbolFlags = this.flags & ~33554432 /* Transient */;
2708
- return "".concat(symbolHeader, " '").concat(ts.symbolName(this), "'").concat(remainingSymbolFlags ? " (".concat(formatSymbolFlags(remainingSymbolFlags), ")") : "");
2708
+ return symbolHeader + " '" + ts.symbolName(this) + "'" + (remainingSymbolFlags ? " (" + formatSymbolFlags(remainingSymbolFlags) + ")" : "");
2709
2709
  }
2710
2710
  },
2711
2711
  __debugFlags: { get: function () { return formatSymbolFlags(this.flags); } }
@@ -2715,11 +2715,11 @@ var ts;
2715
2715
  __tsDebuggerDisplay: {
2716
2716
  value: function () {
2717
2717
  var typeHeader = this.flags & 98304 /* Nullable */ ? "NullableType" :
2718
- this.flags & 384 /* StringOrNumberLiteral */ ? "LiteralType ".concat(JSON.stringify(this.value)) :
2719
- this.flags & 2048 /* BigIntLiteral */ ? "LiteralType ".concat(this.value.negative ? "-" : "").concat(this.value.base10Value, "n") :
2718
+ this.flags & 384 /* StringOrNumberLiteral */ ? "LiteralType " + JSON.stringify(this.value) :
2719
+ this.flags & 2048 /* BigIntLiteral */ ? "LiteralType " + (this.value.negative ? "-" : "") + this.value.base10Value + "n" :
2720
2720
  this.flags & 8192 /* UniqueESSymbol */ ? "UniqueESSymbolType" :
2721
2721
  this.flags & 32 /* Enum */ ? "EnumType" :
2722
- this.flags & 67359327 /* Intrinsic */ ? "IntrinsicType ".concat(this.intrinsicName) :
2722
+ this.flags & 67359327 /* Intrinsic */ ? "IntrinsicType " + this.intrinsicName :
2723
2723
  this.flags & 1048576 /* Union */ ? "UnionType" :
2724
2724
  this.flags & 2097152 /* Intersection */ ? "IntersectionType" :
2725
2725
  this.flags & 4194304 /* Index */ ? "IndexType" :
@@ -2738,7 +2738,7 @@ var ts;
2738
2738
  "ObjectType" :
2739
2739
  "Type";
2740
2740
  var remainingObjectFlags = this.flags & 524288 /* Object */ ? this.objectFlags & ~1343 /* ObjectTypeKindMask */ : 0;
2741
- return "".concat(typeHeader).concat(this.symbol ? " '".concat(ts.symbolName(this.symbol), "'") : "").concat(remainingObjectFlags ? " (".concat(formatObjectFlags(remainingObjectFlags), ")") : "");
2741
+ return "" + typeHeader + (this.symbol ? " '" + ts.symbolName(this.symbol) + "'" : "") + (remainingObjectFlags ? " (" + formatObjectFlags(remainingObjectFlags) + ")" : "");
2742
2742
  }
2743
2743
  },
2744
2744
  __debugFlags: { get: function () { return formatTypeFlags(this.flags); } },
@@ -2774,11 +2774,11 @@ var ts;
2774
2774
  __tsDebuggerDisplay: {
2775
2775
  value: function () {
2776
2776
  var nodeHeader = ts.isGeneratedIdentifier(this) ? "GeneratedIdentifier" :
2777
- ts.isIdentifier(this) ? "Identifier '".concat(ts.idText(this), "'") :
2778
- ts.isPrivateIdentifier(this) ? "PrivateIdentifier '".concat(ts.idText(this), "'") :
2779
- ts.isStringLiteral(this) ? "StringLiteral ".concat(JSON.stringify(this.text.length < 10 ? this.text : this.text.slice(10) + "...")) :
2780
- ts.isNumericLiteral(this) ? "NumericLiteral ".concat(this.text) :
2781
- ts.isBigIntLiteral(this) ? "BigIntLiteral ".concat(this.text, "n") :
2777
+ ts.isIdentifier(this) ? "Identifier '" + ts.idText(this) + "'" :
2778
+ ts.isPrivateIdentifier(this) ? "PrivateIdentifier '" + ts.idText(this) + "'" :
2779
+ ts.isStringLiteral(this) ? "StringLiteral " + JSON.stringify(this.text.length < 10 ? this.text : this.text.slice(10) + "...") :
2780
+ ts.isNumericLiteral(this) ? "NumericLiteral " + this.text :
2781
+ ts.isBigIntLiteral(this) ? "BigIntLiteral " + this.text + "n" :
2782
2782
  ts.isTypeParameterDeclaration(this) ? "TypeParameterDeclaration" :
2783
2783
  ts.isParameter(this) ? "ParameterDeclaration" :
2784
2784
  ts.isConstructorDeclaration(this) ? "ConstructorDeclaration" :
@@ -2810,7 +2810,7 @@ var ts;
2810
2810
  ts.isNamedTupleMember(this) ? "NamedTupleMember" :
2811
2811
  ts.isImportTypeNode(this) ? "ImportTypeNode" :
2812
2812
  formatSyntaxKind(this.kind);
2813
- return "".concat(nodeHeader).concat(this.flags ? " (".concat(formatNodeFlags(this.flags), ")") : "");
2813
+ return "" + nodeHeader + (this.flags ? " (" + formatNodeFlags(this.flags) + ")" : "");
2814
2814
  }
2815
2815
  },
2816
2816
  __debugKind: { get: function () { return formatSyntaxKind(this.kind); } },
@@ -2857,10 +2857,10 @@ var ts;
2857
2857
  Debug.enableDebugInfo = enableDebugInfo;
2858
2858
  function formatDeprecationMessage(name, error, errorAfter, since, message) {
2859
2859
  var deprecationMessage = error ? "DeprecationError: " : "DeprecationWarning: ";
2860
- deprecationMessage += "'".concat(name, "' ");
2861
- deprecationMessage += since ? "has been deprecated since v".concat(since) : "is deprecated";
2862
- deprecationMessage += error ? " and can no longer be used." : errorAfter ? " and will no longer be usable after v".concat(errorAfter, ".") : ".";
2863
- deprecationMessage += message ? " ".concat(ts.formatStringFromArgs(message, [name], 0)) : "";
2860
+ deprecationMessage += "'" + name + "' ";
2861
+ deprecationMessage += since ? "has been deprecated since v" + since : "is deprecated";
2862
+ deprecationMessage += error ? " and can no longer be used." : errorAfter ? " and will no longer be usable after v" + errorAfter + "." : ".";
2863
+ deprecationMessage += message ? " " + ts.formatStringFromArgs(message, [name], 0) : "";
2864
2864
  return deprecationMessage;
2865
2865
  }
2866
2866
  function createErrorDeprecation(name, errorAfter, since, message) {
@@ -2991,11 +2991,11 @@ var ts;
2991
2991
  }
2992
2992
  };
2993
2993
  Version.prototype.toString = function () {
2994
- var result = "".concat(this.major, ".").concat(this.minor, ".").concat(this.patch);
2994
+ var result = this.major + "." + this.minor + "." + this.patch;
2995
2995
  if (ts.some(this.prerelease))
2996
- result += "-".concat(this.prerelease.join("."));
2996
+ result += "-" + this.prerelease.join(".");
2997
2997
  if (ts.some(this.build))
2998
- result += "+".concat(this.build.join("."));
2998
+ result += "+" + this.build.join(".");
2999
2999
  return result;
3000
3000
  };
3001
3001
  Version.zero = new Version(0, 0, 0);
@@ -3262,7 +3262,7 @@ var ts;
3262
3262
  return ts.map(comparators, formatComparator).join(" ");
3263
3263
  }
3264
3264
  function formatComparator(comparator) {
3265
- return "".concat(comparator.operator).concat(comparator.operand);
3265
+ return "" + comparator.operator + comparator.operand;
3266
3266
  }
3267
3267
  })(ts || (ts = {}));
3268
3268
  /*@internal*/
@@ -3560,7 +3560,7 @@ var ts;
3560
3560
  fs = require("fs");
3561
3561
  }
3562
3562
  catch (e) {
3563
- throw new Error("tracing requires having fs\n(original error: ".concat(e.message || e, ")"));
3563
+ throw new Error("tracing requires having fs\n(original error: " + (e.message || e) + ")");
3564
3564
  }
3565
3565
  }
3566
3566
  mode = tracingMode;
@@ -3572,11 +3572,11 @@ var ts;
3572
3572
  if (!fs.existsSync(traceDir)) {
3573
3573
  fs.mkdirSync(traceDir, { recursive: true });
3574
3574
  }
3575
- var countPart = mode === "build" ? ".".concat(process.pid, "-").concat(++traceCount)
3576
- : mode === "server" ? ".".concat(process.pid)
3575
+ var countPart = mode === "build" ? "." + process.pid + "-" + ++traceCount
3576
+ : mode === "server" ? "." + process.pid
3577
3577
  : "";
3578
- var tracePath = ts.combinePaths(traceDir, "trace".concat(countPart, ".json"));
3579
- var typesPath = ts.combinePaths(traceDir, "types".concat(countPart, ".json"));
3578
+ var tracePath = ts.combinePaths(traceDir, "trace" + countPart + ".json");
3579
+ var typesPath = ts.combinePaths(traceDir, "types" + countPart + ".json");
3580
3580
  legend.push({
3581
3581
  configFilePath: configFilePath,
3582
3582
  tracePath: tracePath,
@@ -3666,7 +3666,7 @@ var ts;
3666
3666
  }
3667
3667
  // test if [time,endTime) straddles a sampling point
3668
3668
  else if (sampleInterval - (time % sampleInterval) <= endTime - time) {
3669
- writeEvent("X", phase, name, args, "\"dur\":".concat(endTime - time), time);
3669
+ writeEvent("X", phase, name, args, "\"dur\":" + (endTime - time), time);
3670
3670
  }
3671
3671
  }
3672
3672
  function writeEvent(eventType, phase, name, args, extras, time) {
@@ -3675,11 +3675,11 @@ var ts;
3675
3675
  if (mode === "server" && phase === "checkTypes" /* CheckTypes */)
3676
3676
  return;
3677
3677
  ts.performance.mark("beginTracing");
3678
- fs.writeSync(traceFd, ",\n{\"pid\":1,\"tid\":1,\"ph\":\"".concat(eventType, "\",\"cat\":\"").concat(phase, "\",\"ts\":").concat(time, ",\"name\":\"").concat(name, "\""));
3678
+ fs.writeSync(traceFd, ",\n{\"pid\":1,\"tid\":1,\"ph\":\"" + eventType + "\",\"cat\":\"" + phase + "\",\"ts\":" + time + ",\"name\":\"" + name + "\"");
3679
3679
  if (extras)
3680
- fs.writeSync(traceFd, ",".concat(extras));
3680
+ fs.writeSync(traceFd, "," + extras);
3681
3681
  if (args)
3682
- fs.writeSync(traceFd, ",\"args\":".concat(JSON.stringify(args)));
3682
+ fs.writeSync(traceFd, ",\"args\":" + JSON.stringify(args));
3683
3683
  fs.writeSync(traceFd, "}");
3684
3684
  ts.performance.mark("endTracing");
3685
3685
  ts.performance.measure("Tracing", "beginTracing", "endTracing");
@@ -5792,7 +5792,7 @@ var ts;
5792
5792
  pollingChunkSize = getCustomPollingBasedLevels("TSC_WATCH_POLLINGCHUNKSIZE", defaultChunkLevels) || pollingChunkSize;
5793
5793
  ts.unchangedPollThresholds = getCustomPollingBasedLevels("TSC_WATCH_UNCHANGEDPOLLTHRESHOLDS", defaultChunkLevels) || ts.unchangedPollThresholds;
5794
5794
  function getLevel(envVar, level) {
5795
- return system.getEnvironmentVariable("".concat(envVar, "_").concat(level.toUpperCase()));
5795
+ return system.getEnvironmentVariable(envVar + "_" + level.toUpperCase());
5796
5796
  }
5797
5797
  function getCustomLevels(baseVariable) {
5798
5798
  var customLevels;
@@ -6261,7 +6261,7 @@ var ts;
6261
6261
  }
6262
6262
  function onTimerToUpdateChildWatches() {
6263
6263
  timerToUpdateChildWatches = undefined;
6264
- sysLog("sysLog:: onTimerToUpdateChildWatches:: ".concat(cacheToUpdateChildWatches.size));
6264
+ sysLog("sysLog:: onTimerToUpdateChildWatches:: " + cacheToUpdateChildWatches.size);
6265
6265
  var start = ts.timestamp();
6266
6266
  var invokeMap = new ts.Map();
6267
6267
  while (!timerToUpdateChildWatches && cacheToUpdateChildWatches.size) {
@@ -6274,7 +6274,7 @@ var ts;
6274
6274
  var hasChanges = updateChildWatches(dirName, dirPath, options);
6275
6275
  invokeCallbacks(dirPath, invokeMap, hasChanges ? undefined : fileNames);
6276
6276
  }
6277
- sysLog("sysLog:: invokingWatchers:: Elapsed:: ".concat(ts.timestamp() - start, "ms:: ").concat(cacheToUpdateChildWatches.size));
6277
+ sysLog("sysLog:: invokingWatchers:: Elapsed:: " + (ts.timestamp() - start) + "ms:: " + cacheToUpdateChildWatches.size);
6278
6278
  callbackCache.forEach(function (callbacks, rootDirName) {
6279
6279
  var existing = invokeMap.get(rootDirName);
6280
6280
  if (existing) {
@@ -6290,7 +6290,7 @@ var ts;
6290
6290
  }
6291
6291
  });
6292
6292
  var elapsed = ts.timestamp() - start;
6293
- sysLog("sysLog:: Elapsed:: ".concat(elapsed, "ms:: onTimerToUpdateChildWatches:: ").concat(cacheToUpdateChildWatches.size, " ").concat(timerToUpdateChildWatches));
6293
+ sysLog("sysLog:: Elapsed:: " + elapsed + "ms:: onTimerToUpdateChildWatches:: " + cacheToUpdateChildWatches.size + " " + timerToUpdateChildWatches);
6294
6294
  }
6295
6295
  function removeChildWatches(parentWatcher) {
6296
6296
  if (!parentWatcher)
@@ -6750,7 +6750,7 @@ var ts;
6750
6750
  var remappedPaths = new ts.Map();
6751
6751
  var normalizedDir = ts.normalizeSlashes(__dirname);
6752
6752
  // Windows rooted dir names need an extra `/` prepended to be valid file:/// urls
6753
- var fileUrlRoot = "file://".concat(ts.getRootLength(normalizedDir) === 1 ? "" : "/").concat(normalizedDir);
6753
+ var fileUrlRoot = "file://" + (ts.getRootLength(normalizedDir) === 1 ? "" : "/") + normalizedDir;
6754
6754
  for (var _i = 0, _a = profile.nodes; _i < _a.length; _i++) {
6755
6755
  var node = _a[_i];
6756
6756
  if (node.callFrame.url) {
@@ -6759,7 +6759,7 @@ var ts;
6759
6759
  node.callFrame.url = ts.getRelativePathToDirectoryOrUrl(fileUrlRoot, url, fileUrlRoot, ts.createGetCanonicalFileName(useCaseSensitiveFileNames), /*isAbsolutePathAnUrl*/ true);
6760
6760
  }
6761
6761
  else if (!nativePattern.test(url)) {
6762
- node.callFrame.url = (remappedPaths.has(url) ? remappedPaths : remappedPaths.set(url, "external".concat(externalFileCounter, ".js"))).get(url);
6762
+ node.callFrame.url = (remappedPaths.has(url) ? remappedPaths : remappedPaths.set(url, "external" + externalFileCounter + ".js")).get(url);
6763
6763
  externalFileCounter++;
6764
6764
  }
6765
6765
  }
@@ -6775,7 +6775,7 @@ var ts;
6775
6775
  if (!err) {
6776
6776
  try {
6777
6777
  if ((_b = statSync(profilePath)) === null || _b === void 0 ? void 0 : _b.isDirectory()) {
6778
- profilePath = _path.join(profilePath, "".concat((new Date()).toISOString().replace(/:/g, "-"), "+P").concat(process.pid, ".cpuprofile"));
6778
+ profilePath = _path.join(profilePath, (new Date()).toISOString().replace(/:/g, "-") + "+P" + process.pid + ".cpuprofile");
6779
6779
  }
6780
6780
  }
6781
6781
  catch (_c) {
@@ -6877,7 +6877,7 @@ var ts;
6877
6877
  * @param createWatcher
6878
6878
  */
6879
6879
  function invokeCallbackAndUpdateWatcher(createWatcher) {
6880
- sysLog("sysLog:: ".concat(fileOrDirectory, ":: Changing watcher to ").concat(createWatcher === watchPresentFileSystemEntry ? "Present" : "Missing", "FileSystemEntryWatcher"));
6880
+ sysLog("sysLog:: " + fileOrDirectory + ":: Changing watcher to " + (createWatcher === watchPresentFileSystemEntry ? "Present" : "Missing") + "FileSystemEntryWatcher");
6881
6881
  // Call the callback for current directory
6882
6882
  callback("rename", "");
6883
6883
  // If watcher is not closed, update it
@@ -6902,7 +6902,7 @@ var ts;
6902
6902
  }
6903
6903
  }
6904
6904
  if (hitSystemWatcherLimit) {
6905
- sysLog("sysLog:: ".concat(fileOrDirectory, ":: Defaulting to fsWatchFile"));
6905
+ sysLog("sysLog:: " + fileOrDirectory + ":: Defaulting to fsWatchFile");
6906
6906
  return watchPresentFileSystemEntryWithFsWatchFile();
6907
6907
  }
6908
6908
  try {
@@ -6918,7 +6918,7 @@ var ts;
6918
6918
  // Eg. on linux the number of watches are limited and one could easily exhaust watches and the exception ENOSPC is thrown when creating watcher at that point
6919
6919
  // so instead of throwing error, use fs.watchFile
6920
6920
  hitSystemWatcherLimit || (hitSystemWatcherLimit = e.code === "ENOSPC");
6921
- sysLog("sysLog:: ".concat(fileOrDirectory, ":: Changing to fsWatchFile"));
6921
+ sysLog("sysLog:: " + fileOrDirectory + ":: Changing to fsWatchFile");
6922
6922
  return watchPresentFileSystemEntryWithFsWatchFile();
6923
6923
  }
6924
6924
  }
@@ -7636,18 +7636,6 @@ var ts;
7636
7636
  return getCanonicalFileName(nonCanonicalizedPath);
7637
7637
  }
7638
7638
  ts.toPath = toPath;
7639
- function normalizePathAndParts(path) {
7640
- path = normalizeSlashes(path);
7641
- var _a = reducePathComponents(getPathComponents(path)), root = _a[0], parts = _a.slice(1);
7642
- if (parts.length) {
7643
- var joinedParts = root + parts.join(ts.directorySeparator);
7644
- return { path: hasTrailingDirectorySeparator(path) ? ensureTrailingDirectorySeparator(joinedParts) : joinedParts, parts: parts };
7645
- }
7646
- else {
7647
- return { path: root, parts: parts };
7648
- }
7649
- }
7650
- ts.normalizePathAndParts = normalizePathAndParts;
7651
7639
  function removeTrailingDirectorySeparator(path) {
7652
7640
  if (hasTrailingDirectorySeparator(path)) {
7653
7641
  return path.substr(0, path.length - 1);
@@ -9933,7 +9921,7 @@ var ts;
9933
9921
  line = line < 0 ? 0 : line >= lineStarts.length ? lineStarts.length - 1 : line;
9934
9922
  }
9935
9923
  else {
9936
- 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"));
9924
+ ts.Debug.fail("Bad line number. Line: " + line + ", lineStarts.length: " + lineStarts.length + " , line map is correct? " + (debugText !== undefined ? ts.arraysEqual(lineStarts, computeLineStarts(debugText)) : "unknown"));
9937
9925
  }
9938
9926
  }
9939
9927
  var res = lineStarts[line] + character;
@@ -12823,7 +12811,7 @@ var ts;
12823
12811
  : "linkplain";
12824
12812
  var name = link.name ? ts.entityNameToString(link.name) : "";
12825
12813
  var space = link.name && link.text.startsWith("://") ? "" : " ";
12826
- return "{@".concat(kind, " ").concat(name).concat(space).concat(link.text, "}");
12814
+ return "{@" + kind + " " + name + space + link.text + "}";
12827
12815
  }
12828
12816
  /**
12829
12817
  * Gets the effective type parameters. If the node was parsed in a
@@ -14080,11 +14068,11 @@ var ts;
14080
14068
  }
14081
14069
  function packageIdToPackageName(_a) {
14082
14070
  var name = _a.name, subModuleName = _a.subModuleName;
14083
- return subModuleName ? "".concat(name, "/").concat(subModuleName) : name;
14071
+ return subModuleName ? name + "/" + subModuleName : name;
14084
14072
  }
14085
14073
  ts.packageIdToPackageName = packageIdToPackageName;
14086
14074
  function packageIdToString(packageId) {
14087
- return "".concat(packageIdToPackageName(packageId), "@").concat(packageId.version);
14075
+ return packageIdToPackageName(packageId) + "@" + packageId.version;
14088
14076
  }
14089
14077
  ts.packageIdToString = packageIdToString;
14090
14078
  function typeDirectiveIsEqualTo(oldResolution, newResolution) {
@@ -14167,7 +14155,7 @@ var ts;
14167
14155
  function nodePosToString(node) {
14168
14156
  var file = getSourceFileOfNode(node);
14169
14157
  var loc = ts.getLineAndCharacterOfPosition(file, node.pos);
14170
- return "".concat(file.fileName, "(").concat(loc.line + 1, ",").concat(loc.character + 1, ")");
14158
+ return file.fileName + "(" + (loc.line + 1) + "," + (loc.character + 1) + ")";
14171
14159
  }
14172
14160
  ts.nodePosToString = nodePosToString;
14173
14161
  function getEndLinePosition(line, sourceFile) {
@@ -14306,7 +14294,7 @@ var ts;
14306
14294
  ts.isPinnedComment = isPinnedComment;
14307
14295
  function createCommentDirectivesMap(sourceFile, commentDirectives) {
14308
14296
  var directivesByLine = new ts.Map(commentDirectives.map(function (commentDirective) { return ([
14309
- "".concat(ts.getLineAndCharacterOfPosition(sourceFile, commentDirective.range.end).line),
14297
+ "" + ts.getLineAndCharacterOfPosition(sourceFile, commentDirective.range.end).line,
14310
14298
  commentDirective,
14311
14299
  ]); }));
14312
14300
  var usedLines = new ts.Map();
@@ -14323,10 +14311,10 @@ var ts;
14323
14311
  });
14324
14312
  }
14325
14313
  function markUsed(line) {
14326
- if (!directivesByLine.has("".concat(line))) {
14314
+ if (!directivesByLine.has("" + line)) {
14327
14315
  return false;
14328
14316
  }
14329
- usedLines.set("".concat(line), true);
14317
+ usedLines.set("" + line, true);
14330
14318
  return true;
14331
14319
  }
14332
14320
  }
@@ -14556,7 +14544,7 @@ var ts;
14556
14544
  }
14557
14545
  return node.text;
14558
14546
  }
14559
- return ts.Debug.fail("Literal kind '".concat(node.kind, "' not accounted for."));
14547
+ return ts.Debug.fail("Literal kind '" + node.kind + "' not accounted for.");
14560
14548
  }
14561
14549
  ts.getLiteralText = getLiteralText;
14562
14550
  function canUseOriginalText(node, flags) {
@@ -17137,11 +17125,11 @@ var ts;
17137
17125
  }
17138
17126
  ts.getEscapedTextOfIdentifierOrLiteral = getEscapedTextOfIdentifierOrLiteral;
17139
17127
  function getPropertyNameForUniqueESSymbol(symbol) {
17140
- return "__@".concat(ts.getSymbolId(symbol), "@").concat(symbol.escapedName);
17128
+ return "__@" + ts.getSymbolId(symbol) + "@" + symbol.escapedName;
17141
17129
  }
17142
17130
  ts.getPropertyNameForUniqueESSymbol = getPropertyNameForUniqueESSymbol;
17143
17131
  function getSymbolNameForPrivateIdentifier(containingClassSymbol, description) {
17144
- return "__#".concat(ts.getSymbolId(containingClassSymbol), "@").concat(description);
17132
+ return "__#" + ts.getSymbolId(containingClassSymbol) + "@" + description;
17145
17133
  }
17146
17134
  ts.getSymbolNameForPrivateIdentifier = getSymbolNameForPrivateIdentifier;
17147
17135
  function isKnownSymbol(symbol) {
@@ -19843,7 +19831,7 @@ var ts;
19843
19831
  }
19844
19832
  ts.getJSXImplicitImportBase = getJSXImplicitImportBase;
19845
19833
  function getJSXRuntimeImport(base, options) {
19846
- return base ? "".concat(base, "/").concat(options.jsx === 5 /* ReactJSXDev */ ? "jsx-dev-runtime" : "jsx-runtime") : undefined;
19834
+ return base ? base + "/" + (options.jsx === 5 /* ReactJSXDev */ ? "jsx-dev-runtime" : "jsx-runtime") : undefined;
19847
19835
  }
19848
19836
  ts.getJSXRuntimeImport = getJSXRuntimeImport;
19849
19837
  function hasZeroOrOneAsteriskCharacter(str) {
@@ -19950,7 +19938,7 @@ var ts;
19950
19938
  }
19951
19939
  var wildcardCharCodes = [42 /* asterisk */, 63 /* question */];
19952
19940
  ts.commonPackageFolders = ["node_modules", "bower_components", "jspm_packages"];
19953
- var implicitExcludePathRegexPattern = "(?!(".concat(ts.commonPackageFolders.join("|"), ")(/|$))");
19941
+ var implicitExcludePathRegexPattern = "(?!(" + ts.commonPackageFolders.join("|") + ")(/|$))";
19954
19942
  var filesMatcher = {
19955
19943
  /**
19956
19944
  * Matches any single directory segment unless it is the last segment and a .min.js file
@@ -19963,7 +19951,7 @@ var ts;
19963
19951
  * Regex for the ** wildcard. Matches any number of subdirectories. When used for including
19964
19952
  * files or directories, does not match subdirectories that start with a . character
19965
19953
  */
19966
- doubleAsteriskRegexFragment: "(/".concat(implicitExcludePathRegexPattern, "[^/.][^/]*)*?"),
19954
+ doubleAsteriskRegexFragment: "(/" + implicitExcludePathRegexPattern + "[^/.][^/]*)*?",
19967
19955
  replaceWildcardCharacter: function (match) { return replaceWildcardCharacter(match, filesMatcher.singleAsteriskRegexFragment); }
19968
19956
  };
19969
19957
  var directoriesMatcher = {
@@ -19972,7 +19960,7 @@ var ts;
19972
19960
  * Regex for the ** wildcard. Matches any number of subdirectories. When used for including
19973
19961
  * files or directories, does not match subdirectories that start with a . character
19974
19962
  */
19975
- doubleAsteriskRegexFragment: "(/".concat(implicitExcludePathRegexPattern, "[^/.][^/]*)*?"),
19963
+ doubleAsteriskRegexFragment: "(/" + implicitExcludePathRegexPattern + "[^/.][^/]*)*?",
19976
19964
  replaceWildcardCharacter: function (match) { return replaceWildcardCharacter(match, directoriesMatcher.singleAsteriskRegexFragment); }
19977
19965
  };
19978
19966
  var excludeMatcher = {
@@ -19990,10 +19978,10 @@ var ts;
19990
19978
  if (!patterns || !patterns.length) {
19991
19979
  return undefined;
19992
19980
  }
19993
- var pattern = patterns.map(function (pattern) { return "(".concat(pattern, ")"); }).join("|");
19981
+ var pattern = patterns.map(function (pattern) { return "(" + pattern + ")"; }).join("|");
19994
19982
  // If excluding, match "foo/bar/baz...", but if including, only allow "foo".
19995
19983
  var terminator = usage === "exclude" ? "($|/)" : "$";
19996
- return "^(".concat(pattern, ")").concat(terminator);
19984
+ return "^(" + pattern + ")" + terminator;
19997
19985
  }
19998
19986
  ts.getRegularExpressionForWildcard = getRegularExpressionForWildcard;
19999
19987
  function getRegularExpressionsForWildcards(specs, basePath, usage) {
@@ -20015,7 +20003,7 @@ var ts;
20015
20003
  ts.isImplicitGlob = isImplicitGlob;
20016
20004
  function getPatternFromSpec(spec, basePath, usage) {
20017
20005
  var pattern = spec && getSubPatternFromSpec(spec, basePath, usage, wildcardMatchers[usage]);
20018
- return pattern && "^(".concat(pattern, ")").concat(usage === "exclude" ? "($|/)" : "$");
20006
+ return pattern && "^(" + pattern + ")" + (usage === "exclude" ? "($|/)" : "$");
20019
20007
  }
20020
20008
  ts.getPatternFromSpec = getPatternFromSpec;
20021
20009
  function getSubPatternFromSpec(spec, basePath, usage, _a) {
@@ -20093,7 +20081,7 @@ var ts;
20093
20081
  currentDirectory = ts.normalizePath(currentDirectory);
20094
20082
  var absolutePath = ts.combinePaths(currentDirectory, path);
20095
20083
  return {
20096
- includeFilePatterns: ts.map(getRegularExpressionsForWildcards(includes, absolutePath, "files"), function (pattern) { return "^".concat(pattern, "$"); }),
20084
+ includeFilePatterns: ts.map(getRegularExpressionsForWildcards(includes, absolutePath, "files"), function (pattern) { return "^" + pattern + "$"; }),
20097
20085
  includeFilePattern: getRegularExpressionForWildcard(includes, absolutePath, "files"),
20098
20086
  includeDirectoryPattern: getRegularExpressionForWildcard(includes, absolutePath, "directories"),
20099
20087
  excludePattern: getRegularExpressionForWildcard(excludes, absolutePath, "exclude"),
@@ -20374,7 +20362,7 @@ var ts;
20374
20362
  */
20375
20363
  function extensionFromPath(path) {
20376
20364
  var ext = tryGetExtensionFromPath(path);
20377
- return ext !== undefined ? ext : ts.Debug.fail("File ".concat(path, " has unknown extension."));
20365
+ return ext !== undefined ? ext : ts.Debug.fail("File " + path + " has unknown extension.");
20378
20366
  }
20379
20367
  ts.extensionFromPath = extensionFromPath;
20380
20368
  function isAnySupportedFileExtension(path) {
@@ -26457,7 +26445,7 @@ var ts;
26457
26445
  case 326 /* JSDocAugmentsTag */: return "augments";
26458
26446
  case 327 /* JSDocImplementsTag */: return "implements";
26459
26447
  default:
26460
- return ts.Debug.fail("Unsupported kind: ".concat(ts.Debug.formatSyntaxKind(kind)));
26448
+ return ts.Debug.fail("Unsupported kind: " + ts.Debug.formatSyntaxKind(kind));
26461
26449
  }
26462
26450
  }
26463
26451
  var rawTextScanner;
@@ -26785,7 +26773,7 @@ var ts;
26785
26773
  };
26786
26774
  var definedTextGetter_1 = function (path) {
26787
26775
  var result = textGetter_1(path);
26788
- return result !== undefined ? result : "/* Input file ".concat(path, " was missing */\r\n");
26776
+ return result !== undefined ? result : "/* Input file " + path + " was missing */\r\n";
26789
26777
  };
26790
26778
  var buildInfo_1;
26791
26779
  var getAndCacheBuildInfo_1 = function (getText) {
@@ -31323,7 +31311,7 @@ var ts;
31323
31311
  for (var _i = 0, viableKeywordSuggestions_1 = viableKeywordSuggestions; _i < viableKeywordSuggestions_1.length; _i++) {
31324
31312
  var keyword = viableKeywordSuggestions_1[_i];
31325
31313
  if (expressionText.length > keyword.length + 2 && ts.startsWith(expressionText, keyword)) {
31326
- return "".concat(keyword, " ").concat(expressionText.slice(keyword.length));
31314
+ return keyword + " " + expressionText.slice(keyword.length);
31327
31315
  }
31328
31316
  }
31329
31317
  return undefined;
@@ -38093,7 +38081,7 @@ var ts;
38093
38081
  if (namedArgRegExCache.has(name)) {
38094
38082
  return namedArgRegExCache.get(name);
38095
38083
  }
38096
- var result = new RegExp("(\\s".concat(name, "\\s*=\\s*)(?:(?:'([^']*)')|(?:\"([^\"]*)\"))"), "im");
38084
+ var result = new RegExp("(\\s" + name + "\\s*=\\s*)(?:(?:'([^']*)')|(?:\"([^\"]*)\"))", "im");
38097
38085
  namedArgRegExCache.set(name, result);
38098
38086
  return result;
38099
38087
  }
@@ -39571,8 +39559,8 @@ var ts;
39571
39559
  }
39572
39560
  ts.createCompilerDiagnosticForInvalidCustomType = createCompilerDiagnosticForInvalidCustomType;
39573
39561
  function createDiagnosticForInvalidCustomType(opt, createDiagnostic) {
39574
- var namesOfType = ts.arrayFrom(opt.type.keys()).map(function (key) { return "'".concat(key, "'"); }).join(", ");
39575
- return createDiagnostic(ts.Diagnostics.Argument_for_0_option_must_be_Colon_1, "--".concat(opt.name), namesOfType);
39562
+ var namesOfType = ts.arrayFrom(opt.type.keys()).map(function (key) { return "'" + key + "'"; }).join(", ");
39563
+ return createDiagnostic(ts.Diagnostics.Argument_for_0_option_must_be_Colon_1, "--" + opt.name, namesOfType);
39576
39564
  }
39577
39565
  /* @internal */
39578
39566
  function parseCustomTypeOption(opt, value, errors) {
@@ -40366,10 +40354,10 @@ var ts;
40366
40354
  var newValue = compilerOptionsMap.get(cmd.name);
40367
40355
  var defaultValue = getDefaultValueForOption(cmd);
40368
40356
  if (newValue !== defaultValue) {
40369
- result.push("".concat(tab).concat(cmd.name, ": ").concat(newValue));
40357
+ result.push("" + tab + cmd.name + ": " + newValue);
40370
40358
  }
40371
40359
  else if (ts.hasProperty(ts.defaultInitCompilerOptions, cmd.name)) {
40372
- result.push("".concat(tab).concat(cmd.name, ": ").concat(defaultValue));
40360
+ result.push("" + tab + cmd.name + ": " + defaultValue);
40373
40361
  }
40374
40362
  });
40375
40363
  return result.join(newLine) + newLine;
@@ -40420,19 +40408,19 @@ var ts;
40420
40408
  if (entries.length !== 0) {
40421
40409
  entries.push({ value: "" });
40422
40410
  }
40423
- entries.push({ value: "/* ".concat(category, " */") });
40411
+ entries.push({ value: "/* " + category + " */" });
40424
40412
  for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {
40425
40413
  var option = options_1[_i];
40426
40414
  var optionName = void 0;
40427
40415
  if (compilerOptionsMap.has(option.name)) {
40428
- optionName = "\"".concat(option.name, "\": ").concat(JSON.stringify(compilerOptionsMap.get(option.name))).concat((seenKnownKeys += 1) === compilerOptionsMap.size ? "" : ",");
40416
+ optionName = "\"" + option.name + "\": " + JSON.stringify(compilerOptionsMap.get(option.name)) + ((seenKnownKeys += 1) === compilerOptionsMap.size ? "" : ",");
40429
40417
  }
40430
40418
  else {
40431
- optionName = "// \"".concat(option.name, "\": ").concat(JSON.stringify(getDefaultValueForOption(option)), ",");
40419
+ optionName = "// \"" + option.name + "\": " + JSON.stringify(getDefaultValueForOption(option)) + ",";
40432
40420
  }
40433
40421
  entries.push({
40434
40422
  value: optionName,
40435
- description: "/* ".concat(option.description && ts.getLocaleSpecificMessage(option.description) || option.name, " */")
40423
+ description: "/* " + (option.description && ts.getLocaleSpecificMessage(option.description) || option.name) + " */"
40436
40424
  });
40437
40425
  marginLength = Math.max(optionName.length, marginLength);
40438
40426
  }
@@ -40441,25 +40429,25 @@ var ts;
40441
40429
  var tab = makePadding(2);
40442
40430
  var result = [];
40443
40431
  result.push("{");
40444
- result.push("".concat(tab, "\"compilerOptions\": {"));
40445
- result.push("".concat(tab).concat(tab, "/* ").concat(ts.getLocaleSpecificMessage(ts.Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_json_to_read_more_about_this_file), " */"));
40432
+ result.push(tab + "\"compilerOptions\": {");
40433
+ result.push("" + tab + tab + "/* " + ts.getLocaleSpecificMessage(ts.Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_json_to_read_more_about_this_file) + " */");
40446
40434
  result.push("");
40447
40435
  // Print out each row, aligning all the descriptions on the same column.
40448
40436
  for (var _a = 0, entries_2 = entries; _a < entries_2.length; _a++) {
40449
40437
  var entry = entries_2[_a];
40450
40438
  var value = entry.value, _b = entry.description, description = _b === void 0 ? "" : _b;
40451
- result.push(value && "".concat(tab).concat(tab).concat(value).concat(description && (makePadding(marginLength - value.length + 2) + description)));
40439
+ result.push(value && "" + tab + tab + value + (description && (makePadding(marginLength - value.length + 2) + description)));
40452
40440
  }
40453
40441
  if (fileNames.length) {
40454
- result.push("".concat(tab, "},"));
40455
- result.push("".concat(tab, "\"files\": ["));
40442
+ result.push(tab + "},");
40443
+ result.push(tab + "\"files\": [");
40456
40444
  for (var i = 0; i < fileNames.length; i++) {
40457
- result.push("".concat(tab).concat(tab).concat(JSON.stringify(fileNames[i])).concat(i === fileNames.length - 1 ? "" : ","));
40445
+ result.push("" + tab + tab + JSON.stringify(fileNames[i]) + (i === fileNames.length - 1 ? "" : ","));
40458
40446
  }
40459
- result.push("".concat(tab, "]"));
40447
+ result.push(tab + "]");
40460
40448
  }
40461
40449
  else {
40462
- result.push("".concat(tab, "}"));
40450
+ result.push(tab + "}");
40463
40451
  }
40464
40452
  result.push("}");
40465
40453
  return result.join(newLine) + newLine;
@@ -40857,7 +40845,7 @@ var ts;
40857
40845
  if (ts.isRootedDiskPath(extendedConfig) || ts.startsWith(extendedConfig, "./") || ts.startsWith(extendedConfig, "../")) {
40858
40846
  var extendedConfigPath = ts.getNormalizedAbsolutePath(extendedConfig, basePath);
40859
40847
  if (!host.fileExists(extendedConfigPath) && !ts.endsWith(extendedConfigPath, ".json" /* Json */)) {
40860
- extendedConfigPath = "".concat(extendedConfigPath, ".json");
40848
+ extendedConfigPath = extendedConfigPath + ".json";
40861
40849
  if (!host.fileExists(extendedConfigPath)) {
40862
40850
  errors.push(createDiagnostic(ts.Diagnostics.File_0_not_found, extendedConfig));
40863
40851
  return undefined;
@@ -41102,7 +41090,7 @@ var ts;
41102
41090
  // Valid only if *.json specified
41103
41091
  if (!jsonOnlyIncludeRegexes) {
41104
41092
  var includes = validatedIncludeSpecs.filter(function (s) { return ts.endsWith(s, ".json" /* Json */); });
41105
- var includeFilePatterns = ts.map(ts.getRegularExpressionsForWildcards(includes, basePath, "files"), function (pattern) { return "^".concat(pattern, "$"); });
41093
+ var includeFilePatterns = ts.map(ts.getRegularExpressionsForWildcards(includes, basePath, "files"), function (pattern) { return "^" + pattern + "$"; });
41106
41094
  jsonOnlyIncludeRegexes = includeFilePatterns ? includeFilePatterns.map(function (pattern) { return ts.getRegexFromPattern(pattern, host.useCaseSensitiveFileNames); }) : ts.emptyArray;
41107
41095
  }
41108
41096
  var includeIndex = ts.findIndex(jsonOnlyIncludeRegexes, function (re) { return re.test(file); });
@@ -41538,7 +41526,7 @@ var ts;
41538
41526
  var bestVersionKey = result.version, bestVersionPaths = result.paths;
41539
41527
  if (typeof bestVersionPaths !== "object") {
41540
41528
  if (state.traceEnabled) {
41541
- trace(state.host, ts.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2, "typesVersions['".concat(bestVersionKey, "']"), "object", typeof bestVersionPaths);
41529
+ trace(state.host, ts.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2, "typesVersions['" + bestVersionKey + "']", "object", typeof bestVersionPaths);
41542
41530
  }
41543
41531
  return;
41544
41532
  }
@@ -41721,7 +41709,7 @@ var ts;
41721
41709
  result_4 = searchResult && searchResult.value;
41722
41710
  }
41723
41711
  else {
41724
- var candidate = ts.normalizePathAndParts(ts.combinePaths(initialLocationForSecondaryLookup, typeReferenceDirectiveName)).path;
41712
+ var candidate = normalizePathForCJSResolution(initialLocationForSecondaryLookup, typeReferenceDirectiveName).path;
41725
41713
  result_4 = nodeLoadModuleByRelativeName(Extensions.DtsOnly, candidate, /*onlyRecordFailures*/ false, moduleResolutionState, /*considerPackageJson*/ true);
41726
41714
  }
41727
41715
  return resolvedTypeScriptOnly(result_4);
@@ -41945,7 +41933,7 @@ var ts;
41945
41933
  };
41946
41934
  return cache;
41947
41935
  function getUnderlyingCacheKey(specifier, mode) {
41948
- var result = mode === undefined ? specifier : "".concat(mode, "|").concat(specifier);
41936
+ var result = mode === undefined ? specifier : mode + "|" + specifier;
41949
41937
  memoizedReverseKeys.set(result, [specifier, mode]);
41950
41938
  return result;
41951
41939
  }
@@ -41976,7 +41964,7 @@ var ts;
41976
41964
  }
41977
41965
  function getOrCreateCacheForModuleName(nonRelativeModuleName, mode, redirectedReference) {
41978
41966
  ts.Debug.assert(!ts.isExternalModuleNameRelative(nonRelativeModuleName));
41979
- return getOrCreateCache(moduleNameToDirectoryMap, redirectedReference, mode === undefined ? nonRelativeModuleName : "".concat(mode, "|").concat(nonRelativeModuleName), createPerModuleNameCache);
41967
+ return getOrCreateCache(moduleNameToDirectoryMap, redirectedReference, mode === undefined ? nonRelativeModuleName : mode + "|" + nonRelativeModuleName, createPerModuleNameCache);
41980
41968
  }
41981
41969
  function createPerModuleNameCache() {
41982
41970
  var directoryPathMap = new ts.Map();
@@ -42123,10 +42111,10 @@ var ts;
42123
42111
  result = classicNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference);
42124
42112
  break;
42125
42113
  default:
42126
- return ts.Debug.fail("Unexpected moduleResolution: ".concat(moduleResolution));
42114
+ return ts.Debug.fail("Unexpected moduleResolution: " + moduleResolution);
42127
42115
  }
42128
42116
  if (result && result.resolvedModule)
42129
- ts.perfLogger.logInfoEvent("Module \"".concat(moduleName, "\" resolved to \"").concat(result.resolvedModule.resolvedFileName, "\""));
42117
+ ts.perfLogger.logInfoEvent("Module \"" + moduleName + "\" resolved to \"" + result.resolvedModule.resolvedFileName + "\"");
42130
42118
  ts.perfLogger.logStopResolveModule((result && result.resolvedModule) ? "" + result.resolvedModule.resolvedFileName : "null");
42131
42119
  if (perFolderCache) {
42132
42120
  perFolderCache.set(moduleName, resolutionMode, result);
@@ -42329,7 +42317,7 @@ var ts;
42329
42317
  function resolveJSModule(moduleName, initialDir, host) {
42330
42318
  var _a = tryResolveJSModuleWorker(moduleName, initialDir, host), resolvedModule = _a.resolvedModule, failedLookupLocations = _a.failedLookupLocations;
42331
42319
  if (!resolvedModule) {
42332
- throw new Error("Could not resolve JS module '".concat(moduleName, "' starting at '").concat(initialDir, "'. Looked in: ").concat(failedLookupLocations.join(", ")));
42320
+ throw new Error("Could not resolve JS module '" + moduleName + "' starting at '" + initialDir + "'. Looked in: " + failedLookupLocations.join(", "));
42333
42321
  }
42334
42322
  return resolvedModule.resolvedFileName;
42335
42323
  }
@@ -42424,13 +42412,25 @@ var ts;
42424
42412
  return { value: resolvedValue && { resolved: resolvedValue, isExternalLibraryImport: true } };
42425
42413
  }
42426
42414
  else {
42427
- var _a = ts.normalizePathAndParts(ts.combinePaths(containingDirectory, moduleName)), candidate = _a.path, parts = _a.parts;
42415
+ var _a = normalizePathForCJSResolution(containingDirectory, moduleName), candidate = _a.path, parts = _a.parts;
42428
42416
  var resolved_2 = nodeLoadModuleByRelativeName(extensions, candidate, /*onlyRecordFailures*/ false, state, /*considerPackageJson*/ true);
42429
42417
  // Treat explicit "node_modules" import as an external library import.
42430
42418
  return resolved_2 && toSearchResult({ resolved: resolved_2, isExternalLibraryImport: ts.contains(parts, "node_modules") });
42431
42419
  }
42432
42420
  }
42433
42421
  }
42422
+ // If you import from "." inside a containing directory "/foo", the result of `normalizePath`
42423
+ // would be "/foo", but this loses the information that `foo` is a directory and we intended
42424
+ // to look inside of it. The Node CommonJS resolution algorithm doesn't call this out
42425
+ // (https://nodejs.org/api/modules.html#all-together), but it seems that module paths ending
42426
+ // in `.` are actually normalized to `./` before proceeding with the resolution algorithm.
42427
+ function normalizePathForCJSResolution(containingDirectory, moduleName) {
42428
+ var combined = ts.combinePaths(containingDirectory, moduleName);
42429
+ var parts = ts.getPathComponents(combined);
42430
+ var lastPart = ts.lastOrUndefined(parts);
42431
+ var path = lastPart === "." || lastPart === ".." ? ts.ensureTrailingDirectorySeparator(ts.normalizePath(combined)) : ts.normalizePath(combined);
42432
+ return { path: path, parts: parts };
42433
+ }
42434
42434
  function realPath(path, host, traceEnabled) {
42435
42435
  if (!host.realpath) {
42436
42436
  return path;
@@ -42439,7 +42439,7 @@ var ts;
42439
42439
  if (traceEnabled) {
42440
42440
  trace(host, ts.Diagnostics.Resolving_real_path_for_0_result_1, path, real);
42441
42441
  }
42442
- ts.Debug.assert(host.fileExists(real), "".concat(path, " linked to nonexistent file ").concat(real));
42442
+ ts.Debug.assert(host.fileExists(real), path + " linked to nonexistent file " + real);
42443
42443
  return real;
42444
42444
  }
42445
42445
  function nodeLoadModuleByRelativeName(extensions, candidate, onlyRecordFailures, state, considerPackageJson) {
@@ -42472,7 +42472,13 @@ var ts;
42472
42472
  onlyRecordFailures = true;
42473
42473
  }
42474
42474
  }
42475
- return loadNodeModuleFromDirectory(extensions, candidate, onlyRecordFailures, state, considerPackageJson);
42475
+ // esm mode relative imports shouldn't do any directory lookups (either inside `package.json`
42476
+ // files or implicit `index.js`es). This is a notable depature from cjs norms, where `./foo/pkg`
42477
+ // could have been redirected by `./foo/pkg/package.json` to an arbitrary location!
42478
+ if (!(state.features & NodeResolutionFeatures.EsmMode)) {
42479
+ return loadNodeModuleFromDirectory(extensions, candidate, onlyRecordFailures, state, considerPackageJson);
42480
+ }
42481
+ return undefined;
42476
42482
  }
42477
42483
  /*@internal*/
42478
42484
  ts.nodeModulesPathPart = "/node_modules/";
@@ -42839,7 +42845,16 @@ var ts;
42839
42845
  // Even if extensions is DtsOnly, we can still look up a .ts file as a result of package.json "types"
42840
42846
  var nextExtensions = extensions === Extensions.DtsOnly ? Extensions.TypeScript : extensions;
42841
42847
  // Don't do package.json lookup recursively, because Node.js' package lookup doesn't.
42842
- return nodeLoadModuleByRelativeName(nextExtensions, candidate, onlyRecordFailures, state, /*considerPackageJson*/ false);
42848
+ // Disable `EsmMode` for the resolution of the package path for cjs-mode packages (so the `main` field can omit extensions)
42849
+ // (technically it only emits a deprecation warning in esm packages right now, but that's probably
42850
+ // enough to mean we don't need to support it)
42851
+ var features = state.features;
42852
+ if ((jsonContent === null || jsonContent === void 0 ? void 0 : jsonContent.type) !== "module") {
42853
+ state.features &= ~NodeResolutionFeatures.EsmMode;
42854
+ }
42855
+ var result = nodeLoadModuleByRelativeName(nextExtensions, candidate, onlyRecordFailures, state, /*considerPackageJson*/ false);
42856
+ state.features = features;
42857
+ return result;
42843
42858
  };
42844
42859
  var onlyRecordFailuresForPackageFile = packageFile ? !ts.directoryProbablyExists(ts.getDirectoryPath(packageFile), state.host) : undefined;
42845
42860
  var onlyRecordFailuresForIndex = onlyRecordFailures || !ts.directoryProbablyExists(candidate, state.host);
@@ -42916,7 +42931,7 @@ var ts;
42916
42931
  return undefined;
42917
42932
  }
42918
42933
  var trailingParts = parts.slice(nameParts.length);
42919
- return loadModuleFromExports(scope, extensions, !ts.length(trailingParts) ? "." : ".".concat(ts.directorySeparator).concat(trailingParts.join(ts.directorySeparator)), state, cache, redirectedReference);
42934
+ return loadModuleFromExports(scope, extensions, !ts.length(trailingParts) ? "." : "." + ts.directorySeparator + trailingParts.join(ts.directorySeparator), state, cache, redirectedReference);
42920
42935
  }
42921
42936
  function loadModuleFromExports(scope, extensions, subpath, state, cache, redirectedReference) {
42922
42937
  if (!scope.packageJsonContent.exports) {
@@ -43184,6 +43199,14 @@ var ts;
43184
43199
  }
43185
43200
  var pathAndExtension = loadModuleFromFile(extensions, candidate, onlyRecordFailures, state) ||
43186
43201
  loadNodeModuleFromDirectoryWorker(extensions, candidate, onlyRecordFailures, state, packageInfo && packageInfo.packageJsonContent, packageInfo && packageInfo.versionPaths);
43202
+ if (!pathAndExtension && packageInfo
43203
+ && packageInfo.packageJsonContent.exports === undefined
43204
+ && packageInfo.packageJsonContent.main === undefined
43205
+ && state.features & NodeResolutionFeatures.EsmMode) {
43206
+ // EsmMode disables index lookup in `loadNodeModuleFromDirectoryWorker` generally, however non-relative package resolutions still assume
43207
+ // a default `index.js` entrypoint if no `main` or `exports` are present
43208
+ pathAndExtension = loadModuleFromFile(extensions, ts.combinePaths(candidate, "index.js"), onlyRecordFailures, state);
43209
+ }
43187
43210
  return withPackageId(packageInfo, pathAndExtension);
43188
43211
  };
43189
43212
  if (rest !== "") { // If "rest" is empty, we just did this search above.
@@ -43244,7 +43267,7 @@ var ts;
43244
43267
  }
43245
43268
  /* @internal */
43246
43269
  function getTypesPackageName(packageName) {
43247
- return "@types/".concat(mangleScopedPackageName(packageName));
43270
+ return "@types/" + mangleScopedPackageName(packageName);
43248
43271
  }
43249
43272
  ts.getTypesPackageName = getTypesPackageName;
43250
43273
  /* @internal */
@@ -43645,7 +43668,7 @@ var ts;
43645
43668
  if (name) {
43646
43669
  if (ts.isAmbientModule(node)) {
43647
43670
  var moduleName = ts.getTextOfIdentifierOrLiteral(name);
43648
- return (ts.isGlobalScopeAugmentation(node) ? "__global" : "\"".concat(moduleName, "\""));
43671
+ return (ts.isGlobalScopeAugmentation(node) ? "__global" : "\"" + moduleName + "\"");
43649
43672
  }
43650
43673
  if (name.kind === 161 /* ComputedPropertyName */) {
43651
43674
  var nameExpression = name.expression;
@@ -43702,7 +43725,7 @@ var ts;
43702
43725
  case 163 /* Parameter */:
43703
43726
  // Parameters with names are handled at the top of this function. Parameters
43704
43727
  // without names can only come from JSDocFunctionTypes.
43705
- ts.Debug.assert(node.parent.kind === 315 /* JSDocFunctionType */, "Impossible parameter parent kind", function () { return "parent is: ".concat(ts.SyntaxKind ? ts.SyntaxKind[node.parent.kind] : node.parent.kind, ", expected JSDocFunctionType"); });
43728
+ ts.Debug.assert(node.parent.kind === 315 /* JSDocFunctionType */, "Impossible parameter parent kind", function () { return "parent is: " + (ts.SyntaxKind ? ts.SyntaxKind[node.parent.kind] : node.parent.kind) + ", expected JSDocFunctionType"; });
43706
43729
  var functionType = node.parent;
43707
43730
  var index = functionType.parameters.indexOf(node);
43708
43731
  return "arg" + index;
@@ -43814,7 +43837,7 @@ var ts;
43814
43837
  var relatedInformation_1 = [];
43815
43838
  if (ts.isTypeAliasDeclaration(node) && ts.nodeIsMissing(node.type) && ts.hasSyntacticModifier(node, 1 /* Export */) && symbol.flags & (2097152 /* Alias */ | 788968 /* Type */ | 1920 /* Namespace */)) {
43816
43839
  // export type T; - may have meant export type { T }?
43817
- relatedInformation_1.push(createDiagnosticForNode(node, ts.Diagnostics.Did_you_mean_0, "export type { ".concat(ts.unescapeLeadingUnderscores(node.name.escapedText), " }")));
43840
+ relatedInformation_1.push(createDiagnosticForNode(node, ts.Diagnostics.Did_you_mean_0, "export type { " + ts.unescapeLeadingUnderscores(node.name.escapedText) + " }"));
43818
43841
  }
43819
43842
  var declarationName_1 = ts.getNameOfDeclaration(node) || node;
43820
43843
  ts.forEach(symbol.declarations, function (declaration, index) {
@@ -45890,7 +45913,7 @@ var ts;
45890
45913
  }
45891
45914
  }
45892
45915
  function bindSourceFileAsExternalModule() {
45893
- bindAnonymousDeclaration(file, 512 /* ValueModule */, "\"".concat(ts.removeFileExtension(file.fileName), "\""));
45916
+ bindAnonymousDeclaration(file, 512 /* ValueModule */, "\"" + ts.removeFileExtension(file.fileName) + "\"");
45894
45917
  }
45895
45918
  function bindExportAssignment(node) {
45896
45919
  if (!container.symbol || !container.symbol.exports) {
@@ -47990,7 +48013,7 @@ var ts;
47990
48013
  if (sourceSymbolFile && targetSymbolFile && amalgamatedDuplicates && !isEitherEnum && sourceSymbolFile !== targetSymbolFile) {
47991
48014
  var firstFile_1 = ts.comparePaths(sourceSymbolFile.path, targetSymbolFile.path) === -1 /* LessThan */ ? sourceSymbolFile : targetSymbolFile;
47992
48015
  var secondFile_1 = firstFile_1 === sourceSymbolFile ? targetSymbolFile : sourceSymbolFile;
47993
- var filesDuplicates = ts.getOrUpdate(amalgamatedDuplicates, "".concat(firstFile_1.path, "|").concat(secondFile_1.path), function () {
48016
+ var filesDuplicates = ts.getOrUpdate(amalgamatedDuplicates, firstFile_1.path + "|" + secondFile_1.path, function () {
47994
48017
  return ({ firstFile: firstFile_1, secondFile: secondFile_1, conflictingSymbols: new ts.Map() });
47995
48018
  });
47996
48019
  var conflictingSymbolInfo = ts.getOrUpdate(filesDuplicates.conflictingSymbols, symbolName_1, function () {
@@ -50401,8 +50424,15 @@ var ts;
50401
50424
  return res;
50402
50425
  }
50403
50426
  var candidates = ts.mapDefined(symbol.declarations, function (d) {
50404
- if (!ts.isAmbientModule(d) && d.parent && hasNonGlobalAugmentationExternalModuleSymbol(d.parent)) {
50405
- return getSymbolOfNode(d.parent);
50427
+ if (!ts.isAmbientModule(d) && d.parent) {
50428
+ // direct children of a module
50429
+ if (hasNonGlobalAugmentationExternalModuleSymbol(d.parent)) {
50430
+ return getSymbolOfNode(d.parent);
50431
+ }
50432
+ // export ='d member of an ambient module
50433
+ if (ts.isModuleBlock(d.parent) && d.parent.parent && resolveExternalModuleSymbol(getSymbolOfNode(d.parent.parent)) === symbol) {
50434
+ return getSymbolOfNode(d.parent.parent);
50435
+ }
50406
50436
  }
50407
50437
  if (ts.isClassExpression(d) && ts.isBinaryExpression(d.parent) && d.parent.operatorToken.kind === 63 /* EqualsToken */ && ts.isAccessExpression(d.parent.left) && ts.isEntityNameExpression(d.parent.left.expression)) {
50408
50438
  if (ts.isModuleExportsAccessExpression(d.parent.left) || ts.isExportsIdentifier(d.parent.left.expression)) {
@@ -50643,7 +50673,7 @@ var ts;
50643
50673
  var cache = (links.accessibleChainCache || (links.accessibleChainCache = new ts.Map()));
50644
50674
  // Go from enclosingDeclaration to the first scope we check, so the cache is keyed off the scope and thus shared more
50645
50675
  var firstRelevantLocation = forEachSymbolTableInScope(enclosingDeclaration, function (_, __, ___, node) { return node; });
50646
- var key = "".concat(useOnlyExternalAliasing ? 0 : 1, "|").concat(firstRelevantLocation && getNodeId(firstRelevantLocation), "|").concat(meaning);
50676
+ var key = (useOnlyExternalAliasing ? 0 : 1) + "|" + (firstRelevantLocation && getNodeId(firstRelevantLocation)) + "|" + meaning;
50647
50677
  if (cache.has(key)) {
50648
50678
  return cache.get(key);
50649
50679
  }
@@ -51492,7 +51522,7 @@ var ts;
51492
51522
  context.symbolDepth = new ts.Map();
51493
51523
  }
51494
51524
  var links = context.enclosingDeclaration && getNodeLinks(context.enclosingDeclaration);
51495
- var key = "".concat(getTypeId(type), "|").concat(context.flags);
51525
+ var key = getTypeId(type) + "|" + context.flags;
51496
51526
  if (links) {
51497
51527
  links.serializedTypes || (links.serializedTypes = new ts.Map());
51498
51528
  }
@@ -51761,7 +51791,7 @@ var ts;
51761
51791
  }
51762
51792
  }
51763
51793
  if (checkTruncationLength(context) && (i + 2 < properties.length - 1)) {
51764
- typeElements.push(ts.factory.createPropertySignature(/*modifiers*/ undefined, "... ".concat(properties.length - i, " more ..."), /*questionToken*/ undefined, /*type*/ undefined));
51794
+ typeElements.push(ts.factory.createPropertySignature(/*modifiers*/ undefined, "... " + (properties.length - i) + " more ...", /*questionToken*/ undefined, /*type*/ undefined));
51765
51795
  addPropertyToElementList(properties[properties.length - 1], context, typeElements);
51766
51796
  break;
51767
51797
  }
@@ -51876,7 +51906,7 @@ var ts;
51876
51906
  else if (types.length > 2) {
51877
51907
  return [
51878
51908
  typeToTypeNodeHelper(types[0], context),
51879
- ts.factory.createTypeReferenceNode("... ".concat(types.length - 2, " more ..."), /*typeArguments*/ undefined),
51909
+ ts.factory.createTypeReferenceNode("... " + (types.length - 2) + " more ...", /*typeArguments*/ undefined),
51880
51910
  typeToTypeNodeHelper(types[types.length - 1], context)
51881
51911
  ];
51882
51912
  }
@@ -51890,7 +51920,7 @@ var ts;
51890
51920
  var type = types_2[_i];
51891
51921
  i++;
51892
51922
  if (checkTruncationLength(context) && (i + 2 < types.length - 1)) {
51893
- result_5.push(ts.factory.createTypeReferenceNode("... ".concat(types.length - i, " more ..."), /*typeArguments*/ undefined));
51923
+ result_5.push(ts.factory.createTypeReferenceNode("... " + (types.length - i) + " more ...", /*typeArguments*/ undefined));
51894
51924
  var typeNode_1 = typeToTypeNodeHelper(types[types.length - 1], context);
51895
51925
  if (typeNode_1) {
51896
51926
  result_5.push(typeNode_1);
@@ -52413,7 +52443,7 @@ var ts;
52413
52443
  var text = rawtext;
52414
52444
  while (((_b = context.typeParameterNamesByText) === null || _b === void 0 ? void 0 : _b.has(text)) || typeParameterShadowsNameInScope(text, context, type)) {
52415
52445
  i++;
52416
- text = "".concat(rawtext, "_").concat(i);
52446
+ text = rawtext + "_" + i;
52417
52447
  }
52418
52448
  if (text !== rawtext) {
52419
52449
  result = ts.factory.createIdentifier(text, result.typeArguments);
@@ -52733,7 +52763,7 @@ var ts;
52733
52763
  function getNameForJSDocFunctionParameter(p, index) {
52734
52764
  return p.name && ts.isIdentifier(p.name) && p.name.escapedText === "this" ? "this"
52735
52765
  : getEffectiveDotDotDotForParameter(p) ? "args"
52736
- : "arg".concat(index);
52766
+ : "arg" + index;
52737
52767
  }
52738
52768
  function rewriteModuleSpecifier(parent, lit) {
52739
52769
  if (bundled) {
@@ -53818,7 +53848,7 @@ var ts;
53818
53848
  return results_1;
53819
53849
  }
53820
53850
  // The `Constructor`'s symbol isn't in the class's properties lists, obviously, since it's a signature on the static
53821
- return ts.Debug.fail("Unhandled class member kind! ".concat(p.__debugFlags || p.flags));
53851
+ return ts.Debug.fail("Unhandled class member kind! " + (p.__debugFlags || p.flags));
53822
53852
  };
53823
53853
  }
53824
53854
  function serializePropertySymbolForInterface(p, baseType) {
@@ -53893,7 +53923,7 @@ var ts;
53893
53923
  if (ref) {
53894
53924
  return ref;
53895
53925
  }
53896
- var tempName = getUnusedName("".concat(rootName, "_base"));
53926
+ var tempName = getUnusedName(rootName + "_base");
53897
53927
  var statement = ts.factory.createVariableStatement(/*modifiers*/ undefined, ts.factory.createVariableDeclarationList([
53898
53928
  ts.factory.createVariableDeclaration(tempName, /*exclamationToken*/ undefined, typeToTypeNodeHelper(staticType, context))
53899
53929
  ], 2 /* Const */));
@@ -53940,7 +53970,7 @@ var ts;
53940
53970
  var original = input;
53941
53971
  while ((_a = context.usedSymbolNames) === null || _a === void 0 ? void 0 : _a.has(input)) {
53942
53972
  i++;
53943
- input = "".concat(original, "_").concat(i);
53973
+ input = original + "_" + i;
53944
53974
  }
53945
53975
  (_b = context.usedSymbolNames) === null || _b === void 0 ? void 0 : _b.add(input);
53946
53976
  if (id) {
@@ -54048,15 +54078,15 @@ var ts;
54048
54078
  if (nameType.flags & 384 /* StringOrNumberLiteral */) {
54049
54079
  var name = "" + nameType.value;
54050
54080
  if (!ts.isIdentifierText(name, ts.getEmitScriptTarget(compilerOptions)) && !ts.isNumericLiteralName(name)) {
54051
- return "\"".concat(ts.escapeString(name, 34 /* doubleQuote */), "\"");
54081
+ return "\"" + ts.escapeString(name, 34 /* doubleQuote */) + "\"";
54052
54082
  }
54053
54083
  if (ts.isNumericLiteralName(name) && ts.startsWith(name, "-")) {
54054
- return "[".concat(name, "]");
54084
+ return "[" + name + "]";
54055
54085
  }
54056
54086
  return name;
54057
54087
  }
54058
54088
  if (nameType.flags & 8192 /* UniqueESSymbol */) {
54059
- return "[".concat(getNameOfSymbolAsWritten(nameType.symbol, context), "]");
54089
+ return "[" + getNameOfSymbolAsWritten(nameType.symbol, context) + "]";
54060
54090
  }
54061
54091
  }
54062
54092
  }
@@ -56887,7 +56917,7 @@ var ts;
56887
56917
  !leftName ? rightName :
56888
56918
  !rightName ? leftName :
56889
56919
  undefined;
56890
- var paramSymbol = createSymbol(1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0), paramName || "arg".concat(i));
56920
+ var paramSymbol = createSymbol(1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0), paramName || "arg" + i);
56891
56921
  paramSymbol.type = isRestParam ? createArrayType(unionParamType) : unionParamType;
56892
56922
  params[i] = paramSymbol;
56893
56923
  }
@@ -58838,7 +58868,7 @@ var ts;
58838
58868
  return result;
58839
58869
  }
58840
58870
  function getAliasId(aliasSymbol, aliasTypeArguments) {
58841
- return aliasSymbol ? "@".concat(getSymbolId(aliasSymbol)) + (aliasTypeArguments ? ":".concat(getTypeListId(aliasTypeArguments)) : "") : "";
58871
+ return aliasSymbol ? "@" + getSymbolId(aliasSymbol) + (aliasTypeArguments ? ":" + getTypeListId(aliasTypeArguments) : "") : "";
58842
58872
  }
58843
58873
  // This function is used to propagate certain flags when creating new object type references and union types.
58844
58874
  // It is only necessary to do so if a constituent type might be the undefined type, the null type, the type
@@ -59024,7 +59054,7 @@ var ts;
59024
59054
  return undefined;
59025
59055
  }
59026
59056
  function getSymbolPath(symbol) {
59027
- return symbol.parent ? "".concat(getSymbolPath(symbol.parent), ".").concat(symbol.escapedName) : symbol.escapedName;
59057
+ return symbol.parent ? getSymbolPath(symbol.parent) + "." + symbol.escapedName : symbol.escapedName;
59028
59058
  }
59029
59059
  function getUnresolvedSymbolForEntityName(name) {
59030
59060
  var identifier = name.kind === 160 /* QualifiedName */ ? name.right :
@@ -59035,7 +59065,7 @@ var ts;
59035
59065
  var parentSymbol = name.kind === 160 /* QualifiedName */ ? getUnresolvedSymbolForEntityName(name.left) :
59036
59066
  name.kind === 205 /* PropertyAccessExpression */ ? getUnresolvedSymbolForEntityName(name.expression) :
59037
59067
  undefined;
59038
- var path = parentSymbol ? "".concat(getSymbolPath(parentSymbol), ".").concat(text) : text;
59068
+ var path = parentSymbol ? getSymbolPath(parentSymbol) + "." + text : text;
59039
59069
  var result = unresolvedSymbols.get(path);
59040
59070
  if (!result) {
59041
59071
  unresolvedSymbols.set(path, result = createSymbol(524288 /* TypeAlias */, text, 1048576 /* Unresolved */));
@@ -59108,7 +59138,7 @@ var ts;
59108
59138
  if (substitute.flags & 3 /* AnyOrUnknown */ || substitute === baseType) {
59109
59139
  return baseType;
59110
59140
  }
59111
- var id = "".concat(getTypeId(baseType), ">").concat(getTypeId(substitute));
59141
+ var id = getTypeId(baseType) + ">" + getTypeId(substitute);
59112
59142
  var cached = substitutionTypes.get(id);
59113
59143
  if (cached) {
59114
59144
  return cached;
@@ -60032,9 +60062,9 @@ var ts;
60032
60062
  return types[0];
60033
60063
  }
60034
60064
  var typeKey = !origin ? getTypeListId(types) :
60035
- origin.flags & 1048576 /* Union */ ? "|".concat(getTypeListId(origin.types)) :
60036
- origin.flags & 2097152 /* Intersection */ ? "&".concat(getTypeListId(origin.types)) :
60037
- "#".concat(origin.type.id, "|").concat(getTypeListId(types)); // origin type id alone is insufficient, as `keyof x` may resolve to multiple WIP values while `x` is still resolving
60065
+ origin.flags & 1048576 /* Union */ ? "|" + getTypeListId(origin.types) :
60066
+ origin.flags & 2097152 /* Intersection */ ? "&" + getTypeListId(origin.types) :
60067
+ "#" + origin.type.id + "|" + getTypeListId(types); // origin type id alone is insufficient, as `keyof x` may resolve to multiple WIP values while `x` is still resolving
60038
60068
  var id = typeKey + getAliasId(aliasSymbol, aliasTypeArguments);
60039
60069
  var type = unionTypes.get(id);
60040
60070
  if (!type) {
@@ -60556,7 +60586,7 @@ var ts;
60556
60586
  if (ts.every(newTexts, function (t) { return t === ""; }) && ts.every(newTypes, function (t) { return !!(t.flags & 4 /* String */); })) {
60557
60587
  return stringType;
60558
60588
  }
60559
- var id = "".concat(getTypeListId(newTypes), "|").concat(ts.map(newTexts, function (t) { return t.length; }).join(","), "|").concat(newTexts.join(""));
60589
+ var id = getTypeListId(newTypes) + "|" + ts.map(newTexts, function (t) { return t.length; }).join(",") + "|" + newTexts.join("");
60560
60590
  var type = templateLiteralTypes.get(id);
60561
60591
  if (!type) {
60562
60592
  templateLiteralTypes.set(id, type = createTemplateLiteralType(newTexts, newTypes));
@@ -60616,7 +60646,7 @@ var ts;
60616
60646
  return str;
60617
60647
  }
60618
60648
  function getStringMappingTypeForGenericType(symbol, type) {
60619
- var id = "".concat(getSymbolId(symbol), ",").concat(getTypeId(type));
60649
+ var id = getSymbolId(symbol) + "," + getTypeId(type);
60620
60650
  var result = stringMappingTypes.get(id);
60621
60651
  if (!result) {
60622
60652
  stringMappingTypes.set(id, result = createStringMappingType(symbol, type));
@@ -61633,7 +61663,7 @@ var ts;
61633
61663
  function createUniqueESSymbolType(symbol) {
61634
61664
  var type = createType(8192 /* UniqueESSymbol */);
61635
61665
  type.symbol = symbol;
61636
- type.escapedName = "__@".concat(type.symbol.escapedName, "@").concat(getSymbolId(type.symbol));
61666
+ type.escapedName = "__@" + type.symbol.escapedName + "@" + getSymbolId(type.symbol);
61637
61667
  return type;
61638
61668
  }
61639
61669
  function getESSymbolLikeTypeForNode(node) {
@@ -63137,9 +63167,11 @@ var ts;
63137
63167
  isEnumTypeRelatedTo(getParentOfSymbol(source.symbol), getParentOfSymbol(target.symbol), errorReporter))
63138
63168
  return true;
63139
63169
  }
63140
- if (s & 32768 /* Undefined */ && (!strictNullChecks || t & (32768 /* Undefined */ | 16384 /* Void */)))
63170
+ // In non-strictNullChecks mode, `undefined` and `null` are assignable to anything except `never`.
63171
+ // Since unions and intersections may reduce to `never`, we exclude them here.
63172
+ if (s & 32768 /* Undefined */ && (!strictNullChecks && !(t & 3145728 /* UnionOrIntersection */) || t & (32768 /* Undefined */ | 16384 /* Void */)))
63141
63173
  return true;
63142
- if (s & 65536 /* Null */ && (!strictNullChecks || t & 65536 /* Null */))
63174
+ if (s & 65536 /* Null */ && (!strictNullChecks && !(t & 3145728 /* UnionOrIntersection */) || t & 65536 /* Null */))
63143
63175
  return true;
63144
63176
  if (s & 524288 /* Object */ && t & 67108864 /* NonPrimitive */)
63145
63177
  return true;
@@ -63322,24 +63354,24 @@ var ts;
63322
63354
  case ts.Diagnostics.Types_of_property_0_are_incompatible.code: {
63323
63355
  // Parenthesize a `new` if there is one
63324
63356
  if (path.indexOf("new ") === 0) {
63325
- path = "(".concat(path, ")");
63357
+ path = "(" + path + ")";
63326
63358
  }
63327
63359
  var str = "" + args[0];
63328
63360
  // If leading, just print back the arg (irrespective of if it's a valid identifier)
63329
63361
  if (path.length === 0) {
63330
- path = "".concat(str);
63362
+ path = "" + str;
63331
63363
  }
63332
63364
  // Otherwise write a dotted name if possible
63333
63365
  else if (ts.isIdentifierText(str, ts.getEmitScriptTarget(compilerOptions))) {
63334
- path = "".concat(path, ".").concat(str);
63366
+ path = path + "." + str;
63335
63367
  }
63336
63368
  // Failing that, check if the name is already a computed name
63337
63369
  else if (str[0] === "[" && str[str.length - 1] === "]") {
63338
- path = "".concat(path).concat(str);
63370
+ path = "" + path + str;
63339
63371
  }
63340
63372
  // And finally write out a computed name as a last resort
63341
63373
  else {
63342
- path = "".concat(path, "[").concat(str, "]");
63374
+ path = path + "[" + str + "]";
63343
63375
  }
63344
63376
  break;
63345
63377
  }
@@ -63368,7 +63400,7 @@ var ts;
63368
63400
  msg.code === ts.Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code)
63369
63401
  ? ""
63370
63402
  : "...";
63371
- path = "".concat(prefix).concat(path, "(").concat(params, ")");
63403
+ path = "" + prefix + path + "(" + params + ")";
63372
63404
  }
63373
63405
  break;
63374
63406
  }
@@ -63381,7 +63413,7 @@ var ts;
63381
63413
  break;
63382
63414
  }
63383
63415
  default:
63384
- return ts.Debug.fail("Unhandled Diagnostic: ".concat(msg.code));
63416
+ return ts.Debug.fail("Unhandled Diagnostic: " + msg.code);
63385
63417
  }
63386
63418
  }
63387
63419
  if (path) {
@@ -64595,6 +64627,11 @@ var ts;
64595
64627
  }
64596
64628
  if (ts.getObjectFlags(source) & 4 /* Reference */ && ts.getObjectFlags(target) & 4 /* Reference */ && source.target === target.target &&
64597
64629
  !isTupleType(source) && !(ts.getObjectFlags(source) & 4096 /* MarkerType */ || ts.getObjectFlags(target) & 4096 /* MarkerType */)) {
64630
+ // When strictNullChecks is disabled, the element type of the empty array literal is undefinedWideningType,
64631
+ // and an empty array literal wouldn't be assignable to a `never[]` without this check.
64632
+ if (isEmptyArrayLiteralType(source)) {
64633
+ return -1 /* True */;
64634
+ }
64598
64635
  // We have type references to the same generic type, and the type references are not marker
64599
64636
  // type references (which are intended by be compared structurally). Obtain the variance
64600
64637
  // information for the type parameters and relate the type arguments accordingly.
@@ -64901,6 +64938,15 @@ var ts;
64901
64938
  }
64902
64939
  return 0 /* False */;
64903
64940
  }
64941
+ // Ensure {readonly a: whatever} is not a subtype of {a: whatever},
64942
+ // while {a: whatever} is a subtype of {readonly a: whatever}.
64943
+ // This ensures the subtype relationship is ordered, and preventing declaration order
64944
+ // from deciding which type "wins" in union subtype reduction.
64945
+ // They're still assignable to one another, since `readonly` doesn't affect assignability.
64946
+ if ((relation === subtypeRelation || relation === strictSubtypeRelation) &&
64947
+ !!(sourcePropFlags & 64 /* Readonly */) && !(targetPropFlags & 64 /* Readonly */)) {
64948
+ return 0 /* False */;
64949
+ }
64904
64950
  // If the target comes from a partial union prop, allow `undefined` in the target type
64905
64951
  var related = isPropertySymbolTypeRelated(sourceProp, targetProp, getTypeOfSourceProperty, reportErrors, intersectionState);
64906
64952
  if (!related) {
@@ -65583,7 +65629,7 @@ var ts;
65583
65629
  var constraintMarker = "";
65584
65630
  var sourceId = getTypeReferenceId(source, 0);
65585
65631
  var targetId = getTypeReferenceId(target, 0);
65586
- return "".concat(constraintMarker).concat(sourceId, ",").concat(targetId).concat(postFix);
65632
+ return "" + constraintMarker + sourceId + "," + targetId + postFix;
65587
65633
  // getTypeReferenceId(A<T, number, U>) returns "111=0-12=1"
65588
65634
  // where A.id=111 and number.id=12
65589
65635
  function getTypeReferenceId(type, depth) {
@@ -65627,7 +65673,7 @@ var ts;
65627
65673
  var postFix = intersectionState ? ":" + intersectionState : "";
65628
65674
  return isTypeReferenceWithGenericArguments(source) && isTypeReferenceWithGenericArguments(target) ?
65629
65675
  getGenericTypeReferenceRelationKey(source, target, postFix, ignoreConstraints) :
65630
- "".concat(source.id, ",").concat(target.id).concat(postFix);
65676
+ source.id + "," + target.id + postFix;
65631
65677
  }
65632
65678
  // Invoke the callback for each underlying property symbol of the given symbol and return the first
65633
65679
  // value that isn't undefined.
@@ -67754,11 +67800,11 @@ var ts;
67754
67800
  case 79 /* Identifier */:
67755
67801
  if (!ts.isThisInTypeQuery(node)) {
67756
67802
  var symbol = getResolvedSymbol(node);
67757
- return symbol !== unknownSymbol ? "".concat(flowContainer ? getNodeId(flowContainer) : "-1", "|").concat(getTypeId(declaredType), "|").concat(getTypeId(initialType), "|").concat(getSymbolId(symbol)) : undefined;
67803
+ return symbol !== unknownSymbol ? (flowContainer ? getNodeId(flowContainer) : "-1") + "|" + getTypeId(declaredType) + "|" + getTypeId(initialType) + "|" + getSymbolId(symbol) : undefined;
67758
67804
  }
67759
67805
  // falls through
67760
67806
  case 108 /* ThisKeyword */:
67761
- return "0|".concat(flowContainer ? getNodeId(flowContainer) : "-1", "|").concat(getTypeId(declaredType), "|").concat(getTypeId(initialType));
67807
+ return "0|" + (flowContainer ? getNodeId(flowContainer) : "-1") + "|" + getTypeId(declaredType) + "|" + getTypeId(initialType);
67762
67808
  case 229 /* NonNullExpression */:
67763
67809
  case 211 /* ParenthesizedExpression */:
67764
67810
  return getFlowCacheKey(node.expression, declaredType, initialType, flowContainer);
@@ -71647,7 +71693,7 @@ var ts;
71647
71693
  !leftName ? rightName :
71648
71694
  !rightName ? leftName :
71649
71695
  undefined;
71650
- var paramSymbol = createSymbol(1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0), paramName || "arg".concat(i));
71696
+ var paramSymbol = createSymbol(1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0), paramName || "arg" + i);
71651
71697
  paramSymbol.type = isRestParam ? createArrayType(unionParamType) : unionParamType;
71652
71698
  params[i] = paramSymbol;
71653
71699
  }
@@ -81514,7 +81560,7 @@ var ts;
81514
81560
  function getPropertyNameForKnownSymbolName(symbolName) {
81515
81561
  var ctorType = getGlobalESSymbolConstructorSymbol(/*reportErrors*/ false);
81516
81562
  var uniqueType = ctorType && getTypeOfPropertyOfType(getTypeOfSymbol(ctorType), ts.escapeLeadingUnderscores(symbolName));
81517
- return uniqueType && isTypeUsableAsPropertyName(uniqueType) ? getPropertyNameFromType(uniqueType) : "__@".concat(symbolName);
81563
+ return uniqueType && isTypeUsableAsPropertyName(uniqueType) ? getPropertyNameFromType(uniqueType) : "__@" + symbolName;
81518
81564
  }
81519
81565
  /**
81520
81566
  * Gets the *yield*, *return*, and *next* types of an `Iterable`-like or `AsyncIterable`-like
@@ -88566,7 +88612,7 @@ var ts;
88566
88612
  value >= 52 && value < 62 ? 48 /* _0 */ + value - 52 :
88567
88613
  value === 62 ? 43 /* plus */ :
88568
88614
  value === 63 ? 47 /* slash */ :
88569
- ts.Debug.fail("".concat(value, ": not a base64 value"));
88615
+ ts.Debug.fail(value + ": not a base64 value");
88570
88616
  }
88571
88617
  function base64FormatDecode(ch) {
88572
88618
  return ch >= 65 /* A */ && ch <= 90 /* Z */ ? ch - 65 /* A */ :
@@ -88641,7 +88687,7 @@ var ts;
88641
88687
  var mappings = ts.arrayFrom(decoder, processMapping);
88642
88688
  if (decoder.error !== undefined) {
88643
88689
  if (host.log) {
88644
- host.log("Encountered error while decoding sourcemap: ".concat(decoder.error));
88690
+ host.log("Encountered error while decoding sourcemap: " + decoder.error);
88645
88691
  }
88646
88692
  decodedMappings = ts.emptyArray;
88647
88693
  }
@@ -92316,7 +92362,7 @@ var ts;
92316
92362
  var propertyName = ts.isPropertyAccessExpression(originalNode)
92317
92363
  ? ts.declarationNameToString(originalNode.name)
92318
92364
  : ts.getTextOfNode(originalNode.argumentExpression);
92319
- ts.addSyntheticTrailingComment(substitute, 3 /* MultiLineCommentTrivia */, " ".concat(propertyName, " "));
92365
+ ts.addSyntheticTrailingComment(substitute, 3 /* MultiLineCommentTrivia */, " " + propertyName + " ");
92320
92366
  }
92321
92367
  return substitute;
92322
92368
  }
@@ -93792,8 +93838,8 @@ var ts;
93792
93838
  }
93793
93839
  function createHoistedVariableForClass(name, node) {
93794
93840
  var className = getPrivateIdentifierEnvironment().className;
93795
- var prefix = className ? "_".concat(className) : "";
93796
- var identifier = factory.createUniqueName("".concat(prefix, "_").concat(name), 16 /* Optimistic */);
93841
+ var prefix = className ? "_" + className : "";
93842
+ var identifier = factory.createUniqueName(prefix + "_" + name, 16 /* Optimistic */);
93797
93843
  if (resolver.getNodeCheckFlags(node) & 524288 /* BlockScopedBindingInLoop */) {
93798
93844
  addBlockScopedVariable(identifier);
93799
93845
  }
@@ -95798,7 +95844,7 @@ var ts;
95798
95844
  specifierSourceImports = new ts.Map();
95799
95845
  currentFileState.utilizedImplicitRuntimeImports.set(importSource, specifierSourceImports);
95800
95846
  }
95801
- var generatedName = factory.createUniqueName("_".concat(name), 16 /* Optimistic */ | 32 /* FileLevel */ | 64 /* AllowNameSubstitution */);
95847
+ var generatedName = factory.createUniqueName("_" + name, 16 /* Optimistic */ | 32 /* FileLevel */ | 64 /* AllowNameSubstitution */);
95802
95848
  var specifier = factory.createImportSpecifier(/*isTypeOnly*/ false, factory.createIdentifier(name), generatedName);
95803
95849
  generatedName.generatedImportReference = specifier;
95804
95850
  specifierSourceImports.set(name, specifier);
@@ -96946,11 +96992,11 @@ var ts;
96946
96992
  }
96947
96993
  else {
96948
96994
  if (node.kind === 245 /* BreakStatement */) {
96949
- labelMarker = "break-".concat(label.escapedText);
96995
+ labelMarker = "break-" + label.escapedText;
96950
96996
  setLabeledJump(convertedLoopState, /*isBreak*/ true, ts.idText(label), labelMarker);
96951
96997
  }
96952
96998
  else {
96953
- labelMarker = "continue-".concat(label.escapedText);
96999
+ labelMarker = "continue-" + label.escapedText;
96954
97000
  setLabeledJump(convertedLoopState, /*isBreak*/ false, ts.idText(label), labelMarker);
96955
97001
  }
96956
97002
  }
@@ -105807,7 +105853,7 @@ var ts;
105807
105853
  return getTypeAliasDeclarationVisibilityError;
105808
105854
  }
105809
105855
  else {
105810
- return ts.Debug.assertNever(node, "Attempted to set a declaration diagnostic context for unhandled node kind: ".concat(ts.SyntaxKind[node.kind]));
105856
+ return ts.Debug.assertNever(node, "Attempted to set a declaration diagnostic context for unhandled node kind: " + ts.SyntaxKind[node.kind]);
105811
105857
  }
105812
105858
  function getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccessibilityResult) {
105813
105859
  if (node.kind === 253 /* VariableDeclaration */ || node.kind === 202 /* BindingElement */) {
@@ -106018,7 +106064,7 @@ var ts;
106018
106064
  ts.Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2 :
106019
106065
  ts.Diagnostics.Parameter_0_of_accessor_has_or_is_using_private_name_1;
106020
106066
  default:
106021
- return ts.Debug.fail("Unknown parent for parameter: ".concat(ts.SyntaxKind[node.parent.kind]));
106067
+ return ts.Debug.fail("Unknown parent for parameter: " + ts.SyntaxKind[node.parent.kind]);
106022
106068
  }
106023
106069
  }
106024
106070
  function getTypeParameterConstraintVisibilityError() {
@@ -106776,7 +106822,7 @@ var ts;
106776
106822
  while (ts.length(lateMarkedStatements)) {
106777
106823
  var i = lateMarkedStatements.shift();
106778
106824
  if (!ts.isLateVisibilityPaintedStatement(i)) {
106779
- return ts.Debug.fail("Late replaced statement was found which is not handled by the declaration transformer!: ".concat(ts.SyntaxKind ? ts.SyntaxKind[i.kind] : i.kind));
106825
+ return ts.Debug.fail("Late replaced statement was found which is not handled by the declaration transformer!: " + (ts.SyntaxKind ? ts.SyntaxKind[i.kind] : i.kind));
106780
106826
  }
106781
106827
  var priorNeedsDeclare = needsDeclare;
106782
106828
  needsDeclare = i.parent && ts.isSourceFile(i.parent) && !(ts.isExternalModule(i.parent) && isBundledEmit);
@@ -106965,7 +107011,7 @@ var ts;
106965
107011
  return cleanup(input);
106966
107012
  return cleanup(factory.updateImportTypeNode(input, factory.updateLiteralTypeNode(input.argument, rewriteModuleSpecifier(input, input.argument.literal)), input.qualifier, ts.visitNodes(input.typeArguments, visitDeclarationSubtree, ts.isTypeNode), input.isTypeOf));
106967
107013
  }
106968
- default: ts.Debug.assertNever(input, "Attempted to process unhandled node kind: ".concat(ts.SyntaxKind[input.kind]));
107014
+ default: ts.Debug.assertNever(input, "Attempted to process unhandled node kind: " + ts.SyntaxKind[input.kind]);
106969
107015
  }
106970
107016
  }
106971
107017
  if (ts.isTupleTypeNode(input) && (ts.getLineAndCharacterOfPosition(currentSourceFile, input.pos).line === ts.getLineAndCharacterOfPosition(currentSourceFile, input.end).line)) {
@@ -107256,7 +107302,7 @@ var ts;
107256
107302
  if (extendsClause_1 && !ts.isEntityNameExpression(extendsClause_1.expression) && extendsClause_1.expression.kind !== 104 /* NullKeyword */) {
107257
107303
  // We must add a temporary declaration for the extends clause expression
107258
107304
  var oldId = input.name ? ts.unescapeLeadingUnderscores(input.name.escapedText) : "default";
107259
- var newId_1 = factory.createUniqueName("".concat(oldId, "_base"), 16 /* Optimistic */);
107305
+ var newId_1 = factory.createUniqueName(oldId + "_base", 16 /* Optimistic */);
107260
107306
  getSymbolAccessibilityDiagnostic = function () { return ({
107261
107307
  diagnosticMessage: ts.Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1,
107262
107308
  errorNode: extendsClause_1,
@@ -107297,7 +107343,7 @@ var ts;
107297
107343
  }
107298
107344
  }
107299
107345
  // Anything left unhandled is an error, so this should be unreachable
107300
- return ts.Debug.assertNever(input, "Unhandled top-level node in declaration emit: ".concat(ts.SyntaxKind[input.kind]));
107346
+ return ts.Debug.assertNever(input, "Unhandled top-level node in declaration emit: " + ts.SyntaxKind[input.kind]);
107301
107347
  function cleanup(node) {
107302
107348
  if (isEnclosingDeclaration(input)) {
107303
107349
  enclosingDeclaration = previousEnclosingDeclaration;
@@ -108189,13 +108235,13 @@ var ts;
108189
108235
  if (ts.fileExtensionIs(inputFileName, ".json" /* Json */))
108190
108236
  return;
108191
108237
  if (js && configFile.options.sourceMap) {
108192
- addOutput("".concat(js, ".map"));
108238
+ addOutput(js + ".map");
108193
108239
  }
108194
108240
  if (ts.getEmitDeclarations(configFile.options)) {
108195
108241
  var dts = getOutputDeclarationFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory);
108196
108242
  addOutput(dts);
108197
108243
  if (configFile.options.declarationMap) {
108198
- addOutput("".concat(dts, ".map"));
108244
+ addOutput(dts + ".map");
108199
108245
  }
108200
108246
  }
108201
108247
  }
@@ -108264,7 +108310,7 @@ var ts;
108264
108310
  function getFirstProjectOutput(configFile, ignoreCase) {
108265
108311
  if (ts.outFile(configFile.options)) {
108266
108312
  var jsFilePath = getOutputPathsForBundle(configFile.options, /*forceDtsPaths*/ false).jsFilePath;
108267
- return ts.Debug.checkDefined(jsFilePath, "project ".concat(configFile.options.configFilePath, " expected to have at least one output"));
108313
+ return ts.Debug.checkDefined(jsFilePath, "project " + configFile.options.configFilePath + " expected to have at least one output");
108268
108314
  }
108269
108315
  var getCommonSourceDirectory = ts.memoize(function () { return getCommonSourceDirectoryOfConfig(configFile, ignoreCase); });
108270
108316
  for (var _a = 0, _b = configFile.fileNames; _a < _b.length; _a++) {
@@ -108283,7 +108329,7 @@ var ts;
108283
108329
  var buildInfoPath = getTsBuildInfoEmitOutputFilePath(configFile.options);
108284
108330
  if (buildInfoPath)
108285
108331
  return buildInfoPath;
108286
- return ts.Debug.fail("project ".concat(configFile.options.configFilePath, " expected to have at least one output"));
108332
+ return ts.Debug.fail("project " + configFile.options.configFilePath + " expected to have at least one output");
108287
108333
  }
108288
108334
  ts.getFirstProjectOutput = getFirstProjectOutput;
108289
108335
  /*@internal*/
@@ -108509,7 +108555,7 @@ var ts;
108509
108555
  if (sourceMappingURL) {
108510
108556
  if (!writer.isAtStartOfLine())
108511
108557
  writer.rawWrite(newLine);
108512
- writer.writeComment("//# ".concat("sourceMappingURL", "=").concat(sourceMappingURL)); // Tools can sometimes see this line as a source mapping url comment
108558
+ writer.writeComment("//# " + "sourceMappingURL" + "=" + sourceMappingURL); // Tools can sometimes see this line as a source mapping url comment
108513
108559
  }
108514
108560
  // Write the source map
108515
108561
  if (sourceMapFilePath) {
@@ -108558,7 +108604,7 @@ var ts;
108558
108604
  // Encode the sourceMap into the sourceMap url
108559
108605
  var sourceMapText = sourceMapGenerator.toString();
108560
108606
  var base64SourceMapText = ts.base64encode(ts.sys, sourceMapText);
108561
- return "data:application/json;base64,".concat(base64SourceMapText);
108607
+ return "data:application/json;base64," + base64SourceMapText;
108562
108608
  }
108563
108609
  var sourceMapFile = ts.getBaseFileName(ts.normalizeSlashes(ts.Debug.checkDefined(sourceMapFilePath)));
108564
108610
  if (mapOptions.mapRoot) {
@@ -108738,7 +108784,7 @@ var ts;
108738
108784
  return;
108739
108785
  break;
108740
108786
  default:
108741
- ts.Debug.fail("Unexpected path: ".concat(name));
108787
+ ts.Debug.fail("Unexpected path: " + name);
108742
108788
  }
108743
108789
  outputFiles.push({ name: name, text: text, writeByteOrderMark: writeByteOrderMark });
108744
108790
  },
@@ -109598,7 +109644,7 @@ var ts;
109598
109644
  return writeTokenNode(node, writeKeyword);
109599
109645
  if (ts.isTokenKind(node.kind))
109600
109646
  return writeTokenNode(node, writePunctuation);
109601
- ts.Debug.fail("Unhandled SyntaxKind: ".concat(ts.Debug.formatSyntaxKind(node.kind), "."));
109647
+ ts.Debug.fail("Unhandled SyntaxKind: " + ts.Debug.formatSyntaxKind(node.kind) + ".");
109602
109648
  }
109603
109649
  function emitMappedTypeParameter(node) {
109604
109650
  emit(node.name);
@@ -109768,16 +109814,16 @@ var ts;
109768
109814
  }
109769
109815
  }
109770
109816
  function emitPlaceholder(hint, node, snippet) {
109771
- nonEscapingWrite("${".concat(snippet.order, ":")); // `${2:`
109817
+ nonEscapingWrite("${" + snippet.order + ":"); // `${2:`
109772
109818
  pipelineEmitWithHintWorker(hint, node, /*allowSnippets*/ false); // `...`
109773
109819
  nonEscapingWrite("}"); // `}`
109774
109820
  // `${2:...}`
109775
109821
  }
109776
109822
  function emitTabStop(hint, node, snippet) {
109777
109823
  // A tab stop should only be attached to an empty node, i.e. a node that doesn't emit any text.
109778
- ts.Debug.assert(node.kind === 235 /* EmptyStatement */, "A tab stop cannot be attached to a node of kind ".concat(ts.Debug.formatSyntaxKind(node.kind), "."));
109824
+ ts.Debug.assert(node.kind === 235 /* EmptyStatement */, "A tab stop cannot be attached to a node of kind " + ts.Debug.formatSyntaxKind(node.kind) + ".");
109779
109825
  ts.Debug.assert(hint !== 5 /* EmbeddedStatement */, "A tab stop cannot be attached to an embedded statement.");
109780
- nonEscapingWrite("$".concat(snippet.order));
109826
+ nonEscapingWrite("$" + snippet.order);
109781
109827
  }
109782
109828
  //
109783
109829
  // Identifiers
@@ -111539,17 +111585,17 @@ var ts;
111539
111585
  writeLine();
111540
111586
  }
111541
111587
  if (currentSourceFile && currentSourceFile.moduleName) {
111542
- writeComment("/// <amd-module name=\"".concat(currentSourceFile.moduleName, "\" />"));
111588
+ writeComment("/// <amd-module name=\"" + currentSourceFile.moduleName + "\" />");
111543
111589
  writeLine();
111544
111590
  }
111545
111591
  if (currentSourceFile && currentSourceFile.amdDependencies) {
111546
111592
  for (var _a = 0, _b = currentSourceFile.amdDependencies; _a < _b.length; _a++) {
111547
111593
  var dep = _b[_a];
111548
111594
  if (dep.name) {
111549
- writeComment("/// <amd-dependency name=\"".concat(dep.name, "\" path=\"").concat(dep.path, "\" />"));
111595
+ writeComment("/// <amd-dependency name=\"" + dep.name + "\" path=\"" + dep.path + "\" />");
111550
111596
  }
111551
111597
  else {
111552
- writeComment("/// <amd-dependency path=\"".concat(dep.path, "\" />"));
111598
+ writeComment("/// <amd-dependency path=\"" + dep.path + "\" />");
111553
111599
  }
111554
111600
  writeLine();
111555
111601
  }
@@ -111557,7 +111603,7 @@ var ts;
111557
111603
  for (var _c = 0, files_2 = files; _c < files_2.length; _c++) {
111558
111604
  var directive = files_2[_c];
111559
111605
  var pos = writer.getTextPos();
111560
- writeComment("/// <reference path=\"".concat(directive.fileName, "\" />"));
111606
+ writeComment("/// <reference path=\"" + directive.fileName + "\" />");
111561
111607
  if (bundleFileInfo)
111562
111608
  bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "reference" /* Reference */, data: directive.fileName });
111563
111609
  writeLine();
@@ -111565,7 +111611,7 @@ var ts;
111565
111611
  for (var _d = 0, types_24 = types; _d < types_24.length; _d++) {
111566
111612
  var directive = types_24[_d];
111567
111613
  var pos = writer.getTextPos();
111568
- writeComment("/// <reference types=\"".concat(directive.fileName, "\" />"));
111614
+ writeComment("/// <reference types=\"" + directive.fileName + "\" />");
111569
111615
  if (bundleFileInfo)
111570
111616
  bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "type" /* Type */, data: directive.fileName });
111571
111617
  writeLine();
@@ -111573,7 +111619,7 @@ var ts;
111573
111619
  for (var _e = 0, libs_1 = libs; _e < libs_1.length; _e++) {
111574
111620
  var directive = libs_1[_e];
111575
111621
  var pos = writer.getTextPos();
111576
- writeComment("/// <reference lib=\"".concat(directive.fileName, "\" />"));
111622
+ writeComment("/// <reference lib=\"" + directive.fileName + "\" />");
111577
111623
  if (bundleFileInfo)
111578
111624
  bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "lib" /* Lib */, data: directive.fileName });
111579
111625
  writeLine();
@@ -112353,9 +112399,9 @@ var ts;
112353
112399
  var textSourceNode = node.textSourceNode;
112354
112400
  if (ts.isIdentifier(textSourceNode) || ts.isNumericLiteral(textSourceNode)) {
112355
112401
  var text = ts.isNumericLiteral(textSourceNode) ? textSourceNode.text : getTextOfNode(textSourceNode);
112356
- return jsxAttributeEscape ? "\"".concat(ts.escapeJsxAttributeString(text), "\"") :
112357
- neverAsciiEscape || (ts.getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ? "\"".concat(ts.escapeString(text), "\"") :
112358
- "\"".concat(ts.escapeNonAsciiString(text), "\"");
112402
+ return jsxAttributeEscape ? "\"" + ts.escapeJsxAttributeString(text) + "\"" :
112403
+ neverAsciiEscape || (ts.getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ? "\"" + ts.escapeString(text) + "\"" :
112404
+ "\"" + ts.escapeNonAsciiString(text) + "\"";
112359
112405
  }
112360
112406
  else {
112361
112407
  return getLiteralTextOfNode(textSourceNode, neverAsciiEscape, jsxAttributeEscape);
@@ -112832,8 +112878,8 @@ var ts;
112832
112878
  }
112833
112879
  function formatSynthesizedComment(comment) {
112834
112880
  return comment.kind === 3 /* MultiLineCommentTrivia */
112835
- ? "/*".concat(comment.text, "*/")
112836
- : "//".concat(comment.text);
112881
+ ? "/*" + comment.text + "*/"
112882
+ : "//" + comment.text;
112837
112883
  }
112838
112884
  function emitBodyWithDetachedComments(node, detachedRange, emitCallback) {
112839
112885
  enterComment();
@@ -113554,7 +113600,7 @@ var ts;
113554
113600
  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;
113555
113601
  var newPath = ts.removeIgnoredPath(fileOrDirectoryPath);
113556
113602
  if (!newPath) {
113557
- writeLog("Project: ".concat(configFileName, " Detected ignored path: ").concat(fileOrDirectory));
113603
+ writeLog("Project: " + configFileName + " Detected ignored path: " + fileOrDirectory);
113558
113604
  return true;
113559
113605
  }
113560
113606
  fileOrDirectoryPath = newPath;
@@ -113563,11 +113609,11 @@ var ts;
113563
113609
  // If the the added or created file or directory is not supported file name, ignore the file
113564
113610
  // But when watched directory is added/removed, we need to reload the file list
113565
113611
  if (ts.hasExtension(fileOrDirectoryPath) && !ts.isSupportedSourceFileName(fileOrDirectory, options, extraFileExtensions)) {
113566
- writeLog("Project: ".concat(configFileName, " Detected file add/remove of non supported extension: ").concat(fileOrDirectory));
113612
+ writeLog("Project: " + configFileName + " Detected file add/remove of non supported extension: " + fileOrDirectory);
113567
113613
  return true;
113568
113614
  }
113569
113615
  if (ts.isExcludedFile(fileOrDirectory, options.configFile.configFileSpecs, ts.getNormalizedAbsolutePath(ts.getDirectoryPath(configFileName), currentDirectory), useCaseSensitiveFileNames, currentDirectory)) {
113570
- writeLog("Project: ".concat(configFileName, " Detected excluded file: ").concat(fileOrDirectory));
113616
+ writeLog("Project: " + configFileName + " Detected excluded file: " + fileOrDirectory);
113571
113617
  return true;
113572
113618
  }
113573
113619
  if (!program)
@@ -113591,7 +113637,7 @@ var ts;
113591
113637
  var builderProgram = !realProgram && !ts.isArray(program) ? program : undefined;
113592
113638
  if (hasSourceFile((filePathWithoutExtension + ".ts" /* Ts */)) ||
113593
113639
  hasSourceFile((filePathWithoutExtension + ".tsx" /* Tsx */))) {
113594
- writeLog("Project: ".concat(configFileName, " Detected output file: ").concat(fileOrDirectory));
113640
+ writeLog("Project: " + configFileName + " Detected output file: " + fileOrDirectory);
113595
113641
  return true;
113596
113642
  }
113597
113643
  return false;
@@ -113659,36 +113705,36 @@ var ts;
113659
113705
  host.useCaseSensitiveFileNames();
113660
113706
  }
113661
113707
  function createExcludeWatcherWithLogging(file, flags, options, detailInfo1, detailInfo2) {
113662
- log("ExcludeWatcher:: Added:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo)));
113708
+ log("ExcludeWatcher:: Added:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
113663
113709
  return {
113664
- close: function () { return log("ExcludeWatcher:: Close:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo))); }
113710
+ close: function () { return log("ExcludeWatcher:: Close:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo)); }
113665
113711
  };
113666
113712
  }
113667
113713
  function createFileWatcherWithLogging(file, cb, flags, options, detailInfo1, detailInfo2) {
113668
- log("FileWatcher:: Added:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo)));
113714
+ log("FileWatcher:: Added:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
113669
113715
  var watcher = triggerInvokingFactory.watchFile(file, cb, flags, options, detailInfo1, detailInfo2);
113670
113716
  return {
113671
113717
  close: function () {
113672
- log("FileWatcher:: Close:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo)));
113718
+ log("FileWatcher:: Close:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
113673
113719
  watcher.close();
113674
113720
  }
113675
113721
  };
113676
113722
  }
113677
113723
  function createDirectoryWatcherWithLogging(file, cb, flags, options, detailInfo1, detailInfo2) {
113678
- var watchInfo = "DirectoryWatcher:: Added:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
113724
+ var watchInfo = "DirectoryWatcher:: Added:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo);
113679
113725
  log(watchInfo);
113680
113726
  var start = ts.timestamp();
113681
113727
  var watcher = triggerInvokingFactory.watchDirectory(file, cb, flags, options, detailInfo1, detailInfo2);
113682
113728
  var elapsed = ts.timestamp() - start;
113683
- log("Elapsed:: ".concat(elapsed, "ms ").concat(watchInfo));
113729
+ log("Elapsed:: " + elapsed + "ms " + watchInfo);
113684
113730
  return {
113685
113731
  close: function () {
113686
- var watchInfo = "DirectoryWatcher:: Close:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
113732
+ var watchInfo = "DirectoryWatcher:: Close:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo);
113687
113733
  log(watchInfo);
113688
113734
  var start = ts.timestamp();
113689
113735
  watcher.close();
113690
113736
  var elapsed = ts.timestamp() - start;
113691
- log("Elapsed:: ".concat(elapsed, "ms ").concat(watchInfo));
113737
+ log("Elapsed:: " + elapsed + "ms " + watchInfo);
113692
113738
  }
113693
113739
  };
113694
113740
  }
@@ -113698,16 +113744,16 @@ var ts;
113698
113744
  for (var _i = 0; _i < arguments.length; _i++) {
113699
113745
  args[_i] = arguments[_i];
113700
113746
  }
113701
- 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));
113747
+ var triggerredInfo = (key === "watchFile" ? "FileWatcher" : "DirectoryWatcher") + ":: Triggered with " + args[0] + " " + (args[1] !== undefined ? args[1] : "") + ":: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo);
113702
113748
  log(triggerredInfo);
113703
113749
  var start = ts.timestamp();
113704
113750
  cb.call.apply(cb, __spreadArray([/*thisArg*/ undefined], args, false));
113705
113751
  var elapsed = ts.timestamp() - start;
113706
- log("Elapsed:: ".concat(elapsed, "ms ").concat(triggerredInfo));
113752
+ log("Elapsed:: " + elapsed + "ms " + triggerredInfo);
113707
113753
  }, flags, options, detailInfo1, detailInfo2); };
113708
113754
  }
113709
113755
  function getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo) {
113710
- return "WatchInfo: ".concat(file, " ").concat(flags, " ").concat(JSON.stringify(options), " ").concat(getDetailWatchInfo ? getDetailWatchInfo(detailInfo1, detailInfo2) : detailInfo2 === undefined ? detailInfo1 : "".concat(detailInfo1, " ").concat(detailInfo2));
113756
+ return "WatchInfo: " + file + " " + flags + " " + JSON.stringify(options) + " " + (getDetailWatchInfo ? getDetailWatchInfo(detailInfo1, detailInfo2) : detailInfo2 === undefined ? detailInfo1 : detailInfo1 + " " + detailInfo2);
113711
113757
  }
113712
113758
  }
113713
113759
  ts.getWatchFactory = getWatchFactory;
@@ -114014,12 +114060,12 @@ var ts;
114014
114060
  }
114015
114061
  ts.formatDiagnostics = formatDiagnostics;
114016
114062
  function formatDiagnostic(diagnostic, host) {
114017
- var errorMessage = "".concat(ts.diagnosticCategoryName(diagnostic), " TS").concat(diagnostic.code, ": ").concat(flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine())).concat(host.getNewLine());
114063
+ var errorMessage = ts.diagnosticCategoryName(diagnostic) + " TS" + diagnostic.code + ": " + flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine()) + host.getNewLine();
114018
114064
  if (diagnostic.file) {
114019
114065
  var _a = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start), line = _a.line, character = _a.character; // TODO: GH#18217
114020
114066
  var fileName = diagnostic.file.fileName;
114021
114067
  var relativeFileName = ts.convertToRelativePath(fileName, host.getCurrentDirectory(), function (fileName) { return host.getCanonicalFileName(fileName); });
114022
- return "".concat(relativeFileName, "(").concat(line + 1, ",").concat(character + 1, "): ") + errorMessage;
114068
+ return relativeFileName + "(" + (line + 1) + "," + (character + 1) + "): " + errorMessage;
114023
114069
  }
114024
114070
  return errorMessage;
114025
114071
  }
@@ -114107,9 +114153,9 @@ var ts;
114107
114153
  var output = "";
114108
114154
  output += color(relativeFileName, ForegroundColorEscapeSequences.Cyan);
114109
114155
  output += ":";
114110
- output += color("".concat(firstLine + 1), ForegroundColorEscapeSequences.Yellow);
114156
+ output += color("" + (firstLine + 1), ForegroundColorEscapeSequences.Yellow);
114111
114157
  output += ":";
114112
- output += color("".concat(firstLineChar + 1), ForegroundColorEscapeSequences.Yellow);
114158
+ output += color("" + (firstLineChar + 1), ForegroundColorEscapeSequences.Yellow);
114113
114159
  return output;
114114
114160
  }
114115
114161
  ts.formatLocation = formatLocation;
@@ -114123,7 +114169,7 @@ var ts;
114123
114169
  output += " - ";
114124
114170
  }
114125
114171
  output += formatColorAndReset(ts.diagnosticCategoryName(diagnostic), getCategoryFormat(diagnostic.category));
114126
- output += formatColorAndReset(" TS".concat(diagnostic.code, ": "), ForegroundColorEscapeSequences.Grey);
114172
+ output += formatColorAndReset(" TS" + diagnostic.code + ": ", ForegroundColorEscapeSequences.Grey);
114127
114173
  output += flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine());
114128
114174
  if (diagnostic.file) {
114129
114175
  output += host.getNewLine();
@@ -114232,7 +114278,7 @@ var ts;
114232
114278
  var result = void 0;
114233
114279
  var mode = getModeForResolutionAtIndex(containingFile, i);
114234
114280
  i++;
114235
- var cacheKey = mode !== undefined ? "".concat(mode, "|").concat(name) : name;
114281
+ var cacheKey = mode !== undefined ? mode + "|" + name : name;
114236
114282
  if (cache.has(cacheKey)) {
114237
114283
  result = cache.get(cacheKey);
114238
114284
  }
@@ -116421,7 +116467,7 @@ var ts;
116421
116467
  path += (i === 2 ? "/" : "-") + components[i];
116422
116468
  i++;
116423
116469
  }
116424
- var resolveFrom = ts.combinePaths(currentDirectory, "__lib_node_modules_lookup_".concat(libFileName, "__.ts"));
116470
+ var resolveFrom = ts.combinePaths(currentDirectory, "__lib_node_modules_lookup_" + libFileName + "__.ts");
116425
116471
  var localOverrideModuleResult = ts.resolveModuleName("@typescript/lib-" + path, resolveFrom, { moduleResolution: ts.ModuleResolutionKind.NodeJs }, host, moduleResolutionCache);
116426
116472
  if (localOverrideModuleResult === null || localOverrideModuleResult === void 0 ? void 0 : localOverrideModuleResult.resolvedModule) {
116427
116473
  return localOverrideModuleResult.resolvedModule.resolvedFileName;
@@ -117242,12 +117288,12 @@ var ts;
117242
117288
  }
117243
117289
  function directoryExistsIfProjectReferenceDeclDir(dir) {
117244
117290
  var dirPath = host.toPath(dir);
117245
- var dirPathWithTrailingDirectorySeparator = "".concat(dirPath).concat(ts.directorySeparator);
117291
+ var dirPathWithTrailingDirectorySeparator = "" + dirPath + ts.directorySeparator;
117246
117292
  return ts.forEachKey(setOfDeclarationDirectories, function (declDirPath) { return dirPath === declDirPath ||
117247
117293
  // Any parent directory of declaration dir
117248
117294
  ts.startsWith(declDirPath, dirPathWithTrailingDirectorySeparator) ||
117249
117295
  // Any directory inside declaration dir
117250
- ts.startsWith(dirPath, "".concat(declDirPath, "/")); });
117296
+ ts.startsWith(dirPath, declDirPath + "/"); });
117251
117297
  }
117252
117298
  function handleDirectoryCouldBeSymlink(directory) {
117253
117299
  var _a;
@@ -117300,7 +117346,7 @@ var ts;
117300
117346
  if (isFile && result) {
117301
117347
  // Store the real path for the file'
117302
117348
  var absolutePath = ts.getNormalizedAbsolutePath(fileOrDirectory, host.compilerHost.getCurrentDirectory());
117303
- symlinkCache.setSymlinkedFile(fileOrDirectoryPath, "".concat(symlinkedDirectory.real).concat(absolutePath.replace(new RegExp(directoryPath, "i"), "")));
117349
+ symlinkCache.setSymlinkedFile(fileOrDirectoryPath, "" + symlinkedDirectory.real + absolutePath.replace(new RegExp(directoryPath, "i"), ""));
117304
117350
  }
117305
117351
  return result;
117306
117352
  }) || false;
@@ -117758,7 +117804,7 @@ var ts;
117758
117804
  /*forceDtsEmit*/ true);
117759
117805
  var firstDts_1 = ts.firstOrUndefined(emitOutput_1.outputFiles);
117760
117806
  if (firstDts_1) {
117761
- ts.Debug.assert(ts.fileExtensionIsOneOf(firstDts_1.name, [".d.ts" /* Dts */, ".d.mts" /* Dmts */, ".d.cts" /* Dcts */]), "File extension for signature expected to be dts", function () { return "Found: ".concat(ts.getAnyExtensionFromPath(firstDts_1.name), " for ").concat(firstDts_1.name, ":: All output files: ").concat(JSON.stringify(emitOutput_1.outputFiles.map(function (f) { return f.name; }))); });
117807
+ ts.Debug.assert(ts.fileExtensionIsOneOf(firstDts_1.name, [".d.ts" /* Dts */, ".d.mts" /* Dmts */, ".d.cts" /* Dcts */]), "File extension for signature expected to be dts", function () { return "Found: " + ts.getAnyExtensionFromPath(firstDts_1.name) + " for " + firstDts_1.name + ":: All output files: " + JSON.stringify(emitOutput_1.outputFiles.map(function (f) { return f.name; })); });
117762
117808
  latestSignature = (computeHash || ts.generateDjb2Hash)(firstDts_1.text);
117763
117809
  if (exportedModulesMapCache && latestSignature !== prevSignature) {
117764
117810
  updateExportedModules(sourceFile, emitOutput_1.exportedModulesFromDeclarationEmit, exportedModulesMapCache);
@@ -118266,7 +118312,7 @@ var ts;
118266
118312
  return;
118267
118313
  }
118268
118314
  else {
118269
- ts.Debug.assert(state.hasCalledUpdateShapeSignature.has(affectedFile.resolvedPath) || ((_a = state.currentAffectedFilesSignatures) === null || _a === void 0 ? void 0 : _a.has(affectedFile.resolvedPath)), "Signature not updated for affected file: ".concat(affectedFile.fileName));
118315
+ ts.Debug.assert(state.hasCalledUpdateShapeSignature.has(affectedFile.resolvedPath) || ((_a = state.currentAffectedFilesSignatures) === null || _a === void 0 ? void 0 : _a.has(affectedFile.resolvedPath)), "Signature not updated for affected file: " + affectedFile.fileName);
118270
118316
  }
118271
118317
  if (!state.compilerOptions.assumeChangesOnlyAffectDirectDependencies) {
118272
118318
  forEachReferencingModulesOfExportOfAffectedFile(state, affectedFile, function (state, path) { return handleDtsMayChangeOf(state, path, cancellationToken, computeHash); });
@@ -119411,7 +119457,7 @@ var ts;
119411
119457
  failedLookupLocation = ts.isRootedDiskPath(failedLookupLocation) ? ts.normalizePath(failedLookupLocation) : ts.getNormalizedAbsolutePath(failedLookupLocation, getCurrentDirectory());
119412
119458
  var failedLookupPathSplit = failedLookupLocationPath.split(ts.directorySeparator);
119413
119459
  var failedLookupSplit = failedLookupLocation.split(ts.directorySeparator);
119414
- ts.Debug.assert(failedLookupSplit.length === failedLookupPathSplit.length, "FailedLookup: ".concat(failedLookupLocation, " failedLookupLocationPath: ").concat(failedLookupLocationPath));
119460
+ ts.Debug.assert(failedLookupSplit.length === failedLookupPathSplit.length, "FailedLookup: " + failedLookupLocation + " failedLookupLocationPath: " + failedLookupLocationPath);
119415
119461
  if (failedLookupPathSplit.length > rootSplitLength + 1) {
119416
119462
  // Instead of watching root, watch directory in root to avoid watching excluded directories not needed for module resolution
119417
119463
  return {
@@ -120493,7 +120539,7 @@ var ts;
120493
120539
  }
120494
120540
  function getJSExtensionForFile(fileName, options) {
120495
120541
  var _a;
120496
- return (_a = tryGetJSExtensionForFile(fileName, options)) !== null && _a !== void 0 ? _a : ts.Debug.fail("Extension ".concat(ts.extensionFromPath(fileName), " is unsupported:: FileName:: ").concat(fileName));
120542
+ return (_a = tryGetJSExtensionForFile(fileName, options)) !== null && _a !== void 0 ? _a : ts.Debug.fail("Extension " + ts.extensionFromPath(fileName) + " is unsupported:: FileName:: " + fileName);
120497
120543
  }
120498
120544
  function tryGetJSExtensionForFile(fileName, options) {
120499
120545
  var ext = ts.tryGetExtensionFromPath(fileName);
@@ -120596,8 +120642,8 @@ var ts;
120596
120642
  return pretty ?
120597
120643
  function (diagnostic, newLine, options) {
120598
120644
  clearScreenIfNotWatchingForFileChanges(system, diagnostic, options);
120599
- var output = "[".concat(ts.formatColorAndReset(getLocaleTimeString(system), ts.ForegroundColorEscapeSequences.Grey), "] ");
120600
- output += "".concat(ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)).concat(newLine + newLine);
120645
+ var output = "[" + ts.formatColorAndReset(getLocaleTimeString(system), ts.ForegroundColorEscapeSequences.Grey) + "] ";
120646
+ output += "" + ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine) + (newLine + newLine);
120601
120647
  system.write(output);
120602
120648
  } :
120603
120649
  function (diagnostic, newLine, options) {
@@ -120605,8 +120651,8 @@ var ts;
120605
120651
  if (!clearScreenIfNotWatchingForFileChanges(system, diagnostic, options)) {
120606
120652
  output += newLine;
120607
120653
  }
120608
- output += "".concat(getLocaleTimeString(system), " - ");
120609
- output += "".concat(ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)).concat(getPlainDiagnosticFollowingNewLines(diagnostic, newLine));
120654
+ output += getLocaleTimeString(system) + " - ";
120655
+ output += "" + ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine) + getPlainDiagnosticFollowingNewLines(diagnostic, newLine);
120610
120656
  system.write(output);
120611
120657
  };
120612
120658
  }
@@ -120629,7 +120675,7 @@ var ts;
120629
120675
  .map(function (errorDiagnostic) {
120630
120676
  if (errorDiagnostic.file === undefined)
120631
120677
  return;
120632
- return "".concat(errorDiagnostic.file.fileName);
120678
+ return "" + errorDiagnostic.file.fileName;
120633
120679
  });
120634
120680
  return filesInError.map(function (fileName) {
120635
120681
  var diagnosticForFileName = ts.find(diagnostics, function (diagnostic) {
@@ -120662,7 +120708,7 @@ var ts;
120662
120708
  if (errorCount === 0)
120663
120709
  return "";
120664
120710
  var nonNilFiles = filesInError.filter(function (fileInError) { return fileInError !== undefined; });
120665
- var distinctFileNamesWithLines = nonNilFiles.map(function (fileInError) { return "".concat(fileInError.fileName, ":").concat(fileInError.line); })
120711
+ var distinctFileNamesWithLines = nonNilFiles.map(function (fileInError) { return fileInError.fileName + ":" + fileInError.line; })
120666
120712
  .filter(function (value, index, self) { return self.indexOf(value) === index; });
120667
120713
  var firstFileReference = nonNilFiles[0] && prettyPathForFileError(nonNilFiles[0], host.getCurrentDirectory());
120668
120714
  var d = errorCount === 1 ?
@@ -120675,7 +120721,7 @@ var ts;
120675
120721
  ts.Diagnostics.Found_0_errors_in_the_same_file_starting_at_Colon_1 :
120676
120722
  ts.Diagnostics.Found_0_errors_in_1_files, errorCount, distinctFileNamesWithLines.length === 1 ? firstFileReference : distinctFileNamesWithLines.length);
120677
120723
  var suffix = distinctFileNamesWithLines.length > 1 ? createTabularErrorsDisplay(nonNilFiles, host) : "";
120678
- return "".concat(newLine).concat(ts.flattenDiagnosticMessageText(d.messageText, newLine)).concat(newLine).concat(newLine).concat(suffix);
120724
+ return "" + newLine + ts.flattenDiagnosticMessageText(d.messageText, newLine) + newLine + newLine + suffix;
120679
120725
  }
120680
120726
  ts.getErrorSummaryText = getErrorSummaryText;
120681
120727
  function createTabularErrorsDisplay(filesInError, host) {
@@ -120698,7 +120744,7 @@ var ts;
120698
120744
  " ".repeat(leftPaddingGoal - errorCountDigitsLength)
120699
120745
  : "";
120700
120746
  var fileRef = prettyPathForFileError(file, host.getCurrentDirectory());
120701
- tabularData += "".concat(leftPadding).concat(errorCount, " ").concat(fileRef, "\n");
120747
+ tabularData += "" + leftPadding + errorCount + " " + fileRef + "\n";
120702
120748
  });
120703
120749
  return tabularData;
120704
120750
  }
@@ -120725,9 +120771,9 @@ var ts;
120725
120771
  var relativeFileName = function (fileName) { return ts.convertToRelativePath(fileName, program.getCurrentDirectory(), getCanonicalFileName); };
120726
120772
  for (var _i = 0, _c = program.getSourceFiles(); _i < _c.length; _i++) {
120727
120773
  var file = _c[_i];
120728
- write("".concat(toFileName(file, relativeFileName)));
120729
- (_a = reasons.get(file.path)) === null || _a === void 0 ? void 0 : _a.forEach(function (reason) { return write(" ".concat(fileIncludeReasonToDiagnostics(program, reason, relativeFileName).messageText)); });
120730
- (_b = explainIfFileIsRedirect(file, relativeFileName)) === null || _b === void 0 ? void 0 : _b.forEach(function (d) { return write(" ".concat(d.messageText)); });
120774
+ write("" + toFileName(file, relativeFileName));
120775
+ (_a = reasons.get(file.path)) === null || _a === void 0 ? void 0 : _a.forEach(function (reason) { return write(" " + fileIncludeReasonToDiagnostics(program, reason, relativeFileName).messageText); });
120776
+ (_b = explainIfFileIsRedirect(file, relativeFileName)) === null || _b === void 0 ? void 0 : _b.forEach(function (d) { return write(" " + d.messageText); });
120731
120777
  }
120732
120778
  }
120733
120779
  ts.explainFiles = explainFiles;
@@ -120767,7 +120813,7 @@ var ts;
120767
120813
  if (isJsonFile && !ts.endsWith(includeSpec, ".json" /* Json */))
120768
120814
  return false;
120769
120815
  var pattern = ts.getPatternFromSpec(includeSpec, basePath, "files");
120770
- return !!pattern && ts.getRegexFromPattern("(".concat(pattern, ")$"), useCaseSensitiveFileNames).test(fileName);
120816
+ return !!pattern && ts.getRegexFromPattern("(" + pattern + ")$", useCaseSensitiveFileNames).test(fileName);
120771
120817
  });
120772
120818
  }
120773
120819
  ts.getMatchedIncludeSpec = getMatchedIncludeSpec;
@@ -120776,7 +120822,7 @@ var ts;
120776
120822
  var options = program.getCompilerOptions();
120777
120823
  if (ts.isReferencedFile(reason)) {
120778
120824
  var referenceLocation = ts.getReferencedFileLocation(function (path) { return program.getSourceFileByPath(path); }, reason);
120779
- var referenceText = ts.isReferenceFileLocation(referenceLocation) ? referenceLocation.file.text.substring(referenceLocation.pos, referenceLocation.end) : "\"".concat(referenceLocation.text, "\"");
120825
+ var referenceText = ts.isReferenceFileLocation(referenceLocation) ? referenceLocation.file.text.substring(referenceLocation.pos, referenceLocation.end) : "\"" + referenceLocation.text + "\"";
120780
120826
  var message = void 0;
120781
120827
  ts.Debug.assert(ts.isReferenceFileLocation(referenceLocation) || reason.kind === ts.FileIncludeKind.Import, "Only synthetic references are imports");
120782
120828
  switch (reason.kind) {
@@ -120900,7 +120946,7 @@ var ts;
120900
120946
  var currentDir_1 = program.getCurrentDirectory();
120901
120947
  ts.forEach(emittedFiles, function (file) {
120902
120948
  var filepath = ts.getNormalizedAbsolutePath(file, currentDir_1);
120903
- write("TSFILE: ".concat(filepath));
120949
+ write("TSFILE: " + filepath);
120904
120950
  });
120905
120951
  listFiles(program, write);
120906
120952
  }
@@ -121229,7 +121275,7 @@ var ts;
121229
121275
  }
121230
121276
  var _b = ts.createWatchFactory(host, compilerOptions), watchFile = _b.watchFile, watchDirectory = _b.watchDirectory, writeLog = _b.writeLog;
121231
121277
  var getCanonicalFileName = ts.createGetCanonicalFileName(useCaseSensitiveFileNames);
121232
- writeLog("Current directory: ".concat(currentDirectory, " CaseSensitiveFileNames: ").concat(useCaseSensitiveFileNames));
121278
+ writeLog("Current directory: " + currentDirectory + " CaseSensitiveFileNames: " + useCaseSensitiveFileNames);
121233
121279
  var configFileWatcher;
121234
121280
  if (configFileName) {
121235
121281
  configFileWatcher = watchFile(configFileName, scheduleProgramReload, ts.PollingInterval.High, watchOptions, ts.WatchType.ConfigFile);
@@ -121385,10 +121431,10 @@ var ts;
121385
121431
  function createNewProgram(hasInvalidatedResolution) {
121386
121432
  // Compile the program
121387
121433
  writeLog("CreatingProgramWith::");
121388
- writeLog(" roots: ".concat(JSON.stringify(rootFileNames)));
121389
- writeLog(" options: ".concat(JSON.stringify(compilerOptions)));
121434
+ writeLog(" roots: " + JSON.stringify(rootFileNames));
121435
+ writeLog(" options: " + JSON.stringify(compilerOptions));
121390
121436
  if (projectReferences)
121391
- writeLog(" projectReferences: ".concat(JSON.stringify(projectReferences)));
121437
+ writeLog(" projectReferences: " + JSON.stringify(projectReferences));
121392
121438
  var needsUpdateInTypeRootWatch = hasChangedCompilerOptions || !getCurrentProgram();
121393
121439
  hasChangedCompilerOptions = false;
121394
121440
  hasChangedConfigFileParsingErrors = false;
@@ -121549,7 +121595,7 @@ var ts;
121549
121595
  return resolutionCache.invalidateResolutionsOfFailedLookupLocations();
121550
121596
  }
121551
121597
  var pending = clearInvalidateResolutionsOfFailedLookupLocations();
121552
- writeLog("Scheduling invalidateFailedLookup".concat(pending ? ", Cancelled earlier one" : ""));
121598
+ writeLog("Scheduling invalidateFailedLookup" + (pending ? ", Cancelled earlier one" : ""));
121553
121599
  timerToInvalidateFailedLookupResolutions = host.setTimeout(invalidateResolutionsOfFailedLookup, 250);
121554
121600
  }
121555
121601
  function invalidateResolutionsOfFailedLookup() {
@@ -121609,7 +121655,7 @@ var ts;
121609
121655
  synchronizeProgram();
121610
121656
  }
121611
121657
  function reloadConfigFile() {
121612
- writeLog("Reloading config file: ".concat(configFileName));
121658
+ writeLog("Reloading config file: " + configFileName);
121613
121659
  reloadLevel = ts.ConfigFileProgramReloadLevel.None;
121614
121660
  if (cachedDirectoryStructureHost) {
121615
121661
  cachedDirectoryStructureHost.clearCache();
@@ -121650,7 +121696,7 @@ var ts;
121650
121696
  return config.parsedCommandLine;
121651
121697
  }
121652
121698
  }
121653
- writeLog("Loading config file: ".concat(configFileName));
121699
+ writeLog("Loading config file: " + configFileName);
121654
121700
  var parsedCommandLine = host.getParsedCommandLine ?
121655
121701
  host.getParsedCommandLine(configFileName) :
121656
121702
  getParsedCommandLineFromConfigFileHost(configFileName);
@@ -121954,8 +122000,8 @@ var ts;
121954
122000
  */
121955
122001
  function createBuilderStatusReporter(system, pretty) {
121956
122002
  return function (diagnostic) {
121957
- var output = pretty ? "[".concat(ts.formatColorAndReset(ts.getLocaleTimeString(system), ts.ForegroundColorEscapeSequences.Grey), "] ") : "".concat(ts.getLocaleTimeString(system), " - ");
121958
- output += "".concat(ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)).concat(system.newLine + system.newLine);
122003
+ var output = pretty ? "[" + ts.formatColorAndReset(ts.getLocaleTimeString(system), ts.ForegroundColorEscapeSequences.Grey) + "] " : ts.getLocaleTimeString(system) + " - ";
122004
+ output += "" + ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine) + (system.newLine + system.newLine);
121959
122005
  system.write(output);
121960
122006
  };
121961
122007
  }
@@ -122730,7 +122776,7 @@ var ts;
122730
122776
  function listEmittedFile(_a, proj, file) {
122731
122777
  var write = _a.write;
122732
122778
  if (write && proj.options.listEmittedFiles) {
122733
- write("TSFILE: ".concat(file));
122779
+ write("TSFILE: " + file);
122734
122780
  }
122735
122781
  }
122736
122782
  function getOldProgram(_a, proj, parsed) {
@@ -122759,7 +122805,7 @@ var ts;
122759
122805
  function buildErrors(state, resolvedPath, program, config, diagnostics, buildResult, errorType) {
122760
122806
  var canEmitBuildInfo = !(buildResult & BuildResultFlags.SyntaxErrors) && program && !ts.outFile(program.getCompilerOptions());
122761
122807
  reportAndStoreErrors(state, resolvedPath, diagnostics);
122762
- state.projectStatus.set(resolvedPath, { type: ts.UpToDateStatusType.Unbuildable, reason: "".concat(errorType, " errors") });
122808
+ state.projectStatus.set(resolvedPath, { type: ts.UpToDateStatusType.Unbuildable, reason: errorType + " errors" });
122763
122809
  if (canEmitBuildInfo)
122764
122810
  return { buildResult: buildResult, step: BuildStep.EmitBuildInfo };
122765
122811
  afterProgramDone(state, program, config);
@@ -122787,7 +122833,7 @@ var ts;
122787
122833
  if (!host.fileExists(inputFile)) {
122788
122834
  return {
122789
122835
  type: ts.UpToDateStatusType.Unbuildable,
122790
- reason: "".concat(inputFile, " does not exist")
122836
+ reason: inputFile + " does not exist"
122791
122837
  };
122792
122838
  }
122793
122839
  if (!force) {
@@ -123146,7 +123192,7 @@ var ts;
123146
123192
  }
123147
123193
  }
123148
123194
  if (filesToDelete) {
123149
- 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(""));
123195
+ reportStatus(state, ts.Diagnostics.A_non_dry_build_would_delete_the_following_files_Colon_0, filesToDelete.map(function (f) { return "\r\n * " + f; }).join(""));
123150
123196
  }
123151
123197
  return ts.ExitStatus.Success;
123152
123198
  }
@@ -125976,7 +126022,7 @@ var ts;
125976
126022
  var prefix = ts.isJSDocLink(link) ? "link"
125977
126023
  : ts.isJSDocLinkCode(link) ? "linkcode"
125978
126024
  : "linkplain";
125979
- var parts = [linkPart("{@".concat(prefix, " "))];
126025
+ var parts = [linkPart("{@" + prefix + " ")];
125980
126026
  if (!link.name) {
125981
126027
  if (link.text)
125982
126028
  parts.push(linkTextPart(link.text));
@@ -126224,7 +126270,7 @@ var ts;
126224
126270
  function getUniqueName(baseName, sourceFile) {
126225
126271
  var nameText = baseName;
126226
126272
  for (var i = 1; !ts.isFileLevelUniqueName(sourceFile, nameText); i++) {
126227
- nameText = "".concat(baseName, "_").concat(i);
126273
+ nameText = baseName + "_" + i;
126228
126274
  }
126229
126275
  return nameText;
126230
126276
  }
@@ -126334,7 +126380,7 @@ var ts;
126334
126380
  // Editors can pass in undefined or empty string - we want to infer the preference in those cases.
126335
126381
  var quotePreference = getQuotePreference(sourceFile, preferences);
126336
126382
  var quoted = JSON.stringify(text);
126337
- return quotePreference === 0 /* Single */ ? "'".concat(ts.stripQuotes(quoted).replace(/'/g, "\\'").replace(/\\"/g, '"'), "'") : quoted;
126383
+ return quotePreference === 0 /* Single */ ? "'" + ts.stripQuotes(quoted).replace(/'/g, "\\'").replace(/\\"/g, '"') + "'" : quoted;
126338
126384
  }
126339
126385
  ts.quote = quote;
126340
126386
  function isEqualityOperatorKind(kind) {
@@ -126718,7 +126764,7 @@ var ts;
126718
126764
  var components = ts.getPathComponents(ts.getPackageNameFromTypesPackageName(fullSpecifier)).slice(1);
126719
126765
  // Scoped packages
126720
126766
  if (ts.startsWith(components[0], "@")) {
126721
- return "".concat(components[0], "/").concat(components[1]);
126767
+ return components[0] + "/" + components[1];
126722
126768
  }
126723
126769
  return components[0];
126724
126770
  }
@@ -126845,13 +126891,13 @@ var ts;
126845
126891
  }
126846
126892
  function getSymbolParentOrFail(symbol) {
126847
126893
  var _a;
126848
- return ts.Debug.checkDefined(symbol.parent, "Symbol parent was undefined. Flags: ".concat(ts.Debug.formatSymbolFlags(symbol.flags), ". ") +
126849
- "Declarations: ".concat((_a = symbol.declarations) === null || _a === void 0 ? void 0 : _a.map(function (d) {
126894
+ return ts.Debug.checkDefined(symbol.parent, "Symbol parent was undefined. Flags: " + ts.Debug.formatSymbolFlags(symbol.flags) + ". " +
126895
+ ("Declarations: " + ((_a = symbol.declarations) === null || _a === void 0 ? void 0 : _a.map(function (d) {
126850
126896
  var kind = ts.Debug.formatSyntaxKind(d.kind);
126851
126897
  var inJS = ts.isInJSFile(d);
126852
126898
  var expression = d.expression;
126853
- return (inJS ? "[JS]" : "") + kind + (expression ? " (expression: ".concat(ts.Debug.formatSyntaxKind(expression.kind), ")") : "");
126854
- }).join(", "), "."));
126899
+ return (inJS ? "[JS]" : "") + kind + (expression ? " (expression: " + ts.Debug.formatSyntaxKind(expression.kind) + ")" : "");
126900
+ }).join(", ")) + "."));
126855
126901
  }
126856
126902
  /**
126857
126903
  * Useful to check whether a string contains another string at a specific index
@@ -126934,6 +126980,10 @@ var ts;
126934
126980
  return __assign(__assign({}, options), { semicolons: shouldRemoveSemicolons ? ts.SemicolonPreference.Remove : ts.SemicolonPreference.Ignore });
126935
126981
  }
126936
126982
  ts.getFormatCodeSettingsForWriting = getFormatCodeSettingsForWriting;
126983
+ function jsxModeNeedsExplicitImport(jsx) {
126984
+ return jsx === 2 /* React */ || jsx === 3 /* ReactNative */;
126985
+ }
126986
+ ts.jsxModeNeedsExplicitImport = jsxModeNeedsExplicitImport;
126937
126987
  // #endregion
126938
126988
  })(ts || (ts = {}));
126939
126989
  /*@internal*/
@@ -127112,7 +127162,7 @@ var ts;
127112
127162
  : checker.tryFindAmbientModule(info.moduleName));
127113
127163
  var symbol = info.symbol || cachedSymbol || ts.Debug.checkDefined(exportKind === 2 /* ExportEquals */
127114
127164
  ? checker.resolveExternalModuleSymbol(moduleSymbol)
127115
- : checker.tryGetMemberInModuleExportsAndProperties(ts.unescapeLeadingUnderscores(info.symbolTableKey), moduleSymbol), "Could not find symbol '".concat(info.symbolName, "' by key '").concat(info.symbolTableKey, "' in module ").concat(moduleSymbol.name));
127165
+ : checker.tryGetMemberInModuleExportsAndProperties(ts.unescapeLeadingUnderscores(info.symbolTableKey), moduleSymbol), "Could not find symbol '" + info.symbolName + "' by key '" + info.symbolTableKey + "' in module " + moduleSymbol.name);
127116
127166
  symbols.set(id, [symbol, moduleSymbol]);
127117
127167
  return {
127118
127168
  symbol: symbol,
@@ -127125,7 +127175,7 @@ var ts;
127125
127175
  }
127126
127176
  function key(importedName, symbol, ambientModuleName, checker) {
127127
127177
  var moduleKey = ambientModuleName || "";
127128
- return "".concat(importedName, "|").concat(ts.getSymbolId(ts.skipAlias(symbol, checker)), "|").concat(moduleKey);
127178
+ return importedName + "|" + ts.getSymbolId(ts.skipAlias(symbol, checker)) + "|" + moduleKey;
127129
127179
  }
127130
127180
  function parseKey(key) {
127131
127181
  var symbolName = key.substring(0, key.indexOf("|"));
@@ -127211,7 +127261,7 @@ var ts;
127211
127261
  if (autoImportProvider) {
127212
127262
  var start = ts.timestamp();
127213
127263
  forEachExternalModule(autoImportProvider.getTypeChecker(), autoImportProvider.getSourceFiles(), function (module, file) { return cb(module, file, autoImportProvider, /*isFromPackageJson*/ true); });
127214
- (_b = host.log) === null || _b === void 0 ? void 0 : _b.call(host, "forEachExternalModuleToImportFrom autoImportProvider: ".concat(ts.timestamp() - start));
127264
+ (_b = host.log) === null || _b === void 0 ? void 0 : _b.call(host, "forEachExternalModuleToImportFrom autoImportProvider: " + (ts.timestamp() - start));
127215
127265
  }
127216
127266
  }
127217
127267
  ts.forEachExternalModuleToImportFrom = forEachExternalModuleToImportFrom;
@@ -127264,7 +127314,7 @@ var ts;
127264
127314
  }
127265
127315
  });
127266
127316
  });
127267
- (_e = host.log) === null || _e === void 0 ? void 0 : _e.call(host, "getExportInfoMap: done in ".concat(ts.timestamp() - start, " ms"));
127317
+ (_e = host.log) === null || _e === void 0 ? void 0 : _e.call(host, "getExportInfoMap: done in " + (ts.timestamp() - start) + " ms");
127268
127318
  return cache;
127269
127319
  }
127270
127320
  ts.getExportInfoMap = getExportInfoMap;
@@ -127797,7 +127847,7 @@ var ts;
127797
127847
  return { spans: spans, endOfLineState: 0 /* None */ };
127798
127848
  function pushClassification(start, end, type) {
127799
127849
  var length = end - start;
127800
- ts.Debug.assert(length > 0, "Classification had non-positive length of ".concat(length));
127850
+ ts.Debug.assert(length > 0, "Classification had non-positive length of " + length);
127801
127851
  spans.push(start);
127802
127852
  spans.push(length);
127803
127853
  spans.push(type);
@@ -128669,7 +128719,7 @@ var ts;
128669
128719
  case ".d.cts" /* Dcts */: return ".d.cts" /* dctsModifier */;
128670
128720
  case ".cjs" /* Cjs */: return ".cjs" /* cjsModifier */;
128671
128721
  case ".cts" /* Cts */: return ".cts" /* ctsModifier */;
128672
- case ".tsbuildinfo" /* TsBuildInfo */: return ts.Debug.fail("Extension ".concat(".tsbuildinfo" /* TsBuildInfo */, " is unsupported."));
128722
+ case ".tsbuildinfo" /* TsBuildInfo */: return ts.Debug.fail("Extension " + ".tsbuildinfo" /* TsBuildInfo */ + " is unsupported.");
128673
128723
  case undefined: return "" /* none */;
128674
128724
  default:
128675
128725
  return ts.Debug.assertNever(extension);
@@ -128878,9 +128928,18 @@ var ts;
128878
128928
  return getCompletionEntriesForDirectoryFragment(literalValue, scriptDirectory, extensionOptions, host, scriptPath);
128879
128929
  }
128880
128930
  }
128931
+ function isEmitResolutionKindUsingNodeModules(compilerOptions) {
128932
+ return ts.getEmitModuleResolutionKind(compilerOptions) === ts.ModuleResolutionKind.NodeJs ||
128933
+ ts.getEmitModuleResolutionKind(compilerOptions) === ts.ModuleResolutionKind.Node12 ||
128934
+ ts.getEmitModuleResolutionKind(compilerOptions) === ts.ModuleResolutionKind.NodeNext;
128935
+ }
128936
+ function isEmitModuleResolutionRespectingExportMaps(compilerOptions) {
128937
+ return ts.getEmitModuleResolutionKind(compilerOptions) === ts.ModuleResolutionKind.Node12 ||
128938
+ ts.getEmitModuleResolutionKind(compilerOptions) === ts.ModuleResolutionKind.NodeNext;
128939
+ }
128881
128940
  function getSupportedExtensionsForModuleResolution(compilerOptions) {
128882
128941
  var extensions = ts.getSupportedExtensions(compilerOptions);
128883
- return ts.getEmitModuleResolutionKind(compilerOptions) === ts.ModuleResolutionKind.NodeJs ?
128942
+ return isEmitResolutionKindUsingNodeModules(compilerOptions) ?
128884
128943
  ts.getSupportedExtensionsWithJsonIfResolveJsonModule(compilerOptions, extensions) :
128885
128944
  extensions;
128886
128945
  }
@@ -129043,7 +129102,7 @@ var ts;
129043
129102
  result.push(nameAndKind(ambientName, "external module name" /* externalModuleName */, /*extension*/ undefined));
129044
129103
  }
129045
129104
  getCompletionEntriesFromTypings(host, compilerOptions, scriptPath, fragmentDirectory, extensionOptions, result);
129046
- if (ts.getEmitModuleResolutionKind(compilerOptions) === ts.ModuleResolutionKind.NodeJs) {
129105
+ if (isEmitResolutionKindUsingNodeModules(compilerOptions)) {
129047
129106
  // If looking for a global package name, don't just include everything in `node_modules` because that includes dependencies' own dependencies.
129048
129107
  // (But do if we didn't find anything, e.g. 'package.json' missing.)
129049
129108
  var foundGlobal = false;
@@ -129060,12 +129119,68 @@ var ts;
129060
129119
  }
129061
129120
  }
129062
129121
  if (!foundGlobal) {
129063
- ts.forEachAncestorDirectory(scriptPath, function (ancestor) {
129122
+ var ancestorLookup = function (ancestor) {
129064
129123
  var nodeModules = ts.combinePaths(ancestor, "node_modules");
129065
129124
  if (ts.tryDirectoryExists(host, nodeModules)) {
129066
129125
  getCompletionEntriesForDirectoryFragment(fragment, nodeModules, extensionOptions, host, /*exclude*/ undefined, result);
129067
129126
  }
129068
- });
129127
+ };
129128
+ if (fragmentDirectory && isEmitModuleResolutionRespectingExportMaps(compilerOptions)) {
129129
+ var nodeModulesDirectoryLookup_1 = ancestorLookup;
129130
+ ancestorLookup = function (ancestor) {
129131
+ var components = ts.getPathComponents(fragment);
129132
+ components.shift(); // shift off empty root
129133
+ var packagePath = components.shift();
129134
+ if (!packagePath) {
129135
+ return nodeModulesDirectoryLookup_1(ancestor);
129136
+ }
129137
+ if (ts.startsWith(packagePath, "@")) {
129138
+ var subName = components.shift();
129139
+ if (!subName) {
129140
+ return nodeModulesDirectoryLookup_1(ancestor);
129141
+ }
129142
+ packagePath = ts.combinePaths(packagePath, subName);
129143
+ }
129144
+ var packageFile = ts.combinePaths(ancestor, "node_modules", packagePath, "package.json");
129145
+ if (ts.tryFileExists(host, packageFile)) {
129146
+ var packageJson = ts.readJson(packageFile, host);
129147
+ var exports = packageJson.exports;
129148
+ if (exports) {
129149
+ if (typeof exports !== "object" || exports === null) { // eslint-disable-line no-null/no-null
129150
+ return; // null exports or entrypoint only, no sub-modules available
129151
+ }
129152
+ var keys = ts.getOwnKeys(exports);
129153
+ var fragmentSubpath_1 = components.join("/");
129154
+ var processedKeys = ts.mapDefined(keys, function (k) {
129155
+ if (k === ".")
129156
+ return undefined;
129157
+ if (!ts.startsWith(k, "./"))
129158
+ return undefined;
129159
+ var subpath = k.substring(2);
129160
+ if (!ts.startsWith(subpath, fragmentSubpath_1))
129161
+ return undefined;
129162
+ // subpath is a valid export (barring conditions, which we don't currently check here)
129163
+ if (!ts.stringContains(subpath, "*")) {
129164
+ return subpath;
129165
+ }
129166
+ // pattern export - only return everything up to the `*`, so the user can autocomplete, then
129167
+ // keep filling in the pattern (we could speculatively return a list of options by hitting disk,
129168
+ // but conditions will make that somewhat awkward, as each condition may have a different set of possible
129169
+ // options for the `*`.
129170
+ return subpath.slice(0, subpath.indexOf("*"));
129171
+ });
129172
+ ts.forEach(processedKeys, function (k) {
129173
+ if (k) {
129174
+ result.push(nameAndKind(k, "external module name" /* externalModuleName */, /*extension*/ undefined));
129175
+ }
129176
+ });
129177
+ return;
129178
+ }
129179
+ }
129180
+ return nodeModulesDirectoryLookup_1(ancestor);
129181
+ };
129182
+ }
129183
+ ts.forEachAncestorDirectory(scriptPath, ancestorLookup);
129069
129184
  }
129070
129185
  }
129071
129186
  return result;
@@ -129405,10 +129520,10 @@ var ts;
129405
129520
  var resolvedFromCacheCount = 0;
129406
129521
  var cacheAttemptCount = 0;
129407
129522
  var result = cb({ tryResolve: tryResolve, resolutionLimitExceeded: function () { return resolutionLimitExceeded; } });
129408
- var hitRateMessage = cacheAttemptCount ? " (".concat((resolvedFromCacheCount / cacheAttemptCount * 100).toFixed(1), "% hit rate)") : "";
129409
- (_a = host.log) === null || _a === void 0 ? void 0 : _a.call(host, "".concat(logPrefix, ": resolved ").concat(resolvedCount, " module specifiers, plus ").concat(ambientCount, " ambient and ").concat(resolvedFromCacheCount, " from cache").concat(hitRateMessage));
129410
- (_b = host.log) === null || _b === void 0 ? void 0 : _b.call(host, "".concat(logPrefix, ": response is ").concat(resolutionLimitExceeded ? "incomplete" : "complete"));
129411
- (_c = host.log) === null || _c === void 0 ? void 0 : _c.call(host, "".concat(logPrefix, ": ").concat(ts.timestamp() - start));
129523
+ var hitRateMessage = cacheAttemptCount ? " (" + (resolvedFromCacheCount / cacheAttemptCount * 100).toFixed(1) + "% hit rate)" : "";
129524
+ (_a = host.log) === null || _a === void 0 ? void 0 : _a.call(host, logPrefix + ": resolved " + resolvedCount + " module specifiers, plus " + ambientCount + " ambient and " + resolvedFromCacheCount + " from cache" + hitRateMessage);
129525
+ (_b = host.log) === null || _b === void 0 ? void 0 : _b.call(host, logPrefix + ": response is " + (resolutionLimitExceeded ? "incomplete" : "complete"));
129526
+ (_c = host.log) === null || _c === void 0 ? void 0 : _c.call(host, logPrefix + ": " + (ts.timestamp() - start));
129412
129527
  return result;
129413
129528
  function tryResolve(exportInfo, isFromAmbientModule) {
129414
129529
  if (isFromAmbientModule) {
@@ -129741,15 +129856,15 @@ var ts;
129741
129856
  var useBraces = origin && originIsSymbolMember(origin) || needsConvertPropertyAccess;
129742
129857
  if (origin && originIsThisType(origin)) {
129743
129858
  insertText = needsConvertPropertyAccess
129744
- ? "this".concat(insertQuestionDot ? "?." : "", "[").concat(quotePropertyName(sourceFile, preferences, name), "]")
129745
- : "this".concat(insertQuestionDot ? "?." : ".").concat(name);
129859
+ ? "this" + (insertQuestionDot ? "?." : "") + "[" + quotePropertyName(sourceFile, preferences, name) + "]"
129860
+ : "this" + (insertQuestionDot ? "?." : ".") + name;
129746
129861
  }
129747
129862
  // We should only have needsConvertPropertyAccess if there's a property access to convert. But see #21790.
129748
129863
  // Somehow there was a global with a non-identifier name. Hopefully someone will complain about getting a "foo bar" global completion and provide a repro.
129749
129864
  else if ((useBraces || insertQuestionDot) && propertyAccessToConvert) {
129750
- insertText = useBraces ? needsConvertPropertyAccess ? "[".concat(quotePropertyName(sourceFile, preferences, name), "]") : "[".concat(name, "]") : name;
129865
+ insertText = useBraces ? needsConvertPropertyAccess ? "[" + quotePropertyName(sourceFile, preferences, name) + "]" : "[" + name + "]" : name;
129751
129866
  if (insertQuestionDot || propertyAccessToConvert.questionDotToken) {
129752
- insertText = "?.".concat(insertText);
129867
+ insertText = "?." + insertText;
129753
129868
  }
129754
129869
  var dot = ts.findChildOfKind(propertyAccessToConvert, 24 /* DotToken */, sourceFile) ||
129755
129870
  ts.findChildOfKind(propertyAccessToConvert, 28 /* QuestionDotToken */, sourceFile);
@@ -129763,7 +129878,7 @@ var ts;
129763
129878
  if (isJsxInitializer) {
129764
129879
  if (insertText === undefined)
129765
129880
  insertText = name;
129766
- insertText = "{".concat(insertText, "}");
129881
+ insertText = "{" + insertText + "}";
129767
129882
  if (typeof isJsxInitializer !== "boolean") {
129768
129883
  replacementSpan = ts.createTextSpanFromNode(isJsxInitializer, sourceFile);
129769
129884
  }
@@ -129776,8 +129891,8 @@ var ts;
129776
129891
  if (precedingToken && ts.positionIsASICandidate(precedingToken.end, precedingToken.parent, sourceFile)) {
129777
129892
  awaitText = ";";
129778
129893
  }
129779
- awaitText += "(await ".concat(propertyAccessToConvert.expression.getText(), ")");
129780
- insertText = needsConvertPropertyAccess ? "".concat(awaitText).concat(insertText) : "".concat(awaitText).concat(insertQuestionDot ? "?." : ".").concat(insertText);
129894
+ awaitText += "(await " + propertyAccessToConvert.expression.getText() + ")";
129895
+ insertText = needsConvertPropertyAccess ? "" + awaitText + insertText : "" + awaitText + (insertQuestionDot ? "?." : ".") + insertText;
129781
129896
  replacementSpan = ts.createTextSpanFromBounds(propertyAccessToConvert.getStart(sourceFile), propertyAccessToConvert.end);
129782
129897
  }
129783
129898
  if (originIsResolvedExport(origin)) {
@@ -129810,7 +129925,7 @@ var ts;
129810
129925
  && !(type.flags & 1048576 /* Union */ && ts.find(type.types, function (type) { return !!(type.flags & 528 /* BooleanLike */); }))) {
129811
129926
  if (type.flags & 402653316 /* StringLike */ || (type.flags & 1048576 /* Union */ && ts.every(type.types, function (type) { return !!(type.flags & (402653316 /* StringLike */ | 32768 /* Undefined */)); }))) {
129812
129927
  // If is string like or undefined use quotes
129813
- insertText = "".concat(ts.escapeSnippetText(name), "=").concat(ts.quote(sourceFile, preferences, "$1"));
129928
+ insertText = ts.escapeSnippetText(name) + "=" + ts.quote(sourceFile, preferences, "$1");
129814
129929
  isSnippet = true;
129815
129930
  }
129816
129931
  else {
@@ -129819,7 +129934,7 @@ var ts;
129819
129934
  }
129820
129935
  }
129821
129936
  if (useBraces_1) {
129822
- insertText = "".concat(ts.escapeSnippetText(name), "={$1}");
129937
+ insertText = ts.escapeSnippetText(name) + "={$1}";
129823
129938
  isSnippet = true;
129824
129939
  }
129825
129940
  }
@@ -130104,14 +130219,14 @@ var ts;
130104
130219
  var importKind = ts.codefix.getImportKind(sourceFile, exportKind, options, /*forceImportKeyword*/ true);
130105
130220
  var isTopLevelTypeOnly = ((_b = (_a = ts.tryCast(importCompletionNode, ts.isImportDeclaration)) === null || _a === void 0 ? void 0 : _a.importClause) === null || _b === void 0 ? void 0 : _b.isTypeOnly) || ((_c = ts.tryCast(importCompletionNode, ts.isImportEqualsDeclaration)) === null || _c === void 0 ? void 0 : _c.isTypeOnly);
130106
130221
  var isImportSpecifierTypeOnly = couldBeTypeOnlyImportSpecifier(importCompletionNode, contextToken);
130107
- var topLevelTypeOnlyText = isTopLevelTypeOnly ? " ".concat(ts.tokenToString(151 /* TypeKeyword */), " ") : " ";
130108
- var importSpecifierTypeOnlyText = isImportSpecifierTypeOnly ? "".concat(ts.tokenToString(151 /* TypeKeyword */), " ") : "";
130222
+ var topLevelTypeOnlyText = isTopLevelTypeOnly ? " " + ts.tokenToString(151 /* TypeKeyword */) + " " : " ";
130223
+ var importSpecifierTypeOnlyText = isImportSpecifierTypeOnly ? ts.tokenToString(151 /* TypeKeyword */) + " " : "";
130109
130224
  var suffix = useSemicolons ? ";" : "";
130110
130225
  switch (importKind) {
130111
- case 3 /* CommonJS */: return { replacementSpan: replacementSpan, insertText: "import".concat(topLevelTypeOnlyText).concat(ts.escapeSnippetText(name)).concat(tabStop, " = require(").concat(quotedModuleSpecifier, ")").concat(suffix) };
130112
- case 1 /* Default */: return { replacementSpan: replacementSpan, insertText: "import".concat(topLevelTypeOnlyText).concat(ts.escapeSnippetText(name)).concat(tabStop, " from ").concat(quotedModuleSpecifier).concat(suffix) };
130113
- case 2 /* Namespace */: return { replacementSpan: replacementSpan, insertText: "import".concat(topLevelTypeOnlyText, "* as ").concat(ts.escapeSnippetText(name), " from ").concat(quotedModuleSpecifier).concat(suffix) };
130114
- case 0 /* Named */: return { replacementSpan: replacementSpan, insertText: "import".concat(topLevelTypeOnlyText, "{ ").concat(importSpecifierTypeOnlyText).concat(ts.escapeSnippetText(name)).concat(tabStop, " } from ").concat(quotedModuleSpecifier).concat(suffix) };
130226
+ case 3 /* CommonJS */: return { replacementSpan: replacementSpan, insertText: "import" + topLevelTypeOnlyText + ts.escapeSnippetText(name) + tabStop + " = require(" + quotedModuleSpecifier + ")" + suffix };
130227
+ case 1 /* Default */: return { replacementSpan: replacementSpan, insertText: "import" + topLevelTypeOnlyText + ts.escapeSnippetText(name) + tabStop + " from " + quotedModuleSpecifier + suffix };
130228
+ case 2 /* Namespace */: return { replacementSpan: replacementSpan, insertText: "import" + topLevelTypeOnlyText + "* as " + ts.escapeSnippetText(name) + " from " + quotedModuleSpecifier + suffix };
130229
+ case 0 /* Named */: return { replacementSpan: replacementSpan, insertText: "import" + topLevelTypeOnlyText + "{ " + importSpecifierTypeOnlyText + ts.escapeSnippetText(name) + tabStop + " } from " + quotedModuleSpecifier + suffix };
130115
130230
  }
130116
130231
  }
130117
130232
  function quotePropertyName(sourceFile, preferences, name) {
@@ -133073,7 +133188,7 @@ var ts;
133073
133188
  }
133074
133189
  function getDocumentRegistryEntry(bucketEntry, scriptKind) {
133075
133190
  var entry = isDocumentRegistryEntry(bucketEntry) ? bucketEntry : bucketEntry.get(ts.Debug.checkDefined(scriptKind, "If there are more than one scriptKind's for same document the scriptKind should be provided"));
133076
- ts.Debug.assert(scriptKind === undefined || !entry || entry.sourceFile.scriptKind === scriptKind, "Script kind should match provided ScriptKind:".concat(scriptKind, " and sourceFile.scriptKind: ").concat(entry === null || entry === void 0 ? void 0 : entry.sourceFile.scriptKind, ", !entry: ").concat(!entry));
133191
+ ts.Debug.assert(scriptKind === undefined || !entry || entry.sourceFile.scriptKind === scriptKind, "Script kind should match provided ScriptKind:" + scriptKind + " and sourceFile.scriptKind: " + (entry === null || entry === void 0 ? void 0 : entry.sourceFile.scriptKind) + ", !entry: " + !entry);
133077
133192
  return entry;
133078
133193
  }
133079
133194
  function acquireOrUpdateDocument(fileName, path, compilationSettings, key, scriptSnapshot, version, acquiring, scriptKind) {
@@ -134102,7 +134217,7 @@ var ts;
134102
134217
  sourceFile: def.file,
134103
134218
  name: def.reference.fileName,
134104
134219
  kind: "string" /* string */,
134105
- displayParts: [ts.displayPart("\"".concat(def.reference.fileName, "\""), ts.SymbolDisplayPartKind.stringLiteral)]
134220
+ displayParts: [ts.displayPart("\"" + def.reference.fileName + "\"", ts.SymbolDisplayPartKind.stringLiteral)]
134106
134221
  };
134107
134222
  }
134108
134223
  default:
@@ -134682,7 +134797,7 @@ var ts;
134682
134797
  if (symbol.flags & 33554432 /* Transient */)
134683
134798
  return undefined;
134684
134799
  // Assertions for GH#21814. We should be handling SourceFile symbols in `getReferencedSymbolsForModule` instead of getting here.
134685
- ts.Debug.fail("Unexpected symbol at ".concat(ts.Debug.formatSyntaxKind(node.kind), ": ").concat(ts.Debug.formatSymbol(symbol)));
134800
+ ts.Debug.fail("Unexpected symbol at " + ts.Debug.formatSyntaxKind(node.kind) + ": " + ts.Debug.formatSymbol(symbol));
134686
134801
  }
134687
134802
  return ts.isTypeLiteralNode(decl.parent) && ts.isUnionTypeNode(decl.parent.parent)
134688
134803
  ? checker.getPropertyOfType(checker.getTypeFromTypeNode(decl.parent.parent), symbol.name)
@@ -135967,8 +136082,8 @@ var ts;
135967
136082
  var end = pos + 6; /* "static".length */
135968
136083
  var typeChecker = program.getTypeChecker();
135969
136084
  var symbol = typeChecker.getSymbolAtLocation(node.parent);
135970
- var prefix = symbol ? "".concat(typeChecker.symbolToString(symbol, node.parent), " ") : "";
135971
- return { text: "".concat(prefix, "static {}"), pos: pos, end: end };
136085
+ var prefix = symbol ? typeChecker.symbolToString(symbol, node.parent) + " " : "";
136086
+ return { text: prefix + "static {}", pos: pos, end: end };
135972
136087
  }
135973
136088
  var declName = isConstNamedExpression(node) ? node.parent.name :
135974
136089
  ts.Debug.checkDefined(ts.getNameOfDeclaration(node), "Expected call hierarchy item to have a name");
@@ -137252,7 +137367,7 @@ var ts;
137252
137367
  function getJSDocTagCompletions() {
137253
137368
  return jsDocTagCompletionEntries || (jsDocTagCompletionEntries = ts.map(jsDocTagNames, function (tagName) {
137254
137369
  return {
137255
- name: "@".concat(tagName),
137370
+ name: "@" + tagName,
137256
137371
  kind: "keyword" /* keyword */,
137257
137372
  kindModifiers: "",
137258
137373
  sortText: ts.Completions.SortText.LocationPriority
@@ -137384,11 +137499,11 @@ var ts;
137384
137499
  var name = _a.name, dotDotDotToken = _a.dotDotDotToken;
137385
137500
  var paramName = name.kind === 79 /* Identifier */ ? name.text : "param" + i;
137386
137501
  var type = isJavaScriptFile ? (dotDotDotToken ? "{...any} " : "{any} ") : "";
137387
- return "".concat(indentationStr, " * @param ").concat(type).concat(paramName).concat(newLine);
137502
+ return indentationStr + " * @param " + type + paramName + newLine;
137388
137503
  }).join("");
137389
137504
  }
137390
137505
  function returnsDocComment(indentationStr, newLine) {
137391
- return "".concat(indentationStr, " * @returns").concat(newLine);
137506
+ return indentationStr + " * @returns" + newLine;
137392
137507
  }
137393
137508
  function getCommentOwnerInfo(tokenAtPos, options) {
137394
137509
  return ts.forEachAncestor(tokenAtPos, function (n) { return getCommentOwnerInfoWorker(n, options); });
@@ -138231,7 +138346,7 @@ var ts;
138231
138346
  }
138232
138347
  if (name) {
138233
138348
  var text = ts.isIdentifier(name) ? name.text
138234
- : ts.isElementAccessExpression(name) ? "[".concat(nodeText(name.argumentExpression), "]")
138349
+ : ts.isElementAccessExpression(name) ? "[" + nodeText(name.argumentExpression) + "]"
138235
138350
  : nodeText(name);
138236
138351
  if (text.length > 0) {
138237
138352
  return cleanText(text);
@@ -138241,7 +138356,7 @@ var ts;
138241
138356
  case 303 /* SourceFile */:
138242
138357
  var sourceFile = node;
138243
138358
  return ts.isExternalModule(sourceFile)
138244
- ? "\"".concat(ts.escapeString(ts.getBaseFileName(ts.removeFileExtension(ts.normalizePath(sourceFile.fileName)))), "\"")
138359
+ ? "\"" + ts.escapeString(ts.getBaseFileName(ts.removeFileExtension(ts.normalizePath(sourceFile.fileName)))) + "\""
138245
138360
  : "<global>";
138246
138361
  case 270 /* ExportAssignment */:
138247
138362
  return ts.isExportAssignment(node) && node.isExportEquals ? "export=" /* ExportEquals */ : "default" /* Default */;
@@ -138437,10 +138552,10 @@ var ts;
138437
138552
  if (name !== undefined) {
138438
138553
  name = cleanText(name);
138439
138554
  if (name.length > maxLength) {
138440
- return "".concat(name, " callback");
138555
+ return name + " callback";
138441
138556
  }
138442
138557
  var args = cleanText(ts.mapDefined(parent.arguments, function (a) { return ts.isStringLiteralLike(a) ? a.getText(curSourceFile) : undefined; }).join(", "));
138443
- return "".concat(name, "(").concat(args, ") callback");
138558
+ return name + "(" + args + ") callback";
138444
138559
  }
138445
138560
  }
138446
138561
  return "<function>";
@@ -138453,7 +138568,7 @@ var ts;
138453
138568
  else if (ts.isPropertyAccessExpression(expr)) {
138454
138569
  var left = getCalledExpressionName(expr.expression);
138455
138570
  var right = expr.name.text;
138456
- return left === undefined ? right : "".concat(left, ".").concat(right);
138571
+ return left === undefined ? right : left + "." + right;
138457
138572
  }
138458
138573
  else {
138459
138574
  return undefined;
@@ -138558,6 +138673,7 @@ var ts;
138558
138673
  return oldImports;
138559
138674
  }
138560
138675
  var typeChecker = program.getTypeChecker();
138676
+ var compilerOptions = program.getCompilerOptions();
138561
138677
  var jsxNamespace = typeChecker.getJsxNamespace(sourceFile);
138562
138678
  var jsxFragmentFactory = typeChecker.getJsxFragmentFactory(sourceFile);
138563
138679
  var jsxElementsPresent = !!(sourceFile.transformFlags & 2 /* ContainsJsx */);
@@ -138614,7 +138730,7 @@ var ts;
138614
138730
  return usedImports;
138615
138731
  function isDeclarationUsed(identifier) {
138616
138732
  // The JSX factory symbol is always used if JSX elements are present - even if they are not allowed.
138617
- return jsxElementsPresent && (identifier.text === jsxNamespace || jsxFragmentFactory && identifier.text === jsxFragmentFactory) ||
138733
+ return jsxElementsPresent && (identifier.text === jsxNamespace || jsxFragmentFactory && identifier.text === jsxFragmentFactory) && ts.jsxModeNeedsExplicitImport(compilerOptions.jsx) ||
138618
138734
  ts.FindAllReferences.Core.isSymbolReferencedInFile(identifier, typeChecker, sourceFile);
138619
138735
  }
138620
138736
  }
@@ -140900,7 +141016,7 @@ var ts;
140900
141016
  var _loop_9 = function (n) {
140901
141017
  // If the node is not a subspan of its parent, this is a big problem.
140902
141018
  // There have been crashes that might be caused by this violation.
140903
- ts.Debug.assert(ts.rangeContainsRange(n.parent, n), "Not a subspan", function () { return "Child: ".concat(ts.Debug.formatSyntaxKind(n.kind), ", parent: ").concat(ts.Debug.formatSyntaxKind(n.parent.kind)); });
141019
+ ts.Debug.assert(ts.rangeContainsRange(n.parent, n), "Not a subspan", function () { return "Child: " + ts.Debug.formatSyntaxKind(n.kind) + ", parent: " + ts.Debug.formatSyntaxKind(n.parent.kind); });
140904
141020
  var argumentInfo = getImmediatelyContainingArgumentOrContextualParameterInfo(n, position, sourceFile, checker);
140905
141021
  if (argumentInfo) {
140906
141022
  return { value: argumentInfo };
@@ -141072,7 +141188,7 @@ var ts;
141072
141188
  (function (InlayHints) {
141073
141189
  var maxHintsLength = 30;
141074
141190
  var leadingParameterNameCommentRegexFactory = function (name) {
141075
- return new RegExp("^\\s?/\\*\\*?\\s?".concat(name, "\\s?\\*\\/\\s?$"));
141191
+ return new RegExp("^\\s?/\\*\\*?\\s?" + name + "\\s?\\*\\/\\s?$");
141076
141192
  };
141077
141193
  function shouldShowParameterNameHints(preferences) {
141078
141194
  return preferences.includeInlayParameterNameHints === "literals" || preferences.includeInlayParameterNameHints === "all";
@@ -141136,7 +141252,7 @@ var ts;
141136
141252
  }
141137
141253
  function addParameterHints(text, position, isFirstVariadicArgument) {
141138
141254
  result.push({
141139
- text: "".concat(isFirstVariadicArgument ? "..." : "").concat(truncation(text, maxHintsLength), ":"),
141255
+ text: "" + (isFirstVariadicArgument ? "..." : "") + truncation(text, maxHintsLength) + ":",
141140
141256
  position: position,
141141
141257
  kind: "Parameter" /* Parameter */,
141142
141258
  whitespaceAfter: true,
@@ -141144,7 +141260,7 @@ var ts;
141144
141260
  }
141145
141261
  function addTypeHints(text, position) {
141146
141262
  result.push({
141147
- text: ": ".concat(truncation(text, maxHintsLength)),
141263
+ text: ": " + truncation(text, maxHintsLength),
141148
141264
  position: position,
141149
141265
  kind: "Type" /* Type */,
141150
141266
  whitespaceBefore: true,
@@ -141152,7 +141268,7 @@ var ts;
141152
141268
  }
141153
141269
  function addEnumMemberValueHints(text, position) {
141154
141270
  result.push({
141155
- text: "= ".concat(truncation(text, maxHintsLength)),
141271
+ text: "= " + truncation(text, maxHintsLength),
141156
141272
  position: position,
141157
141273
  kind: "Enum" /* Enum */,
141158
141274
  whitespaceBefore: true,
@@ -141687,7 +141803,7 @@ var ts;
141687
141803
  }
141688
141804
  }
141689
141805
  function getKeyFromNode(exp) {
141690
- return "".concat(exp.pos.toString(), ":").concat(exp.end.toString());
141806
+ return exp.pos.toString() + ":" + exp.end.toString();
141691
141807
  }
141692
141808
  function canBeConvertedToClass(node, checker) {
141693
141809
  var _a, _b, _c, _d;
@@ -145836,7 +145952,7 @@ var ts;
145836
145952
  var insertAtLineStart = isValidLocationToAddComment(sourceFile, startPosition);
145837
145953
  var token = ts.getTouchingToken(sourceFile, insertAtLineStart ? startPosition : position);
145838
145954
  var indent = sourceFile.text.slice(lineStartPosition, startPosition);
145839
- var text = "".concat(insertAtLineStart ? "" : this.newLineCharacter, "//").concat(commentText).concat(this.newLineCharacter).concat(indent);
145955
+ var text = (insertAtLineStart ? "" : this.newLineCharacter) + "//" + commentText + this.newLineCharacter + indent;
145840
145956
  this.insertText(sourceFile, token.getStart(sourceFile), text);
145841
145957
  };
145842
145958
  ChangeTracker.prototype.insertJsdocCommentBefore = function (sourceFile, node, tag) {
@@ -146060,7 +146176,7 @@ var ts;
146060
146176
  };
146061
146177
  ChangeTracker.prototype.getInsertNodeAfterOptions = function (sourceFile, after) {
146062
146178
  var options = this.getInsertNodeAfterOptionsWorker(after);
146063
- return __assign(__assign({}, options), { prefix: after.end === sourceFile.end && ts.isStatement(after) ? (options.prefix ? "\n".concat(options.prefix) : "\n") : options.prefix });
146179
+ return __assign(__assign({}, options), { prefix: after.end === sourceFile.end && ts.isStatement(after) ? (options.prefix ? "\n" + options.prefix : "\n") : options.prefix });
146064
146180
  };
146065
146181
  ChangeTracker.prototype.getInsertNodeAfterOptionsWorker = function (node) {
146066
146182
  switch (node.kind) {
@@ -146094,7 +146210,7 @@ var ts;
146094
146210
  }
146095
146211
  else {
146096
146212
  // `x => {}` -> `function f(x) {}`
146097
- this.insertText(sourceFile, ts.first(node.parameters).getStart(sourceFile), "function ".concat(name, "("));
146213
+ this.insertText(sourceFile, ts.first(node.parameters).getStart(sourceFile), "function " + name + "(");
146098
146214
  // Replacing full range of arrow to get rid of the leading space -- replace ` =>` with `)`
146099
146215
  this.replaceRange(sourceFile, arrow, ts.factory.createToken(21 /* CloseParenToken */));
146100
146216
  }
@@ -146160,7 +146276,7 @@ var ts;
146160
146276
  var nextNode = containingList[index + 1];
146161
146277
  var startPos = skipWhitespacesAndLineBreaks(sourceFile.text, nextNode.getFullStart());
146162
146278
  // write separator and leading trivia of the next element as suffix
146163
- var suffix = "".concat(ts.tokenToString(nextToken.kind)).concat(sourceFile.text.substring(nextToken.end, startPos));
146279
+ var suffix = "" + ts.tokenToString(nextToken.kind) + sourceFile.text.substring(nextToken.end, startPos);
146164
146280
  this.insertNodesAt(sourceFile, startPos, [newNode], { suffix: suffix });
146165
146281
  }
146166
146282
  }
@@ -146205,7 +146321,7 @@ var ts;
146205
146321
  this.replaceRange(sourceFile, ts.createRange(insertPos), newNode, { indentation: indentation, prefix: this.newLineCharacter });
146206
146322
  }
146207
146323
  else {
146208
- this.replaceRange(sourceFile, ts.createRange(end), newNode, { prefix: "".concat(ts.tokenToString(separator), " ") });
146324
+ this.replaceRange(sourceFile, ts.createRange(end), newNode, { prefix: ts.tokenToString(separator) + " " });
146209
146325
  }
146210
146326
  }
146211
146327
  };
@@ -146336,7 +146452,7 @@ var ts;
146336
146452
  var normalized = ts.stableSort(changesInFile, function (a, b) { return (a.range.pos - b.range.pos) || (a.range.end - b.range.end); });
146337
146453
  var _loop_12 = function (i) {
146338
146454
  ts.Debug.assert(normalized[i].range.end <= normalized[i + 1].range.pos, "Changes overlap", function () {
146339
- return "".concat(JSON.stringify(normalized[i].range), " and ").concat(JSON.stringify(normalized[i + 1].range));
146455
+ return JSON.stringify(normalized[i].range) + " and " + JSON.stringify(normalized[i + 1].range);
146340
146456
  });
146341
146457
  };
146342
146458
  // verify that change intervals do not overlap, except possibly at end points.
@@ -146427,7 +146543,7 @@ var ts;
146427
146543
  function applyChanges(text, changes) {
146428
146544
  for (var i = changes.length - 1; i >= 0; i--) {
146429
146545
  var _a = changes[i], span = _a.span, newText = _a.newText;
146430
- text = "".concat(text.substring(0, span.start)).concat(newText).concat(text.substring(ts.textSpanEnd(span)));
146546
+ text = "" + text.substring(0, span.start) + newText + text.substring(ts.textSpanEnd(span));
146431
146547
  }
146432
146548
  return text;
146433
146549
  }
@@ -148912,7 +149028,7 @@ var ts;
148912
149028
  if (!res.has(text) && (originalKeywordKind !== undefined && ts.isNonContextualKeyword(originalKeywordKind)
148913
149029
  || checker.resolveName(text, node, 111551 /* Value */, /*excludeGlobals*/ true))) {
148914
149030
  // Unconditionally add an underscore in case `text` is a keyword.
148915
- res.set(text, makeUniqueName("_".concat(text), identifiers));
149031
+ res.set(text, makeUniqueName("_" + text, identifiers));
148916
149032
  }
148917
149033
  });
148918
149034
  return res;
@@ -149012,7 +149128,7 @@ var ts;
149012
149128
  // `const a = require("b").c` --> `import { c as a } from "./b";
149013
149129
  return convertedImports([makeSingleImport(name.text, propertyName, moduleSpecifier, quotePreference)]);
149014
149130
  default:
149015
- return ts.Debug.assertNever(name, "Convert to ES module got invalid syntax form ".concat(name.kind));
149131
+ return ts.Debug.assertNever(name, "Convert to ES module got invalid syntax form " + name.kind);
149016
149132
  }
149017
149133
  }
149018
149134
  function convertAssignment(sourceFile, checker, assignment, changes, exports, useSitesToUnqualify) {
@@ -149063,7 +149179,7 @@ var ts;
149063
149179
  case 168 /* MethodDeclaration */:
149064
149180
  return !ts.isIdentifier(prop.name) ? undefined : functionExpressionToDeclaration(prop.name.text, [ts.factory.createToken(93 /* ExportKeyword */)], prop, useSitesToUnqualify);
149065
149181
  default:
149066
- ts.Debug.assertNever(prop, "Convert to ES6 got invalid prop kind ".concat(prop.kind));
149182
+ ts.Debug.assertNever(prop, "Convert to ES6 got invalid prop kind " + prop.kind);
149067
149183
  }
149068
149184
  });
149069
149185
  return statements && [statements, false];
@@ -149195,7 +149311,7 @@ var ts;
149195
149311
  case 79 /* Identifier */:
149196
149312
  return convertSingleIdentifierImport(name, moduleSpecifier, checker, identifiers, quotePreference);
149197
149313
  default:
149198
- return ts.Debug.assertNever(name, "Convert to ES module got invalid name kind ".concat(name.kind));
149314
+ return ts.Debug.assertNever(name, "Convert to ES module got invalid name kind " + name.kind);
149199
149315
  }
149200
149316
  }
149201
149317
  /**
@@ -149252,7 +149368,7 @@ var ts;
149252
149368
  // Identifiers helpers
149253
149369
  function makeUniqueName(name, identifiers) {
149254
149370
  while (identifiers.original.has(name) || identifiers.additional.has(name)) {
149255
- name = "_".concat(name);
149371
+ name = "_" + name;
149256
149372
  }
149257
149373
  identifiers.additional.add(name);
149258
149374
  return name;
@@ -149332,7 +149448,7 @@ var ts;
149332
149448
  if (!qualifiedName)
149333
149449
  return undefined;
149334
149450
  var changes = ts.textChanges.ChangeTracker.with(context, function (t) { return doChange(t, context.sourceFile, qualifiedName); });
149335
- var newText = "".concat(qualifiedName.left.text, "[\"").concat(qualifiedName.right.text, "\"]");
149451
+ var newText = qualifiedName.left.text + "[\"" + qualifiedName.right.text + "\"]";
149336
149452
  return [codefix.createCodeFixAction(fixId, changes, [ts.Diagnostics.Rewrite_as_the_indexed_access_type_0, newText], fixId, ts.Diagnostics.Rewrite_all_as_indexed_access_types)];
149337
149453
  },
149338
149454
  fixIds: [fixId],
@@ -149734,7 +149850,7 @@ var ts;
149734
149850
  // Excluding from fix-all
149735
149851
  break;
149736
149852
  default:
149737
- ts.Debug.assertNever(fix, "fix wasn't never - got kind ".concat(fix.kind));
149853
+ ts.Debug.assertNever(fix, "fix wasn't never - got kind " + fix.kind);
149738
149854
  }
149739
149855
  function reduceAddAsTypeOnlyValues(prevValue, newValue) {
149740
149856
  // `NotAllowed` overrides `Required` because one addition of a new import might be required to be type-only
@@ -149778,7 +149894,7 @@ var ts;
149778
149894
  return newEntry;
149779
149895
  }
149780
149896
  function newImportsKey(moduleSpecifier, topLevelTypeOnly) {
149781
- return "".concat(topLevelTypeOnly ? 1 : 0, "|").concat(moduleSpecifier);
149897
+ return (topLevelTypeOnly ? 1 : 0) + "|" + moduleSpecifier;
149782
149898
  }
149783
149899
  }
149784
149900
  function writeFixes(changeTracker) {
@@ -150276,7 +150392,7 @@ var ts;
150276
150392
  case ts.ModuleKind.NodeNext:
150277
150393
  return importingFile.impliedNodeFormat === ts.ModuleKind.ESNext ? 2 /* Namespace */ : 3 /* CommonJS */;
150278
150394
  default:
150279
- return ts.Debug.assertNever(moduleKind, "Unexpected moduleKind ".concat(moduleKind));
150395
+ return ts.Debug.assertNever(moduleKind, "Unexpected moduleKind " + moduleKind);
150280
150396
  }
150281
150397
  }
150282
150398
  function getFixesInfoForNonUMDImport(_a, symbolToken, useAutoImportProvider) {
@@ -150305,12 +150421,9 @@ var ts;
150305
150421
  return undefined;
150306
150422
  return { kind: 4 /* PromoteTypeOnly */, typeOnlyAliasDeclaration: typeOnlyAliasDeclaration };
150307
150423
  }
150308
- function jsxModeNeedsExplicitImport(jsx) {
150309
- return jsx === 2 /* React */ || jsx === 3 /* ReactNative */;
150310
- }
150311
150424
  function getSymbolName(sourceFile, checker, symbolToken, compilerOptions) {
150312
150425
  var parent = symbolToken.parent;
150313
- if ((ts.isJsxOpeningLikeElement(parent) || ts.isJsxClosingElement(parent)) && parent.tagName === symbolToken && jsxModeNeedsExplicitImport(compilerOptions.jsx)) {
150426
+ if ((ts.isJsxOpeningLikeElement(parent) || ts.isJsxClosingElement(parent)) && parent.tagName === symbolToken && ts.jsxModeNeedsExplicitImport(compilerOptions.jsx)) {
150314
150427
  var jsxNamespace = checker.getJsxNamespace(sourceFile);
150315
150428
  if (needsJsxNamespaceFix(jsxNamespace, symbolToken, checker)) {
150316
150429
  return jsxNamespace;
@@ -150399,7 +150512,7 @@ var ts;
150399
150512
  switch (fix.kind) {
150400
150513
  case 0 /* UseNamespace */:
150401
150514
  addNamespaceQualifier(changes, sourceFile, fix);
150402
- return [ts.Diagnostics.Change_0_to_1, symbolName, "".concat(fix.namespacePrefix, ".").concat(symbolName)];
150515
+ return [ts.Diagnostics.Change_0_to_1, symbolName, fix.namespacePrefix + "." + symbolName];
150403
150516
  case 1 /* JsdocTypeImport */:
150404
150517
  addImportType(changes, sourceFile, fix, quotePreference);
150405
150518
  return [ts.Diagnostics.Change_0_to_1, symbolName, getImportTypePrefix(fix.moduleSpecifier, quotePreference) + symbolName];
@@ -150430,7 +150543,7 @@ var ts;
150430
150543
  : [ts.Diagnostics.Remove_type_from_import_declaration_from_0, getModuleSpecifierText(promotedDeclaration)];
150431
150544
  }
150432
150545
  default:
150433
- return ts.Debug.assertNever(fix, "Unexpected fix kind ".concat(fix.kind));
150546
+ return ts.Debug.assertNever(fix, "Unexpected fix kind " + fix.kind);
150434
150547
  }
150435
150548
  }
150436
150549
  function getModuleSpecifierText(promotedDeclaration) {
@@ -150583,7 +150696,7 @@ var ts;
150583
150696
  }
150584
150697
  function getImportTypePrefix(moduleSpecifier, quotePreference) {
150585
150698
  var quote = ts.getQuoteFromPreference(quotePreference);
150586
- return "import(".concat(quote).concat(moduleSpecifier).concat(quote, ").");
150699
+ return "import(" + quote + moduleSpecifier + quote + ").";
150587
150700
  }
150588
150701
  function needsTypeOnly(_a) {
150589
150702
  var addAsTypeOnly = _a.addAsTypeOnly;
@@ -150679,7 +150792,7 @@ var ts;
150679
150792
  lastCharWasValid = isValid;
150680
150793
  }
150681
150794
  // Need `|| "_"` to ensure result isn't empty.
150682
- return !ts.isStringANonContextualKeyword(res) ? res || "_" : "_".concat(res);
150795
+ return !ts.isStringANonContextualKeyword(res) ? res || "_" : "_" + res;
150683
150796
  }
150684
150797
  codefix.moduleSpecifierToValidIdentifier = moduleSpecifierToValidIdentifier;
150685
150798
  })(codefix = ts.codefix || (ts.codefix = {}));
@@ -151935,7 +152048,7 @@ var ts;
151935
152048
  break;
151936
152049
  }
151937
152050
  default:
151938
- ts.Debug.fail("Bad fixId: ".concat(context.fixId));
152051
+ ts.Debug.fail("Bad fixId: " + context.fixId);
151939
152052
  }
151940
152053
  });
151941
152054
  },
@@ -152383,7 +152496,7 @@ var ts;
152383
152496
  if (!isValidCharacter(character)) {
152384
152497
  return;
152385
152498
  }
152386
- var replacement = useHtmlEntity ? htmlEntity[character] : "{".concat(ts.quote(sourceFile, preferences, character), "}");
152499
+ var replacement = useHtmlEntity ? htmlEntity[character] : "{" + ts.quote(sourceFile, preferences, character) + "}";
152387
152500
  changes.replaceRangeWithText(sourceFile, { pos: start, end: start + 1 }, replacement);
152388
152501
  }
152389
152502
  })(codefix = ts.codefix || (ts.codefix = {}));
@@ -152663,11 +152776,11 @@ var ts;
152663
152776
  token = ts.cast(token.parent, ts.isInferTypeNode).typeParameter.name;
152664
152777
  }
152665
152778
  if (ts.isIdentifier(token) && canPrefix(token)) {
152666
- changes.replaceNode(sourceFile, token, ts.factory.createIdentifier("_".concat(token.text)));
152779
+ changes.replaceNode(sourceFile, token, ts.factory.createIdentifier("_" + token.text));
152667
152780
  if (ts.isParameter(token.parent)) {
152668
152781
  ts.getJSDocParameterTags(token.parent).forEach(function (tag) {
152669
152782
  if (ts.isIdentifier(tag.name)) {
152670
- changes.replaceNode(sourceFile, tag.name, ts.factory.createIdentifier("_".concat(tag.name.text)));
152783
+ changes.replaceNode(sourceFile, tag.name, ts.factory.createIdentifier("_" + tag.name.text));
152671
152784
  }
152672
152785
  });
152673
152786
  }
@@ -153009,7 +153122,7 @@ var ts;
153009
153122
  }); }
153010
153123
  });
153011
153124
  function doChange(changes, sourceFile, name) {
153012
- changes.replaceNodeWithText(sourceFile, name, "".concat(name.text, "()"));
153125
+ changes.replaceNodeWithText(sourceFile, name, name.text + "()");
153013
153126
  }
153014
153127
  function getCallName(sourceFile, start) {
153015
153128
  var token = ts.getTokenAtPosition(sourceFile, start);
@@ -154133,7 +154246,7 @@ var ts;
154133
154246
  var parameters = [];
154134
154247
  var length = Math.max.apply(Math, calls.map(function (c) { return c.argumentTypes.length; }));
154135
154248
  var _loop_16 = function (i) {
154136
- var symbol = checker.createSymbol(1 /* FunctionScopedVariable */, ts.escapeLeadingUnderscores("arg".concat(i)));
154249
+ var symbol = checker.createSymbol(1 /* FunctionScopedVariable */, ts.escapeLeadingUnderscores("arg" + i));
154137
154250
  symbol.type = combineTypes(calls.map(function (call) { return call.argumentTypes[i] || checker.getUndefinedType(); }));
154138
154251
  if (calls.some(function (call) { return call.argumentTypes[i] === undefined; })) {
154139
154252
  symbol.flags |= 16777216 /* Optional */;
@@ -154236,7 +154349,7 @@ var ts;
154236
154349
  codefix.createCodeFixActionWithoutFixAll(fixName, [codefix.createFileTextChanges(sourceFile.fileName, [
154237
154350
  ts.createTextChange(sourceFile.checkJsDirective
154238
154351
  ? ts.createTextSpanFromBounds(sourceFile.checkJsDirective.pos, sourceFile.checkJsDirective.end)
154239
- : ts.createTextSpan(0, 0), "// @ts-nocheck".concat(newLineCharacter)),
154352
+ : ts.createTextSpan(0, 0), "// @ts-nocheck" + newLineCharacter),
154240
154353
  ])], ts.Diagnostics.Disable_checking_for_this_file),
154241
154354
  ];
154242
154355
  if (ts.textChanges.isValidLocationToAddComment(sourceFile, span.start)) {
@@ -154502,7 +154615,7 @@ var ts;
154502
154615
  var typeParameters = isJs || typeArguments === undefined
154503
154616
  ? undefined
154504
154617
  : ts.map(typeArguments, function (_, i) {
154505
- return ts.factory.createTypeParameterDeclaration(84 /* T */ + typeArguments.length - 1 <= 90 /* Z */ ? String.fromCharCode(84 /* T */ + i) : "T".concat(i));
154618
+ return ts.factory.createTypeParameterDeclaration(84 /* T */ + typeArguments.length - 1 <= 90 /* Z */ ? String.fromCharCode(84 /* T */ + i) : "T" + i);
154506
154619
  });
154507
154620
  var parameters = createDummyParameters(args.length, names, types, /*minArgumentCount*/ undefined, isJs);
154508
154621
  var type = isJs || contextualType === undefined
@@ -154537,7 +154650,7 @@ var ts;
154537
154650
  /*decorators*/ undefined,
154538
154651
  /*modifiers*/ undefined,
154539
154652
  /*dotDotDotToken*/ undefined,
154540
- /*name*/ names && names[i] || "arg".concat(i),
154653
+ /*name*/ names && names[i] || "arg" + i,
154541
154654
  /*questionToken*/ minArgumentCount !== undefined && i >= minArgumentCount ? ts.factory.createToken(57 /* QuestionToken */) : undefined,
154542
154655
  /*type*/ inJs ? undefined : types && types[i] || ts.factory.createKeywordTypeNode(130 /* AnyKeyword */),
154543
154656
  /*initializer*/ undefined);
@@ -154788,7 +154901,7 @@ var ts;
154788
154901
  }
154789
154902
  var name = declaration.name.text;
154790
154903
  var startWithUnderscore = ts.startsWithUnderscore(name);
154791
- var fieldName = createPropertyName(startWithUnderscore ? name : ts.getUniqueName("_".concat(name), file), declaration.name);
154904
+ var fieldName = createPropertyName(startWithUnderscore ? name : ts.getUniqueName("_" + name, file), declaration.name);
154792
154905
  var accessorName = createPropertyName(startWithUnderscore ? ts.getUniqueName(name.substring(1), file) : name, declaration.name);
154793
154906
  return {
154794
154907
  isStatic: ts.hasStaticModifier(declaration),
@@ -155827,7 +155940,7 @@ var ts;
155827
155940
  changes.insertNodeAfter(exportingSourceFile, exportNode, ts.factory.createExportDefault(ts.factory.createIdentifier(exportName.text)));
155828
155941
  break;
155829
155942
  default:
155830
- ts.Debug.fail("Unexpected exportNode kind ".concat(exportNode.kind));
155943
+ ts.Debug.fail("Unexpected exportNode kind " + exportNode.kind);
155831
155944
  }
155832
155945
  }
155833
155946
  }
@@ -155915,7 +156028,7 @@ var ts;
155915
156028
  break;
155916
156029
  }
155917
156030
  default:
155918
- ts.Debug.assertNever(parent, "Unexpected parent kind ".concat(parent.kind));
156031
+ ts.Debug.assertNever(parent, "Unexpected parent kind " + parent.kind);
155919
156032
  }
155920
156033
  }
155921
156034
  function makeImportSpecifier(propertyName, name) {
@@ -156498,7 +156611,7 @@ var ts;
156498
156611
  var newComment = ts.displayPartsToString(parameterDocComment);
156499
156612
  if (newComment.length) {
156500
156613
  ts.setSyntheticLeadingComments(result, [{
156501
- text: "*\n".concat(newComment.split("\n").map(function (c) { return " * ".concat(c); }).join("\n"), "\n "),
156614
+ text: "*\n" + newComment.split("\n").map(function (c) { return " * " + c; }).join("\n") + "\n ",
156502
156615
  kind: 3 /* MultiLineCommentTrivia */,
156503
156616
  pos: -1,
156504
156617
  end: -1,
@@ -156643,7 +156756,7 @@ var ts;
156643
156756
  usedFunctionNames.set(description, true);
156644
156757
  functionActions.push({
156645
156758
  description: description,
156646
- name: "function_scope_".concat(i),
156759
+ name: "function_scope_" + i,
156647
156760
  kind: extractFunctionAction.kind
156648
156761
  });
156649
156762
  }
@@ -156651,7 +156764,7 @@ var ts;
156651
156764
  else if (!innermostErrorFunctionAction) {
156652
156765
  innermostErrorFunctionAction = {
156653
156766
  description: description,
156654
- name: "function_scope_".concat(i),
156767
+ name: "function_scope_" + i,
156655
156768
  notApplicableReason: getStringError(functionExtraction.errors),
156656
156769
  kind: extractFunctionAction.kind
156657
156770
  };
@@ -156667,7 +156780,7 @@ var ts;
156667
156780
  usedConstantNames.set(description_1, true);
156668
156781
  constantActions.push({
156669
156782
  description: description_1,
156670
- name: "constant_scope_".concat(i),
156783
+ name: "constant_scope_" + i,
156671
156784
  kind: extractConstantAction.kind
156672
156785
  });
156673
156786
  }
@@ -156675,7 +156788,7 @@ var ts;
156675
156788
  else if (!innermostErrorConstantAction) {
156676
156789
  innermostErrorConstantAction = {
156677
156790
  description: description,
156678
- name: "constant_scope_".concat(i),
156791
+ name: "constant_scope_" + i,
156679
156792
  notApplicableReason: getStringError(constantExtraction.errors),
156680
156793
  kind: extractConstantAction.kind
156681
156794
  };
@@ -157259,28 +157372,28 @@ var ts;
157259
157372
  case 212 /* FunctionExpression */:
157260
157373
  case 255 /* FunctionDeclaration */:
157261
157374
  return scope.name
157262
- ? "function '".concat(scope.name.text, "'")
157375
+ ? "function '" + scope.name.text + "'"
157263
157376
  : ts.ANONYMOUS;
157264
157377
  case 213 /* ArrowFunction */:
157265
157378
  return "arrow function";
157266
157379
  case 168 /* MethodDeclaration */:
157267
- return "method '".concat(scope.name.getText(), "'");
157380
+ return "method '" + scope.name.getText() + "'";
157268
157381
  case 171 /* GetAccessor */:
157269
- return "'get ".concat(scope.name.getText(), "'");
157382
+ return "'get " + scope.name.getText() + "'";
157270
157383
  case 172 /* SetAccessor */:
157271
- return "'set ".concat(scope.name.getText(), "'");
157384
+ return "'set " + scope.name.getText() + "'";
157272
157385
  default:
157273
- throw ts.Debug.assertNever(scope, "Unexpected scope kind ".concat(scope.kind));
157386
+ throw ts.Debug.assertNever(scope, "Unexpected scope kind " + scope.kind);
157274
157387
  }
157275
157388
  }
157276
157389
  function getDescriptionForClassLikeDeclaration(scope) {
157277
157390
  return scope.kind === 256 /* ClassDeclaration */
157278
- ? scope.name ? "class '".concat(scope.name.text, "'") : "anonymous class declaration"
157279
- : scope.name ? "class expression '".concat(scope.name.text, "'") : "anonymous class expression";
157391
+ ? scope.name ? "class '" + scope.name.text + "'" : "anonymous class declaration"
157392
+ : scope.name ? "class expression '" + scope.name.text + "'" : "anonymous class expression";
157280
157393
  }
157281
157394
  function getDescriptionForModuleLikeDeclaration(scope) {
157282
157395
  return scope.kind === 261 /* ModuleBlock */
157283
- ? "namespace '".concat(scope.parent.name.getText(), "'")
157396
+ ? "namespace '" + scope.parent.name.getText() + "'"
157284
157397
  : scope.externalModuleIndicator ? 0 /* Module */ : 1 /* Global */;
157285
157398
  }
157286
157399
  var SpecialScope;
@@ -158756,7 +158869,7 @@ var ts;
158756
158869
  case 253 /* VariableDeclaration */:
158757
158870
  return ts.tryCast(node.name, ts.isIdentifier);
158758
158871
  default:
158759
- return ts.Debug.assertNever(node, "Unexpected node kind ".concat(node.kind));
158872
+ return ts.Debug.assertNever(node, "Unexpected node kind " + node.kind);
158760
158873
  }
158761
158874
  }
158762
158875
  function updateNamespaceLikeImport(changes, sourceFile, checker, movedSymbols, newModuleName, newModuleSpecifier, oldImportId, oldImportNode) {
@@ -158793,7 +158906,7 @@ var ts;
158793
158906
  case 253 /* VariableDeclaration */:
158794
158907
  return ts.factory.createVariableDeclaration(newNamespaceId, /*exclamationToken*/ undefined, /*type*/ undefined, createRequireCall(newModuleString));
158795
158908
  default:
158796
- return ts.Debug.assertNever(node, "Unexpected node kind ".concat(node.kind));
158909
+ return ts.Debug.assertNever(node, "Unexpected node kind " + node.kind);
158797
158910
  }
158798
158911
  }
158799
158912
  function moduleSpecifierFromImport(i) {
@@ -158880,7 +158993,7 @@ var ts;
158880
158993
  deleteUnusedImportsInVariableDeclaration(sourceFile, importDecl, changes, isUnused);
158881
158994
  break;
158882
158995
  default:
158883
- ts.Debug.assertNever(importDecl, "Unexpected import decl kind ".concat(importDecl.kind));
158996
+ ts.Debug.assertNever(importDecl, "Unexpected import decl kind " + importDecl.kind);
158884
158997
  }
158885
158998
  }
158886
158999
  function deleteUnusedImportsInDeclaration(sourceFile, importDecl, changes, isUnused) {
@@ -158980,7 +159093,7 @@ var ts;
158980
159093
  var name = ts.combinePaths(inDirectory, newModuleName + extension);
158981
159094
  if (!host.fileExists(name))
158982
159095
  return newModuleName; // TODO: GH#18217
158983
- newModuleName = "".concat(moduleName, ".").concat(i);
159096
+ newModuleName = moduleName + "." + i;
158984
159097
  }
158985
159098
  }
158986
159099
  function getNewModuleName(movedSymbols) {
@@ -159087,7 +159200,7 @@ var ts;
159087
159200
  return name ? makeVariableStatement(name, i.type, createRequireCall(moduleSpecifier), i.parent.flags) : undefined;
159088
159201
  }
159089
159202
  default:
159090
- return ts.Debug.assertNever(i, "Unexpected import kind ".concat(i.kind));
159203
+ return ts.Debug.assertNever(i, "Unexpected import kind " + i.kind);
159091
159204
  }
159092
159205
  }
159093
159206
  function filterNamedBindings(namedBindings, keep) {
@@ -159202,7 +159315,7 @@ var ts;
159202
159315
  case 200 /* ObjectBindingPattern */:
159203
159316
  return ts.firstDefined(name.elements, function (em) { return ts.isOmittedExpression(em) ? undefined : forEachTopLevelDeclarationInBindingName(em.name, cb); });
159204
159317
  default:
159205
- return ts.Debug.assertNever(name, "Unexpected name kind ".concat(name.kind));
159318
+ return ts.Debug.assertNever(name, "Unexpected name kind " + name.kind);
159206
159319
  }
159207
159320
  }
159208
159321
  function nameOfTopLevelDeclaration(d) {
@@ -159263,7 +159376,7 @@ var ts;
159263
159376
  case 237 /* ExpressionStatement */:
159264
159377
  return ts.Debug.fail(); // Shouldn't try to add 'export' keyword to `exports.x = ...`
159265
159378
  default:
159266
- return ts.Debug.assertNever(d, "Unexpected declaration kind ".concat(d.kind));
159379
+ return ts.Debug.assertNever(d, "Unexpected declaration kind " + d.kind);
159267
159380
  }
159268
159381
  }
159269
159382
  function addCommonjsExport(decl) {
@@ -159285,7 +159398,7 @@ var ts;
159285
159398
  case 237 /* ExpressionStatement */:
159286
159399
  return ts.Debug.fail("Can't export an ExpressionStatement"); // Shouldn't try to add 'export' keyword to `exports.x = ...`
159287
159400
  default:
159288
- return ts.Debug.assertNever(decl, "Unexpected decl kind ".concat(decl.kind));
159401
+ return ts.Debug.assertNever(decl, "Unexpected decl kind " + decl.kind);
159289
159402
  }
159290
159403
  }
159291
159404
  /** Creates `exports.x = x;` */
@@ -159923,7 +160036,7 @@ var ts;
159923
160036
  return [functionDeclaration.name, functionDeclaration.parent.name];
159924
160037
  return [functionDeclaration.parent.name];
159925
160038
  default:
159926
- return ts.Debug.assertNever(functionDeclaration, "Unexpected function declaration kind ".concat(functionDeclaration.kind));
160039
+ return ts.Debug.assertNever(functionDeclaration, "Unexpected function declaration kind " + functionDeclaration.kind);
159927
160040
  }
159928
160041
  }
159929
160042
  })(convertParamsToDestructuredObject = refactor.convertParamsToDestructuredObject || (refactor.convertParamsToDestructuredObject = {}));
@@ -160627,7 +160740,7 @@ var ts;
160627
160740
  var textPos = ts.scanner.getTextPos();
160628
160741
  if (textPos <= end) {
160629
160742
  if (token === 79 /* Identifier */) {
160630
- ts.Debug.fail("Did not expect ".concat(ts.Debug.formatSyntaxKind(parent.kind), " to have an Identifier in its trivia"));
160743
+ ts.Debug.fail("Did not expect " + ts.Debug.formatSyntaxKind(parent.kind) + " to have an Identifier in its trivia");
160631
160744
  }
160632
160745
  nodes.push(createNode(token, pos, textPos, parent));
160633
160746
  }
@@ -161557,7 +161670,7 @@ var ts;
161557
161670
  function getValidSourceFile(fileName) {
161558
161671
  var sourceFile = program.getSourceFile(fileName);
161559
161672
  if (!sourceFile) {
161560
- var error = new Error("Could not find source file: '".concat(fileName, "'."));
161673
+ var error = new Error("Could not find source file: '" + fileName + "'.");
161561
161674
  // We've been having trouble debugging this, so attach sidecar data for the tsserver log.
161562
161675
  // See https://github.com/microsoft/TypeScript/issues/30180.
161563
161676
  error.ProgramFiles = program.getSourceFiles().map(function (f) { return f.fileName; });
@@ -162233,7 +162346,7 @@ var ts;
162233
162346
  var element = token.kind === 31 /* GreaterThanToken */ && ts.isJsxOpeningElement(token.parent) ? token.parent.parent
162234
162347
  : ts.isJsxText(token) && ts.isJsxElement(token.parent) ? token.parent : undefined;
162235
162348
  if (element && isUnclosedTag(element)) {
162236
- return { newText: "</".concat(element.openingElement.tagName.getText(sourceFile), ">") };
162349
+ return { newText: "</" + element.openingElement.tagName.getText(sourceFile) + ">" };
162237
162350
  }
162238
162351
  var fragment = token.kind === 31 /* GreaterThanToken */ && ts.isJsxOpeningFragment(token.parent) ? token.parent.parent
162239
162352
  : ts.isJsxText(token) && ts.isJsxFragment(token.parent) ? token.parent : undefined;
@@ -162339,7 +162452,7 @@ var ts;
162339
162452
  pos = commentRange.end + 1;
162340
162453
  }
162341
162454
  else { // If it's not in a comment range, then we need to comment the uncommented portions.
162342
- var newPos = text.substring(pos, textRange.end).search("(".concat(openMultilineRegex, ")|(").concat(closeMultilineRegex, ")"));
162455
+ var newPos = text.substring(pos, textRange.end).search("(" + openMultilineRegex + ")|(" + closeMultilineRegex + ")");
162343
162456
  isCommenting = insertComment !== undefined
162344
162457
  ? insertComment
162345
162458
  : isCommenting || !ts.isTextWhiteSpaceLike(text, pos, newPos === -1 ? textRange.end : pos + newPos); // If isCommenting is already true we don't need to check whitespace again.
@@ -162734,14 +162847,14 @@ var ts;
162734
162847
  case ts.LanguageServiceMode.PartialSemantic:
162735
162848
  invalidOperationsInPartialSemanticMode.forEach(function (key) {
162736
162849
  return ls[key] = function () {
162737
- throw new Error("LanguageService Operation: ".concat(key, " not allowed in LanguageServiceMode.PartialSemantic"));
162850
+ throw new Error("LanguageService Operation: " + key + " not allowed in LanguageServiceMode.PartialSemantic");
162738
162851
  };
162739
162852
  });
162740
162853
  break;
162741
162854
  case ts.LanguageServiceMode.Syntactic:
162742
162855
  invalidOperationsInSyntacticMode.forEach(function (key) {
162743
162856
  return ls[key] = function () {
162744
- throw new Error("LanguageService Operation: ".concat(key, " not allowed in LanguageServiceMode.Syntactic"));
162857
+ throw new Error("LanguageService Operation: " + key + " not allowed in LanguageServiceMode.Syntactic");
162745
162858
  };
162746
162859
  });
162747
162860
  break;
@@ -163723,13 +163836,13 @@ var ts;
163723
163836
  var result = action();
163724
163837
  if (logPerformance) {
163725
163838
  var end = ts.timestamp();
163726
- logger.log("".concat(actionDescription, " completed in ").concat(end - start, " msec"));
163839
+ logger.log(actionDescription + " completed in " + (end - start) + " msec");
163727
163840
  if (ts.isString(result)) {
163728
163841
  var str = result;
163729
163842
  if (str.length > 128) {
163730
163843
  str = str.substring(0, 128) + "...";
163731
163844
  }
163732
- logger.log(" result.length=".concat(str.length, ", result='").concat(JSON.stringify(str), "'"));
163845
+ logger.log(" result.length=" + str.length + ", result='" + JSON.stringify(str) + "'");
163733
163846
  }
163734
163847
  }
163735
163848
  return result;
@@ -163811,7 +163924,7 @@ var ts;
163811
163924
  * Update the list of scripts known to the compiler
163812
163925
  */
163813
163926
  LanguageServiceShimObject.prototype.refresh = function (throwOnError) {
163814
- this.forwardJSONCall("refresh(".concat(throwOnError, ")"), function () { return null; } // eslint-disable-line no-null/no-null
163927
+ this.forwardJSONCall("refresh(" + throwOnError + ")", function () { return null; } // eslint-disable-line no-null/no-null
163815
163928
  );
163816
163929
  };
163817
163930
  LanguageServiceShimObject.prototype.cleanupSemanticCache = function () {
@@ -163827,43 +163940,43 @@ var ts;
163827
163940
  };
163828
163941
  LanguageServiceShimObject.prototype.getSyntacticClassifications = function (fileName, start, length) {
163829
163942
  var _this = this;
163830
- return this.forwardJSONCall("getSyntacticClassifications('".concat(fileName, "', ").concat(start, ", ").concat(length, ")"), function () { return _this.languageService.getSyntacticClassifications(fileName, ts.createTextSpan(start, length)); });
163943
+ return this.forwardJSONCall("getSyntacticClassifications('" + fileName + "', " + start + ", " + length + ")", function () { return _this.languageService.getSyntacticClassifications(fileName, ts.createTextSpan(start, length)); });
163831
163944
  };
163832
163945
  LanguageServiceShimObject.prototype.getSemanticClassifications = function (fileName, start, length) {
163833
163946
  var _this = this;
163834
- return this.forwardJSONCall("getSemanticClassifications('".concat(fileName, "', ").concat(start, ", ").concat(length, ")"), function () { return _this.languageService.getSemanticClassifications(fileName, ts.createTextSpan(start, length)); });
163947
+ return this.forwardJSONCall("getSemanticClassifications('" + fileName + "', " + start + ", " + length + ")", function () { return _this.languageService.getSemanticClassifications(fileName, ts.createTextSpan(start, length)); });
163835
163948
  };
163836
163949
  LanguageServiceShimObject.prototype.getEncodedSyntacticClassifications = function (fileName, start, length) {
163837
163950
  var _this = this;
163838
- return this.forwardJSONCall("getEncodedSyntacticClassifications('".concat(fileName, "', ").concat(start, ", ").concat(length, ")"),
163951
+ return this.forwardJSONCall("getEncodedSyntacticClassifications('" + fileName + "', " + start + ", " + length + ")",
163839
163952
  // directly serialize the spans out to a string. This is much faster to decode
163840
163953
  // on the managed side versus a full JSON array.
163841
163954
  function () { return convertClassifications(_this.languageService.getEncodedSyntacticClassifications(fileName, ts.createTextSpan(start, length))); });
163842
163955
  };
163843
163956
  LanguageServiceShimObject.prototype.getEncodedSemanticClassifications = function (fileName, start, length) {
163844
163957
  var _this = this;
163845
- return this.forwardJSONCall("getEncodedSemanticClassifications('".concat(fileName, "', ").concat(start, ", ").concat(length, ")"),
163958
+ return this.forwardJSONCall("getEncodedSemanticClassifications('" + fileName + "', " + start + ", " + length + ")",
163846
163959
  // directly serialize the spans out to a string. This is much faster to decode
163847
163960
  // on the managed side versus a full JSON array.
163848
163961
  function () { return convertClassifications(_this.languageService.getEncodedSemanticClassifications(fileName, ts.createTextSpan(start, length))); });
163849
163962
  };
163850
163963
  LanguageServiceShimObject.prototype.getSyntacticDiagnostics = function (fileName) {
163851
163964
  var _this = this;
163852
- return this.forwardJSONCall("getSyntacticDiagnostics('".concat(fileName, "')"), function () {
163965
+ return this.forwardJSONCall("getSyntacticDiagnostics('" + fileName + "')", function () {
163853
163966
  var diagnostics = _this.languageService.getSyntacticDiagnostics(fileName);
163854
163967
  return _this.realizeDiagnostics(diagnostics);
163855
163968
  });
163856
163969
  };
163857
163970
  LanguageServiceShimObject.prototype.getSemanticDiagnostics = function (fileName) {
163858
163971
  var _this = this;
163859
- return this.forwardJSONCall("getSemanticDiagnostics('".concat(fileName, "')"), function () {
163972
+ return this.forwardJSONCall("getSemanticDiagnostics('" + fileName + "')", function () {
163860
163973
  var diagnostics = _this.languageService.getSemanticDiagnostics(fileName);
163861
163974
  return _this.realizeDiagnostics(diagnostics);
163862
163975
  });
163863
163976
  };
163864
163977
  LanguageServiceShimObject.prototype.getSuggestionDiagnostics = function (fileName) {
163865
163978
  var _this = this;
163866
- return this.forwardJSONCall("getSuggestionDiagnostics('".concat(fileName, "')"), function () { return _this.realizeDiagnostics(_this.languageService.getSuggestionDiagnostics(fileName)); });
163979
+ return this.forwardJSONCall("getSuggestionDiagnostics('" + fileName + "')", function () { return _this.realizeDiagnostics(_this.languageService.getSuggestionDiagnostics(fileName)); });
163867
163980
  };
163868
163981
  LanguageServiceShimObject.prototype.getCompilerOptionsDiagnostics = function () {
163869
163982
  var _this = this;
@@ -163879,7 +163992,7 @@ var ts;
163879
163992
  */
163880
163993
  LanguageServiceShimObject.prototype.getQuickInfoAtPosition = function (fileName, position) {
163881
163994
  var _this = this;
163882
- return this.forwardJSONCall("getQuickInfoAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getQuickInfoAtPosition(fileName, position); });
163995
+ return this.forwardJSONCall("getQuickInfoAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getQuickInfoAtPosition(fileName, position); });
163883
163996
  };
163884
163997
  /// NAMEORDOTTEDNAMESPAN
163885
163998
  /**
@@ -163888,7 +164001,7 @@ var ts;
163888
164001
  */
163889
164002
  LanguageServiceShimObject.prototype.getNameOrDottedNameSpan = function (fileName, startPos, endPos) {
163890
164003
  var _this = this;
163891
- return this.forwardJSONCall("getNameOrDottedNameSpan('".concat(fileName, "', ").concat(startPos, ", ").concat(endPos, ")"), function () { return _this.languageService.getNameOrDottedNameSpan(fileName, startPos, endPos); });
164004
+ return this.forwardJSONCall("getNameOrDottedNameSpan('" + fileName + "', " + startPos + ", " + endPos + ")", function () { return _this.languageService.getNameOrDottedNameSpan(fileName, startPos, endPos); });
163892
164005
  };
163893
164006
  /**
163894
164007
  * STATEMENTSPAN
@@ -163896,12 +164009,12 @@ var ts;
163896
164009
  */
163897
164010
  LanguageServiceShimObject.prototype.getBreakpointStatementAtPosition = function (fileName, position) {
163898
164011
  var _this = this;
163899
- return this.forwardJSONCall("getBreakpointStatementAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getBreakpointStatementAtPosition(fileName, position); });
164012
+ return this.forwardJSONCall("getBreakpointStatementAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getBreakpointStatementAtPosition(fileName, position); });
163900
164013
  };
163901
164014
  /// SIGNATUREHELP
163902
164015
  LanguageServiceShimObject.prototype.getSignatureHelpItems = function (fileName, position, options) {
163903
164016
  var _this = this;
163904
- return this.forwardJSONCall("getSignatureHelpItems('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getSignatureHelpItems(fileName, position, options); });
164017
+ return this.forwardJSONCall("getSignatureHelpItems('" + fileName + "', " + position + ")", function () { return _this.languageService.getSignatureHelpItems(fileName, position, options); });
163905
164018
  };
163906
164019
  /// GOTO DEFINITION
163907
164020
  /**
@@ -163910,7 +164023,7 @@ var ts;
163910
164023
  */
163911
164024
  LanguageServiceShimObject.prototype.getDefinitionAtPosition = function (fileName, position) {
163912
164025
  var _this = this;
163913
- return this.forwardJSONCall("getDefinitionAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getDefinitionAtPosition(fileName, position); });
164026
+ return this.forwardJSONCall("getDefinitionAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getDefinitionAtPosition(fileName, position); });
163914
164027
  };
163915
164028
  /**
163916
164029
  * Computes the definition location and file for the symbol
@@ -163918,7 +164031,7 @@ var ts;
163918
164031
  */
163919
164032
  LanguageServiceShimObject.prototype.getDefinitionAndBoundSpan = function (fileName, position) {
163920
164033
  var _this = this;
163921
- return this.forwardJSONCall("getDefinitionAndBoundSpan('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getDefinitionAndBoundSpan(fileName, position); });
164034
+ return this.forwardJSONCall("getDefinitionAndBoundSpan('" + fileName + "', " + position + ")", function () { return _this.languageService.getDefinitionAndBoundSpan(fileName, position); });
163922
164035
  };
163923
164036
  /// GOTO Type
163924
164037
  /**
@@ -163927,7 +164040,7 @@ var ts;
163927
164040
  */
163928
164041
  LanguageServiceShimObject.prototype.getTypeDefinitionAtPosition = function (fileName, position) {
163929
164042
  var _this = this;
163930
- return this.forwardJSONCall("getTypeDefinitionAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getTypeDefinitionAtPosition(fileName, position); });
164043
+ return this.forwardJSONCall("getTypeDefinitionAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getTypeDefinitionAtPosition(fileName, position); });
163931
164044
  };
163932
164045
  /// GOTO Implementation
163933
164046
  /**
@@ -163936,37 +164049,37 @@ var ts;
163936
164049
  */
163937
164050
  LanguageServiceShimObject.prototype.getImplementationAtPosition = function (fileName, position) {
163938
164051
  var _this = this;
163939
- return this.forwardJSONCall("getImplementationAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getImplementationAtPosition(fileName, position); });
164052
+ return this.forwardJSONCall("getImplementationAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getImplementationAtPosition(fileName, position); });
163940
164053
  };
163941
164054
  LanguageServiceShimObject.prototype.getRenameInfo = function (fileName, position, options) {
163942
164055
  var _this = this;
163943
- return this.forwardJSONCall("getRenameInfo('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getRenameInfo(fileName, position, options); });
164056
+ return this.forwardJSONCall("getRenameInfo('" + fileName + "', " + position + ")", function () { return _this.languageService.getRenameInfo(fileName, position, options); });
163944
164057
  };
163945
164058
  LanguageServiceShimObject.prototype.getSmartSelectionRange = function (fileName, position) {
163946
164059
  var _this = this;
163947
- return this.forwardJSONCall("getSmartSelectionRange('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getSmartSelectionRange(fileName, position); });
164060
+ return this.forwardJSONCall("getSmartSelectionRange('" + fileName + "', " + position + ")", function () { return _this.languageService.getSmartSelectionRange(fileName, position); });
163948
164061
  };
163949
164062
  LanguageServiceShimObject.prototype.findRenameLocations = function (fileName, position, findInStrings, findInComments, providePrefixAndSuffixTextForRename) {
163950
164063
  var _this = this;
163951
- return this.forwardJSONCall("findRenameLocations('".concat(fileName, "', ").concat(position, ", ").concat(findInStrings, ", ").concat(findInComments, ", ").concat(providePrefixAndSuffixTextForRename, ")"), function () { return _this.languageService.findRenameLocations(fileName, position, findInStrings, findInComments, providePrefixAndSuffixTextForRename); });
164064
+ return this.forwardJSONCall("findRenameLocations('" + fileName + "', " + position + ", " + findInStrings + ", " + findInComments + ", " + providePrefixAndSuffixTextForRename + ")", function () { return _this.languageService.findRenameLocations(fileName, position, findInStrings, findInComments, providePrefixAndSuffixTextForRename); });
163952
164065
  };
163953
164066
  /// GET BRACE MATCHING
163954
164067
  LanguageServiceShimObject.prototype.getBraceMatchingAtPosition = function (fileName, position) {
163955
164068
  var _this = this;
163956
- return this.forwardJSONCall("getBraceMatchingAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getBraceMatchingAtPosition(fileName, position); });
164069
+ return this.forwardJSONCall("getBraceMatchingAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getBraceMatchingAtPosition(fileName, position); });
163957
164070
  };
163958
164071
  LanguageServiceShimObject.prototype.isValidBraceCompletionAtPosition = function (fileName, position, openingBrace) {
163959
164072
  var _this = this;
163960
- return this.forwardJSONCall("isValidBraceCompletionAtPosition('".concat(fileName, "', ").concat(position, ", ").concat(openingBrace, ")"), function () { return _this.languageService.isValidBraceCompletionAtPosition(fileName, position, openingBrace); });
164073
+ return this.forwardJSONCall("isValidBraceCompletionAtPosition('" + fileName + "', " + position + ", " + openingBrace + ")", function () { return _this.languageService.isValidBraceCompletionAtPosition(fileName, position, openingBrace); });
163961
164074
  };
163962
164075
  LanguageServiceShimObject.prototype.getSpanOfEnclosingComment = function (fileName, position, onlyMultiLine) {
163963
164076
  var _this = this;
163964
- return this.forwardJSONCall("getSpanOfEnclosingComment('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getSpanOfEnclosingComment(fileName, position, onlyMultiLine); });
164077
+ return this.forwardJSONCall("getSpanOfEnclosingComment('" + fileName + "', " + position + ")", function () { return _this.languageService.getSpanOfEnclosingComment(fileName, position, onlyMultiLine); });
163965
164078
  };
163966
164079
  /// GET SMART INDENT
163967
164080
  LanguageServiceShimObject.prototype.getIndentationAtPosition = function (fileName, position, options /*Services.EditorOptions*/) {
163968
164081
  var _this = this;
163969
- return this.forwardJSONCall("getIndentationAtPosition('".concat(fileName, "', ").concat(position, ")"), function () {
164082
+ return this.forwardJSONCall("getIndentationAtPosition('" + fileName + "', " + position + ")", function () {
163970
164083
  var localOptions = JSON.parse(options);
163971
164084
  return _this.languageService.getIndentationAtPosition(fileName, position, localOptions);
163972
164085
  });
@@ -163974,23 +164087,23 @@ var ts;
163974
164087
  /// GET REFERENCES
163975
164088
  LanguageServiceShimObject.prototype.getReferencesAtPosition = function (fileName, position) {
163976
164089
  var _this = this;
163977
- return this.forwardJSONCall("getReferencesAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getReferencesAtPosition(fileName, position); });
164090
+ return this.forwardJSONCall("getReferencesAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getReferencesAtPosition(fileName, position); });
163978
164091
  };
163979
164092
  LanguageServiceShimObject.prototype.findReferences = function (fileName, position) {
163980
164093
  var _this = this;
163981
- return this.forwardJSONCall("findReferences('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.findReferences(fileName, position); });
164094
+ return this.forwardJSONCall("findReferences('" + fileName + "', " + position + ")", function () { return _this.languageService.findReferences(fileName, position); });
163982
164095
  };
163983
164096
  LanguageServiceShimObject.prototype.getFileReferences = function (fileName) {
163984
164097
  var _this = this;
163985
- return this.forwardJSONCall("getFileReferences('".concat(fileName, ")"), function () { return _this.languageService.getFileReferences(fileName); });
164098
+ return this.forwardJSONCall("getFileReferences('" + fileName + ")", function () { return _this.languageService.getFileReferences(fileName); });
163986
164099
  };
163987
164100
  LanguageServiceShimObject.prototype.getOccurrencesAtPosition = function (fileName, position) {
163988
164101
  var _this = this;
163989
- return this.forwardJSONCall("getOccurrencesAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getOccurrencesAtPosition(fileName, position); });
164102
+ return this.forwardJSONCall("getOccurrencesAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getOccurrencesAtPosition(fileName, position); });
163990
164103
  };
163991
164104
  LanguageServiceShimObject.prototype.getDocumentHighlights = function (fileName, position, filesToSearch) {
163992
164105
  var _this = this;
163993
- return this.forwardJSONCall("getDocumentHighlights('".concat(fileName, "', ").concat(position, ")"), function () {
164106
+ return this.forwardJSONCall("getDocumentHighlights('" + fileName + "', " + position + ")", function () {
163994
164107
  var results = _this.languageService.getDocumentHighlights(fileName, position, JSON.parse(filesToSearch));
163995
164108
  // workaround for VS document highlighting issue - keep only items from the initial file
163996
164109
  var normalizedName = ts.toFileNameLowerCase(ts.normalizeSlashes(fileName));
@@ -164005,108 +164118,108 @@ var ts;
164005
164118
  */
164006
164119
  LanguageServiceShimObject.prototype.getCompletionsAtPosition = function (fileName, position, preferences, formattingSettings) {
164007
164120
  var _this = this;
164008
- return this.forwardJSONCall("getCompletionsAtPosition('".concat(fileName, "', ").concat(position, ", ").concat(preferences, ", ").concat(formattingSettings, ")"), function () { return _this.languageService.getCompletionsAtPosition(fileName, position, preferences, formattingSettings); });
164121
+ return this.forwardJSONCall("getCompletionsAtPosition('" + fileName + "', " + position + ", " + preferences + ", " + formattingSettings + ")", function () { return _this.languageService.getCompletionsAtPosition(fileName, position, preferences, formattingSettings); });
164009
164122
  };
164010
164123
  /** Get a string based representation of a completion list entry details */
164011
164124
  LanguageServiceShimObject.prototype.getCompletionEntryDetails = function (fileName, position, entryName, formatOptions, source, preferences, data) {
164012
164125
  var _this = this;
164013
- return this.forwardJSONCall("getCompletionEntryDetails('".concat(fileName, "', ").concat(position, ", '").concat(entryName, "')"), function () {
164126
+ return this.forwardJSONCall("getCompletionEntryDetails('" + fileName + "', " + position + ", '" + entryName + "')", function () {
164014
164127
  var localOptions = formatOptions === undefined ? undefined : JSON.parse(formatOptions);
164015
164128
  return _this.languageService.getCompletionEntryDetails(fileName, position, entryName, localOptions, source, preferences, data);
164016
164129
  });
164017
164130
  };
164018
164131
  LanguageServiceShimObject.prototype.getFormattingEditsForRange = function (fileName, start, end, options /*Services.FormatCodeOptions*/) {
164019
164132
  var _this = this;
164020
- return this.forwardJSONCall("getFormattingEditsForRange('".concat(fileName, "', ").concat(start, ", ").concat(end, ")"), function () {
164133
+ return this.forwardJSONCall("getFormattingEditsForRange('" + fileName + "', " + start + ", " + end + ")", function () {
164021
164134
  var localOptions = JSON.parse(options);
164022
164135
  return _this.languageService.getFormattingEditsForRange(fileName, start, end, localOptions);
164023
164136
  });
164024
164137
  };
164025
164138
  LanguageServiceShimObject.prototype.getFormattingEditsForDocument = function (fileName, options /*Services.FormatCodeOptions*/) {
164026
164139
  var _this = this;
164027
- return this.forwardJSONCall("getFormattingEditsForDocument('".concat(fileName, "')"), function () {
164140
+ return this.forwardJSONCall("getFormattingEditsForDocument('" + fileName + "')", function () {
164028
164141
  var localOptions = JSON.parse(options);
164029
164142
  return _this.languageService.getFormattingEditsForDocument(fileName, localOptions);
164030
164143
  });
164031
164144
  };
164032
164145
  LanguageServiceShimObject.prototype.getFormattingEditsAfterKeystroke = function (fileName, position, key, options /*Services.FormatCodeOptions*/) {
164033
164146
  var _this = this;
164034
- return this.forwardJSONCall("getFormattingEditsAfterKeystroke('".concat(fileName, "', ").concat(position, ", '").concat(key, "')"), function () {
164147
+ return this.forwardJSONCall("getFormattingEditsAfterKeystroke('" + fileName + "', " + position + ", '" + key + "')", function () {
164035
164148
  var localOptions = JSON.parse(options);
164036
164149
  return _this.languageService.getFormattingEditsAfterKeystroke(fileName, position, key, localOptions);
164037
164150
  });
164038
164151
  };
164039
164152
  LanguageServiceShimObject.prototype.getDocCommentTemplateAtPosition = function (fileName, position, options) {
164040
164153
  var _this = this;
164041
- return this.forwardJSONCall("getDocCommentTemplateAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getDocCommentTemplateAtPosition(fileName, position, options); });
164154
+ return this.forwardJSONCall("getDocCommentTemplateAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getDocCommentTemplateAtPosition(fileName, position, options); });
164042
164155
  };
164043
164156
  /// NAVIGATE TO
164044
164157
  /** Return a list of symbols that are interesting to navigate to */
164045
164158
  LanguageServiceShimObject.prototype.getNavigateToItems = function (searchValue, maxResultCount, fileName) {
164046
164159
  var _this = this;
164047
- return this.forwardJSONCall("getNavigateToItems('".concat(searchValue, "', ").concat(maxResultCount, ", ").concat(fileName, ")"), function () { return _this.languageService.getNavigateToItems(searchValue, maxResultCount, fileName); });
164160
+ return this.forwardJSONCall("getNavigateToItems('" + searchValue + "', " + maxResultCount + ", " + fileName + ")", function () { return _this.languageService.getNavigateToItems(searchValue, maxResultCount, fileName); });
164048
164161
  };
164049
164162
  LanguageServiceShimObject.prototype.getNavigationBarItems = function (fileName) {
164050
164163
  var _this = this;
164051
- return this.forwardJSONCall("getNavigationBarItems('".concat(fileName, "')"), function () { return _this.languageService.getNavigationBarItems(fileName); });
164164
+ return this.forwardJSONCall("getNavigationBarItems('" + fileName + "')", function () { return _this.languageService.getNavigationBarItems(fileName); });
164052
164165
  };
164053
164166
  LanguageServiceShimObject.prototype.getNavigationTree = function (fileName) {
164054
164167
  var _this = this;
164055
- return this.forwardJSONCall("getNavigationTree('".concat(fileName, "')"), function () { return _this.languageService.getNavigationTree(fileName); });
164168
+ return this.forwardJSONCall("getNavigationTree('" + fileName + "')", function () { return _this.languageService.getNavigationTree(fileName); });
164056
164169
  };
164057
164170
  LanguageServiceShimObject.prototype.getOutliningSpans = function (fileName) {
164058
164171
  var _this = this;
164059
- return this.forwardJSONCall("getOutliningSpans('".concat(fileName, "')"), function () { return _this.languageService.getOutliningSpans(fileName); });
164172
+ return this.forwardJSONCall("getOutliningSpans('" + fileName + "')", function () { return _this.languageService.getOutliningSpans(fileName); });
164060
164173
  };
164061
164174
  LanguageServiceShimObject.prototype.getTodoComments = function (fileName, descriptors) {
164062
164175
  var _this = this;
164063
- return this.forwardJSONCall("getTodoComments('".concat(fileName, "')"), function () { return _this.languageService.getTodoComments(fileName, JSON.parse(descriptors)); });
164176
+ return this.forwardJSONCall("getTodoComments('" + fileName + "')", function () { return _this.languageService.getTodoComments(fileName, JSON.parse(descriptors)); });
164064
164177
  };
164065
164178
  /// CALL HIERARCHY
164066
164179
  LanguageServiceShimObject.prototype.prepareCallHierarchy = function (fileName, position) {
164067
164180
  var _this = this;
164068
- return this.forwardJSONCall("prepareCallHierarchy('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.prepareCallHierarchy(fileName, position); });
164181
+ return this.forwardJSONCall("prepareCallHierarchy('" + fileName + "', " + position + ")", function () { return _this.languageService.prepareCallHierarchy(fileName, position); });
164069
164182
  };
164070
164183
  LanguageServiceShimObject.prototype.provideCallHierarchyIncomingCalls = function (fileName, position) {
164071
164184
  var _this = this;
164072
- return this.forwardJSONCall("provideCallHierarchyIncomingCalls('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.provideCallHierarchyIncomingCalls(fileName, position); });
164185
+ return this.forwardJSONCall("provideCallHierarchyIncomingCalls('" + fileName + "', " + position + ")", function () { return _this.languageService.provideCallHierarchyIncomingCalls(fileName, position); });
164073
164186
  };
164074
164187
  LanguageServiceShimObject.prototype.provideCallHierarchyOutgoingCalls = function (fileName, position) {
164075
164188
  var _this = this;
164076
- return this.forwardJSONCall("provideCallHierarchyOutgoingCalls('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.provideCallHierarchyOutgoingCalls(fileName, position); });
164189
+ return this.forwardJSONCall("provideCallHierarchyOutgoingCalls('" + fileName + "', " + position + ")", function () { return _this.languageService.provideCallHierarchyOutgoingCalls(fileName, position); });
164077
164190
  };
164078
164191
  LanguageServiceShimObject.prototype.provideInlayHints = function (fileName, span, preference) {
164079
164192
  var _this = this;
164080
- return this.forwardJSONCall("provideInlayHints('".concat(fileName, "', '").concat(JSON.stringify(span), "', ").concat(JSON.stringify(preference), ")"), function () { return _this.languageService.provideInlayHints(fileName, span, preference); });
164193
+ return this.forwardJSONCall("provideInlayHints('" + fileName + "', '" + JSON.stringify(span) + "', " + JSON.stringify(preference) + ")", function () { return _this.languageService.provideInlayHints(fileName, span, preference); });
164081
164194
  };
164082
164195
  /// Emit
164083
164196
  LanguageServiceShimObject.prototype.getEmitOutput = function (fileName) {
164084
164197
  var _this = this;
164085
- return this.forwardJSONCall("getEmitOutput('".concat(fileName, "')"), function () {
164198
+ return this.forwardJSONCall("getEmitOutput('" + fileName + "')", function () {
164086
164199
  var _a = _this.languageService.getEmitOutput(fileName), diagnostics = _a.diagnostics, rest = __rest(_a, ["diagnostics"]);
164087
164200
  return __assign(__assign({}, rest), { diagnostics: _this.realizeDiagnostics(diagnostics) });
164088
164201
  });
164089
164202
  };
164090
164203
  LanguageServiceShimObject.prototype.getEmitOutputObject = function (fileName) {
164091
164204
  var _this = this;
164092
- return forwardCall(this.logger, "getEmitOutput('".concat(fileName, "')"),
164205
+ return forwardCall(this.logger, "getEmitOutput('" + fileName + "')",
164093
164206
  /*returnJson*/ false, function () { return _this.languageService.getEmitOutput(fileName); }, this.logPerformance);
164094
164207
  };
164095
164208
  LanguageServiceShimObject.prototype.toggleLineComment = function (fileName, textRange) {
164096
164209
  var _this = this;
164097
- return this.forwardJSONCall("toggleLineComment('".concat(fileName, "', '").concat(JSON.stringify(textRange), "')"), function () { return _this.languageService.toggleLineComment(fileName, textRange); });
164210
+ return this.forwardJSONCall("toggleLineComment('" + fileName + "', '" + JSON.stringify(textRange) + "')", function () { return _this.languageService.toggleLineComment(fileName, textRange); });
164098
164211
  };
164099
164212
  LanguageServiceShimObject.prototype.toggleMultilineComment = function (fileName, textRange) {
164100
164213
  var _this = this;
164101
- return this.forwardJSONCall("toggleMultilineComment('".concat(fileName, "', '").concat(JSON.stringify(textRange), "')"), function () { return _this.languageService.toggleMultilineComment(fileName, textRange); });
164214
+ return this.forwardJSONCall("toggleMultilineComment('" + fileName + "', '" + JSON.stringify(textRange) + "')", function () { return _this.languageService.toggleMultilineComment(fileName, textRange); });
164102
164215
  };
164103
164216
  LanguageServiceShimObject.prototype.commentSelection = function (fileName, textRange) {
164104
164217
  var _this = this;
164105
- return this.forwardJSONCall("commentSelection('".concat(fileName, "', '").concat(JSON.stringify(textRange), "')"), function () { return _this.languageService.commentSelection(fileName, textRange); });
164218
+ return this.forwardJSONCall("commentSelection('" + fileName + "', '" + JSON.stringify(textRange) + "')", function () { return _this.languageService.commentSelection(fileName, textRange); });
164106
164219
  };
164107
164220
  LanguageServiceShimObject.prototype.uncommentSelection = function (fileName, textRange) {
164108
164221
  var _this = this;
164109
- return this.forwardJSONCall("uncommentSelection('".concat(fileName, "', '").concat(JSON.stringify(textRange), "')"), function () { return _this.languageService.uncommentSelection(fileName, textRange); });
164222
+ return this.forwardJSONCall("uncommentSelection('" + fileName + "', '" + JSON.stringify(textRange) + "')", function () { return _this.languageService.uncommentSelection(fileName, textRange); });
164110
164223
  };
164111
164224
  return LanguageServiceShimObject;
164112
164225
  }(ShimBase));
@@ -164156,7 +164269,7 @@ var ts;
164156
164269
  };
164157
164270
  CoreServicesShimObject.prototype.resolveModuleName = function (fileName, moduleName, compilerOptionsJson) {
164158
164271
  var _this = this;
164159
- return this.forwardJSONCall("resolveModuleName('".concat(fileName, "')"), function () {
164272
+ return this.forwardJSONCall("resolveModuleName('" + fileName + "')", function () {
164160
164273
  var compilerOptions = JSON.parse(compilerOptionsJson);
164161
164274
  var result = ts.resolveModuleName(moduleName, ts.normalizeSlashes(fileName), compilerOptions, _this.host);
164162
164275
  var resolvedFileName = result.resolvedModule ? result.resolvedModule.resolvedFileName : undefined;
@@ -164171,7 +164284,7 @@ var ts;
164171
164284
  };
164172
164285
  CoreServicesShimObject.prototype.resolveTypeReferenceDirective = function (fileName, typeReferenceDirective, compilerOptionsJson) {
164173
164286
  var _this = this;
164174
- return this.forwardJSONCall("resolveTypeReferenceDirective(".concat(fileName, ")"), function () {
164287
+ return this.forwardJSONCall("resolveTypeReferenceDirective(" + fileName + ")", function () {
164175
164288
  var compilerOptions = JSON.parse(compilerOptionsJson);
164176
164289
  var result = ts.resolveTypeReferenceDirective(typeReferenceDirective, ts.normalizeSlashes(fileName), compilerOptions, _this.host);
164177
164290
  return {
@@ -164183,7 +164296,7 @@ var ts;
164183
164296
  };
164184
164297
  CoreServicesShimObject.prototype.getPreProcessedFileInfo = function (fileName, sourceTextSnapshot) {
164185
164298
  var _this = this;
164186
- return this.forwardJSONCall("getPreProcessedFileInfo('".concat(fileName, "')"), function () {
164299
+ return this.forwardJSONCall("getPreProcessedFileInfo('" + fileName + "')", function () {
164187
164300
  // for now treat files as JavaScript
164188
164301
  var result = ts.preProcessFile(ts.getSnapshotText(sourceTextSnapshot), /* readImportFiles */ true, /* detectJavaScriptImports */ true);
164189
164302
  return {
@@ -164198,7 +164311,7 @@ var ts;
164198
164311
  };
164199
164312
  CoreServicesShimObject.prototype.getAutomaticTypeDirectiveNames = function (compilerOptionsJson) {
164200
164313
  var _this = this;
164201
- return this.forwardJSONCall("getAutomaticTypeDirectiveNames('".concat(compilerOptionsJson, "')"), function () {
164314
+ return this.forwardJSONCall("getAutomaticTypeDirectiveNames('" + compilerOptionsJson + "')", function () {
164202
164315
  var compilerOptions = JSON.parse(compilerOptionsJson);
164203
164316
  return ts.getAutomaticTypeDirectiveNames(compilerOptions, _this.host);
164204
164317
  });
@@ -164220,7 +164333,7 @@ var ts;
164220
164333
  };
164221
164334
  CoreServicesShimObject.prototype.getTSConfigFileInfo = function (fileName, sourceTextSnapshot) {
164222
164335
  var _this = this;
164223
- return this.forwardJSONCall("getTSConfigFileInfo('".concat(fileName, "')"), function () {
164336
+ return this.forwardJSONCall("getTSConfigFileInfo('" + fileName + "')", function () {
164224
164337
  var result = ts.parseJsonText(fileName, ts.getSnapshotText(sourceTextSnapshot));
164225
164338
  var normalizedFileName = ts.normalizeSlashes(fileName);
164226
164339
  var configFile = ts.parseJsonSourceFileConfigFileContent(result, _this.host, ts.getDirectoryPath(normalizedFileName), /*existingOptions*/ {}, normalizedFileName);
@@ -164420,7 +164533,7 @@ var ts;
164420
164533
  function nowString() {
164421
164534
  // E.g. "12:34:56.789"
164422
164535
  var d = new Date();
164423
- return "".concat(ts.padLeft(d.getHours().toString(), 2, "0"), ":").concat(ts.padLeft(d.getMinutes().toString(), 2, "0"), ":").concat(ts.padLeft(d.getSeconds().toString(), 2, "0"), ".").concat(ts.padLeft(d.getMilliseconds().toString(), 3, "0"));
164536
+ return ts.padLeft(d.getHours().toString(), 2, "0") + ":" + ts.padLeft(d.getMinutes().toString(), 2, "0") + ":" + ts.padLeft(d.getSeconds().toString(), 2, "0") + "." + ts.padLeft(d.getMilliseconds().toString(), 3, "0");
164424
164537
  }
164425
164538
  server.nowString = nowString;
164426
164539
  })(server = ts.server || (ts.server = {}));
@@ -164431,7 +164544,7 @@ var ts;
164431
164544
  var JsTyping;
164432
164545
  (function (JsTyping) {
164433
164546
  function isTypingUpToDate(cachedTyping, availableTypingVersions) {
164434
- var availableVersion = new ts.Version(ts.getProperty(availableTypingVersions, "ts".concat(ts.versionMajorMinor)) || ts.getProperty(availableTypingVersions, "latest"));
164547
+ var availableVersion = new ts.Version(ts.getProperty(availableTypingVersions, "ts" + ts.versionMajorMinor) || ts.getProperty(availableTypingVersions, "latest"));
164435
164548
  return availableVersion.compareTo(cachedTyping.version) <= 0;
164436
164549
  }
164437
164550
  JsTyping.isTypingUpToDate = isTypingUpToDate;
@@ -164484,7 +164597,7 @@ var ts;
164484
164597
  "worker_threads",
164485
164598
  "zlib"
164486
164599
  ];
164487
- JsTyping.prefixedNodeCoreModuleList = unprefixedNodeCoreModuleList.map(function (name) { return "node:".concat(name); });
164600
+ JsTyping.prefixedNodeCoreModuleList = unprefixedNodeCoreModuleList.map(function (name) { return "node:" + name; });
164488
164601
  JsTyping.nodeCoreModuleList = __spreadArray(__spreadArray([], unprefixedNodeCoreModuleList, true), JsTyping.prefixedNodeCoreModuleList, true);
164489
164602
  JsTyping.nodeCoreModules = new ts.Set(JsTyping.nodeCoreModuleList);
164490
164603
  function nonRelativeModuleNameForTypingCache(moduleName) {
@@ -164557,7 +164670,7 @@ var ts;
164557
164670
  var excludeTypingName = exclude_1[_i];
164558
164671
  var didDelete = inferredTypings.delete(excludeTypingName);
164559
164672
  if (didDelete && log)
164560
- log("Typing for ".concat(excludeTypingName, " is in exclude list, will be ignored."));
164673
+ log("Typing for " + excludeTypingName + " is in exclude list, will be ignored.");
164561
164674
  }
164562
164675
  var newTypingNames = [];
164563
164676
  var cachedTypingPaths = [];
@@ -164571,7 +164684,7 @@ var ts;
164571
164684
  });
164572
164685
  var result = { cachedTypingPaths: cachedTypingPaths, newTypingNames: newTypingNames, filesToWatch: filesToWatch };
164573
164686
  if (log)
164574
- log("Result: ".concat(JSON.stringify(result)));
164687
+ log("Result: " + JSON.stringify(result));
164575
164688
  return result;
164576
164689
  function addInferredTyping(typingName) {
164577
164690
  if (!inferredTypings.has(typingName)) {
@@ -164580,7 +164693,7 @@ var ts;
164580
164693
  }
164581
164694
  function addInferredTypings(typingNames, message) {
164582
164695
  if (log)
164583
- log("".concat(message, ": ").concat(JSON.stringify(typingNames)));
164696
+ log(message + ": " + JSON.stringify(typingNames));
164584
164697
  ts.forEach(typingNames, addInferredTyping);
164585
164698
  }
164586
164699
  /**
@@ -164602,7 +164715,7 @@ var ts;
164602
164715
  filesToWatch.push(manifestPath);
164603
164716
  manifest = ts.readConfigFile(manifestPath, function (path) { return host.readFile(path); }).config;
164604
164717
  manifestTypingNames = ts.flatMap([manifest.dependencies, manifest.devDependencies, manifest.optionalDependencies, manifest.peerDependencies], ts.getOwnKeys);
164605
- addInferredTypings(manifestTypingNames, "Typing names in '".concat(manifestPath, "' dependencies"));
164718
+ addInferredTypings(manifestTypingNames, "Typing names in '" + manifestPath + "' dependencies");
164606
164719
  }
164607
164720
  // Now we scan the directories for typing information in
164608
164721
  // already-installed dependencies (if present). Note that this
@@ -164646,7 +164759,7 @@ var ts;
164646
164759
  !isScoped && pathComponents[pathComponents.length - 3].toLowerCase() === modulesDirName; // `node_modules/foo`
164647
164760
  });
164648
164761
  if (log)
164649
- log("Searching for typing names in ".concat(packagesFolderPath, "; all files: ").concat(JSON.stringify(dependencyManifestNames)));
164762
+ log("Searching for typing names in " + packagesFolderPath + "; all files: " + JSON.stringify(dependencyManifestNames));
164650
164763
  // Once we have the names of things to look up, we iterate over
164651
164764
  // and either collect their included typings, or add them to the
164652
164765
  // list of typings we need to look up separately.
@@ -164665,12 +164778,12 @@ var ts;
164665
164778
  var absolutePath = ts.getNormalizedAbsolutePath(ownTypes, ts.getDirectoryPath(normalizedFileName));
164666
164779
  if (host.fileExists(absolutePath)) {
164667
164780
  if (log)
164668
- log(" Package '".concat(manifest_1.name, "' provides its own types."));
164781
+ log(" Package '" + manifest_1.name + "' provides its own types.");
164669
164782
  inferredTypings.set(manifest_1.name, absolutePath);
164670
164783
  }
164671
164784
  else {
164672
164785
  if (log)
164673
- log(" Package '".concat(manifest_1.name, "' provides its own types but they are missing."));
164786
+ log(" Package '" + manifest_1.name + "' provides its own types but they are missing.");
164674
164787
  }
164675
164788
  }
164676
164789
  else {
@@ -164766,15 +164879,15 @@ var ts;
164766
164879
  var kind = isScopeName ? "Scope" : "Package";
164767
164880
  switch (result) {
164768
164881
  case 1 /* EmptyName */:
164769
- return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' cannot be empty");
164882
+ return "'" + typing + "':: " + kind + " name '" + name + "' cannot be empty";
164770
164883
  case 2 /* NameTooLong */:
164771
- return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' should be less than ").concat(maxPackageNameLength, " characters");
164884
+ return "'" + typing + "':: " + kind + " name '" + name + "' should be less than " + maxPackageNameLength + " characters";
164772
164885
  case 3 /* NameStartsWithDot */:
164773
- return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' cannot start with '.'");
164886
+ return "'" + typing + "':: " + kind + " name '" + name + "' cannot start with '.'";
164774
164887
  case 4 /* NameStartsWithUnderscore */:
164775
- return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' cannot start with '_'");
164888
+ return "'" + typing + "':: " + kind + " name '" + name + "' cannot start with '_'";
164776
164889
  case 5 /* NameContainsNonURISafeCharacters */:
164777
- return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' contains non URI safe characters");
164890
+ return "'" + typing + "':: " + kind + " name '" + name + "' contains non URI safe characters";
164778
164891
  case 0 /* Ok */:
164779
164892
  return ts.Debug.fail(); // Shouldn't have called this.
164780
164893
  default:
@@ -164827,7 +164940,7 @@ var ts;
164827
164940
  }
164828
164941
  Errors.ThrowProjectLanguageServiceDisabled = ThrowProjectLanguageServiceDisabled;
164829
164942
  function ThrowProjectDoesNotContainDocument(fileName, project) {
164830
- throw new Error("Project '".concat(project.getProjectName(), "' does not contain document '").concat(fileName, "'"));
164943
+ throw new Error("Project '" + project.getProjectName() + "' does not contain document '" + fileName + "'");
164831
164944
  }
164832
164945
  Errors.ThrowProjectDoesNotContainDocument = ThrowProjectDoesNotContainDocument;
164833
164946
  })(Errors = server.Errors || (server.Errors = {}));
@@ -164868,12 +164981,12 @@ var ts;
164868
164981
  }
164869
164982
  server.isInferredProjectName = isInferredProjectName;
164870
164983
  function makeInferredProjectName(counter) {
164871
- return "/dev/null/inferredProject".concat(counter, "*");
164984
+ return "/dev/null/inferredProject" + counter + "*";
164872
164985
  }
164873
164986
  server.makeInferredProjectName = makeInferredProjectName;
164874
164987
  /*@internal*/
164875
164988
  function makeAutoImportProviderProjectName(counter) {
164876
- return "/dev/null/autoImportProviderProject".concat(counter, "*");
164989
+ return "/dev/null/autoImportProviderProject" + counter + "*";
164877
164990
  }
164878
164991
  server.makeAutoImportProviderProjectName = makeAutoImportProviderProjectName;
164879
164992
  function createSortedArray() {
@@ -164908,7 +165021,7 @@ var ts;
164908
165021
  // schedule new operation, pass arguments
164909
165022
  this.pendingTimeouts.set(operationId, this.host.setTimeout(ThrottledOperations.run, delay, this, operationId, cb));
164910
165023
  if (this.logger) {
164911
- this.logger.info("Scheduled: ".concat(operationId).concat(pendingTimeout ? ", Cancelled earlier one" : ""));
165024
+ this.logger.info("Scheduled: " + operationId + (pendingTimeout ? ", Cancelled earlier one" : ""));
164912
165025
  }
164913
165026
  };
164914
165027
  ThrottledOperations.prototype.cancel = function (operationId) {
@@ -164922,7 +165035,7 @@ var ts;
164922
165035
  ts.perfLogger.logStartScheduledOperation(operationId);
164923
165036
  self.pendingTimeouts.delete(operationId);
164924
165037
  if (self.logger) {
164925
- self.logger.info("Running: ".concat(operationId));
165038
+ self.logger.info("Running: " + operationId);
164926
165039
  }
164927
165040
  cb();
164928
165041
  ts.perfLogger.logStopScheduledOperation();
@@ -164951,7 +165064,7 @@ var ts;
164951
165064
  self.host.gc(); // TODO: GH#18217
164952
165065
  if (log) {
164953
165066
  var after = self.host.getMemoryUsage(); // TODO: GH#18217
164954
- self.logger.perftrc("GC::before ".concat(before, ", after ").concat(after));
165067
+ self.logger.perftrc("GC::before " + before + ", after " + after);
164955
165068
  }
164956
165069
  ts.perfLogger.logStopScheduledOperation();
164957
165070
  };
@@ -165304,8 +165417,8 @@ var ts;
165304
165417
  }
165305
165418
  TextStorage.prototype.getVersion = function () {
165306
165419
  return this.svc
165307
- ? "SVC-".concat(this.version.svc, "-").concat(this.svc.getSnapshotVersion())
165308
- : "Text-".concat(this.version.text);
165420
+ ? "SVC-" + this.version.svc + "-" + this.svc.getSnapshotVersion()
165421
+ : "Text-" + this.version.text;
165309
165422
  };
165310
165423
  TextStorage.prototype.hasScriptVersionCache_TestOnly = function () {
165311
165424
  return this.svc !== undefined;
@@ -165448,7 +165561,7 @@ var ts;
165448
165561
  if (fileSize > server.maxFileSize) {
165449
165562
  ts.Debug.assert(!!this.info.containingProjects.length);
165450
165563
  var service = this.info.containingProjects[0].projectService;
165451
- service.logger.info("Skipped loading contents of large file ".concat(fileName, " for info ").concat(this.info.fileName, ": fileSize: ").concat(fileSize));
165564
+ service.logger.info("Skipped loading contents of large file " + fileName + " for info " + this.info.fileName + ": fileSize: " + fileSize);
165452
165565
  this.info.containingProjects[0].projectService.sendLargeFileReferencedEvent(fileName, fileSize);
165453
165566
  return { text: "", fileSize: fileSize };
165454
165567
  }
@@ -165824,14 +165937,14 @@ var ts;
165824
165937
  return project;
165825
165938
  }
165826
165939
  function failIfInvalidPosition(position) {
165827
- ts.Debug.assert(typeof position === "number", "Expected position ".concat(position, " to be a number."));
165940
+ ts.Debug.assert(typeof position === "number", "Expected position " + position + " to be a number.");
165828
165941
  ts.Debug.assert(position >= 0, "Expected position to be non-negative.");
165829
165942
  }
165830
165943
  function failIfInvalidLocation(location) {
165831
- ts.Debug.assert(typeof location.line === "number", "Expected line ".concat(location.line, " to be a number."));
165832
- ts.Debug.assert(typeof location.offset === "number", "Expected offset ".concat(location.offset, " to be a number."));
165833
- ts.Debug.assert(location.line > 0, "Expected line to be non-".concat(location.line === 0 ? "zero" : "negative"));
165834
- ts.Debug.assert(location.offset > 0, "Expected offset to be non-".concat(location.offset === 0 ? "zero" : "negative"));
165944
+ ts.Debug.assert(typeof location.line === "number", "Expected line " + location.line + " to be a number.");
165945
+ ts.Debug.assert(typeof location.offset === "number", "Expected offset " + location.offset + " to be a number.");
165946
+ ts.Debug.assert(location.line > 0, "Expected line to be non-" + (location.line === 0 ? "zero" : "negative"));
165947
+ ts.Debug.assert(location.offset > 0, "Expected offset to be non-" + (location.offset === 0 ? "zero" : "negative"));
165835
165948
  }
165836
165949
  })(server = ts.server || (ts.server = {}));
165837
165950
  })(ts || (ts = {}));
@@ -166143,11 +166256,11 @@ var ts;
166143
166256
  };
166144
166257
  Project.resolveModule = function (moduleName, initialDir, host, log, logErrors) {
166145
166258
  var resolvedPath = ts.normalizeSlashes(host.resolvePath(ts.combinePaths(initialDir, "node_modules")));
166146
- log("Loading ".concat(moduleName, " from ").concat(initialDir, " (resolved to ").concat(resolvedPath, ")"));
166259
+ log("Loading " + moduleName + " from " + initialDir + " (resolved to " + resolvedPath + ")");
166147
166260
  var result = host.require(resolvedPath, moduleName); // TODO: GH#18217
166148
166261
  if (result.error) {
166149
166262
  var err = result.error.stack || result.error.message || JSON.stringify(result.error);
166150
- (logErrors || log)("Failed to load module '".concat(moduleName, "' from ").concat(resolvedPath, ": ").concat(err));
166263
+ (logErrors || log)("Failed to load module '" + moduleName + "' from " + resolvedPath + ": " + err);
166151
166264
  return undefined;
166152
166265
  }
166153
166266
  return result.module;
@@ -166298,12 +166411,12 @@ var ts;
166298
166411
  };
166299
166412
  /*@internal*/
166300
166413
  Project.prototype.clearInvalidateResolutionOfFailedLookupTimer = function () {
166301
- return this.projectService.throttledOperations.cancel("".concat(this.getProjectName(), "FailedLookupInvalidation"));
166414
+ return this.projectService.throttledOperations.cancel(this.getProjectName() + "FailedLookupInvalidation");
166302
166415
  };
166303
166416
  /*@internal*/
166304
166417
  Project.prototype.scheduleInvalidateResolutionsOfFailedLookupLocations = function () {
166305
166418
  var _this = this;
166306
- this.projectService.throttledOperations.schedule("".concat(this.getProjectName(), "FailedLookupInvalidation"), /*delay*/ 1000, function () {
166419
+ this.projectService.throttledOperations.schedule(this.getProjectName() + "FailedLookupInvalidation", /*delay*/ 1000, function () {
166307
166420
  if (_this.resolutionCache.invalidateResolutionsOfFailedLookupLocations()) {
166308
166421
  _this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(_this);
166309
166422
  }
@@ -166481,7 +166594,7 @@ var ts;
166481
166594
  return plugin.module.getExternalFiles(_this);
166482
166595
  }
166483
166596
  catch (e) {
166484
- _this.projectService.logger.info("A plugin threw an exception in getExternalFiles: ".concat(e));
166597
+ _this.projectService.logger.info("A plugin threw an exception in getExternalFiles: " + e);
166485
166598
  if (e.stack) {
166486
166599
  _this.projectService.logger.info(e.stack);
166487
166600
  }
@@ -166584,7 +166697,7 @@ var ts;
166584
166697
  }
166585
166698
  return ts.map(this.program.getSourceFiles(), function (sourceFile) {
166586
166699
  var scriptInfo = _this.projectService.getScriptInfoForPath(sourceFile.resolvedPath);
166587
- ts.Debug.assert(!!scriptInfo, "getScriptInfo", function () { return "scriptInfo for a file '".concat(sourceFile.fileName, "' Path: '").concat(sourceFile.path, "' / '").concat(sourceFile.resolvedPath, "' is missing."); });
166700
+ ts.Debug.assert(!!scriptInfo, "getScriptInfo", function () { return "scriptInfo for a file '" + sourceFile.fileName + "' Path: '" + sourceFile.path + "' / '" + sourceFile.resolvedPath + "' is missing."; });
166588
166701
  return scriptInfo;
166589
166702
  });
166590
166703
  };
@@ -166827,7 +166940,7 @@ var ts;
166827
166940
  var _this = this;
166828
166941
  var oldProgram = this.program;
166829
166942
  ts.Debug.assert(!this.isClosed(), "Called update graph worker of closed project");
166830
- this.writeLog("Starting updateGraphWorker: Project: ".concat(this.getProjectName()));
166943
+ this.writeLog("Starting updateGraphWorker: Project: " + this.getProjectName());
166831
166944
  var start = ts.timestamp();
166832
166945
  this.hasInvalidatedResolution = this.resolutionCache.createHasInvalidatedResolution();
166833
166946
  this.resolutionCache.startCachingPerDirectoryResolution();
@@ -166929,7 +167042,7 @@ var ts;
166929
167042
  }, function (removed) { return _this.detachScriptInfoFromProject(removed); });
166930
167043
  var elapsed = ts.timestamp() - start;
166931
167044
  this.sendPerformanceEvent("UpdateGraph", elapsed);
166932
- this.writeLog("Finishing updateGraphWorker: Project: ".concat(this.getProjectName(), " Version: ").concat(this.getProjectVersion(), " structureChanged: ").concat(hasNewProgram).concat(this.program ? " structureIsReused:: ".concat(ts.StructureIsReused[this.program.structureIsReused]) : "", " Elapsed: ").concat(elapsed, "ms"));
167045
+ this.writeLog("Finishing updateGraphWorker: Project: " + this.getProjectName() + " Version: " + this.getProjectVersion() + " structureChanged: " + hasNewProgram + (this.program ? " structureIsReused:: " + ts.StructureIsReused[this.program.structureIsReused] : "") + " Elapsed: " + elapsed + "ms");
166933
167046
  if (this.hasAddedorRemovedFiles) {
166934
167047
  this.print(/*writeProjectFileNames*/ true);
166935
167048
  }
@@ -166989,7 +167102,7 @@ var ts;
166989
167102
  var path = this.toPath(sourceFile);
166990
167103
  if (this.generatedFilesMap) {
166991
167104
  if (isGeneratedFileWatcher(this.generatedFilesMap)) {
166992
- ts.Debug.fail("".concat(this.projectName, " Expected to not have --out watcher for generated file with options: ").concat(JSON.stringify(this.compilerOptions)));
167105
+ ts.Debug.fail(this.projectName + " Expected to not have --out watcher for generated file with options: " + JSON.stringify(this.compilerOptions));
166993
167106
  return;
166994
167107
  }
166995
167108
  if (this.generatedFilesMap.has(path))
@@ -167041,20 +167154,20 @@ var ts;
167041
167154
  if (!this.program)
167042
167155
  return "\tFiles (0) NoProgram\n";
167043
167156
  var sourceFiles = this.program.getSourceFiles();
167044
- var strBuilder = "\tFiles (".concat(sourceFiles.length, ")\n");
167157
+ var strBuilder = "\tFiles (" + sourceFiles.length + ")\n";
167045
167158
  if (writeProjectFileNames) {
167046
167159
  for (var _i = 0, sourceFiles_1 = sourceFiles; _i < sourceFiles_1.length; _i++) {
167047
167160
  var file = sourceFiles_1[_i];
167048
- strBuilder += "\t".concat(file.fileName, "\n");
167161
+ strBuilder += "\t" + file.fileName + "\n";
167049
167162
  }
167050
167163
  strBuilder += "\n\n";
167051
- ts.explainFiles(this.program, function (s) { return strBuilder += "\t".concat(s, "\n"); });
167164
+ ts.explainFiles(this.program, function (s) { return strBuilder += "\t" + s + "\n"; });
167052
167165
  }
167053
167166
  return strBuilder;
167054
167167
  };
167055
167168
  /*@internal*/
167056
167169
  Project.prototype.print = function (writeProjectFileNames) {
167057
- this.writeLog("Project '".concat(this.projectName, "' (").concat(ProjectKind[this.projectKind], ")"));
167170
+ this.writeLog("Project '" + this.projectName + "' (" + ProjectKind[this.projectKind] + ")");
167058
167171
  this.writeLog(this.filesToString(writeProjectFileNames && this.projectService.logger.hasLevel(server.LogLevel.verbose)));
167059
167172
  this.writeLog("-----------------------------------------------");
167060
167173
  if (this.autoImportProviderHost) {
@@ -167216,7 +167329,7 @@ var ts;
167216
167329
  if (options.plugins && options.plugins.some(function (p) { return p.name === globalPluginName; }))
167217
167330
  return "continue";
167218
167331
  // Provide global: true so plugins can detect why they can't find their config
167219
- this_1.projectService.logger.info("Loading global plugin ".concat(globalPluginName));
167332
+ this_1.projectService.logger.info("Loading global plugin " + globalPluginName);
167220
167333
  this_1.enablePlugin({ name: globalPluginName, global: true }, searchPaths, pluginConfigOverrides);
167221
167334
  };
167222
167335
  var this_1 = this;
@@ -167229,9 +167342,9 @@ var ts;
167229
167342
  };
167230
167343
  Project.prototype.enablePlugin = function (pluginConfigEntry, searchPaths, pluginConfigOverrides) {
167231
167344
  var _this = this;
167232
- this.projectService.logger.info("Enabling plugin ".concat(pluginConfigEntry.name, " from candidate paths: ").concat(searchPaths.join(",")));
167345
+ this.projectService.logger.info("Enabling plugin " + pluginConfigEntry.name + " from candidate paths: " + searchPaths.join(","));
167233
167346
  if (!pluginConfigEntry.name || ts.parsePackageName(pluginConfigEntry.name).rest) {
167234
- this.projectService.logger.info("Skipped loading plugin ".concat(pluginConfigEntry.name || JSON.stringify(pluginConfigEntry), " because only package name is allowed plugin name"));
167347
+ this.projectService.logger.info("Skipped loading plugin " + (pluginConfigEntry.name || JSON.stringify(pluginConfigEntry)) + " because only package name is allowed plugin name");
167235
167348
  return;
167236
167349
  }
167237
167350
  var log = function (message) { return _this.projectService.logger.info(message); };
@@ -167254,13 +167367,13 @@ var ts;
167254
167367
  }
167255
167368
  else {
167256
167369
  ts.forEach(errorLogs, log);
167257
- this.projectService.logger.info("Couldn't find ".concat(pluginConfigEntry.name));
167370
+ this.projectService.logger.info("Couldn't find " + pluginConfigEntry.name);
167258
167371
  }
167259
167372
  };
167260
167373
  Project.prototype.enableProxy = function (pluginModuleFactory, configEntry) {
167261
167374
  try {
167262
167375
  if (typeof pluginModuleFactory !== "function") {
167263
- this.projectService.logger.info("Skipped loading plugin ".concat(configEntry.name, " because it did not expose a proper factory function"));
167376
+ this.projectService.logger.info("Skipped loading plugin " + configEntry.name + " because it did not expose a proper factory function");
167264
167377
  return;
167265
167378
  }
167266
167379
  var info = {
@@ -167277,7 +167390,7 @@ var ts;
167277
167390
  var k = _a[_i];
167278
167391
  // eslint-disable-next-line no-in-operator
167279
167392
  if (!(k in newLS)) {
167280
- this.projectService.logger.info("Plugin activation warning: Missing proxied method ".concat(k, " in created LS. Patching."));
167393
+ this.projectService.logger.info("Plugin activation warning: Missing proxied method " + k + " in created LS. Patching.");
167281
167394
  newLS[k] = this.languageService[k];
167282
167395
  }
167283
167396
  }
@@ -167286,7 +167399,7 @@ var ts;
167286
167399
  this.plugins.push({ name: configEntry.name, module: pluginModule });
167287
167400
  }
167288
167401
  catch (e) {
167289
- this.projectService.logger.info("Plugin activation failed: ".concat(e));
167402
+ this.projectService.logger.info("Plugin activation failed: " + e);
167290
167403
  }
167291
167404
  };
167292
167405
  /*@internal*/
@@ -167551,7 +167664,7 @@ var ts;
167551
167664
  var name = _d[_c];
167552
167665
  // Avoid creating a large project that would significantly slow down time to editor interactivity
167553
167666
  if (dependencySelection === 2 /* Auto */ && dependenciesAdded > this.maxDependencies) {
167554
- hostProject.log("AutoImportProviderProject: attempted to add more than ".concat(this.maxDependencies, " dependencies. Aborting."));
167667
+ hostProject.log("AutoImportProviderProject: attempted to add more than " + this.maxDependencies + " dependencies. Aborting.");
167555
167668
  return ts.emptyArray;
167556
167669
  }
167557
167670
  // 1. Try to load from the implementation package. For many dependencies, the
@@ -167568,7 +167681,7 @@ var ts;
167568
167681
  }
167569
167682
  }
167570
167683
  // 2. Try to load from the @types package.
167571
- var typesPackageJson = ts.resolvePackageNameToPackageJson("@types/".concat(name), hostProject.currentDirectory, compilerOptions, moduleResolutionHost, program.getModuleResolutionCache());
167684
+ var typesPackageJson = ts.resolvePackageNameToPackageJson("@types/" + name, hostProject.currentDirectory, compilerOptions, moduleResolutionHost, program.getModuleResolutionCache());
167572
167685
  if (typesPackageJson) {
167573
167686
  var entrypoints = getRootNamesFromPackageJson(typesPackageJson, program, symlinkCache);
167574
167687
  rootNames = ts.concatenate(rootNames, entrypoints);
@@ -167586,7 +167699,7 @@ var ts;
167586
167699
  }
167587
167700
  }
167588
167701
  if (rootNames === null || rootNames === void 0 ? void 0 : rootNames.length) {
167589
- hostProject.log("AutoImportProviderProject: found ".concat(rootNames.length, " root files in ").concat(dependenciesAdded, " dependencies in ").concat(ts.timestamp() - start, " ms"));
167702
+ hostProject.log("AutoImportProviderProject: found " + rootNames.length + " root files in " + dependenciesAdded + " dependencies in " + (ts.timestamp() - start) + " ms");
167590
167703
  }
167591
167704
  return rootNames || ts.emptyArray;
167592
167705
  function addDependency(dependency) {
@@ -167843,7 +167956,7 @@ var ts;
167843
167956
  var searchPaths = __spreadArray([ts.combinePaths(this.projectService.getExecutingFilePath(), "../../..")], this.projectService.pluginProbeLocations, true);
167844
167957
  if (this.projectService.allowLocalPluginLoads) {
167845
167958
  var local = ts.getDirectoryPath(this.canonicalConfigFilePath);
167846
- this.projectService.logger.info("Local plugin loading enabled; adding ".concat(local, " to search paths"));
167959
+ this.projectService.logger.info("Local plugin loading enabled; adding " + local + " to search paths");
167847
167960
  searchPaths.unshift(local);
167848
167961
  }
167849
167962
  // Enable tsconfig-specified plugins
@@ -168269,7 +168382,7 @@ var ts;
168269
168382
  return forEachAnyProjectReferenceKind(project, function (resolvedRef) { return callbackRefProject(project, cb, resolvedRef.sourceFile.path); }, function (projectRef) { return callbackRefProject(project, cb, project.toPath(ts.resolveProjectReferencePath(projectRef))); }, function (potentialProjectRef) { return callbackRefProject(project, cb, potentialProjectRef); });
168270
168383
  }
168271
168384
  function getDetailWatchInfo(watchType, project) {
168272
- return "".concat(ts.isString(project) ? "Config: ".concat(project, " ") : project ? "Project: ".concat(project.getProjectName(), " ") : "", "WatchType: ").concat(watchType);
168385
+ return (ts.isString(project) ? "Config: " + project + " " : project ? "Project: " + project.getProjectName() + " " : "") + "WatchType: " + watchType;
168273
168386
  }
168274
168387
  function isScriptInfoWatchedFromNodeModules(info) {
168275
168388
  return !info.isScriptOpen() && info.mTime !== undefined;
@@ -168474,7 +168587,7 @@ var ts;
168474
168587
  try {
168475
168588
  var fileContent = this.host.readFile(this.typesMapLocation); // TODO: GH#18217
168476
168589
  if (fileContent === undefined) {
168477
- this.logger.info("Provided types map file \"".concat(this.typesMapLocation, "\" doesn't exist"));
168590
+ this.logger.info("Provided types map file \"" + this.typesMapLocation + "\" doesn't exist");
168478
168591
  return;
168479
168592
  }
168480
168593
  var raw = JSON.parse(fileContent);
@@ -168492,7 +168605,7 @@ var ts;
168492
168605
  }
168493
168606
  }
168494
168607
  catch (e) {
168495
- this.logger.info("Error loading types map: ".concat(e));
168608
+ this.logger.info("Error loading types map: " + e);
168496
168609
  this.safelist = defaultTypeSafeList;
168497
168610
  this.legacySafelist.clear();
168498
168611
  }
@@ -168814,7 +168927,7 @@ var ts;
168814
168927
  var fsResult = config.cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath);
168815
168928
  if (ts.getBaseFileName(fileOrDirectoryPath) === "package.json" && !ts.isInsideNodeModules(fileOrDirectoryPath) &&
168816
168929
  (fsResult && fsResult.fileExists || !fsResult && _this.host.fileExists(fileOrDirectoryPath))) {
168817
- _this.logger.info("Config: ".concat(configFileName, " Detected new package.json: ").concat(fileOrDirectory));
168930
+ _this.logger.info("Config: " + configFileName + " Detected new package.json: " + fileOrDirectory);
168818
168931
  _this.onAddPackageJson(fileOrDirectoryPath);
168819
168932
  }
168820
168933
  var configuredProjectForConfig = _this.findConfiguredProjectByProjectName(configFileName);
@@ -168937,13 +169050,13 @@ var ts;
168937
169050
  project.print(/*writeProjectFileNames*/ true);
168938
169051
  project.close();
168939
169052
  if (ts.Debug.shouldAssert(1 /* Normal */)) {
168940
- this.filenameToScriptInfo.forEach(function (info) { return ts.Debug.assert(!info.isAttached(project), "Found script Info still attached to project", function () { return "".concat(project.projectName, ": ScriptInfos still attached: ").concat(JSON.stringify(ts.arrayFrom(ts.mapDefinedIterator(_this.filenameToScriptInfo.values(), function (info) { return info.isAttached(project) ?
169053
+ this.filenameToScriptInfo.forEach(function (info) { return ts.Debug.assert(!info.isAttached(project), "Found script Info still attached to project", function () { return project.projectName + ": ScriptInfos still attached: " + JSON.stringify(ts.arrayFrom(ts.mapDefinedIterator(_this.filenameToScriptInfo.values(), function (info) { return info.isAttached(project) ?
168941
169054
  {
168942
169055
  fileName: info.fileName,
168943
169056
  projects: info.containingProjects.map(function (p) { return p.projectName; }),
168944
169057
  hasMixedContent: info.hasMixedContent
168945
169058
  } : undefined; })),
168946
- /*replacer*/ undefined, " ")); }); });
169059
+ /*replacer*/ undefined, " "); }); });
168947
169060
  }
168948
169061
  // Remove the project from pending project updates
168949
169062
  this.pendingProjectUpdates.delete(project.getProjectName());
@@ -169344,15 +169457,15 @@ var ts;
169344
169457
  if (result !== undefined)
169345
169458
  return result || undefined;
169346
169459
  }
169347
- this.logger.info("Search path: ".concat(ts.getDirectoryPath(info.fileName)));
169460
+ this.logger.info("Search path: " + ts.getDirectoryPath(info.fileName));
169348
169461
  var configFileName = this.forEachConfigFileLocation(info, function (canonicalConfigFilePath, configFileName) {
169349
169462
  return _this.configFileExists(configFileName, canonicalConfigFilePath, info);
169350
169463
  });
169351
169464
  if (configFileName) {
169352
- this.logger.info("For info: ".concat(info.fileName, " :: Config file name: ").concat(configFileName));
169465
+ this.logger.info("For info: " + info.fileName + " :: Config file name: " + configFileName);
169353
169466
  }
169354
169467
  else {
169355
- this.logger.info("For info: ".concat(info.fileName, " :: No config files found."));
169468
+ this.logger.info("For info: " + info.fileName + " :: No config files found.");
169356
169469
  }
169357
169470
  if (isOpenScriptInfo(info)) {
169358
169471
  this.configFileForOpenFiles.set(info.path, configFileName || false);
@@ -169371,8 +169484,8 @@ var ts;
169371
169484
  this.logger.info("Open files: ");
169372
169485
  this.openFiles.forEach(function (projectRootPath, path) {
169373
169486
  var info = _this.getScriptInfoForPath(path);
169374
- _this.logger.info("\tFileName: ".concat(info.fileName, " ProjectRootPath: ").concat(projectRootPath));
169375
- _this.logger.info("\t\tProjects: ".concat(info.containingProjects.map(function (p) { return p.getProjectName(); })));
169487
+ _this.logger.info("\tFileName: " + info.fileName + " ProjectRootPath: " + projectRootPath);
169488
+ _this.logger.info("\t\tProjects: " + info.containingProjects.map(function (p) { return p.getProjectName(); }));
169376
169489
  });
169377
169490
  this.logger.endGroup();
169378
169491
  };
@@ -169411,7 +169524,7 @@ var ts;
169411
169524
  .map(function (name) { return ({ name: name, size: _this.host.getFileSize(name) }); })
169412
169525
  .sort(function (a, b) { return b.size - a.size; })
169413
169526
  .slice(0, 5);
169414
- this.logger.info("Non TS file size exceeded limit (".concat(totalNonTsFileSize, "). Largest files: ").concat(top5LargestFiles.map(function (file) { return "".concat(file.name, ":").concat(file.size); }).join(", ")));
169527
+ this.logger.info("Non TS file size exceeded limit (" + totalNonTsFileSize + "). Largest files: " + top5LargestFiles.map(function (file) { return file.name + ":" + file.size; }).join(", "));
169415
169528
  // Keep the size as zero since it's disabled
169416
169529
  return fileName;
169417
169530
  }
@@ -169480,7 +169593,7 @@ var ts;
169480
169593
  };
169481
169594
  /* @internal */
169482
169595
  ProjectService.prototype.createConfiguredProject = function (configFileName) {
169483
- this.logger.info("Creating configuration project ".concat(configFileName));
169596
+ this.logger.info("Creating configuration project " + configFileName);
169484
169597
  var canonicalConfigFilePath = server.asNormalizedPath(this.toCanonicalFileName(configFileName));
169485
169598
  var configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);
169486
169599
  // We could be in this scenario if project is the configured project tracked by external project
@@ -169591,12 +169704,12 @@ var ts;
169591
169704
  if (parsedCommandLine.errors.length) {
169592
169705
  configFileErrors.push.apply(configFileErrors, parsedCommandLine.errors);
169593
169706
  }
169594
- this.logger.info("Config: ".concat(configFilename, " : ").concat(JSON.stringify({
169707
+ this.logger.info("Config: " + configFilename + " : " + JSON.stringify({
169595
169708
  rootNames: parsedCommandLine.fileNames,
169596
169709
  options: parsedCommandLine.options,
169597
169710
  watchOptions: parsedCommandLine.watchOptions,
169598
169711
  projectReferences: parsedCommandLine.projectReferences
169599
- }, /*replacer*/ undefined, " ")));
169712
+ }, /*replacer*/ undefined, " "));
169600
169713
  var oldCommandLine = (_b = configFileExistenceInfo.config) === null || _b === void 0 ? void 0 : _b.parsedCommandLine;
169601
169714
  if (!configFileExistenceInfo.config) {
169602
169715
  configFileExistenceInfo.config = { parsedCommandLine: parsedCommandLine, cachedDirectoryStructureHost: cachedDirectoryStructureHost, projects: new ts.Map() };
@@ -169626,7 +169739,7 @@ var ts;
169626
169739
  // Update projects
169627
169740
  var ensureProjectsForOpenFiles = false;
169628
169741
  (_a = _this.sharedExtendedConfigFileWatchers.get(extendedConfigFilePath)) === null || _a === void 0 ? void 0 : _a.projects.forEach(function (canonicalPath) {
169629
- ensureProjectsForOpenFiles = _this.delayUpdateProjectsFromParsedConfigOnConfigFileChange(canonicalPath, "Change in extended config file ".concat(extendedConfigFileName, " detected")) || ensureProjectsForOpenFiles;
169742
+ ensureProjectsForOpenFiles = _this.delayUpdateProjectsFromParsedConfigOnConfigFileChange(canonicalPath, "Change in extended config file " + extendedConfigFileName + " detected") || ensureProjectsForOpenFiles;
169630
169743
  });
169631
169744
  if (ensureProjectsForOpenFiles)
169632
169745
  _this.delayEnsureProjectForOpenFiles();
@@ -169782,7 +169895,7 @@ var ts;
169782
169895
  // Clear the cache since we are reloading the project from disk
169783
169896
  host.clearCache();
169784
169897
  var configFileName = project.getConfigFilePath();
169785
- this.logger.info("".concat(isInitialLoad ? "Loading" : "Reloading", " configured project ").concat(configFileName));
169898
+ this.logger.info((isInitialLoad ? "Loading" : "Reloading") + " configured project " + configFileName);
169786
169899
  // Load project from the disk
169787
169900
  this.loadConfiguredProject(project, reason);
169788
169901
  project.updateGraph();
@@ -169921,7 +170034,7 @@ var ts;
169921
170034
  var path = _a[0], scriptInfo = _a[1];
169922
170035
  return ({ path: path, fileName: scriptInfo.fileName });
169923
170036
  });
169924
- this.logger.msg("Could not find file ".concat(JSON.stringify(fileName), ".\nAll files are: ").concat(JSON.stringify(names)), server.Msg.Err);
170037
+ this.logger.msg("Could not find file " + JSON.stringify(fileName) + ".\nAll files are: " + JSON.stringify(names), server.Msg.Err);
169925
170038
  };
169926
170039
  /**
169927
170040
  * Returns the projects that contain script info through SymLink
@@ -170105,9 +170218,9 @@ var ts;
170105
170218
  var info = this.getScriptInfoForPath(path);
170106
170219
  if (!info) {
170107
170220
  var isDynamic = server.isDynamicFileName(fileName);
170108
- ts.Debug.assert(ts.isRootedDiskPath(fileName) || isDynamic || openedByClient, "", function () { return "".concat(JSON.stringify({ fileName: fileName, currentDirectory: currentDirectory, hostCurrentDirectory: _this.currentDirectory, openKeys: ts.arrayFrom(_this.openFilesWithNonRootedDiskPath.keys()) }), "\nScript info with non-dynamic relative file name can only be open script info or in context of host currentDirectory"); });
170109
- ts.Debug.assert(!ts.isRootedDiskPath(fileName) || this.currentDirectory === currentDirectory || !this.openFilesWithNonRootedDiskPath.has(this.toCanonicalFileName(fileName)), "", function () { return "".concat(JSON.stringify({ fileName: fileName, currentDirectory: currentDirectory, hostCurrentDirectory: _this.currentDirectory, openKeys: ts.arrayFrom(_this.openFilesWithNonRootedDiskPath.keys()) }), "\nOpen script files with non rooted disk path opened with current directory context cannot have same canonical names"); });
170110
- ts.Debug.assert(!isDynamic || this.currentDirectory === currentDirectory || this.useInferredProjectPerProjectRoot, "", function () { return "".concat(JSON.stringify({ fileName: fileName, currentDirectory: currentDirectory, hostCurrentDirectory: _this.currentDirectory, openKeys: ts.arrayFrom(_this.openFilesWithNonRootedDiskPath.keys()) }), "\nDynamic files must always be opened with service's current directory or service should support inferred project per projectRootPath."); });
170221
+ ts.Debug.assert(ts.isRootedDiskPath(fileName) || isDynamic || openedByClient, "", function () { return JSON.stringify({ fileName: fileName, currentDirectory: currentDirectory, hostCurrentDirectory: _this.currentDirectory, openKeys: ts.arrayFrom(_this.openFilesWithNonRootedDiskPath.keys()) }) + "\nScript info with non-dynamic relative file name can only be open script info or in context of host currentDirectory"; });
170222
+ ts.Debug.assert(!ts.isRootedDiskPath(fileName) || this.currentDirectory === currentDirectory || !this.openFilesWithNonRootedDiskPath.has(this.toCanonicalFileName(fileName)), "", function () { return JSON.stringify({ fileName: fileName, currentDirectory: currentDirectory, hostCurrentDirectory: _this.currentDirectory, openKeys: ts.arrayFrom(_this.openFilesWithNonRootedDiskPath.keys()) }) + "\nOpen script files with non rooted disk path opened with current directory context cannot have same canonical names"; });
170223
+ ts.Debug.assert(!isDynamic || this.currentDirectory === currentDirectory || this.useInferredProjectPerProjectRoot, "", function () { return JSON.stringify({ fileName: fileName, currentDirectory: currentDirectory, hostCurrentDirectory: _this.currentDirectory, openKeys: ts.arrayFrom(_this.openFilesWithNonRootedDiskPath.keys()) }) + "\nDynamic files must always be opened with service's current directory or service should support inferred project per projectRootPath."; });
170111
170224
  // If the file is not opened by client and the file doesnot exist on the disk, return
170112
170225
  if (!openedByClient && !isDynamic && !(hostToQueryFileExistsOn || this.host).fileExists(fileName)) {
170113
170226
  return;
@@ -170286,13 +170399,13 @@ var ts;
170286
170399
  var info = this.getScriptInfoForNormalizedPath(server.toNormalizedPath(args.file));
170287
170400
  if (info) {
170288
170401
  info.setOptions(convertFormatOptions(args.formatOptions), args.preferences);
170289
- this.logger.info("Host configuration update for file ".concat(args.file));
170402
+ this.logger.info("Host configuration update for file " + args.file);
170290
170403
  }
170291
170404
  }
170292
170405
  else {
170293
170406
  if (args.hostInfo !== undefined) {
170294
170407
  this.hostConfiguration.hostInfo = args.hostInfo;
170295
- this.logger.info("Host information ".concat(args.hostInfo));
170408
+ this.logger.info("Host information " + args.hostInfo);
170296
170409
  }
170297
170410
  if (args.formatOptions) {
170298
170411
  this.hostConfiguration.formatCodeOptions = __assign(__assign({}, this.hostConfiguration.formatCodeOptions), convertFormatOptions(args.formatOptions));
@@ -170324,7 +170437,7 @@ var ts;
170324
170437
  }
170325
170438
  if (args.watchOptions) {
170326
170439
  this.hostConfiguration.watchOptions = (_a = convertWatchOptions(args.watchOptions)) === null || _a === void 0 ? void 0 : _a.watchOptions;
170327
- this.logger.info("Host watch options changed to ".concat(JSON.stringify(this.hostConfiguration.watchOptions), ", it will be take effect for next watches."));
170440
+ this.logger.info("Host watch options changed to " + JSON.stringify(this.hostConfiguration.watchOptions) + ", it will be take effect for next watches.");
170328
170441
  }
170329
170442
  }
170330
170443
  };
@@ -170536,7 +170649,7 @@ var ts;
170536
170649
  ? originalLocation
170537
170650
  : location;
170538
170651
  }
170539
- configuredProject = this.createAndLoadConfiguredProject(configFileName, "Creating project for original file: ".concat(originalFileInfo.fileName).concat(location !== originalLocation ? " for location: " + location.fileName : ""));
170652
+ configuredProject = this.createAndLoadConfiguredProject(configFileName, "Creating project for original file: " + originalFileInfo.fileName + (location !== originalLocation ? " for location: " + location.fileName : ""));
170540
170653
  }
170541
170654
  updateProjectIfDirty(configuredProject);
170542
170655
  var projectContainsOriginalInfo = function (project) {
@@ -170548,7 +170661,7 @@ var ts;
170548
170661
  configuredProject = forEachResolvedProjectReferenceProject(configuredProject, fileName, function (child) {
170549
170662
  updateProjectIfDirty(child);
170550
170663
  return projectContainsOriginalInfo(child) ? child : undefined;
170551
- }, ProjectReferenceProjectLoadKind.FindCreateLoad, "Creating project referenced in solution ".concat(configuredProject.projectName, " to find possible configured project for original file: ").concat(originalFileInfo.fileName).concat(location !== originalLocation ? " for location: " + location.fileName : ""));
170664
+ }, ProjectReferenceProjectLoadKind.FindCreateLoad, "Creating project referenced in solution " + configuredProject.projectName + " to find possible configured project for original file: " + originalFileInfo.fileName + (location !== originalLocation ? " for location: " + location.fileName : ""));
170552
170665
  if (!configuredProject)
170553
170666
  return undefined;
170554
170667
  if (configuredProject === project)
@@ -170602,7 +170715,7 @@ var ts;
170602
170715
  if (configFileName) {
170603
170716
  project = this.findConfiguredProjectByProjectName(configFileName);
170604
170717
  if (!project) {
170605
- project = this.createLoadAndUpdateConfiguredProject(configFileName, "Creating possible configured project for ".concat(info.fileName, " to open"));
170718
+ project = this.createLoadAndUpdateConfiguredProject(configFileName, "Creating possible configured project for " + info.fileName + " to open");
170606
170719
  defaultConfigProjectIsCreated = true;
170607
170720
  }
170608
170721
  else {
@@ -170632,7 +170745,7 @@ var ts;
170632
170745
  if (!projectForConfigFileDiag && child.containsScriptInfo(info)) {
170633
170746
  projectForConfigFileDiag = child;
170634
170747
  }
170635
- }, ProjectReferenceProjectLoadKind.FindCreateLoad, "Creating project referenced in solution ".concat(project.projectName, " to find possible configured project for ").concat(info.fileName, " to open"));
170748
+ }, ProjectReferenceProjectLoadKind.FindCreateLoad, "Creating project referenced in solution " + project.projectName + " to find possible configured project for " + info.fileName + " to open");
170636
170749
  }
170637
170750
  // Send the event only if the project got created as part of this open request and info is part of the project
170638
170751
  if (projectForConfigFileDiag) {
@@ -170694,7 +170807,7 @@ var ts;
170694
170807
  return;
170695
170808
  // find or delay load the project
170696
170809
  var ancestor = this.findConfiguredProjectByProjectName(configFileName) ||
170697
- this.createConfiguredProjectWithDelayLoad(configFileName, "Creating project possibly referencing default composite project ".concat(project.getProjectName(), " of open file ").concat(info.fileName));
170810
+ this.createConfiguredProjectWithDelayLoad(configFileName, "Creating project possibly referencing default composite project " + project.getProjectName() + " of open file " + info.fileName);
170698
170811
  if (ancestor.isInitialLoadPending()) {
170699
170812
  // Set a potential project reference
170700
170813
  ancestor.setPotentialProjectReference(project.canonicalConfigFilePath);
@@ -170737,7 +170850,7 @@ var ts;
170737
170850
  // Load this project,
170738
170851
  var configFileName = server.toNormalizedPath(child.sourceFile.fileName);
170739
170852
  var childProject = project.projectService.findConfiguredProjectByProjectName(configFileName) ||
170740
- project.projectService.createAndLoadConfiguredProject(configFileName, "Creating project referenced by : ".concat(project.projectName, " as it references project ").concat(referencedProject.sourceFile.fileName));
170853
+ project.projectService.createAndLoadConfiguredProject(configFileName, "Creating project referenced by : " + project.projectName + " as it references project " + referencedProject.sourceFile.fileName);
170741
170854
  updateProjectIfDirty(childProject);
170742
170855
  // Ensure children for this project
170743
170856
  this.ensureProjectChildren(childProject, forProjects, seenProjects);
@@ -171038,7 +171151,7 @@ var ts;
171038
171151
  for (var _b = 0, normalizedNames_1 = normalizedNames; _b < normalizedNames_1.length; _b++) {
171039
171152
  var root = normalizedNames_1[_b];
171040
171153
  if (rule.match.test(root)) {
171041
- this_2.logger.info("Excluding files based on rule ".concat(name, " matching file '").concat(root, "'"));
171154
+ this_2.logger.info("Excluding files based on rule " + name + " matching file '" + root + "'");
171042
171155
  // If the file matches, collect its types packages and exclude rules
171043
171156
  if (rule.types) {
171044
171157
  for (var _c = 0, _d = rule.types; _c < _d.length; _c++) {
@@ -171063,7 +171176,7 @@ var ts;
171063
171176
  if (typeof groupNumberOrString === "number") {
171064
171177
  if (!ts.isString(groups[groupNumberOrString])) {
171065
171178
  // Specification was wrong - exclude nothing!
171066
- _this.logger.info("Incorrect RegExp specification in safelist rule ".concat(name, " - not enough groups"));
171179
+ _this.logger.info("Incorrect RegExp specification in safelist rule " + name + " - not enough groups");
171067
171180
  // * can't appear in a filename; escape it because it's feeding into a RegExp
171068
171181
  return "\\*";
171069
171182
  }
@@ -171111,7 +171224,7 @@ var ts;
171111
171224
  var cleanedTypingName = ts.removeMinAndVersionNumbers(inferredTypingName);
171112
171225
  var typeName = this_3.legacySafelist.get(cleanedTypingName);
171113
171226
  if (typeName !== undefined) {
171114
- this_3.logger.info("Excluded '".concat(normalizedNames[i], "' because it matched ").concat(cleanedTypingName, " from the legacy safelist"));
171227
+ this_3.logger.info("Excluded '" + normalizedNames[i] + "' because it matched " + cleanedTypingName + " from the legacy safelist");
171115
171228
  excludedFiles.push(normalizedNames[i]);
171116
171229
  // *exclude* it from the project...
171117
171230
  exclude = true;
@@ -171241,8 +171354,8 @@ var ts;
171241
171354
  if (!project) {
171242
171355
  // errors are stored in the project, do not need to update the graph
171243
171356
  project = this.getHostPreferences().lazyConfiguredProjectsFromExternalProject ?
171244
- this.createConfiguredProjectWithDelayLoad(tsconfigFile, "Creating configured project in external project: ".concat(proj.projectFileName)) :
171245
- this.createLoadAndUpdateConfiguredProject(tsconfigFile, "Creating configured project in external project: ".concat(proj.projectFileName));
171357
+ this.createConfiguredProjectWithDelayLoad(tsconfigFile, "Creating configured project in external project: " + proj.projectFileName) :
171358
+ this.createLoadAndUpdateConfiguredProject(tsconfigFile, "Creating configured project in external project: " + proj.projectFileName);
171246
171359
  }
171247
171360
  if (project && !ts.contains(exisingConfigFiles, tsconfigFile)) {
171248
171361
  // keep project alive even if no documents are opened - its lifetime is bound to the lifetime of containing external project
@@ -171480,7 +171593,7 @@ var ts;
171480
171593
  return cache || (cache = new ts.Map());
171481
171594
  }
171482
171595
  function key(fromFileName, preferences) {
171483
- return "".concat(fromFileName, ",").concat(preferences.importModuleSpecifierEnding, ",").concat(preferences.importModuleSpecifierPreference);
171596
+ return fromFileName + "," + preferences.importModuleSpecifierEnding + "," + preferences.importModuleSpecifierPreference;
171484
171597
  }
171485
171598
  function createInfo(modulePaths, moduleSpecifiers, isAutoImportable) {
171486
171599
  return { modulePaths: modulePaths, moduleSpecifiers: moduleSpecifiers, isAutoImportable: isAutoImportable };
@@ -171639,10 +171752,10 @@ var ts;
171639
171752
  var verboseLogging = logger.hasLevel(server.LogLevel.verbose);
171640
171753
  var json = JSON.stringify(msg);
171641
171754
  if (verboseLogging) {
171642
- logger.info("".concat(msg.type, ":").concat(server.indent(json)));
171755
+ logger.info(msg.type + ":" + server.indent(json));
171643
171756
  }
171644
171757
  var len = byteLength(json, "utf8");
171645
- return "Content-Length: ".concat(1 + len, "\r\n\r\n").concat(json).concat(newLine);
171758
+ return "Content-Length: " + (1 + len) + "\r\n\r\n" + json + newLine;
171646
171759
  }
171647
171760
  server.formatMessage = formatMessage;
171648
171761
  /**
@@ -171707,7 +171820,7 @@ var ts;
171707
171820
  }
171708
171821
  else {
171709
171822
  ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.instant("session" /* Session */, "stepError", { seq: this.requestId, message: e.message });
171710
- this.operationHost.logError(e, "delayed processing of request ".concat(this.requestId));
171823
+ this.operationHost.logError(e, "delayed processing of request " + this.requestId);
171711
171824
  }
171712
171825
  }
171713
171826
  if (stop || !this.hasPendingWork()) {
@@ -171808,7 +171921,7 @@ var ts;
171808
171921
  function combineProjectOutputForReferences(projects, defaultProject, initialLocation, logger) {
171809
171922
  var outputs = [];
171810
171923
  combineProjectOutputWorker(projects, defaultProject, initialLocation, function (project, location, getMappedLocation) {
171811
- logger.info("Finding references to ".concat(location.fileName, " position ").concat(location.pos, " in project ").concat(project.getProjectName()));
171924
+ logger.info("Finding references to " + location.fileName + " position " + location.pos + " in project " + project.getProjectName());
171812
171925
  var _loop_8 = function (outputReferencedSymbol) {
171813
171926
  var mappedDefinitionFile = getMappedLocation(project, documentSpanLocation(outputReferencedSymbol.definition));
171814
171927
  var definition = mappedDefinitionFile === undefined ?
@@ -172493,14 +172606,14 @@ var ts;
172493
172606
  case ts.LanguageServiceMode.PartialSemantic:
172494
172607
  invalidPartialSemanticModeCommands.forEach(function (commandName) {
172495
172608
  return _this.handlers.set(commandName, function (request) {
172496
- throw new Error("Request: ".concat(request.command, " not allowed in LanguageServiceMode.PartialSemantic"));
172609
+ throw new Error("Request: " + request.command + " not allowed in LanguageServiceMode.PartialSemantic");
172497
172610
  });
172498
172611
  });
172499
172612
  break;
172500
172613
  case ts.LanguageServiceMode.Syntactic:
172501
172614
  invalidSyntacticModeCommands.forEach(function (commandName) {
172502
172615
  return _this.handlers.set(commandName, function (request) {
172503
- throw new Error("Request: ".concat(request.command, " not allowed in LanguageServiceMode.Syntactic"));
172616
+ throw new Error("Request: " + request.command + " not allowed in LanguageServiceMode.Syntactic");
172504
172617
  });
172505
172618
  });
172506
172619
  break;
@@ -172575,7 +172688,7 @@ var ts;
172575
172688
  };
172576
172689
  Session.prototype.projectsUpdatedInBackgroundEvent = function (openFiles) {
172577
172690
  var _this = this;
172578
- this.projectService.logger.info("got projects updated in background, updating diagnostics for ".concat(openFiles));
172691
+ this.projectService.logger.info("got projects updated in background, updating diagnostics for " + openFiles);
172579
172692
  if (openFiles.length) {
172580
172693
  if (!this.suppressDiagnosticEvents && !this.noGetErrOnBackgroundUpdate) {
172581
172694
  // For now only queue error checking for open files. We can change this to include non open files as well
@@ -172605,17 +172718,17 @@ var ts;
172605
172718
  var scriptInfo = project.getScriptInfoForNormalizedPath(file);
172606
172719
  if (scriptInfo) {
172607
172720
  var text = ts.getSnapshotText(scriptInfo.getSnapshot());
172608
- msg += "\n\nFile text of ".concat(fileRequest.file, ":").concat(server.indent(text), "\n");
172721
+ msg += "\n\nFile text of " + fileRequest.file + ":" + server.indent(text) + "\n";
172609
172722
  }
172610
172723
  }
172611
172724
  catch (_b) { } // eslint-disable-line no-empty
172612
172725
  }
172613
172726
  if (err.ProgramFiles) {
172614
- msg += "\n\nProgram files: ".concat(JSON.stringify(err.ProgramFiles), "\n");
172727
+ msg += "\n\nProgram files: " + JSON.stringify(err.ProgramFiles) + "\n";
172615
172728
  msg += "\n\nProjects::\n";
172616
172729
  var counter_1 = 0;
172617
172730
  var addProjectInfo = function (project) {
172618
- msg += "\nProject '".concat(project.projectName, "' (").concat(server.ProjectKind[project.projectKind], ") ").concat(counter_1, "\n");
172731
+ msg += "\nProject '" + project.projectName + "' (" + server.ProjectKind[project.projectKind] + ") " + counter_1 + "\n";
172619
172732
  msg += project.filesToString(/*writeProjectFileNames*/ true);
172620
172733
  msg += "\n-----------------------------------------------\n";
172621
172734
  counter_1++;
@@ -172630,7 +172743,7 @@ var ts;
172630
172743
  Session.prototype.send = function (msg) {
172631
172744
  if (msg.type === "event" && !this.canUseEvents) {
172632
172745
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
172633
- this.logger.info("Session does not support events: ignored event: ".concat(JSON.stringify(msg)));
172746
+ this.logger.info("Session does not support events: ignored event: " + JSON.stringify(msg));
172634
172747
  }
172635
172748
  return;
172636
172749
  }
@@ -172638,7 +172751,7 @@ var ts;
172638
172751
  };
172639
172752
  Session.prototype.writeMessage = function (msg) {
172640
172753
  var msgText = formatMessage(msg, this.logger, this.byteLength, this.host.newLine);
172641
- ts.perfLogger.logEvent("Response message size: ".concat(msgText.length));
172754
+ ts.perfLogger.logEvent("Response message size: " + msgText.length);
172642
172755
  this.host.write(msgText);
172643
172756
  };
172644
172757
  Session.prototype.event = function (body, eventName) {
@@ -172776,7 +172889,7 @@ var ts;
172776
172889
  if (!projects) {
172777
172890
  return;
172778
172891
  }
172779
- this.logger.info("cleaning ".concat(caption));
172892
+ this.logger.info("cleaning " + caption);
172780
172893
  for (var _i = 0, projects_4 = projects; _i < projects_4.length; _i++) {
172781
172894
  var p = projects_4[_i];
172782
172895
  p.getLanguageService(/*ensureSynchronized*/ false).cleanupSemanticCache();
@@ -173190,7 +173303,7 @@ var ts;
173190
173303
  var refs = references.map(function (entry) { return referenceEntryToReferencesResponseItem(_this.projectService, entry); });
173191
173304
  return {
173192
173305
  refs: refs,
173193
- symbolName: "\"".concat(args.file, "\"")
173306
+ symbolName: "\"" + args.file + "\""
173194
173307
  };
173195
173308
  };
173196
173309
  /**
@@ -173734,7 +173847,7 @@ var ts;
173734
173847
  });
173735
173848
  var badCode = args.errorCodes.find(function (c) { return !existingDiagCodes_1.includes(c); });
173736
173849
  if (badCode !== undefined) {
173737
- e.message = "BADCLIENT: Bad error code, ".concat(badCode, " not found in range ").concat(startPosition, "..").concat(endPosition, " (found: ").concat(existingDiagCodes_1.join(", "), "); could have caused this error:\n").concat(e.message);
173850
+ e.message = "BADCLIENT: Bad error code, " + badCode + " not found in range " + startPosition + ".." + endPosition + " (found: " + existingDiagCodes_1.join(", ") + "); could have caused this error:\n" + e.message;
173738
173851
  }
173739
173852
  throw e;
173740
173853
  }
@@ -174011,7 +174124,7 @@ var ts;
174011
174124
  };
174012
174125
  Session.prototype.addProtocolHandler = function (command, handler) {
174013
174126
  if (this.handlers.has(command)) {
174014
- throw new Error("Protocol handler already exists for command \"".concat(command, "\""));
174127
+ throw new Error("Protocol handler already exists for command \"" + command + "\"");
174015
174128
  }
174016
174129
  this.handlers.set(command, handler);
174017
174130
  };
@@ -174040,8 +174153,8 @@ var ts;
174040
174153
  return this.executeWithRequestId(request.seq, function () { return handler(request); });
174041
174154
  }
174042
174155
  else {
174043
- this.logger.msg("Unrecognized JSON command:".concat(server.stringifyIndented(request)), server.Msg.Err);
174044
- this.doOutput(/*info*/ undefined, server.CommandNames.Unknown, request.seq, /*success*/ false, "Unrecognized JSON command: ".concat(request.command));
174156
+ this.logger.msg("Unrecognized JSON command:" + server.stringifyIndented(request), server.Msg.Err);
174157
+ this.doOutput(/*info*/ undefined, server.CommandNames.Unknown, request.seq, /*success*/ false, "Unrecognized JSON command: " + request.command);
174045
174158
  return { responseRequired: false };
174046
174159
  }
174047
174160
  };
@@ -174052,7 +174165,7 @@ var ts;
174052
174165
  if (this.logger.hasLevel(server.LogLevel.requestTime)) {
174053
174166
  start = this.hrtime();
174054
174167
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
174055
- this.logger.info("request:".concat(server.indent(this.toStringMessage(message))));
174168
+ this.logger.info("request:" + server.indent(this.toStringMessage(message)));
174056
174169
  }
174057
174170
  }
174058
174171
  var request;
@@ -174068,10 +174181,10 @@ var ts;
174068
174181
  if (this.logger.hasLevel(server.LogLevel.requestTime)) {
174069
174182
  var elapsedTime = hrTimeToMilliseconds(this.hrtime(start)).toFixed(4);
174070
174183
  if (responseRequired) {
174071
- this.logger.perftrc("".concat(request.seq, "::").concat(request.command, ": elapsed time (in milliseconds) ").concat(elapsedTime));
174184
+ this.logger.perftrc(request.seq + "::" + request.command + ": elapsed time (in milliseconds) " + elapsedTime);
174072
174185
  }
174073
174186
  else {
174074
- this.logger.perftrc("".concat(request.seq, "::").concat(request.command, ": async elapsed time (in milliseconds) ").concat(elapsedTime));
174187
+ this.logger.perftrc(request.seq + "::" + request.command + ": async elapsed time (in milliseconds) " + elapsedTime);
174075
174188
  }
174076
174189
  }
174077
174190
  // Note: Log before writing the response, else the editor can complete its activity before the server does
@@ -175007,7 +175120,7 @@ var ts;
175007
175120
  }
175008
175121
  if (!this.canWrite())
175009
175122
  return;
175010
- s = "[".concat(server.nowString(), "] ").concat(s, "\n");
175123
+ s = "[" + server.nowString() + "] " + s + "\n";
175011
175124
  if (!this.inGroup || this.firstInGroup) {
175012
175125
  var prefix = BaseLogger.padStringRight(type + " " + this.seq.toString(), " ");
175013
175126
  s = prefix + s;
@@ -175124,12 +175237,12 @@ var ts;
175124
175237
  WorkerSession.prototype.send = function (msg) {
175125
175238
  if (msg.type === "event" && !this.canUseEvents) {
175126
175239
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
175127
- this.logger.info("Session does not support events: ignored event: ".concat(JSON.stringify(msg)));
175240
+ this.logger.info("Session does not support events: ignored event: " + JSON.stringify(msg));
175128
175241
  }
175129
175242
  return;
175130
175243
  }
175131
175244
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
175132
- this.logger.info("".concat(msg.type, ":").concat(server.indent(JSON.stringify(msg))));
175245
+ this.logger.info(msg.type + ":" + server.indent(JSON.stringify(msg)));
175133
175246
  }
175134
175247
  this.webHost.writeMessage(msg);
175135
175248
  };
@@ -176192,23 +176305,23 @@ var ts;
176192
176305
  var status = cacheKey && statusCache_1.get(cacheKey);
176193
176306
  if (status === undefined) {
176194
176307
  if (logger.hasLevel(server.LogLevel.verbose)) {
176195
- logger.info("".concat(cacheKey, " for path ").concat(path, " not found in cache..."));
176308
+ logger.info(cacheKey + " for path " + path + " not found in cache...");
176196
176309
  }
176197
176310
  try {
176198
176311
  var args = [ts.combinePaths(__dirname, "watchGuard.js"), path];
176199
176312
  if (logger.hasLevel(server.LogLevel.verbose)) {
176200
- logger.info("Starting ".concat(process.execPath, " with args:").concat(server.stringifyIndented(args)));
176313
+ logger.info("Starting " + process.execPath + " with args:" + server.stringifyIndented(args));
176201
176314
  }
176202
176315
  childProcess.execFileSync(process.execPath, args, { stdio: "ignore", env: { ELECTRON_RUN_AS_NODE: "1" } });
176203
176316
  status = true;
176204
176317
  if (logger.hasLevel(server.LogLevel.verbose)) {
176205
- logger.info("WatchGuard for path ".concat(path, " returned: OK"));
176318
+ logger.info("WatchGuard for path " + path + " returned: OK");
176206
176319
  }
176207
176320
  }
176208
176321
  catch (e) {
176209
176322
  status = false;
176210
176323
  if (logger.hasLevel(server.LogLevel.verbose)) {
176211
- logger.info("WatchGuard for path ".concat(path, " returned: ").concat(e.message));
176324
+ logger.info("WatchGuard for path " + path + " returned: " + e.message);
176212
176325
  }
176213
176326
  }
176214
176327
  if (cacheKey) {
@@ -176216,7 +176329,7 @@ var ts;
176216
176329
  }
176217
176330
  }
176218
176331
  else if (logger.hasLevel(server.LogLevel.verbose)) {
176219
- logger.info("watchDirectory for ".concat(path, " uses cached drive information."));
176332
+ logger.info("watchDirectory for " + path + " uses cached drive information.");
176220
176333
  }
176221
176334
  if (status) {
176222
176335
  // this drive is safe to use - call real 'watchDirectory'
@@ -176359,7 +176472,7 @@ var ts;
176359
176472
  return originalWatchDirectory(path, callback, recursive, options);
176360
176473
  }
176361
176474
  catch (e) {
176362
- logger.info("Exception when creating directory watcher: ".concat(e.message));
176475
+ logger.info("Exception when creating directory watcher: " + e.message);
176363
176476
  return ts.noopFileWatcher;
176364
176477
  }
176365
176478
  }
@@ -176428,7 +176541,7 @@ var ts;
176428
176541
  args.push(server.Arguments.EnableTelemetry);
176429
176542
  }
176430
176543
  if (this.logger.loggingEnabled() && this.logger.getLogFileName()) {
176431
- args.push(server.Arguments.LogFile, ts.combinePaths(ts.getDirectoryPath(ts.normalizeSlashes(this.logger.getLogFileName())), "ti-".concat(process.pid, ".log")));
176544
+ args.push(server.Arguments.LogFile, ts.combinePaths(ts.getDirectoryPath(ts.normalizeSlashes(this.logger.getLogFileName())), "ti-" + process.pid + ".log"));
176432
176545
  }
176433
176546
  if (this.typingSafeListLocation) {
176434
176547
  args.push(server.Arguments.TypingSafeListLocation, this.typingSafeListLocation);
@@ -176452,7 +176565,7 @@ var ts;
176452
176565
  var currentPort = match[2] !== undefined
176453
176566
  ? +match[2]
176454
176567
  : match[1].charAt(0) === "d" ? 5858 : 9229;
176455
- execArgv.push("--".concat(match[1], "=").concat(currentPort + 1));
176568
+ execArgv.push("--" + match[1] + "=" + (currentPort + 1));
176456
176569
  break;
176457
176570
  }
176458
176571
  }
@@ -176478,13 +176591,13 @@ var ts;
176478
176591
  var request = server.createInstallTypingsRequest(project, typeAcquisition, unresolvedImports);
176479
176592
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
176480
176593
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
176481
- this.logger.info("Scheduling throttled operation:".concat(server.stringifyIndented(request)));
176594
+ this.logger.info("Scheduling throttled operation:" + server.stringifyIndented(request));
176482
176595
  }
176483
176596
  }
176484
176597
  var operationId = project.getProjectName();
176485
176598
  var operation = function () {
176486
176599
  if (_this.logger.hasLevel(server.LogLevel.verbose)) {
176487
- _this.logger.info("Sending request:".concat(server.stringifyIndented(request)));
176600
+ _this.logger.info("Sending request:" + server.stringifyIndented(request));
176488
176601
  }
176489
176602
  _this.send(request);
176490
176603
  };
@@ -176494,7 +176607,7 @@ var ts;
176494
176607
  }
176495
176608
  else {
176496
176609
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
176497
- this.logger.info("Deferring request for: ".concat(operationId));
176610
+ this.logger.info("Deferring request for: " + operationId);
176498
176611
  }
176499
176612
  this.requestQueue.push(queuedRequest);
176500
176613
  this.requestMap.set(operationId, queuedRequest);
@@ -176502,7 +176615,7 @@ var ts;
176502
176615
  };
176503
176616
  NodeTypingsInstaller.prototype.handleMessage = function (response) {
176504
176617
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
176505
- this.logger.info("Received response:".concat(server.stringifyIndented(response)));
176618
+ this.logger.info("Received response:" + server.stringifyIndented(response));
176506
176619
  }
176507
176620
  switch (response.kind) {
176508
176621
  case server.EventTypesRegistry:
@@ -176580,7 +176693,7 @@ var ts;
176580
176693
  break;
176581
176694
  }
176582
176695
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
176583
- this.logger.info("Skipping defunct request for: ".concat(queuedRequest.operationId));
176696
+ this.logger.info("Skipping defunct request for: " + queuedRequest.operationId);
176584
176697
  }
176585
176698
  }
176586
176699
  this.projectService.updateTypingsForProject(response);
@@ -176593,7 +176706,7 @@ var ts;
176593
176706
  };
176594
176707
  NodeTypingsInstaller.prototype.scheduleRequest = function (request) {
176595
176708
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
176596
- this.logger.info("Scheduling request for: ".concat(request.operationId));
176709
+ this.logger.info("Scheduling request for: " + request.operationId);
176597
176710
  }
176598
176711
  this.activeRequestCount++;
176599
176712
  this.host.setTimeout(request.operation, NodeTypingsInstaller.requestDelayMillis);
@@ -176641,7 +176754,7 @@ var ts;
176641
176754
  if (this.canUseEvents && this.eventPort) {
176642
176755
  if (!this.eventSocket) {
176643
176756
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
176644
- this.logger.info("eventPort: event \"".concat(eventName, "\" queued, but socket not yet initialized"));
176757
+ this.logger.info("eventPort: event \"" + eventName + "\" queued, but socket not yet initialized");
176645
176758
  }
176646
176759
  (this.socketEventQueue || (this.socketEventQueue = [])).push({ body: body, eventName: eventName });
176647
176760
  return;
@@ -176685,7 +176798,7 @@ var ts;
176685
176798
  var verboseLogging = logger.hasLevel(server.LogLevel.verbose);
176686
176799
  if (verboseLogging) {
176687
176800
  var json = JSON.stringify(msg);
176688
- logger.info("".concat(msg.type, ":").concat(server.indent(json)));
176801
+ logger.info(msg.type + ":" + server.indent(json));
176689
176802
  }
176690
176803
  process.send(msg);
176691
176804
  };
@@ -176747,7 +176860,7 @@ var ts;
176747
176860
  return ts.combinePaths(ts.combinePaths(cacheLocation, "typescript"), ts.versionMajorMinor);
176748
176861
  }
176749
176862
  default:
176750
- return ts.Debug.fail("unsupported platform '".concat(process.platform, "'"));
176863
+ return ts.Debug.fail("unsupported platform '" + process.platform + "'");
176751
176864
  }
176752
176865
  }
176753
176866
  function getNonWindowsCacheLocation(platformIsDarwin) {
@@ -176757,7 +176870,7 @@ var ts;
176757
176870
  var usersDir = platformIsDarwin ? "Users" : "home";
176758
176871
  var homePath = (os.homedir && os.homedir()) ||
176759
176872
  process.env.HOME ||
176760
- ((process.env.LOGNAME || process.env.USER) && "/".concat(usersDir, "/").concat(process.env.LOGNAME || process.env.USER)) ||
176873
+ ((process.env.LOGNAME || process.env.USER) && "/" + usersDir + "/" + (process.env.LOGNAME || process.env.USER)) ||
176761
176874
  os.tmpdir();
176762
176875
  var cacheFolder = platformIsDarwin
176763
176876
  ? "Library/Caches"
@@ -176915,10 +177028,10 @@ var ts;
176915
177028
  var args = _a.args, logger = _a.logger, cancellationToken = _a.cancellationToken, serverMode = _a.serverMode, unknownServerMode = _a.unknownServerMode, startServer = _a.startSession;
176916
177029
  var syntaxOnly = server.hasArgument("--syntaxOnly");
176917
177030
  logger.info("Starting TS Server");
176918
- logger.info("Version: ".concat(ts.version));
176919
- logger.info("Arguments: ".concat(args.join(" ")));
176920
- logger.info("Platform: ".concat(platform, " NodeVersion: ").concat(ts.getNodeMajorVersion(), " CaseSensitive: ").concat(ts.sys.useCaseSensitiveFileNames));
176921
- logger.info("ServerMode: ".concat(serverMode, " syntaxOnly: ").concat(syntaxOnly, " hasUnknownServerMode: ").concat(unknownServerMode));
177031
+ logger.info("Version: " + ts.version);
177032
+ logger.info("Arguments: " + args.join(" "));
177033
+ logger.info("Platform: " + platform + " NodeVersion: " + ts.getNodeMajorVersion() + " CaseSensitive: " + ts.sys.useCaseSensitiveFileNames);
177034
+ logger.info("ServerMode: " + serverMode + " syntaxOnly: " + syntaxOnly + " hasUnknownServerMode: " + unknownServerMode);
176922
177035
  ts.setStackTraceLimit();
176923
177036
  if (ts.Debug.isDebugging) {
176924
177037
  ts.Debug.enableDebugInfo();