mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-06-17 12:19:32 -05:00
Update LKG.
This commit is contained in:
165
lib/tsc.js
165
lib/tsc.js
@@ -2509,7 +2509,7 @@ var ts;
|
||||
function getCustomPollingBasedLevels(baseVariable, defaultLevels) {
|
||||
var customLevels = getCustomLevels(baseVariable);
|
||||
return (pollingIntervalChanged || customLevels) &&
|
||||
createPollingIntervalBasedLevels(customLevels ? __assign({}, defaultLevels, customLevels) : defaultLevels);
|
||||
createPollingIntervalBasedLevels(customLevels ? __assign(__assign({}, defaultLevels), customLevels) : defaultLevels);
|
||||
}
|
||||
}
|
||||
ts.setCustomPollingValues = setCustomPollingValues;
|
||||
@@ -4725,7 +4725,7 @@ var ts;
|
||||
_a.of = 148,
|
||||
_a);
|
||||
var textToKeyword = ts.createMapFromTemplate(textToKeywordObj);
|
||||
var textToToken = ts.createMapFromTemplate(__assign({}, textToKeywordObj, { "{": 18, "}": 19, "(": 20, ")": 21, "[": 22, "]": 23, ".": 24, "...": 25, ";": 26, ",": 27, "<": 28, ">": 30, "<=": 31, ">=": 32, "==": 33, "!=": 34, "===": 35, "!==": 36, "=>": 37, "+": 38, "-": 39, "**": 41, "*": 40, "/": 42, "%": 43, "++": 44, "--": 45, "<<": 46, "</": 29, ">>": 47, ">>>": 48, "&": 49, "|": 50, "^": 51, "!": 52, "~": 53, "&&": 54, "||": 55, "?": 56, ":": 57, "=": 60, "+=": 61, "-=": 62, "*=": 63, "**=": 64, "/=": 65, "%=": 66, "<<=": 67, ">>=": 68, ">>>=": 69, "&=": 70, "|=": 71, "^=": 72, "@": 58, "`": 59 }));
|
||||
var textToToken = ts.createMapFromTemplate(__assign(__assign({}, textToKeywordObj), { "{": 18, "}": 19, "(": 20, ")": 21, "[": 22, "]": 23, ".": 24, "...": 25, ";": 26, ",": 27, "<": 28, ">": 30, "<=": 31, ">=": 32, "==": 33, "!=": 34, "===": 35, "!==": 36, "=>": 37, "+": 38, "-": 39, "**": 41, "*": 40, "/": 42, "%": 43, "++": 44, "--": 45, "<<": 46, "</": 29, ">>": 47, ">>>": 48, "&": 49, "|": 50, "^": 51, "!": 52, "~": 53, "&&": 54, "||": 55, "?": 56, ":": 57, "=": 60, "+=": 61, "-=": 62, "*=": 63, "**=": 64, "/=": 65, "%=": 66, "<<=": 67, ">>=": 68, ">>>=": 69, "&=": 70, "|=": 71, "^=": 72, "@": 58, "`": 59 }));
|
||||
var unicodeES3IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1610, 1649, 1747, 1749, 1749, 1765, 1766, 1786, 1788, 1808, 1808, 1810, 1836, 1920, 1957, 2309, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2784, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3294, 3294, 3296, 3297, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3424, 3425, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805, 3840, 3840, 3904, 3911, 3913, 3946, 3976, 3979, 4096, 4129, 4131, 4135, 4137, 4138, 4176, 4181, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6067, 6176, 6263, 6272, 6312, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8319, 8319, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12346, 12353, 12436, 12445, 12446, 12449, 12538, 12540, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65138, 65140, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,];
|
||||
var unicodeES3IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 768, 846, 864, 866, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1155, 1158, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1441, 1443, 1465, 1467, 1469, 1471, 1471, 1473, 1474, 1476, 1476, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1621, 1632, 1641, 1648, 1747, 1749, 1756, 1759, 1768, 1770, 1773, 1776, 1788, 1808, 1836, 1840, 1866, 1920, 1968, 2305, 2307, 2309, 2361, 2364, 2381, 2384, 2388, 2392, 2403, 2406, 2415, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2492, 2494, 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2562, 2562, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2649, 2652, 2654, 2654, 2662, 2676, 2689, 2691, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2784, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2876, 2883, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2913, 2918, 2927, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3031, 3031, 3047, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3168, 3169, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3297, 3302, 3311, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3390, 3395, 3398, 3400, 3402, 3405, 3415, 3415, 3424, 3425, 3430, 3439, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3805, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3946, 3953, 3972, 3974, 3979, 3984, 3991, 3993, 4028, 4038, 4038, 4096, 4129, 4131, 4135, 4137, 4138, 4140, 4146, 4150, 4153, 4160, 4169, 4176, 4185, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 4969, 4977, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6099, 6112, 6121, 6160, 6169, 6176, 6263, 6272, 6313, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8319, 8319, 8400, 8412, 8417, 8417, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12346, 12353, 12436, 12441, 12442, 12445, 12446, 12449, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65056, 65059, 65075, 65076, 65101, 65103, 65136, 65138, 65140, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,];
|
||||
var unicodeES5IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208, 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,];
|
||||
@@ -6898,16 +6898,12 @@ var ts;
|
||||
return emitNode && emitNode.flags || 0;
|
||||
}
|
||||
ts.getEmitFlags = getEmitFlags;
|
||||
var escapeNoSubstitutionTemplateLiteralText = ts.compose(escapeString, escapeTemplateSubstitution);
|
||||
var escapeNonAsciiNoSubstitutionTemplateLiteralText = ts.compose(escapeNonAsciiString, escapeTemplateSubstitution);
|
||||
function getLiteralText(node, sourceFile, neverAsciiEscape) {
|
||||
if (!nodeIsSynthesized(node) && node.parent && !((ts.isNumericLiteral(node) && node.numericLiteralFlags & 512) ||
|
||||
ts.isBigIntLiteral(node))) {
|
||||
return getSourceTextOfNodeFromSourceFile(sourceFile, node);
|
||||
}
|
||||
var escapeText = neverAsciiEscape || (getEmitFlags(node) & 16777216) ?
|
||||
node.kind === 14 ? escapeNoSubstitutionTemplateLiteralText : escapeString :
|
||||
node.kind === 14 ? escapeNonAsciiNoSubstitutionTemplateLiteralText : escapeNonAsciiString;
|
||||
var escapeText = neverAsciiEscape || (getEmitFlags(node) & 16777216) ? escapeString : escapeNonAsciiString;
|
||||
switch (node.kind) {
|
||||
case 10:
|
||||
if (node.singleQuote) {
|
||||
@@ -6917,13 +6913,21 @@ var ts;
|
||||
return '"' + escapeText(node.text, 34) + '"';
|
||||
}
|
||||
case 14:
|
||||
return "`" + escapeText(node.text, 96) + "`";
|
||||
case 15:
|
||||
return "`" + escapeText(node.text, 96) + "${";
|
||||
case 16:
|
||||
return "}" + escapeText(node.text, 96) + "${";
|
||||
case 17:
|
||||
return "}" + escapeText(node.text, 96) + "`";
|
||||
var rawText = node.rawText || escapeTemplateSubstitution(escapeText(node.text, 96));
|
||||
switch (node.kind) {
|
||||
case 14:
|
||||
return "`" + rawText + "`";
|
||||
case 15:
|
||||
return "`" + rawText + "${";
|
||||
case 16:
|
||||
return "}" + rawText + "${";
|
||||
case 17:
|
||||
return "}" + rawText + "`";
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
case 9:
|
||||
case 13:
|
||||
@@ -9143,7 +9147,7 @@ var ts;
|
||||
}
|
||||
var doubleQuoteEscapedCharsRegExp = /[\\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
var singleQuoteEscapedCharsRegExp = /[\\\'\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
var backtickQuoteEscapedCharsRegExp = /[\\\`\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
var backtickQuoteEscapedCharsRegExp = /[\\\`]/g;
|
||||
var escapedCharsMap = ts.createMapFromTemplate({
|
||||
"\t": "\\t",
|
||||
"\v": "\\v",
|
||||
@@ -9315,7 +9319,7 @@ var ts;
|
||||
pendingTrailingSemicolon = false;
|
||||
}
|
||||
}
|
||||
return __assign({}, writer, { writeTrailingSemicolon: function () {
|
||||
return __assign(__assign({}, writer), { writeTrailingSemicolon: function () {
|
||||
pendingTrailingSemicolon = true;
|
||||
},
|
||||
writeLiteral: function (s) {
|
||||
@@ -15294,6 +15298,16 @@ var ts;
|
||||
function parseLiteralLikeNode(kind) {
|
||||
var node = createNode(kind);
|
||||
node.text = scanner.getTokenValue();
|
||||
switch (kind) {
|
||||
case 14:
|
||||
case 15:
|
||||
case 16:
|
||||
case 17:
|
||||
var isLast = kind === 14 || kind === 17;
|
||||
var tokenText = scanner.getTokenText();
|
||||
node.rawText = tokenText.substring(1, tokenText.length - (scanner.isUnterminated() ? 0 : isLast ? 1 : 2));
|
||||
break;
|
||||
}
|
||||
if (scanner.hasExtendedUnicodeEscape()) {
|
||||
node.hasExtendedUnicodeEscape = true;
|
||||
}
|
||||
@@ -21014,13 +21028,13 @@ var ts;
|
||||
var getCanonicalFileName = ts.createGetCanonicalFileName(host.useCaseSensitiveFileNames);
|
||||
var files = ts.map(ts.filter(configParseResult.fileNames, (!configParseResult.configFileSpecs || !configParseResult.configFileSpecs.validatedIncludeSpecs) ? function (_) { return true; } : matchesSpecs(configFileName, configParseResult.configFileSpecs.validatedIncludeSpecs, configParseResult.configFileSpecs.validatedExcludeSpecs)), function (f) { return ts.getRelativePathFromFile(ts.getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), ts.getNormalizedAbsolutePath(f, host.getCurrentDirectory()), getCanonicalFileName); });
|
||||
var optionMap = serializeCompilerOptions(configParseResult.options, { configFilePath: ts.getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), useCaseSensitiveFileNames: host.useCaseSensitiveFileNames });
|
||||
var config = __assign({ compilerOptions: __assign({}, ts.arrayFrom(optionMap.entries()).reduce(function (prev, cur) {
|
||||
var config = __assign(__assign({ compilerOptions: __assign(__assign({}, ts.arrayFrom(optionMap.entries()).reduce(function (prev, cur) {
|
||||
var _a;
|
||||
return (__assign({}, prev, (_a = {}, _a[cur[0]] = cur[1], _a)));
|
||||
}, {}), { showConfig: undefined, configFile: undefined, configFilePath: undefined, help: undefined, init: undefined, listFiles: undefined, listEmittedFiles: undefined, project: undefined, build: undefined, version: undefined }), references: ts.map(configParseResult.projectReferences, function (r) { return (__assign({}, r, { path: r.originalPath ? r.originalPath : "", originalPath: undefined })); }), files: ts.length(files) ? files : undefined }, (configParseResult.configFileSpecs ? {
|
||||
return (__assign(__assign({}, prev), (_a = {}, _a[cur[0]] = cur[1], _a)));
|
||||
}, {})), { showConfig: undefined, configFile: undefined, configFilePath: undefined, help: undefined, init: undefined, listFiles: undefined, listEmittedFiles: undefined, project: undefined, build: undefined, version: undefined }), references: ts.map(configParseResult.projectReferences, function (r) { return (__assign(__assign({}, r), { path: r.originalPath ? r.originalPath : "", originalPath: undefined })); }), files: ts.length(files) ? files : undefined }, (configParseResult.configFileSpecs ? {
|
||||
include: filterSameAsDefaultInclude(configParseResult.configFileSpecs.validatedIncludeSpecs),
|
||||
exclude: configParseResult.configFileSpecs.validatedExcludeSpecs
|
||||
} : {}), { compileOnSave: !!configParseResult.compileOnSave ? true : undefined });
|
||||
} : {})), { compileOnSave: !!configParseResult.compileOnSave ? true : undefined });
|
||||
return config;
|
||||
}
|
||||
ts.convertToTSConfig = convertToTSConfig;
|
||||
@@ -22477,7 +22491,7 @@ var ts;
|
||||
if (!compilerOptions.preserveSymlinks && resolvedValue && !resolvedValue.originalPath) {
|
||||
var path = realPath(resolvedValue.path, host, traceEnabled);
|
||||
var originalPath = path === resolvedValue.path ? undefined : resolvedValue.path;
|
||||
resolvedValue = __assign({}, resolvedValue, { path: path, originalPath: originalPath });
|
||||
resolvedValue = __assign(__assign({}, resolvedValue), { path: path, originalPath: originalPath });
|
||||
}
|
||||
return { value: resolvedValue && { resolved: resolvedValue, isExternalLibraryImport: true } };
|
||||
}
|
||||
@@ -24468,7 +24482,7 @@ var ts;
|
||||
file.bindDiagnostics.push(diag);
|
||||
}
|
||||
else {
|
||||
file.bindSuggestionDiagnostics = ts.append(file.bindSuggestionDiagnostics, __assign({}, diag, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
file.bindSuggestionDiagnostics = ts.append(file.bindSuggestionDiagnostics, __assign(__assign({}, diag), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
}
|
||||
function bind(node) {
|
||||
@@ -26432,7 +26446,7 @@ var ts;
|
||||
function addUnusedDiagnostics() {
|
||||
checkUnusedIdentifiers(getPotentiallyUnusedIdentifiers(file), function (containingNode, kind, diag) {
|
||||
if (!ts.containsParseError(containingNode) && !unusedIsError(kind)) {
|
||||
(diagnostics || (diagnostics = [])).push(__assign({}, diag, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
(diagnostics || (diagnostics = [])).push(__assign(__assign({}, diag), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -26713,7 +26727,7 @@ var ts;
|
||||
diagnostics.add(diagnostic);
|
||||
}
|
||||
else {
|
||||
suggestionDiagnostics.add(__assign({}, diagnostic, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
suggestionDiagnostics.add(__assign(__assign({}, diagnostic), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
}
|
||||
function errorOrSuggestion(isError, location, message, arg0, arg1, arg2, arg3) {
|
||||
@@ -29584,7 +29598,7 @@ var ts;
|
||||
if (!specifier) {
|
||||
var isBundle_1 = (compilerOptions.out || compilerOptions.outFile);
|
||||
var moduleResolverHost = context.tracker.moduleResolverHost;
|
||||
var specifierCompilerOptions = isBundle_1 ? __assign({}, compilerOptions, { baseUrl: moduleResolverHost.getCommonSourceDirectory() }) : compilerOptions;
|
||||
var specifierCompilerOptions = isBundle_1 ? __assign(__assign({}, compilerOptions), { baseUrl: moduleResolverHost.getCommonSourceDirectory() }) : compilerOptions;
|
||||
specifier = ts.first(ts.moduleSpecifiers.getModuleSpecifiers(symbol, specifierCompilerOptions, contextFile, moduleResolverHost, host.getSourceFiles(), { importModuleSpecifierPreference: isBundle_1 ? "non-relative" : "relative" }, host.redirectTargetsMap));
|
||||
links.specifierCache = links.specifierCache || ts.createMap();
|
||||
links.specifierCache.set(contextFile.path, specifier);
|
||||
@@ -35835,7 +35849,7 @@ var ts;
|
||||
var childrenPropName = childPropName === undefined ? "children" : ts.unescapeLeadingUnderscores(childPropName);
|
||||
var childrenTargetType = getIndexedAccessType(target, getLiteralType(childrenPropName));
|
||||
var diagnostic = ts.Diagnostics._0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2;
|
||||
invalidTextDiagnostic = __assign({}, diagnostic, { key: "!!ALREADY FORMATTED!!", message: ts.formatMessage(undefined, diagnostic, tagNameText, childrenPropName, typeToString(childrenTargetType)) });
|
||||
invalidTextDiagnostic = __assign(__assign({}, diagnostic), { key: "!!ALREADY FORMATTED!!", message: ts.formatMessage(undefined, diagnostic, tagNameText, childrenPropName, typeToString(childrenTargetType)) });
|
||||
}
|
||||
return invalidTextDiagnostic;
|
||||
}
|
||||
@@ -46150,7 +46164,16 @@ var ts;
|
||||
return checkExpression(node.expression, checkMode);
|
||||
}
|
||||
function checkExpressionWorker(node, checkMode, forceTuple) {
|
||||
switch (node.kind) {
|
||||
var kind = node.kind;
|
||||
if (cancellationToken) {
|
||||
switch (kind) {
|
||||
case 210:
|
||||
case 197:
|
||||
case 198:
|
||||
cancellationToken.throwIfCancellationRequested();
|
||||
}
|
||||
}
|
||||
switch (kind) {
|
||||
case 73:
|
||||
return checkIdentifier(node);
|
||||
case 101:
|
||||
@@ -53889,27 +53912,86 @@ var ts;
|
||||
: node;
|
||||
}
|
||||
ts.updateTemplateExpression = updateTemplateExpression;
|
||||
function createTemplateHead(text) {
|
||||
var node = createSynthesizedNode(15);
|
||||
var rawTextScanner;
|
||||
var invalidValueSentinel = {};
|
||||
function getCookedText(kind, rawText) {
|
||||
if (!rawTextScanner) {
|
||||
rawTextScanner = ts.createScanner(99, false, 0);
|
||||
}
|
||||
switch (kind) {
|
||||
case 14:
|
||||
rawTextScanner.setText("`" + rawText + "`");
|
||||
break;
|
||||
case 15:
|
||||
rawTextScanner.setText("`" + rawText + "${");
|
||||
break;
|
||||
case 16:
|
||||
rawTextScanner.setText("}" + rawText + "${");
|
||||
break;
|
||||
case 17:
|
||||
rawTextScanner.setText("}" + rawText + "`");
|
||||
break;
|
||||
}
|
||||
var token = rawTextScanner.scan();
|
||||
if (token === 23) {
|
||||
token = rawTextScanner.reScanTemplateToken();
|
||||
}
|
||||
if (rawTextScanner.isUnterminated()) {
|
||||
rawTextScanner.setText(undefined);
|
||||
return invalidValueSentinel;
|
||||
}
|
||||
var tokenValue;
|
||||
switch (token) {
|
||||
case 14:
|
||||
case 15:
|
||||
case 16:
|
||||
case 17:
|
||||
tokenValue = rawTextScanner.getTokenValue();
|
||||
break;
|
||||
}
|
||||
if (rawTextScanner.scan() !== 1) {
|
||||
rawTextScanner.setText(undefined);
|
||||
return invalidValueSentinel;
|
||||
}
|
||||
rawTextScanner.setText(undefined);
|
||||
return tokenValue;
|
||||
}
|
||||
function createTemplateLiteralLikeNode(kind, text, rawText) {
|
||||
var node = createSynthesizedNode(kind);
|
||||
node.text = text;
|
||||
if (rawText === undefined || text === rawText) {
|
||||
node.rawText = rawText;
|
||||
}
|
||||
else {
|
||||
var cooked = getCookedText(kind, rawText);
|
||||
if (typeof cooked === "object") {
|
||||
return ts.Debug.fail("Invalid raw text");
|
||||
}
|
||||
ts.Debug.assert(text === cooked, "Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.");
|
||||
node.rawText = rawText;
|
||||
}
|
||||
return node;
|
||||
}
|
||||
function createTemplateHead(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(15, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateHead = createTemplateHead;
|
||||
function createTemplateMiddle(text) {
|
||||
var node = createSynthesizedNode(16);
|
||||
function createTemplateMiddle(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(16, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateMiddle = createTemplateMiddle;
|
||||
function createTemplateTail(text) {
|
||||
var node = createSynthesizedNode(17);
|
||||
function createTemplateTail(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(17, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateTail = createTemplateTail;
|
||||
function createNoSubstitutionTemplateLiteral(text) {
|
||||
var node = createSynthesizedNode(14);
|
||||
node.text = text;
|
||||
function createNoSubstitutionTemplateLiteral(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(14, text, rawText);
|
||||
return node;
|
||||
}
|
||||
ts.createNoSubstitutionTemplateLiteral = createNoSubstitutionTemplateLiteral;
|
||||
@@ -64332,9 +64414,12 @@ var ts;
|
||||
return ts.createCall(tag, undefined, templateArguments);
|
||||
}
|
||||
function getRawLiteral(node) {
|
||||
var text = ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node);
|
||||
var isLast = node.kind === 14 || node.kind === 17;
|
||||
text = text.substring(1, text.length - (isLast ? 1 : 2));
|
||||
var text = node.rawText;
|
||||
if (text === undefined) {
|
||||
text = ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node);
|
||||
var isLast = node.kind === 14 || node.kind === 17;
|
||||
text = text.substring(1, text.length - (isLast ? 1 : 2));
|
||||
}
|
||||
text = text.replace(/\r\n?/g, "\n");
|
||||
return ts.setTextRange(ts.createLiteral(text), node);
|
||||
}
|
||||
@@ -75406,7 +75491,7 @@ var ts;
|
||||
return oldProgram.structureIsReused = 2;
|
||||
}
|
||||
function getEmitHost(writeFileCallback) {
|
||||
return __assign({ getPrependNodes: getPrependNodes,
|
||||
return __assign(__assign({ getPrependNodes: getPrependNodes,
|
||||
getCanonicalFileName: getCanonicalFileName, getCommonSourceDirectory: program.getCommonSourceDirectory, getCompilerOptions: program.getCompilerOptions, getCurrentDirectory: function () { return currentDirectory; }, getNewLine: function () { return host.getNewLine(); }, getSourceFile: program.getSourceFile, getSourceFileByPath: program.getSourceFileByPath, getSourceFiles: program.getSourceFiles, getLibFileFromReference: program.getLibFileFromReference, isSourceFileFromExternalLibrary: isSourceFileFromExternalLibrary,
|
||||
getResolvedProjectReferenceToRedirect: getResolvedProjectReferenceToRedirect, writeFile: writeFileCallback || (function (fileName, data, writeByteOrderMark, onError, sourceFiles) { return host.writeFile(fileName, data, writeByteOrderMark, onError, sourceFiles); }), isEmitBlocked: isEmitBlocked, readFile: function (f) { return host.readFile(f); }, fileExists: function (f) {
|
||||
var path = toPath(f);
|
||||
@@ -75415,7 +75500,7 @@ var ts;
|
||||
if (ts.contains(missingFilePaths, path))
|
||||
return false;
|
||||
return host.fileExists(f);
|
||||
} }, (host.directoryExists ? { directoryExists: function (f) { return host.directoryExists(f); } } : {}), { useCaseSensitiveFileNames: function () { return host.useCaseSensitiveFileNames(); }, getProgramBuildInfo: function () { return program.getProgramBuildInfo && program.getProgramBuildInfo(); }, getSourceFileFromReference: function (file, ref) { return program.getSourceFileFromReference(file, ref); } });
|
||||
} }, (host.directoryExists ? { directoryExists: function (f) { return host.directoryExists(f); } } : {})), { useCaseSensitiveFileNames: function () { return host.useCaseSensitiveFileNames(); }, getProgramBuildInfo: function () { return program.getProgramBuildInfo && program.getProgramBuildInfo(); }, getSourceFileFromReference: function (file, ref) { return program.getSourceFileFromReference(file, ref); } });
|
||||
}
|
||||
function emitBuildInfo(writeFileCallback) {
|
||||
ts.Debug.assert(!options.out && !options.outFile);
|
||||
@@ -77286,7 +77371,7 @@ var ts;
|
||||
}
|
||||
function convertToDiagnosticRelatedInformation(diagnostic, newProgram, toPath) {
|
||||
var file = diagnostic.file;
|
||||
return __assign({}, diagnostic, { file: file ? newProgram.getSourceFileByPath(toPath(file)) : undefined });
|
||||
return __assign(__assign({}, diagnostic), { file: file ? newProgram.getSourceFileByPath(toPath(file)) : undefined });
|
||||
}
|
||||
function releaseCache(state) {
|
||||
ts.BuilderState.releaseCache(state);
|
||||
@@ -77597,7 +77682,7 @@ var ts;
|
||||
}
|
||||
function convertToReusableDiagnosticRelatedInformation(diagnostic, relativeToBuildInfo) {
|
||||
var file = diagnostic.file;
|
||||
return __assign({}, diagnostic, { file: file ? relativeToBuildInfo(file.path) : undefined });
|
||||
return __assign(__assign({}, diagnostic), { file: file ? relativeToBuildInfo(file.path) : undefined });
|
||||
}
|
||||
var BuilderProgramKind;
|
||||
(function (BuilderProgramKind) {
|
||||
|
||||
261
lib/tsserver.js
261
lib/tsserver.js
@@ -4480,7 +4480,7 @@ var ts;
|
||||
function getCustomPollingBasedLevels(baseVariable, defaultLevels) {
|
||||
var customLevels = getCustomLevels(baseVariable);
|
||||
return (pollingIntervalChanged || customLevels) &&
|
||||
createPollingIntervalBasedLevels(customLevels ? __assign({}, defaultLevels, customLevels) : defaultLevels);
|
||||
createPollingIntervalBasedLevels(customLevels ? __assign(__assign({}, defaultLevels), customLevels) : defaultLevels);
|
||||
}
|
||||
}
|
||||
ts.setCustomPollingValues = setCustomPollingValues;
|
||||
@@ -6831,7 +6831,7 @@ var ts;
|
||||
_a.of = 148 /* OfKeyword */,
|
||||
_a);
|
||||
var textToKeyword = ts.createMapFromTemplate(textToKeywordObj);
|
||||
var textToToken = ts.createMapFromTemplate(__assign({}, textToKeywordObj, { "{": 18 /* OpenBraceToken */, "}": 19 /* CloseBraceToken */, "(": 20 /* OpenParenToken */, ")": 21 /* CloseParenToken */, "[": 22 /* OpenBracketToken */, "]": 23 /* CloseBracketToken */, ".": 24 /* DotToken */, "...": 25 /* DotDotDotToken */, ";": 26 /* SemicolonToken */, ",": 27 /* CommaToken */, "<": 28 /* LessThanToken */, ">": 30 /* GreaterThanToken */, "<=": 31 /* LessThanEqualsToken */, ">=": 32 /* GreaterThanEqualsToken */, "==": 33 /* EqualsEqualsToken */, "!=": 34 /* ExclamationEqualsToken */, "===": 35 /* EqualsEqualsEqualsToken */, "!==": 36 /* ExclamationEqualsEqualsToken */, "=>": 37 /* EqualsGreaterThanToken */, "+": 38 /* PlusToken */, "-": 39 /* MinusToken */, "**": 41 /* AsteriskAsteriskToken */, "*": 40 /* AsteriskToken */, "/": 42 /* SlashToken */, "%": 43 /* PercentToken */, "++": 44 /* PlusPlusToken */, "--": 45 /* MinusMinusToken */, "<<": 46 /* LessThanLessThanToken */, "</": 29 /* LessThanSlashToken */, ">>": 47 /* GreaterThanGreaterThanToken */, ">>>": 48 /* GreaterThanGreaterThanGreaterThanToken */, "&": 49 /* AmpersandToken */, "|": 50 /* BarToken */, "^": 51 /* CaretToken */, "!": 52 /* ExclamationToken */, "~": 53 /* TildeToken */, "&&": 54 /* AmpersandAmpersandToken */, "||": 55 /* BarBarToken */, "?": 56 /* QuestionToken */, ":": 57 /* ColonToken */, "=": 60 /* EqualsToken */, "+=": 61 /* PlusEqualsToken */, "-=": 62 /* MinusEqualsToken */, "*=": 63 /* AsteriskEqualsToken */, "**=": 64 /* AsteriskAsteriskEqualsToken */, "/=": 65 /* SlashEqualsToken */, "%=": 66 /* PercentEqualsToken */, "<<=": 67 /* LessThanLessThanEqualsToken */, ">>=": 68 /* GreaterThanGreaterThanEqualsToken */, ">>>=": 69 /* GreaterThanGreaterThanGreaterThanEqualsToken */, "&=": 70 /* AmpersandEqualsToken */, "|=": 71 /* BarEqualsToken */, "^=": 72 /* CaretEqualsToken */, "@": 58 /* AtToken */, "`": 59 /* BacktickToken */ }));
|
||||
var textToToken = ts.createMapFromTemplate(__assign(__assign({}, textToKeywordObj), { "{": 18 /* OpenBraceToken */, "}": 19 /* CloseBraceToken */, "(": 20 /* OpenParenToken */, ")": 21 /* CloseParenToken */, "[": 22 /* OpenBracketToken */, "]": 23 /* CloseBracketToken */, ".": 24 /* DotToken */, "...": 25 /* DotDotDotToken */, ";": 26 /* SemicolonToken */, ",": 27 /* CommaToken */, "<": 28 /* LessThanToken */, ">": 30 /* GreaterThanToken */, "<=": 31 /* LessThanEqualsToken */, ">=": 32 /* GreaterThanEqualsToken */, "==": 33 /* EqualsEqualsToken */, "!=": 34 /* ExclamationEqualsToken */, "===": 35 /* EqualsEqualsEqualsToken */, "!==": 36 /* ExclamationEqualsEqualsToken */, "=>": 37 /* EqualsGreaterThanToken */, "+": 38 /* PlusToken */, "-": 39 /* MinusToken */, "**": 41 /* AsteriskAsteriskToken */, "*": 40 /* AsteriskToken */, "/": 42 /* SlashToken */, "%": 43 /* PercentToken */, "++": 44 /* PlusPlusToken */, "--": 45 /* MinusMinusToken */, "<<": 46 /* LessThanLessThanToken */, "</": 29 /* LessThanSlashToken */, ">>": 47 /* GreaterThanGreaterThanToken */, ">>>": 48 /* GreaterThanGreaterThanGreaterThanToken */, "&": 49 /* AmpersandToken */, "|": 50 /* BarToken */, "^": 51 /* CaretToken */, "!": 52 /* ExclamationToken */, "~": 53 /* TildeToken */, "&&": 54 /* AmpersandAmpersandToken */, "||": 55 /* BarBarToken */, "?": 56 /* QuestionToken */, ":": 57 /* ColonToken */, "=": 60 /* EqualsToken */, "+=": 61 /* PlusEqualsToken */, "-=": 62 /* MinusEqualsToken */, "*=": 63 /* AsteriskEqualsToken */, "**=": 64 /* AsteriskAsteriskEqualsToken */, "/=": 65 /* SlashEqualsToken */, "%=": 66 /* PercentEqualsToken */, "<<=": 67 /* LessThanLessThanEqualsToken */, ">>=": 68 /* GreaterThanGreaterThanEqualsToken */, ">>>=": 69 /* GreaterThanGreaterThanGreaterThanEqualsToken */, "&=": 70 /* AmpersandEqualsToken */, "|=": 71 /* BarEqualsToken */, "^=": 72 /* CaretEqualsToken */, "@": 58 /* AtToken */, "`": 59 /* BacktickToken */ }));
|
||||
/*
|
||||
As per ECMAScript Language Specification 3th Edition, Section 7.6: Identifiers
|
||||
IdentifierStart ::
|
||||
@@ -9280,8 +9280,6 @@ var ts;
|
||||
return emitNode && emitNode.flags || 0;
|
||||
}
|
||||
ts.getEmitFlags = getEmitFlags;
|
||||
var escapeNoSubstitutionTemplateLiteralText = ts.compose(escapeString, escapeTemplateSubstitution);
|
||||
var escapeNonAsciiNoSubstitutionTemplateLiteralText = ts.compose(escapeNonAsciiString, escapeTemplateSubstitution);
|
||||
function getLiteralText(node, sourceFile, neverAsciiEscape) {
|
||||
// If we don't need to downlevel and we can reach the original source text using
|
||||
// the node's parent reference, then simply get the text as it was originally written.
|
||||
@@ -9291,9 +9289,7 @@ var ts;
|
||||
}
|
||||
// If a NoSubstitutionTemplateLiteral appears to have a substitution in it, the original text
|
||||
// had to include a backslash: `not \${a} substitution`.
|
||||
var escapeText = neverAsciiEscape || (getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ?
|
||||
node.kind === 14 /* NoSubstitutionTemplateLiteral */ ? escapeNoSubstitutionTemplateLiteralText : escapeString :
|
||||
node.kind === 14 /* NoSubstitutionTemplateLiteral */ ? escapeNonAsciiNoSubstitutionTemplateLiteralText : escapeNonAsciiString;
|
||||
var escapeText = neverAsciiEscape || (getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ? escapeString : escapeNonAsciiString;
|
||||
// If we can't reach the original source text, use the canonical form if it's a number,
|
||||
// or a (possibly escaped) quoted form of the original text if it's string-like.
|
||||
switch (node.kind) {
|
||||
@@ -9305,15 +9301,23 @@ var ts;
|
||||
return '"' + escapeText(node.text, 34 /* doubleQuote */) + '"';
|
||||
}
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
return "`" + escapeText(node.text, 96 /* backtick */) + "`";
|
||||
case 15 /* TemplateHead */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "`" + escapeText(node.text, 96 /* backtick */) + "${";
|
||||
case 16 /* TemplateMiddle */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "}" + escapeText(node.text, 96 /* backtick */) + "${";
|
||||
case 17 /* TemplateTail */:
|
||||
return "}" + escapeText(node.text, 96 /* backtick */) + "`";
|
||||
var rawText = node.rawText || escapeTemplateSubstitution(escapeText(node.text, 96 /* backtick */));
|
||||
switch (node.kind) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
return "`" + rawText + "`";
|
||||
case 15 /* TemplateHead */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "`" + rawText + "${";
|
||||
case 16 /* TemplateMiddle */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "}" + rawText + "${";
|
||||
case 17 /* TemplateTail */:
|
||||
return "}" + rawText + "`";
|
||||
}
|
||||
break;
|
||||
case 8 /* NumericLiteral */:
|
||||
case 9 /* BigIntLiteral */:
|
||||
case 13 /* RegularExpressionLiteral */:
|
||||
@@ -11762,7 +11766,8 @@ var ts;
|
||||
// There is no reason for this other than that JSON.stringify does not handle it either.
|
||||
var doubleQuoteEscapedCharsRegExp = /[\\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
var singleQuoteEscapedCharsRegExp = /[\\\'\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
var backtickQuoteEscapedCharsRegExp = /[\\\`\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
// Template strings should be preserved as much as possible
|
||||
var backtickQuoteEscapedCharsRegExp = /[\\\`]/g;
|
||||
var escapedCharsMap = ts.createMapFromTemplate({
|
||||
"\t": "\\t",
|
||||
"\v": "\\v",
|
||||
@@ -11948,7 +11953,7 @@ var ts;
|
||||
pendingTrailingSemicolon = false;
|
||||
}
|
||||
}
|
||||
return __assign({}, writer, { writeTrailingSemicolon: function () {
|
||||
return __assign(__assign({}, writer), { writeTrailingSemicolon: function () {
|
||||
pendingTrailingSemicolon = true;
|
||||
},
|
||||
writeLiteral: function (s) {
|
||||
@@ -19032,6 +19037,16 @@ var ts;
|
||||
function parseLiteralLikeNode(kind) {
|
||||
var node = createNode(kind);
|
||||
node.text = scanner.getTokenValue();
|
||||
switch (kind) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
case 15 /* TemplateHead */:
|
||||
case 16 /* TemplateMiddle */:
|
||||
case 17 /* TemplateTail */:
|
||||
var isLast = kind === 14 /* NoSubstitutionTemplateLiteral */ || kind === 17 /* TemplateTail */;
|
||||
var tokenText = scanner.getTokenText();
|
||||
node.rawText = tokenText.substring(1, tokenText.length - (scanner.isUnterminated() ? 0 : isLast ? 1 : 2));
|
||||
break;
|
||||
}
|
||||
if (scanner.hasExtendedUnicodeEscape()) {
|
||||
node.hasExtendedUnicodeEscape = true;
|
||||
}
|
||||
@@ -25832,13 +25847,13 @@ var ts;
|
||||
var getCanonicalFileName = ts.createGetCanonicalFileName(host.useCaseSensitiveFileNames);
|
||||
var files = ts.map(ts.filter(configParseResult.fileNames, (!configParseResult.configFileSpecs || !configParseResult.configFileSpecs.validatedIncludeSpecs) ? function (_) { return true; } : matchesSpecs(configFileName, configParseResult.configFileSpecs.validatedIncludeSpecs, configParseResult.configFileSpecs.validatedExcludeSpecs)), function (f) { return ts.getRelativePathFromFile(ts.getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), ts.getNormalizedAbsolutePath(f, host.getCurrentDirectory()), getCanonicalFileName); });
|
||||
var optionMap = serializeCompilerOptions(configParseResult.options, { configFilePath: ts.getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), useCaseSensitiveFileNames: host.useCaseSensitiveFileNames });
|
||||
var config = __assign({ compilerOptions: __assign({}, ts.arrayFrom(optionMap.entries()).reduce(function (prev, cur) {
|
||||
var config = __assign(__assign({ compilerOptions: __assign(__assign({}, ts.arrayFrom(optionMap.entries()).reduce(function (prev, cur) {
|
||||
var _a;
|
||||
return (__assign({}, prev, (_a = {}, _a[cur[0]] = cur[1], _a)));
|
||||
}, {}), { showConfig: undefined, configFile: undefined, configFilePath: undefined, help: undefined, init: undefined, listFiles: undefined, listEmittedFiles: undefined, project: undefined, build: undefined, version: undefined }), references: ts.map(configParseResult.projectReferences, function (r) { return (__assign({}, r, { path: r.originalPath ? r.originalPath : "", originalPath: undefined })); }), files: ts.length(files) ? files : undefined }, (configParseResult.configFileSpecs ? {
|
||||
return (__assign(__assign({}, prev), (_a = {}, _a[cur[0]] = cur[1], _a)));
|
||||
}, {})), { showConfig: undefined, configFile: undefined, configFilePath: undefined, help: undefined, init: undefined, listFiles: undefined, listEmittedFiles: undefined, project: undefined, build: undefined, version: undefined }), references: ts.map(configParseResult.projectReferences, function (r) { return (__assign(__assign({}, r), { path: r.originalPath ? r.originalPath : "", originalPath: undefined })); }), files: ts.length(files) ? files : undefined }, (configParseResult.configFileSpecs ? {
|
||||
include: filterSameAsDefaultInclude(configParseResult.configFileSpecs.validatedIncludeSpecs),
|
||||
exclude: configParseResult.configFileSpecs.validatedExcludeSpecs
|
||||
} : {}), { compileOnSave: !!configParseResult.compileOnSave ? true : undefined });
|
||||
} : {})), { compileOnSave: !!configParseResult.compileOnSave ? true : undefined });
|
||||
return config;
|
||||
}
|
||||
ts.convertToTSConfig = convertToTSConfig;
|
||||
@@ -27622,7 +27637,7 @@ var ts;
|
||||
if (!compilerOptions.preserveSymlinks && resolvedValue && !resolvedValue.originalPath) {
|
||||
var path = realPath(resolvedValue.path, host, traceEnabled);
|
||||
var originalPath = path === resolvedValue.path ? undefined : resolvedValue.path;
|
||||
resolvedValue = __assign({}, resolvedValue, { path: path, originalPath: originalPath });
|
||||
resolvedValue = __assign(__assign({}, resolvedValue), { path: path, originalPath: originalPath });
|
||||
}
|
||||
// For node_modules lookups, get the real path so that multiple accesses to an `npm link`-ed module do not create duplicate files.
|
||||
return { value: resolvedValue && { resolved: resolvedValue, isExternalLibraryImport: true } };
|
||||
@@ -29953,7 +29968,7 @@ var ts;
|
||||
file.bindDiagnostics.push(diag);
|
||||
}
|
||||
else {
|
||||
file.bindSuggestionDiagnostics = ts.append(file.bindSuggestionDiagnostics, __assign({}, diag, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
file.bindSuggestionDiagnostics = ts.append(file.bindSuggestionDiagnostics, __assign(__assign({}, diag), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
}
|
||||
function bind(node) {
|
||||
@@ -32387,7 +32402,7 @@ var ts;
|
||||
function addUnusedDiagnostics() {
|
||||
checkUnusedIdentifiers(getPotentiallyUnusedIdentifiers(file), function (containingNode, kind, diag) {
|
||||
if (!ts.containsParseError(containingNode) && !unusedIsError(kind)) {
|
||||
(diagnostics || (diagnostics = [])).push(__assign({}, diag, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
(diagnostics || (diagnostics = [])).push(__assign(__assign({}, diag), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -32683,7 +32698,7 @@ var ts;
|
||||
diagnostics.add(diagnostic);
|
||||
}
|
||||
else {
|
||||
suggestionDiagnostics.add(__assign({}, diagnostic, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
suggestionDiagnostics.add(__assign(__assign({}, diagnostic), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
}
|
||||
function errorOrSuggestion(isError, location, message, arg0, arg1, arg2, arg3) {
|
||||
@@ -35951,7 +35966,7 @@ var ts;
|
||||
// using the `baseUrl` compiler option (which we would otherwise never use in declaration emit) and a non-relative
|
||||
// specifier preference
|
||||
var moduleResolverHost = context.tracker.moduleResolverHost;
|
||||
var specifierCompilerOptions = isBundle_1 ? __assign({}, compilerOptions, { baseUrl: moduleResolverHost.getCommonSourceDirectory() }) : compilerOptions;
|
||||
var specifierCompilerOptions = isBundle_1 ? __assign(__assign({}, compilerOptions), { baseUrl: moduleResolverHost.getCommonSourceDirectory() }) : compilerOptions;
|
||||
specifier = ts.first(ts.moduleSpecifiers.getModuleSpecifiers(symbol, specifierCompilerOptions, contextFile, moduleResolverHost, host.getSourceFiles(), { importModuleSpecifierPreference: isBundle_1 ? "non-relative" : "relative" }, host.redirectTargetsMap));
|
||||
links.specifierCache = links.specifierCache || ts.createMap();
|
||||
links.specifierCache.set(contextFile.path, specifier);
|
||||
@@ -43016,7 +43031,7 @@ var ts;
|
||||
var childrenPropName = childPropName === undefined ? "children" : ts.unescapeLeadingUnderscores(childPropName);
|
||||
var childrenTargetType = getIndexedAccessType(target, getLiteralType(childrenPropName));
|
||||
var diagnostic = ts.Diagnostics._0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2;
|
||||
invalidTextDiagnostic = __assign({}, diagnostic, { key: "!!ALREADY FORMATTED!!", message: ts.formatMessage(/*_dummy*/ undefined, diagnostic, tagNameText, childrenPropName, typeToString(childrenTargetType)) });
|
||||
invalidTextDiagnostic = __assign(__assign({}, diagnostic), { key: "!!ALREADY FORMATTED!!", message: ts.formatMessage(/*_dummy*/ undefined, diagnostic, tagNameText, childrenPropName, typeToString(childrenTargetType)) });
|
||||
}
|
||||
return invalidTextDiagnostic;
|
||||
}
|
||||
@@ -55117,7 +55132,18 @@ var ts;
|
||||
return checkExpression(node.expression, checkMode);
|
||||
}
|
||||
function checkExpressionWorker(node, checkMode, forceTuple) {
|
||||
switch (node.kind) {
|
||||
var kind = node.kind;
|
||||
if (cancellationToken) {
|
||||
// Only bother checking on a few construct kinds. We don't want to be excessively
|
||||
// hitting the cancellation token on every node we check.
|
||||
switch (kind) {
|
||||
case 210 /* ClassExpression */:
|
||||
case 197 /* FunctionExpression */:
|
||||
case 198 /* ArrowFunction */:
|
||||
cancellationToken.throwIfCancellationRequested();
|
||||
}
|
||||
}
|
||||
switch (kind) {
|
||||
case 73 /* Identifier */:
|
||||
return checkIdentifier(node);
|
||||
case 101 /* ThisKeyword */:
|
||||
@@ -63927,27 +63953,88 @@ var ts;
|
||||
: node;
|
||||
}
|
||||
ts.updateTemplateExpression = updateTemplateExpression;
|
||||
function createTemplateHead(text) {
|
||||
var node = createSynthesizedNode(15 /* TemplateHead */);
|
||||
var rawTextScanner;
|
||||
var invalidValueSentinel = {};
|
||||
function getCookedText(kind, rawText) {
|
||||
if (!rawTextScanner) {
|
||||
rawTextScanner = ts.createScanner(99 /* Latest */, /*skipTrivia*/ false, 0 /* Standard */);
|
||||
}
|
||||
switch (kind) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
rawTextScanner.setText("`" + rawText + "`");
|
||||
break;
|
||||
case 15 /* TemplateHead */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
rawTextScanner.setText("`" + rawText + "${");
|
||||
break;
|
||||
case 16 /* TemplateMiddle */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
rawTextScanner.setText("}" + rawText + "${");
|
||||
break;
|
||||
case 17 /* TemplateTail */:
|
||||
rawTextScanner.setText("}" + rawText + "`");
|
||||
break;
|
||||
}
|
||||
var token = rawTextScanner.scan();
|
||||
if (token === 23 /* CloseBracketToken */) {
|
||||
token = rawTextScanner.reScanTemplateToken();
|
||||
}
|
||||
if (rawTextScanner.isUnterminated()) {
|
||||
rawTextScanner.setText(undefined);
|
||||
return invalidValueSentinel;
|
||||
}
|
||||
var tokenValue;
|
||||
switch (token) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
case 15 /* TemplateHead */:
|
||||
case 16 /* TemplateMiddle */:
|
||||
case 17 /* TemplateTail */:
|
||||
tokenValue = rawTextScanner.getTokenValue();
|
||||
break;
|
||||
}
|
||||
if (rawTextScanner.scan() !== 1 /* EndOfFileToken */) {
|
||||
rawTextScanner.setText(undefined);
|
||||
return invalidValueSentinel;
|
||||
}
|
||||
rawTextScanner.setText(undefined);
|
||||
return tokenValue;
|
||||
}
|
||||
function createTemplateLiteralLikeNode(kind, text, rawText) {
|
||||
var node = createSynthesizedNode(kind);
|
||||
node.text = text;
|
||||
if (rawText === undefined || text === rawText) {
|
||||
node.rawText = rawText;
|
||||
}
|
||||
else {
|
||||
var cooked = getCookedText(kind, rawText);
|
||||
if (typeof cooked === "object") {
|
||||
return ts.Debug.fail("Invalid raw text");
|
||||
}
|
||||
ts.Debug.assert(text === cooked, "Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.");
|
||||
node.rawText = rawText;
|
||||
}
|
||||
return node;
|
||||
}
|
||||
function createTemplateHead(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(15 /* TemplateHead */, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateHead = createTemplateHead;
|
||||
function createTemplateMiddle(text) {
|
||||
var node = createSynthesizedNode(16 /* TemplateMiddle */);
|
||||
function createTemplateMiddle(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(16 /* TemplateMiddle */, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateMiddle = createTemplateMiddle;
|
||||
function createTemplateTail(text) {
|
||||
var node = createSynthesizedNode(17 /* TemplateTail */);
|
||||
function createTemplateTail(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(17 /* TemplateTail */, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateTail = createTemplateTail;
|
||||
function createNoSubstitutionTemplateLiteral(text) {
|
||||
var node = createSynthesizedNode(14 /* NoSubstitutionTemplateLiteral */);
|
||||
node.text = text;
|
||||
function createNoSubstitutionTemplateLiteral(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(14 /* NoSubstitutionTemplateLiteral */, text, rawText);
|
||||
return node;
|
||||
}
|
||||
ts.createNoSubstitutionTemplateLiteral = createNoSubstitutionTemplateLiteral;
|
||||
@@ -77751,13 +77838,16 @@ var ts;
|
||||
// Find original source text, since we need to emit the raw strings of the tagged template.
|
||||
// The raw strings contain the (escaped) strings of what the user wrote.
|
||||
// Examples: `\n` is converted to "\\n", a template string with a newline to "\n".
|
||||
var text = ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node);
|
||||
// text contains the original source, it will also contain quotes ("`"), dolar signs and braces ("${" and "}"),
|
||||
// thus we need to remove those characters.
|
||||
// First template piece starts with "`", others with "}"
|
||||
// Last template piece ends with "`", others with "${"
|
||||
var isLast = node.kind === 14 /* NoSubstitutionTemplateLiteral */ || node.kind === 17 /* TemplateTail */;
|
||||
text = text.substring(1, text.length - (isLast ? 1 : 2));
|
||||
var text = node.rawText;
|
||||
if (text === undefined) {
|
||||
text = ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node);
|
||||
// text contains the original source, it will also contain quotes ("`"), dolar signs and braces ("${" and "}"),
|
||||
// thus we need to remove those characters.
|
||||
// First template piece starts with "`", others with "}"
|
||||
// Last template piece ends with "`", others with "${"
|
||||
var isLast = node.kind === 14 /* NoSubstitutionTemplateLiteral */ || node.kind === 17 /* TemplateTail */;
|
||||
text = text.substring(1, text.length - (isLast ? 1 : 2));
|
||||
}
|
||||
// Newline normalization:
|
||||
// ES6 Spec 11.8.6.1 - Static Semantics of TV's and TRV's
|
||||
// <CR><LF> and <CR> LineTerminatorSequences are normalized to <LF> for both TV and TRV.
|
||||
@@ -91940,7 +92030,7 @@ var ts;
|
||||
return oldProgram.structureIsReused = 2 /* Completely */;
|
||||
}
|
||||
function getEmitHost(writeFileCallback) {
|
||||
return __assign({ getPrependNodes: getPrependNodes,
|
||||
return __assign(__assign({ getPrependNodes: getPrependNodes,
|
||||
getCanonicalFileName: getCanonicalFileName, getCommonSourceDirectory: program.getCommonSourceDirectory, getCompilerOptions: program.getCompilerOptions, getCurrentDirectory: function () { return currentDirectory; }, getNewLine: function () { return host.getNewLine(); }, getSourceFile: program.getSourceFile, getSourceFileByPath: program.getSourceFileByPath, getSourceFiles: program.getSourceFiles, getLibFileFromReference: program.getLibFileFromReference, isSourceFileFromExternalLibrary: isSourceFileFromExternalLibrary,
|
||||
getResolvedProjectReferenceToRedirect: getResolvedProjectReferenceToRedirect, writeFile: writeFileCallback || (function (fileName, data, writeByteOrderMark, onError, sourceFiles) { return host.writeFile(fileName, data, writeByteOrderMark, onError, sourceFiles); }), isEmitBlocked: isEmitBlocked, readFile: function (f) { return host.readFile(f); }, fileExists: function (f) {
|
||||
// Use local caches
|
||||
@@ -91951,7 +92041,7 @@ var ts;
|
||||
return false;
|
||||
// Before falling back to the host
|
||||
return host.fileExists(f);
|
||||
} }, (host.directoryExists ? { directoryExists: function (f) { return host.directoryExists(f); } } : {}), { useCaseSensitiveFileNames: function () { return host.useCaseSensitiveFileNames(); }, getProgramBuildInfo: function () { return program.getProgramBuildInfo && program.getProgramBuildInfo(); }, getSourceFileFromReference: function (file, ref) { return program.getSourceFileFromReference(file, ref); } });
|
||||
} }, (host.directoryExists ? { directoryExists: function (f) { return host.directoryExists(f); } } : {})), { useCaseSensitiveFileNames: function () { return host.useCaseSensitiveFileNames(); }, getProgramBuildInfo: function () { return program.getProgramBuildInfo && program.getProgramBuildInfo(); }, getSourceFileFromReference: function (file, ref) { return program.getSourceFileFromReference(file, ref); } });
|
||||
}
|
||||
function emitBuildInfo(writeFileCallback) {
|
||||
ts.Debug.assert(!options.out && !options.outFile);
|
||||
@@ -94103,7 +94193,7 @@ var ts;
|
||||
}
|
||||
function convertToDiagnosticRelatedInformation(diagnostic, newProgram, toPath) {
|
||||
var file = diagnostic.file;
|
||||
return __assign({}, diagnostic, { file: file ? newProgram.getSourceFileByPath(toPath(file)) : undefined });
|
||||
return __assign(__assign({}, diagnostic), { file: file ? newProgram.getSourceFileByPath(toPath(file)) : undefined });
|
||||
}
|
||||
/**
|
||||
* Releases program and other related not needed properties
|
||||
@@ -94498,7 +94588,7 @@ var ts;
|
||||
}
|
||||
function convertToReusableDiagnosticRelatedInformation(diagnostic, relativeToBuildInfo) {
|
||||
var file = diagnostic.file;
|
||||
return __assign({}, diagnostic, { file: file ? relativeToBuildInfo(file.path) : undefined });
|
||||
return __assign(__assign({}, diagnostic), { file: file ? relativeToBuildInfo(file.path) : undefined });
|
||||
}
|
||||
var BuilderProgramKind;
|
||||
(function (BuilderProgramKind) {
|
||||
@@ -103287,7 +103377,7 @@ var ts;
|
||||
// If you're in an interface you don't want to repeat things from super-interface. So just stop here.
|
||||
if (!ts.isClassLike(decl))
|
||||
return 1 /* Success */;
|
||||
var classElement = contextToken.parent;
|
||||
var classElement = contextToken.kind === 26 /* SemicolonToken */ ? contextToken.parent.parent : contextToken.parent;
|
||||
var classElementModifierFlags = ts.isClassElement(classElement) ? ts.getModifierFlags(classElement) : 0 /* None */;
|
||||
// If this is context token is not something we are editing now, consider if this would lead to be modifier
|
||||
if (contextToken.kind === 73 /* Identifier */ && !isCurrentlyEditingNode(contextToken)) {
|
||||
@@ -105300,16 +105390,16 @@ var ts;
|
||||
return { displayParts: displayParts, kind: symbolKind };
|
||||
}
|
||||
function toRenameLocation(entry, originalNode, checker, providePrefixAndSuffixText) {
|
||||
return __assign({}, entryToDocumentSpan(entry), (providePrefixAndSuffixText && getPrefixAndSuffixText(entry, originalNode, checker)));
|
||||
return __assign(__assign({}, entryToDocumentSpan(entry)), (providePrefixAndSuffixText && getPrefixAndSuffixText(entry, originalNode, checker)));
|
||||
}
|
||||
FindAllReferences.toRenameLocation = toRenameLocation;
|
||||
function toReferenceEntry(entry) {
|
||||
var documentSpan = entryToDocumentSpan(entry);
|
||||
if (entry.kind === 0 /* Span */) {
|
||||
return __assign({}, documentSpan, { isWriteAccess: false, isDefinition: false });
|
||||
return __assign(__assign({}, documentSpan), { isWriteAccess: false, isDefinition: false });
|
||||
}
|
||||
var kind = entry.kind, node = entry.node;
|
||||
return __assign({}, documentSpan, { isWriteAccess: isWriteAccessForReference(node), isDefinition: node.kind === 81 /* DefaultKeyword */
|
||||
return __assign(__assign({}, documentSpan), { isWriteAccess: isWriteAccessForReference(node), isDefinition: node.kind === 81 /* DefaultKeyword */
|
||||
|| !!ts.getDeclarationFromName(node)
|
||||
|| ts.isLiteralComputedPropertyDeclarationName(node), isInString: kind === 2 /* StringLiteral */ ? true : undefined });
|
||||
}
|
||||
@@ -105353,10 +105443,10 @@ var ts;
|
||||
var documentSpan = entryToDocumentSpan(entry);
|
||||
if (entry.kind !== 0 /* Span */) {
|
||||
var node = entry.node;
|
||||
return __assign({}, documentSpan, implementationKindDisplayParts(node, checker));
|
||||
return __assign(__assign({}, documentSpan), implementationKindDisplayParts(node, checker));
|
||||
}
|
||||
else {
|
||||
return __assign({}, documentSpan, { kind: "" /* unknown */, displayParts: [] });
|
||||
return __assign(__assign({}, documentSpan), { kind: "" /* unknown */, displayParts: [] });
|
||||
}
|
||||
}
|
||||
function implementationKindDisplayParts(node, checker) {
|
||||
@@ -114900,7 +114990,7 @@ var ts;
|
||||
};
|
||||
ChangeTracker.prototype.getInsertNodeAfterOptions = function (sourceFile, after) {
|
||||
var options = this.getInsertNodeAfterOptionsWorker(after);
|
||||
return __assign({}, options, { prefix: after.end === sourceFile.end && ts.isStatement(after) ? (options.prefix ? "\n" + options.prefix : "\n") : options.prefix });
|
||||
return __assign(__assign({}, options), { prefix: after.end === sourceFile.end && ts.isStatement(after) ? (options.prefix ? "\n" + options.prefix : "\n") : options.prefix });
|
||||
};
|
||||
ChangeTracker.prototype.getInsertNodeAfterOptionsWorker = function (node) {
|
||||
switch (node.kind) {
|
||||
@@ -118592,7 +118682,7 @@ var ts;
|
||||
var info = errorCode === ts.Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code
|
||||
? getFixesInfoForUMDImport(context, symbolToken)
|
||||
: ts.isIdentifier(symbolToken) ? getFixesInfoForNonUMDImport(context, symbolToken) : undefined;
|
||||
return info && __assign({}, info, { fixes: ts.sort(info.fixes, function (a, b) { return a.kind - b.kind; }) });
|
||||
return info && __assign(__assign({}, info), { fixes: ts.sort(info.fixes, function (a, b) { return a.kind - b.kind; }) });
|
||||
}
|
||||
function getFixesInfoForUMDImport(_a, token) {
|
||||
var sourceFile = _a.sourceFile, program = _a.program, host = _a.host, preferences = _a.preferences;
|
||||
@@ -125376,7 +125466,7 @@ var ts;
|
||||
function getCompletionsAtPosition(fileName, position, options) {
|
||||
if (options === void 0) { options = ts.emptyOptions; }
|
||||
// Convert from deprecated options names to new names
|
||||
var fullPreferences = __assign({}, ts.identity(options), { includeCompletionsForModuleExports: options.includeCompletionsForModuleExports || options.includeExternalModuleExports, includeCompletionsWithInsertText: options.includeCompletionsWithInsertText || options.includeInsertTextCompletions });
|
||||
var fullPreferences = __assign(__assign({}, ts.identity(options)), { includeCompletionsForModuleExports: options.includeCompletionsForModuleExports || options.includeExternalModuleExports, includeCompletionsWithInsertText: options.includeCompletionsWithInsertText || options.includeInsertTextCompletions });
|
||||
synchronizeHostData();
|
||||
return ts.Completions.getCompletionsAtPosition(host, program, log, getValidSourceFile(fileName), position, fullPreferences, options.triggerCharacter);
|
||||
}
|
||||
@@ -125466,7 +125556,7 @@ var ts;
|
||||
}
|
||||
/// References and Occurrences
|
||||
function getOccurrencesAtPosition(fileName, position) {
|
||||
return ts.flatMap(getDocumentHighlights(fileName, position, [fileName]), function (entry) { return entry.highlightSpans.map(function (highlightSpan) { return (__assign({ fileName: entry.fileName, textSpan: highlightSpan.textSpan, isWriteAccess: highlightSpan.kind === "writtenReference" /* writtenReference */, isDefinition: false }, highlightSpan.isInString && { isInString: true }, highlightSpan.contextSpan && { contextSpan: highlightSpan.contextSpan })); }); });
|
||||
return ts.flatMap(getDocumentHighlights(fileName, position, [fileName]), function (entry) { return entry.highlightSpans.map(function (highlightSpan) { return (__assign(__assign({ fileName: entry.fileName, textSpan: highlightSpan.textSpan, isWriteAccess: highlightSpan.kind === "writtenReference" /* writtenReference */, isDefinition: false }, highlightSpan.isInString && { isInString: true }), highlightSpan.contextSpan && { contextSpan: highlightSpan.contextSpan })); }); });
|
||||
}
|
||||
function getDocumentHighlights(fileName, position, filesToSearch) {
|
||||
var normalizedFileName = ts.normalizePath(fileName);
|
||||
@@ -128685,14 +128775,14 @@ var ts;
|
||||
ts.assign(this.formatSettings, formatSettings);
|
||||
}
|
||||
else {
|
||||
this.formatSettings = __assign({}, this.formatSettings, formatSettings);
|
||||
this.formatSettings = __assign(__assign({}, this.formatSettings), formatSettings);
|
||||
}
|
||||
}
|
||||
if (preferences) {
|
||||
if (!this.preferences) {
|
||||
this.preferences = ts.emptyOptions;
|
||||
}
|
||||
this.preferences = __assign({}, this.preferences, preferences);
|
||||
this.preferences = __assign(__assign({}, this.preferences), preferences);
|
||||
}
|
||||
};
|
||||
ScriptInfo.prototype.getLatestVersion = function () {
|
||||
@@ -129070,7 +129160,7 @@ var ts;
|
||||
return this.typingsCache.isKnownTypesPackageName(name);
|
||||
};
|
||||
Project.prototype.installPackage = function (options) {
|
||||
return this.typingsCache.installPackage(__assign({}, options, { projectName: this.projectName, projectRootPath: this.toPath(this.currentDirectory) }));
|
||||
return this.typingsCache.installPackage(__assign(__assign({}, options), { projectName: this.projectName, projectRootPath: this.toPath(this.currentDirectory) }));
|
||||
};
|
||||
Object.defineProperty(Project.prototype, "typingsCache", {
|
||||
get: function () {
|
||||
@@ -129316,7 +129406,7 @@ var ts;
|
||||
// Nothing to filter out, so just return as-is
|
||||
return newTypeAcquisition;
|
||||
}
|
||||
return __assign({}, newTypeAcquisition, { include: this.removeExistingTypings(newTypeAcquisition.include) });
|
||||
return __assign(__assign({}, newTypeAcquisition), { include: this.removeExistingTypings(newTypeAcquisition.include) });
|
||||
};
|
||||
Project.prototype.getExternalFiles = function () {
|
||||
var _this = this;
|
||||
@@ -130881,7 +130971,7 @@ var ts;
|
||||
};
|
||||
ProjectService.prototype.getPreferences = function (file) {
|
||||
var info = this.getScriptInfoForNormalizedPath(file);
|
||||
return __assign({}, this.hostConfiguration.preferences, info && info.getPreferences());
|
||||
return __assign(__assign({}, this.hostConfiguration.preferences), info && info.getPreferences());
|
||||
};
|
||||
ProjectService.prototype.getHostFormatCodeOptions = function () {
|
||||
return this.hostConfiguration.formatCodeOptions;
|
||||
@@ -132196,12 +132286,12 @@ var ts;
|
||||
this.logger.info("Host information " + args.hostInfo);
|
||||
}
|
||||
if (args.formatOptions) {
|
||||
this.hostConfiguration.formatCodeOptions = __assign({}, this.hostConfiguration.formatCodeOptions, convertFormatOptions(args.formatOptions));
|
||||
this.hostConfiguration.formatCodeOptions = __assign(__assign({}, this.hostConfiguration.formatCodeOptions), convertFormatOptions(args.formatOptions));
|
||||
this.logger.info("Format host information updated");
|
||||
}
|
||||
if (args.preferences) {
|
||||
var lazyConfiguredProjectsFromExternalProject = this.hostConfiguration.preferences.lazyConfiguredProjectsFromExternalProject;
|
||||
this.hostConfiguration.preferences = __assign({}, this.hostConfiguration.preferences, args.preferences);
|
||||
this.hostConfiguration.preferences = __assign(__assign({}, this.hostConfiguration.preferences), args.preferences);
|
||||
if (lazyConfiguredProjectsFromExternalProject && !this.hostConfiguration.preferences.lazyConfiguredProjectsFromExternalProject) {
|
||||
// Load configured projects for external projects that are pending reload
|
||||
this.configuredProjects.forEach(function (project) {
|
||||
@@ -132460,13 +132550,13 @@ var ts;
|
||||
// It was then postponed to cleanup these script infos so that they can be reused if
|
||||
// the file from that old project is reopened because of opening file from here.
|
||||
this.removeOrphanScriptInfos();
|
||||
this.printProjects();
|
||||
};
|
||||
ProjectService.prototype.openClientFileWithNormalizedPath = function (fileName, fileContent, scriptKind, hasMixedContent, projectRootPath) {
|
||||
var info = this.getOrCreateOpenScriptInfo(fileName, fileContent, scriptKind, hasMixedContent, projectRootPath);
|
||||
var _a = this.assignProjectToOpenedScriptInfo(info), defaultConfigProject = _a.defaultConfigProject, result = __rest(_a, ["defaultConfigProject"]);
|
||||
this.cleanupAfterOpeningFile(defaultConfigProject);
|
||||
this.telemetryOnOpenFile(info);
|
||||
this.printProjects();
|
||||
return result;
|
||||
};
|
||||
ProjectService.prototype.removeOrphanConfiguredProjects = function (toRetainConfiguredProjects) {
|
||||
@@ -132646,11 +132736,16 @@ var ts;
|
||||
if (assignOrphanScriptInfosToInferredProject) {
|
||||
this.assignOrphanScriptInfosToInferredProject();
|
||||
}
|
||||
// Cleanup projects
|
||||
this.cleanupAfterOpeningFile(defaultConfigProjects);
|
||||
// Telemetry
|
||||
ts.forEach(openScriptInfos, function (info) { return _this.telemetryOnOpenFile(info); });
|
||||
this.printProjects();
|
||||
if (openScriptInfos) {
|
||||
// Cleanup projects
|
||||
this.cleanupAfterOpeningFile(defaultConfigProjects);
|
||||
// Telemetry
|
||||
openScriptInfos.forEach(function (info) { return _this.telemetryOnOpenFile(info); });
|
||||
this.printProjects();
|
||||
}
|
||||
else if (ts.length(closedFiles)) {
|
||||
this.printProjects();
|
||||
}
|
||||
};
|
||||
/* @internal */
|
||||
ProjectService.prototype.applyChangesToFile = function (scriptInfo, changes) {
|
||||
@@ -133077,7 +133172,7 @@ var ts;
|
||||
relatedInformation: ts.map(diag.relatedInformation, formatRelatedInformation),
|
||||
};
|
||||
return includeFileName
|
||||
? __assign({}, common, { fileName: diag.file && diag.file.fileName }) : common;
|
||||
? __assign(__assign({}, common), { fileName: diag.file && diag.file.fileName }) : common;
|
||||
}
|
||||
function allEditsBeforePos(edits, pos) {
|
||||
return edits.every(function (edit) { return ts.textSpanEnd(edit.span) < pos; });
|
||||
@@ -133241,7 +133336,7 @@ var ts;
|
||||
var _loop_8 = function (outputReferencedSymbol) {
|
||||
var mappedDefinitionFile = getMappedLocation(project, documentSpanLocation(outputReferencedSymbol.definition));
|
||||
var definition = mappedDefinitionFile === undefined ?
|
||||
outputReferencedSymbol.definition : __assign({}, outputReferencedSymbol.definition, { textSpan: ts.createTextSpan(mappedDefinitionFile.pos, outputReferencedSymbol.definition.textSpan.length), fileName: mappedDefinitionFile.fileName, contextSpan: getMappedContextSpan(outputReferencedSymbol.definition, project) });
|
||||
outputReferencedSymbol.definition : __assign(__assign({}, outputReferencedSymbol.definition), { textSpan: ts.createTextSpan(mappedDefinitionFile.pos, outputReferencedSymbol.definition.textSpan.length), fileName: mappedDefinitionFile.fileName, contextSpan: getMappedContextSpan(outputReferencedSymbol.definition, project) });
|
||||
var symbolToAddTo = ts.find(outputs, function (o) { return ts.documentSpansEqual(o.definition, definition); });
|
||||
if (!symbolToAddTo) {
|
||||
symbolToAddTo = { definition: definition, references: [] };
|
||||
@@ -134086,7 +134181,7 @@ var ts;
|
||||
Session.prototype.mapDefinitionInfoLocations = function (definitions, project) {
|
||||
return definitions.map(function (info) {
|
||||
var newDocumentSpan = getMappedDocumentSpan(info, project);
|
||||
return !newDocumentSpan ? info : __assign({}, newDocumentSpan, { containerKind: info.containerKind, containerName: info.containerName, kind: info.kind, name: info.name });
|
||||
return !newDocumentSpan ? info : __assign(__assign({}, newDocumentSpan), { containerKind: info.containerKind, containerName: info.containerName, kind: info.kind, name: info.name });
|
||||
});
|
||||
};
|
||||
Session.prototype.getDefinitionAndBoundSpan = function (args, simplifiedResult) {
|
||||
@@ -134131,7 +134226,7 @@ var ts;
|
||||
Session.mapToOriginalLocation = function (def) {
|
||||
if (def.originalFileName) {
|
||||
ts.Debug.assert(def.originalTextSpan !== undefined, "originalTextSpan should be present if originalFileName is");
|
||||
return __assign({}, def, { fileName: def.originalFileName, textSpan: def.originalTextSpan, targetFileName: def.fileName, targetTextSpan: def.textSpan, contextSpan: def.originalContextSpan, targetContextSpan: def.contextSpan });
|
||||
return __assign(__assign({}, def), { fileName: def.originalFileName, textSpan: def.originalTextSpan, targetFileName: def.fileName, targetTextSpan: def.textSpan, contextSpan: def.originalContextSpan, targetContextSpan: def.contextSpan });
|
||||
}
|
||||
return def;
|
||||
};
|
||||
@@ -134148,7 +134243,7 @@ var ts;
|
||||
Session.prototype.toFileSpanWithContext = function (fileName, textSpan, contextSpan, project) {
|
||||
var fileSpan = this.toFileSpan(fileName, textSpan, project);
|
||||
var context = contextSpan && this.toFileSpan(fileName, contextSpan, project);
|
||||
return context ? __assign({}, fileSpan, { contextStart: context.start, contextEnd: context.end }) :
|
||||
return context ? __assign(__assign({}, fileSpan), { contextStart: context.start, contextEnd: context.end }) :
|
||||
fileSpan;
|
||||
};
|
||||
Session.prototype.getTypeDefinition = function (args) {
|
||||
@@ -134160,7 +134255,7 @@ var ts;
|
||||
Session.prototype.mapImplementationLocations = function (implementations, project) {
|
||||
return implementations.map(function (info) {
|
||||
var newDocumentSpan = getMappedDocumentSpan(info, project);
|
||||
return !newDocumentSpan ? info : __assign({}, newDocumentSpan, { kind: info.kind, displayParts: info.displayParts });
|
||||
return !newDocumentSpan ? info : __assign(__assign({}, newDocumentSpan), { kind: info.kind, displayParts: info.displayParts });
|
||||
});
|
||||
};
|
||||
Session.prototype.getImplementation = function (args, simplifiedResult) {
|
||||
@@ -134183,7 +134278,7 @@ var ts;
|
||||
occurrences.map(function (occurrence) {
|
||||
var fileName = occurrence.fileName, isWriteAccess = occurrence.isWriteAccess, textSpan = occurrence.textSpan, isInString = occurrence.isInString, contextSpan = occurrence.contextSpan;
|
||||
var scriptInfo = project.getScriptInfo(fileName);
|
||||
return __assign({}, toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo), { file: fileName, isWriteAccess: isWriteAccess }, (isInString ? { isInString: isInString } : undefined));
|
||||
return __assign(__assign(__assign({}, toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo)), { file: fileName, isWriteAccess: isWriteAccess }), (isInString ? { isInString: isInString } : undefined));
|
||||
}) :
|
||||
server.emptyArray;
|
||||
};
|
||||
@@ -134232,7 +134327,7 @@ var ts;
|
||||
file: fileName,
|
||||
highlightSpans: highlightSpans.map(function (_a) {
|
||||
var textSpan = _a.textSpan, kind = _a.kind, contextSpan = _a.contextSpan;
|
||||
return (__assign({}, toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo), { kind: kind }));
|
||||
return (__assign(__assign({}, toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo)), { kind: kind }));
|
||||
})
|
||||
};
|
||||
});
|
||||
@@ -134327,7 +134422,7 @@ var ts;
|
||||
if (!group_1)
|
||||
map.set(fileName, group_1 = { file: fileName, locs: [] });
|
||||
var scriptInfo = ts.Debug.assertDefined(this.projectService.getScriptInfo(fileName));
|
||||
group_1.locs.push(__assign({}, toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo), prefixSuffixText));
|
||||
group_1.locs.push(__assign(__assign({}, toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo)), prefixSuffixText));
|
||||
}
|
||||
return ts.arrayFrom(map.values());
|
||||
};
|
||||
@@ -134353,7 +134448,7 @@ var ts;
|
||||
var span = toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo);
|
||||
var lineSpan = scriptInfo.lineToTextSpan(span.start.line - 1);
|
||||
var lineText = scriptInfo.getSnapshot().getText(lineSpan.start, ts.textSpanEnd(lineSpan)).replace(/\r|\n/g, "");
|
||||
return __assign({ file: fileName }, span, { lineText: lineText,
|
||||
return __assign(__assign({ file: fileName }, span), { lineText: lineText,
|
||||
isWriteAccess: isWriteAccess,
|
||||
isDefinition: isDefinition });
|
||||
});
|
||||
@@ -134555,7 +134650,7 @@ var ts;
|
||||
var _a = this.getFileAndProject(args), file = _a.file, project = _a.project;
|
||||
var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);
|
||||
var position = this.getPosition(args, scriptInfo);
|
||||
var completions = project.getLanguageService().getCompletionsAtPosition(file, position, __assign({}, server.convertUserPreferences(this.getPreferences(file)), { triggerCharacter: args.triggerCharacter, includeExternalModuleExports: args.includeExternalModuleExports, includeInsertTextCompletions: args.includeInsertTextCompletions }));
|
||||
var completions = project.getLanguageService().getCompletionsAtPosition(file, position, __assign(__assign({}, server.convertUserPreferences(this.getPreferences(file))), { triggerCharacter: args.triggerCharacter, includeExternalModuleExports: args.includeExternalModuleExports, includeInsertTextCompletions: args.includeInsertTextCompletions }));
|
||||
if (completions === undefined)
|
||||
return undefined;
|
||||
if (kind === "completions-full" /* CompletionsFull */)
|
||||
@@ -134574,7 +134669,7 @@ var ts;
|
||||
entries.metadata = completions.metadata;
|
||||
return entries;
|
||||
}
|
||||
var res = __assign({}, completions, { entries: entries });
|
||||
var res = __assign(__assign({}, completions), { entries: entries });
|
||||
return res;
|
||||
};
|
||||
Session.prototype.getCompletionEntryDetails = function (args, simplifiedResult) {
|
||||
@@ -134588,7 +134683,7 @@ var ts;
|
||||
return project.getLanguageService().getCompletionEntryDetails(file, position, name, formattingOptions, source, _this.getPreferences(file));
|
||||
});
|
||||
return simplifiedResult
|
||||
? result.map(function (details) { return (__assign({}, details, { codeActions: ts.map(details.codeActions, function (action) { return _this.mapCodeAction(action); }) })); })
|
||||
? result.map(function (details) { return (__assign(__assign({}, details), { codeActions: ts.map(details.codeActions, function (action) { return _this.mapCodeAction(action); }) })); })
|
||||
: result;
|
||||
};
|
||||
Session.prototype.getCompileOnSaveAffectedFileList = function (args) {
|
||||
@@ -135150,7 +135245,7 @@ var ts;
|
||||
function toProtocolTextSpanWithContext(span, contextSpan, scriptInfo) {
|
||||
var textSpan = toProcolTextSpan(span, scriptInfo);
|
||||
var contextTextSpan = contextSpan && toProcolTextSpan(contextSpan, scriptInfo);
|
||||
return contextTextSpan ? __assign({}, textSpan, { contextStart: contextTextSpan.start, contextEnd: contextTextSpan.end }) :
|
||||
return contextTextSpan ? __assign(__assign({}, textSpan), { contextStart: contextTextSpan.start, contextEnd: contextTextSpan.end }) :
|
||||
textSpan;
|
||||
}
|
||||
function convertTextChangeToCodeEdit(change, scriptInfo) {
|
||||
|
||||
19
lib/tsserverlibrary.d.ts
vendored
19
lib/tsserverlibrary.d.ts
vendored
@@ -997,13 +997,16 @@ declare namespace ts {
|
||||
isUnterminated?: boolean;
|
||||
hasExtendedUnicodeEscape?: boolean;
|
||||
}
|
||||
export interface TemplateLiteralLikeNode extends LiteralLikeNode {
|
||||
rawText?: string;
|
||||
}
|
||||
export interface LiteralExpression extends LiteralLikeNode, PrimaryExpression {
|
||||
_literalExpressionBrand: any;
|
||||
}
|
||||
export interface RegularExpressionLiteral extends LiteralExpression {
|
||||
kind: SyntaxKind.RegularExpressionLiteral;
|
||||
}
|
||||
export interface NoSubstitutionTemplateLiteral extends LiteralExpression {
|
||||
export interface NoSubstitutionTemplateLiteral extends LiteralExpression, TemplateLiteralLikeNode {
|
||||
kind: SyntaxKind.NoSubstitutionTemplateLiteral;
|
||||
}
|
||||
export enum TokenFlags {
|
||||
@@ -1020,15 +1023,15 @@ declare namespace ts {
|
||||
export interface BigIntLiteral extends LiteralExpression {
|
||||
kind: SyntaxKind.BigIntLiteral;
|
||||
}
|
||||
export interface TemplateHead extends LiteralLikeNode {
|
||||
export interface TemplateHead extends TemplateLiteralLikeNode {
|
||||
kind: SyntaxKind.TemplateHead;
|
||||
parent: TemplateExpression;
|
||||
}
|
||||
export interface TemplateMiddle extends LiteralLikeNode {
|
||||
export interface TemplateMiddle extends TemplateLiteralLikeNode {
|
||||
kind: SyntaxKind.TemplateMiddle;
|
||||
parent: TemplateSpan;
|
||||
}
|
||||
export interface TemplateTail extends LiteralLikeNode {
|
||||
export interface TemplateTail extends TemplateLiteralLikeNode {
|
||||
kind: SyntaxKind.TemplateTail;
|
||||
parent: TemplateSpan;
|
||||
}
|
||||
@@ -3921,10 +3924,10 @@ declare namespace ts {
|
||||
function updateConditional(node: ConditionalExpression, condition: Expression, questionToken: Token<SyntaxKind.QuestionToken>, whenTrue: Expression, colonToken: Token<SyntaxKind.ColonToken>, whenFalse: Expression): ConditionalExpression;
|
||||
function createTemplateExpression(head: TemplateHead, templateSpans: ReadonlyArray<TemplateSpan>): TemplateExpression;
|
||||
function updateTemplateExpression(node: TemplateExpression, head: TemplateHead, templateSpans: ReadonlyArray<TemplateSpan>): TemplateExpression;
|
||||
function createTemplateHead(text: string): TemplateHead;
|
||||
function createTemplateMiddle(text: string): TemplateMiddle;
|
||||
function createTemplateTail(text: string): TemplateTail;
|
||||
function createNoSubstitutionTemplateLiteral(text: string): NoSubstitutionTemplateLiteral;
|
||||
function createTemplateHead(text: string, rawText?: string): TemplateHead;
|
||||
function createTemplateMiddle(text: string, rawText?: string): TemplateMiddle;
|
||||
function createTemplateTail(text: string, rawText?: string): TemplateTail;
|
||||
function createNoSubstitutionTemplateLiteral(text: string, rawText?: string): NoSubstitutionTemplateLiteral;
|
||||
function createYield(expression?: Expression): YieldExpression;
|
||||
function createYield(asteriskToken: AsteriskToken | undefined, expression: Expression): YieldExpression;
|
||||
function updateYield(node: YieldExpression, asteriskToken: AsteriskToken | undefined, expression: Expression): YieldExpression;
|
||||
|
||||
@@ -4479,7 +4479,7 @@ var ts;
|
||||
function getCustomPollingBasedLevels(baseVariable, defaultLevels) {
|
||||
var customLevels = getCustomLevels(baseVariable);
|
||||
return (pollingIntervalChanged || customLevels) &&
|
||||
createPollingIntervalBasedLevels(customLevels ? __assign({}, defaultLevels, customLevels) : defaultLevels);
|
||||
createPollingIntervalBasedLevels(customLevels ? __assign(__assign({}, defaultLevels), customLevels) : defaultLevels);
|
||||
}
|
||||
}
|
||||
ts.setCustomPollingValues = setCustomPollingValues;
|
||||
@@ -6830,7 +6830,7 @@ var ts;
|
||||
_a.of = 148 /* OfKeyword */,
|
||||
_a);
|
||||
var textToKeyword = ts.createMapFromTemplate(textToKeywordObj);
|
||||
var textToToken = ts.createMapFromTemplate(__assign({}, textToKeywordObj, { "{": 18 /* OpenBraceToken */, "}": 19 /* CloseBraceToken */, "(": 20 /* OpenParenToken */, ")": 21 /* CloseParenToken */, "[": 22 /* OpenBracketToken */, "]": 23 /* CloseBracketToken */, ".": 24 /* DotToken */, "...": 25 /* DotDotDotToken */, ";": 26 /* SemicolonToken */, ",": 27 /* CommaToken */, "<": 28 /* LessThanToken */, ">": 30 /* GreaterThanToken */, "<=": 31 /* LessThanEqualsToken */, ">=": 32 /* GreaterThanEqualsToken */, "==": 33 /* EqualsEqualsToken */, "!=": 34 /* ExclamationEqualsToken */, "===": 35 /* EqualsEqualsEqualsToken */, "!==": 36 /* ExclamationEqualsEqualsToken */, "=>": 37 /* EqualsGreaterThanToken */, "+": 38 /* PlusToken */, "-": 39 /* MinusToken */, "**": 41 /* AsteriskAsteriskToken */, "*": 40 /* AsteriskToken */, "/": 42 /* SlashToken */, "%": 43 /* PercentToken */, "++": 44 /* PlusPlusToken */, "--": 45 /* MinusMinusToken */, "<<": 46 /* LessThanLessThanToken */, "</": 29 /* LessThanSlashToken */, ">>": 47 /* GreaterThanGreaterThanToken */, ">>>": 48 /* GreaterThanGreaterThanGreaterThanToken */, "&": 49 /* AmpersandToken */, "|": 50 /* BarToken */, "^": 51 /* CaretToken */, "!": 52 /* ExclamationToken */, "~": 53 /* TildeToken */, "&&": 54 /* AmpersandAmpersandToken */, "||": 55 /* BarBarToken */, "?": 56 /* QuestionToken */, ":": 57 /* ColonToken */, "=": 60 /* EqualsToken */, "+=": 61 /* PlusEqualsToken */, "-=": 62 /* MinusEqualsToken */, "*=": 63 /* AsteriskEqualsToken */, "**=": 64 /* AsteriskAsteriskEqualsToken */, "/=": 65 /* SlashEqualsToken */, "%=": 66 /* PercentEqualsToken */, "<<=": 67 /* LessThanLessThanEqualsToken */, ">>=": 68 /* GreaterThanGreaterThanEqualsToken */, ">>>=": 69 /* GreaterThanGreaterThanGreaterThanEqualsToken */, "&=": 70 /* AmpersandEqualsToken */, "|=": 71 /* BarEqualsToken */, "^=": 72 /* CaretEqualsToken */, "@": 58 /* AtToken */, "`": 59 /* BacktickToken */ }));
|
||||
var textToToken = ts.createMapFromTemplate(__assign(__assign({}, textToKeywordObj), { "{": 18 /* OpenBraceToken */, "}": 19 /* CloseBraceToken */, "(": 20 /* OpenParenToken */, ")": 21 /* CloseParenToken */, "[": 22 /* OpenBracketToken */, "]": 23 /* CloseBracketToken */, ".": 24 /* DotToken */, "...": 25 /* DotDotDotToken */, ";": 26 /* SemicolonToken */, ",": 27 /* CommaToken */, "<": 28 /* LessThanToken */, ">": 30 /* GreaterThanToken */, "<=": 31 /* LessThanEqualsToken */, ">=": 32 /* GreaterThanEqualsToken */, "==": 33 /* EqualsEqualsToken */, "!=": 34 /* ExclamationEqualsToken */, "===": 35 /* EqualsEqualsEqualsToken */, "!==": 36 /* ExclamationEqualsEqualsToken */, "=>": 37 /* EqualsGreaterThanToken */, "+": 38 /* PlusToken */, "-": 39 /* MinusToken */, "**": 41 /* AsteriskAsteriskToken */, "*": 40 /* AsteriskToken */, "/": 42 /* SlashToken */, "%": 43 /* PercentToken */, "++": 44 /* PlusPlusToken */, "--": 45 /* MinusMinusToken */, "<<": 46 /* LessThanLessThanToken */, "</": 29 /* LessThanSlashToken */, ">>": 47 /* GreaterThanGreaterThanToken */, ">>>": 48 /* GreaterThanGreaterThanGreaterThanToken */, "&": 49 /* AmpersandToken */, "|": 50 /* BarToken */, "^": 51 /* CaretToken */, "!": 52 /* ExclamationToken */, "~": 53 /* TildeToken */, "&&": 54 /* AmpersandAmpersandToken */, "||": 55 /* BarBarToken */, "?": 56 /* QuestionToken */, ":": 57 /* ColonToken */, "=": 60 /* EqualsToken */, "+=": 61 /* PlusEqualsToken */, "-=": 62 /* MinusEqualsToken */, "*=": 63 /* AsteriskEqualsToken */, "**=": 64 /* AsteriskAsteriskEqualsToken */, "/=": 65 /* SlashEqualsToken */, "%=": 66 /* PercentEqualsToken */, "<<=": 67 /* LessThanLessThanEqualsToken */, ">>=": 68 /* GreaterThanGreaterThanEqualsToken */, ">>>=": 69 /* GreaterThanGreaterThanGreaterThanEqualsToken */, "&=": 70 /* AmpersandEqualsToken */, "|=": 71 /* BarEqualsToken */, "^=": 72 /* CaretEqualsToken */, "@": 58 /* AtToken */, "`": 59 /* BacktickToken */ }));
|
||||
/*
|
||||
As per ECMAScript Language Specification 3th Edition, Section 7.6: Identifiers
|
||||
IdentifierStart ::
|
||||
@@ -9279,8 +9279,6 @@ var ts;
|
||||
return emitNode && emitNode.flags || 0;
|
||||
}
|
||||
ts.getEmitFlags = getEmitFlags;
|
||||
var escapeNoSubstitutionTemplateLiteralText = ts.compose(escapeString, escapeTemplateSubstitution);
|
||||
var escapeNonAsciiNoSubstitutionTemplateLiteralText = ts.compose(escapeNonAsciiString, escapeTemplateSubstitution);
|
||||
function getLiteralText(node, sourceFile, neverAsciiEscape) {
|
||||
// If we don't need to downlevel and we can reach the original source text using
|
||||
// the node's parent reference, then simply get the text as it was originally written.
|
||||
@@ -9290,9 +9288,7 @@ var ts;
|
||||
}
|
||||
// If a NoSubstitutionTemplateLiteral appears to have a substitution in it, the original text
|
||||
// had to include a backslash: `not \${a} substitution`.
|
||||
var escapeText = neverAsciiEscape || (getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ?
|
||||
node.kind === 14 /* NoSubstitutionTemplateLiteral */ ? escapeNoSubstitutionTemplateLiteralText : escapeString :
|
||||
node.kind === 14 /* NoSubstitutionTemplateLiteral */ ? escapeNonAsciiNoSubstitutionTemplateLiteralText : escapeNonAsciiString;
|
||||
var escapeText = neverAsciiEscape || (getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ? escapeString : escapeNonAsciiString;
|
||||
// If we can't reach the original source text, use the canonical form if it's a number,
|
||||
// or a (possibly escaped) quoted form of the original text if it's string-like.
|
||||
switch (node.kind) {
|
||||
@@ -9304,15 +9300,23 @@ var ts;
|
||||
return '"' + escapeText(node.text, 34 /* doubleQuote */) + '"';
|
||||
}
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
return "`" + escapeText(node.text, 96 /* backtick */) + "`";
|
||||
case 15 /* TemplateHead */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "`" + escapeText(node.text, 96 /* backtick */) + "${";
|
||||
case 16 /* TemplateMiddle */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "}" + escapeText(node.text, 96 /* backtick */) + "${";
|
||||
case 17 /* TemplateTail */:
|
||||
return "}" + escapeText(node.text, 96 /* backtick */) + "`";
|
||||
var rawText = node.rawText || escapeTemplateSubstitution(escapeText(node.text, 96 /* backtick */));
|
||||
switch (node.kind) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
return "`" + rawText + "`";
|
||||
case 15 /* TemplateHead */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "`" + rawText + "${";
|
||||
case 16 /* TemplateMiddle */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "}" + rawText + "${";
|
||||
case 17 /* TemplateTail */:
|
||||
return "}" + rawText + "`";
|
||||
}
|
||||
break;
|
||||
case 8 /* NumericLiteral */:
|
||||
case 9 /* BigIntLiteral */:
|
||||
case 13 /* RegularExpressionLiteral */:
|
||||
@@ -11761,7 +11765,8 @@ var ts;
|
||||
// There is no reason for this other than that JSON.stringify does not handle it either.
|
||||
var doubleQuoteEscapedCharsRegExp = /[\\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
var singleQuoteEscapedCharsRegExp = /[\\\'\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
var backtickQuoteEscapedCharsRegExp = /[\\\`\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
// Template strings should be preserved as much as possible
|
||||
var backtickQuoteEscapedCharsRegExp = /[\\\`]/g;
|
||||
var escapedCharsMap = ts.createMapFromTemplate({
|
||||
"\t": "\\t",
|
||||
"\v": "\\v",
|
||||
@@ -11947,7 +11952,7 @@ var ts;
|
||||
pendingTrailingSemicolon = false;
|
||||
}
|
||||
}
|
||||
return __assign({}, writer, { writeTrailingSemicolon: function () {
|
||||
return __assign(__assign({}, writer), { writeTrailingSemicolon: function () {
|
||||
pendingTrailingSemicolon = true;
|
||||
},
|
||||
writeLiteral: function (s) {
|
||||
@@ -19031,6 +19036,16 @@ var ts;
|
||||
function parseLiteralLikeNode(kind) {
|
||||
var node = createNode(kind);
|
||||
node.text = scanner.getTokenValue();
|
||||
switch (kind) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
case 15 /* TemplateHead */:
|
||||
case 16 /* TemplateMiddle */:
|
||||
case 17 /* TemplateTail */:
|
||||
var isLast = kind === 14 /* NoSubstitutionTemplateLiteral */ || kind === 17 /* TemplateTail */;
|
||||
var tokenText = scanner.getTokenText();
|
||||
node.rawText = tokenText.substring(1, tokenText.length - (scanner.isUnterminated() ? 0 : isLast ? 1 : 2));
|
||||
break;
|
||||
}
|
||||
if (scanner.hasExtendedUnicodeEscape()) {
|
||||
node.hasExtendedUnicodeEscape = true;
|
||||
}
|
||||
@@ -25831,13 +25846,13 @@ var ts;
|
||||
var getCanonicalFileName = ts.createGetCanonicalFileName(host.useCaseSensitiveFileNames);
|
||||
var files = ts.map(ts.filter(configParseResult.fileNames, (!configParseResult.configFileSpecs || !configParseResult.configFileSpecs.validatedIncludeSpecs) ? function (_) { return true; } : matchesSpecs(configFileName, configParseResult.configFileSpecs.validatedIncludeSpecs, configParseResult.configFileSpecs.validatedExcludeSpecs)), function (f) { return ts.getRelativePathFromFile(ts.getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), ts.getNormalizedAbsolutePath(f, host.getCurrentDirectory()), getCanonicalFileName); });
|
||||
var optionMap = serializeCompilerOptions(configParseResult.options, { configFilePath: ts.getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), useCaseSensitiveFileNames: host.useCaseSensitiveFileNames });
|
||||
var config = __assign({ compilerOptions: __assign({}, ts.arrayFrom(optionMap.entries()).reduce(function (prev, cur) {
|
||||
var config = __assign(__assign({ compilerOptions: __assign(__assign({}, ts.arrayFrom(optionMap.entries()).reduce(function (prev, cur) {
|
||||
var _a;
|
||||
return (__assign({}, prev, (_a = {}, _a[cur[0]] = cur[1], _a)));
|
||||
}, {}), { showConfig: undefined, configFile: undefined, configFilePath: undefined, help: undefined, init: undefined, listFiles: undefined, listEmittedFiles: undefined, project: undefined, build: undefined, version: undefined }), references: ts.map(configParseResult.projectReferences, function (r) { return (__assign({}, r, { path: r.originalPath ? r.originalPath : "", originalPath: undefined })); }), files: ts.length(files) ? files : undefined }, (configParseResult.configFileSpecs ? {
|
||||
return (__assign(__assign({}, prev), (_a = {}, _a[cur[0]] = cur[1], _a)));
|
||||
}, {})), { showConfig: undefined, configFile: undefined, configFilePath: undefined, help: undefined, init: undefined, listFiles: undefined, listEmittedFiles: undefined, project: undefined, build: undefined, version: undefined }), references: ts.map(configParseResult.projectReferences, function (r) { return (__assign(__assign({}, r), { path: r.originalPath ? r.originalPath : "", originalPath: undefined })); }), files: ts.length(files) ? files : undefined }, (configParseResult.configFileSpecs ? {
|
||||
include: filterSameAsDefaultInclude(configParseResult.configFileSpecs.validatedIncludeSpecs),
|
||||
exclude: configParseResult.configFileSpecs.validatedExcludeSpecs
|
||||
} : {}), { compileOnSave: !!configParseResult.compileOnSave ? true : undefined });
|
||||
} : {})), { compileOnSave: !!configParseResult.compileOnSave ? true : undefined });
|
||||
return config;
|
||||
}
|
||||
ts.convertToTSConfig = convertToTSConfig;
|
||||
@@ -27621,7 +27636,7 @@ var ts;
|
||||
if (!compilerOptions.preserveSymlinks && resolvedValue && !resolvedValue.originalPath) {
|
||||
var path = realPath(resolvedValue.path, host, traceEnabled);
|
||||
var originalPath = path === resolvedValue.path ? undefined : resolvedValue.path;
|
||||
resolvedValue = __assign({}, resolvedValue, { path: path, originalPath: originalPath });
|
||||
resolvedValue = __assign(__assign({}, resolvedValue), { path: path, originalPath: originalPath });
|
||||
}
|
||||
// For node_modules lookups, get the real path so that multiple accesses to an `npm link`-ed module do not create duplicate files.
|
||||
return { value: resolvedValue && { resolved: resolvedValue, isExternalLibraryImport: true } };
|
||||
@@ -29952,7 +29967,7 @@ var ts;
|
||||
file.bindDiagnostics.push(diag);
|
||||
}
|
||||
else {
|
||||
file.bindSuggestionDiagnostics = ts.append(file.bindSuggestionDiagnostics, __assign({}, diag, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
file.bindSuggestionDiagnostics = ts.append(file.bindSuggestionDiagnostics, __assign(__assign({}, diag), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
}
|
||||
function bind(node) {
|
||||
@@ -32386,7 +32401,7 @@ var ts;
|
||||
function addUnusedDiagnostics() {
|
||||
checkUnusedIdentifiers(getPotentiallyUnusedIdentifiers(file), function (containingNode, kind, diag) {
|
||||
if (!ts.containsParseError(containingNode) && !unusedIsError(kind)) {
|
||||
(diagnostics || (diagnostics = [])).push(__assign({}, diag, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
(diagnostics || (diagnostics = [])).push(__assign(__assign({}, diag), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -32682,7 +32697,7 @@ var ts;
|
||||
diagnostics.add(diagnostic);
|
||||
}
|
||||
else {
|
||||
suggestionDiagnostics.add(__assign({}, diagnostic, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
suggestionDiagnostics.add(__assign(__assign({}, diagnostic), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
}
|
||||
function errorOrSuggestion(isError, location, message, arg0, arg1, arg2, arg3) {
|
||||
@@ -35950,7 +35965,7 @@ var ts;
|
||||
// using the `baseUrl` compiler option (which we would otherwise never use in declaration emit) and a non-relative
|
||||
// specifier preference
|
||||
var moduleResolverHost = context.tracker.moduleResolverHost;
|
||||
var specifierCompilerOptions = isBundle_1 ? __assign({}, compilerOptions, { baseUrl: moduleResolverHost.getCommonSourceDirectory() }) : compilerOptions;
|
||||
var specifierCompilerOptions = isBundle_1 ? __assign(__assign({}, compilerOptions), { baseUrl: moduleResolverHost.getCommonSourceDirectory() }) : compilerOptions;
|
||||
specifier = ts.first(ts.moduleSpecifiers.getModuleSpecifiers(symbol, specifierCompilerOptions, contextFile, moduleResolverHost, host.getSourceFiles(), { importModuleSpecifierPreference: isBundle_1 ? "non-relative" : "relative" }, host.redirectTargetsMap));
|
||||
links.specifierCache = links.specifierCache || ts.createMap();
|
||||
links.specifierCache.set(contextFile.path, specifier);
|
||||
@@ -43015,7 +43030,7 @@ var ts;
|
||||
var childrenPropName = childPropName === undefined ? "children" : ts.unescapeLeadingUnderscores(childPropName);
|
||||
var childrenTargetType = getIndexedAccessType(target, getLiteralType(childrenPropName));
|
||||
var diagnostic = ts.Diagnostics._0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2;
|
||||
invalidTextDiagnostic = __assign({}, diagnostic, { key: "!!ALREADY FORMATTED!!", message: ts.formatMessage(/*_dummy*/ undefined, diagnostic, tagNameText, childrenPropName, typeToString(childrenTargetType)) });
|
||||
invalidTextDiagnostic = __assign(__assign({}, diagnostic), { key: "!!ALREADY FORMATTED!!", message: ts.formatMessage(/*_dummy*/ undefined, diagnostic, tagNameText, childrenPropName, typeToString(childrenTargetType)) });
|
||||
}
|
||||
return invalidTextDiagnostic;
|
||||
}
|
||||
@@ -55116,7 +55131,18 @@ var ts;
|
||||
return checkExpression(node.expression, checkMode);
|
||||
}
|
||||
function checkExpressionWorker(node, checkMode, forceTuple) {
|
||||
switch (node.kind) {
|
||||
var kind = node.kind;
|
||||
if (cancellationToken) {
|
||||
// Only bother checking on a few construct kinds. We don't want to be excessively
|
||||
// hitting the cancellation token on every node we check.
|
||||
switch (kind) {
|
||||
case 210 /* ClassExpression */:
|
||||
case 197 /* FunctionExpression */:
|
||||
case 198 /* ArrowFunction */:
|
||||
cancellationToken.throwIfCancellationRequested();
|
||||
}
|
||||
}
|
||||
switch (kind) {
|
||||
case 73 /* Identifier */:
|
||||
return checkIdentifier(node);
|
||||
case 101 /* ThisKeyword */:
|
||||
@@ -63926,27 +63952,88 @@ var ts;
|
||||
: node;
|
||||
}
|
||||
ts.updateTemplateExpression = updateTemplateExpression;
|
||||
function createTemplateHead(text) {
|
||||
var node = createSynthesizedNode(15 /* TemplateHead */);
|
||||
var rawTextScanner;
|
||||
var invalidValueSentinel = {};
|
||||
function getCookedText(kind, rawText) {
|
||||
if (!rawTextScanner) {
|
||||
rawTextScanner = ts.createScanner(99 /* Latest */, /*skipTrivia*/ false, 0 /* Standard */);
|
||||
}
|
||||
switch (kind) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
rawTextScanner.setText("`" + rawText + "`");
|
||||
break;
|
||||
case 15 /* TemplateHead */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
rawTextScanner.setText("`" + rawText + "${");
|
||||
break;
|
||||
case 16 /* TemplateMiddle */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
rawTextScanner.setText("}" + rawText + "${");
|
||||
break;
|
||||
case 17 /* TemplateTail */:
|
||||
rawTextScanner.setText("}" + rawText + "`");
|
||||
break;
|
||||
}
|
||||
var token = rawTextScanner.scan();
|
||||
if (token === 23 /* CloseBracketToken */) {
|
||||
token = rawTextScanner.reScanTemplateToken();
|
||||
}
|
||||
if (rawTextScanner.isUnterminated()) {
|
||||
rawTextScanner.setText(undefined);
|
||||
return invalidValueSentinel;
|
||||
}
|
||||
var tokenValue;
|
||||
switch (token) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
case 15 /* TemplateHead */:
|
||||
case 16 /* TemplateMiddle */:
|
||||
case 17 /* TemplateTail */:
|
||||
tokenValue = rawTextScanner.getTokenValue();
|
||||
break;
|
||||
}
|
||||
if (rawTextScanner.scan() !== 1 /* EndOfFileToken */) {
|
||||
rawTextScanner.setText(undefined);
|
||||
return invalidValueSentinel;
|
||||
}
|
||||
rawTextScanner.setText(undefined);
|
||||
return tokenValue;
|
||||
}
|
||||
function createTemplateLiteralLikeNode(kind, text, rawText) {
|
||||
var node = createSynthesizedNode(kind);
|
||||
node.text = text;
|
||||
if (rawText === undefined || text === rawText) {
|
||||
node.rawText = rawText;
|
||||
}
|
||||
else {
|
||||
var cooked = getCookedText(kind, rawText);
|
||||
if (typeof cooked === "object") {
|
||||
return ts.Debug.fail("Invalid raw text");
|
||||
}
|
||||
ts.Debug.assert(text === cooked, "Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.");
|
||||
node.rawText = rawText;
|
||||
}
|
||||
return node;
|
||||
}
|
||||
function createTemplateHead(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(15 /* TemplateHead */, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateHead = createTemplateHead;
|
||||
function createTemplateMiddle(text) {
|
||||
var node = createSynthesizedNode(16 /* TemplateMiddle */);
|
||||
function createTemplateMiddle(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(16 /* TemplateMiddle */, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateMiddle = createTemplateMiddle;
|
||||
function createTemplateTail(text) {
|
||||
var node = createSynthesizedNode(17 /* TemplateTail */);
|
||||
function createTemplateTail(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(17 /* TemplateTail */, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateTail = createTemplateTail;
|
||||
function createNoSubstitutionTemplateLiteral(text) {
|
||||
var node = createSynthesizedNode(14 /* NoSubstitutionTemplateLiteral */);
|
||||
node.text = text;
|
||||
function createNoSubstitutionTemplateLiteral(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(14 /* NoSubstitutionTemplateLiteral */, text, rawText);
|
||||
return node;
|
||||
}
|
||||
ts.createNoSubstitutionTemplateLiteral = createNoSubstitutionTemplateLiteral;
|
||||
@@ -77750,13 +77837,16 @@ var ts;
|
||||
// Find original source text, since we need to emit the raw strings of the tagged template.
|
||||
// The raw strings contain the (escaped) strings of what the user wrote.
|
||||
// Examples: `\n` is converted to "\\n", a template string with a newline to "\n".
|
||||
var text = ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node);
|
||||
// text contains the original source, it will also contain quotes ("`"), dolar signs and braces ("${" and "}"),
|
||||
// thus we need to remove those characters.
|
||||
// First template piece starts with "`", others with "}"
|
||||
// Last template piece ends with "`", others with "${"
|
||||
var isLast = node.kind === 14 /* NoSubstitutionTemplateLiteral */ || node.kind === 17 /* TemplateTail */;
|
||||
text = text.substring(1, text.length - (isLast ? 1 : 2));
|
||||
var text = node.rawText;
|
||||
if (text === undefined) {
|
||||
text = ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node);
|
||||
// text contains the original source, it will also contain quotes ("`"), dolar signs and braces ("${" and "}"),
|
||||
// thus we need to remove those characters.
|
||||
// First template piece starts with "`", others with "}"
|
||||
// Last template piece ends with "`", others with "${"
|
||||
var isLast = node.kind === 14 /* NoSubstitutionTemplateLiteral */ || node.kind === 17 /* TemplateTail */;
|
||||
text = text.substring(1, text.length - (isLast ? 1 : 2));
|
||||
}
|
||||
// Newline normalization:
|
||||
// ES6 Spec 11.8.6.1 - Static Semantics of TV's and TRV's
|
||||
// <CR><LF> and <CR> LineTerminatorSequences are normalized to <LF> for both TV and TRV.
|
||||
@@ -91939,7 +92029,7 @@ var ts;
|
||||
return oldProgram.structureIsReused = 2 /* Completely */;
|
||||
}
|
||||
function getEmitHost(writeFileCallback) {
|
||||
return __assign({ getPrependNodes: getPrependNodes,
|
||||
return __assign(__assign({ getPrependNodes: getPrependNodes,
|
||||
getCanonicalFileName: getCanonicalFileName, getCommonSourceDirectory: program.getCommonSourceDirectory, getCompilerOptions: program.getCompilerOptions, getCurrentDirectory: function () { return currentDirectory; }, getNewLine: function () { return host.getNewLine(); }, getSourceFile: program.getSourceFile, getSourceFileByPath: program.getSourceFileByPath, getSourceFiles: program.getSourceFiles, getLibFileFromReference: program.getLibFileFromReference, isSourceFileFromExternalLibrary: isSourceFileFromExternalLibrary,
|
||||
getResolvedProjectReferenceToRedirect: getResolvedProjectReferenceToRedirect, writeFile: writeFileCallback || (function (fileName, data, writeByteOrderMark, onError, sourceFiles) { return host.writeFile(fileName, data, writeByteOrderMark, onError, sourceFiles); }), isEmitBlocked: isEmitBlocked, readFile: function (f) { return host.readFile(f); }, fileExists: function (f) {
|
||||
// Use local caches
|
||||
@@ -91950,7 +92040,7 @@ var ts;
|
||||
return false;
|
||||
// Before falling back to the host
|
||||
return host.fileExists(f);
|
||||
} }, (host.directoryExists ? { directoryExists: function (f) { return host.directoryExists(f); } } : {}), { useCaseSensitiveFileNames: function () { return host.useCaseSensitiveFileNames(); }, getProgramBuildInfo: function () { return program.getProgramBuildInfo && program.getProgramBuildInfo(); }, getSourceFileFromReference: function (file, ref) { return program.getSourceFileFromReference(file, ref); } });
|
||||
} }, (host.directoryExists ? { directoryExists: function (f) { return host.directoryExists(f); } } : {})), { useCaseSensitiveFileNames: function () { return host.useCaseSensitiveFileNames(); }, getProgramBuildInfo: function () { return program.getProgramBuildInfo && program.getProgramBuildInfo(); }, getSourceFileFromReference: function (file, ref) { return program.getSourceFileFromReference(file, ref); } });
|
||||
}
|
||||
function emitBuildInfo(writeFileCallback) {
|
||||
ts.Debug.assert(!options.out && !options.outFile);
|
||||
@@ -94102,7 +94192,7 @@ var ts;
|
||||
}
|
||||
function convertToDiagnosticRelatedInformation(diagnostic, newProgram, toPath) {
|
||||
var file = diagnostic.file;
|
||||
return __assign({}, diagnostic, { file: file ? newProgram.getSourceFileByPath(toPath(file)) : undefined });
|
||||
return __assign(__assign({}, diagnostic), { file: file ? newProgram.getSourceFileByPath(toPath(file)) : undefined });
|
||||
}
|
||||
/**
|
||||
* Releases program and other related not needed properties
|
||||
@@ -94497,7 +94587,7 @@ var ts;
|
||||
}
|
||||
function convertToReusableDiagnosticRelatedInformation(diagnostic, relativeToBuildInfo) {
|
||||
var file = diagnostic.file;
|
||||
return __assign({}, diagnostic, { file: file ? relativeToBuildInfo(file.path) : undefined });
|
||||
return __assign(__assign({}, diagnostic), { file: file ? relativeToBuildInfo(file.path) : undefined });
|
||||
}
|
||||
var BuilderProgramKind;
|
||||
(function (BuilderProgramKind) {
|
||||
@@ -103650,7 +103740,7 @@ var ts;
|
||||
// If you're in an interface you don't want to repeat things from super-interface. So just stop here.
|
||||
if (!ts.isClassLike(decl))
|
||||
return 1 /* Success */;
|
||||
var classElement = contextToken.parent;
|
||||
var classElement = contextToken.kind === 26 /* SemicolonToken */ ? contextToken.parent.parent : contextToken.parent;
|
||||
var classElementModifierFlags = ts.isClassElement(classElement) ? ts.getModifierFlags(classElement) : 0 /* None */;
|
||||
// If this is context token is not something we are editing now, consider if this would lead to be modifier
|
||||
if (contextToken.kind === 73 /* Identifier */ && !isCurrentlyEditingNode(contextToken)) {
|
||||
@@ -105663,16 +105753,16 @@ var ts;
|
||||
return { displayParts: displayParts, kind: symbolKind };
|
||||
}
|
||||
function toRenameLocation(entry, originalNode, checker, providePrefixAndSuffixText) {
|
||||
return __assign({}, entryToDocumentSpan(entry), (providePrefixAndSuffixText && getPrefixAndSuffixText(entry, originalNode, checker)));
|
||||
return __assign(__assign({}, entryToDocumentSpan(entry)), (providePrefixAndSuffixText && getPrefixAndSuffixText(entry, originalNode, checker)));
|
||||
}
|
||||
FindAllReferences.toRenameLocation = toRenameLocation;
|
||||
function toReferenceEntry(entry) {
|
||||
var documentSpan = entryToDocumentSpan(entry);
|
||||
if (entry.kind === 0 /* Span */) {
|
||||
return __assign({}, documentSpan, { isWriteAccess: false, isDefinition: false });
|
||||
return __assign(__assign({}, documentSpan), { isWriteAccess: false, isDefinition: false });
|
||||
}
|
||||
var kind = entry.kind, node = entry.node;
|
||||
return __assign({}, documentSpan, { isWriteAccess: isWriteAccessForReference(node), isDefinition: node.kind === 81 /* DefaultKeyword */
|
||||
return __assign(__assign({}, documentSpan), { isWriteAccess: isWriteAccessForReference(node), isDefinition: node.kind === 81 /* DefaultKeyword */
|
||||
|| !!ts.getDeclarationFromName(node)
|
||||
|| ts.isLiteralComputedPropertyDeclarationName(node), isInString: kind === 2 /* StringLiteral */ ? true : undefined });
|
||||
}
|
||||
@@ -105716,10 +105806,10 @@ var ts;
|
||||
var documentSpan = entryToDocumentSpan(entry);
|
||||
if (entry.kind !== 0 /* Span */) {
|
||||
var node = entry.node;
|
||||
return __assign({}, documentSpan, implementationKindDisplayParts(node, checker));
|
||||
return __assign(__assign({}, documentSpan), implementationKindDisplayParts(node, checker));
|
||||
}
|
||||
else {
|
||||
return __assign({}, documentSpan, { kind: "" /* unknown */, displayParts: [] });
|
||||
return __assign(__assign({}, documentSpan), { kind: "" /* unknown */, displayParts: [] });
|
||||
}
|
||||
}
|
||||
function implementationKindDisplayParts(node, checker) {
|
||||
@@ -115263,7 +115353,7 @@ var ts;
|
||||
};
|
||||
ChangeTracker.prototype.getInsertNodeAfterOptions = function (sourceFile, after) {
|
||||
var options = this.getInsertNodeAfterOptionsWorker(after);
|
||||
return __assign({}, options, { prefix: after.end === sourceFile.end && ts.isStatement(after) ? (options.prefix ? "\n" + options.prefix : "\n") : options.prefix });
|
||||
return __assign(__assign({}, options), { prefix: after.end === sourceFile.end && ts.isStatement(after) ? (options.prefix ? "\n" + options.prefix : "\n") : options.prefix });
|
||||
};
|
||||
ChangeTracker.prototype.getInsertNodeAfterOptionsWorker = function (node) {
|
||||
switch (node.kind) {
|
||||
@@ -118955,7 +119045,7 @@ var ts;
|
||||
var info = errorCode === ts.Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code
|
||||
? getFixesInfoForUMDImport(context, symbolToken)
|
||||
: ts.isIdentifier(symbolToken) ? getFixesInfoForNonUMDImport(context, symbolToken) : undefined;
|
||||
return info && __assign({}, info, { fixes: ts.sort(info.fixes, function (a, b) { return a.kind - b.kind; }) });
|
||||
return info && __assign(__assign({}, info), { fixes: ts.sort(info.fixes, function (a, b) { return a.kind - b.kind; }) });
|
||||
}
|
||||
function getFixesInfoForUMDImport(_a, token) {
|
||||
var sourceFile = _a.sourceFile, program = _a.program, host = _a.host, preferences = _a.preferences;
|
||||
@@ -125739,7 +125829,7 @@ var ts;
|
||||
function getCompletionsAtPosition(fileName, position, options) {
|
||||
if (options === void 0) { options = ts.emptyOptions; }
|
||||
// Convert from deprecated options names to new names
|
||||
var fullPreferences = __assign({}, ts.identity(options), { includeCompletionsForModuleExports: options.includeCompletionsForModuleExports || options.includeExternalModuleExports, includeCompletionsWithInsertText: options.includeCompletionsWithInsertText || options.includeInsertTextCompletions });
|
||||
var fullPreferences = __assign(__assign({}, ts.identity(options)), { includeCompletionsForModuleExports: options.includeCompletionsForModuleExports || options.includeExternalModuleExports, includeCompletionsWithInsertText: options.includeCompletionsWithInsertText || options.includeInsertTextCompletions });
|
||||
synchronizeHostData();
|
||||
return ts.Completions.getCompletionsAtPosition(host, program, log, getValidSourceFile(fileName), position, fullPreferences, options.triggerCharacter);
|
||||
}
|
||||
@@ -125829,7 +125919,7 @@ var ts;
|
||||
}
|
||||
/// References and Occurrences
|
||||
function getOccurrencesAtPosition(fileName, position) {
|
||||
return ts.flatMap(getDocumentHighlights(fileName, position, [fileName]), function (entry) { return entry.highlightSpans.map(function (highlightSpan) { return (__assign({ fileName: entry.fileName, textSpan: highlightSpan.textSpan, isWriteAccess: highlightSpan.kind === "writtenReference" /* writtenReference */, isDefinition: false }, highlightSpan.isInString && { isInString: true }, highlightSpan.contextSpan && { contextSpan: highlightSpan.contextSpan })); }); });
|
||||
return ts.flatMap(getDocumentHighlights(fileName, position, [fileName]), function (entry) { return entry.highlightSpans.map(function (highlightSpan) { return (__assign(__assign({ fileName: entry.fileName, textSpan: highlightSpan.textSpan, isWriteAccess: highlightSpan.kind === "writtenReference" /* writtenReference */, isDefinition: false }, highlightSpan.isInString && { isInString: true }), highlightSpan.contextSpan && { contextSpan: highlightSpan.contextSpan })); }); });
|
||||
}
|
||||
function getDocumentHighlights(fileName, position, filesToSearch) {
|
||||
var normalizedFileName = ts.normalizePath(fileName);
|
||||
@@ -128684,14 +128774,14 @@ var ts;
|
||||
ts.assign(this.formatSettings, formatSettings);
|
||||
}
|
||||
else {
|
||||
this.formatSettings = __assign({}, this.formatSettings, formatSettings);
|
||||
this.formatSettings = __assign(__assign({}, this.formatSettings), formatSettings);
|
||||
}
|
||||
}
|
||||
if (preferences) {
|
||||
if (!this.preferences) {
|
||||
this.preferences = ts.emptyOptions;
|
||||
}
|
||||
this.preferences = __assign({}, this.preferences, preferences);
|
||||
this.preferences = __assign(__assign({}, this.preferences), preferences);
|
||||
}
|
||||
};
|
||||
ScriptInfo.prototype.getLatestVersion = function () {
|
||||
@@ -129069,7 +129159,7 @@ var ts;
|
||||
return this.typingsCache.isKnownTypesPackageName(name);
|
||||
};
|
||||
Project.prototype.installPackage = function (options) {
|
||||
return this.typingsCache.installPackage(__assign({}, options, { projectName: this.projectName, projectRootPath: this.toPath(this.currentDirectory) }));
|
||||
return this.typingsCache.installPackage(__assign(__assign({}, options), { projectName: this.projectName, projectRootPath: this.toPath(this.currentDirectory) }));
|
||||
};
|
||||
Object.defineProperty(Project.prototype, "typingsCache", {
|
||||
get: function () {
|
||||
@@ -129315,7 +129405,7 @@ var ts;
|
||||
// Nothing to filter out, so just return as-is
|
||||
return newTypeAcquisition;
|
||||
}
|
||||
return __assign({}, newTypeAcquisition, { include: this.removeExistingTypings(newTypeAcquisition.include) });
|
||||
return __assign(__assign({}, newTypeAcquisition), { include: this.removeExistingTypings(newTypeAcquisition.include) });
|
||||
};
|
||||
Project.prototype.getExternalFiles = function () {
|
||||
var _this = this;
|
||||
@@ -130880,7 +130970,7 @@ var ts;
|
||||
};
|
||||
ProjectService.prototype.getPreferences = function (file) {
|
||||
var info = this.getScriptInfoForNormalizedPath(file);
|
||||
return __assign({}, this.hostConfiguration.preferences, info && info.getPreferences());
|
||||
return __assign(__assign({}, this.hostConfiguration.preferences), info && info.getPreferences());
|
||||
};
|
||||
ProjectService.prototype.getHostFormatCodeOptions = function () {
|
||||
return this.hostConfiguration.formatCodeOptions;
|
||||
@@ -132195,12 +132285,12 @@ var ts;
|
||||
this.logger.info("Host information " + args.hostInfo);
|
||||
}
|
||||
if (args.formatOptions) {
|
||||
this.hostConfiguration.formatCodeOptions = __assign({}, this.hostConfiguration.formatCodeOptions, convertFormatOptions(args.formatOptions));
|
||||
this.hostConfiguration.formatCodeOptions = __assign(__assign({}, this.hostConfiguration.formatCodeOptions), convertFormatOptions(args.formatOptions));
|
||||
this.logger.info("Format host information updated");
|
||||
}
|
||||
if (args.preferences) {
|
||||
var lazyConfiguredProjectsFromExternalProject = this.hostConfiguration.preferences.lazyConfiguredProjectsFromExternalProject;
|
||||
this.hostConfiguration.preferences = __assign({}, this.hostConfiguration.preferences, args.preferences);
|
||||
this.hostConfiguration.preferences = __assign(__assign({}, this.hostConfiguration.preferences), args.preferences);
|
||||
if (lazyConfiguredProjectsFromExternalProject && !this.hostConfiguration.preferences.lazyConfiguredProjectsFromExternalProject) {
|
||||
// Load configured projects for external projects that are pending reload
|
||||
this.configuredProjects.forEach(function (project) {
|
||||
@@ -132459,13 +132549,13 @@ var ts;
|
||||
// It was then postponed to cleanup these script infos so that they can be reused if
|
||||
// the file from that old project is reopened because of opening file from here.
|
||||
this.removeOrphanScriptInfos();
|
||||
this.printProjects();
|
||||
};
|
||||
ProjectService.prototype.openClientFileWithNormalizedPath = function (fileName, fileContent, scriptKind, hasMixedContent, projectRootPath) {
|
||||
var info = this.getOrCreateOpenScriptInfo(fileName, fileContent, scriptKind, hasMixedContent, projectRootPath);
|
||||
var _a = this.assignProjectToOpenedScriptInfo(info), defaultConfigProject = _a.defaultConfigProject, result = __rest(_a, ["defaultConfigProject"]);
|
||||
this.cleanupAfterOpeningFile(defaultConfigProject);
|
||||
this.telemetryOnOpenFile(info);
|
||||
this.printProjects();
|
||||
return result;
|
||||
};
|
||||
ProjectService.prototype.removeOrphanConfiguredProjects = function (toRetainConfiguredProjects) {
|
||||
@@ -132645,11 +132735,16 @@ var ts;
|
||||
if (assignOrphanScriptInfosToInferredProject) {
|
||||
this.assignOrphanScriptInfosToInferredProject();
|
||||
}
|
||||
// Cleanup projects
|
||||
this.cleanupAfterOpeningFile(defaultConfigProjects);
|
||||
// Telemetry
|
||||
ts.forEach(openScriptInfos, function (info) { return _this.telemetryOnOpenFile(info); });
|
||||
this.printProjects();
|
||||
if (openScriptInfos) {
|
||||
// Cleanup projects
|
||||
this.cleanupAfterOpeningFile(defaultConfigProjects);
|
||||
// Telemetry
|
||||
openScriptInfos.forEach(function (info) { return _this.telemetryOnOpenFile(info); });
|
||||
this.printProjects();
|
||||
}
|
||||
else if (ts.length(closedFiles)) {
|
||||
this.printProjects();
|
||||
}
|
||||
};
|
||||
/* @internal */
|
||||
ProjectService.prototype.applyChangesToFile = function (scriptInfo, changes) {
|
||||
@@ -133076,7 +133171,7 @@ var ts;
|
||||
relatedInformation: ts.map(diag.relatedInformation, formatRelatedInformation),
|
||||
};
|
||||
return includeFileName
|
||||
? __assign({}, common, { fileName: diag.file && diag.file.fileName }) : common;
|
||||
? __assign(__assign({}, common), { fileName: diag.file && diag.file.fileName }) : common;
|
||||
}
|
||||
function allEditsBeforePos(edits, pos) {
|
||||
return edits.every(function (edit) { return ts.textSpanEnd(edit.span) < pos; });
|
||||
@@ -133240,7 +133335,7 @@ var ts;
|
||||
var _loop_8 = function (outputReferencedSymbol) {
|
||||
var mappedDefinitionFile = getMappedLocation(project, documentSpanLocation(outputReferencedSymbol.definition));
|
||||
var definition = mappedDefinitionFile === undefined ?
|
||||
outputReferencedSymbol.definition : __assign({}, outputReferencedSymbol.definition, { textSpan: ts.createTextSpan(mappedDefinitionFile.pos, outputReferencedSymbol.definition.textSpan.length), fileName: mappedDefinitionFile.fileName, contextSpan: getMappedContextSpan(outputReferencedSymbol.definition, project) });
|
||||
outputReferencedSymbol.definition : __assign(__assign({}, outputReferencedSymbol.definition), { textSpan: ts.createTextSpan(mappedDefinitionFile.pos, outputReferencedSymbol.definition.textSpan.length), fileName: mappedDefinitionFile.fileName, contextSpan: getMappedContextSpan(outputReferencedSymbol.definition, project) });
|
||||
var symbolToAddTo = ts.find(outputs, function (o) { return ts.documentSpansEqual(o.definition, definition); });
|
||||
if (!symbolToAddTo) {
|
||||
symbolToAddTo = { definition: definition, references: [] };
|
||||
@@ -134085,7 +134180,7 @@ var ts;
|
||||
Session.prototype.mapDefinitionInfoLocations = function (definitions, project) {
|
||||
return definitions.map(function (info) {
|
||||
var newDocumentSpan = getMappedDocumentSpan(info, project);
|
||||
return !newDocumentSpan ? info : __assign({}, newDocumentSpan, { containerKind: info.containerKind, containerName: info.containerName, kind: info.kind, name: info.name });
|
||||
return !newDocumentSpan ? info : __assign(__assign({}, newDocumentSpan), { containerKind: info.containerKind, containerName: info.containerName, kind: info.kind, name: info.name });
|
||||
});
|
||||
};
|
||||
Session.prototype.getDefinitionAndBoundSpan = function (args, simplifiedResult) {
|
||||
@@ -134130,7 +134225,7 @@ var ts;
|
||||
Session.mapToOriginalLocation = function (def) {
|
||||
if (def.originalFileName) {
|
||||
ts.Debug.assert(def.originalTextSpan !== undefined, "originalTextSpan should be present if originalFileName is");
|
||||
return __assign({}, def, { fileName: def.originalFileName, textSpan: def.originalTextSpan, targetFileName: def.fileName, targetTextSpan: def.textSpan, contextSpan: def.originalContextSpan, targetContextSpan: def.contextSpan });
|
||||
return __assign(__assign({}, def), { fileName: def.originalFileName, textSpan: def.originalTextSpan, targetFileName: def.fileName, targetTextSpan: def.textSpan, contextSpan: def.originalContextSpan, targetContextSpan: def.contextSpan });
|
||||
}
|
||||
return def;
|
||||
};
|
||||
@@ -134147,7 +134242,7 @@ var ts;
|
||||
Session.prototype.toFileSpanWithContext = function (fileName, textSpan, contextSpan, project) {
|
||||
var fileSpan = this.toFileSpan(fileName, textSpan, project);
|
||||
var context = contextSpan && this.toFileSpan(fileName, contextSpan, project);
|
||||
return context ? __assign({}, fileSpan, { contextStart: context.start, contextEnd: context.end }) :
|
||||
return context ? __assign(__assign({}, fileSpan), { contextStart: context.start, contextEnd: context.end }) :
|
||||
fileSpan;
|
||||
};
|
||||
Session.prototype.getTypeDefinition = function (args) {
|
||||
@@ -134159,7 +134254,7 @@ var ts;
|
||||
Session.prototype.mapImplementationLocations = function (implementations, project) {
|
||||
return implementations.map(function (info) {
|
||||
var newDocumentSpan = getMappedDocumentSpan(info, project);
|
||||
return !newDocumentSpan ? info : __assign({}, newDocumentSpan, { kind: info.kind, displayParts: info.displayParts });
|
||||
return !newDocumentSpan ? info : __assign(__assign({}, newDocumentSpan), { kind: info.kind, displayParts: info.displayParts });
|
||||
});
|
||||
};
|
||||
Session.prototype.getImplementation = function (args, simplifiedResult) {
|
||||
@@ -134182,7 +134277,7 @@ var ts;
|
||||
occurrences.map(function (occurrence) {
|
||||
var fileName = occurrence.fileName, isWriteAccess = occurrence.isWriteAccess, textSpan = occurrence.textSpan, isInString = occurrence.isInString, contextSpan = occurrence.contextSpan;
|
||||
var scriptInfo = project.getScriptInfo(fileName);
|
||||
return __assign({}, toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo), { file: fileName, isWriteAccess: isWriteAccess }, (isInString ? { isInString: isInString } : undefined));
|
||||
return __assign(__assign(__assign({}, toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo)), { file: fileName, isWriteAccess: isWriteAccess }), (isInString ? { isInString: isInString } : undefined));
|
||||
}) :
|
||||
server.emptyArray;
|
||||
};
|
||||
@@ -134231,7 +134326,7 @@ var ts;
|
||||
file: fileName,
|
||||
highlightSpans: highlightSpans.map(function (_a) {
|
||||
var textSpan = _a.textSpan, kind = _a.kind, contextSpan = _a.contextSpan;
|
||||
return (__assign({}, toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo), { kind: kind }));
|
||||
return (__assign(__assign({}, toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo)), { kind: kind }));
|
||||
})
|
||||
};
|
||||
});
|
||||
@@ -134326,7 +134421,7 @@ var ts;
|
||||
if (!group_1)
|
||||
map.set(fileName, group_1 = { file: fileName, locs: [] });
|
||||
var scriptInfo = ts.Debug.assertDefined(this.projectService.getScriptInfo(fileName));
|
||||
group_1.locs.push(__assign({}, toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo), prefixSuffixText));
|
||||
group_1.locs.push(__assign(__assign({}, toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo)), prefixSuffixText));
|
||||
}
|
||||
return ts.arrayFrom(map.values());
|
||||
};
|
||||
@@ -134352,7 +134447,7 @@ var ts;
|
||||
var span = toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo);
|
||||
var lineSpan = scriptInfo.lineToTextSpan(span.start.line - 1);
|
||||
var lineText = scriptInfo.getSnapshot().getText(lineSpan.start, ts.textSpanEnd(lineSpan)).replace(/\r|\n/g, "");
|
||||
return __assign({ file: fileName }, span, { lineText: lineText,
|
||||
return __assign(__assign({ file: fileName }, span), { lineText: lineText,
|
||||
isWriteAccess: isWriteAccess,
|
||||
isDefinition: isDefinition });
|
||||
});
|
||||
@@ -134554,7 +134649,7 @@ var ts;
|
||||
var _a = this.getFileAndProject(args), file = _a.file, project = _a.project;
|
||||
var scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);
|
||||
var position = this.getPosition(args, scriptInfo);
|
||||
var completions = project.getLanguageService().getCompletionsAtPosition(file, position, __assign({}, server.convertUserPreferences(this.getPreferences(file)), { triggerCharacter: args.triggerCharacter, includeExternalModuleExports: args.includeExternalModuleExports, includeInsertTextCompletions: args.includeInsertTextCompletions }));
|
||||
var completions = project.getLanguageService().getCompletionsAtPosition(file, position, __assign(__assign({}, server.convertUserPreferences(this.getPreferences(file))), { triggerCharacter: args.triggerCharacter, includeExternalModuleExports: args.includeExternalModuleExports, includeInsertTextCompletions: args.includeInsertTextCompletions }));
|
||||
if (completions === undefined)
|
||||
return undefined;
|
||||
if (kind === "completions-full" /* CompletionsFull */)
|
||||
@@ -134573,7 +134668,7 @@ var ts;
|
||||
entries.metadata = completions.metadata;
|
||||
return entries;
|
||||
}
|
||||
var res = __assign({}, completions, { entries: entries });
|
||||
var res = __assign(__assign({}, completions), { entries: entries });
|
||||
return res;
|
||||
};
|
||||
Session.prototype.getCompletionEntryDetails = function (args, simplifiedResult) {
|
||||
@@ -134587,7 +134682,7 @@ var ts;
|
||||
return project.getLanguageService().getCompletionEntryDetails(file, position, name, formattingOptions, source, _this.getPreferences(file));
|
||||
});
|
||||
return simplifiedResult
|
||||
? result.map(function (details) { return (__assign({}, details, { codeActions: ts.map(details.codeActions, function (action) { return _this.mapCodeAction(action); }) })); })
|
||||
? result.map(function (details) { return (__assign(__assign({}, details), { codeActions: ts.map(details.codeActions, function (action) { return _this.mapCodeAction(action); }) })); })
|
||||
: result;
|
||||
};
|
||||
Session.prototype.getCompileOnSaveAffectedFileList = function (args) {
|
||||
@@ -135149,7 +135244,7 @@ var ts;
|
||||
function toProtocolTextSpanWithContext(span, contextSpan, scriptInfo) {
|
||||
var textSpan = toProcolTextSpan(span, scriptInfo);
|
||||
var contextTextSpan = contextSpan && toProcolTextSpan(contextSpan, scriptInfo);
|
||||
return contextTextSpan ? __assign({}, textSpan, { contextStart: contextTextSpan.start, contextEnd: contextTextSpan.end }) :
|
||||
return contextTextSpan ? __assign(__assign({}, textSpan), { contextStart: contextTextSpan.start, contextEnd: contextTextSpan.end }) :
|
||||
textSpan;
|
||||
}
|
||||
function convertTextChangeToCodeEdit(change, scriptInfo) {
|
||||
|
||||
19
lib/typescript.d.ts
vendored
19
lib/typescript.d.ts
vendored
@@ -997,13 +997,16 @@ declare namespace ts {
|
||||
isUnterminated?: boolean;
|
||||
hasExtendedUnicodeEscape?: boolean;
|
||||
}
|
||||
export interface TemplateLiteralLikeNode extends LiteralLikeNode {
|
||||
rawText?: string;
|
||||
}
|
||||
export interface LiteralExpression extends LiteralLikeNode, PrimaryExpression {
|
||||
_literalExpressionBrand: any;
|
||||
}
|
||||
export interface RegularExpressionLiteral extends LiteralExpression {
|
||||
kind: SyntaxKind.RegularExpressionLiteral;
|
||||
}
|
||||
export interface NoSubstitutionTemplateLiteral extends LiteralExpression {
|
||||
export interface NoSubstitutionTemplateLiteral extends LiteralExpression, TemplateLiteralLikeNode {
|
||||
kind: SyntaxKind.NoSubstitutionTemplateLiteral;
|
||||
}
|
||||
export enum TokenFlags {
|
||||
@@ -1020,15 +1023,15 @@ declare namespace ts {
|
||||
export interface BigIntLiteral extends LiteralExpression {
|
||||
kind: SyntaxKind.BigIntLiteral;
|
||||
}
|
||||
export interface TemplateHead extends LiteralLikeNode {
|
||||
export interface TemplateHead extends TemplateLiteralLikeNode {
|
||||
kind: SyntaxKind.TemplateHead;
|
||||
parent: TemplateExpression;
|
||||
}
|
||||
export interface TemplateMiddle extends LiteralLikeNode {
|
||||
export interface TemplateMiddle extends TemplateLiteralLikeNode {
|
||||
kind: SyntaxKind.TemplateMiddle;
|
||||
parent: TemplateSpan;
|
||||
}
|
||||
export interface TemplateTail extends LiteralLikeNode {
|
||||
export interface TemplateTail extends TemplateLiteralLikeNode {
|
||||
kind: SyntaxKind.TemplateTail;
|
||||
parent: TemplateSpan;
|
||||
}
|
||||
@@ -3921,10 +3924,10 @@ declare namespace ts {
|
||||
function updateConditional(node: ConditionalExpression, condition: Expression, questionToken: Token<SyntaxKind.QuestionToken>, whenTrue: Expression, colonToken: Token<SyntaxKind.ColonToken>, whenFalse: Expression): ConditionalExpression;
|
||||
function createTemplateExpression(head: TemplateHead, templateSpans: ReadonlyArray<TemplateSpan>): TemplateExpression;
|
||||
function updateTemplateExpression(node: TemplateExpression, head: TemplateHead, templateSpans: ReadonlyArray<TemplateSpan>): TemplateExpression;
|
||||
function createTemplateHead(text: string): TemplateHead;
|
||||
function createTemplateMiddle(text: string): TemplateMiddle;
|
||||
function createTemplateTail(text: string): TemplateTail;
|
||||
function createNoSubstitutionTemplateLiteral(text: string): NoSubstitutionTemplateLiteral;
|
||||
function createTemplateHead(text: string, rawText?: string): TemplateHead;
|
||||
function createTemplateMiddle(text: string, rawText?: string): TemplateMiddle;
|
||||
function createTemplateTail(text: string, rawText?: string): TemplateTail;
|
||||
function createNoSubstitutionTemplateLiteral(text: string, rawText?: string): NoSubstitutionTemplateLiteral;
|
||||
function createYield(expression?: Expression): YieldExpression;
|
||||
function createYield(asteriskToken: AsteriskToken | undefined, expression: Expression): YieldExpression;
|
||||
function updateYield(node: YieldExpression, asteriskToken: AsteriskToken | undefined, expression: Expression): YieldExpression;
|
||||
|
||||
@@ -4468,7 +4468,7 @@ var ts;
|
||||
function getCustomPollingBasedLevels(baseVariable, defaultLevels) {
|
||||
var customLevels = getCustomLevels(baseVariable);
|
||||
return (pollingIntervalChanged || customLevels) &&
|
||||
createPollingIntervalBasedLevels(customLevels ? __assign({}, defaultLevels, customLevels) : defaultLevels);
|
||||
createPollingIntervalBasedLevels(customLevels ? __assign(__assign({}, defaultLevels), customLevels) : defaultLevels);
|
||||
}
|
||||
}
|
||||
ts.setCustomPollingValues = setCustomPollingValues;
|
||||
@@ -6819,7 +6819,7 @@ var ts;
|
||||
_a.of = 148 /* OfKeyword */,
|
||||
_a);
|
||||
var textToKeyword = ts.createMapFromTemplate(textToKeywordObj);
|
||||
var textToToken = ts.createMapFromTemplate(__assign({}, textToKeywordObj, { "{": 18 /* OpenBraceToken */, "}": 19 /* CloseBraceToken */, "(": 20 /* OpenParenToken */, ")": 21 /* CloseParenToken */, "[": 22 /* OpenBracketToken */, "]": 23 /* CloseBracketToken */, ".": 24 /* DotToken */, "...": 25 /* DotDotDotToken */, ";": 26 /* SemicolonToken */, ",": 27 /* CommaToken */, "<": 28 /* LessThanToken */, ">": 30 /* GreaterThanToken */, "<=": 31 /* LessThanEqualsToken */, ">=": 32 /* GreaterThanEqualsToken */, "==": 33 /* EqualsEqualsToken */, "!=": 34 /* ExclamationEqualsToken */, "===": 35 /* EqualsEqualsEqualsToken */, "!==": 36 /* ExclamationEqualsEqualsToken */, "=>": 37 /* EqualsGreaterThanToken */, "+": 38 /* PlusToken */, "-": 39 /* MinusToken */, "**": 41 /* AsteriskAsteriskToken */, "*": 40 /* AsteriskToken */, "/": 42 /* SlashToken */, "%": 43 /* PercentToken */, "++": 44 /* PlusPlusToken */, "--": 45 /* MinusMinusToken */, "<<": 46 /* LessThanLessThanToken */, "</": 29 /* LessThanSlashToken */, ">>": 47 /* GreaterThanGreaterThanToken */, ">>>": 48 /* GreaterThanGreaterThanGreaterThanToken */, "&": 49 /* AmpersandToken */, "|": 50 /* BarToken */, "^": 51 /* CaretToken */, "!": 52 /* ExclamationToken */, "~": 53 /* TildeToken */, "&&": 54 /* AmpersandAmpersandToken */, "||": 55 /* BarBarToken */, "?": 56 /* QuestionToken */, ":": 57 /* ColonToken */, "=": 60 /* EqualsToken */, "+=": 61 /* PlusEqualsToken */, "-=": 62 /* MinusEqualsToken */, "*=": 63 /* AsteriskEqualsToken */, "**=": 64 /* AsteriskAsteriskEqualsToken */, "/=": 65 /* SlashEqualsToken */, "%=": 66 /* PercentEqualsToken */, "<<=": 67 /* LessThanLessThanEqualsToken */, ">>=": 68 /* GreaterThanGreaterThanEqualsToken */, ">>>=": 69 /* GreaterThanGreaterThanGreaterThanEqualsToken */, "&=": 70 /* AmpersandEqualsToken */, "|=": 71 /* BarEqualsToken */, "^=": 72 /* CaretEqualsToken */, "@": 58 /* AtToken */, "`": 59 /* BacktickToken */ }));
|
||||
var textToToken = ts.createMapFromTemplate(__assign(__assign({}, textToKeywordObj), { "{": 18 /* OpenBraceToken */, "}": 19 /* CloseBraceToken */, "(": 20 /* OpenParenToken */, ")": 21 /* CloseParenToken */, "[": 22 /* OpenBracketToken */, "]": 23 /* CloseBracketToken */, ".": 24 /* DotToken */, "...": 25 /* DotDotDotToken */, ";": 26 /* SemicolonToken */, ",": 27 /* CommaToken */, "<": 28 /* LessThanToken */, ">": 30 /* GreaterThanToken */, "<=": 31 /* LessThanEqualsToken */, ">=": 32 /* GreaterThanEqualsToken */, "==": 33 /* EqualsEqualsToken */, "!=": 34 /* ExclamationEqualsToken */, "===": 35 /* EqualsEqualsEqualsToken */, "!==": 36 /* ExclamationEqualsEqualsToken */, "=>": 37 /* EqualsGreaterThanToken */, "+": 38 /* PlusToken */, "-": 39 /* MinusToken */, "**": 41 /* AsteriskAsteriskToken */, "*": 40 /* AsteriskToken */, "/": 42 /* SlashToken */, "%": 43 /* PercentToken */, "++": 44 /* PlusPlusToken */, "--": 45 /* MinusMinusToken */, "<<": 46 /* LessThanLessThanToken */, "</": 29 /* LessThanSlashToken */, ">>": 47 /* GreaterThanGreaterThanToken */, ">>>": 48 /* GreaterThanGreaterThanGreaterThanToken */, "&": 49 /* AmpersandToken */, "|": 50 /* BarToken */, "^": 51 /* CaretToken */, "!": 52 /* ExclamationToken */, "~": 53 /* TildeToken */, "&&": 54 /* AmpersandAmpersandToken */, "||": 55 /* BarBarToken */, "?": 56 /* QuestionToken */, ":": 57 /* ColonToken */, "=": 60 /* EqualsToken */, "+=": 61 /* PlusEqualsToken */, "-=": 62 /* MinusEqualsToken */, "*=": 63 /* AsteriskEqualsToken */, "**=": 64 /* AsteriskAsteriskEqualsToken */, "/=": 65 /* SlashEqualsToken */, "%=": 66 /* PercentEqualsToken */, "<<=": 67 /* LessThanLessThanEqualsToken */, ">>=": 68 /* GreaterThanGreaterThanEqualsToken */, ">>>=": 69 /* GreaterThanGreaterThanGreaterThanEqualsToken */, "&=": 70 /* AmpersandEqualsToken */, "|=": 71 /* BarEqualsToken */, "^=": 72 /* CaretEqualsToken */, "@": 58 /* AtToken */, "`": 59 /* BacktickToken */ }));
|
||||
/*
|
||||
As per ECMAScript Language Specification 3th Edition, Section 7.6: Identifiers
|
||||
IdentifierStart ::
|
||||
@@ -9268,8 +9268,6 @@ var ts;
|
||||
return emitNode && emitNode.flags || 0;
|
||||
}
|
||||
ts.getEmitFlags = getEmitFlags;
|
||||
var escapeNoSubstitutionTemplateLiteralText = ts.compose(escapeString, escapeTemplateSubstitution);
|
||||
var escapeNonAsciiNoSubstitutionTemplateLiteralText = ts.compose(escapeNonAsciiString, escapeTemplateSubstitution);
|
||||
function getLiteralText(node, sourceFile, neverAsciiEscape) {
|
||||
// If we don't need to downlevel and we can reach the original source text using
|
||||
// the node's parent reference, then simply get the text as it was originally written.
|
||||
@@ -9279,9 +9277,7 @@ var ts;
|
||||
}
|
||||
// If a NoSubstitutionTemplateLiteral appears to have a substitution in it, the original text
|
||||
// had to include a backslash: `not \${a} substitution`.
|
||||
var escapeText = neverAsciiEscape || (getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ?
|
||||
node.kind === 14 /* NoSubstitutionTemplateLiteral */ ? escapeNoSubstitutionTemplateLiteralText : escapeString :
|
||||
node.kind === 14 /* NoSubstitutionTemplateLiteral */ ? escapeNonAsciiNoSubstitutionTemplateLiteralText : escapeNonAsciiString;
|
||||
var escapeText = neverAsciiEscape || (getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ? escapeString : escapeNonAsciiString;
|
||||
// If we can't reach the original source text, use the canonical form if it's a number,
|
||||
// or a (possibly escaped) quoted form of the original text if it's string-like.
|
||||
switch (node.kind) {
|
||||
@@ -9293,15 +9289,23 @@ var ts;
|
||||
return '"' + escapeText(node.text, 34 /* doubleQuote */) + '"';
|
||||
}
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
return "`" + escapeText(node.text, 96 /* backtick */) + "`";
|
||||
case 15 /* TemplateHead */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "`" + escapeText(node.text, 96 /* backtick */) + "${";
|
||||
case 16 /* TemplateMiddle */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "}" + escapeText(node.text, 96 /* backtick */) + "${";
|
||||
case 17 /* TemplateTail */:
|
||||
return "}" + escapeText(node.text, 96 /* backtick */) + "`";
|
||||
var rawText = node.rawText || escapeTemplateSubstitution(escapeText(node.text, 96 /* backtick */));
|
||||
switch (node.kind) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
return "`" + rawText + "`";
|
||||
case 15 /* TemplateHead */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "`" + rawText + "${";
|
||||
case 16 /* TemplateMiddle */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "}" + rawText + "${";
|
||||
case 17 /* TemplateTail */:
|
||||
return "}" + rawText + "`";
|
||||
}
|
||||
break;
|
||||
case 8 /* NumericLiteral */:
|
||||
case 9 /* BigIntLiteral */:
|
||||
case 13 /* RegularExpressionLiteral */:
|
||||
@@ -11750,7 +11754,8 @@ var ts;
|
||||
// There is no reason for this other than that JSON.stringify does not handle it either.
|
||||
var doubleQuoteEscapedCharsRegExp = /[\\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
var singleQuoteEscapedCharsRegExp = /[\\\'\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
var backtickQuoteEscapedCharsRegExp = /[\\\`\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
// Template strings should be preserved as much as possible
|
||||
var backtickQuoteEscapedCharsRegExp = /[\\\`]/g;
|
||||
var escapedCharsMap = ts.createMapFromTemplate({
|
||||
"\t": "\\t",
|
||||
"\v": "\\v",
|
||||
@@ -11936,7 +11941,7 @@ var ts;
|
||||
pendingTrailingSemicolon = false;
|
||||
}
|
||||
}
|
||||
return __assign({}, writer, { writeTrailingSemicolon: function () {
|
||||
return __assign(__assign({}, writer), { writeTrailingSemicolon: function () {
|
||||
pendingTrailingSemicolon = true;
|
||||
},
|
||||
writeLiteral: function (s) {
|
||||
@@ -19020,6 +19025,16 @@ var ts;
|
||||
function parseLiteralLikeNode(kind) {
|
||||
var node = createNode(kind);
|
||||
node.text = scanner.getTokenValue();
|
||||
switch (kind) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
case 15 /* TemplateHead */:
|
||||
case 16 /* TemplateMiddle */:
|
||||
case 17 /* TemplateTail */:
|
||||
var isLast = kind === 14 /* NoSubstitutionTemplateLiteral */ || kind === 17 /* TemplateTail */;
|
||||
var tokenText = scanner.getTokenText();
|
||||
node.rawText = tokenText.substring(1, tokenText.length - (scanner.isUnterminated() ? 0 : isLast ? 1 : 2));
|
||||
break;
|
||||
}
|
||||
if (scanner.hasExtendedUnicodeEscape()) {
|
||||
node.hasExtendedUnicodeEscape = true;
|
||||
}
|
||||
@@ -25820,13 +25835,13 @@ var ts;
|
||||
var getCanonicalFileName = ts.createGetCanonicalFileName(host.useCaseSensitiveFileNames);
|
||||
var files = ts.map(ts.filter(configParseResult.fileNames, (!configParseResult.configFileSpecs || !configParseResult.configFileSpecs.validatedIncludeSpecs) ? function (_) { return true; } : matchesSpecs(configFileName, configParseResult.configFileSpecs.validatedIncludeSpecs, configParseResult.configFileSpecs.validatedExcludeSpecs)), function (f) { return ts.getRelativePathFromFile(ts.getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), ts.getNormalizedAbsolutePath(f, host.getCurrentDirectory()), getCanonicalFileName); });
|
||||
var optionMap = serializeCompilerOptions(configParseResult.options, { configFilePath: ts.getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), useCaseSensitiveFileNames: host.useCaseSensitiveFileNames });
|
||||
var config = __assign({ compilerOptions: __assign({}, ts.arrayFrom(optionMap.entries()).reduce(function (prev, cur) {
|
||||
var config = __assign(__assign({ compilerOptions: __assign(__assign({}, ts.arrayFrom(optionMap.entries()).reduce(function (prev, cur) {
|
||||
var _a;
|
||||
return (__assign({}, prev, (_a = {}, _a[cur[0]] = cur[1], _a)));
|
||||
}, {}), { showConfig: undefined, configFile: undefined, configFilePath: undefined, help: undefined, init: undefined, listFiles: undefined, listEmittedFiles: undefined, project: undefined, build: undefined, version: undefined }), references: ts.map(configParseResult.projectReferences, function (r) { return (__assign({}, r, { path: r.originalPath ? r.originalPath : "", originalPath: undefined })); }), files: ts.length(files) ? files : undefined }, (configParseResult.configFileSpecs ? {
|
||||
return (__assign(__assign({}, prev), (_a = {}, _a[cur[0]] = cur[1], _a)));
|
||||
}, {})), { showConfig: undefined, configFile: undefined, configFilePath: undefined, help: undefined, init: undefined, listFiles: undefined, listEmittedFiles: undefined, project: undefined, build: undefined, version: undefined }), references: ts.map(configParseResult.projectReferences, function (r) { return (__assign(__assign({}, r), { path: r.originalPath ? r.originalPath : "", originalPath: undefined })); }), files: ts.length(files) ? files : undefined }, (configParseResult.configFileSpecs ? {
|
||||
include: filterSameAsDefaultInclude(configParseResult.configFileSpecs.validatedIncludeSpecs),
|
||||
exclude: configParseResult.configFileSpecs.validatedExcludeSpecs
|
||||
} : {}), { compileOnSave: !!configParseResult.compileOnSave ? true : undefined });
|
||||
} : {})), { compileOnSave: !!configParseResult.compileOnSave ? true : undefined });
|
||||
return config;
|
||||
}
|
||||
ts.convertToTSConfig = convertToTSConfig;
|
||||
@@ -27610,7 +27625,7 @@ var ts;
|
||||
if (!compilerOptions.preserveSymlinks && resolvedValue && !resolvedValue.originalPath) {
|
||||
var path = realPath(resolvedValue.path, host, traceEnabled);
|
||||
var originalPath = path === resolvedValue.path ? undefined : resolvedValue.path;
|
||||
resolvedValue = __assign({}, resolvedValue, { path: path, originalPath: originalPath });
|
||||
resolvedValue = __assign(__assign({}, resolvedValue), { path: path, originalPath: originalPath });
|
||||
}
|
||||
// For node_modules lookups, get the real path so that multiple accesses to an `npm link`-ed module do not create duplicate files.
|
||||
return { value: resolvedValue && { resolved: resolvedValue, isExternalLibraryImport: true } };
|
||||
@@ -29941,7 +29956,7 @@ var ts;
|
||||
file.bindDiagnostics.push(diag);
|
||||
}
|
||||
else {
|
||||
file.bindSuggestionDiagnostics = ts.append(file.bindSuggestionDiagnostics, __assign({}, diag, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
file.bindSuggestionDiagnostics = ts.append(file.bindSuggestionDiagnostics, __assign(__assign({}, diag), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
}
|
||||
function bind(node) {
|
||||
@@ -32375,7 +32390,7 @@ var ts;
|
||||
function addUnusedDiagnostics() {
|
||||
checkUnusedIdentifiers(getPotentiallyUnusedIdentifiers(file), function (containingNode, kind, diag) {
|
||||
if (!ts.containsParseError(containingNode) && !unusedIsError(kind)) {
|
||||
(diagnostics || (diagnostics = [])).push(__assign({}, diag, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
(diagnostics || (diagnostics = [])).push(__assign(__assign({}, diag), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -32671,7 +32686,7 @@ var ts;
|
||||
diagnostics.add(diagnostic);
|
||||
}
|
||||
else {
|
||||
suggestionDiagnostics.add(__assign({}, diagnostic, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
suggestionDiagnostics.add(__assign(__assign({}, diagnostic), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
}
|
||||
function errorOrSuggestion(isError, location, message, arg0, arg1, arg2, arg3) {
|
||||
@@ -35939,7 +35954,7 @@ var ts;
|
||||
// using the `baseUrl` compiler option (which we would otherwise never use in declaration emit) and a non-relative
|
||||
// specifier preference
|
||||
var moduleResolverHost = context.tracker.moduleResolverHost;
|
||||
var specifierCompilerOptions = isBundle_1 ? __assign({}, compilerOptions, { baseUrl: moduleResolverHost.getCommonSourceDirectory() }) : compilerOptions;
|
||||
var specifierCompilerOptions = isBundle_1 ? __assign(__assign({}, compilerOptions), { baseUrl: moduleResolverHost.getCommonSourceDirectory() }) : compilerOptions;
|
||||
specifier = ts.first(ts.moduleSpecifiers.getModuleSpecifiers(symbol, specifierCompilerOptions, contextFile, moduleResolverHost, host.getSourceFiles(), { importModuleSpecifierPreference: isBundle_1 ? "non-relative" : "relative" }, host.redirectTargetsMap));
|
||||
links.specifierCache = links.specifierCache || ts.createMap();
|
||||
links.specifierCache.set(contextFile.path, specifier);
|
||||
@@ -43004,7 +43019,7 @@ var ts;
|
||||
var childrenPropName = childPropName === undefined ? "children" : ts.unescapeLeadingUnderscores(childPropName);
|
||||
var childrenTargetType = getIndexedAccessType(target, getLiteralType(childrenPropName));
|
||||
var diagnostic = ts.Diagnostics._0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2;
|
||||
invalidTextDiagnostic = __assign({}, diagnostic, { key: "!!ALREADY FORMATTED!!", message: ts.formatMessage(/*_dummy*/ undefined, diagnostic, tagNameText, childrenPropName, typeToString(childrenTargetType)) });
|
||||
invalidTextDiagnostic = __assign(__assign({}, diagnostic), { key: "!!ALREADY FORMATTED!!", message: ts.formatMessage(/*_dummy*/ undefined, diagnostic, tagNameText, childrenPropName, typeToString(childrenTargetType)) });
|
||||
}
|
||||
return invalidTextDiagnostic;
|
||||
}
|
||||
@@ -55105,7 +55120,18 @@ var ts;
|
||||
return checkExpression(node.expression, checkMode);
|
||||
}
|
||||
function checkExpressionWorker(node, checkMode, forceTuple) {
|
||||
switch (node.kind) {
|
||||
var kind = node.kind;
|
||||
if (cancellationToken) {
|
||||
// Only bother checking on a few construct kinds. We don't want to be excessively
|
||||
// hitting the cancellation token on every node we check.
|
||||
switch (kind) {
|
||||
case 210 /* ClassExpression */:
|
||||
case 197 /* FunctionExpression */:
|
||||
case 198 /* ArrowFunction */:
|
||||
cancellationToken.throwIfCancellationRequested();
|
||||
}
|
||||
}
|
||||
switch (kind) {
|
||||
case 73 /* Identifier */:
|
||||
return checkIdentifier(node);
|
||||
case 101 /* ThisKeyword */:
|
||||
@@ -63915,27 +63941,88 @@ var ts;
|
||||
: node;
|
||||
}
|
||||
ts.updateTemplateExpression = updateTemplateExpression;
|
||||
function createTemplateHead(text) {
|
||||
var node = createSynthesizedNode(15 /* TemplateHead */);
|
||||
var rawTextScanner;
|
||||
var invalidValueSentinel = {};
|
||||
function getCookedText(kind, rawText) {
|
||||
if (!rawTextScanner) {
|
||||
rawTextScanner = ts.createScanner(99 /* Latest */, /*skipTrivia*/ false, 0 /* Standard */);
|
||||
}
|
||||
switch (kind) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
rawTextScanner.setText("`" + rawText + "`");
|
||||
break;
|
||||
case 15 /* TemplateHead */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
rawTextScanner.setText("`" + rawText + "${");
|
||||
break;
|
||||
case 16 /* TemplateMiddle */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
rawTextScanner.setText("}" + rawText + "${");
|
||||
break;
|
||||
case 17 /* TemplateTail */:
|
||||
rawTextScanner.setText("}" + rawText + "`");
|
||||
break;
|
||||
}
|
||||
var token = rawTextScanner.scan();
|
||||
if (token === 23 /* CloseBracketToken */) {
|
||||
token = rawTextScanner.reScanTemplateToken();
|
||||
}
|
||||
if (rawTextScanner.isUnterminated()) {
|
||||
rawTextScanner.setText(undefined);
|
||||
return invalidValueSentinel;
|
||||
}
|
||||
var tokenValue;
|
||||
switch (token) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
case 15 /* TemplateHead */:
|
||||
case 16 /* TemplateMiddle */:
|
||||
case 17 /* TemplateTail */:
|
||||
tokenValue = rawTextScanner.getTokenValue();
|
||||
break;
|
||||
}
|
||||
if (rawTextScanner.scan() !== 1 /* EndOfFileToken */) {
|
||||
rawTextScanner.setText(undefined);
|
||||
return invalidValueSentinel;
|
||||
}
|
||||
rawTextScanner.setText(undefined);
|
||||
return tokenValue;
|
||||
}
|
||||
function createTemplateLiteralLikeNode(kind, text, rawText) {
|
||||
var node = createSynthesizedNode(kind);
|
||||
node.text = text;
|
||||
if (rawText === undefined || text === rawText) {
|
||||
node.rawText = rawText;
|
||||
}
|
||||
else {
|
||||
var cooked = getCookedText(kind, rawText);
|
||||
if (typeof cooked === "object") {
|
||||
return ts.Debug.fail("Invalid raw text");
|
||||
}
|
||||
ts.Debug.assert(text === cooked, "Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.");
|
||||
node.rawText = rawText;
|
||||
}
|
||||
return node;
|
||||
}
|
||||
function createTemplateHead(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(15 /* TemplateHead */, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateHead = createTemplateHead;
|
||||
function createTemplateMiddle(text) {
|
||||
var node = createSynthesizedNode(16 /* TemplateMiddle */);
|
||||
function createTemplateMiddle(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(16 /* TemplateMiddle */, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateMiddle = createTemplateMiddle;
|
||||
function createTemplateTail(text) {
|
||||
var node = createSynthesizedNode(17 /* TemplateTail */);
|
||||
function createTemplateTail(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(17 /* TemplateTail */, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateTail = createTemplateTail;
|
||||
function createNoSubstitutionTemplateLiteral(text) {
|
||||
var node = createSynthesizedNode(14 /* NoSubstitutionTemplateLiteral */);
|
||||
node.text = text;
|
||||
function createNoSubstitutionTemplateLiteral(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(14 /* NoSubstitutionTemplateLiteral */, text, rawText);
|
||||
return node;
|
||||
}
|
||||
ts.createNoSubstitutionTemplateLiteral = createNoSubstitutionTemplateLiteral;
|
||||
@@ -77739,13 +77826,16 @@ var ts;
|
||||
// Find original source text, since we need to emit the raw strings of the tagged template.
|
||||
// The raw strings contain the (escaped) strings of what the user wrote.
|
||||
// Examples: `\n` is converted to "\\n", a template string with a newline to "\n".
|
||||
var text = ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node);
|
||||
// text contains the original source, it will also contain quotes ("`"), dolar signs and braces ("${" and "}"),
|
||||
// thus we need to remove those characters.
|
||||
// First template piece starts with "`", others with "}"
|
||||
// Last template piece ends with "`", others with "${"
|
||||
var isLast = node.kind === 14 /* NoSubstitutionTemplateLiteral */ || node.kind === 17 /* TemplateTail */;
|
||||
text = text.substring(1, text.length - (isLast ? 1 : 2));
|
||||
var text = node.rawText;
|
||||
if (text === undefined) {
|
||||
text = ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node);
|
||||
// text contains the original source, it will also contain quotes ("`"), dolar signs and braces ("${" and "}"),
|
||||
// thus we need to remove those characters.
|
||||
// First template piece starts with "`", others with "}"
|
||||
// Last template piece ends with "`", others with "${"
|
||||
var isLast = node.kind === 14 /* NoSubstitutionTemplateLiteral */ || node.kind === 17 /* TemplateTail */;
|
||||
text = text.substring(1, text.length - (isLast ? 1 : 2));
|
||||
}
|
||||
// Newline normalization:
|
||||
// ES6 Spec 11.8.6.1 - Static Semantics of TV's and TRV's
|
||||
// <CR><LF> and <CR> LineTerminatorSequences are normalized to <LF> for both TV and TRV.
|
||||
@@ -91928,7 +92018,7 @@ var ts;
|
||||
return oldProgram.structureIsReused = 2 /* Completely */;
|
||||
}
|
||||
function getEmitHost(writeFileCallback) {
|
||||
return __assign({ getPrependNodes: getPrependNodes,
|
||||
return __assign(__assign({ getPrependNodes: getPrependNodes,
|
||||
getCanonicalFileName: getCanonicalFileName, getCommonSourceDirectory: program.getCommonSourceDirectory, getCompilerOptions: program.getCompilerOptions, getCurrentDirectory: function () { return currentDirectory; }, getNewLine: function () { return host.getNewLine(); }, getSourceFile: program.getSourceFile, getSourceFileByPath: program.getSourceFileByPath, getSourceFiles: program.getSourceFiles, getLibFileFromReference: program.getLibFileFromReference, isSourceFileFromExternalLibrary: isSourceFileFromExternalLibrary,
|
||||
getResolvedProjectReferenceToRedirect: getResolvedProjectReferenceToRedirect, writeFile: writeFileCallback || (function (fileName, data, writeByteOrderMark, onError, sourceFiles) { return host.writeFile(fileName, data, writeByteOrderMark, onError, sourceFiles); }), isEmitBlocked: isEmitBlocked, readFile: function (f) { return host.readFile(f); }, fileExists: function (f) {
|
||||
// Use local caches
|
||||
@@ -91939,7 +92029,7 @@ var ts;
|
||||
return false;
|
||||
// Before falling back to the host
|
||||
return host.fileExists(f);
|
||||
} }, (host.directoryExists ? { directoryExists: function (f) { return host.directoryExists(f); } } : {}), { useCaseSensitiveFileNames: function () { return host.useCaseSensitiveFileNames(); }, getProgramBuildInfo: function () { return program.getProgramBuildInfo && program.getProgramBuildInfo(); }, getSourceFileFromReference: function (file, ref) { return program.getSourceFileFromReference(file, ref); } });
|
||||
} }, (host.directoryExists ? { directoryExists: function (f) { return host.directoryExists(f); } } : {})), { useCaseSensitiveFileNames: function () { return host.useCaseSensitiveFileNames(); }, getProgramBuildInfo: function () { return program.getProgramBuildInfo && program.getProgramBuildInfo(); }, getSourceFileFromReference: function (file, ref) { return program.getSourceFileFromReference(file, ref); } });
|
||||
}
|
||||
function emitBuildInfo(writeFileCallback) {
|
||||
ts.Debug.assert(!options.out && !options.outFile);
|
||||
@@ -94091,7 +94181,7 @@ var ts;
|
||||
}
|
||||
function convertToDiagnosticRelatedInformation(diagnostic, newProgram, toPath) {
|
||||
var file = diagnostic.file;
|
||||
return __assign({}, diagnostic, { file: file ? newProgram.getSourceFileByPath(toPath(file)) : undefined });
|
||||
return __assign(__assign({}, diagnostic), { file: file ? newProgram.getSourceFileByPath(toPath(file)) : undefined });
|
||||
}
|
||||
/**
|
||||
* Releases program and other related not needed properties
|
||||
@@ -94486,7 +94576,7 @@ var ts;
|
||||
}
|
||||
function convertToReusableDiagnosticRelatedInformation(diagnostic, relativeToBuildInfo) {
|
||||
var file = diagnostic.file;
|
||||
return __assign({}, diagnostic, { file: file ? relativeToBuildInfo(file.path) : undefined });
|
||||
return __assign(__assign({}, diagnostic), { file: file ? relativeToBuildInfo(file.path) : undefined });
|
||||
}
|
||||
var BuilderProgramKind;
|
||||
(function (BuilderProgramKind) {
|
||||
@@ -103639,7 +103729,7 @@ var ts;
|
||||
// If you're in an interface you don't want to repeat things from super-interface. So just stop here.
|
||||
if (!ts.isClassLike(decl))
|
||||
return 1 /* Success */;
|
||||
var classElement = contextToken.parent;
|
||||
var classElement = contextToken.kind === 26 /* SemicolonToken */ ? contextToken.parent.parent : contextToken.parent;
|
||||
var classElementModifierFlags = ts.isClassElement(classElement) ? ts.getModifierFlags(classElement) : 0 /* None */;
|
||||
// If this is context token is not something we are editing now, consider if this would lead to be modifier
|
||||
if (contextToken.kind === 73 /* Identifier */ && !isCurrentlyEditingNode(contextToken)) {
|
||||
@@ -105652,16 +105742,16 @@ var ts;
|
||||
return { displayParts: displayParts, kind: symbolKind };
|
||||
}
|
||||
function toRenameLocation(entry, originalNode, checker, providePrefixAndSuffixText) {
|
||||
return __assign({}, entryToDocumentSpan(entry), (providePrefixAndSuffixText && getPrefixAndSuffixText(entry, originalNode, checker)));
|
||||
return __assign(__assign({}, entryToDocumentSpan(entry)), (providePrefixAndSuffixText && getPrefixAndSuffixText(entry, originalNode, checker)));
|
||||
}
|
||||
FindAllReferences.toRenameLocation = toRenameLocation;
|
||||
function toReferenceEntry(entry) {
|
||||
var documentSpan = entryToDocumentSpan(entry);
|
||||
if (entry.kind === 0 /* Span */) {
|
||||
return __assign({}, documentSpan, { isWriteAccess: false, isDefinition: false });
|
||||
return __assign(__assign({}, documentSpan), { isWriteAccess: false, isDefinition: false });
|
||||
}
|
||||
var kind = entry.kind, node = entry.node;
|
||||
return __assign({}, documentSpan, { isWriteAccess: isWriteAccessForReference(node), isDefinition: node.kind === 81 /* DefaultKeyword */
|
||||
return __assign(__assign({}, documentSpan), { isWriteAccess: isWriteAccessForReference(node), isDefinition: node.kind === 81 /* DefaultKeyword */
|
||||
|| !!ts.getDeclarationFromName(node)
|
||||
|| ts.isLiteralComputedPropertyDeclarationName(node), isInString: kind === 2 /* StringLiteral */ ? true : undefined });
|
||||
}
|
||||
@@ -105705,10 +105795,10 @@ var ts;
|
||||
var documentSpan = entryToDocumentSpan(entry);
|
||||
if (entry.kind !== 0 /* Span */) {
|
||||
var node = entry.node;
|
||||
return __assign({}, documentSpan, implementationKindDisplayParts(node, checker));
|
||||
return __assign(__assign({}, documentSpan), implementationKindDisplayParts(node, checker));
|
||||
}
|
||||
else {
|
||||
return __assign({}, documentSpan, { kind: "" /* unknown */, displayParts: [] });
|
||||
return __assign(__assign({}, documentSpan), { kind: "" /* unknown */, displayParts: [] });
|
||||
}
|
||||
}
|
||||
function implementationKindDisplayParts(node, checker) {
|
||||
@@ -115252,7 +115342,7 @@ var ts;
|
||||
};
|
||||
ChangeTracker.prototype.getInsertNodeAfterOptions = function (sourceFile, after) {
|
||||
var options = this.getInsertNodeAfterOptionsWorker(after);
|
||||
return __assign({}, options, { prefix: after.end === sourceFile.end && ts.isStatement(after) ? (options.prefix ? "\n" + options.prefix : "\n") : options.prefix });
|
||||
return __assign(__assign({}, options), { prefix: after.end === sourceFile.end && ts.isStatement(after) ? (options.prefix ? "\n" + options.prefix : "\n") : options.prefix });
|
||||
};
|
||||
ChangeTracker.prototype.getInsertNodeAfterOptionsWorker = function (node) {
|
||||
switch (node.kind) {
|
||||
@@ -118944,7 +119034,7 @@ var ts;
|
||||
var info = errorCode === ts.Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code
|
||||
? getFixesInfoForUMDImport(context, symbolToken)
|
||||
: ts.isIdentifier(symbolToken) ? getFixesInfoForNonUMDImport(context, symbolToken) : undefined;
|
||||
return info && __assign({}, info, { fixes: ts.sort(info.fixes, function (a, b) { return a.kind - b.kind; }) });
|
||||
return info && __assign(__assign({}, info), { fixes: ts.sort(info.fixes, function (a, b) { return a.kind - b.kind; }) });
|
||||
}
|
||||
function getFixesInfoForUMDImport(_a, token) {
|
||||
var sourceFile = _a.sourceFile, program = _a.program, host = _a.host, preferences = _a.preferences;
|
||||
@@ -125728,7 +125818,7 @@ var ts;
|
||||
function getCompletionsAtPosition(fileName, position, options) {
|
||||
if (options === void 0) { options = ts.emptyOptions; }
|
||||
// Convert from deprecated options names to new names
|
||||
var fullPreferences = __assign({}, ts.identity(options), { includeCompletionsForModuleExports: options.includeCompletionsForModuleExports || options.includeExternalModuleExports, includeCompletionsWithInsertText: options.includeCompletionsWithInsertText || options.includeInsertTextCompletions });
|
||||
var fullPreferences = __assign(__assign({}, ts.identity(options)), { includeCompletionsForModuleExports: options.includeCompletionsForModuleExports || options.includeExternalModuleExports, includeCompletionsWithInsertText: options.includeCompletionsWithInsertText || options.includeInsertTextCompletions });
|
||||
synchronizeHostData();
|
||||
return ts.Completions.getCompletionsAtPosition(host, program, log, getValidSourceFile(fileName), position, fullPreferences, options.triggerCharacter);
|
||||
}
|
||||
@@ -125818,7 +125908,7 @@ var ts;
|
||||
}
|
||||
/// References and Occurrences
|
||||
function getOccurrencesAtPosition(fileName, position) {
|
||||
return ts.flatMap(getDocumentHighlights(fileName, position, [fileName]), function (entry) { return entry.highlightSpans.map(function (highlightSpan) { return (__assign({ fileName: entry.fileName, textSpan: highlightSpan.textSpan, isWriteAccess: highlightSpan.kind === "writtenReference" /* writtenReference */, isDefinition: false }, highlightSpan.isInString && { isInString: true }, highlightSpan.contextSpan && { contextSpan: highlightSpan.contextSpan })); }); });
|
||||
return ts.flatMap(getDocumentHighlights(fileName, position, [fileName]), function (entry) { return entry.highlightSpans.map(function (highlightSpan) { return (__assign(__assign({ fileName: entry.fileName, textSpan: highlightSpan.textSpan, isWriteAccess: highlightSpan.kind === "writtenReference" /* writtenReference */, isDefinition: false }, highlightSpan.isInString && { isInString: true }), highlightSpan.contextSpan && { contextSpan: highlightSpan.contextSpan })); }); });
|
||||
}
|
||||
function getDocumentHighlights(fileName, position, filesToSearch) {
|
||||
var normalizedFileName = ts.normalizePath(fileName);
|
||||
|
||||
19
lib/typescriptServices.d.ts
vendored
19
lib/typescriptServices.d.ts
vendored
@@ -997,13 +997,16 @@ declare namespace ts {
|
||||
isUnterminated?: boolean;
|
||||
hasExtendedUnicodeEscape?: boolean;
|
||||
}
|
||||
export interface TemplateLiteralLikeNode extends LiteralLikeNode {
|
||||
rawText?: string;
|
||||
}
|
||||
export interface LiteralExpression extends LiteralLikeNode, PrimaryExpression {
|
||||
_literalExpressionBrand: any;
|
||||
}
|
||||
export interface RegularExpressionLiteral extends LiteralExpression {
|
||||
kind: SyntaxKind.RegularExpressionLiteral;
|
||||
}
|
||||
export interface NoSubstitutionTemplateLiteral extends LiteralExpression {
|
||||
export interface NoSubstitutionTemplateLiteral extends LiteralExpression, TemplateLiteralLikeNode {
|
||||
kind: SyntaxKind.NoSubstitutionTemplateLiteral;
|
||||
}
|
||||
export enum TokenFlags {
|
||||
@@ -1020,15 +1023,15 @@ declare namespace ts {
|
||||
export interface BigIntLiteral extends LiteralExpression {
|
||||
kind: SyntaxKind.BigIntLiteral;
|
||||
}
|
||||
export interface TemplateHead extends LiteralLikeNode {
|
||||
export interface TemplateHead extends TemplateLiteralLikeNode {
|
||||
kind: SyntaxKind.TemplateHead;
|
||||
parent: TemplateExpression;
|
||||
}
|
||||
export interface TemplateMiddle extends LiteralLikeNode {
|
||||
export interface TemplateMiddle extends TemplateLiteralLikeNode {
|
||||
kind: SyntaxKind.TemplateMiddle;
|
||||
parent: TemplateSpan;
|
||||
}
|
||||
export interface TemplateTail extends LiteralLikeNode {
|
||||
export interface TemplateTail extends TemplateLiteralLikeNode {
|
||||
kind: SyntaxKind.TemplateTail;
|
||||
parent: TemplateSpan;
|
||||
}
|
||||
@@ -3921,10 +3924,10 @@ declare namespace ts {
|
||||
function updateConditional(node: ConditionalExpression, condition: Expression, questionToken: Token<SyntaxKind.QuestionToken>, whenTrue: Expression, colonToken: Token<SyntaxKind.ColonToken>, whenFalse: Expression): ConditionalExpression;
|
||||
function createTemplateExpression(head: TemplateHead, templateSpans: ReadonlyArray<TemplateSpan>): TemplateExpression;
|
||||
function updateTemplateExpression(node: TemplateExpression, head: TemplateHead, templateSpans: ReadonlyArray<TemplateSpan>): TemplateExpression;
|
||||
function createTemplateHead(text: string): TemplateHead;
|
||||
function createTemplateMiddle(text: string): TemplateMiddle;
|
||||
function createTemplateTail(text: string): TemplateTail;
|
||||
function createNoSubstitutionTemplateLiteral(text: string): NoSubstitutionTemplateLiteral;
|
||||
function createTemplateHead(text: string, rawText?: string): TemplateHead;
|
||||
function createTemplateMiddle(text: string, rawText?: string): TemplateMiddle;
|
||||
function createTemplateTail(text: string, rawText?: string): TemplateTail;
|
||||
function createNoSubstitutionTemplateLiteral(text: string, rawText?: string): NoSubstitutionTemplateLiteral;
|
||||
function createYield(expression?: Expression): YieldExpression;
|
||||
function createYield(asteriskToken: AsteriskToken | undefined, expression: Expression): YieldExpression;
|
||||
function updateYield(node: YieldExpression, asteriskToken: AsteriskToken | undefined, expression: Expression): YieldExpression;
|
||||
|
||||
@@ -4468,7 +4468,7 @@ var ts;
|
||||
function getCustomPollingBasedLevels(baseVariable, defaultLevels) {
|
||||
var customLevels = getCustomLevels(baseVariable);
|
||||
return (pollingIntervalChanged || customLevels) &&
|
||||
createPollingIntervalBasedLevels(customLevels ? __assign({}, defaultLevels, customLevels) : defaultLevels);
|
||||
createPollingIntervalBasedLevels(customLevels ? __assign(__assign({}, defaultLevels), customLevels) : defaultLevels);
|
||||
}
|
||||
}
|
||||
ts.setCustomPollingValues = setCustomPollingValues;
|
||||
@@ -6819,7 +6819,7 @@ var ts;
|
||||
_a.of = 148 /* OfKeyword */,
|
||||
_a);
|
||||
var textToKeyword = ts.createMapFromTemplate(textToKeywordObj);
|
||||
var textToToken = ts.createMapFromTemplate(__assign({}, textToKeywordObj, { "{": 18 /* OpenBraceToken */, "}": 19 /* CloseBraceToken */, "(": 20 /* OpenParenToken */, ")": 21 /* CloseParenToken */, "[": 22 /* OpenBracketToken */, "]": 23 /* CloseBracketToken */, ".": 24 /* DotToken */, "...": 25 /* DotDotDotToken */, ";": 26 /* SemicolonToken */, ",": 27 /* CommaToken */, "<": 28 /* LessThanToken */, ">": 30 /* GreaterThanToken */, "<=": 31 /* LessThanEqualsToken */, ">=": 32 /* GreaterThanEqualsToken */, "==": 33 /* EqualsEqualsToken */, "!=": 34 /* ExclamationEqualsToken */, "===": 35 /* EqualsEqualsEqualsToken */, "!==": 36 /* ExclamationEqualsEqualsToken */, "=>": 37 /* EqualsGreaterThanToken */, "+": 38 /* PlusToken */, "-": 39 /* MinusToken */, "**": 41 /* AsteriskAsteriskToken */, "*": 40 /* AsteriskToken */, "/": 42 /* SlashToken */, "%": 43 /* PercentToken */, "++": 44 /* PlusPlusToken */, "--": 45 /* MinusMinusToken */, "<<": 46 /* LessThanLessThanToken */, "</": 29 /* LessThanSlashToken */, ">>": 47 /* GreaterThanGreaterThanToken */, ">>>": 48 /* GreaterThanGreaterThanGreaterThanToken */, "&": 49 /* AmpersandToken */, "|": 50 /* BarToken */, "^": 51 /* CaretToken */, "!": 52 /* ExclamationToken */, "~": 53 /* TildeToken */, "&&": 54 /* AmpersandAmpersandToken */, "||": 55 /* BarBarToken */, "?": 56 /* QuestionToken */, ":": 57 /* ColonToken */, "=": 60 /* EqualsToken */, "+=": 61 /* PlusEqualsToken */, "-=": 62 /* MinusEqualsToken */, "*=": 63 /* AsteriskEqualsToken */, "**=": 64 /* AsteriskAsteriskEqualsToken */, "/=": 65 /* SlashEqualsToken */, "%=": 66 /* PercentEqualsToken */, "<<=": 67 /* LessThanLessThanEqualsToken */, ">>=": 68 /* GreaterThanGreaterThanEqualsToken */, ">>>=": 69 /* GreaterThanGreaterThanGreaterThanEqualsToken */, "&=": 70 /* AmpersandEqualsToken */, "|=": 71 /* BarEqualsToken */, "^=": 72 /* CaretEqualsToken */, "@": 58 /* AtToken */, "`": 59 /* BacktickToken */ }));
|
||||
var textToToken = ts.createMapFromTemplate(__assign(__assign({}, textToKeywordObj), { "{": 18 /* OpenBraceToken */, "}": 19 /* CloseBraceToken */, "(": 20 /* OpenParenToken */, ")": 21 /* CloseParenToken */, "[": 22 /* OpenBracketToken */, "]": 23 /* CloseBracketToken */, ".": 24 /* DotToken */, "...": 25 /* DotDotDotToken */, ";": 26 /* SemicolonToken */, ",": 27 /* CommaToken */, "<": 28 /* LessThanToken */, ">": 30 /* GreaterThanToken */, "<=": 31 /* LessThanEqualsToken */, ">=": 32 /* GreaterThanEqualsToken */, "==": 33 /* EqualsEqualsToken */, "!=": 34 /* ExclamationEqualsToken */, "===": 35 /* EqualsEqualsEqualsToken */, "!==": 36 /* ExclamationEqualsEqualsToken */, "=>": 37 /* EqualsGreaterThanToken */, "+": 38 /* PlusToken */, "-": 39 /* MinusToken */, "**": 41 /* AsteriskAsteriskToken */, "*": 40 /* AsteriskToken */, "/": 42 /* SlashToken */, "%": 43 /* PercentToken */, "++": 44 /* PlusPlusToken */, "--": 45 /* MinusMinusToken */, "<<": 46 /* LessThanLessThanToken */, "</": 29 /* LessThanSlashToken */, ">>": 47 /* GreaterThanGreaterThanToken */, ">>>": 48 /* GreaterThanGreaterThanGreaterThanToken */, "&": 49 /* AmpersandToken */, "|": 50 /* BarToken */, "^": 51 /* CaretToken */, "!": 52 /* ExclamationToken */, "~": 53 /* TildeToken */, "&&": 54 /* AmpersandAmpersandToken */, "||": 55 /* BarBarToken */, "?": 56 /* QuestionToken */, ":": 57 /* ColonToken */, "=": 60 /* EqualsToken */, "+=": 61 /* PlusEqualsToken */, "-=": 62 /* MinusEqualsToken */, "*=": 63 /* AsteriskEqualsToken */, "**=": 64 /* AsteriskAsteriskEqualsToken */, "/=": 65 /* SlashEqualsToken */, "%=": 66 /* PercentEqualsToken */, "<<=": 67 /* LessThanLessThanEqualsToken */, ">>=": 68 /* GreaterThanGreaterThanEqualsToken */, ">>>=": 69 /* GreaterThanGreaterThanGreaterThanEqualsToken */, "&=": 70 /* AmpersandEqualsToken */, "|=": 71 /* BarEqualsToken */, "^=": 72 /* CaretEqualsToken */, "@": 58 /* AtToken */, "`": 59 /* BacktickToken */ }));
|
||||
/*
|
||||
As per ECMAScript Language Specification 3th Edition, Section 7.6: Identifiers
|
||||
IdentifierStart ::
|
||||
@@ -9268,8 +9268,6 @@ var ts;
|
||||
return emitNode && emitNode.flags || 0;
|
||||
}
|
||||
ts.getEmitFlags = getEmitFlags;
|
||||
var escapeNoSubstitutionTemplateLiteralText = ts.compose(escapeString, escapeTemplateSubstitution);
|
||||
var escapeNonAsciiNoSubstitutionTemplateLiteralText = ts.compose(escapeNonAsciiString, escapeTemplateSubstitution);
|
||||
function getLiteralText(node, sourceFile, neverAsciiEscape) {
|
||||
// If we don't need to downlevel and we can reach the original source text using
|
||||
// the node's parent reference, then simply get the text as it was originally written.
|
||||
@@ -9279,9 +9277,7 @@ var ts;
|
||||
}
|
||||
// If a NoSubstitutionTemplateLiteral appears to have a substitution in it, the original text
|
||||
// had to include a backslash: `not \${a} substitution`.
|
||||
var escapeText = neverAsciiEscape || (getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ?
|
||||
node.kind === 14 /* NoSubstitutionTemplateLiteral */ ? escapeNoSubstitutionTemplateLiteralText : escapeString :
|
||||
node.kind === 14 /* NoSubstitutionTemplateLiteral */ ? escapeNonAsciiNoSubstitutionTemplateLiteralText : escapeNonAsciiString;
|
||||
var escapeText = neverAsciiEscape || (getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ? escapeString : escapeNonAsciiString;
|
||||
// If we can't reach the original source text, use the canonical form if it's a number,
|
||||
// or a (possibly escaped) quoted form of the original text if it's string-like.
|
||||
switch (node.kind) {
|
||||
@@ -9293,15 +9289,23 @@ var ts;
|
||||
return '"' + escapeText(node.text, 34 /* doubleQuote */) + '"';
|
||||
}
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
return "`" + escapeText(node.text, 96 /* backtick */) + "`";
|
||||
case 15 /* TemplateHead */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "`" + escapeText(node.text, 96 /* backtick */) + "${";
|
||||
case 16 /* TemplateMiddle */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "}" + escapeText(node.text, 96 /* backtick */) + "${";
|
||||
case 17 /* TemplateTail */:
|
||||
return "}" + escapeText(node.text, 96 /* backtick */) + "`";
|
||||
var rawText = node.rawText || escapeTemplateSubstitution(escapeText(node.text, 96 /* backtick */));
|
||||
switch (node.kind) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
return "`" + rawText + "`";
|
||||
case 15 /* TemplateHead */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "`" + rawText + "${";
|
||||
case 16 /* TemplateMiddle */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "}" + rawText + "${";
|
||||
case 17 /* TemplateTail */:
|
||||
return "}" + rawText + "`";
|
||||
}
|
||||
break;
|
||||
case 8 /* NumericLiteral */:
|
||||
case 9 /* BigIntLiteral */:
|
||||
case 13 /* RegularExpressionLiteral */:
|
||||
@@ -11750,7 +11754,8 @@ var ts;
|
||||
// There is no reason for this other than that JSON.stringify does not handle it either.
|
||||
var doubleQuoteEscapedCharsRegExp = /[\\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
var singleQuoteEscapedCharsRegExp = /[\\\'\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
var backtickQuoteEscapedCharsRegExp = /[\\\`\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
// Template strings should be preserved as much as possible
|
||||
var backtickQuoteEscapedCharsRegExp = /[\\\`]/g;
|
||||
var escapedCharsMap = ts.createMapFromTemplate({
|
||||
"\t": "\\t",
|
||||
"\v": "\\v",
|
||||
@@ -11936,7 +11941,7 @@ var ts;
|
||||
pendingTrailingSemicolon = false;
|
||||
}
|
||||
}
|
||||
return __assign({}, writer, { writeTrailingSemicolon: function () {
|
||||
return __assign(__assign({}, writer), { writeTrailingSemicolon: function () {
|
||||
pendingTrailingSemicolon = true;
|
||||
},
|
||||
writeLiteral: function (s) {
|
||||
@@ -19020,6 +19025,16 @@ var ts;
|
||||
function parseLiteralLikeNode(kind) {
|
||||
var node = createNode(kind);
|
||||
node.text = scanner.getTokenValue();
|
||||
switch (kind) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
case 15 /* TemplateHead */:
|
||||
case 16 /* TemplateMiddle */:
|
||||
case 17 /* TemplateTail */:
|
||||
var isLast = kind === 14 /* NoSubstitutionTemplateLiteral */ || kind === 17 /* TemplateTail */;
|
||||
var tokenText = scanner.getTokenText();
|
||||
node.rawText = tokenText.substring(1, tokenText.length - (scanner.isUnterminated() ? 0 : isLast ? 1 : 2));
|
||||
break;
|
||||
}
|
||||
if (scanner.hasExtendedUnicodeEscape()) {
|
||||
node.hasExtendedUnicodeEscape = true;
|
||||
}
|
||||
@@ -25820,13 +25835,13 @@ var ts;
|
||||
var getCanonicalFileName = ts.createGetCanonicalFileName(host.useCaseSensitiveFileNames);
|
||||
var files = ts.map(ts.filter(configParseResult.fileNames, (!configParseResult.configFileSpecs || !configParseResult.configFileSpecs.validatedIncludeSpecs) ? function (_) { return true; } : matchesSpecs(configFileName, configParseResult.configFileSpecs.validatedIncludeSpecs, configParseResult.configFileSpecs.validatedExcludeSpecs)), function (f) { return ts.getRelativePathFromFile(ts.getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), ts.getNormalizedAbsolutePath(f, host.getCurrentDirectory()), getCanonicalFileName); });
|
||||
var optionMap = serializeCompilerOptions(configParseResult.options, { configFilePath: ts.getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), useCaseSensitiveFileNames: host.useCaseSensitiveFileNames });
|
||||
var config = __assign({ compilerOptions: __assign({}, ts.arrayFrom(optionMap.entries()).reduce(function (prev, cur) {
|
||||
var config = __assign(__assign({ compilerOptions: __assign(__assign({}, ts.arrayFrom(optionMap.entries()).reduce(function (prev, cur) {
|
||||
var _a;
|
||||
return (__assign({}, prev, (_a = {}, _a[cur[0]] = cur[1], _a)));
|
||||
}, {}), { showConfig: undefined, configFile: undefined, configFilePath: undefined, help: undefined, init: undefined, listFiles: undefined, listEmittedFiles: undefined, project: undefined, build: undefined, version: undefined }), references: ts.map(configParseResult.projectReferences, function (r) { return (__assign({}, r, { path: r.originalPath ? r.originalPath : "", originalPath: undefined })); }), files: ts.length(files) ? files : undefined }, (configParseResult.configFileSpecs ? {
|
||||
return (__assign(__assign({}, prev), (_a = {}, _a[cur[0]] = cur[1], _a)));
|
||||
}, {})), { showConfig: undefined, configFile: undefined, configFilePath: undefined, help: undefined, init: undefined, listFiles: undefined, listEmittedFiles: undefined, project: undefined, build: undefined, version: undefined }), references: ts.map(configParseResult.projectReferences, function (r) { return (__assign(__assign({}, r), { path: r.originalPath ? r.originalPath : "", originalPath: undefined })); }), files: ts.length(files) ? files : undefined }, (configParseResult.configFileSpecs ? {
|
||||
include: filterSameAsDefaultInclude(configParseResult.configFileSpecs.validatedIncludeSpecs),
|
||||
exclude: configParseResult.configFileSpecs.validatedExcludeSpecs
|
||||
} : {}), { compileOnSave: !!configParseResult.compileOnSave ? true : undefined });
|
||||
} : {})), { compileOnSave: !!configParseResult.compileOnSave ? true : undefined });
|
||||
return config;
|
||||
}
|
||||
ts.convertToTSConfig = convertToTSConfig;
|
||||
@@ -27610,7 +27625,7 @@ var ts;
|
||||
if (!compilerOptions.preserveSymlinks && resolvedValue && !resolvedValue.originalPath) {
|
||||
var path = realPath(resolvedValue.path, host, traceEnabled);
|
||||
var originalPath = path === resolvedValue.path ? undefined : resolvedValue.path;
|
||||
resolvedValue = __assign({}, resolvedValue, { path: path, originalPath: originalPath });
|
||||
resolvedValue = __assign(__assign({}, resolvedValue), { path: path, originalPath: originalPath });
|
||||
}
|
||||
// For node_modules lookups, get the real path so that multiple accesses to an `npm link`-ed module do not create duplicate files.
|
||||
return { value: resolvedValue && { resolved: resolvedValue, isExternalLibraryImport: true } };
|
||||
@@ -29941,7 +29956,7 @@ var ts;
|
||||
file.bindDiagnostics.push(diag);
|
||||
}
|
||||
else {
|
||||
file.bindSuggestionDiagnostics = ts.append(file.bindSuggestionDiagnostics, __assign({}, diag, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
file.bindSuggestionDiagnostics = ts.append(file.bindSuggestionDiagnostics, __assign(__assign({}, diag), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
}
|
||||
function bind(node) {
|
||||
@@ -32375,7 +32390,7 @@ var ts;
|
||||
function addUnusedDiagnostics() {
|
||||
checkUnusedIdentifiers(getPotentiallyUnusedIdentifiers(file), function (containingNode, kind, diag) {
|
||||
if (!ts.containsParseError(containingNode) && !unusedIsError(kind)) {
|
||||
(diagnostics || (diagnostics = [])).push(__assign({}, diag, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
(diagnostics || (diagnostics = [])).push(__assign(__assign({}, diag), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -32671,7 +32686,7 @@ var ts;
|
||||
diagnostics.add(diagnostic);
|
||||
}
|
||||
else {
|
||||
suggestionDiagnostics.add(__assign({}, diagnostic, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
suggestionDiagnostics.add(__assign(__assign({}, diagnostic), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
}
|
||||
function errorOrSuggestion(isError, location, message, arg0, arg1, arg2, arg3) {
|
||||
@@ -35939,7 +35954,7 @@ var ts;
|
||||
// using the `baseUrl` compiler option (which we would otherwise never use in declaration emit) and a non-relative
|
||||
// specifier preference
|
||||
var moduleResolverHost = context.tracker.moduleResolverHost;
|
||||
var specifierCompilerOptions = isBundle_1 ? __assign({}, compilerOptions, { baseUrl: moduleResolverHost.getCommonSourceDirectory() }) : compilerOptions;
|
||||
var specifierCompilerOptions = isBundle_1 ? __assign(__assign({}, compilerOptions), { baseUrl: moduleResolverHost.getCommonSourceDirectory() }) : compilerOptions;
|
||||
specifier = ts.first(ts.moduleSpecifiers.getModuleSpecifiers(symbol, specifierCompilerOptions, contextFile, moduleResolverHost, host.getSourceFiles(), { importModuleSpecifierPreference: isBundle_1 ? "non-relative" : "relative" }, host.redirectTargetsMap));
|
||||
links.specifierCache = links.specifierCache || ts.createMap();
|
||||
links.specifierCache.set(contextFile.path, specifier);
|
||||
@@ -43004,7 +43019,7 @@ var ts;
|
||||
var childrenPropName = childPropName === undefined ? "children" : ts.unescapeLeadingUnderscores(childPropName);
|
||||
var childrenTargetType = getIndexedAccessType(target, getLiteralType(childrenPropName));
|
||||
var diagnostic = ts.Diagnostics._0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2;
|
||||
invalidTextDiagnostic = __assign({}, diagnostic, { key: "!!ALREADY FORMATTED!!", message: ts.formatMessage(/*_dummy*/ undefined, diagnostic, tagNameText, childrenPropName, typeToString(childrenTargetType)) });
|
||||
invalidTextDiagnostic = __assign(__assign({}, diagnostic), { key: "!!ALREADY FORMATTED!!", message: ts.formatMessage(/*_dummy*/ undefined, diagnostic, tagNameText, childrenPropName, typeToString(childrenTargetType)) });
|
||||
}
|
||||
return invalidTextDiagnostic;
|
||||
}
|
||||
@@ -55105,7 +55120,18 @@ var ts;
|
||||
return checkExpression(node.expression, checkMode);
|
||||
}
|
||||
function checkExpressionWorker(node, checkMode, forceTuple) {
|
||||
switch (node.kind) {
|
||||
var kind = node.kind;
|
||||
if (cancellationToken) {
|
||||
// Only bother checking on a few construct kinds. We don't want to be excessively
|
||||
// hitting the cancellation token on every node we check.
|
||||
switch (kind) {
|
||||
case 210 /* ClassExpression */:
|
||||
case 197 /* FunctionExpression */:
|
||||
case 198 /* ArrowFunction */:
|
||||
cancellationToken.throwIfCancellationRequested();
|
||||
}
|
||||
}
|
||||
switch (kind) {
|
||||
case 73 /* Identifier */:
|
||||
return checkIdentifier(node);
|
||||
case 101 /* ThisKeyword */:
|
||||
@@ -63915,27 +63941,88 @@ var ts;
|
||||
: node;
|
||||
}
|
||||
ts.updateTemplateExpression = updateTemplateExpression;
|
||||
function createTemplateHead(text) {
|
||||
var node = createSynthesizedNode(15 /* TemplateHead */);
|
||||
var rawTextScanner;
|
||||
var invalidValueSentinel = {};
|
||||
function getCookedText(kind, rawText) {
|
||||
if (!rawTextScanner) {
|
||||
rawTextScanner = ts.createScanner(99 /* Latest */, /*skipTrivia*/ false, 0 /* Standard */);
|
||||
}
|
||||
switch (kind) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
rawTextScanner.setText("`" + rawText + "`");
|
||||
break;
|
||||
case 15 /* TemplateHead */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
rawTextScanner.setText("`" + rawText + "${");
|
||||
break;
|
||||
case 16 /* TemplateMiddle */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
rawTextScanner.setText("}" + rawText + "${");
|
||||
break;
|
||||
case 17 /* TemplateTail */:
|
||||
rawTextScanner.setText("}" + rawText + "`");
|
||||
break;
|
||||
}
|
||||
var token = rawTextScanner.scan();
|
||||
if (token === 23 /* CloseBracketToken */) {
|
||||
token = rawTextScanner.reScanTemplateToken();
|
||||
}
|
||||
if (rawTextScanner.isUnterminated()) {
|
||||
rawTextScanner.setText(undefined);
|
||||
return invalidValueSentinel;
|
||||
}
|
||||
var tokenValue;
|
||||
switch (token) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
case 15 /* TemplateHead */:
|
||||
case 16 /* TemplateMiddle */:
|
||||
case 17 /* TemplateTail */:
|
||||
tokenValue = rawTextScanner.getTokenValue();
|
||||
break;
|
||||
}
|
||||
if (rawTextScanner.scan() !== 1 /* EndOfFileToken */) {
|
||||
rawTextScanner.setText(undefined);
|
||||
return invalidValueSentinel;
|
||||
}
|
||||
rawTextScanner.setText(undefined);
|
||||
return tokenValue;
|
||||
}
|
||||
function createTemplateLiteralLikeNode(kind, text, rawText) {
|
||||
var node = createSynthesizedNode(kind);
|
||||
node.text = text;
|
||||
if (rawText === undefined || text === rawText) {
|
||||
node.rawText = rawText;
|
||||
}
|
||||
else {
|
||||
var cooked = getCookedText(kind, rawText);
|
||||
if (typeof cooked === "object") {
|
||||
return ts.Debug.fail("Invalid raw text");
|
||||
}
|
||||
ts.Debug.assert(text === cooked, "Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.");
|
||||
node.rawText = rawText;
|
||||
}
|
||||
return node;
|
||||
}
|
||||
function createTemplateHead(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(15 /* TemplateHead */, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateHead = createTemplateHead;
|
||||
function createTemplateMiddle(text) {
|
||||
var node = createSynthesizedNode(16 /* TemplateMiddle */);
|
||||
function createTemplateMiddle(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(16 /* TemplateMiddle */, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateMiddle = createTemplateMiddle;
|
||||
function createTemplateTail(text) {
|
||||
var node = createSynthesizedNode(17 /* TemplateTail */);
|
||||
function createTemplateTail(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(17 /* TemplateTail */, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateTail = createTemplateTail;
|
||||
function createNoSubstitutionTemplateLiteral(text) {
|
||||
var node = createSynthesizedNode(14 /* NoSubstitutionTemplateLiteral */);
|
||||
node.text = text;
|
||||
function createNoSubstitutionTemplateLiteral(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(14 /* NoSubstitutionTemplateLiteral */, text, rawText);
|
||||
return node;
|
||||
}
|
||||
ts.createNoSubstitutionTemplateLiteral = createNoSubstitutionTemplateLiteral;
|
||||
@@ -77739,13 +77826,16 @@ var ts;
|
||||
// Find original source text, since we need to emit the raw strings of the tagged template.
|
||||
// The raw strings contain the (escaped) strings of what the user wrote.
|
||||
// Examples: `\n` is converted to "\\n", a template string with a newline to "\n".
|
||||
var text = ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node);
|
||||
// text contains the original source, it will also contain quotes ("`"), dolar signs and braces ("${" and "}"),
|
||||
// thus we need to remove those characters.
|
||||
// First template piece starts with "`", others with "}"
|
||||
// Last template piece ends with "`", others with "${"
|
||||
var isLast = node.kind === 14 /* NoSubstitutionTemplateLiteral */ || node.kind === 17 /* TemplateTail */;
|
||||
text = text.substring(1, text.length - (isLast ? 1 : 2));
|
||||
var text = node.rawText;
|
||||
if (text === undefined) {
|
||||
text = ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node);
|
||||
// text contains the original source, it will also contain quotes ("`"), dolar signs and braces ("${" and "}"),
|
||||
// thus we need to remove those characters.
|
||||
// First template piece starts with "`", others with "}"
|
||||
// Last template piece ends with "`", others with "${"
|
||||
var isLast = node.kind === 14 /* NoSubstitutionTemplateLiteral */ || node.kind === 17 /* TemplateTail */;
|
||||
text = text.substring(1, text.length - (isLast ? 1 : 2));
|
||||
}
|
||||
// Newline normalization:
|
||||
// ES6 Spec 11.8.6.1 - Static Semantics of TV's and TRV's
|
||||
// <CR><LF> and <CR> LineTerminatorSequences are normalized to <LF> for both TV and TRV.
|
||||
@@ -91928,7 +92018,7 @@ var ts;
|
||||
return oldProgram.structureIsReused = 2 /* Completely */;
|
||||
}
|
||||
function getEmitHost(writeFileCallback) {
|
||||
return __assign({ getPrependNodes: getPrependNodes,
|
||||
return __assign(__assign({ getPrependNodes: getPrependNodes,
|
||||
getCanonicalFileName: getCanonicalFileName, getCommonSourceDirectory: program.getCommonSourceDirectory, getCompilerOptions: program.getCompilerOptions, getCurrentDirectory: function () { return currentDirectory; }, getNewLine: function () { return host.getNewLine(); }, getSourceFile: program.getSourceFile, getSourceFileByPath: program.getSourceFileByPath, getSourceFiles: program.getSourceFiles, getLibFileFromReference: program.getLibFileFromReference, isSourceFileFromExternalLibrary: isSourceFileFromExternalLibrary,
|
||||
getResolvedProjectReferenceToRedirect: getResolvedProjectReferenceToRedirect, writeFile: writeFileCallback || (function (fileName, data, writeByteOrderMark, onError, sourceFiles) { return host.writeFile(fileName, data, writeByteOrderMark, onError, sourceFiles); }), isEmitBlocked: isEmitBlocked, readFile: function (f) { return host.readFile(f); }, fileExists: function (f) {
|
||||
// Use local caches
|
||||
@@ -91939,7 +92029,7 @@ var ts;
|
||||
return false;
|
||||
// Before falling back to the host
|
||||
return host.fileExists(f);
|
||||
} }, (host.directoryExists ? { directoryExists: function (f) { return host.directoryExists(f); } } : {}), { useCaseSensitiveFileNames: function () { return host.useCaseSensitiveFileNames(); }, getProgramBuildInfo: function () { return program.getProgramBuildInfo && program.getProgramBuildInfo(); }, getSourceFileFromReference: function (file, ref) { return program.getSourceFileFromReference(file, ref); } });
|
||||
} }, (host.directoryExists ? { directoryExists: function (f) { return host.directoryExists(f); } } : {})), { useCaseSensitiveFileNames: function () { return host.useCaseSensitiveFileNames(); }, getProgramBuildInfo: function () { return program.getProgramBuildInfo && program.getProgramBuildInfo(); }, getSourceFileFromReference: function (file, ref) { return program.getSourceFileFromReference(file, ref); } });
|
||||
}
|
||||
function emitBuildInfo(writeFileCallback) {
|
||||
ts.Debug.assert(!options.out && !options.outFile);
|
||||
@@ -94091,7 +94181,7 @@ var ts;
|
||||
}
|
||||
function convertToDiagnosticRelatedInformation(diagnostic, newProgram, toPath) {
|
||||
var file = diagnostic.file;
|
||||
return __assign({}, diagnostic, { file: file ? newProgram.getSourceFileByPath(toPath(file)) : undefined });
|
||||
return __assign(__assign({}, diagnostic), { file: file ? newProgram.getSourceFileByPath(toPath(file)) : undefined });
|
||||
}
|
||||
/**
|
||||
* Releases program and other related not needed properties
|
||||
@@ -94486,7 +94576,7 @@ var ts;
|
||||
}
|
||||
function convertToReusableDiagnosticRelatedInformation(diagnostic, relativeToBuildInfo) {
|
||||
var file = diagnostic.file;
|
||||
return __assign({}, diagnostic, { file: file ? relativeToBuildInfo(file.path) : undefined });
|
||||
return __assign(__assign({}, diagnostic), { file: file ? relativeToBuildInfo(file.path) : undefined });
|
||||
}
|
||||
var BuilderProgramKind;
|
||||
(function (BuilderProgramKind) {
|
||||
@@ -103639,7 +103729,7 @@ var ts;
|
||||
// If you're in an interface you don't want to repeat things from super-interface. So just stop here.
|
||||
if (!ts.isClassLike(decl))
|
||||
return 1 /* Success */;
|
||||
var classElement = contextToken.parent;
|
||||
var classElement = contextToken.kind === 26 /* SemicolonToken */ ? contextToken.parent.parent : contextToken.parent;
|
||||
var classElementModifierFlags = ts.isClassElement(classElement) ? ts.getModifierFlags(classElement) : 0 /* None */;
|
||||
// If this is context token is not something we are editing now, consider if this would lead to be modifier
|
||||
if (contextToken.kind === 73 /* Identifier */ && !isCurrentlyEditingNode(contextToken)) {
|
||||
@@ -105652,16 +105742,16 @@ var ts;
|
||||
return { displayParts: displayParts, kind: symbolKind };
|
||||
}
|
||||
function toRenameLocation(entry, originalNode, checker, providePrefixAndSuffixText) {
|
||||
return __assign({}, entryToDocumentSpan(entry), (providePrefixAndSuffixText && getPrefixAndSuffixText(entry, originalNode, checker)));
|
||||
return __assign(__assign({}, entryToDocumentSpan(entry)), (providePrefixAndSuffixText && getPrefixAndSuffixText(entry, originalNode, checker)));
|
||||
}
|
||||
FindAllReferences.toRenameLocation = toRenameLocation;
|
||||
function toReferenceEntry(entry) {
|
||||
var documentSpan = entryToDocumentSpan(entry);
|
||||
if (entry.kind === 0 /* Span */) {
|
||||
return __assign({}, documentSpan, { isWriteAccess: false, isDefinition: false });
|
||||
return __assign(__assign({}, documentSpan), { isWriteAccess: false, isDefinition: false });
|
||||
}
|
||||
var kind = entry.kind, node = entry.node;
|
||||
return __assign({}, documentSpan, { isWriteAccess: isWriteAccessForReference(node), isDefinition: node.kind === 81 /* DefaultKeyword */
|
||||
return __assign(__assign({}, documentSpan), { isWriteAccess: isWriteAccessForReference(node), isDefinition: node.kind === 81 /* DefaultKeyword */
|
||||
|| !!ts.getDeclarationFromName(node)
|
||||
|| ts.isLiteralComputedPropertyDeclarationName(node), isInString: kind === 2 /* StringLiteral */ ? true : undefined });
|
||||
}
|
||||
@@ -105705,10 +105795,10 @@ var ts;
|
||||
var documentSpan = entryToDocumentSpan(entry);
|
||||
if (entry.kind !== 0 /* Span */) {
|
||||
var node = entry.node;
|
||||
return __assign({}, documentSpan, implementationKindDisplayParts(node, checker));
|
||||
return __assign(__assign({}, documentSpan), implementationKindDisplayParts(node, checker));
|
||||
}
|
||||
else {
|
||||
return __assign({}, documentSpan, { kind: "" /* unknown */, displayParts: [] });
|
||||
return __assign(__assign({}, documentSpan), { kind: "" /* unknown */, displayParts: [] });
|
||||
}
|
||||
}
|
||||
function implementationKindDisplayParts(node, checker) {
|
||||
@@ -115252,7 +115342,7 @@ var ts;
|
||||
};
|
||||
ChangeTracker.prototype.getInsertNodeAfterOptions = function (sourceFile, after) {
|
||||
var options = this.getInsertNodeAfterOptionsWorker(after);
|
||||
return __assign({}, options, { prefix: after.end === sourceFile.end && ts.isStatement(after) ? (options.prefix ? "\n" + options.prefix : "\n") : options.prefix });
|
||||
return __assign(__assign({}, options), { prefix: after.end === sourceFile.end && ts.isStatement(after) ? (options.prefix ? "\n" + options.prefix : "\n") : options.prefix });
|
||||
};
|
||||
ChangeTracker.prototype.getInsertNodeAfterOptionsWorker = function (node) {
|
||||
switch (node.kind) {
|
||||
@@ -118944,7 +119034,7 @@ var ts;
|
||||
var info = errorCode === ts.Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code
|
||||
? getFixesInfoForUMDImport(context, symbolToken)
|
||||
: ts.isIdentifier(symbolToken) ? getFixesInfoForNonUMDImport(context, symbolToken) : undefined;
|
||||
return info && __assign({}, info, { fixes: ts.sort(info.fixes, function (a, b) { return a.kind - b.kind; }) });
|
||||
return info && __assign(__assign({}, info), { fixes: ts.sort(info.fixes, function (a, b) { return a.kind - b.kind; }) });
|
||||
}
|
||||
function getFixesInfoForUMDImport(_a, token) {
|
||||
var sourceFile = _a.sourceFile, program = _a.program, host = _a.host, preferences = _a.preferences;
|
||||
@@ -125728,7 +125818,7 @@ var ts;
|
||||
function getCompletionsAtPosition(fileName, position, options) {
|
||||
if (options === void 0) { options = ts.emptyOptions; }
|
||||
// Convert from deprecated options names to new names
|
||||
var fullPreferences = __assign({}, ts.identity(options), { includeCompletionsForModuleExports: options.includeCompletionsForModuleExports || options.includeExternalModuleExports, includeCompletionsWithInsertText: options.includeCompletionsWithInsertText || options.includeInsertTextCompletions });
|
||||
var fullPreferences = __assign(__assign({}, ts.identity(options)), { includeCompletionsForModuleExports: options.includeCompletionsForModuleExports || options.includeExternalModuleExports, includeCompletionsWithInsertText: options.includeCompletionsWithInsertText || options.includeInsertTextCompletions });
|
||||
synchronizeHostData();
|
||||
return ts.Completions.getCompletionsAtPosition(host, program, log, getValidSourceFile(fileName), position, fullPreferences, options.triggerCharacter);
|
||||
}
|
||||
@@ -125818,7 +125908,7 @@ var ts;
|
||||
}
|
||||
/// References and Occurrences
|
||||
function getOccurrencesAtPosition(fileName, position) {
|
||||
return ts.flatMap(getDocumentHighlights(fileName, position, [fileName]), function (entry) { return entry.highlightSpans.map(function (highlightSpan) { return (__assign({ fileName: entry.fileName, textSpan: highlightSpan.textSpan, isWriteAccess: highlightSpan.kind === "writtenReference" /* writtenReference */, isDefinition: false }, highlightSpan.isInString && { isInString: true }, highlightSpan.contextSpan && { contextSpan: highlightSpan.contextSpan })); }); });
|
||||
return ts.flatMap(getDocumentHighlights(fileName, position, [fileName]), function (entry) { return entry.highlightSpans.map(function (highlightSpan) { return (__assign(__assign({ fileName: entry.fileName, textSpan: highlightSpan.textSpan, isWriteAccess: highlightSpan.kind === "writtenReference" /* writtenReference */, isDefinition: false }, highlightSpan.isInString && { isInString: true }), highlightSpan.contextSpan && { contextSpan: highlightSpan.contextSpan })); }); });
|
||||
}
|
||||
function getDocumentHighlights(fileName, position, filesToSearch) {
|
||||
var normalizedFileName = ts.normalizePath(fileName);
|
||||
|
||||
@@ -4469,7 +4469,7 @@ var ts;
|
||||
function getCustomPollingBasedLevels(baseVariable, defaultLevels) {
|
||||
var customLevels = getCustomLevels(baseVariable);
|
||||
return (pollingIntervalChanged || customLevels) &&
|
||||
createPollingIntervalBasedLevels(customLevels ? __assign({}, defaultLevels, customLevels) : defaultLevels);
|
||||
createPollingIntervalBasedLevels(customLevels ? __assign(__assign({}, defaultLevels), customLevels) : defaultLevels);
|
||||
}
|
||||
}
|
||||
ts.setCustomPollingValues = setCustomPollingValues;
|
||||
@@ -6820,7 +6820,7 @@ var ts;
|
||||
_a.of = 148 /* OfKeyword */,
|
||||
_a);
|
||||
var textToKeyword = ts.createMapFromTemplate(textToKeywordObj);
|
||||
var textToToken = ts.createMapFromTemplate(__assign({}, textToKeywordObj, { "{": 18 /* OpenBraceToken */, "}": 19 /* CloseBraceToken */, "(": 20 /* OpenParenToken */, ")": 21 /* CloseParenToken */, "[": 22 /* OpenBracketToken */, "]": 23 /* CloseBracketToken */, ".": 24 /* DotToken */, "...": 25 /* DotDotDotToken */, ";": 26 /* SemicolonToken */, ",": 27 /* CommaToken */, "<": 28 /* LessThanToken */, ">": 30 /* GreaterThanToken */, "<=": 31 /* LessThanEqualsToken */, ">=": 32 /* GreaterThanEqualsToken */, "==": 33 /* EqualsEqualsToken */, "!=": 34 /* ExclamationEqualsToken */, "===": 35 /* EqualsEqualsEqualsToken */, "!==": 36 /* ExclamationEqualsEqualsToken */, "=>": 37 /* EqualsGreaterThanToken */, "+": 38 /* PlusToken */, "-": 39 /* MinusToken */, "**": 41 /* AsteriskAsteriskToken */, "*": 40 /* AsteriskToken */, "/": 42 /* SlashToken */, "%": 43 /* PercentToken */, "++": 44 /* PlusPlusToken */, "--": 45 /* MinusMinusToken */, "<<": 46 /* LessThanLessThanToken */, "</": 29 /* LessThanSlashToken */, ">>": 47 /* GreaterThanGreaterThanToken */, ">>>": 48 /* GreaterThanGreaterThanGreaterThanToken */, "&": 49 /* AmpersandToken */, "|": 50 /* BarToken */, "^": 51 /* CaretToken */, "!": 52 /* ExclamationToken */, "~": 53 /* TildeToken */, "&&": 54 /* AmpersandAmpersandToken */, "||": 55 /* BarBarToken */, "?": 56 /* QuestionToken */, ":": 57 /* ColonToken */, "=": 60 /* EqualsToken */, "+=": 61 /* PlusEqualsToken */, "-=": 62 /* MinusEqualsToken */, "*=": 63 /* AsteriskEqualsToken */, "**=": 64 /* AsteriskAsteriskEqualsToken */, "/=": 65 /* SlashEqualsToken */, "%=": 66 /* PercentEqualsToken */, "<<=": 67 /* LessThanLessThanEqualsToken */, ">>=": 68 /* GreaterThanGreaterThanEqualsToken */, ">>>=": 69 /* GreaterThanGreaterThanGreaterThanEqualsToken */, "&=": 70 /* AmpersandEqualsToken */, "|=": 71 /* BarEqualsToken */, "^=": 72 /* CaretEqualsToken */, "@": 58 /* AtToken */, "`": 59 /* BacktickToken */ }));
|
||||
var textToToken = ts.createMapFromTemplate(__assign(__assign({}, textToKeywordObj), { "{": 18 /* OpenBraceToken */, "}": 19 /* CloseBraceToken */, "(": 20 /* OpenParenToken */, ")": 21 /* CloseParenToken */, "[": 22 /* OpenBracketToken */, "]": 23 /* CloseBracketToken */, ".": 24 /* DotToken */, "...": 25 /* DotDotDotToken */, ";": 26 /* SemicolonToken */, ",": 27 /* CommaToken */, "<": 28 /* LessThanToken */, ">": 30 /* GreaterThanToken */, "<=": 31 /* LessThanEqualsToken */, ">=": 32 /* GreaterThanEqualsToken */, "==": 33 /* EqualsEqualsToken */, "!=": 34 /* ExclamationEqualsToken */, "===": 35 /* EqualsEqualsEqualsToken */, "!==": 36 /* ExclamationEqualsEqualsToken */, "=>": 37 /* EqualsGreaterThanToken */, "+": 38 /* PlusToken */, "-": 39 /* MinusToken */, "**": 41 /* AsteriskAsteriskToken */, "*": 40 /* AsteriskToken */, "/": 42 /* SlashToken */, "%": 43 /* PercentToken */, "++": 44 /* PlusPlusToken */, "--": 45 /* MinusMinusToken */, "<<": 46 /* LessThanLessThanToken */, "</": 29 /* LessThanSlashToken */, ">>": 47 /* GreaterThanGreaterThanToken */, ">>>": 48 /* GreaterThanGreaterThanGreaterThanToken */, "&": 49 /* AmpersandToken */, "|": 50 /* BarToken */, "^": 51 /* CaretToken */, "!": 52 /* ExclamationToken */, "~": 53 /* TildeToken */, "&&": 54 /* AmpersandAmpersandToken */, "||": 55 /* BarBarToken */, "?": 56 /* QuestionToken */, ":": 57 /* ColonToken */, "=": 60 /* EqualsToken */, "+=": 61 /* PlusEqualsToken */, "-=": 62 /* MinusEqualsToken */, "*=": 63 /* AsteriskEqualsToken */, "**=": 64 /* AsteriskAsteriskEqualsToken */, "/=": 65 /* SlashEqualsToken */, "%=": 66 /* PercentEqualsToken */, "<<=": 67 /* LessThanLessThanEqualsToken */, ">>=": 68 /* GreaterThanGreaterThanEqualsToken */, ">>>=": 69 /* GreaterThanGreaterThanGreaterThanEqualsToken */, "&=": 70 /* AmpersandEqualsToken */, "|=": 71 /* BarEqualsToken */, "^=": 72 /* CaretEqualsToken */, "@": 58 /* AtToken */, "`": 59 /* BacktickToken */ }));
|
||||
/*
|
||||
As per ECMAScript Language Specification 3th Edition, Section 7.6: Identifiers
|
||||
IdentifierStart ::
|
||||
@@ -9269,8 +9269,6 @@ var ts;
|
||||
return emitNode && emitNode.flags || 0;
|
||||
}
|
||||
ts.getEmitFlags = getEmitFlags;
|
||||
var escapeNoSubstitutionTemplateLiteralText = ts.compose(escapeString, escapeTemplateSubstitution);
|
||||
var escapeNonAsciiNoSubstitutionTemplateLiteralText = ts.compose(escapeNonAsciiString, escapeTemplateSubstitution);
|
||||
function getLiteralText(node, sourceFile, neverAsciiEscape) {
|
||||
// If we don't need to downlevel and we can reach the original source text using
|
||||
// the node's parent reference, then simply get the text as it was originally written.
|
||||
@@ -9280,9 +9278,7 @@ var ts;
|
||||
}
|
||||
// If a NoSubstitutionTemplateLiteral appears to have a substitution in it, the original text
|
||||
// had to include a backslash: `not \${a} substitution`.
|
||||
var escapeText = neverAsciiEscape || (getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ?
|
||||
node.kind === 14 /* NoSubstitutionTemplateLiteral */ ? escapeNoSubstitutionTemplateLiteralText : escapeString :
|
||||
node.kind === 14 /* NoSubstitutionTemplateLiteral */ ? escapeNonAsciiNoSubstitutionTemplateLiteralText : escapeNonAsciiString;
|
||||
var escapeText = neverAsciiEscape || (getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ? escapeString : escapeNonAsciiString;
|
||||
// If we can't reach the original source text, use the canonical form if it's a number,
|
||||
// or a (possibly escaped) quoted form of the original text if it's string-like.
|
||||
switch (node.kind) {
|
||||
@@ -9294,15 +9290,23 @@ var ts;
|
||||
return '"' + escapeText(node.text, 34 /* doubleQuote */) + '"';
|
||||
}
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
return "`" + escapeText(node.text, 96 /* backtick */) + "`";
|
||||
case 15 /* TemplateHead */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "`" + escapeText(node.text, 96 /* backtick */) + "${";
|
||||
case 16 /* TemplateMiddle */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "}" + escapeText(node.text, 96 /* backtick */) + "${";
|
||||
case 17 /* TemplateTail */:
|
||||
return "}" + escapeText(node.text, 96 /* backtick */) + "`";
|
||||
var rawText = node.rawText || escapeTemplateSubstitution(escapeText(node.text, 96 /* backtick */));
|
||||
switch (node.kind) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
return "`" + rawText + "`";
|
||||
case 15 /* TemplateHead */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "`" + rawText + "${";
|
||||
case 16 /* TemplateMiddle */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
return "}" + rawText + "${";
|
||||
case 17 /* TemplateTail */:
|
||||
return "}" + rawText + "`";
|
||||
}
|
||||
break;
|
||||
case 8 /* NumericLiteral */:
|
||||
case 9 /* BigIntLiteral */:
|
||||
case 13 /* RegularExpressionLiteral */:
|
||||
@@ -11751,7 +11755,8 @@ var ts;
|
||||
// There is no reason for this other than that JSON.stringify does not handle it either.
|
||||
var doubleQuoteEscapedCharsRegExp = /[\\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
var singleQuoteEscapedCharsRegExp = /[\\\'\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
var backtickQuoteEscapedCharsRegExp = /[\\\`\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g;
|
||||
// Template strings should be preserved as much as possible
|
||||
var backtickQuoteEscapedCharsRegExp = /[\\\`]/g;
|
||||
var escapedCharsMap = ts.createMapFromTemplate({
|
||||
"\t": "\\t",
|
||||
"\v": "\\v",
|
||||
@@ -11937,7 +11942,7 @@ var ts;
|
||||
pendingTrailingSemicolon = false;
|
||||
}
|
||||
}
|
||||
return __assign({}, writer, { writeTrailingSemicolon: function () {
|
||||
return __assign(__assign({}, writer), { writeTrailingSemicolon: function () {
|
||||
pendingTrailingSemicolon = true;
|
||||
},
|
||||
writeLiteral: function (s) {
|
||||
@@ -19021,6 +19026,16 @@ var ts;
|
||||
function parseLiteralLikeNode(kind) {
|
||||
var node = createNode(kind);
|
||||
node.text = scanner.getTokenValue();
|
||||
switch (kind) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
case 15 /* TemplateHead */:
|
||||
case 16 /* TemplateMiddle */:
|
||||
case 17 /* TemplateTail */:
|
||||
var isLast = kind === 14 /* NoSubstitutionTemplateLiteral */ || kind === 17 /* TemplateTail */;
|
||||
var tokenText = scanner.getTokenText();
|
||||
node.rawText = tokenText.substring(1, tokenText.length - (scanner.isUnterminated() ? 0 : isLast ? 1 : 2));
|
||||
break;
|
||||
}
|
||||
if (scanner.hasExtendedUnicodeEscape()) {
|
||||
node.hasExtendedUnicodeEscape = true;
|
||||
}
|
||||
@@ -25821,13 +25836,13 @@ var ts;
|
||||
var getCanonicalFileName = ts.createGetCanonicalFileName(host.useCaseSensitiveFileNames);
|
||||
var files = ts.map(ts.filter(configParseResult.fileNames, (!configParseResult.configFileSpecs || !configParseResult.configFileSpecs.validatedIncludeSpecs) ? function (_) { return true; } : matchesSpecs(configFileName, configParseResult.configFileSpecs.validatedIncludeSpecs, configParseResult.configFileSpecs.validatedExcludeSpecs)), function (f) { return ts.getRelativePathFromFile(ts.getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), ts.getNormalizedAbsolutePath(f, host.getCurrentDirectory()), getCanonicalFileName); });
|
||||
var optionMap = serializeCompilerOptions(configParseResult.options, { configFilePath: ts.getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), useCaseSensitiveFileNames: host.useCaseSensitiveFileNames });
|
||||
var config = __assign({ compilerOptions: __assign({}, ts.arrayFrom(optionMap.entries()).reduce(function (prev, cur) {
|
||||
var config = __assign(__assign({ compilerOptions: __assign(__assign({}, ts.arrayFrom(optionMap.entries()).reduce(function (prev, cur) {
|
||||
var _a;
|
||||
return (__assign({}, prev, (_a = {}, _a[cur[0]] = cur[1], _a)));
|
||||
}, {}), { showConfig: undefined, configFile: undefined, configFilePath: undefined, help: undefined, init: undefined, listFiles: undefined, listEmittedFiles: undefined, project: undefined, build: undefined, version: undefined }), references: ts.map(configParseResult.projectReferences, function (r) { return (__assign({}, r, { path: r.originalPath ? r.originalPath : "", originalPath: undefined })); }), files: ts.length(files) ? files : undefined }, (configParseResult.configFileSpecs ? {
|
||||
return (__assign(__assign({}, prev), (_a = {}, _a[cur[0]] = cur[1], _a)));
|
||||
}, {})), { showConfig: undefined, configFile: undefined, configFilePath: undefined, help: undefined, init: undefined, listFiles: undefined, listEmittedFiles: undefined, project: undefined, build: undefined, version: undefined }), references: ts.map(configParseResult.projectReferences, function (r) { return (__assign(__assign({}, r), { path: r.originalPath ? r.originalPath : "", originalPath: undefined })); }), files: ts.length(files) ? files : undefined }, (configParseResult.configFileSpecs ? {
|
||||
include: filterSameAsDefaultInclude(configParseResult.configFileSpecs.validatedIncludeSpecs),
|
||||
exclude: configParseResult.configFileSpecs.validatedExcludeSpecs
|
||||
} : {}), { compileOnSave: !!configParseResult.compileOnSave ? true : undefined });
|
||||
} : {})), { compileOnSave: !!configParseResult.compileOnSave ? true : undefined });
|
||||
return config;
|
||||
}
|
||||
ts.convertToTSConfig = convertToTSConfig;
|
||||
@@ -27611,7 +27626,7 @@ var ts;
|
||||
if (!compilerOptions.preserveSymlinks && resolvedValue && !resolvedValue.originalPath) {
|
||||
var path = realPath(resolvedValue.path, host, traceEnabled);
|
||||
var originalPath = path === resolvedValue.path ? undefined : resolvedValue.path;
|
||||
resolvedValue = __assign({}, resolvedValue, { path: path, originalPath: originalPath });
|
||||
resolvedValue = __assign(__assign({}, resolvedValue), { path: path, originalPath: originalPath });
|
||||
}
|
||||
// For node_modules lookups, get the real path so that multiple accesses to an `npm link`-ed module do not create duplicate files.
|
||||
return { value: resolvedValue && { resolved: resolvedValue, isExternalLibraryImport: true } };
|
||||
@@ -29942,7 +29957,7 @@ var ts;
|
||||
file.bindDiagnostics.push(diag);
|
||||
}
|
||||
else {
|
||||
file.bindSuggestionDiagnostics = ts.append(file.bindSuggestionDiagnostics, __assign({}, diag, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
file.bindSuggestionDiagnostics = ts.append(file.bindSuggestionDiagnostics, __assign(__assign({}, diag), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
}
|
||||
function bind(node) {
|
||||
@@ -32376,7 +32391,7 @@ var ts;
|
||||
function addUnusedDiagnostics() {
|
||||
checkUnusedIdentifiers(getPotentiallyUnusedIdentifiers(file), function (containingNode, kind, diag) {
|
||||
if (!ts.containsParseError(containingNode) && !unusedIsError(kind)) {
|
||||
(diagnostics || (diagnostics = [])).push(__assign({}, diag, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
(diagnostics || (diagnostics = [])).push(__assign(__assign({}, diag), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -32672,7 +32687,7 @@ var ts;
|
||||
diagnostics.add(diagnostic);
|
||||
}
|
||||
else {
|
||||
suggestionDiagnostics.add(__assign({}, diagnostic, { category: ts.DiagnosticCategory.Suggestion }));
|
||||
suggestionDiagnostics.add(__assign(__assign({}, diagnostic), { category: ts.DiagnosticCategory.Suggestion }));
|
||||
}
|
||||
}
|
||||
function errorOrSuggestion(isError, location, message, arg0, arg1, arg2, arg3) {
|
||||
@@ -35940,7 +35955,7 @@ var ts;
|
||||
// using the `baseUrl` compiler option (which we would otherwise never use in declaration emit) and a non-relative
|
||||
// specifier preference
|
||||
var moduleResolverHost = context.tracker.moduleResolverHost;
|
||||
var specifierCompilerOptions = isBundle_1 ? __assign({}, compilerOptions, { baseUrl: moduleResolverHost.getCommonSourceDirectory() }) : compilerOptions;
|
||||
var specifierCompilerOptions = isBundle_1 ? __assign(__assign({}, compilerOptions), { baseUrl: moduleResolverHost.getCommonSourceDirectory() }) : compilerOptions;
|
||||
specifier = ts.first(ts.moduleSpecifiers.getModuleSpecifiers(symbol, specifierCompilerOptions, contextFile, moduleResolverHost, host.getSourceFiles(), { importModuleSpecifierPreference: isBundle_1 ? "non-relative" : "relative" }, host.redirectTargetsMap));
|
||||
links.specifierCache = links.specifierCache || ts.createMap();
|
||||
links.specifierCache.set(contextFile.path, specifier);
|
||||
@@ -43005,7 +43020,7 @@ var ts;
|
||||
var childrenPropName = childPropName === undefined ? "children" : ts.unescapeLeadingUnderscores(childPropName);
|
||||
var childrenTargetType = getIndexedAccessType(target, getLiteralType(childrenPropName));
|
||||
var diagnostic = ts.Diagnostics._0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2;
|
||||
invalidTextDiagnostic = __assign({}, diagnostic, { key: "!!ALREADY FORMATTED!!", message: ts.formatMessage(/*_dummy*/ undefined, diagnostic, tagNameText, childrenPropName, typeToString(childrenTargetType)) });
|
||||
invalidTextDiagnostic = __assign(__assign({}, diagnostic), { key: "!!ALREADY FORMATTED!!", message: ts.formatMessage(/*_dummy*/ undefined, diagnostic, tagNameText, childrenPropName, typeToString(childrenTargetType)) });
|
||||
}
|
||||
return invalidTextDiagnostic;
|
||||
}
|
||||
@@ -55106,7 +55121,18 @@ var ts;
|
||||
return checkExpression(node.expression, checkMode);
|
||||
}
|
||||
function checkExpressionWorker(node, checkMode, forceTuple) {
|
||||
switch (node.kind) {
|
||||
var kind = node.kind;
|
||||
if (cancellationToken) {
|
||||
// Only bother checking on a few construct kinds. We don't want to be excessively
|
||||
// hitting the cancellation token on every node we check.
|
||||
switch (kind) {
|
||||
case 210 /* ClassExpression */:
|
||||
case 197 /* FunctionExpression */:
|
||||
case 198 /* ArrowFunction */:
|
||||
cancellationToken.throwIfCancellationRequested();
|
||||
}
|
||||
}
|
||||
switch (kind) {
|
||||
case 73 /* Identifier */:
|
||||
return checkIdentifier(node);
|
||||
case 101 /* ThisKeyword */:
|
||||
@@ -63916,27 +63942,88 @@ var ts;
|
||||
: node;
|
||||
}
|
||||
ts.updateTemplateExpression = updateTemplateExpression;
|
||||
function createTemplateHead(text) {
|
||||
var node = createSynthesizedNode(15 /* TemplateHead */);
|
||||
var rawTextScanner;
|
||||
var invalidValueSentinel = {};
|
||||
function getCookedText(kind, rawText) {
|
||||
if (!rawTextScanner) {
|
||||
rawTextScanner = ts.createScanner(99 /* Latest */, /*skipTrivia*/ false, 0 /* Standard */);
|
||||
}
|
||||
switch (kind) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
rawTextScanner.setText("`" + rawText + "`");
|
||||
break;
|
||||
case 15 /* TemplateHead */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
rawTextScanner.setText("`" + rawText + "${");
|
||||
break;
|
||||
case 16 /* TemplateMiddle */:
|
||||
// tslint:disable-next-line no-invalid-template-strings
|
||||
rawTextScanner.setText("}" + rawText + "${");
|
||||
break;
|
||||
case 17 /* TemplateTail */:
|
||||
rawTextScanner.setText("}" + rawText + "`");
|
||||
break;
|
||||
}
|
||||
var token = rawTextScanner.scan();
|
||||
if (token === 23 /* CloseBracketToken */) {
|
||||
token = rawTextScanner.reScanTemplateToken();
|
||||
}
|
||||
if (rawTextScanner.isUnterminated()) {
|
||||
rawTextScanner.setText(undefined);
|
||||
return invalidValueSentinel;
|
||||
}
|
||||
var tokenValue;
|
||||
switch (token) {
|
||||
case 14 /* NoSubstitutionTemplateLiteral */:
|
||||
case 15 /* TemplateHead */:
|
||||
case 16 /* TemplateMiddle */:
|
||||
case 17 /* TemplateTail */:
|
||||
tokenValue = rawTextScanner.getTokenValue();
|
||||
break;
|
||||
}
|
||||
if (rawTextScanner.scan() !== 1 /* EndOfFileToken */) {
|
||||
rawTextScanner.setText(undefined);
|
||||
return invalidValueSentinel;
|
||||
}
|
||||
rawTextScanner.setText(undefined);
|
||||
return tokenValue;
|
||||
}
|
||||
function createTemplateLiteralLikeNode(kind, text, rawText) {
|
||||
var node = createSynthesizedNode(kind);
|
||||
node.text = text;
|
||||
if (rawText === undefined || text === rawText) {
|
||||
node.rawText = rawText;
|
||||
}
|
||||
else {
|
||||
var cooked = getCookedText(kind, rawText);
|
||||
if (typeof cooked === "object") {
|
||||
return ts.Debug.fail("Invalid raw text");
|
||||
}
|
||||
ts.Debug.assert(text === cooked, "Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.");
|
||||
node.rawText = rawText;
|
||||
}
|
||||
return node;
|
||||
}
|
||||
function createTemplateHead(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(15 /* TemplateHead */, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateHead = createTemplateHead;
|
||||
function createTemplateMiddle(text) {
|
||||
var node = createSynthesizedNode(16 /* TemplateMiddle */);
|
||||
function createTemplateMiddle(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(16 /* TemplateMiddle */, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateMiddle = createTemplateMiddle;
|
||||
function createTemplateTail(text) {
|
||||
var node = createSynthesizedNode(17 /* TemplateTail */);
|
||||
function createTemplateTail(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(17 /* TemplateTail */, text, rawText);
|
||||
node.text = text;
|
||||
return node;
|
||||
}
|
||||
ts.createTemplateTail = createTemplateTail;
|
||||
function createNoSubstitutionTemplateLiteral(text) {
|
||||
var node = createSynthesizedNode(14 /* NoSubstitutionTemplateLiteral */);
|
||||
node.text = text;
|
||||
function createNoSubstitutionTemplateLiteral(text, rawText) {
|
||||
var node = createTemplateLiteralLikeNode(14 /* NoSubstitutionTemplateLiteral */, text, rawText);
|
||||
return node;
|
||||
}
|
||||
ts.createNoSubstitutionTemplateLiteral = createNoSubstitutionTemplateLiteral;
|
||||
@@ -77740,13 +77827,16 @@ var ts;
|
||||
// Find original source text, since we need to emit the raw strings of the tagged template.
|
||||
// The raw strings contain the (escaped) strings of what the user wrote.
|
||||
// Examples: `\n` is converted to "\\n", a template string with a newline to "\n".
|
||||
var text = ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node);
|
||||
// text contains the original source, it will also contain quotes ("`"), dolar signs and braces ("${" and "}"),
|
||||
// thus we need to remove those characters.
|
||||
// First template piece starts with "`", others with "}"
|
||||
// Last template piece ends with "`", others with "${"
|
||||
var isLast = node.kind === 14 /* NoSubstitutionTemplateLiteral */ || node.kind === 17 /* TemplateTail */;
|
||||
text = text.substring(1, text.length - (isLast ? 1 : 2));
|
||||
var text = node.rawText;
|
||||
if (text === undefined) {
|
||||
text = ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node);
|
||||
// text contains the original source, it will also contain quotes ("`"), dolar signs and braces ("${" and "}"),
|
||||
// thus we need to remove those characters.
|
||||
// First template piece starts with "`", others with "}"
|
||||
// Last template piece ends with "`", others with "${"
|
||||
var isLast = node.kind === 14 /* NoSubstitutionTemplateLiteral */ || node.kind === 17 /* TemplateTail */;
|
||||
text = text.substring(1, text.length - (isLast ? 1 : 2));
|
||||
}
|
||||
// Newline normalization:
|
||||
// ES6 Spec 11.8.6.1 - Static Semantics of TV's and TRV's
|
||||
// <CR><LF> and <CR> LineTerminatorSequences are normalized to <LF> for both TV and TRV.
|
||||
@@ -91929,7 +92019,7 @@ var ts;
|
||||
return oldProgram.structureIsReused = 2 /* Completely */;
|
||||
}
|
||||
function getEmitHost(writeFileCallback) {
|
||||
return __assign({ getPrependNodes: getPrependNodes,
|
||||
return __assign(__assign({ getPrependNodes: getPrependNodes,
|
||||
getCanonicalFileName: getCanonicalFileName, getCommonSourceDirectory: program.getCommonSourceDirectory, getCompilerOptions: program.getCompilerOptions, getCurrentDirectory: function () { return currentDirectory; }, getNewLine: function () { return host.getNewLine(); }, getSourceFile: program.getSourceFile, getSourceFileByPath: program.getSourceFileByPath, getSourceFiles: program.getSourceFiles, getLibFileFromReference: program.getLibFileFromReference, isSourceFileFromExternalLibrary: isSourceFileFromExternalLibrary,
|
||||
getResolvedProjectReferenceToRedirect: getResolvedProjectReferenceToRedirect, writeFile: writeFileCallback || (function (fileName, data, writeByteOrderMark, onError, sourceFiles) { return host.writeFile(fileName, data, writeByteOrderMark, onError, sourceFiles); }), isEmitBlocked: isEmitBlocked, readFile: function (f) { return host.readFile(f); }, fileExists: function (f) {
|
||||
// Use local caches
|
||||
@@ -91940,7 +92030,7 @@ var ts;
|
||||
return false;
|
||||
// Before falling back to the host
|
||||
return host.fileExists(f);
|
||||
} }, (host.directoryExists ? { directoryExists: function (f) { return host.directoryExists(f); } } : {}), { useCaseSensitiveFileNames: function () { return host.useCaseSensitiveFileNames(); }, getProgramBuildInfo: function () { return program.getProgramBuildInfo && program.getProgramBuildInfo(); }, getSourceFileFromReference: function (file, ref) { return program.getSourceFileFromReference(file, ref); } });
|
||||
} }, (host.directoryExists ? { directoryExists: function (f) { return host.directoryExists(f); } } : {})), { useCaseSensitiveFileNames: function () { return host.useCaseSensitiveFileNames(); }, getProgramBuildInfo: function () { return program.getProgramBuildInfo && program.getProgramBuildInfo(); }, getSourceFileFromReference: function (file, ref) { return program.getSourceFileFromReference(file, ref); } });
|
||||
}
|
||||
function emitBuildInfo(writeFileCallback) {
|
||||
ts.Debug.assert(!options.out && !options.outFile);
|
||||
@@ -94092,7 +94182,7 @@ var ts;
|
||||
}
|
||||
function convertToDiagnosticRelatedInformation(diagnostic, newProgram, toPath) {
|
||||
var file = diagnostic.file;
|
||||
return __assign({}, diagnostic, { file: file ? newProgram.getSourceFileByPath(toPath(file)) : undefined });
|
||||
return __assign(__assign({}, diagnostic), { file: file ? newProgram.getSourceFileByPath(toPath(file)) : undefined });
|
||||
}
|
||||
/**
|
||||
* Releases program and other related not needed properties
|
||||
@@ -94487,7 +94577,7 @@ var ts;
|
||||
}
|
||||
function convertToReusableDiagnosticRelatedInformation(diagnostic, relativeToBuildInfo) {
|
||||
var file = diagnostic.file;
|
||||
return __assign({}, diagnostic, { file: file ? relativeToBuildInfo(file.path) : undefined });
|
||||
return __assign(__assign({}, diagnostic), { file: file ? relativeToBuildInfo(file.path) : undefined });
|
||||
}
|
||||
var BuilderProgramKind;
|
||||
(function (BuilderProgramKind) {
|
||||
@@ -99196,7 +99286,7 @@ var ts;
|
||||
this.log.writeLine("Exec: " + command);
|
||||
}
|
||||
try {
|
||||
var stdout = this.nodeExecSync(command, __assign({}, options, { encoding: "utf-8" }));
|
||||
var stdout = this.nodeExecSync(command, __assign(__assign({}, options), { encoding: "utf-8" }));
|
||||
if (this.log.isEnabled()) {
|
||||
this.log.writeLine(" Succeeded. stdout:" + indent(ts.sys.newLine, stdout));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user