@typescript-deploys/pr-build 5.4.0-pr-56183-8 → 5.4.0-pr-55600-40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/tsserver.js CHANGED
@@ -146,6 +146,7 @@ __export(server_exports, {
146
146
  ProcessLevel: () => ProcessLevel,
147
147
  ProgramUpdateLevel: () => ProgramUpdateLevel,
148
148
  QuotePreference: () => QuotePreference,
149
+ RegularExpressionFlags: () => RegularExpressionFlags,
149
150
  RelationComparisonResult: () => RelationComparisonResult,
150
151
  Rename: () => ts_Rename_exports,
151
152
  ScriptElementKind: () => ScriptElementKind,
@@ -271,6 +272,7 @@ __export(server_exports, {
271
272
  changeExtension: () => changeExtension,
272
273
  changesAffectModuleResolution: () => changesAffectModuleResolution,
273
274
  changesAffectingProgramStructure: () => changesAffectingProgramStructure,
275
+ characterToRegularExpressionFlag: () => characterToRegularExpressionFlag,
274
276
  childIsDecorated: () => childIsDecorated,
275
277
  classElementOrClassElementParameterIsDecorated: () => classElementOrClassElementParameterIsDecorated,
276
278
  classHasClassThisAssignment: () => classHasClassThisAssignment,
@@ -2036,6 +2038,7 @@ __export(server_exports, {
2036
2038
  reducePathComponents: () => reducePathComponents,
2037
2039
  refactor: () => ts_refactor_exports,
2038
2040
  regExpEscape: () => regExpEscape,
2041
+ regularExpressionFlagToCharacter: () => regularExpressionFlagToCharacter,
2039
2042
  relativeComplement: () => relativeComplement,
2040
2043
  removeAllComments: () => removeAllComments,
2041
2044
  removeEmitHelper: () => removeEmitHelper,
@@ -6255,6 +6258,20 @@ var GeneratedIdentifierFlags = /* @__PURE__ */ ((GeneratedIdentifierFlags2) => {
6255
6258
  GeneratedIdentifierFlags2[GeneratedIdentifierFlags2["AllowNameSubstitution"] = 64] = "AllowNameSubstitution";
6256
6259
  return GeneratedIdentifierFlags2;
6257
6260
  })(GeneratedIdentifierFlags || {});
6261
+ var RegularExpressionFlags = /* @__PURE__ */ ((RegularExpressionFlags2) => {
6262
+ RegularExpressionFlags2[RegularExpressionFlags2["None"] = 0] = "None";
6263
+ RegularExpressionFlags2[RegularExpressionFlags2["HasIndices"] = 1] = "HasIndices";
6264
+ RegularExpressionFlags2[RegularExpressionFlags2["Global"] = 2] = "Global";
6265
+ RegularExpressionFlags2[RegularExpressionFlags2["IgnoreCase"] = 4] = "IgnoreCase";
6266
+ RegularExpressionFlags2[RegularExpressionFlags2["Multiline"] = 8] = "Multiline";
6267
+ RegularExpressionFlags2[RegularExpressionFlags2["DotAll"] = 16] = "DotAll";
6268
+ RegularExpressionFlags2[RegularExpressionFlags2["Unicode"] = 32] = "Unicode";
6269
+ RegularExpressionFlags2[RegularExpressionFlags2["UnicodeSets"] = 64] = "UnicodeSets";
6270
+ RegularExpressionFlags2[RegularExpressionFlags2["Sticky"] = 128] = "Sticky";
6271
+ RegularExpressionFlags2[RegularExpressionFlags2["UnicodeMode"] = 96] = "UnicodeMode";
6272
+ RegularExpressionFlags2[RegularExpressionFlags2["Modifiers"] = 28] = "Modifiers";
6273
+ return RegularExpressionFlags2;
6274
+ })(RegularExpressionFlags || {});
6258
6275
  var TokenFlags = /* @__PURE__ */ ((TokenFlags2) => {
6259
6276
  TokenFlags2[TokenFlags2["None"] = 0] = "None";
6260
6277
  TokenFlags2[TokenFlags2["PrecedingLineBreak"] = 1] = "PrecedingLineBreak";
@@ -6963,6 +6980,8 @@ var ScriptTarget = /* @__PURE__ */ ((ScriptTarget11) => {
6963
6980
  ScriptTarget11[ScriptTarget11["ES2020"] = 7] = "ES2020";
6964
6981
  ScriptTarget11[ScriptTarget11["ES2021"] = 8] = "ES2021";
6965
6982
  ScriptTarget11[ScriptTarget11["ES2022"] = 9] = "ES2022";
6983
+ ScriptTarget11[ScriptTarget11["ES2023"] = 10] = "ES2023";
6984
+ ScriptTarget11[ScriptTarget11["ES2024"] = 11] = "ES2024";
6966
6985
  ScriptTarget11[ScriptTarget11["ESNext"] = 99] = "ESNext";
6967
6986
  ScriptTarget11[ScriptTarget11["JSON"] = 100] = "JSON";
6968
6987
  ScriptTarget11[ScriptTarget11["Latest"] = 99 /* ESNext */] = "Latest";
@@ -9637,6 +9656,43 @@ var Diagnostics = {
9637
9656
  The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration: diag(1494, 1 /* Error */, "The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration_1494", "The left-hand side of a 'for...in' statement cannot be an 'await using' declaration."),
9638
9657
  _0_modifier_cannot_appear_on_an_await_using_declaration: diag(1495, 1 /* Error */, "_0_modifier_cannot_appear_on_an_await_using_declaration_1495", "'{0}' modifier cannot appear on an 'await using' declaration."),
9639
9658
  Identifier_string_literal_or_number_literal_expected: diag(1496, 1 /* Error */, "Identifier_string_literal_or_number_literal_expected_1496", "Identifier, string literal, or number literal expected."),
9659
+ Unknown_regular_expression_flag: diag(1497, 1 /* Error */, "Unknown_regular_expression_flag_1497", "Unknown regular expression flag."),
9660
+ Duplicate_regular_expression_flag: diag(1498, 1 /* Error */, "Duplicate_regular_expression_flag_1498", "Duplicate regular expression flag."),
9661
+ This_regular_expression_flag_is_only_available_when_targeting_0_or_later: diag(1499, 1 /* Error */, "This_regular_expression_flag_is_only_available_when_targeting_0_or_later_1499", "This regular expression flag is only available when targeting '{0}' or later."),
9662
+ The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously: diag(1500, 1 /* Error */, "The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously_1500", "The Unicode (u) flag and the Unicode Sets (v) flag cannot be set simultaneously."),
9663
+ Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later: diag(1501, 1 /* Error */, "Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later_1501", "Named capturing groups are only available when targeting 'ES2018' or later."),
9664
+ Subpattern_flags_must_be_present_when_there_is_a_minus_sign: diag(1502, 1 /* Error */, "Subpattern_flags_must_be_present_when_there_is_a_minus_sign_1502", "Subpattern flags must be present when there is a minus sign."),
9665
+ Incomplete_quantifier_Digit_expected: diag(1503, 1 /* Error */, "Incomplete_quantifier_Digit_expected_1503", "Incomplete quantifier. Digit expected."),
9666
+ Numbers_out_of_order_in_quantifier: diag(1504, 1 /* Error */, "Numbers_out_of_order_in_quantifier_1504", "Numbers out of order in quantifier."),
9667
+ There_is_nothing_available_for_repetition: diag(1505, 1 /* Error */, "There_is_nothing_available_for_repetition_1505", "There is nothing available for repetition."),
9668
+ Unexpected_0_Did_you_mean_to_escape_it_with_backslash: diag(1506, 1 /* Error */, "Unexpected_0_Did_you_mean_to_escape_it_with_backslash_1506", "Unexpected '{0}'. Did you mean to escape it with backslash?"),
9669
+ This_regular_expression_flag_cannot_be_toggled_within_a_subpattern: diag(1507, 1 /* Error */, "This_regular_expression_flag_cannot_be_toggled_within_a_subpattern_1507", "This regular expression flag cannot be toggled within a subpattern."),
9670
+ k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets: diag(1508, 1 /* Error */, "k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets_1508", "'\\k' must be followed by a capturing group name enclosed in angle brackets."),
9671
+ q_is_only_available_inside_character_class: diag(1509, 1 /* Error */, "q_is_only_available_inside_character_class_1509", "'\\q' is only available inside character class."),
9672
+ c_must_be_followed_by_an_ASCII_letter: diag(1510, 1 /* Error */, "c_must_be_followed_by_an_ASCII_letter_1510", "'\\c' must be followed by an ASCII letter."),
9673
+ Undetermined_character_escape: diag(1511, 1 /* Error */, "Undetermined_character_escape_1511", "Undetermined character escape."),
9674
+ Expected_a_capturing_group_name: diag(1512, 1 /* Error */, "Expected_a_capturing_group_name_1512", "Expected a capturing group name."),
9675
+ Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other: diag(1513, 1 /* Error */, "Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other_1513", "Named capturing groups with the same name must be mutually exclusive to each other."),
9676
+ A_character_class_range_must_not_be_bounded_by_another_character_class: diag(1514, 1 /* Error */, "A_character_class_range_must_not_be_bounded_by_another_character_class_1514", "A character class range must not be bounded by another character class."),
9677
+ Range_out_of_order_in_character_class: diag(1515, 1 /* Error */, "Range_out_of_order_in_character_class_1515", "Range out of order in character class."),
9678
+ Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class: diag(1516, 1 /* Error */, "Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_characte_1516", "Anything that would possibly match more than a single character is invalid inside a negated character class."),
9679
+ Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead: diag(1517, 1 /* Error */, "Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead_1517", "Operators must not be mixed within a character class. Wrap it in a nested class instead."),
9680
+ Expected_a_class_set_oprand: diag(1518, 1 /* Error */, "Expected_a_class_set_oprand_1518", "Expected a class set oprand."),
9681
+ q_must_be_followed_by_string_alternatives_enclosed_in_braces: diag(1519, 1 /* Error */, "q_must_be_followed_by_string_alternatives_enclosed_in_braces_1519", "'\\q' must be followed by string alternatives enclosed in braces."),
9682
+ A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash: diag(1520, 1 /* Error */, "A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backs_1520", "A character class must not contain a reserved double punctuator. Did you mean to escape it with backslash?"),
9683
+ Expected_a_Unicode_property_name: diag(1521, 1 /* Error */, "Expected_a_Unicode_property_name_1521", "Expected a Unicode property name."),
9684
+ Unknown_Unicode_property_name: diag(1522, 1 /* Error */, "Unknown_Unicode_property_name_1522", "Unknown Unicode property name."),
9685
+ Expected_a_Unicode_property_value: diag(1523, 1 /* Error */, "Expected_a_Unicode_property_value_1523", "Expected a Unicode property value."),
9686
+ Unknown_Unicode_property_value: diag(1524, 1 /* Error */, "Unknown_Unicode_property_value_1524", "Unknown Unicode property value."),
9687
+ Expected_a_Unicode_property_name_or_value: diag(1525, 1 /* Error */, "Expected_a_Unicode_property_name_or_value_1525", "Expected a Unicode property name or value."),
9688
+ Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set: diag(1526, 1 /* Error */, "Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_t_1526", "Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set."),
9689
+ Unknown_Unicode_property_name_or_value: diag(1527, 1 /* Error */, "Unknown_Unicode_property_name_or_value_1527", "Unknown Unicode property name or value."),
9690
+ Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set: diag(1528, 1 /* Error */, "Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v__1528", "Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set."),
9691
+ _0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces: diag(1529, 1 /* Error */, "_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces_1529", "'\\{0}' must be followed by a Unicode property value expression enclosed in braces."),
9692
+ There_is_no_capturing_group_named_0_in_this_regular_expression: diag(1530, 1 /* Error */, "There_is_no_capturing_group_named_0_in_this_regular_expression_1530", "There is no capturing group named '{0}' in this regular expression."),
9693
+ A_decimal_escape_must_refer_to_an_existent_capturing_group_There_are_only_0_capturing_groups_in_this_regular_expression: diag(1531, 1 /* Error */, "A_decimal_escape_must_refer_to_an_existent_capturing_group_There_are_only_0_capturing_groups_in_this_1531", "A decimal escape must refer to an existent capturing group. There are only {0} capturing groups in this regular expression."),
9694
+ Decimal_escapes_are_invalid_when_there_are_no_capturing_groups_in_a_regular_expression: diag(1532, 1 /* Error */, "Decimal_escapes_are_invalid_when_there_are_no_capturing_groups_in_a_regular_expression_1532", "Decimal escapes are invalid when there are no capturing groups in a regular expression."),
9695
+ _0_is_not_a_valid_character_escape: diag(1533, 1 /* Error */, "_0_is_not_a_valid_character_escape_1533", "'\\{0}' is not a valid character escape."),
9640
9696
  The_types_of_0_are_incompatible_between_these_types: diag(2200, 1 /* Error */, "The_types_of_0_are_incompatible_between_these_types_2200", "The types of '{0}' are incompatible between these types."),
9641
9697
  The_types_returned_by_0_are_incompatible_between_these_types: diag(2201, 1 /* Error */, "The_types_returned_by_0_are_incompatible_between_these_types_2201", "The types returned by '{0}' are incompatible between these types."),
9642
9698
  Call_signature_return_types_0_and_1_are_incompatible: diag(
@@ -11479,6 +11535,26 @@ var textToToken = new Map(Object.entries({
11479
11535
  "#": 63 /* HashToken */,
11480
11536
  "`": 62 /* BacktickToken */
11481
11537
  }));
11538
+ var charToRegExpFlag = new Map(Object.entries({
11539
+ d: 1 /* HasIndices */,
11540
+ g: 2 /* Global */,
11541
+ i: 4 /* IgnoreCase */,
11542
+ m: 8 /* Multiline */,
11543
+ s: 16 /* DotAll */,
11544
+ u: 32 /* Unicode */,
11545
+ v: 64 /* UnicodeSets */,
11546
+ y: 128 /* Sticky */
11547
+ }));
11548
+ var regExpFlagToFirstAvailableLanguageVersion = /* @__PURE__ */ new Map([
11549
+ [1 /* HasIndices */, 9 /* ES2022 */],
11550
+ [2 /* Global */, 0 /* ES3 */],
11551
+ [4 /* IgnoreCase */, 0 /* ES3 */],
11552
+ [8 /* Multiline */, 0 /* ES3 */],
11553
+ [16 /* DotAll */, 5 /* ES2018 */],
11554
+ [32 /* Unicode */, 2 /* ES2015 */],
11555
+ [64 /* UnicodeSets */, 11 /* ES2024 */],
11556
+ [128 /* Sticky */, 2 /* ES2015 */]
11557
+ ]);
11482
11558
  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];
11483
11559
  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];
11484
11560
  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, 6e3, 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, 43e3, 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];
@@ -11529,6 +11605,16 @@ function tokenToString(t) {
11529
11605
  function stringToToken(s) {
11530
11606
  return textToToken.get(s);
11531
11607
  }
11608
+ var regExpFlagChars = makeReverseMap(charToRegExpFlag);
11609
+ function regularExpressionFlagToCharacter(f) {
11610
+ return regExpFlagChars[f];
11611
+ }
11612
+ function characterToRegularExpressionFlag(c) {
11613
+ return charToRegExpFlag.get(c);
11614
+ }
11615
+ function regularExpressionFlagToFirstAvailableLanguageVersion(f) {
11616
+ return regExpFlagToFirstAvailableLanguageVersion.get(f);
11617
+ }
11532
11618
  function computeLineStarts(text) {
11533
11619
  const result = [];
11534
11620
  let pos = 0;
@@ -11625,8 +11711,11 @@ function isDigit(ch) {
11625
11711
  function isHexDigit(ch) {
11626
11712
  return isDigit(ch) || ch >= 65 /* A */ && ch <= 70 /* F */ || ch >= 97 /* a */ && ch <= 102 /* f */;
11627
11713
  }
11628
- function isCodePoint(code) {
11629
- return code <= 1114111;
11714
+ function isASCIILetter(ch) {
11715
+ return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */;
11716
+ }
11717
+ function isWordCharacter(ch) {
11718
+ return isASCIILetter(ch) || isDigit(ch) || ch === 95 /* _ */;
11630
11719
  }
11631
11720
  function isOctalDigit(ch) {
11632
11721
  return ch >= 48 /* _0 */ && ch <= 55 /* _7 */;
@@ -11965,10 +12054,10 @@ function getShebang(text) {
11965
12054
  }
11966
12055
  }
11967
12056
  function isIdentifierStart(ch, languageVersion) {
11968
- return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierStart(ch, languageVersion);
12057
+ return isASCIILetter(ch) || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierStart(ch, languageVersion);
11969
12058
  }
11970
12059
  function isIdentifierPart(ch, languageVersion, identifierVariant) {
11971
- return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch >= 48 /* _0 */ && ch <= 57 /* _9 */ || ch === 36 /* $ */ || ch === 95 /* _ */ || // "-" and ":" are valid in JSX Identifiers
12060
+ return isWordCharacter(ch) || ch === 36 /* $ */ || // "-" and ":" are valid in JSX Identifiers
11972
12061
  (identifierVariant === 1 /* JSX */ ? ch === 45 /* minus */ || ch === 58 /* colon */ : false) || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierPart(ch, languageVersion);
11973
12062
  }
11974
12063
  function isIdentifierText(name, languageVersion, identifierVariant) {
@@ -12289,7 +12378,9 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12289
12378
  result += text.substring(start3, pos);
12290
12379
  result += scanEscapeSequence(
12291
12380
  /*shouldEmitInvalidEscapeError*/
12292
- true
12381
+ true,
12382
+ /*isRegularExpression*/
12383
+ false
12293
12384
  );
12294
12385
  start3 = pos;
12295
12386
  continue;
@@ -12333,7 +12424,11 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12333
12424
  }
12334
12425
  if (currChar === 92 /* backslash */) {
12335
12426
  contents += text.substring(start3, pos);
12336
- contents += scanEscapeSequence(shouldEmitInvalidEscapeError);
12427
+ contents += scanEscapeSequence(
12428
+ shouldEmitInvalidEscapeError,
12429
+ /*isRegularExpression*/
12430
+ false
12431
+ );
12337
12432
  start3 = pos;
12338
12433
  continue;
12339
12434
  }
@@ -12353,7 +12448,7 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12353
12448
  tokenValue = contents;
12354
12449
  return resultingToken;
12355
12450
  }
12356
- function scanEscapeSequence(shouldEmitInvalidEscapeError) {
12451
+ function scanEscapeSequence(shouldEmitInvalidEscapeError, isRegularExpression) {
12357
12452
  const start3 = pos;
12358
12453
  pos++;
12359
12454
  if (pos >= end) {
@@ -12381,7 +12476,7 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12381
12476
  pos++;
12382
12477
  }
12383
12478
  tokenFlags |= 2048 /* ContainsInvalidEscape */;
12384
- if (shouldEmitInvalidEscapeError) {
12479
+ if (isRegularExpression || shouldEmitInvalidEscapeError) {
12385
12480
  const code = parseInt(text.substring(start3 + 1, pos), 8);
12386
12481
  error2(Diagnostics.Octal_escape_sequences_are_not_allowed_Use_the_syntax_0, start3, pos - start3, "\\x" + code.toString(16).padStart(2, "0"));
12387
12482
  return String.fromCharCode(code);
@@ -12390,7 +12485,7 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12390
12485
  case 56 /* _8 */:
12391
12486
  case 57 /* _9 */:
12392
12487
  tokenFlags |= 2048 /* ContainsInvalidEscape */;
12393
- if (shouldEmitInvalidEscapeError) {
12488
+ if (isRegularExpression || shouldEmitInvalidEscapeError) {
12394
12489
  error2(Diagnostics.Escape_sequence_0_is_not_allowed, start3, pos - start3, text.substring(start3, pos));
12395
12490
  return String.fromCharCode(ch);
12396
12491
  }
@@ -12412,62 +12507,42 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12412
12507
  case 34 /* doubleQuote */:
12413
12508
  return '"';
12414
12509
  case 117 /* u */:
12415
- if (pos < end && text.charCodeAt(pos) === 123 /* openBrace */) {
12416
- pos++;
12417
- const escapedValueString = scanMinimumNumberOfHexDigits(
12418
- 1,
12419
- /*canHaveSeparators*/
12420
- false
12421
- );
12422
- const escapedValue = escapedValueString ? parseInt(escapedValueString, 16) : -1;
12423
- if (escapedValue < 0) {
12424
- tokenFlags |= 2048 /* ContainsInvalidEscape */;
12425
- if (shouldEmitInvalidEscapeError) {
12426
- error2(Diagnostics.Hexadecimal_digit_expected);
12427
- }
12428
- return text.substring(start3, pos);
12429
- }
12430
- if (!isCodePoint(escapedValue)) {
12431
- tokenFlags |= 2048 /* ContainsInvalidEscape */;
12432
- if (shouldEmitInvalidEscapeError) {
12433
- error2(Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive);
12434
- }
12435
- return text.substring(start3, pos);
12436
- }
12437
- if (pos >= end) {
12438
- tokenFlags |= 2048 /* ContainsInvalidEscape */;
12439
- if (shouldEmitInvalidEscapeError) {
12440
- error2(Diagnostics.Unexpected_end_of_text);
12441
- }
12442
- return text.substring(start3, pos);
12443
- }
12444
- if (text.charCodeAt(pos) !== 125 /* closeBrace */) {
12445
- tokenFlags |= 2048 /* ContainsInvalidEscape */;
12446
- if (shouldEmitInvalidEscapeError) {
12447
- error2(Diagnostics.Unterminated_Unicode_escape_sequence);
12448
- }
12449
- return text.substring(start3, pos);
12450
- }
12451
- pos++;
12452
- tokenFlags |= 8 /* ExtendedUnicodeEscape */;
12453
- return utf16EncodeAsString(escapedValue);
12510
+ if ((!isRegularExpression || shouldEmitInvalidEscapeError) && pos < end && text.charCodeAt(pos) === 123 /* openBrace */) {
12511
+ pos -= 2;
12512
+ return scanExtendedUnicodeEscape(isRegularExpression || shouldEmitInvalidEscapeError);
12454
12513
  }
12455
12514
  for (; pos < start3 + 6; pos++) {
12456
12515
  if (!(pos < end && isHexDigit(text.charCodeAt(pos)))) {
12457
12516
  tokenFlags |= 2048 /* ContainsInvalidEscape */;
12458
- if (shouldEmitInvalidEscapeError) {
12517
+ if (isRegularExpression || shouldEmitInvalidEscapeError) {
12459
12518
  error2(Diagnostics.Hexadecimal_digit_expected);
12460
12519
  }
12461
12520
  return text.substring(start3, pos);
12462
12521
  }
12463
12522
  }
12464
12523
  tokenFlags |= 1024 /* UnicodeEscape */;
12465
- return String.fromCharCode(parseInt(text.substring(start3 + 2, pos), 16));
12524
+ const escapedValue = parseInt(text.substring(start3 + 2, pos), 16);
12525
+ const escapedValueString = String.fromCharCode(escapedValue);
12526
+ if (isRegularExpression && shouldEmitInvalidEscapeError && escapedValue >= 55296 && escapedValue <= 56319 && pos + 6 < end && text.substring(pos, pos + 2) === "\\u" && text.charCodeAt(pos + 2) !== 123 /* openBrace */) {
12527
+ const nextStart = pos;
12528
+ let nextPos = pos + 2;
12529
+ for (; nextPos < nextStart + 6; nextPos++) {
12530
+ if (!isHexDigit(text.charCodeAt(pos))) {
12531
+ return escapedValueString;
12532
+ }
12533
+ }
12534
+ const nextEscapedValue = parseInt(text.substring(nextStart + 2, nextPos), 16);
12535
+ if (nextEscapedValue >= 56320 && nextEscapedValue <= 57343) {
12536
+ pos = nextPos;
12537
+ return escapedValueString + String.fromCharCode(nextEscapedValue);
12538
+ }
12539
+ }
12540
+ return escapedValueString;
12466
12541
  case 120 /* x */:
12467
12542
  for (; pos < start3 + 4; pos++) {
12468
12543
  if (!(pos < end && isHexDigit(text.charCodeAt(pos)))) {
12469
12544
  tokenFlags |= 2048 /* ContainsInvalidEscape */;
12470
- if (shouldEmitInvalidEscapeError) {
12545
+ if (isRegularExpression || shouldEmitInvalidEscapeError) {
12471
12546
  error2(Diagnostics.Hexadecimal_digit_expected);
12472
12547
  }
12473
12548
  return text.substring(start3, pos);
@@ -12484,10 +12559,16 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12484
12559
  case 8233 /* paragraphSeparator */:
12485
12560
  return "";
12486
12561
  default:
12562
+ if (isRegularExpression && (shouldEmitInvalidEscapeError || isIdentifierPart(ch, languageVersion))) {
12563
+ error2(Diagnostics._0_is_not_a_valid_character_escape, pos - 2, 2, String.fromCharCode(ch));
12564
+ }
12487
12565
  return String.fromCharCode(ch);
12488
12566
  }
12489
12567
  }
12490
- function scanExtendedUnicodeEscape() {
12568
+ function scanExtendedUnicodeEscape(shouldEmitInvalidEscapeError = true) {
12569
+ const start3 = pos;
12570
+ pos += 3;
12571
+ const escapedStart = pos;
12491
12572
  const escapedValueString = scanMinimumNumberOfHexDigits(
12492
12573
  1,
12493
12574
  /*canHaveSeparators*/
@@ -12496,24 +12577,34 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12496
12577
  const escapedValue = escapedValueString ? parseInt(escapedValueString, 16) : -1;
12497
12578
  let isInvalidExtendedEscape = false;
12498
12579
  if (escapedValue < 0) {
12499
- error2(Diagnostics.Hexadecimal_digit_expected);
12580
+ if (shouldEmitInvalidEscapeError) {
12581
+ error2(Diagnostics.Hexadecimal_digit_expected);
12582
+ }
12500
12583
  isInvalidExtendedEscape = true;
12501
12584
  } else if (escapedValue > 1114111) {
12502
- error2(Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive);
12585
+ if (shouldEmitInvalidEscapeError) {
12586
+ error2(Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive, escapedStart, pos - escapedStart);
12587
+ }
12503
12588
  isInvalidExtendedEscape = true;
12504
12589
  }
12505
12590
  if (pos >= end) {
12506
- error2(Diagnostics.Unexpected_end_of_text);
12591
+ if (shouldEmitInvalidEscapeError) {
12592
+ error2(Diagnostics.Unexpected_end_of_text);
12593
+ }
12507
12594
  isInvalidExtendedEscape = true;
12508
12595
  } else if (text.charCodeAt(pos) === 125 /* closeBrace */) {
12509
12596
  pos++;
12510
12597
  } else {
12511
- error2(Diagnostics.Unterminated_Unicode_escape_sequence);
12598
+ if (shouldEmitInvalidEscapeError) {
12599
+ error2(Diagnostics.Unterminated_Unicode_escape_sequence);
12600
+ }
12512
12601
  isInvalidExtendedEscape = true;
12513
12602
  }
12514
12603
  if (isInvalidExtendedEscape) {
12515
- return "";
12604
+ tokenFlags |= 2048 /* ContainsInvalidEscape */;
12605
+ return text.substring(start3, pos);
12516
12606
  }
12607
+ tokenFlags |= 8 /* ExtendedUnicodeEscape */;
12517
12608
  return utf16EncodeAsString(escapedValue);
12518
12609
  }
12519
12610
  function peekUnicodeEscape() {
@@ -12555,8 +12646,6 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12555
12646
  } else if (ch === 92 /* backslash */) {
12556
12647
  ch = peekExtendedUnicodeEscape();
12557
12648
  if (ch >= 0 && isIdentifierPart(ch, languageVersion)) {
12558
- pos += 3;
12559
- tokenFlags |= 8 /* ExtendedUnicodeEscape */;
12560
12649
  result += scanExtendedUnicodeEscape();
12561
12650
  start3 = pos;
12562
12651
  continue;
@@ -13027,8 +13116,6 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
13027
13116
  case 92 /* backslash */:
13028
13117
  const extendedCookedChar = peekExtendedUnicodeEscape();
13029
13118
  if (extendedCookedChar >= 0 && isIdentifierStart(extendedCookedChar, languageVersion)) {
13030
- pos += 3;
13031
- tokenFlags |= 8 /* ExtendedUnicodeEscape */;
13032
13119
  tokenValue = scanExtendedUnicodeEscape() + scanIdentifierParts();
13033
13120
  return token = getIdentifierToken();
13034
13121
  }
@@ -13044,7 +13131,7 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
13044
13131
  return token = 0 /* Unknown */;
13045
13132
  case 35 /* hash */:
13046
13133
  if (pos !== 0 && text[pos + 1] === "!") {
13047
- error2(Diagnostics.can_only_be_used_at_the_start_of_a_file);
13134
+ error2(Diagnostics.can_only_be_used_at_the_start_of_a_file, pos, 2);
13048
13135
  pos++;
13049
13136
  return token = 0 /* Unknown */;
13050
13137
  }
@@ -13053,8 +13140,6 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
13053
13140
  pos++;
13054
13141
  const extendedCookedChar2 = peekExtendedUnicodeEscape();
13055
13142
  if (extendedCookedChar2 >= 0 && isIdentifierStart(extendedCookedChar2, languageVersion)) {
13056
- pos += 3;
13057
- tokenFlags |= 8 /* ExtendedUnicodeEscape */;
13058
13143
  tokenValue = "#" + scanExtendedUnicodeEscape() + scanIdentifierParts();
13059
13144
  return token = 81 /* PrivateIdentifier */;
13060
13145
  }
@@ -13192,14 +13277,841 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
13192
13277
  }
13193
13278
  p++;
13194
13279
  }
13195
- while (p < end && isIdentifierPart(text.charCodeAt(p), languageVersion)) {
13280
+ const isUnterminated = !!(tokenFlags & 4 /* Unterminated */);
13281
+ const endOfBody = p - (isUnterminated ? 0 : 1);
13282
+ let regExpFlags = 0 /* None */;
13283
+ while (p < end) {
13284
+ const ch = text.charCodeAt(p);
13285
+ if (!isIdentifierPart(ch, languageVersion)) {
13286
+ break;
13287
+ }
13288
+ const flag = characterToRegularExpressionFlag(String.fromCharCode(ch));
13289
+ if (flag === void 0) {
13290
+ error2(Diagnostics.Unknown_regular_expression_flag, p, 1);
13291
+ } else if (regExpFlags & flag) {
13292
+ error2(Diagnostics.Duplicate_regular_expression_flag, p, 1);
13293
+ } else if (((regExpFlags | flag) & 96 /* UnicodeMode */) === 96 /* UnicodeMode */) {
13294
+ error2(Diagnostics.The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously, p, 1);
13295
+ } else {
13296
+ regExpFlags |= flag;
13297
+ const availableFrom = regularExpressionFlagToFirstAvailableLanguageVersion(flag);
13298
+ if (languageVersion < availableFrom) {
13299
+ error2(Diagnostics.This_regular_expression_flag_is_only_available_when_targeting_0_or_later, p, 1, ScriptTarget[availableFrom]);
13300
+ }
13301
+ }
13196
13302
  p++;
13197
13303
  }
13198
- pos = p;
13304
+ pos = tokenStart + 1;
13305
+ const saveTokenPos = tokenStart;
13306
+ const saveTokenFlags = tokenFlags;
13307
+ scanRegularExpressionWorker(text.slice(0, endOfBody), endOfBody, regExpFlags, isUnterminated);
13308
+ if (!isUnterminated) {
13309
+ pos = p;
13310
+ }
13311
+ tokenStart = saveTokenPos;
13312
+ tokenFlags = saveTokenFlags;
13199
13313
  tokenValue = text.substring(tokenStart, pos);
13200
13314
  token = 14 /* RegularExpressionLiteral */;
13201
13315
  }
13202
13316
  return token;
13317
+ function scanRegularExpressionWorker(text2, end2, regExpFlags, isUnterminated) {
13318
+ const unicodeMode = !!(regExpFlags & 96 /* UnicodeMode */);
13319
+ const unicodeSetsMode = !!(regExpFlags & 64 /* UnicodeSets */);
13320
+ let mayContainStrings = false;
13321
+ let numberOfCapturingGroups = 0;
13322
+ const groupSpecifiers = /* @__PURE__ */ new Set();
13323
+ const groupNameReferences = [];
13324
+ const decimalEscapes = [];
13325
+ const namedCapturingGroups = [];
13326
+ function scanDisjunction(isInGroup) {
13327
+ while (true) {
13328
+ namedCapturingGroups.push(/* @__PURE__ */ new Set());
13329
+ scanAlternative(isInGroup);
13330
+ namedCapturingGroups.pop();
13331
+ if (text2.charCodeAt(pos) !== 124 /* bar */) {
13332
+ return;
13333
+ }
13334
+ pos++;
13335
+ }
13336
+ }
13337
+ function scanAlternative(isInGroup) {
13338
+ let isPreviousTermQuantifiable = false;
13339
+ while (pos < end2) {
13340
+ const start3 = pos;
13341
+ const ch = text2.charCodeAt(pos);
13342
+ switch (ch) {
13343
+ case 94 /* caret */:
13344
+ case 36 /* $ */:
13345
+ pos++;
13346
+ isPreviousTermQuantifiable = false;
13347
+ break;
13348
+ case 92 /* backslash */:
13349
+ pos++;
13350
+ switch (text2.charCodeAt(pos)) {
13351
+ case 98 /* b */:
13352
+ case 66 /* B */:
13353
+ pos++;
13354
+ isPreviousTermQuantifiable = false;
13355
+ break;
13356
+ default:
13357
+ scanAtomEscape();
13358
+ isPreviousTermQuantifiable = true;
13359
+ break;
13360
+ }
13361
+ break;
13362
+ case 40 /* openParen */:
13363
+ pos++;
13364
+ if (text2.charCodeAt(pos) === 63 /* question */) {
13365
+ pos++;
13366
+ switch (text2.charCodeAt(pos)) {
13367
+ case 61 /* equals */:
13368
+ case 33 /* exclamation */:
13369
+ pos++;
13370
+ isPreviousTermQuantifiable = false;
13371
+ break;
13372
+ case 60 /* lessThan */:
13373
+ const groupNameStart = pos;
13374
+ pos++;
13375
+ switch (text2.charCodeAt(pos)) {
13376
+ case 61 /* equals */:
13377
+ case 33 /* exclamation */:
13378
+ pos++;
13379
+ isPreviousTermQuantifiable = false;
13380
+ break;
13381
+ default:
13382
+ scanGroupName(
13383
+ /*isReference*/
13384
+ false
13385
+ );
13386
+ scanExpectedChar(62 /* greaterThan */);
13387
+ if (languageVersion < 5 /* ES2018 */) {
13388
+ error2(Diagnostics.Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later, groupNameStart, pos - groupNameStart);
13389
+ }
13390
+ numberOfCapturingGroups++;
13391
+ isPreviousTermQuantifiable = true;
13392
+ break;
13393
+ }
13394
+ break;
13395
+ default:
13396
+ const start4 = pos;
13397
+ const setFlags = scanPatternModifiers();
13398
+ if (text2.charCodeAt(pos) === 45 /* minus */) {
13399
+ pos++;
13400
+ scanPatternModifiers(setFlags);
13401
+ if (pos === start4 + 1) {
13402
+ error2(Diagnostics.Subpattern_flags_must_be_present_when_there_is_a_minus_sign, start4, pos - start4);
13403
+ }
13404
+ }
13405
+ scanExpectedChar(58 /* colon */);
13406
+ isPreviousTermQuantifiable = true;
13407
+ break;
13408
+ }
13409
+ } else {
13410
+ numberOfCapturingGroups++;
13411
+ isPreviousTermQuantifiable = true;
13412
+ }
13413
+ scanDisjunction(
13414
+ /*isInGroup*/
13415
+ true
13416
+ );
13417
+ scanExpectedChar(41 /* closeParen */);
13418
+ break;
13419
+ case 123 /* openBrace */:
13420
+ pos++;
13421
+ const digitsStart = pos;
13422
+ scanDigits();
13423
+ const min2 = tokenValue;
13424
+ if (text2.charCodeAt(pos) === 44 /* comma */) {
13425
+ pos++;
13426
+ scanDigits();
13427
+ const max = tokenValue;
13428
+ if (!min2) {
13429
+ if (max || text2.charCodeAt(pos) === 125 /* closeBrace */) {
13430
+ error2(Diagnostics.Incomplete_quantifier_Digit_expected, digitsStart, 0);
13431
+ } else {
13432
+ if (unicodeMode) {
13433
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, start3, 1, String.fromCharCode(ch));
13434
+ }
13435
+ isPreviousTermQuantifiable = true;
13436
+ break;
13437
+ }
13438
+ }
13439
+ if (max && Number.parseInt(min2) > Number.parseInt(max)) {
13440
+ error2(Diagnostics.Numbers_out_of_order_in_quantifier, digitsStart, pos - digitsStart);
13441
+ }
13442
+ } else if (!min2) {
13443
+ if (unicodeMode) {
13444
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, start3, 1, String.fromCharCode(ch));
13445
+ }
13446
+ isPreviousTermQuantifiable = true;
13447
+ break;
13448
+ }
13449
+ scanExpectedChar(125 /* closeBrace */);
13450
+ pos--;
13451
+ case 42 /* asterisk */:
13452
+ case 43 /* plus */:
13453
+ case 63 /* question */:
13454
+ pos++;
13455
+ if (text2.charCodeAt(pos) === 63 /* question */) {
13456
+ pos++;
13457
+ }
13458
+ if (!isPreviousTermQuantifiable) {
13459
+ error2(Diagnostics.There_is_nothing_available_for_repetition, start3, pos - start3);
13460
+ }
13461
+ isPreviousTermQuantifiable = false;
13462
+ break;
13463
+ case 46 /* dot */:
13464
+ pos++;
13465
+ isPreviousTermQuantifiable = true;
13466
+ break;
13467
+ case 91 /* openBracket */:
13468
+ pos++;
13469
+ if (unicodeSetsMode) {
13470
+ scanClassSetExpression();
13471
+ } else {
13472
+ scanClassRanges();
13473
+ }
13474
+ scanExpectedChar(93 /* closeBracket */);
13475
+ isPreviousTermQuantifiable = true;
13476
+ break;
13477
+ case 41 /* closeParen */:
13478
+ if (isInGroup) {
13479
+ return;
13480
+ }
13481
+ case 93 /* closeBracket */:
13482
+ case 125 /* closeBrace */:
13483
+ if (isUnterminated && !isInGroup) {
13484
+ return;
13485
+ }
13486
+ if (unicodeMode) {
13487
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
13488
+ }
13489
+ pos++;
13490
+ isPreviousTermQuantifiable = true;
13491
+ break;
13492
+ case 47 /* slash */:
13493
+ case 124 /* bar */:
13494
+ return;
13495
+ default:
13496
+ scanSourceCharacter();
13497
+ isPreviousTermQuantifiable = true;
13498
+ break;
13499
+ }
13500
+ }
13501
+ }
13502
+ function scanPatternModifiers(currFlags = 0 /* None */) {
13503
+ while (pos < end2) {
13504
+ const ch = text2.charCodeAt(pos);
13505
+ if (!isIdentifierPart(ch, languageVersion)) {
13506
+ break;
13507
+ }
13508
+ const flag = characterToRegularExpressionFlag(String.fromCharCode(ch));
13509
+ if (flag === void 0) {
13510
+ error2(Diagnostics.Unknown_regular_expression_flag, pos, 1);
13511
+ } else if (currFlags & flag) {
13512
+ error2(Diagnostics.Duplicate_regular_expression_flag, pos, 1);
13513
+ } else if (!(flag & 28 /* Modifiers */)) {
13514
+ error2(Diagnostics.This_regular_expression_flag_cannot_be_toggled_within_a_subpattern, pos, 1);
13515
+ } else {
13516
+ currFlags |= flag;
13517
+ const availableFrom = regularExpressionFlagToFirstAvailableLanguageVersion(flag);
13518
+ if (languageVersion < availableFrom) {
13519
+ error2(Diagnostics.This_regular_expression_flag_is_only_available_when_targeting_0_or_later, pos, 1, ScriptTarget[availableFrom]);
13520
+ }
13521
+ }
13522
+ pos++;
13523
+ }
13524
+ return currFlags;
13525
+ }
13526
+ function scanAtomEscape() {
13527
+ Debug.assertEqual(text2.charCodeAt(pos - 1), 92 /* backslash */);
13528
+ switch (text2.charCodeAt(pos)) {
13529
+ case 107 /* k */:
13530
+ pos++;
13531
+ if (text2.charCodeAt(pos) === 60 /* lessThan */) {
13532
+ pos++;
13533
+ scanGroupName(
13534
+ /*isReference*/
13535
+ true
13536
+ );
13537
+ scanExpectedChar(62 /* greaterThan */);
13538
+ } else if (unicodeMode) {
13539
+ error2(Diagnostics.k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets, pos - 2, 2);
13540
+ }
13541
+ break;
13542
+ case 113 /* q */:
13543
+ if (unicodeSetsMode) {
13544
+ pos++;
13545
+ error2(Diagnostics.q_is_only_available_inside_character_class, pos - 2, 2);
13546
+ break;
13547
+ }
13548
+ default:
13549
+ scanCharacterClassEscape() || scanDecimalEscape() || scanCharacterEscape();
13550
+ break;
13551
+ }
13552
+ }
13553
+ function scanDecimalEscape() {
13554
+ Debug.assertEqual(text2.charCodeAt(pos - 1), 92 /* backslash */);
13555
+ const ch = text2.charCodeAt(pos);
13556
+ if (ch >= 49 /* _1 */ && ch <= 57 /* _9 */) {
13557
+ const start3 = pos;
13558
+ scanDigits();
13559
+ decimalEscapes.push({ pos: start3, end: pos, value: +tokenValue });
13560
+ return true;
13561
+ }
13562
+ return false;
13563
+ }
13564
+ function scanCharacterEscape() {
13565
+ Debug.assertEqual(text2.charCodeAt(pos - 1), 92 /* backslash */);
13566
+ let ch = text2.charCodeAt(pos);
13567
+ switch (ch) {
13568
+ case 99 /* c */:
13569
+ pos++;
13570
+ ch = text2.charCodeAt(pos);
13571
+ if (isASCIILetter(ch)) {
13572
+ pos++;
13573
+ return String.fromCharCode(ch & 31);
13574
+ }
13575
+ if (unicodeMode) {
13576
+ error2(Diagnostics.c_must_be_followed_by_an_ASCII_letter, pos - 2, 2);
13577
+ }
13578
+ return String.fromCharCode(ch);
13579
+ case 94 /* caret */:
13580
+ case 36 /* $ */:
13581
+ case 47 /* slash */:
13582
+ case 92 /* backslash */:
13583
+ case 46 /* dot */:
13584
+ case 42 /* asterisk */:
13585
+ case 43 /* plus */:
13586
+ case 63 /* question */:
13587
+ case 40 /* openParen */:
13588
+ case 41 /* closeParen */:
13589
+ case 91 /* openBracket */:
13590
+ case 93 /* closeBracket */:
13591
+ case 123 /* openBrace */:
13592
+ case 125 /* closeBrace */:
13593
+ case 124 /* bar */:
13594
+ pos++;
13595
+ return String.fromCharCode(ch);
13596
+ default:
13597
+ if (pos >= end2) {
13598
+ error2(Diagnostics.Undetermined_character_escape, pos - 1, 1, ch);
13599
+ return "\\";
13600
+ }
13601
+ pos--;
13602
+ return scanEscapeSequence(
13603
+ /*shouldEmitInvalidEscapeError*/
13604
+ unicodeMode,
13605
+ /*isRegularExpression*/
13606
+ true
13607
+ );
13608
+ }
13609
+ }
13610
+ function scanGroupName(isReference) {
13611
+ Debug.assertEqual(text2.charCodeAt(pos - 1), 60 /* lessThan */);
13612
+ tokenStart = pos;
13613
+ scanIdentifier(codePointAt(text2, pos), languageVersion);
13614
+ if (pos === tokenStart) {
13615
+ error2(Diagnostics.Expected_a_capturing_group_name);
13616
+ } else if (isReference) {
13617
+ groupNameReferences.push({ pos: tokenStart, end: pos, name: tokenValue });
13618
+ } else if (namedCapturingGroups.some((group2) => group2.has(tokenValue))) {
13619
+ error2(Diagnostics.Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other, tokenStart, pos - tokenStart);
13620
+ } else {
13621
+ last(namedCapturingGroups).add(tokenValue);
13622
+ groupSpecifiers.add(tokenValue);
13623
+ }
13624
+ }
13625
+ function isClassContentExit(ch) {
13626
+ return ch === 93 /* closeBracket */ || pos >= end2;
13627
+ }
13628
+ function scanClassRanges() {
13629
+ Debug.assertEqual(text2.charCodeAt(pos - 1), 91 /* openBracket */);
13630
+ if (text2.charCodeAt(pos) === 94 /* caret */) {
13631
+ pos++;
13632
+ }
13633
+ while (pos < end2) {
13634
+ const ch = text2.charCodeAt(pos);
13635
+ if (isClassContentExit(ch)) {
13636
+ return;
13637
+ }
13638
+ const minStart = pos;
13639
+ const minCharacter = scanClassAtom();
13640
+ if (text2.charCodeAt(pos) === 45 /* minus */) {
13641
+ pos++;
13642
+ const ch2 = text2.charCodeAt(pos);
13643
+ if (isClassContentExit(ch2)) {
13644
+ return;
13645
+ }
13646
+ if (!minCharacter) {
13647
+ error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, minStart, pos - 1 - minStart);
13648
+ }
13649
+ const maxStart = pos;
13650
+ const maxCharacter = scanClassAtom();
13651
+ if (!maxCharacter) {
13652
+ error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, maxStart, pos - maxStart);
13653
+ continue;
13654
+ }
13655
+ if (!minCharacter) {
13656
+ continue;
13657
+ }
13658
+ const minCharacterValue = codePointAt(minCharacter, 0);
13659
+ const maxCharacterValue = codePointAt(maxCharacter, 0);
13660
+ if (minCharacter.length === charSize(minCharacterValue) && maxCharacter.length === charSize(maxCharacterValue) && minCharacterValue > maxCharacterValue) {
13661
+ error2(Diagnostics.Range_out_of_order_in_character_class, minStart, pos - minStart);
13662
+ }
13663
+ }
13664
+ }
13665
+ }
13666
+ function scanClassSetExpression() {
13667
+ Debug.assertEqual(text2.charCodeAt(pos - 1), 91 /* openBracket */);
13668
+ let isCharacterComplement = false;
13669
+ if (text2.charCodeAt(pos) === 94 /* caret */) {
13670
+ pos++;
13671
+ isCharacterComplement = true;
13672
+ }
13673
+ let expressionMayContainStrings = false;
13674
+ let ch = text2.charCodeAt(pos);
13675
+ if (isClassContentExit(ch)) {
13676
+ return;
13677
+ }
13678
+ let start3 = pos;
13679
+ let oprand;
13680
+ switch (text2.slice(pos, pos + 2)) {
13681
+ case "--":
13682
+ case "&&":
13683
+ error2(Diagnostics.Expected_a_class_set_oprand);
13684
+ mayContainStrings = false;
13685
+ break;
13686
+ default:
13687
+ oprand = scanClassSetOprand();
13688
+ break;
13689
+ }
13690
+ switch (text2.charCodeAt(pos)) {
13691
+ case 45 /* minus */:
13692
+ if (text2.charCodeAt(pos + 1) === 45 /* minus */) {
13693
+ if (isCharacterComplement && mayContainStrings) {
13694
+ error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start3, pos - start3);
13695
+ }
13696
+ expressionMayContainStrings = mayContainStrings;
13697
+ scanClassSetSubExpression(3 /* ClassSubtraction */);
13698
+ mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
13699
+ return;
13700
+ }
13701
+ break;
13702
+ case 38 /* ampersand */:
13703
+ if (text2.charCodeAt(pos + 1) === 38 /* ampersand */) {
13704
+ scanClassSetSubExpression(2 /* ClassIntersection */);
13705
+ if (isCharacterComplement && mayContainStrings) {
13706
+ error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start3, pos - start3);
13707
+ }
13708
+ expressionMayContainStrings = mayContainStrings;
13709
+ mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
13710
+ return;
13711
+ } else {
13712
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
13713
+ }
13714
+ break;
13715
+ default:
13716
+ if (isCharacterComplement && mayContainStrings) {
13717
+ error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start3, pos - start3);
13718
+ }
13719
+ expressionMayContainStrings = mayContainStrings;
13720
+ break;
13721
+ }
13722
+ while (pos < end2) {
13723
+ ch = text2.charCodeAt(pos);
13724
+ switch (ch) {
13725
+ case 45 /* minus */:
13726
+ pos++;
13727
+ ch = text2.charCodeAt(pos);
13728
+ if (isClassContentExit(ch)) {
13729
+ mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
13730
+ return;
13731
+ }
13732
+ if (ch === 45 /* minus */) {
13733
+ pos++;
13734
+ error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);
13735
+ start3 = pos - 2;
13736
+ oprand = text2.slice(start3, pos);
13737
+ continue;
13738
+ } else {
13739
+ if (!oprand) {
13740
+ error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, start3, pos - 1 - start3);
13741
+ }
13742
+ const secondStart = pos;
13743
+ const secondOprand = scanClassSetOprand();
13744
+ if (isCharacterComplement && mayContainStrings) {
13745
+ error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, secondStart, pos - secondStart);
13746
+ }
13747
+ expressionMayContainStrings || (expressionMayContainStrings = mayContainStrings);
13748
+ if (!secondOprand) {
13749
+ error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, secondStart, pos - secondStart);
13750
+ break;
13751
+ }
13752
+ if (!oprand) {
13753
+ break;
13754
+ }
13755
+ const minCharacterValue = codePointAt(oprand, 0);
13756
+ const maxCharacterValue = codePointAt(secondOprand, 0);
13757
+ if (oprand.length === charSize(minCharacterValue) && secondOprand.length === charSize(maxCharacterValue) && minCharacterValue > maxCharacterValue) {
13758
+ error2(Diagnostics.Range_out_of_order_in_character_class, start3, pos - start3);
13759
+ }
13760
+ }
13761
+ break;
13762
+ case 38 /* ampersand */:
13763
+ start3 = pos;
13764
+ pos++;
13765
+ if (text2.charCodeAt(pos) === 38 /* ampersand */) {
13766
+ pos++;
13767
+ error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);
13768
+ if (text2.charCodeAt(pos) === 38 /* ampersand */) {
13769
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
13770
+ pos++;
13771
+ }
13772
+ } else {
13773
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos - 1, 1, String.fromCharCode(ch));
13774
+ }
13775
+ oprand = text2.slice(start3, pos);
13776
+ continue;
13777
+ }
13778
+ if (isClassContentExit(text2.charCodeAt(pos))) {
13779
+ break;
13780
+ }
13781
+ start3 = pos;
13782
+ switch (text2.slice(pos, pos + 2)) {
13783
+ case "--":
13784
+ case "&&":
13785
+ error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos, 2);
13786
+ pos += 2;
13787
+ oprand = text2.slice(start3, pos);
13788
+ break;
13789
+ default:
13790
+ oprand = scanClassSetOprand();
13791
+ break;
13792
+ }
13793
+ }
13794
+ mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
13795
+ }
13796
+ function scanClassSetSubExpression(expressionType) {
13797
+ let expressionMayContainStrings = mayContainStrings;
13798
+ while (pos < end2) {
13799
+ let ch = text2.charCodeAt(pos);
13800
+ if (isClassContentExit(ch)) {
13801
+ break;
13802
+ }
13803
+ switch (ch) {
13804
+ case 45 /* minus */:
13805
+ pos++;
13806
+ if (text2.charCodeAt(pos) === 45 /* minus */) {
13807
+ pos++;
13808
+ if (expressionType !== 3 /* ClassSubtraction */) {
13809
+ error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);
13810
+ }
13811
+ } else {
13812
+ error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 1, 1);
13813
+ }
13814
+ break;
13815
+ case 38 /* ampersand */:
13816
+ pos++;
13817
+ if (text2.charCodeAt(pos) === 38 /* ampersand */) {
13818
+ pos++;
13819
+ if (expressionType !== 2 /* ClassIntersection */) {
13820
+ error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);
13821
+ }
13822
+ if (text2.charCodeAt(pos) === 38 /* ampersand */) {
13823
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
13824
+ pos++;
13825
+ }
13826
+ } else {
13827
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos - 1, 1, String.fromCharCode(ch));
13828
+ }
13829
+ break;
13830
+ default:
13831
+ switch (expressionType) {
13832
+ case 3 /* ClassSubtraction */:
13833
+ error2(Diagnostics._0_expected, pos, 0, "--");
13834
+ break;
13835
+ case 2 /* ClassIntersection */:
13836
+ error2(Diagnostics._0_expected, pos, 0, "&&");
13837
+ break;
13838
+ default:
13839
+ break;
13840
+ }
13841
+ break;
13842
+ }
13843
+ ch = text2.charCodeAt(pos);
13844
+ if (isClassContentExit(ch)) {
13845
+ error2(Diagnostics.Expected_a_class_set_oprand);
13846
+ break;
13847
+ }
13848
+ scanClassSetOprand();
13849
+ expressionMayContainStrings && (expressionMayContainStrings = mayContainStrings);
13850
+ }
13851
+ mayContainStrings = expressionMayContainStrings;
13852
+ }
13853
+ function scanClassSetOprand() {
13854
+ mayContainStrings = false;
13855
+ switch (text2.charCodeAt(pos)) {
13856
+ case 91 /* openBracket */:
13857
+ pos++;
13858
+ scanClassSetExpression();
13859
+ scanExpectedChar(93 /* closeBracket */);
13860
+ return "";
13861
+ case 92 /* backslash */:
13862
+ pos++;
13863
+ if (scanCharacterClassEscape()) {
13864
+ return "";
13865
+ } else if (text2.charCodeAt(pos) === 113 /* q */) {
13866
+ pos++;
13867
+ if (text2.charCodeAt(pos) === 123 /* openBrace */) {
13868
+ pos++;
13869
+ scanClassStringDisjunctionContents();
13870
+ scanExpectedChar(125 /* closeBrace */);
13871
+ return "";
13872
+ } else {
13873
+ error2(Diagnostics.q_must_be_followed_by_string_alternatives_enclosed_in_braces, pos - 2, 2);
13874
+ return "q";
13875
+ }
13876
+ }
13877
+ pos--;
13878
+ default:
13879
+ return scanClassSetCharacter();
13880
+ }
13881
+ }
13882
+ function scanClassStringDisjunctionContents() {
13883
+ Debug.assertEqual(text2.charCodeAt(pos - 1), 123 /* openBrace */);
13884
+ let characterCount = 0;
13885
+ while (pos < end2) {
13886
+ const ch = text2.charCodeAt(pos);
13887
+ switch (ch) {
13888
+ case 125 /* closeBrace */:
13889
+ if (characterCount !== 1) {
13890
+ mayContainStrings = true;
13891
+ }
13892
+ return;
13893
+ case 124 /* bar */:
13894
+ if (characterCount !== 1) {
13895
+ mayContainStrings = true;
13896
+ }
13897
+ pos++;
13898
+ start2 = pos;
13899
+ characterCount = 0;
13900
+ break;
13901
+ default:
13902
+ scanClassSetCharacter();
13903
+ characterCount++;
13904
+ break;
13905
+ }
13906
+ }
13907
+ }
13908
+ function scanClassSetCharacter() {
13909
+ const ch = text2.charCodeAt(pos);
13910
+ if (ch === 92 /* backslash */) {
13911
+ pos++;
13912
+ const ch2 = text2.charCodeAt(pos);
13913
+ switch (ch2) {
13914
+ case 98 /* b */:
13915
+ pos++;
13916
+ return "\b";
13917
+ case 38 /* ampersand */:
13918
+ case 45 /* minus */:
13919
+ case 33 /* exclamation */:
13920
+ case 35 /* hash */:
13921
+ case 37 /* percent */:
13922
+ case 44 /* comma */:
13923
+ case 58 /* colon */:
13924
+ case 59 /* semicolon */:
13925
+ case 60 /* lessThan */:
13926
+ case 61 /* equals */:
13927
+ case 62 /* greaterThan */:
13928
+ case 64 /* at */:
13929
+ case 96 /* backtick */:
13930
+ case 126 /* tilde */:
13931
+ pos++;
13932
+ return String.fromCharCode(ch2);
13933
+ default:
13934
+ return scanCharacterEscape();
13935
+ }
13936
+ } else if (ch === text2.charCodeAt(pos + 1)) {
13937
+ switch (ch) {
13938
+ case 38 /* ampersand */:
13939
+ case 33 /* exclamation */:
13940
+ case 35 /* hash */:
13941
+ case 37 /* percent */:
13942
+ case 42 /* asterisk */:
13943
+ case 43 /* plus */:
13944
+ case 44 /* comma */:
13945
+ case 46 /* dot */:
13946
+ case 58 /* colon */:
13947
+ case 59 /* semicolon */:
13948
+ case 60 /* lessThan */:
13949
+ case 61 /* equals */:
13950
+ case 62 /* greaterThan */:
13951
+ case 63 /* question */:
13952
+ case 64 /* at */:
13953
+ case 96 /* backtick */:
13954
+ case 126 /* tilde */:
13955
+ error2(Diagnostics.A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash, pos, 2);
13956
+ pos += 2;
13957
+ return text2.substring(pos - 2, pos);
13958
+ }
13959
+ }
13960
+ switch (ch) {
13961
+ case 47 /* slash */:
13962
+ case 40 /* openParen */:
13963
+ case 41 /* closeParen */:
13964
+ case 91 /* openBracket */:
13965
+ case 93 /* closeBracket */:
13966
+ case 123 /* openBrace */:
13967
+ case 125 /* closeBrace */:
13968
+ case 45 /* minus */:
13969
+ case 124 /* bar */:
13970
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
13971
+ pos++;
13972
+ return String.fromCharCode(ch);
13973
+ }
13974
+ return scanSourceCharacter();
13975
+ }
13976
+ function scanClassAtom() {
13977
+ if (text2.charCodeAt(pos) === 92 /* backslash */) {
13978
+ pos++;
13979
+ const ch = text2.charCodeAt(pos);
13980
+ switch (ch) {
13981
+ case 98 /* b */:
13982
+ pos++;
13983
+ return "\b";
13984
+ case 45 /* minus */:
13985
+ pos++;
13986
+ return String.fromCharCode(ch);
13987
+ default:
13988
+ if (scanCharacterClassEscape()) {
13989
+ return "";
13990
+ }
13991
+ return scanCharacterEscape();
13992
+ }
13993
+ } else {
13994
+ return scanSourceCharacter();
13995
+ }
13996
+ }
13997
+ function scanCharacterClassEscape() {
13998
+ Debug.assertEqual(text2.charCodeAt(pos - 1), 92 /* backslash */);
13999
+ let isCharacterComplement = false;
14000
+ const start3 = pos - 1;
14001
+ const ch = text2.charCodeAt(pos);
14002
+ switch (ch) {
14003
+ case 100 /* d */:
14004
+ case 68 /* D */:
14005
+ case 115 /* s */:
14006
+ case 83 /* S */:
14007
+ case 119 /* w */:
14008
+ case 87 /* W */:
14009
+ pos++;
14010
+ return true;
14011
+ case 80 /* P */:
14012
+ isCharacterComplement = true;
14013
+ case 112 /* p */:
14014
+ pos++;
14015
+ if (text2.charCodeAt(pos) === 123 /* openBrace */) {
14016
+ pos++;
14017
+ const propertyNameOrValueStart = pos;
14018
+ const propertyNameOrValue = scanWordCharacters();
14019
+ if (text2.charCodeAt(pos) === 61 /* equals */) {
14020
+ const propertyName = nonBinaryUnicodeProperties.get(propertyNameOrValue);
14021
+ if (pos === propertyNameOrValueStart) {
14022
+ error2(Diagnostics.Expected_a_Unicode_property_name);
14023
+ } else if (propertyName === void 0) {
14024
+ error2(Diagnostics.Unknown_Unicode_property_name, propertyNameOrValueStart, pos - propertyNameOrValueStart);
14025
+ const suggestion = getSpellingSuggestion(propertyNameOrValue, nonBinaryUnicodeProperties.keys(), identity);
14026
+ if (suggestion) {
14027
+ error2(Diagnostics.Did_you_mean_0, propertyNameOrValueStart, pos - propertyNameOrValueStart, suggestion);
14028
+ }
14029
+ }
14030
+ pos++;
14031
+ const propertyValueStart = pos;
14032
+ const propertyValue = scanWordCharacters();
14033
+ if (pos === propertyValueStart) {
14034
+ error2(Diagnostics.Expected_a_Unicode_property_value);
14035
+ } else if (propertyName !== void 0 && !valuesOfNonBinaryUnicodeProperties[propertyName].has(propertyValue)) {
14036
+ error2(Diagnostics.Unknown_Unicode_property_value, propertyValueStart, pos - propertyValueStart);
14037
+ const suggestion = getSpellingSuggestion(propertyValue, valuesOfNonBinaryUnicodeProperties[propertyName], identity);
14038
+ if (suggestion) {
14039
+ error2(Diagnostics.Did_you_mean_0, propertyValueStart, pos - propertyValueStart, suggestion);
14040
+ }
14041
+ }
14042
+ } else {
14043
+ if (pos === propertyNameOrValueStart) {
14044
+ error2(Diagnostics.Expected_a_Unicode_property_name_or_value);
14045
+ } else if (binaryUnicodePropertiesOfStrings.has(propertyNameOrValue)) {
14046
+ if (!unicodeSetsMode) {
14047
+ error2(Diagnostics.Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set, propertyNameOrValueStart, pos - propertyNameOrValueStart);
14048
+ } else if (isCharacterComplement) {
14049
+ error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, propertyNameOrValueStart, pos - propertyNameOrValueStart);
14050
+ } else {
14051
+ mayContainStrings = true;
14052
+ }
14053
+ } else if (!valuesOfNonBinaryUnicodeProperties.General_Category.has(propertyNameOrValue) && !binaryUnicodeProperties.has(propertyNameOrValue)) {
14054
+ error2(Diagnostics.Unknown_Unicode_property_name_or_value, propertyNameOrValueStart, pos - propertyNameOrValueStart);
14055
+ const suggestion = getSpellingSuggestion(propertyNameOrValue, [...valuesOfNonBinaryUnicodeProperties.General_Category, ...binaryUnicodeProperties, ...binaryUnicodePropertiesOfStrings], identity);
14056
+ if (suggestion) {
14057
+ error2(Diagnostics.Did_you_mean_0, propertyNameOrValueStart, pos - propertyNameOrValueStart, suggestion);
14058
+ }
14059
+ }
14060
+ }
14061
+ scanExpectedChar(125 /* closeBrace */);
14062
+ if (!unicodeMode) {
14063
+ error2(Diagnostics.Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set, start3, pos - start3);
14064
+ }
14065
+ } else if (unicodeMode) {
14066
+ error2(Diagnostics._0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces, pos - 2, 2, String.fromCharCode(ch));
14067
+ }
14068
+ return true;
14069
+ }
14070
+ return false;
14071
+ }
14072
+ function scanWordCharacters() {
14073
+ let value = "";
14074
+ while (pos < end2) {
14075
+ const ch = text2.charCodeAt(pos);
14076
+ if (!isWordCharacter(ch)) {
14077
+ break;
14078
+ }
14079
+ value += String.fromCharCode(ch);
14080
+ pos++;
14081
+ }
14082
+ return value;
14083
+ }
14084
+ function scanSourceCharacter() {
14085
+ const size = unicodeMode ? charSize(codePointAt(text2, pos)) : 1;
14086
+ pos += size;
14087
+ return text2.substring(pos - size, pos);
14088
+ }
14089
+ function scanExpectedChar(ch) {
14090
+ if (text2.charCodeAt(pos) === ch) {
14091
+ pos++;
14092
+ } else {
14093
+ error2(Diagnostics._0_expected, pos, 0, String.fromCharCode(ch));
14094
+ }
14095
+ }
14096
+ scanDisjunction(
14097
+ /*isInGroup*/
14098
+ false
14099
+ );
14100
+ forEach(groupNameReferences, (reference) => {
14101
+ if (!groupSpecifiers.has(reference.name)) {
14102
+ error2(Diagnostics.There_is_no_capturing_group_named_0_in_this_regular_expression, reference.pos, reference.end - reference.pos, reference.name);
14103
+ }
14104
+ });
14105
+ forEach(decimalEscapes, (escape) => {
14106
+ if (escape.value > numberOfCapturingGroups) {
14107
+ if (numberOfCapturingGroups) {
14108
+ error2(Diagnostics.A_decimal_escape_must_refer_to_an_existent_capturing_group_There_are_only_0_capturing_groups_in_this_regular_expression, escape.pos, escape.end - escape.pos, numberOfCapturingGroups);
14109
+ } else {
14110
+ error2(Diagnostics.Decimal_escapes_are_invalid_when_there_are_no_capturing_groups_in_a_regular_expression, escape.pos, escape.end - escape.pos);
14111
+ }
14112
+ }
14113
+ });
14114
+ }
13203
14115
  }
13204
14116
  function appendIfCommentDirective(commentDirectives2, text2, commentDirectiveRegEx, lineStart) {
13205
14117
  const type = getDirectiveFromComment(text2.trimStart(), commentDirectiveRegEx);
@@ -13422,8 +14334,6 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
13422
14334
  pos--;
13423
14335
  const extendedCookedChar = peekExtendedUnicodeEscape();
13424
14336
  if (extendedCookedChar >= 0 && isIdentifierStart(extendedCookedChar, languageVersion)) {
13425
- pos += 3;
13426
- tokenFlags |= 8 /* ExtendedUnicodeEscape */;
13427
14337
  tokenValue = scanExtendedUnicodeEscape() + scanIdentifierParts();
13428
14338
  return token = getIdentifierToken();
13429
14339
  }
@@ -13564,6 +14474,22 @@ var utf16EncodeAsStringWorker = String.fromCodePoint ? (codePoint) => String.fro
13564
14474
  function utf16EncodeAsString(codePoint) {
13565
14475
  return utf16EncodeAsStringWorker(codePoint);
13566
14476
  }
14477
+ var nonBinaryUnicodeProperties = new Map(Object.entries({
14478
+ General_Category: "General_Category",
14479
+ gc: "General_Category",
14480
+ Script: "Script",
14481
+ sc: "Script",
14482
+ Script_Extensions: "Script_Extensions",
14483
+ scx: "Script_Extensions"
14484
+ }));
14485
+ var binaryUnicodeProperties = /* @__PURE__ */ new Set(["ASCII", "ASCII_Hex_Digit", "AHex", "Alphabetic", "Alpha", "Any", "Assigned", "Bidi_Control", "Bidi_C", "Bidi_Mirrored", "Bidi_M", "Case_Ignorable", "CI", "Cased", "Changes_When_Casefolded", "CWCF", "Changes_When_Casemapped", "CWCM", "Changes_When_Lowercased", "CWL", "Changes_When_NFKC_Casefolded", "CWKCF", "Changes_When_Titlecased", "CWT", "Changes_When_Uppercased", "CWU", "Dash", "Default_Ignorable_Code_Point", "DI", "Deprecated", "Dep", "Diacritic", "Dia", "Emoji", "Emoji_Component", "EComp", "Emoji_Modifier", "EMod", "Emoji_Modifier_Base", "EBase", "Emoji_Presentation", "EPres", "Extended_Pictographic", "ExtPict", "Extender", "Ext", "Grapheme_Base", "Gr_Base", "Grapheme_Extend", "Gr_Ext", "Hex_Digit", "Hex", "IDS_Binary_Operator", "IDSB", "IDS_Trinary_Operator", "IDST", "ID_Continue", "IDC", "ID_Start", "IDS", "Ideographic", "Ideo", "Join_Control", "Join_C", "Logical_Order_Exception", "LOE", "Lowercase", "Lower", "Math", "Noncharacter_Code_Point", "NChar", "Pattern_Syntax", "Pat_Syn", "Pattern_White_Space", "Pat_WS", "Quotation_Mark", "QMark", "Radical", "Regional_Indicator", "RI", "Sentence_Terminal", "STerm", "Soft_Dotted", "SD", "Terminal_Punctuation", "Term", "Unified_Ideograph", "UIdeo", "Uppercase", "Upper", "Variation_Selector", "VS", "White_Space", "space", "XID_Continue", "XIDC", "XID_Start", "XIDS"]);
14486
+ var binaryUnicodePropertiesOfStrings = /* @__PURE__ */ new Set(["Basic_Emoji", "Emoji_Keycap_Sequence", "RGI_Emoji_Modifier_Sequence", "RGI_Emoji_Flag_Sequence", "RGI_Emoji_Tag_Sequence", "RGI_Emoji_ZWJ_Sequence", "RGI_Emoji"]);
14487
+ var valuesOfNonBinaryUnicodeProperties = {
14488
+ General_Category: /* @__PURE__ */ new Set(["C", "Other", "Cc", "Control", "cntrl", "Cf", "Format", "Cn", "Unassigned", "Co", "Private_Use", "Cs", "Surrogate", "L", "Letter", "LC", "Cased_Letter", "Ll", "Lowercase_Letter", "Lm", "Modifier_Letter", "Lo", "Other_Letter", "Lt", "Titlecase_Letter", "Lu", "Uppercase_Letter", "M", "Mark", "Combining_Mark", "Mc", "Spacing_Mark", "Me", "Enclosing_Mark", "Mn", "Nonspacing_Mark", "N", "Number", "Nd", "Decimal_Number", "digit", "Nl", "Letter_Number", "No", "Other_Number", "P", "Punctuation", "punct", "Pc", "Connector_Punctuation", "Pd", "Dash_Punctuation", "Pe", "Close_Punctuation", "Pf", "Final_Punctuation", "Pi", "Initial_Punctuation", "Po", "Other_Punctuation", "Ps", "Open_Punctuation", "S", "Symbol", "Sc", "Currency_Symbol", "Sk", "Modifier_Symbol", "Sm", "Math_Symbol", "So", "Other_Symbol", "Z", "Separator", "Zl", "Line_Separator", "Zp", "Paragraph_Separator", "Zs", "Space_Separator"]),
14489
+ Script: /* @__PURE__ */ new Set(["Adlm", "Adlam", "Aghb", "Caucasian_Albanian", "Ahom", "Ahom", "Arab", "Arabic", "Armi", "Imperial_Aramaic", "Armn", "Armenian", "Avst", "Avestan", "Bali", "Balinese", "Bamu", "Bamum", "Bass", "Bassa_Vah", "Batk", "Batak", "Beng", "Bengali", "Bhks", "Bhaiksuki", "Bopo", "Bopomofo", "Brah", "Brahmi", "Brai", "Braille", "Bugi", "Buginese", "Buhd", "Buhid", "Cakm", "Chakma", "Cans", "Canadian_Aboriginal", "Cari", "Carian", "Cham", "Cham", "Cher", "Cherokee", "Chrs", "Chorasmian", "Copt", "Coptic", "Qaac", "Cpmn", "Cypro_Minoan", "Cprt", "Cypriot", "Cyrl", "Cyrillic", "Deva", "Devanagari", "Diak", "Dives_Akuru", "Dogr", "Dogra", "Dsrt", "Deseret", "Dupl", "Duployan", "Egyp", "Egyptian_Hieroglyphs", "Elba", "Elbasan", "Elym", "Elymaic", "Ethi", "Ethiopic", "Geor", "Georgian", "Glag", "Glagolitic", "Gong", "Gunjala_Gondi", "Gonm", "Masaram_Gondi", "Goth", "Gothic", "Gran", "Grantha", "Grek", "Greek", "Gujr", "Gujarati", "Guru", "Gurmukhi", "Hang", "Hangul", "Hani", "Han", "Hano", "Hanunoo", "Hatr", "Hatran", "Hebr", "Hebrew", "Hira", "Hiragana", "Hluw", "Anatolian_Hieroglyphs", "Hmng", "Pahawh_Hmong", "Hmnp", "Nyiakeng_Puachue_Hmong", "Hrkt", "Katakana_Or_Hiragana", "Hung", "Old_Hungarian", "Ital", "Old_Italic", "Java", "Javanese", "Kali", "Kayah_Li", "Kana", "Katakana", "Kawi", "Kawi", "Khar", "Kharoshthi", "Khmr", "Khmer", "Khoj", "Khojki", "Kits", "Khitan_Small_Script", "Knda", "Kannada", "Kthi", "Kaithi", "Lana", "Tai_Tham", "Laoo", "Lao", "Latn", "Latin", "Lepc", "Lepcha", "Limb", "Limbu", "Lina", "Linear_A", "Linb", "Linear_B", "Lisu", "Lisu", "Lyci", "Lycian", "Lydi", "Lydian", "Mahj", "Mahajani", "Maka", "Makasar", "Mand", "Mandaic", "Mani", "Manichaean", "Marc", "Marchen", "Medf", "Medefaidrin", "Mend", "Mende_Kikakui", "Merc", "Meroitic_Cursive", "Mero", "Meroitic_Hieroglyphs", "Mlym", "Malayalam", "Modi", "Modi", "Mong", "Mongolian", "Mroo", "Mro", "Mtei", "Meetei_Mayek", "Mult", "Multani", "Mymr", "Myanmar", "Nagm", "Nag_Mundari", "Nand", "Nandinagari", "Narb", "Old_North_Arabian", "Nbat", "Nabataean", "Newa", "Newa", "Nkoo", "Nko", "Nshu", "Nushu", "Ogam", "Ogham", "Olck", "Ol_Chiki", "Orkh", "Old_Turkic", "Orya", "Oriya", "Osge", "Osage", "Osma", "Osmanya", "Ougr", "Old_Uyghur", "Palm", "Palmyrene", "Pauc", "Pau_Cin_Hau", "Perm", "Old_Permic", "Phag", "Phags_Pa", "Phli", "Inscriptional_Pahlavi", "Phlp", "Psalter_Pahlavi", "Phnx", "Phoenician", "Plrd", "Miao", "Prti", "Inscriptional_Parthian", "Rjng", "Rejang", "Rohg", "Hanifi_Rohingya", "Runr", "Runic", "Samr", "Samaritan", "Sarb", "Old_South_Arabian", "Saur", "Saurashtra", "Sgnw", "SignWriting", "Shaw", "Shavian", "Shrd", "Sharada", "Sidd", "Siddham", "Sind", "Khudawadi", "Sinh", "Sinhala", "Sogd", "Sogdian", "Sogo", "Old_Sogdian", "Sora", "Sora_Sompeng", "Soyo", "Soyombo", "Sund", "Sundanese", "Sylo", "Syloti_Nagri", "Syrc", "Syriac", "Tagb", "Tagbanwa", "Takr", "Takri", "Tale", "Tai_Le", "Talu", "New_Tai_Lue", "Taml", "Tamil", "Tang", "Tangut", "Tavt", "Tai_Viet", "Telu", "Telugu", "Tfng", "Tifinagh", "Tglg", "Tagalog", "Thaa", "Thaana", "Thai", "Thai", "Tibt", "Tibetan", "Tirh", "Tirhuta", "Tnsa", "Tangsa", "Toto", "Toto", "Ugar", "Ugaritic", "Vaii", "Vai", "Vith", "Vithkuqi", "Wara", "Warang_Citi", "Wcho", "Wancho", "Xpeo", "Old_Persian", "Xsux", "Cuneiform", "Yezi", "Yezidi", "Yiii", "Yi", "Zanb", "Zanabazar_Square", "Zinh", "Inherited", "Qaai", "Zyyy", "Common", "Zzzz", "Unknown"]),
14490
+ Script_Extensions: /* @__PURE__ */ new Set()
14491
+ // Currently empty
14492
+ };
13567
14493
 
13568
14494
  // src/compiler/utilitiesPublic.ts
13569
14495
  function isExternalModuleNameRelative(moduleName) {
@@ -31428,7 +32354,10 @@ var Parser;
31428
32354
  function parseErrorAtPosition(start2, length2, message, ...args) {
31429
32355
  const lastError = lastOrUndefined(parseDiagnostics);
31430
32356
  let result;
31431
- if (!lastError || start2 !== lastError.start) {
32357
+ if (message.category === 3 /* Message */ && lastError && start2 === lastError.start && length2 === lastError.length) {
32358
+ result = createDetachedDiagnostic(fileName, sourceText, start2, length2, message, ...args);
32359
+ addRelatedInfo(lastError, result);
32360
+ } else if (!lastError || start2 !== lastError.start) {
31432
32361
  result = createDetachedDiagnostic(fileName, sourceText, start2, length2, message, ...args);
31433
32362
  parseDiagnostics.push(result);
31434
32363
  }
@@ -31584,7 +32513,7 @@ var Parser;
31584
32513
  parseErrorForInvalidName(Diagnostics.Type_alias_name_cannot_be_0, Diagnostics.Type_alias_must_be_given_a_name, 64 /* EqualsToken */);
31585
32514
  return;
31586
32515
  }
31587
- const suggestion = getSpellingSuggestion(expressionText, viableKeywordSuggestions, (n) => n) ?? getSpaceSuggestion(expressionText);
32516
+ const suggestion = getSpellingSuggestion(expressionText, viableKeywordSuggestions, identity) ?? getSpaceSuggestion(expressionText);
31588
32517
  if (suggestion) {
31589
32518
  parseErrorAt(pos, node.end, Diagnostics.Unknown_keyword_or_identifier_Did_you_mean_0, suggestion);
31590
32519
  return;
@@ -72817,17 +73746,6 @@ function createTypeChecker(host) {
72817
73746
  isTypeAssignableTo
72818
73747
  );
72819
73748
  }
72820
- function filterContextualTypeForLiteralExpressionOfObject(node, contextualType) {
72821
- if (!isLiteralExpressionOfObject(node)) {
72822
- return contextualType;
72823
- }
72824
- return filterType(contextualType, (t) => {
72825
- if (!t.symbol || !(t.symbol.flags & 32 /* Class */)) {
72826
- return true;
72827
- }
72828
- return every(getPropertiesOfType(t), (p) => !p.valueDeclaration || !isNamedDeclaration(p.valueDeclaration) || !isPrivateIdentifier(p.valueDeclaration.name) && !(getDeclarationModifierFlagsFromSymbol(p) & 6 /* NonPublicAccessibilityModifier */));
72829
- });
72830
- }
72831
73749
  function getApparentTypeOfContextualType(node, contextFlags) {
72832
73750
  const contextualType = isObjectLiteralMethod(node) ? getContextualTypeForObjectLiteralMethod(node, contextFlags) : getContextualType2(node, contextFlags);
72833
73751
  const instantiatedType = instantiateContextualType(contextualType, node, contextFlags);
@@ -72871,6 +73789,7 @@ function createTypeChecker(host) {
72871
73789
  return type;
72872
73790
  }
72873
73791
  function getContextualType2(node, contextFlags) {
73792
+ var _a;
72874
73793
  if (node.flags & 67108864 /* InWithStatement */) {
72875
73794
  return void 0;
72876
73795
  }
@@ -72882,14 +73801,6 @@ function createTypeChecker(host) {
72882
73801
  if (index >= 0) {
72883
73802
  return contextualTypes[index];
72884
73803
  }
72885
- const contextualType = getContextualTypeWorker(node, contextFlags);
72886
- if (!contextualType) {
72887
- return void 0;
72888
- }
72889
- return filterContextualTypeForLiteralExpressionOfObject(node, contextualType);
72890
- }
72891
- function getContextualTypeWorker(node, contextFlags) {
72892
- var _a;
72893
73804
  const { parent: parent2 } = node;
72894
73805
  switch (parent2.kind) {
72895
73806
  case 260 /* VariableDeclaration */:
@@ -79670,11 +80581,10 @@ function createTypeChecker(host) {
79670
80581
  return node;
79671
80582
  }
79672
80583
  function checkExpressionWithContextualType(node, contextualType, inferenceContext, checkMode) {
79673
- const filteredContextualType = filterContextualTypeForLiteralExpressionOfObject(node, contextualType);
79674
80584
  const contextNode = getContextNode2(node);
79675
80585
  pushContextualType(
79676
80586
  contextNode,
79677
- filteredContextualType,
80587
+ contextualType,
79678
80588
  /*isCache*/
79679
80589
  false
79680
80590
  );
@@ -79684,7 +80594,7 @@ function createTypeChecker(host) {
79684
80594
  inferenceContext.intraExpressionInferenceSites = void 0;
79685
80595
  }
79686
80596
  const result = maybeTypeOfKind(type, 2944 /* Literal */) && isLiteralOfContextualType(type, instantiateContextualType(
79687
- filteredContextualType,
80597
+ contextualType,
79688
80598
  node,
79689
80599
  /*contextFlags*/
79690
80600
  void 0
@@ -160825,7 +161735,7 @@ function getApparentProperties(type, node, checker) {
160825
161735
  return checker.getAllPossiblePropertiesOfTypes(filter(type.types, (memberType) => !(memberType.flags & 402784252 /* Primitive */ || checker.isArrayLikeType(memberType) || checker.isTypeInvalidDueToUnionDiscriminant(memberType, node) || checker.typeHasCallOrConstructSignatures(memberType) || memberType.isClass() && containsNonPublicProperties(memberType.getApparentProperties()))));
160826
161736
  }
160827
161737
  function containsNonPublicProperties(props) {
160828
- return some(props, (p) => !!(getDeclarationModifierFlagsFromSymbol(p) & 6 /* NonPublicAccessibilityModifier */) || !!p.valueDeclaration && isNamedDeclaration(p.valueDeclaration) && isPrivateIdentifier(p.valueDeclaration.name));
161738
+ return some(props, (p) => !!(getDeclarationModifierFlagsFromSymbol(p) & 6 /* NonPublicAccessibilityModifier */));
160829
161739
  }
160830
161740
  function getPropertiesForCompletion(type, checker) {
160831
161741
  return type.isUnion() ? Debug.checkEachDefined(checker.getAllPossiblePropertiesOfTypes(type.types), "getAllPossiblePropertiesOfTypes() should all be defined") : Debug.checkEachDefined(type.getApparentProperties(), "getApparentProperties() should all be defined");
@@ -162008,7 +162918,7 @@ function isPathRelativeToScript(path) {
162008
162918
  }
162009
162919
  return false;
162010
162920
  }
162011
- var tripleSlashDirectiveFragmentRegex = /^(\/\/\/\s*<reference\s+(path|types)\s*=\s*(?:'|"))([^\3"]*)$/;
162921
+ var tripleSlashDirectiveFragmentRegex = /^(\/\/\/\s*<reference\s+(path|types)\s*=\s*(?:'|"))([^\x03"]*)$/;
162012
162922
  var nodeModulesDependencyKeys = ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"];
162013
162923
  function containsSlash(fragment) {
162014
162924
  return fragment.includes(directorySeparator);
@@ -172842,6 +173752,7 @@ __export(ts_exports2, {
172842
173752
  ProcessLevel: () => ProcessLevel,
172843
173753
  ProgramUpdateLevel: () => ProgramUpdateLevel,
172844
173754
  QuotePreference: () => QuotePreference,
173755
+ RegularExpressionFlags: () => RegularExpressionFlags,
172845
173756
  RelationComparisonResult: () => RelationComparisonResult,
172846
173757
  Rename: () => ts_Rename_exports,
172847
173758
  ScriptElementKind: () => ScriptElementKind,
@@ -172967,6 +173878,7 @@ __export(ts_exports2, {
172967
173878
  changeExtension: () => changeExtension,
172968
173879
  changesAffectModuleResolution: () => changesAffectModuleResolution,
172969
173880
  changesAffectingProgramStructure: () => changesAffectingProgramStructure,
173881
+ characterToRegularExpressionFlag: () => characterToRegularExpressionFlag,
172970
173882
  childIsDecorated: () => childIsDecorated,
172971
173883
  classElementOrClassElementParameterIsDecorated: () => classElementOrClassElementParameterIsDecorated,
172972
173884
  classHasClassThisAssignment: () => classHasClassThisAssignment,
@@ -174732,6 +175644,7 @@ __export(ts_exports2, {
174732
175644
  reducePathComponents: () => reducePathComponents,
174733
175645
  refactor: () => ts_refactor_exports,
174734
175646
  regExpEscape: () => regExpEscape,
175647
+ regularExpressionFlagToCharacter: () => regularExpressionFlagToCharacter,
174735
175648
  relativeComplement: () => relativeComplement,
174736
175649
  removeAllComments: () => removeAllComments,
174737
175650
  removeEmitHelper: () => removeEmitHelper,
@@ -187504,6 +188417,7 @@ start(initializeNodeSystem(), require("os").platform());
187504
188417
  ProcessLevel,
187505
188418
  ProgramUpdateLevel,
187506
188419
  QuotePreference,
188420
+ RegularExpressionFlags,
187507
188421
  RelationComparisonResult,
187508
188422
  Rename,
187509
188423
  ScriptElementKind,
@@ -187629,6 +188543,7 @@ start(initializeNodeSystem(), require("os").platform());
187629
188543
  changeExtension,
187630
188544
  changesAffectModuleResolution,
187631
188545
  changesAffectingProgramStructure,
188546
+ characterToRegularExpressionFlag,
187632
188547
  childIsDecorated,
187633
188548
  classElementOrClassElementParameterIsDecorated,
187634
188549
  classHasClassThisAssignment,
@@ -189394,6 +190309,7 @@ start(initializeNodeSystem(), require("os").platform());
189394
190309
  reducePathComponents,
189395
190310
  refactor,
189396
190311
  regExpEscape,
190312
+ regularExpressionFlagToCharacter,
189397
190313
  relativeComplement,
189398
190314
  removeAllComments,
189399
190315
  removeEmitHelper,