typescript 5.5.0-dev.20240418 → 5.5.0-dev.20240420

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/typescript.js CHANGED
@@ -146,6 +146,7 @@ __export(typescript_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,
@@ -274,6 +275,7 @@ __export(typescript_exports, {
274
275
  changeFullExtension: () => changeFullExtension,
275
276
  changesAffectModuleResolution: () => changesAffectModuleResolution,
276
277
  changesAffectingProgramStructure: () => changesAffectingProgramStructure,
278
+ characterToRegularExpressionFlag: () => characterToRegularExpressionFlag,
277
279
  childIsDecorated: () => childIsDecorated,
278
280
  classElementOrClassElementParameterIsDecorated: () => classElementOrClassElementParameterIsDecorated,
279
281
  classHasClassThisAssignment: () => classHasClassThisAssignment,
@@ -419,6 +421,7 @@ __export(typescript_exports, {
419
421
  createForOfBindingStatement: () => createForOfBindingStatement,
420
422
  createFutureSourceFile: () => createFutureSourceFile,
421
423
  createGetCanonicalFileName: () => createGetCanonicalFileName,
424
+ createGetIsolatedDeclarationErrors: () => createGetIsolatedDeclarationErrors,
422
425
  createGetSourceFile: () => createGetSourceFile,
423
426
  createGetSymbolAccessibilityDiagnosticForNode: () => createGetSymbolAccessibilityDiagnosticForNode,
424
427
  createGetSymbolAccessibilityDiagnosticForNodeName: () => createGetSymbolAccessibilityDiagnosticForNodeName,
@@ -473,6 +476,7 @@ __export(typescript_exports, {
473
476
  createSuperAccessVariableStatement: () => createSuperAccessVariableStatement,
474
477
  createSymbolTable: () => createSymbolTable,
475
478
  createSymlinkCache: () => createSymlinkCache,
479
+ createSyntacticTypeNodeBuilder: () => createSyntacticTypeNodeBuilder,
476
480
  createSystemWatchFunctions: () => createSystemWatchFunctions,
477
481
  createTextChange: () => createTextChange,
478
482
  createTextChangeFromStartLength: () => createTextChangeFromStartLength,
@@ -912,6 +916,7 @@ __export(typescript_exports, {
912
916
  getNameOfDeclaration: () => getNameOfDeclaration,
913
917
  getNameOfExpando: () => getNameOfExpando,
914
918
  getNameOfJSDocTypedef: () => getNameOfJSDocTypedef,
919
+ getNameOfScriptTarget: () => getNameOfScriptTarget,
915
920
  getNameOrArgument: () => getNameOrArgument,
916
921
  getNameTable: () => getNameTable,
917
922
  getNamesForExportedSymbol: () => getNamesForExportedSymbol,
@@ -1126,6 +1131,7 @@ __export(typescript_exports, {
1126
1131
  hasEffectiveReadonlyModifier: () => hasEffectiveReadonlyModifier,
1127
1132
  hasExtension: () => hasExtension,
1128
1133
  hasIndexSignature: () => hasIndexSignature,
1134
+ hasInferredType: () => hasInferredType,
1129
1135
  hasInitializer: () => hasInitializer,
1130
1136
  hasInvalidEscape: () => hasInvalidEscape,
1131
1137
  hasJSDocNodes: () => hasJSDocNodes,
@@ -1670,12 +1676,12 @@ __export(typescript_exports, {
1670
1676
  isPackageJsonInfo: () => isPackageJsonInfo,
1671
1677
  isPackedArrayLiteral: () => isPackedArrayLiteral,
1672
1678
  isParameter: () => isParameter,
1673
- isParameterDeclaration: () => isParameterDeclaration,
1674
1679
  isParameterPropertyDeclaration: () => isParameterPropertyDeclaration,
1675
1680
  isParameterPropertyModifier: () => isParameterPropertyModifier,
1676
1681
  isParenthesizedExpression: () => isParenthesizedExpression,
1677
1682
  isParenthesizedTypeNode: () => isParenthesizedTypeNode,
1678
1683
  isParseTreeNode: () => isParseTreeNode,
1684
+ isPartOfParameterDeclaration: () => isPartOfParameterDeclaration,
1679
1685
  isPartOfTypeNode: () => isPartOfTypeNode,
1680
1686
  isPartOfTypeQuery: () => isPartOfTypeQuery,
1681
1687
  isPartiallyEmittedExpression: () => isPartiallyEmittedExpression,
@@ -1686,6 +1692,7 @@ __export(typescript_exports, {
1686
1692
  isPossiblyTypeArgumentPosition: () => isPossiblyTypeArgumentPosition,
1687
1693
  isPostfixUnaryExpression: () => isPostfixUnaryExpression,
1688
1694
  isPrefixUnaryExpression: () => isPrefixUnaryExpression,
1695
+ isPrimitiveLiteralValue: () => isPrimitiveLiteralValue,
1689
1696
  isPrivateIdentifier: () => isPrivateIdentifier,
1690
1697
  isPrivateIdentifierClassElementDeclaration: () => isPrivateIdentifierClassElementDeclaration,
1691
1698
  isPrivateIdentifierPropertyAccessExpression: () => isPrivateIdentifierPropertyAccessExpression,
@@ -1852,6 +1859,7 @@ __export(typescript_exports, {
1852
1859
  isValueSignatureDeclaration: () => isValueSignatureDeclaration,
1853
1860
  isVarAwaitUsing: () => isVarAwaitUsing,
1854
1861
  isVarConst: () => isVarConst,
1862
+ isVarConstLike: () => isVarConstLike,
1855
1863
  isVarUsing: () => isVarUsing,
1856
1864
  isVariableDeclaration: () => isVariableDeclaration,
1857
1865
  isVariableDeclarationInVariableStatement: () => isVariableDeclarationInVariableStatement,
@@ -2056,6 +2064,7 @@ __export(typescript_exports, {
2056
2064
  reducePathComponents: () => reducePathComponents,
2057
2065
  refactor: () => ts_refactor_exports,
2058
2066
  regExpEscape: () => regExpEscape,
2067
+ regularExpressionFlagToCharacter: () => regularExpressionFlagToCharacter,
2059
2068
  relativeComplement: () => relativeComplement,
2060
2069
  removeAllComments: () => removeAllComments,
2061
2070
  removeEmitHelper: () => removeEmitHelper,
@@ -2311,6 +2320,7 @@ __export(typescript_exports, {
2311
2320
  unsetNodeChildren: () => unsetNodeChildren,
2312
2321
  unusedLabelIsError: () => unusedLabelIsError,
2313
2322
  unwrapInnermostStatementOfLabel: () => unwrapInnermostStatementOfLabel,
2323
+ unwrapParenthesizedExpression: () => unwrapParenthesizedExpression,
2314
2324
  updateErrorForNoInputFiles: () => updateErrorForNoInputFiles,
2315
2325
  updateLanguageServiceSourceFile: () => updateLanguageServiceSourceFile,
2316
2326
  updateMissingFilePathsWatch: () => updateMissingFilePathsWatch,
@@ -2350,7 +2360,7 @@ module.exports = __toCommonJS(typescript_exports);
2350
2360
 
2351
2361
  // src/compiler/corePublic.ts
2352
2362
  var versionMajorMinor = "5.5";
2353
- var version = `${versionMajorMinor}.0-dev.20240418`;
2363
+ var version = `${versionMajorMinor}.0-dev.20240420`;
2354
2364
  var Comparison = /* @__PURE__ */ ((Comparison3) => {
2355
2365
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
2356
2366
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -6254,6 +6264,20 @@ var GeneratedIdentifierFlags = /* @__PURE__ */ ((GeneratedIdentifierFlags2) => {
6254
6264
  GeneratedIdentifierFlags2[GeneratedIdentifierFlags2["AllowNameSubstitution"] = 64] = "AllowNameSubstitution";
6255
6265
  return GeneratedIdentifierFlags2;
6256
6266
  })(GeneratedIdentifierFlags || {});
6267
+ var RegularExpressionFlags = /* @__PURE__ */ ((RegularExpressionFlags2) => {
6268
+ RegularExpressionFlags2[RegularExpressionFlags2["None"] = 0] = "None";
6269
+ RegularExpressionFlags2[RegularExpressionFlags2["HasIndices"] = 1] = "HasIndices";
6270
+ RegularExpressionFlags2[RegularExpressionFlags2["Global"] = 2] = "Global";
6271
+ RegularExpressionFlags2[RegularExpressionFlags2["IgnoreCase"] = 4] = "IgnoreCase";
6272
+ RegularExpressionFlags2[RegularExpressionFlags2["Multiline"] = 8] = "Multiline";
6273
+ RegularExpressionFlags2[RegularExpressionFlags2["DotAll"] = 16] = "DotAll";
6274
+ RegularExpressionFlags2[RegularExpressionFlags2["Unicode"] = 32] = "Unicode";
6275
+ RegularExpressionFlags2[RegularExpressionFlags2["UnicodeSets"] = 64] = "UnicodeSets";
6276
+ RegularExpressionFlags2[RegularExpressionFlags2["Sticky"] = 128] = "Sticky";
6277
+ RegularExpressionFlags2[RegularExpressionFlags2["UnicodeMode"] = 96] = "UnicodeMode";
6278
+ RegularExpressionFlags2[RegularExpressionFlags2["Modifiers"] = 28] = "Modifiers";
6279
+ return RegularExpressionFlags2;
6280
+ })(RegularExpressionFlags || {});
6257
6281
  var TokenFlags = /* @__PURE__ */ ((TokenFlags2) => {
6258
6282
  TokenFlags2[TokenFlags2["None"] = 0] = "None";
6259
6283
  TokenFlags2[TokenFlags2["PrecedingLineBreak"] = 1] = "PrecedingLineBreak";
@@ -6389,6 +6413,7 @@ var NodeBuilderFlags = /* @__PURE__ */ ((NodeBuilderFlags2) => {
6389
6413
  NodeBuilderFlags2[NodeBuilderFlags2["AllowUniqueESSymbolType"] = 1048576] = "AllowUniqueESSymbolType";
6390
6414
  NodeBuilderFlags2[NodeBuilderFlags2["AllowEmptyIndexInfoType"] = 2097152] = "AllowEmptyIndexInfoType";
6391
6415
  NodeBuilderFlags2[NodeBuilderFlags2["WriteComputedProps"] = 1073741824] = "WriteComputedProps";
6416
+ NodeBuilderFlags2[NodeBuilderFlags2["NoSyntacticPrinter"] = -2147483648] = "NoSyntacticPrinter";
6392
6417
  NodeBuilderFlags2[NodeBuilderFlags2["AllowNodeModulesRelativePaths"] = 67108864] = "AllowNodeModulesRelativePaths";
6393
6418
  NodeBuilderFlags2[NodeBuilderFlags2["DoNotIncludeSymbolChain"] = 134217728] = "DoNotIncludeSymbolChain";
6394
6419
  NodeBuilderFlags2[NodeBuilderFlags2["IgnoreErrors"] = 70221824] = "IgnoreErrors";
@@ -9753,6 +9778,43 @@ var Diagnostics = {
9753
9778
  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."),
9754
9779
  Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator: diag(1497, 1 /* Error */, "Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator_1497", "Expression must be enclosed in parentheses to be used as a decorator."),
9755
9780
  Invalid_syntax_in_decorator: diag(1498, 1 /* Error */, "Invalid_syntax_in_decorator_1498", "Invalid syntax in decorator."),
9781
+ Unknown_regular_expression_flag: diag(1499, 1 /* Error */, "Unknown_regular_expression_flag_1499", "Unknown regular expression flag."),
9782
+ Duplicate_regular_expression_flag: diag(1500, 1 /* Error */, "Duplicate_regular_expression_flag_1500", "Duplicate regular expression flag."),
9783
+ This_regular_expression_flag_is_only_available_when_targeting_0_or_later: diag(1501, 1 /* Error */, "This_regular_expression_flag_is_only_available_when_targeting_0_or_later_1501", "This regular expression flag is only available when targeting '{0}' or later."),
9784
+ The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously: diag(1502, 1 /* Error */, "The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously_1502", "The Unicode (u) flag and the Unicode Sets (v) flag cannot be set simultaneously."),
9785
+ Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later: diag(1503, 1 /* Error */, "Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later_1503", "Named capturing groups are only available when targeting 'ES2018' or later."),
9786
+ Subpattern_flags_must_be_present_when_there_is_a_minus_sign: diag(1504, 1 /* Error */, "Subpattern_flags_must_be_present_when_there_is_a_minus_sign_1504", "Subpattern flags must be present when there is a minus sign."),
9787
+ Incomplete_quantifier_Digit_expected: diag(1505, 1 /* Error */, "Incomplete_quantifier_Digit_expected_1505", "Incomplete quantifier. Digit expected."),
9788
+ Numbers_out_of_order_in_quantifier: diag(1506, 1 /* Error */, "Numbers_out_of_order_in_quantifier_1506", "Numbers out of order in quantifier."),
9789
+ There_is_nothing_available_for_repetition: diag(1507, 1 /* Error */, "There_is_nothing_available_for_repetition_1507", "There is nothing available for repetition."),
9790
+ Unexpected_0_Did_you_mean_to_escape_it_with_backslash: diag(1508, 1 /* Error */, "Unexpected_0_Did_you_mean_to_escape_it_with_backslash_1508", "Unexpected '{0}'. Did you mean to escape it with backslash?"),
9791
+ This_regular_expression_flag_cannot_be_toggled_within_a_subpattern: diag(1509, 1 /* Error */, "This_regular_expression_flag_cannot_be_toggled_within_a_subpattern_1509", "This regular expression flag cannot be toggled within a subpattern."),
9792
+ k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets: diag(1510, 1 /* Error */, "k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets_1510", "'\\k' must be followed by a capturing group name enclosed in angle brackets."),
9793
+ q_is_only_available_inside_character_class: diag(1511, 1 /* Error */, "q_is_only_available_inside_character_class_1511", "'\\q' is only available inside character class."),
9794
+ c_must_be_followed_by_an_ASCII_letter: diag(1512, 1 /* Error */, "c_must_be_followed_by_an_ASCII_letter_1512", "'\\c' must be followed by an ASCII letter."),
9795
+ Undetermined_character_escape: diag(1513, 1 /* Error */, "Undetermined_character_escape_1513", "Undetermined character escape."),
9796
+ Expected_a_capturing_group_name: diag(1514, 1 /* Error */, "Expected_a_capturing_group_name_1514", "Expected a capturing group name."),
9797
+ Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other: diag(1515, 1 /* Error */, "Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other_1515", "Named capturing groups with the same name must be mutually exclusive to each other."),
9798
+ A_character_class_range_must_not_be_bounded_by_another_character_class: diag(1516, 1 /* Error */, "A_character_class_range_must_not_be_bounded_by_another_character_class_1516", "A character class range must not be bounded by another character class."),
9799
+ Range_out_of_order_in_character_class: diag(1517, 1 /* Error */, "Range_out_of_order_in_character_class_1517", "Range out of order in character class."),
9800
+ Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class: diag(1518, 1 /* Error */, "Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_characte_1518", "Anything that would possibly match more than a single character is invalid inside a negated character class."),
9801
+ Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead: diag(1519, 1 /* Error */, "Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead_1519", "Operators must not be mixed within a character class. Wrap it in a nested class instead."),
9802
+ Expected_a_class_set_oprand: diag(1520, 1 /* Error */, "Expected_a_class_set_oprand_1520", "Expected a class set oprand."),
9803
+ q_must_be_followed_by_string_alternatives_enclosed_in_braces: diag(1521, 1 /* Error */, "q_must_be_followed_by_string_alternatives_enclosed_in_braces_1521", "'\\q' must be followed by string alternatives enclosed in braces."),
9804
+ A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash: diag(1522, 1 /* Error */, "A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backs_1522", "A character class must not contain a reserved double punctuator. Did you mean to escape it with backslash?"),
9805
+ Expected_a_Unicode_property_name: diag(1523, 1 /* Error */, "Expected_a_Unicode_property_name_1523", "Expected a Unicode property name."),
9806
+ Unknown_Unicode_property_name: diag(1524, 1 /* Error */, "Unknown_Unicode_property_name_1524", "Unknown Unicode property name."),
9807
+ Expected_a_Unicode_property_value: diag(1525, 1 /* Error */, "Expected_a_Unicode_property_value_1525", "Expected a Unicode property value."),
9808
+ Unknown_Unicode_property_value: diag(1526, 1 /* Error */, "Unknown_Unicode_property_value_1526", "Unknown Unicode property value."),
9809
+ Expected_a_Unicode_property_name_or_value: diag(1527, 1 /* Error */, "Expected_a_Unicode_property_name_or_value_1527", "Expected a Unicode property name or value."),
9810
+ Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set: diag(1528, 1 /* Error */, "Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_t_1528", "Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set."),
9811
+ Unknown_Unicode_property_name_or_value: diag(1529, 1 /* Error */, "Unknown_Unicode_property_name_or_value_1529", "Unknown Unicode property name or value."),
9812
+ Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set: diag(1530, 1 /* Error */, "Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v__1530", "Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set."),
9813
+ _0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces: diag(1531, 1 /* Error */, "_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces_1531", "'\\{0}' must be followed by a Unicode property value expression enclosed in braces."),
9814
+ There_is_no_capturing_group_named_0_in_this_regular_expression: diag(1532, 1 /* Error */, "There_is_no_capturing_group_named_0_in_this_regular_expression_1532", "There is no capturing group named '{0}' in this regular expression."),
9815
+ A_decimal_escape_must_refer_to_an_existent_capturing_group_There_are_only_0_capturing_groups_in_this_regular_expression: diag(1533, 1 /* Error */, "A_decimal_escape_must_refer_to_an_existent_capturing_group_There_are_only_0_capturing_groups_in_this_1533", "A decimal escape must refer to an existent capturing group. There are only {0} capturing groups in this regular expression."),
9816
+ Decimal_escapes_are_invalid_when_there_are_no_capturing_groups_in_a_regular_expression: diag(1534, 1 /* Error */, "Decimal_escapes_are_invalid_when_there_are_no_capturing_groups_in_a_regular_expression_1534", "Decimal escapes are invalid when there are no capturing groups in a regular expression."),
9817
+ This_character_cannot_be_escaped_in_a_regular_expression: diag(1535, 1 /* Error */, "This_character_cannot_be_escaped_in_a_regular_expression_1535", "This character cannot be escaped in a regular expression."),
9756
9818
  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."),
9757
9819
  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."),
9758
9820
  Call_signature_return_types_0_and_1_are_incompatible: diag(
@@ -10998,6 +11060,7 @@ var Diagnostics = {
10998
11060
  Specify_how_the_TypeScript_watch_mode_works: diag(6715, 3 /* Message */, "Specify_how_the_TypeScript_watch_mode_works_6715", "Specify how the TypeScript watch mode works."),
10999
11061
  Require_undeclared_properties_from_index_signatures_to_use_element_accesses: diag(6717, 3 /* Message */, "Require_undeclared_properties_from_index_signatures_to_use_element_accesses_6717", "Require undeclared properties from index signatures to use element accesses."),
11000
11062
  Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types: diag(6718, 3 /* Message */, "Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types_6718", "Specify emit/checking behavior for imports that are only used for types."),
11063
+ Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files: diag(6719, 3 /* Message */, "Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files_6719", "Require sufficient annotation on exports so other tools can trivially generate declaration files."),
11001
11064
  Default_catch_clause_variables_as_unknown_instead_of_any: diag(6803, 3 /* Message */, "Default_catch_clause_variables_as_unknown_instead_of_any_6803", "Default catch clause variables as 'unknown' instead of 'any'."),
11002
11065
  Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting: diag(6804, 3 /* Message */, "Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_i_6804", "Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting."),
11003
11066
  one_of_Colon: diag(6900, 3 /* Message */, "one_of_Colon_6900", "one of:"),
@@ -11139,6 +11202,36 @@ var Diagnostics = {
11139
11202
  A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag: diag(8039, 1 /* Error */, "A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag_8039", "A JSDoc '@template' tag may not follow a '@typedef', '@callback', or '@overload' tag"),
11140
11203
  Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit: diag(9005, 1 /* Error */, "Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005", "Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit."),
11141
11204
  Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit: diag(9006, 1 /* Error */, "Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006", "Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit."),
11205
+ Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations: diag(9007, 1 /* Error */, "Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9007", "Function must have an explicit return type annotation with --isolatedDeclarations."),
11206
+ Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations: diag(9008, 1 /* Error */, "Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9008", "Method must have an explicit return type annotation with --isolatedDeclarations."),
11207
+ At_least_one_accessor_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations: diag(9009, 1 /* Error */, "At_least_one_accessor_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9009", "At least one accessor must have an explicit return type annotation with --isolatedDeclarations."),
11208
+ Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations: diag(9010, 1 /* Error */, "Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9010", "Variable must have an explicit type annotation with --isolatedDeclarations."),
11209
+ Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations: diag(9011, 1 /* Error */, "Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9011", "Parameter must have an explicit type annotation with --isolatedDeclarations."),
11210
+ Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations: diag(9012, 1 /* Error */, "Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9012", "Property must have an explicit type annotation with --isolatedDeclarations."),
11211
+ Expression_type_can_t_be_inferred_with_isolatedDeclarations: diag(9013, 1 /* Error */, "Expression_type_can_t_be_inferred_with_isolatedDeclarations_9013", "Expression type can't be inferred with --isolatedDeclarations."),
11212
+ Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations: diag(9014, 1 /* Error */, "Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedD_9014", "Computed properties must be number or string literals, variables or dotted expressions with --isolatedDeclarations."),
11213
+ Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations: diag(9015, 1 /* Error */, "Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations_9015", "Objects that contain spread assignments can't be inferred with --isolatedDeclarations."),
11214
+ Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations: diag(9016, 1 /* Error */, "Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations_9016", "Objects that contain shorthand properties can't be inferred with --isolatedDeclarations."),
11215
+ Only_const_arrays_can_be_inferred_with_isolatedDeclarations: diag(9017, 1 /* Error */, "Only_const_arrays_can_be_inferred_with_isolatedDeclarations_9017", "Only const arrays can be inferred with --isolatedDeclarations."),
11216
+ Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations: diag(9018, 1 /* Error */, "Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations_9018", "Arrays with spread elements can't inferred with --isolatedDeclarations."),
11217
+ Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations: diag(9019, 1 /* Error */, "Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations_9019", "Binding elements can't be exported directly with --isolatedDeclarations."),
11218
+ Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations: diag(9020, 1 /* Error */, "Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDecl_9020", "Enum member initializers must be computable without references to external symbols with --isolatedDeclarations."),
11219
+ Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations: diag(9021, 1 /* Error */, "Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations_9021", "Extends clause can't contain an expression with --isolatedDeclarations."),
11220
+ Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations: diag(9022, 1 /* Error */, "Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations_9022", "Inference from class expressions is not supported with --isolatedDeclarations."),
11221
+ Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function: diag(9023, 1 /* Error */, "Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations__9023", "Assigning properties to functions without declaring them is not supported with --isolatedDeclarations. Add an explicit declaration for the properties assigned to this function."),
11222
+ Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_it_s_type_This_is_not_supported_with_isolatedDeclarations: diag(9025, 1 /* Error */, "Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_it_s_type_This_is_not_su_9025", "Declaration emit for this parameter requires implicitly adding undefined to it's type. This is not supported with --isolatedDeclarations."),
11223
+ Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_supported_with_isolatedDeclarations: diag(9026, 1 /* Error */, "Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_support_9026", "Declaration emit for this file requires preserving this import for augmentations. This is not supported with --isolatedDeclarations."),
11224
+ Add_a_type_annotation_to_the_variable_0: diag(9027, 1 /* Error */, "Add_a_type_annotation_to_the_variable_0_9027", "Add a type annotation to the variable {0}."),
11225
+ Add_a_type_annotation_to_the_parameter_0: diag(9028, 1 /* Error */, "Add_a_type_annotation_to_the_parameter_0_9028", "Add a type annotation to the parameter {0}."),
11226
+ Add_a_type_annotation_to_the_property_0: diag(9029, 1 /* Error */, "Add_a_type_annotation_to_the_property_0_9029", "Add a type annotation to the property {0}."),
11227
+ Add_a_return_type_to_the_function_expression: diag(9030, 1 /* Error */, "Add_a_return_type_to_the_function_expression_9030", "Add a return type to the function expression."),
11228
+ Add_a_return_type_to_the_function_declaration: diag(9031, 1 /* Error */, "Add_a_return_type_to_the_function_declaration_9031", "Add a return type to the function declaration."),
11229
+ Add_a_return_type_to_the_get_accessor_declaration: diag(9032, 1 /* Error */, "Add_a_return_type_to_the_get_accessor_declaration_9032", "Add a return type to the get accessor declaration."),
11230
+ Add_a_type_to_parameter_of_the_set_accessor_declaration: diag(9033, 1 /* Error */, "Add_a_type_to_parameter_of_the_set_accessor_declaration_9033", "Add a type to parameter of the set accessor declaration."),
11231
+ Add_a_return_type_to_the_method: diag(9034, 1 /* Error */, "Add_a_return_type_to_the_method_9034", "Add a return type to the method"),
11232
+ Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit: diag(9035, 1 /* Error */, "Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit_9035", "Add satisfies and a type assertion to this expression (satisfies T as T) to make the type explicit."),
11233
+ Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it: diag(9036, 1 /* Error */, "Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it_9036", "Move the expression in default export to a variable and add a type annotation to it."),
11234
+ Default_exports_can_t_be_inferred_with_isolatedDeclarations: diag(9037, 1 /* Error */, "Default_exports_can_t_be_inferred_with_isolatedDeclarations_9037", "Default exports can't be inferred with --isolatedDeclarations."),
11142
11235
  JSX_attributes_must_only_be_assigned_a_non_empty_expression: diag(17e3, 1 /* Error */, "JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000", "JSX attributes must only be assigned a non-empty 'expression'."),
11143
11236
  JSX_elements_cannot_have_multiple_attributes_with_the_same_name: diag(17001, 1 /* Error */, "JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001", "JSX elements cannot have multiple attributes with the same name."),
11144
11237
  Expected_corresponding_JSX_closing_tag_for_0: diag(17002, 1 /* Error */, "Expected_corresponding_JSX_closing_tag_for_0_17002", "Expected corresponding JSX closing tag for '{0}'."),
@@ -11611,6 +11704,26 @@ var textToToken = new Map(Object.entries({
11611
11704
  "#": 63 /* HashToken */,
11612
11705
  "`": 62 /* BacktickToken */
11613
11706
  }));
11707
+ var charToRegExpFlag = new Map(Object.entries({
11708
+ d: 1 /* HasIndices */,
11709
+ g: 2 /* Global */,
11710
+ i: 4 /* IgnoreCase */,
11711
+ m: 8 /* Multiline */,
11712
+ s: 16 /* DotAll */,
11713
+ u: 32 /* Unicode */,
11714
+ v: 64 /* UnicodeSets */,
11715
+ y: 128 /* Sticky */
11716
+ }));
11717
+ var regExpFlagToFirstAvailableLanguageVersion = /* @__PURE__ */ new Map([
11718
+ [1 /* HasIndices */, 9 /* ES2022 */],
11719
+ [2 /* Global */, 0 /* ES3 */],
11720
+ [4 /* IgnoreCase */, 0 /* ES3 */],
11721
+ [8 /* Multiline */, 0 /* ES3 */],
11722
+ [16 /* DotAll */, 5 /* ES2018 */],
11723
+ [32 /* Unicode */, 2 /* ES2015 */],
11724
+ [64 /* UnicodeSets */, 99 /* ESNext */],
11725
+ [128 /* Sticky */, 2 /* ES2015 */]
11726
+ ]);
11614
11727
  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];
11615
11728
  var unicodeES5IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1520, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2048, 2093, 2112, 2139, 2208, 2208, 2210, 2220, 2276, 2302, 2304, 2403, 2406, 2415, 2417, 2423, 2425, 2431, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3161, 3168, 3171, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3396, 3398, 3400, 3402, 3406, 3415, 3415, 3424, 3427, 3430, 3439, 3450, 3455, 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, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 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, 4957, 4959, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6e3, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6428, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6617, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7376, 7378, 7380, 7414, 7424, 7654, 7676, 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, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 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, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 11823, 11823, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12442, 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, 42539, 42560, 42607, 42612, 42621, 42623, 42647, 42655, 42737, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43e3, 43047, 43072, 43123, 43136, 43204, 43216, 43225, 43232, 43255, 43259, 43259, 43264, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43643, 43648, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 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, 65024, 65039, 65056, 65062, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500];
11616
11729
  var unicodeESNextIdentifierStart = [65, 90, 97, 122, 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, 895, 895, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1488, 1514, 1519, 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, 2144, 2154, 2208, 2228, 2230, 2237, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2432, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2556, 2556, 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, 2809, 2809, 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, 3129, 3133, 3133, 3160, 3162, 3168, 3169, 3200, 3200, 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, 3412, 3414, 3423, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 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, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6e3, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6264, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6430, 6480, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7401, 7404, 7406, 7411, 7413, 7414, 7418, 7418, 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, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 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, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12443, 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40943, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42653, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42943, 42946, 42950, 42999, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43261, 43262, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43488, 43492, 43494, 43503, 43514, 43518, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43646, 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, 43824, 43866, 43868, 43879, 43888, 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, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66176, 66204, 66208, 66256, 66304, 66335, 66349, 66378, 66384, 66421, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68096, 68112, 68115, 68117, 68119, 68121, 68149, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68324, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68899, 69376, 69404, 69415, 69415, 69424, 69445, 69600, 69622, 69635, 69687, 69763, 69807, 69840, 69864, 69891, 69926, 69956, 69956, 69968, 70002, 70006, 70006, 70019, 70066, 70081, 70084, 70106, 70106, 70108, 70108, 70144, 70161, 70163, 70187, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70366, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70461, 70461, 70480, 70480, 70493, 70497, 70656, 70708, 70727, 70730, 70751, 70751, 70784, 70831, 70852, 70853, 70855, 70855, 71040, 71086, 71128, 71131, 71168, 71215, 71236, 71236, 71296, 71338, 71352, 71352, 71424, 71450, 71680, 71723, 71840, 71903, 71935, 71935, 72096, 72103, 72106, 72144, 72161, 72161, 72163, 72163, 72192, 72192, 72203, 72242, 72250, 72250, 72272, 72272, 72284, 72329, 72349, 72349, 72384, 72440, 72704, 72712, 72714, 72750, 72768, 72768, 72818, 72847, 72960, 72966, 72968, 72969, 72971, 73008, 73030, 73030, 73056, 73061, 73063, 73064, 73066, 73097, 73112, 73112, 73440, 73458, 73728, 74649, 74752, 74862, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92766, 92880, 92909, 92928, 92975, 92992, 92995, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94032, 94032, 94099, 94111, 94176, 94177, 94179, 94179, 94208, 100343, 100352, 101106, 110592, 110878, 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 123136, 123180, 123191, 123197, 123214, 123214, 123584, 123627, 124928, 125124, 125184, 125251, 125259, 125259, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101];
@@ -11659,6 +11772,13 @@ function tokenToString(t) {
11659
11772
  function stringToToken(s) {
11660
11773
  return textToToken.get(s);
11661
11774
  }
11775
+ var regExpFlagChars = makeReverseMap(charToRegExpFlag);
11776
+ function regularExpressionFlagToCharacter(f) {
11777
+ return regExpFlagChars[f];
11778
+ }
11779
+ function characterToRegularExpressionFlag(c) {
11780
+ return charToRegExpFlag.get(c);
11781
+ }
11662
11782
  function computeLineStarts(text) {
11663
11783
  const result = [];
11664
11784
  let pos = 0;
@@ -11755,8 +11875,11 @@ function isDigit(ch) {
11755
11875
  function isHexDigit(ch) {
11756
11876
  return isDigit(ch) || ch >= 65 /* A */ && ch <= 70 /* F */ || ch >= 97 /* a */ && ch <= 102 /* f */;
11757
11877
  }
11758
- function isCodePoint(code) {
11759
- return code <= 1114111;
11878
+ function isASCIILetter(ch) {
11879
+ return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */;
11880
+ }
11881
+ function isWordCharacter(ch) {
11882
+ return isASCIILetter(ch) || isDigit(ch) || ch === 95 /* _ */;
11760
11883
  }
11761
11884
  function isOctalDigit(ch) {
11762
11885
  return ch >= 48 /* _0 */ && ch <= 55 /* _7 */;
@@ -12095,10 +12218,10 @@ function getShebang(text) {
12095
12218
  }
12096
12219
  }
12097
12220
  function isIdentifierStart(ch, languageVersion) {
12098
- return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierStart(ch, languageVersion);
12221
+ return isASCIILetter(ch) || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierStart(ch, languageVersion);
12099
12222
  }
12100
12223
  function isIdentifierPart(ch, languageVersion, identifierVariant) {
12101
- 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
12224
+ return isWordCharacter(ch) || ch === 36 /* $ */ || // "-" and ":" are valid in JSX Identifiers
12102
12225
  (identifierVariant === 1 /* JSX */ ? ch === 45 /* minus */ || ch === 58 /* colon */ : false) || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierPart(ch, languageVersion);
12103
12226
  }
12104
12227
  function isIdentifierText(name, languageVersion, identifierVariant) {
@@ -12419,7 +12542,9 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12419
12542
  result += text.substring(start2, pos);
12420
12543
  result += scanEscapeSequence(
12421
12544
  /*shouldEmitInvalidEscapeError*/
12422
- true
12545
+ true,
12546
+ /*isRegularExpression*/
12547
+ false
12423
12548
  );
12424
12549
  start2 = pos;
12425
12550
  continue;
@@ -12463,7 +12588,11 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12463
12588
  }
12464
12589
  if (currChar === 92 /* backslash */) {
12465
12590
  contents += text.substring(start2, pos);
12466
- contents += scanEscapeSequence(shouldEmitInvalidEscapeError);
12591
+ contents += scanEscapeSequence(
12592
+ shouldEmitInvalidEscapeError,
12593
+ /*isRegularExpression*/
12594
+ false
12595
+ );
12467
12596
  start2 = pos;
12468
12597
  continue;
12469
12598
  }
@@ -12483,7 +12612,7 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12483
12612
  tokenValue = contents;
12484
12613
  return resultingToken;
12485
12614
  }
12486
- function scanEscapeSequence(shouldEmitInvalidEscapeError) {
12615
+ function scanEscapeSequence(shouldEmitInvalidEscapeError, isRegularExpression) {
12487
12616
  const start2 = pos;
12488
12617
  pos++;
12489
12618
  if (pos >= end) {
@@ -12511,7 +12640,7 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12511
12640
  pos++;
12512
12641
  }
12513
12642
  tokenFlags |= 2048 /* ContainsInvalidEscape */;
12514
- if (shouldEmitInvalidEscapeError) {
12643
+ if (isRegularExpression || shouldEmitInvalidEscapeError) {
12515
12644
  const code = parseInt(text.substring(start2 + 1, pos), 8);
12516
12645
  error2(Diagnostics.Octal_escape_sequences_are_not_allowed_Use_the_syntax_0, start2, pos - start2, "\\x" + code.toString(16).padStart(2, "0"));
12517
12646
  return String.fromCharCode(code);
@@ -12520,7 +12649,7 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12520
12649
  case 56 /* _8 */:
12521
12650
  case 57 /* _9 */:
12522
12651
  tokenFlags |= 2048 /* ContainsInvalidEscape */;
12523
- if (shouldEmitInvalidEscapeError) {
12652
+ if (isRegularExpression || shouldEmitInvalidEscapeError) {
12524
12653
  error2(Diagnostics.Escape_sequence_0_is_not_allowed, start2, pos - start2, text.substring(start2, pos));
12525
12654
  return String.fromCharCode(ch);
12526
12655
  }
@@ -12542,62 +12671,42 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12542
12671
  case 34 /* doubleQuote */:
12543
12672
  return '"';
12544
12673
  case 117 /* u */:
12545
- if (pos < end && text.charCodeAt(pos) === 123 /* openBrace */) {
12546
- pos++;
12547
- const escapedValueString = scanMinimumNumberOfHexDigits(
12548
- 1,
12549
- /*canHaveSeparators*/
12550
- false
12551
- );
12552
- const escapedValue = escapedValueString ? parseInt(escapedValueString, 16) : -1;
12553
- if (escapedValue < 0) {
12554
- tokenFlags |= 2048 /* ContainsInvalidEscape */;
12555
- if (shouldEmitInvalidEscapeError) {
12556
- error2(Diagnostics.Hexadecimal_digit_expected);
12557
- }
12558
- return text.substring(start2, pos);
12559
- }
12560
- if (!isCodePoint(escapedValue)) {
12561
- tokenFlags |= 2048 /* ContainsInvalidEscape */;
12562
- if (shouldEmitInvalidEscapeError) {
12563
- error2(Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive);
12564
- }
12565
- return text.substring(start2, pos);
12566
- }
12567
- if (pos >= end) {
12568
- tokenFlags |= 2048 /* ContainsInvalidEscape */;
12569
- if (shouldEmitInvalidEscapeError) {
12570
- error2(Diagnostics.Unexpected_end_of_text);
12571
- }
12572
- return text.substring(start2, pos);
12573
- }
12574
- if (text.charCodeAt(pos) !== 125 /* closeBrace */) {
12575
- tokenFlags |= 2048 /* ContainsInvalidEscape */;
12576
- if (shouldEmitInvalidEscapeError) {
12577
- error2(Diagnostics.Unterminated_Unicode_escape_sequence);
12578
- }
12579
- return text.substring(start2, pos);
12580
- }
12581
- pos++;
12582
- tokenFlags |= 8 /* ExtendedUnicodeEscape */;
12583
- return utf16EncodeAsString(escapedValue);
12674
+ if ((!isRegularExpression || shouldEmitInvalidEscapeError) && pos < end && text.charCodeAt(pos) === 123 /* openBrace */) {
12675
+ pos -= 2;
12676
+ return scanExtendedUnicodeEscape(isRegularExpression || shouldEmitInvalidEscapeError);
12584
12677
  }
12585
12678
  for (; pos < start2 + 6; pos++) {
12586
12679
  if (!(pos < end && isHexDigit(text.charCodeAt(pos)))) {
12587
12680
  tokenFlags |= 2048 /* ContainsInvalidEscape */;
12588
- if (shouldEmitInvalidEscapeError) {
12681
+ if (isRegularExpression || shouldEmitInvalidEscapeError) {
12589
12682
  error2(Diagnostics.Hexadecimal_digit_expected);
12590
12683
  }
12591
12684
  return text.substring(start2, pos);
12592
12685
  }
12593
12686
  }
12594
12687
  tokenFlags |= 1024 /* UnicodeEscape */;
12595
- return String.fromCharCode(parseInt(text.substring(start2 + 2, pos), 16));
12688
+ const escapedValue = parseInt(text.substring(start2 + 2, pos), 16);
12689
+ const escapedValueString = String.fromCharCode(escapedValue);
12690
+ if (isRegularExpression && shouldEmitInvalidEscapeError && escapedValue >= 55296 && escapedValue <= 56319 && pos + 6 < end && text.substring(pos, pos + 2) === "\\u" && text.charCodeAt(pos + 2) !== 123 /* openBrace */) {
12691
+ const nextStart = pos;
12692
+ let nextPos = pos + 2;
12693
+ for (; nextPos < nextStart + 6; nextPos++) {
12694
+ if (!isHexDigit(text.charCodeAt(pos))) {
12695
+ return escapedValueString;
12696
+ }
12697
+ }
12698
+ const nextEscapedValue = parseInt(text.substring(nextStart + 2, nextPos), 16);
12699
+ if (nextEscapedValue >= 56320 && nextEscapedValue <= 57343) {
12700
+ pos = nextPos;
12701
+ return escapedValueString + String.fromCharCode(nextEscapedValue);
12702
+ }
12703
+ }
12704
+ return escapedValueString;
12596
12705
  case 120 /* x */:
12597
12706
  for (; pos < start2 + 4; pos++) {
12598
12707
  if (!(pos < end && isHexDigit(text.charCodeAt(pos)))) {
12599
12708
  tokenFlags |= 2048 /* ContainsInvalidEscape */;
12600
- if (shouldEmitInvalidEscapeError) {
12709
+ if (isRegularExpression || shouldEmitInvalidEscapeError) {
12601
12710
  error2(Diagnostics.Hexadecimal_digit_expected);
12602
12711
  }
12603
12712
  return text.substring(start2, pos);
@@ -12614,10 +12723,16 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12614
12723
  case 8233 /* paragraphSeparator */:
12615
12724
  return "";
12616
12725
  default:
12726
+ if (isRegularExpression && (shouldEmitInvalidEscapeError || isIdentifierPart(ch, languageVersion))) {
12727
+ error2(Diagnostics.This_character_cannot_be_escaped_in_a_regular_expression, pos - 2, 2);
12728
+ }
12617
12729
  return String.fromCharCode(ch);
12618
12730
  }
12619
12731
  }
12620
- function scanExtendedUnicodeEscape() {
12732
+ function scanExtendedUnicodeEscape(shouldEmitInvalidEscapeError) {
12733
+ const start2 = pos;
12734
+ pos += 3;
12735
+ const escapedStart = pos;
12621
12736
  const escapedValueString = scanMinimumNumberOfHexDigits(
12622
12737
  1,
12623
12738
  /*canHaveSeparators*/
@@ -12626,24 +12741,34 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12626
12741
  const escapedValue = escapedValueString ? parseInt(escapedValueString, 16) : -1;
12627
12742
  let isInvalidExtendedEscape = false;
12628
12743
  if (escapedValue < 0) {
12629
- error2(Diagnostics.Hexadecimal_digit_expected);
12744
+ if (shouldEmitInvalidEscapeError) {
12745
+ error2(Diagnostics.Hexadecimal_digit_expected);
12746
+ }
12630
12747
  isInvalidExtendedEscape = true;
12631
12748
  } else if (escapedValue > 1114111) {
12632
- error2(Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive);
12749
+ if (shouldEmitInvalidEscapeError) {
12750
+ error2(Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive, escapedStart, pos - escapedStart);
12751
+ }
12633
12752
  isInvalidExtendedEscape = true;
12634
12753
  }
12635
12754
  if (pos >= end) {
12636
- error2(Diagnostics.Unexpected_end_of_text);
12755
+ if (shouldEmitInvalidEscapeError) {
12756
+ error2(Diagnostics.Unexpected_end_of_text);
12757
+ }
12637
12758
  isInvalidExtendedEscape = true;
12638
12759
  } else if (text.charCodeAt(pos) === 125 /* closeBrace */) {
12639
12760
  pos++;
12640
12761
  } else {
12641
- error2(Diagnostics.Unterminated_Unicode_escape_sequence);
12762
+ if (shouldEmitInvalidEscapeError) {
12763
+ error2(Diagnostics.Unterminated_Unicode_escape_sequence);
12764
+ }
12642
12765
  isInvalidExtendedEscape = true;
12643
12766
  }
12644
12767
  if (isInvalidExtendedEscape) {
12645
- return "";
12768
+ tokenFlags |= 2048 /* ContainsInvalidEscape */;
12769
+ return text.substring(start2, pos);
12646
12770
  }
12771
+ tokenFlags |= 8 /* ExtendedUnicodeEscape */;
12647
12772
  return utf16EncodeAsString(escapedValue);
12648
12773
  }
12649
12774
  function peekUnicodeEscape() {
@@ -12685,9 +12810,10 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
12685
12810
  } else if (ch === 92 /* backslash */) {
12686
12811
  ch = peekExtendedUnicodeEscape();
12687
12812
  if (ch >= 0 && isIdentifierPart(ch, languageVersion)) {
12688
- pos += 3;
12689
- tokenFlags |= 8 /* ExtendedUnicodeEscape */;
12690
- result += scanExtendedUnicodeEscape();
12813
+ result += scanExtendedUnicodeEscape(
12814
+ /*shouldEmitInvalidEscapeError*/
12815
+ true
12816
+ );
12691
12817
  start2 = pos;
12692
12818
  continue;
12693
12819
  }
@@ -13152,9 +13278,10 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
13152
13278
  case 92 /* backslash */:
13153
13279
  const extendedCookedChar = peekExtendedUnicodeEscape();
13154
13280
  if (extendedCookedChar >= 0 && isIdentifierStart(extendedCookedChar, languageVersion)) {
13155
- pos += 3;
13156
- tokenFlags |= 8 /* ExtendedUnicodeEscape */;
13157
- tokenValue = scanExtendedUnicodeEscape() + scanIdentifierParts();
13281
+ tokenValue = scanExtendedUnicodeEscape(
13282
+ /*shouldEmitInvalidEscapeError*/
13283
+ true
13284
+ ) + scanIdentifierParts();
13158
13285
  return token = getIdentifierToken();
13159
13286
  }
13160
13287
  const cookedChar = peekUnicodeEscape();
@@ -13169,7 +13296,7 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
13169
13296
  return token = 0 /* Unknown */;
13170
13297
  case 35 /* hash */:
13171
13298
  if (pos !== 0 && text[pos + 1] === "!") {
13172
- error2(Diagnostics.can_only_be_used_at_the_start_of_a_file);
13299
+ error2(Diagnostics.can_only_be_used_at_the_start_of_a_file, pos, 2);
13173
13300
  pos++;
13174
13301
  return token = 0 /* Unknown */;
13175
13302
  }
@@ -13178,9 +13305,10 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
13178
13305
  pos++;
13179
13306
  const extendedCookedChar2 = peekExtendedUnicodeEscape();
13180
13307
  if (extendedCookedChar2 >= 0 && isIdentifierStart(extendedCookedChar2, languageVersion)) {
13181
- pos += 3;
13182
- tokenFlags |= 8 /* ExtendedUnicodeEscape */;
13183
- tokenValue = "#" + scanExtendedUnicodeEscape() + scanIdentifierParts();
13308
+ tokenValue = "#" + scanExtendedUnicodeEscape(
13309
+ /*shouldEmitInvalidEscapeError*/
13310
+ true
13311
+ ) + scanIdentifierParts();
13184
13312
  return token = 81 /* PrivateIdentifier */;
13185
13313
  }
13186
13314
  const cookedChar2 = peekUnicodeEscape();
@@ -13321,14 +13449,841 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
13321
13449
  }
13322
13450
  p++;
13323
13451
  }
13324
- while (p < end && isIdentifierPart(text.charCodeAt(p), languageVersion)) {
13452
+ const isUnterminated = !!(tokenFlags & 4 /* Unterminated */);
13453
+ const endOfBody = p - (isUnterminated ? 0 : 1);
13454
+ let regExpFlags = 0 /* None */;
13455
+ while (p < end) {
13456
+ const ch = text.charCodeAt(p);
13457
+ if (!isIdentifierPart(ch, languageVersion)) {
13458
+ break;
13459
+ }
13460
+ const flag = characterToRegularExpressionFlag(String.fromCharCode(ch));
13461
+ if (flag === void 0) {
13462
+ error2(Diagnostics.Unknown_regular_expression_flag, p, 1);
13463
+ } else if (regExpFlags & flag) {
13464
+ error2(Diagnostics.Duplicate_regular_expression_flag, p, 1);
13465
+ } else if (((regExpFlags | flag) & 96 /* UnicodeMode */) === 96 /* UnicodeMode */) {
13466
+ error2(Diagnostics.The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously, p, 1);
13467
+ } else {
13468
+ regExpFlags |= flag;
13469
+ const availableFrom = regExpFlagToFirstAvailableLanguageVersion.get(flag);
13470
+ if (languageVersion < availableFrom) {
13471
+ error2(Diagnostics.This_regular_expression_flag_is_only_available_when_targeting_0_or_later, p, 1, getNameOfScriptTarget(availableFrom));
13472
+ }
13473
+ }
13325
13474
  p++;
13326
13475
  }
13327
- pos = p;
13476
+ pos = tokenStart + 1;
13477
+ const saveTokenPos = tokenStart;
13478
+ const saveTokenFlags = tokenFlags;
13479
+ scanRegularExpressionWorker(text, endOfBody, regExpFlags, isUnterminated);
13480
+ if (!isUnterminated) {
13481
+ pos = p;
13482
+ }
13483
+ tokenStart = saveTokenPos;
13484
+ tokenFlags = saveTokenFlags;
13328
13485
  tokenValue = text.substring(tokenStart, pos);
13329
13486
  token = 14 /* RegularExpressionLiteral */;
13330
13487
  }
13331
13488
  return token;
13489
+ function scanRegularExpressionWorker(text2, end2, regExpFlags, isUnterminated) {
13490
+ const unicodeMode = !!(regExpFlags & 96 /* UnicodeMode */);
13491
+ const unicodeSetsMode = !!(regExpFlags & 64 /* UnicodeSets */);
13492
+ let mayContainStrings = false;
13493
+ let numberOfCapturingGroups = 0;
13494
+ const groupSpecifiers = /* @__PURE__ */ new Set();
13495
+ const groupNameReferences = [];
13496
+ const decimalEscapes = [];
13497
+ const namedCapturingGroups = [];
13498
+ function scanDisjunction(isInGroup) {
13499
+ while (true) {
13500
+ namedCapturingGroups.push(/* @__PURE__ */ new Set());
13501
+ scanAlternative(isInGroup);
13502
+ namedCapturingGroups.pop();
13503
+ if (text2.charCodeAt(pos) !== 124 /* bar */) {
13504
+ return;
13505
+ }
13506
+ pos++;
13507
+ }
13508
+ }
13509
+ function scanAlternative(isInGroup) {
13510
+ let isPreviousTermQuantifiable = false;
13511
+ while (pos < end2) {
13512
+ const start2 = pos;
13513
+ const ch = text2.charCodeAt(pos);
13514
+ switch (ch) {
13515
+ case 94 /* caret */:
13516
+ case 36 /* $ */:
13517
+ pos++;
13518
+ isPreviousTermQuantifiable = false;
13519
+ break;
13520
+ case 92 /* backslash */:
13521
+ pos++;
13522
+ switch (text2.charCodeAt(pos)) {
13523
+ case 98 /* b */:
13524
+ case 66 /* B */:
13525
+ pos++;
13526
+ isPreviousTermQuantifiable = false;
13527
+ break;
13528
+ default:
13529
+ scanAtomEscape();
13530
+ isPreviousTermQuantifiable = true;
13531
+ break;
13532
+ }
13533
+ break;
13534
+ case 40 /* openParen */:
13535
+ pos++;
13536
+ if (text2.charCodeAt(pos) === 63 /* question */) {
13537
+ pos++;
13538
+ switch (text2.charCodeAt(pos)) {
13539
+ case 61 /* equals */:
13540
+ case 33 /* exclamation */:
13541
+ pos++;
13542
+ isPreviousTermQuantifiable = false;
13543
+ break;
13544
+ case 60 /* lessThan */:
13545
+ const groupNameStart = pos;
13546
+ pos++;
13547
+ switch (text2.charCodeAt(pos)) {
13548
+ case 61 /* equals */:
13549
+ case 33 /* exclamation */:
13550
+ pos++;
13551
+ isPreviousTermQuantifiable = false;
13552
+ break;
13553
+ default:
13554
+ scanGroupName(
13555
+ /*isReference*/
13556
+ false
13557
+ );
13558
+ scanExpectedChar(62 /* greaterThan */);
13559
+ if (languageVersion < 5 /* ES2018 */) {
13560
+ error2(Diagnostics.Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later, groupNameStart, pos - groupNameStart);
13561
+ }
13562
+ numberOfCapturingGroups++;
13563
+ isPreviousTermQuantifiable = true;
13564
+ break;
13565
+ }
13566
+ break;
13567
+ default:
13568
+ const start3 = pos;
13569
+ const setFlags = scanPatternModifiers(0 /* None */);
13570
+ if (text2.charCodeAt(pos) === 45 /* minus */) {
13571
+ pos++;
13572
+ scanPatternModifiers(setFlags);
13573
+ if (pos === start3 + 1) {
13574
+ error2(Diagnostics.Subpattern_flags_must_be_present_when_there_is_a_minus_sign, start3, pos - start3);
13575
+ }
13576
+ }
13577
+ scanExpectedChar(58 /* colon */);
13578
+ isPreviousTermQuantifiable = true;
13579
+ break;
13580
+ }
13581
+ } else {
13582
+ numberOfCapturingGroups++;
13583
+ isPreviousTermQuantifiable = true;
13584
+ }
13585
+ scanDisjunction(
13586
+ /*isInGroup*/
13587
+ true
13588
+ );
13589
+ scanExpectedChar(41 /* closeParen */);
13590
+ break;
13591
+ case 123 /* openBrace */:
13592
+ pos++;
13593
+ const digitsStart = pos;
13594
+ scanDigits();
13595
+ const min2 = tokenValue;
13596
+ if (text2.charCodeAt(pos) === 44 /* comma */) {
13597
+ pos++;
13598
+ scanDigits();
13599
+ const max = tokenValue;
13600
+ if (!min2) {
13601
+ if (max || text2.charCodeAt(pos) === 125 /* closeBrace */) {
13602
+ error2(Diagnostics.Incomplete_quantifier_Digit_expected, digitsStart, 0);
13603
+ } else {
13604
+ if (unicodeMode) {
13605
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, start2, 1, String.fromCharCode(ch));
13606
+ }
13607
+ isPreviousTermQuantifiable = true;
13608
+ break;
13609
+ }
13610
+ }
13611
+ if (max && Number.parseInt(min2) > Number.parseInt(max)) {
13612
+ error2(Diagnostics.Numbers_out_of_order_in_quantifier, digitsStart, pos - digitsStart);
13613
+ }
13614
+ } else if (!min2) {
13615
+ if (unicodeMode) {
13616
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, start2, 1, String.fromCharCode(ch));
13617
+ }
13618
+ isPreviousTermQuantifiable = true;
13619
+ break;
13620
+ }
13621
+ scanExpectedChar(125 /* closeBrace */);
13622
+ pos--;
13623
+ case 42 /* asterisk */:
13624
+ case 43 /* plus */:
13625
+ case 63 /* question */:
13626
+ pos++;
13627
+ if (text2.charCodeAt(pos) === 63 /* question */) {
13628
+ pos++;
13629
+ }
13630
+ if (!isPreviousTermQuantifiable) {
13631
+ error2(Diagnostics.There_is_nothing_available_for_repetition, start2, pos - start2);
13632
+ }
13633
+ isPreviousTermQuantifiable = false;
13634
+ break;
13635
+ case 46 /* dot */:
13636
+ pos++;
13637
+ isPreviousTermQuantifiable = true;
13638
+ break;
13639
+ case 91 /* openBracket */:
13640
+ pos++;
13641
+ if (unicodeSetsMode) {
13642
+ scanClassSetExpression();
13643
+ } else {
13644
+ scanClassRanges();
13645
+ }
13646
+ scanExpectedChar(93 /* closeBracket */);
13647
+ isPreviousTermQuantifiable = true;
13648
+ break;
13649
+ case 41 /* closeParen */:
13650
+ if (isInGroup) {
13651
+ return;
13652
+ }
13653
+ case 93 /* closeBracket */:
13654
+ case 125 /* closeBrace */:
13655
+ if (isUnterminated && !isInGroup) {
13656
+ return;
13657
+ }
13658
+ if (unicodeMode || ch === 41 /* closeParen */) {
13659
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
13660
+ }
13661
+ pos++;
13662
+ isPreviousTermQuantifiable = true;
13663
+ break;
13664
+ case 47 /* slash */:
13665
+ case 124 /* bar */:
13666
+ return;
13667
+ default:
13668
+ scanSourceCharacter();
13669
+ isPreviousTermQuantifiable = true;
13670
+ break;
13671
+ }
13672
+ }
13673
+ }
13674
+ function scanPatternModifiers(currFlags) {
13675
+ while (pos < end2) {
13676
+ const ch = text2.charCodeAt(pos);
13677
+ if (!isIdentifierPart(ch, languageVersion)) {
13678
+ break;
13679
+ }
13680
+ const flag = characterToRegularExpressionFlag(String.fromCharCode(ch));
13681
+ if (flag === void 0) {
13682
+ error2(Diagnostics.Unknown_regular_expression_flag, pos, 1);
13683
+ } else if (currFlags & flag) {
13684
+ error2(Diagnostics.Duplicate_regular_expression_flag, pos, 1);
13685
+ } else if (!(flag & 28 /* Modifiers */)) {
13686
+ error2(Diagnostics.This_regular_expression_flag_cannot_be_toggled_within_a_subpattern, pos, 1);
13687
+ } else {
13688
+ currFlags |= flag;
13689
+ const availableFrom = regExpFlagToFirstAvailableLanguageVersion.get(flag);
13690
+ if (languageVersion < availableFrom) {
13691
+ error2(Diagnostics.This_regular_expression_flag_is_only_available_when_targeting_0_or_later, pos, 1, getNameOfScriptTarget(availableFrom));
13692
+ }
13693
+ }
13694
+ pos++;
13695
+ }
13696
+ return currFlags;
13697
+ }
13698
+ function scanAtomEscape() {
13699
+ Debug.assertEqual(text2.charCodeAt(pos - 1), 92 /* backslash */);
13700
+ switch (text2.charCodeAt(pos)) {
13701
+ case 107 /* k */:
13702
+ pos++;
13703
+ if (text2.charCodeAt(pos) === 60 /* lessThan */) {
13704
+ pos++;
13705
+ scanGroupName(
13706
+ /*isReference*/
13707
+ true
13708
+ );
13709
+ scanExpectedChar(62 /* greaterThan */);
13710
+ } else if (unicodeMode) {
13711
+ error2(Diagnostics.k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets, pos - 2, 2);
13712
+ }
13713
+ break;
13714
+ case 113 /* q */:
13715
+ if (unicodeSetsMode) {
13716
+ pos++;
13717
+ error2(Diagnostics.q_is_only_available_inside_character_class, pos - 2, 2);
13718
+ break;
13719
+ }
13720
+ default:
13721
+ Debug.assert(scanCharacterClassEscape() || scanDecimalEscape() || scanCharacterEscape());
13722
+ break;
13723
+ }
13724
+ }
13725
+ function scanDecimalEscape() {
13726
+ Debug.assertEqual(text2.charCodeAt(pos - 1), 92 /* backslash */);
13727
+ const ch = text2.charCodeAt(pos);
13728
+ if (ch >= 49 /* _1 */ && ch <= 57 /* _9 */) {
13729
+ const start2 = pos;
13730
+ scanDigits();
13731
+ decimalEscapes.push({ pos: start2, end: pos, value: +tokenValue });
13732
+ return true;
13733
+ }
13734
+ return false;
13735
+ }
13736
+ function scanCharacterEscape() {
13737
+ Debug.assertEqual(text2.charCodeAt(pos - 1), 92 /* backslash */);
13738
+ let ch = text2.charCodeAt(pos);
13739
+ switch (ch) {
13740
+ case 99 /* c */:
13741
+ pos++;
13742
+ ch = text2.charCodeAt(pos);
13743
+ if (isASCIILetter(ch)) {
13744
+ pos++;
13745
+ return String.fromCharCode(ch & 31);
13746
+ }
13747
+ if (unicodeMode) {
13748
+ error2(Diagnostics.c_must_be_followed_by_an_ASCII_letter, pos - 2, 2);
13749
+ }
13750
+ return String.fromCharCode(ch);
13751
+ case 94 /* caret */:
13752
+ case 36 /* $ */:
13753
+ case 47 /* slash */:
13754
+ case 92 /* backslash */:
13755
+ case 46 /* dot */:
13756
+ case 42 /* asterisk */:
13757
+ case 43 /* plus */:
13758
+ case 63 /* question */:
13759
+ case 40 /* openParen */:
13760
+ case 41 /* closeParen */:
13761
+ case 91 /* openBracket */:
13762
+ case 93 /* closeBracket */:
13763
+ case 123 /* openBrace */:
13764
+ case 125 /* closeBrace */:
13765
+ case 124 /* bar */:
13766
+ pos++;
13767
+ return String.fromCharCode(ch);
13768
+ default:
13769
+ if (pos >= end2) {
13770
+ error2(Diagnostics.Undetermined_character_escape, pos - 1, 1, ch);
13771
+ return "\\";
13772
+ }
13773
+ pos--;
13774
+ return scanEscapeSequence(
13775
+ /*shouldEmitInvalidEscapeError*/
13776
+ unicodeMode,
13777
+ /*isRegularExpression*/
13778
+ true
13779
+ );
13780
+ }
13781
+ }
13782
+ function scanGroupName(isReference) {
13783
+ Debug.assertEqual(text2.charCodeAt(pos - 1), 60 /* lessThan */);
13784
+ tokenStart = pos;
13785
+ scanIdentifier(codePointAt(text2, pos), languageVersion);
13786
+ if (pos === tokenStart) {
13787
+ error2(Diagnostics.Expected_a_capturing_group_name);
13788
+ } else if (isReference) {
13789
+ groupNameReferences.push({ pos: tokenStart, end: pos, name: tokenValue });
13790
+ } else if (namedCapturingGroups.some((group2) => group2.has(tokenValue))) {
13791
+ error2(Diagnostics.Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other, tokenStart, pos - tokenStart);
13792
+ } else {
13793
+ last(namedCapturingGroups).add(tokenValue);
13794
+ groupSpecifiers.add(tokenValue);
13795
+ }
13796
+ }
13797
+ function isClassContentExit(ch) {
13798
+ return ch === 93 /* closeBracket */ || pos >= end2;
13799
+ }
13800
+ function scanClassRanges() {
13801
+ Debug.assertEqual(text2.charCodeAt(pos - 1), 91 /* openBracket */);
13802
+ if (text2.charCodeAt(pos) === 94 /* caret */) {
13803
+ pos++;
13804
+ }
13805
+ while (pos < end2) {
13806
+ const ch = text2.charCodeAt(pos);
13807
+ if (isClassContentExit(ch)) {
13808
+ return;
13809
+ }
13810
+ const minStart = pos;
13811
+ const minCharacter = scanClassAtom();
13812
+ if (text2.charCodeAt(pos) === 45 /* minus */) {
13813
+ pos++;
13814
+ const ch2 = text2.charCodeAt(pos);
13815
+ if (isClassContentExit(ch2)) {
13816
+ return;
13817
+ }
13818
+ if (!minCharacter) {
13819
+ error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, minStart, pos - 1 - minStart);
13820
+ }
13821
+ const maxStart = pos;
13822
+ const maxCharacter = scanClassAtom();
13823
+ if (!maxCharacter) {
13824
+ error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, maxStart, pos - maxStart);
13825
+ continue;
13826
+ }
13827
+ if (!minCharacter) {
13828
+ continue;
13829
+ }
13830
+ const minCharacterValue = codePointAt(minCharacter, 0);
13831
+ const maxCharacterValue = codePointAt(maxCharacter, 0);
13832
+ if (minCharacter.length === charSize(minCharacterValue) && maxCharacter.length === charSize(maxCharacterValue) && minCharacterValue > maxCharacterValue) {
13833
+ error2(Diagnostics.Range_out_of_order_in_character_class, minStart, pos - minStart);
13834
+ }
13835
+ }
13836
+ }
13837
+ }
13838
+ function scanClassSetExpression() {
13839
+ Debug.assertEqual(text2.charCodeAt(pos - 1), 91 /* openBracket */);
13840
+ let isCharacterComplement = false;
13841
+ if (text2.charCodeAt(pos) === 94 /* caret */) {
13842
+ pos++;
13843
+ isCharacterComplement = true;
13844
+ }
13845
+ let expressionMayContainStrings = false;
13846
+ let ch = text2.charCodeAt(pos);
13847
+ if (isClassContentExit(ch)) {
13848
+ return;
13849
+ }
13850
+ let start2 = pos;
13851
+ let oprand;
13852
+ switch (text2.slice(pos, pos + 2)) {
13853
+ case "--":
13854
+ case "&&":
13855
+ error2(Diagnostics.Expected_a_class_set_oprand);
13856
+ mayContainStrings = false;
13857
+ break;
13858
+ default:
13859
+ oprand = scanClassSetOprand();
13860
+ break;
13861
+ }
13862
+ switch (text2.charCodeAt(pos)) {
13863
+ case 45 /* minus */:
13864
+ if (text2.charCodeAt(pos + 1) === 45 /* minus */) {
13865
+ if (isCharacterComplement && mayContainStrings) {
13866
+ error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start2, pos - start2);
13867
+ }
13868
+ expressionMayContainStrings = mayContainStrings;
13869
+ scanClassSetSubExpression(3 /* ClassSubtraction */);
13870
+ mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
13871
+ return;
13872
+ }
13873
+ break;
13874
+ case 38 /* ampersand */:
13875
+ if (text2.charCodeAt(pos + 1) === 38 /* ampersand */) {
13876
+ scanClassSetSubExpression(2 /* ClassIntersection */);
13877
+ if (isCharacterComplement && mayContainStrings) {
13878
+ error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start2, pos - start2);
13879
+ }
13880
+ expressionMayContainStrings = mayContainStrings;
13881
+ mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
13882
+ return;
13883
+ } else {
13884
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
13885
+ }
13886
+ break;
13887
+ default:
13888
+ if (isCharacterComplement && mayContainStrings) {
13889
+ error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start2, pos - start2);
13890
+ }
13891
+ expressionMayContainStrings = mayContainStrings;
13892
+ break;
13893
+ }
13894
+ while (pos < end2) {
13895
+ ch = text2.charCodeAt(pos);
13896
+ switch (ch) {
13897
+ case 45 /* minus */:
13898
+ pos++;
13899
+ ch = text2.charCodeAt(pos);
13900
+ if (isClassContentExit(ch)) {
13901
+ mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
13902
+ return;
13903
+ }
13904
+ if (ch === 45 /* minus */) {
13905
+ pos++;
13906
+ error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);
13907
+ start2 = pos - 2;
13908
+ oprand = text2.slice(start2, pos);
13909
+ continue;
13910
+ } else {
13911
+ if (!oprand) {
13912
+ error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, start2, pos - 1 - start2);
13913
+ }
13914
+ const secondStart = pos;
13915
+ const secondOprand = scanClassSetOprand();
13916
+ if (isCharacterComplement && mayContainStrings) {
13917
+ error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, secondStart, pos - secondStart);
13918
+ }
13919
+ expressionMayContainStrings || (expressionMayContainStrings = mayContainStrings);
13920
+ if (!secondOprand) {
13921
+ error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, secondStart, pos - secondStart);
13922
+ break;
13923
+ }
13924
+ if (!oprand) {
13925
+ break;
13926
+ }
13927
+ const minCharacterValue = codePointAt(oprand, 0);
13928
+ const maxCharacterValue = codePointAt(secondOprand, 0);
13929
+ if (oprand.length === charSize(minCharacterValue) && secondOprand.length === charSize(maxCharacterValue) && minCharacterValue > maxCharacterValue) {
13930
+ error2(Diagnostics.Range_out_of_order_in_character_class, start2, pos - start2);
13931
+ }
13932
+ }
13933
+ break;
13934
+ case 38 /* ampersand */:
13935
+ start2 = pos;
13936
+ pos++;
13937
+ if (text2.charCodeAt(pos) === 38 /* ampersand */) {
13938
+ pos++;
13939
+ error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);
13940
+ if (text2.charCodeAt(pos) === 38 /* ampersand */) {
13941
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
13942
+ pos++;
13943
+ }
13944
+ } else {
13945
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos - 1, 1, String.fromCharCode(ch));
13946
+ }
13947
+ oprand = text2.slice(start2, pos);
13948
+ continue;
13949
+ }
13950
+ if (isClassContentExit(text2.charCodeAt(pos))) {
13951
+ break;
13952
+ }
13953
+ start2 = pos;
13954
+ switch (text2.slice(pos, pos + 2)) {
13955
+ case "--":
13956
+ case "&&":
13957
+ error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos, 2);
13958
+ pos += 2;
13959
+ oprand = text2.slice(start2, pos);
13960
+ break;
13961
+ default:
13962
+ oprand = scanClassSetOprand();
13963
+ break;
13964
+ }
13965
+ }
13966
+ mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
13967
+ }
13968
+ function scanClassSetSubExpression(expressionType) {
13969
+ let expressionMayContainStrings = mayContainStrings;
13970
+ while (pos < end2) {
13971
+ let ch = text2.charCodeAt(pos);
13972
+ if (isClassContentExit(ch)) {
13973
+ break;
13974
+ }
13975
+ switch (ch) {
13976
+ case 45 /* minus */:
13977
+ pos++;
13978
+ if (text2.charCodeAt(pos) === 45 /* minus */) {
13979
+ pos++;
13980
+ if (expressionType !== 3 /* ClassSubtraction */) {
13981
+ error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);
13982
+ }
13983
+ } else {
13984
+ error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 1, 1);
13985
+ }
13986
+ break;
13987
+ case 38 /* ampersand */:
13988
+ pos++;
13989
+ if (text2.charCodeAt(pos) === 38 /* ampersand */) {
13990
+ pos++;
13991
+ if (expressionType !== 2 /* ClassIntersection */) {
13992
+ error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);
13993
+ }
13994
+ if (text2.charCodeAt(pos) === 38 /* ampersand */) {
13995
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
13996
+ pos++;
13997
+ }
13998
+ } else {
13999
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos - 1, 1, String.fromCharCode(ch));
14000
+ }
14001
+ break;
14002
+ default:
14003
+ switch (expressionType) {
14004
+ case 3 /* ClassSubtraction */:
14005
+ error2(Diagnostics._0_expected, pos, 0, "--");
14006
+ break;
14007
+ case 2 /* ClassIntersection */:
14008
+ error2(Diagnostics._0_expected, pos, 0, "&&");
14009
+ break;
14010
+ default:
14011
+ break;
14012
+ }
14013
+ break;
14014
+ }
14015
+ ch = text2.charCodeAt(pos);
14016
+ if (isClassContentExit(ch)) {
14017
+ error2(Diagnostics.Expected_a_class_set_oprand);
14018
+ break;
14019
+ }
14020
+ scanClassSetOprand();
14021
+ expressionMayContainStrings && (expressionMayContainStrings = mayContainStrings);
14022
+ }
14023
+ mayContainStrings = expressionMayContainStrings;
14024
+ }
14025
+ function scanClassSetOprand() {
14026
+ mayContainStrings = false;
14027
+ switch (text2.charCodeAt(pos)) {
14028
+ case 91 /* openBracket */:
14029
+ pos++;
14030
+ scanClassSetExpression();
14031
+ scanExpectedChar(93 /* closeBracket */);
14032
+ return "";
14033
+ case 92 /* backslash */:
14034
+ pos++;
14035
+ if (scanCharacterClassEscape()) {
14036
+ return "";
14037
+ } else if (text2.charCodeAt(pos) === 113 /* q */) {
14038
+ pos++;
14039
+ if (text2.charCodeAt(pos) === 123 /* openBrace */) {
14040
+ pos++;
14041
+ scanClassStringDisjunctionContents();
14042
+ scanExpectedChar(125 /* closeBrace */);
14043
+ return "";
14044
+ } else {
14045
+ error2(Diagnostics.q_must_be_followed_by_string_alternatives_enclosed_in_braces, pos - 2, 2);
14046
+ return "q";
14047
+ }
14048
+ }
14049
+ pos--;
14050
+ default:
14051
+ return scanClassSetCharacter();
14052
+ }
14053
+ }
14054
+ function scanClassStringDisjunctionContents() {
14055
+ Debug.assertEqual(text2.charCodeAt(pos - 1), 123 /* openBrace */);
14056
+ let characterCount = 0;
14057
+ while (pos < end2) {
14058
+ const ch = text2.charCodeAt(pos);
14059
+ switch (ch) {
14060
+ case 125 /* closeBrace */:
14061
+ if (characterCount !== 1) {
14062
+ mayContainStrings = true;
14063
+ }
14064
+ return;
14065
+ case 124 /* bar */:
14066
+ if (characterCount !== 1) {
14067
+ mayContainStrings = true;
14068
+ }
14069
+ pos++;
14070
+ start = pos;
14071
+ characterCount = 0;
14072
+ break;
14073
+ default:
14074
+ scanClassSetCharacter();
14075
+ characterCount++;
14076
+ break;
14077
+ }
14078
+ }
14079
+ }
14080
+ function scanClassSetCharacter() {
14081
+ const ch = text2.charCodeAt(pos);
14082
+ if (ch === 92 /* backslash */) {
14083
+ pos++;
14084
+ const ch2 = text2.charCodeAt(pos);
14085
+ switch (ch2) {
14086
+ case 98 /* b */:
14087
+ pos++;
14088
+ return "\b";
14089
+ case 38 /* ampersand */:
14090
+ case 45 /* minus */:
14091
+ case 33 /* exclamation */:
14092
+ case 35 /* hash */:
14093
+ case 37 /* percent */:
14094
+ case 44 /* comma */:
14095
+ case 58 /* colon */:
14096
+ case 59 /* semicolon */:
14097
+ case 60 /* lessThan */:
14098
+ case 61 /* equals */:
14099
+ case 62 /* greaterThan */:
14100
+ case 64 /* at */:
14101
+ case 96 /* backtick */:
14102
+ case 126 /* tilde */:
14103
+ pos++;
14104
+ return String.fromCharCode(ch2);
14105
+ default:
14106
+ return scanCharacterEscape();
14107
+ }
14108
+ } else if (ch === text2.charCodeAt(pos + 1)) {
14109
+ switch (ch) {
14110
+ case 38 /* ampersand */:
14111
+ case 33 /* exclamation */:
14112
+ case 35 /* hash */:
14113
+ case 37 /* percent */:
14114
+ case 42 /* asterisk */:
14115
+ case 43 /* plus */:
14116
+ case 44 /* comma */:
14117
+ case 46 /* dot */:
14118
+ case 58 /* colon */:
14119
+ case 59 /* semicolon */:
14120
+ case 60 /* lessThan */:
14121
+ case 61 /* equals */:
14122
+ case 62 /* greaterThan */:
14123
+ case 63 /* question */:
14124
+ case 64 /* at */:
14125
+ case 96 /* backtick */:
14126
+ case 126 /* tilde */:
14127
+ error2(Diagnostics.A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash, pos, 2);
14128
+ pos += 2;
14129
+ return text2.substring(pos - 2, pos);
14130
+ }
14131
+ }
14132
+ switch (ch) {
14133
+ case 47 /* slash */:
14134
+ case 40 /* openParen */:
14135
+ case 41 /* closeParen */:
14136
+ case 91 /* openBracket */:
14137
+ case 93 /* closeBracket */:
14138
+ case 123 /* openBrace */:
14139
+ case 125 /* closeBrace */:
14140
+ case 45 /* minus */:
14141
+ case 124 /* bar */:
14142
+ error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));
14143
+ pos++;
14144
+ return String.fromCharCode(ch);
14145
+ }
14146
+ return scanSourceCharacter();
14147
+ }
14148
+ function scanClassAtom() {
14149
+ if (text2.charCodeAt(pos) === 92 /* backslash */) {
14150
+ pos++;
14151
+ const ch = text2.charCodeAt(pos);
14152
+ switch (ch) {
14153
+ case 98 /* b */:
14154
+ pos++;
14155
+ return "\b";
14156
+ case 45 /* minus */:
14157
+ pos++;
14158
+ return String.fromCharCode(ch);
14159
+ default:
14160
+ if (scanCharacterClassEscape()) {
14161
+ return "";
14162
+ }
14163
+ return scanCharacterEscape();
14164
+ }
14165
+ } else {
14166
+ return scanSourceCharacter();
14167
+ }
14168
+ }
14169
+ function scanCharacterClassEscape() {
14170
+ Debug.assertEqual(text2.charCodeAt(pos - 1), 92 /* backslash */);
14171
+ let isCharacterComplement = false;
14172
+ const start2 = pos - 1;
14173
+ const ch = text2.charCodeAt(pos);
14174
+ switch (ch) {
14175
+ case 100 /* d */:
14176
+ case 68 /* D */:
14177
+ case 115 /* s */:
14178
+ case 83 /* S */:
14179
+ case 119 /* w */:
14180
+ case 87 /* W */:
14181
+ pos++;
14182
+ return true;
14183
+ case 80 /* P */:
14184
+ isCharacterComplement = true;
14185
+ case 112 /* p */:
14186
+ pos++;
14187
+ if (text2.charCodeAt(pos) === 123 /* openBrace */) {
14188
+ pos++;
14189
+ const propertyNameOrValueStart = pos;
14190
+ const propertyNameOrValue = scanWordCharacters();
14191
+ if (text2.charCodeAt(pos) === 61 /* equals */) {
14192
+ const propertyName = nonBinaryUnicodeProperties.get(propertyNameOrValue);
14193
+ if (pos === propertyNameOrValueStart) {
14194
+ error2(Diagnostics.Expected_a_Unicode_property_name);
14195
+ } else if (propertyName === void 0) {
14196
+ error2(Diagnostics.Unknown_Unicode_property_name, propertyNameOrValueStart, pos - propertyNameOrValueStart);
14197
+ const suggestion = getSpellingSuggestion(propertyNameOrValue, nonBinaryUnicodeProperties.keys(), identity);
14198
+ if (suggestion) {
14199
+ error2(Diagnostics.Did_you_mean_0, propertyNameOrValueStart, pos - propertyNameOrValueStart, suggestion);
14200
+ }
14201
+ }
14202
+ pos++;
14203
+ const propertyValueStart = pos;
14204
+ const propertyValue = scanWordCharacters();
14205
+ if (pos === propertyValueStart) {
14206
+ error2(Diagnostics.Expected_a_Unicode_property_value);
14207
+ } else if (propertyName !== void 0 && !valuesOfNonBinaryUnicodeProperties[propertyName].has(propertyValue)) {
14208
+ error2(Diagnostics.Unknown_Unicode_property_value, propertyValueStart, pos - propertyValueStart);
14209
+ const suggestion = getSpellingSuggestion(propertyValue, valuesOfNonBinaryUnicodeProperties[propertyName], identity);
14210
+ if (suggestion) {
14211
+ error2(Diagnostics.Did_you_mean_0, propertyValueStart, pos - propertyValueStart, suggestion);
14212
+ }
14213
+ }
14214
+ } else {
14215
+ if (pos === propertyNameOrValueStart) {
14216
+ error2(Diagnostics.Expected_a_Unicode_property_name_or_value);
14217
+ } else if (binaryUnicodePropertiesOfStrings.has(propertyNameOrValue)) {
14218
+ if (!unicodeSetsMode) {
14219
+ 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);
14220
+ } else if (isCharacterComplement) {
14221
+ error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, propertyNameOrValueStart, pos - propertyNameOrValueStart);
14222
+ } else {
14223
+ mayContainStrings = true;
14224
+ }
14225
+ } else if (!valuesOfNonBinaryUnicodeProperties.General_Category.has(propertyNameOrValue) && !binaryUnicodeProperties.has(propertyNameOrValue)) {
14226
+ error2(Diagnostics.Unknown_Unicode_property_name_or_value, propertyNameOrValueStart, pos - propertyNameOrValueStart);
14227
+ const suggestion = getSpellingSuggestion(propertyNameOrValue, [...valuesOfNonBinaryUnicodeProperties.General_Category, ...binaryUnicodeProperties, ...binaryUnicodePropertiesOfStrings], identity);
14228
+ if (suggestion) {
14229
+ error2(Diagnostics.Did_you_mean_0, propertyNameOrValueStart, pos - propertyNameOrValueStart, suggestion);
14230
+ }
14231
+ }
14232
+ }
14233
+ scanExpectedChar(125 /* closeBrace */);
14234
+ if (!unicodeMode) {
14235
+ error2(Diagnostics.Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set, start2, pos - start2);
14236
+ }
14237
+ } else if (unicodeMode) {
14238
+ error2(Diagnostics._0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces, pos - 2, 2, String.fromCharCode(ch));
14239
+ }
14240
+ return true;
14241
+ }
14242
+ return false;
14243
+ }
14244
+ function scanWordCharacters() {
14245
+ let value = "";
14246
+ while (pos < end2) {
14247
+ const ch = text2.charCodeAt(pos);
14248
+ if (!isWordCharacter(ch)) {
14249
+ break;
14250
+ }
14251
+ value += String.fromCharCode(ch);
14252
+ pos++;
14253
+ }
14254
+ return value;
14255
+ }
14256
+ function scanSourceCharacter() {
14257
+ const size = unicodeMode ? charSize(codePointAt(text2, pos)) : 1;
14258
+ pos += size;
14259
+ return text2.substring(pos - size, pos);
14260
+ }
14261
+ function scanExpectedChar(ch) {
14262
+ if (text2.charCodeAt(pos) === ch) {
14263
+ pos++;
14264
+ } else {
14265
+ error2(Diagnostics._0_expected, pos, 0, String.fromCharCode(ch));
14266
+ }
14267
+ }
14268
+ scanDisjunction(
14269
+ /*isInGroup*/
14270
+ false
14271
+ );
14272
+ forEach(groupNameReferences, (reference) => {
14273
+ if (!groupSpecifiers.has(reference.name)) {
14274
+ error2(Diagnostics.There_is_no_capturing_group_named_0_in_this_regular_expression, reference.pos, reference.end - reference.pos, reference.name);
14275
+ }
14276
+ });
14277
+ forEach(decimalEscapes, (escape) => {
14278
+ if (escape.value > numberOfCapturingGroups) {
14279
+ if (numberOfCapturingGroups) {
14280
+ 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);
14281
+ } else {
14282
+ error2(Diagnostics.Decimal_escapes_are_invalid_when_there_are_no_capturing_groups_in_a_regular_expression, escape.pos, escape.end - escape.pos);
14283
+ }
14284
+ }
14285
+ });
14286
+ }
13332
14287
  }
13333
14288
  function appendIfCommentDirective(commentDirectives2, text2, commentDirectiveRegEx, lineStart) {
13334
14289
  const type = getDirectiveFromComment(text2.trimStart(), commentDirectiveRegEx);
@@ -13555,9 +14510,10 @@ function createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Stan
13555
14510
  pos--;
13556
14511
  const extendedCookedChar = peekExtendedUnicodeEscape();
13557
14512
  if (extendedCookedChar >= 0 && isIdentifierStart(extendedCookedChar, languageVersion)) {
13558
- pos += 3;
13559
- tokenFlags |= 8 /* ExtendedUnicodeEscape */;
13560
- tokenValue = scanExtendedUnicodeEscape() + scanIdentifierParts();
14513
+ tokenValue = scanExtendedUnicodeEscape(
14514
+ /*shouldEmitInvalidEscapeError*/
14515
+ true
14516
+ ) + scanIdentifierParts();
13561
14517
  return token = getIdentifierToken();
13562
14518
  }
13563
14519
  const cookedChar = peekUnicodeEscape();
@@ -13697,6 +14653,22 @@ var utf16EncodeAsStringWorker = String.fromCodePoint ? (codePoint) => String.fro
13697
14653
  function utf16EncodeAsString(codePoint) {
13698
14654
  return utf16EncodeAsStringWorker(codePoint);
13699
14655
  }
14656
+ var nonBinaryUnicodeProperties = new Map(Object.entries({
14657
+ General_Category: "General_Category",
14658
+ gc: "General_Category",
14659
+ Script: "Script",
14660
+ sc: "Script",
14661
+ Script_Extensions: "Script_Extensions",
14662
+ scx: "Script_Extensions"
14663
+ }));
14664
+ 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"]);
14665
+ 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"]);
14666
+ var valuesOfNonBinaryUnicodeProperties = {
14667
+ 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"]),
14668
+ 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"]),
14669
+ Script_Extensions: /* @__PURE__ */ new Set()
14670
+ // Currently empty
14671
+ };
13700
14672
 
13701
14673
  // src/compiler/utilitiesPublic.ts
13702
14674
  function isExternalModuleNameRelative(moduleName) {
@@ -15916,6 +16888,10 @@ var getScriptTargetFeatures = /* @__PURE__ */ memoize(
15916
16888
  ],
15917
16889
  es2022: [
15918
16890
  "at"
16891
+ ],
16892
+ esnext: [
16893
+ "isWellFormed",
16894
+ "toWellFormed"
15919
16895
  ]
15920
16896
  })),
15921
16897
  StringConstructor: new Map(Object.entries({
@@ -16607,6 +17583,10 @@ function isVarUsing(node) {
16607
17583
  function isVarConst(node) {
16608
17584
  return (getCombinedNodeFlags(node) & 7 /* BlockScoped */) === 2 /* Const */;
16609
17585
  }
17586
+ function isVarConstLike(node) {
17587
+ const blockScopeKind = getCombinedNodeFlags(node) & 7 /* BlockScoped */;
17588
+ return blockScopeKind === 2 /* Const */ || blockScopeKind === 4 /* Using */ || blockScopeKind === 6 /* AwaitUsing */;
17589
+ }
16610
17590
  function isLet(node) {
16611
17591
  return (getCombinedNodeFlags(node) & 7 /* BlockScoped */) === 1 /* Let */;
16612
17592
  }
@@ -18546,7 +19526,7 @@ function isNamedEvaluation(node, cb) {
18546
19526
  function isPushOrUnshiftIdentifier(node) {
18547
19527
  return node.escapedText === "push" || node.escapedText === "unshift";
18548
19528
  }
18549
- function isParameterDeclaration(node) {
19529
+ function isPartOfParameterDeclaration(node) {
18550
19530
  const root = getRootDeclaration(node);
18551
19531
  return root.kind === 169 /* Parameter */;
18552
19532
  }
@@ -20937,6 +21917,9 @@ function moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)
20937
21917
  function getStrictOptionValue(compilerOptions, flag) {
20938
21918
  return compilerOptions[flag] === void 0 ? !!compilerOptions.strict : !!compilerOptions[flag];
20939
21919
  }
21920
+ function getNameOfScriptTarget(scriptTarget) {
21921
+ return forEachEntry(targetOptionDeclaration.type, (value, key) => value === scriptTarget ? key : void 0);
21922
+ }
20940
21923
  function getEmitStandardClassFields(compilerOptions) {
20941
21924
  return compilerOptions.useDefineForClassFields !== false && getEmitScriptTarget(compilerOptions) >= 9 /* ES2022 */;
20942
21925
  }
@@ -21004,8 +21987,15 @@ function createSymlinkCache(cwd, getCanonicalFileName) {
21004
21987
  forEachResolvedTypeReferenceDirective((resolution) => processResolution(this, resolution.resolvedTypeReferenceDirective));
21005
21988
  typeReferenceDirectives.forEach((resolution) => processResolution(this, resolution.resolvedTypeReferenceDirective));
21006
21989
  },
21007
- hasProcessedResolutions: () => hasProcessedResolutions
21990
+ hasProcessedResolutions: () => hasProcessedResolutions,
21991
+ setSymlinksFromResolution(resolution) {
21992
+ processResolution(this, resolution);
21993
+ },
21994
+ hasAnySymlinks
21008
21995
  };
21996
+ function hasAnySymlinks() {
21997
+ return !!(symlinkedFiles == null ? void 0 : symlinkedFiles.size) || !!symlinkedDirectories && !!forEachEntry(symlinkedDirectories, (value) => !!value);
21998
+ }
21009
21999
  function processResolution(cache, resolution) {
21010
22000
  if (!resolution || !resolution.originalPath || !resolution.resolvedFileName)
21011
22001
  return;
@@ -22038,26 +23028,28 @@ function replaceFirstStar(s, replacement) {
22038
23028
  function getNameFromImportAttribute(node) {
22039
23029
  return isIdentifier(node.name) ? node.name.escapedText : escapeLeadingUnderscores(node.name.text);
22040
23030
  }
22041
- function evaluatorResult(value, isSyntacticallyString = false, resolvedOtherFiles = false) {
22042
- return { value, isSyntacticallyString, resolvedOtherFiles };
23031
+ function evaluatorResult(value, isSyntacticallyString = false, resolvedOtherFiles = false, hasExternalReferences = false) {
23032
+ return { value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences };
22043
23033
  }
22044
23034
  function createEvaluator({ evaluateElementAccessExpression, evaluateEntityNameExpression }) {
22045
23035
  function evaluate(expr, location) {
22046
23036
  let isSyntacticallyString = false;
22047
23037
  let resolvedOtherFiles = false;
23038
+ let hasExternalReferences = false;
22048
23039
  expr = skipParentheses(expr);
22049
23040
  switch (expr.kind) {
22050
23041
  case 224 /* PrefixUnaryExpression */:
22051
23042
  const result = evaluate(expr.operand, location);
22052
23043
  resolvedOtherFiles = result.resolvedOtherFiles;
23044
+ hasExternalReferences = result.hasExternalReferences;
22053
23045
  if (typeof result.value === "number") {
22054
23046
  switch (expr.operator) {
22055
23047
  case 40 /* PlusToken */:
22056
- return evaluatorResult(result.value, isSyntacticallyString, resolvedOtherFiles);
23048
+ return evaluatorResult(result.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
22057
23049
  case 41 /* MinusToken */:
22058
- return evaluatorResult(-result.value, isSyntacticallyString, resolvedOtherFiles);
23050
+ return evaluatorResult(-result.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
22059
23051
  case 55 /* TildeToken */:
22060
- return evaluatorResult(~result.value, isSyntacticallyString, resolvedOtherFiles);
23052
+ return evaluatorResult(~result.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
22061
23053
  }
22062
23054
  }
22063
23055
  break;
@@ -22066,38 +23058,40 @@ function createEvaluator({ evaluateElementAccessExpression, evaluateEntityNameEx
22066
23058
  const right = evaluate(expr.right, location);
22067
23059
  isSyntacticallyString = (left.isSyntacticallyString || right.isSyntacticallyString) && expr.operatorToken.kind === 40 /* PlusToken */;
22068
23060
  resolvedOtherFiles = left.resolvedOtherFiles || right.resolvedOtherFiles;
23061
+ hasExternalReferences = left.hasExternalReferences || right.hasExternalReferences;
22069
23062
  if (typeof left.value === "number" && typeof right.value === "number") {
22070
23063
  switch (expr.operatorToken.kind) {
22071
23064
  case 52 /* BarToken */:
22072
- return evaluatorResult(left.value | right.value, isSyntacticallyString, resolvedOtherFiles);
23065
+ return evaluatorResult(left.value | right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
22073
23066
  case 51 /* AmpersandToken */:
22074
- return evaluatorResult(left.value & right.value, isSyntacticallyString, resolvedOtherFiles);
23067
+ return evaluatorResult(left.value & right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
22075
23068
  case 49 /* GreaterThanGreaterThanToken */:
22076
- return evaluatorResult(left.value >> right.value, isSyntacticallyString, resolvedOtherFiles);
23069
+ return evaluatorResult(left.value >> right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
22077
23070
  case 50 /* GreaterThanGreaterThanGreaterThanToken */:
22078
- return evaluatorResult(left.value >>> right.value, isSyntacticallyString, resolvedOtherFiles);
23071
+ return evaluatorResult(left.value >>> right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
22079
23072
  case 48 /* LessThanLessThanToken */:
22080
- return evaluatorResult(left.value << right.value, isSyntacticallyString, resolvedOtherFiles);
23073
+ return evaluatorResult(left.value << right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
22081
23074
  case 53 /* CaretToken */:
22082
- return evaluatorResult(left.value ^ right.value, isSyntacticallyString, resolvedOtherFiles);
23075
+ return evaluatorResult(left.value ^ right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
22083
23076
  case 42 /* AsteriskToken */:
22084
- return evaluatorResult(left.value * right.value, isSyntacticallyString, resolvedOtherFiles);
23077
+ return evaluatorResult(left.value * right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
22085
23078
  case 44 /* SlashToken */:
22086
- return evaluatorResult(left.value / right.value, isSyntacticallyString, resolvedOtherFiles);
23079
+ return evaluatorResult(left.value / right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
22087
23080
  case 40 /* PlusToken */:
22088
- return evaluatorResult(left.value + right.value, isSyntacticallyString, resolvedOtherFiles);
23081
+ return evaluatorResult(left.value + right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
22089
23082
  case 41 /* MinusToken */:
22090
- return evaluatorResult(left.value - right.value, isSyntacticallyString, resolvedOtherFiles);
23083
+ return evaluatorResult(left.value - right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
22091
23084
  case 45 /* PercentToken */:
22092
- return evaluatorResult(left.value % right.value, isSyntacticallyString, resolvedOtherFiles);
23085
+ return evaluatorResult(left.value % right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
22093
23086
  case 43 /* AsteriskAsteriskToken */:
22094
- return evaluatorResult(left.value ** right.value, isSyntacticallyString, resolvedOtherFiles);
23087
+ return evaluatorResult(left.value ** right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);
22095
23088
  }
22096
23089
  } else if ((typeof left.value === "string" || typeof left.value === "number") && (typeof right.value === "string" || typeof right.value === "number") && expr.operatorToken.kind === 40 /* PlusToken */) {
22097
23090
  return evaluatorResult(
22098
23091
  "" + left.value + right.value,
22099
23092
  isSyntacticallyString,
22100
- resolvedOtherFiles
23093
+ resolvedOtherFiles,
23094
+ hasExternalReferences
22101
23095
  );
22102
23096
  }
22103
23097
  break;
@@ -22127,12 +23121,14 @@ function createEvaluator({ evaluateElementAccessExpression, evaluateEntityNameEx
22127
23121
  /*value*/
22128
23122
  void 0,
22129
23123
  isSyntacticallyString,
22130
- resolvedOtherFiles
23124
+ resolvedOtherFiles,
23125
+ hasExternalReferences
22131
23126
  );
22132
23127
  }
22133
23128
  function evaluateTemplateExpression(expr, location) {
22134
23129
  let result = expr.head.text;
22135
23130
  let resolvedOtherFiles = false;
23131
+ let hasExternalReferences = false;
22136
23132
  for (const span of expr.templateSpans) {
22137
23133
  const spanResult = evaluate(span.expression, location);
22138
23134
  if (spanResult.value === void 0) {
@@ -22146,12 +23142,14 @@ function createEvaluator({ evaluateElementAccessExpression, evaluateEntityNameEx
22146
23142
  result += spanResult.value;
22147
23143
  result += span.literal.text;
22148
23144
  resolvedOtherFiles || (resolvedOtherFiles = spanResult.resolvedOtherFiles);
23145
+ hasExternalReferences || (hasExternalReferences = spanResult.hasExternalReferences);
22149
23146
  }
22150
23147
  return evaluatorResult(
22151
23148
  result,
22152
23149
  /*isSyntacticallyString*/
22153
23150
  true,
22154
- resolvedOtherFiles
23151
+ resolvedOtherFiles,
23152
+ hasExternalReferences
22155
23153
  );
22156
23154
  }
22157
23155
  return evaluate;
@@ -22381,7 +23379,7 @@ function createNameResolver({
22381
23379
  break;
22382
23380
  case 208 /* BindingElement */:
22383
23381
  if (lastLocation && (lastLocation === location.initializer || lastLocation === location.name && isBindingPattern(lastLocation))) {
22384
- if (isParameterDeclaration(location) && !associatedDeclarationForContainingInitializerOrBindingName) {
23382
+ if (isPartOfParameterDeclaration(location) && !associatedDeclarationForContainingInitializerOrBindingName) {
22385
23383
  associatedDeclarationForContainingInitializerOrBindingName = location;
22386
23384
  }
22387
23385
  }
@@ -22530,6 +23528,55 @@ function createNameResolver({
22530
23528
  return false;
22531
23529
  }
22532
23530
  }
23531
+ function isPrimitiveLiteralValue(node, includeBigInt = true) {
23532
+ Debug.type(node);
23533
+ switch (node.kind) {
23534
+ case 112 /* TrueKeyword */:
23535
+ case 97 /* FalseKeyword */:
23536
+ case 9 /* NumericLiteral */:
23537
+ case 11 /* StringLiteral */:
23538
+ case 15 /* NoSubstitutionTemplateLiteral */:
23539
+ return true;
23540
+ case 10 /* BigIntLiteral */:
23541
+ return includeBigInt;
23542
+ case 224 /* PrefixUnaryExpression */:
23543
+ if (node.operator === 41 /* MinusToken */) {
23544
+ return isNumericLiteral(node.operand) || includeBigInt && isBigIntLiteral(node.operand);
23545
+ }
23546
+ if (node.operator === 40 /* PlusToken */) {
23547
+ return isNumericLiteral(node.operand);
23548
+ }
23549
+ return false;
23550
+ default:
23551
+ assertType(node);
23552
+ return false;
23553
+ }
23554
+ }
23555
+ function unwrapParenthesizedExpression(o) {
23556
+ while (o.kind === 217 /* ParenthesizedExpression */) {
23557
+ o = o.expression;
23558
+ }
23559
+ return o;
23560
+ }
23561
+ function hasInferredType(node) {
23562
+ Debug.type(node);
23563
+ switch (node.kind) {
23564
+ case 169 /* Parameter */:
23565
+ case 171 /* PropertySignature */:
23566
+ case 172 /* PropertyDeclaration */:
23567
+ case 208 /* BindingElement */:
23568
+ case 211 /* PropertyAccessExpression */:
23569
+ case 212 /* ElementAccessExpression */:
23570
+ case 226 /* BinaryExpression */:
23571
+ case 260 /* VariableDeclaration */:
23572
+ case 277 /* ExportAssignment */:
23573
+ case 303 /* PropertyAssignment */:
23574
+ return true;
23575
+ default:
23576
+ assertType(node);
23577
+ return false;
23578
+ }
23579
+ }
22533
23580
 
22534
23581
  // src/compiler/factory/baseNodeFactory.ts
22535
23582
  function createBaseNodeFactory() {
@@ -29592,6 +30639,8 @@ function isSyntaxList(n) {
29592
30639
  // src/compiler/factory/nodeChildren.ts
29593
30640
  var nodeChildren = /* @__PURE__ */ new WeakMap();
29594
30641
  function getNodeChildren(node) {
30642
+ if (!isNodeKind(node.kind))
30643
+ return emptyArray;
29595
30644
  return nodeChildren.get(node);
29596
30645
  }
29597
30646
  function setNodeChildren(node, children) {
@@ -31782,7 +32831,7 @@ var Parser;
31782
32831
  function currentNode2(position) {
31783
32832
  const node = baseSyntaxCursor.currentNode(position);
31784
32833
  if (topLevel && node && containsPossibleTopLevelAwait(node)) {
31785
- node.intersectsChange = true;
32834
+ markAsIntersectingIncrementalChange(node);
31786
32835
  }
31787
32836
  return node;
31788
32837
  }
@@ -31928,7 +32977,10 @@ var Parser;
31928
32977
  function parseErrorAtPosition(start, length2, message, ...args) {
31929
32978
  const lastError = lastOrUndefined(parseDiagnostics);
31930
32979
  let result;
31931
- if (!lastError || start !== lastError.start) {
32980
+ if (message.category === 3 /* Message */ && lastError && start === lastError.start && length2 === lastError.length) {
32981
+ result = createDetachedDiagnostic(fileName, sourceText, start, length2, message, ...args);
32982
+ addRelatedInfo(lastError, result);
32983
+ } else if (!lastError || start !== lastError.start) {
31932
32984
  result = createDetachedDiagnostic(fileName, sourceText, start, length2, message, ...args);
31933
32985
  parseDiagnostics.push(result);
31934
32986
  }
@@ -32084,7 +33136,7 @@ var Parser;
32084
33136
  parseErrorForInvalidName(Diagnostics.Type_alias_name_cannot_be_0, Diagnostics.Type_alias_must_be_given_a_name, 64 /* EqualsToken */);
32085
33137
  return;
32086
33138
  }
32087
- const suggestion = getSpellingSuggestion(expressionText, viableKeywordSuggestions, (n) => n) ?? getSpaceSuggestion(expressionText);
33139
+ const suggestion = getSpellingSuggestion(expressionText, viableKeywordSuggestions, identity) ?? getSpaceSuggestion(expressionText);
32088
33140
  if (suggestion) {
32089
33141
  parseErrorAt(pos, node.end, Diagnostics.Unknown_keyword_or_identifier_Did_you_mean_0, suggestion);
32090
33142
  return;
@@ -32652,7 +33704,7 @@ var Parser;
32652
33704
  return void 0;
32653
33705
  }
32654
33706
  const node = syntaxCursor.currentNode(pos ?? scanner2.getTokenFullStart());
32655
- if (nodeIsMissing(node) || node.intersectsChange || containsParseError(node)) {
33707
+ if (nodeIsMissing(node) || intersectsIncrementalChange(node) || containsParseError(node)) {
32656
33708
  return void 0;
32657
33709
  }
32658
33710
  const nodeContextFlags = node.flags & 101441536 /* ContextFlags */;
@@ -38167,6 +39219,20 @@ var Parser;
38167
39219
  }
38168
39220
  })(JSDocParser = Parser2.JSDocParser || (Parser2.JSDocParser = {}));
38169
39221
  })(Parser || (Parser = {}));
39222
+ var incrementallyParsedFiles = /* @__PURE__ */ new WeakSet();
39223
+ function markAsIncrementallyParsed(sourceFile) {
39224
+ if (incrementallyParsedFiles.has(sourceFile)) {
39225
+ Debug.fail("Source file has already been incrementally parsed");
39226
+ }
39227
+ incrementallyParsedFiles.add(sourceFile);
39228
+ }
39229
+ var intersectingChangeSet = /* @__PURE__ */ new WeakSet();
39230
+ function intersectsIncrementalChange(node) {
39231
+ return intersectingChangeSet.has(node);
39232
+ }
39233
+ function markAsIntersectingIncrementalChange(node) {
39234
+ intersectingChangeSet.add(node);
39235
+ }
38170
39236
  var IncrementalParser;
38171
39237
  ((IncrementalParser2) => {
38172
39238
  function updateSourceFile2(sourceFile, newText, textChangeRange, aggressiveChecks) {
@@ -38189,10 +39255,8 @@ var IncrementalParser;
38189
39255
  sourceFile.jsDocParsingMode
38190
39256
  );
38191
39257
  }
38192
- const incrementalSourceFile = sourceFile;
38193
- Debug.assert(!incrementalSourceFile.hasBeenIncrementallyParsed);
38194
- incrementalSourceFile.hasBeenIncrementallyParsed = true;
38195
- Parser.fixupParentReferences(incrementalSourceFile);
39258
+ markAsIncrementallyParsed(sourceFile);
39259
+ Parser.fixupParentReferences(sourceFile);
38196
39260
  const oldText = sourceFile.text;
38197
39261
  const syntaxCursor = createSyntaxCursor(sourceFile);
38198
39262
  const changeRange = extendToAffectedRange(sourceFile, textChangeRange);
@@ -38201,7 +39265,7 @@ var IncrementalParser;
38201
39265
  Debug.assert(textSpanEnd(changeRange.span) === textSpanEnd(textChangeRange.span));
38202
39266
  Debug.assert(textSpanEnd(textChangeRangeNewSpan(changeRange)) === textSpanEnd(textChangeRangeNewSpan(textChangeRange)));
38203
39267
  const delta = textChangeRangeNewSpan(changeRange).length - changeRange.span.length;
38204
- updateTokenPositionsAndMarkElements(incrementalSourceFile, changeRange.span.start, textSpanEnd(changeRange.span), textSpanEnd(textChangeRangeNewSpan(changeRange)), delta, oldText, newText, aggressiveChecks);
39268
+ updateTokenPositionsAndMarkElements(sourceFile, changeRange.span.start, textSpanEnd(changeRange.span), textSpanEnd(textChangeRangeNewSpan(changeRange)), delta, oldText, newText, aggressiveChecks);
38205
39269
  const result = Parser.parseSourceFile(
38206
39270
  sourceFile.fileName,
38207
39271
  newText,
@@ -38317,8 +39381,9 @@ var IncrementalParser;
38317
39381
  );
38318
39382
  Debug.assert(pos <= end);
38319
39383
  if (element.parent) {
38320
- Debug.assertGreaterThanOrEqual(pos, element.parent.pos);
38321
- Debug.assertLessThanOrEqual(end, element.parent.end);
39384
+ const parent2 = element.parent;
39385
+ Debug.assertGreaterThanOrEqual(pos, parent2.pos);
39386
+ Debug.assertLessThanOrEqual(end, parent2.end);
38322
39387
  }
38323
39388
  setTextRangePosEnd(element, pos, end);
38324
39389
  }
@@ -38357,7 +39422,7 @@ var IncrementalParser;
38357
39422
  }
38358
39423
  const fullEnd = child.end;
38359
39424
  if (fullEnd >= changeStart) {
38360
- child.intersectsChange = true;
39425
+ markAsIntersectingIncrementalChange(child);
38361
39426
  unsetNodeChildren(child);
38362
39427
  adjustIntersectingElement(child, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta);
38363
39428
  forEachChild(child, visitNode3, visitArray2);
@@ -38387,7 +39452,7 @@ var IncrementalParser;
38387
39452
  }
38388
39453
  const fullEnd = array.end;
38389
39454
  if (fullEnd >= changeStart) {
38390
- array.intersectsChange = true;
39455
+ markAsIntersectingIncrementalChange(array);
38391
39456
  adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta);
38392
39457
  for (const node of array) {
38393
39458
  visitNode3(node);
@@ -38868,6 +39933,7 @@ var libEntries = [
38868
39933
  ["esnext.object", "lib.esnext.object.d.ts"],
38869
39934
  ["esnext.array", "lib.esnext.array.d.ts"],
38870
39935
  ["esnext.regexp", "lib.esnext.regexp.d.ts"],
39936
+ ["esnext.string", "lib.esnext.string.d.ts"],
38871
39937
  ["decorators", "lib.decorators.d.ts"],
38872
39938
  ["decorators.legacy", "lib.decorators.legacy.d.ts"]
38873
39939
  ];
@@ -39436,6 +40502,15 @@ var commandOptionsWithoutBuild = [
39436
40502
  description: Diagnostics.Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting,
39437
40503
  defaultValueDescription: false
39438
40504
  },
40505
+ {
40506
+ name: "isolatedDeclarations",
40507
+ type: "boolean",
40508
+ category: Diagnostics.Interop_Constraints,
40509
+ description: Diagnostics.Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files,
40510
+ defaultValueDescription: false,
40511
+ affectsBuildInfo: true,
40512
+ affectsSemanticDiagnostics: true
40513
+ },
39439
40514
  // Strict Type Checks
39440
40515
  {
39441
40516
  name: "strict",
@@ -47492,7 +48567,7 @@ function createBinder() {
47492
48567
  declareSymbolAndAddToSymbolTable(node, 2097152 /* Alias */, 2097152 /* AliasExcludes */);
47493
48568
  } else if (isBlockOrCatchScoped(node)) {
47494
48569
  bindBlockScopedDeclaration(node, 2 /* BlockScopedVariable */, 111551 /* BlockScopedVariableExcludes */);
47495
- } else if (isParameterDeclaration(node)) {
48570
+ } else if (isPartOfParameterDeclaration(node)) {
47496
48571
  declareSymbolAndAddToSymbolTable(node, 1 /* FunctionScopedVariable */, 111551 /* ParameterExcludes */);
47497
48572
  } else {
47498
48573
  declareSymbolAndAddToSymbolTable(node, 1 /* FunctionScopedVariable */, 111550 /* FunctionScopedVariableExcludes */);
@@ -47977,7 +49052,7 @@ function getModuleSpecifier(compilerOptions, importingSourceFile, importingSourc
47977
49052
  }
47978
49053
  function getNodeModulesPackageName(compilerOptions, importingSourceFile, nodeModulesFileName, host, preferences, options = {}) {
47979
49054
  const info = getInfo(importingSourceFile.fileName, host);
47980
- const modulePaths = getAllModulePaths(info, nodeModulesFileName, host, preferences, options);
49055
+ const modulePaths = getAllModulePaths(info, nodeModulesFileName, host, preferences, compilerOptions, options);
47981
49056
  return firstDefined(modulePaths, (modulePath) => tryGetModuleNameAsNodeModule(
47982
49057
  modulePath,
47983
49058
  info,
@@ -47992,7 +49067,7 @@ function getNodeModulesPackageName(compilerOptions, importingSourceFile, nodeMod
47992
49067
  }
47993
49068
  function getModuleSpecifierWorker(compilerOptions, importingSourceFile, importingSourceFileName, toFileName2, host, preferences, userPreferences, options = {}) {
47994
49069
  const info = getInfo(importingSourceFileName, host);
47995
- const modulePaths = getAllModulePaths(info, toFileName2, host, userPreferences, options);
49070
+ const modulePaths = getAllModulePaths(info, toFileName2, host, userPreferences, compilerOptions, options);
47996
49071
  return firstDefined(modulePaths, (modulePath) => tryGetModuleNameAsNodeModule(
47997
49072
  modulePath,
47998
49073
  info,
@@ -48054,7 +49129,7 @@ function getModuleSpecifiersWithCacheInfo(moduleSymbol, checker, compilerOptions
48054
49129
  if (!moduleSourceFile)
48055
49130
  return { moduleSpecifiers: emptyArray, computedWithoutCache };
48056
49131
  computedWithoutCache = true;
48057
- modulePaths || (modulePaths = getAllModulePathsWorker(getInfo(importingSourceFile.fileName, host), moduleSourceFile.originalFileName, host));
49132
+ modulePaths || (modulePaths = getAllModulePathsWorker(getInfo(importingSourceFile.fileName, host), moduleSourceFile.originalFileName, host, compilerOptions, options));
48058
49133
  const result = computeModuleSpecifiers(
48059
49134
  modulePaths,
48060
49135
  compilerOptions,
@@ -48273,7 +49348,7 @@ function forEachFileNameOfModule(importingFileName, importedFileName, host, pref
48273
49348
  });
48274
49349
  return result || (preferSymlinks ? forEach(targets, (p) => shouldFilterIgnoredPaths && containsIgnoredPath(p) ? void 0 : cb(p, p === referenceRedirect)) : void 0);
48275
49350
  }
48276
- function getAllModulePaths(info, importedFileName, host, preferences, options = {}) {
49351
+ function getAllModulePaths(info, importedFileName, host, preferences, compilerOptions, options = {}) {
48277
49352
  var _a;
48278
49353
  const importingFilePath = toPath(info.importingSourceFileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host));
48279
49354
  const importedFilePath = toPath(importedFileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host));
@@ -48283,13 +49358,48 @@ function getAllModulePaths(info, importedFileName, host, preferences, options =
48283
49358
  if (cached == null ? void 0 : cached.modulePaths)
48284
49359
  return cached.modulePaths;
48285
49360
  }
48286
- const modulePaths = getAllModulePathsWorker(info, importedFileName, host);
49361
+ const modulePaths = getAllModulePathsWorker(info, importedFileName, host, compilerOptions, options);
48287
49362
  if (cache) {
48288
49363
  cache.setModulePaths(importingFilePath, importedFilePath, preferences, options, modulePaths);
48289
49364
  }
48290
49365
  return modulePaths;
48291
49366
  }
48292
- function getAllModulePathsWorker(info, importedFileName, host) {
49367
+ var runtimeDependencyFields = ["dependencies", "peerDependencies", "optionalDependencies"];
49368
+ function getAllRuntimeDependencies(packageJson) {
49369
+ let result;
49370
+ for (const field of runtimeDependencyFields) {
49371
+ const deps = packageJson[field];
49372
+ if (deps && typeof deps === "object") {
49373
+ result = concatenate(result, getOwnKeys(deps));
49374
+ }
49375
+ }
49376
+ return result;
49377
+ }
49378
+ function getAllModulePathsWorker(info, importedFileName, host, compilerOptions, options) {
49379
+ var _a, _b;
49380
+ const cache = (_a = host.getModuleResolutionCache) == null ? void 0 : _a.call(host);
49381
+ const links = (_b = host.getSymlinkCache) == null ? void 0 : _b.call(host);
49382
+ if (cache && links && host.readFile && !pathContainsNodeModules(info.importingSourceFileName)) {
49383
+ Debug.type(host);
49384
+ const state = getTemporaryModuleResolutionState(cache.getPackageJsonInfoCache(), host, {});
49385
+ const packageJson = getPackageScopeForPath(info.importingSourceFileName, state);
49386
+ if (packageJson) {
49387
+ const toResolve = getAllRuntimeDependencies(packageJson.contents.packageJsonContent);
49388
+ for (const depName of toResolve || emptyArray) {
49389
+ const resolved = resolveModuleName(
49390
+ depName,
49391
+ combinePaths(packageJson.packageDirectory, "package.json"),
49392
+ compilerOptions,
49393
+ host,
49394
+ cache,
49395
+ /*redirectedReference*/
49396
+ void 0,
49397
+ options.overrideImportMode
49398
+ );
49399
+ links.setSymlinksFromResolution(resolved.resolvedModule);
49400
+ }
49401
+ }
49402
+ }
48293
49403
  const allFileNames = /* @__PURE__ */ new Map();
48294
49404
  let importedFileFromNodeModules = false;
48295
49405
  forEachFileNameOfModule(
@@ -48998,6 +50108,17 @@ function createTypeChecker(host) {
48998
50108
  var checkBinaryExpression = createCheckBinaryExpression();
48999
50109
  var emitResolver = createResolver();
49000
50110
  var nodeBuilder = createNodeBuilder();
50111
+ var syntacticNodeBuilder = createSyntacticTypeNodeBuilder(compilerOptions, {
50112
+ isEntityNameVisible,
50113
+ isExpandoFunctionDeclaration,
50114
+ isNonNarrowedBindableName,
50115
+ getAllAccessorDeclarations: getAllAccessorDeclarationsForDeclaration,
50116
+ requiresAddingImplicitUndefined,
50117
+ isUndefinedIdentifierExpression(node) {
50118
+ Debug.assert(isExpressionNode(node));
50119
+ return getSymbolAtLocation(node) === undefinedSymbol;
50120
+ }
50121
+ });
49001
50122
  var evaluate = createEvaluator({
49002
50123
  evaluateElementAccessExpression,
49003
50124
  evaluateEntityNameExpression
@@ -53024,7 +54145,7 @@ function createTypeChecker(host) {
53024
54145
  }
53025
54146
  return meaning;
53026
54147
  }
53027
- function isEntityNameVisible(entityName, enclosingDeclaration) {
54148
+ function isEntityNameVisible(entityName, enclosingDeclaration, shouldComputeAliasToMakeVisible = true) {
53028
54149
  const meaning = getMeaningOfEntityNameReference(entityName);
53029
54150
  const firstIdentifier = getFirstIdentifier(entityName);
53030
54151
  const symbol = resolveName(
@@ -53054,11 +54175,7 @@ function createTypeChecker(host) {
53054
54175
  ).accessibility === 0 /* Accessible */) {
53055
54176
  return { accessibility: 0 /* Accessible */ };
53056
54177
  }
53057
- return symbol && hasVisibleDeclarations(
53058
- symbol,
53059
- /*shouldComputeAliasToMakeVisible*/
53060
- true
53061
- ) || {
54178
+ return symbol && hasVisibleDeclarations(symbol, shouldComputeAliasToMakeVisible) || {
53062
54179
  accessibility: 1 /* NotAccessible */,
53063
54180
  errorSymbolName: getTextOfNode(firstIdentifier),
53064
54181
  errorNode: firstIdentifier
@@ -53207,6 +54324,16 @@ function createTypeChecker(host) {
53207
54324
  return setTextRange(setOriginalNode(range, location), location);
53208
54325
  }
53209
54326
  function expressionOrTypeToTypeNode(context, expr, type, addUndefined) {
54327
+ const oldFlags = context.flags;
54328
+ if (expr && !(context.flags & -2147483648 /* NoSyntacticPrinter */)) {
54329
+ syntacticNodeBuilder.serializeTypeOfExpression(expr, context, addUndefined);
54330
+ }
54331
+ context.flags |= -2147483648 /* NoSyntacticPrinter */;
54332
+ const result = expressionOrTypeToTypeNodeHelper(context, expr, type, addUndefined);
54333
+ context.flags = oldFlags;
54334
+ return result;
54335
+ }
54336
+ function expressionOrTypeToTypeNodeHelper(context, expr, type, addUndefined) {
53210
54337
  if (expr) {
53211
54338
  const typeNode = isAssertionExpression(expr) ? expr.type : isJSDocTypeAssertion(expr) ? getJSDocTypeAssertionType(expr) : void 0;
53212
54339
  if (typeNode && !isConstTypeReference(typeNode)) {
@@ -55151,6 +56278,10 @@ function createTypeChecker(host) {
55151
56278
  }
55152
56279
  const decl = declaration ?? symbol.valueDeclaration ?? ((_a = symbol.declarations) == null ? void 0 : _a[0]);
55153
56280
  const expr = decl && isDeclarationWithPossibleInnerTypeNodeReuse(decl) ? getPossibleTypeNodeReuseExpression(decl) : void 0;
56281
+ if (decl && hasInferredType(decl) && !(context.flags & -2147483648 /* NoSyntacticPrinter */)) {
56282
+ syntacticNodeBuilder.serializeTypeOfDeclaration(decl, context);
56283
+ }
56284
+ context.flags |= -2147483648 /* NoSyntacticPrinter */;
55154
56285
  const result = expressionOrTypeToTypeNode(context, expr, type, addUndefined);
55155
56286
  context.flags = oldFlags;
55156
56287
  return result;
@@ -55172,6 +56303,10 @@ function createTypeChecker(host) {
55172
56303
  let returnTypeNode;
55173
56304
  const returnType = getReturnTypeOfSignature(signature);
55174
56305
  if (returnType && !(suppressAny && isTypeAny(returnType))) {
56306
+ if (signature.declaration && !(context.flags & -2147483648 /* NoSyntacticPrinter */)) {
56307
+ syntacticNodeBuilder.serializeReturnTypeForSignature(signature.declaration, context);
56308
+ }
56309
+ context.flags |= -2147483648 /* NoSyntacticPrinter */;
55175
56310
  returnTypeNode = serializeReturnTypeForSignatureWorker(context, signature);
55176
56311
  } else if (!suppressAny) {
55177
56312
  returnTypeNode = factory.createKeywordTypeNode(133 /* AnyKeyword */);
@@ -55239,7 +56374,7 @@ function createTypeChecker(host) {
55239
56374
  );
55240
56375
  if (sym) {
55241
56376
  if (sym.flags & 1 /* FunctionScopedVariable */ && sym.valueDeclaration) {
55242
- if (isParameterDeclaration(sym.valueDeclaration)) {
56377
+ if (isPartOfParameterDeclaration(sym.valueDeclaration)) {
55243
56378
  return { introducesError, node: attachSymbolToLeftmostIdentifier(node) };
55244
56379
  }
55245
56380
  }
@@ -55945,7 +57080,7 @@ function createTypeChecker(host) {
55945
57080
  }
55946
57081
  }
55947
57082
  function includePrivateSymbol(symbol) {
55948
- if (some(symbol.declarations, isParameterDeclaration))
57083
+ if (some(symbol.declarations, isPartOfParameterDeclaration))
55949
57084
  return;
55950
57085
  Debug.assertIsDefined(deferredPrivatesStack[deferredPrivatesStack.length - 1]);
55951
57086
  getUnusedName(unescapeLeadingUnderscores(symbol.escapedName), symbol);
@@ -57532,7 +58667,7 @@ function createTypeChecker(host) {
57532
58667
  return parentType;
57533
58668
  }
57534
58669
  const pattern = declaration.parent;
57535
- if (strictNullChecks && declaration.flags & 33554432 /* Ambient */ && isParameterDeclaration(declaration)) {
58670
+ if (strictNullChecks && declaration.flags & 33554432 /* Ambient */ && isPartOfParameterDeclaration(declaration)) {
57536
58671
  parentType = getNonNullableType(parentType);
57537
58672
  } else if (strictNullChecks && pattern.parent.initializer && !hasTypeFacts(getTypeOfInitializer(pattern.parent.initializer), 65536 /* EQUndefined */)) {
57538
58673
  parentType = getTypeWithFacts(parentType, 524288 /* NEUndefined */);
@@ -64927,13 +66062,18 @@ function createTypeChecker(host) {
64927
66062
  const typeArguments = map(typeParameters, (t) => getMappedType(t, combinedMapper));
64928
66063
  const newAliasSymbol = aliasSymbol || type.aliasSymbol;
64929
66064
  const newAliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper);
64930
- const id = getTypeListId(typeArguments) + getAliasId(newAliasSymbol, newAliasTypeArguments);
66065
+ const id = (type.objectFlags & 134217728 /* SingleSignatureType */ ? "S" : "") + getTypeListId(typeArguments) + getAliasId(newAliasSymbol, newAliasTypeArguments);
64931
66066
  if (!target.instantiations) {
64932
66067
  target.instantiations = /* @__PURE__ */ new Map();
64933
66068
  target.instantiations.set(getTypeListId(typeParameters) + getAliasId(target.aliasSymbol, target.aliasTypeArguments), target);
64934
66069
  }
64935
66070
  let result = target.instantiations.get(id);
64936
66071
  if (!result) {
66072
+ if (type.objectFlags & 134217728 /* SingleSignatureType */) {
66073
+ result = instantiateAnonymousType(type, mapper);
66074
+ target.instantiations.set(id, result);
66075
+ return result;
66076
+ }
64937
66077
  const newMapper = createTypeMapper(typeParameters, typeArguments);
64938
66078
  result = target.objectFlags & 4 /* Reference */ ? createDeferredTypeReference(type.target, type.node, newMapper, newAliasSymbol, newAliasTypeArguments) : target.objectFlags & 32 /* Mapped */ ? instantiateMappedType(target, newMapper, newAliasSymbol, newAliasTypeArguments) : instantiateAnonymousType(target, newMapper, newAliasSymbol, newAliasTypeArguments);
64939
66079
  target.instantiations.set(id, result);
@@ -71770,7 +72910,7 @@ function createTypeChecker(host) {
71770
72910
  case 206 /* ObjectBindingPattern */:
71771
72911
  case 207 /* ArrayBindingPattern */:
71772
72912
  const rootDeclaration = getRootDeclaration(node.parent);
71773
- return isParameter(rootDeclaration) || isCatchClauseVariableDeclaration(rootDeclaration) ? !isSomeSymbolAssigned(rootDeclaration) : isVariableDeclaration(rootDeclaration) && isVarConstLike(rootDeclaration);
72913
+ return isParameter(rootDeclaration) || isCatchClauseVariableDeclaration(rootDeclaration) ? !isSomeSymbolAssigned(rootDeclaration) : isVariableDeclaration(rootDeclaration) && isVarConstLike2(rootDeclaration);
71774
72914
  }
71775
72915
  return false;
71776
72916
  }
@@ -71909,7 +73049,7 @@ function createTypeChecker(host) {
71909
73049
  if (!isReachableFlowNode(flow)) {
71910
73050
  return unreachableNeverType;
71911
73051
  }
71912
- if (isVariableDeclaration(node) && (isInJSFile(node) || isVarConstLike(node))) {
73052
+ if (isVariableDeclaration(node) && (isInJSFile(node) || isVarConstLike2(node))) {
71913
73053
  const init = getDeclaredExpandoInitializer(node);
71914
73054
  if (init && (init.kind === 218 /* FunctionExpression */ || init.kind === 219 /* ArrowFunction */)) {
71915
73055
  return getTypeAtFlowNode(flow.antecedent);
@@ -76149,7 +77289,10 @@ function createTypeChecker(host) {
76149
77289
  if (indexInfo.isReadonly && (isAssignmentTarget(node) || isDeleteTarget(node))) {
76150
77290
  error2(node, Diagnostics.Index_signature_in_type_0_only_permits_reading, typeToString(apparentType));
76151
77291
  }
76152
- propType = compilerOptions.noUncheckedIndexedAccess && !isAssignmentTarget(node) ? getUnionType([indexInfo.type, missingType]) : indexInfo.type;
77292
+ propType = indexInfo.type;
77293
+ if (compilerOptions.noUncheckedIndexedAccess && getAssignmentTargetKind(node) !== 1 /* Definite */) {
77294
+ propType = getUnionType([propType, missingType]);
77295
+ }
76153
77296
  if (compilerOptions.noPropertyAccessFromIndexSignature && isPropertyAccessExpression(node)) {
76154
77297
  error2(right, Diagnostics.Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0, unescapeLeadingUnderscores(right.escapedText));
76155
77298
  }
@@ -76599,7 +77742,16 @@ function createTypeChecker(host) {
76599
77742
  return errorType;
76600
77743
  }
76601
77744
  const effectiveIndexType = isForInVariableForNumericPropertyNames(indexExpression) ? numberType : indexType;
76602
- const accessFlags = isAssignmentTarget(node) ? 4 /* Writing */ | (isGenericObjectType(objectType) && !isThisTypeParameter(objectType) ? 2 /* NoIndexSignatures */ : 0) : 32 /* ExpressionPosition */;
77745
+ const assignmentTargetKind = getAssignmentTargetKind(node);
77746
+ let accessFlags;
77747
+ if (assignmentTargetKind === 0 /* None */) {
77748
+ accessFlags = 32 /* ExpressionPosition */;
77749
+ } else {
77750
+ accessFlags = 4 /* Writing */ | (isGenericObjectType(objectType) && !isThisTypeParameter(objectType) ? 2 /* NoIndexSignatures */ : 0);
77751
+ if (assignmentTargetKind === 2 /* Compound */) {
77752
+ accessFlags |= 32 /* ExpressionPosition */;
77753
+ }
77754
+ }
76603
77755
  const indexedAccessType = getIndexedAccessTypeOrUndefined(objectType, effectiveIndexType, accessFlags, node) || errorType;
76604
77756
  return checkIndexedAccessIndexType(getFlowTypeOfAccessExpression(node, getNodeLinks(node).resolvedSymbol, indexedAccessType, indexExpression, checkMode), node);
76605
77757
  }
@@ -78384,7 +79536,7 @@ function createTypeChecker(host) {
78384
79536
  let name;
78385
79537
  let decl;
78386
79538
  if (isVariableDeclaration(node.parent) && node.parent.initializer === node) {
78387
- if (!isInJSFile(node) && !(isVarConstLike(node.parent) && isFunctionLikeDeclaration(node))) {
79539
+ if (!isInJSFile(node) && !(isVarConstLike2(node.parent) && isFunctionLikeDeclaration(node))) {
78388
79540
  return void 0;
78389
79541
  }
78390
79542
  name = node.parent.name;
@@ -83827,7 +84979,7 @@ function createTypeChecker(host) {
83827
84979
  for (const node of potentialUnusedRenamedBindingElementsInTypes) {
83828
84980
  if (!((_a = getSymbolOfDeclaration(node)) == null ? void 0 : _a.isReferenced)) {
83829
84981
  const wrappingDeclaration = walkUpBindingElementsAndPatterns(node);
83830
- Debug.assert(isParameterDeclaration(wrappingDeclaration), "Only parameter declaration should be checked here");
84982
+ Debug.assert(isPartOfParameterDeclaration(wrappingDeclaration), "Only parameter declaration should be checked here");
83831
84983
  const diagnostic = createDiagnosticForNode(node.name, Diagnostics._0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation, declarationNameToString(node.name), declarationNameToString(node.propertyName));
83832
84984
  if (!wrappingDeclaration.type) {
83833
84985
  addRelatedInfo(
@@ -84015,7 +85167,7 @@ function createTypeChecker(host) {
84015
85167
  }
84016
85168
  }
84017
85169
  function checkVarDeclaredNamesNotShadowed(node) {
84018
- if ((getCombinedNodeFlagsCached(node) & 7 /* BlockScoped */) !== 0 || isParameterDeclaration(node)) {
85170
+ if ((getCombinedNodeFlagsCached(node) & 7 /* BlockScoped */) !== 0 || isPartOfParameterDeclaration(node)) {
84019
85171
  return;
84020
85172
  }
84021
85173
  const symbol = getSymbolOfDeclaration(node);
@@ -84063,7 +85215,7 @@ function createTypeChecker(host) {
84063
85215
  }
84064
85216
  }
84065
85217
  if (isBindingElement(node)) {
84066
- if (node.propertyName && isIdentifier(node.name) && isParameterDeclaration(node) && nodeIsMissing(getContainingFunction(node).body)) {
85218
+ if (node.propertyName && isIdentifier(node.name) && isPartOfParameterDeclaration(node) && nodeIsMissing(getContainingFunction(node).body)) {
84067
85219
  potentialUnusedRenamedBindingElementsInTypes.push(node);
84068
85220
  return;
84069
85221
  }
@@ -84108,7 +85260,7 @@ function createTypeChecker(host) {
84108
85260
  }
84109
85261
  forEach(node.name.elements, checkSourceElement);
84110
85262
  }
84111
- if (node.initializer && isParameterDeclaration(node) && nodeIsMissing(getContainingFunction(node).body)) {
85263
+ if (node.initializer && isPartOfParameterDeclaration(node) && nodeIsMissing(getContainingFunction(node).body)) {
84112
85264
  error2(node, Diagnostics.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation);
84113
85265
  return;
84114
85266
  }
@@ -86260,10 +87412,18 @@ function createTypeChecker(host) {
86260
87412
  /*isSyntacticallyString*/
86261
87413
  false,
86262
87414
  /*resolvedOtherFiles*/
87415
+ true,
87416
+ /*hasExternalReferences*/
86263
87417
  true
86264
87418
  );
86265
87419
  }
86266
- return result;
87420
+ return evaluatorResult(
87421
+ result.value,
87422
+ result.isSyntacticallyString,
87423
+ result.resolvedOtherFiles,
87424
+ /*hasExternalReferences*/
87425
+ true
87426
+ );
86267
87427
  }
86268
87428
  }
86269
87429
  return evaluatorResult(
@@ -86310,7 +87470,17 @@ function createTypeChecker(host) {
86310
87470
  0
86311
87471
  );
86312
87472
  }
86313
- return getEnumMemberValue(declaration);
87473
+ const value = getEnumMemberValue(declaration);
87474
+ if (location.parent !== declaration.parent) {
87475
+ return evaluatorResult(
87476
+ value.value,
87477
+ value.isSyntacticallyString,
87478
+ value.resolvedOtherFiles,
87479
+ /*hasExternalReferences*/
87480
+ true
87481
+ );
87482
+ }
87483
+ return value;
86314
87484
  }
86315
87485
  function checkEnumDeclaration(node) {
86316
87486
  addLazyDiagnostic(() => checkEnumDeclarationWorker(node));
@@ -88421,12 +89591,24 @@ function createTypeChecker(host) {
88421
89591
  return strictNullChecks && isOptionalParameter(parameter) && (isJSDocParameterTag(parameter) || !parameter.initializer) && hasSyntacticModifier(parameter, 31 /* ParameterPropertyModifier */);
88422
89592
  }
88423
89593
  function isExpandoFunctionDeclaration(node) {
88424
- const declaration = getParseTreeNode(node, isFunctionDeclaration);
89594
+ const declaration = getParseTreeNode(node, (n) => isFunctionDeclaration(n) || isVariableDeclaration(n));
88425
89595
  if (!declaration) {
88426
89596
  return false;
88427
89597
  }
88428
- const symbol = getSymbolOfDeclaration(declaration);
88429
- if (!symbol || !(symbol.flags & 16 /* Function */)) {
89598
+ let symbol;
89599
+ if (isVariableDeclaration(declaration)) {
89600
+ if (declaration.type || !isInJSFile(declaration) && !isVarConstLike2(declaration)) {
89601
+ return false;
89602
+ }
89603
+ const initializer = getDeclaredExpandoInitializer(declaration);
89604
+ if (!initializer || !canHaveSymbol(initializer)) {
89605
+ return false;
89606
+ }
89607
+ symbol = getSymbolOfDeclaration(initializer);
89608
+ } else {
89609
+ symbol = getSymbolOfDeclaration(declaration);
89610
+ }
89611
+ if (!symbol || !(symbol.flags & 16 /* Function */ | 3 /* Variable */)) {
88430
89612
  return false;
88431
89613
  }
88432
89614
  return !!forEachEntry(getExportsOfSymbol(symbol), (p) => p.flags & 111551 /* Value */ && isExpandoPropertyDeclaration(p.valueDeclaration));
@@ -88730,11 +89912,27 @@ function createTypeChecker(host) {
88730
89912
  return void 0;
88731
89913
  }
88732
89914
  function isLiteralConstDeclaration(node) {
88733
- if (isDeclarationReadonly(node) || isVariableDeclaration(node) && isVarConstLike(node)) {
89915
+ if (isDeclarationReadonly(node) || isVariableDeclaration(node) && isVarConstLike2(node)) {
88734
89916
  return isFreshLiteralType(getTypeOfSymbol(getSymbolOfDeclaration(node)));
88735
89917
  }
88736
89918
  return false;
88737
89919
  }
89920
+ function isNonNarrowedBindableName(node) {
89921
+ if (!hasBindableName(node.parent)) {
89922
+ return false;
89923
+ }
89924
+ const expression = node.expression;
89925
+ if (!isEntityNameExpression(expression)) {
89926
+ return true;
89927
+ }
89928
+ const type = getTypeOfExpression(expression);
89929
+ const symbol = getSymbolAtLocation(expression);
89930
+ if (!symbol) {
89931
+ return false;
89932
+ }
89933
+ const declaredType = getTypeOfSymbol(symbol);
89934
+ return declaredType === type;
89935
+ }
88738
89936
  function literalTypeToNode(type, enclosing, tracker) {
88739
89937
  const enumResult = type.flags & 1056 /* EnumLike */ ? nodeBuilder.symbolToExpression(
88740
89938
  type.symbol,
@@ -88854,6 +90052,7 @@ function createTypeChecker(host) {
88854
90052
  return node && getExternalModuleFileFromDeclaration(node);
88855
90053
  },
88856
90054
  isLiteralConstDeclaration,
90055
+ isNonNarrowedBindableName,
88857
90056
  isLateBound: (nodeIn) => {
88858
90057
  const node = getParseTreeNode(nodeIn, isDeclaration);
88859
90058
  const symbol = node && getSymbolOfDeclaration(node);
@@ -90225,7 +91424,7 @@ function createTypeChecker(host) {
90225
91424
  const initializer = node.initializer;
90226
91425
  if (initializer) {
90227
91426
  const isInvalidInitializer = !(isStringOrNumberLiteralExpression(initializer) || isSimpleLiteralEnumReference(initializer) || initializer.kind === 112 /* TrueKeyword */ || initializer.kind === 97 /* FalseKeyword */ || isBigIntLiteralExpression(initializer));
90228
- const isConstOrReadonly = isDeclarationReadonly(node) || isVariableDeclaration(node) && isVarConstLike(node);
91427
+ const isConstOrReadonly = isDeclarationReadonly(node) || isVariableDeclaration(node) && isVarConstLike2(node);
90229
91428
  if (isConstOrReadonly && !node.type) {
90230
91429
  if (isInvalidInitializer) {
90231
91430
  return grammarErrorOnNode(initializer, Diagnostics.A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference);
@@ -90690,7 +91889,7 @@ function createTypeChecker(host) {
90690
91889
  lastGetCombinedNodeFlagsResult = getCombinedNodeFlags(node);
90691
91890
  return lastGetCombinedNodeFlagsResult;
90692
91891
  }
90693
- function isVarConstLike(node) {
91892
+ function isVarConstLike2(node) {
90694
91893
  const blockScopeKind = getCombinedNodeFlagsCached(node) & 7 /* BlockScoped */;
90695
91894
  return blockScopeKind === 2 /* Const */ || blockScopeKind === 4 /* Using */ || blockScopeKind === 6 /* AwaitUsing */;
90696
91895
  }
@@ -90844,6 +92043,12 @@ var SymbolTrackerImpl = class _SymbolTrackerImpl {
90844
92043
  onDiagnosticReported() {
90845
92044
  this.context.reportedDiagnostic = true;
90846
92045
  }
92046
+ reportInferenceFallback(node) {
92047
+ var _a;
92048
+ if ((_a = this.inner) == null ? void 0 : _a.reportInferenceFallback) {
92049
+ this.inner.reportInferenceFallback(node);
92050
+ }
92051
+ }
90847
92052
  };
90848
92053
 
90849
92054
  // src/compiler/visitorPublic.ts
@@ -95073,7 +96278,7 @@ function transformTypeScript(context) {
95073
96278
  }
95074
96279
  function visitParenthesizedExpression(node) {
95075
96280
  const innerExpression = skipOuterExpressions(node.expression, ~6 /* Assertions */);
95076
- if (isAssertionExpression(innerExpression)) {
96281
+ if (isAssertionExpression(innerExpression) || isSatisfiesExpression(innerExpression)) {
95077
96282
  const expression = visitNode(node.expression, visitor, isExpression);
95078
96283
  Debug.assert(expression);
95079
96284
  return factory2.createPartiallyEmittedExpression(expression, node);
@@ -113996,6 +115201,194 @@ function createGetSymbolAccessibilityDiagnosticForNode(node) {
113996
115201
  };
113997
115202
  }
113998
115203
  }
115204
+ function createGetIsolatedDeclarationErrors(resolver) {
115205
+ const relatedSuggestionByDeclarationKind = {
115206
+ [219 /* ArrowFunction */]: Diagnostics.Add_a_return_type_to_the_function_expression,
115207
+ [218 /* FunctionExpression */]: Diagnostics.Add_a_return_type_to_the_function_expression,
115208
+ [174 /* MethodDeclaration */]: Diagnostics.Add_a_return_type_to_the_method,
115209
+ [177 /* GetAccessor */]: Diagnostics.Add_a_return_type_to_the_get_accessor_declaration,
115210
+ [178 /* SetAccessor */]: Diagnostics.Add_a_type_to_parameter_of_the_set_accessor_declaration,
115211
+ [262 /* FunctionDeclaration */]: Diagnostics.Add_a_return_type_to_the_function_declaration,
115212
+ [180 /* ConstructSignature */]: Diagnostics.Add_a_return_type_to_the_function_declaration,
115213
+ [169 /* Parameter */]: Diagnostics.Add_a_type_annotation_to_the_parameter_0,
115214
+ [260 /* VariableDeclaration */]: Diagnostics.Add_a_type_annotation_to_the_variable_0,
115215
+ [172 /* PropertyDeclaration */]: Diagnostics.Add_a_type_annotation_to_the_property_0,
115216
+ [171 /* PropertySignature */]: Diagnostics.Add_a_type_annotation_to_the_property_0,
115217
+ [277 /* ExportAssignment */]: Diagnostics.Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it
115218
+ };
115219
+ const errorByDeclarationKind = {
115220
+ [218 /* FunctionExpression */]: Diagnostics.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,
115221
+ [262 /* FunctionDeclaration */]: Diagnostics.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,
115222
+ [219 /* ArrowFunction */]: Diagnostics.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,
115223
+ [174 /* MethodDeclaration */]: Diagnostics.Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,
115224
+ [180 /* ConstructSignature */]: Diagnostics.Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,
115225
+ [177 /* GetAccessor */]: Diagnostics.At_least_one_accessor_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,
115226
+ [178 /* SetAccessor */]: Diagnostics.At_least_one_accessor_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,
115227
+ [169 /* Parameter */]: Diagnostics.Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations,
115228
+ [260 /* VariableDeclaration */]: Diagnostics.Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations,
115229
+ [172 /* PropertyDeclaration */]: Diagnostics.Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations,
115230
+ [171 /* PropertySignature */]: Diagnostics.Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations,
115231
+ [167 /* ComputedPropertyName */]: Diagnostics.Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations,
115232
+ [305 /* SpreadAssignment */]: Diagnostics.Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations,
115233
+ [304 /* ShorthandPropertyAssignment */]: Diagnostics.Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations,
115234
+ [209 /* ArrayLiteralExpression */]: Diagnostics.Only_const_arrays_can_be_inferred_with_isolatedDeclarations,
115235
+ [277 /* ExportAssignment */]: Diagnostics.Default_exports_can_t_be_inferred_with_isolatedDeclarations,
115236
+ [230 /* SpreadElement */]: Diagnostics.Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations
115237
+ };
115238
+ return getDiagnostic2;
115239
+ function getDiagnostic2(node) {
115240
+ const heritageClause = findAncestor(node, isHeritageClause);
115241
+ if (heritageClause) {
115242
+ return createDiagnosticForNode(node, Diagnostics.Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations);
115243
+ }
115244
+ Debug.type(node);
115245
+ switch (node.kind) {
115246
+ case 177 /* GetAccessor */:
115247
+ case 178 /* SetAccessor */:
115248
+ return createAccessorTypeError(node);
115249
+ case 167 /* ComputedPropertyName */:
115250
+ case 304 /* ShorthandPropertyAssignment */:
115251
+ case 305 /* SpreadAssignment */:
115252
+ return createObjectLiteralError(node);
115253
+ case 209 /* ArrayLiteralExpression */:
115254
+ case 230 /* SpreadElement */:
115255
+ return createArrayLiteralError(node);
115256
+ case 174 /* MethodDeclaration */:
115257
+ case 180 /* ConstructSignature */:
115258
+ case 218 /* FunctionExpression */:
115259
+ case 219 /* ArrowFunction */:
115260
+ case 262 /* FunctionDeclaration */:
115261
+ return createReturnTypeError(node);
115262
+ case 208 /* BindingElement */:
115263
+ return createBindingElementError(node);
115264
+ case 172 /* PropertyDeclaration */:
115265
+ case 260 /* VariableDeclaration */:
115266
+ return createVariableOrPropertyError(node);
115267
+ case 169 /* Parameter */:
115268
+ return createParameterError(node);
115269
+ case 303 /* PropertyAssignment */:
115270
+ return createExpressionError(node.initializer);
115271
+ case 231 /* ClassExpression */:
115272
+ return createClassExpressionError(node);
115273
+ default:
115274
+ assertType(node);
115275
+ return createExpressionError(node);
115276
+ }
115277
+ }
115278
+ function findNearestDeclaration(node) {
115279
+ const result = findAncestor(node, (n) => isExportAssignment(n) || (isStatement(n) ? "quit" : isVariableDeclaration(n) || isPropertyDeclaration(n) || isParameter(n)));
115280
+ return result;
115281
+ }
115282
+ function createAccessorTypeError(node) {
115283
+ const { getAccessor, setAccessor } = getAllAccessorDeclarations(node.symbol.declarations, node);
115284
+ const targetNode = (isSetAccessor(node) ? node.parameters[0] : node) ?? node;
115285
+ const diag2 = createDiagnosticForNode(targetNode, errorByDeclarationKind[node.kind]);
115286
+ if (setAccessor) {
115287
+ addRelatedInfo(diag2, createDiagnosticForNode(setAccessor, relatedSuggestionByDeclarationKind[setAccessor.kind]));
115288
+ }
115289
+ if (getAccessor) {
115290
+ addRelatedInfo(diag2, createDiagnosticForNode(getAccessor, relatedSuggestionByDeclarationKind[getAccessor.kind]));
115291
+ }
115292
+ return diag2;
115293
+ }
115294
+ function createObjectLiteralError(node) {
115295
+ const diag2 = createDiagnosticForNode(node, errorByDeclarationKind[node.kind]);
115296
+ const parentDeclaration = findNearestDeclaration(node);
115297
+ if (parentDeclaration) {
115298
+ const targetStr = isExportAssignment(parentDeclaration) ? "" : getTextOfNode(
115299
+ parentDeclaration.name,
115300
+ /*includeTrivia*/
115301
+ false
115302
+ );
115303
+ addRelatedInfo(diag2, createDiagnosticForNode(parentDeclaration, relatedSuggestionByDeclarationKind[parentDeclaration.kind], targetStr));
115304
+ }
115305
+ return diag2;
115306
+ }
115307
+ function createArrayLiteralError(node) {
115308
+ const diag2 = createDiagnosticForNode(node, errorByDeclarationKind[node.kind]);
115309
+ const parentDeclaration = findNearestDeclaration(node);
115310
+ if (parentDeclaration) {
115311
+ const targetStr = isExportAssignment(parentDeclaration) ? "" : getTextOfNode(
115312
+ parentDeclaration.name,
115313
+ /*includeTrivia*/
115314
+ false
115315
+ );
115316
+ addRelatedInfo(diag2, createDiagnosticForNode(parentDeclaration, relatedSuggestionByDeclarationKind[parentDeclaration.kind], targetStr));
115317
+ }
115318
+ return diag2;
115319
+ }
115320
+ function createReturnTypeError(node) {
115321
+ const diag2 = createDiagnosticForNode(node, errorByDeclarationKind[node.kind]);
115322
+ const parentDeclaration = findNearestDeclaration(node);
115323
+ if (parentDeclaration) {
115324
+ const targetStr = isExportAssignment(parentDeclaration) ? "" : getTextOfNode(
115325
+ parentDeclaration.name,
115326
+ /*includeTrivia*/
115327
+ false
115328
+ );
115329
+ addRelatedInfo(diag2, createDiagnosticForNode(parentDeclaration, relatedSuggestionByDeclarationKind[parentDeclaration.kind], targetStr));
115330
+ }
115331
+ addRelatedInfo(diag2, createDiagnosticForNode(node, relatedSuggestionByDeclarationKind[node.kind]));
115332
+ return diag2;
115333
+ }
115334
+ function createBindingElementError(node) {
115335
+ return createDiagnosticForNode(node, Diagnostics.Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations);
115336
+ }
115337
+ function createVariableOrPropertyError(node) {
115338
+ const diag2 = createDiagnosticForNode(node, errorByDeclarationKind[node.kind]);
115339
+ const targetStr = getTextOfNode(
115340
+ node.name,
115341
+ /*includeTrivia*/
115342
+ false
115343
+ );
115344
+ addRelatedInfo(diag2, createDiagnosticForNode(node, relatedSuggestionByDeclarationKind[node.kind], targetStr));
115345
+ return diag2;
115346
+ }
115347
+ function createParameterError(node) {
115348
+ if (isSetAccessor(node.parent)) {
115349
+ return createAccessorTypeError(node.parent);
115350
+ }
115351
+ const addUndefined = resolver.requiresAddingImplicitUndefined(node);
115352
+ if (!addUndefined && node.initializer) {
115353
+ return createExpressionError(node.initializer);
115354
+ }
115355
+ const message = addUndefined ? Diagnostics.Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_it_s_type_This_is_not_supported_with_isolatedDeclarations : errorByDeclarationKind[node.kind];
115356
+ const diag2 = createDiagnosticForNode(node, message);
115357
+ const targetStr = getTextOfNode(
115358
+ node.name,
115359
+ /*includeTrivia*/
115360
+ false
115361
+ );
115362
+ addRelatedInfo(diag2, createDiagnosticForNode(node, relatedSuggestionByDeclarationKind[node.kind], targetStr));
115363
+ return diag2;
115364
+ }
115365
+ function createClassExpressionError(node) {
115366
+ return createExpressionError(node, Diagnostics.Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations);
115367
+ }
115368
+ function createExpressionError(node, diagnosticMessage) {
115369
+ const parentDeclaration = findNearestDeclaration(node);
115370
+ let diag2;
115371
+ if (parentDeclaration) {
115372
+ const targetStr = isExportAssignment(parentDeclaration) ? "" : getTextOfNode(
115373
+ parentDeclaration.name,
115374
+ /*includeTrivia*/
115375
+ false
115376
+ );
115377
+ const parent2 = findAncestor(node.parent, (n) => isExportAssignment(n) || (isStatement(n) ? "quit" : !isParenthesizedExpression(n) && !isTypeAssertionExpression(n) && !isAsExpression(n)));
115378
+ if (parentDeclaration === parent2) {
115379
+ diag2 = createDiagnosticForNode(node, diagnosticMessage ?? errorByDeclarationKind[parentDeclaration.kind]);
115380
+ addRelatedInfo(diag2, createDiagnosticForNode(parentDeclaration, relatedSuggestionByDeclarationKind[parentDeclaration.kind], targetStr));
115381
+ } else {
115382
+ diag2 = createDiagnosticForNode(node, diagnosticMessage ?? Diagnostics.Expression_type_can_t_be_inferred_with_isolatedDeclarations);
115383
+ addRelatedInfo(diag2, createDiagnosticForNode(parentDeclaration, relatedSuggestionByDeclarationKind[parentDeclaration.kind], targetStr));
115384
+ addRelatedInfo(diag2, createDiagnosticForNode(node, Diagnostics.Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit));
115385
+ }
115386
+ } else {
115387
+ diag2 = createDiagnosticForNode(node, diagnosticMessage ?? Diagnostics.Expression_type_can_t_be_inferred_with_isolatedDeclarations);
115388
+ }
115389
+ return diag2;
115390
+ }
115391
+ }
113999
115392
 
114000
115393
  // src/compiler/transformers/declarations.ts
114001
115394
  function getDeclarationDiagnostics(host, resolver, file) {
@@ -114037,7 +115430,8 @@ function transformDeclarations(context) {
114037
115430
  reportTruncationError,
114038
115431
  moduleResolverHost: host,
114039
115432
  reportNonlocalAugmentation,
114040
- reportNonSerializableProperty
115433
+ reportNonSerializableProperty,
115434
+ reportInferenceFallback
114041
115435
  };
114042
115436
  let errorNameNode;
114043
115437
  let errorFallbackNode;
@@ -114047,8 +115441,29 @@ function transformDeclarations(context) {
114047
115441
  let rawLibReferenceDirectives;
114048
115442
  const resolver = context.getEmitResolver();
114049
115443
  const options = context.getCompilerOptions();
114050
- const { stripInternal } = options;
115444
+ const getIsolatedDeclarationError = createGetIsolatedDeclarationErrors(resolver);
115445
+ const { stripInternal, isolatedDeclarations } = options;
114051
115446
  return transformRoot;
115447
+ function reportExpandoFunctionErrors(node) {
115448
+ resolver.getPropertiesOfContainerFunction(node).forEach((p) => {
115449
+ if (isExpandoPropertyDeclaration(p.valueDeclaration)) {
115450
+ const errorTarget = isBinaryExpression(p.valueDeclaration) ? p.valueDeclaration.left : p.valueDeclaration;
115451
+ context.addDiagnostic(createDiagnosticForNode(
115452
+ errorTarget,
115453
+ Diagnostics.Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function
115454
+ ));
115455
+ }
115456
+ });
115457
+ }
115458
+ function reportInferenceFallback(node) {
115459
+ if (!isolatedDeclarations || isSourceFileJS(currentSourceFile))
115460
+ return;
115461
+ if (isVariableDeclaration(node) && resolver.isExpandoFunctionDeclaration(node)) {
115462
+ reportExpandoFunctionErrors(node);
115463
+ } else {
115464
+ context.addDiagnostic(getIsolatedDeclarationError(node));
115465
+ }
115466
+ }
114052
115467
  function handleSymbolAccessibilityError(symbolAccessibilityResult) {
114053
115468
  if (symbolAccessibilityResult.accessibility === 0 /* Accessible */) {
114054
115469
  if (symbolAccessibilityResult.aliasesToMakeVisible) {
@@ -114352,7 +115767,8 @@ function transformDeclarations(context) {
114352
115767
  elem.dotDotDotToken,
114353
115768
  elem.propertyName,
114354
115769
  filterBindingPatternInitializers(elem.name),
114355
- shouldPrintWithInitializer(elem) ? elem.initializer : void 0
115770
+ /*initializer*/
115771
+ void 0
114356
115772
  );
114357
115773
  }
114358
115774
  }
@@ -114383,11 +115799,15 @@ function transformDeclarations(context) {
114383
115799
  return newParam;
114384
115800
  }
114385
115801
  function shouldPrintWithInitializer(node) {
114386
- return canHaveLiteralInitializer(node) && resolver.isLiteralConstDeclaration(getParseTreeNode(node));
115802
+ return canHaveLiteralInitializer(node) && !!node.initializer && resolver.isLiteralConstDeclaration(getParseTreeNode(node));
114387
115803
  }
114388
115804
  function ensureNoInitializer(node) {
114389
115805
  if (shouldPrintWithInitializer(node)) {
114390
- return resolver.createLiteralConstValue(getParseTreeNode(node), symbolTracker);
115806
+ const unwrappedInitializer = unwrapParenthesizedExpression(node.initializer);
115807
+ if (!isPrimitiveLiteralValue(unwrappedInitializer)) {
115808
+ reportInferenceFallback(node);
115809
+ }
115810
+ return resolver.createLiteralConstValue(getParseTreeNode(node, canHaveLiteralInitializer), symbolTracker);
114391
115811
  }
114392
115812
  return void 0;
114393
115813
  }
@@ -114629,6 +116049,9 @@ function transformDeclarations(context) {
114629
116049
  );
114630
116050
  }
114631
116051
  if (resolver.isImportRequiredByAugmentation(decl)) {
116052
+ if (isolatedDeclarations) {
116053
+ context.addDiagnostic(createDiagnosticForNode(decl, Diagnostics.Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_supported_with_isolatedDeclarations));
116054
+ }
114632
116055
  return factory2.updateImportDeclaration(
114633
116056
  decl,
114634
116057
  decl.modifiers,
@@ -114683,6 +116106,9 @@ function transformDeclarations(context) {
114683
116106
  if (isDeclarationAndNotVisible(input))
114684
116107
  return;
114685
116108
  if (hasDynamicName(input) && !resolver.isLateBound(getParseTreeNode(input))) {
116109
+ if (isolatedDeclarations && isClassDeclaration(input.parent) && isEntityNameExpression(input.name.expression) && resolver.isEntityNameVisible(input.name.expression, input.parent).accessibility === 0 /* Accessible */ && !resolver.isNonNarrowedBindableName(input.name)) {
116110
+ context.addDiagnostic(createDiagnosticForNode(input, Diagnostics.Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations));
116111
+ }
114686
116112
  return;
114687
116113
  }
114688
116114
  }
@@ -115123,6 +116549,9 @@ function transformDeclarations(context) {
115123
116549
  ));
115124
116550
  if (clean2 && resolver.isExpandoFunctionDeclaration(input) && shouldEmitFunctionProperties(input)) {
115125
116551
  const props = resolver.getPropertiesOfContainerFunction(input);
116552
+ if (isolatedDeclarations) {
116553
+ reportExpandoFunctionErrors(input);
116554
+ }
115126
116555
  const fakespace = parseNodeFactory.createModuleDeclaration(
115127
116556
  /*modifiers*/
115128
116557
  void 0,
@@ -115143,7 +116572,7 @@ function transformDeclarations(context) {
115143
116572
  return void 0;
115144
116573
  }
115145
116574
  getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(p.valueDeclaration);
115146
- const type = resolver.createTypeOfDeclaration(p.valueDeclaration, fakespace, declarationEmitNodeBuilderFlags, symbolTracker);
116575
+ const type = resolver.createTypeOfDeclaration(p.valueDeclaration, fakespace, declarationEmitNodeBuilderFlags | -2147483648 /* NoSyntacticPrinter */, symbolTracker);
115147
116576
  getSymbolAccessibilityDiagnostic = oldDiag;
115148
116577
  const isNonContextualKeywordName = isStringANonContextualKeyword(nameStr);
115149
116578
  const name = isNonContextualKeywordName ? factory2.getGeneratedNameForNode(p.valueDeclaration) : factory2.createIdentifier(nameStr);
@@ -115397,7 +116826,12 @@ function transformDeclarations(context) {
115397
116826
  factory2.createNodeArray(mapDefined(input.members, (m) => {
115398
116827
  if (shouldStripInternal(m))
115399
116828
  return;
115400
- const constValue = resolver.getConstantValue(m);
116829
+ const enumValue = resolver.getEnumMemberValue(m);
116830
+ const constValue = enumValue == null ? void 0 : enumValue.value;
116831
+ if (isolatedDeclarations && m.initializer && (enumValue == null ? void 0 : enumValue.hasExternalReferences) && // This will be its own compiler error instead, so don't report.
116832
+ !isComputedPropertyName(m.name)) {
116833
+ context.addDiagnostic(createDiagnosticForNode(m, Diagnostics.Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations));
116834
+ }
115401
116835
  const newInitializer = constValue === void 0 ? void 0 : typeof constValue === "string" ? factory2.createStringLiteral(constValue) : constValue < 0 ? factory2.createPrefixUnaryExpression(41 /* MinusToken */, factory2.createNumericLiteral(-constValue)) : factory2.createNumericLiteral(constValue);
115402
116836
  return preserveJsDoc(factory2.updateEnumMember(m, m.name, newInitializer), m);
115403
116837
  }))
@@ -116644,6 +118078,7 @@ var notImplementedResolver = {
116644
118078
  isArgumentsLocalBinding: notImplemented,
116645
118079
  getExternalModuleFileFromDeclaration: notImplemented,
116646
118080
  isLiteralConstDeclaration: notImplemented,
118081
+ isNonNarrowedBindableName: notImplemented,
116647
118082
  getJsxFactoryEntity: notImplemented,
116648
118083
  getJsxFragmentFactoryEntity: notImplemented,
116649
118084
  isBindingCapturedByNode: notImplemented,
@@ -122453,6 +123888,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
122453
123888
  const supportedExtensionsWithJsonIfResolveJsonModule = getSupportedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions);
122454
123889
  const hasEmitBlockingDiagnostics = /* @__PURE__ */ new Map();
122455
123890
  let _compilerOptionsObjectLiteralSyntax;
123891
+ let _compilerOptionsPropertySyntax;
122456
123892
  let moduleResolutionCache;
122457
123893
  let actualResolveModuleNamesWorker;
122458
123894
  const hasInvalidatedResolutions = host.hasInvalidatedResolutions || returnFalse;
@@ -123338,6 +124774,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
123338
124774
  return false;
123339
124775
  return host.fileExists(f);
123340
124776
  },
124777
+ realpath: maybeBind(host, host.realpath),
123341
124778
  useCaseSensitiveFileNames: () => host.useCaseSensitiveFileNames(),
123342
124779
  getBuildInfo: () => {
123343
124780
  var _a2;
@@ -123346,7 +124783,9 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
123346
124783
  getSourceFileFromReference: (file, ref) => program.getSourceFileFromReference(file, ref),
123347
124784
  redirectTargetsMap,
123348
124785
  getFileIncludeReasons: program.getFileIncludeReasons,
123349
- createHash: maybeBind(host, host.createHash)
124786
+ createHash: maybeBind(host, host.createHash),
124787
+ getModuleResolutionCache: () => program.getModuleResolutionCache(),
124788
+ trace: maybeBind(host, host.trace)
123350
124789
  };
123351
124790
  }
123352
124791
  function writeFile2(fileName, text, writeByteOrderMark, onError, sourceFiles, data) {
@@ -124663,6 +126102,14 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
124663
126102
  createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "outFile", options.verbatimModuleSyntax ? "verbatimModuleSyntax" : "isolatedModules");
124664
126103
  }
124665
126104
  }
126105
+ if (options.isolatedDeclarations) {
126106
+ if (getAllowJSCompilerOption(options)) {
126107
+ createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "allowJs", "isolatedDeclarations");
126108
+ }
126109
+ if (!getEmitDeclarations(options)) {
126110
+ createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "isolatedDeclarations", "declaration", "composite");
126111
+ }
126112
+ }
124666
126113
  if (options.inlineSourceMap) {
124667
126114
  if (options.sourceMap) {
124668
126115
  createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceMap", "inlineSourceMap");
@@ -124814,7 +126261,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
124814
126261
  }
124815
126262
  }
124816
126263
  if (options.checkJs && !getAllowJSCompilerOption(options)) {
124817
- programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "checkJs", "allowJs"));
126264
+ createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "checkJs", "allowJs");
124818
126265
  }
124819
126266
  if (options.emitDeclarationOnly) {
124820
126267
  if (!getEmitDeclarations(options)) {
@@ -125166,7 +126613,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
125166
126613
  message = Diagnostics.File_is_library_specified_here;
125167
126614
  break;
125168
126615
  }
125169
- const target = forEachEntry(targetOptionDeclaration.type, (value, key) => value === getEmitScriptTarget(options) ? key : void 0);
126616
+ const target = getNameOfScriptTarget(getEmitScriptTarget(options));
125170
126617
  configFileNode = target ? getOptionsSyntaxByValue("target", target) : void 0;
125171
126618
  message = Diagnostics.File_is_default_library_for_target_specified_here;
125172
126619
  break;
@@ -125219,7 +126666,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
125219
126666
  }
125220
126667
  });
125221
126668
  if (needCompilerDiagnostic) {
125222
- programDiagnostics.add(createCompilerDiagnostic(message, ...args));
126669
+ createCompilerOptionsDiagnostic(message, ...args);
125223
126670
  }
125224
126671
  }
125225
126672
  function createDiagnosticForOptionPaths(onKey, key, message, ...args) {
@@ -125238,7 +126685,7 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
125238
126685
  }
125239
126686
  });
125240
126687
  if (needCompilerDiagnostic) {
125241
- programDiagnostics.add(createCompilerDiagnostic(message, ...args));
126688
+ createCompilerOptionsDiagnostic(message, ...args);
125242
126689
  }
125243
126690
  }
125244
126691
  function forEachOptionsSyntaxByName(name, callback) {
@@ -125289,22 +126736,39 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
125289
126736
  const compilerOptionsObjectLiteralSyntax = getCompilerOptionsObjectLiteralSyntax();
125290
126737
  const needCompilerDiagnostic = !compilerOptionsObjectLiteralSyntax || !createOptionDiagnosticInObjectLiteralSyntax(compilerOptionsObjectLiteralSyntax, onKey, option1, option2, message, ...args);
125291
126738
  if (needCompilerDiagnostic) {
126739
+ createCompilerOptionsDiagnostic(message, ...args);
126740
+ }
126741
+ }
126742
+ function createCompilerOptionsDiagnostic(message, ...args) {
126743
+ const compilerOptionsProperty = getCompilerOptionsPropertySyntax();
126744
+ if (compilerOptionsProperty) {
125292
126745
  if ("messageText" in message) {
125293
- programDiagnostics.add(createCompilerDiagnosticFromMessageChain(message));
126746
+ programDiagnostics.add(createDiagnosticForNodeFromMessageChain(options.configFile, compilerOptionsProperty.name, message));
125294
126747
  } else {
125295
- programDiagnostics.add(createCompilerDiagnostic(message, ...args));
126748
+ programDiagnostics.add(createDiagnosticForNodeInSourceFile(options.configFile, compilerOptionsProperty.name, message, ...args));
125296
126749
  }
126750
+ } else if ("messageText" in message) {
126751
+ programDiagnostics.add(createCompilerDiagnosticFromMessageChain(message));
126752
+ } else {
126753
+ programDiagnostics.add(createCompilerDiagnostic(message, ...args));
125297
126754
  }
125298
126755
  }
125299
126756
  function getCompilerOptionsObjectLiteralSyntax() {
125300
126757
  if (_compilerOptionsObjectLiteralSyntax === void 0) {
125301
- _compilerOptionsObjectLiteralSyntax = forEachPropertyAssignment(
126758
+ const compilerOptionsProperty = getCompilerOptionsPropertySyntax();
126759
+ _compilerOptionsObjectLiteralSyntax = compilerOptionsProperty ? tryCast(compilerOptionsProperty.initializer, isObjectLiteralExpression) || false : false;
126760
+ }
126761
+ return _compilerOptionsObjectLiteralSyntax || void 0;
126762
+ }
126763
+ function getCompilerOptionsPropertySyntax() {
126764
+ if (_compilerOptionsPropertySyntax === void 0) {
126765
+ _compilerOptionsPropertySyntax = forEachPropertyAssignment(
125302
126766
  getTsConfigObjectLiteralExpression(options.configFile),
125303
126767
  "compilerOptions",
125304
- (prop) => isObjectLiteralExpression(prop.initializer) ? prop.initializer : void 0
126768
+ identity
125305
126769
  ) || false;
125306
126770
  }
125307
- return _compilerOptionsObjectLiteralSyntax || void 0;
126771
+ return _compilerOptionsPropertySyntax || void 0;
125308
126772
  }
125309
126773
  function createOptionDiagnosticInObjectLiteralSyntax(objectLiteral, onKey, key1, key2, message, ...args) {
125310
126774
  let needsCompilerDiagnostic = false;
@@ -128871,7 +130335,7 @@ function fileIncludeReasonToDiagnostics(program, reason, fileNameConvertor) {
128871
130335
  Diagnostics.Library_0_specified_in_compilerOptions,
128872
130336
  options.lib[reason.index]
128873
130337
  );
128874
- const target = forEachEntry(targetOptionDeclaration.type, (value, key) => value === getEmitScriptTarget(options) ? key : void 0);
130338
+ const target = getNameOfScriptTarget(getEmitScriptTarget(options));
128875
130339
  const messageAndArgs = target ? [Diagnostics.Default_library_for_target_0, target] : [Diagnostics.Default_library];
128876
130340
  return chainDiagnosticMessages(
128877
130341
  /*details*/
@@ -132952,6 +134416,443 @@ function writeConfigFile(sys2, reportDiagnostic, options, fileNames) {
132952
134416
  return;
132953
134417
  }
132954
134418
 
134419
+ // src/compiler/expressionToTypeNode.ts
134420
+ function createSyntacticTypeNodeBuilder(options, resolver) {
134421
+ const strictNullChecks = getStrictOptionValue(options, "strictNullChecks");
134422
+ return {
134423
+ typeFromExpression,
134424
+ serializeTypeOfDeclaration,
134425
+ serializeReturnTypeForSignature,
134426
+ serializeTypeOfExpression
134427
+ };
134428
+ function serializeExistingTypeAnnotation(type) {
134429
+ return type === void 0 ? void 0 : !type.parent || !isParameter(type.parent) || !resolver.requiresAddingImplicitUndefined(type.parent) || canAddUndefined(type);
134430
+ }
134431
+ function serializeTypeOfExpression(expr, context, addUndefined, preserveLiterals) {
134432
+ return typeFromExpression(
134433
+ expr,
134434
+ context,
134435
+ /*isConstContext*/
134436
+ false,
134437
+ addUndefined,
134438
+ preserveLiterals
134439
+ ) ?? inferExpressionType(expr, context);
134440
+ }
134441
+ function serializeTypeOfDeclaration(node, context) {
134442
+ switch (node.kind) {
134443
+ case 171 /* PropertySignature */:
134444
+ return serializeExistingTypeAnnotation(getEffectiveTypeAnnotationNode(node));
134445
+ case 169 /* Parameter */:
134446
+ return typeFromParameter(node, context);
134447
+ case 260 /* VariableDeclaration */:
134448
+ return typeFromVariable(node, context);
134449
+ case 172 /* PropertyDeclaration */:
134450
+ return typeFromProperty(node, context);
134451
+ case 208 /* BindingElement */:
134452
+ return inferTypeOfDeclaration(node, context);
134453
+ case 277 /* ExportAssignment */:
134454
+ return serializeTypeOfExpression(
134455
+ node.expression,
134456
+ context,
134457
+ /*addUndefined*/
134458
+ void 0,
134459
+ /*preserveLiterals*/
134460
+ true
134461
+ );
134462
+ case 211 /* PropertyAccessExpression */:
134463
+ case 212 /* ElementAccessExpression */:
134464
+ case 226 /* BinaryExpression */:
134465
+ return serializeExistingTypeAnnotation(getEffectiveTypeAnnotationNode(node)) || inferTypeOfDeclaration(node, context);
134466
+ case 303 /* PropertyAssignment */:
134467
+ return typeFromExpression(node.initializer, context) || inferTypeOfDeclaration(node, context);
134468
+ default:
134469
+ Debug.assertNever(node, `Node needs to be an inferrable node, found ${Debug.formatSyntaxKind(node.kind)}`);
134470
+ }
134471
+ }
134472
+ function serializeReturnTypeForSignature(node, context) {
134473
+ switch (node.kind) {
134474
+ case 177 /* GetAccessor */:
134475
+ return typeFromAccessor(node, context);
134476
+ case 174 /* MethodDeclaration */:
134477
+ case 262 /* FunctionDeclaration */:
134478
+ case 180 /* ConstructSignature */:
134479
+ case 173 /* MethodSignature */:
134480
+ case 179 /* CallSignature */:
134481
+ case 176 /* Constructor */:
134482
+ case 178 /* SetAccessor */:
134483
+ case 181 /* IndexSignature */:
134484
+ case 184 /* FunctionType */:
134485
+ case 185 /* ConstructorType */:
134486
+ case 218 /* FunctionExpression */:
134487
+ case 219 /* ArrowFunction */:
134488
+ case 317 /* JSDocFunctionType */:
134489
+ case 323 /* JSDocSignature */:
134490
+ return createReturnFromSignature(node, context);
134491
+ default:
134492
+ Debug.assertNever(node, `Node needs to be an inferrable node, found ${Debug.formatSyntaxKind(node.kind)}`);
134493
+ }
134494
+ }
134495
+ function getTypeAnnotationFromAccessor2(accessor) {
134496
+ if (accessor) {
134497
+ return accessor.kind === 177 /* GetAccessor */ ? getEffectiveReturnTypeNode(accessor) : accessor.parameters.length > 0 ? getEffectiveTypeAnnotationNode(accessor.parameters[0]) : void 0;
134498
+ }
134499
+ }
134500
+ function getTypeAnnotationFromAllAccessorDeclarations(node, accessors) {
134501
+ let accessorType = getTypeAnnotationFromAccessor2(node);
134502
+ if (!accessorType && node !== accessors.firstAccessor) {
134503
+ accessorType = getTypeAnnotationFromAccessor2(accessors.firstAccessor);
134504
+ }
134505
+ if (!accessorType && accessors.secondAccessor && node !== accessors.secondAccessor) {
134506
+ accessorType = getTypeAnnotationFromAccessor2(accessors.secondAccessor);
134507
+ }
134508
+ return accessorType;
134509
+ }
134510
+ function typeFromAccessor(node, context) {
134511
+ const accessorDeclarations = resolver.getAllAccessorDeclarations(node);
134512
+ const accessorType = getTypeAnnotationFromAllAccessorDeclarations(node, accessorDeclarations);
134513
+ if (accessorType) {
134514
+ return serializeExistingTypeAnnotation(accessorType);
134515
+ }
134516
+ if (accessorDeclarations.getAccessor) {
134517
+ return createReturnFromSignature(accessorDeclarations.getAccessor, context);
134518
+ }
134519
+ return false;
134520
+ }
134521
+ function typeFromVariable(node, context) {
134522
+ const declaredType = getEffectiveTypeAnnotationNode(node);
134523
+ if (declaredType) {
134524
+ return serializeExistingTypeAnnotation(declaredType);
134525
+ }
134526
+ let resultType;
134527
+ if (node.initializer) {
134528
+ if (!resolver.isExpandoFunctionDeclaration(node)) {
134529
+ resultType = typeFromExpression(
134530
+ node.initializer,
134531
+ context,
134532
+ /*isConstContext*/
134533
+ void 0,
134534
+ /*requiresAddingUndefined*/
134535
+ void 0,
134536
+ isVarConstLike(node)
134537
+ );
134538
+ }
134539
+ }
134540
+ return resultType ?? inferTypeOfDeclaration(node, context);
134541
+ }
134542
+ function typeFromParameter(node, context) {
134543
+ const parent2 = node.parent;
134544
+ if (parent2.kind === 178 /* SetAccessor */) {
134545
+ return typeFromAccessor(parent2, context);
134546
+ }
134547
+ const declaredType = getEffectiveTypeAnnotationNode(node);
134548
+ const addUndefined = resolver.requiresAddingImplicitUndefined(node);
134549
+ let resultType;
134550
+ if (!addUndefined) {
134551
+ if (declaredType) {
134552
+ return serializeExistingTypeAnnotation(declaredType);
134553
+ }
134554
+ if (node.initializer && isIdentifier(node.name)) {
134555
+ resultType = typeFromExpression(node.initializer, context);
134556
+ }
134557
+ }
134558
+ return resultType ?? inferTypeOfDeclaration(node, context);
134559
+ }
134560
+ function typeFromProperty(node, context) {
134561
+ const declaredType = getEffectiveTypeAnnotationNode(node);
134562
+ if (declaredType) {
134563
+ return serializeExistingTypeAnnotation(declaredType);
134564
+ }
134565
+ let resultType;
134566
+ if (node.initializer) {
134567
+ const isReadonly = isDeclarationReadonly(node);
134568
+ resultType = typeFromExpression(
134569
+ node.initializer,
134570
+ context,
134571
+ /*isConstContext*/
134572
+ void 0,
134573
+ /*requiresAddingUndefined*/
134574
+ void 0,
134575
+ isReadonly
134576
+ );
134577
+ }
134578
+ return resultType ?? inferTypeOfDeclaration(node, context);
134579
+ }
134580
+ function inferTypeOfDeclaration(node, context) {
134581
+ context.tracker.reportInferenceFallback(node);
134582
+ return false;
134583
+ }
134584
+ function inferExpressionType(node, context) {
134585
+ context.tracker.reportInferenceFallback(node);
134586
+ return false;
134587
+ }
134588
+ function inferReturnTypeOfSignatureSignature(node, context) {
134589
+ context.tracker.reportInferenceFallback(node);
134590
+ return false;
134591
+ }
134592
+ function inferAccessorType(node, allAccessors, context) {
134593
+ if (node.kind === 177 /* GetAccessor */) {
134594
+ return createReturnFromSignature(node, context);
134595
+ } else {
134596
+ context.tracker.reportInferenceFallback(node);
134597
+ return false;
134598
+ }
134599
+ }
134600
+ function typeFromTypeAssertion(expression, type, context, requiresAddingUndefined) {
134601
+ if (isConstTypeReference(type)) {
134602
+ return typeFromExpression(
134603
+ expression,
134604
+ context,
134605
+ /*isConstContext*/
134606
+ true,
134607
+ requiresAddingUndefined
134608
+ );
134609
+ }
134610
+ if (requiresAddingUndefined && !canAddUndefined(type)) {
134611
+ context.tracker.reportInferenceFallback(type);
134612
+ }
134613
+ return serializeExistingTypeAnnotation(type);
134614
+ }
134615
+ function typeFromExpression(node, context, isConstContext = false, requiresAddingUndefined = false, preserveLiterals = false) {
134616
+ switch (node.kind) {
134617
+ case 217 /* ParenthesizedExpression */:
134618
+ if (isJSDocTypeAssertion(node)) {
134619
+ return typeFromTypeAssertion(node.expression, getJSDocTypeAssertionType(node), context, requiresAddingUndefined);
134620
+ }
134621
+ return typeFromExpression(node.expression, context, isConstContext, requiresAddingUndefined);
134622
+ case 80 /* Identifier */:
134623
+ if (resolver.isUndefinedIdentifierExpression(node)) {
134624
+ return true;
134625
+ }
134626
+ break;
134627
+ case 106 /* NullKeyword */:
134628
+ return true;
134629
+ case 219 /* ArrowFunction */:
134630
+ case 218 /* FunctionExpression */:
134631
+ return typeFromFunctionLikeExpression(node, context);
134632
+ case 216 /* TypeAssertionExpression */:
134633
+ case 234 /* AsExpression */:
134634
+ const asExpression = node;
134635
+ return typeFromTypeAssertion(asExpression.expression, asExpression.type, context, requiresAddingUndefined);
134636
+ case 224 /* PrefixUnaryExpression */:
134637
+ const unaryExpression = node;
134638
+ if (isPrimitiveLiteralValue(unaryExpression)) {
134639
+ if (unaryExpression.operand.kind === 10 /* BigIntLiteral */) {
134640
+ return typeFromPrimitiveLiteral();
134641
+ }
134642
+ if (unaryExpression.operand.kind === 9 /* NumericLiteral */) {
134643
+ return typeFromPrimitiveLiteral();
134644
+ }
134645
+ }
134646
+ break;
134647
+ case 9 /* NumericLiteral */:
134648
+ return typeFromPrimitiveLiteral();
134649
+ case 228 /* TemplateExpression */:
134650
+ if (!isConstContext && !preserveLiterals) {
134651
+ return true;
134652
+ }
134653
+ break;
134654
+ case 15 /* NoSubstitutionTemplateLiteral */:
134655
+ case 11 /* StringLiteral */:
134656
+ return typeFromPrimitiveLiteral();
134657
+ case 10 /* BigIntLiteral */:
134658
+ return typeFromPrimitiveLiteral();
134659
+ case 112 /* TrueKeyword */:
134660
+ case 97 /* FalseKeyword */:
134661
+ return typeFromPrimitiveLiteral();
134662
+ case 209 /* ArrayLiteralExpression */:
134663
+ return typeFromArrayLiteral(node, context, isConstContext);
134664
+ case 210 /* ObjectLiteralExpression */:
134665
+ return typeFromObjectLiteral(node, context, isConstContext);
134666
+ case 231 /* ClassExpression */:
134667
+ return inferExpressionType(node, context);
134668
+ }
134669
+ return void 0;
134670
+ }
134671
+ function typeFromFunctionLikeExpression(fnNode, context) {
134672
+ const returnType = serializeExistingTypeAnnotation(fnNode.type) ?? createReturnFromSignature(fnNode, context);
134673
+ const typeParameters = reuseTypeParameters(fnNode.typeParameters);
134674
+ const parameters = fnNode.parameters.every((p) => ensureParameter(p, context));
134675
+ return returnType && typeParameters && parameters;
134676
+ }
134677
+ function canGetTypeFromArrayLiteral(arrayLiteral, context, isConstContext) {
134678
+ if (!isConstContext) {
134679
+ context.tracker.reportInferenceFallback(arrayLiteral);
134680
+ return false;
134681
+ }
134682
+ for (const element of arrayLiteral.elements) {
134683
+ if (element.kind === 230 /* SpreadElement */) {
134684
+ context.tracker.reportInferenceFallback(element);
134685
+ return false;
134686
+ }
134687
+ }
134688
+ return true;
134689
+ }
134690
+ function typeFromArrayLiteral(arrayLiteral, context, isConstContext) {
134691
+ if (!canGetTypeFromArrayLiteral(arrayLiteral, context, isConstContext)) {
134692
+ return false;
134693
+ }
134694
+ let canInferArray = true;
134695
+ for (const element of arrayLiteral.elements) {
134696
+ Debug.assert(element.kind !== 230 /* SpreadElement */);
134697
+ if (element.kind !== 232 /* OmittedExpression */) {
134698
+ canInferArray = (typeFromExpression(element, context, isConstContext) ?? inferExpressionType(element, context)) && canInferArray;
134699
+ }
134700
+ }
134701
+ return true;
134702
+ }
134703
+ function canGetTypeFromObjectLiteral(objectLiteral, context) {
134704
+ let result = true;
134705
+ for (const prop of objectLiteral.properties) {
134706
+ if (prop.flags & 262144 /* ThisNodeHasError */) {
134707
+ result = false;
134708
+ break;
134709
+ }
134710
+ if (prop.kind === 304 /* ShorthandPropertyAssignment */ || prop.kind === 305 /* SpreadAssignment */) {
134711
+ context.tracker.reportInferenceFallback(prop);
134712
+ result = false;
134713
+ } else if (prop.name.flags & 262144 /* ThisNodeHasError */) {
134714
+ result = false;
134715
+ break;
134716
+ } else if (prop.name.kind === 81 /* PrivateIdentifier */) {
134717
+ result = false;
134718
+ } else if (prop.name.kind === 167 /* ComputedPropertyName */) {
134719
+ const expression = prop.name.expression;
134720
+ if (!isPrimitiveLiteralValue(
134721
+ expression,
134722
+ /*includeBigInt*/
134723
+ false
134724
+ ) && !isEntityNameExpression(expression)) {
134725
+ context.tracker.reportInferenceFallback(prop.name);
134726
+ result = false;
134727
+ }
134728
+ }
134729
+ }
134730
+ return result;
134731
+ }
134732
+ function typeFromObjectLiteral(objectLiteral, context, isConstContext) {
134733
+ if (!canGetTypeFromObjectLiteral(objectLiteral, context))
134734
+ return false;
134735
+ let canInferObjectLiteral = true;
134736
+ for (const prop of objectLiteral.properties) {
134737
+ Debug.assert(!isShorthandPropertyAssignment(prop) && !isSpreadAssignment(prop));
134738
+ const name = prop.name;
134739
+ if (prop.name.kind === 167 /* ComputedPropertyName */) {
134740
+ if (!resolver.isNonNarrowedBindableName(prop.name)) {
134741
+ context.tracker.reportInferenceFallback(prop.name);
134742
+ } else if (isEntityNameExpression(prop.name.expression)) {
134743
+ const visibilityResult = resolver.isEntityNameVisible(
134744
+ prop.name.expression,
134745
+ context.enclosingDeclaration,
134746
+ /*shouldComputeAliasToMakeVisible*/
134747
+ false
134748
+ );
134749
+ if (visibilityResult.accessibility !== 0 /* Accessible */) {
134750
+ context.tracker.reportInferenceFallback(prop.name);
134751
+ }
134752
+ }
134753
+ }
134754
+ switch (prop.kind) {
134755
+ case 174 /* MethodDeclaration */:
134756
+ canInferObjectLiteral = !!typeFromObjectLiteralMethod(prop, name, context) && canInferObjectLiteral;
134757
+ break;
134758
+ case 303 /* PropertyAssignment */:
134759
+ canInferObjectLiteral = !!typeFromObjectLiteralPropertyAssignment(prop, name, context, isConstContext) && canInferObjectLiteral;
134760
+ break;
134761
+ case 178 /* SetAccessor */:
134762
+ case 177 /* GetAccessor */:
134763
+ canInferObjectLiteral = !!typeFromObjectLiteralAccessor(prop, name, context) && canInferObjectLiteral;
134764
+ break;
134765
+ }
134766
+ }
134767
+ return canInferObjectLiteral;
134768
+ }
134769
+ function typeFromObjectLiteralPropertyAssignment(prop, name, context, isConstContext) {
134770
+ return typeFromExpression(prop.initializer, context, isConstContext) ?? inferTypeOfDeclaration(prop, context);
134771
+ }
134772
+ function ensureParameter(p, context) {
134773
+ return typeFromParameter(p, context);
134774
+ }
134775
+ function reuseTypeParameters(typeParameters) {
134776
+ return (typeParameters == null ? void 0 : typeParameters.every(
134777
+ (tp) => serializeExistingTypeAnnotation(tp.constraint) && serializeExistingTypeAnnotation(tp.default)
134778
+ )) ?? true;
134779
+ }
134780
+ function typeFromObjectLiteralMethod(method, name, context) {
134781
+ const returnType = createReturnFromSignature(method, context);
134782
+ const typeParameters = reuseTypeParameters(method.typeParameters);
134783
+ const parameters = method.parameters.every((p) => ensureParameter(p, context));
134784
+ return returnType && typeParameters && parameters;
134785
+ }
134786
+ function typeFromObjectLiteralAccessor(accessor, name, context) {
134787
+ const allAccessors = resolver.getAllAccessorDeclarations(accessor);
134788
+ const getAccessorType = allAccessors.getAccessor && getTypeAnnotationFromAccessor2(allAccessors.getAccessor);
134789
+ const setAccessorType = allAccessors.setAccessor && getTypeAnnotationFromAccessor2(allAccessors.setAccessor);
134790
+ if (getAccessorType !== void 0 && setAccessorType !== void 0) {
134791
+ const parameters = accessor.parameters.every((p) => ensureParameter(p, context));
134792
+ if (isGetAccessor(accessor)) {
134793
+ return parameters && serializeExistingTypeAnnotation(getAccessorType);
134794
+ } else {
134795
+ return parameters;
134796
+ }
134797
+ } else if (allAccessors.firstAccessor === accessor) {
134798
+ const foundType = getAccessorType ?? setAccessorType;
134799
+ const propertyType = foundType ? serializeExistingTypeAnnotation(foundType) : inferAccessorType(accessor, allAccessors, context);
134800
+ return propertyType;
134801
+ }
134802
+ return false;
134803
+ }
134804
+ function typeFromPrimitiveLiteral() {
134805
+ return true;
134806
+ }
134807
+ function canAddUndefined(node) {
134808
+ if (!strictNullChecks)
134809
+ return true;
134810
+ if (isKeyword(node.kind) || node.kind === 201 /* LiteralType */ || node.kind === 184 /* FunctionType */ || node.kind === 185 /* ConstructorType */ || node.kind === 188 /* ArrayType */ || node.kind === 189 /* TupleType */ || node.kind === 187 /* TypeLiteral */ || node.kind === 203 /* TemplateLiteralType */ || node.kind === 197 /* ThisType */) {
134811
+ return true;
134812
+ }
134813
+ if (node.kind === 196 /* ParenthesizedType */) {
134814
+ return canAddUndefined(node.type);
134815
+ }
134816
+ if (node.kind === 192 /* UnionType */ || node.kind === 193 /* IntersectionType */) {
134817
+ return node.types.every(canAddUndefined);
134818
+ }
134819
+ return false;
134820
+ }
134821
+ function createReturnFromSignature(fn, context) {
134822
+ let returnType;
134823
+ const returnTypeNode = getEffectiveReturnTypeNode(fn);
134824
+ if (returnTypeNode) {
134825
+ returnType = serializeExistingTypeAnnotation(returnTypeNode);
134826
+ }
134827
+ if (!returnType && isValueSignatureDeclaration(fn)) {
134828
+ returnType = typeFromSingleReturnExpression(fn, context);
134829
+ }
134830
+ return returnType ?? inferReturnTypeOfSignatureSignature(fn, context);
134831
+ }
134832
+ function typeFromSingleReturnExpression(declaration, context) {
134833
+ let candidateExpr;
134834
+ if (declaration && !nodeIsMissing(declaration.body)) {
134835
+ const body = declaration.body;
134836
+ if (body && isBlock(body)) {
134837
+ forEachReturnStatement(body, (s) => {
134838
+ if (!candidateExpr) {
134839
+ candidateExpr = s.expression;
134840
+ } else {
134841
+ candidateExpr = void 0;
134842
+ return true;
134843
+ }
134844
+ });
134845
+ } else {
134846
+ candidateExpr = body;
134847
+ }
134848
+ }
134849
+ if (candidateExpr) {
134850
+ return typeFromExpression(candidateExpr, context);
134851
+ }
134852
+ return void 0;
134853
+ }
134854
+ }
134855
+
132955
134856
  // src/jsTyping/_namespaces/ts.JsTyping.ts
132956
134857
  var ts_JsTyping_exports = {};
132957
134858
  __export(ts_JsTyping_exports, {
@@ -146425,9 +148326,6 @@ var NodeObject = class {
146425
148326
  }
146426
148327
  };
146427
148328
  function createChildren(node, sourceFile) {
146428
- if (!isNodeKind(node.kind)) {
146429
- return emptyArray;
146430
- }
146431
148329
  const children = [];
146432
148330
  if (isJSDocCommentContainingNode(node)) {
146433
148331
  node.forEachChild((child) => {
@@ -156653,6 +158551,9 @@ registerCodeFix({
156653
158551
  createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, (t) => deleteEntireVariableStatement(t, sourceFile, token.parent)), Diagnostics.Remove_variable_statement)
156654
158552
  ];
156655
158553
  }
158554
+ if (isIdentifier(token) && isFunctionDeclaration(token.parent)) {
158555
+ return [createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, (t) => deleteFunctionLikeDeclaration(t, sourceFile, token.parent)), [Diagnostics.Remove_unused_declaration_for_Colon_0, token.getText(sourceFile)])];
158556
+ }
156656
158557
  const result = [];
156657
158558
  if (token.kind === 140 /* InferKeyword */) {
156658
158559
  const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => changeInferToUnknown(t, sourceFile, token));
@@ -156919,6 +158820,14 @@ function isLastParameter(func, parameter, isFixAll) {
156919
158820
  function mayDeleteExpression(node) {
156920
158821
  return (isBinaryExpression(node.parent) && node.parent.left === node || (isPostfixUnaryExpression(node.parent) || isPrefixUnaryExpression(node.parent)) && node.parent.operand === node) && isExpressionStatement(node.parent.parent);
156921
158822
  }
158823
+ function deleteFunctionLikeDeclaration(changes, sourceFile, node) {
158824
+ const declarations = node.symbol.declarations;
158825
+ if (declarations) {
158826
+ for (const declaration of declarations) {
158827
+ changes.delete(sourceFile, declaration);
158828
+ }
158829
+ }
158830
+ }
156922
158831
 
156923
158832
  // src/services/codefixes/fixUnreachableCode.ts
156924
158833
  var fixId33 = "fixUnreachableCode";
@@ -162665,6 +164574,7 @@ function getCompletionData(program, log, sourceFile, compilerOptions, position,
162665
164574
  }
162666
164575
  }
162667
164576
  function shouldOfferImportCompletions() {
164577
+ var _a;
162668
164578
  if (importStatementCompletion)
162669
164579
  return true;
162670
164580
  if (!preferences.includeCompletionsForModuleExports)
@@ -162673,7 +164583,7 @@ function getCompletionData(program, log, sourceFile, compilerOptions, position,
162673
164583
  return true;
162674
164584
  if (compilerOptionsIndicateEsModules(program.getCompilerOptions()))
162675
164585
  return true;
162676
- return programContainsModules(program);
164586
+ return ((_a = program.getSymlinkCache) == null ? void 0 : _a.call(program).hasAnySymlinks()) || !!program.getCompilerOptions().paths || programContainsModules(program);
162677
164587
  }
162678
164588
  function isSnippetScope(scopeNode) {
162679
164589
  switch (scopeNode.kind) {
@@ -164940,7 +166850,7 @@ function isPathRelativeToScript(path) {
164940
166850
  }
164941
166851
  return false;
164942
166852
  }
164943
- var tripleSlashDirectiveFragmentRegex = /^(\/\/\/\s*<reference\s+(path|types)\s*=\s*(?:'|"))([^\3"]*)$/;
166853
+ var tripleSlashDirectiveFragmentRegex = /^(\/\/\/\s*<reference\s+(path|types)\s*=\s*(?:'|"))([^\x03"]*)$/;
164944
166854
  var nodeModulesDependencyKeys = ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"];
164945
166855
  function containsSlash(fragment) {
164946
166856
  return fragment.includes(directorySeparator);
@@ -167838,9 +169748,13 @@ function isExpandoDeclaration(node) {
167838
169748
  }
167839
169749
  function getDefinitionFromSymbol(typeChecker, symbol, node, failedAliasResolution, excludeDeclaration) {
167840
169750
  const filteredDeclarations = filter(symbol.declarations, (d) => d !== excludeDeclaration);
169751
+ const signatureDefinition = getConstructSignatureDefinition() || getCallSignatureDefinition();
169752
+ if (signatureDefinition) {
169753
+ return signatureDefinition;
169754
+ }
167841
169755
  const withoutExpandos = filter(filteredDeclarations, (d) => !isExpandoDeclaration(d));
167842
169756
  const results = some(withoutExpandos) ? withoutExpandos : filteredDeclarations;
167843
- return getConstructSignatureDefinition() || getCallSignatureDefinition() || map(results, (declaration) => createDefinitionInfo(
169757
+ return map(results, (declaration) => createDefinitionInfo(
167844
169758
  declaration,
167845
169759
  typeChecker,
167846
169760
  symbol,
@@ -167851,8 +169765,8 @@ function getDefinitionFromSymbol(typeChecker, symbol, node, failedAliasResolutio
167851
169765
  ));
167852
169766
  function getConstructSignatureDefinition() {
167853
169767
  if (symbol.flags & 32 /* Class */ && !(symbol.flags & (16 /* Function */ | 3 /* Variable */)) && (isNewExpressionTarget(node) || node.kind === 137 /* ConstructorKeyword */)) {
167854
- const cls = find(filteredDeclarations, isClassLike) || Debug.fail("Expected declaration to have at least one class-like declaration");
167855
- return getSignatureDefinition(
169768
+ const cls = find(filteredDeclarations, isClassLike);
169769
+ return cls && getSignatureDefinition(
167856
169770
  cls.members,
167857
169771
  /*selectConstructors*/
167858
169772
  true
@@ -168722,7 +170636,7 @@ function provideInlayHints(context) {
168722
170636
  return name === "undefined";
168723
170637
  }
168724
170638
  function isHintableDeclaration(node) {
168725
- if ((isParameterDeclaration(node) || isVariableDeclaration(node) && isVarConst(node)) && node.initializer) {
170639
+ if ((isPartOfParameterDeclaration(node) || isVariableDeclaration(node) && isVarConst(node)) && node.initializer) {
168726
170640
  const initializer = skipParentheses(node.initializer);
168727
170641
  return !(isHintableLiteral(initializer) || isNewExpression(initializer) || isObjectLiteralExpression(initializer) || isAssertionExpression(initializer));
168728
170642
  }
@@ -175980,6 +177894,7 @@ __export(ts_exports2, {
175980
177894
  ProcessLevel: () => ProcessLevel,
175981
177895
  ProgramUpdateLevel: () => ProgramUpdateLevel,
175982
177896
  QuotePreference: () => QuotePreference,
177897
+ RegularExpressionFlags: () => RegularExpressionFlags,
175983
177898
  RelationComparisonResult: () => RelationComparisonResult,
175984
177899
  Rename: () => ts_Rename_exports,
175985
177900
  ScriptElementKind: () => ScriptElementKind,
@@ -176108,6 +178023,7 @@ __export(ts_exports2, {
176108
178023
  changeFullExtension: () => changeFullExtension,
176109
178024
  changesAffectModuleResolution: () => changesAffectModuleResolution,
176110
178025
  changesAffectingProgramStructure: () => changesAffectingProgramStructure,
178026
+ characterToRegularExpressionFlag: () => characterToRegularExpressionFlag,
176111
178027
  childIsDecorated: () => childIsDecorated,
176112
178028
  classElementOrClassElementParameterIsDecorated: () => classElementOrClassElementParameterIsDecorated,
176113
178029
  classHasClassThisAssignment: () => classHasClassThisAssignment,
@@ -176253,6 +178169,7 @@ __export(ts_exports2, {
176253
178169
  createForOfBindingStatement: () => createForOfBindingStatement,
176254
178170
  createFutureSourceFile: () => createFutureSourceFile,
176255
178171
  createGetCanonicalFileName: () => createGetCanonicalFileName,
178172
+ createGetIsolatedDeclarationErrors: () => createGetIsolatedDeclarationErrors,
176256
178173
  createGetSourceFile: () => createGetSourceFile,
176257
178174
  createGetSymbolAccessibilityDiagnosticForNode: () => createGetSymbolAccessibilityDiagnosticForNode,
176258
178175
  createGetSymbolAccessibilityDiagnosticForNodeName: () => createGetSymbolAccessibilityDiagnosticForNodeName,
@@ -176307,6 +178224,7 @@ __export(ts_exports2, {
176307
178224
  createSuperAccessVariableStatement: () => createSuperAccessVariableStatement,
176308
178225
  createSymbolTable: () => createSymbolTable,
176309
178226
  createSymlinkCache: () => createSymlinkCache,
178227
+ createSyntacticTypeNodeBuilder: () => createSyntacticTypeNodeBuilder,
176310
178228
  createSystemWatchFunctions: () => createSystemWatchFunctions,
176311
178229
  createTextChange: () => createTextChange,
176312
178230
  createTextChangeFromStartLength: () => createTextChangeFromStartLength,
@@ -176746,6 +178664,7 @@ __export(ts_exports2, {
176746
178664
  getNameOfDeclaration: () => getNameOfDeclaration,
176747
178665
  getNameOfExpando: () => getNameOfExpando,
176748
178666
  getNameOfJSDocTypedef: () => getNameOfJSDocTypedef,
178667
+ getNameOfScriptTarget: () => getNameOfScriptTarget,
176749
178668
  getNameOrArgument: () => getNameOrArgument,
176750
178669
  getNameTable: () => getNameTable,
176751
178670
  getNamesForExportedSymbol: () => getNamesForExportedSymbol,
@@ -176960,6 +178879,7 @@ __export(ts_exports2, {
176960
178879
  hasEffectiveReadonlyModifier: () => hasEffectiveReadonlyModifier,
176961
178880
  hasExtension: () => hasExtension,
176962
178881
  hasIndexSignature: () => hasIndexSignature,
178882
+ hasInferredType: () => hasInferredType,
176963
178883
  hasInitializer: () => hasInitializer,
176964
178884
  hasInvalidEscape: () => hasInvalidEscape,
176965
178885
  hasJSDocNodes: () => hasJSDocNodes,
@@ -177504,12 +179424,12 @@ __export(ts_exports2, {
177504
179424
  isPackageJsonInfo: () => isPackageJsonInfo,
177505
179425
  isPackedArrayLiteral: () => isPackedArrayLiteral,
177506
179426
  isParameter: () => isParameter,
177507
- isParameterDeclaration: () => isParameterDeclaration,
177508
179427
  isParameterPropertyDeclaration: () => isParameterPropertyDeclaration,
177509
179428
  isParameterPropertyModifier: () => isParameterPropertyModifier,
177510
179429
  isParenthesizedExpression: () => isParenthesizedExpression,
177511
179430
  isParenthesizedTypeNode: () => isParenthesizedTypeNode,
177512
179431
  isParseTreeNode: () => isParseTreeNode,
179432
+ isPartOfParameterDeclaration: () => isPartOfParameterDeclaration,
177513
179433
  isPartOfTypeNode: () => isPartOfTypeNode,
177514
179434
  isPartOfTypeQuery: () => isPartOfTypeQuery,
177515
179435
  isPartiallyEmittedExpression: () => isPartiallyEmittedExpression,
@@ -177520,6 +179440,7 @@ __export(ts_exports2, {
177520
179440
  isPossiblyTypeArgumentPosition: () => isPossiblyTypeArgumentPosition,
177521
179441
  isPostfixUnaryExpression: () => isPostfixUnaryExpression,
177522
179442
  isPrefixUnaryExpression: () => isPrefixUnaryExpression,
179443
+ isPrimitiveLiteralValue: () => isPrimitiveLiteralValue,
177523
179444
  isPrivateIdentifier: () => isPrivateIdentifier,
177524
179445
  isPrivateIdentifierClassElementDeclaration: () => isPrivateIdentifierClassElementDeclaration,
177525
179446
  isPrivateIdentifierPropertyAccessExpression: () => isPrivateIdentifierPropertyAccessExpression,
@@ -177686,6 +179607,7 @@ __export(ts_exports2, {
177686
179607
  isValueSignatureDeclaration: () => isValueSignatureDeclaration,
177687
179608
  isVarAwaitUsing: () => isVarAwaitUsing,
177688
179609
  isVarConst: () => isVarConst,
179610
+ isVarConstLike: () => isVarConstLike,
177689
179611
  isVarUsing: () => isVarUsing,
177690
179612
  isVariableDeclaration: () => isVariableDeclaration,
177691
179613
  isVariableDeclarationInVariableStatement: () => isVariableDeclarationInVariableStatement,
@@ -177890,6 +179812,7 @@ __export(ts_exports2, {
177890
179812
  reducePathComponents: () => reducePathComponents,
177891
179813
  refactor: () => ts_refactor_exports,
177892
179814
  regExpEscape: () => regExpEscape,
179815
+ regularExpressionFlagToCharacter: () => regularExpressionFlagToCharacter,
177893
179816
  relativeComplement: () => relativeComplement,
177894
179817
  removeAllComments: () => removeAllComments,
177895
179818
  removeEmitHelper: () => removeEmitHelper,
@@ -178145,6 +180068,7 @@ __export(ts_exports2, {
178145
180068
  unsetNodeChildren: () => unsetNodeChildren,
178146
180069
  unusedLabelIsError: () => unusedLabelIsError,
178147
180070
  unwrapInnermostStatementOfLabel: () => unwrapInnermostStatementOfLabel,
180071
+ unwrapParenthesizedExpression: () => unwrapParenthesizedExpression,
178148
180072
  updateErrorForNoInputFiles: () => updateErrorForNoInputFiles,
178149
180073
  updateLanguageServiceSourceFile: () => updateLanguageServiceSourceFile,
178150
180074
  updateMissingFilePathsWatch: () => updateMissingFilePathsWatch,
@@ -180665,6 +182589,13 @@ var Project3 = class _Project {
180665
182589
  }
180666
182590
  }
180667
182591
  /** @internal */
182592
+ markAutoImportProviderAsDirty() {
182593
+ var _a;
182594
+ if (!this.autoImportProviderHost)
182595
+ this.autoImportProviderHost = void 0;
182596
+ (_a = this.autoImportProviderHost) == null ? void 0 : _a.markAsDirty();
182597
+ }
182598
+ /** @internal */
180668
182599
  onAutoImportProviderSettingsChanged() {
180669
182600
  var _a;
180670
182601
  if (this.autoImportProviderHost === false) {
@@ -180700,7 +182631,7 @@ var Project3 = class _Project {
180700
182631
  * @returns: true if set of files in the project stays the same and false - otherwise.
180701
182632
  */
180702
182633
  updateGraph() {
180703
- var _a, _b, _c, _d, _e;
182634
+ var _a, _b, _c, _d;
180704
182635
  (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, "updateGraph", { name: this.projectName, kind: ProjectKind[this.projectKind] });
180705
182636
  (_b = perfLogger) == null ? void 0 : _b.logStartUpdateGraph();
180706
182637
  this.resolutionCache.startRecordingFilesWithChangedResolutions();
@@ -180725,15 +182656,13 @@ var Project3 = class _Project {
180725
182656
  this.projectProgramVersion++;
180726
182657
  }
180727
182658
  if (hasAddedorRemovedFiles) {
180728
- if (!this.autoImportProviderHost)
180729
- this.autoImportProviderHost = void 0;
180730
- (_c = this.autoImportProviderHost) == null ? void 0 : _c.markAsDirty();
182659
+ this.markAutoImportProviderAsDirty();
180731
182660
  }
180732
182661
  if (isFirstProgramLoad) {
180733
182662
  this.getPackageJsonAutoImportProvider();
180734
182663
  }
180735
- (_d = perfLogger) == null ? void 0 : _d.logStopUpdateGraph();
180736
- (_e = tracing) == null ? void 0 : _e.pop();
182664
+ (_c = perfLogger) == null ? void 0 : _c.logStopUpdateGraph();
182665
+ (_d = tracing) == null ? void 0 : _d.pop();
180737
182666
  return !hasNewProgram;
180738
182667
  }
180739
182668
  /** @internal */
@@ -181701,8 +183630,7 @@ var _AutoImportProviderProject = class _AutoImportProviderProject extends Projec
181701
183630
  if (packageJson) {
181702
183631
  const entrypoints = getRootNamesFromPackageJson(packageJson, program, symlinkCache);
181703
183632
  if (entrypoints) {
181704
- rootNames = concatenate(rootNames, entrypoints);
181705
- dependenciesAdded += entrypoints.length ? 1 : 0;
183633
+ dependenciesAdded += addRootNames(entrypoints);
181706
183634
  continue;
181707
183635
  }
181708
183636
  }
@@ -181717,8 +183645,7 @@ var _AutoImportProviderProject = class _AutoImportProviderProject extends Projec
181717
183645
  );
181718
183646
  if (typesPackageJson) {
181719
183647
  const entrypoints = getRootNamesFromPackageJson(typesPackageJson, program, symlinkCache);
181720
- rootNames = concatenate(rootNames, entrypoints);
181721
- dependenciesAdded += (entrypoints == null ? void 0 : entrypoints.length) ? 1 : 0;
183648
+ dependenciesAdded += addRootNames(entrypoints);
181722
183649
  return true;
181723
183650
  }
181724
183651
  }
@@ -181733,15 +183660,48 @@ var _AutoImportProviderProject = class _AutoImportProviderProject extends Projec
181733
183660
  /*resolveJs*/
181734
183661
  true
181735
183662
  );
181736
- rootNames = concatenate(rootNames, entrypoints);
181737
- dependenciesAdded += (entrypoints == null ? void 0 : entrypoints.length) ? 1 : 0;
183663
+ dependenciesAdded += addRootNames(entrypoints);
183664
+ }
183665
+ }
183666
+ }
183667
+ const references = program.getResolvedProjectReferences();
183668
+ let referencesAddded = 0;
183669
+ if ((references == null ? void 0 : references.length) && hostProject.projectService.getHostPreferences().includeCompletionsForModuleExports) {
183670
+ references.forEach((ref) => {
183671
+ if (ref == null ? void 0 : ref.commandLine.options.outFile) {
183672
+ referencesAddded += addRootNames(filterEntrypoints([
183673
+ changeExtension(ref.commandLine.options.outFile, ".d.ts")
183674
+ ]));
183675
+ } else if (ref) {
183676
+ const getCommonSourceDirectory2 = memoize(
183677
+ () => getCommonSourceDirectoryOfConfig(
183678
+ ref.commandLine,
183679
+ !hostProject.useCaseSensitiveFileNames()
183680
+ )
183681
+ );
183682
+ referencesAddded += addRootNames(filterEntrypoints(mapDefined(
183683
+ ref.commandLine.fileNames,
183684
+ (fileName) => !isDeclarationFileName(fileName) && !fileExtensionIs(fileName, ".json" /* Json */) && !program.getSourceFile(fileName) ? getOutputDeclarationFileName(
183685
+ fileName,
183686
+ ref.commandLine,
183687
+ !hostProject.useCaseSensitiveFileNames(),
183688
+ getCommonSourceDirectory2
183689
+ ) : void 0
183690
+ )));
181738
183691
  }
181739
- }
183692
+ });
183693
+ }
183694
+ if (rootNames == null ? void 0 : rootNames.size) {
183695
+ hostProject.log(`AutoImportProviderProject: found ${rootNames.size} root files in ${dependenciesAdded} dependencies ${referencesAddded} referenced projects in ${timestamp() - start} ms`);
181740
183696
  }
181741
- if (rootNames == null ? void 0 : rootNames.length) {
181742
- hostProject.log(`AutoImportProviderProject: found ${rootNames.length} root files in ${dependenciesAdded} dependencies in ${timestamp() - start} ms`);
183697
+ return rootNames ? arrayFrom(rootNames.values()) : emptyArray;
183698
+ function addRootNames(entrypoints) {
183699
+ if (!(entrypoints == null ? void 0 : entrypoints.length))
183700
+ return 0;
183701
+ rootNames ?? (rootNames = /* @__PURE__ */ new Set());
183702
+ entrypoints.forEach((entry) => rootNames.add(entry));
183703
+ return 1;
181743
183704
  }
181744
- return rootNames || emptyArray;
181745
183705
  function addDependency(dependency) {
181746
183706
  if (!startsWith(dependency, "@types/")) {
181747
183707
  (dependencyNames || (dependencyNames = /* @__PURE__ */ new Set())).add(dependency);
@@ -181766,14 +183726,17 @@ var _AutoImportProviderProject = class _AutoImportProviderProject extends Projec
181766
183726
  realPath: ensureTrailingDirectorySeparator(realPath2)
181767
183727
  });
181768
183728
  }
181769
- return mapDefined(entrypoints, (entrypoint) => {
181770
- const resolvedFileName = isSymlink ? entrypoint.replace(packageJson.packageDirectory, real) : entrypoint;
181771
- if (!program2.getSourceFile(resolvedFileName) && !(isSymlink && program2.getSourceFile(entrypoint))) {
181772
- return resolvedFileName;
181773
- }
181774
- });
183729
+ return filterEntrypoints(entrypoints, isSymlink ? (entrypoint) => entrypoint.replace(packageJson.packageDirectory, real) : void 0);
181775
183730
  }
181776
183731
  }
183732
+ function filterEntrypoints(entrypoints, symlinkName) {
183733
+ return mapDefined(entrypoints, (entrypoint) => {
183734
+ const resolvedFileName = symlinkName ? symlinkName(entrypoint) : entrypoint;
183735
+ if (!program.getSourceFile(resolvedFileName) && !(symlinkName && program.getSourceFile(entrypoint))) {
183736
+ return resolvedFileName;
183737
+ }
183738
+ });
183739
+ }
181777
183740
  }
181778
183741
  /** @internal */
181779
183742
  static create(dependencySelection, hostProject, host, documentRegistry) {
@@ -183116,11 +185079,18 @@ var _ProjectService = class _ProjectService {
183116
185079
  if (config.updateLevel !== 2 /* Full */)
183117
185080
  config.updateLevel = 1 /* RootNamesAndUpdate */;
183118
185081
  config.projects.forEach((watchWildcardDirectories, projectCanonicalPath) => {
185082
+ var _a;
183119
185083
  if (!watchWildcardDirectories)
183120
185084
  return;
183121
185085
  const project = this.getConfiguredProjectByCanonicalConfigFilePath(projectCanonicalPath);
183122
185086
  if (!project)
183123
185087
  return;
185088
+ if (configuredProjectForConfig !== project && this.getHostPreferences().includeCompletionsForModuleExports) {
185089
+ const path = this.toPath(configFileName);
185090
+ if (find((_a = project.getCurrentProgram()) == null ? void 0 : _a.getResolvedProjectReferences(), (ref) => (ref == null ? void 0 : ref.sourceFile.path) === path)) {
185091
+ project.markAutoImportProviderAsDirty();
185092
+ }
185093
+ }
183124
185094
  const updateLevel = configuredProjectForConfig === project ? 1 /* RootNamesAndUpdate */ : 0 /* Update */;
183125
185095
  if (project.pendingUpdateLevel !== void 0 && project.pendingUpdateLevel > updateLevel)
183126
185096
  return;
@@ -183169,6 +185139,7 @@ var _ProjectService = class _ProjectService {
183169
185139
  let scheduledAnyProjectUpdate = false;
183170
185140
  configFileExistenceInfo.config.updateLevel = 2 /* Full */;
183171
185141
  configFileExistenceInfo.config.projects.forEach((_watchWildcardDirectories, projectCanonicalPath) => {
185142
+ var _a;
183172
185143
  const project = this.getConfiguredProjectByCanonicalConfigFilePath(projectCanonicalPath);
183173
185144
  if (!project)
183174
185145
  return;
@@ -183179,9 +185150,14 @@ var _ProjectService = class _ProjectService {
183179
185150
  project.pendingUpdateLevel = 2 /* Full */;
183180
185151
  project.pendingUpdateReason = loadReason;
183181
185152
  this.delayUpdateProjectGraph(project);
185153
+ project.markAutoImportProviderAsDirty();
183182
185154
  } else {
183183
- project.resolutionCache.removeResolutionsFromProjectReferenceRedirects(this.toPath(canonicalConfigFilePath));
185155
+ const path = this.toPath(canonicalConfigFilePath);
185156
+ project.resolutionCache.removeResolutionsFromProjectReferenceRedirects(path);
183184
185157
  this.delayUpdateProjectGraph(project);
185158
+ if (this.getHostPreferences().includeCompletionsForModuleExports && find((_a = project.getCurrentProgram()) == null ? void 0 : _a.getResolvedProjectReferences(), (ref) => (ref == null ? void 0 : ref.sourceFile.path) === path)) {
185159
+ project.markAutoImportProviderAsDirty();
185160
+ }
183185
185161
  }
183186
185162
  });
183187
185163
  return scheduledAnyProjectUpdate;
@@ -183610,13 +185586,8 @@ var _ProjectService = class _ProjectService {
183610
185586
  if (result !== void 0)
183611
185587
  return result || void 0;
183612
185588
  }
183613
- this.logger.info(`Search path: ${getDirectoryPath(info.fileName)}`);
183614
185589
  const configFileName = this.forEachConfigFileLocation(info, (canonicalConfigFilePath, configFileName2) => this.configFileExists(configFileName2, canonicalConfigFilePath, info));
183615
- if (configFileName) {
183616
- this.logger.info(`For info: ${info.fileName} :: Config file name: ${configFileName}`);
183617
- } else {
183618
- this.logger.info(`For info: ${info.fileName} :: No config files found.`);
183619
- }
185590
+ this.logger.info(`getConfigFileNameForFile:: File: ${info.fileName} ProjectRootPath: ${this.openFiles.get(info.path)}:: Result: ${configFileName}`);
183620
185591
  if (isOpenScriptInfo(info)) {
183621
185592
  this.configFileForOpenFiles.set(info.path, configFileName || false);
183622
185593
  }
@@ -184646,7 +186617,8 @@ Dynamic files must always be opened with service's current directory or service
184646
186617
  if (args.preferences) {
184647
186618
  const {
184648
186619
  lazyConfiguredProjectsFromExternalProject,
184649
- includePackageJsonAutoImports
186620
+ includePackageJsonAutoImports,
186621
+ includeCompletionsForModuleExports
184650
186622
  } = this.hostConfiguration.preferences;
184651
186623
  this.hostConfiguration.preferences = { ...this.hostConfiguration.preferences, ...args.preferences };
184652
186624
  if (lazyConfiguredProjectsFromExternalProject && !this.hostConfiguration.preferences.lazyConfiguredProjectsFromExternalProject) {
@@ -184658,7 +186630,7 @@ Dynamic files must always be opened with service's current directory or service
184658
186630
  })
184659
186631
  );
184660
186632
  }
184661
- if (includePackageJsonAutoImports !== args.preferences.includePackageJsonAutoImports) {
186633
+ if (includePackageJsonAutoImports !== args.preferences.includePackageJsonAutoImports || !!includeCompletionsForModuleExports !== !!args.preferences.includeCompletionsForModuleExports) {
184662
186634
  this.forEachProject((project) => {
184663
186635
  project.onAutoImportProviderSettingsChanged();
184664
186636
  });
@@ -190348,6 +192320,7 @@ if (typeof console !== "undefined") {
190348
192320
  ProcessLevel,
190349
192321
  ProgramUpdateLevel,
190350
192322
  QuotePreference,
192323
+ RegularExpressionFlags,
190351
192324
  RelationComparisonResult,
190352
192325
  Rename,
190353
192326
  ScriptElementKind,
@@ -190476,6 +192449,7 @@ if (typeof console !== "undefined") {
190476
192449
  changeFullExtension,
190477
192450
  changesAffectModuleResolution,
190478
192451
  changesAffectingProgramStructure,
192452
+ characterToRegularExpressionFlag,
190479
192453
  childIsDecorated,
190480
192454
  classElementOrClassElementParameterIsDecorated,
190481
192455
  classHasClassThisAssignment,
@@ -190621,6 +192595,7 @@ if (typeof console !== "undefined") {
190621
192595
  createForOfBindingStatement,
190622
192596
  createFutureSourceFile,
190623
192597
  createGetCanonicalFileName,
192598
+ createGetIsolatedDeclarationErrors,
190624
192599
  createGetSourceFile,
190625
192600
  createGetSymbolAccessibilityDiagnosticForNode,
190626
192601
  createGetSymbolAccessibilityDiagnosticForNodeName,
@@ -190675,6 +192650,7 @@ if (typeof console !== "undefined") {
190675
192650
  createSuperAccessVariableStatement,
190676
192651
  createSymbolTable,
190677
192652
  createSymlinkCache,
192653
+ createSyntacticTypeNodeBuilder,
190678
192654
  createSystemWatchFunctions,
190679
192655
  createTextChange,
190680
192656
  createTextChangeFromStartLength,
@@ -191114,6 +193090,7 @@ if (typeof console !== "undefined") {
191114
193090
  getNameOfDeclaration,
191115
193091
  getNameOfExpando,
191116
193092
  getNameOfJSDocTypedef,
193093
+ getNameOfScriptTarget,
191117
193094
  getNameOrArgument,
191118
193095
  getNameTable,
191119
193096
  getNamesForExportedSymbol,
@@ -191328,6 +193305,7 @@ if (typeof console !== "undefined") {
191328
193305
  hasEffectiveReadonlyModifier,
191329
193306
  hasExtension,
191330
193307
  hasIndexSignature,
193308
+ hasInferredType,
191331
193309
  hasInitializer,
191332
193310
  hasInvalidEscape,
191333
193311
  hasJSDocNodes,
@@ -191872,12 +193850,12 @@ if (typeof console !== "undefined") {
191872
193850
  isPackageJsonInfo,
191873
193851
  isPackedArrayLiteral,
191874
193852
  isParameter,
191875
- isParameterDeclaration,
191876
193853
  isParameterPropertyDeclaration,
191877
193854
  isParameterPropertyModifier,
191878
193855
  isParenthesizedExpression,
191879
193856
  isParenthesizedTypeNode,
191880
193857
  isParseTreeNode,
193858
+ isPartOfParameterDeclaration,
191881
193859
  isPartOfTypeNode,
191882
193860
  isPartOfTypeQuery,
191883
193861
  isPartiallyEmittedExpression,
@@ -191888,6 +193866,7 @@ if (typeof console !== "undefined") {
191888
193866
  isPossiblyTypeArgumentPosition,
191889
193867
  isPostfixUnaryExpression,
191890
193868
  isPrefixUnaryExpression,
193869
+ isPrimitiveLiteralValue,
191891
193870
  isPrivateIdentifier,
191892
193871
  isPrivateIdentifierClassElementDeclaration,
191893
193872
  isPrivateIdentifierPropertyAccessExpression,
@@ -192054,6 +194033,7 @@ if (typeof console !== "undefined") {
192054
194033
  isValueSignatureDeclaration,
192055
194034
  isVarAwaitUsing,
192056
194035
  isVarConst,
194036
+ isVarConstLike,
192057
194037
  isVarUsing,
192058
194038
  isVariableDeclaration,
192059
194039
  isVariableDeclarationInVariableStatement,
@@ -192258,6 +194238,7 @@ if (typeof console !== "undefined") {
192258
194238
  reducePathComponents,
192259
194239
  refactor,
192260
194240
  regExpEscape,
194241
+ regularExpressionFlagToCharacter,
192261
194242
  relativeComplement,
192262
194243
  removeAllComments,
192263
194244
  removeEmitHelper,
@@ -192513,6 +194494,7 @@ if (typeof console !== "undefined") {
192513
194494
  unsetNodeChildren,
192514
194495
  unusedLabelIsError,
192515
194496
  unwrapInnermostStatementOfLabel,
194497
+ unwrapParenthesizedExpression,
192516
194498
  updateErrorForNoInputFiles,
192517
194499
  updateLanguageServiceSourceFile,
192518
194500
  updateMissingFilePathsWatch,