typescript 5.4.0-dev.20240110 → 5.4.0-dev.20240112

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/typescript.js CHANGED
@@ -35,7 +35,7 @@ var ts = (() => {
35
35
  "src/compiler/corePublic.ts"() {
36
36
  "use strict";
37
37
  versionMajorMinor = "5.4";
38
- version = `${versionMajorMinor}.0-dev.20240110`;
38
+ version = `${versionMajorMinor}.0-dev.20240112`;
39
39
  Comparison = /* @__PURE__ */ ((Comparison3) => {
40
40
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
41
41
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -4352,6 +4352,7 @@ ${lanes.join("\n")}
4352
4352
  InternalSymbolName2["Default"] = "default";
4353
4353
  InternalSymbolName2["This"] = "this";
4354
4354
  InternalSymbolName2["InstantiationExpression"] = "__instantiationExpression";
4355
+ InternalSymbolName2["ImportAttributes"] = "__importAttributes";
4355
4356
  return InternalSymbolName2;
4356
4357
  })(InternalSymbolName || {});
4357
4358
  NodeCheckFlags = /* @__PURE__ */ ((NodeCheckFlags2) => {
@@ -6205,6 +6206,7 @@ ${lanes.join("\n")}
6205
6206
  resolvePath: (path) => _path.resolve(path),
6206
6207
  fileExists,
6207
6208
  directoryExists,
6209
+ getAccessibleFileSystemEntries,
6208
6210
  createDirectory(directoryName) {
6209
6211
  if (!nodeSystem.directoryExists(directoryName)) {
6210
6212
  try {
@@ -12906,6 +12908,45 @@ ${lanes.join("\n")}
12906
12908
  const type = isJSDocParameterTag(node) ? node.typeExpression && node.typeExpression.type : node.type;
12907
12909
  return node.dotDotDotToken !== void 0 || !!type && type.kind === 325 /* JSDocVariadicType */;
12908
12910
  }
12911
+ function hasInternalAnnotation(range, sourceFile) {
12912
+ const comment = sourceFile.text.substring(range.pos, range.end);
12913
+ return comment.includes("@internal");
12914
+ }
12915
+ function isInternalDeclaration(node, sourceFile) {
12916
+ sourceFile ?? (sourceFile = getSourceFileOfNode(node));
12917
+ const parseTreeNode = getParseTreeNode(node);
12918
+ if (parseTreeNode && parseTreeNode.kind === 169 /* Parameter */) {
12919
+ const paramIdx = parseTreeNode.parent.parameters.indexOf(parseTreeNode);
12920
+ const previousSibling = paramIdx > 0 ? parseTreeNode.parent.parameters[paramIdx - 1] : void 0;
12921
+ const text = sourceFile.text;
12922
+ const commentRanges = previousSibling ? concatenate(
12923
+ // to handle
12924
+ // ... parameters, /** @internal */
12925
+ // public param: string
12926
+ getTrailingCommentRanges(text, skipTrivia(
12927
+ text,
12928
+ previousSibling.end + 1,
12929
+ /*stopAfterLineBreak*/
12930
+ false,
12931
+ /*stopAtComments*/
12932
+ true
12933
+ )),
12934
+ getLeadingCommentRanges(text, node.pos)
12935
+ ) : getTrailingCommentRanges(text, skipTrivia(
12936
+ text,
12937
+ node.pos,
12938
+ /*stopAfterLineBreak*/
12939
+ false,
12940
+ /*stopAtComments*/
12941
+ true
12942
+ ));
12943
+ return some(commentRanges) && hasInternalAnnotation(last(commentRanges), sourceFile);
12944
+ }
12945
+ const leadingCommentRanges = parseTreeNode && getLeadingCommentRangesOfNode(parseTreeNode, sourceFile);
12946
+ return !!forEach(leadingCommentRanges, (range) => {
12947
+ return hasInternalAnnotation(range, sourceFile);
12948
+ });
12949
+ }
12909
12950
  var unchangedTextChangeRange, supportedLocaleDirectories, MAX_SMI_X86;
12910
12951
  var init_utilitiesPublic = __esm({
12911
12952
  "src/compiler/utilitiesPublic.ts"() {
@@ -18897,6 +18938,9 @@ ${lanes.join("\n")}
18897
18938
  function replaceFirstStar(s, replacement) {
18898
18939
  return stringReplace.call(s, "*", replacement);
18899
18940
  }
18941
+ function getNameFromImportAttribute(node) {
18942
+ return isIdentifier(node.name) ? node.name.escapedText : escapeLeadingUnderscores(node.name.text);
18943
+ }
18900
18944
  var resolvingEmptyArray, externalHelpersModuleNameText, defaultMaximumTruncationLength, noTruncationMaximumTruncationLength, stringWriter, getScriptTargetFeatures, GetLiteralTextFlags, fullTripleSlashReferencePathRegEx, fullTripleSlashReferenceTypeReferenceDirectiveRegEx, fullTripleSlashLibReferenceRegEx, fullTripleSlashAMDReferencePathRegEx, fullTripleSlashAMDModuleRegEx, defaultLibReferenceRegEx, AssignmentKind, FunctionFlags, Associativity, OperatorPrecedence, templateSubstitutionRegExp, doubleQuoteEscapedCharsRegExp, singleQuoteEscapedCharsRegExp, backtickQuoteEscapedCharsRegExp, escapedCharsMap, nonAsciiCharacters, jsxDoubleQuoteEscapedCharsRegExp, jsxSingleQuoteEscapedCharsRegExp, jsxEscapedCharsMap, indentStrings, base64Digits, carriageReturnLineFeed, lineFeed, objectAllocator, objectAllocatorPatchers, localizedDiagnosticMessages, computedOptions, getEmitScriptTarget, getEmitModuleKind, getEmitModuleResolutionKind, getEmitModuleDetectionKind, getIsolatedModules, getESModuleInterop, getAllowSyntheticDefaultImports, getResolvePackageJsonExports, getResolvePackageJsonImports, getResolveJsonModule, getEmitDeclarations, shouldPreserveConstEnums, isIncrementalCompilation, getAreDeclarationMapsEnabled, getAllowJSCompilerOption, getUseDefineForClassFields, reservedCharacterPattern, wildcardCharCodes, commonPackageFolders, implicitExcludePathRegexPattern, filesMatcher, directoriesMatcher, excludeMatcher, wildcardMatchers, supportedTSExtensions, supportedTSExtensionsFlat, supportedTSExtensionsWithJson, supportedTSExtensionsForExtractExtension, supportedJSExtensions, supportedJSExtensionsFlat, allSupportedExtensions, allSupportedExtensionsWithJson, supportedDeclarationExtensions, supportedTSImplementationExtensions, extensionsNotSupportingExtensionlessResolution, ModuleSpecifierEnding, extensionsToRemove, emptyFileSystemEntries, stringReplace;
18901
18945
  var init_utilities = __esm({
18902
18946
  "src/compiler/utilities.ts"() {
@@ -37998,7 +38042,7 @@ ${lanes.join("\n")}
37998
38042
  ["es2023.array", "lib.es2023.array.d.ts"],
37999
38043
  ["es2023.collection", "lib.es2023.collection.d.ts"],
38000
38044
  ["esnext.array", "lib.es2023.array.d.ts"],
38001
- ["esnext.collection", "lib.es2023.collection.d.ts"],
38045
+ ["esnext.collection", "lib.esnext.collection.d.ts"],
38002
38046
  ["esnext.symbol", "lib.es2019.symbol.d.ts"],
38003
38047
  ["esnext.asynciterable", "lib.es2018.asynciterable.d.ts"],
38004
38048
  ["esnext.intl", "lib.esnext.intl.d.ts"],
@@ -38008,6 +38052,7 @@ ${lanes.join("\n")}
38008
38052
  ["esnext.promise", "lib.esnext.promise.d.ts"],
38009
38053
  ["esnext.weakref", "lib.es2021.weakref.d.ts"],
38010
38054
  ["esnext.decorators", "lib.esnext.decorators.d.ts"],
38055
+ ["esnext.object", "lib.esnext.object.d.ts"],
38011
38056
  ["decorators", "lib.decorators.d.ts"],
38012
38057
  ["decorators.legacy", "lib.decorators.legacy.d.ts"]
38013
38058
  ];
@@ -46939,6 +46984,7 @@ ${lanes.join("\n")}
46939
46984
  var deferredGlobalImportMetaType;
46940
46985
  var deferredGlobalImportMetaExpressionType;
46941
46986
  var deferredGlobalImportCallOptionsType;
46987
+ var deferredGlobalImportAttributesType;
46942
46988
  var deferredGlobalDisposableType;
46943
46989
  var deferredGlobalAsyncDisposableType;
46944
46990
  var deferredGlobalExtractSymbol;
@@ -47095,7 +47141,12 @@ ${lanes.join("\n")}
47095
47141
  }
47096
47142
  function markAsSynthetic(node) {
47097
47143
  setTextRangePosEnd(node, -1, -1);
47098
- return visitEachChild(node, markAsSynthetic, nullTransformationContext);
47144
+ return visitEachChild(
47145
+ node,
47146
+ markAsSynthetic,
47147
+ /*context*/
47148
+ void 0
47149
+ );
47099
47150
  }
47100
47151
  function getEmitResolver(sourceFile, cancellationToken2) {
47101
47152
  getDiagnostics2(sourceFile, cancellationToken2);
@@ -51137,7 +51188,13 @@ ${lanes.join("\n")}
51137
51188
  if (!nodeIsSynthesized(node) && getParseTreeNode(node) === node) {
51138
51189
  return node;
51139
51190
  }
51140
- return setTextRange(factory.cloneNode(visitEachChild(node, deepCloneOrReuseNode, nullTransformationContext, deepCloneOrReuseNodes)), node);
51191
+ return setTextRange(factory.cloneNode(visitEachChild(
51192
+ node,
51193
+ deepCloneOrReuseNode,
51194
+ /*context*/
51195
+ void 0,
51196
+ deepCloneOrReuseNodes
51197
+ )), node);
51141
51198
  }
51142
51199
  function deepCloneOrReuseNodes(nodes, visitor, test, start, count) {
51143
51200
  if (nodes && nodes.length === 0) {
@@ -51859,7 +51916,8 @@ ${lanes.join("\n")}
51859
51916
  let visited = visitEachChild(
51860
51917
  node2,
51861
51918
  elideInitializerAndSetEmitFlags,
51862
- nullTransformationContext,
51919
+ /*context*/
51920
+ void 0,
51863
51921
  /*nodesVisitor*/
51864
51922
  void 0,
51865
51923
  elideInitializerAndSetEmitFlags
@@ -52637,7 +52695,12 @@ ${lanes.join("\n")}
52637
52695
  if (file && isTupleTypeNode(node) && getLineAndCharacterOfPosition(file, node.pos).line === getLineAndCharacterOfPosition(file, node.end).line) {
52638
52696
  setEmitFlags(node, 1 /* SingleLine */);
52639
52697
  }
52640
- return visitEachChild(node, visitExistingNodeTreeSymbols, nullTransformationContext);
52698
+ return visitEachChild(
52699
+ node,
52700
+ visitExistingNodeTreeSymbols,
52701
+ /*context*/
52702
+ void 0
52703
+ );
52641
52704
  function getEffectiveDotDotDotForParameter(p) {
52642
52705
  return p.dotDotDotToken || (p.type && isJSDocVariadicType(p.type) ? factory.createToken(26 /* DotDotDotToken */) : void 0);
52643
52706
  }
@@ -52737,7 +52800,7 @@ ${lanes.join("\n")}
52737
52800
  });
52738
52801
  let addingDeclare = !bundled;
52739
52802
  const exportEquals = symbolTable.get("export=" /* ExportEquals */);
52740
- if (exportEquals && symbolTable.size > 1 && exportEquals.flags & 2097152 /* Alias */) {
52803
+ if (exportEquals && symbolTable.size > 1 && exportEquals.flags & (2097152 /* Alias */ | 1536 /* Module */)) {
52741
52804
  symbolTable = createSymbolTable();
52742
52805
  symbolTable.set("export=" /* ExportEquals */, exportEquals);
52743
52806
  }
@@ -53194,8 +53257,18 @@ ${lanes.join("\n")}
53194
53257
  );
53195
53258
  }
53196
53259
  function getNamespaceMembersForSerialization(symbol) {
53197
- const exports = getExportsOfSymbol(symbol);
53198
- return !exports ? [] : filter(arrayFrom(exports.values()), (m) => isNamespaceMember(m) && isIdentifierText(m.escapedName, 99 /* ESNext */));
53260
+ let exports = arrayFrom(getExportsOfSymbol(symbol).values());
53261
+ const merged = getMergedSymbol(symbol);
53262
+ if (merged !== symbol) {
53263
+ const membersSet = new Set(exports);
53264
+ for (const exported of getExportsOfSymbol(merged).values()) {
53265
+ if (!(getSymbolFlags(resolveSymbol(exported)) & 111551 /* Value */)) {
53266
+ membersSet.add(exported);
53267
+ }
53268
+ }
53269
+ exports = arrayFrom(membersSet);
53270
+ }
53271
+ return filter(exports, (m) => isNamespaceMember(m) && isIdentifierText(m.escapedName, 99 /* ESNext */));
53199
53272
  }
53200
53273
  function isTypeOnlyNamespace(symbol) {
53201
53274
  return every(getNamespaceMembersForSerialization(symbol), (m) => !(getSymbolFlags(resolveSymbol(m)) & 111551 /* Value */));
@@ -55176,7 +55249,7 @@ ${lanes.join("\n")}
55176
55249
  /*reportErrors*/
55177
55250
  false
55178
55251
  ) : unknownType;
55179
- return addOptionality(widenTypeInferredFromInitializer(element, checkDeclarationInitializer(element, 0 /* Normal */, contextualType)));
55252
+ return addOptionality(widenTypeInferredFromInitializer(element, checkDeclarationInitializer(element, reportErrors2 ? 0 /* Normal */ : 1 /* Contextual */, contextualType)));
55180
55253
  }
55181
55254
  if (isBindingPattern(element.name)) {
55182
55255
  return getTypeFromBindingPattern(element.name, includePatternInType, reportErrors2);
@@ -55257,6 +55330,24 @@ ${lanes.join("\n")}
55257
55330
  0 /* Normal */
55258
55331
  ), declaration, reportErrors2);
55259
55332
  }
55333
+ function getTypeFromImportAttributes(node) {
55334
+ const links = getNodeLinks(node);
55335
+ if (!links.resolvedType) {
55336
+ const symbol = createSymbol(4096 /* ObjectLiteral */, "__importAttributes" /* ImportAttributes */);
55337
+ const members = createSymbolTable();
55338
+ forEach(node.elements, (attr) => {
55339
+ const member = createSymbol(4 /* Property */, getNameFromImportAttribute(attr));
55340
+ member.parent = symbol;
55341
+ member.links.type = checkImportAttribute(attr);
55342
+ member.links.target = member;
55343
+ members.set(member.escapedName, member);
55344
+ });
55345
+ const type = createAnonymousType(symbol, members, emptyArray, emptyArray, emptyArray);
55346
+ type.objectFlags |= 128 /* ObjectLiteral */ | 262144 /* NonInferrableType */;
55347
+ links.resolvedType = type;
55348
+ }
55349
+ return links.resolvedType;
55350
+ }
55260
55351
  function isGlobalSymbolConstructor(node) {
55261
55352
  const symbol = getSymbolOfNode(node);
55262
55353
  const globalSymbol = getGlobalESSymbolConstructorTypeSymbol(
@@ -55310,18 +55401,18 @@ ${lanes.join("\n")}
55310
55401
  }
55311
55402
  return false;
55312
55403
  }
55313
- function getTypeOfVariableOrParameterOrProperty(symbol) {
55404
+ function getTypeOfVariableOrParameterOrProperty(symbol, checkMode) {
55314
55405
  const links = getSymbolLinks(symbol);
55315
55406
  if (!links.type) {
55316
- const type = getTypeOfVariableOrParameterOrPropertyWorker(symbol);
55317
- if (!links.type && !isParameterOfContextSensitiveSignature(symbol)) {
55407
+ const type = getTypeOfVariableOrParameterOrPropertyWorker(symbol, checkMode);
55408
+ if (!links.type && !isParameterOfContextSensitiveSignature(symbol) && !checkMode) {
55318
55409
  links.type = type;
55319
55410
  }
55320
55411
  return type;
55321
55412
  }
55322
55413
  return links.type;
55323
55414
  }
55324
- function getTypeOfVariableOrParameterOrPropertyWorker(symbol) {
55415
+ function getTypeOfVariableOrParameterOrPropertyWorker(symbol, checkMode) {
55325
55416
  if (symbol.flags & 4194304 /* Prototype */) {
55326
55417
  return getTypeOfPrototypeProperty(symbol);
55327
55418
  }
@@ -55359,6 +55450,9 @@ ${lanes.join("\n")}
55359
55450
  if (symbol.flags & 512 /* ValueModule */ && !(symbol.flags & 67108864 /* Assignment */)) {
55360
55451
  return getTypeOfFuncClassEnumModule(symbol);
55361
55452
  }
55453
+ if (isBindingElement(declaration) && checkMode === 1 /* Contextual */) {
55454
+ return errorType;
55455
+ }
55362
55456
  return reportCircularityError(symbol);
55363
55457
  }
55364
55458
  let type;
@@ -55396,6 +55490,9 @@ ${lanes.join("\n")}
55396
55490
  if (symbol.flags & 512 /* ValueModule */ && !(symbol.flags & 67108864 /* Assignment */)) {
55397
55491
  return getTypeOfFuncClassEnumModule(symbol);
55398
55492
  }
55493
+ if (isBindingElement(declaration) && checkMode === 1 /* Contextual */) {
55494
+ return type;
55495
+ }
55399
55496
  return reportCircularityError(symbol);
55400
55497
  }
55401
55498
  return type;
@@ -55624,7 +55721,7 @@ ${lanes.join("\n")}
55624
55721
  }
55625
55722
  return getTypeOfSymbol(symbol);
55626
55723
  }
55627
- function getTypeOfSymbol(symbol) {
55724
+ function getTypeOfSymbol(symbol, checkMode) {
55628
55725
  const checkFlags = getCheckFlags(symbol);
55629
55726
  if (checkFlags & 65536 /* DeferredType */) {
55630
55727
  return getTypeOfSymbolWithDeferredType(symbol);
@@ -55639,7 +55736,7 @@ ${lanes.join("\n")}
55639
55736
  return getTypeOfReverseMappedSymbol(symbol);
55640
55737
  }
55641
55738
  if (symbol.flags & (3 /* Variable */ | 4 /* Property */)) {
55642
- return getTypeOfVariableOrParameterOrProperty(symbol);
55739
+ return getTypeOfVariableOrParameterOrProperty(symbol, checkMode);
55643
55740
  }
55644
55741
  if (symbol.flags & (16 /* Function */ | 8192 /* Method */ | 32 /* Class */ | 384 /* Enum */ | 512 /* ValueModule */)) {
55645
55742
  return getTypeOfFuncClassEnumModule(symbol);
@@ -59255,6 +59352,14 @@ ${lanes.join("\n")}
59255
59352
  reportErrors2
59256
59353
  )) || emptyObjectType;
59257
59354
  }
59355
+ function getGlobalImportAttributesType(reportErrors2) {
59356
+ return deferredGlobalImportAttributesType || (deferredGlobalImportAttributesType = getGlobalType(
59357
+ "ImportAttributes",
59358
+ /*arity*/
59359
+ 0,
59360
+ reportErrors2
59361
+ )) || emptyObjectType;
59362
+ }
59258
59363
  function getGlobalESSymbolConstructorSymbol(reportErrors2) {
59259
59364
  return deferredGlobalESSymbolConstructorSymbol || (deferredGlobalESSymbolConstructorSymbol = getGlobalValueSymbol("Symbol", reportErrors2));
59260
59365
  }
@@ -70002,9 +70107,9 @@ ${lanes.join("\n")}
70002
70107
  }
70003
70108
  }
70004
70109
  }
70005
- function getNarrowedTypeOfSymbol(symbol, location) {
70110
+ function getNarrowedTypeOfSymbol(symbol, location, checkMode) {
70006
70111
  var _a;
70007
- const type = getTypeOfSymbol(symbol);
70112
+ const type = getTypeOfSymbol(symbol, checkMode);
70008
70113
  const declaration = symbol.valueDeclaration;
70009
70114
  if (declaration) {
70010
70115
  if (isBindingElement(declaration) && !declaration.initializer && !declaration.dotDotDotToken && declaration.parent.elements.length >= 2) {
@@ -70131,7 +70236,7 @@ ${lanes.join("\n")}
70131
70236
  }
70132
70237
  }
70133
70238
  checkNestedBlockScopedBinding(node, symbol);
70134
- let type = getNarrowedTypeOfSymbol(localOrExportSymbol, node);
70239
+ let type = getNarrowedTypeOfSymbol(localOrExportSymbol, node, checkMode);
70135
70240
  const assignmentKind = getAssignmentTargetKind(node);
70136
70241
  if (assignmentKind) {
70137
70242
  if (!(localOrExportSymbol.flags & 3 /* Variable */) && !(isInJSFile(node) && localOrExportSymbol.flags & 512 /* ValueModule */)) {
@@ -71441,6 +71546,8 @@ ${lanes.join("\n")}
71441
71546
  case 286 /* JsxOpeningElement */:
71442
71547
  case 285 /* JsxSelfClosingElement */:
71443
71548
  return getContextualJsxElementAttributesType(parent2, contextFlags);
71549
+ case 301 /* ImportAttribute */:
71550
+ return getContextualImportAttributeType(parent2);
71444
71551
  }
71445
71552
  return void 0;
71446
71553
  }
@@ -71488,6 +71595,12 @@ ${lanes.join("\n")}
71488
71595
  }
71489
71596
  }
71490
71597
  }
71598
+ function getContextualImportAttributeType(node) {
71599
+ return getTypeOfPropertyOfContextualType(getGlobalImportAttributesType(
71600
+ /*reportErrors*/
71601
+ false
71602
+ ), getNameFromImportAttribute(node));
71603
+ }
71491
71604
  function getContextualJsxElementAttributesType(node, contextFlags) {
71492
71605
  if (isJsxOpeningElement(node) && contextFlags !== 4 /* Completions */) {
71493
71606
  const index = findContextualNode(
@@ -83573,6 +83686,13 @@ ${lanes.join("\n")}
83573
83686
  var _a;
83574
83687
  const node = declaration.attributes;
83575
83688
  if (node) {
83689
+ const importAttributesType = getGlobalImportAttributesType(
83690
+ /*reportErrors*/
83691
+ true
83692
+ );
83693
+ if (importAttributesType !== emptyObjectType) {
83694
+ checkTypeAssignableTo(getTypeFromImportAttributes(node), getNullableType(importAttributesType, 32768 /* Undefined */), node);
83695
+ }
83576
83696
  const validForTypeAttributes = isExclusivelyTypeOnlyImportOrExport(declaration);
83577
83697
  const override = getResolutionModeOverride(node, validForTypeAttributes ? grammarErrorOnNode : void 0);
83578
83698
  const isImportAttributes2 = declaration.attributes.token === 118 /* WithKeyword */;
@@ -83592,6 +83712,9 @@ ${lanes.join("\n")}
83592
83712
  }
83593
83713
  }
83594
83714
  }
83715
+ function checkImportAttribute(node) {
83716
+ return getRegularTypeOfLiteralType(checkExpressionCached(node.value));
83717
+ }
83595
83718
  function checkImportDeclaration(node) {
83596
83719
  if (checkGrammarModuleElementContext(node, isInJSFile(node) ? Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module : Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)) {
83597
83720
  return;
@@ -85007,6 +85130,12 @@ ${lanes.join("\n")}
85007
85130
  if (isMetaProperty(node.parent) && node.parent.keywordToken === node.kind) {
85008
85131
  return checkMetaPropertyKeyword(node.parent);
85009
85132
  }
85133
+ if (isImportAttributes(node)) {
85134
+ return getGlobalImportAttributesType(
85135
+ /*reportErrors*/
85136
+ false
85137
+ );
85138
+ }
85010
85139
  return errorType;
85011
85140
  }
85012
85141
  function getTypeOfAssignmentPattern(expr) {
@@ -88211,7 +88340,7 @@ ${lanes.join("\n")}
88211
88340
  return discarded ? discardVisitor(node) : visitor(node);
88212
88341
  }, isExpression);
88213
88342
  }
88214
- function visitEachChild(node, visitor, context, nodesVisitor = visitNodes2, tokenVisitor, nodeVisitor = visitNode) {
88343
+ function visitEachChild(node, visitor, context = nullTransformationContext, nodesVisitor = visitNodes2, tokenVisitor, nodeVisitor = visitNode) {
88215
88344
  if (node === void 0) {
88216
88345
  return void 0;
88217
88346
  }
@@ -102813,12 +102942,22 @@ ${lanes.join("\n")}
102813
102942
  case 172 /* PropertyDeclaration */: {
102814
102943
  const named = node;
102815
102944
  if (isComputedPropertyName(named.name)) {
102816
- return factory2.replacePropertyName(named, visitEachChild(named.name, elideUnusedThisCaptureWorker, nullTransformationContext));
102945
+ return factory2.replacePropertyName(named, visitEachChild(
102946
+ named.name,
102947
+ elideUnusedThisCaptureWorker,
102948
+ /*context*/
102949
+ void 0
102950
+ ));
102817
102951
  }
102818
102952
  return node;
102819
102953
  }
102820
102954
  }
102821
- return visitEachChild(node, elideUnusedThisCaptureWorker, nullTransformationContext);
102955
+ return visitEachChild(
102956
+ node,
102957
+ elideUnusedThisCaptureWorker,
102958
+ /*context*/
102959
+ void 0
102960
+ );
102822
102961
  }
102823
102962
  function simplifyConstructorElideUnusedThisCapture(body, original) {
102824
102963
  if (original.transformFlags & 16384 /* ContainsLexicalThis */ || hierarchyFacts & 65536 /* LexicalThis */ || hierarchyFacts & 131072 /* CapturedLexicalThis */) {
@@ -102854,12 +102993,22 @@ ${lanes.join("\n")}
102854
102993
  case 172 /* PropertyDeclaration */: {
102855
102994
  const named = node;
102856
102995
  if (isComputedPropertyName(named.name)) {
102857
- return factory2.replacePropertyName(named, visitEachChild(named.name, injectSuperPresenceCheckWorker, nullTransformationContext));
102996
+ return factory2.replacePropertyName(named, visitEachChild(
102997
+ named.name,
102998
+ injectSuperPresenceCheckWorker,
102999
+ /*context*/
103000
+ void 0
103001
+ ));
102858
103002
  }
102859
103003
  return node;
102860
103004
  }
102861
103005
  }
102862
- return visitEachChild(node, injectSuperPresenceCheckWorker, nullTransformationContext);
103006
+ return visitEachChild(
103007
+ node,
103008
+ injectSuperPresenceCheckWorker,
103009
+ /*context*/
103010
+ void 0
103011
+ );
102863
103012
  }
102864
103013
  function complicateConstructorInjectSuperPresenceCheck(body) {
102865
103014
  return factory2.updateBlock(body, visitNodes2(body.statements, injectSuperPresenceCheckWorker, isStatement));
@@ -111306,44 +111455,6 @@ ${lanes.join("\n")}
111306
111455
  );
111307
111456
  return result.diagnostics;
111308
111457
  }
111309
- function hasInternalAnnotation(range, currentSourceFile) {
111310
- const comment = currentSourceFile.text.substring(range.pos, range.end);
111311
- return comment.includes("@internal");
111312
- }
111313
- function isInternalDeclaration(node, currentSourceFile) {
111314
- const parseTreeNode = getParseTreeNode(node);
111315
- if (parseTreeNode && parseTreeNode.kind === 169 /* Parameter */) {
111316
- const paramIdx = parseTreeNode.parent.parameters.indexOf(parseTreeNode);
111317
- const previousSibling = paramIdx > 0 ? parseTreeNode.parent.parameters[paramIdx - 1] : void 0;
111318
- const text = currentSourceFile.text;
111319
- const commentRanges = previousSibling ? concatenate(
111320
- // to handle
111321
- // ... parameters, /** @internal */
111322
- // public param: string
111323
- getTrailingCommentRanges(text, skipTrivia(
111324
- text,
111325
- previousSibling.end + 1,
111326
- /*stopAfterLineBreak*/
111327
- false,
111328
- /*stopAtComments*/
111329
- true
111330
- )),
111331
- getLeadingCommentRanges(text, node.pos)
111332
- ) : getTrailingCommentRanges(text, skipTrivia(
111333
- text,
111334
- node.pos,
111335
- /*stopAfterLineBreak*/
111336
- false,
111337
- /*stopAtComments*/
111338
- true
111339
- ));
111340
- return commentRanges && commentRanges.length && hasInternalAnnotation(last(commentRanges), currentSourceFile);
111341
- }
111342
- const leadingCommentRanges = parseTreeNode && getLeadingCommentRangesOfNode(parseTreeNode, currentSourceFile);
111343
- return !!forEach(leadingCommentRanges, (range) => {
111344
- return hasInternalAnnotation(range, currentSourceFile);
111345
- });
111346
- }
111347
111458
  function transformDeclarations(context) {
111348
111459
  const throwDiagnostic = () => Debug.fail("Diagnostic emitted without context");
111349
111460
  let getSymbolAccessibilityDiagnostic = throwDiagnostic;
@@ -122537,7 +122648,7 @@ ${lanes.join("\n")}
122537
122648
  }
122538
122649
  const isFromNodeModulesSearch = resolution.isExternalLibraryImport;
122539
122650
  const isJsFile = !resolutionExtensionIsTSOrJson(resolution.extension);
122540
- const isJsFileFromNodeModules = isFromNodeModulesSearch && isJsFile;
122651
+ const isJsFileFromNodeModules = isFromNodeModulesSearch && isJsFile && (!resolution.originalPath || pathContainsNodeModules(resolution.resolvedFileName));
122541
122652
  const resolvedFileName = resolution.resolvedFileName;
122542
122653
  if (isFromNodeModulesSearch) {
122543
122654
  currentNodeModulesDepth++;
@@ -132903,7 +133014,14 @@ ${lanes.join("\n")}
132903
133014
  true,
132904
133015
  replaceNode
132905
133016
  ) : (ns) => ns && getSynthesizedDeepClones(ns);
132906
- const visited = visitEachChild(node, nodeClone, nullTransformationContext, nodesClone, nodeClone);
133017
+ const visited = visitEachChild(
133018
+ node,
133019
+ nodeClone,
133020
+ /*context*/
133021
+ void 0,
133022
+ nodesClone,
133023
+ nodeClone
133024
+ );
132907
133025
  if (visited === node) {
132908
133026
  const clone2 = isStringLiteral(node) ? setOriginalNode(factory.createStringLiteralFromNode(node), node) : isNumericLiteral(node) ? setOriginalNode(factory.createNumericLiteral(node.text, node.numericLiteralFlags), node) : factory.cloneNode(node);
132909
133027
  return setTextRange(clone2, node);
@@ -142860,7 +142978,12 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
142860
142978
  const oldIgnoreReturns = ignoreReturns;
142861
142979
  ignoreReturns = ignoreReturns || isFunctionLikeDeclaration(node) || isClassLike(node);
142862
142980
  const substitution = substitutions.get(getNodeId(node).toString());
142863
- const result = substitution ? getSynthesizedDeepClone(substitution) : visitEachChild(node, visitor, nullTransformationContext);
142981
+ const result = substitution ? getSynthesizedDeepClone(substitution) : visitEachChild(
142982
+ node,
142983
+ visitor,
142984
+ /*context*/
142985
+ void 0
142986
+ );
142864
142987
  ignoreReturns = oldIgnoreReturns;
142865
142988
  return result;
142866
142989
  }
@@ -142870,7 +142993,12 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
142870
142993
  return substitutions.size ? visitor(initializer) : initializer;
142871
142994
  function visitor(node) {
142872
142995
  const substitution = substitutions.get(getNodeId(node).toString());
142873
- return substitution ? getSynthesizedDeepClone(substitution) : visitEachChild(node, visitor, nullTransformationContext);
142996
+ return substitution ? getSynthesizedDeepClone(substitution) : visitEachChild(
142997
+ node,
142998
+ visitor,
142999
+ /*context*/
143000
+ void 0
143001
+ );
142874
143002
  }
142875
143003
  }
142876
143004
  function getStatementsOrClassElements(scope) {
@@ -147881,7 +148009,12 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
147881
148009
  case 329 /* JSDocTypeLiteral */:
147882
148010
  return transformJSDocTypeLiteral(node);
147883
148011
  default:
147884
- const visited = visitEachChild(node, transformJSDocType, nullTransformationContext);
148012
+ const visited = visitEachChild(
148013
+ node,
148014
+ transformJSDocType,
148015
+ /*context*/
148016
+ void 0
148017
+ );
147885
148018
  setEmitFlags(visited, 1 /* SingleLine */);
147886
148019
  return visited;
147887
148020
  }
@@ -156372,7 +156505,12 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
156372
156505
  const typeArguments = visitNodes2(node.typeArguments, visit, isTypeNode);
156373
156506
  return factory.createTypeReferenceNode(qualifier, typeArguments);
156374
156507
  }
156375
- return visitEachChild(node, visit, nullTransformationContext);
156508
+ return visitEachChild(
156509
+ node,
156510
+ visit,
156511
+ /*context*/
156512
+ void 0
156513
+ );
156376
156514
  }
156377
156515
  }
156378
156516
  function replaceFirstIdentifierOfEntityName(name, newIdentifier) {
@@ -160083,7 +160221,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
160083
160221
  return isIdentifier(e) ? e : isPropertyAccessExpression(e) ? getLeftMostName(e.expression) : void 0;
160084
160222
  }
160085
160223
  function tryGetGlobalSymbols() {
160086
- const result = tryGetObjectTypeLiteralInTypeArgumentCompletionSymbols() || tryGetObjectLikeCompletionSymbols() || tryGetImportCompletionSymbols() || tryGetImportOrExportClauseCompletionSymbols() || tryGetLocalNamedExportCompletionSymbols() || tryGetConstructorCompletion() || tryGetClassLikeCompletionSymbols() || tryGetJsxCompletionSymbols() || (getGlobalCompletions(), 1 /* Success */);
160224
+ const result = tryGetObjectTypeLiteralInTypeArgumentCompletionSymbols() || tryGetObjectLikeCompletionSymbols() || tryGetImportCompletionSymbols() || tryGetImportOrExportClauseCompletionSymbols() || tryGetImportAttributesCompletionSymbols() || tryGetLocalNamedExportCompletionSymbols() || tryGetConstructorCompletion() || tryGetClassLikeCompletionSymbols() || tryGetJsxCompletionSymbols() || (getGlobalCompletions(), 1 /* Success */);
160087
160225
  return result === 1 /* Success */;
160088
160226
  }
160089
160227
  function tryGetConstructorCompletion() {
@@ -160551,6 +160689,16 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
160551
160689
  }
160552
160690
  return 1 /* Success */;
160553
160691
  }
160692
+ function tryGetImportAttributesCompletionSymbols() {
160693
+ if (contextToken === void 0)
160694
+ return 0 /* Continue */;
160695
+ const importAttributes = contextToken.kind === 19 /* OpenBraceToken */ || contextToken.kind === 28 /* CommaToken */ ? tryCast(contextToken.parent, isImportAttributes) : contextToken.kind === 59 /* ColonToken */ ? tryCast(contextToken.parent.parent, isImportAttributes) : void 0;
160696
+ if (importAttributes === void 0)
160697
+ return 0 /* Continue */;
160698
+ const existing = new Set(importAttributes.elements.map(getNameFromImportAttribute));
160699
+ symbols = filter(typeChecker.getTypeAtLocation(importAttributes).getApparentProperties(), (attr) => !existing.has(attr.escapedName));
160700
+ return 1 /* Success */;
160701
+ }
160554
160702
  function tryGetLocalNamedExportCompletionSymbols() {
160555
160703
  var _a;
160556
160704
  const namedExports = contextToken && (contextToken.kind === 19 /* OpenBraceToken */ || contextToken.kind === 28 /* CommaToken */) ? tryCast(contextToken.parent, isNamedExports) : void 0;
@@ -163121,6 +163269,11 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
163121
163269
  return isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent) ? getContextNode(
163122
163270
  findAncestor(node.parent, (node2) => isBinaryExpression(node2) || isForInOrOfStatement(node2))
163123
163271
  ) : node;
163272
+ case 255 /* SwitchStatement */:
163273
+ return {
163274
+ start: find(node.getChildren(node.getSourceFile()), (node2) => node2.kind === 109 /* SwitchKeyword */),
163275
+ end: node.caseBlock
163276
+ };
163124
163277
  default:
163125
163278
  return node;
163126
163279
  }
@@ -163415,6 +163568,9 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
163415
163568
  start += 1;
163416
163569
  end -= 1;
163417
163570
  }
163571
+ if ((endNode2 == null ? void 0 : endNode2.kind) === 269 /* CaseBlock */) {
163572
+ end = endNode2.getFullStart();
163573
+ }
163418
163574
  return createTextSpanFromBounds(start, end);
163419
163575
  }
163420
163576
  function getTextSpanOfEntry(entry) {
@@ -165025,9 +165181,20 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
165025
165181
  void 0
165026
165182
  )] : void 0;
165027
165183
  }
165028
- if (node.kind === 107 /* ReturnKeyword */) {
165029
- const functionDeclaration = findAncestor(node.parent, (n) => isClassStaticBlockDeclaration(n) ? "quit" : isFunctionLikeDeclaration(n));
165030
- return functionDeclaration ? [createDefinitionFromSignatureDeclaration(typeChecker, functionDeclaration)] : void 0;
165184
+ switch (node.kind) {
165185
+ case 107 /* ReturnKeyword */:
165186
+ const functionDeclaration = findAncestor(node.parent, (n) => isClassStaticBlockDeclaration(n) ? "quit" : isFunctionLikeDeclaration(n));
165187
+ return functionDeclaration ? [createDefinitionFromSignatureDeclaration(typeChecker, functionDeclaration)] : void 0;
165188
+ case 90 /* DefaultKeyword */:
165189
+ if (!isDefaultClause(node.parent)) {
165190
+ break;
165191
+ }
165192
+ case 84 /* CaseKeyword */:
165193
+ const switchStatement = findAncestor(node.parent, isSwitchStatement);
165194
+ if (switchStatement) {
165195
+ return [createDefinitionInfoFromSwitch(switchStatement, sourceFile)];
165196
+ }
165197
+ break;
165031
165198
  }
165032
165199
  if (node.kind === 135 /* AwaitKeyword */) {
165033
165200
  const functionDeclaration = findAncestor(node, (n) => isFunctionLikeDeclaration(n));
@@ -165424,6 +165591,23 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
165424
165591
  failedAliasResolution
165425
165592
  };
165426
165593
  }
165594
+ function createDefinitionInfoFromSwitch(statement, sourceFile) {
165595
+ const keyword = ts_FindAllReferences_exports.getContextNode(statement);
165596
+ const textSpan = createTextSpanFromNode(isContextWithStartAndEndNode(keyword) ? keyword.start : keyword, sourceFile);
165597
+ return {
165598
+ fileName: sourceFile.fileName,
165599
+ textSpan,
165600
+ kind: "keyword" /* keyword */,
165601
+ name: "switch",
165602
+ containerKind: void 0,
165603
+ containerName: "",
165604
+ ...ts_FindAllReferences_exports.toContextSpan(textSpan, sourceFile, keyword),
165605
+ isLocal: true,
165606
+ isAmbient: false,
165607
+ unverified: false,
165608
+ failedAliasResolution: void 0
165609
+ };
165610
+ }
165427
165611
  function isDefinitionVisible(checker, declaration) {
165428
165612
  if (checker.isDeclarationVisible(declaration))
165429
165613
  return true;
@@ -165501,6 +165685,7 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")}
165501
165685
  "src/services/goToDefinition.ts"() {
165502
165686
  "use strict";
165503
165687
  init_ts4();
165688
+ init_ts_FindAllReferences();
165504
165689
  typesWithUnwrappedTypeArguments = /* @__PURE__ */ new Set([
165505
165690
  "Array",
165506
165691
  "ArrayLike",
@@ -186443,6 +186628,7 @@ ${e.message}`;
186443
186628
  getModuleSpecifierEndingPreference: () => getModuleSpecifierEndingPreference,
186444
186629
  getModuleSpecifierResolverHost: () => getModuleSpecifierResolverHost,
186445
186630
  getNameForExportedSymbol: () => getNameForExportedSymbol,
186631
+ getNameFromImportAttribute: () => getNameFromImportAttribute,
186446
186632
  getNameFromIndexInfo: () => getNameFromIndexInfo,
186447
186633
  getNameFromPropertyName: () => getNameFromPropertyName,
186448
186634
  getNameOfAccessExpression: () => getNameOfAccessExpression,
@@ -188864,6 +189050,7 @@ ${e.message}`;
188864
189050
  getModuleSpecifierEndingPreference: () => getModuleSpecifierEndingPreference,
188865
189051
  getModuleSpecifierResolverHost: () => getModuleSpecifierResolverHost,
188866
189052
  getNameForExportedSymbol: () => getNameForExportedSymbol,
189053
+ getNameFromImportAttribute: () => getNameFromImportAttribute,
188867
189054
  getNameFromIndexInfo: () => getNameFromIndexInfo,
188868
189055
  getNameFromPropertyName: () => getNameFromPropertyName,
188869
189056
  getNameOfAccessExpression: () => getNameOfAccessExpression,