typescript 5.0.0-dev.20230224 → 5.0.0-dev.20230226

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/tsc.js CHANGED
@@ -23,7 +23,7 @@ var __export = (target, all) => {
23
23
 
24
24
  // src/compiler/corePublic.ts
25
25
  var versionMajorMinor = "5.0";
26
- var version = `${versionMajorMinor}.0-dev.20230224`;
26
+ var version = `${versionMajorMinor}.0-dev.20230226`;
27
27
 
28
28
  // src/compiler/core.ts
29
29
  var emptyArray = [];
@@ -6890,12 +6890,10 @@ var Diagnostics = {
6890
6890
  The_root_value_of_a_0_file_must_be_an_object: diag(5092, 1 /* Error */, "The_root_value_of_a_0_file_must_be_an_object_5092", "The root value of a '{0}' file must be an object."),
6891
6891
  Compiler_option_0_may_only_be_used_with_build: diag(5093, 1 /* Error */, "Compiler_option_0_may_only_be_used_with_build_5093", "Compiler option '--{0}' may only be used with '--build'."),
6892
6892
  Compiler_option_0_may_not_be_used_with_build: diag(5094, 1 /* Error */, "Compiler_option_0_may_not_be_used_with_build_5094", "Compiler option '--{0}' may not be used with '--build'."),
6893
- Option_preserveValueImports_can_only_be_used_when_module_is_set_to_es2015_or_later: diag(5095, 1 /* Error */, "Option_preserveValueImports_can_only_be_used_when_module_is_set_to_es2015_or_later_5095", "Option 'preserveValueImports' can only be used when 'module' is set to 'es2015' or later."),
6893
+ Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later: diag(5095, 1 /* Error */, "Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later_5095", "Option '{0}' can only be used when 'module' is set to 'es2015' or later."),
6894
6894
  Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set: diag(5096, 1 /* Error */, "Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set_5096", "Option 'allowImportingTsExtensions' can only be used when either 'noEmit' or 'emitDeclarationOnly' is set."),
6895
6895
  An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled: diag(5097, 1 /* Error */, "An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled_5097", "An import path can only end with a '{0}' extension when 'allowImportingTsExtensions' is enabled."),
6896
6896
  Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler: diag(5098, 1 /* Error */, "Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler_5098", "Option '{0}' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'."),
6897
- Import_assignment_is_not_allowed_when_moduleResolution_is_set_to_bundler_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead: diag(5099, 1 /* Error */, "Import_assignment_is_not_allowed_when_moduleResolution_is_set_to_bundler_Consider_using_import_Aster_5099", `Import assignment is not allowed when 'moduleResolution' is set to 'bundler'. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.`),
6898
- Export_assignment_cannot_be_used_when_moduleResolution_is_set_to_bundler_Consider_using_export_default_or_another_module_format_instead: diag(5100, 1 /* Error */, "Export_assignment_cannot_be_used_when_moduleResolution_is_set_to_bundler_Consider_using_export_defau_5100", "Export assignment cannot be used when 'moduleResolution' is set to 'bundler'. Consider using 'export default' or another module format instead."),
6899
6897
  Flag_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error: diag(5101, 1 /* Error */, "Flag_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecat_5101", `Flag '{0}' is deprecated and will stop functioning in TypeScript {1}. Specify compilerOption '"ignoreDeprecations": "{2}"' to silence this error.`),
6900
6898
  Flag_0_is_deprecated_Please_remove_it_from_your_configuration: diag(5102, 1 /* Error */, "Flag_0_is_deprecated_Please_remove_it_from_your_configuration_5102", "Flag '{0}' is deprecated. Please remove it from your configuration."),
6901
6899
  Invalid_value_for_ignoreDeprecations: diag(5103, 1 /* Error */, "Invalid_value_for_ignoreDeprecations_5103", "Invalid value for '--ignoreDeprecations'."),
@@ -26060,6 +26058,34 @@ var Parser;
26060
26058
  ))
26061
26059
  };
26062
26060
  var factory2 = createNodeFactory(1 /* NoParenthesizerRules */ | 2 /* NoNodeConverters */ | 8 /* NoOriginalNode */, baseNodeFactory);
26061
+ var {
26062
+ createNodeArray: factoryCreateNodeArray,
26063
+ createNumericLiteral: factoryCreateNumericLiteral,
26064
+ createStringLiteral: factoryCreateStringLiteral,
26065
+ createLiteralLikeNode: factoryCreateLiteralLikeNode,
26066
+ createIdentifier: factoryCreateIdentifier,
26067
+ createPrivateIdentifier: factoryCreatePrivateIdentifier,
26068
+ createToken: factoryCreateToken,
26069
+ createArrayLiteralExpression: factoryCreateArrayLiteralExpression,
26070
+ createObjectLiteralExpression: factoryCreateObjectLiteralExpression,
26071
+ createPropertyAccessExpression: factoryCreatePropertyAccessExpression,
26072
+ createPropertyAccessChain: factoryCreatePropertyAccessChain,
26073
+ createElementAccessExpression: factoryCreateElementAccessExpression,
26074
+ createElementAccessChain: factoryCreateElementAccessChain,
26075
+ createCallExpression: factoryCreateCallExpression,
26076
+ createCallChain: factoryCreateCallChain,
26077
+ createNewExpression: factoryCreateNewExpression,
26078
+ createParenthesizedExpression: factoryCreateParenthesizedExpression,
26079
+ createBlock: factoryCreateBlock,
26080
+ createVariableStatement: factoryCreateVariableStatement,
26081
+ createExpressionStatement: factoryCreateExpressionStatement,
26082
+ createIfStatement: factoryCreateIfStatement,
26083
+ createWhileStatement: factoryCreateWhileStatement,
26084
+ createForStatement: factoryCreateForStatement,
26085
+ createForOfStatement: factoryCreateForOfStatement,
26086
+ createVariableDeclaration: factoryCreateVariableDeclaration,
26087
+ createVariableDeclarationList: factoryCreateVariableDeclarationList
26088
+ } = factory2;
26063
26089
  var fileName;
26064
26090
  var sourceFlags;
26065
26091
  var sourceText;
@@ -26177,8 +26203,8 @@ var Parser;
26177
26203
  }
26178
26204
  }
26179
26205
  }
26180
- const expression = isArray(expressions) ? finishNode(factory2.createArrayLiteralExpression(expressions), pos) : Debug.checkDefined(expressions);
26181
- const statement = factory2.createExpressionStatement(expression);
26206
+ const expression = isArray(expressions) ? finishNode(factoryCreateArrayLiteralExpression(expressions), pos) : Debug.checkDefined(expressions);
26207
+ const statement = factoryCreateExpressionStatement(expression);
26182
26208
  finishNode(statement, pos);
26183
26209
  statements = createNodeArray([statement], pos);
26184
26210
  endOfFileToken = parseExpectedToken(1 /* EndOfFileToken */, Diagnostics.Unexpected_token);
@@ -26361,7 +26387,7 @@ var Parser;
26361
26387
  }
26362
26388
  }
26363
26389
  syntaxCursor = savedSyntaxCursor;
26364
- return factory2.updateSourceFile(sourceFile, setTextRange(factory2.createNodeArray(statements), sourceFile.statements));
26390
+ return factory2.updateSourceFile(sourceFile, setTextRange(factoryCreateNodeArray(statements), sourceFile.statements));
26365
26391
  function containsPossibleTopLevelAwait(node) {
26366
26392
  return !(node.flags & 32768 /* AwaitContext */) && !!(node.transformFlags & 67108864 /* ContainsPossibleTopLevelAwait */);
26367
26393
  }
@@ -26802,13 +26828,13 @@ var Parser;
26802
26828
  const pos = getNodePos();
26803
26829
  const kind = token();
26804
26830
  nextToken();
26805
- return finishNode(factory2.createToken(kind), pos);
26831
+ return finishNode(factoryCreateToken(kind), pos);
26806
26832
  }
26807
26833
  function parseTokenNodeJSDoc() {
26808
26834
  const pos = getNodePos();
26809
26835
  const kind = token();
26810
26836
  nextTokenJSDoc();
26811
- return finishNode(factory2.createToken(kind), pos);
26837
+ return finishNode(factoryCreateToken(kind), pos);
26812
26838
  }
26813
26839
  function canParseSemicolon() {
26814
26840
  if (token() === 26 /* SemicolonToken */) {
@@ -26829,7 +26855,7 @@ var Parser;
26829
26855
  return tryParseSemicolon() || parseExpected(26 /* SemicolonToken */);
26830
26856
  }
26831
26857
  function createNodeArray(elements, pos, end, hasTrailingComma) {
26832
- const array = factory2.createNodeArray(elements, hasTrailingComma);
26858
+ const array = factoryCreateNodeArray(elements, hasTrailingComma);
26833
26859
  setTextRangePosEnd(array, pos, end != null ? end : scanner.getStartPos());
26834
26860
  return array;
26835
26861
  }
@@ -26851,7 +26877,7 @@ var Parser;
26851
26877
  parseErrorAtCurrentToken(diagnosticMessage, arg0);
26852
26878
  }
26853
26879
  const pos = getNodePos();
26854
- const result = kind === 79 /* Identifier */ ? factory2.createIdentifier(
26880
+ const result = kind === 79 /* Identifier */ ? factoryCreateIdentifier(
26855
26881
  "",
26856
26882
  /*originalKeywordKind*/
26857
26883
  void 0
@@ -26861,15 +26887,15 @@ var Parser;
26861
26887
  "",
26862
26888
  /*templateFlags*/
26863
26889
  void 0
26864
- ) : kind === 8 /* NumericLiteral */ ? factory2.createNumericLiteral(
26890
+ ) : kind === 8 /* NumericLiteral */ ? factoryCreateNumericLiteral(
26865
26891
  "",
26866
26892
  /*numericLiteralFlags*/
26867
26893
  void 0
26868
- ) : kind === 10 /* StringLiteral */ ? factory2.createStringLiteral(
26894
+ ) : kind === 10 /* StringLiteral */ ? factoryCreateStringLiteral(
26869
26895
  "",
26870
26896
  /*isSingleQuote*/
26871
26897
  void 0
26872
- ) : kind === 279 /* MissingDeclaration */ ? factory2.createMissingDeclaration() : factory2.createToken(kind);
26898
+ ) : kind === 279 /* MissingDeclaration */ ? factory2.createMissingDeclaration() : factoryCreateToken(kind);
26873
26899
  return finishNode(result, pos);
26874
26900
  }
26875
26901
  function internIdentifier(text) {
@@ -26887,7 +26913,7 @@ var Parser;
26887
26913
  const text = internIdentifier(scanner.getTokenValue());
26888
26914
  const hasExtendedUnicodeEscape = scanner.hasExtendedUnicodeEscape();
26889
26915
  nextTokenWithoutCheck();
26890
- return finishNode(factory2.createIdentifier(text, originalKeywordKind, hasExtendedUnicodeEscape), pos);
26916
+ return finishNode(factoryCreateIdentifier(text, originalKeywordKind, hasExtendedUnicodeEscape), pos);
26891
26917
  }
26892
26918
  if (token() === 80 /* PrivateIdentifier */) {
26893
26919
  parseErrorAtCurrentToken(privateIdentifierDiagnosticMessage || Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies);
@@ -26958,7 +26984,7 @@ var Parser;
26958
26984
  }
26959
26985
  function parsePrivateIdentifier() {
26960
26986
  const pos = getNodePos();
26961
- const node = factory2.createPrivateIdentifier(internIdentifier(scanner.getTokenValue()));
26987
+ const node = factoryCreatePrivateIdentifier(internIdentifier(scanner.getTokenValue()));
26962
26988
  nextToken();
26963
26989
  return finishNode(node, pos);
26964
26990
  }
@@ -27673,12 +27699,12 @@ var Parser;
27673
27699
  // never get a token like this. Instead, we would get 00 and 9 as two separate tokens.
27674
27700
  // We also do not need to check for negatives because any prefix operator would be part of a
27675
27701
  // parent unary expression.
27676
- kind === 8 /* NumericLiteral */ ? factory2.createNumericLiteral(scanner.getTokenValue(), scanner.getNumericLiteralFlags()) : kind === 10 /* StringLiteral */ ? factory2.createStringLiteral(
27702
+ kind === 8 /* NumericLiteral */ ? factoryCreateNumericLiteral(scanner.getTokenValue(), scanner.getNumericLiteralFlags()) : kind === 10 /* StringLiteral */ ? factoryCreateStringLiteral(
27677
27703
  scanner.getTokenValue(),
27678
27704
  /*isSingleQuote*/
27679
27705
  void 0,
27680
27706
  scanner.hasExtendedUnicodeEscape()
27681
- ) : isLiteralKind(kind) ? factory2.createLiteralLikeNode(kind, scanner.getTokenValue()) : Debug.fail()
27707
+ ) : isLiteralKind(kind) ? factoryCreateLiteralLikeNode(kind, scanner.getTokenValue()) : Debug.fail()
27682
27708
  );
27683
27709
  if (scanner.hasExtendedUnicodeEscape()) {
27684
27710
  node.hasExtendedUnicodeEscape = true;
@@ -28269,7 +28295,7 @@ var Parser;
28269
28295
  if (token() === 126 /* AbstractKeyword */) {
28270
28296
  const pos = getNodePos();
28271
28297
  nextToken();
28272
- const modifier = finishNode(factory2.createToken(126 /* AbstractKeyword */), pos);
28298
+ const modifier = finishNode(factoryCreateToken(126 /* AbstractKeyword */), pos);
28273
28299
  modifiers = createNodeArray([modifier], pos);
28274
28300
  }
28275
28301
  return modifiers;
@@ -29326,7 +29352,7 @@ var Parser;
29326
29352
  return expression;
29327
29353
  }
29328
29354
  parseExpectedToken(24 /* DotToken */, Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access);
29329
- return finishNode(factory2.createPropertyAccessExpression(expression, parseRightSideOfDot(
29355
+ return finishNode(factoryCreatePropertyAccessExpression(expression, parseRightSideOfDot(
29330
29356
  /*allowIdentifierNames*/
29331
29357
  true,
29332
29358
  /*allowPrivateIdentifiers*/
@@ -29347,7 +29373,7 @@ var Parser;
29347
29373
  factory2.createJsxElement(
29348
29374
  lastChild.openingElement,
29349
29375
  lastChild.children,
29350
- finishNode(factory2.createJsxClosingElement(finishNode(factory2.createIdentifier(""), end, end)), end, end)
29376
+ finishNode(factory2.createJsxClosingElement(finishNode(factoryCreateIdentifier(""), end, end)), end, end)
29351
29377
  ),
29352
29378
  lastChild.openingElement.pos,
29353
29379
  end
@@ -29490,7 +29516,7 @@ var Parser;
29490
29516
  scanJsxIdentifier();
29491
29517
  let expression = token() === 108 /* ThisKeyword */ ? parseTokenNode() : parseIdentifierName();
29492
29518
  while (parseOptional(24 /* DotToken */)) {
29493
- expression = finishNode(factory2.createPropertyAccessExpression(expression, parseRightSideOfDot(
29519
+ expression = finishNode(factoryCreatePropertyAccessExpression(expression, parseRightSideOfDot(
29494
29520
  /*allowIdentifierNames*/
29495
29521
  true,
29496
29522
  /*allowPrivateIdentifiers*/
@@ -29641,7 +29667,7 @@ var Parser;
29641
29667
  true
29642
29668
  );
29643
29669
  const isOptionalChain2 = questionDotToken || tryReparseOptionalChain(expression);
29644
- const propertyAccess = isOptionalChain2 ? factory2.createPropertyAccessChain(expression, questionDotToken, name) : factory2.createPropertyAccessExpression(expression, name);
29670
+ const propertyAccess = isOptionalChain2 ? factoryCreatePropertyAccessChain(expression, questionDotToken, name) : factoryCreatePropertyAccessExpression(expression, name);
29645
29671
  if (isOptionalChain2 && isPrivateIdentifier(propertyAccess.name)) {
29646
29672
  parseErrorAtRange(propertyAccess.name, Diagnostics.An_optional_chain_cannot_contain_private_identifiers);
29647
29673
  }
@@ -29669,7 +29695,7 @@ var Parser;
29669
29695
  argumentExpression = argument;
29670
29696
  }
29671
29697
  parseExpected(23 /* CloseBracketToken */);
29672
- const indexedAccess = questionDotToken || tryReparseOptionalChain(expression) ? factory2.createElementAccessChain(expression, questionDotToken, argumentExpression) : factory2.createElementAccessExpression(expression, argumentExpression);
29698
+ const indexedAccess = questionDotToken || tryReparseOptionalChain(expression) ? factoryCreateElementAccessChain(expression, questionDotToken, argumentExpression) : factoryCreateElementAccessExpression(expression, argumentExpression);
29673
29699
  return finishNode(indexedAccess, pos);
29674
29700
  }
29675
29701
  function parseMemberExpressionRest(pos, expression, allowOptionalChain) {
@@ -29756,7 +29782,7 @@ var Parser;
29756
29782
  expression = expression.expression;
29757
29783
  }
29758
29784
  const argumentList = parseArgumentList();
29759
- const callExpr = questionDotToken || tryReparseOptionalChain(expression) ? factory2.createCallChain(expression, questionDotToken, typeArguments, argumentList) : factory2.createCallExpression(expression, typeArguments, argumentList);
29785
+ const callExpr = questionDotToken || tryReparseOptionalChain(expression) ? factoryCreateCallChain(expression, questionDotToken, typeArguments, argumentList) : factoryCreateCallExpression(expression, typeArguments, argumentList);
29760
29786
  expression = finishNode(callExpr, pos);
29761
29787
  continue;
29762
29788
  }
@@ -29767,7 +29793,7 @@ var Parser;
29767
29793
  false,
29768
29794
  Diagnostics.Identifier_expected
29769
29795
  );
29770
- expression = finishNode(factory2.createPropertyAccessChain(expression, questionDotToken, name), pos);
29796
+ expression = finishNode(factoryCreatePropertyAccessChain(expression, questionDotToken, name), pos);
29771
29797
  }
29772
29798
  break;
29773
29799
  }
@@ -29862,7 +29888,7 @@ var Parser;
29862
29888
  parseExpected(20 /* OpenParenToken */);
29863
29889
  const expression = allowInAnd(parseExpression);
29864
29890
  parseExpected(21 /* CloseParenToken */);
29865
- return withJSDoc(finishNode(factory2.createParenthesizedExpression(expression), pos), hasJSDoc);
29891
+ return withJSDoc(finishNode(factoryCreateParenthesizedExpression(expression), pos), hasJSDoc);
29866
29892
  }
29867
29893
  function parseSpreadElement() {
29868
29894
  const pos = getNodePos();
@@ -29889,7 +29915,7 @@ var Parser;
29889
29915
  const multiLine = scanner.hasPrecedingLineBreak();
29890
29916
  const elements = parseDelimitedList(15 /* ArrayLiteralMembers */, parseArgumentOrArrayLiteralElement);
29891
29917
  parseExpectedMatchingBrackets(22 /* OpenBracketToken */, 23 /* CloseBracketToken */, openBracketParsed, openBracketPosition);
29892
- return finishNode(factory2.createArrayLiteralExpression(elements, multiLine), pos);
29918
+ return finishNode(factoryCreateArrayLiteralExpression(elements, multiLine), pos);
29893
29919
  }
29894
29920
  function parseObjectLiteralElement() {
29895
29921
  const pos = getNodePos();
@@ -29954,7 +29980,7 @@ var Parser;
29954
29980
  true
29955
29981
  );
29956
29982
  parseExpectedMatchingBrackets(18 /* OpenBraceToken */, 19 /* CloseBraceToken */, openBraceParsed, openBracePosition);
29957
- return finishNode(factory2.createObjectLiteralExpression(properties, multiLine), pos);
29983
+ return finishNode(factoryCreateObjectLiteralExpression(properties, multiLine), pos);
29958
29984
  }
29959
29985
  function parseFunctionExpression() {
29960
29986
  const savedDecoratorContext = inDecoratorContext();
@@ -30011,7 +30037,7 @@ var Parser;
30011
30037
  parseErrorAtCurrentToken(Diagnostics.Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0, getTextOfNodeFromSourceText(sourceText, expression));
30012
30038
  }
30013
30039
  const argumentList = token() === 20 /* OpenParenToken */ ? parseArgumentList() : void 0;
30014
- return finishNode(factory2.createNewExpression(expression, typeArguments, argumentList), pos);
30040
+ return finishNode(factoryCreateNewExpression(expression, typeArguments, argumentList), pos);
30015
30041
  }
30016
30042
  function parseBlock(ignoreMissingOpenBrace, diagnosticMessage) {
30017
30043
  const pos = getNodePos();
@@ -30022,7 +30048,7 @@ var Parser;
30022
30048
  const multiLine = scanner.hasPrecedingLineBreak();
30023
30049
  const statements = parseList(1 /* BlockStatements */, parseStatement);
30024
30050
  parseExpectedMatchingBrackets(18 /* OpenBraceToken */, 19 /* CloseBraceToken */, openBraceParsed, openBracePosition);
30025
- const result = withJSDoc(finishNode(factory2.createBlock(statements, multiLine), pos), hasJSDoc);
30051
+ const result = withJSDoc(finishNode(factoryCreateBlock(statements, multiLine), pos), hasJSDoc);
30026
30052
  if (token() === 63 /* EqualsToken */) {
30027
30053
  parseErrorAtCurrentToken(Diagnostics.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses);
30028
30054
  nextToken();
@@ -30030,7 +30056,7 @@ var Parser;
30030
30056
  return result;
30031
30057
  } else {
30032
30058
  const statements = createMissingList();
30033
- return withJSDoc(finishNode(factory2.createBlock(
30059
+ return withJSDoc(finishNode(factoryCreateBlock(
30034
30060
  statements,
30035
30061
  /*multiLine*/
30036
30062
  void 0
@@ -30079,7 +30105,7 @@ var Parser;
30079
30105
  parseExpectedMatchingBrackets(20 /* OpenParenToken */, 21 /* CloseParenToken */, openParenParsed, openParenPosition);
30080
30106
  const thenStatement = parseStatement();
30081
30107
  const elseStatement = parseOptional(91 /* ElseKeyword */) ? parseStatement() : void 0;
30082
- return withJSDoc(finishNode(factory2.createIfStatement(expression, thenStatement, elseStatement), pos), hasJSDoc);
30108
+ return withJSDoc(finishNode(factoryCreateIfStatement(expression, thenStatement, elseStatement), pos), hasJSDoc);
30083
30109
  }
30084
30110
  function parseDoStatement() {
30085
30111
  const pos = getNodePos();
@@ -30103,7 +30129,7 @@ var Parser;
30103
30129
  const expression = allowInAnd(parseExpression);
30104
30130
  parseExpectedMatchingBrackets(20 /* OpenParenToken */, 21 /* CloseParenToken */, openParenParsed, openParenPosition);
30105
30131
  const statement = parseStatement();
30106
- return withJSDoc(finishNode(factory2.createWhileStatement(expression, statement), pos), hasJSDoc);
30132
+ return withJSDoc(finishNode(factoryCreateWhileStatement(expression, statement), pos), hasJSDoc);
30107
30133
  }
30108
30134
  function parseForOrForInOrForOfStatement() {
30109
30135
  const pos = getNodePos();
@@ -30129,7 +30155,7 @@ var Parser;
30129
30155
  true
30130
30156
  ));
30131
30157
  parseExpected(21 /* CloseParenToken */);
30132
- node = factory2.createForOfStatement(awaitToken, initializer, expression, parseStatement());
30158
+ node = factoryCreateForOfStatement(awaitToken, initializer, expression, parseStatement());
30133
30159
  } else if (parseOptional(101 /* InKeyword */)) {
30134
30160
  const expression = allowInAnd(parseExpression);
30135
30161
  parseExpected(21 /* CloseParenToken */);
@@ -30140,7 +30166,7 @@ var Parser;
30140
30166
  parseExpected(26 /* SemicolonToken */);
30141
30167
  const incrementor = token() !== 21 /* CloseParenToken */ ? allowInAnd(parseExpression) : void 0;
30142
30168
  parseExpected(21 /* CloseParenToken */);
30143
- node = factory2.createForStatement(initializer, condition, incrementor, parseStatement());
30169
+ node = factoryCreateForStatement(initializer, condition, incrementor, parseStatement());
30144
30170
  }
30145
30171
  return withJSDoc(finishNode(node, pos), hasJSDoc);
30146
30172
  }
@@ -30215,7 +30241,7 @@ var Parser;
30215
30241
  let expression = scanner.hasPrecedingLineBreak() ? void 0 : allowInAnd(parseExpression);
30216
30242
  if (expression === void 0) {
30217
30243
  identifierCount++;
30218
- expression = finishNode(factory2.createIdentifier(""), getNodePos());
30244
+ expression = finishNode(factoryCreateIdentifier(""), getNodePos());
30219
30245
  }
30220
30246
  if (!tryParseSemicolon()) {
30221
30247
  parseErrorForMissingSemicolonAfter(expression);
@@ -30276,7 +30302,7 @@ var Parser;
30276
30302
  if (!tryParseSemicolon()) {
30277
30303
  parseErrorForMissingSemicolonAfter(expression);
30278
30304
  }
30279
- node = factory2.createExpressionStatement(expression);
30305
+ node = factoryCreateExpressionStatement(expression);
30280
30306
  if (hasParen) {
30281
30307
  hasJSDoc = false;
30282
30308
  }
@@ -30674,7 +30700,7 @@ var Parser;
30674
30700
  }
30675
30701
  const type = parseTypeAnnotation();
30676
30702
  const initializer = isInOrOfKeyword(token()) ? void 0 : parseInitializer();
30677
- const node = factory2.createVariableDeclaration(name, exclamationToken, type, initializer);
30703
+ const node = factoryCreateVariableDeclaration(name, exclamationToken, type, initializer);
30678
30704
  return withJSDoc(finishNode(node, pos), hasJSDoc);
30679
30705
  }
30680
30706
  function parseVariableDeclarationList(inForStatementInitializer) {
@@ -30705,7 +30731,7 @@ var Parser;
30705
30731
  );
30706
30732
  setDisallowInContext(savedDisallowIn);
30707
30733
  }
30708
- return finishNode(factory2.createVariableDeclarationList(declarations, flags), pos);
30734
+ return finishNode(factoryCreateVariableDeclarationList(declarations, flags), pos);
30709
30735
  }
30710
30736
  function canFollowContextualOfKeyword() {
30711
30737
  return nextTokenIsIdentifier() && nextToken() === 21 /* CloseParenToken */;
@@ -30716,7 +30742,7 @@ var Parser;
30716
30742
  false
30717
30743
  );
30718
30744
  parseSemicolon();
30719
- const node = factory2.createVariableStatement(modifiers, declarationList);
30745
+ const node = factoryCreateVariableStatement(modifiers, declarationList);
30720
30746
  return withJSDoc(finishNode(node, pos), hasJSDoc);
30721
30747
  }
30722
30748
  function parseFunctionDeclaration(pos, hasJSDoc, modifiers) {
@@ -30945,7 +30971,7 @@ var Parser;
30945
30971
  return void 0;
30946
30972
  }
30947
30973
  }
30948
- return finishNode(factory2.createToken(kind), pos);
30974
+ return finishNode(factoryCreateToken(kind), pos);
30949
30975
  }
30950
30976
  function parseModifiers(allowDecorators, permitConstAsModifier, stopOnStartOfClassStaticBlock) {
30951
30977
  const pos = getNodePos();
@@ -30982,7 +31008,7 @@ var Parser;
30982
31008
  if (token() === 132 /* AsyncKeyword */) {
30983
31009
  const pos = getNodePos();
30984
31010
  nextToken();
30985
- const modifier = finishNode(factory2.createToken(132 /* AsyncKeyword */), pos);
31011
+ const modifier = finishNode(factoryCreateToken(132 /* AsyncKeyword */), pos);
30986
31012
  modifiers = createNodeArray([modifier], pos);
30987
31013
  }
30988
31014
  return modifiers;
@@ -31569,7 +31595,7 @@ var Parser;
31569
31595
  /*isDeclarationFile*/
31570
31596
  false,
31571
31597
  [],
31572
- factory2.createToken(1 /* EndOfFileToken */),
31598
+ factoryCreateToken(1 /* EndOfFileToken */),
31573
31599
  0 /* None */,
31574
31600
  noop
31575
31601
  );
@@ -32230,7 +32256,7 @@ var Parser;
32230
32256
  let node = parseJSDocIdentifierName();
32231
32257
  while (parseOptional(24 /* DotToken */)) {
32232
32258
  const name = parseJSDocIdentifierName();
32233
- node = finishNode(factory2.createPropertyAccessExpression(node, name), pos);
32259
+ node = finishNode(factoryCreatePropertyAccessExpression(node, name), pos);
32234
32260
  }
32235
32261
  return node;
32236
32262
  }
@@ -32521,7 +32547,7 @@ var Parser;
32521
32547
  const end2 = scanner.getTextPos();
32522
32548
  const originalKeywordKind = token();
32523
32549
  const text = internIdentifier(scanner.getTokenValue());
32524
- const result = finishNode(factory2.createIdentifier(text, originalKeywordKind), pos, end2);
32550
+ const result = finishNode(factoryCreateIdentifier(text, originalKeywordKind), pos, end2);
32525
32551
  nextTokenJSDoc();
32526
32552
  return result;
32527
32553
  }
@@ -36751,10 +36777,13 @@ function getNodeResolutionFeatures(options) {
36751
36777
  return features;
36752
36778
  }
36753
36779
  function getConditions(options, esmMode) {
36754
- const conditions = esmMode || getEmitModuleResolutionKind(options) === 100 /* Bundler */ ? ["node", "import"] : ["node", "require"];
36780
+ const conditions = esmMode || getEmitModuleResolutionKind(options) === 100 /* Bundler */ ? ["import"] : ["require"];
36755
36781
  if (!options.noDtsResolution) {
36756
36782
  conditions.push("types");
36757
36783
  }
36784
+ if (getEmitModuleResolutionKind(options) !== 100 /* Bundler */) {
36785
+ conditions.push("node");
36786
+ }
36758
36787
  return concatenate(conditions, options.customConditions);
36759
36788
  }
36760
36789
  function getAutomaticTypeDirectiveNames(options, host) {
@@ -37443,7 +37472,7 @@ function nodeModuleNameResolverWorker(features, moduleName, containingDirectory,
37443
37472
  isConfigLookup,
37444
37473
  candidateIsFromPackageJsonField: false
37445
37474
  };
37446
- if (traceEnabled && getEmitModuleResolutionKind(compilerOptions) >= 3 /* Node16 */ && getEmitModuleResolutionKind(compilerOptions) <= 99 /* NodeNext */) {
37475
+ if (traceEnabled && moduleResolutionSupportsPackageJsonExportsAndImports(getEmitModuleResolutionKind(compilerOptions))) {
37447
37476
  trace(host, Diagnostics.Resolving_in_0_mode_with_conditions_1, features & 32 /* EsmMode */ ? "ESM" : "CJS", conditions.map((c) => `'${c}'`).join(", "));
37448
37477
  }
37449
37478
  let result;
@@ -45802,7 +45831,9 @@ function createTypeChecker(host) {
45802
45831
  function getSuggestedImportSource(tsExtension) {
45803
45832
  const importSourceWithoutExtension = removeExtension(moduleReference, tsExtension);
45804
45833
  if (emitModuleKindIsNonNodeESM(moduleKind) || mode === 99 /* ESNext */) {
45805
- return importSourceWithoutExtension + (tsExtension === ".mts" /* Mts */ ? ".mjs" : tsExtension === ".cts" /* Cts */ ? ".cjs" : ".js");
45834
+ const preferTs = isDeclarationFileName(moduleReference) && shouldAllowImportingTsExtension(compilerOptions);
45835
+ const ext = tsExtension === ".mts" /* Mts */ || tsExtension === ".d.mts" /* Dmts */ ? preferTs ? ".mts" : ".mjs" : tsExtension === ".cts" /* Cts */ || tsExtension === ".d.mts" /* Dmts */ ? preferTs ? ".cts" : ".cjs" : preferTs ? ".ts" : ".js";
45836
+ return importSourceWithoutExtension + ext;
45806
45837
  }
45807
45838
  return importSourceWithoutExtension;
45808
45839
  }
@@ -78795,8 +78826,6 @@ function createTypeChecker(host) {
78795
78826
  } else {
78796
78827
  if (moduleKind >= 5 /* ES2015 */ && getSourceFileOfNode(node).impliedNodeFormat === void 0 && !node.isTypeOnly && !(node.flags & 16777216 /* Ambient */)) {
78797
78828
  grammarErrorOnNode(node, Diagnostics.Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead);
78798
- } else if (!(node.flags & 16777216 /* Ambient */) && getEmitModuleResolutionKind(compilerOptions) === 100 /* Bundler */) {
78799
- grammarErrorOnNode(node, Diagnostics.Import_assignment_is_not_allowed_when_moduleResolution_is_set_to_bundler_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead);
78800
78829
  }
78801
78830
  }
78802
78831
  }
@@ -79003,8 +79032,6 @@ function createTypeChecker(host) {
79003
79032
  grammarErrorOnNode(node, Diagnostics.Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead);
79004
79033
  } else if (moduleKind === 4 /* System */ && !(node.flags & 16777216 /* Ambient */)) {
79005
79034
  grammarErrorOnNode(node, Diagnostics.Export_assignment_is_not_supported_when_module_flag_is_system);
79006
- } else if (getEmitModuleResolutionKind(compilerOptions) === 100 /* Bundler */ && !(node.flags & 16777216 /* Ambient */)) {
79007
- grammarErrorOnNode(node, Diagnostics.Export_assignment_cannot_be_used_when_moduleResolution_is_set_to_bundler_Consider_using_export_default_or_another_module_format_instead);
79008
79035
  }
79009
79036
  }
79010
79037
  }
@@ -115243,10 +115270,10 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
115243
115270
  }
115244
115271
  }
115245
115272
  if (options.preserveValueImports && getEmitModuleKind(options) < 5 /* ES2015 */) {
115246
- createDiagnosticForOptionName(Diagnostics.Option_preserveValueImports_can_only_be_used_when_module_is_set_to_es2015_or_later, "preserveValueImports");
115273
+ createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later, "preserveValueImports");
115247
115274
  }
115275
+ const moduleKind = getEmitModuleKind(options);
115248
115276
  if (options.verbatimModuleSyntax) {
115249
- const moduleKind = getEmitModuleKind(options);
115250
115277
  if (moduleKind === 2 /* AMD */ || moduleKind === 3 /* UMD */ || moduleKind === 4 /* System */) {
115251
115278
  createDiagnosticForOptionName(Diagnostics.Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System, "verbatimModuleSyntax");
115252
115279
  }
@@ -115265,13 +115292,16 @@ function createProgram(rootNamesOrOptions, _options, _host, _oldProgram, _config
115265
115292
  }
115266
115293
  const moduleResolution = getEmitModuleResolutionKind(options);
115267
115294
  if (options.resolvePackageJsonExports && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {
115268
- createOptionValueDiagnostic("resolvePackageJsonExports", Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "resolvePackageJsonExports");
115295
+ createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "resolvePackageJsonExports");
115269
115296
  }
115270
115297
  if (options.resolvePackageJsonImports && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {
115271
- createOptionValueDiagnostic("resolvePackageJsonImports", Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "resolvePackageJsonImports");
115298
+ createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "resolvePackageJsonImports");
115272
115299
  }
115273
115300
  if (options.customConditions && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {
115274
- createOptionValueDiagnostic("customConditions", Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "customConditions");
115301
+ createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "customConditions");
115302
+ }
115303
+ if (moduleResolution === 100 /* Bundler */ && !emitModuleKindIsNonNodeESM(moduleKind)) {
115304
+ createOptionValueDiagnostic("moduleResolution", Diagnostics.Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later, "bundler");
115275
115305
  }
115276
115306
  if (!options.noEmit && !options.suppressOutputPathCheck) {
115277
115307
  const emitHost = getEmitHost();