typescript 5.0.0-dev.20230206 → 5.0.0-dev.20230207

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/tsserver.js CHANGED
@@ -1858,6 +1858,7 @@ __export(server_exports, {
1858
1858
  mutateMapSkippingNewValues: () => mutateMapSkippingNewValues,
1859
1859
  needsParentheses: () => needsParentheses,
1860
1860
  needsScopeMarker: () => needsScopeMarker,
1861
+ newCaseClauseTracker: () => newCaseClauseTracker,
1861
1862
  newPrivateEnvironment: () => newPrivateEnvironment,
1862
1863
  noEmitNotification: () => noEmitNotification,
1863
1864
  noEmitSubstitution: () => noEmitSubstitution,
@@ -2286,7 +2287,7 @@ module.exports = __toCommonJS(server_exports);
2286
2287
 
2287
2288
  // src/compiler/corePublic.ts
2288
2289
  var versionMajorMinor = "5.0";
2289
- var version = `${versionMajorMinor}.0-dev.20230206`;
2290
+ var version = `${versionMajorMinor}.0-dev.20230207`;
2290
2291
  var Comparison = /* @__PURE__ */ ((Comparison3) => {
2291
2292
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
2292
2293
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -7703,7 +7704,7 @@ function createUseFsEventsOnParentDirectoryWatchFile(fsWatch, useCaseSensitiveFi
7703
7704
  function createDirectoryWatcher(dirName, dirPath, fallbackOptions) {
7704
7705
  const watcher = fsWatch(
7705
7706
  dirName,
7706
- FileSystemEntryKind.Directory,
7707
+ 1 /* Directory */,
7707
7708
  (_eventName, relativeFileName, modifiedTime) => {
7708
7709
  if (!isString(relativeFileName))
7709
7710
  return;
@@ -7903,7 +7904,7 @@ function createDirectoryWatcherSupportingRecursive({
7903
7904
  }
7904
7905
  function nonSyncUpdateChildWatches(dirName, dirPath, fileName, options) {
7905
7906
  const parentWatcher = cache.get(dirPath);
7906
- if (parentWatcher && fileSystemEntryExists(dirName, FileSystemEntryKind.Directory)) {
7907
+ if (parentWatcher && fileSystemEntryExists(dirName, 1 /* Directory */)) {
7907
7908
  scheduleUpdateChildWatches(dirName, dirPath, fileName, options);
7908
7909
  return;
7909
7910
  }
@@ -7968,7 +7969,7 @@ function createDirectoryWatcherSupportingRecursive({
7968
7969
  return false;
7969
7970
  let newChildWatches;
7970
7971
  const hasChanges = enumerateInsertsAndDeletes(
7971
- fileSystemEntryExists(parentDir, FileSystemEntryKind.Directory) ? mapDefined(getAccessibleSortedChildDirectories(parentDir), (child) => {
7972
+ fileSystemEntryExists(parentDir, 1 /* Directory */) ? mapDefined(getAccessibleSortedChildDirectories(parentDir), (child) => {
7972
7973
  const childFullName = getNormalizedAbsolutePath(child, parentDir);
7973
7974
  return !isIgnoredPath(childFullName, options) && filePathComparer(childFullName, normalizePath(realpath(childFullName))) === 0 /* EqualTo */ ? childFullName : void 0;
7974
7975
  }) : emptyArray,
@@ -10735,6 +10736,10 @@ var Diagnostics = {
10735
10736
  Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports: diag(6410, 3 /* Message */, "Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports_6410", "Conditions to set in addition to the resolver-specific defaults when resolving imports."),
10736
10737
  true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false: diag(6411, 3 /* Message */, "true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false_6411", "`true` when 'moduleResolution' is 'node16', 'nodenext', or 'bundler'; otherwise `false`."),
10737
10738
  Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more: diag(6412, 3 /* Message */, "Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_6412", "Project '{0}' is out of date because buildinfo file '{1}' indicates that file '{2}' was root file of compilation but not any more."),
10739
+ Entering_conditional_exports: diag(6413, 3 /* Message */, "Entering_conditional_exports_6413", "Entering conditional exports."),
10740
+ Resolved_under_condition_0: diag(6414, 3 /* Message */, "Resolved_under_condition_0_6414", "Resolved under condition '{0}'."),
10741
+ Failed_to_resolve_under_condition_0: diag(6415, 3 /* Message */, "Failed_to_resolve_under_condition_0_6415", "Failed to resolve under condition '{0}'."),
10742
+ Exiting_conditional_exports: diag(6416, 3 /* Message */, "Exiting_conditional_exports_6416", "Exiting conditional exports."),
10738
10743
  The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1: diag(6500, 3 /* Message */, "The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500", "The expected type comes from property '{0}' which is declared here on type '{1}'"),
10739
10744
  The_expected_type_comes_from_this_index_signature: diag(6501, 3 /* Message */, "The_expected_type_comes_from_this_index_signature_6501", "The expected type comes from this index signature."),
10740
10745
  The_expected_type_comes_from_the_return_type_of_this_signature: diag(6502, 3 /* Message */, "The_expected_type_comes_from_the_return_type_of_this_signature_6502", "The expected type comes from the return type of this signature."),
@@ -19310,17 +19315,11 @@ function getCombinedLocalAndExportSymbolFlags(symbol) {
19310
19315
  return symbol.exportSymbol ? symbol.exportSymbol.flags | symbol.flags : symbol.flags;
19311
19316
  }
19312
19317
  function isWriteOnlyAccess(node) {
19313
- return accessKind(node) === AccessKind.Write;
19318
+ return accessKind(node) === 1 /* Write */;
19314
19319
  }
19315
19320
  function isWriteAccess(node) {
19316
- return accessKind(node) !== AccessKind.Read;
19317
- }
19318
- var AccessKind = /* @__PURE__ */ ((AccessKind2) => {
19319
- AccessKind2[AccessKind2["Read"] = 0] = "Read";
19320
- AccessKind2[AccessKind2["Write"] = 1] = "Write";
19321
- AccessKind2[AccessKind2["ReadWrite"] = 2] = "ReadWrite";
19322
- return AccessKind2;
19323
- })(AccessKind || {});
19321
+ return accessKind(node) !== 0 /* Read */;
19322
+ }
19324
19323
  function accessKind(node) {
19325
19324
  const { parent: parent2 } = node;
19326
19325
  if (!parent2)
@@ -30186,7 +30185,7 @@ var Parser;
30186
30185
  }
30187
30186
  sourceFlags = contextFlags;
30188
30187
  nextToken();
30189
- const statements = parseList(ParsingContext.SourceElements, parseStatement);
30188
+ const statements = parseList(0 /* SourceElements */, parseStatement);
30190
30189
  Debug.assert(token() === 1 /* EndOfFileToken */);
30191
30190
  const endOfFileToken = addJSDocComment(parseTokenNode());
30192
30191
  const sourceFile = createSourceFile2(fileName, languageVersion2, scriptKind2, isDeclarationFile, statements, endOfFileToken, sourceFlags, setExternalModuleIndicator2);
@@ -30249,7 +30248,7 @@ var Parser;
30249
30248
  nextToken();
30250
30249
  while (token() !== 1 /* EndOfFileToken */) {
30251
30250
  const startPos = scanner2.getStartPos();
30252
- const statement = parseListElement(ParsingContext.SourceElements, parseStatement);
30251
+ const statement = parseListElement(0 /* SourceElements */, parseStatement);
30253
30252
  statements.push(statement);
30254
30253
  if (startPos === scanner2.getStartPos()) {
30255
30254
  nextToken();
@@ -30936,19 +30935,19 @@ var Parser;
30936
30935
  return true;
30937
30936
  }
30938
30937
  switch (parsingContext2) {
30939
- case ParsingContext.SourceElements:
30940
- case ParsingContext.BlockStatements:
30941
- case ParsingContext.SwitchClauseStatements:
30938
+ case 0 /* SourceElements */:
30939
+ case 1 /* BlockStatements */:
30940
+ case 3 /* SwitchClauseStatements */:
30942
30941
  return !(token() === 26 /* SemicolonToken */ && inErrorRecovery) && isStartOfStatement();
30943
- case ParsingContext.SwitchClauses:
30942
+ case 2 /* SwitchClauses */:
30944
30943
  return token() === 82 /* CaseKeyword */ || token() === 88 /* DefaultKeyword */;
30945
- case ParsingContext.TypeMembers:
30944
+ case 4 /* TypeMembers */:
30946
30945
  return lookAhead(isTypeMemberStart);
30947
- case ParsingContext.ClassMembers:
30946
+ case 5 /* ClassMembers */:
30948
30947
  return lookAhead(isClassMemberStart) || token() === 26 /* SemicolonToken */ && !inErrorRecovery;
30949
- case ParsingContext.EnumMembers:
30948
+ case 6 /* EnumMembers */:
30950
30949
  return token() === 22 /* OpenBracketToken */ || isLiteralPropertyName();
30951
- case ParsingContext.ObjectLiteralMembers:
30950
+ case 12 /* ObjectLiteralMembers */:
30952
30951
  switch (token()) {
30953
30952
  case 22 /* OpenBracketToken */:
30954
30953
  case 41 /* AsteriskToken */:
@@ -30958,13 +30957,13 @@ var Parser;
30958
30957
  default:
30959
30958
  return isLiteralPropertyName();
30960
30959
  }
30961
- case ParsingContext.RestProperties:
30960
+ case 18 /* RestProperties */:
30962
30961
  return isLiteralPropertyName();
30963
- case ParsingContext.ObjectBindingElements:
30962
+ case 9 /* ObjectBindingElements */:
30964
30963
  return token() === 22 /* OpenBracketToken */ || token() === 25 /* DotDotDotToken */ || isLiteralPropertyName();
30965
- case ParsingContext.AssertEntries:
30964
+ case 24 /* AssertEntries */:
30966
30965
  return isAssertionKey2();
30967
- case ParsingContext.HeritageClauseElement:
30966
+ case 7 /* HeritageClauseElement */:
30968
30967
  if (token() === 18 /* OpenBraceToken */) {
30969
30968
  return lookAhead(isValidHeritageClauseObjectLiteral);
30970
30969
  }
@@ -30973,40 +30972,40 @@ var Parser;
30973
30972
  } else {
30974
30973
  return isIdentifier2() && !isHeritageClauseExtendsOrImplementsKeyword();
30975
30974
  }
30976
- case ParsingContext.VariableDeclarations:
30975
+ case 8 /* VariableDeclarations */:
30977
30976
  return isBindingIdentifierOrPrivateIdentifierOrPattern();
30978
- case ParsingContext.ArrayBindingElements:
30977
+ case 10 /* ArrayBindingElements */:
30979
30978
  return token() === 27 /* CommaToken */ || token() === 25 /* DotDotDotToken */ || isBindingIdentifierOrPrivateIdentifierOrPattern();
30980
- case ParsingContext.TypeParameters:
30979
+ case 19 /* TypeParameters */:
30981
30980
  return token() === 101 /* InKeyword */ || token() === 85 /* ConstKeyword */ || isIdentifier2();
30982
- case ParsingContext.ArrayLiteralMembers:
30981
+ case 15 /* ArrayLiteralMembers */:
30983
30982
  switch (token()) {
30984
30983
  case 27 /* CommaToken */:
30985
30984
  case 24 /* DotToken */:
30986
30985
  return true;
30987
30986
  }
30988
- case ParsingContext.ArgumentExpressions:
30987
+ case 11 /* ArgumentExpressions */:
30989
30988
  return token() === 25 /* DotDotDotToken */ || isStartOfExpression();
30990
- case ParsingContext.Parameters:
30989
+ case 16 /* Parameters */:
30991
30990
  return isStartOfParameter(
30992
30991
  /*isJSDocParameter*/
30993
30992
  false
30994
30993
  );
30995
- case ParsingContext.JSDocParameters:
30994
+ case 17 /* JSDocParameters */:
30996
30995
  return isStartOfParameter(
30997
30996
  /*isJSDocParameter*/
30998
30997
  true
30999
30998
  );
31000
- case ParsingContext.TypeArguments:
31001
- case ParsingContext.TupleElementTypes:
30999
+ case 20 /* TypeArguments */:
31000
+ case 21 /* TupleElementTypes */:
31002
31001
  return token() === 27 /* CommaToken */ || isStartOfType();
31003
- case ParsingContext.HeritageClauses:
31002
+ case 22 /* HeritageClauses */:
31004
31003
  return isHeritageClause2();
31005
- case ParsingContext.ImportOrExportSpecifiers:
31004
+ case 23 /* ImportOrExportSpecifiers */:
31006
31005
  return tokenIsIdentifierOrKeyword(token());
31007
- case ParsingContext.JsxAttributes:
31006
+ case 13 /* JsxAttributes */:
31008
31007
  return tokenIsIdentifierOrKeyword(token()) || token() === 18 /* OpenBraceToken */;
31009
- case ParsingContext.JsxChildren:
31008
+ case 14 /* JsxChildren */:
31010
31009
  return true;
31011
31010
  }
31012
31011
  return Debug.fail("Non-exhaustive case in 'isListElement'.");
@@ -31050,41 +31049,41 @@ var Parser;
31050
31049
  return true;
31051
31050
  }
31052
31051
  switch (kind) {
31053
- case ParsingContext.BlockStatements:
31054
- case ParsingContext.SwitchClauses:
31055
- case ParsingContext.TypeMembers:
31056
- case ParsingContext.ClassMembers:
31057
- case ParsingContext.EnumMembers:
31058
- case ParsingContext.ObjectLiteralMembers:
31059
- case ParsingContext.ObjectBindingElements:
31060
- case ParsingContext.ImportOrExportSpecifiers:
31061
- case ParsingContext.AssertEntries:
31052
+ case 1 /* BlockStatements */:
31053
+ case 2 /* SwitchClauses */:
31054
+ case 4 /* TypeMembers */:
31055
+ case 5 /* ClassMembers */:
31056
+ case 6 /* EnumMembers */:
31057
+ case 12 /* ObjectLiteralMembers */:
31058
+ case 9 /* ObjectBindingElements */:
31059
+ case 23 /* ImportOrExportSpecifiers */:
31060
+ case 24 /* AssertEntries */:
31062
31061
  return token() === 19 /* CloseBraceToken */;
31063
- case ParsingContext.SwitchClauseStatements:
31062
+ case 3 /* SwitchClauseStatements */:
31064
31063
  return token() === 19 /* CloseBraceToken */ || token() === 82 /* CaseKeyword */ || token() === 88 /* DefaultKeyword */;
31065
- case ParsingContext.HeritageClauseElement:
31064
+ case 7 /* HeritageClauseElement */:
31066
31065
  return token() === 18 /* OpenBraceToken */ || token() === 94 /* ExtendsKeyword */ || token() === 117 /* ImplementsKeyword */;
31067
- case ParsingContext.VariableDeclarations:
31066
+ case 8 /* VariableDeclarations */:
31068
31067
  return isVariableDeclaratorListTerminator();
31069
- case ParsingContext.TypeParameters:
31068
+ case 19 /* TypeParameters */:
31070
31069
  return token() === 31 /* GreaterThanToken */ || token() === 20 /* OpenParenToken */ || token() === 18 /* OpenBraceToken */ || token() === 94 /* ExtendsKeyword */ || token() === 117 /* ImplementsKeyword */;
31071
- case ParsingContext.ArgumentExpressions:
31070
+ case 11 /* ArgumentExpressions */:
31072
31071
  return token() === 21 /* CloseParenToken */ || token() === 26 /* SemicolonToken */;
31073
- case ParsingContext.ArrayLiteralMembers:
31074
- case ParsingContext.TupleElementTypes:
31075
- case ParsingContext.ArrayBindingElements:
31072
+ case 15 /* ArrayLiteralMembers */:
31073
+ case 21 /* TupleElementTypes */:
31074
+ case 10 /* ArrayBindingElements */:
31076
31075
  return token() === 23 /* CloseBracketToken */;
31077
- case ParsingContext.JSDocParameters:
31078
- case ParsingContext.Parameters:
31079
- case ParsingContext.RestProperties:
31076
+ case 17 /* JSDocParameters */:
31077
+ case 16 /* Parameters */:
31078
+ case 18 /* RestProperties */:
31080
31079
  return token() === 21 /* CloseParenToken */ || token() === 23 /* CloseBracketToken */;
31081
- case ParsingContext.TypeArguments:
31080
+ case 20 /* TypeArguments */:
31082
31081
  return token() !== 27 /* CommaToken */;
31083
- case ParsingContext.HeritageClauses:
31082
+ case 22 /* HeritageClauses */:
31084
31083
  return token() === 18 /* OpenBraceToken */ || token() === 19 /* CloseBraceToken */;
31085
- case ParsingContext.JsxAttributes:
31084
+ case 13 /* JsxAttributes */:
31086
31085
  return token() === 31 /* GreaterThanToken */ || token() === 43 /* SlashToken */;
31087
- case ParsingContext.JsxChildren:
31086
+ case 14 /* JsxChildren */:
31088
31087
  return token() === 29 /* LessThanToken */ && lookAhead(nextTokenIsSlash);
31089
31088
  default:
31090
31089
  return false;
@@ -31103,7 +31102,7 @@ var Parser;
31103
31102
  return false;
31104
31103
  }
31105
31104
  function isInSomeParsingContext() {
31106
- for (let kind = 0; kind < ParsingContext.Count; kind++) {
31105
+ for (let kind = 0; kind < 25 /* Count */; kind++) {
31107
31106
  if (parsingContext & 1 << kind) {
31108
31107
  if (isListElement2(
31109
31108
  kind,
@@ -31172,38 +31171,38 @@ var Parser;
31172
31171
  }
31173
31172
  function isReusableParsingContext(parsingContext2) {
31174
31173
  switch (parsingContext2) {
31175
- case ParsingContext.ClassMembers:
31176
- case ParsingContext.SwitchClauses:
31177
- case ParsingContext.SourceElements:
31178
- case ParsingContext.BlockStatements:
31179
- case ParsingContext.SwitchClauseStatements:
31180
- case ParsingContext.EnumMembers:
31181
- case ParsingContext.TypeMembers:
31182
- case ParsingContext.VariableDeclarations:
31183
- case ParsingContext.JSDocParameters:
31184
- case ParsingContext.Parameters:
31174
+ case 5 /* ClassMembers */:
31175
+ case 2 /* SwitchClauses */:
31176
+ case 0 /* SourceElements */:
31177
+ case 1 /* BlockStatements */:
31178
+ case 3 /* SwitchClauseStatements */:
31179
+ case 6 /* EnumMembers */:
31180
+ case 4 /* TypeMembers */:
31181
+ case 8 /* VariableDeclarations */:
31182
+ case 17 /* JSDocParameters */:
31183
+ case 16 /* Parameters */:
31185
31184
  return true;
31186
31185
  }
31187
31186
  return false;
31188
31187
  }
31189
31188
  function canReuseNode(node, parsingContext2) {
31190
31189
  switch (parsingContext2) {
31191
- case ParsingContext.ClassMembers:
31190
+ case 5 /* ClassMembers */:
31192
31191
  return isReusableClassMember(node);
31193
- case ParsingContext.SwitchClauses:
31192
+ case 2 /* SwitchClauses */:
31194
31193
  return isReusableSwitchClause(node);
31195
- case ParsingContext.SourceElements:
31196
- case ParsingContext.BlockStatements:
31197
- case ParsingContext.SwitchClauseStatements:
31194
+ case 0 /* SourceElements */:
31195
+ case 1 /* BlockStatements */:
31196
+ case 3 /* SwitchClauseStatements */:
31198
31197
  return isReusableStatement(node);
31199
- case ParsingContext.EnumMembers:
31198
+ case 6 /* EnumMembers */:
31200
31199
  return isReusableEnumMember(node);
31201
- case ParsingContext.TypeMembers:
31200
+ case 4 /* TypeMembers */:
31202
31201
  return isReusableTypeMember(node);
31203
- case ParsingContext.VariableDeclarations:
31202
+ case 8 /* VariableDeclarations */:
31204
31203
  return isReusableVariableDeclaration(node);
31205
- case ParsingContext.JSDocParameters:
31206
- case ParsingContext.Parameters:
31204
+ case 17 /* JSDocParameters */:
31205
+ case 16 /* Parameters */:
31207
31206
  return isReusableParameter(node);
31208
31207
  }
31209
31208
  return false;
@@ -31313,56 +31312,56 @@ var Parser;
31313
31312
  }
31314
31313
  function parsingContextErrors(context) {
31315
31314
  switch (context) {
31316
- case ParsingContext.SourceElements:
31315
+ case 0 /* SourceElements */:
31317
31316
  return token() === 88 /* DefaultKeyword */ ? parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(93 /* ExportKeyword */)) : parseErrorAtCurrentToken(Diagnostics.Declaration_or_statement_expected);
31318
- case ParsingContext.BlockStatements:
31317
+ case 1 /* BlockStatements */:
31319
31318
  return parseErrorAtCurrentToken(Diagnostics.Declaration_or_statement_expected);
31320
- case ParsingContext.SwitchClauses:
31319
+ case 2 /* SwitchClauses */:
31321
31320
  return parseErrorAtCurrentToken(Diagnostics.case_or_default_expected);
31322
- case ParsingContext.SwitchClauseStatements:
31321
+ case 3 /* SwitchClauseStatements */:
31323
31322
  return parseErrorAtCurrentToken(Diagnostics.Statement_expected);
31324
- case ParsingContext.RestProperties:
31325
- case ParsingContext.TypeMembers:
31323
+ case 18 /* RestProperties */:
31324
+ case 4 /* TypeMembers */:
31326
31325
  return parseErrorAtCurrentToken(Diagnostics.Property_or_signature_expected);
31327
- case ParsingContext.ClassMembers:
31326
+ case 5 /* ClassMembers */:
31328
31327
  return parseErrorAtCurrentToken(Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected);
31329
- case ParsingContext.EnumMembers:
31328
+ case 6 /* EnumMembers */:
31330
31329
  return parseErrorAtCurrentToken(Diagnostics.Enum_member_expected);
31331
- case ParsingContext.HeritageClauseElement:
31330
+ case 7 /* HeritageClauseElement */:
31332
31331
  return parseErrorAtCurrentToken(Diagnostics.Expression_expected);
31333
- case ParsingContext.VariableDeclarations:
31332
+ case 8 /* VariableDeclarations */:
31334
31333
  return isKeyword(token()) ? parseErrorAtCurrentToken(Diagnostics._0_is_not_allowed_as_a_variable_declaration_name, tokenToString(token())) : parseErrorAtCurrentToken(Diagnostics.Variable_declaration_expected);
31335
- case ParsingContext.ObjectBindingElements:
31334
+ case 9 /* ObjectBindingElements */:
31336
31335
  return parseErrorAtCurrentToken(Diagnostics.Property_destructuring_pattern_expected);
31337
- case ParsingContext.ArrayBindingElements:
31336
+ case 10 /* ArrayBindingElements */:
31338
31337
  return parseErrorAtCurrentToken(Diagnostics.Array_element_destructuring_pattern_expected);
31339
- case ParsingContext.ArgumentExpressions:
31338
+ case 11 /* ArgumentExpressions */:
31340
31339
  return parseErrorAtCurrentToken(Diagnostics.Argument_expression_expected);
31341
- case ParsingContext.ObjectLiteralMembers:
31340
+ case 12 /* ObjectLiteralMembers */:
31342
31341
  return parseErrorAtCurrentToken(Diagnostics.Property_assignment_expected);
31343
- case ParsingContext.ArrayLiteralMembers:
31342
+ case 15 /* ArrayLiteralMembers */:
31344
31343
  return parseErrorAtCurrentToken(Diagnostics.Expression_or_comma_expected);
31345
- case ParsingContext.JSDocParameters:
31344
+ case 17 /* JSDocParameters */:
31346
31345
  return parseErrorAtCurrentToken(Diagnostics.Parameter_declaration_expected);
31347
- case ParsingContext.Parameters:
31346
+ case 16 /* Parameters */:
31348
31347
  return isKeyword(token()) ? parseErrorAtCurrentToken(Diagnostics._0_is_not_allowed_as_a_parameter_name, tokenToString(token())) : parseErrorAtCurrentToken(Diagnostics.Parameter_declaration_expected);
31349
- case ParsingContext.TypeParameters:
31348
+ case 19 /* TypeParameters */:
31350
31349
  return parseErrorAtCurrentToken(Diagnostics.Type_parameter_declaration_expected);
31351
- case ParsingContext.TypeArguments:
31350
+ case 20 /* TypeArguments */:
31352
31351
  return parseErrorAtCurrentToken(Diagnostics.Type_argument_expected);
31353
- case ParsingContext.TupleElementTypes:
31352
+ case 21 /* TupleElementTypes */:
31354
31353
  return parseErrorAtCurrentToken(Diagnostics.Type_expected);
31355
- case ParsingContext.HeritageClauses:
31354
+ case 22 /* HeritageClauses */:
31356
31355
  return parseErrorAtCurrentToken(Diagnostics.Unexpected_token_expected);
31357
- case ParsingContext.ImportOrExportSpecifiers:
31356
+ case 23 /* ImportOrExportSpecifiers */:
31358
31357
  return parseErrorAtCurrentToken(Diagnostics.Identifier_expected);
31359
- case ParsingContext.JsxAttributes:
31358
+ case 13 /* JsxAttributes */:
31360
31359
  return parseErrorAtCurrentToken(Diagnostics.Identifier_expected);
31361
- case ParsingContext.JsxChildren:
31360
+ case 14 /* JsxChildren */:
31362
31361
  return parseErrorAtCurrentToken(Diagnostics.Identifier_expected);
31363
- case ParsingContext.AssertEntries:
31362
+ case 24 /* AssertEntries */:
31364
31363
  return parseErrorAtCurrentToken(Diagnostics.Identifier_or_string_literal_expected);
31365
- case ParsingContext.Count:
31364
+ case 25 /* Count */:
31366
31365
  return Debug.fail("ParsingContext.Count used as a context");
31367
31366
  default:
31368
31367
  Debug.assertNever(context);
@@ -31421,7 +31420,7 @@ var Parser;
31421
31420
  );
31422
31421
  }
31423
31422
  function getExpectedCommaDiagnostic(kind) {
31424
- return kind === ParsingContext.EnumMembers ? Diagnostics.An_enum_member_name_must_be_followed_by_a_or : void 0;
31423
+ return kind === 6 /* EnumMembers */ ? Diagnostics.An_enum_member_name_must_be_followed_by_a_or : void 0;
31425
31424
  }
31426
31425
  function createMissingList() {
31427
31426
  const list = createNodeArray([], getNodePos());
@@ -31615,7 +31614,7 @@ var Parser;
31615
31614
  }
31616
31615
  function parseTypeArgumentsOfTypeReference() {
31617
31616
  if (!scanner2.hasPrecedingLineBreak() && reScanLessThanToken() === 29 /* LessThanToken */) {
31618
- return parseBracketedList(ParsingContext.TypeArguments, parseType, 29 /* LessThanToken */, 31 /* GreaterThanToken */);
31617
+ return parseBracketedList(20 /* TypeArguments */, parseType, 29 /* LessThanToken */, 31 /* GreaterThanToken */);
31619
31618
  }
31620
31619
  }
31621
31620
  function parseTypeReference() {
@@ -31797,7 +31796,7 @@ var Parser;
31797
31796
  }
31798
31797
  function parseTypeParameters() {
31799
31798
  if (token() === 29 /* LessThanToken */) {
31800
- return parseBracketedList(ParsingContext.TypeParameters, parseTypeParameter, 29 /* LessThanToken */, 31 /* GreaterThanToken */);
31799
+ return parseBracketedList(19 /* TypeParameters */, parseTypeParameter, 29 /* LessThanToken */, 31 /* GreaterThanToken */);
31801
31800
  }
31802
31801
  }
31803
31802
  function isStartOfParameter(isJSDocParameter) {
@@ -31903,7 +31902,7 @@ var Parser;
31903
31902
  const savedAwaitContext = inAwaitContext();
31904
31903
  setYieldContext(!!(flags & 1 /* Yield */));
31905
31904
  setAwaitContext(!!(flags & 2 /* Await */));
31906
- const parameters = flags & 32 /* JSDoc */ ? parseDelimitedList(ParsingContext.JSDocParameters, parseJSDocParameter) : parseDelimitedList(ParsingContext.Parameters, () => allowAmbiguity ? parseParameter(savedAwaitContext) : parseParameterForSpeculation(savedAwaitContext));
31905
+ const parameters = flags & 32 /* JSDoc */ ? parseDelimitedList(17 /* JSDocParameters */, parseJSDocParameter) : parseDelimitedList(16 /* Parameters */, () => allowAmbiguity ? parseParameter(savedAwaitContext) : parseParameterForSpeculation(savedAwaitContext));
31907
31906
  setYieldContext(savedYieldContext);
31908
31907
  setAwaitContext(savedAwaitContext);
31909
31908
  return parameters;
@@ -31971,7 +31970,7 @@ var Parser;
31971
31970
  return token() === 58 /* ColonToken */ || token() === 27 /* CommaToken */ || token() === 23 /* CloseBracketToken */;
31972
31971
  }
31973
31972
  function parseIndexSignatureDeclaration(pos, hasJSDoc, modifiers) {
31974
- const parameters = parseBracketedList(ParsingContext.Parameters, () => parseParameter(
31973
+ const parameters = parseBracketedList(16 /* Parameters */, () => parseParameter(
31975
31974
  /*inOuterAwaitContext*/
31976
31975
  false
31977
31976
  ), 22 /* OpenBracketToken */, 23 /* CloseBracketToken */);
@@ -32070,7 +32069,7 @@ var Parser;
32070
32069
  function parseObjectTypeMembers() {
32071
32070
  let members;
32072
32071
  if (parseExpected(18 /* OpenBraceToken */)) {
32073
- members = parseList(ParsingContext.TypeMembers, parseTypeMember);
32072
+ members = parseList(4 /* TypeMembers */, parseTypeMember);
32074
32073
  parseExpected(19 /* CloseBraceToken */);
32075
32074
  } else {
32076
32075
  members = createMissingList();
@@ -32124,7 +32123,7 @@ var Parser;
32124
32123
  }
32125
32124
  const type = parseTypeAnnotation();
32126
32125
  parseSemicolon();
32127
- const members = parseList(ParsingContext.TypeMembers, parseTypeMember);
32126
+ const members = parseList(4 /* TypeMembers */, parseTypeMember);
32128
32127
  parseExpected(19 /* CloseBraceToken */);
32129
32128
  return finishNode(factory2.createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members), pos);
32130
32129
  }
@@ -32169,7 +32168,7 @@ var Parser;
32169
32168
  const pos = getNodePos();
32170
32169
  return finishNode(
32171
32170
  factory2.createTupleTypeNode(
32172
- parseBracketedList(ParsingContext.TupleElementTypes, parseTupleElementNameOrTupleElementType, 22 /* OpenBracketToken */, 23 /* CloseBracketToken */)
32171
+ parseBracketedList(21 /* TupleElementTypes */, parseTupleElementNameOrTupleElementType, 22 /* OpenBracketToken */, 23 /* CloseBracketToken */)
32173
32172
  ),
32174
32173
  pos
32175
32174
  );
@@ -32797,10 +32796,10 @@ var Parser;
32797
32796
  }
32798
32797
  function tryParseParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction) {
32799
32798
  const triState = isParenthesizedArrowFunctionExpression();
32800
- if (triState === Tristate.False) {
32799
+ if (triState === 0 /* False */) {
32801
32800
  return void 0;
32802
32801
  }
32803
- return triState === Tristate.True ? parseParenthesizedArrowFunctionExpression(
32802
+ return triState === 1 /* True */ ? parseParenthesizedArrowFunctionExpression(
32804
32803
  /*allowAmbiguity*/
32805
32804
  true,
32806
32805
  /*allowReturnTypeInArrowFunction*/
@@ -32812,18 +32811,18 @@ var Parser;
32812
32811
  return lookAhead(isParenthesizedArrowFunctionExpressionWorker);
32813
32812
  }
32814
32813
  if (token() === 38 /* EqualsGreaterThanToken */) {
32815
- return Tristate.True;
32814
+ return 1 /* True */;
32816
32815
  }
32817
- return Tristate.False;
32816
+ return 0 /* False */;
32818
32817
  }
32819
32818
  function isParenthesizedArrowFunctionExpressionWorker() {
32820
32819
  if (token() === 132 /* AsyncKeyword */) {
32821
32820
  nextToken();
32822
32821
  if (scanner2.hasPrecedingLineBreak()) {
32823
- return Tristate.False;
32822
+ return 0 /* False */;
32824
32823
  }
32825
32824
  if (token() !== 20 /* OpenParenToken */ && token() !== 29 /* LessThanToken */) {
32826
- return Tristate.False;
32825
+ return 0 /* False */;
32827
32826
  }
32828
32827
  }
32829
32828
  const first2 = token();
@@ -32835,45 +32834,45 @@ var Parser;
32835
32834
  case 38 /* EqualsGreaterThanToken */:
32836
32835
  case 58 /* ColonToken */:
32837
32836
  case 18 /* OpenBraceToken */:
32838
- return Tristate.True;
32837
+ return 1 /* True */;
32839
32838
  default:
32840
- return Tristate.False;
32839
+ return 0 /* False */;
32841
32840
  }
32842
32841
  }
32843
32842
  if (second === 22 /* OpenBracketToken */ || second === 18 /* OpenBraceToken */) {
32844
- return Tristate.Unknown;
32843
+ return 2 /* Unknown */;
32845
32844
  }
32846
32845
  if (second === 25 /* DotDotDotToken */) {
32847
- return Tristate.True;
32846
+ return 1 /* True */;
32848
32847
  }
32849
32848
  if (isModifierKind(second) && second !== 132 /* AsyncKeyword */ && lookAhead(nextTokenIsIdentifier)) {
32850
32849
  if (nextToken() === 128 /* AsKeyword */) {
32851
- return Tristate.False;
32850
+ return 0 /* False */;
32852
32851
  }
32853
- return Tristate.True;
32852
+ return 1 /* True */;
32854
32853
  }
32855
32854
  if (!isIdentifier2() && second !== 108 /* ThisKeyword */) {
32856
- return Tristate.False;
32855
+ return 0 /* False */;
32857
32856
  }
32858
32857
  switch (nextToken()) {
32859
32858
  case 58 /* ColonToken */:
32860
- return Tristate.True;
32859
+ return 1 /* True */;
32861
32860
  case 57 /* QuestionToken */:
32862
32861
  nextToken();
32863
32862
  if (token() === 58 /* ColonToken */ || token() === 27 /* CommaToken */ || token() === 63 /* EqualsToken */ || token() === 21 /* CloseParenToken */) {
32864
- return Tristate.True;
32863
+ return 1 /* True */;
32865
32864
  }
32866
- return Tristate.False;
32865
+ return 0 /* False */;
32867
32866
  case 27 /* CommaToken */:
32868
32867
  case 63 /* EqualsToken */:
32869
32868
  case 21 /* CloseParenToken */:
32870
- return Tristate.Unknown;
32869
+ return 2 /* Unknown */;
32871
32870
  }
32872
- return Tristate.False;
32871
+ return 0 /* False */;
32873
32872
  } else {
32874
32873
  Debug.assert(first2 === 29 /* LessThanToken */);
32875
32874
  if (!isIdentifier2() && token() !== 85 /* ConstKeyword */) {
32876
- return Tristate.False;
32875
+ return 0 /* False */;
32877
32876
  }
32878
32877
  if (languageVariant === 1 /* JSX */) {
32879
32878
  const isArrowFunctionInJsx = lookAhead(() => {
@@ -32895,11 +32894,11 @@ var Parser;
32895
32894
  return false;
32896
32895
  });
32897
32896
  if (isArrowFunctionInJsx) {
32898
- return Tristate.True;
32897
+ return 1 /* True */;
32899
32898
  }
32900
- return Tristate.False;
32899
+ return 0 /* False */;
32901
32900
  }
32902
- return Tristate.Unknown;
32901
+ return 2 /* Unknown */;
32903
32902
  }
32904
32903
  }
32905
32904
  function parsePossibleParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction) {
@@ -32919,7 +32918,7 @@ var Parser;
32919
32918
  }
32920
32919
  function tryParseAsyncSimpleArrowFunctionExpression(allowReturnTypeInArrowFunction) {
32921
32920
  if (token() === 132 /* AsyncKeyword */) {
32922
- if (lookAhead(isUnParenthesizedAsyncArrowFunctionWorker) === Tristate.True) {
32921
+ if (lookAhead(isUnParenthesizedAsyncArrowFunctionWorker) === 1 /* True */) {
32923
32922
  const pos = getNodePos();
32924
32923
  const asyncModifier = parseModifiersForArrowFunction();
32925
32924
  const expr = parseBinaryExpressionOrHigher(0 /* Lowest */);
@@ -32932,14 +32931,14 @@ var Parser;
32932
32931
  if (token() === 132 /* AsyncKeyword */) {
32933
32932
  nextToken();
32934
32933
  if (scanner2.hasPrecedingLineBreak() || token() === 38 /* EqualsGreaterThanToken */) {
32935
- return Tristate.False;
32934
+ return 0 /* False */;
32936
32935
  }
32937
32936
  const expr = parseBinaryExpressionOrHigher(0 /* Lowest */);
32938
32937
  if (!scanner2.hasPrecedingLineBreak() && expr.kind === 79 /* Identifier */ && token() === 38 /* EqualsGreaterThanToken */) {
32939
- return Tristate.True;
32938
+ return 1 /* True */;
32940
32939
  }
32941
32940
  }
32942
- return Tristate.False;
32941
+ return 0 /* False */;
32943
32942
  }
32944
32943
  function parseParenthesizedArrowFunctionExpression(allowAmbiguity, allowReturnTypeInArrowFunction) {
32945
32944
  const pos = getNodePos();
@@ -33347,7 +33346,7 @@ var Parser;
33347
33346
  const list = [];
33348
33347
  const listPos = getNodePos();
33349
33348
  const saveParsingContext = parsingContext;
33350
- parsingContext |= 1 << ParsingContext.JsxChildren;
33349
+ parsingContext |= 1 << 14 /* JsxChildren */;
33351
33350
  while (true) {
33352
33351
  const child = parseJsxChild(openingTag, currentToken = scanner2.reScanJsxToken());
33353
33352
  if (!child)
@@ -33362,7 +33361,7 @@ var Parser;
33362
33361
  }
33363
33362
  function parseJsxAttributes() {
33364
33363
  const pos = getNodePos();
33365
- return finishNode(factory2.createJsxAttributes(parseList(ParsingContext.JsxAttributes, parseJsxAttribute)), pos);
33364
+ return finishNode(factory2.createJsxAttributes(parseList(13 /* JsxAttributes */, parseJsxAttribute)), pos);
33366
33365
  }
33367
33366
  function parseJsxOpeningOrSelfClosingElementOrOpeningFragment(inExpressionContext) {
33368
33367
  const pos = getNodePos();
@@ -33690,7 +33689,7 @@ var Parser;
33690
33689
  }
33691
33690
  function parseArgumentList() {
33692
33691
  parseExpected(20 /* OpenParenToken */);
33693
- const result = parseDelimitedList(ParsingContext.ArgumentExpressions, parseArgumentExpression);
33692
+ const result = parseDelimitedList(11 /* ArgumentExpressions */, parseArgumentExpression);
33694
33693
  parseExpected(21 /* CloseParenToken */);
33695
33694
  return result;
33696
33695
  }
@@ -33702,7 +33701,7 @@ var Parser;
33702
33701
  return void 0;
33703
33702
  }
33704
33703
  nextToken();
33705
- const typeArguments = parseDelimitedList(ParsingContext.TypeArguments, parseType);
33704
+ const typeArguments = parseDelimitedList(20 /* TypeArguments */, parseType);
33706
33705
  if (reScanGreaterToken() !== 31 /* GreaterThanToken */) {
33707
33706
  return void 0;
33708
33707
  }
@@ -33802,7 +33801,7 @@ var Parser;
33802
33801
  const openBracketPosition = scanner2.getTokenPos();
33803
33802
  const openBracketParsed = parseExpected(22 /* OpenBracketToken */);
33804
33803
  const multiLine = scanner2.hasPrecedingLineBreak();
33805
- const elements = parseDelimitedList(ParsingContext.ArrayLiteralMembers, parseArgumentOrArrayLiteralElement);
33804
+ const elements = parseDelimitedList(15 /* ArrayLiteralMembers */, parseArgumentOrArrayLiteralElement);
33806
33805
  parseExpectedMatchingBrackets(22 /* OpenBracketToken */, 23 /* CloseBracketToken */, openBracketParsed, openBracketPosition);
33807
33806
  return finishNode(factory2.createArrayLiteralExpression(elements, multiLine), pos);
33808
33807
  }
@@ -33863,7 +33862,7 @@ var Parser;
33863
33862
  const openBraceParsed = parseExpected(18 /* OpenBraceToken */);
33864
33863
  const multiLine = scanner2.hasPrecedingLineBreak();
33865
33864
  const properties = parseDelimitedList(
33866
- ParsingContext.ObjectLiteralMembers,
33865
+ 12 /* ObjectLiteralMembers */,
33867
33866
  parseObjectLiteralElement,
33868
33867
  /*considerSemicolonAsDelimiter*/
33869
33868
  true
@@ -33935,7 +33934,7 @@ var Parser;
33935
33934
  const openBraceParsed = parseExpected(18 /* OpenBraceToken */, diagnosticMessage);
33936
33935
  if (openBraceParsed || ignoreMissingOpenBrace) {
33937
33936
  const multiLine = scanner2.hasPrecedingLineBreak();
33938
- const statements = parseList(ParsingContext.BlockStatements, parseStatement);
33937
+ const statements = parseList(1 /* BlockStatements */, parseStatement);
33939
33938
  parseExpectedMatchingBrackets(18 /* OpenBraceToken */, 19 /* CloseBraceToken */, openBraceParsed, openBracePosition);
33940
33939
  const result = withJSDoc(finishNode(factory2.createBlock(statements, multiLine), pos), hasJSDoc);
33941
33940
  if (token() === 63 /* EqualsToken */) {
@@ -34093,14 +34092,14 @@ var Parser;
34093
34092
  parseExpected(82 /* CaseKeyword */);
34094
34093
  const expression = allowInAnd(parseExpression);
34095
34094
  parseExpected(58 /* ColonToken */);
34096
- const statements = parseList(ParsingContext.SwitchClauseStatements, parseStatement);
34095
+ const statements = parseList(3 /* SwitchClauseStatements */, parseStatement);
34097
34096
  return withJSDoc(finishNode(factory2.createCaseClause(expression, statements), pos), hasJSDoc);
34098
34097
  }
34099
34098
  function parseDefaultClause() {
34100
34099
  const pos = getNodePos();
34101
34100
  parseExpected(88 /* DefaultKeyword */);
34102
34101
  parseExpected(58 /* ColonToken */);
34103
- const statements = parseList(ParsingContext.SwitchClauseStatements, parseStatement);
34102
+ const statements = parseList(3 /* SwitchClauseStatements */, parseStatement);
34104
34103
  return finishNode(factory2.createDefaultClause(statements), pos);
34105
34104
  }
34106
34105
  function parseCaseOrDefaultClause() {
@@ -34109,7 +34108,7 @@ var Parser;
34109
34108
  function parseCaseBlock() {
34110
34109
  const pos = getNodePos();
34111
34110
  parseExpected(18 /* OpenBraceToken */);
34112
- const clauses = parseList(ParsingContext.SwitchClauses, parseCaseOrDefaultClause);
34111
+ const clauses = parseList(2 /* SwitchClauses */, parseCaseOrDefaultClause);
34113
34112
  parseExpected(19 /* CloseBraceToken */);
34114
34113
  return finishNode(factory2.createCaseBlock(clauses), pos);
34115
34114
  }
@@ -34550,14 +34549,14 @@ var Parser;
34550
34549
  function parseObjectBindingPattern() {
34551
34550
  const pos = getNodePos();
34552
34551
  parseExpected(18 /* OpenBraceToken */);
34553
- const elements = parseDelimitedList(ParsingContext.ObjectBindingElements, parseObjectBindingElement);
34552
+ const elements = parseDelimitedList(9 /* ObjectBindingElements */, parseObjectBindingElement);
34554
34553
  parseExpected(19 /* CloseBraceToken */);
34555
34554
  return finishNode(factory2.createObjectBindingPattern(elements), pos);
34556
34555
  }
34557
34556
  function parseArrayBindingPattern() {
34558
34557
  const pos = getNodePos();
34559
34558
  parseExpected(22 /* OpenBracketToken */);
34560
- const elements = parseDelimitedList(ParsingContext.ArrayBindingElements, parseArrayBindingElement);
34559
+ const elements = parseDelimitedList(10 /* ArrayBindingElements */, parseArrayBindingElement);
34561
34560
  parseExpected(23 /* CloseBracketToken */);
34562
34561
  return finishNode(factory2.createArrayBindingPattern(elements), pos);
34563
34562
  }
@@ -34615,7 +34614,7 @@ var Parser;
34615
34614
  const savedDisallowIn = inDisallowInContext();
34616
34615
  setDisallowInContext(inForStatementInitializer);
34617
34616
  declarations = parseDelimitedList(
34618
- ParsingContext.VariableDeclarations,
34617
+ 8 /* VariableDeclarations */,
34619
34618
  inForStatementInitializer ? parseVariableDeclaration : parseVariableDeclarationAllowExclamation
34620
34619
  );
34621
34620
  setDisallowInContext(savedDisallowIn);
@@ -35018,7 +35017,7 @@ var Parser;
35018
35017
  }
35019
35018
  function parseHeritageClauses() {
35020
35019
  if (isHeritageClause2()) {
35021
- return parseList(ParsingContext.HeritageClauses, parseHeritageClause);
35020
+ return parseList(22 /* HeritageClauses */, parseHeritageClause);
35022
35021
  }
35023
35022
  return void 0;
35024
35023
  }
@@ -35027,7 +35026,7 @@ var Parser;
35027
35026
  const tok = token();
35028
35027
  Debug.assert(tok === 94 /* ExtendsKeyword */ || tok === 117 /* ImplementsKeyword */);
35029
35028
  nextToken();
35030
- const types = parseDelimitedList(ParsingContext.HeritageClauseElement, parseExpressionWithTypeArguments);
35029
+ const types = parseDelimitedList(7 /* HeritageClauseElement */, parseExpressionWithTypeArguments);
35031
35030
  return finishNode(factory2.createHeritageClause(tok, types), pos);
35032
35031
  }
35033
35032
  function parseExpressionWithTypeArguments() {
@@ -35040,13 +35039,13 @@ var Parser;
35040
35039
  return finishNode(factory2.createExpressionWithTypeArguments(expression, typeArguments), pos);
35041
35040
  }
35042
35041
  function tryParseTypeArguments() {
35043
- return token() === 29 /* LessThanToken */ ? parseBracketedList(ParsingContext.TypeArguments, parseType, 29 /* LessThanToken */, 31 /* GreaterThanToken */) : void 0;
35042
+ return token() === 29 /* LessThanToken */ ? parseBracketedList(20 /* TypeArguments */, parseType, 29 /* LessThanToken */, 31 /* GreaterThanToken */) : void 0;
35044
35043
  }
35045
35044
  function isHeritageClause2() {
35046
35045
  return token() === 94 /* ExtendsKeyword */ || token() === 117 /* ImplementsKeyword */;
35047
35046
  }
35048
35047
  function parseClassMembers() {
35049
- return parseList(ParsingContext.ClassMembers, parseClassElement);
35048
+ return parseList(5 /* ClassMembers */, parseClassElement);
35050
35049
  }
35051
35050
  function parseInterfaceDeclaration(pos, hasJSDoc, modifiers) {
35052
35051
  parseExpected(118 /* InterfaceKeyword */);
@@ -35079,7 +35078,7 @@ var Parser;
35079
35078
  const name = parseIdentifier();
35080
35079
  let members;
35081
35080
  if (parseExpected(18 /* OpenBraceToken */)) {
35082
- members = doOutsideOfYieldAndAwaitContext(() => parseDelimitedList(ParsingContext.EnumMembers, parseEnumMember));
35081
+ members = doOutsideOfYieldAndAwaitContext(() => parseDelimitedList(6 /* EnumMembers */, parseEnumMember));
35083
35082
  parseExpected(19 /* CloseBraceToken */);
35084
35083
  } else {
35085
35084
  members = createMissingList();
@@ -35091,7 +35090,7 @@ var Parser;
35091
35090
  const pos = getNodePos();
35092
35091
  let statements;
35093
35092
  if (parseExpected(18 /* OpenBraceToken */)) {
35094
- statements = parseList(ParsingContext.BlockStatements, parseStatement);
35093
+ statements = parseList(1 /* BlockStatements */, parseStatement);
35095
35094
  parseExpected(19 /* CloseBraceToken */);
35096
35095
  } else {
35097
35096
  statements = createMissingList();
@@ -35216,7 +35215,7 @@ var Parser;
35216
35215
  if (parseExpected(18 /* OpenBraceToken */)) {
35217
35216
  const multiLine = scanner2.hasPrecedingLineBreak();
35218
35217
  const elements = parseDelimitedList(
35219
- ParsingContext.AssertEntries,
35218
+ 24 /* AssertEntries */,
35220
35219
  parseAssertEntry,
35221
35220
  /*considerSemicolonAsDelimiter*/
35222
35221
  true
@@ -35300,7 +35299,7 @@ var Parser;
35300
35299
  }
35301
35300
  function parseNamedImportsOrExports(kind) {
35302
35301
  const pos = getNodePos();
35303
- const node = kind === 272 /* NamedImports */ ? factory2.createNamedImports(parseBracketedList(ParsingContext.ImportOrExportSpecifiers, parseImportSpecifier, 18 /* OpenBraceToken */, 19 /* CloseBraceToken */)) : factory2.createNamedExports(parseBracketedList(ParsingContext.ImportOrExportSpecifiers, parseExportSpecifier, 18 /* OpenBraceToken */, 19 /* CloseBraceToken */));
35302
+ const node = kind === 272 /* NamedImports */ ? factory2.createNamedImports(parseBracketedList(23 /* ImportOrExportSpecifiers */, parseImportSpecifier, 18 /* OpenBraceToken */, 19 /* CloseBraceToken */)) : factory2.createNamedExports(parseBracketedList(23 /* ImportOrExportSpecifiers */, parseExportSpecifier, 18 /* OpenBraceToken */, 19 /* CloseBraceToken */));
35304
35303
  return finishNode(node, pos);
35305
35304
  }
35306
35305
  function parseExportSpecifier() {
@@ -36750,7 +36749,7 @@ var IncrementalParser;
36750
36749
  let currentArrayIndex = 0;
36751
36750
  Debug.assert(currentArrayIndex < currentArray.length);
36752
36751
  let current = currentArray[currentArrayIndex];
36753
- let lastQueriedPosition = InvalidPosition.Value;
36752
+ let lastQueriedPosition = -1 /* Value */;
36754
36753
  return {
36755
36754
  currentNode(position) {
36756
36755
  if (position !== lastQueriedPosition) {
@@ -36769,7 +36768,7 @@ var IncrementalParser;
36769
36768
  };
36770
36769
  function findHighestListElementThatStartsAtPosition(position) {
36771
36770
  currentArray = void 0;
36772
- currentArrayIndex = InvalidPosition.Value;
36771
+ currentArrayIndex = -1 /* Value */;
36773
36772
  current = void 0;
36774
36773
  forEachChild(sourceFile, visitNode3, visitArray2);
36775
36774
  return;
@@ -40566,9 +40565,9 @@ function resolveTypeReferenceDirective(typeReferenceDirectiveName, containingFil
40566
40565
  const affectingLocations = [];
40567
40566
  let features = getNodeResolutionFeatures(options);
40568
40567
  if (resolutionMode === 99 /* ESNext */ && (getEmitModuleResolutionKind(options) === 3 /* Node16 */ || getEmitModuleResolutionKind(options) === 99 /* NodeNext */)) {
40569
- features |= NodeResolutionFeatures.EsmMode;
40568
+ features |= 32 /* EsmMode */;
40570
40569
  }
40571
- const conditions = features & NodeResolutionFeatures.Exports ? getConditions(options, !!(features & NodeResolutionFeatures.EsmMode)) : [];
40570
+ const conditions = features & 8 /* Exports */ ? getConditions(options, !!(features & 32 /* EsmMode */)) : [];
40572
40571
  const diagnostics = [];
40573
40572
  const moduleResolutionState = {
40574
40573
  compilerOptions: options,
@@ -40701,27 +40700,27 @@ function resolveTypeReferenceDirective(typeReferenceDirectiveName, containingFil
40701
40700
  }
40702
40701
  }
40703
40702
  function getNodeResolutionFeatures(options) {
40704
- let features = NodeResolutionFeatures.None;
40703
+ let features = 0 /* None */;
40705
40704
  switch (getEmitModuleResolutionKind(options)) {
40706
40705
  case 3 /* Node16 */:
40707
- features = NodeResolutionFeatures.Node16Default;
40706
+ features = 30 /* Node16Default */;
40708
40707
  break;
40709
40708
  case 99 /* NodeNext */:
40710
- features = NodeResolutionFeatures.NodeNextDefault;
40709
+ features = 30 /* NodeNextDefault */;
40711
40710
  break;
40712
40711
  case 100 /* Bundler */:
40713
- features = NodeResolutionFeatures.BundlerDefault;
40712
+ features = 30 /* BundlerDefault */;
40714
40713
  break;
40715
40714
  }
40716
40715
  if (options.resolvePackageJsonExports) {
40717
- features |= NodeResolutionFeatures.Exports;
40716
+ features |= 8 /* Exports */;
40718
40717
  } else if (options.resolvePackageJsonExports === false) {
40719
- features &= ~NodeResolutionFeatures.Exports;
40718
+ features &= ~8 /* Exports */;
40720
40719
  }
40721
40720
  if (options.resolvePackageJsonImports) {
40722
- features |= NodeResolutionFeatures.Imports;
40721
+ features |= 2 /* Imports */;
40723
40722
  } else if (options.resolvePackageJsonImports === false) {
40724
- features &= ~NodeResolutionFeatures.Imports;
40723
+ features &= ~2 /* Imports */;
40725
40724
  }
40726
40725
  return features;
40727
40726
  }
@@ -42297,18 +42296,24 @@ function getLoadModuleFromTargetImportOrExport(extensions, state, cache, redirec
42297
42296
  )));
42298
42297
  } else if (typeof target === "object" && target !== null) {
42299
42298
  if (!Array.isArray(target)) {
42299
+ traceIfEnabled(state, Diagnostics.Entering_conditional_exports);
42300
42300
  for (const condition of getOwnKeys(target)) {
42301
42301
  if (condition === "default" || state.conditions.indexOf(condition) >= 0 || isApplicableVersionedTypesKey(state.conditions, condition)) {
42302
42302
  traceIfEnabled(state, Diagnostics.Matched_0_condition_1, isImports ? "imports" : "exports", condition);
42303
42303
  const subTarget = target[condition];
42304
42304
  const result = loadModuleFromTargetImportOrExport(subTarget, subpath, pattern, key);
42305
42305
  if (result) {
42306
+ traceIfEnabled(state, Diagnostics.Resolved_under_condition_0, condition);
42307
+ traceIfEnabled(state, Diagnostics.Exiting_conditional_exports);
42306
42308
  return result;
42309
+ } else {
42310
+ traceIfEnabled(state, Diagnostics.Failed_to_resolve_under_condition_0, condition);
42307
42311
  }
42308
42312
  } else {
42309
42313
  traceIfEnabled(state, Diagnostics.Saw_non_matching_condition_0, condition);
42310
42314
  }
42311
42315
  }
42316
+ traceIfEnabled(state, Diagnostics.Exiting_conditional_exports);
42312
42317
  return void 0;
42313
42318
  } else {
42314
42319
  if (!length(target)) {
@@ -45992,7 +45997,7 @@ function computeModuleSpecifiers(modulePaths, compilerOptions, importingSourceFi
45992
45997
  let redirectPathsSpecifiers;
45993
45998
  let relativeSpecifiers;
45994
45999
  for (const modulePath of modulePaths) {
45995
- const specifier = tryGetModuleNameAsNodeModule(
46000
+ const specifier = modulePath.isInNodeModules ? tryGetModuleNameAsNodeModule(
45996
46001
  modulePath,
45997
46002
  info,
45998
46003
  importingSourceFile,
@@ -46002,7 +46007,7 @@ function computeModuleSpecifiers(modulePaths, compilerOptions, importingSourceFi
46002
46007
  /*packageNameOnly*/
46003
46008
  void 0,
46004
46009
  options.overrideImportMode
46005
- );
46010
+ ) : void 0;
46006
46011
  nodeModulesSpecifiers = append(nodeModulesSpecifiers, specifier);
46007
46012
  if (specifier && modulePath.isRedirect) {
46008
46013
  return nodeModulesSpecifiers;
@@ -52079,7 +52084,7 @@ function createTypeChecker(host) {
52079
52084
  if (signature.thisParameter) {
52080
52085
  return symbolToParameterDeclaration(signature.thisParameter, context);
52081
52086
  }
52082
- if (signature.declaration) {
52087
+ if (signature.declaration && isInJSFile(signature.declaration)) {
52083
52088
  const thisTag = getJSDocThisTag(signature.declaration);
52084
52089
  if (thisTag && thisTag.typeExpression) {
52085
52090
  return factory.createParameterDeclaration(
@@ -55060,7 +55065,7 @@ function createTypeChecker(host) {
55060
55065
  function getWidenedTypeForAssignmentDeclaration(symbol, resolvedSymbol) {
55061
55066
  const container = getAssignedExpandoInitializer(symbol.valueDeclaration);
55062
55067
  if (container) {
55063
- const tag = getJSDocTypeTag(container);
55068
+ const tag = isInJSFile(container) ? getJSDocTypeTag(container) : void 0;
55064
55069
  if (tag && tag.typeExpression) {
55065
55070
  return getTypeFromTypeNode(tag.typeExpression);
55066
55071
  }
@@ -65907,7 +65912,17 @@ function createTypeChecker(host) {
65907
65912
  return propType;
65908
65913
  }
65909
65914
  if (everyType(type, isTupleType)) {
65910
- return mapType(type, (t) => getRestTypeOfTupleType(t) || undefinedType);
65915
+ return mapType(type, (t) => {
65916
+ const tupleType = t;
65917
+ const restType = getRestTypeOfTupleType(tupleType);
65918
+ if (!restType) {
65919
+ return undefinedType;
65920
+ }
65921
+ if (compilerOptions.noUncheckedIndexedAccess && index >= tupleType.target.fixedLength + getEndElementCount(tupleType.target, 3 /* Fixed */)) {
65922
+ return getUnionType([restType, undefinedType]);
65923
+ }
65924
+ return restType;
65925
+ });
65911
65926
  }
65912
65927
  return void 0;
65913
65928
  }
@@ -68549,7 +68564,7 @@ function createTypeChecker(host) {
68549
68564
  }
68550
68565
  return declaredType;
68551
68566
  }
68552
- if (isVariableDeclaration(node) && node.parent.parent.kind === 246 /* ForInStatement */ && isMatchingReference(reference, node.parent.parent.expression)) {
68567
+ if (isVariableDeclaration(node) && node.parent.parent.kind === 246 /* ForInStatement */ && (isMatchingReference(reference, node.parent.parent.expression) || optionalChainContainsReference(node.parent.parent.expression, reference))) {
68553
68568
  return getNonNullableTypeIfNeeded(finalizeEvolvingArrayType(getTypeFromFlowType(getTypeAtFlowNode(flow.antecedent))));
68554
68569
  }
68555
68570
  return void 0;
@@ -69235,34 +69250,29 @@ function createTypeChecker(host) {
69235
69250
  if (!isTypeDerivedFrom(rightType, globalFunctionType)) {
69236
69251
  return type;
69237
69252
  }
69238
- let targetType;
69239
- const prototypeProperty = getPropertyOfType(rightType, "prototype");
69240
- if (prototypeProperty) {
69241
- const prototypePropertyType = getTypeOfSymbol(prototypeProperty);
69242
- if (!isTypeAny(prototypePropertyType)) {
69243
- targetType = prototypePropertyType;
69244
- }
69245
- }
69246
- if (isTypeAny(type) && (targetType === globalObjectType || targetType === globalFunctionType)) {
69253
+ const instanceType = mapType(rightType, getInstanceType);
69254
+ if (isTypeAny(type) && (instanceType === globalObjectType || instanceType === globalFunctionType) || !assumeTrue && !(instanceType.flags & 524288 /* Object */ && !isEmptyAnonymousObjectType(instanceType))) {
69247
69255
  return type;
69248
69256
  }
69249
- if (!targetType) {
69250
- const constructSignatures = getSignaturesOfType(rightType, 1 /* Construct */);
69251
- targetType = constructSignatures.length ? getUnionType(map(constructSignatures, (signature) => getReturnTypeOfSignature(getErasedSignature(signature)))) : emptyObjectType;
69252
- }
69253
- if (!assumeTrue && rightType.flags & 1048576 /* Union */) {
69254
- const nonConstructorTypeInUnion = find(rightType.types, (t) => !isConstructorType(t));
69255
- if (!nonConstructorTypeInUnion)
69256
- return type;
69257
- }
69258
69257
  return getNarrowedType(
69259
69258
  type,
69260
- targetType,
69259
+ instanceType,
69261
69260
  assumeTrue,
69262
69261
  /*checkDerived*/
69263
69262
  true
69264
69263
  );
69265
69264
  }
69265
+ function getInstanceType(constructorType) {
69266
+ const prototypePropertyType = getTypeOfPropertyOfType(constructorType, "prototype");
69267
+ if (prototypePropertyType && !isTypeAny(prototypePropertyType)) {
69268
+ return prototypePropertyType;
69269
+ }
69270
+ const constructSignatures = getSignaturesOfType(constructorType, 1 /* Construct */);
69271
+ if (constructSignatures.length) {
69272
+ return getUnionType(map(constructSignatures, (signature) => getReturnTypeOfSignature(getErasedSignature(signature))));
69273
+ }
69274
+ return emptyObjectType;
69275
+ }
69266
69276
  function getNarrowedType(type, candidate, assumeTrue, checkDerived) {
69267
69277
  var _a3;
69268
69278
  const key2 = type.flags & 1048576 /* Union */ ? `N${getTypeId(type)},${getTypeId(candidate)},${(assumeTrue ? 1 : 0) | (checkDerived ? 2 : 0)}` : void 0;
@@ -105155,6 +105165,9 @@ function transformModule(context) {
105155
105165
  return visitEachChild(node, visitor, context);
105156
105166
  }
105157
105167
  function visitImportCallExpression(node) {
105168
+ if (moduleKind === 0 /* None */ && languageVersion >= 7 /* ES2020 */) {
105169
+ return visitEachChild(node, visitor, context);
105170
+ }
105158
105171
  const externalModuleName = getExternalModuleNameLiteral(factory2, node, currentSourceFile, host, resolver, compilerOptions);
105159
105172
  const firstArgument = visitNode(firstOrUndefined(node.arguments), visitor, isExpression);
105160
105173
  const argument = externalModuleName && (!firstArgument || !isStringLiteral(firstArgument) || firstArgument.text !== externalModuleName.text) ? externalModuleName : firstArgument;
@@ -111459,9 +111472,9 @@ function createPrinter(printerOptions = {}, handlers = {}) {
111459
111472
  formattedNameTempFlagsStack = [];
111460
111473
  formattedNameTempFlags = /* @__PURE__ */ new Map();
111461
111474
  privateNameTempFlagsStack = [];
111462
- privateNameTempFlags = TempFlags.Auto;
111475
+ privateNameTempFlags = 0 /* Auto */;
111463
111476
  tempFlagsStack = [];
111464
- tempFlags = TempFlags.Auto;
111477
+ tempFlags = 0 /* Auto */;
111465
111478
  reservedNamesStack = [];
111466
111479
  reservedNames = void 0;
111467
111480
  reservedPrivateNamesStack = [];
@@ -112430,7 +112443,7 @@ function createPrinter(printerOptions = {}, handlers = {}) {
112430
112443
  }
112431
112444
  function emitTypeLiteral(node) {
112432
112445
  pushPrivateNameGenerationScope(
112433
- TempFlags.Auto,
112446
+ 0 /* Auto */,
112434
112447
  /*newReservedMemberNames*/
112435
112448
  void 0
112436
112449
  );
@@ -112619,7 +112632,7 @@ function createPrinter(printerOptions = {}, handlers = {}) {
112619
112632
  }
112620
112633
  function emitObjectLiteralExpression(node) {
112621
112634
  pushPrivateNameGenerationScope(
112622
- TempFlags.Auto,
112635
+ 0 /* Auto */,
112623
112636
  /*newReservedMemberNames*/
112624
112637
  void 0
112625
112638
  );
@@ -113385,7 +113398,7 @@ function createPrinter(printerOptions = {}, handlers = {}) {
113385
113398
  }
113386
113399
  function emitClassDeclarationOrExpression(node) {
113387
113400
  pushPrivateNameGenerationScope(
113388
- TempFlags.Auto,
113401
+ 0 /* Auto */,
113389
113402
  /*newReservedMemberNames*/
113390
113403
  void 0
113391
113404
  );
@@ -113418,7 +113431,7 @@ function createPrinter(printerOptions = {}, handlers = {}) {
113418
113431
  }
113419
113432
  function emitInterfaceDeclaration(node) {
113420
113433
  pushPrivateNameGenerationScope(
113421
- TempFlags.Auto,
113434
+ 0 /* Auto */,
113422
113435
  /*newReservedMemberNames*/
113423
113436
  void 0
113424
113437
  );
@@ -114861,7 +114874,7 @@ function createPrinter(printerOptions = {}, handlers = {}) {
114861
114874
  return;
114862
114875
  }
114863
114876
  tempFlagsStack.push(tempFlags);
114864
- tempFlags = TempFlags.Auto;
114877
+ tempFlags = 0 /* Auto */;
114865
114878
  formattedNameTempFlagsStack.push(formattedNameTempFlags);
114866
114879
  formattedNameTempFlags = void 0;
114867
114880
  reservedNamesStack.push(reservedNames);
@@ -115047,7 +115060,7 @@ function createPrinter(printerOptions = {}, handlers = {}) {
115047
115060
  case "#":
115048
115061
  return privateNameTempFlags;
115049
115062
  default:
115050
- return (_a2 = formattedNameTempFlags == null ? void 0 : formattedNameTempFlags.get(formattedNameKey)) != null ? _a2 : TempFlags.Auto;
115063
+ return (_a2 = formattedNameTempFlags == null ? void 0 : formattedNameTempFlags.get(formattedNameKey)) != null ? _a2 : 0 /* Auto */;
115051
115064
  }
115052
115065
  }
115053
115066
  function setTempFlags(formattedNameKey, flags) {
@@ -115071,7 +115084,7 @@ function createPrinter(printerOptions = {}, handlers = {}) {
115071
115084
  const key = formatGeneratedName(privateName, prefix, "", suffix);
115072
115085
  let tempFlags2 = getTempFlags(key);
115073
115086
  if (flags && !(tempFlags2 & flags)) {
115074
- const name = flags === TempFlags._i ? "_i" : "_n";
115087
+ const name = flags === 268435456 /* _i */ ? "_i" : "_n";
115075
115088
  const fullName = formatGeneratedName(privateName, prefix, name, suffix);
115076
115089
  if (isUniqueName(fullName, privateName)) {
115077
115090
  tempFlags2 |= flags;
@@ -115085,7 +115098,7 @@ function createPrinter(printerOptions = {}, handlers = {}) {
115085
115098
  }
115086
115099
  }
115087
115100
  while (true) {
115088
- const count = tempFlags2 & TempFlags.CountMask;
115101
+ const count = tempFlags2 & 268435455 /* CountMask */;
115089
115102
  tempFlags2++;
115090
115103
  if (count !== 8 && count !== 13) {
115091
115104
  const name = count < 26 ? "_" + String.fromCharCode(97 /* a */ + count) : "_" + (count - 26);
@@ -115229,7 +115242,7 @@ function createPrinter(printerOptions = {}, handlers = {}) {
115229
115242
  return generateNameCached(node.name, privateName);
115230
115243
  }
115231
115244
  return makeTempVariableName(
115232
- TempFlags.Auto,
115245
+ 0 /* Auto */,
115233
115246
  /*reservedInNestedScopes*/
115234
115247
  false,
115235
115248
  privateName,
@@ -115286,7 +115299,7 @@ function createPrinter(printerOptions = {}, handlers = {}) {
115286
115299
  return generateNameForMethodOrAccessor(node, privateName, prefix, suffix);
115287
115300
  case 164 /* ComputedPropertyName */:
115288
115301
  return makeTempVariableName(
115289
- TempFlags.Auto,
115302
+ 0 /* Auto */,
115290
115303
  /*reserveInNestedScopes*/
115291
115304
  true,
115292
115305
  privateName,
@@ -115295,7 +115308,7 @@ function createPrinter(printerOptions = {}, handlers = {}) {
115295
115308
  );
115296
115309
  default:
115297
115310
  return makeTempVariableName(
115298
- TempFlags.Auto,
115311
+ 0 /* Auto */,
115299
115312
  /*reserveInNestedScopes*/
115300
115313
  false,
115301
115314
  privateName,
@@ -115310,11 +115323,11 @@ function createPrinter(printerOptions = {}, handlers = {}) {
115310
115323
  const suffix = formatGeneratedNamePart(autoGenerate.suffix);
115311
115324
  switch (autoGenerate.flags & 7 /* KindMask */) {
115312
115325
  case 1 /* Auto */:
115313
- return makeTempVariableName(TempFlags.Auto, !!(autoGenerate.flags & 8 /* ReservedInNestedScopes */), isPrivateIdentifier(name), prefix, suffix);
115326
+ return makeTempVariableName(0 /* Auto */, !!(autoGenerate.flags & 8 /* ReservedInNestedScopes */), isPrivateIdentifier(name), prefix, suffix);
115314
115327
  case 2 /* Loop */:
115315
115328
  Debug.assertNode(name, isIdentifier);
115316
115329
  return makeTempVariableName(
115317
- TempFlags._i,
115330
+ 268435456 /* _i */,
115318
115331
  !!(autoGenerate.flags & 8 /* ReservedInNestedScopes */),
115319
115332
  /*privateName*/
115320
115333
  false,
@@ -115784,12 +115797,6 @@ function getOpeningBracket(format) {
115784
115797
  function getClosingBracket(format) {
115785
115798
  return brackets[format & 15360 /* BracketsMask */][1];
115786
115799
  }
115787
- var TempFlags = /* @__PURE__ */ ((TempFlags2) => {
115788
- TempFlags2[TempFlags2["Auto"] = 0] = "Auto";
115789
- TempFlags2[TempFlags2["CountMask"] = 268435455] = "CountMask";
115790
- TempFlags2[TempFlags2["_i"] = 268435456] = "_i";
115791
- return TempFlags2;
115792
- })(TempFlags || {});
115793
115800
  function emitListItemNoParenthesizer(node, emit, _parenthesizerRule, _index) {
115794
115801
  emit(node);
115795
115802
  }
@@ -116767,14 +116774,14 @@ var moduleResolutionNameAndModeGetter = {
116767
116774
  function createModuleResolutionLoader(containingFile, redirectedReference, options, host, cache) {
116768
116775
  return {
116769
116776
  nameAndMode: moduleResolutionNameAndModeGetter,
116770
- resolve: (moduleName, resoluionMode) => resolveModuleName(
116777
+ resolve: (moduleName, resolutionMode) => resolveModuleName(
116771
116778
  moduleName,
116772
116779
  containingFile,
116773
116780
  options,
116774
116781
  host,
116775
116782
  cache,
116776
116783
  redirectedReference,
116777
- resoluionMode
116784
+ resolutionMode
116778
116785
  )
116779
116786
  };
116780
116787
  }
@@ -128297,7 +128304,7 @@ function makeImport(defaultImport, namedImports, moduleSpecifier, quotePreferenc
128297
128304
  );
128298
128305
  }
128299
128306
  function makeStringLiteral(text, quotePreference) {
128300
- return factory.createStringLiteral(text, quotePreference === QuotePreference.Single);
128307
+ return factory.createStringLiteral(text, quotePreference === 0 /* Single */);
128301
128308
  }
128302
128309
  var QuotePreference = /* @__PURE__ */ ((QuotePreference5) => {
128303
128310
  QuotePreference5[QuotePreference5["Single"] = 0] = "Single";
@@ -129213,7 +129220,13 @@ function createPackageJsonInfo(fileName, host) {
129213
129220
  function createPackageJsonImportFilter(fromFile, preferences, host) {
129214
129221
  const packageJsons = (host.getPackageJsonsVisibleToFile && host.getPackageJsonsVisibleToFile(fromFile.fileName) || getPackageJsonsVisibleToFile(fromFile.fileName, host)).filter((p) => p.parseable);
129215
129222
  let usesNodeCoreModules;
129216
- return { allowsImportingAmbientModule, allowsImportingSourceFile, allowsImportingSpecifier };
129223
+ let ambientModuleCache;
129224
+ let sourceFileCache;
129225
+ return {
129226
+ allowsImportingAmbientModule,
129227
+ allowsImportingSourceFile,
129228
+ allowsImportingSpecifier
129229
+ };
129217
129230
  function moduleSpecifierIsCoveredByPackageJson(specifier) {
129218
129231
  const packageName = getNodeModuleRootSpecifier(specifier);
129219
129232
  for (const packageJson of packageJsons) {
@@ -129227,26 +129240,49 @@ function createPackageJsonImportFilter(fromFile, preferences, host) {
129227
129240
  if (!packageJsons.length || !moduleSymbol.valueDeclaration) {
129228
129241
  return true;
129229
129242
  }
129230
- const declaringSourceFile = moduleSymbol.valueDeclaration.getSourceFile();
129231
- const declaringNodeModuleName = getNodeModulesPackageNameFromFileName(declaringSourceFile.fileName, moduleSpecifierResolutionHost);
129232
- if (typeof declaringNodeModuleName === "undefined") {
129233
- return true;
129243
+ if (!ambientModuleCache) {
129244
+ ambientModuleCache = /* @__PURE__ */ new Map();
129245
+ } else {
129246
+ const cached = ambientModuleCache.get(moduleSymbol);
129247
+ if (cached !== void 0) {
129248
+ return cached;
129249
+ }
129234
129250
  }
129235
129251
  const declaredModuleSpecifier = stripQuotes(moduleSymbol.getName());
129236
129252
  if (isAllowedCoreNodeModulesImport(declaredModuleSpecifier)) {
129253
+ ambientModuleCache.set(moduleSymbol, true);
129254
+ return true;
129255
+ }
129256
+ const declaringSourceFile = moduleSymbol.valueDeclaration.getSourceFile();
129257
+ const declaringNodeModuleName = getNodeModulesPackageNameFromFileName(declaringSourceFile.fileName, moduleSpecifierResolutionHost);
129258
+ if (typeof declaringNodeModuleName === "undefined") {
129259
+ ambientModuleCache.set(moduleSymbol, true);
129237
129260
  return true;
129238
129261
  }
129239
- return moduleSpecifierIsCoveredByPackageJson(declaringNodeModuleName) || moduleSpecifierIsCoveredByPackageJson(declaredModuleSpecifier);
129262
+ const result = moduleSpecifierIsCoveredByPackageJson(declaringNodeModuleName) || moduleSpecifierIsCoveredByPackageJson(declaredModuleSpecifier);
129263
+ ambientModuleCache.set(moduleSymbol, result);
129264
+ return result;
129240
129265
  }
129241
129266
  function allowsImportingSourceFile(sourceFile, moduleSpecifierResolutionHost) {
129242
129267
  if (!packageJsons.length) {
129243
129268
  return true;
129244
129269
  }
129270
+ if (!sourceFileCache) {
129271
+ sourceFileCache = /* @__PURE__ */ new Map();
129272
+ } else {
129273
+ const cached = sourceFileCache.get(sourceFile);
129274
+ if (cached !== void 0) {
129275
+ return cached;
129276
+ }
129277
+ }
129245
129278
  const moduleSpecifier = getNodeModulesPackageNameFromFileName(sourceFile.fileName, moduleSpecifierResolutionHost);
129246
129279
  if (!moduleSpecifier) {
129280
+ sourceFileCache.set(sourceFile, true);
129247
129281
  return true;
129248
129282
  }
129249
- return moduleSpecifierIsCoveredByPackageJson(moduleSpecifier);
129283
+ const result = moduleSpecifierIsCoveredByPackageJson(moduleSpecifier);
129284
+ sourceFileCache.set(sourceFile, result);
129285
+ return result;
129250
129286
  }
129251
129287
  function allowsImportingSpecifier(moduleSpecifier) {
129252
129288
  if (!packageJsons.length || isAllowedCoreNodeModulesImport(moduleSpecifier)) {
@@ -129466,6 +129502,64 @@ function jsxModeNeedsExplicitImport(jsx) {
129466
129502
  function isSourceFileFromLibrary(program, node) {
129467
129503
  return program.isSourceFileFromExternalLibrary(node) || program.isSourceFileDefaultLibrary(node);
129468
129504
  }
129505
+ function newCaseClauseTracker(checker, clauses) {
129506
+ const existingStrings = /* @__PURE__ */ new Set();
129507
+ const existingNumbers = /* @__PURE__ */ new Set();
129508
+ const existingBigInts = /* @__PURE__ */ new Set();
129509
+ for (const clause of clauses) {
129510
+ if (!isDefaultClause(clause)) {
129511
+ if (isLiteralExpression(clause.expression)) {
129512
+ const expression = clause.expression;
129513
+ switch (expression.kind) {
129514
+ case 14 /* NoSubstitutionTemplateLiteral */:
129515
+ case 10 /* StringLiteral */:
129516
+ existingStrings.add(expression.text);
129517
+ break;
129518
+ case 8 /* NumericLiteral */:
129519
+ existingNumbers.add(parseInt(expression.text));
129520
+ break;
129521
+ case 9 /* BigIntLiteral */:
129522
+ const parsedBigInt = parseBigInt(endsWith(expression.text, "n") ? expression.text.slice(0, -1) : expression.text);
129523
+ if (parsedBigInt) {
129524
+ existingBigInts.add(pseudoBigIntToString(parsedBigInt));
129525
+ }
129526
+ break;
129527
+ }
129528
+ } else {
129529
+ const symbol = checker.getSymbolAtLocation(clause.expression);
129530
+ if (symbol && symbol.valueDeclaration && isEnumMember(symbol.valueDeclaration)) {
129531
+ const enumValue = checker.getConstantValue(symbol.valueDeclaration);
129532
+ if (enumValue !== void 0) {
129533
+ addValue(enumValue);
129534
+ }
129535
+ }
129536
+ }
129537
+ }
129538
+ }
129539
+ return {
129540
+ addValue,
129541
+ hasValue
129542
+ };
129543
+ function addValue(value) {
129544
+ switch (typeof value) {
129545
+ case "string":
129546
+ existingStrings.add(value);
129547
+ break;
129548
+ case "number":
129549
+ existingNumbers.add(value);
129550
+ }
129551
+ }
129552
+ function hasValue(value) {
129553
+ switch (typeof value) {
129554
+ case "string":
129555
+ return existingStrings.has(value);
129556
+ case "number":
129557
+ return existingNumbers.has(value);
129558
+ case "object":
129559
+ return existingBigInts.has(pseudoBigIntToString(value));
129560
+ }
129561
+ }
129562
+ }
129469
129563
 
129470
129564
  // src/services/exportInfoMap.ts
129471
129565
  var ImportKind = /* @__PURE__ */ ((ImportKind2) => {
@@ -140714,13 +140808,13 @@ function createImportAdderWorker(sourceFile, program, useAutoImportProvider, pre
140714
140808
  var _a2, _b;
140715
140809
  const { fix, symbolName: symbolName2 } = info;
140716
140810
  switch (fix.kind) {
140717
- case ImportFixKind.UseNamespace:
140811
+ case 0 /* UseNamespace */:
140718
140812
  addToNamespace.push(fix);
140719
140813
  break;
140720
- case ImportFixKind.JsdocTypeImport:
140814
+ case 1 /* JsdocTypeImport */:
140721
140815
  importType.push(fix);
140722
140816
  break;
140723
- case ImportFixKind.AddToExisting: {
140817
+ case 2 /* AddToExisting */: {
140724
140818
  const { importClauseOrBindingPattern, importKind, addAsTypeOnly } = fix;
140725
140819
  const key = String(getNodeId(importClauseOrBindingPattern));
140726
140820
  let entry = addToExisting.get(key);
@@ -140739,7 +140833,7 @@ function createImportAdderWorker(sourceFile, program, useAutoImportProvider, pre
140739
140833
  }
140740
140834
  break;
140741
140835
  }
140742
- case ImportFixKind.AddNew: {
140836
+ case 3 /* AddNew */: {
140743
140837
  const { moduleSpecifier, importKind, useRequire, addAsTypeOnly } = fix;
140744
140838
  const entry = getNewImportEntry(moduleSpecifier, importKind, useRequire, addAsTypeOnly);
140745
140839
  Debug.assert(entry.useRequire === useRequire, "(Add new) Tried to add an `import` and a `require` for the same module");
@@ -140760,7 +140854,7 @@ function createImportAdderWorker(sourceFile, program, useAutoImportProvider, pre
140760
140854
  }
140761
140855
  break;
140762
140856
  }
140763
- case ImportFixKind.PromoteTypeOnly:
140857
+ case 4 /* PromoteTypeOnly */:
140764
140858
  break;
140765
140859
  default:
140766
140860
  Debug.assertNever(fix, `fix wasn't never - got kind ${fix.kind}`);
@@ -140787,13 +140881,13 @@ function createImportAdderWorker(sourceFile, program, useAutoImportProvider, pre
140787
140881
  namespaceLikeImport: void 0,
140788
140882
  useRequire
140789
140883
  };
140790
- if (importKind === 1 /* Default */ && addAsTypeOnly === AddAsTypeOnly.Required) {
140884
+ if (importKind === 1 /* Default */ && addAsTypeOnly === 2 /* Required */) {
140791
140885
  if (typeOnlyEntry)
140792
140886
  return typeOnlyEntry;
140793
140887
  newImports.set(typeOnlyKey, newEntry);
140794
140888
  return newEntry;
140795
140889
  }
140796
- if (addAsTypeOnly === AddAsTypeOnly.Allowed && (typeOnlyEntry || nonTypeOnlyEntry)) {
140890
+ if (addAsTypeOnly === 1 /* Allowed */ && (typeOnlyEntry || nonTypeOnlyEntry)) {
140797
140891
  return typeOnlyEntry || nonTypeOnlyEntry;
140798
140892
  }
140799
140893
  if (nonTypeOnlyEntry) {
@@ -140875,20 +140969,6 @@ function createImportSpecifierResolver(importingFile, program, host, preferences
140875
140969
  return result && { ...result, computedWithoutCacheCount };
140876
140970
  }
140877
140971
  }
140878
- var ImportFixKind = /* @__PURE__ */ ((ImportFixKind2) => {
140879
- ImportFixKind2[ImportFixKind2["UseNamespace"] = 0] = "UseNamespace";
140880
- ImportFixKind2[ImportFixKind2["JsdocTypeImport"] = 1] = "JsdocTypeImport";
140881
- ImportFixKind2[ImportFixKind2["AddToExisting"] = 2] = "AddToExisting";
140882
- ImportFixKind2[ImportFixKind2["AddNew"] = 3] = "AddNew";
140883
- ImportFixKind2[ImportFixKind2["PromoteTypeOnly"] = 4] = "PromoteTypeOnly";
140884
- return ImportFixKind2;
140885
- })(ImportFixKind || {});
140886
- var AddAsTypeOnly = /* @__PURE__ */ ((AddAsTypeOnly2) => {
140887
- AddAsTypeOnly2[AddAsTypeOnly2["Allowed"] = 1] = "Allowed";
140888
- AddAsTypeOnly2[AddAsTypeOnly2["Required"] = 2] = "Required";
140889
- AddAsTypeOnly2[AddAsTypeOnly2["NotAllowed"] = 4] = "NotAllowed";
140890
- return AddAsTypeOnly2;
140891
- })(AddAsTypeOnly || {});
140892
140972
  function getImportCompletionAction(targetSymbol, moduleSymbol, sourceFile, symbolName2, isJsxTagName, host, program, formatContext, position, preferences, cancellationToken) {
140893
140973
  const compilerOptions = program.getCompilerOptions();
140894
140974
  const exportInfos = pathIsBareSpecifier(stripQuotes(moduleSymbol.name)) ? [getSingleExportInfoForSymbol(targetSymbol, moduleSymbol, program, host)] : getAllExportInfoForSymbol(sourceFile, targetSymbol, symbolName2, isJsxTagName, program, host, preferences, cancellationToken);
@@ -147674,19 +147754,19 @@ function getCompletionsAtPosition(host, program, log, sourceFile, position, pref
147674
147754
  return void 0;
147675
147755
  }
147676
147756
  switch (completionData.kind) {
147677
- case CompletionDataKind.Data:
147757
+ case 0 /* Data */:
147678
147758
  const response = completionInfoFromData(sourceFile, host, program, compilerOptions, log, completionData, preferences, formatContext, position);
147679
147759
  if (response == null ? void 0 : response.isIncomplete) {
147680
147760
  incompleteCompletionsCache == null ? void 0 : incompleteCompletionsCache.set(response);
147681
147761
  }
147682
147762
  return response;
147683
- case CompletionDataKind.JsDocTagName:
147763
+ case 1 /* JsDocTagName */:
147684
147764
  return jsdocCompletionInfo(ts_JsDoc_exports.getJSDocTagNameCompletions());
147685
- case CompletionDataKind.JsDocTag:
147765
+ case 2 /* JsDocTag */:
147686
147766
  return jsdocCompletionInfo(ts_JsDoc_exports.getJSDocTagCompletions());
147687
- case CompletionDataKind.JsDocParameterName:
147767
+ case 3 /* JsDocParameterName */:
147688
147768
  return jsdocCompletionInfo(ts_JsDoc_exports.getJSDocParameterNameCompletions(completionData.tag));
147689
- case CompletionDataKind.Keywords:
147769
+ case 4 /* Keywords */:
147690
147770
  return specificKeywordCompletionInfo(completionData.keywordCompletions, completionData.isNewIdentifierLocation);
147691
147771
  default:
147692
147772
  return Debug.assertNever(completionData);
@@ -147789,7 +147869,7 @@ function specificKeywordCompletionInfo(entries, isNewIdentifierLocation) {
147789
147869
  }
147790
147870
  function keywordCompletionData(keywordFilters, filterOutTsOnlyKeywords, isNewIdentifierLocation) {
147791
147871
  return {
147792
- kind: CompletionDataKind.Keywords,
147872
+ kind: 4 /* Keywords */,
147793
147873
  keywordCompletions: getKeywordCompletions(keywordFilters, filterOutTsOnlyKeywords),
147794
147874
  isNewIdentifierLocation
147795
147875
  };
@@ -148019,64 +148099,6 @@ function getExhaustiveCaseSnippets(caseBlock, sourceFile, preferences, options,
148019
148099
  }
148020
148100
  return void 0;
148021
148101
  }
148022
- function newCaseClauseTracker(checker, clauses) {
148023
- const existingStrings = /* @__PURE__ */ new Set();
148024
- const existingNumbers = /* @__PURE__ */ new Set();
148025
- const existingBigInts = /* @__PURE__ */ new Set();
148026
- for (const clause of clauses) {
148027
- if (!isDefaultClause(clause)) {
148028
- if (isLiteralExpression(clause.expression)) {
148029
- const expression = clause.expression;
148030
- switch (expression.kind) {
148031
- case 14 /* NoSubstitutionTemplateLiteral */:
148032
- case 10 /* StringLiteral */:
148033
- existingStrings.add(expression.text);
148034
- break;
148035
- case 8 /* NumericLiteral */:
148036
- existingNumbers.add(parseInt(expression.text));
148037
- break;
148038
- case 9 /* BigIntLiteral */:
148039
- const parsedBigInt = parseBigInt(endsWith(expression.text, "n") ? expression.text.slice(0, -1) : expression.text);
148040
- if (parsedBigInt) {
148041
- existingBigInts.add(pseudoBigIntToString(parsedBigInt));
148042
- }
148043
- break;
148044
- }
148045
- } else {
148046
- const symbol = checker.getSymbolAtLocation(clause.expression);
148047
- if (symbol && symbol.valueDeclaration && isEnumMember(symbol.valueDeclaration)) {
148048
- const enumValue = checker.getConstantValue(symbol.valueDeclaration);
148049
- if (enumValue !== void 0) {
148050
- addValue(enumValue);
148051
- }
148052
- }
148053
- }
148054
- }
148055
- }
148056
- return {
148057
- addValue,
148058
- hasValue
148059
- };
148060
- function addValue(value) {
148061
- switch (typeof value) {
148062
- case "string":
148063
- existingStrings.add(value);
148064
- break;
148065
- case "number":
148066
- existingNumbers.add(value);
148067
- }
148068
- }
148069
- function hasValue(value) {
148070
- switch (typeof value) {
148071
- case "string":
148072
- return existingStrings.has(value);
148073
- case "number":
148074
- return existingNumbers.has(value);
148075
- case "object":
148076
- return existingBigInts.has(pseudoBigIntToString(value));
148077
- }
148078
- }
148079
- }
148080
148102
  function typeNodeToExpression(typeNode, languageVersion, quotePreference) {
148081
148103
  switch (typeNode.kind) {
148082
148104
  case 180 /* TypeReference */:
@@ -148124,9 +148146,9 @@ function entityNameToExpression(entityName, languageVersion, quotePreference) {
148124
148146
  }
148125
148147
  function isMemberCompletionKind(kind) {
148126
148148
  switch (kind) {
148127
- case CompletionKind.ObjectPropertyDeclaration:
148128
- case CompletionKind.MemberLike:
148129
- case CompletionKind.PropertyAccess:
148149
+ case 0 /* ObjectPropertyDeclaration */:
148150
+ case 3 /* MemberLike */:
148151
+ case 2 /* PropertyAccess */:
148130
148152
  return true;
148131
148153
  default:
148132
148154
  return false;
@@ -148242,7 +148264,7 @@ function createCompletionEntry(symbol, sortText, replacementToken, contextToken,
148242
148264
  if ((origin == null ? void 0 : origin.kind) === 64 /* TypeOnlyAlias */) {
148243
148265
  hasAction = true;
148244
148266
  }
148245
- if (preferences.includeCompletionsWithClassMemberSnippets && preferences.includeCompletionsWithInsertText && completionKind === CompletionKind.MemberLike && isClassLikeMemberCompletion(symbol, location, sourceFile)) {
148267
+ if (preferences.includeCompletionsWithClassMemberSnippets && preferences.includeCompletionsWithInsertText && completionKind === 3 /* MemberLike */ && isClassLikeMemberCompletion(symbol, location, sourceFile)) {
148246
148268
  let importAdder;
148247
148269
  ({ insertText, isSnippet, importAdder, replacementSpan } = getEntryForMemberCompletion(host, program, options, preferences, name, symbol, location, position, contextToken, formatContext));
148248
148270
  sortText = SortText.ClassMemberSnippets;
@@ -148777,7 +148799,7 @@ function getCompletionEntriesFromSymbols(symbols, entries, replacementToken, con
148777
148799
  const symbol = symbols[i];
148778
148800
  const origin = symbolToOriginInfoMap == null ? void 0 : symbolToOriginInfoMap[i];
148779
148801
  const info = getCompletionEntryDisplayNameForSymbol(symbol, target, origin, kind, !!jsxIdentifierExpected);
148780
- if (!info || uniques.get(info.name) && (!origin || !originIsObjectLiteralMethod(origin)) || kind === CompletionKind.Global && symbolToSortTextMap && !shouldIncludeSymbol(symbol, symbolToSortTextMap)) {
148802
+ if (!info || uniques.get(info.name) && (!origin || !originIsObjectLiteralMethod(origin)) || kind === 1 /* Global */ && symbolToSortTextMap && !shouldIncludeSymbol(symbol, symbolToSortTextMap)) {
148781
148803
  continue;
148782
148804
  }
148783
148805
  const { name, needsConvertPropertyAccess } = info;
@@ -148916,7 +148938,7 @@ function getSymbolCompletionFromEntryId(program, log, sourceFile, position, entr
148916
148938
  if (!completionData) {
148917
148939
  return { type: "none" };
148918
148940
  }
148919
- if (completionData.kind !== CompletionDataKind.Data) {
148941
+ if (completionData.kind !== 0 /* Data */) {
148920
148942
  return { type: "request", request: completionData };
148921
148943
  }
148922
148944
  const { symbols, literals, location, completionKind, symbolToOriginInfoMap, contextToken, previousToken, isJsxInitializer, isTypeOnlyLocation } = completionData;
@@ -148942,13 +148964,13 @@ function getCompletionEntryDetails(program, log, sourceFile, position, entryId,
148942
148964
  case "request": {
148943
148965
  const { request } = symbolCompletion;
148944
148966
  switch (request.kind) {
148945
- case CompletionDataKind.JsDocTagName:
148967
+ case 1 /* JsDocTagName */:
148946
148968
  return ts_JsDoc_exports.getJSDocTagNameCompletionDetails(name);
148947
- case CompletionDataKind.JsDocTag:
148969
+ case 2 /* JsDocTag */:
148948
148970
  return ts_JsDoc_exports.getJSDocTagCompletionDetails(name);
148949
- case CompletionDataKind.JsDocParameterName:
148971
+ case 3 /* JsDocParameterName */:
148950
148972
  return ts_JsDoc_exports.getJSDocParameterNameCompletionDetails(name);
148951
- case CompletionDataKind.Keywords:
148973
+ case 4 /* Keywords */:
148952
148974
  return some(request.keywordCompletions, (c) => c.name === name) ? createSimpleDetails(name, "keyword" /* keyword */, 5 /* keyword */) : void 0;
148953
148975
  default:
148954
148976
  return Debug.assertNever(request);
@@ -149090,14 +149112,6 @@ function getCompletionEntrySymbol(program, log, sourceFile, position, entryId, h
149090
149112
  const completion = getSymbolCompletionFromEntryId(program, log, sourceFile, position, entryId, host, preferences);
149091
149113
  return completion.type === "symbol" ? completion.symbol : void 0;
149092
149114
  }
149093
- var CompletionDataKind = /* @__PURE__ */ ((CompletionDataKind2) => {
149094
- CompletionDataKind2[CompletionDataKind2["Data"] = 0] = "Data";
149095
- CompletionDataKind2[CompletionDataKind2["JsDocTagName"] = 1] = "JsDocTagName";
149096
- CompletionDataKind2[CompletionDataKind2["JsDocTag"] = 2] = "JsDocTag";
149097
- CompletionDataKind2[CompletionDataKind2["JsDocParameterName"] = 3] = "JsDocParameterName";
149098
- CompletionDataKind2[CompletionDataKind2["Keywords"] = 4] = "Keywords";
149099
- return CompletionDataKind2;
149100
- })(CompletionDataKind || {});
149101
149115
  var CompletionKind = /* @__PURE__ */ ((CompletionKind2) => {
149102
149116
  CompletionKind2[CompletionKind2["ObjectPropertyDeclaration"] = 0] = "ObjectPropertyDeclaration";
149103
149117
  CompletionKind2[CompletionKind2["Global"] = 1] = "Global";
@@ -151030,9 +151044,9 @@ function convertStringLiteralCompletions(completion, contextToken, sourceFile, h
151030
151044
  }
151031
151045
  const optionalReplacementSpan = createTextSpanFromStringLiteralLikeContent(contextToken);
151032
151046
  switch (completion.kind) {
151033
- case StringLiteralCompletionKind.Paths:
151047
+ case 0 /* Paths */:
151034
151048
  return convertPathCompletions(completion.paths);
151035
- case StringLiteralCompletionKind.Properties: {
151049
+ case 1 /* Properties */: {
151036
151050
  const entries = createSortedArray();
151037
151051
  getCompletionEntriesFromSymbols(
151038
151052
  completion.symbols,
@@ -151054,7 +151068,7 @@ function convertStringLiteralCompletions(completion, contextToken, sourceFile, h
151054
151068
  );
151055
151069
  return { isGlobalCompletion: false, isMemberCompletion: true, isNewIdentifierLocation: completion.hasIndexSignature, optionalReplacementSpan, entries };
151056
151070
  }
151057
- case StringLiteralCompletionKind.Types: {
151071
+ case 2 /* Types */: {
151058
151072
  const entries = completion.types.map((type) => ({
151059
151073
  name: type.value,
151060
151074
  kindModifiers: "" /* none */,
@@ -151076,16 +151090,16 @@ function getStringLiteralCompletionDetails(name, sourceFile, position, contextTo
151076
151090
  }
151077
151091
  function stringLiteralCompletionDetails(name, location, completion, sourceFile, checker, cancellationToken) {
151078
151092
  switch (completion.kind) {
151079
- case StringLiteralCompletionKind.Paths: {
151093
+ case 0 /* Paths */: {
151080
151094
  const match = find(completion.paths, (p) => p.name === name);
151081
151095
  return match && createCompletionDetails(name, kindModifiersFromExtension(match.extension), match.kind, [textPart(name)]);
151082
151096
  }
151083
- case StringLiteralCompletionKind.Properties: {
151097
+ case 1 /* Properties */: {
151084
151098
  const match = find(completion.symbols, (s) => s.name === name);
151085
151099
  return match && createCompletionDetailsForSymbol(match, checker, sourceFile, location, cancellationToken);
151086
151100
  }
151087
- case StringLiteralCompletionKind.Types:
151088
- return find(completion.types, (t) => t.value === name) ? createCompletionDetails(name, "" /* none */, "type" /* typeElement */, [textPart(name)]) : void 0;
151101
+ case 2 /* Types */:
151102
+ return find(completion.types, (t) => t.value === name) ? createCompletionDetails(name, "" /* none */, "string" /* string */, [textPart(name)]) : void 0;
151089
151103
  default:
151090
151104
  return Debug.assertNever(completion);
151091
151105
  }
@@ -151130,12 +151144,6 @@ function kindModifiersFromExtension(extension) {
151130
151144
  return Debug.assertNever(extension);
151131
151145
  }
151132
151146
  }
151133
- var StringLiteralCompletionKind = /* @__PURE__ */ ((StringLiteralCompletionKind2) => {
151134
- StringLiteralCompletionKind2[StringLiteralCompletionKind2["Paths"] = 0] = "Paths";
151135
- StringLiteralCompletionKind2[StringLiteralCompletionKind2["Properties"] = 1] = "Properties";
151136
- StringLiteralCompletionKind2[StringLiteralCompletionKind2["Types"] = 2] = "Types";
151137
- return StringLiteralCompletionKind2;
151138
- })(StringLiteralCompletionKind || {});
151139
151147
  function getStringLiteralCompletionEntries(sourceFile, node, position, typeChecker, compilerOptions, host, preferences) {
151140
151148
  const parent2 = walkUpParentheses(node.parent);
151141
151149
  switch (parent2.kind) {
@@ -151193,6 +151201,10 @@ function getStringLiteralCompletionEntries(sourceFile, node, position, typeCheck
151193
151201
  case 275 /* ExportDeclaration */:
151194
151202
  case 280 /* ExternalModuleReference */:
151195
151203
  return { kind: 0 /* Paths */, paths: getStringLiteralCompletionsFromModuleNames(sourceFile, node, compilerOptions, host, typeChecker, preferences) };
151204
+ case 292 /* CaseClause */:
151205
+ const tracker = newCaseClauseTracker(typeChecker, node.parent.parent.clauses);
151206
+ const literals = fromContextualType().types.filter((literal) => !tracker.hasValue(literal.value));
151207
+ return { kind: 2 /* Types */, types: literals, isNewIdentifier: false };
151196
151208
  default:
151197
151209
  return fromContextualType();
151198
151210
  }
@@ -151288,7 +151300,7 @@ function getStringLiteralCompletionsFromModuleNamesWorker(sourceFile, node, comp
151288
151300
  const mode = isStringLiteralLike(node) ? getModeForUsageLocation(sourceFile, node) : void 0;
151289
151301
  const scriptPath = sourceFile.path;
151290
151302
  const scriptDirectory = getDirectoryPath(scriptPath);
151291
- const extensionOptions = getExtensionOptions(compilerOptions, ReferenceKind.ModuleSpecifier, sourceFile, typeChecker, preferences, mode);
151303
+ const extensionOptions = getExtensionOptions(compilerOptions, 1 /* ModuleSpecifier */, sourceFile, typeChecker, preferences, mode);
151292
151304
  return isPathRelativeToScript(literalValue) || !compilerOptions.baseUrl && (isRootedDiskPath(literalValue) || isUrl(literalValue)) ? getCompletionEntriesForRelativeModules(literalValue, scriptDirectory, compilerOptions, host, scriptPath, extensionOptions) : getCompletionEntriesForNonRelativeModules(literalValue, scriptDirectory, mode, compilerOptions, host, extensionOptions, typeChecker);
151293
151305
  }
151294
151306
  function getExtensionOptions(compilerOptions, referenceKind, importingSourceFile, typeChecker, preferences, resolutionMode) {
@@ -151360,11 +151372,6 @@ function getCompletionEntriesForDirectoryFragmentWithRootDirs(rootDirs, fragment
151360
151372
  exclude
151361
151373
  ).values()));
151362
151374
  }
151363
- var ReferenceKind = /* @__PURE__ */ ((ReferenceKind2) => {
151364
- ReferenceKind2[ReferenceKind2["Filename"] = 0] = "Filename";
151365
- ReferenceKind2[ReferenceKind2["ModuleSpecifier"] = 1] = "ModuleSpecifier";
151366
- return ReferenceKind2;
151367
- })(ReferenceKind || {});
151368
151375
  function getCompletionEntriesForDirectoryFragment(fragment, scriptDirectory, extensionOptions, host, moduleSpecifierIsRelative, exclude, result = createNameAndKindSet()) {
151369
151376
  var _a2;
151370
151377
  if (fragment === void 0) {
@@ -153134,7 +153141,7 @@ var Core;
153134
153141
  ) || originalSymbol;
153135
153142
  const searchMeaning = node ? getIntersectingMeaningFromDeclarations(node, symbol) : 7 /* All */;
153136
153143
  const result = [];
153137
- const state = new State(sourceFiles, sourceFilesSet, node ? getSpecialSearchKind(node) : SpecialSearchKind.None, checker, cancellationToken, searchMeaning, options, result);
153144
+ const state = new State(sourceFiles, sourceFilesSet, node ? getSpecialSearchKind(node) : 0 /* None */, checker, cancellationToken, searchMeaning, options, result);
153138
153145
  const exportSpecifier = !isForRenameWithPrefixAndSuffixText(options) || !symbol.declarations ? void 0 : find(symbol.declarations, isExportSpecifier);
153139
153146
  if (exportSpecifier) {
153140
153147
  getReferencesAtExportSpecifier(
@@ -153190,14 +153197,14 @@ var Core;
153190
153197
  switch (node.kind) {
153191
153198
  case 173 /* Constructor */:
153192
153199
  case 135 /* ConstructorKeyword */:
153193
- return SpecialSearchKind.Constructor;
153200
+ return 1 /* Constructor */;
153194
153201
  case 79 /* Identifier */:
153195
153202
  if (isClassLike(node.parent)) {
153196
153203
  Debug.assert(node.parent.name === node);
153197
- return SpecialSearchKind.Class;
153204
+ return 2 /* Class */;
153198
153205
  }
153199
153206
  default:
153200
- return SpecialSearchKind.None;
153207
+ return 0 /* None */;
153201
153208
  }
153202
153209
  }
153203
153210
  function skipPastExportOrImportSpecifierOrUnion(symbol, node, checker, useLocalSymbolForExportSpecifier) {
@@ -160126,10 +160133,10 @@ function getPossibleExtractions(targetRange, context) {
160126
160133
  const scopeDescription = isFunctionLikeDeclaration(scope) ? getDescriptionForFunctionLikeDeclaration(scope) : isClassLike(scope) ? getDescriptionForClassLikeDeclaration(scope) : getDescriptionForModuleLikeDeclaration(scope);
160127
160134
  let functionDescription;
160128
160135
  let constantDescription;
160129
- if (scopeDescription === SpecialScope.Global) {
160136
+ if (scopeDescription === 1 /* Global */) {
160130
160137
  functionDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1_scope), [functionDescriptionPart, "global"]);
160131
160138
  constantDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1_scope), [constantDescriptionPart, "global"]);
160132
- } else if (scopeDescription === SpecialScope.Module) {
160139
+ } else if (scopeDescription === 0 /* Module */) {
160133
160140
  functionDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1_scope), [functionDescriptionPart, "module"]);
160134
160141
  constantDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1_scope), [constantDescriptionPart, "module"]);
160135
160142
  } else {
@@ -160195,13 +160202,8 @@ function getDescriptionForClassLikeDeclaration(scope) {
160195
160202
  return scope.kind === 260 /* ClassDeclaration */ ? scope.name ? `class '${scope.name.text}'` : "anonymous class declaration" : scope.name ? `class expression '${scope.name.text}'` : "anonymous class expression";
160196
160203
  }
160197
160204
  function getDescriptionForModuleLikeDeclaration(scope) {
160198
- return scope.kind === 265 /* ModuleBlock */ ? `namespace '${scope.parent.name.getText()}'` : scope.externalModuleIndicator ? SpecialScope.Module : SpecialScope.Global;
160205
+ return scope.kind === 265 /* ModuleBlock */ ? `namespace '${scope.parent.name.getText()}'` : scope.externalModuleIndicator ? 0 /* Module */ : 1 /* Global */;
160199
160206
  }
160200
- var SpecialScope = /* @__PURE__ */ ((SpecialScope2) => {
160201
- SpecialScope2[SpecialScope2["Module"] = 0] = "Module";
160202
- SpecialScope2[SpecialScope2["Global"] = 1] = "Global";
160203
- return SpecialScope2;
160204
- })(SpecialScope || {});
160205
160207
  function extractFunctionInScope(node, scope, { usages: usagesInScope, typeParameterUsages, substitutions }, exposedVariableDeclarations, range, context) {
160206
160208
  const checker = context.program.getTypeChecker();
160207
160209
  const scriptTarget = getEmitScriptTarget(context.program.getCompilerOptions());
@@ -160233,7 +160235,7 @@ function extractFunctionInScope(node, scope, { usages: usagesInScope, typeParame
160233
160235
  typeNode
160234
160236
  );
160235
160237
  parameters.push(paramDecl);
160236
- if (usage.usage === Usage.Write) {
160238
+ if (usage.usage === 2 /* Write */) {
160237
160239
  (writes || (writes = [])).push(usage);
160238
160240
  }
160239
160241
  callArguments.push(factory.createIdentifier(name));
@@ -160885,11 +160887,6 @@ function isReadonlyArray(v) {
160885
160887
  function getEnclosingTextRange(targetRange, sourceFile) {
160886
160888
  return isReadonlyArray(targetRange.range) ? { pos: first(targetRange.range).getStart(sourceFile), end: last(targetRange.range).getEnd() } : targetRange.range;
160887
160889
  }
160888
- var Usage = /* @__PURE__ */ ((Usage2) => {
160889
- Usage2[Usage2["Read"] = 1] = "Read";
160890
- Usage2[Usage2["Write"] = 2] = "Write";
160891
- return Usage2;
160892
- })(Usage || {});
160893
160890
  function collectReadsAndWrites(targetRange, scopes, enclosingTextRange, sourceFile, checker, cancellationToken) {
160894
160891
  const allTypeParameterUsages = /* @__PURE__ */ new Map();
160895
160892
  const usagesPerScope = [];
@@ -161538,13 +161535,8 @@ function getSignatureHelpItems(program, sourceFile, position, triggerReason, can
161538
161535
  if (!candidateInfo) {
161539
161536
  return isSourceFileJS(sourceFile) ? createJSSignatureHelpItems(argumentInfo, program, cancellationToken) : void 0;
161540
161537
  }
161541
- return typeChecker.runWithCancellationToken(cancellationToken, (typeChecker2) => candidateInfo.kind === CandidateOrTypeKind.Candidate ? createSignatureHelpItems(candidateInfo.candidates, candidateInfo.resolvedSignature, argumentInfo, sourceFile, typeChecker2) : createTypeHelpItems(candidateInfo.symbol, argumentInfo, sourceFile, typeChecker2));
161538
+ return typeChecker.runWithCancellationToken(cancellationToken, (typeChecker2) => candidateInfo.kind === 0 /* Candidate */ ? createSignatureHelpItems(candidateInfo.candidates, candidateInfo.resolvedSignature, argumentInfo, sourceFile, typeChecker2) : createTypeHelpItems(candidateInfo.symbol, argumentInfo, sourceFile, typeChecker2));
161542
161539
  }
161543
- var CandidateOrTypeKind = /* @__PURE__ */ ((CandidateOrTypeKind2) => {
161544
- CandidateOrTypeKind2[CandidateOrTypeKind2["Candidate"] = 0] = "Candidate";
161545
- CandidateOrTypeKind2[CandidateOrTypeKind2["Type"] = 1] = "Type";
161546
- return CandidateOrTypeKind2;
161547
- })(CandidateOrTypeKind || {});
161548
161540
  function getCandidateOrTypeInfo({ invocation, argumentCount }, checker, sourceFile, startingToken, onlyUseSyntacticOwners) {
161549
161541
  switch (invocation.kind) {
161550
161542
  case 0 /* Call */: {
@@ -165955,7 +165947,7 @@ function formatSpanWorker(originalRange, enclosingNode, initialIndentation, delt
165955
165947
  if (currentTokenInfo.leadingTrivia) {
165956
165948
  processTrivia(currentTokenInfo.leadingTrivia, parent2, childContextNode, dynamicIndentation);
165957
165949
  }
165958
- let lineAction = LineAction.None;
165950
+ let lineAction = 0 /* None */;
165959
165951
  const isTokenInRange = rangeContainsRange(originalRange, currentTokenInfo.token);
165960
165952
  const tokenStart = sourceFile.getLineAndCharacterOfPosition(currentTokenInfo.token.pos);
165961
165953
  if (isTokenInRange) {
@@ -165963,11 +165955,11 @@ function formatSpanWorker(originalRange, enclosingNode, initialIndentation, delt
165963
165955
  const savePreviousRange = previousRange;
165964
165956
  lineAction = processRange(currentTokenInfo.token, tokenStart, parent2, childContextNode, dynamicIndentation);
165965
165957
  if (!rangeHasError) {
165966
- if (lineAction === LineAction.None) {
165958
+ if (lineAction === 0 /* None */) {
165967
165959
  const prevEndLine = savePreviousRange && sourceFile.getLineAndCharacterOfPosition(savePreviousRange.end).line;
165968
165960
  indentToken = lastTriviaWasNewLine && tokenStart.line !== prevEndLine;
165969
165961
  } else {
165970
- indentToken = lineAction === LineAction.LineAdded;
165962
+ indentToken = lineAction === 1 /* LineAdded */;
165971
165963
  }
165972
165964
  }
165973
165965
  }
@@ -165993,7 +165985,7 @@ function formatSpanWorker(originalRange, enclosingNode, initialIndentation, delt
165993
165985
  );
165994
165986
  }
165995
165987
  if (tokenIndentation !== -1 /* Unknown */ && indentNextTokenOrTrivia) {
165996
- insertIndentation(currentTokenInfo.token.pos, tokenIndentation, lineAction === LineAction.LineAdded);
165988
+ insertIndentation(currentTokenInfo.token.pos, tokenIndentation, lineAction === 1 /* LineAdded */);
165997
165989
  lastIndentedLine = tokenStart.line;
165998
165990
  indentationOnLastIndentedLine = tokenIndentation;
165999
165991
  }
@@ -166040,7 +166032,7 @@ function formatSpanWorker(originalRange, enclosingNode, initialIndentation, delt
166040
166032
  }
166041
166033
  function processRange(range, rangeStart, parent2, contextNode, dynamicIndentation) {
166042
166034
  const rangeHasError = rangeContainsError(range);
166043
- let lineAction = LineAction.None;
166035
+ let lineAction = 0 /* None */;
166044
166036
  if (!rangeHasError) {
166045
166037
  if (!previousRange) {
166046
166038
  const originalStart = sourceFile.getLineAndCharacterOfPosition(originalRange.pos);
@@ -166059,13 +166051,13 @@ function formatSpanWorker(originalRange, enclosingNode, initialIndentation, delt
166059
166051
  formattingContext.updateContext(previousItem, previousParent2, currentItem, currentParent, contextNode);
166060
166052
  const rules = getRules(formattingContext);
166061
166053
  let trimTrailingWhitespaces = formattingContext.options.trimTrailingWhitespace !== false;
166062
- let lineAction = LineAction.None;
166054
+ let lineAction = 0 /* None */;
166063
166055
  if (rules) {
166064
166056
  forEachRight(rules, (rule2) => {
166065
166057
  lineAction = applyRuleEdits(rule2, previousItem, previousStartLine, currentItem, currentStartLine);
166066
166058
  if (dynamicIndentation) {
166067
166059
  switch (lineAction) {
166068
- case LineAction.LineRemoved:
166060
+ case 2 /* LineRemoved */:
166069
166061
  if (currentParent.getStart(sourceFile) === currentItem.pos) {
166070
166062
  dynamicIndentation.recomputeIndentation(
166071
166063
  /*lineAddedByFormatting*/
@@ -166074,7 +166066,7 @@ function formatSpanWorker(originalRange, enclosingNode, initialIndentation, delt
166074
166066
  );
166075
166067
  }
166076
166068
  break;
166077
- case LineAction.LineAdded:
166069
+ case 1 /* LineAdded */:
166078
166070
  if (currentParent.getStart(sourceFile) === currentItem.pos) {
166079
166071
  dynamicIndentation.recomputeIndentation(
166080
166072
  /*lineAddedByFormatting*/
@@ -166084,7 +166076,7 @@ function formatSpanWorker(originalRange, enclosingNode, initialIndentation, delt
166084
166076
  }
166085
166077
  break;
166086
166078
  default:
166087
- Debug.assert(lineAction === LineAction.None);
166079
+ Debug.assert(lineAction === 0 /* None */);
166088
166080
  }
166089
166081
  }
166090
166082
  trimTrailingWhitespaces = trimTrailingWhitespaces && !(rule2.action & 16 /* DeleteSpace */) && rule2.flags !== 1 /* CanDeleteNewLines */;
@@ -166231,11 +166223,11 @@ function formatSpanWorker(originalRange, enclosingNode, initialIndentation, delt
166231
166223
  const onLaterLine = currentStartLine !== previousStartLine;
166232
166224
  switch (rule2.action) {
166233
166225
  case 1 /* StopProcessingSpaceActions */:
166234
- return LineAction.None;
166226
+ return 0 /* None */;
166235
166227
  case 16 /* DeleteSpace */:
166236
166228
  if (previousRange2.end !== currentRange.pos) {
166237
166229
  recordDelete(previousRange2.end, currentRange.pos - previousRange2.end);
166238
- return onLaterLine ? LineAction.LineRemoved : LineAction.None;
166230
+ return onLaterLine ? 2 /* LineRemoved */ : 0 /* None */;
166239
166231
  }
166240
166232
  break;
166241
166233
  case 32 /* DeleteToken */:
@@ -166243,36 +166235,30 @@ function formatSpanWorker(originalRange, enclosingNode, initialIndentation, delt
166243
166235
  break;
166244
166236
  case 8 /* InsertNewLine */:
166245
166237
  if (rule2.flags !== 1 /* CanDeleteNewLines */ && previousStartLine !== currentStartLine) {
166246
- return LineAction.None;
166238
+ return 0 /* None */;
166247
166239
  }
166248
166240
  const lineDelta = currentStartLine - previousStartLine;
166249
166241
  if (lineDelta !== 1) {
166250
166242
  recordReplace(previousRange2.end, currentRange.pos - previousRange2.end, getNewLineOrDefaultFromHost(host, options));
166251
- return onLaterLine ? LineAction.None : LineAction.LineAdded;
166243
+ return onLaterLine ? 0 /* None */ : 1 /* LineAdded */;
166252
166244
  }
166253
166245
  break;
166254
166246
  case 4 /* InsertSpace */:
166255
166247
  if (rule2.flags !== 1 /* CanDeleteNewLines */ && previousStartLine !== currentStartLine) {
166256
- return LineAction.None;
166248
+ return 0 /* None */;
166257
166249
  }
166258
166250
  const posDelta = currentRange.pos - previousRange2.end;
166259
166251
  if (posDelta !== 1 || sourceFile.text.charCodeAt(previousRange2.end) !== 32 /* space */) {
166260
166252
  recordReplace(previousRange2.end, currentRange.pos - previousRange2.end, " ");
166261
- return onLaterLine ? LineAction.LineRemoved : LineAction.None;
166253
+ return onLaterLine ? 2 /* LineRemoved */ : 0 /* None */;
166262
166254
  }
166263
166255
  break;
166264
166256
  case 64 /* InsertTrailingSemicolon */:
166265
166257
  recordInsert(previousRange2.end, ";");
166266
166258
  }
166267
- return LineAction.None;
166259
+ return 0 /* None */;
166268
166260
  }
166269
166261
  }
166270
- var LineAction = /* @__PURE__ */ ((LineAction2) => {
166271
- LineAction2[LineAction2["None"] = 0] = "None";
166272
- LineAction2[LineAction2["LineAdded"] = 1] = "LineAdded";
166273
- LineAction2[LineAction2["LineRemoved"] = 2] = "LineRemoved";
166274
- return LineAction2;
166275
- })(LineAction || {});
166276
166262
  function getRangeOfEnclosingComment(sourceFile, position, precedingToken, tokenAtPosition = getTokenAtPosition(sourceFile, position)) {
166277
166263
  const jsdoc = findAncestor(tokenAtPosition, isJSDoc);
166278
166264
  if (jsdoc)
@@ -166495,7 +166481,7 @@ var SmartIndenter;
166495
166481
  )) {
166496
166482
  const currentStart = getStartLineAndCharacterForNode(current, sourceFile);
166497
166483
  const nextTokenKind = nextTokenIsCurlyBraceOnSameLineAsCursor(precedingToken, current, lineAtPosition, sourceFile);
166498
- const indentationDelta = nextTokenKind !== NextTokenKind.Unknown ? assumeNewLineBeforeCloseBrace && nextTokenKind === NextTokenKind.CloseBrace ? options.indentSize : 0 : lineAtPosition !== currentStart.line ? options.indentSize : 0;
166484
+ const indentationDelta = nextTokenKind !== 0 /* Unknown */ ? assumeNewLineBeforeCloseBrace && nextTokenKind === 2 /* CloseBrace */ ? options.indentSize : 0 : lineAtPosition !== currentStart.line ? options.indentSize : 0;
166499
166485
  return getIndentationForNodeWorker(
166500
166486
  current,
166501
166487
  currentStart,
@@ -168748,6 +168734,7 @@ __export(ts_exports3, {
168748
168734
  mutateMapSkippingNewValues: () => mutateMapSkippingNewValues,
168749
168735
  needsParentheses: () => needsParentheses,
168750
168736
  needsScopeMarker: () => needsScopeMarker,
168737
+ newCaseClauseTracker: () => newCaseClauseTracker,
168751
168738
  newPrivateEnvironment: () => newPrivateEnvironment,
168752
168739
  noEmitNotification: () => noEmitNotification,
168753
168740
  noEmitSubstitution: () => noEmitSubstitution,
@@ -176380,6 +176367,10 @@ function getPerProjectReferences(projects, defaultProject, initialLocation, isFo
176380
176367
  continue;
176381
176368
  if (isLocationProjectReferenceRedirect(project, location))
176382
176369
  continue;
176370
+ updateProjectIfDirty(project);
176371
+ if (!project.containsFile(toNormalizedPath(location.fileName))) {
176372
+ continue;
176373
+ }
176383
176374
  const projectResults = searchPosition(project, location);
176384
176375
  resultsMap.set(project, projectResults != null ? projectResults : emptyArray2);
176385
176376
  searchedProjectKeys.add(getProjectKey(project));
@@ -182692,6 +182683,7 @@ start(initializeNodeSystem(), require("os").platform());
182692
182683
  mutateMapSkippingNewValues,
182693
182684
  needsParentheses,
182694
182685
  needsScopeMarker,
182686
+ newCaseClauseTracker,
182695
182687
  newPrivateEnvironment,
182696
182688
  noEmitNotification,
182697
182689
  noEmitSubstitution,