typescript 4.5.0-dev.20211101 → 4.5.4

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 || from);
25
+ return to.concat(ar || Array.prototype.slice.call(from));
26
26
  };
27
27
  var __assign = (this && this.__assign) || function () {
28
28
  __assign = Object.assign || function(t) {
@@ -100,7 +100,7 @@ var ts;
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 = ts.versionMajorMinor + ".0-dev.20211101";
103
+ ts.version = "4.5.4";
104
104
  /* @internal */
105
105
  var Comparison;
106
106
  (function (Comparison) {
@@ -141,7 +141,7 @@ var ts;
141
141
  var constructor = (_a = NativeCollections[nativeFactory]()) !== null && _a !== void 0 ? _a : ts.ShimCollections === null || ts.ShimCollections === void 0 ? void 0 : ts.ShimCollections[shimFactory](ts.getIterator);
142
142
  if (constructor)
143
143
  return constructor;
144
- throw new Error("TypeScript requires an environment that provides a compatible native " + name + " implementation.");
144
+ throw new Error("TypeScript requires an environment that provides a compatible native ".concat(name, " implementation."));
145
145
  }
146
146
  })(ts || (ts = {}));
147
147
  /* @internal */
@@ -1504,7 +1504,7 @@ var ts;
1504
1504
  function cast(value, test) {
1505
1505
  if (value !== undefined && test(value))
1506
1506
  return value;
1507
- return ts.Debug.fail("Invalid cast. The supplied value " + value + " did not pass the test '" + ts.Debug.getFunctionName(test) + "'.");
1507
+ return ts.Debug.fail("Invalid cast. The supplied value ".concat(value, " did not pass the test '").concat(ts.Debug.getFunctionName(test), "'."));
1508
1508
  }
1509
1509
  ts.cast = cast;
1510
1510
  /** Does nothing. */
@@ -1595,7 +1595,7 @@ var ts;
1595
1595
  function memoizeOne(callback) {
1596
1596
  var map = new ts.Map();
1597
1597
  return function (arg) {
1598
- var key = typeof arg + ":" + arg;
1598
+ var key = "".concat(typeof arg, ":").concat(arg);
1599
1599
  var value = map.get(key);
1600
1600
  if (value === undefined && !map.has(key)) {
1601
1601
  value = callback(arg);
@@ -2045,7 +2045,7 @@ var ts;
2045
2045
  ts.createGetCanonicalFileName = createGetCanonicalFileName;
2046
2046
  function patternText(_a) {
2047
2047
  var prefix = _a.prefix, suffix = _a.suffix;
2048
- return prefix + "*" + suffix;
2048
+ return "".concat(prefix, "*").concat(suffix);
2049
2049
  }
2050
2050
  ts.patternText = patternText;
2051
2051
  /**
@@ -2358,7 +2358,7 @@ var ts;
2358
2358
  }
2359
2359
  function fail(message, stackCrawlMark) {
2360
2360
  debugger;
2361
- var e = new Error(message ? "Debug Failure. " + message : "Debug Failure.");
2361
+ var e = new Error(message ? "Debug Failure. ".concat(message) : "Debug Failure.");
2362
2362
  if (Error.captureStackTrace) {
2363
2363
  Error.captureStackTrace(e, stackCrawlMark || fail);
2364
2364
  }
@@ -2366,12 +2366,12 @@ var ts;
2366
2366
  }
2367
2367
  Debug.fail = fail;
2368
2368
  function failBadSyntaxKind(node, message, stackCrawlMark) {
2369
- return fail((message || "Unexpected node.") + "\r\nNode " + formatSyntaxKind(node.kind) + " was unexpected.", stackCrawlMark || failBadSyntaxKind);
2369
+ return fail("".concat(message || "Unexpected node.", "\r\nNode ").concat(formatSyntaxKind(node.kind), " was unexpected."), stackCrawlMark || failBadSyntaxKind);
2370
2370
  }
2371
2371
  Debug.failBadSyntaxKind = failBadSyntaxKind;
2372
2372
  function assert(expression, message, verboseDebugInfo, stackCrawlMark) {
2373
2373
  if (!expression) {
2374
- message = message ? "False expression: " + message : "False expression.";
2374
+ message = message ? "False expression: ".concat(message) : "False expression.";
2375
2375
  if (verboseDebugInfo) {
2376
2376
  message += "\r\nVerbose Debug Information: " + (typeof verboseDebugInfo === "string" ? verboseDebugInfo : verboseDebugInfo());
2377
2377
  }
@@ -2381,26 +2381,26 @@ var ts;
2381
2381
  Debug.assert = assert;
2382
2382
  function assertEqual(a, b, msg, msg2, stackCrawlMark) {
2383
2383
  if (a !== b) {
2384
- var message = msg ? msg2 ? msg + " " + msg2 : msg : "";
2385
- fail("Expected " + a + " === " + b + ". " + message, stackCrawlMark || assertEqual);
2384
+ var message = msg ? msg2 ? "".concat(msg, " ").concat(msg2) : msg : "";
2385
+ fail("Expected ".concat(a, " === ").concat(b, ". ").concat(message), stackCrawlMark || assertEqual);
2386
2386
  }
2387
2387
  }
2388
2388
  Debug.assertEqual = assertEqual;
2389
2389
  function assertLessThan(a, b, msg, stackCrawlMark) {
2390
2390
  if (a >= b) {
2391
- fail("Expected " + a + " < " + b + ". " + (msg || ""), stackCrawlMark || assertLessThan);
2391
+ fail("Expected ".concat(a, " < ").concat(b, ". ").concat(msg || ""), stackCrawlMark || assertLessThan);
2392
2392
  }
2393
2393
  }
2394
2394
  Debug.assertLessThan = assertLessThan;
2395
2395
  function assertLessThanOrEqual(a, b, stackCrawlMark) {
2396
2396
  if (a > b) {
2397
- fail("Expected " + a + " <= " + b, stackCrawlMark || assertLessThanOrEqual);
2397
+ fail("Expected ".concat(a, " <= ").concat(b), stackCrawlMark || assertLessThanOrEqual);
2398
2398
  }
2399
2399
  }
2400
2400
  Debug.assertLessThanOrEqual = assertLessThanOrEqual;
2401
2401
  function assertGreaterThanOrEqual(a, b, stackCrawlMark) {
2402
2402
  if (a < b) {
2403
- fail("Expected " + a + " >= " + b, stackCrawlMark || assertGreaterThanOrEqual);
2403
+ fail("Expected ".concat(a, " >= ").concat(b), stackCrawlMark || assertGreaterThanOrEqual);
2404
2404
  }
2405
2405
  }
2406
2406
  Debug.assertGreaterThanOrEqual = assertGreaterThanOrEqual;
@@ -2441,42 +2441,42 @@ var ts;
2441
2441
  function assertNever(member, message, stackCrawlMark) {
2442
2442
  if (message === void 0) { message = "Illegal value:"; }
2443
2443
  var detail = typeof member === "object" && ts.hasProperty(member, "kind") && ts.hasProperty(member, "pos") && formatSyntaxKind ? "SyntaxKind: " + formatSyntaxKind(member.kind) : JSON.stringify(member);
2444
- return fail(message + " " + detail, stackCrawlMark || assertNever);
2444
+ return fail("".concat(message, " ").concat(detail), stackCrawlMark || assertNever);
2445
2445
  }
2446
2446
  Debug.assertNever = assertNever;
2447
2447
  function assertEachNode(nodes, test, message, stackCrawlMark) {
2448
2448
  if (shouldAssertFunction(1 /* Normal */, "assertEachNode")) {
2449
- assert(test === undefined || ts.every(nodes, test), message || "Unexpected node.", function () { return "Node array did not pass test '" + getFunctionName(test) + "'."; }, stackCrawlMark || assertEachNode);
2449
+ assert(test === undefined || ts.every(nodes, test), message || "Unexpected node.", function () { return "Node array did not pass test '".concat(getFunctionName(test), "'."); }, stackCrawlMark || assertEachNode);
2450
2450
  }
2451
2451
  }
2452
2452
  Debug.assertEachNode = assertEachNode;
2453
2453
  function assertNode(node, test, message, stackCrawlMark) {
2454
2454
  if (shouldAssertFunction(1 /* Normal */, "assertNode")) {
2455
- 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);
2455
+ 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);
2456
2456
  }
2457
2457
  }
2458
2458
  Debug.assertNode = assertNode;
2459
2459
  function assertNotNode(node, test, message, stackCrawlMark) {
2460
2460
  if (shouldAssertFunction(1 /* Normal */, "assertNotNode")) {
2461
- 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);
2461
+ 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);
2462
2462
  }
2463
2463
  }
2464
2464
  Debug.assertNotNode = assertNotNode;
2465
2465
  function assertOptionalNode(node, test, message, stackCrawlMark) {
2466
2466
  if (shouldAssertFunction(1 /* Normal */, "assertOptionalNode")) {
2467
- 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);
2467
+ 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);
2468
2468
  }
2469
2469
  }
2470
2470
  Debug.assertOptionalNode = assertOptionalNode;
2471
2471
  function assertOptionalToken(node, kind, message, stackCrawlMark) {
2472
2472
  if (shouldAssertFunction(1 /* Normal */, "assertOptionalToken")) {
2473
- 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);
2473
+ 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);
2474
2474
  }
2475
2475
  }
2476
2476
  Debug.assertOptionalToken = assertOptionalToken;
2477
2477
  function assertMissingNode(node, message, stackCrawlMark) {
2478
2478
  if (shouldAssertFunction(1 /* Normal */, "assertMissingNode")) {
2479
- assert(node === undefined, message || "Unexpected node.", function () { return "Node " + formatSyntaxKind(node.kind) + " was unexpected'."; }, stackCrawlMark || assertMissingNode);
2479
+ assert(node === undefined, message || "Unexpected node.", function () { return "Node ".concat(formatSyntaxKind(node.kind), " was unexpected'."); }, stackCrawlMark || assertMissingNode);
2480
2480
  }
2481
2481
  }
2482
2482
  Debug.assertMissingNode = assertMissingNode;
@@ -2497,7 +2497,7 @@ var ts;
2497
2497
  }
2498
2498
  Debug.getFunctionName = getFunctionName;
2499
2499
  function formatSymbol(symbol) {
2500
- return "{ name: " + ts.unescapeLeadingUnderscores(symbol.escapedName) + "; flags: " + formatSymbolFlags(symbol.flags) + "; declarations: " + ts.map(symbol.declarations, function (node) { return formatSyntaxKind(node.kind); }) + " }";
2500
+ return "{ name: ".concat(ts.unescapeLeadingUnderscores(symbol.escapedName), "; flags: ").concat(formatSymbolFlags(symbol.flags), "; declarations: ").concat(ts.map(symbol.declarations, function (node) { return formatSyntaxKind(node.kind); }), " }");
2501
2501
  }
2502
2502
  Debug.formatSymbol = formatSymbol;
2503
2503
  /**
@@ -2518,7 +2518,7 @@ var ts;
2518
2518
  break;
2519
2519
  }
2520
2520
  if (enumValue !== 0 && enumValue & value) {
2521
- result = "" + result + (result ? "|" : "") + enumName;
2521
+ result = "".concat(result).concat(result ? "|" : "").concat(enumName);
2522
2522
  remainingFlags &= ~enumValue;
2523
2523
  }
2524
2524
  }
@@ -2628,7 +2628,7 @@ var ts;
2628
2628
  this.flags & 1 /* Unreachable */ ? "FlowUnreachable" :
2629
2629
  "UnknownFlow";
2630
2630
  var remainingFlags = this.flags & ~(2048 /* Referenced */ - 1);
2631
- return "" + flowHeader + (remainingFlags ? " (" + formatFlowFlags(remainingFlags) + ")" : "");
2631
+ return "".concat(flowHeader).concat(remainingFlags ? " (".concat(formatFlowFlags(remainingFlags), ")") : "");
2632
2632
  }
2633
2633
  },
2634
2634
  __debugFlowFlags: { get: function () { return formatEnum(this.flags, ts.FlowFlags, /*isFlags*/ true); } },
@@ -2667,7 +2667,7 @@ var ts;
2667
2667
  // We don't care, this is debug code that's only enabled with a debugger attached -
2668
2668
  // we're just taking note of it for anyone checking regex performance in the future.
2669
2669
  defaultValue = String(defaultValue).replace(/(?:,[\s\w\d_]+:[^,]+)+\]$/, "]");
2670
- return "NodeArray " + defaultValue;
2670
+ return "NodeArray ".concat(defaultValue);
2671
2671
  }
2672
2672
  }
2673
2673
  });
@@ -2722,7 +2722,7 @@ var ts;
2722
2722
  var symbolHeader = this.flags & 33554432 /* Transient */ ? "TransientSymbol" :
2723
2723
  "Symbol";
2724
2724
  var remainingSymbolFlags = this.flags & ~33554432 /* Transient */;
2725
- return symbolHeader + " '" + ts.symbolName(this) + "'" + (remainingSymbolFlags ? " (" + formatSymbolFlags(remainingSymbolFlags) + ")" : "");
2725
+ return "".concat(symbolHeader, " '").concat(ts.symbolName(this), "'").concat(remainingSymbolFlags ? " (".concat(formatSymbolFlags(remainingSymbolFlags), ")") : "");
2726
2726
  }
2727
2727
  },
2728
2728
  __debugFlags: { get: function () { return formatSymbolFlags(this.flags); } }
@@ -2732,11 +2732,11 @@ var ts;
2732
2732
  __tsDebuggerDisplay: {
2733
2733
  value: function () {
2734
2734
  var typeHeader = this.flags & 98304 /* Nullable */ ? "NullableType" :
2735
- this.flags & 384 /* StringOrNumberLiteral */ ? "LiteralType " + JSON.stringify(this.value) :
2736
- this.flags & 2048 /* BigIntLiteral */ ? "LiteralType " + (this.value.negative ? "-" : "") + this.value.base10Value + "n" :
2735
+ this.flags & 384 /* StringOrNumberLiteral */ ? "LiteralType ".concat(JSON.stringify(this.value)) :
2736
+ this.flags & 2048 /* BigIntLiteral */ ? "LiteralType ".concat(this.value.negative ? "-" : "").concat(this.value.base10Value, "n") :
2737
2737
  this.flags & 8192 /* UniqueESSymbol */ ? "UniqueESSymbolType" :
2738
2738
  this.flags & 32 /* Enum */ ? "EnumType" :
2739
- this.flags & 67359327 /* Intrinsic */ ? "IntrinsicType " + this.intrinsicName :
2739
+ this.flags & 67359327 /* Intrinsic */ ? "IntrinsicType ".concat(this.intrinsicName) :
2740
2740
  this.flags & 1048576 /* Union */ ? "UnionType" :
2741
2741
  this.flags & 2097152 /* Intersection */ ? "IntersectionType" :
2742
2742
  this.flags & 4194304 /* Index */ ? "IndexType" :
@@ -2755,7 +2755,7 @@ var ts;
2755
2755
  "ObjectType" :
2756
2756
  "Type";
2757
2757
  var remainingObjectFlags = this.flags & 524288 /* Object */ ? this.objectFlags & ~1343 /* ObjectTypeKindMask */ : 0;
2758
- return "" + typeHeader + (this.symbol ? " '" + ts.symbolName(this.symbol) + "'" : "") + (remainingObjectFlags ? " (" + formatObjectFlags(remainingObjectFlags) + ")" : "");
2758
+ return "".concat(typeHeader).concat(this.symbol ? " '".concat(ts.symbolName(this.symbol), "'") : "").concat(remainingObjectFlags ? " (".concat(formatObjectFlags(remainingObjectFlags), ")") : "");
2759
2759
  }
2760
2760
  },
2761
2761
  __debugFlags: { get: function () { return formatTypeFlags(this.flags); } },
@@ -2791,11 +2791,11 @@ var ts;
2791
2791
  __tsDebuggerDisplay: {
2792
2792
  value: function () {
2793
2793
  var nodeHeader = ts.isGeneratedIdentifier(this) ? "GeneratedIdentifier" :
2794
- ts.isIdentifier(this) ? "Identifier '" + ts.idText(this) + "'" :
2795
- ts.isPrivateIdentifier(this) ? "PrivateIdentifier '" + ts.idText(this) + "'" :
2796
- ts.isStringLiteral(this) ? "StringLiteral " + JSON.stringify(this.text.length < 10 ? this.text : this.text.slice(10) + "...") :
2797
- ts.isNumericLiteral(this) ? "NumericLiteral " + this.text :
2798
- ts.isBigIntLiteral(this) ? "BigIntLiteral " + this.text + "n" :
2794
+ ts.isIdentifier(this) ? "Identifier '".concat(ts.idText(this), "'") :
2795
+ ts.isPrivateIdentifier(this) ? "PrivateIdentifier '".concat(ts.idText(this), "'") :
2796
+ ts.isStringLiteral(this) ? "StringLiteral ".concat(JSON.stringify(this.text.length < 10 ? this.text : this.text.slice(10) + "...")) :
2797
+ ts.isNumericLiteral(this) ? "NumericLiteral ".concat(this.text) :
2798
+ ts.isBigIntLiteral(this) ? "BigIntLiteral ".concat(this.text, "n") :
2799
2799
  ts.isTypeParameterDeclaration(this) ? "TypeParameterDeclaration" :
2800
2800
  ts.isParameter(this) ? "ParameterDeclaration" :
2801
2801
  ts.isConstructorDeclaration(this) ? "ConstructorDeclaration" :
@@ -2827,7 +2827,7 @@ var ts;
2827
2827
  ts.isNamedTupleMember(this) ? "NamedTupleMember" :
2828
2828
  ts.isImportTypeNode(this) ? "ImportTypeNode" :
2829
2829
  formatSyntaxKind(this.kind);
2830
- return "" + nodeHeader + (this.flags ? " (" + formatNodeFlags(this.flags) + ")" : "");
2830
+ return "".concat(nodeHeader).concat(this.flags ? " (".concat(formatNodeFlags(this.flags), ")") : "");
2831
2831
  }
2832
2832
  },
2833
2833
  __debugKind: { get: function () { return formatSyntaxKind(this.kind); } },
@@ -2874,10 +2874,10 @@ var ts;
2874
2874
  Debug.enableDebugInfo = enableDebugInfo;
2875
2875
  function formatDeprecationMessage(name, error, errorAfter, since, message) {
2876
2876
  var deprecationMessage = error ? "DeprecationError: " : "DeprecationWarning: ";
2877
- deprecationMessage += "'" + name + "' ";
2878
- deprecationMessage += since ? "has been deprecated since v" + since : "is deprecated";
2879
- deprecationMessage += error ? " and can no longer be used." : errorAfter ? " and will no longer be usable after v" + errorAfter + "." : ".";
2880
- deprecationMessage += message ? " " + ts.formatStringFromArgs(message, [name], 0) : "";
2877
+ deprecationMessage += "'".concat(name, "' ");
2878
+ deprecationMessage += since ? "has been deprecated since v".concat(since) : "is deprecated";
2879
+ deprecationMessage += error ? " and can no longer be used." : errorAfter ? " and will no longer be usable after v".concat(errorAfter, ".") : ".";
2880
+ deprecationMessage += message ? " ".concat(ts.formatStringFromArgs(message, [name], 0)) : "";
2881
2881
  return deprecationMessage;
2882
2882
  }
2883
2883
  function createErrorDeprecation(name, errorAfter, since, message) {
@@ -3008,11 +3008,11 @@ var ts;
3008
3008
  }
3009
3009
  };
3010
3010
  Version.prototype.toString = function () {
3011
- var result = this.major + "." + this.minor + "." + this.patch;
3011
+ var result = "".concat(this.major, ".").concat(this.minor, ".").concat(this.patch);
3012
3012
  if (ts.some(this.prerelease))
3013
- result += "-" + this.prerelease.join(".");
3013
+ result += "-".concat(this.prerelease.join("."));
3014
3014
  if (ts.some(this.build))
3015
- result += "+" + this.build.join(".");
3015
+ result += "+".concat(this.build.join("."));
3016
3016
  return result;
3017
3017
  };
3018
3018
  Version.zero = new Version(0, 0, 0);
@@ -3279,7 +3279,7 @@ var ts;
3279
3279
  return ts.map(comparators, formatComparator).join(" ");
3280
3280
  }
3281
3281
  function formatComparator(comparator) {
3282
- return "" + comparator.operator + comparator.operand;
3282
+ return "".concat(comparator.operator).concat(comparator.operand);
3283
3283
  }
3284
3284
  })(ts || (ts = {}));
3285
3285
  /*@internal*/
@@ -3577,7 +3577,7 @@ var ts;
3577
3577
  fs = require("fs");
3578
3578
  }
3579
3579
  catch (e) {
3580
- throw new Error("tracing requires having fs\n(original error: " + (e.message || e) + ")");
3580
+ throw new Error("tracing requires having fs\n(original error: ".concat(e.message || e, ")"));
3581
3581
  }
3582
3582
  }
3583
3583
  mode = tracingMode;
@@ -3589,11 +3589,11 @@ var ts;
3589
3589
  if (!fs.existsSync(traceDir)) {
3590
3590
  fs.mkdirSync(traceDir, { recursive: true });
3591
3591
  }
3592
- var countPart = mode === "build" ? "." + process.pid + "-" + ++traceCount
3593
- : mode === "server" ? "." + process.pid
3592
+ var countPart = mode === "build" ? ".".concat(process.pid, "-").concat(++traceCount)
3593
+ : mode === "server" ? ".".concat(process.pid)
3594
3594
  : "";
3595
- var tracePath = ts.combinePaths(traceDir, "trace" + countPart + ".json");
3596
- var typesPath = ts.combinePaths(traceDir, "types" + countPart + ".json");
3595
+ var tracePath = ts.combinePaths(traceDir, "trace".concat(countPart, ".json"));
3596
+ var typesPath = ts.combinePaths(traceDir, "types".concat(countPart, ".json"));
3597
3597
  legend.push({
3598
3598
  configFilePath: configFilePath,
3599
3599
  tracePath: tracePath,
@@ -3683,7 +3683,7 @@ var ts;
3683
3683
  }
3684
3684
  // test if [time,endTime) straddles a sampling point
3685
3685
  else if (sampleInterval - (time % sampleInterval) <= endTime - time) {
3686
- writeEvent("X", phase, name, args, "\"dur\":" + (endTime - time), time);
3686
+ writeEvent("X", phase, name, args, "\"dur\":".concat(endTime - time), time);
3687
3687
  }
3688
3688
  }
3689
3689
  function writeEvent(eventType, phase, name, args, extras, time) {
@@ -3692,11 +3692,11 @@ var ts;
3692
3692
  if (mode === "server" && phase === "checkTypes" /* CheckTypes */)
3693
3693
  return;
3694
3694
  ts.performance.mark("beginTracing");
3695
- fs.writeSync(traceFd, ",\n{\"pid\":1,\"tid\":1,\"ph\":\"" + eventType + "\",\"cat\":\"" + phase + "\",\"ts\":" + time + ",\"name\":\"" + name + "\"");
3695
+ fs.writeSync(traceFd, ",\n{\"pid\":1,\"tid\":1,\"ph\":\"".concat(eventType, "\",\"cat\":\"").concat(phase, "\",\"ts\":").concat(time, ",\"name\":\"").concat(name, "\""));
3696
3696
  if (extras)
3697
- fs.writeSync(traceFd, "," + extras);
3697
+ fs.writeSync(traceFd, ",".concat(extras));
3698
3698
  if (args)
3699
- fs.writeSync(traceFd, ",\"args\":" + JSON.stringify(args));
3699
+ fs.writeSync(traceFd, ",\"args\":".concat(JSON.stringify(args)));
3700
3700
  fs.writeSync(traceFd, "}");
3701
3701
  ts.performance.mark("endTracing");
3702
3702
  ts.performance.measure("Tracing", "beginTracing", "endTracing");
@@ -4873,8 +4873,6 @@ var ts;
4873
4873
  // 'Narrowable' types are types where narrowing actually narrows.
4874
4874
  // This *should* be every type other than null, undefined, void, and never
4875
4875
  TypeFlags[TypeFlags["Narrowable"] = 536624127] = "Narrowable";
4876
- /* @internal */
4877
- TypeFlags[TypeFlags["NotPrimitiveUnion"] = 468598819] = "NotPrimitiveUnion";
4878
4876
  // The following flags are aggregated during union and intersection type construction
4879
4877
  /* @internal */
4880
4878
  TypeFlags[TypeFlags["IncludesMask"] = 205258751] = "IncludesMask";
@@ -4887,6 +4885,10 @@ var ts;
4887
4885
  TypeFlags[TypeFlags["IncludesWildcard"] = 8388608] = "IncludesWildcard";
4888
4886
  /* @internal */
4889
4887
  TypeFlags[TypeFlags["IncludesEmptyObject"] = 16777216] = "IncludesEmptyObject";
4888
+ /* @internal */
4889
+ TypeFlags[TypeFlags["IncludesInstantiable"] = 33554432] = "IncludesInstantiable";
4890
+ /* @internal */
4891
+ TypeFlags[TypeFlags["NotPrimitiveUnion"] = 36323363] = "NotPrimitiveUnion";
4890
4892
  })(TypeFlags = ts.TypeFlags || (ts.TypeFlags = {}));
4891
4893
  // Types included in TypeFlags.ObjectFlagsType have an objectFlags property. Some ObjectFlags
4892
4894
  // are specific to certain types and reuse the same bit position. Those ObjectFlags require a check
@@ -6501,7 +6503,7 @@ var ts;
6501
6503
  pollingChunkSize = getCustomPollingBasedLevels("TSC_WATCH_POLLINGCHUNKSIZE", defaultChunkLevels) || pollingChunkSize;
6502
6504
  ts.unchangedPollThresholds = getCustomPollingBasedLevels("TSC_WATCH_UNCHANGEDPOLLTHRESHOLDS", defaultChunkLevels) || ts.unchangedPollThresholds;
6503
6505
  function getLevel(envVar, level) {
6504
- return system.getEnvironmentVariable(envVar + "_" + level.toUpperCase());
6506
+ return system.getEnvironmentVariable("".concat(envVar, "_").concat(level.toUpperCase()));
6505
6507
  }
6506
6508
  function getCustomLevels(baseVariable) {
6507
6509
  var customLevels;
@@ -6966,7 +6968,7 @@ var ts;
6966
6968
  }
6967
6969
  function onTimerToUpdateChildWatches() {
6968
6970
  timerToUpdateChildWatches = undefined;
6969
- ts.sysLog("sysLog:: onTimerToUpdateChildWatches:: " + cacheToUpdateChildWatches.size);
6971
+ ts.sysLog("sysLog:: onTimerToUpdateChildWatches:: ".concat(cacheToUpdateChildWatches.size));
6970
6972
  var start = ts.timestamp();
6971
6973
  var invokeMap = new ts.Map();
6972
6974
  while (!timerToUpdateChildWatches && cacheToUpdateChildWatches.size) {
@@ -6979,7 +6981,7 @@ var ts;
6979
6981
  var hasChanges = updateChildWatches(dirName, dirPath, options);
6980
6982
  invokeCallbacks(dirPath, invokeMap, hasChanges ? undefined : fileNames);
6981
6983
  }
6982
- ts.sysLog("sysLog:: invokingWatchers:: Elapsed:: " + (ts.timestamp() - start) + "ms:: " + cacheToUpdateChildWatches.size);
6984
+ ts.sysLog("sysLog:: invokingWatchers:: Elapsed:: ".concat(ts.timestamp() - start, "ms:: ").concat(cacheToUpdateChildWatches.size));
6983
6985
  callbackCache.forEach(function (callbacks, rootDirName) {
6984
6986
  var existing = invokeMap.get(rootDirName);
6985
6987
  if (existing) {
@@ -6995,7 +6997,7 @@ var ts;
6995
6997
  }
6996
6998
  });
6997
6999
  var elapsed = ts.timestamp() - start;
6998
- ts.sysLog("sysLog:: Elapsed:: " + elapsed + "ms:: onTimerToUpdateChildWatches:: " + cacheToUpdateChildWatches.size + " " + timerToUpdateChildWatches);
7000
+ ts.sysLog("sysLog:: Elapsed:: ".concat(elapsed, "ms:: onTimerToUpdateChildWatches:: ").concat(cacheToUpdateChildWatches.size, " ").concat(timerToUpdateChildWatches));
6999
7001
  }
7000
7002
  function removeChildWatches(parentWatcher) {
7001
7003
  if (!parentWatcher)
@@ -7455,7 +7457,7 @@ var ts;
7455
7457
  var remappedPaths = new ts.Map();
7456
7458
  var normalizedDir = ts.normalizeSlashes(__dirname);
7457
7459
  // Windows rooted dir names need an extra `/` prepended to be valid file:/// urls
7458
- var fileUrlRoot = "file://" + (ts.getRootLength(normalizedDir) === 1 ? "" : "/") + normalizedDir;
7460
+ var fileUrlRoot = "file://".concat(ts.getRootLength(normalizedDir) === 1 ? "" : "/").concat(normalizedDir);
7459
7461
  for (var _i = 0, _a = profile.nodes; _i < _a.length; _i++) {
7460
7462
  var node = _a[_i];
7461
7463
  if (node.callFrame.url) {
@@ -7464,7 +7466,7 @@ var ts;
7464
7466
  node.callFrame.url = ts.getRelativePathToDirectoryOrUrl(fileUrlRoot, url, fileUrlRoot, ts.createGetCanonicalFileName(useCaseSensitiveFileNames), /*isAbsolutePathAnUrl*/ true);
7465
7467
  }
7466
7468
  else if (!nativePattern.test(url)) {
7467
- node.callFrame.url = (remappedPaths.has(url) ? remappedPaths : remappedPaths.set(url, "external" + externalFileCounter + ".js")).get(url);
7469
+ node.callFrame.url = (remappedPaths.has(url) ? remappedPaths : remappedPaths.set(url, "external".concat(externalFileCounter, ".js"))).get(url);
7468
7470
  externalFileCounter++;
7469
7471
  }
7470
7472
  }
@@ -7480,7 +7482,7 @@ var ts;
7480
7482
  if (!err) {
7481
7483
  try {
7482
7484
  if ((_b = statSync(profilePath)) === null || _b === void 0 ? void 0 : _b.isDirectory()) {
7483
- profilePath = _path.join(profilePath, (new Date()).toISOString().replace(/:/g, "-") + "+P" + process.pid + ".cpuprofile");
7485
+ profilePath = _path.join(profilePath, "".concat((new Date()).toISOString().replace(/:/g, "-"), "+P").concat(process.pid, ".cpuprofile"));
7484
7486
  }
7485
7487
  }
7486
7488
  catch (_c) {
@@ -7582,7 +7584,7 @@ var ts;
7582
7584
  * @param createWatcher
7583
7585
  */
7584
7586
  function invokeCallbackAndUpdateWatcher(createWatcher) {
7585
- ts.sysLog("sysLog:: " + fileOrDirectory + ":: Changing watcher to " + (createWatcher === watchPresentFileSystemEntry ? "Present" : "Missing") + "FileSystemEntryWatcher");
7587
+ ts.sysLog("sysLog:: ".concat(fileOrDirectory, ":: Changing watcher to ").concat(createWatcher === watchPresentFileSystemEntry ? "Present" : "Missing", "FileSystemEntryWatcher"));
7586
7588
  // Call the callback for current directory
7587
7589
  callback("rename", "");
7588
7590
  // If watcher is not closed, update it
@@ -7607,7 +7609,7 @@ var ts;
7607
7609
  }
7608
7610
  }
7609
7611
  if (hitSystemWatcherLimit) {
7610
- ts.sysLog("sysLog:: " + fileOrDirectory + ":: Defaulting to fsWatchFile");
7612
+ ts.sysLog("sysLog:: ".concat(fileOrDirectory, ":: Defaulting to fsWatchFile"));
7611
7613
  return watchPresentFileSystemEntryWithFsWatchFile();
7612
7614
  }
7613
7615
  try {
@@ -7623,7 +7625,7 @@ var ts;
7623
7625
  // 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
7624
7626
  // so instead of throwing error, use fs.watchFile
7625
7627
  hitSystemWatcherLimit || (hitSystemWatcherLimit = e.code === "ENOSPC");
7626
- ts.sysLog("sysLog:: " + fileOrDirectory + ":: Changing to fsWatchFile");
7628
+ ts.sysLog("sysLog:: ".concat(fileOrDirectory, ":: Changing to fsWatchFile"));
7627
7629
  return watchPresentFileSystemEntryWithFsWatchFile();
7628
7630
  }
7629
7631
  }
@@ -7761,7 +7763,7 @@ var ts;
7761
7763
  }
7762
7764
  }
7763
7765
  function readDirectory(path, extensions, excludes, includes, depth) {
7764
- return ts.matchFiles(path, extensions, excludes, includes, useCaseSensitiveFileNames, process.cwd(), depth, getAccessibleFileSystemEntries, realpath, directoryExists);
7766
+ return ts.matchFiles(path, extensions, excludes, includes, useCaseSensitiveFileNames, process.cwd(), depth, getAccessibleFileSystemEntries, realpath);
7765
7767
  }
7766
7768
  function fileSystemEntryExists(path, entryKind) {
7767
7769
  // Since the error thrown by fs.statSync isn't used, we can avoid collecting a stack trace to improve
@@ -9925,7 +9927,7 @@ var ts;
9925
9927
  line = line < 0 ? 0 : line >= lineStarts.length ? lineStarts.length - 1 : line;
9926
9928
  }
9927
9929
  else {
9928
- ts.Debug.fail("Bad line number. Line: " + line + ", lineStarts.length: " + lineStarts.length + " , line map is correct? " + (debugText !== undefined ? ts.arraysEqual(lineStarts, computeLineStarts(debugText)) : "unknown"));
9930
+ 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"));
9929
9931
  }
9930
9932
  }
9931
9933
  var res = lineStarts[line] + character;
@@ -12805,7 +12807,7 @@ var ts;
12805
12807
  return typeof comment === "string" ? comment
12806
12808
  : comment === null || comment === void 0 ? void 0 : comment.map(function (c) {
12807
12809
  // TODO: Other kinds here
12808
- return c.kind === 319 /* JSDocText */ ? c.text : "{@link " + (c.name ? ts.entityNameToString(c.name) + " " : "") + c.text + "}";
12810
+ return c.kind === 319 /* JSDocText */ ? c.text : "{@link ".concat(c.name ? ts.entityNameToString(c.name) + " " : "").concat(c.text, "}");
12809
12811
  }).join("");
12810
12812
  }
12811
12813
  ts.getTextOfJSDocComment = getTextOfJSDocComment;
@@ -14075,8 +14077,8 @@ var ts;
14075
14077
  }
14076
14078
  function packageIdToString(_a) {
14077
14079
  var name = _a.name, subModuleName = _a.subModuleName, version = _a.version;
14078
- var fullName = subModuleName ? name + "/" + subModuleName : name;
14079
- return fullName + "@" + version;
14080
+ var fullName = subModuleName ? "".concat(name, "/").concat(subModuleName) : name;
14081
+ return "".concat(fullName, "@").concat(version);
14080
14082
  }
14081
14083
  ts.packageIdToString = packageIdToString;
14082
14084
  function typeDirectiveIsEqualTo(oldResolution, newResolution) {
@@ -14155,7 +14157,7 @@ var ts;
14155
14157
  function nodePosToString(node) {
14156
14158
  var file = getSourceFileOfNode(node);
14157
14159
  var loc = ts.getLineAndCharacterOfPosition(file, node.pos);
14158
- return file.fileName + "(" + (loc.line + 1) + "," + (loc.character + 1) + ")";
14160
+ return "".concat(file.fileName, "(").concat(loc.line + 1, ",").concat(loc.character + 1, ")");
14159
14161
  }
14160
14162
  ts.nodePosToString = nodePosToString;
14161
14163
  function getEndLinePosition(line, sourceFile) {
@@ -14294,7 +14296,7 @@ var ts;
14294
14296
  ts.isPinnedComment = isPinnedComment;
14295
14297
  function createCommentDirectivesMap(sourceFile, commentDirectives) {
14296
14298
  var directivesByLine = new ts.Map(commentDirectives.map(function (commentDirective) { return ([
14297
- "" + ts.getLineAndCharacterOfPosition(sourceFile, commentDirective.range.end).line,
14299
+ "".concat(ts.getLineAndCharacterOfPosition(sourceFile, commentDirective.range.end).line),
14298
14300
  commentDirective,
14299
14301
  ]); }));
14300
14302
  var usedLines = new ts.Map();
@@ -14311,10 +14313,10 @@ var ts;
14311
14313
  });
14312
14314
  }
14313
14315
  function markUsed(line) {
14314
- if (!directivesByLine.has("" + line)) {
14316
+ if (!directivesByLine.has("".concat(line))) {
14315
14317
  return false;
14316
14318
  }
14317
- usedLines.set("" + line, true);
14319
+ usedLines.set("".concat(line), true);
14318
14320
  return true;
14319
14321
  }
14320
14322
  }
@@ -14529,7 +14531,7 @@ var ts;
14529
14531
  }
14530
14532
  return node.text;
14531
14533
  }
14532
- return ts.Debug.fail("Literal kind '" + node.kind + "' not accounted for.");
14534
+ return ts.Debug.fail("Literal kind '".concat(node.kind, "' not accounted for."));
14533
14535
  }
14534
14536
  ts.getLiteralText = getLiteralText;
14535
14537
  function canUseOriginalText(node, flags) {
@@ -17060,11 +17062,11 @@ var ts;
17060
17062
  }
17061
17063
  ts.getEscapedTextOfIdentifierOrLiteral = getEscapedTextOfIdentifierOrLiteral;
17062
17064
  function getPropertyNameForUniqueESSymbol(symbol) {
17063
- return "__@" + ts.getSymbolId(symbol) + "@" + symbol.escapedName;
17065
+ return "__@".concat(ts.getSymbolId(symbol), "@").concat(symbol.escapedName);
17064
17066
  }
17065
17067
  ts.getPropertyNameForUniqueESSymbol = getPropertyNameForUniqueESSymbol;
17066
17068
  function getSymbolNameForPrivateIdentifier(containingClassSymbol, description) {
17067
- return "__#" + ts.getSymbolId(containingClassSymbol) + "@" + description;
17069
+ return "__#".concat(ts.getSymbolId(containingClassSymbol), "@").concat(description);
17068
17070
  }
17069
17071
  ts.getSymbolNameForPrivateIdentifier = getSymbolNameForPrivateIdentifier;
17070
17072
  function isKnownSymbol(symbol) {
@@ -19757,7 +19759,7 @@ var ts;
19757
19759
  }
19758
19760
  ts.getJSXImplicitImportBase = getJSXImplicitImportBase;
19759
19761
  function getJSXRuntimeImport(base, options) {
19760
- return base ? base + "/" + (options.jsx === 5 /* ReactJSXDev */ ? "jsx-dev-runtime" : "jsx-runtime") : undefined;
19762
+ return base ? "".concat(base, "/").concat(options.jsx === 5 /* ReactJSXDev */ ? "jsx-dev-runtime" : "jsx-runtime") : undefined;
19761
19763
  }
19762
19764
  ts.getJSXRuntimeImport = getJSXRuntimeImport;
19763
19765
  function hasZeroOrOneAsteriskCharacter(str) {
@@ -19874,7 +19876,7 @@ var ts;
19874
19876
  }
19875
19877
  var wildcardCharCodes = [42 /* asterisk */, 63 /* question */];
19876
19878
  ts.commonPackageFolders = ["node_modules", "bower_components", "jspm_packages"];
19877
- var implicitExcludePathRegexPattern = "(?!(" + ts.commonPackageFolders.join("|") + ")(/|$))";
19879
+ var implicitExcludePathRegexPattern = "(?!(".concat(ts.commonPackageFolders.join("|"), ")(/|$))");
19878
19880
  var filesMatcher = {
19879
19881
  /**
19880
19882
  * Matches any single directory segment unless it is the last segment and a .min.js file
@@ -19887,7 +19889,7 @@ var ts;
19887
19889
  * Regex for the ** wildcard. Matches any number of subdirectories. When used for including
19888
19890
  * files or directories, does not match subdirectories that start with a . character
19889
19891
  */
19890
- doubleAsteriskRegexFragment: "(/" + implicitExcludePathRegexPattern + "[^/.][^/]*)*?",
19892
+ doubleAsteriskRegexFragment: "(/".concat(implicitExcludePathRegexPattern, "[^/.][^/]*)*?"),
19891
19893
  replaceWildcardCharacter: function (match) { return replaceWildcardCharacter(match, filesMatcher.singleAsteriskRegexFragment); }
19892
19894
  };
19893
19895
  var directoriesMatcher = {
@@ -19896,7 +19898,7 @@ var ts;
19896
19898
  * Regex for the ** wildcard. Matches any number of subdirectories. When used for including
19897
19899
  * files or directories, does not match subdirectories that start with a . character
19898
19900
  */
19899
- doubleAsteriskRegexFragment: "(/" + implicitExcludePathRegexPattern + "[^/.][^/]*)*?",
19901
+ doubleAsteriskRegexFragment: "(/".concat(implicitExcludePathRegexPattern, "[^/.][^/]*)*?"),
19900
19902
  replaceWildcardCharacter: function (match) { return replaceWildcardCharacter(match, directoriesMatcher.singleAsteriskRegexFragment); }
19901
19903
  };
19902
19904
  var excludeMatcher = {
@@ -19914,10 +19916,10 @@ var ts;
19914
19916
  if (!patterns || !patterns.length) {
19915
19917
  return undefined;
19916
19918
  }
19917
- var pattern = patterns.map(function (pattern) { return "(" + pattern + ")"; }).join("|");
19919
+ var pattern = patterns.map(function (pattern) { return "(".concat(pattern, ")"); }).join("|");
19918
19920
  // If excluding, match "foo/bar/baz...", but if including, only allow "foo".
19919
19921
  var terminator = usage === "exclude" ? "($|/)" : "$";
19920
- return "^(" + pattern + ")" + terminator;
19922
+ return "^(".concat(pattern, ")").concat(terminator);
19921
19923
  }
19922
19924
  ts.getRegularExpressionForWildcard = getRegularExpressionForWildcard;
19923
19925
  function getRegularExpressionsForWildcards(specs, basePath, usage) {
@@ -19939,7 +19941,7 @@ var ts;
19939
19941
  ts.isImplicitGlob = isImplicitGlob;
19940
19942
  function getPatternFromSpec(spec, basePath, usage) {
19941
19943
  var pattern = spec && getSubPatternFromSpec(spec, basePath, usage, wildcardMatchers[usage]);
19942
- return pattern && "^(" + pattern + ")" + (usage === "exclude" ? "($|/)" : "$");
19944
+ return pattern && "^(".concat(pattern, ")").concat(usage === "exclude" ? "($|/)" : "$");
19943
19945
  }
19944
19946
  ts.getPatternFromSpec = getPatternFromSpec;
19945
19947
  function getSubPatternFromSpec(spec, basePath, usage, _a) {
@@ -20017,11 +20019,11 @@ var ts;
20017
20019
  currentDirectory = ts.normalizePath(currentDirectory);
20018
20020
  var absolutePath = ts.combinePaths(currentDirectory, path);
20019
20021
  return {
20020
- includeFilePatterns: ts.map(getRegularExpressionsForWildcards(includes, absolutePath, "files"), function (pattern) { return "^" + pattern + "$"; }),
20022
+ includeFilePatterns: ts.map(getRegularExpressionsForWildcards(includes, absolutePath, "files"), function (pattern) { return "^".concat(pattern, "$"); }),
20021
20023
  includeFilePattern: getRegularExpressionForWildcard(includes, absolutePath, "files"),
20022
20024
  includeDirectoryPattern: getRegularExpressionForWildcard(includes, absolutePath, "directories"),
20023
20025
  excludePattern: getRegularExpressionForWildcard(excludes, absolutePath, "exclude"),
20024
- basePaths: getBasePaths(absolutePath, includes, useCaseSensitiveFileNames)
20026
+ basePaths: getBasePaths(path, includes, useCaseSensitiveFileNames)
20025
20027
  };
20026
20028
  }
20027
20029
  ts.getFileMatcherPatterns = getFileMatcherPatterns;
@@ -20030,7 +20032,7 @@ var ts;
20030
20032
  }
20031
20033
  ts.getRegexFromPattern = getRegexFromPattern;
20032
20034
  /** @param path directory of the tsconfig.json */
20033
- function matchFiles(path, extensions, excludes, includes, useCaseSensitiveFileNames, currentDirectory, depth, getFileSystemEntries, realpath, directoryExists) {
20035
+ function matchFiles(path, extensions, excludes, includes, useCaseSensitiveFileNames, currentDirectory, depth, getFileSystemEntries, realpath) {
20034
20036
  path = ts.normalizePath(path);
20035
20037
  currentDirectory = ts.normalizePath(currentDirectory);
20036
20038
  var patterns = getFileMatcherPatterns(path, excludes, includes, useCaseSensitiveFileNames, currentDirectory);
@@ -20043,20 +20045,18 @@ var ts;
20043
20045
  var visited = new ts.Map();
20044
20046
  var toCanonical = ts.createGetCanonicalFileName(useCaseSensitiveFileNames);
20045
20047
  for (var _i = 0, _a = patterns.basePaths; _i < _a.length; _i++) {
20046
- var absoluteBasePath = _a[_i];
20047
- if (directoryExists(absoluteBasePath)) {
20048
- visitDirectory(absoluteBasePath, depth);
20049
- }
20048
+ var basePath = _a[_i];
20049
+ visitDirectory(basePath, ts.combinePaths(currentDirectory, basePath), depth);
20050
20050
  }
20051
20051
  return ts.flatten(results);
20052
- function visitDirectory(absolutePath, depth) {
20052
+ function visitDirectory(path, absolutePath, depth) {
20053
20053
  var canonicalPath = toCanonical(realpath(absolutePath));
20054
20054
  if (visited.has(canonicalPath))
20055
20055
  return;
20056
20056
  visited.set(canonicalPath, true);
20057
- var _a = getFileSystemEntries(absolutePath), files = _a.files, directories = _a.directories;
20057
+ var _a = getFileSystemEntries(path), files = _a.files, directories = _a.directories;
20058
20058
  var _loop_1 = function (current) {
20059
- var name = ts.combinePaths(absolutePath, current);
20059
+ var name = ts.combinePaths(path, current);
20060
20060
  var absoluteName = ts.combinePaths(absolutePath, current);
20061
20061
  if (extensions && !ts.fileExtensionIsOneOf(name, extensions))
20062
20062
  return "continue";
@@ -20084,10 +20084,11 @@ var ts;
20084
20084
  }
20085
20085
  for (var _c = 0, _d = ts.sort(directories, ts.compareStringsCaseSensitive); _c < _d.length; _c++) {
20086
20086
  var current = _d[_c];
20087
+ var name = ts.combinePaths(path, current);
20087
20088
  var absoluteName = ts.combinePaths(absolutePath, current);
20088
20089
  if ((!includeDirectoryRegex || includeDirectoryRegex.test(absoluteName)) &&
20089
20090
  (!excludeRegex || !excludeRegex.test(absoluteName))) {
20090
- visitDirectory(absoluteName, depth);
20091
+ visitDirectory(name, absoluteName, depth);
20091
20092
  }
20092
20093
  }
20093
20094
  }
@@ -20095,11 +20096,10 @@ var ts;
20095
20096
  ts.matchFiles = matchFiles;
20096
20097
  /**
20097
20098
  * Computes the unique non-wildcard base paths amongst the provided include patterns.
20098
- * @returns Absolute directory paths
20099
20099
  */
20100
- function getBasePaths(absoluteTsconfigPath, includes, useCaseSensitiveFileNames) {
20100
+ function getBasePaths(path, includes, useCaseSensitiveFileNames) {
20101
20101
  // Storage for our results in the form of literal paths (e.g. the paths as written by the user).
20102
- var basePaths = [absoluteTsconfigPath];
20102
+ var basePaths = [path];
20103
20103
  if (includes) {
20104
20104
  // Storage for literal base paths amongst the include patterns.
20105
20105
  var includeBasePaths = [];
@@ -20107,14 +20107,14 @@ var ts;
20107
20107
  var include = includes_1[_i];
20108
20108
  // We also need to check the relative paths by converting them to absolute and normalizing
20109
20109
  // in case they escape the base path (e.g "..\somedirectory")
20110
- var absoluteIncludePath = ts.isRootedDiskPath(include) ? include : ts.normalizePath(ts.combinePaths(absoluteTsconfigPath, include));
20110
+ var absolute = ts.isRootedDiskPath(include) ? include : ts.normalizePath(ts.combinePaths(path, include));
20111
20111
  // Append the literal and canonical candidate base paths.
20112
- includeBasePaths.push(getIncludeBasePath(absoluteIncludePath));
20112
+ includeBasePaths.push(getIncludeBasePath(absolute));
20113
20113
  }
20114
20114
  // Sort the offsets array using either the literal or canonical path representations.
20115
20115
  includeBasePaths.sort(ts.getStringComparer(!useCaseSensitiveFileNames));
20116
20116
  var _loop_2 = function (includeBasePath) {
20117
- if (ts.every(basePaths, function (basePath) { return !ts.containsPath(basePath, includeBasePath, absoluteTsconfigPath, !useCaseSensitiveFileNames); })) {
20117
+ if (ts.every(basePaths, function (basePath) { return !ts.containsPath(basePath, includeBasePath, path, !useCaseSensitiveFileNames); })) {
20118
20118
  basePaths.push(includeBasePath);
20119
20119
  }
20120
20120
  };
@@ -20300,7 +20300,7 @@ var ts;
20300
20300
  */
20301
20301
  function extensionFromPath(path) {
20302
20302
  var ext = tryGetExtensionFromPath(path);
20303
- return ext !== undefined ? ext : ts.Debug.fail("File " + path + " has unknown extension.");
20303
+ return ext !== undefined ? ext : ts.Debug.fail("File ".concat(path, " has unknown extension."));
20304
20304
  }
20305
20305
  ts.extensionFromPath = extensionFromPath;
20306
20306
  function isAnySupportedFileExtension(path) {
@@ -26289,7 +26289,7 @@ var ts;
26289
26289
  case 326 /* JSDocAugmentsTag */: return "augments";
26290
26290
  case 327 /* JSDocImplementsTag */: return "implements";
26291
26291
  default:
26292
- return ts.Debug.fail("Unsupported kind: " + ts.Debug.formatSyntaxKind(kind));
26292
+ return ts.Debug.fail("Unsupported kind: ".concat(ts.Debug.formatSyntaxKind(kind)));
26293
26293
  }
26294
26294
  }
26295
26295
  var rawTextScanner;
@@ -26617,7 +26617,7 @@ var ts;
26617
26617
  };
26618
26618
  var definedTextGetter_1 = function (path) {
26619
26619
  var result = textGetter_1(path);
26620
- return result !== undefined ? result : "/* Input file " + path + " was missing */\r\n";
26620
+ return result !== undefined ? result : "/* Input file ".concat(path, " was missing */\r\n");
26621
26621
  };
26622
26622
  var buildInfo_1;
26623
26623
  var getAndCacheBuildInfo_1 = function (getText) {
@@ -31155,7 +31155,7 @@ var ts;
31155
31155
  for (var _i = 0, viableKeywordSuggestions_1 = viableKeywordSuggestions; _i < viableKeywordSuggestions_1.length; _i++) {
31156
31156
  var keyword = viableKeywordSuggestions_1[_i];
31157
31157
  if (expressionText.length > keyword.length + 2 && ts.startsWith(expressionText, keyword)) {
31158
- return keyword + " " + expressionText.slice(keyword.length);
31158
+ return "".concat(keyword, " ").concat(expressionText.slice(keyword.length));
31159
31159
  }
31160
31160
  }
31161
31161
  return undefined;
@@ -37919,7 +37919,7 @@ var ts;
37919
37919
  if (namedArgRegExCache.has(name)) {
37920
37920
  return namedArgRegExCache.get(name);
37921
37921
  }
37922
- var result = new RegExp("(\\s" + name + "\\s*=\\s*)(?:(?:'([^']*)')|(?:\"([^\"]*)\"))", "im");
37922
+ var result = new RegExp("(\\s".concat(name, "\\s*=\\s*)(?:(?:'([^']*)')|(?:\"([^\"]*)\"))"), "im");
37923
37923
  namedArgRegExCache.set(name, result);
37924
37924
  return result;
37925
37925
  }
@@ -39381,8 +39381,8 @@ var ts;
39381
39381
  }
39382
39382
  ts.createCompilerDiagnosticForInvalidCustomType = createCompilerDiagnosticForInvalidCustomType;
39383
39383
  function createDiagnosticForInvalidCustomType(opt, createDiagnostic) {
39384
- var namesOfType = ts.arrayFrom(opt.type.keys()).map(function (key) { return "'" + key + "'"; }).join(", ");
39385
- return createDiagnostic(ts.Diagnostics.Argument_for_0_option_must_be_Colon_1, "--" + opt.name, namesOfType);
39384
+ var namesOfType = ts.arrayFrom(opt.type.keys()).map(function (key) { return "'".concat(key, "'"); }).join(", ");
39385
+ return createDiagnostic(ts.Diagnostics.Argument_for_0_option_must_be_Colon_1, "--".concat(opt.name), namesOfType);
39386
39386
  }
39387
39387
  /* @internal */
39388
39388
  function parseCustomTypeOption(opt, value, errors) {
@@ -40176,10 +40176,10 @@ var ts;
40176
40176
  var newValue = compilerOptionsMap.get(cmd.name);
40177
40177
  var defaultValue = getDefaultValueForOption(cmd);
40178
40178
  if (newValue !== defaultValue) {
40179
- result.push("" + tab + cmd.name + ": " + newValue);
40179
+ result.push("".concat(tab).concat(cmd.name, ": ").concat(newValue));
40180
40180
  }
40181
40181
  else if (ts.hasProperty(ts.defaultInitCompilerOptions, cmd.name)) {
40182
- result.push("" + tab + cmd.name + ": " + defaultValue);
40182
+ result.push("".concat(tab).concat(cmd.name, ": ").concat(defaultValue));
40183
40183
  }
40184
40184
  });
40185
40185
  return result.join(newLine) + newLine;
@@ -40230,19 +40230,19 @@ var ts;
40230
40230
  if (entries.length !== 0) {
40231
40231
  entries.push({ value: "" });
40232
40232
  }
40233
- entries.push({ value: "/* " + category + " */" });
40233
+ entries.push({ value: "/* ".concat(category, " */") });
40234
40234
  for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {
40235
40235
  var option = options_1[_i];
40236
40236
  var optionName = void 0;
40237
40237
  if (compilerOptionsMap.has(option.name)) {
40238
- optionName = "\"" + option.name + "\": " + JSON.stringify(compilerOptionsMap.get(option.name)) + ((seenKnownKeys += 1) === compilerOptionsMap.size ? "" : ",");
40238
+ optionName = "\"".concat(option.name, "\": ").concat(JSON.stringify(compilerOptionsMap.get(option.name))).concat((seenKnownKeys += 1) === compilerOptionsMap.size ? "" : ",");
40239
40239
  }
40240
40240
  else {
40241
- optionName = "// \"" + option.name + "\": " + JSON.stringify(getDefaultValueForOption(option)) + ",";
40241
+ optionName = "// \"".concat(option.name, "\": ").concat(JSON.stringify(getDefaultValueForOption(option)), ",");
40242
40242
  }
40243
40243
  entries.push({
40244
40244
  value: optionName,
40245
- description: "/* " + (option.description && ts.getLocaleSpecificMessage(option.description) || option.name) + " */"
40245
+ description: "/* ".concat(option.description && ts.getLocaleSpecificMessage(option.description) || option.name, " */")
40246
40246
  });
40247
40247
  marginLength = Math.max(optionName.length, marginLength);
40248
40248
  }
@@ -40251,25 +40251,25 @@ var ts;
40251
40251
  var tab = makePadding(2);
40252
40252
  var result = [];
40253
40253
  result.push("{");
40254
- result.push(tab + "\"compilerOptions\": {");
40255
- result.push("" + tab + tab + "/* " + ts.getLocaleSpecificMessage(ts.Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_json_to_read_more_about_this_file) + " */");
40254
+ result.push("".concat(tab, "\"compilerOptions\": {"));
40255
+ 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), " */"));
40256
40256
  result.push("");
40257
40257
  // Print out each row, aligning all the descriptions on the same column.
40258
40258
  for (var _a = 0, entries_2 = entries; _a < entries_2.length; _a++) {
40259
40259
  var entry = entries_2[_a];
40260
40260
  var value = entry.value, _b = entry.description, description = _b === void 0 ? "" : _b;
40261
- result.push(value && "" + tab + tab + value + (description && (makePadding(marginLength - value.length + 2) + description)));
40261
+ result.push(value && "".concat(tab).concat(tab).concat(value).concat(description && (makePadding(marginLength - value.length + 2) + description)));
40262
40262
  }
40263
40263
  if (fileNames.length) {
40264
- result.push(tab + "},");
40265
- result.push(tab + "\"files\": [");
40264
+ result.push("".concat(tab, "},"));
40265
+ result.push("".concat(tab, "\"files\": ["));
40266
40266
  for (var i = 0; i < fileNames.length; i++) {
40267
- result.push("" + tab + tab + JSON.stringify(fileNames[i]) + (i === fileNames.length - 1 ? "" : ","));
40267
+ result.push("".concat(tab).concat(tab).concat(JSON.stringify(fileNames[i])).concat(i === fileNames.length - 1 ? "" : ","));
40268
40268
  }
40269
- result.push(tab + "]");
40269
+ result.push("".concat(tab, "]"));
40270
40270
  }
40271
40271
  else {
40272
- result.push(tab + "}");
40272
+ result.push("".concat(tab, "}"));
40273
40273
  }
40274
40274
  result.push("}");
40275
40275
  return result.join(newLine) + newLine;
@@ -40667,7 +40667,7 @@ var ts;
40667
40667
  if (ts.isRootedDiskPath(extendedConfig) || ts.startsWith(extendedConfig, "./") || ts.startsWith(extendedConfig, "../")) {
40668
40668
  var extendedConfigPath = ts.getNormalizedAbsolutePath(extendedConfig, basePath);
40669
40669
  if (!host.fileExists(extendedConfigPath) && !ts.endsWith(extendedConfigPath, ".json" /* Json */)) {
40670
- extendedConfigPath = extendedConfigPath + ".json";
40670
+ extendedConfigPath = "".concat(extendedConfigPath, ".json");
40671
40671
  if (!host.fileExists(extendedConfigPath)) {
40672
40672
  errors.push(createDiagnostic(ts.Diagnostics.File_0_not_found, extendedConfig));
40673
40673
  return undefined;
@@ -40912,7 +40912,7 @@ var ts;
40912
40912
  // Valid only if *.json specified
40913
40913
  if (!jsonOnlyIncludeRegexes) {
40914
40914
  var includes = validatedIncludeSpecs.filter(function (s) { return ts.endsWith(s, ".json" /* Json */); });
40915
- var includeFilePatterns = ts.map(ts.getRegularExpressionsForWildcards(includes, basePath, "files"), function (pattern) { return "^" + pattern + "$"; });
40915
+ var includeFilePatterns = ts.map(ts.getRegularExpressionsForWildcards(includes, basePath, "files"), function (pattern) { return "^".concat(pattern, "$"); });
40916
40916
  jsonOnlyIncludeRegexes = includeFilePatterns ? includeFilePatterns.map(function (pattern) { return ts.getRegexFromPattern(pattern, host.useCaseSensitiveFileNames); }) : ts.emptyArray;
40917
40917
  }
40918
40918
  var includeIndex = ts.findIndex(jsonOnlyIncludeRegexes, function (re) { return re.test(file); });
@@ -41348,7 +41348,7 @@ var ts;
41348
41348
  var bestVersionKey = result.version, bestVersionPaths = result.paths;
41349
41349
  if (typeof bestVersionPaths !== "object") {
41350
41350
  if (state.traceEnabled) {
41351
- trace(state.host, ts.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2, "typesVersions['" + bestVersionKey + "']", "object", typeof bestVersionPaths);
41351
+ trace(state.host, ts.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2, "typesVersions['".concat(bestVersionKey, "']"), "object", typeof bestVersionPaths);
41352
41352
  }
41353
41353
  return;
41354
41354
  }
@@ -41459,7 +41459,10 @@ var ts;
41459
41459
  }
41460
41460
  }
41461
41461
  var failedLookupLocations = [];
41462
- var moduleResolutionState = { compilerOptions: options, host: host, traceEnabled: traceEnabled, failedLookupLocations: failedLookupLocations, packageJsonInfoCache: cache, features: NodeResolutionFeatures.AllFeatures, conditions: ["node", "require", "types"] };
41462
+ var features = ts.getEmitModuleResolutionKind(options) === ts.ModuleResolutionKind.Node12 ? NodeResolutionFeatures.Node12Default :
41463
+ ts.getEmitModuleResolutionKind(options) === ts.ModuleResolutionKind.NodeNext ? NodeResolutionFeatures.NodeNextDefault :
41464
+ NodeResolutionFeatures.None;
41465
+ var moduleResolutionState = { compilerOptions: options, host: host, traceEnabled: traceEnabled, failedLookupLocations: failedLookupLocations, packageJsonInfoCache: cache, features: features, conditions: ["node", "require", "types"] };
41463
41466
  var resolved = primaryLookup();
41464
41467
  var primary = true;
41465
41468
  if (!resolved) {
@@ -41726,7 +41729,7 @@ var ts;
41726
41729
  };
41727
41730
  return cache;
41728
41731
  function getUnderlyingCacheKey(specifier, mode) {
41729
- var result = mode === undefined ? specifier : mode + "|" + specifier;
41732
+ var result = mode === undefined ? specifier : "".concat(mode, "|").concat(specifier);
41730
41733
  memoizedReverseKeys.set(result, [specifier, mode]);
41731
41734
  return result;
41732
41735
  }
@@ -41757,7 +41760,7 @@ var ts;
41757
41760
  }
41758
41761
  function getOrCreateCacheForModuleName(nonRelativeModuleName, mode, redirectedReference) {
41759
41762
  ts.Debug.assert(!ts.isExternalModuleNameRelative(nonRelativeModuleName));
41760
- return getOrCreateCache(moduleNameToDirectoryMap, redirectedReference, mode === undefined ? nonRelativeModuleName : mode + "|" + nonRelativeModuleName, createPerModuleNameCache);
41763
+ return getOrCreateCache(moduleNameToDirectoryMap, redirectedReference, mode === undefined ? nonRelativeModuleName : "".concat(mode, "|").concat(nonRelativeModuleName), createPerModuleNameCache);
41761
41764
  }
41762
41765
  function createPerModuleNameCache() {
41763
41766
  var directoryPathMap = new ts.Map();
@@ -41904,10 +41907,10 @@ var ts;
41904
41907
  result = classicNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference);
41905
41908
  break;
41906
41909
  default:
41907
- return ts.Debug.fail("Unexpected moduleResolution: " + moduleResolution);
41910
+ return ts.Debug.fail("Unexpected moduleResolution: ".concat(moduleResolution));
41908
41911
  }
41909
41912
  if (result && result.resolvedModule)
41910
- ts.perfLogger.logInfoEvent("Module \"" + moduleName + "\" resolved to \"" + result.resolvedModule.resolvedFileName + "\"");
41913
+ ts.perfLogger.logInfoEvent("Module \"".concat(moduleName, "\" resolved to \"").concat(result.resolvedModule.resolvedFileName, "\""));
41911
41914
  ts.perfLogger.logStopResolveModule((result && result.resolvedModule) ? "" + result.resolvedModule.resolvedFileName : "null");
41912
41915
  if (perFolderCache) {
41913
41916
  perFolderCache.set(moduleName, resolutionMode, result);
@@ -42110,7 +42113,7 @@ var ts;
42110
42113
  function resolveJSModule(moduleName, initialDir, host) {
42111
42114
  var _a = tryResolveJSModuleWorker(moduleName, initialDir, host), resolvedModule = _a.resolvedModule, failedLookupLocations = _a.failedLookupLocations;
42112
42115
  if (!resolvedModule) {
42113
- throw new Error("Could not resolve JS module '" + moduleName + "' starting at '" + initialDir + "'. Looked in: " + failedLookupLocations.join(", "));
42116
+ throw new Error("Could not resolve JS module '".concat(moduleName, "' starting at '").concat(initialDir, "'. Looked in: ").concat(failedLookupLocations.join(", ")));
42114
42117
  }
42115
42118
  return resolvedModule.resolvedFileName;
42116
42119
  }
@@ -42134,13 +42137,15 @@ var ts;
42134
42137
  // not currently backported to node 12 - https://github.com/nodejs/Release/issues/690
42135
42138
  NodeResolutionFeatures[NodeResolutionFeatures["ExportsPatternTrailers"] = 16] = "ExportsPatternTrailers";
42136
42139
  NodeResolutionFeatures[NodeResolutionFeatures["AllFeatures"] = 30] = "AllFeatures";
42140
+ NodeResolutionFeatures[NodeResolutionFeatures["Node12Default"] = 14] = "Node12Default";
42141
+ NodeResolutionFeatures[NodeResolutionFeatures["NodeNextDefault"] = 30] = "NodeNextDefault";
42137
42142
  NodeResolutionFeatures[NodeResolutionFeatures["EsmMode"] = 32] = "EsmMode";
42138
42143
  })(NodeResolutionFeatures || (NodeResolutionFeatures = {}));
42139
42144
  function node12ModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode) {
42140
- return nodeNextModuleNameResolverWorker(NodeResolutionFeatures.Imports | NodeResolutionFeatures.SelfName | NodeResolutionFeatures.Exports, moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode);
42145
+ return nodeNextModuleNameResolverWorker(NodeResolutionFeatures.Node12Default, moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode);
42141
42146
  }
42142
42147
  function nodeNextModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode) {
42143
- return nodeNextModuleNameResolverWorker(NodeResolutionFeatures.AllFeatures, moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode);
42148
+ return nodeNextModuleNameResolverWorker(NodeResolutionFeatures.NodeNextDefault, moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode);
42144
42149
  }
42145
42150
  function nodeNextModuleNameResolverWorker(features, moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode) {
42146
42151
  var containingDirectory = ts.getDirectoryPath(containingFile);
@@ -42223,7 +42228,7 @@ var ts;
42223
42228
  if (traceEnabled) {
42224
42229
  trace(host, ts.Diagnostics.Resolving_real_path_for_0_result_1, path, real);
42225
42230
  }
42226
- ts.Debug.assert(host.fileExists(real), path + " linked to nonexistent file " + real);
42231
+ ts.Debug.assert(host.fileExists(real), "".concat(path, " linked to nonexistent file ").concat(real));
42227
42232
  return real;
42228
42233
  }
42229
42234
  function nodeLoadModuleByRelativeName(extensions, candidate, onlyRecordFailures, state, considerPackageJson) {
@@ -42609,7 +42614,7 @@ var ts;
42609
42614
  return undefined;
42610
42615
  }
42611
42616
  var trailingParts = parts.slice(nameParts.length);
42612
- return loadModuleFromExports(scope, extensions, !ts.length(trailingParts) ? "." : "." + ts.directorySeparator + trailingParts.join(ts.directorySeparator), state, cache, redirectedReference);
42617
+ return loadModuleFromExports(scope, extensions, !ts.length(trailingParts) ? "." : ".".concat(ts.directorySeparator).concat(trailingParts.join(ts.directorySeparator)), state, cache, redirectedReference);
42613
42618
  }
42614
42619
  function loadModuleFromExports(scope, extensions, subpath, state, cache, redirectedReference) {
42615
42620
  if (!scope.packageJsonContent.exports) {
@@ -42937,7 +42942,7 @@ var ts;
42937
42942
  }
42938
42943
  /* @internal */
42939
42944
  function getTypesPackageName(packageName) {
42940
- return "@types/" + mangleScopedPackageName(packageName);
42945
+ return "@types/".concat(mangleScopedPackageName(packageName));
42941
42946
  }
42942
42947
  ts.getTypesPackageName = getTypesPackageName;
42943
42948
  /* @internal */
@@ -43338,7 +43343,7 @@ var ts;
43338
43343
  if (name) {
43339
43344
  if (ts.isAmbientModule(node)) {
43340
43345
  var moduleName = ts.getTextOfIdentifierOrLiteral(name);
43341
- return (ts.isGlobalScopeAugmentation(node) ? "__global" : "\"" + moduleName + "\"");
43346
+ return (ts.isGlobalScopeAugmentation(node) ? "__global" : "\"".concat(moduleName, "\""));
43342
43347
  }
43343
43348
  if (name.kind === 161 /* ComputedPropertyName */) {
43344
43349
  var nameExpression = name.expression;
@@ -43395,7 +43400,7 @@ var ts;
43395
43400
  case 163 /* Parameter */:
43396
43401
  // Parameters with names are handled at the top of this function. Parameters
43397
43402
  // without names can only come from JSDocFunctionTypes.
43398
- 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"; });
43403
+ 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"); });
43399
43404
  var functionType = node.parent;
43400
43405
  var index = functionType.parameters.indexOf(node);
43401
43406
  return "arg" + index;
@@ -43507,7 +43512,7 @@ var ts;
43507
43512
  var relatedInformation_1 = [];
43508
43513
  if (ts.isTypeAliasDeclaration(node) && ts.nodeIsMissing(node.type) && ts.hasSyntacticModifier(node, 1 /* Export */) && symbol.flags & (2097152 /* Alias */ | 788968 /* Type */ | 1920 /* Namespace */)) {
43509
43514
  // export type T; - may have meant export type { T }?
43510
- relatedInformation_1.push(createDiagnosticForNode(node, ts.Diagnostics.Did_you_mean_0, "export type { " + ts.unescapeLeadingUnderscores(node.name.escapedText) + " }"));
43515
+ relatedInformation_1.push(createDiagnosticForNode(node, ts.Diagnostics.Did_you_mean_0, "export type { ".concat(ts.unescapeLeadingUnderscores(node.name.escapedText), " }")));
43511
43516
  }
43512
43517
  var declarationName_1 = ts.getNameOfDeclaration(node) || node;
43513
43518
  ts.forEach(symbol.declarations, function (declaration, index) {
@@ -45580,7 +45585,7 @@ var ts;
45580
45585
  }
45581
45586
  }
45582
45587
  function bindSourceFileAsExternalModule() {
45583
- bindAnonymousDeclaration(file, 512 /* ValueModule */, "\"" + ts.removeFileExtension(file.fileName) + "\"");
45588
+ bindAnonymousDeclaration(file, 512 /* ValueModule */, "\"".concat(ts.removeFileExtension(file.fileName), "\""));
45584
45589
  }
45585
45590
  function bindExportAssignment(node) {
45586
45591
  if (!container.symbol || !container.symbol.exports) {
@@ -47669,7 +47674,7 @@ var ts;
47669
47674
  if (sourceSymbolFile && targetSymbolFile && amalgamatedDuplicates && !isEitherEnum && sourceSymbolFile !== targetSymbolFile) {
47670
47675
  var firstFile_1 = ts.comparePaths(sourceSymbolFile.path, targetSymbolFile.path) === -1 /* LessThan */ ? sourceSymbolFile : targetSymbolFile;
47671
47676
  var secondFile_1 = firstFile_1 === sourceSymbolFile ? targetSymbolFile : sourceSymbolFile;
47672
- var filesDuplicates = ts.getOrUpdate(amalgamatedDuplicates, firstFile_1.path + "|" + secondFile_1.path, function () {
47677
+ var filesDuplicates = ts.getOrUpdate(amalgamatedDuplicates, "".concat(firstFile_1.path, "|").concat(secondFile_1.path), function () {
47673
47678
  return ({ firstFile: firstFile_1, secondFile: secondFile_1, conflictingSymbols: new ts.Map() });
47674
47679
  });
47675
47680
  var conflictingSymbolInfo = ts.getOrUpdate(filesDuplicates.conflictingSymbols, symbolName_1, function () {
@@ -48103,11 +48108,12 @@ var ts;
48103
48108
  *
48104
48109
  * @param isUse If true, this will count towards --noUnusedLocals / --noUnusedParameters.
48105
48110
  */
48106
- function resolveName(location, name, meaning, nameNotFoundMessage, nameArg, isUse, excludeGlobals) {
48111
+ function resolveName(location, name, meaning, nameNotFoundMessage, nameArg, isUse, excludeGlobals, getSpellingSuggstions) {
48107
48112
  if (excludeGlobals === void 0) { excludeGlobals = false; }
48108
- return resolveNameHelper(location, name, meaning, nameNotFoundMessage, nameArg, isUse, excludeGlobals, getSymbol);
48113
+ if (getSpellingSuggstions === void 0) { getSpellingSuggstions = true; }
48114
+ return resolveNameHelper(location, name, meaning, nameNotFoundMessage, nameArg, isUse, excludeGlobals, getSpellingSuggstions, getSymbol);
48109
48115
  }
48110
- function resolveNameHelper(location, name, meaning, nameNotFoundMessage, nameArg, isUse, excludeGlobals, lookup) {
48116
+ function resolveNameHelper(location, name, meaning, nameNotFoundMessage, nameArg, isUse, excludeGlobals, getSpellingSuggestions, lookup) {
48111
48117
  var _a, _b, _c;
48112
48118
  var originalLocation = location; // needed for did-you-mean error reporting, which gathers candidates starting from the original location
48113
48119
  var result;
@@ -48424,7 +48430,7 @@ var ts;
48424
48430
  }
48425
48431
  }
48426
48432
  if (!result) {
48427
- if (nameNotFoundMessage) {
48433
+ if (nameNotFoundMessage && produceDiagnostics) {
48428
48434
  if (!errorLocation ||
48429
48435
  !checkAndReportErrorForMissingPrefix(errorLocation, name, nameArg) && // TODO: GH#18217
48430
48436
  !checkAndReportErrorForExtendingInterface(errorLocation) &&
@@ -48434,7 +48440,7 @@ var ts;
48434
48440
  !checkAndReportErrorForUsingNamespaceModuleAsValue(errorLocation, name, meaning) &&
48435
48441
  !checkAndReportErrorForUsingValueAsType(errorLocation, name, meaning)) {
48436
48442
  var suggestion = void 0;
48437
- if (suggestionCount < maximumSuggestionCount) {
48443
+ if (getSpellingSuggestions && suggestionCount < maximumSuggestionCount) {
48438
48444
  suggestion = getSuggestedSymbolForNonexistentSymbol(originalLocation, name, meaning);
48439
48445
  var isGlobalScopeAugmentationDeclaration = (suggestion === null || suggestion === void 0 ? void 0 : suggestion.valueDeclaration) && ts.isAmbientModule(suggestion.valueDeclaration) && ts.isGlobalScopeAugmentation(suggestion.valueDeclaration);
48440
48446
  if (isGlobalScopeAugmentationDeclaration) {
@@ -48470,7 +48476,7 @@ var ts;
48470
48476
  return undefined;
48471
48477
  }
48472
48478
  // Perform extra checks only if error reporting was requested
48473
- if (nameNotFoundMessage) {
48479
+ if (nameNotFoundMessage && produceDiagnostics) {
48474
48480
  if (propertyWithInvalidInitializer && !(ts.getEmitScriptTarget(compilerOptions) === 99 /* ESNext */ && useDefineForClassFields)) {
48475
48481
  // We have a match, but the reference occurred within a property initializer and the identifier also binds
48476
48482
  // to a local variable in the constructor where the code will be emitted. Note that this is actually allowed
@@ -50308,7 +50314,7 @@ var ts;
50308
50314
  var cache = (links.accessibleChainCache || (links.accessibleChainCache = new ts.Map()));
50309
50315
  // Go from enclosingDeclaration to the first scope we check, so the cache is keyed off the scope and thus shared more
50310
50316
  var firstRelevantLocation = forEachSymbolTableInScope(enclosingDeclaration, function (_, __, ___, node) { return node; });
50311
- var key = (useOnlyExternalAliasing ? 0 : 1) + "|" + (firstRelevantLocation && getNodeId(firstRelevantLocation)) + "|" + meaning;
50317
+ var key = "".concat(useOnlyExternalAliasing ? 0 : 1, "|").concat(firstRelevantLocation && getNodeId(firstRelevantLocation), "|").concat(meaning);
50312
50318
  if (cache.has(key)) {
50313
50319
  return cache.get(key);
50314
50320
  }
@@ -51156,7 +51162,7 @@ var ts;
51156
51162
  context.symbolDepth = new ts.Map();
51157
51163
  }
51158
51164
  var links = context.enclosingDeclaration && getNodeLinks(context.enclosingDeclaration);
51159
- var key = getTypeId(type) + "|" + context.flags;
51165
+ var key = "".concat(getTypeId(type), "|").concat(context.flags);
51160
51166
  if (links) {
51161
51167
  links.serializedTypes || (links.serializedTypes = new ts.Map());
51162
51168
  }
@@ -51425,7 +51431,7 @@ var ts;
51425
51431
  }
51426
51432
  }
51427
51433
  if (checkTruncationLength(context) && (i + 2 < properties.length - 1)) {
51428
- typeElements.push(ts.factory.createPropertySignature(/*modifiers*/ undefined, "... " + (properties.length - i) + " more ...", /*questionToken*/ undefined, /*type*/ undefined));
51434
+ typeElements.push(ts.factory.createPropertySignature(/*modifiers*/ undefined, "... ".concat(properties.length - i, " more ..."), /*questionToken*/ undefined, /*type*/ undefined));
51429
51435
  addPropertyToElementList(properties[properties.length - 1], context, typeElements);
51430
51436
  break;
51431
51437
  }
@@ -51540,7 +51546,7 @@ var ts;
51540
51546
  else if (types.length > 2) {
51541
51547
  return [
51542
51548
  typeToTypeNodeHelper(types[0], context),
51543
- ts.factory.createTypeReferenceNode("... " + (types.length - 2) + " more ...", /*typeArguments*/ undefined),
51549
+ ts.factory.createTypeReferenceNode("... ".concat(types.length - 2, " more ..."), /*typeArguments*/ undefined),
51544
51550
  typeToTypeNodeHelper(types[types.length - 1], context)
51545
51551
  ];
51546
51552
  }
@@ -51554,7 +51560,7 @@ var ts;
51554
51560
  var type = types_2[_i];
51555
51561
  i++;
51556
51562
  if (checkTruncationLength(context) && (i + 2 < types.length - 1)) {
51557
- result_5.push(ts.factory.createTypeReferenceNode("... " + (types.length - i) + " more ...", /*typeArguments*/ undefined));
51563
+ result_5.push(ts.factory.createTypeReferenceNode("... ".concat(types.length - i, " more ..."), /*typeArguments*/ undefined));
51558
51564
  var typeNode_1 = typeToTypeNodeHelper(types[types.length - 1], context);
51559
51565
  if (typeNode_1) {
51560
51566
  result_5.push(typeNode_1);
@@ -52062,7 +52068,7 @@ var ts;
52062
52068
  var text = rawtext;
52063
52069
  while (((_b = context.typeParameterNamesByText) === null || _b === void 0 ? void 0 : _b.has(text)) || typeParameterShadowsNameInScope(text, context, type)) {
52064
52070
  i++;
52065
- text = rawtext + "_" + i;
52071
+ text = "".concat(rawtext, "_").concat(i);
52066
52072
  }
52067
52073
  if (text !== rawtext) {
52068
52074
  result = ts.factory.createIdentifier(text, result.typeArguments);
@@ -52388,7 +52394,7 @@ var ts;
52388
52394
  function getNameForJSDocFunctionParameter(p, index) {
52389
52395
  return p.name && ts.isIdentifier(p.name) && p.name.escapedText === "this" ? "this"
52390
52396
  : getEffectiveDotDotDotForParameter(p) ? "args"
52391
- : "arg" + index;
52397
+ : "arg".concat(index);
52392
52398
  }
52393
52399
  function rewriteModuleSpecifier(parent, lit) {
52394
52400
  if (bundled) {
@@ -53473,7 +53479,7 @@ var ts;
53473
53479
  return results_1;
53474
53480
  }
53475
53481
  // The `Constructor`'s symbol isn't in the class's properties lists, obviously, since it's a signature on the static
53476
- return ts.Debug.fail("Unhandled class member kind! " + (p.__debugFlags || p.flags));
53482
+ return ts.Debug.fail("Unhandled class member kind! ".concat(p.__debugFlags || p.flags));
53477
53483
  };
53478
53484
  }
53479
53485
  function serializePropertySymbolForInterface(p, baseType) {
@@ -53548,7 +53554,7 @@ var ts;
53548
53554
  if (ref) {
53549
53555
  return ref;
53550
53556
  }
53551
- var tempName = getUnusedName(rootName + "_base");
53557
+ var tempName = getUnusedName("".concat(rootName, "_base"));
53552
53558
  var statement = ts.factory.createVariableStatement(/*modifiers*/ undefined, ts.factory.createVariableDeclarationList([
53553
53559
  ts.factory.createVariableDeclaration(tempName, /*exclamationToken*/ undefined, typeToTypeNodeHelper(staticType, context))
53554
53560
  ], 2 /* Const */));
@@ -53595,7 +53601,7 @@ var ts;
53595
53601
  var original = input;
53596
53602
  while ((_a = context.usedSymbolNames) === null || _a === void 0 ? void 0 : _a.has(input)) {
53597
53603
  i++;
53598
- input = original + "_" + i;
53604
+ input = "".concat(original, "_").concat(i);
53599
53605
  }
53600
53606
  (_b = context.usedSymbolNames) === null || _b === void 0 ? void 0 : _b.add(input);
53601
53607
  if (id) {
@@ -53703,15 +53709,15 @@ var ts;
53703
53709
  if (nameType.flags & 384 /* StringOrNumberLiteral */) {
53704
53710
  var name = "" + nameType.value;
53705
53711
  if (!ts.isIdentifierText(name, ts.getEmitScriptTarget(compilerOptions)) && !isNumericLiteralName(name)) {
53706
- return "\"" + ts.escapeString(name, 34 /* doubleQuote */) + "\"";
53712
+ return "\"".concat(ts.escapeString(name, 34 /* doubleQuote */), "\"");
53707
53713
  }
53708
53714
  if (isNumericLiteralName(name) && ts.startsWith(name, "-")) {
53709
- return "[" + name + "]";
53715
+ return "[".concat(name, "]");
53710
53716
  }
53711
53717
  return name;
53712
53718
  }
53713
53719
  if (nameType.flags & 8192 /* UniqueESSymbol */) {
53714
- return "[" + getNameOfSymbolAsWritten(nameType.symbol, context) + "]";
53720
+ return "[".concat(getNameOfSymbolAsWritten(nameType.symbol, context), "]");
53715
53721
  }
53716
53722
  }
53717
53723
  }
@@ -56485,7 +56491,7 @@ var ts;
56485
56491
  !leftName ? rightName :
56486
56492
  !rightName ? leftName :
56487
56493
  undefined;
56488
- var paramSymbol = createSymbol(1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0), paramName || "arg" + i);
56494
+ var paramSymbol = createSymbol(1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0), paramName || "arg".concat(i));
56489
56495
  paramSymbol.type = isRestParam ? createArrayType(unionParamType) : unionParamType;
56490
56496
  params[i] = paramSymbol;
56491
56497
  }
@@ -58404,7 +58410,7 @@ var ts;
58404
58410
  return result;
58405
58411
  }
58406
58412
  function getAliasId(aliasSymbol, aliasTypeArguments) {
58407
- return aliasSymbol ? "@" + getSymbolId(aliasSymbol) + (aliasTypeArguments ? ":" + getTypeListId(aliasTypeArguments) : "") : "";
58413
+ return aliasSymbol ? "@".concat(getSymbolId(aliasSymbol)) + (aliasTypeArguments ? ":".concat(getTypeListId(aliasTypeArguments)) : "") : "";
58408
58414
  }
58409
58415
  // This function is used to propagate certain flags when creating new object type references and union types.
58410
58416
  // It is only necessary to do so if a constituent type might be the undefined type, the null type, the type
@@ -58590,7 +58596,7 @@ var ts;
58590
58596
  return undefined;
58591
58597
  }
58592
58598
  function getSymbolPath(symbol) {
58593
- return symbol.parent ? getSymbolPath(symbol.parent) + "." + symbol.escapedName : symbol.escapedName;
58599
+ return symbol.parent ? "".concat(getSymbolPath(symbol.parent), ".").concat(symbol.escapedName) : symbol.escapedName;
58594
58600
  }
58595
58601
  function getUnresolvedSymbolForEntityName(name) {
58596
58602
  var identifier = name.kind === 160 /* QualifiedName */ ? name.right :
@@ -58601,7 +58607,7 @@ var ts;
58601
58607
  var parentSymbol = name.kind === 160 /* QualifiedName */ ? getUnresolvedSymbolForEntityName(name.left) :
58602
58608
  name.kind === 205 /* PropertyAccessExpression */ ? getUnresolvedSymbolForEntityName(name.expression) :
58603
58609
  undefined;
58604
- var path = parentSymbol ? getSymbolPath(parentSymbol) + "." + text : text;
58610
+ var path = parentSymbol ? "".concat(getSymbolPath(parentSymbol), ".").concat(text) : text;
58605
58611
  var result = unresolvedSymbols.get(path);
58606
58612
  if (!result) {
58607
58613
  unresolvedSymbols.set(path, result = createSymbol(524288 /* TypeAlias */, text, 1048576 /* Unresolved */));
@@ -58674,7 +58680,7 @@ var ts;
58674
58680
  if (substitute.flags & 3 /* AnyOrUnknown */ || substitute === baseType) {
58675
58681
  return baseType;
58676
58682
  }
58677
- var id = getTypeId(baseType) + ">" + getTypeId(substitute);
58683
+ var id = "".concat(getTypeId(baseType), ">").concat(getTypeId(substitute));
58678
58684
  var cached = substitutionTypes.get(id);
58679
58685
  if (cached) {
58680
58686
  return cached;
@@ -58875,7 +58881,7 @@ var ts;
58875
58881
  }
58876
58882
  function getGlobalSymbol(name, meaning, diagnostic) {
58877
58883
  // Don't track references for global symbols anyway, so value if `isReference` is arbitrary
58878
- return resolveName(undefined, name, meaning, diagnostic, name, /*isUse*/ false);
58884
+ return resolveName(undefined, name, meaning, diagnostic, name, /*isUse*/ false, /*excludeGlobals*/ false, /*getSpellingSuggestions*/ false);
58879
58885
  }
58880
58886
  function getGlobalType(name, arity, reportErrors) {
58881
58887
  var symbol = getGlobalTypeSymbol(name, reportErrors);
@@ -59335,6 +59341,8 @@ var ts;
59335
59341
  // We ignore 'never' types in unions
59336
59342
  if (!(flags & 131072 /* Never */)) {
59337
59343
  includes |= flags & 205258751 /* IncludesMask */;
59344
+ if (flags & 465829888 /* Instantiable */)
59345
+ includes |= 33554432 /* IncludesInstantiable */;
59338
59346
  if (type === wildcardType)
59339
59347
  includes |= 8388608 /* IncludesWildcard */;
59340
59348
  if (!strictNullChecks && flags & 98304 /* Nullable */) {
@@ -59548,7 +59556,7 @@ var ts;
59548
59556
  origin = createOriginUnionOrIntersectionType(1048576 /* Union */, reducedTypes);
59549
59557
  }
59550
59558
  }
59551
- var objectFlags = (includes & 468598819 /* NotPrimitiveUnion */ ? 0 : 65536 /* PrimitiveUnion */) |
59559
+ var objectFlags = (includes & 36323363 /* NotPrimitiveUnion */ ? 0 : 65536 /* PrimitiveUnion */) |
59552
59560
  (includes & 2097152 /* Intersection */ ? 33554432 /* ContainsIntersections */ : 0);
59553
59561
  return getUnionTypeFromSortedList(typeSet, objectFlags, aliasSymbol, aliasTypeArguments, origin);
59554
59562
  }
@@ -59596,9 +59604,9 @@ var ts;
59596
59604
  return types[0];
59597
59605
  }
59598
59606
  var typeKey = !origin ? getTypeListId(types) :
59599
- origin.flags & 1048576 /* Union */ ? "|" + getTypeListId(origin.types) :
59600
- origin.flags & 2097152 /* Intersection */ ? "&" + getTypeListId(origin.types) :
59601
- "#" + 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
59607
+ origin.flags & 1048576 /* Union */ ? "|".concat(getTypeListId(origin.types)) :
59608
+ origin.flags & 2097152 /* Intersection */ ? "&".concat(getTypeListId(origin.types)) :
59609
+ "#".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
59602
59610
  var id = typeKey + getAliasId(aliasSymbol, aliasTypeArguments);
59603
59611
  var type = unionTypes.get(id);
59604
59612
  if (!type) {
@@ -60120,7 +60128,7 @@ var ts;
60120
60128
  if (ts.every(newTexts, function (t) { return t === ""; }) && ts.every(newTypes, function (t) { return !!(t.flags & 4 /* String */); })) {
60121
60129
  return stringType;
60122
60130
  }
60123
- var id = getTypeListId(newTypes) + "|" + ts.map(newTexts, function (t) { return t.length; }).join(",") + "|" + newTexts.join("");
60131
+ var id = "".concat(getTypeListId(newTypes), "|").concat(ts.map(newTexts, function (t) { return t.length; }).join(","), "|").concat(newTexts.join(""));
60124
60132
  var type = templateLiteralTypes.get(id);
60125
60133
  if (!type) {
60126
60134
  templateLiteralTypes.set(id, type = createTemplateLiteralType(newTexts, newTypes));
@@ -60180,7 +60188,7 @@ var ts;
60180
60188
  return str;
60181
60189
  }
60182
60190
  function getStringMappingTypeForGenericType(symbol, type) {
60183
- var id = getSymbolId(symbol) + "," + getTypeId(type);
60191
+ var id = "".concat(getSymbolId(symbol), ",").concat(getTypeId(type));
60184
60192
  var result = stringMappingTypes.get(id);
60185
60193
  if (!result) {
60186
60194
  stringMappingTypes.set(id, result = createStringMappingType(symbol, type));
@@ -61200,7 +61208,7 @@ var ts;
61200
61208
  function createUniqueESSymbolType(symbol) {
61201
61209
  var type = createType(8192 /* UniqueESSymbol */);
61202
61210
  type.symbol = symbol;
61203
- type.escapedName = "__@" + type.symbol.escapedName + "@" + getSymbolId(type.symbol);
61211
+ type.escapedName = "__@".concat(type.symbol.escapedName, "@").concat(getSymbolId(type.symbol));
61204
61212
  return type;
61205
61213
  }
61206
61214
  function getESSymbolLikeTypeForNode(node) {
@@ -62743,7 +62751,7 @@ var ts;
62743
62751
  return true;
62744
62752
  }
62745
62753
  if (source.flags & 524288 /* Object */ && target.flags & 524288 /* Object */) {
62746
- var related = relation.get(getRelationKey(source, target, 0 /* None */, relation));
62754
+ var related = relation.get(getRelationKey(source, target, 0 /* None */, relation, /*ignoreConstraints*/ false));
62747
62755
  if (related !== undefined) {
62748
62756
  return !!(related & 1 /* Succeeded */);
62749
62757
  }
@@ -62889,24 +62897,24 @@ var ts;
62889
62897
  case ts.Diagnostics.Types_of_property_0_are_incompatible.code: {
62890
62898
  // Parenthesize a `new` if there is one
62891
62899
  if (path.indexOf("new ") === 0) {
62892
- path = "(" + path + ")";
62900
+ path = "(".concat(path, ")");
62893
62901
  }
62894
62902
  var str = "" + args[0];
62895
62903
  // If leading, just print back the arg (irrespective of if it's a valid identifier)
62896
62904
  if (path.length === 0) {
62897
- path = "" + str;
62905
+ path = "".concat(str);
62898
62906
  }
62899
62907
  // Otherwise write a dotted name if possible
62900
62908
  else if (ts.isIdentifierText(str, ts.getEmitScriptTarget(compilerOptions))) {
62901
- path = path + "." + str;
62909
+ path = "".concat(path, ".").concat(str);
62902
62910
  }
62903
62911
  // Failing that, check if the name is already a computed name
62904
62912
  else if (str[0] === "[" && str[str.length - 1] === "]") {
62905
- path = "" + path + str;
62913
+ path = "".concat(path).concat(str);
62906
62914
  }
62907
62915
  // And finally write out a computed name as a last resort
62908
62916
  else {
62909
- path = path + "[" + str + "]";
62917
+ path = "".concat(path, "[").concat(str, "]");
62910
62918
  }
62911
62919
  break;
62912
62920
  }
@@ -62935,7 +62943,7 @@ var ts;
62935
62943
  msg.code === ts.Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code)
62936
62944
  ? ""
62937
62945
  : "...";
62938
- path = "" + prefix + path + "(" + params + ")";
62946
+ path = "".concat(prefix).concat(path, "(").concat(params, ")");
62939
62947
  }
62940
62948
  break;
62941
62949
  }
@@ -62948,7 +62956,7 @@ var ts;
62948
62956
  break;
62949
62957
  }
62950
62958
  default:
62951
- return ts.Debug.fail("Unhandled Diagnostic: " + msg.code);
62959
+ return ts.Debug.fail("Unhandled Diagnostic: ".concat(msg.code));
62952
62960
  }
62953
62961
  }
62954
62962
  if (path) {
@@ -63592,7 +63600,8 @@ var ts;
63592
63600
  if (overflow) {
63593
63601
  return 0 /* False */;
63594
63602
  }
63595
- var id = getRelationKey(source, target, intersectionState | (inPropertyCheck ? 16 /* InPropertyCheck */ : 0), relation);
63603
+ var keyIntersectionState = intersectionState | (inPropertyCheck ? 16 /* InPropertyCheck */ : 0);
63604
+ var id = getRelationKey(source, target, keyIntersectionState, relation, /*ingnoreConstraints*/ false);
63596
63605
  var entry = relation.get(id);
63597
63606
  if (entry !== undefined) {
63598
63607
  if (reportErrors && entry & 2 /* Failed */ && !(entry & 4 /* Reported */)) {
@@ -63619,16 +63628,13 @@ var ts;
63619
63628
  targetStack = [];
63620
63629
  }
63621
63630
  else {
63622
- // generate a key where all type parameter id positions are replaced with unconstrained type parameter ids
63623
- // this isn't perfect - nested type references passed as type arguments will muck up the indexes and thus
63624
- // prevent finding matches- but it should hit up the common cases
63625
- var broadestEquivalentId = id.split(",").map(function (i) { return i.replace(/-\d+/g, function (_match, offset) {
63626
- var index = ts.length(id.slice(0, offset).match(/[-=]/g) || undefined);
63627
- return "=" + index;
63628
- }); }).join(",");
63631
+ // A key that starts with "*" is an indication that we have type references that reference constrained
63632
+ // type parameters. For such keys we also check against the key we would have gotten if all type parameters
63633
+ // were unconstrained.
63634
+ var broadestEquivalentId = id.startsWith("*") ? getRelationKey(source, target, keyIntersectionState, relation, /*ignoreConstraints*/ true) : undefined;
63629
63635
  for (var i = 0; i < maybeCount; i++) {
63630
63636
  // If source and target are already being compared, consider them related with assumptions
63631
- if (id === maybeKeys[i] || broadestEquivalentId === maybeKeys[i]) {
63637
+ if (id === maybeKeys[i] || broadestEquivalentId && broadestEquivalentId === maybeKeys[i]) {
63632
63638
  return 3 /* Maybe */;
63633
63639
  }
63634
63640
  }
@@ -63923,7 +63929,7 @@ var ts;
63923
63929
  originalErrorInfo = undefined;
63924
63930
  }
63925
63931
  }
63926
- else if (isGenericMappedType(target)) {
63932
+ else if (isGenericMappedType(target) && relation !== identityRelation) {
63927
63933
  // Check if source type `S` is related to target type `{ [P in Q]: T }` or `{ [P in Q as R]: T}`.
63928
63934
  var keysRemapped = !!target.declaration.nameType;
63929
63935
  var templateType = getTemplateTypeFromMappedType(target);
@@ -65135,48 +65141,56 @@ var ts;
65135
65141
  function isTypeReferenceWithGenericArguments(type) {
65136
65142
  return isNonDeferredTypeReference(type) && ts.some(getTypeArguments(type), function (t) { return !!(t.flags & 262144 /* TypeParameter */) || isTypeReferenceWithGenericArguments(t); });
65137
65143
  }
65138
- /**
65139
- * getTypeReferenceId(A<T, number, U>) returns "111=0-12=1"
65140
- * where A.id=111 and number.id=12
65141
- */
65142
- function getTypeReferenceId(type, typeParameters, depth) {
65143
- if (depth === void 0) { depth = 0; }
65144
- var result = "" + type.target.id;
65145
- for (var _i = 0, _a = getTypeArguments(type); _i < _a.length; _i++) {
65146
- var t = _a[_i];
65147
- if (isUnconstrainedTypeParameter(t)) {
65148
- var index = typeParameters.indexOf(t);
65149
- if (index < 0) {
65150
- index = typeParameters.length;
65151
- typeParameters.push(t);
65144
+ function getGenericTypeReferenceRelationKey(source, target, postFix, ignoreConstraints) {
65145
+ var typeParameters = [];
65146
+ var constraintMarker = "";
65147
+ var sourceId = getTypeReferenceId(source, 0);
65148
+ var targetId = getTypeReferenceId(target, 0);
65149
+ return "".concat(constraintMarker).concat(sourceId, ",").concat(targetId).concat(postFix);
65150
+ // getTypeReferenceId(A<T, number, U>) returns "111=0-12=1"
65151
+ // where A.id=111 and number.id=12
65152
+ function getTypeReferenceId(type, depth) {
65153
+ if (depth === void 0) { depth = 0; }
65154
+ var result = "" + type.target.id;
65155
+ for (var _i = 0, _a = getTypeArguments(type); _i < _a.length; _i++) {
65156
+ var t = _a[_i];
65157
+ if (t.flags & 262144 /* TypeParameter */) {
65158
+ if (ignoreConstraints || isUnconstrainedTypeParameter(t)) {
65159
+ var index = typeParameters.indexOf(t);
65160
+ if (index < 0) {
65161
+ index = typeParameters.length;
65162
+ typeParameters.push(t);
65163
+ }
65164
+ result += "=" + index;
65165
+ continue;
65166
+ }
65167
+ // We mark type references that reference constrained type parameters such that we know to obtain
65168
+ // and look for a "broadest equivalent key" in the cache.
65169
+ constraintMarker = "*";
65170
+ }
65171
+ else if (depth < 4 && isTypeReferenceWithGenericArguments(t)) {
65172
+ result += "<" + getTypeReferenceId(t, depth + 1) + ">";
65173
+ continue;
65152
65174
  }
65153
- result += "=" + index;
65154
- }
65155
- else if (depth < 4 && isTypeReferenceWithGenericArguments(t)) {
65156
- result += "<" + getTypeReferenceId(t, typeParameters, depth + 1) + ">";
65157
- }
65158
- else {
65159
65175
  result += "-" + t.id;
65160
65176
  }
65177
+ return result;
65161
65178
  }
65162
- return result;
65163
65179
  }
65164
65180
  /**
65165
65181
  * To improve caching, the relation key for two generic types uses the target's id plus ids of the type parameters.
65166
65182
  * For other cases, the types ids are used.
65167
65183
  */
65168
- function getRelationKey(source, target, intersectionState, relation) {
65184
+ function getRelationKey(source, target, intersectionState, relation, ignoreConstraints) {
65169
65185
  if (relation === identityRelation && source.id > target.id) {
65170
65186
  var temp = source;
65171
65187
  source = target;
65172
65188
  target = temp;
65173
65189
  }
65174
65190
  var postFix = intersectionState ? ":" + intersectionState : "";
65175
- if (isTypeReferenceWithGenericArguments(source) && isTypeReferenceWithGenericArguments(target)) {
65176
- var typeParameters = [];
65177
- return getTypeReferenceId(source, typeParameters) + "," + getTypeReferenceId(target, typeParameters) + postFix;
65178
- }
65179
- return source.id + "," + target.id + postFix;
65191
+ return isTypeReferenceWithGenericArguments(source) && isTypeReferenceWithGenericArguments(target) ?
65192
+ getGenericTypeReferenceRelationKey(source, target, postFix, ignoreConstraints) :
65193
+ "".concat(source.id, ",").concat(target.id).concat(postFix);
65180
65194
  }
65181
65195
  // Invoke the callback for each underlying property symbol of the given symbol and return the first
65182
65196
  // value that isn't undefined.
@@ -65224,28 +65238,35 @@ var ts;
65224
65238
  !hasBaseType(checkClass, getDeclaringClass(p)) : false; }) ? undefined : checkClass;
65225
65239
  }
65226
65240
  // Return true if the given type is deeply nested. We consider this to be the case when structural type comparisons
65227
- // for 5 or more occurrences or instantiations of the type have been recorded on the given stack. It is possible,
65241
+ // for maxDepth or more occurrences or instantiations of the type have been recorded on the given stack. It is possible,
65228
65242
  // though highly unlikely, for this test to be true in a situation where a chain of instantiations is not infinitely
65229
- // expanding. Effectively, we will generate a false positive when two types are structurally equal to at least 5
65243
+ // expanding. Effectively, we will generate a false positive when two types are structurally equal to at least maxDepth
65230
65244
  // levels, but unequal at some level beyond that.
65231
- // In addition, this will also detect when an indexed access has been chained off of 5 or more times (which is essentially
65232
- // the dual of the structural comparison), and likewise mark the type as deeply nested, potentially adding false positives
65233
- // for finite but deeply expanding indexed accesses (eg, for `Q[P1][P2][P3][P4][P5]`).
65234
- // It also detects when a recursive type reference has expanded 5 or more times, eg, if the true branch of
65245
+ // In addition, this will also detect when an indexed access has been chained off of maxDepth more times (which is
65246
+ // essentially the dual of the structural comparison), and likewise mark the type as deeply nested, potentially adding
65247
+ // false positives for finite but deeply expanding indexed accesses (eg, for `Q[P1][P2][P3][P4][P5]`).
65248
+ // It also detects when a recursive type reference has expanded maxDepth or more times, e.g. if the true branch of
65235
65249
  // `type A<T> = null extends T ? [A<NonNullable<T>>] : [T]`
65236
- // has expanded into `[A<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<T>>>>>>]`
65237
- // in such cases we need to terminate the expansion, and we do so here.
65250
+ // has expanded into `[A<NonNullable<NonNullable<NonNullable<NonNullable<NonNullable<T>>>>>>]`. In such cases we need
65251
+ // to terminate the expansion, and we do so here.
65238
65252
  function isDeeplyNestedType(type, stack, depth, maxDepth) {
65239
- if (maxDepth === void 0) { maxDepth = 5; }
65253
+ if (maxDepth === void 0) { maxDepth = 3; }
65240
65254
  if (depth >= maxDepth) {
65241
65255
  var identity_1 = getRecursionIdentity(type);
65242
65256
  var count = 0;
65257
+ var lastTypeId = 0;
65243
65258
  for (var i = 0; i < depth; i++) {
65244
- if (getRecursionIdentity(stack[i]) === identity_1) {
65245
- count++;
65246
- if (count >= maxDepth) {
65247
- return true;
65259
+ var t = stack[i];
65260
+ if (getRecursionIdentity(t) === identity_1) {
65261
+ // We only count occurrences with a higher type id than the previous occurrence, since higher
65262
+ // type ids are an indicator of newer instantiations caused by recursion.
65263
+ if (t.id >= lastTypeId) {
65264
+ count++;
65265
+ if (count >= maxDepth) {
65266
+ return true;
65267
+ }
65248
65268
  }
65269
+ lastTypeId = t.id;
65249
65270
  }
65250
65271
  }
65251
65272
  }
@@ -65984,7 +66005,8 @@ var ts;
65984
66005
  (resolveName(param, param.name.escapedText, 788968 /* Type */, undefined, param.name.escapedText, /*isUse*/ true) ||
65985
66006
  param.name.originalKeywordKind && ts.isTypeNodeKind(param.name.originalKeywordKind))) {
65986
66007
  var newName = "arg" + param.parent.parameters.indexOf(param);
65987
- errorOrSuggestion(noImplicitAny, declaration, ts.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1, newName, ts.declarationNameToString(param.name));
66008
+ var typeName = ts.declarationNameToString(param.name) + (param.dotDotDotToken ? "[]" : "");
66009
+ errorOrSuggestion(noImplicitAny, declaration, ts.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1, newName, typeName);
65988
66010
  return;
65989
66011
  }
65990
66012
  diagnostic = declaration.dotDotDotToken ?
@@ -67287,11 +67309,11 @@ var ts;
67287
67309
  case 79 /* Identifier */:
67288
67310
  if (!ts.isThisInTypeQuery(node)) {
67289
67311
  var symbol = getResolvedSymbol(node);
67290
- return symbol !== unknownSymbol ? (flowContainer ? getNodeId(flowContainer) : "-1") + "|" + getTypeId(declaredType) + "|" + getTypeId(initialType) + "|" + getSymbolId(symbol) : undefined;
67312
+ return symbol !== unknownSymbol ? "".concat(flowContainer ? getNodeId(flowContainer) : "-1", "|").concat(getTypeId(declaredType), "|").concat(getTypeId(initialType), "|").concat(getSymbolId(symbol)) : undefined;
67291
67313
  }
67292
67314
  // falls through
67293
67315
  case 108 /* ThisKeyword */:
67294
- return "0|" + (flowContainer ? getNodeId(flowContainer) : "-1") + "|" + getTypeId(declaredType) + "|" + getTypeId(initialType);
67316
+ return "0|".concat(flowContainer ? getNodeId(flowContainer) : "-1", "|").concat(getTypeId(declaredType), "|").concat(getTypeId(initialType));
67295
67317
  case 229 /* NonNullExpression */:
67296
67318
  case 211 /* ParenthesizedExpression */:
67297
67319
  return getFlowCacheKey(node.expression, declaredType, initialType, flowContainer);
@@ -71053,7 +71075,7 @@ var ts;
71053
71075
  !leftName ? rightName :
71054
71076
  !rightName ? leftName :
71055
71077
  undefined;
71056
- var paramSymbol = createSymbol(1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0), paramName || "arg" + i);
71078
+ var paramSymbol = createSymbol(1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0), paramName || "arg".concat(i));
71057
71079
  paramSymbol.type = isRestParam ? createArrayType(unionParamType) : unionParamType;
71058
71080
  params[i] = paramSymbol;
71059
71081
  }
@@ -72834,7 +72856,7 @@ var ts;
72834
72856
  }
72835
72857
  function getSuggestedSymbolForNonexistentSymbol(location, outerName, meaning) {
72836
72858
  ts.Debug.assert(outerName !== undefined, "outername should always be defined");
72837
- var result = resolveNameHelper(location, outerName, meaning, /*nameNotFoundMessage*/ undefined, outerName, /*isUse*/ false, /*excludeGlobals*/ false, function (symbols, name, meaning) {
72859
+ var result = resolveNameHelper(location, outerName, meaning, /*nameNotFoundMessage*/ undefined, outerName, /*isUse*/ false, /*excludeGlobals*/ false, /*getSpellingSuggestions*/ true, function (symbols, name, meaning) {
72838
72860
  ts.Debug.assertEqual(outerName, name, "name should equal outerName");
72839
72861
  var symbol = getSymbol(symbols, name, meaning);
72840
72862
  // Sometimes the symbol is found when location is a return type of a function: `typeof x` and `x` is declared in the body of the function
@@ -78357,7 +78379,9 @@ var ts;
78357
78379
  var typeReferenceNode = ts.tryCast(node.parent, ts.isTypeReferenceType);
78358
78380
  if (!typeReferenceNode)
78359
78381
  return undefined;
78360
- var typeParameters = getTypeParametersForTypeReference(typeReferenceNode); // TODO: GH#18217
78382
+ var typeParameters = getTypeParametersForTypeReference(typeReferenceNode);
78383
+ if (!typeParameters)
78384
+ return undefined;
78361
78385
  var constraint = getConstraintOfTypeParameter(typeParameters[typeReferenceNode.typeArguments.indexOf(node)]);
78362
78386
  return constraint && instantiateType(constraint, createTypeMapper(typeParameters, getEffectiveTypeArguments(typeReferenceNode, typeParameters)));
78363
78387
  }
@@ -80964,7 +80988,7 @@ var ts;
80964
80988
  function getPropertyNameForKnownSymbolName(symbolName) {
80965
80989
  var ctorType = getGlobalESSymbolConstructorSymbol(/*reportErrors*/ false);
80966
80990
  var uniqueType = ctorType && getTypeOfPropertyOfType(getTypeOfSymbol(ctorType), ts.escapeLeadingUnderscores(symbolName));
80967
- return uniqueType && isTypeUsableAsPropertyName(uniqueType) ? getPropertyNameFromType(uniqueType) : "__@" + symbolName;
80991
+ return uniqueType && isTypeUsableAsPropertyName(uniqueType) ? getPropertyNameFromType(uniqueType) : "__@".concat(symbolName);
80968
80992
  }
80969
80993
  /**
80970
80994
  * Gets the *yield*, *return*, and *next* types of an `Iterable`-like or `AsyncIterable`-like
@@ -87936,7 +87960,7 @@ var ts;
87936
87960
  value >= 52 && value < 62 ? 48 /* _0 */ + value - 52 :
87937
87961
  value === 62 ? 43 /* plus */ :
87938
87962
  value === 63 ? 47 /* slash */ :
87939
- ts.Debug.fail(value + ": not a base64 value");
87963
+ ts.Debug.fail("".concat(value, ": not a base64 value"));
87940
87964
  }
87941
87965
  function base64FormatDecode(ch) {
87942
87966
  return ch >= 65 /* A */ && ch <= 90 /* Z */ ? ch - 65 /* A */ :
@@ -88011,7 +88035,7 @@ var ts;
88011
88035
  var mappings = ts.arrayFrom(decoder, processMapping);
88012
88036
  if (decoder.error !== undefined) {
88013
88037
  if (host.log) {
88014
- host.log("Encountered error while decoding sourcemap: " + decoder.error);
88038
+ host.log("Encountered error while decoding sourcemap: ".concat(decoder.error));
88015
88039
  }
88016
88040
  decodedMappings = ts.emptyArray;
88017
88041
  }
@@ -91677,7 +91701,7 @@ var ts;
91677
91701
  var propertyName = ts.isPropertyAccessExpression(originalNode)
91678
91702
  ? ts.declarationNameToString(originalNode.name)
91679
91703
  : ts.getTextOfNode(originalNode.argumentExpression);
91680
- ts.addSyntheticTrailingComment(substitute, 3 /* MultiLineCommentTrivia */, " " + propertyName + " ");
91704
+ ts.addSyntheticTrailingComment(substitute, 3 /* MultiLineCommentTrivia */, " ".concat(propertyName, " "));
91681
91705
  }
91682
91706
  return substitute;
91683
91707
  }
@@ -93069,8 +93093,8 @@ var ts;
93069
93093
  }
93070
93094
  function createHoistedVariableForClass(name, node) {
93071
93095
  var className = getPrivateIdentifierEnvironment().className;
93072
- var prefix = className ? "_" + className : "";
93073
- var identifier = factory.createUniqueName(prefix + "_" + name, 16 /* Optimistic */);
93096
+ var prefix = className ? "_".concat(className) : "";
93097
+ var identifier = factory.createUniqueName("".concat(prefix, "_").concat(name), 16 /* Optimistic */);
93074
93098
  if (resolver.getNodeCheckFlags(node) & 524288 /* BlockScopedBindingInLoop */) {
93075
93099
  addBlockScopedVariable(identifier);
93076
93100
  }
@@ -94968,7 +94992,7 @@ var ts;
94968
94992
  specifierSourceImports = ts.createMap();
94969
94993
  currentFileState.utilizedImplicitRuntimeImports.set(importSource, specifierSourceImports);
94970
94994
  }
94971
- var generatedName = factory.createUniqueName("_" + name, 16 /* Optimistic */ | 32 /* FileLevel */ | 64 /* AllowNameSubstitution */);
94995
+ var generatedName = factory.createUniqueName("_".concat(name), 16 /* Optimistic */ | 32 /* FileLevel */ | 64 /* AllowNameSubstitution */);
94972
94996
  var specifier = factory.createImportSpecifier(/*isTypeOnly*/ false, factory.createIdentifier(name), generatedName);
94973
94997
  generatedName.generatedImportReference = specifier;
94974
94998
  specifierSourceImports.set(name, specifier);
@@ -96107,11 +96131,11 @@ var ts;
96107
96131
  }
96108
96132
  else {
96109
96133
  if (node.kind === 245 /* BreakStatement */) {
96110
- labelMarker = "break-" + label.escapedText;
96134
+ labelMarker = "break-".concat(label.escapedText);
96111
96135
  setLabeledJump(convertedLoopState, /*isBreak*/ true, ts.idText(label), labelMarker);
96112
96136
  }
96113
96137
  else {
96114
- labelMarker = "continue-" + label.escapedText;
96138
+ labelMarker = "continue-".concat(label.escapedText);
96115
96139
  setLabeledJump(convertedLoopState, /*isBreak*/ false, ts.idText(label), labelMarker);
96116
96140
  }
96117
96141
  }
@@ -104920,7 +104944,7 @@ var ts;
104920
104944
  return getTypeAliasDeclarationVisibilityError;
104921
104945
  }
104922
104946
  else {
104923
- return ts.Debug.assertNever(node, "Attempted to set a declaration diagnostic context for unhandled node kind: " + ts.SyntaxKind[node.kind]);
104947
+ return ts.Debug.assertNever(node, "Attempted to set a declaration diagnostic context for unhandled node kind: ".concat(ts.SyntaxKind[node.kind]));
104924
104948
  }
104925
104949
  function getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccessibilityResult) {
104926
104950
  if (node.kind === 253 /* VariableDeclaration */ || node.kind === 202 /* BindingElement */) {
@@ -105131,7 +105155,7 @@ var ts;
105131
105155
  ts.Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2 :
105132
105156
  ts.Diagnostics.Parameter_0_of_accessor_has_or_is_using_private_name_1;
105133
105157
  default:
105134
- return ts.Debug.fail("Unknown parent for parameter: " + ts.SyntaxKind[node.parent.kind]);
105158
+ return ts.Debug.fail("Unknown parent for parameter: ".concat(ts.SyntaxKind[node.parent.kind]));
105135
105159
  }
105136
105160
  }
105137
105161
  function getTypeParameterConstraintVisibilityError() {
@@ -105889,7 +105913,7 @@ var ts;
105889
105913
  while (ts.length(lateMarkedStatements)) {
105890
105914
  var i = lateMarkedStatements.shift();
105891
105915
  if (!ts.isLateVisibilityPaintedStatement(i)) {
105892
- 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));
105916
+ 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));
105893
105917
  }
105894
105918
  var priorNeedsDeclare = needsDeclare;
105895
105919
  needsDeclare = i.parent && ts.isSourceFile(i.parent) && !(ts.isExternalModule(i.parent) && isBundledEmit);
@@ -106078,7 +106102,7 @@ var ts;
106078
106102
  return cleanup(input);
106079
106103
  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));
106080
106104
  }
106081
- default: ts.Debug.assertNever(input, "Attempted to process unhandled node kind: " + ts.SyntaxKind[input.kind]);
106105
+ default: ts.Debug.assertNever(input, "Attempted to process unhandled node kind: ".concat(ts.SyntaxKind[input.kind]));
106082
106106
  }
106083
106107
  }
106084
106108
  if (ts.isTupleTypeNode(input) && (ts.getLineAndCharacterOfPosition(currentSourceFile, input.pos).line === ts.getLineAndCharacterOfPosition(currentSourceFile, input.end).line)) {
@@ -106369,7 +106393,7 @@ var ts;
106369
106393
  if (extendsClause_1 && !ts.isEntityNameExpression(extendsClause_1.expression) && extendsClause_1.expression.kind !== 104 /* NullKeyword */) {
106370
106394
  // We must add a temporary declaration for the extends clause expression
106371
106395
  var oldId = input.name ? ts.unescapeLeadingUnderscores(input.name.escapedText) : "default";
106372
- var newId_1 = factory.createUniqueName(oldId + "_base", 16 /* Optimistic */);
106396
+ var newId_1 = factory.createUniqueName("".concat(oldId, "_base"), 16 /* Optimistic */);
106373
106397
  getSymbolAccessibilityDiagnostic = function () { return ({
106374
106398
  diagnosticMessage: ts.Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1,
106375
106399
  errorNode: extendsClause_1,
@@ -106410,7 +106434,7 @@ var ts;
106410
106434
  }
106411
106435
  }
106412
106436
  // Anything left unhandled is an error, so this should be unreachable
106413
- return ts.Debug.assertNever(input, "Unhandled top-level node in declaration emit: " + ts.SyntaxKind[input.kind]);
106437
+ return ts.Debug.assertNever(input, "Unhandled top-level node in declaration emit: ".concat(ts.SyntaxKind[input.kind]));
106414
106438
  function cleanup(node) {
106415
106439
  if (isEnclosingDeclaration(input)) {
106416
106440
  enclosingDeclaration = previousEnclosingDeclaration;
@@ -107302,13 +107326,13 @@ var ts;
107302
107326
  if (ts.fileExtensionIs(inputFileName, ".json" /* Json */))
107303
107327
  return;
107304
107328
  if (js && configFile.options.sourceMap) {
107305
- addOutput(js + ".map");
107329
+ addOutput("".concat(js, ".map"));
107306
107330
  }
107307
107331
  if (ts.getEmitDeclarations(configFile.options)) {
107308
107332
  var dts = getOutputDeclarationFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory);
107309
107333
  addOutput(dts);
107310
107334
  if (configFile.options.declarationMap) {
107311
- addOutput(dts + ".map");
107335
+ addOutput("".concat(dts, ".map"));
107312
107336
  }
107313
107337
  }
107314
107338
  }
@@ -107377,7 +107401,7 @@ var ts;
107377
107401
  function getFirstProjectOutput(configFile, ignoreCase) {
107378
107402
  if (ts.outFile(configFile.options)) {
107379
107403
  var jsFilePath = getOutputPathsForBundle(configFile.options, /*forceDtsPaths*/ false).jsFilePath;
107380
- return ts.Debug.checkDefined(jsFilePath, "project " + configFile.options.configFilePath + " expected to have at least one output");
107404
+ return ts.Debug.checkDefined(jsFilePath, "project ".concat(configFile.options.configFilePath, " expected to have at least one output"));
107381
107405
  }
107382
107406
  var getCommonSourceDirectory = ts.memoize(function () { return getCommonSourceDirectoryOfConfig(configFile, ignoreCase); });
107383
107407
  for (var _a = 0, _b = configFile.fileNames; _a < _b.length; _a++) {
@@ -107396,7 +107420,7 @@ var ts;
107396
107420
  var buildInfoPath = getTsBuildInfoEmitOutputFilePath(configFile.options);
107397
107421
  if (buildInfoPath)
107398
107422
  return buildInfoPath;
107399
- return ts.Debug.fail("project " + configFile.options.configFilePath + " expected to have at least one output");
107423
+ return ts.Debug.fail("project ".concat(configFile.options.configFilePath, " expected to have at least one output"));
107400
107424
  }
107401
107425
  ts.getFirstProjectOutput = getFirstProjectOutput;
107402
107426
  /*@internal*/
@@ -107622,7 +107646,7 @@ var ts;
107622
107646
  if (sourceMappingURL) {
107623
107647
  if (!writer.isAtStartOfLine())
107624
107648
  writer.rawWrite(newLine);
107625
- writer.writeComment("//# " + "sourceMappingURL" + "=" + sourceMappingURL); // Tools can sometimes see this line as a source mapping url comment
107649
+ writer.writeComment("//# ".concat("sourceMappingURL", "=").concat(sourceMappingURL)); // Tools can sometimes see this line as a source mapping url comment
107626
107650
  }
107627
107651
  // Write the source map
107628
107652
  if (sourceMapFilePath) {
@@ -107671,7 +107695,7 @@ var ts;
107671
107695
  // Encode the sourceMap into the sourceMap url
107672
107696
  var sourceMapText = sourceMapGenerator.toString();
107673
107697
  var base64SourceMapText = ts.base64encode(ts.sys, sourceMapText);
107674
- return "data:application/json;base64," + base64SourceMapText;
107698
+ return "data:application/json;base64,".concat(base64SourceMapText);
107675
107699
  }
107676
107700
  var sourceMapFile = ts.getBaseFileName(ts.normalizeSlashes(ts.Debug.checkDefined(sourceMapFilePath)));
107677
107701
  if (mapOptions.mapRoot) {
@@ -107851,7 +107875,7 @@ var ts;
107851
107875
  return;
107852
107876
  break;
107853
107877
  default:
107854
- ts.Debug.fail("Unexpected path: " + name);
107878
+ ts.Debug.fail("Unexpected path: ".concat(name));
107855
107879
  }
107856
107880
  outputFiles.push({ name: name, text: text, writeByteOrderMark: writeByteOrderMark });
107857
107881
  },
@@ -108711,7 +108735,7 @@ var ts;
108711
108735
  return writeTokenNode(node, writeKeyword);
108712
108736
  if (ts.isTokenKind(node.kind))
108713
108737
  return writeTokenNode(node, writePunctuation);
108714
- ts.Debug.fail("Unhandled SyntaxKind: " + ts.Debug.formatSyntaxKind(node.kind) + ".");
108738
+ ts.Debug.fail("Unhandled SyntaxKind: ".concat(ts.Debug.formatSyntaxKind(node.kind), "."));
108715
108739
  }
108716
108740
  function emitMappedTypeParameter(node) {
108717
108741
  emit(node.name);
@@ -108881,13 +108905,13 @@ var ts;
108881
108905
  }
108882
108906
  }
108883
108907
  function emitPlaceholder(hint, node, snippet) {
108884
- nonEscapingWrite("${" + snippet.order + ":"); // `${2:`
108908
+ nonEscapingWrite("${".concat(snippet.order, ":")); // `${2:`
108885
108909
  pipelineEmitWithHintWorker(hint, node, /*allowSnippets*/ false); // `...`
108886
108910
  nonEscapingWrite("}"); // `}`
108887
108911
  // `${2:...}`
108888
108912
  }
108889
108913
  function emitTabStop(snippet) {
108890
- nonEscapingWrite("$" + snippet.order);
108914
+ nonEscapingWrite("$".concat(snippet.order));
108891
108915
  }
108892
108916
  //
108893
108917
  // Identifiers
@@ -110609,17 +110633,17 @@ var ts;
110609
110633
  writeLine();
110610
110634
  }
110611
110635
  if (currentSourceFile && currentSourceFile.moduleName) {
110612
- writeComment("/// <amd-module name=\"" + currentSourceFile.moduleName + "\" />");
110636
+ writeComment("/// <amd-module name=\"".concat(currentSourceFile.moduleName, "\" />"));
110613
110637
  writeLine();
110614
110638
  }
110615
110639
  if (currentSourceFile && currentSourceFile.amdDependencies) {
110616
110640
  for (var _a = 0, _b = currentSourceFile.amdDependencies; _a < _b.length; _a++) {
110617
110641
  var dep = _b[_a];
110618
110642
  if (dep.name) {
110619
- writeComment("/// <amd-dependency name=\"" + dep.name + "\" path=\"" + dep.path + "\" />");
110643
+ writeComment("/// <amd-dependency name=\"".concat(dep.name, "\" path=\"").concat(dep.path, "\" />"));
110620
110644
  }
110621
110645
  else {
110622
- writeComment("/// <amd-dependency path=\"" + dep.path + "\" />");
110646
+ writeComment("/// <amd-dependency path=\"".concat(dep.path, "\" />"));
110623
110647
  }
110624
110648
  writeLine();
110625
110649
  }
@@ -110627,7 +110651,7 @@ var ts;
110627
110651
  for (var _c = 0, files_2 = files; _c < files_2.length; _c++) {
110628
110652
  var directive = files_2[_c];
110629
110653
  var pos = writer.getTextPos();
110630
- writeComment("/// <reference path=\"" + directive.fileName + "\" />");
110654
+ writeComment("/// <reference path=\"".concat(directive.fileName, "\" />"));
110631
110655
  if (bundleFileInfo)
110632
110656
  bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "reference" /* Reference */, data: directive.fileName });
110633
110657
  writeLine();
@@ -110635,7 +110659,7 @@ var ts;
110635
110659
  for (var _d = 0, types_24 = types; _d < types_24.length; _d++) {
110636
110660
  var directive = types_24[_d];
110637
110661
  var pos = writer.getTextPos();
110638
- writeComment("/// <reference types=\"" + directive.fileName + "\" />");
110662
+ writeComment("/// <reference types=\"".concat(directive.fileName, "\" />"));
110639
110663
  if (bundleFileInfo)
110640
110664
  bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "type" /* Type */, data: directive.fileName });
110641
110665
  writeLine();
@@ -110643,7 +110667,7 @@ var ts;
110643
110667
  for (var _e = 0, libs_1 = libs; _e < libs_1.length; _e++) {
110644
110668
  var directive = libs_1[_e];
110645
110669
  var pos = writer.getTextPos();
110646
- writeComment("/// <reference lib=\"" + directive.fileName + "\" />");
110670
+ writeComment("/// <reference lib=\"".concat(directive.fileName, "\" />"));
110647
110671
  if (bundleFileInfo)
110648
110672
  bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "lib" /* Lib */, data: directive.fileName });
110649
110673
  writeLine();
@@ -111418,9 +111442,9 @@ var ts;
111418
111442
  var textSourceNode = node.textSourceNode;
111419
111443
  if (ts.isIdentifier(textSourceNode) || ts.isNumericLiteral(textSourceNode)) {
111420
111444
  var text = ts.isNumericLiteral(textSourceNode) ? textSourceNode.text : getTextOfNode(textSourceNode);
111421
- return jsxAttributeEscape ? "\"" + ts.escapeJsxAttributeString(text) + "\"" :
111422
- neverAsciiEscape || (ts.getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ? "\"" + ts.escapeString(text) + "\"" :
111423
- "\"" + ts.escapeNonAsciiString(text) + "\"";
111445
+ return jsxAttributeEscape ? "\"".concat(ts.escapeJsxAttributeString(text), "\"") :
111446
+ neverAsciiEscape || (ts.getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ? "\"".concat(ts.escapeString(text), "\"") :
111447
+ "\"".concat(ts.escapeNonAsciiString(text), "\"");
111424
111448
  }
111425
111449
  else {
111426
111450
  return getLiteralTextOfNode(textSourceNode, neverAsciiEscape, jsxAttributeEscape);
@@ -111897,8 +111921,8 @@ var ts;
111897
111921
  }
111898
111922
  function formatSynthesizedComment(comment) {
111899
111923
  return comment.kind === 3 /* MultiLineCommentTrivia */
111900
- ? "/*" + comment.text + "*/"
111901
- : "//" + comment.text;
111924
+ ? "/*".concat(comment.text, "*/")
111925
+ : "//".concat(comment.text);
111902
111926
  }
111903
111927
  function emitBodyWithDetachedComments(node, detachedRange, emitCallback) {
111904
111928
  enterComment();
@@ -112406,7 +112430,7 @@ var ts;
112406
112430
  var rootResult = tryReadDirectory(rootDir, rootDirPath);
112407
112431
  var rootSymLinkResult;
112408
112432
  if (rootResult !== undefined) {
112409
- return ts.matchFiles(rootDir, extensions, excludes, includes, useCaseSensitiveFileNames, currentDirectory, depth, getFileSystemEntries, realpath, directoryExists);
112433
+ return ts.matchFiles(rootDir, extensions, excludes, includes, useCaseSensitiveFileNames, currentDirectory, depth, getFileSystemEntries, realpath);
112410
112434
  }
112411
112435
  return host.readDirectory(rootDir, extensions, excludes, includes, depth);
112412
112436
  function getFileSystemEntries(dir) {
@@ -112619,7 +112643,7 @@ var ts;
112619
112643
  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;
112620
112644
  var newPath = ts.removeIgnoredPath(fileOrDirectoryPath);
112621
112645
  if (!newPath) {
112622
- writeLog("Project: " + configFileName + " Detected ignored path: " + fileOrDirectory);
112646
+ writeLog("Project: ".concat(configFileName, " Detected ignored path: ").concat(fileOrDirectory));
112623
112647
  return true;
112624
112648
  }
112625
112649
  fileOrDirectoryPath = newPath;
@@ -112628,11 +112652,11 @@ var ts;
112628
112652
  // If the the added or created file or directory is not supported file name, ignore the file
112629
112653
  // But when watched directory is added/removed, we need to reload the file list
112630
112654
  if (ts.hasExtension(fileOrDirectoryPath) && !ts.isSupportedSourceFileName(fileOrDirectory, options, extraFileExtensions)) {
112631
- writeLog("Project: " + configFileName + " Detected file add/remove of non supported extension: " + fileOrDirectory);
112655
+ writeLog("Project: ".concat(configFileName, " Detected file add/remove of non supported extension: ").concat(fileOrDirectory));
112632
112656
  return true;
112633
112657
  }
112634
112658
  if (ts.isExcludedFile(fileOrDirectory, options.configFile.configFileSpecs, ts.getNormalizedAbsolutePath(ts.getDirectoryPath(configFileName), currentDirectory), useCaseSensitiveFileNames, currentDirectory)) {
112635
- writeLog("Project: " + configFileName + " Detected excluded file: " + fileOrDirectory);
112659
+ writeLog("Project: ".concat(configFileName, " Detected excluded file: ").concat(fileOrDirectory));
112636
112660
  return true;
112637
112661
  }
112638
112662
  if (!program)
@@ -112656,7 +112680,7 @@ var ts;
112656
112680
  var builderProgram = !realProgram && !ts.isArray(program) ? program : undefined;
112657
112681
  if (hasSourceFile((filePathWithoutExtension + ".ts" /* Ts */)) ||
112658
112682
  hasSourceFile((filePathWithoutExtension + ".tsx" /* Tsx */))) {
112659
- writeLog("Project: " + configFileName + " Detected output file: " + fileOrDirectory);
112683
+ writeLog("Project: ".concat(configFileName, " Detected output file: ").concat(fileOrDirectory));
112660
112684
  return true;
112661
112685
  }
112662
112686
  return false;
@@ -112724,36 +112748,36 @@ var ts;
112724
112748
  host.useCaseSensitiveFileNames();
112725
112749
  }
112726
112750
  function createExcludeWatcherWithLogging(file, flags, options, detailInfo1, detailInfo2) {
112727
- log("ExcludeWatcher:: Added:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
112751
+ log("ExcludeWatcher:: Added:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo)));
112728
112752
  return {
112729
- close: function () { return log("ExcludeWatcher:: Close:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo)); }
112753
+ close: function () { return log("ExcludeWatcher:: Close:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo))); }
112730
112754
  };
112731
112755
  }
112732
112756
  function createFileWatcherWithLogging(file, cb, flags, options, detailInfo1, detailInfo2) {
112733
- log("FileWatcher:: Added:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
112757
+ log("FileWatcher:: Added:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo)));
112734
112758
  var watcher = triggerInvokingFactory.watchFile(file, cb, flags, options, detailInfo1, detailInfo2);
112735
112759
  return {
112736
112760
  close: function () {
112737
- log("FileWatcher:: Close:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
112761
+ log("FileWatcher:: Close:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo)));
112738
112762
  watcher.close();
112739
112763
  }
112740
112764
  };
112741
112765
  }
112742
112766
  function createDirectoryWatcherWithLogging(file, cb, flags, options, detailInfo1, detailInfo2) {
112743
- var watchInfo = "DirectoryWatcher:: Added:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo);
112767
+ var watchInfo = "DirectoryWatcher:: Added:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
112744
112768
  log(watchInfo);
112745
112769
  var start = ts.timestamp();
112746
112770
  var watcher = triggerInvokingFactory.watchDirectory(file, cb, flags, options, detailInfo1, detailInfo2);
112747
112771
  var elapsed = ts.timestamp() - start;
112748
- log("Elapsed:: " + elapsed + "ms " + watchInfo);
112772
+ log("Elapsed:: ".concat(elapsed, "ms ").concat(watchInfo));
112749
112773
  return {
112750
112774
  close: function () {
112751
- var watchInfo = "DirectoryWatcher:: Close:: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo);
112775
+ var watchInfo = "DirectoryWatcher:: Close:: ".concat(getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo));
112752
112776
  log(watchInfo);
112753
112777
  var start = ts.timestamp();
112754
112778
  watcher.close();
112755
112779
  var elapsed = ts.timestamp() - start;
112756
- log("Elapsed:: " + elapsed + "ms " + watchInfo);
112780
+ log("Elapsed:: ".concat(elapsed, "ms ").concat(watchInfo));
112757
112781
  }
112758
112782
  };
112759
112783
  }
@@ -112763,16 +112787,16 @@ var ts;
112763
112787
  for (var _i = 0; _i < arguments.length; _i++) {
112764
112788
  args[_i] = arguments[_i];
112765
112789
  }
112766
- var triggerredInfo = (key === "watchFile" ? "FileWatcher" : "DirectoryWatcher") + ":: Triggered with " + args[0] + " " + (args[1] !== undefined ? args[1] : "") + ":: " + getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo);
112790
+ 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));
112767
112791
  log(triggerredInfo);
112768
112792
  var start = ts.timestamp();
112769
112793
  cb.call.apply(cb, __spreadArray([/*thisArg*/ undefined], args, false));
112770
112794
  var elapsed = ts.timestamp() - start;
112771
- log("Elapsed:: " + elapsed + "ms " + triggerredInfo);
112795
+ log("Elapsed:: ".concat(elapsed, "ms ").concat(triggerredInfo));
112772
112796
  }, flags, options, detailInfo1, detailInfo2); };
112773
112797
  }
112774
112798
  function getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo) {
112775
- return "WatchInfo: " + file + " " + flags + " " + JSON.stringify(options) + " " + (getDetailWatchInfo ? getDetailWatchInfo(detailInfo1, detailInfo2) : detailInfo2 === undefined ? detailInfo1 : detailInfo1 + " " + detailInfo2);
112799
+ return "WatchInfo: ".concat(file, " ").concat(flags, " ").concat(JSON.stringify(options), " ").concat(getDetailWatchInfo ? getDetailWatchInfo(detailInfo1, detailInfo2) : detailInfo2 === undefined ? detailInfo1 : "".concat(detailInfo1, " ").concat(detailInfo2));
112776
112800
  }
112777
112801
  }
112778
112802
  ts.getWatchFactory = getWatchFactory;
@@ -113079,12 +113103,12 @@ var ts;
113079
113103
  }
113080
113104
  ts.formatDiagnostics = formatDiagnostics;
113081
113105
  function formatDiagnostic(diagnostic, host) {
113082
- var errorMessage = ts.diagnosticCategoryName(diagnostic) + " TS" + diagnostic.code + ": " + flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine()) + host.getNewLine();
113106
+ var errorMessage = "".concat(ts.diagnosticCategoryName(diagnostic), " TS").concat(diagnostic.code, ": ").concat(flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine())).concat(host.getNewLine());
113083
113107
  if (diagnostic.file) {
113084
113108
  var _a = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start), line = _a.line, character = _a.character; // TODO: GH#18217
113085
113109
  var fileName = diagnostic.file.fileName;
113086
113110
  var relativeFileName = ts.convertToRelativePath(fileName, host.getCurrentDirectory(), function (fileName) { return host.getCanonicalFileName(fileName); });
113087
- return relativeFileName + "(" + (line + 1) + "," + (character + 1) + "): " + errorMessage;
113111
+ return "".concat(relativeFileName, "(").concat(line + 1, ",").concat(character + 1, "): ") + errorMessage;
113088
113112
  }
113089
113113
  return errorMessage;
113090
113114
  }
@@ -113172,9 +113196,9 @@ var ts;
113172
113196
  var output = "";
113173
113197
  output += color(relativeFileName, ForegroundColorEscapeSequences.Cyan);
113174
113198
  output += ":";
113175
- output += color("" + (firstLine + 1), ForegroundColorEscapeSequences.Yellow);
113199
+ output += color("".concat(firstLine + 1), ForegroundColorEscapeSequences.Yellow);
113176
113200
  output += ":";
113177
- output += color("" + (firstLineChar + 1), ForegroundColorEscapeSequences.Yellow);
113201
+ output += color("".concat(firstLineChar + 1), ForegroundColorEscapeSequences.Yellow);
113178
113202
  return output;
113179
113203
  }
113180
113204
  ts.formatLocation = formatLocation;
@@ -113188,7 +113212,7 @@ var ts;
113188
113212
  output += " - ";
113189
113213
  }
113190
113214
  output += formatColorAndReset(ts.diagnosticCategoryName(diagnostic), getCategoryFormat(diagnostic.category));
113191
- output += formatColorAndReset(" TS" + diagnostic.code + ": ", ForegroundColorEscapeSequences.Grey);
113215
+ output += formatColorAndReset(" TS".concat(diagnostic.code, ": "), ForegroundColorEscapeSequences.Grey);
113192
113216
  output += flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine());
113193
113217
  if (diagnostic.file) {
113194
113218
  output += host.getNewLine();
@@ -113297,7 +113321,7 @@ var ts;
113297
113321
  var result = void 0;
113298
113322
  var mode = getModeForResolutionAtIndex(containingFile, i);
113299
113323
  i++;
113300
- var cacheKey = mode !== undefined ? mode + "|" + name : name;
113324
+ var cacheKey = mode !== undefined ? "".concat(mode, "|").concat(name) : name;
113301
113325
  if (cache.has(cacheKey)) {
113302
113326
  result = cache.get(cacheKey);
113303
113327
  }
@@ -115381,7 +115405,7 @@ var ts;
115381
115405
  path += (i === 2 ? "/" : "-") + components[i];
115382
115406
  i++;
115383
115407
  }
115384
- var resolveFrom = ts.combinePaths(currentDirectory, "__lib_node_modules_lookup_" + libFileName + "__.ts");
115408
+ var resolveFrom = ts.combinePaths(currentDirectory, "__lib_node_modules_lookup_".concat(libFileName, "__.ts"));
115385
115409
  var localOverrideModuleResult = ts.resolveModuleName("@typescript/lib-" + path, resolveFrom, { moduleResolution: ts.ModuleResolutionKind.NodeJs }, host, moduleResolutionCache);
115386
115410
  if (localOverrideModuleResult === null || localOverrideModuleResult === void 0 ? void 0 : localOverrideModuleResult.resolvedModule) {
115387
115411
  return localOverrideModuleResult.resolvedModule.resolvedFileName;
@@ -116202,12 +116226,12 @@ var ts;
116202
116226
  }
116203
116227
  function directoryExistsIfProjectReferenceDeclDir(dir) {
116204
116228
  var dirPath = host.toPath(dir);
116205
- var dirPathWithTrailingDirectorySeparator = "" + dirPath + ts.directorySeparator;
116229
+ var dirPathWithTrailingDirectorySeparator = "".concat(dirPath).concat(ts.directorySeparator);
116206
116230
  return ts.forEachKey(setOfDeclarationDirectories, function (declDirPath) { return dirPath === declDirPath ||
116207
116231
  // Any parent directory of declaration dir
116208
116232
  ts.startsWith(declDirPath, dirPathWithTrailingDirectorySeparator) ||
116209
116233
  // Any directory inside declaration dir
116210
- ts.startsWith(dirPath, declDirPath + "/"); });
116234
+ ts.startsWith(dirPath, "".concat(declDirPath, "/")); });
116211
116235
  }
116212
116236
  function handleDirectoryCouldBeSymlink(directory) {
116213
116237
  var _a;
@@ -116260,7 +116284,7 @@ var ts;
116260
116284
  if (isFile && result) {
116261
116285
  // Store the real path for the file'
116262
116286
  var absolutePath = ts.getNormalizedAbsolutePath(fileOrDirectory, host.compilerHost.getCurrentDirectory());
116263
- symlinkCache.setSymlinkedFile(fileOrDirectoryPath, "" + symlinkedDirectory.real + absolutePath.replace(new RegExp(directoryPath, "i"), ""));
116287
+ symlinkCache.setSymlinkedFile(fileOrDirectoryPath, "".concat(symlinkedDirectory.real).concat(absolutePath.replace(new RegExp(directoryPath, "i"), "")));
116264
116288
  }
116265
116289
  return result;
116266
116290
  }) || false;
@@ -116718,7 +116742,7 @@ var ts;
116718
116742
  /*forceDtsEmit*/ true);
116719
116743
  var firstDts_1 = ts.firstOrUndefined(emitOutput_1.outputFiles);
116720
116744
  if (firstDts_1) {
116721
- 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; })); });
116745
+ 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; }))); });
116722
116746
  latestSignature = (computeHash || ts.generateDjb2Hash)(firstDts_1.text);
116723
116747
  if (exportedModulesMapCache && latestSignature !== prevSignature) {
116724
116748
  updateExportedModules(sourceFile, emitOutput_1.exportedModulesFromDeclarationEmit, exportedModulesMapCache);
@@ -117226,7 +117250,7 @@ var ts;
117226
117250
  return;
117227
117251
  }
117228
117252
  else {
117229
- 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);
117253
+ 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));
117230
117254
  }
117231
117255
  if (!state.compilerOptions.assumeChangesOnlyAffectDirectDependencies) {
117232
117256
  forEachReferencingModulesOfExportOfAffectedFile(state, affectedFile, function (state, path) { return handleDtsMayChangeOf(state, path, cancellationToken, computeHash); });
@@ -118371,7 +118395,7 @@ var ts;
118371
118395
  failedLookupLocation = ts.isRootedDiskPath(failedLookupLocation) ? ts.normalizePath(failedLookupLocation) : ts.getNormalizedAbsolutePath(failedLookupLocation, getCurrentDirectory());
118372
118396
  var failedLookupPathSplit = failedLookupLocationPath.split(ts.directorySeparator);
118373
118397
  var failedLookupSplit = failedLookupLocation.split(ts.directorySeparator);
118374
- ts.Debug.assert(failedLookupSplit.length === failedLookupPathSplit.length, "FailedLookup: " + failedLookupLocation + " failedLookupLocationPath: " + failedLookupLocationPath);
118398
+ ts.Debug.assert(failedLookupSplit.length === failedLookupPathSplit.length, "FailedLookup: ".concat(failedLookupLocation, " failedLookupLocationPath: ").concat(failedLookupLocationPath));
118375
118399
  if (failedLookupPathSplit.length > rootSplitLength + 1) {
118376
118400
  // Instead of watching root, watch directory in root to avoid watching excluded directories not needed for module resolution
118377
118401
  return {
@@ -119353,13 +119377,15 @@ var ts;
119353
119377
  if (host.fileExists(packageJsonPath)) {
119354
119378
  var packageJsonContent = JSON.parse(host.readFile(packageJsonPath));
119355
119379
  // TODO: Inject `require` or `import` condition based on the intended import mode
119356
- var fromExports = packageJsonContent.exports && typeof packageJsonContent.name === "string" ? tryGetModuleNameFromExports(options, path, packageRootPath, packageJsonContent.name, packageJsonContent.exports, ["node", "types"]) : undefined;
119357
- if (fromExports) {
119358
- var withJsExtension = !ts.hasTSFileExtension(fromExports.moduleFileToTry) ? fromExports : { moduleFileToTry: ts.removeFileExtension(fromExports.moduleFileToTry) + tryGetJSExtensionForFile(fromExports.moduleFileToTry, options) };
119359
- return __assign(__assign({}, withJsExtension), { verbatimFromExports: true });
119360
- }
119361
- if (packageJsonContent.exports) {
119362
- return { moduleFileToTry: path, blockedByExports: true };
119380
+ if (ts.getEmitModuleResolutionKind(options) === ts.ModuleResolutionKind.Node12 || ts.getEmitModuleResolutionKind(options) === ts.ModuleResolutionKind.NodeNext) {
119381
+ var fromExports = packageJsonContent.exports && typeof packageJsonContent.name === "string" ? tryGetModuleNameFromExports(options, path, packageRootPath, packageJsonContent.name, packageJsonContent.exports, ["node", "types"]) : undefined;
119382
+ if (fromExports) {
119383
+ var withJsExtension = !ts.hasTSFileExtension(fromExports.moduleFileToTry) ? fromExports : { moduleFileToTry: ts.removeFileExtension(fromExports.moduleFileToTry) + tryGetJSExtensionForFile(fromExports.moduleFileToTry, options) };
119384
+ return __assign(__assign({}, withJsExtension), { verbatimFromExports: true });
119385
+ }
119386
+ if (packageJsonContent.exports) {
119387
+ return { moduleFileToTry: path, blockedByExports: true };
119388
+ }
119363
119389
  }
119364
119390
  var versionPaths = packageJsonContent.typesVersions
119365
119391
  ? ts.getPackageJsonTypesVersionsPaths(packageJsonContent.typesVersions)
@@ -119483,7 +119509,7 @@ var ts;
119483
119509
  }
119484
119510
  function getJSExtensionForFile(fileName, options) {
119485
119511
  var _a;
119486
- return (_a = tryGetJSExtensionForFile(fileName, options)) !== null && _a !== void 0 ? _a : ts.Debug.fail("Extension " + ts.extensionFromPath(fileName) + " is unsupported:: FileName:: " + fileName);
119512
+ return (_a = tryGetJSExtensionForFile(fileName, options)) !== null && _a !== void 0 ? _a : ts.Debug.fail("Extension ".concat(ts.extensionFromPath(fileName), " is unsupported:: FileName:: ").concat(fileName));
119487
119513
  }
119488
119514
  function tryGetJSExtensionForFile(fileName, options) {
119489
119515
  var ext = ts.tryGetExtensionFromPath(fileName);
@@ -119586,8 +119612,8 @@ var ts;
119586
119612
  return pretty ?
119587
119613
  function (diagnostic, newLine, options) {
119588
119614
  clearScreenIfNotWatchingForFileChanges(system, diagnostic, options);
119589
- var output = "[" + ts.formatColorAndReset(getLocaleTimeString(system), ts.ForegroundColorEscapeSequences.Grey) + "] ";
119590
- output += "" + ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine) + (newLine + newLine);
119615
+ var output = "[".concat(ts.formatColorAndReset(getLocaleTimeString(system), ts.ForegroundColorEscapeSequences.Grey), "] ");
119616
+ output += "".concat(ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)).concat(newLine + newLine);
119591
119617
  system.write(output);
119592
119618
  } :
119593
119619
  function (diagnostic, newLine, options) {
@@ -119595,8 +119621,8 @@ var ts;
119595
119621
  if (!clearScreenIfNotWatchingForFileChanges(system, diagnostic, options)) {
119596
119622
  output += newLine;
119597
119623
  }
119598
- output += getLocaleTimeString(system) + " - ";
119599
- output += "" + ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine) + getPlainDiagnosticFollowingNewLines(diagnostic, newLine);
119624
+ output += "".concat(getLocaleTimeString(system), " - ");
119625
+ output += "".concat(ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)).concat(getPlainDiagnosticFollowingNewLines(diagnostic, newLine));
119600
119626
  system.write(output);
119601
119627
  };
119602
119628
  }
@@ -119624,7 +119650,7 @@ var ts;
119624
119650
  if (errorCount === 0)
119625
119651
  return "";
119626
119652
  var d = ts.createCompilerDiagnostic(errorCount === 1 ? ts.Diagnostics.Found_1_error : ts.Diagnostics.Found_0_errors, errorCount);
119627
- return "" + newLine + ts.flattenDiagnosticMessageText(d.messageText, newLine) + newLine + newLine;
119653
+ return "".concat(newLine).concat(ts.flattenDiagnosticMessageText(d.messageText, newLine)).concat(newLine).concat(newLine);
119628
119654
  }
119629
119655
  ts.getErrorSummaryText = getErrorSummaryText;
119630
119656
  function isBuilderProgram(program) {
@@ -119650,9 +119676,9 @@ var ts;
119650
119676
  var relativeFileName = function (fileName) { return ts.convertToRelativePath(fileName, program.getCurrentDirectory(), getCanonicalFileName); };
119651
119677
  for (var _i = 0, _c = program.getSourceFiles(); _i < _c.length; _i++) {
119652
119678
  var file = _c[_i];
119653
- write("" + toFileName(file, relativeFileName));
119654
- (_a = reasons.get(file.path)) === null || _a === void 0 ? void 0 : _a.forEach(function (reason) { return write(" " + fileIncludeReasonToDiagnostics(program, reason, relativeFileName).messageText); });
119655
- (_b = explainIfFileIsRedirect(file, relativeFileName)) === null || _b === void 0 ? void 0 : _b.forEach(function (d) { return write(" " + d.messageText); });
119679
+ write("".concat(toFileName(file, relativeFileName)));
119680
+ (_a = reasons.get(file.path)) === null || _a === void 0 ? void 0 : _a.forEach(function (reason) { return write(" ".concat(fileIncludeReasonToDiagnostics(program, reason, relativeFileName).messageText)); });
119681
+ (_b = explainIfFileIsRedirect(file, relativeFileName)) === null || _b === void 0 ? void 0 : _b.forEach(function (d) { return write(" ".concat(d.messageText)); });
119656
119682
  }
119657
119683
  }
119658
119684
  ts.explainFiles = explainFiles;
@@ -119692,7 +119718,7 @@ var ts;
119692
119718
  if (isJsonFile && !ts.endsWith(includeSpec, ".json" /* Json */))
119693
119719
  return false;
119694
119720
  var pattern = ts.getPatternFromSpec(includeSpec, basePath, "files");
119695
- return !!pattern && ts.getRegexFromPattern("(" + pattern + ")$", useCaseSensitiveFileNames).test(fileName);
119721
+ return !!pattern && ts.getRegexFromPattern("(".concat(pattern, ")$"), useCaseSensitiveFileNames).test(fileName);
119696
119722
  });
119697
119723
  }
119698
119724
  ts.getMatchedIncludeSpec = getMatchedIncludeSpec;
@@ -119701,7 +119727,7 @@ var ts;
119701
119727
  var options = program.getCompilerOptions();
119702
119728
  if (ts.isReferencedFile(reason)) {
119703
119729
  var referenceLocation = ts.getReferencedFileLocation(function (path) { return program.getSourceFileByPath(path); }, reason);
119704
- var referenceText = ts.isReferenceFileLocation(referenceLocation) ? referenceLocation.file.text.substring(referenceLocation.pos, referenceLocation.end) : "\"" + referenceLocation.text + "\"";
119730
+ var referenceText = ts.isReferenceFileLocation(referenceLocation) ? referenceLocation.file.text.substring(referenceLocation.pos, referenceLocation.end) : "\"".concat(referenceLocation.text, "\"");
119705
119731
  var message = void 0;
119706
119732
  ts.Debug.assert(ts.isReferenceFileLocation(referenceLocation) || reason.kind === ts.FileIncludeKind.Import, "Only synthetic references are imports");
119707
119733
  switch (reason.kind) {
@@ -119825,7 +119851,7 @@ var ts;
119825
119851
  var currentDir_1 = program.getCurrentDirectory();
119826
119852
  ts.forEach(emittedFiles, function (file) {
119827
119853
  var filepath = ts.getNormalizedAbsolutePath(file, currentDir_1);
119828
- write("TSFILE: " + filepath);
119854
+ write("TSFILE: ".concat(filepath));
119829
119855
  });
119830
119856
  listFiles(program, write);
119831
119857
  }
@@ -120153,7 +120179,7 @@ var ts;
120153
120179
  }
120154
120180
  var _b = ts.createWatchFactory(host, compilerOptions), watchFile = _b.watchFile, watchDirectory = _b.watchDirectory, writeLog = _b.writeLog;
120155
120181
  var getCanonicalFileName = ts.createGetCanonicalFileName(useCaseSensitiveFileNames);
120156
- writeLog("Current directory: " + currentDirectory + " CaseSensitiveFileNames: " + useCaseSensitiveFileNames);
120182
+ writeLog("Current directory: ".concat(currentDirectory, " CaseSensitiveFileNames: ").concat(useCaseSensitiveFileNames));
120157
120183
  var configFileWatcher;
120158
120184
  if (configFileName) {
120159
120185
  configFileWatcher = watchFile(configFileName, scheduleProgramReload, ts.PollingInterval.High, watchOptions, ts.WatchType.ConfigFile);
@@ -120302,10 +120328,10 @@ var ts;
120302
120328
  function createNewProgram(hasInvalidatedResolution) {
120303
120329
  // Compile the program
120304
120330
  writeLog("CreatingProgramWith::");
120305
- writeLog(" roots: " + JSON.stringify(rootFileNames));
120306
- writeLog(" options: " + JSON.stringify(compilerOptions));
120331
+ writeLog(" roots: ".concat(JSON.stringify(rootFileNames)));
120332
+ writeLog(" options: ".concat(JSON.stringify(compilerOptions)));
120307
120333
  if (projectReferences)
120308
- writeLog(" projectReferences: " + JSON.stringify(projectReferences));
120334
+ writeLog(" projectReferences: ".concat(JSON.stringify(projectReferences)));
120309
120335
  var needsUpdateInTypeRootWatch = hasChangedCompilerOptions || !getCurrentProgram();
120310
120336
  hasChangedCompilerOptions = false;
120311
120337
  hasChangedConfigFileParsingErrors = false;
@@ -120466,7 +120492,7 @@ var ts;
120466
120492
  return resolutionCache.invalidateResolutionsOfFailedLookupLocations();
120467
120493
  }
120468
120494
  var pending = clearInvalidateResolutionsOfFailedLookupLocations();
120469
- writeLog("Scheduling invalidateFailedLookup" + (pending ? ", Cancelled earlier one" : ""));
120495
+ writeLog("Scheduling invalidateFailedLookup".concat(pending ? ", Cancelled earlier one" : ""));
120470
120496
  timerToInvalidateFailedLookupResolutions = host.setTimeout(invalidateResolutionsOfFailedLookup, 250);
120471
120497
  }
120472
120498
  function invalidateResolutionsOfFailedLookup() {
@@ -120526,7 +120552,7 @@ var ts;
120526
120552
  synchronizeProgram();
120527
120553
  }
120528
120554
  function reloadConfigFile() {
120529
- writeLog("Reloading config file: " + configFileName);
120555
+ writeLog("Reloading config file: ".concat(configFileName));
120530
120556
  reloadLevel = ts.ConfigFileProgramReloadLevel.None;
120531
120557
  if (cachedDirectoryStructureHost) {
120532
120558
  cachedDirectoryStructureHost.clearCache();
@@ -120567,7 +120593,7 @@ var ts;
120567
120593
  return config.parsedCommandLine;
120568
120594
  }
120569
120595
  }
120570
- writeLog("Loading config file: " + configFileName);
120596
+ writeLog("Loading config file: ".concat(configFileName));
120571
120597
  var parsedCommandLine = host.getParsedCommandLine ?
120572
120598
  host.getParsedCommandLine(configFileName) :
120573
120599
  getParsedCommandLineFromConfigFileHost(configFileName);
@@ -120871,8 +120897,8 @@ var ts;
120871
120897
  */
120872
120898
  function createBuilderStatusReporter(system, pretty) {
120873
120899
  return function (diagnostic) {
120874
- var output = pretty ? "[" + ts.formatColorAndReset(ts.getLocaleTimeString(system), ts.ForegroundColorEscapeSequences.Grey) + "] " : ts.getLocaleTimeString(system) + " - ";
120875
- output += "" + ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine) + (system.newLine + system.newLine);
120900
+ var output = pretty ? "[".concat(ts.formatColorAndReset(ts.getLocaleTimeString(system), ts.ForegroundColorEscapeSequences.Grey), "] ") : "".concat(ts.getLocaleTimeString(system), " - ");
120901
+ output += "".concat(ts.flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)).concat(system.newLine + system.newLine);
120876
120902
  system.write(output);
120877
120903
  };
120878
120904
  }
@@ -121647,7 +121673,7 @@ var ts;
121647
121673
  function listEmittedFile(_a, proj, file) {
121648
121674
  var write = _a.write;
121649
121675
  if (write && proj.options.listEmittedFiles) {
121650
- write("TSFILE: " + file);
121676
+ write("TSFILE: ".concat(file));
121651
121677
  }
121652
121678
  }
121653
121679
  function getOldProgram(_a, proj, parsed) {
@@ -121676,7 +121702,7 @@ var ts;
121676
121702
  function buildErrors(state, resolvedPath, program, config, diagnostics, buildResult, errorType) {
121677
121703
  var canEmitBuildInfo = !(buildResult & BuildResultFlags.SyntaxErrors) && program && !ts.outFile(program.getCompilerOptions());
121678
121704
  reportAndStoreErrors(state, resolvedPath, diagnostics);
121679
- state.projectStatus.set(resolvedPath, { type: ts.UpToDateStatusType.Unbuildable, reason: errorType + " errors" });
121705
+ state.projectStatus.set(resolvedPath, { type: ts.UpToDateStatusType.Unbuildable, reason: "".concat(errorType, " errors") });
121680
121706
  if (canEmitBuildInfo)
121681
121707
  return { buildResult: buildResult, step: BuildStep.EmitBuildInfo };
121682
121708
  afterProgramDone(state, program, config);
@@ -121704,7 +121730,7 @@ var ts;
121704
121730
  if (!host.fileExists(inputFile)) {
121705
121731
  return {
121706
121732
  type: ts.UpToDateStatusType.Unbuildable,
121707
- reason: inputFile + " does not exist"
121733
+ reason: "".concat(inputFile, " does not exist")
121708
121734
  };
121709
121735
  }
121710
121736
  if (!force) {
@@ -122063,7 +122089,7 @@ var ts;
122063
122089
  }
122064
122090
  }
122065
122091
  if (filesToDelete) {
122066
- reportStatus(state, ts.Diagnostics.A_non_dry_build_would_delete_the_following_files_Colon_0, filesToDelete.map(function (f) { return "\r\n * " + f; }).join(""));
122092
+ 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(""));
122067
122093
  }
122068
122094
  return ts.ExitStatus.Success;
122069
122095
  }
@@ -124891,7 +124917,7 @@ var ts;
124891
124917
  var prefix = ts.isJSDocLink(link) ? "link"
124892
124918
  : ts.isJSDocLinkCode(link) ? "linkcode"
124893
124919
  : "linkplain";
124894
- var parts = [linkPart("{@" + prefix + " ")];
124920
+ var parts = [linkPart("{@".concat(prefix, " "))];
124895
124921
  if (!link.name) {
124896
124922
  if (link.text)
124897
124923
  parts.push(linkTextPart(link.text));
@@ -125139,7 +125165,7 @@ var ts;
125139
125165
  function getUniqueName(baseName, sourceFile) {
125140
125166
  var nameText = baseName;
125141
125167
  for (var i = 1; !ts.isFileLevelUniqueName(sourceFile, nameText); i++) {
125142
- nameText = baseName + "_" + i;
125168
+ nameText = "".concat(baseName, "_").concat(i);
125143
125169
  }
125144
125170
  return nameText;
125145
125171
  }
@@ -125249,7 +125275,7 @@ var ts;
125249
125275
  // Editors can pass in undefined or empty string - we want to infer the preference in those cases.
125250
125276
  var quotePreference = getQuotePreference(sourceFile, preferences);
125251
125277
  var quoted = JSON.stringify(text);
125252
- return quotePreference === 0 /* Single */ ? "'" + ts.stripQuotes(quoted).replace(/'/g, "\\'").replace(/\\"/g, '"') + "'" : quoted;
125278
+ return quotePreference === 0 /* Single */ ? "'".concat(ts.stripQuotes(quoted).replace(/'/g, "\\'").replace(/\\"/g, '"'), "'") : quoted;
125253
125279
  }
125254
125280
  ts.quote = quote;
125255
125281
  function isEqualityOperatorKind(kind) {
@@ -125621,7 +125647,7 @@ var ts;
125621
125647
  var components = ts.getPathComponents(ts.getPackageNameFromTypesPackageName(fullSpecifier)).slice(1);
125622
125648
  // Scoped packages
125623
125649
  if (ts.startsWith(components[0], "@")) {
125624
- return components[0] + "/" + components[1];
125650
+ return "".concat(components[0], "/").concat(components[1]);
125625
125651
  }
125626
125652
  return components[0];
125627
125653
  }
@@ -125728,13 +125754,13 @@ var ts;
125728
125754
  ts.getNameForExportedSymbol = getNameForExportedSymbol;
125729
125755
  function getSymbolParentOrFail(symbol) {
125730
125756
  var _a;
125731
- return ts.Debug.checkDefined(symbol.parent, "Symbol parent was undefined. Flags: " + ts.Debug.formatSymbolFlags(symbol.flags) + ". " +
125732
- ("Declarations: " + ((_a = symbol.declarations) === null || _a === void 0 ? void 0 : _a.map(function (d) {
125757
+ return ts.Debug.checkDefined(symbol.parent, "Symbol parent was undefined. Flags: ".concat(ts.Debug.formatSymbolFlags(symbol.flags), ". ") +
125758
+ "Declarations: ".concat((_a = symbol.declarations) === null || _a === void 0 ? void 0 : _a.map(function (d) {
125733
125759
  var kind = ts.Debug.formatSyntaxKind(d.kind);
125734
125760
  var inJS = ts.isInJSFile(d);
125735
125761
  var expression = d.expression;
125736
- return (inJS ? "[JS]" : "") + kind + (expression ? " (expression: " + ts.Debug.formatSyntaxKind(expression.kind) + ")" : "");
125737
- }).join(", ")) + "."));
125762
+ return (inJS ? "[JS]" : "") + kind + (expression ? " (expression: ".concat(ts.Debug.formatSyntaxKind(expression.kind), ")") : "");
125763
+ }).join(", "), "."));
125738
125764
  }
125739
125765
  /**
125740
125766
  * Useful to check whether a string contains another string at a specific index
@@ -125942,7 +125968,7 @@ var ts;
125942
125968
  : checker.tryFindAmbientModule(info.moduleName));
125943
125969
  var symbol = info.symbol || cachedSymbol || ts.Debug.checkDefined(exportKind === 2 /* ExportEquals */
125944
125970
  ? checker.resolveExternalModuleSymbol(moduleSymbol)
125945
- : checker.tryGetMemberInModuleExportsAndProperties(ts.unescapeLeadingUnderscores(info.symbolTableKey), moduleSymbol), "Could not find symbol '" + info.symbolName + "' by key '" + info.symbolTableKey + "' in module " + moduleSymbol.name);
125971
+ : checker.tryGetMemberInModuleExportsAndProperties(ts.unescapeLeadingUnderscores(info.symbolTableKey), moduleSymbol), "Could not find symbol '".concat(info.symbolName, "' by key '").concat(info.symbolTableKey, "' in module ").concat(moduleSymbol.name));
125946
125972
  symbols.set(id, [symbol, moduleSymbol]);
125947
125973
  return {
125948
125974
  symbol: symbol,
@@ -125955,7 +125981,7 @@ var ts;
125955
125981
  }
125956
125982
  function key(importedName, symbol, ambientModuleName, checker) {
125957
125983
  var moduleKey = ambientModuleName || "";
125958
- return importedName + "|" + ts.getSymbolId(ts.skipAlias(symbol, checker)) + "|" + moduleKey;
125984
+ return "".concat(importedName, "|").concat(ts.getSymbolId(ts.skipAlias(symbol, checker)), "|").concat(moduleKey);
125959
125985
  }
125960
125986
  function parseKey(key) {
125961
125987
  var symbolName = key.substring(0, key.indexOf("|"));
@@ -126035,7 +126061,7 @@ var ts;
126035
126061
  if (autoImportProvider) {
126036
126062
  var start = ts.timestamp();
126037
126063
  forEachExternalModule(autoImportProvider.getTypeChecker(), autoImportProvider.getSourceFiles(), function (module, file) { return cb(module, file, autoImportProvider, /*isFromPackageJson*/ true); });
126038
- (_b = host.log) === null || _b === void 0 ? void 0 : _b.call(host, "forEachExternalModuleToImportFrom autoImportProvider: " + (ts.timestamp() - start));
126064
+ (_b = host.log) === null || _b === void 0 ? void 0 : _b.call(host, "forEachExternalModuleToImportFrom autoImportProvider: ".concat(ts.timestamp() - start));
126039
126065
  }
126040
126066
  }
126041
126067
  ts.forEachExternalModuleToImportFrom = forEachExternalModuleToImportFrom;
@@ -126089,7 +126115,7 @@ var ts;
126089
126115
  }
126090
126116
  });
126091
126117
  });
126092
- (_e = host.log) === null || _e === void 0 ? void 0 : _e.call(host, "getExportInfoMap: done in " + (ts.timestamp() - start) + " ms");
126118
+ (_e = host.log) === null || _e === void 0 ? void 0 : _e.call(host, "getExportInfoMap: done in ".concat(ts.timestamp() - start, " ms"));
126093
126119
  return cache;
126094
126120
  }
126095
126121
  ts.getExportInfoMap = getExportInfoMap;
@@ -126622,7 +126648,7 @@ var ts;
126622
126648
  return { spans: spans, endOfLineState: 0 /* None */ };
126623
126649
  function pushClassification(start, end, type) {
126624
126650
  var length = end - start;
126625
- ts.Debug.assert(length > 0, "Classification had non-positive length of " + length);
126651
+ ts.Debug.assert(length > 0, "Classification had non-positive length of ".concat(length));
126626
126652
  spans.push(start);
126627
126653
  spans.push(length);
126628
126654
  spans.push(type);
@@ -127490,7 +127516,7 @@ var ts;
127490
127516
  case ".d.cts" /* Dcts */: return ".d.cts" /* dctsModifier */;
127491
127517
  case ".cjs" /* Cjs */: return ".cjs" /* cjsModifier */;
127492
127518
  case ".cts" /* Cts */: return ".cts" /* ctsModifier */;
127493
- case ".tsbuildinfo" /* TsBuildInfo */: return ts.Debug.fail("Extension " + ".tsbuildinfo" /* TsBuildInfo */ + " is unsupported.");
127519
+ case ".tsbuildinfo" /* TsBuildInfo */: return ts.Debug.fail("Extension ".concat(".tsbuildinfo" /* TsBuildInfo */, " is unsupported."));
127494
127520
  case undefined: return "" /* none */;
127495
127521
  default:
127496
127522
  return ts.Debug.assertNever(extension);
@@ -128219,10 +128245,10 @@ var ts;
128219
128245
  var resolvedFromCacheCount = 0;
128220
128246
  var cacheAttemptCount = 0;
128221
128247
  var result = cb({ tryResolve: tryResolve, resolutionLimitExceeded: function () { return resolutionLimitExceeded; } });
128222
- var hitRateMessage = cacheAttemptCount ? " (" + (resolvedFromCacheCount / cacheAttemptCount * 100).toFixed(1) + "% hit rate)" : "";
128223
- (_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);
128224
- (_b = host.log) === null || _b === void 0 ? void 0 : _b.call(host, logPrefix + ": response is " + (resolutionLimitExceeded ? "incomplete" : "complete"));
128225
- (_c = host.log) === null || _c === void 0 ? void 0 : _c.call(host, logPrefix + ": " + (ts.timestamp() - start));
128248
+ var hitRateMessage = cacheAttemptCount ? " (".concat((resolvedFromCacheCount / cacheAttemptCount * 100).toFixed(1), "% hit rate)") : "";
128249
+ (_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));
128250
+ (_b = host.log) === null || _b === void 0 ? void 0 : _b.call(host, "".concat(logPrefix, ": response is ").concat(resolutionLimitExceeded ? "incomplete" : "complete"));
128251
+ (_c = host.log) === null || _c === void 0 ? void 0 : _c.call(host, "".concat(logPrefix, ": ").concat(ts.timestamp() - start));
128226
128252
  return result;
128227
128253
  function tryResolve(exportInfo, isFromAmbientModule) {
128228
128254
  if (isFromAmbientModule) {
@@ -128525,15 +128551,15 @@ var ts;
128525
128551
  var useBraces = origin && originIsSymbolMember(origin) || needsConvertPropertyAccess;
128526
128552
  if (origin && originIsThisType(origin)) {
128527
128553
  insertText = needsConvertPropertyAccess
128528
- ? "this" + (insertQuestionDot ? "?." : "") + "[" + quotePropertyName(sourceFile, preferences, name) + "]"
128529
- : "this" + (insertQuestionDot ? "?." : ".") + name;
128554
+ ? "this".concat(insertQuestionDot ? "?." : "", "[").concat(quotePropertyName(sourceFile, preferences, name), "]")
128555
+ : "this".concat(insertQuestionDot ? "?." : ".").concat(name);
128530
128556
  }
128531
128557
  // We should only have needsConvertPropertyAccess if there's a property access to convert. But see #21790.
128532
128558
  // 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.
128533
128559
  else if ((useBraces || insertQuestionDot) && propertyAccessToConvert) {
128534
- insertText = useBraces ? needsConvertPropertyAccess ? "[" + quotePropertyName(sourceFile, preferences, name) + "]" : "[" + name + "]" : name;
128560
+ insertText = useBraces ? needsConvertPropertyAccess ? "[".concat(quotePropertyName(sourceFile, preferences, name), "]") : "[".concat(name, "]") : name;
128535
128561
  if (insertQuestionDot || propertyAccessToConvert.questionDotToken) {
128536
- insertText = "?." + insertText;
128562
+ insertText = "?.".concat(insertText);
128537
128563
  }
128538
128564
  var dot = ts.findChildOfKind(propertyAccessToConvert, 24 /* DotToken */, sourceFile) ||
128539
128565
  ts.findChildOfKind(propertyAccessToConvert, 28 /* QuestionDotToken */, sourceFile);
@@ -128547,7 +128573,7 @@ var ts;
128547
128573
  if (isJsxInitializer) {
128548
128574
  if (insertText === undefined)
128549
128575
  insertText = name;
128550
- insertText = "{" + insertText + "}";
128576
+ insertText = "{".concat(insertText, "}");
128551
128577
  if (typeof isJsxInitializer !== "boolean") {
128552
128578
  replacementSpan = ts.createTextSpanFromNode(isJsxInitializer, sourceFile);
128553
128579
  }
@@ -128560,8 +128586,8 @@ var ts;
128560
128586
  if (precedingToken && ts.positionIsASICandidate(precedingToken.end, precedingToken.parent, sourceFile)) {
128561
128587
  awaitText = ";";
128562
128588
  }
128563
- awaitText += "(await " + propertyAccessToConvert.expression.getText() + ")";
128564
- insertText = needsConvertPropertyAccess ? "" + awaitText + insertText : "" + awaitText + (insertQuestionDot ? "?." : ".") + insertText;
128589
+ awaitText += "(await ".concat(propertyAccessToConvert.expression.getText(), ")");
128590
+ insertText = needsConvertPropertyAccess ? "".concat(awaitText).concat(insertText) : "".concat(awaitText).concat(insertQuestionDot ? "?." : ".").concat(insertText);
128565
128591
  replacementSpan = ts.createTextSpanFromBounds(propertyAccessToConvert.getStart(sourceFile), propertyAccessToConvert.end);
128566
128592
  }
128567
128593
  if (originIsResolvedExport(origin)) {
@@ -128582,8 +128608,24 @@ var ts;
128582
128608
  source = CompletionSource.ClassMemberSnippet;
128583
128609
  }
128584
128610
  }
128611
+ // Before offering up a JSX attribute snippet, ensure that we aren't potentially completing
128612
+ // a tag name; this may appear as an attribute after the "<" when the tag has not yet been
128613
+ // closed, as in:
128614
+ //
128615
+ // return <>
128616
+ // foo <butto|
128617
+ // </>
128618
+ //
128619
+ // We can detect this case by checking if both:
128620
+ //
128621
+ // 1. The location is "<", so we are completing immediately after it.
128622
+ // 2. The "<" has the same position as its parent, so is not a binary expression.
128585
128623
  var kind = ts.SymbolDisplay.getSymbolKind(typeChecker, symbol, location);
128586
- if (kind === "JSX attribute" /* jsxAttribute */ && preferences.includeCompletionsWithSnippetText && preferences.jsxAttributeCompletionStyle && preferences.jsxAttributeCompletionStyle !== "none") {
128624
+ if (kind === "JSX attribute" /* jsxAttribute */
128625
+ && (location.kind !== 29 /* LessThanToken */ || location.pos !== location.parent.pos)
128626
+ && preferences.includeCompletionsWithSnippetText
128627
+ && preferences.jsxAttributeCompletionStyle
128628
+ && preferences.jsxAttributeCompletionStyle !== "none") {
128587
128629
  var useBraces_1 = preferences.jsxAttributeCompletionStyle === "braces";
128588
128630
  var type = typeChecker.getTypeOfSymbolAtLocation(symbol, location);
128589
128631
  // If is boolean like or undefined, don't return a snippet we want just to return the completion.
@@ -128592,7 +128634,7 @@ var ts;
128592
128634
  && !(type.flags & 1048576 /* Union */ && ts.find(type.types, function (type) { return !!(type.flags & 528 /* BooleanLike */); }))) {
128593
128635
  if (type.flags & 402653316 /* StringLike */ || (type.flags & 1048576 /* Union */ && ts.every(type.types, function (type) { return !!(type.flags & (402653316 /* StringLike */ | 32768 /* Undefined */)); }))) {
128594
128636
  // If is string like or undefined use quotes
128595
- insertText = ts.escapeSnippetText(name) + "=" + ts.quote(sourceFile, preferences, "$1");
128637
+ insertText = "".concat(ts.escapeSnippetText(name), "=").concat(ts.quote(sourceFile, preferences, "$1"));
128596
128638
  isSnippet = true;
128597
128639
  }
128598
128640
  else {
@@ -128601,12 +128643,9 @@ var ts;
128601
128643
  }
128602
128644
  }
128603
128645
  if (useBraces_1) {
128604
- insertText = ts.escapeSnippetText(name) + "={$1}";
128646
+ insertText = "".concat(ts.escapeSnippetText(name), "={$1}");
128605
128647
  isSnippet = true;
128606
128648
  }
128607
- if (isSnippet) {
128608
- replacementSpan = ts.createTextSpanFromNode(location, sourceFile);
128609
- }
128610
128649
  }
128611
128650
  if (insertText !== undefined && !preferences.includeCompletionsWithInsertText) {
128612
128651
  return undefined;
@@ -128691,7 +128730,7 @@ var ts;
128691
128730
  removeComments: true,
128692
128731
  module: options.module,
128693
128732
  target: options.target,
128694
- omitTrailingSemicolon: true,
128733
+ omitTrailingSemicolon: false,
128695
128734
  newLine: ts.getNewLineKind(ts.getNewLineCharacter(options, ts.maybeBind(host, host.getNewLine))),
128696
128735
  });
128697
128736
  var importAdder = ts.codefix.createImportAdder(sourceFile, program, preferences, host);
@@ -128747,9 +128786,9 @@ var ts;
128747
128786
  }
128748
128787
  node = ts.factory.updateModifiers(node, modifiers & (~presentModifiers));
128749
128788
  completionNodes.push(node);
128750
- }, body, isAbstract);
128789
+ }, body, 2 /* Property */, isAbstract);
128751
128790
  if (completionNodes.length) {
128752
- insertText = printer.printSnippetList(1 /* MultiLine */, ts.factory.createNodeArray(completionNodes), sourceFile);
128791
+ insertText = printer.printSnippetList(1 /* MultiLine */ | 131072 /* NoTrailingNewLine */, ts.factory.createNodeArray(completionNodes), sourceFile);
128753
128792
  }
128754
128793
  return { insertText: insertText, isSnippet: isSnippet, importAdder: importAdder };
128755
128794
  }
@@ -128868,14 +128907,14 @@ var ts;
128868
128907
  var importKind = ts.codefix.getImportKind(sourceFile, exportKind, options, /*forceImportKeyword*/ true);
128869
128908
  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);
128870
128909
  var isImportSpecifierTypeOnly = couldBeTypeOnlyImportSpecifier(importCompletionNode, contextToken);
128871
- var topLevelTypeOnlyText = isTopLevelTypeOnly ? " " + ts.tokenToString(151 /* TypeKeyword */) + " " : " ";
128872
- var importSpecifierTypeOnlyText = isImportSpecifierTypeOnly ? ts.tokenToString(151 /* TypeKeyword */) + " " : "";
128910
+ var topLevelTypeOnlyText = isTopLevelTypeOnly ? " ".concat(ts.tokenToString(151 /* TypeKeyword */), " ") : " ";
128911
+ var importSpecifierTypeOnlyText = isImportSpecifierTypeOnly ? "".concat(ts.tokenToString(151 /* TypeKeyword */), " ") : "";
128873
128912
  var suffix = useSemicolons ? ";" : "";
128874
128913
  switch (importKind) {
128875
- case 3 /* CommonJS */: return { replacementSpan: replacementSpan, insertText: "import" + topLevelTypeOnlyText + ts.escapeSnippetText(name) + tabStop + " = require(" + quotedModuleSpecifier + ")" + suffix };
128876
- case 1 /* Default */: return { replacementSpan: replacementSpan, insertText: "import" + topLevelTypeOnlyText + ts.escapeSnippetText(name) + tabStop + " from " + quotedModuleSpecifier + suffix };
128877
- case 2 /* Namespace */: return { replacementSpan: replacementSpan, insertText: "import" + topLevelTypeOnlyText + "* as " + ts.escapeSnippetText(name) + " from " + quotedModuleSpecifier + suffix };
128878
- case 0 /* Named */: return { replacementSpan: replacementSpan, insertText: "import" + topLevelTypeOnlyText + "{ " + importSpecifierTypeOnlyText + ts.escapeSnippetText(name) + tabStop + " } from " + quotedModuleSpecifier + suffix };
128914
+ case 3 /* CommonJS */: return { replacementSpan: replacementSpan, insertText: "import".concat(topLevelTypeOnlyText).concat(ts.escapeSnippetText(name)).concat(tabStop, " = require(").concat(quotedModuleSpecifier, ")").concat(suffix) };
128915
+ case 1 /* Default */: return { replacementSpan: replacementSpan, insertText: "import".concat(topLevelTypeOnlyText).concat(ts.escapeSnippetText(name)).concat(tabStop, " from ").concat(quotedModuleSpecifier).concat(suffix) };
128916
+ case 2 /* Namespace */: return { replacementSpan: replacementSpan, insertText: "import".concat(topLevelTypeOnlyText, "* as ").concat(ts.escapeSnippetText(name), " from ").concat(quotedModuleSpecifier).concat(suffix) };
128917
+ case 0 /* Named */: return { replacementSpan: replacementSpan, insertText: "import".concat(topLevelTypeOnlyText, "{ ").concat(importSpecifierTypeOnlyText).concat(ts.escapeSnippetText(name)).concat(tabStop, " } from ").concat(quotedModuleSpecifier).concat(suffix) };
128879
128918
  }
128880
128919
  }
128881
128920
  function quotePropertyName(sourceFile, preferences, name) {
@@ -131774,7 +131813,7 @@ var ts;
131774
131813
  }
131775
131814
  function getDocumentRegistryEntry(bucketEntry, scriptKind) {
131776
131815
  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"));
131777
- 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);
131816
+ 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));
131778
131817
  return entry;
131779
131818
  }
131780
131819
  function acquireOrUpdateDocument(fileName, path, compilationSettings, key, scriptSnapshot, version, acquiring, scriptKind) {
@@ -132786,7 +132825,7 @@ var ts;
132786
132825
  sourceFile: def.file,
132787
132826
  name: def.reference.fileName,
132788
132827
  kind: "string" /* string */,
132789
- displayParts: [ts.displayPart("\"" + def.reference.fileName + "\"", ts.SymbolDisplayPartKind.stringLiteral)]
132828
+ displayParts: [ts.displayPart("\"".concat(def.reference.fileName, "\""), ts.SymbolDisplayPartKind.stringLiteral)]
132790
132829
  };
132791
132830
  }
132792
132831
  default:
@@ -133366,7 +133405,7 @@ var ts;
133366
133405
  if (symbol.flags & 33554432 /* Transient */)
133367
133406
  return undefined;
133368
133407
  // Assertions for GH#21814. We should be handling SourceFile symbols in `getReferencedSymbolsForModule` instead of getting here.
133369
- ts.Debug.fail("Unexpected symbol at " + ts.Debug.formatSyntaxKind(node.kind) + ": " + ts.Debug.formatSymbol(symbol));
133408
+ ts.Debug.fail("Unexpected symbol at ".concat(ts.Debug.formatSyntaxKind(node.kind), ": ").concat(ts.Debug.formatSymbol(symbol)));
133370
133409
  }
133371
133410
  return ts.isTypeLiteralNode(decl.parent) && ts.isUnionTypeNode(decl.parent.parent)
133372
133411
  ? checker.getPropertyOfType(checker.getTypeFromTypeNode(decl.parent.parent), symbol.name)
@@ -134650,8 +134689,8 @@ var ts;
134650
134689
  var end = pos + 6; /* "static".length */
134651
134690
  var typeChecker = program.getTypeChecker();
134652
134691
  var symbol = typeChecker.getSymbolAtLocation(node.parent);
134653
- var prefix = symbol ? typeChecker.symbolToString(symbol, node.parent) + " " : "";
134654
- return { text: prefix + "static {}", pos: pos, end: end };
134692
+ var prefix = symbol ? "".concat(typeChecker.symbolToString(symbol, node.parent), " ") : "";
134693
+ return { text: "".concat(prefix, "static {}"), pos: pos, end: end };
134655
134694
  }
134656
134695
  var declName = isConstNamedExpression(node) ? node.parent.name :
134657
134696
  ts.Debug.checkDefined(ts.getNameOfDeclaration(node), "Expected call hierarchy item to have a name");
@@ -135912,7 +135951,7 @@ var ts;
135912
135951
  function getJSDocTagCompletions() {
135913
135952
  return jsDocTagCompletionEntries || (jsDocTagCompletionEntries = ts.map(jsDocTagNames, function (tagName) {
135914
135953
  return {
135915
- name: "@" + tagName,
135954
+ name: "@".concat(tagName),
135916
135955
  kind: "keyword" /* keyword */,
135917
135956
  kindModifiers: "",
135918
135957
  sortText: ts.Completions.SortText.LocationPriority
@@ -136044,11 +136083,11 @@ var ts;
136044
136083
  var name = _a.name, dotDotDotToken = _a.dotDotDotToken;
136045
136084
  var paramName = name.kind === 79 /* Identifier */ ? name.text : "param" + i;
136046
136085
  var type = isJavaScriptFile ? (dotDotDotToken ? "{...any} " : "{any} ") : "";
136047
- return indentationStr + " * @param " + type + paramName + newLine;
136086
+ return "".concat(indentationStr, " * @param ").concat(type).concat(paramName).concat(newLine);
136048
136087
  }).join("");
136049
136088
  }
136050
136089
  function returnsDocComment(indentationStr, newLine) {
136051
- return indentationStr + " * @returns" + newLine;
136090
+ return "".concat(indentationStr, " * @returns").concat(newLine);
136052
136091
  }
136053
136092
  function getCommentOwnerInfo(tokenAtPos, options) {
136054
136093
  return ts.forEachAncestor(tokenAtPos, function (n) { return getCommentOwnerInfoWorker(n, options); });
@@ -136888,7 +136927,7 @@ var ts;
136888
136927
  }
136889
136928
  if (name) {
136890
136929
  var text = ts.isIdentifier(name) ? name.text
136891
- : ts.isElementAccessExpression(name) ? "[" + nodeText(name.argumentExpression) + "]"
136930
+ : ts.isElementAccessExpression(name) ? "[".concat(nodeText(name.argumentExpression), "]")
136892
136931
  : nodeText(name);
136893
136932
  if (text.length > 0) {
136894
136933
  return cleanText(text);
@@ -136898,7 +136937,7 @@ var ts;
136898
136937
  case 303 /* SourceFile */:
136899
136938
  var sourceFile = node;
136900
136939
  return ts.isExternalModule(sourceFile)
136901
- ? "\"" + ts.escapeString(ts.getBaseFileName(ts.removeFileExtension(ts.normalizePath(sourceFile.fileName)))) + "\""
136940
+ ? "\"".concat(ts.escapeString(ts.getBaseFileName(ts.removeFileExtension(ts.normalizePath(sourceFile.fileName)))), "\"")
136902
136941
  : "<global>";
136903
136942
  case 270 /* ExportAssignment */:
136904
136943
  return ts.isExportAssignment(node) && node.isExportEquals ? "export=" /* ExportEquals */ : "default" /* Default */;
@@ -137094,10 +137133,10 @@ var ts;
137094
137133
  if (name !== undefined) {
137095
137134
  name = cleanText(name);
137096
137135
  if (name.length > maxLength) {
137097
- return name + " callback";
137136
+ return "".concat(name, " callback");
137098
137137
  }
137099
137138
  var args = cleanText(ts.mapDefined(parent.arguments, function (a) { return ts.isStringLiteralLike(a) ? a.getText(curSourceFile) : undefined; }).join(", "));
137100
- return name + "(" + args + ") callback";
137139
+ return "".concat(name, "(").concat(args, ") callback");
137101
137140
  }
137102
137141
  }
137103
137142
  return "<function>";
@@ -137110,7 +137149,7 @@ var ts;
137110
137149
  else if (ts.isPropertyAccessExpression(expr)) {
137111
137150
  var left = getCalledExpressionName(expr.expression);
137112
137151
  var right = expr.name.text;
137113
- return left === undefined ? right : left + "." + right;
137152
+ return left === undefined ? right : "".concat(left, ".").concat(right);
137114
137153
  }
137115
137154
  else {
137116
137155
  return undefined;
@@ -139542,7 +139581,7 @@ var ts;
139542
139581
  var _loop_9 = function (n) {
139543
139582
  // If the node is not a subspan of its parent, this is a big problem.
139544
139583
  // There have been crashes that might be caused by this violation.
139545
- 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); });
139584
+ 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)); });
139546
139585
  var argumentInfo = getImmediatelyContainingArgumentOrContextualParameterInfo(n, position, sourceFile, checker);
139547
139586
  if (argumentInfo) {
139548
139587
  return { value: argumentInfo };
@@ -139714,7 +139753,7 @@ var ts;
139714
139753
  (function (InlayHints) {
139715
139754
  var maxHintsLength = 30;
139716
139755
  var leadingParameterNameCommentRegexFactory = function (name) {
139717
- return new RegExp("^\\s?/\\*\\*?\\s?" + name + "\\s?\\*\\/\\s?$");
139756
+ return new RegExp("^\\s?/\\*\\*?\\s?".concat(name, "\\s?\\*\\/\\s?$"));
139718
139757
  };
139719
139758
  function shouldShowParameterNameHints(preferences) {
139720
139759
  return preferences.includeInlayParameterNameHints === "literals" || preferences.includeInlayParameterNameHints === "all";
@@ -139778,7 +139817,7 @@ var ts;
139778
139817
  }
139779
139818
  function addParameterHints(text, position, isFirstVariadicArgument) {
139780
139819
  result.push({
139781
- text: "" + (isFirstVariadicArgument ? "..." : "") + truncation(text, maxHintsLength) + ":",
139820
+ text: "".concat(isFirstVariadicArgument ? "..." : "").concat(truncation(text, maxHintsLength), ":"),
139782
139821
  position: position,
139783
139822
  kind: "Parameter" /* Parameter */,
139784
139823
  whitespaceAfter: true,
@@ -139786,7 +139825,7 @@ var ts;
139786
139825
  }
139787
139826
  function addTypeHints(text, position) {
139788
139827
  result.push({
139789
- text: ": " + truncation(text, maxHintsLength),
139828
+ text: ": ".concat(truncation(text, maxHintsLength)),
139790
139829
  position: position,
139791
139830
  kind: "Type" /* Type */,
139792
139831
  whitespaceBefore: true,
@@ -139794,7 +139833,7 @@ var ts;
139794
139833
  }
139795
139834
  function addEnumMemberValueHints(text, position) {
139796
139835
  result.push({
139797
- text: "= " + truncation(text, maxHintsLength),
139836
+ text: "= ".concat(truncation(text, maxHintsLength)),
139798
139837
  position: position,
139799
139838
  kind: "Enum" /* Enum */,
139800
139839
  whitespaceBefore: true,
@@ -140329,7 +140368,7 @@ var ts;
140329
140368
  }
140330
140369
  }
140331
140370
  function getKeyFromNode(exp) {
140332
- return exp.pos.toString() + ":" + exp.end.toString();
140371
+ return "".concat(exp.pos.toString(), ":").concat(exp.end.toString());
140333
140372
  }
140334
140373
  function canBeConvertedToClass(node, checker) {
140335
140374
  var _a, _b, _c, _d;
@@ -144447,7 +144486,7 @@ var ts;
144447
144486
  var insertAtLineStart = isValidLocationToAddComment(sourceFile, startPosition);
144448
144487
  var token = ts.getTouchingToken(sourceFile, insertAtLineStart ? startPosition : position);
144449
144488
  var indent = sourceFile.text.slice(lineStartPosition, startPosition);
144450
- var text = (insertAtLineStart ? "" : this.newLineCharacter) + "//" + commentText + this.newLineCharacter + indent;
144489
+ var text = "".concat(insertAtLineStart ? "" : this.newLineCharacter, "//").concat(commentText).concat(this.newLineCharacter).concat(indent);
144451
144490
  this.insertText(sourceFile, token.getStart(sourceFile), text);
144452
144491
  };
144453
144492
  ChangeTracker.prototype.insertJsdocCommentBefore = function (sourceFile, node, tag) {
@@ -144647,7 +144686,7 @@ var ts;
144647
144686
  };
144648
144687
  ChangeTracker.prototype.getInsertNodeAfterOptions = function (sourceFile, after) {
144649
144688
  var options = this.getInsertNodeAfterOptionsWorker(after);
144650
- return __assign(__assign({}, options), { prefix: after.end === sourceFile.end && ts.isStatement(after) ? (options.prefix ? "\n" + options.prefix : "\n") : options.prefix });
144689
+ return __assign(__assign({}, options), { prefix: after.end === sourceFile.end && ts.isStatement(after) ? (options.prefix ? "\n".concat(options.prefix) : "\n") : options.prefix });
144651
144690
  };
144652
144691
  ChangeTracker.prototype.getInsertNodeAfterOptionsWorker = function (node) {
144653
144692
  switch (node.kind) {
@@ -144681,7 +144720,7 @@ var ts;
144681
144720
  }
144682
144721
  else {
144683
144722
  // `x => {}` -> `function f(x) {}`
144684
- this.insertText(sourceFile, ts.first(node.parameters).getStart(sourceFile), "function " + name + "(");
144723
+ this.insertText(sourceFile, ts.first(node.parameters).getStart(sourceFile), "function ".concat(name, "("));
144685
144724
  // Replacing full range of arrow to get rid of the leading space -- replace ` =>` with `)`
144686
144725
  this.replaceRange(sourceFile, arrow, ts.factory.createToken(21 /* CloseParenToken */));
144687
144726
  }
@@ -144738,7 +144777,7 @@ var ts;
144738
144777
  var nextNode = containingList[index + 1];
144739
144778
  var startPos = skipWhitespacesAndLineBreaks(sourceFile.text, nextNode.getFullStart());
144740
144779
  // write separator and leading trivia of the next element as suffix
144741
- var suffix = "" + ts.tokenToString(nextToken.kind) + sourceFile.text.substring(nextToken.end, startPos);
144780
+ var suffix = "".concat(ts.tokenToString(nextToken.kind)).concat(sourceFile.text.substring(nextToken.end, startPos));
144742
144781
  this.insertNodesAt(sourceFile, startPos, [newNode], { suffix: suffix });
144743
144782
  }
144744
144783
  }
@@ -144783,7 +144822,7 @@ var ts;
144783
144822
  this.replaceRange(sourceFile, ts.createRange(insertPos), newNode, { indentation: indentation, prefix: this.newLineCharacter });
144784
144823
  }
144785
144824
  else {
144786
- this.replaceRange(sourceFile, ts.createRange(end), newNode, { prefix: ts.tokenToString(separator) + " " });
144825
+ this.replaceRange(sourceFile, ts.createRange(end), newNode, { prefix: "".concat(ts.tokenToString(separator), " ") });
144787
144826
  }
144788
144827
  }
144789
144828
  };
@@ -144885,7 +144924,7 @@ var ts;
144885
144924
  var normalized = ts.stableSort(changesInFile, function (a, b) { return (a.range.pos - b.range.pos) || (a.range.end - b.range.end); });
144886
144925
  var _loop_12 = function (i) {
144887
144926
  ts.Debug.assert(normalized[i].range.end <= normalized[i + 1].range.pos, "Changes overlap", function () {
144888
- return JSON.stringify(normalized[i].range) + " and " + JSON.stringify(normalized[i + 1].range);
144927
+ return "".concat(JSON.stringify(normalized[i].range), " and ").concat(JSON.stringify(normalized[i + 1].range));
144889
144928
  });
144890
144929
  };
144891
144930
  // verify that change intervals do not overlap, except possibly at end points.
@@ -144982,7 +145021,7 @@ var ts;
144982
145021
  function applyChanges(text, changes) {
144983
145022
  for (var i = changes.length - 1; i >= 0; i--) {
144984
145023
  var _a = changes[i], span = _a.span, newText = _a.newText;
144985
- text = "" + text.substring(0, span.start) + newText + text.substring(ts.textSpanEnd(span));
145024
+ text = "".concat(text.substring(0, span.start)).concat(newText).concat(text.substring(ts.textSpanEnd(span)));
144986
145025
  }
144987
145026
  return text;
144988
145027
  }
@@ -146113,9 +146152,6 @@ var ts;
146113
146152
  });
146114
146153
  function makeChange(changeTracker, sourceFile, pos) {
146115
146154
  var token = ts.getTokenAtPosition(sourceFile, pos);
146116
- if (!ts.isIdentifier(token)) {
146117
- return ts.Debug.fail("add-name-to-nameless-parameter operates on identifiers, but got a " + ts.Debug.formatSyntaxKind(token.kind));
146118
- }
146119
146155
  var param = token.parent;
146120
146156
  if (!ts.isParameter(param)) {
146121
146157
  return ts.Debug.fail("Tried to add a parameter name to a non-parameter: " + ts.Debug.formatSyntaxKind(token.kind));
@@ -146123,9 +146159,10 @@ var ts;
146123
146159
  var i = param.parent.parameters.indexOf(param);
146124
146160
  ts.Debug.assert(!param.type, "Tried to add a parameter name to a parameter that already had one.");
146125
146161
  ts.Debug.assert(i > -1, "Parameter not found in parent parameter list.");
146162
+ var typeNode = ts.factory.createTypeReferenceNode(param.name, /*typeArguments*/ undefined);
146126
146163
  var replacement = ts.factory.createParameterDeclaration(
146127
- /*decorators*/ undefined, param.modifiers, param.dotDotDotToken, "arg" + i, param.questionToken, ts.factory.createTypeReferenceNode(token, /*typeArguments*/ undefined), param.initializer);
146128
- changeTracker.replaceNode(sourceFile, token, replacement);
146164
+ /*decorators*/ undefined, param.modifiers, param.dotDotDotToken, "arg" + i, param.questionToken, param.dotDotDotToken ? ts.factory.createArrayTypeNode(typeNode) : typeNode, param.initializer);
146165
+ changeTracker.replaceNode(sourceFile, param, replacement);
146129
146166
  }
146130
146167
  })(codefix = ts.codefix || (ts.codefix = {}));
146131
146168
  })(ts || (ts = {}));
@@ -147456,7 +147493,7 @@ var ts;
147456
147493
  if (!res.has(text) && (originalKeywordKind !== undefined && ts.isNonContextualKeyword(originalKeywordKind)
147457
147494
  || checker.resolveName(text, node, 111551 /* Value */, /*excludeGlobals*/ true))) {
147458
147495
  // Unconditionally add an underscore in case `text` is a keyword.
147459
- res.set(text, makeUniqueName("_" + text, identifiers));
147496
+ res.set(text, makeUniqueName("_".concat(text), identifiers));
147460
147497
  }
147461
147498
  });
147462
147499
  return res;
@@ -147556,7 +147593,7 @@ var ts;
147556
147593
  // `const a = require("b").c` --> `import { c as a } from "./b";
147557
147594
  return convertedImports([makeSingleImport(name.text, propertyName, moduleSpecifier, quotePreference)]);
147558
147595
  default:
147559
- return ts.Debug.assertNever(name, "Convert to ES module got invalid syntax form " + name.kind);
147596
+ return ts.Debug.assertNever(name, "Convert to ES module got invalid syntax form ".concat(name.kind));
147560
147597
  }
147561
147598
  }
147562
147599
  function convertAssignment(sourceFile, checker, assignment, changes, exports, useSitesToUnqualify) {
@@ -147607,7 +147644,7 @@ var ts;
147607
147644
  case 168 /* MethodDeclaration */:
147608
147645
  return !ts.isIdentifier(prop.name) ? undefined : functionExpressionToDeclaration(prop.name.text, [ts.factory.createToken(93 /* ExportKeyword */)], prop, useSitesToUnqualify);
147609
147646
  default:
147610
- ts.Debug.assertNever(prop, "Convert to ES6 got invalid prop kind " + prop.kind);
147647
+ ts.Debug.assertNever(prop, "Convert to ES6 got invalid prop kind ".concat(prop.kind));
147611
147648
  }
147612
147649
  });
147613
147650
  return statements && [statements, false];
@@ -147741,7 +147778,7 @@ var ts;
147741
147778
  case 79 /* Identifier */:
147742
147779
  return convertSingleIdentifierImport(name, moduleSpecifier, checker, identifiers, quotePreference);
147743
147780
  default:
147744
- return ts.Debug.assertNever(name, "Convert to ES module got invalid name kind " + name.kind);
147781
+ return ts.Debug.assertNever(name, "Convert to ES module got invalid name kind ".concat(name.kind));
147745
147782
  }
147746
147783
  }
147747
147784
  /**
@@ -147798,7 +147835,7 @@ var ts;
147798
147835
  // Identifiers helpers
147799
147836
  function makeUniqueName(name, identifiers) {
147800
147837
  while (identifiers.original.has(name) || identifiers.additional.has(name)) {
147801
- name = "_" + name;
147838
+ name = "_".concat(name);
147802
147839
  }
147803
147840
  identifiers.additional.add(name);
147804
147841
  return name;
@@ -147878,7 +147915,7 @@ var ts;
147878
147915
  if (!qualifiedName)
147879
147916
  return undefined;
147880
147917
  var changes = ts.textChanges.ChangeTracker.with(context, function (t) { return doChange(t, context.sourceFile, qualifiedName); });
147881
- var newText = qualifiedName.left.text + "[\"" + qualifiedName.right.text + "\"]";
147918
+ var newText = "".concat(qualifiedName.left.text, "[\"").concat(qualifiedName.right.text, "\"]");
147882
147919
  return [codefix.createCodeFixAction(fixId, changes, [ts.Diagnostics.Rewrite_as_the_indexed_access_type_0, newText], fixId, ts.Diagnostics.Rewrite_all_as_indexed_access_types)];
147883
147920
  },
147884
147921
  fixIds: [fixId],
@@ -148275,7 +148312,7 @@ var ts;
148275
148312
  break;
148276
148313
  }
148277
148314
  default:
148278
- ts.Debug.assertNever(fix, "fix wasn't never - got kind " + fix.kind);
148315
+ ts.Debug.assertNever(fix, "fix wasn't never - got kind ".concat(fix.kind));
148279
148316
  }
148280
148317
  function reduceAddAsTypeOnlyValues(prevValue, newValue) {
148281
148318
  // `NotAllowed` overrides `Required` because one addition of a new import might be required to be type-only
@@ -148319,7 +148356,7 @@ var ts;
148319
148356
  return newEntry;
148320
148357
  }
148321
148358
  function newImportsKey(moduleSpecifier, topLevelTypeOnly) {
148322
- return (topLevelTypeOnly ? 1 : 0) + "|" + moduleSpecifier;
148359
+ return "".concat(topLevelTypeOnly ? 1 : 0, "|").concat(moduleSpecifier);
148323
148360
  }
148324
148361
  }
148325
148362
  function writeFixes(changeTracker) {
@@ -148772,7 +148809,7 @@ var ts;
148772
148809
  case ts.ModuleKind.NodeNext:
148773
148810
  return importingFile.impliedNodeFormat === ts.ModuleKind.ESNext ? 2 /* Namespace */ : 3 /* CommonJS */;
148774
148811
  default:
148775
- return ts.Debug.assertNever(moduleKind, "Unexpected moduleKind " + moduleKind);
148812
+ return ts.Debug.assertNever(moduleKind, "Unexpected moduleKind ".concat(moduleKind));
148776
148813
  }
148777
148814
  }
148778
148815
  function getFixesInfoForNonUMDImport(_a, symbolToken, useAutoImportProvider) {
@@ -148879,7 +148916,7 @@ var ts;
148879
148916
  switch (fix.kind) {
148880
148917
  case 0 /* UseNamespace */:
148881
148918
  addNamespaceQualifier(changes, sourceFile, fix);
148882
- return [ts.Diagnostics.Change_0_to_1, symbolName, fix.namespacePrefix + "." + symbolName];
148919
+ return [ts.Diagnostics.Change_0_to_1, symbolName, "".concat(fix.namespacePrefix, ".").concat(symbolName)];
148883
148920
  case 1 /* JsdocTypeImport */:
148884
148921
  addImportType(changes, sourceFile, fix, quotePreference);
148885
148922
  return [ts.Diagnostics.Change_0_to_1, symbolName, getImportTypePrefix(fix.moduleSpecifier, quotePreference) + symbolName];
@@ -148903,7 +148940,7 @@ var ts;
148903
148940
  return [importKind === 1 /* Default */ ? ts.Diagnostics.Import_default_0_from_module_1 : ts.Diagnostics.Import_0_from_module_1, symbolName, moduleSpecifier];
148904
148941
  }
148905
148942
  default:
148906
- return ts.Debug.assertNever(fix, "Unexpected fix kind " + fix.kind);
148943
+ return ts.Debug.assertNever(fix, "Unexpected fix kind ".concat(fix.kind));
148907
148944
  }
148908
148945
  }
148909
148946
  function doAddExistingFix(changes, sourceFile, clause, defaultImport, namedImports, compilerOptions) {
@@ -148999,7 +149036,7 @@ var ts;
148999
149036
  }
149000
149037
  function getImportTypePrefix(moduleSpecifier, quotePreference) {
149001
149038
  var quote = ts.getQuoteFromPreference(quotePreference);
149002
- return "import(" + quote + moduleSpecifier + quote + ").";
149039
+ return "import(".concat(quote).concat(moduleSpecifier).concat(quote, ").");
149003
149040
  }
149004
149041
  function needsTypeOnly(_a) {
149005
149042
  var addAsTypeOnly = _a.addAsTypeOnly;
@@ -149092,7 +149129,7 @@ var ts;
149092
149129
  lastCharWasValid = isValid;
149093
149130
  }
149094
149131
  // Need `|| "_"` to ensure result isn't empty.
149095
- return !ts.isStringANonContextualKeyword(res) ? res || "_" : "_" + res;
149132
+ return !ts.isStringANonContextualKeyword(res) ? res || "_" : "_".concat(res);
149096
149133
  }
149097
149134
  codefix.moduleSpecifierToValidIdentifier = moduleSpecifierToValidIdentifier;
149098
149135
  })(codefix = ts.codefix || (ts.codefix = {}));
@@ -150292,7 +150329,7 @@ var ts;
150292
150329
  break;
150293
150330
  }
150294
150331
  default:
150295
- ts.Debug.fail("Bad fixId: " + context.fixId);
150332
+ ts.Debug.fail("Bad fixId: ".concat(context.fixId));
150296
150333
  }
150297
150334
  });
150298
150335
  },
@@ -150740,7 +150777,7 @@ var ts;
150740
150777
  if (!isValidCharacter(character)) {
150741
150778
  return;
150742
150779
  }
150743
- var replacement = useHtmlEntity ? htmlEntity[character] : "{" + ts.quote(sourceFile, preferences, character) + "}";
150780
+ var replacement = useHtmlEntity ? htmlEntity[character] : "{".concat(ts.quote(sourceFile, preferences, character), "}");
150744
150781
  changes.replaceRangeWithText(sourceFile, { pos: start, end: start + 1 }, replacement);
150745
150782
  }
150746
150783
  })(codefix = ts.codefix || (ts.codefix = {}));
@@ -150931,11 +150968,11 @@ var ts;
150931
150968
  token = ts.cast(token.parent, ts.isInferTypeNode).typeParameter.name;
150932
150969
  }
150933
150970
  if (ts.isIdentifier(token) && canPrefix(token)) {
150934
- changes.replaceNode(sourceFile, token, ts.factory.createIdentifier("_" + token.text));
150971
+ changes.replaceNode(sourceFile, token, ts.factory.createIdentifier("_".concat(token.text)));
150935
150972
  if (ts.isParameter(token.parent)) {
150936
150973
  ts.getJSDocParameterTags(token.parent).forEach(function (tag) {
150937
150974
  if (ts.isIdentifier(tag.name)) {
150938
- changes.replaceNode(sourceFile, tag.name, ts.factory.createIdentifier("_" + tag.name.text));
150975
+ changes.replaceNode(sourceFile, tag.name, ts.factory.createIdentifier("_".concat(tag.name.text)));
150939
150976
  }
150940
150977
  });
150941
150978
  }
@@ -151271,7 +151308,7 @@ var ts;
151271
151308
  }); }
151272
151309
  });
151273
151310
  function doChange(changes, sourceFile, name) {
151274
- changes.replaceNodeWithText(sourceFile, name, name.text + "()");
151311
+ changes.replaceNodeWithText(sourceFile, name, "".concat(name.text, "()"));
151275
151312
  }
151276
151313
  function getCallName(sourceFile, start) {
151277
151314
  var token = ts.getTokenAtPosition(sourceFile, start);
@@ -152420,7 +152457,7 @@ var ts;
152420
152457
  var parameters = [];
152421
152458
  var length = Math.max.apply(Math, calls.map(function (c) { return c.argumentTypes.length; }));
152422
152459
  var _loop_16 = function (i) {
152423
- var symbol = checker.createSymbol(1 /* FunctionScopedVariable */, ts.escapeLeadingUnderscores("arg" + i));
152460
+ var symbol = checker.createSymbol(1 /* FunctionScopedVariable */, ts.escapeLeadingUnderscores("arg".concat(i)));
152424
152461
  symbol.type = combineTypes(calls.map(function (call) { return call.argumentTypes[i] || checker.getUndefinedType(); }));
152425
152462
  if (calls.some(function (call) { return call.argumentTypes[i] === undefined; })) {
152426
152463
  symbol.flags |= 16777216 /* Optional */;
@@ -152523,7 +152560,7 @@ var ts;
152523
152560
  codefix.createCodeFixActionWithoutFixAll(fixName, [codefix.createFileTextChanges(sourceFile.fileName, [
152524
152561
  ts.createTextChange(sourceFile.checkJsDirective
152525
152562
  ? ts.createTextSpanFromBounds(sourceFile.checkJsDirective.pos, sourceFile.checkJsDirective.end)
152526
- : ts.createTextSpan(0, 0), "// @ts-nocheck" + newLineCharacter),
152563
+ : ts.createTextSpan(0, 0), "// @ts-nocheck".concat(newLineCharacter)),
152527
152564
  ])], ts.Diagnostics.Disable_checking_for_this_file),
152528
152565
  ];
152529
152566
  if (ts.textChanges.isValidLocationToAddComment(sourceFile, span.start)) {
@@ -152579,11 +152616,18 @@ var ts;
152579
152616
  };
152580
152617
  }
152581
152618
  codefix.getNoopSymbolTrackerWithResolver = getNoopSymbolTrackerWithResolver;
152619
+ var PreserveOptionalFlags;
152620
+ (function (PreserveOptionalFlags) {
152621
+ PreserveOptionalFlags[PreserveOptionalFlags["Method"] = 1] = "Method";
152622
+ PreserveOptionalFlags[PreserveOptionalFlags["Property"] = 2] = "Property";
152623
+ PreserveOptionalFlags[PreserveOptionalFlags["All"] = 3] = "All";
152624
+ })(PreserveOptionalFlags = codefix.PreserveOptionalFlags || (codefix.PreserveOptionalFlags = {}));
152582
152625
  /**
152583
152626
  * `addClassElement` will not be called if we can't figure out a representation for `symbol` in `enclosingDeclaration`.
152584
152627
  * @param body If defined, this will be the body of the member node passed to `addClassElement`. Otherwise, the body will default to a stub.
152585
152628
  */
152586
- function addNewNodeForMemberSymbol(symbol, enclosingDeclaration, sourceFile, context, preferences, importAdder, addClassElement, body, isAmbient) {
152629
+ function addNewNodeForMemberSymbol(symbol, enclosingDeclaration, sourceFile, context, preferences, importAdder, addClassElement, body, preserveOptional, isAmbient) {
152630
+ if (preserveOptional === void 0) { preserveOptional = 3 /* All */; }
152587
152631
  if (isAmbient === void 0) { isAmbient = false; }
152588
152632
  var declarations = symbol.getDeclarations();
152589
152633
  if (!(declarations && declarations.length)) {
@@ -152612,7 +152656,7 @@ var ts;
152612
152656
  }
152613
152657
  }
152614
152658
  addClassElement(ts.factory.createPropertyDeclaration(
152615
- /*decorators*/ undefined, modifiers, name, optional ? ts.factory.createToken(57 /* QuestionToken */) : undefined, typeNode,
152659
+ /*decorators*/ undefined, modifiers, name, optional && (preserveOptional & 2 /* Property */) ? ts.factory.createToken(57 /* QuestionToken */) : undefined, typeNode,
152616
152660
  /*initializer*/ undefined));
152617
152661
  break;
152618
152662
  case 171 /* GetAccessor */:
@@ -152676,13 +152720,13 @@ var ts;
152676
152720
  }
152677
152721
  else {
152678
152722
  ts.Debug.assert(declarations.length === signatures.length, "Declarations and signatures should match count");
152679
- addClassElement(createMethodImplementingSignatures(checker, context, enclosingDeclaration, signatures, name, optional, modifiers, quotePreference, body));
152723
+ addClassElement(createMethodImplementingSignatures(checker, context, enclosingDeclaration, signatures, name, optional && !!(preserveOptional & 1 /* Method */), modifiers, quotePreference, body));
152680
152724
  }
152681
152725
  }
152682
152726
  break;
152683
152727
  }
152684
152728
  function outputMethod(quotePreference, signature, modifiers, name, body) {
152685
- var method = createSignatureDeclarationFromSignature(168 /* MethodDeclaration */, context, quotePreference, signature, body, name, modifiers, optional, enclosingDeclaration, importAdder);
152729
+ var method = createSignatureDeclarationFromSignature(168 /* MethodDeclaration */, context, quotePreference, signature, body, name, modifiers, optional && !!(preserveOptional & 1 /* Method */), enclosingDeclaration, importAdder);
152686
152730
  if (method)
152687
152731
  addClassElement(method);
152688
152732
  }
@@ -152782,7 +152826,7 @@ var ts;
152782
152826
  var typeParameters = isJs || typeArguments === undefined
152783
152827
  ? undefined
152784
152828
  : ts.map(typeArguments, function (_, i) {
152785
- return ts.factory.createTypeParameterDeclaration(84 /* T */ + typeArguments.length - 1 <= 90 /* Z */ ? String.fromCharCode(84 /* T */ + i) : "T" + i);
152829
+ return ts.factory.createTypeParameterDeclaration(84 /* T */ + typeArguments.length - 1 <= 90 /* Z */ ? String.fromCharCode(84 /* T */ + i) : "T".concat(i));
152786
152830
  });
152787
152831
  var parameters = createDummyParameters(args.length, names, types, /*minArgumentCount*/ undefined, isJs);
152788
152832
  var type = isJs || contextualType === undefined
@@ -152817,7 +152861,7 @@ var ts;
152817
152861
  /*decorators*/ undefined,
152818
152862
  /*modifiers*/ undefined,
152819
152863
  /*dotDotDotToken*/ undefined,
152820
- /*name*/ names && names[i] || "arg" + i,
152864
+ /*name*/ names && names[i] || "arg".concat(i),
152821
152865
  /*questionToken*/ minArgumentCount !== undefined && i >= minArgumentCount ? ts.factory.createToken(57 /* QuestionToken */) : undefined,
152822
152866
  /*type*/ inJs ? undefined : types && types[i] || ts.factory.createKeywordTypeNode(130 /* AnyKeyword */),
152823
152867
  /*initializer*/ undefined);
@@ -153068,7 +153112,7 @@ var ts;
153068
153112
  }
153069
153113
  var name = declaration.name.text;
153070
153114
  var startWithUnderscore = ts.startsWithUnderscore(name);
153071
- var fieldName = createPropertyName(startWithUnderscore ? name : ts.getUniqueName("_" + name, file), declaration.name);
153115
+ var fieldName = createPropertyName(startWithUnderscore ? name : ts.getUniqueName("_".concat(name), file), declaration.name);
153072
153116
  var accessorName = createPropertyName(startWithUnderscore ? ts.getUniqueName(name.substring(1), file) : name, declaration.name);
153073
153117
  return {
153074
153118
  isStatic: ts.hasStaticModifier(declaration),
@@ -154092,7 +154136,7 @@ var ts;
154092
154136
  changes.insertNodeAfter(exportingSourceFile, exportNode, ts.factory.createExportDefault(ts.factory.createIdentifier(exportName.text)));
154093
154137
  break;
154094
154138
  default:
154095
- ts.Debug.fail("Unexpected exportNode kind " + exportNode.kind);
154139
+ ts.Debug.fail("Unexpected exportNode kind ".concat(exportNode.kind));
154096
154140
  }
154097
154141
  }
154098
154142
  }
@@ -154180,7 +154224,7 @@ var ts;
154180
154224
  break;
154181
154225
  }
154182
154226
  default:
154183
- ts.Debug.assertNever(parent, "Unexpected parent kind " + parent.kind);
154227
+ ts.Debug.assertNever(parent, "Unexpected parent kind ".concat(parent.kind));
154184
154228
  }
154185
154229
  }
154186
154230
  function makeImportSpecifier(propertyName, name) {
@@ -154744,7 +154788,7 @@ var ts;
154744
154788
  var newComment = ts.displayPartsToString(parameterDocComment);
154745
154789
  if (newComment.length) {
154746
154790
  ts.setSyntheticLeadingComments(result, [{
154747
- text: "*\n" + newComment.split("\n").map(function (c) { return " * " + c; }).join("\n") + "\n ",
154791
+ text: "*\n".concat(newComment.split("\n").map(function (c) { return " * ".concat(c); }).join("\n"), "\n "),
154748
154792
  kind: 3 /* MultiLineCommentTrivia */,
154749
154793
  pos: -1,
154750
154794
  end: -1,
@@ -154889,7 +154933,7 @@ var ts;
154889
154933
  usedFunctionNames.set(description, true);
154890
154934
  functionActions.push({
154891
154935
  description: description,
154892
- name: "function_scope_" + i,
154936
+ name: "function_scope_".concat(i),
154893
154937
  kind: extractFunctionAction.kind
154894
154938
  });
154895
154939
  }
@@ -154897,7 +154941,7 @@ var ts;
154897
154941
  else if (!innermostErrorFunctionAction) {
154898
154942
  innermostErrorFunctionAction = {
154899
154943
  description: description,
154900
- name: "function_scope_" + i,
154944
+ name: "function_scope_".concat(i),
154901
154945
  notApplicableReason: getStringError(functionExtraction.errors),
154902
154946
  kind: extractFunctionAction.kind
154903
154947
  };
@@ -154913,7 +154957,7 @@ var ts;
154913
154957
  usedConstantNames.set(description_1, true);
154914
154958
  constantActions.push({
154915
154959
  description: description_1,
154916
- name: "constant_scope_" + i,
154960
+ name: "constant_scope_".concat(i),
154917
154961
  kind: extractConstantAction.kind
154918
154962
  });
154919
154963
  }
@@ -154921,7 +154965,7 @@ var ts;
154921
154965
  else if (!innermostErrorConstantAction) {
154922
154966
  innermostErrorConstantAction = {
154923
154967
  description: description,
154924
- name: "constant_scope_" + i,
154968
+ name: "constant_scope_".concat(i),
154925
154969
  notApplicableReason: getStringError(constantExtraction.errors),
154926
154970
  kind: extractConstantAction.kind
154927
154971
  };
@@ -155505,28 +155549,28 @@ var ts;
155505
155549
  case 212 /* FunctionExpression */:
155506
155550
  case 255 /* FunctionDeclaration */:
155507
155551
  return scope.name
155508
- ? "function '" + scope.name.text + "'"
155552
+ ? "function '".concat(scope.name.text, "'")
155509
155553
  : ts.ANONYMOUS;
155510
155554
  case 213 /* ArrowFunction */:
155511
155555
  return "arrow function";
155512
155556
  case 168 /* MethodDeclaration */:
155513
- return "method '" + scope.name.getText() + "'";
155557
+ return "method '".concat(scope.name.getText(), "'");
155514
155558
  case 171 /* GetAccessor */:
155515
- return "'get " + scope.name.getText() + "'";
155559
+ return "'get ".concat(scope.name.getText(), "'");
155516
155560
  case 172 /* SetAccessor */:
155517
- return "'set " + scope.name.getText() + "'";
155561
+ return "'set ".concat(scope.name.getText(), "'");
155518
155562
  default:
155519
- throw ts.Debug.assertNever(scope, "Unexpected scope kind " + scope.kind);
155563
+ throw ts.Debug.assertNever(scope, "Unexpected scope kind ".concat(scope.kind));
155520
155564
  }
155521
155565
  }
155522
155566
  function getDescriptionForClassLikeDeclaration(scope) {
155523
155567
  return scope.kind === 256 /* ClassDeclaration */
155524
- ? scope.name ? "class '" + scope.name.text + "'" : "anonymous class declaration"
155525
- : scope.name ? "class expression '" + scope.name.text + "'" : "anonymous class expression";
155568
+ ? scope.name ? "class '".concat(scope.name.text, "'") : "anonymous class declaration"
155569
+ : scope.name ? "class expression '".concat(scope.name.text, "'") : "anonymous class expression";
155526
155570
  }
155527
155571
  function getDescriptionForModuleLikeDeclaration(scope) {
155528
155572
  return scope.kind === 261 /* ModuleBlock */
155529
- ? "namespace '" + scope.parent.name.getText() + "'"
155573
+ ? "namespace '".concat(scope.parent.name.getText(), "'")
155530
155574
  : scope.externalModuleIndicator ? 0 /* Module */ : 1 /* Global */;
155531
155575
  }
155532
155576
  var SpecialScope;
@@ -156993,7 +157037,7 @@ var ts;
156993
157037
  case 253 /* VariableDeclaration */:
156994
157038
  return ts.tryCast(node.name, ts.isIdentifier);
156995
157039
  default:
156996
- return ts.Debug.assertNever(node, "Unexpected node kind " + node.kind);
157040
+ return ts.Debug.assertNever(node, "Unexpected node kind ".concat(node.kind));
156997
157041
  }
156998
157042
  }
156999
157043
  function updateNamespaceLikeImport(changes, sourceFile, checker, movedSymbols, newModuleName, newModuleSpecifier, oldImportId, oldImportNode) {
@@ -157030,7 +157074,7 @@ var ts;
157030
157074
  case 253 /* VariableDeclaration */:
157031
157075
  return ts.factory.createVariableDeclaration(newNamespaceId, /*exclamationToken*/ undefined, /*type*/ undefined, createRequireCall(newModuleString));
157032
157076
  default:
157033
- return ts.Debug.assertNever(node, "Unexpected node kind " + node.kind);
157077
+ return ts.Debug.assertNever(node, "Unexpected node kind ".concat(node.kind));
157034
157078
  }
157035
157079
  }
157036
157080
  function moduleSpecifierFromImport(i) {
@@ -157117,7 +157161,7 @@ var ts;
157117
157161
  deleteUnusedImportsInVariableDeclaration(sourceFile, importDecl, changes, isUnused);
157118
157162
  break;
157119
157163
  default:
157120
- ts.Debug.assertNever(importDecl, "Unexpected import decl kind " + importDecl.kind);
157164
+ ts.Debug.assertNever(importDecl, "Unexpected import decl kind ".concat(importDecl.kind));
157121
157165
  }
157122
157166
  }
157123
157167
  function deleteUnusedImportsInDeclaration(sourceFile, importDecl, changes, isUnused) {
@@ -157217,7 +157261,7 @@ var ts;
157217
157261
  var name = ts.combinePaths(inDirectory, newModuleName + extension);
157218
157262
  if (!host.fileExists(name))
157219
157263
  return newModuleName; // TODO: GH#18217
157220
- newModuleName = moduleName + "." + i;
157264
+ newModuleName = "".concat(moduleName, ".").concat(i);
157221
157265
  }
157222
157266
  }
157223
157267
  function getNewModuleName(movedSymbols) {
@@ -157324,7 +157368,7 @@ var ts;
157324
157368
  return name ? makeVariableStatement(name, i.type, createRequireCall(moduleSpecifier), i.parent.flags) : undefined;
157325
157369
  }
157326
157370
  default:
157327
- return ts.Debug.assertNever(i, "Unexpected import kind " + i.kind);
157371
+ return ts.Debug.assertNever(i, "Unexpected import kind ".concat(i.kind));
157328
157372
  }
157329
157373
  }
157330
157374
  function filterNamedBindings(namedBindings, keep) {
@@ -157439,7 +157483,7 @@ var ts;
157439
157483
  case 200 /* ObjectBindingPattern */:
157440
157484
  return ts.firstDefined(name.elements, function (em) { return ts.isOmittedExpression(em) ? undefined : forEachTopLevelDeclarationInBindingName(em.name, cb); });
157441
157485
  default:
157442
- return ts.Debug.assertNever(name, "Unexpected name kind " + name.kind);
157486
+ return ts.Debug.assertNever(name, "Unexpected name kind ".concat(name.kind));
157443
157487
  }
157444
157488
  }
157445
157489
  function nameOfTopLevelDeclaration(d) {
@@ -157500,7 +157544,7 @@ var ts;
157500
157544
  case 237 /* ExpressionStatement */:
157501
157545
  return ts.Debug.fail(); // Shouldn't try to add 'export' keyword to `exports.x = ...`
157502
157546
  default:
157503
- return ts.Debug.assertNever(d, "Unexpected declaration kind " + d.kind);
157547
+ return ts.Debug.assertNever(d, "Unexpected declaration kind ".concat(d.kind));
157504
157548
  }
157505
157549
  }
157506
157550
  function addCommonjsExport(decl) {
@@ -157522,7 +157566,7 @@ var ts;
157522
157566
  case 237 /* ExpressionStatement */:
157523
157567
  return ts.Debug.fail("Can't export an ExpressionStatement"); // Shouldn't try to add 'export' keyword to `exports.x = ...`
157524
157568
  default:
157525
- return ts.Debug.assertNever(decl, "Unexpected decl kind " + decl.kind);
157569
+ return ts.Debug.assertNever(decl, "Unexpected decl kind ".concat(decl.kind));
157526
157570
  }
157527
157571
  }
157528
157572
  /** Creates `exports.x = x;` */
@@ -158160,7 +158204,7 @@ var ts;
158160
158204
  return [functionDeclaration.name, functionDeclaration.parent.name];
158161
158205
  return [functionDeclaration.parent.name];
158162
158206
  default:
158163
- return ts.Debug.assertNever(functionDeclaration, "Unexpected function declaration kind " + functionDeclaration.kind);
158207
+ return ts.Debug.assertNever(functionDeclaration, "Unexpected function declaration kind ".concat(functionDeclaration.kind));
158164
158208
  }
158165
158209
  }
158166
158210
  })(convertParamsToDestructuredObject = refactor.convertParamsToDestructuredObject || (refactor.convertParamsToDestructuredObject = {}));
@@ -158864,7 +158908,7 @@ var ts;
158864
158908
  var textPos = ts.scanner.getTextPos();
158865
158909
  if (textPos <= end) {
158866
158910
  if (token === 79 /* Identifier */) {
158867
- ts.Debug.fail("Did not expect " + ts.Debug.formatSyntaxKind(parent.kind) + " to have an Identifier in its trivia");
158911
+ ts.Debug.fail("Did not expect ".concat(ts.Debug.formatSyntaxKind(parent.kind), " to have an Identifier in its trivia"));
158868
158912
  }
158869
158913
  nodes.push(createNode(token, pos, textPos, parent));
158870
158914
  }
@@ -159746,7 +159790,7 @@ var ts;
159746
159790
  function getValidSourceFile(fileName) {
159747
159791
  var sourceFile = program.getSourceFile(fileName);
159748
159792
  if (!sourceFile) {
159749
- var error = new Error("Could not find source file: '" + fileName + "'.");
159793
+ var error = new Error("Could not find source file: '".concat(fileName, "'."));
159750
159794
  // We've been having trouble debugging this, so attach sidecar data for the tsserver log.
159751
159795
  // See https://github.com/microsoft/TypeScript/issues/30180.
159752
159796
  error.ProgramFiles = program.getSourceFiles().map(function (f) { return f.fileName; });
@@ -160421,7 +160465,7 @@ var ts;
160421
160465
  var element = token.kind === 31 /* GreaterThanToken */ && ts.isJsxOpeningElement(token.parent) ? token.parent.parent
160422
160466
  : ts.isJsxText(token) && ts.isJsxElement(token.parent) ? token.parent : undefined;
160423
160467
  if (element && isUnclosedTag(element)) {
160424
- return { newText: "</" + element.openingElement.tagName.getText(sourceFile) + ">" };
160468
+ return { newText: "</".concat(element.openingElement.tagName.getText(sourceFile), ">") };
160425
160469
  }
160426
160470
  var fragment = token.kind === 31 /* GreaterThanToken */ && ts.isJsxOpeningFragment(token.parent) ? token.parent.parent
160427
160471
  : ts.isJsxText(token) && ts.isJsxFragment(token.parent) ? token.parent : undefined;
@@ -160527,7 +160571,7 @@ var ts;
160527
160571
  pos = commentRange.end + 1;
160528
160572
  }
160529
160573
  else { // If it's not in a comment range, then we need to comment the uncommented portions.
160530
- var newPos = text.substring(pos, textRange.end).search("(" + openMultilineRegex + ")|(" + closeMultilineRegex + ")");
160574
+ var newPos = text.substring(pos, textRange.end).search("(".concat(openMultilineRegex, ")|(").concat(closeMultilineRegex, ")"));
160531
160575
  isCommenting = insertComment !== undefined
160532
160576
  ? insertComment
160533
160577
  : isCommenting || !ts.isTextWhiteSpaceLike(text, pos, newPos === -1 ? textRange.end : pos + newPos); // If isCommenting is already true we don't need to check whitespace again.
@@ -160922,14 +160966,14 @@ var ts;
160922
160966
  case ts.LanguageServiceMode.PartialSemantic:
160923
160967
  invalidOperationsInPartialSemanticMode.forEach(function (key) {
160924
160968
  return ls[key] = function () {
160925
- throw new Error("LanguageService Operation: " + key + " not allowed in LanguageServiceMode.PartialSemantic");
160969
+ throw new Error("LanguageService Operation: ".concat(key, " not allowed in LanguageServiceMode.PartialSemantic"));
160926
160970
  };
160927
160971
  });
160928
160972
  break;
160929
160973
  case ts.LanguageServiceMode.Syntactic:
160930
160974
  invalidOperationsInSyntacticMode.forEach(function (key) {
160931
160975
  return ls[key] = function () {
160932
- throw new Error("LanguageService Operation: " + key + " not allowed in LanguageServiceMode.Syntactic");
160976
+ throw new Error("LanguageService Operation: ".concat(key, " not allowed in LanguageServiceMode.Syntactic"));
160933
160977
  };
160934
160978
  });
160935
160979
  break;
@@ -161911,13 +161955,13 @@ var ts;
161911
161955
  var result = action();
161912
161956
  if (logPerformance) {
161913
161957
  var end = ts.timestamp();
161914
- logger.log(actionDescription + " completed in " + (end - start) + " msec");
161958
+ logger.log("".concat(actionDescription, " completed in ").concat(end - start, " msec"));
161915
161959
  if (ts.isString(result)) {
161916
161960
  var str = result;
161917
161961
  if (str.length > 128) {
161918
161962
  str = str.substring(0, 128) + "...";
161919
161963
  }
161920
- logger.log(" result.length=" + str.length + ", result='" + JSON.stringify(str) + "'");
161964
+ logger.log(" result.length=".concat(str.length, ", result='").concat(JSON.stringify(str), "'"));
161921
161965
  }
161922
161966
  }
161923
161967
  return result;
@@ -161999,7 +162043,7 @@ var ts;
161999
162043
  * Update the list of scripts known to the compiler
162000
162044
  */
162001
162045
  LanguageServiceShimObject.prototype.refresh = function (throwOnError) {
162002
- this.forwardJSONCall("refresh(" + throwOnError + ")", function () { return null; } // eslint-disable-line no-null/no-null
162046
+ this.forwardJSONCall("refresh(".concat(throwOnError, ")"), function () { return null; } // eslint-disable-line no-null/no-null
162003
162047
  );
162004
162048
  };
162005
162049
  LanguageServiceShimObject.prototype.cleanupSemanticCache = function () {
@@ -162015,43 +162059,43 @@ var ts;
162015
162059
  };
162016
162060
  LanguageServiceShimObject.prototype.getSyntacticClassifications = function (fileName, start, length) {
162017
162061
  var _this = this;
162018
- return this.forwardJSONCall("getSyntacticClassifications('" + fileName + "', " + start + ", " + length + ")", function () { return _this.languageService.getSyntacticClassifications(fileName, ts.createTextSpan(start, length)); });
162062
+ return this.forwardJSONCall("getSyntacticClassifications('".concat(fileName, "', ").concat(start, ", ").concat(length, ")"), function () { return _this.languageService.getSyntacticClassifications(fileName, ts.createTextSpan(start, length)); });
162019
162063
  };
162020
162064
  LanguageServiceShimObject.prototype.getSemanticClassifications = function (fileName, start, length) {
162021
162065
  var _this = this;
162022
- return this.forwardJSONCall("getSemanticClassifications('" + fileName + "', " + start + ", " + length + ")", function () { return _this.languageService.getSemanticClassifications(fileName, ts.createTextSpan(start, length)); });
162066
+ return this.forwardJSONCall("getSemanticClassifications('".concat(fileName, "', ").concat(start, ", ").concat(length, ")"), function () { return _this.languageService.getSemanticClassifications(fileName, ts.createTextSpan(start, length)); });
162023
162067
  };
162024
162068
  LanguageServiceShimObject.prototype.getEncodedSyntacticClassifications = function (fileName, start, length) {
162025
162069
  var _this = this;
162026
- return this.forwardJSONCall("getEncodedSyntacticClassifications('" + fileName + "', " + start + ", " + length + ")",
162070
+ return this.forwardJSONCall("getEncodedSyntacticClassifications('".concat(fileName, "', ").concat(start, ", ").concat(length, ")"),
162027
162071
  // directly serialize the spans out to a string. This is much faster to decode
162028
162072
  // on the managed side versus a full JSON array.
162029
162073
  function () { return convertClassifications(_this.languageService.getEncodedSyntacticClassifications(fileName, ts.createTextSpan(start, length))); });
162030
162074
  };
162031
162075
  LanguageServiceShimObject.prototype.getEncodedSemanticClassifications = function (fileName, start, length) {
162032
162076
  var _this = this;
162033
- return this.forwardJSONCall("getEncodedSemanticClassifications('" + fileName + "', " + start + ", " + length + ")",
162077
+ return this.forwardJSONCall("getEncodedSemanticClassifications('".concat(fileName, "', ").concat(start, ", ").concat(length, ")"),
162034
162078
  // directly serialize the spans out to a string. This is much faster to decode
162035
162079
  // on the managed side versus a full JSON array.
162036
162080
  function () { return convertClassifications(_this.languageService.getEncodedSemanticClassifications(fileName, ts.createTextSpan(start, length))); });
162037
162081
  };
162038
162082
  LanguageServiceShimObject.prototype.getSyntacticDiagnostics = function (fileName) {
162039
162083
  var _this = this;
162040
- return this.forwardJSONCall("getSyntacticDiagnostics('" + fileName + "')", function () {
162084
+ return this.forwardJSONCall("getSyntacticDiagnostics('".concat(fileName, "')"), function () {
162041
162085
  var diagnostics = _this.languageService.getSyntacticDiagnostics(fileName);
162042
162086
  return _this.realizeDiagnostics(diagnostics);
162043
162087
  });
162044
162088
  };
162045
162089
  LanguageServiceShimObject.prototype.getSemanticDiagnostics = function (fileName) {
162046
162090
  var _this = this;
162047
- return this.forwardJSONCall("getSemanticDiagnostics('" + fileName + "')", function () {
162091
+ return this.forwardJSONCall("getSemanticDiagnostics('".concat(fileName, "')"), function () {
162048
162092
  var diagnostics = _this.languageService.getSemanticDiagnostics(fileName);
162049
162093
  return _this.realizeDiagnostics(diagnostics);
162050
162094
  });
162051
162095
  };
162052
162096
  LanguageServiceShimObject.prototype.getSuggestionDiagnostics = function (fileName) {
162053
162097
  var _this = this;
162054
- return this.forwardJSONCall("getSuggestionDiagnostics('" + fileName + "')", function () { return _this.realizeDiagnostics(_this.languageService.getSuggestionDiagnostics(fileName)); });
162098
+ return this.forwardJSONCall("getSuggestionDiagnostics('".concat(fileName, "')"), function () { return _this.realizeDiagnostics(_this.languageService.getSuggestionDiagnostics(fileName)); });
162055
162099
  };
162056
162100
  LanguageServiceShimObject.prototype.getCompilerOptionsDiagnostics = function () {
162057
162101
  var _this = this;
@@ -162067,7 +162111,7 @@ var ts;
162067
162111
  */
162068
162112
  LanguageServiceShimObject.prototype.getQuickInfoAtPosition = function (fileName, position) {
162069
162113
  var _this = this;
162070
- return this.forwardJSONCall("getQuickInfoAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getQuickInfoAtPosition(fileName, position); });
162114
+ return this.forwardJSONCall("getQuickInfoAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getQuickInfoAtPosition(fileName, position); });
162071
162115
  };
162072
162116
  /// NAMEORDOTTEDNAMESPAN
162073
162117
  /**
@@ -162076,7 +162120,7 @@ var ts;
162076
162120
  */
162077
162121
  LanguageServiceShimObject.prototype.getNameOrDottedNameSpan = function (fileName, startPos, endPos) {
162078
162122
  var _this = this;
162079
- return this.forwardJSONCall("getNameOrDottedNameSpan('" + fileName + "', " + startPos + ", " + endPos + ")", function () { return _this.languageService.getNameOrDottedNameSpan(fileName, startPos, endPos); });
162123
+ return this.forwardJSONCall("getNameOrDottedNameSpan('".concat(fileName, "', ").concat(startPos, ", ").concat(endPos, ")"), function () { return _this.languageService.getNameOrDottedNameSpan(fileName, startPos, endPos); });
162080
162124
  };
162081
162125
  /**
162082
162126
  * STATEMENTSPAN
@@ -162084,12 +162128,12 @@ var ts;
162084
162128
  */
162085
162129
  LanguageServiceShimObject.prototype.getBreakpointStatementAtPosition = function (fileName, position) {
162086
162130
  var _this = this;
162087
- return this.forwardJSONCall("getBreakpointStatementAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getBreakpointStatementAtPosition(fileName, position); });
162131
+ return this.forwardJSONCall("getBreakpointStatementAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getBreakpointStatementAtPosition(fileName, position); });
162088
162132
  };
162089
162133
  /// SIGNATUREHELP
162090
162134
  LanguageServiceShimObject.prototype.getSignatureHelpItems = function (fileName, position, options) {
162091
162135
  var _this = this;
162092
- return this.forwardJSONCall("getSignatureHelpItems('" + fileName + "', " + position + ")", function () { return _this.languageService.getSignatureHelpItems(fileName, position, options); });
162136
+ return this.forwardJSONCall("getSignatureHelpItems('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getSignatureHelpItems(fileName, position, options); });
162093
162137
  };
162094
162138
  /// GOTO DEFINITION
162095
162139
  /**
@@ -162098,7 +162142,7 @@ var ts;
162098
162142
  */
162099
162143
  LanguageServiceShimObject.prototype.getDefinitionAtPosition = function (fileName, position) {
162100
162144
  var _this = this;
162101
- return this.forwardJSONCall("getDefinitionAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getDefinitionAtPosition(fileName, position); });
162145
+ return this.forwardJSONCall("getDefinitionAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getDefinitionAtPosition(fileName, position); });
162102
162146
  };
162103
162147
  /**
162104
162148
  * Computes the definition location and file for the symbol
@@ -162106,7 +162150,7 @@ var ts;
162106
162150
  */
162107
162151
  LanguageServiceShimObject.prototype.getDefinitionAndBoundSpan = function (fileName, position) {
162108
162152
  var _this = this;
162109
- return this.forwardJSONCall("getDefinitionAndBoundSpan('" + fileName + "', " + position + ")", function () { return _this.languageService.getDefinitionAndBoundSpan(fileName, position); });
162153
+ return this.forwardJSONCall("getDefinitionAndBoundSpan('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getDefinitionAndBoundSpan(fileName, position); });
162110
162154
  };
162111
162155
  /// GOTO Type
162112
162156
  /**
@@ -162115,7 +162159,7 @@ var ts;
162115
162159
  */
162116
162160
  LanguageServiceShimObject.prototype.getTypeDefinitionAtPosition = function (fileName, position) {
162117
162161
  var _this = this;
162118
- return this.forwardJSONCall("getTypeDefinitionAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getTypeDefinitionAtPosition(fileName, position); });
162162
+ return this.forwardJSONCall("getTypeDefinitionAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getTypeDefinitionAtPosition(fileName, position); });
162119
162163
  };
162120
162164
  /// GOTO Implementation
162121
162165
  /**
@@ -162124,37 +162168,37 @@ var ts;
162124
162168
  */
162125
162169
  LanguageServiceShimObject.prototype.getImplementationAtPosition = function (fileName, position) {
162126
162170
  var _this = this;
162127
- return this.forwardJSONCall("getImplementationAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getImplementationAtPosition(fileName, position); });
162171
+ return this.forwardJSONCall("getImplementationAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getImplementationAtPosition(fileName, position); });
162128
162172
  };
162129
162173
  LanguageServiceShimObject.prototype.getRenameInfo = function (fileName, position, options) {
162130
162174
  var _this = this;
162131
- return this.forwardJSONCall("getRenameInfo('" + fileName + "', " + position + ")", function () { return _this.languageService.getRenameInfo(fileName, position, options); });
162175
+ return this.forwardJSONCall("getRenameInfo('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getRenameInfo(fileName, position, options); });
162132
162176
  };
162133
162177
  LanguageServiceShimObject.prototype.getSmartSelectionRange = function (fileName, position) {
162134
162178
  var _this = this;
162135
- return this.forwardJSONCall("getSmartSelectionRange('" + fileName + "', " + position + ")", function () { return _this.languageService.getSmartSelectionRange(fileName, position); });
162179
+ return this.forwardJSONCall("getSmartSelectionRange('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getSmartSelectionRange(fileName, position); });
162136
162180
  };
162137
162181
  LanguageServiceShimObject.prototype.findRenameLocations = function (fileName, position, findInStrings, findInComments, providePrefixAndSuffixTextForRename) {
162138
162182
  var _this = this;
162139
- return this.forwardJSONCall("findRenameLocations('" + fileName + "', " + position + ", " + findInStrings + ", " + findInComments + ", " + providePrefixAndSuffixTextForRename + ")", function () { return _this.languageService.findRenameLocations(fileName, position, findInStrings, findInComments, providePrefixAndSuffixTextForRename); });
162183
+ return this.forwardJSONCall("findRenameLocations('".concat(fileName, "', ").concat(position, ", ").concat(findInStrings, ", ").concat(findInComments, ", ").concat(providePrefixAndSuffixTextForRename, ")"), function () { return _this.languageService.findRenameLocations(fileName, position, findInStrings, findInComments, providePrefixAndSuffixTextForRename); });
162140
162184
  };
162141
162185
  /// GET BRACE MATCHING
162142
162186
  LanguageServiceShimObject.prototype.getBraceMatchingAtPosition = function (fileName, position) {
162143
162187
  var _this = this;
162144
- return this.forwardJSONCall("getBraceMatchingAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getBraceMatchingAtPosition(fileName, position); });
162188
+ return this.forwardJSONCall("getBraceMatchingAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getBraceMatchingAtPosition(fileName, position); });
162145
162189
  };
162146
162190
  LanguageServiceShimObject.prototype.isValidBraceCompletionAtPosition = function (fileName, position, openingBrace) {
162147
162191
  var _this = this;
162148
- return this.forwardJSONCall("isValidBraceCompletionAtPosition('" + fileName + "', " + position + ", " + openingBrace + ")", function () { return _this.languageService.isValidBraceCompletionAtPosition(fileName, position, openingBrace); });
162192
+ return this.forwardJSONCall("isValidBraceCompletionAtPosition('".concat(fileName, "', ").concat(position, ", ").concat(openingBrace, ")"), function () { return _this.languageService.isValidBraceCompletionAtPosition(fileName, position, openingBrace); });
162149
162193
  };
162150
162194
  LanguageServiceShimObject.prototype.getSpanOfEnclosingComment = function (fileName, position, onlyMultiLine) {
162151
162195
  var _this = this;
162152
- return this.forwardJSONCall("getSpanOfEnclosingComment('" + fileName + "', " + position + ")", function () { return _this.languageService.getSpanOfEnclosingComment(fileName, position, onlyMultiLine); });
162196
+ return this.forwardJSONCall("getSpanOfEnclosingComment('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getSpanOfEnclosingComment(fileName, position, onlyMultiLine); });
162153
162197
  };
162154
162198
  /// GET SMART INDENT
162155
162199
  LanguageServiceShimObject.prototype.getIndentationAtPosition = function (fileName, position, options /*Services.EditorOptions*/) {
162156
162200
  var _this = this;
162157
- return this.forwardJSONCall("getIndentationAtPosition('" + fileName + "', " + position + ")", function () {
162201
+ return this.forwardJSONCall("getIndentationAtPosition('".concat(fileName, "', ").concat(position, ")"), function () {
162158
162202
  var localOptions = JSON.parse(options);
162159
162203
  return _this.languageService.getIndentationAtPosition(fileName, position, localOptions);
162160
162204
  });
@@ -162162,23 +162206,23 @@ var ts;
162162
162206
  /// GET REFERENCES
162163
162207
  LanguageServiceShimObject.prototype.getReferencesAtPosition = function (fileName, position) {
162164
162208
  var _this = this;
162165
- return this.forwardJSONCall("getReferencesAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getReferencesAtPosition(fileName, position); });
162209
+ return this.forwardJSONCall("getReferencesAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getReferencesAtPosition(fileName, position); });
162166
162210
  };
162167
162211
  LanguageServiceShimObject.prototype.findReferences = function (fileName, position) {
162168
162212
  var _this = this;
162169
- return this.forwardJSONCall("findReferences('" + fileName + "', " + position + ")", function () { return _this.languageService.findReferences(fileName, position); });
162213
+ return this.forwardJSONCall("findReferences('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.findReferences(fileName, position); });
162170
162214
  };
162171
162215
  LanguageServiceShimObject.prototype.getFileReferences = function (fileName) {
162172
162216
  var _this = this;
162173
- return this.forwardJSONCall("getFileReferences('" + fileName + ")", function () { return _this.languageService.getFileReferences(fileName); });
162217
+ return this.forwardJSONCall("getFileReferences('".concat(fileName, ")"), function () { return _this.languageService.getFileReferences(fileName); });
162174
162218
  };
162175
162219
  LanguageServiceShimObject.prototype.getOccurrencesAtPosition = function (fileName, position) {
162176
162220
  var _this = this;
162177
- return this.forwardJSONCall("getOccurrencesAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getOccurrencesAtPosition(fileName, position); });
162221
+ return this.forwardJSONCall("getOccurrencesAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getOccurrencesAtPosition(fileName, position); });
162178
162222
  };
162179
162223
  LanguageServiceShimObject.prototype.getDocumentHighlights = function (fileName, position, filesToSearch) {
162180
162224
  var _this = this;
162181
- return this.forwardJSONCall("getDocumentHighlights('" + fileName + "', " + position + ")", function () {
162225
+ return this.forwardJSONCall("getDocumentHighlights('".concat(fileName, "', ").concat(position, ")"), function () {
162182
162226
  var results = _this.languageService.getDocumentHighlights(fileName, position, JSON.parse(filesToSearch));
162183
162227
  // workaround for VS document highlighting issue - keep only items from the initial file
162184
162228
  var normalizedName = ts.toFileNameLowerCase(ts.normalizeSlashes(fileName));
@@ -162193,108 +162237,108 @@ var ts;
162193
162237
  */
162194
162238
  LanguageServiceShimObject.prototype.getCompletionsAtPosition = function (fileName, position, preferences) {
162195
162239
  var _this = this;
162196
- return this.forwardJSONCall("getCompletionsAtPosition('" + fileName + "', " + position + ", " + preferences + ")", function () { return _this.languageService.getCompletionsAtPosition(fileName, position, preferences); });
162240
+ return this.forwardJSONCall("getCompletionsAtPosition('".concat(fileName, "', ").concat(position, ", ").concat(preferences, ")"), function () { return _this.languageService.getCompletionsAtPosition(fileName, position, preferences); });
162197
162241
  };
162198
162242
  /** Get a string based representation of a completion list entry details */
162199
162243
  LanguageServiceShimObject.prototype.getCompletionEntryDetails = function (fileName, position, entryName, formatOptions, source, preferences, data) {
162200
162244
  var _this = this;
162201
- return this.forwardJSONCall("getCompletionEntryDetails('" + fileName + "', " + position + ", '" + entryName + "')", function () {
162245
+ return this.forwardJSONCall("getCompletionEntryDetails('".concat(fileName, "', ").concat(position, ", '").concat(entryName, "')"), function () {
162202
162246
  var localOptions = formatOptions === undefined ? undefined : JSON.parse(formatOptions);
162203
162247
  return _this.languageService.getCompletionEntryDetails(fileName, position, entryName, localOptions, source, preferences, data);
162204
162248
  });
162205
162249
  };
162206
162250
  LanguageServiceShimObject.prototype.getFormattingEditsForRange = function (fileName, start, end, options /*Services.FormatCodeOptions*/) {
162207
162251
  var _this = this;
162208
- return this.forwardJSONCall("getFormattingEditsForRange('" + fileName + "', " + start + ", " + end + ")", function () {
162252
+ return this.forwardJSONCall("getFormattingEditsForRange('".concat(fileName, "', ").concat(start, ", ").concat(end, ")"), function () {
162209
162253
  var localOptions = JSON.parse(options);
162210
162254
  return _this.languageService.getFormattingEditsForRange(fileName, start, end, localOptions);
162211
162255
  });
162212
162256
  };
162213
162257
  LanguageServiceShimObject.prototype.getFormattingEditsForDocument = function (fileName, options /*Services.FormatCodeOptions*/) {
162214
162258
  var _this = this;
162215
- return this.forwardJSONCall("getFormattingEditsForDocument('" + fileName + "')", function () {
162259
+ return this.forwardJSONCall("getFormattingEditsForDocument('".concat(fileName, "')"), function () {
162216
162260
  var localOptions = JSON.parse(options);
162217
162261
  return _this.languageService.getFormattingEditsForDocument(fileName, localOptions);
162218
162262
  });
162219
162263
  };
162220
162264
  LanguageServiceShimObject.prototype.getFormattingEditsAfterKeystroke = function (fileName, position, key, options /*Services.FormatCodeOptions*/) {
162221
162265
  var _this = this;
162222
- return this.forwardJSONCall("getFormattingEditsAfterKeystroke('" + fileName + "', " + position + ", '" + key + "')", function () {
162266
+ return this.forwardJSONCall("getFormattingEditsAfterKeystroke('".concat(fileName, "', ").concat(position, ", '").concat(key, "')"), function () {
162223
162267
  var localOptions = JSON.parse(options);
162224
162268
  return _this.languageService.getFormattingEditsAfterKeystroke(fileName, position, key, localOptions);
162225
162269
  });
162226
162270
  };
162227
162271
  LanguageServiceShimObject.prototype.getDocCommentTemplateAtPosition = function (fileName, position, options) {
162228
162272
  var _this = this;
162229
- return this.forwardJSONCall("getDocCommentTemplateAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getDocCommentTemplateAtPosition(fileName, position, options); });
162273
+ return this.forwardJSONCall("getDocCommentTemplateAtPosition('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.getDocCommentTemplateAtPosition(fileName, position, options); });
162230
162274
  };
162231
162275
  /// NAVIGATE TO
162232
162276
  /** Return a list of symbols that are interesting to navigate to */
162233
162277
  LanguageServiceShimObject.prototype.getNavigateToItems = function (searchValue, maxResultCount, fileName) {
162234
162278
  var _this = this;
162235
- return this.forwardJSONCall("getNavigateToItems('" + searchValue + "', " + maxResultCount + ", " + fileName + ")", function () { return _this.languageService.getNavigateToItems(searchValue, maxResultCount, fileName); });
162279
+ return this.forwardJSONCall("getNavigateToItems('".concat(searchValue, "', ").concat(maxResultCount, ", ").concat(fileName, ")"), function () { return _this.languageService.getNavigateToItems(searchValue, maxResultCount, fileName); });
162236
162280
  };
162237
162281
  LanguageServiceShimObject.prototype.getNavigationBarItems = function (fileName) {
162238
162282
  var _this = this;
162239
- return this.forwardJSONCall("getNavigationBarItems('" + fileName + "')", function () { return _this.languageService.getNavigationBarItems(fileName); });
162283
+ return this.forwardJSONCall("getNavigationBarItems('".concat(fileName, "')"), function () { return _this.languageService.getNavigationBarItems(fileName); });
162240
162284
  };
162241
162285
  LanguageServiceShimObject.prototype.getNavigationTree = function (fileName) {
162242
162286
  var _this = this;
162243
- return this.forwardJSONCall("getNavigationTree('" + fileName + "')", function () { return _this.languageService.getNavigationTree(fileName); });
162287
+ return this.forwardJSONCall("getNavigationTree('".concat(fileName, "')"), function () { return _this.languageService.getNavigationTree(fileName); });
162244
162288
  };
162245
162289
  LanguageServiceShimObject.prototype.getOutliningSpans = function (fileName) {
162246
162290
  var _this = this;
162247
- return this.forwardJSONCall("getOutliningSpans('" + fileName + "')", function () { return _this.languageService.getOutliningSpans(fileName); });
162291
+ return this.forwardJSONCall("getOutliningSpans('".concat(fileName, "')"), function () { return _this.languageService.getOutliningSpans(fileName); });
162248
162292
  };
162249
162293
  LanguageServiceShimObject.prototype.getTodoComments = function (fileName, descriptors) {
162250
162294
  var _this = this;
162251
- return this.forwardJSONCall("getTodoComments('" + fileName + "')", function () { return _this.languageService.getTodoComments(fileName, JSON.parse(descriptors)); });
162295
+ return this.forwardJSONCall("getTodoComments('".concat(fileName, "')"), function () { return _this.languageService.getTodoComments(fileName, JSON.parse(descriptors)); });
162252
162296
  };
162253
162297
  /// CALL HIERARCHY
162254
162298
  LanguageServiceShimObject.prototype.prepareCallHierarchy = function (fileName, position) {
162255
162299
  var _this = this;
162256
- return this.forwardJSONCall("prepareCallHierarchy('" + fileName + "', " + position + ")", function () { return _this.languageService.prepareCallHierarchy(fileName, position); });
162300
+ return this.forwardJSONCall("prepareCallHierarchy('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.prepareCallHierarchy(fileName, position); });
162257
162301
  };
162258
162302
  LanguageServiceShimObject.prototype.provideCallHierarchyIncomingCalls = function (fileName, position) {
162259
162303
  var _this = this;
162260
- return this.forwardJSONCall("provideCallHierarchyIncomingCalls('" + fileName + "', " + position + ")", function () { return _this.languageService.provideCallHierarchyIncomingCalls(fileName, position); });
162304
+ return this.forwardJSONCall("provideCallHierarchyIncomingCalls('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.provideCallHierarchyIncomingCalls(fileName, position); });
162261
162305
  };
162262
162306
  LanguageServiceShimObject.prototype.provideCallHierarchyOutgoingCalls = function (fileName, position) {
162263
162307
  var _this = this;
162264
- return this.forwardJSONCall("provideCallHierarchyOutgoingCalls('" + fileName + "', " + position + ")", function () { return _this.languageService.provideCallHierarchyOutgoingCalls(fileName, position); });
162308
+ return this.forwardJSONCall("provideCallHierarchyOutgoingCalls('".concat(fileName, "', ").concat(position, ")"), function () { return _this.languageService.provideCallHierarchyOutgoingCalls(fileName, position); });
162265
162309
  };
162266
162310
  LanguageServiceShimObject.prototype.provideInlayHints = function (fileName, span, preference) {
162267
162311
  var _this = this;
162268
- return this.forwardJSONCall("provideInlayHints('" + fileName + "', '" + JSON.stringify(span) + "', " + JSON.stringify(preference) + ")", function () { return _this.languageService.provideInlayHints(fileName, span, preference); });
162312
+ return this.forwardJSONCall("provideInlayHints('".concat(fileName, "', '").concat(JSON.stringify(span), "', ").concat(JSON.stringify(preference), ")"), function () { return _this.languageService.provideInlayHints(fileName, span, preference); });
162269
162313
  };
162270
162314
  /// Emit
162271
162315
  LanguageServiceShimObject.prototype.getEmitOutput = function (fileName) {
162272
162316
  var _this = this;
162273
- return this.forwardJSONCall("getEmitOutput('" + fileName + "')", function () {
162317
+ return this.forwardJSONCall("getEmitOutput('".concat(fileName, "')"), function () {
162274
162318
  var _a = _this.languageService.getEmitOutput(fileName), diagnostics = _a.diagnostics, rest = __rest(_a, ["diagnostics"]);
162275
162319
  return __assign(__assign({}, rest), { diagnostics: _this.realizeDiagnostics(diagnostics) });
162276
162320
  });
162277
162321
  };
162278
162322
  LanguageServiceShimObject.prototype.getEmitOutputObject = function (fileName) {
162279
162323
  var _this = this;
162280
- return forwardCall(this.logger, "getEmitOutput('" + fileName + "')",
162324
+ return forwardCall(this.logger, "getEmitOutput('".concat(fileName, "')"),
162281
162325
  /*returnJson*/ false, function () { return _this.languageService.getEmitOutput(fileName); }, this.logPerformance);
162282
162326
  };
162283
162327
  LanguageServiceShimObject.prototype.toggleLineComment = function (fileName, textRange) {
162284
162328
  var _this = this;
162285
- return this.forwardJSONCall("toggleLineComment('" + fileName + "', '" + JSON.stringify(textRange) + "')", function () { return _this.languageService.toggleLineComment(fileName, textRange); });
162329
+ return this.forwardJSONCall("toggleLineComment('".concat(fileName, "', '").concat(JSON.stringify(textRange), "')"), function () { return _this.languageService.toggleLineComment(fileName, textRange); });
162286
162330
  };
162287
162331
  LanguageServiceShimObject.prototype.toggleMultilineComment = function (fileName, textRange) {
162288
162332
  var _this = this;
162289
- return this.forwardJSONCall("toggleMultilineComment('" + fileName + "', '" + JSON.stringify(textRange) + "')", function () { return _this.languageService.toggleMultilineComment(fileName, textRange); });
162333
+ return this.forwardJSONCall("toggleMultilineComment('".concat(fileName, "', '").concat(JSON.stringify(textRange), "')"), function () { return _this.languageService.toggleMultilineComment(fileName, textRange); });
162290
162334
  };
162291
162335
  LanguageServiceShimObject.prototype.commentSelection = function (fileName, textRange) {
162292
162336
  var _this = this;
162293
- return this.forwardJSONCall("commentSelection('" + fileName + "', '" + JSON.stringify(textRange) + "')", function () { return _this.languageService.commentSelection(fileName, textRange); });
162337
+ return this.forwardJSONCall("commentSelection('".concat(fileName, "', '").concat(JSON.stringify(textRange), "')"), function () { return _this.languageService.commentSelection(fileName, textRange); });
162294
162338
  };
162295
162339
  LanguageServiceShimObject.prototype.uncommentSelection = function (fileName, textRange) {
162296
162340
  var _this = this;
162297
- return this.forwardJSONCall("uncommentSelection('" + fileName + "', '" + JSON.stringify(textRange) + "')", function () { return _this.languageService.uncommentSelection(fileName, textRange); });
162341
+ return this.forwardJSONCall("uncommentSelection('".concat(fileName, "', '").concat(JSON.stringify(textRange), "')"), function () { return _this.languageService.uncommentSelection(fileName, textRange); });
162298
162342
  };
162299
162343
  return LanguageServiceShimObject;
162300
162344
  }(ShimBase));
@@ -162344,7 +162388,7 @@ var ts;
162344
162388
  };
162345
162389
  CoreServicesShimObject.prototype.resolveModuleName = function (fileName, moduleName, compilerOptionsJson) {
162346
162390
  var _this = this;
162347
- return this.forwardJSONCall("resolveModuleName('" + fileName + "')", function () {
162391
+ return this.forwardJSONCall("resolveModuleName('".concat(fileName, "')"), function () {
162348
162392
  var compilerOptions = JSON.parse(compilerOptionsJson);
162349
162393
  var result = ts.resolveModuleName(moduleName, ts.normalizeSlashes(fileName), compilerOptions, _this.host);
162350
162394
  var resolvedFileName = result.resolvedModule ? result.resolvedModule.resolvedFileName : undefined;
@@ -162359,7 +162403,7 @@ var ts;
162359
162403
  };
162360
162404
  CoreServicesShimObject.prototype.resolveTypeReferenceDirective = function (fileName, typeReferenceDirective, compilerOptionsJson) {
162361
162405
  var _this = this;
162362
- return this.forwardJSONCall("resolveTypeReferenceDirective(" + fileName + ")", function () {
162406
+ return this.forwardJSONCall("resolveTypeReferenceDirective(".concat(fileName, ")"), function () {
162363
162407
  var compilerOptions = JSON.parse(compilerOptionsJson);
162364
162408
  var result = ts.resolveTypeReferenceDirective(typeReferenceDirective, ts.normalizeSlashes(fileName), compilerOptions, _this.host);
162365
162409
  return {
@@ -162371,7 +162415,7 @@ var ts;
162371
162415
  };
162372
162416
  CoreServicesShimObject.prototype.getPreProcessedFileInfo = function (fileName, sourceTextSnapshot) {
162373
162417
  var _this = this;
162374
- return this.forwardJSONCall("getPreProcessedFileInfo('" + fileName + "')", function () {
162418
+ return this.forwardJSONCall("getPreProcessedFileInfo('".concat(fileName, "')"), function () {
162375
162419
  // for now treat files as JavaScript
162376
162420
  var result = ts.preProcessFile(ts.getSnapshotText(sourceTextSnapshot), /* readImportFiles */ true, /* detectJavaScriptImports */ true);
162377
162421
  return {
@@ -162386,7 +162430,7 @@ var ts;
162386
162430
  };
162387
162431
  CoreServicesShimObject.prototype.getAutomaticTypeDirectiveNames = function (compilerOptionsJson) {
162388
162432
  var _this = this;
162389
- return this.forwardJSONCall("getAutomaticTypeDirectiveNames('" + compilerOptionsJson + "')", function () {
162433
+ return this.forwardJSONCall("getAutomaticTypeDirectiveNames('".concat(compilerOptionsJson, "')"), function () {
162390
162434
  var compilerOptions = JSON.parse(compilerOptionsJson);
162391
162435
  return ts.getAutomaticTypeDirectiveNames(compilerOptions, _this.host);
162392
162436
  });
@@ -162408,7 +162452,7 @@ var ts;
162408
162452
  };
162409
162453
  CoreServicesShimObject.prototype.getTSConfigFileInfo = function (fileName, sourceTextSnapshot) {
162410
162454
  var _this = this;
162411
- return this.forwardJSONCall("getTSConfigFileInfo('" + fileName + "')", function () {
162455
+ return this.forwardJSONCall("getTSConfigFileInfo('".concat(fileName, "')"), function () {
162412
162456
  var result = ts.parseJsonText(fileName, ts.getSnapshotText(sourceTextSnapshot));
162413
162457
  var normalizedFileName = ts.normalizeSlashes(fileName);
162414
162458
  var configFile = ts.parseJsonSourceFileConfigFileContent(result, _this.host, ts.getDirectoryPath(normalizedFileName), /*existingOptions*/ {}, normalizedFileName);
@@ -162608,7 +162652,7 @@ var ts;
162608
162652
  function nowString() {
162609
162653
  // E.g. "12:34:56.789"
162610
162654
  var d = new Date();
162611
- 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");
162655
+ 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"));
162612
162656
  }
162613
162657
  server.nowString = nowString;
162614
162658
  })(server = ts.server || (ts.server = {}));
@@ -162619,7 +162663,7 @@ var ts;
162619
162663
  var JsTyping;
162620
162664
  (function (JsTyping) {
162621
162665
  function isTypingUpToDate(cachedTyping, availableTypingVersions) {
162622
- var availableVersion = new ts.Version(ts.getProperty(availableTypingVersions, "ts" + ts.versionMajorMinor) || ts.getProperty(availableTypingVersions, "latest"));
162666
+ var availableVersion = new ts.Version(ts.getProperty(availableTypingVersions, "ts".concat(ts.versionMajorMinor)) || ts.getProperty(availableTypingVersions, "latest"));
162623
162667
  return availableVersion.compareTo(cachedTyping.version) <= 0;
162624
162668
  }
162625
162669
  JsTyping.isTypingUpToDate = isTypingUpToDate;
@@ -162672,7 +162716,7 @@ var ts;
162672
162716
  "worker_threads",
162673
162717
  "zlib"
162674
162718
  ];
162675
- JsTyping.prefixedNodeCoreModuleList = unprefixedNodeCoreModuleList.map(function (name) { return "node:" + name; });
162719
+ JsTyping.prefixedNodeCoreModuleList = unprefixedNodeCoreModuleList.map(function (name) { return "node:".concat(name); });
162676
162720
  JsTyping.nodeCoreModuleList = __spreadArray(__spreadArray([], unprefixedNodeCoreModuleList, true), JsTyping.prefixedNodeCoreModuleList, true);
162677
162721
  JsTyping.nodeCoreModules = new ts.Set(JsTyping.nodeCoreModuleList);
162678
162722
  function nonRelativeModuleNameForTypingCache(moduleName) {
@@ -162751,7 +162795,7 @@ var ts;
162751
162795
  var excludeTypingName = exclude_1[_i];
162752
162796
  var didDelete = inferredTypings.delete(excludeTypingName);
162753
162797
  if (didDelete && log)
162754
- log("Typing for " + excludeTypingName + " is in exclude list, will be ignored.");
162798
+ log("Typing for ".concat(excludeTypingName, " is in exclude list, will be ignored."));
162755
162799
  }
162756
162800
  var newTypingNames = [];
162757
162801
  var cachedTypingPaths = [];
@@ -162765,7 +162809,7 @@ var ts;
162765
162809
  });
162766
162810
  var result = { cachedTypingPaths: cachedTypingPaths, newTypingNames: newTypingNames, filesToWatch: filesToWatch };
162767
162811
  if (log)
162768
- log("Result: " + JSON.stringify(result));
162812
+ log("Result: ".concat(JSON.stringify(result)));
162769
162813
  return result;
162770
162814
  function addInferredTyping(typingName) {
162771
162815
  if (!inferredTypings.has(typingName)) {
@@ -162774,7 +162818,7 @@ var ts;
162774
162818
  }
162775
162819
  function addInferredTypings(typingNames, message) {
162776
162820
  if (log)
162777
- log(message + ": " + JSON.stringify(typingNames));
162821
+ log("".concat(message, ": ").concat(JSON.stringify(typingNames)));
162778
162822
  ts.forEach(typingNames, addInferredTyping);
162779
162823
  }
162780
162824
  /**
@@ -162787,7 +162831,7 @@ var ts;
162787
162831
  filesToWatch.push(jsonPath);
162788
162832
  var jsonConfig = ts.readConfigFile(jsonPath, function (path) { return host.readFile(path); }).config;
162789
162833
  var jsonTypingNames = ts.flatMap([jsonConfig.dependencies, jsonConfig.devDependencies, jsonConfig.optionalDependencies, jsonConfig.peerDependencies], ts.getOwnKeys);
162790
- addInferredTypings(jsonTypingNames, "Typing names in '" + jsonPath + "' dependencies");
162834
+ addInferredTypings(jsonTypingNames, "Typing names in '".concat(jsonPath, "' dependencies"));
162791
162835
  }
162792
162836
  /**
162793
162837
  * Infer typing names from given file names. For example, the file name "jquery-min.2.3.4.js"
@@ -162826,7 +162870,7 @@ var ts;
162826
162870
  // depth of 2, so we access `node_modules/foo` but not `node_modules/foo/bar`
162827
162871
  var fileNames = host.readDirectory(packagesFolderPath, [".json" /* Json */], /*excludes*/ undefined, /*includes*/ undefined, /*depth*/ 2);
162828
162872
  if (log)
162829
- log("Searching for typing names in " + packagesFolderPath + "; all files: " + JSON.stringify(fileNames));
162873
+ log("Searching for typing names in ".concat(packagesFolderPath, "; all files: ").concat(JSON.stringify(fileNames)));
162830
162874
  var packageNames = [];
162831
162875
  for (var _i = 0, fileNames_1 = fileNames; _i < fileNames_1.length; _i++) {
162832
162876
  var fileName = fileNames_1[_i];
@@ -162853,7 +162897,7 @@ var ts;
162853
162897
  if (ownTypes) {
162854
162898
  var absolutePath = ts.getNormalizedAbsolutePath(ownTypes, ts.getDirectoryPath(normalizedFileName));
162855
162899
  if (log)
162856
- log(" Package '" + packageJson.name + "' provides its own types.");
162900
+ log(" Package '".concat(packageJson.name, "' provides its own types."));
162857
162901
  inferredTypings.set(packageJson.name, absolutePath);
162858
162902
  }
162859
162903
  else {
@@ -162925,15 +162969,15 @@ var ts;
162925
162969
  var kind = isScopeName ? "Scope" : "Package";
162926
162970
  switch (result) {
162927
162971
  case 1 /* EmptyName */:
162928
- return "'" + typing + "':: " + kind + " name '" + name + "' cannot be empty";
162972
+ return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' cannot be empty");
162929
162973
  case 2 /* NameTooLong */:
162930
- return "'" + typing + "':: " + kind + " name '" + name + "' should be less than " + maxPackageNameLength + " characters";
162974
+ return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' should be less than ").concat(maxPackageNameLength, " characters");
162931
162975
  case 3 /* NameStartsWithDot */:
162932
- return "'" + typing + "':: " + kind + " name '" + name + "' cannot start with '.'";
162976
+ return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' cannot start with '.'");
162933
162977
  case 4 /* NameStartsWithUnderscore */:
162934
- return "'" + typing + "':: " + kind + " name '" + name + "' cannot start with '_'";
162978
+ return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' cannot start with '_'");
162935
162979
  case 5 /* NameContainsNonURISafeCharacters */:
162936
- return "'" + typing + "':: " + kind + " name '" + name + "' contains non URI safe characters";
162980
+ return "'".concat(typing, "':: ").concat(kind, " name '").concat(name, "' contains non URI safe characters");
162937
162981
  case 0 /* Ok */:
162938
162982
  return ts.Debug.fail(); // Shouldn't have called this.
162939
162983
  default:
@@ -162986,7 +163030,7 @@ var ts;
162986
163030
  }
162987
163031
  Errors.ThrowProjectLanguageServiceDisabled = ThrowProjectLanguageServiceDisabled;
162988
163032
  function ThrowProjectDoesNotContainDocument(fileName, project) {
162989
- throw new Error("Project '" + project.getProjectName() + "' does not contain document '" + fileName + "'");
163033
+ throw new Error("Project '".concat(project.getProjectName(), "' does not contain document '").concat(fileName, "'"));
162990
163034
  }
162991
163035
  Errors.ThrowProjectDoesNotContainDocument = ThrowProjectDoesNotContainDocument;
162992
163036
  })(Errors = server.Errors || (server.Errors = {}));
@@ -163027,12 +163071,12 @@ var ts;
163027
163071
  }
163028
163072
  server.isInferredProjectName = isInferredProjectName;
163029
163073
  function makeInferredProjectName(counter) {
163030
- return "/dev/null/inferredProject" + counter + "*";
163074
+ return "/dev/null/inferredProject".concat(counter, "*");
163031
163075
  }
163032
163076
  server.makeInferredProjectName = makeInferredProjectName;
163033
163077
  /*@internal*/
163034
163078
  function makeAutoImportProviderProjectName(counter) {
163035
- return "/dev/null/autoImportProviderProject" + counter + "*";
163079
+ return "/dev/null/autoImportProviderProject".concat(counter, "*");
163036
163080
  }
163037
163081
  server.makeAutoImportProviderProjectName = makeAutoImportProviderProjectName;
163038
163082
  function createSortedArray() {
@@ -163067,7 +163111,7 @@ var ts;
163067
163111
  // schedule new operation, pass arguments
163068
163112
  this.pendingTimeouts.set(operationId, this.host.setTimeout(ThrottledOperations.run, delay, this, operationId, cb));
163069
163113
  if (this.logger) {
163070
- this.logger.info("Scheduled: " + operationId + (pendingTimeout ? ", Cancelled earlier one" : ""));
163114
+ this.logger.info("Scheduled: ".concat(operationId).concat(pendingTimeout ? ", Cancelled earlier one" : ""));
163071
163115
  }
163072
163116
  };
163073
163117
  ThrottledOperations.prototype.cancel = function (operationId) {
@@ -163081,7 +163125,7 @@ var ts;
163081
163125
  ts.perfLogger.logStartScheduledOperation(operationId);
163082
163126
  self.pendingTimeouts.delete(operationId);
163083
163127
  if (self.logger) {
163084
- self.logger.info("Running: " + operationId);
163128
+ self.logger.info("Running: ".concat(operationId));
163085
163129
  }
163086
163130
  cb();
163087
163131
  ts.perfLogger.logStopScheduledOperation();
@@ -163110,7 +163154,7 @@ var ts;
163110
163154
  self.host.gc(); // TODO: GH#18217
163111
163155
  if (log) {
163112
163156
  var after = self.host.getMemoryUsage(); // TODO: GH#18217
163113
- self.logger.perftrc("GC::before " + before + ", after " + after);
163157
+ self.logger.perftrc("GC::before ".concat(before, ", after ").concat(after));
163114
163158
  }
163115
163159
  ts.perfLogger.logStopScheduledOperation();
163116
163160
  };
@@ -163462,8 +163506,8 @@ var ts;
163462
163506
  }
163463
163507
  TextStorage.prototype.getVersion = function () {
163464
163508
  return this.svc
163465
- ? "SVC-" + this.version.svc + "-" + this.svc.getSnapshotVersion()
163466
- : "Text-" + this.version.text;
163509
+ ? "SVC-".concat(this.version.svc, "-").concat(this.svc.getSnapshotVersion())
163510
+ : "Text-".concat(this.version.text);
163467
163511
  };
163468
163512
  TextStorage.prototype.hasScriptVersionCache_TestOnly = function () {
163469
163513
  return this.svc !== undefined;
@@ -163606,7 +163650,7 @@ var ts;
163606
163650
  if (fileSize > server.maxFileSize) {
163607
163651
  ts.Debug.assert(!!this.info.containingProjects.length);
163608
163652
  var service = this.info.containingProjects[0].projectService;
163609
- service.logger.info("Skipped loading contents of large file " + fileName + " for info " + this.info.fileName + ": fileSize: " + fileSize);
163653
+ service.logger.info("Skipped loading contents of large file ".concat(fileName, " for info ").concat(this.info.fileName, ": fileSize: ").concat(fileSize));
163610
163654
  this.info.containingProjects[0].projectService.sendLargeFileReferencedEvent(fileName, fileSize);
163611
163655
  return { text: "", fileSize: fileSize };
163612
163656
  }
@@ -163982,14 +164026,14 @@ var ts;
163982
164026
  return project;
163983
164027
  }
163984
164028
  function failIfInvalidPosition(position) {
163985
- ts.Debug.assert(typeof position === "number", "Expected position " + position + " to be a number.");
164029
+ ts.Debug.assert(typeof position === "number", "Expected position ".concat(position, " to be a number."));
163986
164030
  ts.Debug.assert(position >= 0, "Expected position to be non-negative.");
163987
164031
  }
163988
164032
  function failIfInvalidLocation(location) {
163989
- ts.Debug.assert(typeof location.line === "number", "Expected line " + location.line + " to be a number.");
163990
- ts.Debug.assert(typeof location.offset === "number", "Expected offset " + location.offset + " to be a number.");
163991
- ts.Debug.assert(location.line > 0, "Expected line to be non-" + (location.line === 0 ? "zero" : "negative"));
163992
- ts.Debug.assert(location.offset > 0, "Expected offset to be non-" + (location.offset === 0 ? "zero" : "negative"));
164033
+ ts.Debug.assert(typeof location.line === "number", "Expected line ".concat(location.line, " to be a number."));
164034
+ ts.Debug.assert(typeof location.offset === "number", "Expected offset ".concat(location.offset, " to be a number."));
164035
+ ts.Debug.assert(location.line > 0, "Expected line to be non-".concat(location.line === 0 ? "zero" : "negative"));
164036
+ ts.Debug.assert(location.offset > 0, "Expected offset to be non-".concat(location.offset === 0 ? "zero" : "negative"));
163993
164037
  }
163994
164038
  })(server = ts.server || (ts.server = {}));
163995
164039
  })(ts || (ts = {}));
@@ -164301,11 +164345,11 @@ var ts;
164301
164345
  };
164302
164346
  Project.resolveModule = function (moduleName, initialDir, host, log, logErrors) {
164303
164347
  var resolvedPath = ts.normalizeSlashes(host.resolvePath(ts.combinePaths(initialDir, "node_modules")));
164304
- log("Loading " + moduleName + " from " + initialDir + " (resolved to " + resolvedPath + ")");
164348
+ log("Loading ".concat(moduleName, " from ").concat(initialDir, " (resolved to ").concat(resolvedPath, ")"));
164305
164349
  var result = host.require(resolvedPath, moduleName); // TODO: GH#18217
164306
164350
  if (result.error) {
164307
164351
  var err = result.error.stack || result.error.message || JSON.stringify(result.error);
164308
- (logErrors || log)("Failed to load module '" + moduleName + "' from " + resolvedPath + ": " + err);
164352
+ (logErrors || log)("Failed to load module '".concat(moduleName, "' from ").concat(resolvedPath, ": ").concat(err));
164309
164353
  return undefined;
164310
164354
  }
164311
164355
  return result.module;
@@ -164453,12 +164497,12 @@ var ts;
164453
164497
  };
164454
164498
  /*@internal*/
164455
164499
  Project.prototype.clearInvalidateResolutionOfFailedLookupTimer = function () {
164456
- return this.projectService.throttledOperations.cancel(this.getProjectName() + "FailedLookupInvalidation");
164500
+ return this.projectService.throttledOperations.cancel("".concat(this.getProjectName(), "FailedLookupInvalidation"));
164457
164501
  };
164458
164502
  /*@internal*/
164459
164503
  Project.prototype.scheduleInvalidateResolutionsOfFailedLookupLocations = function () {
164460
164504
  var _this = this;
164461
- this.projectService.throttledOperations.schedule(this.getProjectName() + "FailedLookupInvalidation", /*delay*/ 1000, function () {
164505
+ this.projectService.throttledOperations.schedule("".concat(this.getProjectName(), "FailedLookupInvalidation"), /*delay*/ 1000, function () {
164462
164506
  if (_this.resolutionCache.invalidateResolutionsOfFailedLookupLocations()) {
164463
164507
  _this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(_this);
164464
164508
  }
@@ -164636,7 +164680,7 @@ var ts;
164636
164680
  return plugin.module.getExternalFiles(_this);
164637
164681
  }
164638
164682
  catch (e) {
164639
- _this.projectService.logger.info("A plugin threw an exception in getExternalFiles: " + e);
164683
+ _this.projectService.logger.info("A plugin threw an exception in getExternalFiles: ".concat(e));
164640
164684
  if (e.stack) {
164641
164685
  _this.projectService.logger.info(e.stack);
164642
164686
  }
@@ -164739,7 +164783,7 @@ var ts;
164739
164783
  }
164740
164784
  return ts.map(this.program.getSourceFiles(), function (sourceFile) {
164741
164785
  var scriptInfo = _this.projectService.getScriptInfoForPath(sourceFile.resolvedPath);
164742
- ts.Debug.assert(!!scriptInfo, "getScriptInfo", function () { return "scriptInfo for a file '" + sourceFile.fileName + "' Path: '" + sourceFile.path + "' / '" + sourceFile.resolvedPath + "' is missing."; });
164786
+ ts.Debug.assert(!!scriptInfo, "getScriptInfo", function () { return "scriptInfo for a file '".concat(sourceFile.fileName, "' Path: '").concat(sourceFile.path, "' / '").concat(sourceFile.resolvedPath, "' is missing."); });
164743
164787
  return scriptInfo;
164744
164788
  });
164745
164789
  };
@@ -164982,7 +165026,7 @@ var ts;
164982
165026
  var _this = this;
164983
165027
  var oldProgram = this.program;
164984
165028
  ts.Debug.assert(!this.isClosed(), "Called update graph worker of closed project");
164985
- this.writeLog("Starting updateGraphWorker: Project: " + this.getProjectName());
165029
+ this.writeLog("Starting updateGraphWorker: Project: ".concat(this.getProjectName()));
164986
165030
  var start = ts.timestamp();
164987
165031
  this.hasInvalidatedResolution = this.resolutionCache.createHasInvalidatedResolution();
164988
165032
  this.resolutionCache.startCachingPerDirectoryResolution();
@@ -165084,7 +165128,7 @@ var ts;
165084
165128
  }, function (removed) { return _this.detachScriptInfoFromProject(removed); });
165085
165129
  var elapsed = ts.timestamp() - start;
165086
165130
  this.sendPerformanceEvent("UpdateGraph", elapsed);
165087
- this.writeLog("Finishing updateGraphWorker: Project: " + this.getProjectName() + " Version: " + this.getProjectVersion() + " structureChanged: " + hasNewProgram + (this.program ? " structureIsReused:: " + ts.StructureIsReused[this.program.structureIsReused] : "") + " Elapsed: " + elapsed + "ms");
165131
+ 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"));
165088
165132
  if (this.hasAddedorRemovedFiles) {
165089
165133
  this.print(/*writeProjectFileNames*/ true);
165090
165134
  }
@@ -165144,7 +165188,7 @@ var ts;
165144
165188
  var path = this.toPath(sourceFile);
165145
165189
  if (this.generatedFilesMap) {
165146
165190
  if (isGeneratedFileWatcher(this.generatedFilesMap)) {
165147
- ts.Debug.fail(this.projectName + " Expected to not have --out watcher for generated file with options: " + JSON.stringify(this.compilerOptions));
165191
+ ts.Debug.fail("".concat(this.projectName, " Expected to not have --out watcher for generated file with options: ").concat(JSON.stringify(this.compilerOptions)));
165148
165192
  return;
165149
165193
  }
165150
165194
  if (this.generatedFilesMap.has(path))
@@ -165196,20 +165240,20 @@ var ts;
165196
165240
  if (!this.program)
165197
165241
  return "\tFiles (0) NoProgram\n";
165198
165242
  var sourceFiles = this.program.getSourceFiles();
165199
- var strBuilder = "\tFiles (" + sourceFiles.length + ")\n";
165243
+ var strBuilder = "\tFiles (".concat(sourceFiles.length, ")\n");
165200
165244
  if (writeProjectFileNames) {
165201
165245
  for (var _i = 0, sourceFiles_1 = sourceFiles; _i < sourceFiles_1.length; _i++) {
165202
165246
  var file = sourceFiles_1[_i];
165203
- strBuilder += "\t" + file.fileName + "\n";
165247
+ strBuilder += "\t".concat(file.fileName, "\n");
165204
165248
  }
165205
165249
  strBuilder += "\n\n";
165206
- ts.explainFiles(this.program, function (s) { return strBuilder += "\t" + s + "\n"; });
165250
+ ts.explainFiles(this.program, function (s) { return strBuilder += "\t".concat(s, "\n"); });
165207
165251
  }
165208
165252
  return strBuilder;
165209
165253
  };
165210
165254
  /*@internal*/
165211
165255
  Project.prototype.print = function (writeProjectFileNames) {
165212
- this.writeLog("Project '" + this.projectName + "' (" + ProjectKind[this.projectKind] + ")");
165256
+ this.writeLog("Project '".concat(this.projectName, "' (").concat(ProjectKind[this.projectKind], ")"));
165213
165257
  this.writeLog(this.filesToString(writeProjectFileNames && this.projectService.logger.hasLevel(server.LogLevel.verbose)));
165214
165258
  this.writeLog("-----------------------------------------------");
165215
165259
  if (this.autoImportProviderHost) {
@@ -165371,7 +165415,7 @@ var ts;
165371
165415
  if (options.plugins && options.plugins.some(function (p) { return p.name === globalPluginName; }))
165372
165416
  return "continue";
165373
165417
  // Provide global: true so plugins can detect why they can't find their config
165374
- this_1.projectService.logger.info("Loading global plugin " + globalPluginName);
165418
+ this_1.projectService.logger.info("Loading global plugin ".concat(globalPluginName));
165375
165419
  this_1.enablePlugin({ name: globalPluginName, global: true }, searchPaths, pluginConfigOverrides);
165376
165420
  };
165377
165421
  var this_1 = this;
@@ -165384,9 +165428,9 @@ var ts;
165384
165428
  };
165385
165429
  Project.prototype.enablePlugin = function (pluginConfigEntry, searchPaths, pluginConfigOverrides) {
165386
165430
  var _this = this;
165387
- this.projectService.logger.info("Enabling plugin " + pluginConfigEntry.name + " from candidate paths: " + searchPaths.join(","));
165431
+ this.projectService.logger.info("Enabling plugin ".concat(pluginConfigEntry.name, " from candidate paths: ").concat(searchPaths.join(",")));
165388
165432
  if (!pluginConfigEntry.name || ts.parsePackageName(pluginConfigEntry.name).rest) {
165389
- this.projectService.logger.info("Skipped loading plugin " + (pluginConfigEntry.name || JSON.stringify(pluginConfigEntry)) + " because only package name is allowed plugin name");
165433
+ this.projectService.logger.info("Skipped loading plugin ".concat(pluginConfigEntry.name || JSON.stringify(pluginConfigEntry), " because only package name is allowed plugin name"));
165390
165434
  return;
165391
165435
  }
165392
165436
  var log = function (message) { return _this.projectService.logger.info(message); };
@@ -165409,13 +165453,13 @@ var ts;
165409
165453
  }
165410
165454
  else {
165411
165455
  ts.forEach(errorLogs, log);
165412
- this.projectService.logger.info("Couldn't find " + pluginConfigEntry.name);
165456
+ this.projectService.logger.info("Couldn't find ".concat(pluginConfigEntry.name));
165413
165457
  }
165414
165458
  };
165415
165459
  Project.prototype.enableProxy = function (pluginModuleFactory, configEntry) {
165416
165460
  try {
165417
165461
  if (typeof pluginModuleFactory !== "function") {
165418
- this.projectService.logger.info("Skipped loading plugin " + configEntry.name + " because it did not expose a proper factory function");
165462
+ this.projectService.logger.info("Skipped loading plugin ".concat(configEntry.name, " because it did not expose a proper factory function"));
165419
165463
  return;
165420
165464
  }
165421
165465
  var info = {
@@ -165432,7 +165476,7 @@ var ts;
165432
165476
  var k = _a[_i];
165433
165477
  // eslint-disable-next-line no-in-operator
165434
165478
  if (!(k in newLS)) {
165435
- this.projectService.logger.info("Plugin activation warning: Missing proxied method " + k + " in created LS. Patching.");
165479
+ this.projectService.logger.info("Plugin activation warning: Missing proxied method ".concat(k, " in created LS. Patching."));
165436
165480
  newLS[k] = this.languageService[k];
165437
165481
  }
165438
165482
  }
@@ -165441,7 +165485,7 @@ var ts;
165441
165485
  this.plugins.push({ name: configEntry.name, module: pluginModule });
165442
165486
  }
165443
165487
  catch (e) {
165444
- this.projectService.logger.info("Plugin activation failed: " + e);
165488
+ this.projectService.logger.info("Plugin activation failed: ".concat(e));
165445
165489
  }
165446
165490
  };
165447
165491
  /*@internal*/
@@ -165956,7 +166000,7 @@ var ts;
165956
166000
  var searchPaths = __spreadArray([ts.combinePaths(this.projectService.getExecutingFilePath(), "../../..")], this.projectService.pluginProbeLocations, true);
165957
166001
  if (this.projectService.allowLocalPluginLoads) {
165958
166002
  var local = ts.getDirectoryPath(this.canonicalConfigFilePath);
165959
- this.projectService.logger.info("Local plugin loading enabled; adding " + local + " to search paths");
166003
+ this.projectService.logger.info("Local plugin loading enabled; adding ".concat(local, " to search paths"));
165960
166004
  searchPaths.unshift(local);
165961
166005
  }
165962
166006
  // Enable tsconfig-specified plugins
@@ -166382,7 +166426,7 @@ var ts;
166382
166426
  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); });
166383
166427
  }
166384
166428
  function getDetailWatchInfo(watchType, project) {
166385
- return (ts.isString(project) ? "Config: " + project + " " : project ? "Project: " + project.getProjectName() + " " : "") + "WatchType: " + watchType;
166429
+ return "".concat(ts.isString(project) ? "Config: ".concat(project, " ") : project ? "Project: ".concat(project.getProjectName(), " ") : "", "WatchType: ").concat(watchType);
166386
166430
  }
166387
166431
  function isScriptInfoWatchedFromNodeModules(info) {
166388
166432
  return !info.isScriptOpen() && info.mTime !== undefined;
@@ -166587,7 +166631,7 @@ var ts;
166587
166631
  try {
166588
166632
  var fileContent = this.host.readFile(this.typesMapLocation); // TODO: GH#18217
166589
166633
  if (fileContent === undefined) {
166590
- this.logger.info("Provided types map file \"" + this.typesMapLocation + "\" doesn't exist");
166634
+ this.logger.info("Provided types map file \"".concat(this.typesMapLocation, "\" doesn't exist"));
166591
166635
  return;
166592
166636
  }
166593
166637
  var raw = JSON.parse(fileContent);
@@ -166605,7 +166649,7 @@ var ts;
166605
166649
  }
166606
166650
  }
166607
166651
  catch (e) {
166608
- this.logger.info("Error loading types map: " + e);
166652
+ this.logger.info("Error loading types map: ".concat(e));
166609
166653
  this.safelist = defaultTypeSafeList;
166610
166654
  this.legacySafelist.clear();
166611
166655
  }
@@ -166927,7 +166971,7 @@ var ts;
166927
166971
  var fsResult = config.cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath);
166928
166972
  if (ts.getBaseFileName(fileOrDirectoryPath) === "package.json" && !ts.isInsideNodeModules(fileOrDirectoryPath) &&
166929
166973
  (fsResult && fsResult.fileExists || !fsResult && _this.host.fileExists(fileOrDirectoryPath))) {
166930
- _this.logger.info("Config: " + configFileName + " Detected new package.json: " + fileOrDirectory);
166974
+ _this.logger.info("Config: ".concat(configFileName, " Detected new package.json: ").concat(fileOrDirectory));
166931
166975
  _this.onAddPackageJson(fileOrDirectoryPath);
166932
166976
  }
166933
166977
  var configuredProjectForConfig = _this.findConfiguredProjectByProjectName(configFileName);
@@ -167050,13 +167094,13 @@ var ts;
167050
167094
  project.print(/*writeProjectFileNames*/ true);
167051
167095
  project.close();
167052
167096
  if (ts.Debug.shouldAssert(1 /* Normal */)) {
167053
- 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) ?
167097
+ 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) ?
167054
167098
  {
167055
167099
  fileName: info.fileName,
167056
167100
  projects: info.containingProjects.map(function (p) { return p.projectName; }),
167057
167101
  hasMixedContent: info.hasMixedContent
167058
167102
  } : undefined; })),
167059
- /*replacer*/ undefined, " "); }); });
167103
+ /*replacer*/ undefined, " ")); }); });
167060
167104
  }
167061
167105
  // Remove the project from pending project updates
167062
167106
  this.pendingProjectUpdates.delete(project.getProjectName());
@@ -167457,15 +167501,15 @@ var ts;
167457
167501
  if (result !== undefined)
167458
167502
  return result || undefined;
167459
167503
  }
167460
- this.logger.info("Search path: " + ts.getDirectoryPath(info.fileName));
167504
+ this.logger.info("Search path: ".concat(ts.getDirectoryPath(info.fileName)));
167461
167505
  var configFileName = this.forEachConfigFileLocation(info, function (canonicalConfigFilePath, configFileName) {
167462
167506
  return _this.configFileExists(configFileName, canonicalConfigFilePath, info);
167463
167507
  });
167464
167508
  if (configFileName) {
167465
- this.logger.info("For info: " + info.fileName + " :: Config file name: " + configFileName);
167509
+ this.logger.info("For info: ".concat(info.fileName, " :: Config file name: ").concat(configFileName));
167466
167510
  }
167467
167511
  else {
167468
- this.logger.info("For info: " + info.fileName + " :: No config files found.");
167512
+ this.logger.info("For info: ".concat(info.fileName, " :: No config files found."));
167469
167513
  }
167470
167514
  if (isOpenScriptInfo(info)) {
167471
167515
  this.configFileForOpenFiles.set(info.path, configFileName || false);
@@ -167484,8 +167528,8 @@ var ts;
167484
167528
  this.logger.info("Open files: ");
167485
167529
  this.openFiles.forEach(function (projectRootPath, path) {
167486
167530
  var info = _this.getScriptInfoForPath(path);
167487
- _this.logger.info("\tFileName: " + info.fileName + " ProjectRootPath: " + projectRootPath);
167488
- _this.logger.info("\t\tProjects: " + info.containingProjects.map(function (p) { return p.getProjectName(); }));
167531
+ _this.logger.info("\tFileName: ".concat(info.fileName, " ProjectRootPath: ").concat(projectRootPath));
167532
+ _this.logger.info("\t\tProjects: ".concat(info.containingProjects.map(function (p) { return p.getProjectName(); })));
167489
167533
  });
167490
167534
  this.logger.endGroup();
167491
167535
  };
@@ -167524,7 +167568,7 @@ var ts;
167524
167568
  .map(function (name) { return ({ name: name, size: _this.host.getFileSize(name) }); })
167525
167569
  .sort(function (a, b) { return b.size - a.size; })
167526
167570
  .slice(0, 5);
167527
- this.logger.info("Non TS file size exceeded limit (" + totalNonTsFileSize + "). Largest files: " + top5LargestFiles.map(function (file) { return file.name + ":" + file.size; }).join(", "));
167571
+ 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(", ")));
167528
167572
  // Keep the size as zero since it's disabled
167529
167573
  return fileName;
167530
167574
  }
@@ -167593,7 +167637,7 @@ var ts;
167593
167637
  };
167594
167638
  /* @internal */
167595
167639
  ProjectService.prototype.createConfiguredProject = function (configFileName) {
167596
- this.logger.info("Creating configuration project " + configFileName);
167640
+ this.logger.info("Creating configuration project ".concat(configFileName));
167597
167641
  var canonicalConfigFilePath = server.asNormalizedPath(this.toCanonicalFileName(configFileName));
167598
167642
  var configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);
167599
167643
  // We could be in this scenario if project is the configured project tracked by external project
@@ -167704,12 +167748,12 @@ var ts;
167704
167748
  if (parsedCommandLine.errors.length) {
167705
167749
  configFileErrors.push.apply(configFileErrors, parsedCommandLine.errors);
167706
167750
  }
167707
- this.logger.info("Config: " + configFilename + " : " + JSON.stringify({
167751
+ this.logger.info("Config: ".concat(configFilename, " : ").concat(JSON.stringify({
167708
167752
  rootNames: parsedCommandLine.fileNames,
167709
167753
  options: parsedCommandLine.options,
167710
167754
  watchOptions: parsedCommandLine.watchOptions,
167711
167755
  projectReferences: parsedCommandLine.projectReferences
167712
- }, /*replacer*/ undefined, " "));
167756
+ }, /*replacer*/ undefined, " ")));
167713
167757
  var oldCommandLine = (_b = configFileExistenceInfo.config) === null || _b === void 0 ? void 0 : _b.parsedCommandLine;
167714
167758
  if (!configFileExistenceInfo.config) {
167715
167759
  configFileExistenceInfo.config = { parsedCommandLine: parsedCommandLine, cachedDirectoryStructureHost: cachedDirectoryStructureHost, projects: new ts.Map() };
@@ -167739,7 +167783,7 @@ var ts;
167739
167783
  // Update projects
167740
167784
  var ensureProjectsForOpenFiles = false;
167741
167785
  (_a = _this.sharedExtendedConfigFileWatchers.get(extendedConfigFilePath)) === null || _a === void 0 ? void 0 : _a.projects.forEach(function (canonicalPath) {
167742
- ensureProjectsForOpenFiles = _this.delayUpdateProjectsFromParsedConfigOnConfigFileChange(canonicalPath, "Change in extended config file " + extendedConfigFileName + " detected") || ensureProjectsForOpenFiles;
167786
+ ensureProjectsForOpenFiles = _this.delayUpdateProjectsFromParsedConfigOnConfigFileChange(canonicalPath, "Change in extended config file ".concat(extendedConfigFileName, " detected")) || ensureProjectsForOpenFiles;
167743
167787
  });
167744
167788
  if (ensureProjectsForOpenFiles)
167745
167789
  _this.delayEnsureProjectForOpenFiles();
@@ -167895,7 +167939,7 @@ var ts;
167895
167939
  // Clear the cache since we are reloading the project from disk
167896
167940
  host.clearCache();
167897
167941
  var configFileName = project.getConfigFilePath();
167898
- this.logger.info((isInitialLoad ? "Loading" : "Reloading") + " configured project " + configFileName);
167942
+ this.logger.info("".concat(isInitialLoad ? "Loading" : "Reloading", " configured project ").concat(configFileName));
167899
167943
  // Load project from the disk
167900
167944
  this.loadConfiguredProject(project, reason);
167901
167945
  project.updateGraph();
@@ -168034,7 +168078,7 @@ var ts;
168034
168078
  var path = _a[0], scriptInfo = _a[1];
168035
168079
  return ({ path: path, fileName: scriptInfo.fileName });
168036
168080
  });
168037
- this.logger.msg("Could not find file " + JSON.stringify(fileName) + ".\nAll files are: " + JSON.stringify(names), server.Msg.Err);
168081
+ this.logger.msg("Could not find file ".concat(JSON.stringify(fileName), ".\nAll files are: ").concat(JSON.stringify(names)), server.Msg.Err);
168038
168082
  };
168039
168083
  /**
168040
168084
  * Returns the projects that contain script info through SymLink
@@ -168218,9 +168262,9 @@ var ts;
168218
168262
  var info = this.getScriptInfoForPath(path);
168219
168263
  if (!info) {
168220
168264
  var isDynamic = server.isDynamicFileName(fileName);
168221
- 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"; });
168222
- 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"; });
168223
- 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."; });
168265
+ 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"); });
168266
+ 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"); });
168267
+ 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."); });
168224
168268
  // If the file is not opened by client and the file doesnot exist on the disk, return
168225
168269
  if (!openedByClient && !isDynamic && !(hostToQueryFileExistsOn || this.host).fileExists(fileName)) {
168226
168270
  return;
@@ -168399,13 +168443,13 @@ var ts;
168399
168443
  var info = this.getScriptInfoForNormalizedPath(server.toNormalizedPath(args.file));
168400
168444
  if (info) {
168401
168445
  info.setOptions(convertFormatOptions(args.formatOptions), args.preferences);
168402
- this.logger.info("Host configuration update for file " + args.file);
168446
+ this.logger.info("Host configuration update for file ".concat(args.file));
168403
168447
  }
168404
168448
  }
168405
168449
  else {
168406
168450
  if (args.hostInfo !== undefined) {
168407
168451
  this.hostConfiguration.hostInfo = args.hostInfo;
168408
- this.logger.info("Host information " + args.hostInfo);
168452
+ this.logger.info("Host information ".concat(args.hostInfo));
168409
168453
  }
168410
168454
  if (args.formatOptions) {
168411
168455
  this.hostConfiguration.formatCodeOptions = __assign(__assign({}, this.hostConfiguration.formatCodeOptions), convertFormatOptions(args.formatOptions));
@@ -168437,7 +168481,7 @@ var ts;
168437
168481
  }
168438
168482
  if (args.watchOptions) {
168439
168483
  this.hostConfiguration.watchOptions = (_a = convertWatchOptions(args.watchOptions)) === null || _a === void 0 ? void 0 : _a.watchOptions;
168440
- this.logger.info("Host watch options changed to " + JSON.stringify(this.hostConfiguration.watchOptions) + ", it will be take effect for next watches.");
168484
+ this.logger.info("Host watch options changed to ".concat(JSON.stringify(this.hostConfiguration.watchOptions), ", it will be take effect for next watches."));
168441
168485
  }
168442
168486
  }
168443
168487
  };
@@ -168649,7 +168693,7 @@ var ts;
168649
168693
  ? originalLocation
168650
168694
  : location;
168651
168695
  }
168652
- configuredProject = this.createAndLoadConfiguredProject(configFileName, "Creating project for original file: " + originalFileInfo.fileName + (location !== originalLocation ? " for location: " + location.fileName : ""));
168696
+ configuredProject = this.createAndLoadConfiguredProject(configFileName, "Creating project for original file: ".concat(originalFileInfo.fileName).concat(location !== originalLocation ? " for location: " + location.fileName : ""));
168653
168697
  }
168654
168698
  updateProjectIfDirty(configuredProject);
168655
168699
  var projectContainsOriginalInfo = function (project) {
@@ -168661,7 +168705,7 @@ var ts;
168661
168705
  configuredProject = forEachResolvedProjectReferenceProject(configuredProject, fileName, function (child) {
168662
168706
  updateProjectIfDirty(child);
168663
168707
  return projectContainsOriginalInfo(child) ? child : undefined;
168664
- }, 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 : ""));
168708
+ }, 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 : ""));
168665
168709
  if (!configuredProject)
168666
168710
  return undefined;
168667
168711
  if (configuredProject === project)
@@ -168715,7 +168759,7 @@ var ts;
168715
168759
  if (configFileName) {
168716
168760
  project = this.findConfiguredProjectByProjectName(configFileName);
168717
168761
  if (!project) {
168718
- project = this.createLoadAndUpdateConfiguredProject(configFileName, "Creating possible configured project for " + info.fileName + " to open");
168762
+ project = this.createLoadAndUpdateConfiguredProject(configFileName, "Creating possible configured project for ".concat(info.fileName, " to open"));
168719
168763
  defaultConfigProjectIsCreated = true;
168720
168764
  }
168721
168765
  else {
@@ -168745,7 +168789,7 @@ var ts;
168745
168789
  if (!projectForConfigFileDiag && child.containsScriptInfo(info)) {
168746
168790
  projectForConfigFileDiag = child;
168747
168791
  }
168748
- }, ProjectReferenceProjectLoadKind.FindCreateLoad, "Creating project referenced in solution " + project.projectName + " to find possible configured project for " + info.fileName + " to open");
168792
+ }, ProjectReferenceProjectLoadKind.FindCreateLoad, "Creating project referenced in solution ".concat(project.projectName, " to find possible configured project for ").concat(info.fileName, " to open"));
168749
168793
  }
168750
168794
  // Send the event only if the project got created as part of this open request and info is part of the project
168751
168795
  if (projectForConfigFileDiag) {
@@ -168807,7 +168851,7 @@ var ts;
168807
168851
  return;
168808
168852
  // find or delay load the project
168809
168853
  var ancestor = this.findConfiguredProjectByProjectName(configFileName) ||
168810
- this.createConfiguredProjectWithDelayLoad(configFileName, "Creating project possibly referencing default composite project " + project.getProjectName() + " of open file " + info.fileName);
168854
+ this.createConfiguredProjectWithDelayLoad(configFileName, "Creating project possibly referencing default composite project ".concat(project.getProjectName(), " of open file ").concat(info.fileName));
168811
168855
  if (ancestor.isInitialLoadPending()) {
168812
168856
  // Set a potential project reference
168813
168857
  ancestor.setPotentialProjectReference(project.canonicalConfigFilePath);
@@ -168850,7 +168894,7 @@ var ts;
168850
168894
  // Load this project,
168851
168895
  var configFileName = server.toNormalizedPath(child.sourceFile.fileName);
168852
168896
  var childProject = project.projectService.findConfiguredProjectByProjectName(configFileName) ||
168853
- project.projectService.createAndLoadConfiguredProject(configFileName, "Creating project referenced by : " + project.projectName + " as it references project " + referencedProject.sourceFile.fileName);
168897
+ project.projectService.createAndLoadConfiguredProject(configFileName, "Creating project referenced by : ".concat(project.projectName, " as it references project ").concat(referencedProject.sourceFile.fileName));
168854
168898
  updateProjectIfDirty(childProject);
168855
168899
  // Ensure children for this project
168856
168900
  this.ensureProjectChildren(childProject, forProjects, seenProjects);
@@ -169151,7 +169195,7 @@ var ts;
169151
169195
  for (var _b = 0, normalizedNames_1 = normalizedNames; _b < normalizedNames_1.length; _b++) {
169152
169196
  var root = normalizedNames_1[_b];
169153
169197
  if (rule.match.test(root)) {
169154
- this_2.logger.info("Excluding files based on rule " + name + " matching file '" + root + "'");
169198
+ this_2.logger.info("Excluding files based on rule ".concat(name, " matching file '").concat(root, "'"));
169155
169199
  // If the file matches, collect its types packages and exclude rules
169156
169200
  if (rule.types) {
169157
169201
  for (var _c = 0, _d = rule.types; _c < _d.length; _c++) {
@@ -169176,7 +169220,7 @@ var ts;
169176
169220
  if (typeof groupNumberOrString === "number") {
169177
169221
  if (!ts.isString(groups[groupNumberOrString])) {
169178
169222
  // Specification was wrong - exclude nothing!
169179
- _this.logger.info("Incorrect RegExp specification in safelist rule " + name + " - not enough groups");
169223
+ _this.logger.info("Incorrect RegExp specification in safelist rule ".concat(name, " - not enough groups"));
169180
169224
  // * can't appear in a filename; escape it because it's feeding into a RegExp
169181
169225
  return "\\*";
169182
169226
  }
@@ -169224,7 +169268,7 @@ var ts;
169224
169268
  var cleanedTypingName = ts.removeMinAndVersionNumbers(inferredTypingName);
169225
169269
  var typeName = this_3.legacySafelist.get(cleanedTypingName);
169226
169270
  if (typeName !== undefined) {
169227
- this_3.logger.info("Excluded '" + normalizedNames[i] + "' because it matched " + cleanedTypingName + " from the legacy safelist");
169271
+ this_3.logger.info("Excluded '".concat(normalizedNames[i], "' because it matched ").concat(cleanedTypingName, " from the legacy safelist"));
169228
169272
  excludedFiles.push(normalizedNames[i]);
169229
169273
  // *exclude* it from the project...
169230
169274
  exclude = true;
@@ -169354,8 +169398,8 @@ var ts;
169354
169398
  if (!project) {
169355
169399
  // errors are stored in the project, do not need to update the graph
169356
169400
  project = this.getHostPreferences().lazyConfiguredProjectsFromExternalProject ?
169357
- this.createConfiguredProjectWithDelayLoad(tsconfigFile, "Creating configured project in external project: " + proj.projectFileName) :
169358
- this.createLoadAndUpdateConfiguredProject(tsconfigFile, "Creating configured project in external project: " + proj.projectFileName);
169401
+ this.createConfiguredProjectWithDelayLoad(tsconfigFile, "Creating configured project in external project: ".concat(proj.projectFileName)) :
169402
+ this.createLoadAndUpdateConfiguredProject(tsconfigFile, "Creating configured project in external project: ".concat(proj.projectFileName));
169359
169403
  }
169360
169404
  if (project && !ts.contains(exisingConfigFiles, tsconfigFile)) {
169361
169405
  // keep project alive even if no documents are opened - its lifetime is bound to the lifetime of containing external project
@@ -169593,7 +169637,7 @@ var ts;
169593
169637
  return cache || (cache = new ts.Map());
169594
169638
  }
169595
169639
  function key(fromFileName, preferences) {
169596
- return fromFileName + "," + preferences.importModuleSpecifierEnding + "," + preferences.importModuleSpecifierPreference;
169640
+ return "".concat(fromFileName, ",").concat(preferences.importModuleSpecifierEnding, ",").concat(preferences.importModuleSpecifierPreference);
169597
169641
  }
169598
169642
  function createInfo(modulePaths, moduleSpecifiers, isAutoImportable) {
169599
169643
  return { modulePaths: modulePaths, moduleSpecifiers: moduleSpecifiers, isAutoImportable: isAutoImportable };
@@ -169752,10 +169796,10 @@ var ts;
169752
169796
  var verboseLogging = logger.hasLevel(server.LogLevel.verbose);
169753
169797
  var json = JSON.stringify(msg);
169754
169798
  if (verboseLogging) {
169755
- logger.info(msg.type + ":" + server.indent(json));
169799
+ logger.info("".concat(msg.type, ":").concat(server.indent(json)));
169756
169800
  }
169757
169801
  var len = byteLength(json, "utf8");
169758
- return "Content-Length: " + (1 + len) + "\r\n\r\n" + json + newLine;
169802
+ return "Content-Length: ".concat(1 + len, "\r\n\r\n").concat(json).concat(newLine);
169759
169803
  }
169760
169804
  server.formatMessage = formatMessage;
169761
169805
  /**
@@ -169820,7 +169864,7 @@ var ts;
169820
169864
  }
169821
169865
  else {
169822
169866
  ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.instant("session" /* Session */, "stepError", { seq: this.requestId, message: e.message });
169823
- this.operationHost.logError(e, "delayed processing of request " + this.requestId);
169867
+ this.operationHost.logError(e, "delayed processing of request ".concat(this.requestId));
169824
169868
  }
169825
169869
  }
169826
169870
  if (stop || !this.hasPendingWork()) {
@@ -170605,14 +170649,14 @@ var ts;
170605
170649
  case ts.LanguageServiceMode.PartialSemantic:
170606
170650
  invalidPartialSemanticModeCommands.forEach(function (commandName) {
170607
170651
  return _this.handlers.set(commandName, function (request) {
170608
- throw new Error("Request: " + request.command + " not allowed in LanguageServiceMode.PartialSemantic");
170652
+ throw new Error("Request: ".concat(request.command, " not allowed in LanguageServiceMode.PartialSemantic"));
170609
170653
  });
170610
170654
  });
170611
170655
  break;
170612
170656
  case ts.LanguageServiceMode.Syntactic:
170613
170657
  invalidSyntacticModeCommands.forEach(function (commandName) {
170614
170658
  return _this.handlers.set(commandName, function (request) {
170615
- throw new Error("Request: " + request.command + " not allowed in LanguageServiceMode.Syntactic");
170659
+ throw new Error("Request: ".concat(request.command, " not allowed in LanguageServiceMode.Syntactic"));
170616
170660
  });
170617
170661
  });
170618
170662
  break;
@@ -170687,7 +170731,7 @@ var ts;
170687
170731
  };
170688
170732
  Session.prototype.projectsUpdatedInBackgroundEvent = function (openFiles) {
170689
170733
  var _this = this;
170690
- this.projectService.logger.info("got projects updated in background, updating diagnostics for " + openFiles);
170734
+ this.projectService.logger.info("got projects updated in background, updating diagnostics for ".concat(openFiles));
170691
170735
  if (openFiles.length) {
170692
170736
  if (!this.suppressDiagnosticEvents && !this.noGetErrOnBackgroundUpdate) {
170693
170737
  // For now only queue error checking for open files. We can change this to include non open files as well
@@ -170717,17 +170761,17 @@ var ts;
170717
170761
  var scriptInfo = project.getScriptInfoForNormalizedPath(file);
170718
170762
  if (scriptInfo) {
170719
170763
  var text = ts.getSnapshotText(scriptInfo.getSnapshot());
170720
- msg += "\n\nFile text of " + fileRequest.file + ":" + server.indent(text) + "\n";
170764
+ msg += "\n\nFile text of ".concat(fileRequest.file, ":").concat(server.indent(text), "\n");
170721
170765
  }
170722
170766
  }
170723
170767
  catch (_b) { } // eslint-disable-line no-empty
170724
170768
  }
170725
170769
  if (err.ProgramFiles) {
170726
- msg += "\n\nProgram files: " + JSON.stringify(err.ProgramFiles) + "\n";
170770
+ msg += "\n\nProgram files: ".concat(JSON.stringify(err.ProgramFiles), "\n");
170727
170771
  msg += "\n\nProjects::\n";
170728
170772
  var counter_1 = 0;
170729
170773
  var addProjectInfo = function (project) {
170730
- msg += "\nProject '" + project.projectName + "' (" + server.ProjectKind[project.projectKind] + ") " + counter_1 + "\n";
170774
+ msg += "\nProject '".concat(project.projectName, "' (").concat(server.ProjectKind[project.projectKind], ") ").concat(counter_1, "\n");
170731
170775
  msg += project.filesToString(/*writeProjectFileNames*/ true);
170732
170776
  msg += "\n-----------------------------------------------\n";
170733
170777
  counter_1++;
@@ -170742,12 +170786,12 @@ var ts;
170742
170786
  Session.prototype.send = function (msg) {
170743
170787
  if (msg.type === "event" && !this.canUseEvents) {
170744
170788
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
170745
- this.logger.info("Session does not support events: ignored event: " + JSON.stringify(msg));
170789
+ this.logger.info("Session does not support events: ignored event: ".concat(JSON.stringify(msg)));
170746
170790
  }
170747
170791
  return;
170748
170792
  }
170749
170793
  var msgText = formatMessage(msg, this.logger, this.byteLength, this.host.newLine);
170750
- ts.perfLogger.logEvent("Response message size: " + msgText.length);
170794
+ ts.perfLogger.logEvent("Response message size: ".concat(msgText.length));
170751
170795
  this.host.write(msgText);
170752
170796
  };
170753
170797
  Session.prototype.event = function (body, eventName) {
@@ -170885,7 +170929,7 @@ var ts;
170885
170929
  if (!projects) {
170886
170930
  return;
170887
170931
  }
170888
- this.logger.info("cleaning " + caption);
170932
+ this.logger.info("cleaning ".concat(caption));
170889
170933
  for (var _i = 0, projects_4 = projects; _i < projects_4.length; _i++) {
170890
170934
  var p = projects_4[_i];
170891
170935
  p.getLanguageService(/*ensureSynchronized*/ false).cleanupSemanticCache();
@@ -171299,7 +171343,7 @@ var ts;
171299
171343
  var refs = references.map(function (entry) { return referenceEntryToReferencesResponseItem(_this.projectService, entry); });
171300
171344
  return {
171301
171345
  refs: refs,
171302
- symbolName: "\"" + args.file + "\""
171346
+ symbolName: "\"".concat(args.file, "\"")
171303
171347
  };
171304
171348
  };
171305
171349
  /**
@@ -171843,7 +171887,7 @@ var ts;
171843
171887
  });
171844
171888
  var badCode = args.errorCodes.find(function (c) { return !existingDiagCodes_1.includes(c); });
171845
171889
  if (badCode !== undefined) {
171846
- 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;
171890
+ 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);
171847
171891
  }
171848
171892
  throw e;
171849
171893
  }
@@ -172120,7 +172164,7 @@ var ts;
172120
172164
  };
172121
172165
  Session.prototype.addProtocolHandler = function (command, handler) {
172122
172166
  if (this.handlers.has(command)) {
172123
- throw new Error("Protocol handler already exists for command \"" + command + "\"");
172167
+ throw new Error("Protocol handler already exists for command \"".concat(command, "\""));
172124
172168
  }
172125
172169
  this.handlers.set(command, handler);
172126
172170
  };
@@ -172149,8 +172193,8 @@ var ts;
172149
172193
  return this.executeWithRequestId(request.seq, function () { return handler(request); });
172150
172194
  }
172151
172195
  else {
172152
- this.logger.msg("Unrecognized JSON command:" + server.stringifyIndented(request), server.Msg.Err);
172153
- this.doOutput(/*info*/ undefined, server.CommandNames.Unknown, request.seq, /*success*/ false, "Unrecognized JSON command: " + request.command);
172196
+ this.logger.msg("Unrecognized JSON command:".concat(server.stringifyIndented(request)), server.Msg.Err);
172197
+ this.doOutput(/*info*/ undefined, server.CommandNames.Unknown, request.seq, /*success*/ false, "Unrecognized JSON command: ".concat(request.command));
172154
172198
  return { responseRequired: false };
172155
172199
  }
172156
172200
  };
@@ -172161,7 +172205,7 @@ var ts;
172161
172205
  if (this.logger.hasLevel(server.LogLevel.requestTime)) {
172162
172206
  start = this.hrtime();
172163
172207
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
172164
- this.logger.info("request:" + server.indent(this.toStringMessage(message)));
172208
+ this.logger.info("request:".concat(server.indent(this.toStringMessage(message))));
172165
172209
  }
172166
172210
  }
172167
172211
  var request;
@@ -172177,10 +172221,10 @@ var ts;
172177
172221
  if (this.logger.hasLevel(server.LogLevel.requestTime)) {
172178
172222
  var elapsedTime = hrTimeToMilliseconds(this.hrtime(start)).toFixed(4);
172179
172223
  if (responseRequired) {
172180
- this.logger.perftrc(request.seq + "::" + request.command + ": elapsed time (in milliseconds) " + elapsedTime);
172224
+ this.logger.perftrc("".concat(request.seq, "::").concat(request.command, ": elapsed time (in milliseconds) ").concat(elapsedTime));
172181
172225
  }
172182
172226
  else {
172183
- this.logger.perftrc(request.seq + "::" + request.command + ": async elapsed time (in milliseconds) " + elapsedTime);
172227
+ this.logger.perftrc("".concat(request.seq, "::").concat(request.command, ": async elapsed time (in milliseconds) ").concat(elapsedTime));
172184
172228
  }
172185
172229
  }
172186
172230
  // Note: Log before writing the response, else the editor can complete its activity before the server does
@@ -173116,7 +173160,7 @@ var ts;
173116
173160
  }
173117
173161
  if (!this.canWrite())
173118
173162
  return;
173119
- s = "[" + server.nowString() + "] " + s + "\n";
173163
+ s = "[".concat(server.nowString(), "] ").concat(s, "\n");
173120
173164
  if (!this.inGroup || this.firstInGroup) {
173121
173165
  var prefix = BaseLogger.padStringRight(type + " " + this.seq.toString(), " ");
173122
173166
  s = prefix + s;
@@ -173233,12 +173277,12 @@ var ts;
173233
173277
  WorkerSession.prototype.send = function (msg) {
173234
173278
  if (msg.type === "event" && !this.canUseEvents) {
173235
173279
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
173236
- this.logger.info("Session does not support events: ignored event: " + JSON.stringify(msg));
173280
+ this.logger.info("Session does not support events: ignored event: ".concat(JSON.stringify(msg)));
173237
173281
  }
173238
173282
  return;
173239
173283
  }
173240
173284
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
173241
- this.logger.info(msg.type + ":" + server.indent(JSON.stringify(msg)));
173285
+ this.logger.info("".concat(msg.type, ":").concat(server.indent(JSON.stringify(msg))));
173242
173286
  }
173243
173287
  this.webHost.writeMessage(msg);
173244
173288
  };
@@ -174301,23 +174345,23 @@ var ts;
174301
174345
  var status = cacheKey && statusCache_1.get(cacheKey);
174302
174346
  if (status === undefined) {
174303
174347
  if (logger.hasLevel(server.LogLevel.verbose)) {
174304
- logger.info(cacheKey + " for path " + path + " not found in cache...");
174348
+ logger.info("".concat(cacheKey, " for path ").concat(path, " not found in cache..."));
174305
174349
  }
174306
174350
  try {
174307
174351
  var args = [ts.combinePaths(__dirname, "watchGuard.js"), path];
174308
174352
  if (logger.hasLevel(server.LogLevel.verbose)) {
174309
- logger.info("Starting " + process.execPath + " with args:" + server.stringifyIndented(args));
174353
+ logger.info("Starting ".concat(process.execPath, " with args:").concat(server.stringifyIndented(args)));
174310
174354
  }
174311
174355
  childProcess.execFileSync(process.execPath, args, { stdio: "ignore", env: { ELECTRON_RUN_AS_NODE: "1" } });
174312
174356
  status = true;
174313
174357
  if (logger.hasLevel(server.LogLevel.verbose)) {
174314
- logger.info("WatchGuard for path " + path + " returned: OK");
174358
+ logger.info("WatchGuard for path ".concat(path, " returned: OK"));
174315
174359
  }
174316
174360
  }
174317
174361
  catch (e) {
174318
174362
  status = false;
174319
174363
  if (logger.hasLevel(server.LogLevel.verbose)) {
174320
- logger.info("WatchGuard for path " + path + " returned: " + e.message);
174364
+ logger.info("WatchGuard for path ".concat(path, " returned: ").concat(e.message));
174321
174365
  }
174322
174366
  }
174323
174367
  if (cacheKey) {
@@ -174325,7 +174369,7 @@ var ts;
174325
174369
  }
174326
174370
  }
174327
174371
  else if (logger.hasLevel(server.LogLevel.verbose)) {
174328
- logger.info("watchDirectory for " + path + " uses cached drive information.");
174372
+ logger.info("watchDirectory for ".concat(path, " uses cached drive information."));
174329
174373
  }
174330
174374
  if (status) {
174331
174375
  // this drive is safe to use - call real 'watchDirectory'
@@ -174468,7 +174512,7 @@ var ts;
174468
174512
  return originalWatchDirectory(path, callback, recursive, options);
174469
174513
  }
174470
174514
  catch (e) {
174471
- logger.info("Exception when creating directory watcher: " + e.message);
174515
+ logger.info("Exception when creating directory watcher: ".concat(e.message));
174472
174516
  return ts.noopFileWatcher;
174473
174517
  }
174474
174518
  }
@@ -174537,7 +174581,7 @@ var ts;
174537
174581
  args.push(server.Arguments.EnableTelemetry);
174538
174582
  }
174539
174583
  if (this.logger.loggingEnabled() && this.logger.getLogFileName()) {
174540
- args.push(server.Arguments.LogFile, ts.combinePaths(ts.getDirectoryPath(ts.normalizeSlashes(this.logger.getLogFileName())), "ti-" + process.pid + ".log"));
174584
+ args.push(server.Arguments.LogFile, ts.combinePaths(ts.getDirectoryPath(ts.normalizeSlashes(this.logger.getLogFileName())), "ti-".concat(process.pid, ".log")));
174541
174585
  }
174542
174586
  if (this.typingSafeListLocation) {
174543
174587
  args.push(server.Arguments.TypingSafeListLocation, this.typingSafeListLocation);
@@ -174561,7 +174605,7 @@ var ts;
174561
174605
  var currentPort = match[2] !== undefined
174562
174606
  ? +match[2]
174563
174607
  : match[1].charAt(0) === "d" ? 5858 : 9229;
174564
- execArgv.push("--" + match[1] + "=" + (currentPort + 1));
174608
+ execArgv.push("--".concat(match[1], "=").concat(currentPort + 1));
174565
174609
  break;
174566
174610
  }
174567
174611
  }
@@ -174587,13 +174631,13 @@ var ts;
174587
174631
  var request = server.createInstallTypingsRequest(project, typeAcquisition, unresolvedImports);
174588
174632
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
174589
174633
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
174590
- this.logger.info("Scheduling throttled operation:" + server.stringifyIndented(request));
174634
+ this.logger.info("Scheduling throttled operation:".concat(server.stringifyIndented(request)));
174591
174635
  }
174592
174636
  }
174593
174637
  var operationId = project.getProjectName();
174594
174638
  var operation = function () {
174595
174639
  if (_this.logger.hasLevel(server.LogLevel.verbose)) {
174596
- _this.logger.info("Sending request:" + server.stringifyIndented(request));
174640
+ _this.logger.info("Sending request:".concat(server.stringifyIndented(request)));
174597
174641
  }
174598
174642
  _this.send(request);
174599
174643
  };
@@ -174603,7 +174647,7 @@ var ts;
174603
174647
  }
174604
174648
  else {
174605
174649
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
174606
- this.logger.info("Deferring request for: " + operationId);
174650
+ this.logger.info("Deferring request for: ".concat(operationId));
174607
174651
  }
174608
174652
  this.requestQueue.push(queuedRequest);
174609
174653
  this.requestMap.set(operationId, queuedRequest);
@@ -174611,7 +174655,7 @@ var ts;
174611
174655
  };
174612
174656
  NodeTypingsInstaller.prototype.handleMessage = function (response) {
174613
174657
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
174614
- this.logger.info("Received response:" + server.stringifyIndented(response));
174658
+ this.logger.info("Received response:".concat(server.stringifyIndented(response)));
174615
174659
  }
174616
174660
  switch (response.kind) {
174617
174661
  case server.EventTypesRegistry:
@@ -174689,7 +174733,7 @@ var ts;
174689
174733
  break;
174690
174734
  }
174691
174735
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
174692
- this.logger.info("Skipping defunct request for: " + queuedRequest.operationId);
174736
+ this.logger.info("Skipping defunct request for: ".concat(queuedRequest.operationId));
174693
174737
  }
174694
174738
  }
174695
174739
  this.projectService.updateTypingsForProject(response);
@@ -174702,7 +174746,7 @@ var ts;
174702
174746
  };
174703
174747
  NodeTypingsInstaller.prototype.scheduleRequest = function (request) {
174704
174748
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
174705
- this.logger.info("Scheduling request for: " + request.operationId);
174749
+ this.logger.info("Scheduling request for: ".concat(request.operationId));
174706
174750
  }
174707
174751
  this.activeRequestCount++;
174708
174752
  this.host.setTimeout(request.operation, NodeTypingsInstaller.requestDelayMillis);
@@ -174750,7 +174794,7 @@ var ts;
174750
174794
  if (this.canUseEvents && this.eventPort) {
174751
174795
  if (!this.eventSocket) {
174752
174796
  if (this.logger.hasLevel(server.LogLevel.verbose)) {
174753
- this.logger.info("eventPort: event \"" + eventName + "\" queued, but socket not yet initialized");
174797
+ this.logger.info("eventPort: event \"".concat(eventName, "\" queued, but socket not yet initialized"));
174754
174798
  }
174755
174799
  (this.socketEventQueue || (this.socketEventQueue = [])).push({ body: body, eventName: eventName });
174756
174800
  return;
@@ -174828,7 +174872,7 @@ var ts;
174828
174872
  return ts.combinePaths(ts.combinePaths(cacheLocation, "typescript"), ts.versionMajorMinor);
174829
174873
  }
174830
174874
  default:
174831
- return ts.Debug.fail("unsupported platform '" + process.platform + "'");
174875
+ return ts.Debug.fail("unsupported platform '".concat(process.platform, "'"));
174832
174876
  }
174833
174877
  }
174834
174878
  function getNonWindowsCacheLocation(platformIsDarwin) {
@@ -174838,7 +174882,7 @@ var ts;
174838
174882
  var usersDir = platformIsDarwin ? "Users" : "home";
174839
174883
  var homePath = (os.homedir && os.homedir()) ||
174840
174884
  process.env.HOME ||
174841
- ((process.env.LOGNAME || process.env.USER) && "/" + usersDir + "/" + (process.env.LOGNAME || process.env.USER)) ||
174885
+ ((process.env.LOGNAME || process.env.USER) && "/".concat(usersDir, "/").concat(process.env.LOGNAME || process.env.USER)) ||
174842
174886
  os.tmpdir();
174843
174887
  var cacheFolder = platformIsDarwin
174844
174888
  ? "Library/Caches"
@@ -174996,10 +175040,10 @@ var ts;
174996
175040
  var args = _a.args, logger = _a.logger, cancellationToken = _a.cancellationToken, serverMode = _a.serverMode, unknownServerMode = _a.unknownServerMode, startServer = _a.startSession;
174997
175041
  var syntaxOnly = server.hasArgument("--syntaxOnly");
174998
175042
  logger.info("Starting TS Server");
174999
- logger.info("Version: " + ts.version);
175000
- logger.info("Arguments: " + args.join(" "));
175001
- logger.info("Platform: " + platform + " NodeVersion: " + ts.getNodeMajorVersion() + " CaseSensitive: " + ts.sys.useCaseSensitiveFileNames);
175002
- logger.info("ServerMode: " + serverMode + " syntaxOnly: " + syntaxOnly + " hasUnknownServerMode: " + unknownServerMode);
175043
+ logger.info("Version: ".concat(ts.version));
175044
+ logger.info("Arguments: ".concat(args.join(" ")));
175045
+ logger.info("Platform: ".concat(platform, " NodeVersion: ").concat(ts.getNodeMajorVersion(), " CaseSensitive: ").concat(ts.sys.useCaseSensitiveFileNames));
175046
+ logger.info("ServerMode: ".concat(serverMode, " syntaxOnly: ").concat(syntaxOnly, " hasUnknownServerMode: ").concat(unknownServerMode));
175003
175047
  ts.setStackTraceLimit();
175004
175048
  if (ts.Debug.isDebugging) {
175005
175049
  ts.Debug.enableDebugInfo();