@typescript-deploys/pr-build 5.0.0-pr-49929-73 → 5.0.0-pr-52280-7

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.
@@ -42,7 +42,7 @@ var ts = (() => {
42
42
  "src/compiler/corePublic.ts"() {
43
43
  "use strict";
44
44
  versionMajorMinor = "5.0";
45
- version = `${versionMajorMinor}.0-insiders.20230116`;
45
+ version = `${versionMajorMinor}.0-insiders.20230118`;
46
46
  Comparison = /* @__PURE__ */ ((Comparison3) => {
47
47
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
48
48
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -3900,14 +3900,15 @@ ${lanes.join("\n")}
3900
3900
  SyntaxKind5[SyntaxKind5["JSDocSeeTag"] = 350] = "JSDocSeeTag";
3901
3901
  SyntaxKind5[SyntaxKind5["JSDocPropertyTag"] = 351] = "JSDocPropertyTag";
3902
3902
  SyntaxKind5[SyntaxKind5["JSDocThrowsTag"] = 352] = "JSDocThrowsTag";
3903
- SyntaxKind5[SyntaxKind5["SyntaxList"] = 353] = "SyntaxList";
3904
- SyntaxKind5[SyntaxKind5["NotEmittedStatement"] = 354] = "NotEmittedStatement";
3905
- SyntaxKind5[SyntaxKind5["PartiallyEmittedExpression"] = 355] = "PartiallyEmittedExpression";
3906
- SyntaxKind5[SyntaxKind5["CommaListExpression"] = 356] = "CommaListExpression";
3907
- SyntaxKind5[SyntaxKind5["MergeDeclarationMarker"] = 357] = "MergeDeclarationMarker";
3908
- SyntaxKind5[SyntaxKind5["EndOfDeclarationMarker"] = 358] = "EndOfDeclarationMarker";
3909
- SyntaxKind5[SyntaxKind5["SyntheticReferenceExpression"] = 359] = "SyntheticReferenceExpression";
3910
- SyntaxKind5[SyntaxKind5["Count"] = 360] = "Count";
3903
+ SyntaxKind5[SyntaxKind5["JSDocSatisfiesTag"] = 353] = "JSDocSatisfiesTag";
3904
+ SyntaxKind5[SyntaxKind5["SyntaxList"] = 354] = "SyntaxList";
3905
+ SyntaxKind5[SyntaxKind5["NotEmittedStatement"] = 355] = "NotEmittedStatement";
3906
+ SyntaxKind5[SyntaxKind5["PartiallyEmittedExpression"] = 356] = "PartiallyEmittedExpression";
3907
+ SyntaxKind5[SyntaxKind5["CommaListExpression"] = 357] = "CommaListExpression";
3908
+ SyntaxKind5[SyntaxKind5["MergeDeclarationMarker"] = 358] = "MergeDeclarationMarker";
3909
+ SyntaxKind5[SyntaxKind5["EndOfDeclarationMarker"] = 359] = "EndOfDeclarationMarker";
3910
+ SyntaxKind5[SyntaxKind5["SyntheticReferenceExpression"] = 360] = "SyntheticReferenceExpression";
3911
+ SyntaxKind5[SyntaxKind5["Count"] = 361] = "Count";
3911
3912
  SyntaxKind5[SyntaxKind5["FirstAssignment"] = 63 /* EqualsToken */] = "FirstAssignment";
3912
3913
  SyntaxKind5[SyntaxKind5["LastAssignment"] = 78 /* CaretEqualsToken */] = "LastAssignment";
3913
3914
  SyntaxKind5[SyntaxKind5["FirstCompoundAssignment"] = 64 /* PlusEqualsToken */] = "FirstCompoundAssignment";
@@ -3936,9 +3937,9 @@ ${lanes.join("\n")}
3936
3937
  SyntaxKind5[SyntaxKind5["LastStatement"] = 256 /* DebuggerStatement */] = "LastStatement";
3937
3938
  SyntaxKind5[SyntaxKind5["FirstNode"] = 163 /* QualifiedName */] = "FirstNode";
3938
3939
  SyntaxKind5[SyntaxKind5["FirstJSDocNode"] = 312 /* JSDocTypeExpression */] = "FirstJSDocNode";
3939
- SyntaxKind5[SyntaxKind5["LastJSDocNode"] = 352 /* JSDocThrowsTag */] = "LastJSDocNode";
3940
+ SyntaxKind5[SyntaxKind5["LastJSDocNode"] = 353 /* JSDocSatisfiesTag */] = "LastJSDocNode";
3940
3941
  SyntaxKind5[SyntaxKind5["FirstJSDocTagNode"] = 330 /* JSDocTag */] = "FirstJSDocTagNode";
3941
- SyntaxKind5[SyntaxKind5["LastJSDocTagNode"] = 352 /* JSDocThrowsTag */] = "LastJSDocTagNode";
3942
+ SyntaxKind5[SyntaxKind5["LastJSDocTagNode"] = 353 /* JSDocSatisfiesTag */] = "LastJSDocTagNode";
3942
3943
  SyntaxKind5[SyntaxKind5["FirstContextualKeyword"] = 126 /* AbstractKeyword */] = "FirstContextualKeyword";
3943
3944
  SyntaxKind5[SyntaxKind5["LastContextualKeyword"] = 162 /* OfKeyword */] = "LastContextualKeyword";
3944
3945
  return SyntaxKind5;
@@ -7171,7 +7172,6 @@ ${lanes.join("\n")}
7171
7172
  An_export_declaration_cannot_have_modifiers: diag(1193, 1 /* Error */, "An_export_declaration_cannot_have_modifiers_1193", "An export declaration cannot have modifiers."),
7172
7173
  Export_declarations_are_not_permitted_in_a_namespace: diag(1194, 1 /* Error */, "Export_declarations_are_not_permitted_in_a_namespace_1194", "Export declarations are not permitted in a namespace."),
7173
7174
  export_Asterisk_does_not_re_export_a_default: diag(1195, 1 /* Error */, "export_Asterisk_does_not_re_export_a_default_1195", "'export *' does not re-export a default."),
7174
- Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified: diag(1196, 1 /* Error */, "Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified_1196", "Catch clause variable type annotation must be 'any' or 'unknown' if specified."),
7175
7175
  Catch_clause_variable_cannot_have_an_initializer: diag(1197, 1 /* Error */, "Catch_clause_variable_cannot_have_an_initializer_1197", "Catch clause variable cannot have an initializer."),
7176
7176
  An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive: diag(1198, 1 /* Error */, "An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198", "An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive."),
7177
7177
  Unterminated_Unicode_escape_sequence: diag(1199, 1 /* Error */, "Unterminated_Unicode_escape_sequence_1199", "Unterminated Unicode escape sequence."),
@@ -8117,7 +8117,7 @@ ${lanes.join("\n")}
8117
8117
  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'."),
8118
8118
  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'."),
8119
8119
  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."),
8120
- Option_allowImportingTsExtensions_can_only_be_used_when_moduleResolution_is_set_to_bundler_and_either_noEmit_or_emitDeclarationOnly_is_set: diag(5096, 1 /* Error */, "Option_allowImportingTsExtensions_can_only_be_used_when_moduleResolution_is_set_to_bundler_and_eithe_5096", "Option 'allowImportingTsExtensions' can only be used when 'moduleResolution' is set to 'bundler' and either 'noEmit' or 'emitDeclarationOnly' is set."),
8120
+ 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."),
8121
8121
  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."),
8122
8122
  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'."),
8123
8123
  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.`),
@@ -9039,7 +9039,8 @@ ${lanes.join("\n")}
9039
9039
  _0_is_possibly_null: diag(18047, 1 /* Error */, "_0_is_possibly_null_18047", "'{0}' is possibly 'null'."),
9040
9040
  _0_is_possibly_undefined: diag(18048, 1 /* Error */, "_0_is_possibly_undefined_18048", "'{0}' is possibly 'undefined'."),
9041
9041
  _0_is_possibly_null_or_undefined: diag(18049, 1 /* Error */, "_0_is_possibly_null_or_undefined_18049", "'{0}' is possibly 'null' or 'undefined'."),
9042
- The_value_0_cannot_be_used_here: diag(18050, 1 /* Error */, "The_value_0_cannot_be_used_here_18050", "The value '{0}' cannot be used here.")
9042
+ The_value_0_cannot_be_used_here: diag(18050, 1 /* Error */, "The_value_0_cannot_be_used_here_18050", "The value '{0}' cannot be used here."),
9043
+ Compiler_option_0_cannot_be_given_an_empty_string: diag(18051, 1 /* Error */, "Compiler_option_0_cannot_be_given_an_empty_string_18051", "Compiler option '{0}' cannot be given an empty string.")
9043
9044
  };
9044
9045
  }
9045
9046
  });
@@ -11761,6 +11762,9 @@ ${lanes.join("\n")}
11761
11762
  function getJSDocTemplateTag(node) {
11762
11763
  return getFirstJSDocTag(node, isJSDocTemplateTag);
11763
11764
  }
11765
+ function getJSDocSatisfiesTag(node) {
11766
+ return getFirstJSDocTag(node, isJSDocSatisfiesTag);
11767
+ }
11764
11768
  function getJSDocTypeTag(node) {
11765
11769
  const tag = getFirstJSDocTag(node, isJSDocTypeTag);
11766
11770
  if (tag && tag.typeExpression && tag.typeExpression.type) {
@@ -12353,8 +12357,8 @@ ${lanes.join("\n")}
12353
12357
  case 227 /* SpreadElement */:
12354
12358
  case 231 /* AsExpression */:
12355
12359
  case 229 /* OmittedExpression */:
12356
- case 356 /* CommaListExpression */:
12357
- case 355 /* PartiallyEmittedExpression */:
12360
+ case 357 /* CommaListExpression */:
12361
+ case 356 /* PartiallyEmittedExpression */:
12358
12362
  case 235 /* SatisfiesExpression */:
12359
12363
  return true;
12360
12364
  default:
@@ -12539,7 +12543,7 @@ ${lanes.join("\n")}
12539
12543
  return kind === 259 /* FunctionDeclaration */ || kind === 279 /* MissingDeclaration */ || kind === 260 /* ClassDeclaration */ || kind === 261 /* InterfaceDeclaration */ || kind === 262 /* TypeAliasDeclaration */ || kind === 263 /* EnumDeclaration */ || kind === 264 /* ModuleDeclaration */ || kind === 269 /* ImportDeclaration */ || kind === 268 /* ImportEqualsDeclaration */ || kind === 275 /* ExportDeclaration */ || kind === 274 /* ExportAssignment */ || kind === 267 /* NamespaceExportDeclaration */;
12540
12544
  }
12541
12545
  function isStatementKindButNotDeclarationKind(kind) {
12542
- return kind === 249 /* BreakStatement */ || kind === 248 /* ContinueStatement */ || kind === 256 /* DebuggerStatement */ || kind === 243 /* DoStatement */ || kind === 241 /* ExpressionStatement */ || kind === 239 /* EmptyStatement */ || kind === 246 /* ForInStatement */ || kind === 247 /* ForOfStatement */ || kind === 245 /* ForStatement */ || kind === 242 /* IfStatement */ || kind === 253 /* LabeledStatement */ || kind === 250 /* ReturnStatement */ || kind === 252 /* SwitchStatement */ || kind === 254 /* ThrowStatement */ || kind === 255 /* TryStatement */ || kind === 240 /* VariableStatement */ || kind === 244 /* WhileStatement */ || kind === 251 /* WithStatement */ || kind === 354 /* NotEmittedStatement */ || kind === 358 /* EndOfDeclarationMarker */ || kind === 357 /* MergeDeclarationMarker */;
12546
+ return kind === 249 /* BreakStatement */ || kind === 248 /* ContinueStatement */ || kind === 256 /* DebuggerStatement */ || kind === 243 /* DoStatement */ || kind === 241 /* ExpressionStatement */ || kind === 239 /* EmptyStatement */ || kind === 246 /* ForInStatement */ || kind === 247 /* ForOfStatement */ || kind === 245 /* ForStatement */ || kind === 242 /* IfStatement */ || kind === 253 /* LabeledStatement */ || kind === 250 /* ReturnStatement */ || kind === 252 /* SwitchStatement */ || kind === 254 /* ThrowStatement */ || kind === 255 /* TryStatement */ || kind === 240 /* VariableStatement */ || kind === 244 /* WhileStatement */ || kind === 251 /* WithStatement */ || kind === 355 /* NotEmittedStatement */ || kind === 359 /* EndOfDeclarationMarker */ || kind === 358 /* MergeDeclarationMarker */;
12543
12547
  }
12544
12548
  function isDeclaration(node) {
12545
12549
  if (node.kind === 165 /* TypeParameter */) {
@@ -12600,13 +12604,13 @@ ${lanes.join("\n")}
12600
12604
  return kind === 292 /* CaseClause */ || kind === 293 /* DefaultClause */;
12601
12605
  }
12602
12606
  function isJSDocNode(node) {
12603
- return node.kind >= 312 /* FirstJSDocNode */ && node.kind <= 352 /* LastJSDocNode */;
12607
+ return node.kind >= 312 /* FirstJSDocNode */ && node.kind <= 353 /* LastJSDocNode */;
12604
12608
  }
12605
12609
  function isJSDocCommentContainingNode(node) {
12606
12610
  return node.kind === 323 /* JSDoc */ || node.kind === 322 /* JSDocNamepathType */ || node.kind === 324 /* JSDocText */ || isJSDocLinkLike(node) || isJSDocTag(node) || isJSDocTypeLiteral(node) || isJSDocSignature(node);
12607
12611
  }
12608
12612
  function isJSDocTag(node) {
12609
- return node.kind >= 330 /* FirstJSDocTagNode */ && node.kind <= 352 /* LastJSDocTagNode */;
12613
+ return node.kind >= 330 /* FirstJSDocTagNode */ && node.kind <= 353 /* LastJSDocTagNode */;
12610
12614
  }
12611
12615
  function isSetAccessor(node) {
12612
12616
  return node.kind === 175 /* SetAccessor */;
@@ -13026,7 +13030,7 @@ ${lanes.join("\n")}
13026
13030
  if (includeJsDoc && hasJSDocNodes(node)) {
13027
13031
  return getTokenPosOfNode(node.jsDoc[0], sourceFile);
13028
13032
  }
13029
- if (node.kind === 353 /* SyntaxList */ && node._children.length > 0) {
13033
+ if (node.kind === 354 /* SyntaxList */ && node._children.length > 0) {
13030
13034
  return getTokenPosOfNode(node._children[0], sourceFile, includeJsDoc);
13031
13035
  }
13032
13036
  return skipTrivia(
@@ -14894,7 +14898,7 @@ ${lanes.join("\n")}
14894
14898
  return ownsJSDocTag(hostNode, jsDoc) ? [jsDoc] : void 0;
14895
14899
  }
14896
14900
  function ownsJSDocTag(hostNode, tag) {
14897
- return !isJSDocTypeTag(tag) || !tag.parent || !isJSDoc(tag.parent) || !isParenthesizedExpression(tag.parent.parent) || tag.parent.parent === hostNode;
14901
+ return !(isJSDocTypeTag(tag) || isJSDocSatisfiesTag(tag)) || !tag.parent || !isJSDoc(tag.parent) || !isParenthesizedExpression(tag.parent.parent) || tag.parent.parent === hostNode;
14898
14902
  }
14899
14903
  function getNextJSDocCommentLocation(node) {
14900
14904
  const parent2 = node.parent;
@@ -15430,7 +15434,7 @@ ${lanes.join("\n")}
15430
15434
  }
15431
15435
  function getOperatorPrecedence(nodeKind, operatorKind, hasArguments) {
15432
15436
  switch (nodeKind) {
15433
- case 356 /* CommaListExpression */:
15437
+ case 357 /* CommaListExpression */:
15434
15438
  return 0 /* Comma */;
15435
15439
  case 227 /* SpreadElement */:
15436
15440
  return 1 /* Spread */;
@@ -16400,14 +16404,23 @@ ${lanes.join("\n")}
16400
16404
  }
16401
16405
  return 0 /* None */;
16402
16406
  }
16407
+ function isBinaryLogicalOperator(token) {
16408
+ return token === 56 /* BarBarToken */ || token === 55 /* AmpersandAmpersandToken */;
16409
+ }
16403
16410
  function isLogicalOperator(token) {
16404
- return token === 56 /* BarBarToken */ || token === 55 /* AmpersandAmpersandToken */ || token === 53 /* ExclamationToken */;
16411
+ return isBinaryLogicalOperator(token) || token === 53 /* ExclamationToken */;
16405
16412
  }
16406
16413
  function isLogicalOrCoalescingAssignmentOperator(token) {
16407
16414
  return token === 75 /* BarBarEqualsToken */ || token === 76 /* AmpersandAmpersandEqualsToken */ || token === 77 /* QuestionQuestionEqualsToken */;
16408
16415
  }
16409
16416
  function isLogicalOrCoalescingAssignmentExpression(expr) {
16410
- return isLogicalOrCoalescingAssignmentOperator(expr.operatorToken.kind);
16417
+ return isBinaryExpression(expr) && isLogicalOrCoalescingAssignmentOperator(expr.operatorToken.kind);
16418
+ }
16419
+ function isLogicalOrCoalescingBinaryOperator(token) {
16420
+ return isBinaryLogicalOperator(token) || token === 60 /* QuestionQuestionToken */;
16421
+ }
16422
+ function isLogicalOrCoalescingBinaryExpression(expr) {
16423
+ return isBinaryExpression(expr) && isLogicalOrCoalescingBinaryOperator(expr.operatorToken.kind);
16411
16424
  }
16412
16425
  function isAssignmentOperator(token) {
16413
16426
  return token >= 63 /* FirstAssignment */ && token <= 78 /* LastAssignment */;
@@ -17044,7 +17057,7 @@ ${lanes.join("\n")}
17044
17057
  case 209 /* ElementAccessExpression */:
17045
17058
  case 208 /* PropertyAccessExpression */:
17046
17059
  case 232 /* NonNullExpression */:
17047
- case 355 /* PartiallyEmittedExpression */:
17060
+ case 356 /* PartiallyEmittedExpression */:
17048
17061
  case 235 /* SatisfiesExpression */:
17049
17062
  node = node.expression;
17050
17063
  continue;
@@ -18285,7 +18298,7 @@ ${lanes.join("\n")}
18285
18298
  return parent2.types;
18286
18299
  case 186 /* TupleType */:
18287
18300
  case 206 /* ArrayLiteralExpression */:
18288
- case 356 /* CommaListExpression */:
18301
+ case 357 /* CommaListExpression */:
18289
18302
  case 272 /* NamedImports */:
18290
18303
  case 276 /* NamedExports */:
18291
18304
  return parent2.elements;
@@ -18470,6 +18483,16 @@ ${lanes.join("\n")}
18470
18483
  const kind = node.kind;
18471
18484
  return (kind === 208 /* PropertyAccessExpression */ || kind === 209 /* ElementAccessExpression */) && isNonNullExpression(node.expression);
18472
18485
  }
18486
+ function isJSDocSatisfiesExpression(node) {
18487
+ return isInJSFile(node) && isParenthesizedExpression(node) && hasJSDocNodes(node) && !!getJSDocSatisfiesTag(node);
18488
+ }
18489
+ function getJSDocSatisfiesExpressionType(node) {
18490
+ return Debug.checkDefined(tryGetJSDocSatisfiesTypeNode(node));
18491
+ }
18492
+ function tryGetJSDocSatisfiesTypeNode(node) {
18493
+ const tag = getJSDocSatisfiesTag(node);
18494
+ return tag && tag.typeExpression && tag.typeExpression.type;
18495
+ }
18473
18496
  var resolvingEmptyArray, externalHelpersModuleNameText, defaultMaximumTruncationLength, noTruncationMaximumTruncationLength, stringWriter, GetLiteralTextFlags, fullTripleSlashReferencePathRegEx, fullTripleSlashReferenceTypeReferenceDirectiveRegEx, fullTripleSlashAMDReferencePathRegEx, defaultLibReferenceRegEx, AssignmentKind, FunctionFlags, Associativity, OperatorPrecedence, templateSubstitutionRegExp, doubleQuoteEscapedCharsRegExp, singleQuoteEscapedCharsRegExp, backtickQuoteEscapedCharsRegExp, escapedCharsMap, nonAsciiCharacters, jsxDoubleQuoteEscapedCharsRegExp, jsxSingleQuoteEscapedCharsRegExp, jsxEscapedCharsMap, indentStrings, base64Digits, carriageReturnLineFeed, lineFeed, AccessKind, objectAllocator, objectAllocatorPatchers, localizedDiagnosticMessages, reservedCharacterPattern, wildcardCharCodes, commonPackageFolders, implicitExcludePathRegexPattern, filesMatcher, directoriesMatcher, excludeMatcher, wildcardMatchers, supportedTSExtensions, supportedTSExtensionsFlat, supportedTSExtensionsWithJson, supportedTSExtensionsForExtractExtension, supportedJSExtensions, supportedJSExtensionsFlat, allSupportedExtensions, allSupportedExtensionsWithJson, supportedDeclarationExtensions, supportedTSImplementationExtensions, ModuleSpecifierEnding, extensionsToRemove, emptyFileSystemEntries;
18474
18497
  var init_utilities = __esm({
18475
18498
  "src/compiler/utilities.ts"() {
@@ -19688,6 +19711,12 @@ ${lanes.join("\n")}
19688
19711
  get updateJSDocThrowsTag() {
19689
19712
  return getJSDocTypeLikeTagUpdateFunction(352 /* JSDocThrowsTag */);
19690
19713
  },
19714
+ get createJSDocSatisfiesTag() {
19715
+ return getJSDocTypeLikeTagCreateFunction(353 /* JSDocSatisfiesTag */);
19716
+ },
19717
+ get updateJSDocSatisfiesTag() {
19718
+ return getJSDocTypeLikeTagUpdateFunction(353 /* JSDocSatisfiesTag */);
19719
+ },
19691
19720
  createJSDocEnumTag: createJSDocEnumTag2,
19692
19721
  updateJSDocEnumTag,
19693
19722
  createJSDocUnknownTag,
@@ -22847,18 +22876,18 @@ ${lanes.join("\n")}
22847
22876
  return node;
22848
22877
  }
22849
22878
  function createSyntaxList3(children) {
22850
- const node = createBaseNode(353 /* SyntaxList */);
22879
+ const node = createBaseNode(354 /* SyntaxList */);
22851
22880
  node._children = children;
22852
22881
  return node;
22853
22882
  }
22854
22883
  function createNotEmittedStatement2(original) {
22855
- const node = createBaseNode(354 /* NotEmittedStatement */);
22884
+ const node = createBaseNode(355 /* NotEmittedStatement */);
22856
22885
  node.original = original;
22857
22886
  setTextRange(node, original);
22858
22887
  return node;
22859
22888
  }
22860
22889
  function createPartiallyEmittedExpression2(expression, original) {
22861
- const node = createBaseNode(355 /* PartiallyEmittedExpression */);
22890
+ const node = createBaseNode(356 /* PartiallyEmittedExpression */);
22862
22891
  node.expression = expression;
22863
22892
  node.original = original;
22864
22893
  node.transformFlags |= propagateChildFlags(node.expression) | 1 /* ContainsTypeScript */;
@@ -22880,7 +22909,7 @@ ${lanes.join("\n")}
22880
22909
  return node;
22881
22910
  }
22882
22911
  function createCommaListExpression(elements) {
22883
- const node = createBaseNode(356 /* CommaListExpression */);
22912
+ const node = createBaseNode(357 /* CommaListExpression */);
22884
22913
  node.elements = createNodeArray2(sameFlatMap(elements, flattenCommaElements));
22885
22914
  node.transformFlags |= propagateChildrenFlags(node.elements);
22886
22915
  return node;
@@ -22889,19 +22918,19 @@ ${lanes.join("\n")}
22889
22918
  return node.elements !== elements ? update(createCommaListExpression(elements), node) : node;
22890
22919
  }
22891
22920
  function createEndOfDeclarationMarker(original) {
22892
- const node = createBaseNode(358 /* EndOfDeclarationMarker */);
22921
+ const node = createBaseNode(359 /* EndOfDeclarationMarker */);
22893
22922
  node.emitNode = {};
22894
22923
  node.original = original;
22895
22924
  return node;
22896
22925
  }
22897
22926
  function createMergeDeclarationMarker(original) {
22898
- const node = createBaseNode(357 /* MergeDeclarationMarker */);
22927
+ const node = createBaseNode(358 /* MergeDeclarationMarker */);
22899
22928
  node.emitNode = {};
22900
22929
  node.original = original;
22901
22930
  return node;
22902
22931
  }
22903
22932
  function createSyntheticReferenceExpression(expression, thisArg) {
22904
- const node = createBaseNode(359 /* SyntheticReferenceExpression */);
22933
+ const node = createBaseNode(360 /* SyntheticReferenceExpression */);
22905
22934
  node.expression = expression;
22906
22935
  node.thisArg = thisArg;
22907
22936
  node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.thisArg);
@@ -23141,7 +23170,7 @@ ${lanes.join("\n")}
23141
23170
  return updateSatisfiesExpression(outerExpression, expression, outerExpression.type);
23142
23171
  case 232 /* NonNullExpression */:
23143
23172
  return updateNonNullExpression2(outerExpression, expression);
23144
- case 355 /* PartiallyEmittedExpression */:
23173
+ case 356 /* PartiallyEmittedExpression */:
23145
23174
  return updatePartiallyEmittedExpression2(outerExpression, expression);
23146
23175
  }
23147
23176
  }
@@ -23675,7 +23704,7 @@ ${lanes.join("\n")}
23675
23704
  case 213 /* TypeAssertionExpression */:
23676
23705
  case 235 /* SatisfiesExpression */:
23677
23706
  case 231 /* AsExpression */:
23678
- case 355 /* PartiallyEmittedExpression */:
23707
+ case 356 /* PartiallyEmittedExpression */:
23679
23708
  case 214 /* ParenthesizedExpression */:
23680
23709
  case 106 /* SuperKeyword */:
23681
23710
  return -2147483648 /* OuterExpressionExcludes */;
@@ -25343,10 +25372,10 @@ ${lanes.join("\n")}
25343
25372
  return node.kind === 234 /* SyntheticExpression */;
25344
25373
  }
25345
25374
  function isPartiallyEmittedExpression(node) {
25346
- return node.kind === 355 /* PartiallyEmittedExpression */;
25375
+ return node.kind === 356 /* PartiallyEmittedExpression */;
25347
25376
  }
25348
25377
  function isCommaListExpression(node) {
25349
- return node.kind === 356 /* CommaListExpression */;
25378
+ return node.kind === 357 /* CommaListExpression */;
25350
25379
  }
25351
25380
  function isTemplateSpan(node) {
25352
25381
  return node.kind === 236 /* TemplateSpan */;
@@ -25490,16 +25519,16 @@ ${lanes.join("\n")}
25490
25519
  return node.kind === 279 /* MissingDeclaration */;
25491
25520
  }
25492
25521
  function isNotEmittedStatement(node) {
25493
- return node.kind === 354 /* NotEmittedStatement */;
25522
+ return node.kind === 355 /* NotEmittedStatement */;
25494
25523
  }
25495
25524
  function isSyntheticReference(node) {
25496
- return node.kind === 359 /* SyntheticReferenceExpression */;
25525
+ return node.kind === 360 /* SyntheticReferenceExpression */;
25497
25526
  }
25498
25527
  function isMergeDeclarationMarker(node) {
25499
- return node.kind === 357 /* MergeDeclarationMarker */;
25528
+ return node.kind === 358 /* MergeDeclarationMarker */;
25500
25529
  }
25501
25530
  function isEndOfDeclarationMarker(node) {
25502
- return node.kind === 358 /* EndOfDeclarationMarker */;
25531
+ return node.kind === 359 /* EndOfDeclarationMarker */;
25503
25532
  }
25504
25533
  function isExternalModuleReference(node) {
25505
25534
  return node.kind === 280 /* ExternalModuleReference */;
@@ -25690,11 +25719,14 @@ ${lanes.join("\n")}
25690
25719
  function isJSDocImplementsTag(node) {
25691
25720
  return node.kind === 332 /* JSDocImplementsTag */;
25692
25721
  }
25722
+ function isJSDocSatisfiesTag(node) {
25723
+ return node.kind === 353 /* JSDocSatisfiesTag */;
25724
+ }
25693
25725
  function isJSDocThrowsTag(node) {
25694
25726
  return node.kind === 352 /* JSDocThrowsTag */;
25695
25727
  }
25696
25728
  function isSyntaxList(n) {
25697
- return n.kind === 353 /* SyntaxList */;
25729
+ return n.kind === 354 /* SyntaxList */;
25698
25730
  }
25699
25731
  var init_nodeTests = __esm({
25700
25732
  "src/compiler/factory/nodeTests.ts"() {
@@ -26068,7 +26100,7 @@ ${lanes.join("\n")}
26068
26100
  return firstStatement !== void 0 && isPrologueDirective(firstStatement) && isUseStrictPrologue(firstStatement);
26069
26101
  }
26070
26102
  function isCommaSequence(node) {
26071
- return node.kind === 223 /* BinaryExpression */ && node.operatorToken.kind === 27 /* CommaToken */ || node.kind === 356 /* CommaListExpression */;
26103
+ return node.kind === 223 /* BinaryExpression */ && node.operatorToken.kind === 27 /* CommaToken */ || node.kind === 357 /* CommaListExpression */;
26072
26104
  }
26073
26105
  function isJSDocTypeAssertion(node) {
26074
26106
  return isParenthesizedExpression(node) && isInJSFile(node) && !!getJSDocTypeTag(node);
@@ -26091,7 +26123,7 @@ ${lanes.join("\n")}
26091
26123
  return (kinds & 2 /* TypeAssertions */) !== 0;
26092
26124
  case 232 /* NonNullExpression */:
26093
26125
  return (kinds & 4 /* NonNullAssertions */) !== 0;
26094
- case 355 /* PartiallyEmittedExpression */:
26126
+ case 356 /* PartiallyEmittedExpression */:
26095
26127
  return (kinds & 8 /* PartiallyEmittedExpressions */) !== 0;
26096
26128
  }
26097
26129
  return false;
@@ -27500,7 +27532,7 @@ ${lanes.join("\n")}
27500
27532
  [279 /* MissingDeclaration */]: function forEachChildInMissingDeclaration(node, cbNode, cbNodes) {
27501
27533
  return visitNodes(cbNode, cbNodes, node.illegalDecorators) || visitNodes(cbNode, cbNodes, node.modifiers);
27502
27534
  },
27503
- [356 /* CommaListExpression */]: function forEachChildInCommaListExpression(node, cbNode, cbNodes) {
27535
+ [357 /* CommaListExpression */]: function forEachChildInCommaListExpression(node, cbNode, cbNodes) {
27504
27536
  return visitNodes(cbNode, cbNodes, node.elements);
27505
27537
  },
27506
27538
  [281 /* JsxElement */]: function forEachChildInJsxElement(node, cbNode, cbNodes) {
@@ -27572,6 +27604,7 @@ ${lanes.join("\n")}
27572
27604
  [347 /* JSDocTypeTag */]: forEachChildInJSDocTypeLikeTag,
27573
27605
  [346 /* JSDocThisTag */]: forEachChildInJSDocTypeLikeTag,
27574
27606
  [343 /* JSDocEnumTag */]: forEachChildInJSDocTypeLikeTag,
27607
+ [353 /* JSDocSatisfiesTag */]: forEachChildInJSDocTypeLikeTag,
27575
27608
  [352 /* JSDocThrowsTag */]: forEachChildInJSDocTypeLikeTag,
27576
27609
  [342 /* JSDocOverloadTag */]: forEachChildInJSDocTypeLikeTag,
27577
27610
  [326 /* JSDocSignature */]: function forEachChildInJSDocSignature(node, cbNode, _cbNodes) {
@@ -27591,7 +27624,7 @@ ${lanes.join("\n")}
27591
27624
  [339 /* JSDocReadonlyTag */]: forEachChildInJSDocTag,
27592
27625
  [334 /* JSDocDeprecatedTag */]: forEachChildInJSDocTag,
27593
27626
  [340 /* JSDocOverrideTag */]: forEachChildInJSDocTag,
27594
- [355 /* PartiallyEmittedExpression */]: forEachChildInPartiallyEmittedExpression
27627
+ [356 /* PartiallyEmittedExpression */]: forEachChildInPartiallyEmittedExpression
27595
27628
  };
27596
27629
  ((Parser2) => {
27597
27630
  const scanner2 = createScanner(
@@ -33484,6 +33517,9 @@ ${lanes.join("\n")}
33484
33517
  case "overload":
33485
33518
  tag = parseOverloadTag(start2, tagName, margin, indentText);
33486
33519
  break;
33520
+ case "satisfies":
33521
+ tag = parseSatisfiesTag(start2, tagName, margin, indentText);
33522
+ break;
33487
33523
  case "see":
33488
33524
  tag = parseSeeTag(start2, tagName, margin, indentText);
33489
33525
  break;
@@ -33792,6 +33828,14 @@ ${lanes.join("\n")}
33792
33828
  const className = parseExpressionWithTypeArgumentsForAugments();
33793
33829
  return finishNode(factory2.createJSDocAugmentsTag(tagName, className, parseTrailingTagComments(start2, getNodePos(), margin, indentText)), start2);
33794
33830
  }
33831
+ function parseSatisfiesTag(start2, tagName, margin, indentText) {
33832
+ const typeExpression = parseJSDocTypeExpression(
33833
+ /*mayOmitBraces*/
33834
+ false
33835
+ );
33836
+ const comments2 = margin !== void 0 && indentText !== void 0 ? parseTrailingTagComments(start2, getNodePos(), margin, indentText) : void 0;
33837
+ return finishNode(factory2.createJSDocSatisfiesTag(tagName, typeExpression, comments2), start2);
33838
+ }
33795
33839
  function parseExpressionWithTypeArgumentsForAugments() {
33796
33840
  const usedBrace = parseOptional(18 /* OpenBraceToken */);
33797
33841
  const pos = getNodePos();
@@ -35697,7 +35741,7 @@ ${lanes.join("\n")}
35697
35741
  const watchOptions = convertWatchOptionsFromJsonWorker(json.watchOptions, basePath, errors);
35698
35742
  json.compileOnSave = convertCompileOnSaveOptionFromJson(json, basePath, errors);
35699
35743
  let extendedConfigPath;
35700
- if (json.extends) {
35744
+ if (json.extends || json.extends === "") {
35701
35745
  if (!isCompilerOptionsValue(extendsOptionDeclaration, json.extends)) {
35702
35746
  errors.push(createCompilerDiagnostic(Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "extends", getCompilerOptionValueTypeString(extendsOptionDeclaration)));
35703
35747
  } else {
@@ -35824,7 +35868,11 @@ ${lanes.join("\n")}
35824
35868
  if (resolved.resolvedModule) {
35825
35869
  return resolved.resolvedModule.resolvedFileName;
35826
35870
  }
35827
- errors.push(createDiagnostic(Diagnostics.File_0_not_found, extendedConfig));
35871
+ if (extendedConfig === "") {
35872
+ errors.push(createDiagnostic(Diagnostics.Compiler_option_0_cannot_be_given_an_empty_string, "extends"));
35873
+ } else {
35874
+ errors.push(createDiagnostic(Diagnostics.File_0_not_found, extendedConfig));
35875
+ }
35828
35876
  return void 0;
35829
35877
  }
35830
35878
  function getExtendedConfig(sourceFile, extendedConfigPath, host, resolutionStack, errors, extendedConfigCache, result) {
@@ -37194,7 +37242,7 @@ ${lanes.join("\n")}
37194
37242
  {
37195
37243
  name: "allowImportingTsExtensions",
37196
37244
  type: "boolean",
37197
- affectsModuleResolution: true,
37245
+ affectsSemanticDiagnostics: true,
37198
37246
  category: Diagnostics.Modules,
37199
37247
  description: Diagnostics.Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set,
37200
37248
  defaultValueDescription: false
@@ -40181,7 +40229,7 @@ ${lanes.join("\n")}
40181
40229
  }
40182
40230
  }
40183
40231
  function shouldAllowImportingTsExtension(compilerOptions, fromFileName) {
40184
- return getEmitModuleResolutionKind(compilerOptions) === 100 /* Bundler */ && (!!compilerOptions.allowImportingTsExtensions || fromFileName && isDeclarationFileName(fromFileName));
40232
+ return !!compilerOptions.allowImportingTsExtensions || fromFileName && isDeclarationFileName(fromFileName);
40185
40233
  }
40186
40234
  function loadModuleFromGlobalCache(moduleName, projectName, compilerOptions, host, globalCache, packageJsonInfoCache) {
40187
40235
  const traceEnabled = isTraceEnabled(compilerOptions, host);
@@ -41072,13 +41120,12 @@ ${lanes.join("\n")}
41072
41120
  } else if (node.kind === 221 /* PrefixUnaryExpression */ && node.operator === 53 /* ExclamationToken */) {
41073
41121
  node = node.operand;
41074
41122
  } else {
41075
- return node.kind === 223 /* BinaryExpression */ && (node.operatorToken.kind === 55 /* AmpersandAmpersandToken */ || node.operatorToken.kind === 56 /* BarBarToken */ || node.operatorToken.kind === 60 /* QuestionQuestionToken */);
41123
+ return isLogicalOrCoalescingBinaryExpression(node);
41076
41124
  }
41077
41125
  }
41078
41126
  }
41079
41127
  function isLogicalAssignmentExpression(node) {
41080
- node = skipParentheses(node);
41081
- return isBinaryExpression(node) && isLogicalOrCoalescingAssignmentOperator(node.operatorToken.kind);
41128
+ return isLogicalOrCoalescingAssignmentExpression(skipParentheses(node));
41082
41129
  }
41083
41130
  function isTopLevelLogicalExpression(node) {
41084
41131
  while (isParenthesizedExpression(node.parent) || isPrefixUnaryExpression(node.parent) && node.parent.operator === 53 /* ExclamationToken */) {
@@ -41461,7 +41508,7 @@ ${lanes.join("\n")}
41461
41508
  };
41462
41509
  }
41463
41510
  const operator = node.operatorToken.kind;
41464
- if (operator === 55 /* AmpersandAmpersandToken */ || operator === 56 /* BarBarToken */ || operator === 60 /* QuestionQuestionToken */ || isLogicalOrCoalescingAssignmentOperator(operator)) {
41511
+ if (isLogicalOrCoalescingBinaryOperator(operator) || isLogicalOrCoalescingAssignmentOperator(operator)) {
41465
41512
  if (isTopLevelLogicalExpression(node)) {
41466
41513
  const postExpressionLabel = createBranchLabel();
41467
41514
  bindLogicalLikeExpression(node, postExpressionLabel, postExpressionLabel);
@@ -52185,6 +52232,9 @@ ${lanes.join("\n")}
52185
52232
  const isProperty = isPropertyDeclaration(declaration) && !hasAccessorModifier(declaration) || isPropertySignature(declaration) || isJSDocPropertyTag(declaration);
52186
52233
  const isOptional = includeOptionality && isOptionalDeclaration(declaration);
52187
52234
  const declaredType = tryGetTypeFromEffectiveTypeNode(declaration);
52235
+ if (!declaredType && isCatchClauseVariableDeclarationOrBindingElement(declaration)) {
52236
+ return useUnknownInCatchVariables ? unknownType : anyType;
52237
+ }
52188
52238
  if (declaredType) {
52189
52239
  return addOptionality(declaredType, isProperty, isOptional);
52190
52240
  }
@@ -52763,14 +52813,6 @@ ${lanes.join("\n")}
52763
52813
  }
52764
52814
  Debug.assertIsDefined(symbol.valueDeclaration);
52765
52815
  const declaration = symbol.valueDeclaration;
52766
- if (isCatchClauseVariableDeclarationOrBindingElement(declaration)) {
52767
- const typeNode = getEffectiveTypeAnnotationNode(declaration);
52768
- if (typeNode === void 0) {
52769
- return useUnknownInCatchVariables ? unknownType : anyType;
52770
- }
52771
- const type2 = getTypeOfNode(typeNode);
52772
- return isTypeAny(type2) || type2 === unknownType ? type2 : errorType;
52773
- }
52774
52816
  if (isSourceFile(declaration) && isJsonSourceFile(declaration)) {
52775
52817
  if (!declaration.statements.length) {
52776
52818
  return emptyObjectType;
@@ -66570,7 +66612,7 @@ ${lanes.join("\n")}
66570
66612
  return getNonMissingTypeOfSymbol(symbol);
66571
66613
  }
66572
66614
  function getControlFlowContainer(node) {
66573
- return findAncestor(node.parent, (node2) => isFunctionLike(node2) && !getImmediatelyInvokedFunctionExpression(node2) || node2.kind === 265 /* ModuleBlock */ || node2.kind === 308 /* SourceFile */ || node2.kind === 169 /* PropertyDeclaration */);
66615
+ return findAncestor(node.parent, (node2) => isFunctionLike(node2) && !getImmediatelyInvokedFunctionExpression(node2) || node2.kind === 265 /* ModuleBlock */ || node2.kind === 308 /* SourceFile */ || node2.kind === 295 /* CatchClause */ || node2.kind === 169 /* PropertyDeclaration */);
66574
66616
  }
66575
66617
  function isSymbolAssigned(symbol) {
66576
66618
  if (!symbol.valueDeclaration) {
@@ -66828,13 +66870,14 @@ ${lanes.join("\n")}
66828
66870
  const isParameter2 = getRootDeclaration(declaration).kind === 166 /* Parameter */;
66829
66871
  const declarationContainer = getControlFlowContainer(declaration);
66830
66872
  let flowContainer = getControlFlowContainer(node);
66873
+ const isCatch = flowContainer.kind === 295 /* CatchClause */;
66831
66874
  const isOuterVariable = flowContainer !== declarationContainer;
66832
66875
  const isSpreadDestructuringAssignmentTarget = node.parent && node.parent.parent && isSpreadAssignment(node.parent) && isDestructuringAssignmentTarget(node.parent.parent);
66833
66876
  const isModuleExports = symbol.flags & 134217728 /* ModuleExports */;
66834
66877
  while (flowContainer !== declarationContainer && (flowContainer.kind === 215 /* FunctionExpression */ || flowContainer.kind === 216 /* ArrowFunction */ || isObjectLiteralOrClassExpressionMethodOrAccessor(flowContainer)) && (isConstVariable(localOrExportSymbol) && type !== autoArrayType || isParameter2 && !isSymbolAssigned(localOrExportSymbol))) {
66835
66878
  flowContainer = getControlFlowContainer(flowContainer);
66836
66879
  }
66837
- const assumeInitialized = isParameter2 || isAlias || isOuterVariable || isSpreadDestructuringAssignmentTarget || isModuleExports || isSameScopedBindingElement(node, declaration) || type !== autoType && type !== autoArrayType && (!strictNullChecks || (type.flags & (3 /* AnyOrUnknown */ | 16384 /* Void */)) !== 0 || isInTypeQuery(node) || isInAmbientOrTypeNode(node) || node.parent.kind === 278 /* ExportSpecifier */) || node.parent.kind === 232 /* NonNullExpression */ || declaration.kind === 257 /* VariableDeclaration */ && declaration.exclamationToken || declaration.flags & 16777216 /* Ambient */;
66880
+ const assumeInitialized = isParameter2 || isCatch || isAlias || isOuterVariable || isSpreadDestructuringAssignmentTarget || isModuleExports || isSameScopedBindingElement(node, declaration) || type !== autoType && type !== autoArrayType && (!strictNullChecks || (type.flags & (3 /* AnyOrUnknown */ | 16384 /* Void */)) !== 0 || isInTypeQuery(node) || isInAmbientOrTypeNode(node) || node.parent.kind === 278 /* ExportSpecifier */) || node.parent.kind === 232 /* NonNullExpression */ || declaration.kind === 257 /* VariableDeclaration */ && declaration.exclamationToken || declaration.flags & 16777216 /* Ambient */;
66838
66881
  const initialType = assumeInitialized ? isParameter2 ? removeOptionalityFromDeclaredType(type, declaration) : type : type === autoType || type === autoArrayType ? undefinedType : getOptionalType(type);
66839
66882
  const flowType = getFlowTypeOfReference(node, type, initialType, flowContainer);
66840
66883
  if (!isEvolvingArrayOperationTarget(node) && (type === autoType || type === autoArrayType)) {
@@ -67359,7 +67402,7 @@ ${lanes.join("\n")}
67359
67402
  }
67360
67403
  }
67361
67404
  function getContextualTypeForVariableLikeDeclaration(declaration, contextFlags) {
67362
- const typeNode = getEffectiveTypeAnnotationNode(declaration);
67405
+ const typeNode = getEffectiveTypeAnnotationNode(declaration) || (isInJSFile(declaration) ? tryGetJSDocSatisfiesTypeNode(declaration) : void 0);
67363
67406
  if (typeNode) {
67364
67407
  return getTypeFromTypeNode(typeNode);
67365
67408
  }
@@ -67968,8 +68011,16 @@ ${lanes.join("\n")}
67968
68011
  Debug.assert(parent2.parent.kind === 225 /* TemplateExpression */);
67969
68012
  return getContextualTypeForSubstitutionExpression(parent2.parent, node);
67970
68013
  case 214 /* ParenthesizedExpression */: {
67971
- const tag = isInJSFile(parent2) ? getJSDocTypeTag(parent2) : void 0;
67972
- return !tag ? getContextualType2(parent2, contextFlags) : isJSDocTypeTag(tag) && isConstTypeReference(tag.typeExpression.type) ? getContextualType2(parent2, contextFlags) : getTypeFromTypeNode(tag.typeExpression.type);
68014
+ if (isInJSFile(parent2)) {
68015
+ if (isJSDocSatisfiesExpression(parent2)) {
68016
+ return getTypeFromTypeNode(getJSDocSatisfiesExpressionType(parent2));
68017
+ }
68018
+ const typeTag = getJSDocTypeTag(parent2);
68019
+ if (typeTag && !isConstTypeReference(typeTag.typeExpression.type)) {
68020
+ return getTypeFromTypeNode(typeTag.typeExpression.type);
68021
+ }
68022
+ }
68023
+ return getContextualType2(parent2, contextFlags);
67973
68024
  }
67974
68025
  case 232 /* NonNullExpression */:
67975
68026
  return getContextualType2(parent2, contextFlags);
@@ -72173,12 +72224,15 @@ ${lanes.join("\n")}
72173
72224
  }
72174
72225
  function checkSatisfiesExpression(node) {
72175
72226
  checkSourceElement(node.type);
72176
- const exprType = checkExpression(node.expression);
72177
- const targetType = getTypeFromTypeNode(node.type);
72227
+ return checkSatisfiesExpressionWorker(node.expression, node.type);
72228
+ }
72229
+ function checkSatisfiesExpressionWorker(expression, target, checkMode) {
72230
+ const exprType = checkExpression(expression, checkMode);
72231
+ const targetType = getTypeFromTypeNode(target);
72178
72232
  if (isErrorType(targetType)) {
72179
72233
  return targetType;
72180
72234
  }
72181
- checkTypeAssignableToAndOptionallyElaborate(exprType, targetType, node.type, node.expression, Diagnostics.Type_0_does_not_satisfy_the_expected_type_1);
72235
+ checkTypeAssignableToAndOptionallyElaborate(exprType, targetType, target, expression, Diagnostics.Type_0_does_not_satisfy_the_expected_type_1);
72182
72236
  return exprType;
72183
72237
  }
72184
72238
  function checkMetaProperty(node) {
@@ -73585,12 +73639,12 @@ ${lanes.join("\n")}
73585
73639
  void 0
73586
73640
  );
73587
73641
  const operator = operatorToken.kind;
73588
- if (operator === 55 /* AmpersandAmpersandToken */ || operator === 56 /* BarBarToken */ || operator === 60 /* QuestionQuestionToken */) {
73589
- if (operator === 55 /* AmpersandAmpersandToken */) {
73590
- let parent2 = node.parent;
73591
- while (parent2.kind === 214 /* ParenthesizedExpression */ || isBinaryExpression(parent2) && (parent2.operatorToken.kind === 55 /* AmpersandAmpersandToken */ || parent2.operatorToken.kind === 56 /* BarBarToken */)) {
73592
- parent2 = parent2.parent;
73593
- }
73642
+ if (isLogicalOrCoalescingBinaryOperator(operator)) {
73643
+ let parent2 = node.parent;
73644
+ while (parent2.kind === 214 /* ParenthesizedExpression */ || isLogicalOrCoalescingBinaryExpression(parent2)) {
73645
+ parent2 = parent2.parent;
73646
+ }
73647
+ if (operator === 55 /* AmpersandAmpersandToken */ || isIfStatement(parent2)) {
73594
73648
  checkTestingKnownTruthyCallableOrAwaitableType(node.left, leftType, isIfStatement(parent2) ? parent2.thenStatement : void 0);
73595
73649
  }
73596
73650
  checkTruthinessOfType(leftType, node.left);
@@ -73667,7 +73721,7 @@ ${lanes.join("\n")}
73667
73721
  return checkDestructuringAssignment(left, checkExpression(right, checkMode), checkMode, right.kind === 108 /* ThisKeyword */);
73668
73722
  }
73669
73723
  let leftType;
73670
- if (operator === 55 /* AmpersandAmpersandToken */ || operator === 56 /* BarBarToken */ || operator === 60 /* QuestionQuestionToken */) {
73724
+ if (isLogicalOrCoalescingBinaryOperator(operator)) {
73671
73725
  leftType = checkTruthinessExpression(left, checkMode);
73672
73726
  } else {
73673
73727
  leftType = checkExpression(left, checkMode);
@@ -74210,6 +74264,12 @@ ${lanes.join("\n")}
74210
74264
  }
74211
74265
  function checkDeclarationInitializer(declaration, checkMode, contextualType) {
74212
74266
  const initializer = getEffectiveInitializer(declaration);
74267
+ if (isInJSFile(declaration)) {
74268
+ const typeNode = tryGetJSDocSatisfiesTypeNode(declaration);
74269
+ if (typeNode) {
74270
+ return checkSatisfiesExpressionWorker(initializer, typeNode, checkMode);
74271
+ }
74272
+ }
74213
74273
  const type = getQuickTypeOfExpression(initializer) || (contextualType ? checkExpressionWithContextualType(
74214
74274
  initializer,
74215
74275
  contextualType,
@@ -74537,9 +74597,14 @@ ${lanes.join("\n")}
74537
74597
  }
74538
74598
  }
74539
74599
  function checkParenthesizedExpression(node, checkMode) {
74540
- if (hasJSDocNodes(node) && isJSDocTypeAssertion(node)) {
74541
- const type = getJSDocTypeAssertionType(node);
74542
- return checkAssertionWorker(type, type, node.expression, checkMode);
74600
+ if (hasJSDocNodes(node)) {
74601
+ if (isJSDocSatisfiesExpression(node)) {
74602
+ return checkSatisfiesExpressionWorker(node.expression, getJSDocSatisfiesExpressionType(node), checkMode);
74603
+ }
74604
+ if (isJSDocTypeAssertion(node)) {
74605
+ const type = getJSDocTypeAssertionType(node);
74606
+ return checkAssertionWorker(type, type, node.expression, checkMode);
74607
+ }
74543
74608
  }
74544
74609
  return checkExpression(node.expression, checkMode);
74545
74610
  }
@@ -76241,6 +76306,19 @@ ${lanes.join("\n")}
76241
76306
  function checkJSDocTypeTag(node) {
76242
76307
  checkSourceElement(node.typeExpression);
76243
76308
  }
76309
+ function checkJSDocSatisfiesTag(node) {
76310
+ checkSourceElement(node.typeExpression);
76311
+ const host2 = getEffectiveJSDocHost(node);
76312
+ if (host2) {
76313
+ const tags = getAllJSDocTags(host2, isJSDocSatisfiesTag);
76314
+ if (length(tags) > 1) {
76315
+ for (let i = 1; i < length(tags); i++) {
76316
+ const tagName = tags[i].tagName;
76317
+ error(tagName, Diagnostics._0_tag_already_specified, idText(tagName));
76318
+ }
76319
+ }
76320
+ }
76321
+ }
76244
76322
  function checkJSDocLinkLikeTag(node) {
76245
76323
  if (node.name) {
76246
76324
  resolveJSDocMemberName(
@@ -77026,15 +77104,24 @@ ${lanes.join("\n")}
77026
77104
  function checkTestingKnownTruthyCallableOrAwaitableType(condExpr, condType, body) {
77027
77105
  if (!strictNullChecks)
77028
77106
  return;
77029
- helper(condExpr, body);
77030
- while (isBinaryExpression(condExpr) && condExpr.operatorToken.kind === 56 /* BarBarToken */) {
77031
- condExpr = condExpr.left;
77032
- helper(condExpr, body);
77107
+ bothHelper(condExpr, body);
77108
+ function bothHelper(condExpr2, body2) {
77109
+ condExpr2 = skipParentheses(condExpr2);
77110
+ helper(condExpr2, body2);
77111
+ while (isBinaryExpression(condExpr2) && (condExpr2.operatorToken.kind === 56 /* BarBarToken */ || condExpr2.operatorToken.kind === 60 /* QuestionQuestionToken */)) {
77112
+ condExpr2 = skipParentheses(condExpr2.left);
77113
+ helper(condExpr2, body2);
77114
+ }
77033
77115
  }
77034
77116
  function helper(condExpr2, body2) {
77035
- const location = isBinaryExpression(condExpr2) && (condExpr2.operatorToken.kind === 56 /* BarBarToken */ || condExpr2.operatorToken.kind === 55 /* AmpersandAmpersandToken */) ? condExpr2.right : condExpr2;
77036
- if (isModuleExportsAccessExpression(location))
77117
+ const location = isLogicalOrCoalescingBinaryExpression(condExpr2) ? skipParentheses(condExpr2.right) : condExpr2;
77118
+ if (isModuleExportsAccessExpression(location)) {
77037
77119
  return;
77120
+ }
77121
+ if (isLogicalOrCoalescingBinaryExpression(location)) {
77122
+ bothHelper(location, body2);
77123
+ return;
77124
+ }
77038
77125
  const type = location === condExpr2 ? condType : checkTruthinessExpression(location);
77039
77126
  const isPropertyExpressionCast = isPropertyAccessExpression(location) && isTypeAssertion3(location.expression);
77040
77127
  if (!(getTypeFacts(type) & 4194304 /* Truthy */) || isPropertyExpressionCast)
@@ -77044,7 +77131,7 @@ ${lanes.join("\n")}
77044
77131
  if (callSignatures.length === 0 && !isPromise) {
77045
77132
  return;
77046
77133
  }
77047
- const testedNode = isIdentifier(location) ? location : isPropertyAccessExpression(location) ? location.name : isBinaryExpression(location) && isIdentifier(location.right) ? location.right : void 0;
77134
+ const testedNode = isIdentifier(location) ? location : isPropertyAccessExpression(location) ? location.name : void 0;
77048
77135
  const testedSymbol = testedNode && getSymbolAtLocation(testedNode);
77049
77136
  if (!testedSymbol && !isPromise) {
77050
77137
  return;
@@ -78002,18 +78089,8 @@ ${lanes.join("\n")}
78002
78089
  if (catchClause) {
78003
78090
  if (catchClause.variableDeclaration) {
78004
78091
  const declaration = catchClause.variableDeclaration;
78005
- const typeNode = getEffectiveTypeAnnotationNode(getRootDeclaration(declaration));
78006
- if (typeNode) {
78007
- const type = getTypeForVariableLikeDeclaration(
78008
- declaration,
78009
- /*includeOptionality*/
78010
- false,
78011
- 0 /* Normal */
78012
- );
78013
- if (type && !(type.flags & 3 /* AnyOrUnknown */)) {
78014
- grammarErrorOnFirstToken(typeNode, Diagnostics.Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified);
78015
- }
78016
- } else if (declaration.initializer) {
78092
+ checkVariableLikeDeclaration(declaration);
78093
+ if (declaration.initializer) {
78017
78094
  grammarErrorOnFirstToken(declaration.initializer, Diagnostics.Catch_clause_variable_cannot_have_an_initializer);
78018
78095
  } else {
78019
78096
  const blockLocals = catchClause.block.locals;
@@ -79845,6 +79922,8 @@ ${lanes.join("\n")}
79845
79922
  case 338 /* JSDocProtectedTag */:
79846
79923
  case 337 /* JSDocPrivateTag */:
79847
79924
  return checkJSDocAccessibilityModifiers(node);
79925
+ case 353 /* JSDocSatisfiesTag */:
79926
+ return checkJSDocSatisfiesTag(node);
79848
79927
  case 196 /* IndexedAccessType */:
79849
79928
  return checkIndexedAccessType(node);
79850
79929
  case 197 /* MappedType */:
@@ -84803,13 +84882,13 @@ ${lanes.join("\n")}
84803
84882
  );
84804
84883
  },
84805
84884
  // Transformation nodes
84806
- [355 /* PartiallyEmittedExpression */]: function visitEachChildOfPartiallyEmittedExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
84885
+ [356 /* PartiallyEmittedExpression */]: function visitEachChildOfPartiallyEmittedExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {
84807
84886
  return context.factory.updatePartiallyEmittedExpression(
84808
84887
  node,
84809
84888
  Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))
84810
84889
  );
84811
84890
  },
84812
- [356 /* CommaListExpression */]: function visitEachChildOfCommaListExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
84891
+ [357 /* CommaListExpression */]: function visitEachChildOfCommaListExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {
84813
84892
  return context.factory.updateCommaListExpression(
84814
84893
  node,
84815
84894
  nodesVisitor(node.elements, visitor, isExpression)
@@ -91644,7 +91723,7 @@ ${lanes.join("\n")}
91644
91723
  return visitObjectLiteralExpression(node);
91645
91724
  case 223 /* BinaryExpression */:
91646
91725
  return visitBinaryExpression(node, expressionResultIsUnused2);
91647
- case 356 /* CommaListExpression */:
91726
+ case 357 /* CommaListExpression */:
91648
91727
  return visitCommaListExpression(node, expressionResultIsUnused2);
91649
91728
  case 295 /* CatchClause */:
91650
91729
  return visitCatchClause(node);
@@ -93094,15 +93173,10 @@ ${lanes.join("\n")}
93094
93173
  if ((node.transformFlags & 16 /* ContainsES2021 */) === 0) {
93095
93174
  return node;
93096
93175
  }
93097
- switch (node.kind) {
93098
- case 223 /* BinaryExpression */:
93099
- const binaryExpression = node;
93100
- if (isLogicalOrCoalescingAssignmentExpression(binaryExpression)) {
93101
- return transformLogicalAssignment(binaryExpression);
93102
- }
93103
- default:
93104
- return visitEachChild(node, visitor, context);
93176
+ if (isLogicalOrCoalescingAssignmentExpression(node)) {
93177
+ return transformLogicalAssignment(node);
93105
93178
  }
93179
+ return visitEachChild(node, visitor, context);
93106
93180
  }
93107
93181
  function transformLogicalAssignment(binaryExpression) {
93108
93182
  const operator = binaryExpression.operatorToken;
@@ -94265,7 +94339,7 @@ ${lanes.join("\n")}
94265
94339
  return visitParenthesizedExpression(node, expressionResultIsUnused2);
94266
94340
  case 223 /* BinaryExpression */:
94267
94341
  return visitBinaryExpression(node, expressionResultIsUnused2);
94268
- case 356 /* CommaListExpression */:
94342
+ case 357 /* CommaListExpression */:
94269
94343
  return visitCommaListExpression(node, expressionResultIsUnused2);
94270
94344
  case 14 /* NoSubstitutionTemplateLiteral */:
94271
94345
  case 15 /* TemplateHead */:
@@ -97438,7 +97512,7 @@ ${lanes.join("\n")}
97438
97512
  switch (node.kind) {
97439
97513
  case 223 /* BinaryExpression */:
97440
97514
  return visitBinaryExpression(node);
97441
- case 356 /* CommaListExpression */:
97515
+ case 357 /* CommaListExpression */:
97442
97516
  return visitCommaListExpression(node);
97443
97517
  case 224 /* ConditionalExpression */:
97444
97518
  return visitConditionalExpression(node);
@@ -99783,9 +99857,9 @@ ${lanes.join("\n")}
99783
99857
  return visitFunctionDeclaration(node);
99784
99858
  case 260 /* ClassDeclaration */:
99785
99859
  return visitClassDeclaration(node);
99786
- case 357 /* MergeDeclarationMarker */:
99860
+ case 358 /* MergeDeclarationMarker */:
99787
99861
  return visitMergeDeclarationMarker(node);
99788
- case 358 /* EndOfDeclarationMarker */:
99862
+ case 359 /* EndOfDeclarationMarker */:
99789
99863
  return visitEndOfDeclarationMarker(node);
99790
99864
  default:
99791
99865
  return visitor(node);
@@ -99802,7 +99876,7 @@ ${lanes.join("\n")}
99802
99876
  return visitExpressionStatement(node);
99803
99877
  case 214 /* ParenthesizedExpression */:
99804
99878
  return visitParenthesizedExpression(node, valueIsDiscarded);
99805
- case 355 /* PartiallyEmittedExpression */:
99879
+ case 356 /* PartiallyEmittedExpression */:
99806
99880
  return visitPartiallyEmittedExpression(node, valueIsDiscarded);
99807
99881
  case 210 /* CallExpression */:
99808
99882
  if (isImportCall(node) && currentSourceFile.impliedNodeFormat === void 0) {
@@ -101924,9 +101998,9 @@ ${lanes.join("\n")}
101924
101998
  return visitCatchClause(node);
101925
101999
  case 238 /* Block */:
101926
102000
  return visitBlock(node);
101927
- case 357 /* MergeDeclarationMarker */:
102001
+ case 358 /* MergeDeclarationMarker */:
101928
102002
  return visitMergeDeclarationMarker(node);
101929
- case 358 /* EndOfDeclarationMarker */:
102003
+ case 359 /* EndOfDeclarationMarker */:
101930
102004
  return visitEndOfDeclarationMarker(node);
101931
102005
  default:
101932
102006
  return visitor(node);
@@ -102082,7 +102156,7 @@ ${lanes.join("\n")}
102082
102156
  return visitExpressionStatement(node);
102083
102157
  case 214 /* ParenthesizedExpression */:
102084
102158
  return visitParenthesizedExpression(node, valueIsDiscarded);
102085
- case 355 /* PartiallyEmittedExpression */:
102159
+ case 356 /* PartiallyEmittedExpression */:
102086
102160
  return visitPartiallyEmittedExpression(node, valueIsDiscarded);
102087
102161
  case 223 /* BinaryExpression */:
102088
102162
  if (isDestructuringAssignment(node)) {
@@ -104804,7 +104878,7 @@ ${lanes.join("\n")}
104804
104878
  }
104805
104879
  function transformNodes(resolver, host, factory2, options, nodes, transformers, allowDtsFiles) {
104806
104880
  var _a2, _b;
104807
- const enabledSyntaxKindFeatures = new Array(360 /* Count */);
104881
+ const enabledSyntaxKindFeatures = new Array(361 /* Count */);
104808
104882
  let lexicalEnvironmentVariableDeclarations;
104809
104883
  let lexicalEnvironmentFunctionDeclarations;
104810
104884
  let lexicalEnvironmentStatements;
@@ -106654,6 +106728,7 @@ ${lanes.join("\n")}
106654
106728
  case 346 /* JSDocThisTag */:
106655
106729
  case 347 /* JSDocTypeTag */:
106656
106730
  case 352 /* JSDocThrowsTag */:
106731
+ case 353 /* JSDocSatisfiesTag */:
106657
106732
  return emitJSDocSimpleTypedTag(node);
106658
106733
  case 348 /* JSDocTemplateTag */:
106659
106734
  return emitJSDocTemplateTag(node);
@@ -106661,9 +106736,9 @@ ${lanes.join("\n")}
106661
106736
  return emitJSDocTypedefTag(node);
106662
106737
  case 350 /* JSDocSeeTag */:
106663
106738
  return emitJSDocSeeTag(node);
106664
- case 354 /* NotEmittedStatement */:
106665
- case 358 /* EndOfDeclarationMarker */:
106666
- case 357 /* MergeDeclarationMarker */:
106739
+ case 355 /* NotEmittedStatement */:
106740
+ case 359 /* EndOfDeclarationMarker */:
106741
+ case 358 /* MergeDeclarationMarker */:
106667
106742
  return;
106668
106743
  }
106669
106744
  if (isExpression(node)) {
@@ -106762,18 +106837,18 @@ ${lanes.join("\n")}
106762
106837
  return emitJsxSelfClosingElement(node);
106763
106838
  case 285 /* JsxFragment */:
106764
106839
  return emitJsxFragment(node);
106765
- case 353 /* SyntaxList */:
106840
+ case 354 /* SyntaxList */:
106766
106841
  return Debug.fail("SyntaxList should not be printed");
106767
- case 354 /* NotEmittedStatement */:
106842
+ case 355 /* NotEmittedStatement */:
106768
106843
  return;
106769
- case 355 /* PartiallyEmittedExpression */:
106844
+ case 356 /* PartiallyEmittedExpression */:
106770
106845
  return emitPartiallyEmittedExpression(node);
106771
- case 356 /* CommaListExpression */:
106846
+ case 357 /* CommaListExpression */:
106772
106847
  return emitCommaList(node);
106773
- case 357 /* MergeDeclarationMarker */:
106774
- case 358 /* EndOfDeclarationMarker */:
106848
+ case 358 /* MergeDeclarationMarker */:
106849
+ case 359 /* EndOfDeclarationMarker */:
106775
106850
  return;
106776
- case 359 /* SyntheticReferenceExpression */:
106851
+ case 360 /* SyntheticReferenceExpression */:
106777
106852
  return Debug.fail("SyntheticReferenceExpression should not be printed");
106778
106853
  }
106779
106854
  }
@@ -110021,7 +110096,7 @@ ${lanes.join("\n")}
110021
110096
  emitLeadingComments(
110022
110097
  pos,
110023
110098
  /*isEmittedNode*/
110024
- node.kind !== 354 /* NotEmittedStatement */
110099
+ node.kind !== 355 /* NotEmittedStatement */
110025
110100
  );
110026
110101
  }
110027
110102
  if (!skipLeadingComments || pos >= 0 && (emitFlags & 1024 /* NoLeadingComments */) !== 0) {
@@ -110045,7 +110120,7 @@ ${lanes.join("\n")}
110045
110120
  containerPos = savedContainerPos;
110046
110121
  containerEnd = savedContainerEnd;
110047
110122
  declarationListContainerEnd = savedDeclarationListContainerEnd;
110048
- if (!skipTrailingComments && node.kind !== 354 /* NotEmittedStatement */) {
110123
+ if (!skipTrailingComments && node.kind !== 355 /* NotEmittedStatement */) {
110049
110124
  emitTrailingComments(end);
110050
110125
  }
110051
110126
  }
@@ -110317,7 +110392,7 @@ ${lanes.join("\n")}
110317
110392
  }
110318
110393
  } else {
110319
110394
  const source = sourceMapRange.source || sourceMapSource;
110320
- if (node.kind !== 354 /* NotEmittedStatement */ && (emitFlags & 32 /* NoLeadingSourceMap */) === 0 && sourceMapRange.pos >= 0) {
110395
+ if (node.kind !== 355 /* NotEmittedStatement */ && (emitFlags & 32 /* NoLeadingSourceMap */) === 0 && sourceMapRange.pos >= 0) {
110321
110396
  emitSourcePos(sourceMapRange.source || sourceMapSource, skipSourceTrivia(source, sourceMapRange.pos));
110322
110397
  }
110323
110398
  if (emitFlags & 128 /* NoNestedSourceMaps */) {
@@ -110332,7 +110407,7 @@ ${lanes.join("\n")}
110332
110407
  if (emitFlags & 128 /* NoNestedSourceMaps */) {
110333
110408
  sourceMapsDisabled = false;
110334
110409
  }
110335
- if (node.kind !== 354 /* NotEmittedStatement */ && (emitFlags & 64 /* NoTrailingSourceMap */) === 0 && sourceMapRange.end >= 0) {
110410
+ if (node.kind !== 355 /* NotEmittedStatement */ && (emitFlags & 64 /* NoTrailingSourceMap */) === 0 && sourceMapRange.end >= 0) {
110336
110411
  emitSourcePos(sourceMapRange.source || sourceMapSource, sourceMapRange.end);
110337
110412
  }
110338
110413
  }
@@ -114012,7 +114087,7 @@ ${lanes.join("\n")}
114012
114087
  createOptionValueDiagnostic("importsNotUsedAsValues", Diagnostics.Option_preserveValueImports_can_only_be_used_when_module_is_set_to_es2015_or_later);
114013
114088
  }
114014
114089
  if (options.allowImportingTsExtensions && !(options.noEmit || options.emitDeclarationOnly)) {
114015
- createOptionValueDiagnostic("allowImportingTsExtensions", Diagnostics.Option_allowImportingTsExtensions_can_only_be_used_when_moduleResolution_is_set_to_bundler_and_either_noEmit_or_emitDeclarationOnly_is_set);
114090
+ createOptionValueDiagnostic("allowImportingTsExtensions", Diagnostics.Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set);
114016
114091
  }
114017
114092
  const moduleResolution = getEmitModuleResolutionKind(options);
114018
114093
  if (options.resolvePackageJsonExports && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {
@@ -128458,7 +128533,7 @@ ${lanes.join("\n")}
128458
128533
  }
128459
128534
  }
128460
128535
  function createSyntaxList(nodes, parent2) {
128461
- const list = createNode(353 /* SyntaxList */, nodes.pos, nodes.end, parent2);
128536
+ const list = createNode(354 /* SyntaxList */, nodes.pos, nodes.end, parent2);
128462
128537
  list._children = [];
128463
128538
  let pos = nodes.pos;
128464
128539
  for (const node of nodes) {
@@ -129919,7 +129994,7 @@ ${lanes.join("\n")}
129919
129994
  if (!children.length) {
129920
129995
  return void 0;
129921
129996
  }
129922
- const child = find(children, (kid) => kid.kind < 312 /* FirstJSDocNode */ || kid.kind > 352 /* LastJSDocNode */);
129997
+ const child = find(children, (kid) => kid.kind < 312 /* FirstJSDocNode */ || kid.kind > 353 /* LastJSDocNode */);
129923
129998
  return child.kind < 163 /* FirstNode */ ? child : child.getFirstToken(sourceFile);
129924
129999
  }
129925
130000
  getLastToken(sourceFile) {
@@ -143427,10 +143502,10 @@ ${lanes.join("\n")}
143427
143502
  } else if (!tracker.hasValue(type.value)) {
143428
143503
  switch (typeof type.value) {
143429
143504
  case "object":
143430
- elements.push(factory.createBigIntLiteral(type.value));
143505
+ elements.push(type.value.negative ? factory.createPrefixUnaryExpression(40 /* MinusToken */, factory.createBigIntLiteral({ negative: false, base10Value: type.value.base10Value })) : factory.createBigIntLiteral(type.value));
143431
143506
  break;
143432
143507
  case "number":
143433
- elements.push(factory.createNumericLiteral(type.value));
143508
+ elements.push(type.value < 0 ? factory.createPrefixUnaryExpression(40 /* MinusToken */, factory.createNumericLiteral(-type.value)) : factory.createNumericLiteral(type.value));
143434
143509
  break;
143435
143510
  case "string":
143436
143511
  elements.push(factory.createStringLiteral(type.value, quotePreference === 0 /* Single */));
@@ -144850,6 +144925,7 @@ ${lanes.join("\n")}
144850
144925
  case 347 /* JSDocTypeTag */:
144851
144926
  case 349 /* JSDocTypedefTag */:
144852
144927
  case 352 /* JSDocThrowsTag */:
144928
+ case 353 /* JSDocSatisfiesTag */:
144853
144929
  return true;
144854
144930
  case 348 /* JSDocTemplateTag */:
144855
144931
  return !!tag.constraint;
@@ -146097,7 +146173,7 @@ ${lanes.join("\n")}
146097
146173
  function tryGetObjectTypeDeclarationCompletionContainer(sourceFile, contextToken, location, position) {
146098
146174
  var _a2;
146099
146175
  switch (location.kind) {
146100
- case 353 /* SyntaxList */:
146176
+ case 354 /* SyntaxList */:
146101
146177
  return tryCast(location.parent, isObjectTypeDeclaration);
146102
146178
  case 1 /* EndOfFileToken */:
146103
146179
  const cls = tryCast(lastOrUndefined(cast(location.parent, isSourceFile).statements), isObjectTypeDeclaration);
@@ -147164,7 +147240,7 @@ ${lanes.join("\n")}
147164
147240
  }
147165
147241
  function getAmbientModuleCompletions(fragment, fragmentDirectory, checker) {
147166
147242
  const ambientModules = checker.getAmbientModules().map((sym) => stripQuotes(sym.name));
147167
- const nonRelativeModuleNames = ambientModules.filter((moduleName) => startsWith(moduleName, fragment));
147243
+ const nonRelativeModuleNames = ambientModules.filter((moduleName) => startsWith(moduleName, fragment) && moduleName.indexOf("*") < 0);
147168
147244
  if (fragmentDirectory !== void 0) {
147169
147245
  const moduleNameWithSeparator = ensureTrailingDirectorySeparator(fragmentDirectory);
147170
147246
  return nonRelativeModuleNames.map((nonRelativeModuleName) => removePrefix(nonRelativeModuleName, moduleNameWithSeparator));
@@ -150699,6 +150775,7 @@ ${lanes.join("\n")}
150699
150775
  }
150700
150776
  return displayParts;
150701
150777
  case 347 /* JSDocTypeTag */:
150778
+ case 353 /* JSDocSatisfiesTag */:
150702
150779
  return withNode(tag.typeExpression);
150703
150780
  case 349 /* JSDocTypedefTag */:
150704
150781
  case 341 /* JSDocCallbackTag */:
@@ -150988,6 +151065,7 @@ ${lanes.join("\n")}
150988
151065
  "readonly",
150989
151066
  "requires",
150990
151067
  "returns",
151068
+ "satisfies",
150991
151069
  "see",
150992
151070
  "since",
150993
151071
  "static",
@@ -176102,6 +176180,8 @@ ${e.message}`;
176102
176180
  getJSDocReturnTag: () => getJSDocReturnTag,
176103
176181
  getJSDocReturnType: () => getJSDocReturnType,
176104
176182
  getJSDocRoot: () => getJSDocRoot,
176183
+ getJSDocSatisfiesExpressionType: () => getJSDocSatisfiesExpressionType,
176184
+ getJSDocSatisfiesTag: () => getJSDocSatisfiesTag,
176105
176185
  getJSDocTags: () => getJSDocTags,
176106
176186
  getJSDocTagsNoCache: () => getJSDocTagsNoCache,
176107
176187
  getJSDocTemplateTag: () => getJSDocTemplateTag,
@@ -176731,6 +176811,8 @@ ${e.message}`;
176731
176811
  isJSDocPublicTag: () => isJSDocPublicTag,
176732
176812
  isJSDocReadonlyTag: () => isJSDocReadonlyTag,
176733
176813
  isJSDocReturnTag: () => isJSDocReturnTag,
176814
+ isJSDocSatisfiesExpression: () => isJSDocSatisfiesExpression,
176815
+ isJSDocSatisfiesTag: () => isJSDocSatisfiesTag,
176734
176816
  isJSDocSeeTag: () => isJSDocSeeTag,
176735
176817
  isJSDocSignature: () => isJSDocSignature,
176736
176818
  isJSDocTag: () => isJSDocTag,
@@ -176792,6 +176874,8 @@ ${e.message}`;
176792
176874
  isLogicalOperator: () => isLogicalOperator,
176793
176875
  isLogicalOrCoalescingAssignmentExpression: () => isLogicalOrCoalescingAssignmentExpression,
176794
176876
  isLogicalOrCoalescingAssignmentOperator: () => isLogicalOrCoalescingAssignmentOperator,
176877
+ isLogicalOrCoalescingBinaryExpression: () => isLogicalOrCoalescingBinaryExpression,
176878
+ isLogicalOrCoalescingBinaryOperator: () => isLogicalOrCoalescingBinaryOperator,
176795
176879
  isMappedTypeNode: () => isMappedTypeNode,
176796
176880
  isMemberName: () => isMemberName,
176797
176881
  isMergeDeclarationMarker: () => isMergeDeclarationMarker,
@@ -177477,6 +177561,7 @@ ${e.message}`;
177477
177561
  tryGetDirectories: () => tryGetDirectories,
177478
177562
  tryGetExtensionFromPath: () => tryGetExtensionFromPath2,
177479
177563
  tryGetImportFromModuleSpecifier: () => tryGetImportFromModuleSpecifier,
177564
+ tryGetJSDocSatisfiesTypeNode: () => tryGetJSDocSatisfiesTypeNode,
177480
177565
  tryGetModuleNameFromFile: () => tryGetModuleNameFromFile,
177481
177566
  tryGetModuleSpecifierFromDeclaration: () => tryGetModuleSpecifierFromDeclaration,
177482
177567
  tryGetNativePerformanceHooks: () => tryGetNativePerformanceHooks,
@@ -178756,6 +178841,8 @@ ${e.message}`;
178756
178841
  getJSDocReturnTag: () => getJSDocReturnTag,
178757
178842
  getJSDocReturnType: () => getJSDocReturnType,
178758
178843
  getJSDocRoot: () => getJSDocRoot,
178844
+ getJSDocSatisfiesExpressionType: () => getJSDocSatisfiesExpressionType,
178845
+ getJSDocSatisfiesTag: () => getJSDocSatisfiesTag,
178759
178846
  getJSDocTags: () => getJSDocTags,
178760
178847
  getJSDocTagsNoCache: () => getJSDocTagsNoCache,
178761
178848
  getJSDocTemplateTag: () => getJSDocTemplateTag,
@@ -179385,6 +179472,8 @@ ${e.message}`;
179385
179472
  isJSDocPublicTag: () => isJSDocPublicTag,
179386
179473
  isJSDocReadonlyTag: () => isJSDocReadonlyTag,
179387
179474
  isJSDocReturnTag: () => isJSDocReturnTag,
179475
+ isJSDocSatisfiesExpression: () => isJSDocSatisfiesExpression,
179476
+ isJSDocSatisfiesTag: () => isJSDocSatisfiesTag,
179388
179477
  isJSDocSeeTag: () => isJSDocSeeTag,
179389
179478
  isJSDocSignature: () => isJSDocSignature,
179390
179479
  isJSDocTag: () => isJSDocTag,
@@ -179446,6 +179535,8 @@ ${e.message}`;
179446
179535
  isLogicalOperator: () => isLogicalOperator,
179447
179536
  isLogicalOrCoalescingAssignmentExpression: () => isLogicalOrCoalescingAssignmentExpression,
179448
179537
  isLogicalOrCoalescingAssignmentOperator: () => isLogicalOrCoalescingAssignmentOperator,
179538
+ isLogicalOrCoalescingBinaryExpression: () => isLogicalOrCoalescingBinaryExpression,
179539
+ isLogicalOrCoalescingBinaryOperator: () => isLogicalOrCoalescingBinaryOperator,
179449
179540
  isMappedTypeNode: () => isMappedTypeNode,
179450
179541
  isMemberName: () => isMemberName,
179451
179542
  isMergeDeclarationMarker: () => isMergeDeclarationMarker,
@@ -180131,6 +180222,7 @@ ${e.message}`;
180131
180222
  tryGetDirectories: () => tryGetDirectories,
180132
180223
  tryGetExtensionFromPath: () => tryGetExtensionFromPath2,
180133
180224
  tryGetImportFromModuleSpecifier: () => tryGetImportFromModuleSpecifier,
180225
+ tryGetJSDocSatisfiesTypeNode: () => tryGetJSDocSatisfiesTypeNode,
180134
180226
  tryGetModuleNameFromFile: () => tryGetModuleNameFromFile,
180135
180227
  tryGetModuleSpecifierFromDeclaration: () => tryGetModuleSpecifierFromDeclaration,
180136
180228
  tryGetNativePerformanceHooks: () => tryGetNativePerformanceHooks,