typescript 5.5.0-dev.20240401 → 5.5.0-dev.20240404

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/lib.es5.d.ts CHANGED
@@ -818,7 +818,7 @@ interface Date {
818
818
  getMilliseconds(): number;
819
819
  /** Gets the milliseconds of a Date object using Universal Coordinated Time (UTC). */
820
820
  getUTCMilliseconds(): number;
821
- /** Gets the difference in minutes between the time on the local computer and Universal Coordinated Time (UTC). */
821
+ /** Gets the difference in minutes between Universal Coordinated Time (UTC) and the time on the local computer. */
822
822
  getTimezoneOffset(): number;
823
823
  /**
824
824
  * Sets the date and time value in the Date object.
package/lib/tsc.js CHANGED
@@ -18,7 +18,7 @@ and limitations under the License.
18
18
 
19
19
  // src/compiler/corePublic.ts
20
20
  var versionMajorMinor = "5.5";
21
- var version = `${versionMajorMinor}.0-dev.20240401`;
21
+ var version = `${versionMajorMinor}.0-dev.20240404`;
22
22
 
23
23
  // src/compiler/core.ts
24
24
  var emptyArray = [];
@@ -7154,6 +7154,9 @@ var Diagnostics = {
7154
7154
  There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings: diag(6278, 3 /* Message */, "There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The__6278", `There are types at '{0}', but this result could not be resolved when respecting package.json "exports". The '{1}' library may need to update its package.json or typings.`),
7155
7155
  Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_need_configuration_update: diag(6279, 3 /* Message */, "Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_ne_6279", "Resolution of non-relative name failed; trying with '--moduleResolution bundler' to see if project may need configuration update."),
7156
7156
  There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setting_Consider_updating_to_node16_nodenext_or_bundler: diag(6280, 3 /* Message */, "There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setti_6280", "There are types at '{0}', but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'."),
7157
+ package_json_has_a_peerDependencies_field: diag(6281, 3 /* Message */, "package_json_has_a_peerDependencies_field_6281", "'package.json' has a 'peerDependencies' field."),
7158
+ Found_peerDependency_0_with_1_version: diag(6282, 3 /* Message */, "Found_peerDependency_0_with_1_version_6282", "Found peerDependency '{0}' with '{1}' version."),
7159
+ Failed_to_find_peerDependency_0: diag(6283, 3 /* Message */, "Failed_to_find_peerDependency_0_6283", "Failed to find peerDependency '{0}'."),
7157
7160
  Enable_project_compilation: diag(6302, 3 /* Message */, "Enable_project_compilation_6302", "Enable project compilation"),
7158
7161
  Composite_projects_may_not_disable_declaration_emit: diag(6304, 1 /* Error */, "Composite_projects_may_not_disable_declaration_emit_6304", "Composite projects may not disable declaration emit."),
7159
7162
  Output_file_0_has_not_been_built_from_source_file_1: diag(6305, 1 /* Error */, "Output_file_0_has_not_been_built_from_source_file_1_6305", "Output file '{0}' has not been built from source file '{1}'."),
@@ -11572,13 +11575,13 @@ function createModuleNotFoundChain(sourceFile, host, moduleReference, mode, pack
11572
11575
  return result;
11573
11576
  }
11574
11577
  function packageIdIsEqual(a, b) {
11575
- return a === b || !!a && !!b && a.name === b.name && a.subModuleName === b.subModuleName && a.version === b.version;
11578
+ return a === b || !!a && !!b && a.name === b.name && a.subModuleName === b.subModuleName && a.version === b.version && a.peerDependencies === b.peerDependencies;
11576
11579
  }
11577
11580
  function packageIdToPackageName({ name, subModuleName }) {
11578
11581
  return subModuleName ? `${name}/${subModuleName}` : name;
11579
11582
  }
11580
11583
  function packageIdToString(packageId) {
11581
- return `${packageIdToPackageName(packageId)}@${packageId.version}`;
11584
+ return `${packageIdToPackageName(packageId)}@${packageId.version}${packageId.peerDependencies ?? ""}`;
11582
11585
  }
11583
11586
  function typeDirectiveIsEqualTo(oldResolution, newResolution) {
11584
11587
  return oldResolution === newResolution || oldResolution.resolvedTypeReferenceDirective === newResolution.resolvedTypeReferenceDirective || !!oldResolution.resolvedTypeReferenceDirective && !!newResolution.resolvedTypeReferenceDirective && oldResolution.resolvedTypeReferenceDirective.resolvedFileName === newResolution.resolvedTypeReferenceDirective.resolvedFileName && !!oldResolution.resolvedTypeReferenceDirective.primary === !!newResolution.resolvedTypeReferenceDirective.primary && oldResolution.resolvedTypeReferenceDirective.originalPath === newResolution.resolvedTypeReferenceDirective.originalPath;
@@ -36968,7 +36971,7 @@ function trace(host, message, ...args) {
36968
36971
  function isTraceEnabled(compilerOptions, host) {
36969
36972
  return !!compilerOptions.traceResolution && host.trace !== void 0;
36970
36973
  }
36971
- function withPackageId(packageInfo, r) {
36974
+ function withPackageId(packageInfo, r, state) {
36972
36975
  let packageId;
36973
36976
  if (r && packageInfo) {
36974
36977
  const packageJsonContent = packageInfo.contents.packageJsonContent;
@@ -36976,7 +36979,8 @@ function withPackageId(packageInfo, r) {
36976
36979
  packageId = {
36977
36980
  name: packageJsonContent.name,
36978
36981
  subModuleName: r.path.slice(packageInfo.packageDirectory.length + directorySeparator.length),
36979
- version: packageJsonContent.version
36982
+ version: packageJsonContent.version,
36983
+ peerDependencies: getPeerDependenciesOfPackageJsonInfo(packageInfo, state)
36980
36984
  };
36981
36985
  }
36982
36986
  }
@@ -36986,7 +36990,9 @@ function noPackageId(r) {
36986
36990
  return withPackageId(
36987
36991
  /*packageInfo*/
36988
36992
  void 0,
36989
- r
36993
+ r,
36994
+ /*state*/
36995
+ void 0
36990
36996
  );
36991
36997
  }
36992
36998
  function removeIgnoredPackageId(r) {
@@ -37352,7 +37358,7 @@ function resolveTypeReferenceDirective(typeReferenceDirectiveName, containingFil
37352
37358
  false,
37353
37359
  moduleResolutionState
37354
37360
  ) : void 0;
37355
- return resolvedTypeScriptOnly(withPackageId(packageInfo, resolvedFromFile));
37361
+ return resolvedTypeScriptOnly(withPackageId(packageInfo, resolvedFromFile, moduleResolutionState));
37356
37362
  }
37357
37363
  }
37358
37364
  return resolvedTypeScriptOnly(
@@ -38288,7 +38294,7 @@ function nodeLoadModuleByRelativeName(extensions, candidate, onlyRecordFailures,
38288
38294
  false,
38289
38295
  state
38290
38296
  ) : void 0;
38291
- return withPackageId(packageInfo, resolvedFromFile);
38297
+ return withPackageId(packageInfo, resolvedFromFile, state);
38292
38298
  }
38293
38299
  }
38294
38300
  if (!onlyRecordFailures) {
@@ -38431,7 +38437,7 @@ function loadNodeModuleFromDirectory(extensions, candidate, onlyRecordFailures,
38431
38437
  const packageInfo = considerPackageJson ? getPackageJsonInfo(candidate, onlyRecordFailures, state) : void 0;
38432
38438
  const packageJsonContent = packageInfo && packageInfo.contents.packageJsonContent;
38433
38439
  const versionPaths = packageInfo && getVersionPathsOfPackageJsonInfo(packageInfo, state);
38434
- return withPackageId(packageInfo, loadNodeModuleFromDirectoryWorker(extensions, candidate, onlyRecordFailures, state, packageJsonContent, versionPaths));
38440
+ return withPackageId(packageInfo, loadNodeModuleFromDirectoryWorker(extensions, candidate, onlyRecordFailures, state, packageJsonContent, versionPaths), state);
38435
38441
  }
38436
38442
  function getTemporaryModuleResolutionState(packageJsonInfoCache, host, options) {
38437
38443
  return {
@@ -38473,6 +38479,42 @@ function getVersionPathsOfPackageJsonInfo(packageJsonInfo, state) {
38473
38479
  }
38474
38480
  return packageJsonInfo.contents.versionPaths || void 0;
38475
38481
  }
38482
+ function getPeerDependenciesOfPackageJsonInfo(packageJsonInfo, state) {
38483
+ if (packageJsonInfo.contents.peerDependencies === void 0) {
38484
+ packageJsonInfo.contents.peerDependencies = readPackageJsonPeerDependencies(packageJsonInfo, state) || false;
38485
+ }
38486
+ return packageJsonInfo.contents.peerDependencies || void 0;
38487
+ }
38488
+ function readPackageJsonPeerDependencies(packageJsonInfo, state) {
38489
+ const peerDependencies = readPackageJsonField(packageJsonInfo.contents.packageJsonContent, "peerDependencies", "object", state);
38490
+ if (peerDependencies === void 0)
38491
+ return void 0;
38492
+ if (state.traceEnabled)
38493
+ trace(state.host, Diagnostics.package_json_has_a_peerDependencies_field);
38494
+ const packageDirectory = realPath(packageJsonInfo.packageDirectory, state.host, state.traceEnabled);
38495
+ const nodeModules = packageDirectory.substring(0, packageDirectory.lastIndexOf("node_modules") + "node_modules".length) + directorySeparator;
38496
+ let result = "";
38497
+ for (const key in peerDependencies) {
38498
+ if (hasProperty(peerDependencies, key)) {
38499
+ const peerPackageJson = getPackageJsonInfo(
38500
+ nodeModules + key,
38501
+ /*onlyRecordFailures*/
38502
+ false,
38503
+ state
38504
+ );
38505
+ if (peerPackageJson) {
38506
+ const version2 = peerPackageJson.contents.packageJsonContent.version;
38507
+ result += `+${key}@${version2}`;
38508
+ if (state.traceEnabled)
38509
+ trace(state.host, Diagnostics.Found_peerDependency_0_with_1_version, key, version2);
38510
+ } else {
38511
+ if (state.traceEnabled)
38512
+ trace(state.host, Diagnostics.Failed_to_find_peerDependency_0, key);
38513
+ }
38514
+ }
38515
+ }
38516
+ return result;
38517
+ }
38476
38518
  function getPackageJsonInfo(packageDirectory, onlyRecordFailures, state) {
38477
38519
  var _a, _b, _c, _d, _e, _f;
38478
38520
  const { host, traceEnabled } = state;
@@ -38501,7 +38543,7 @@ function getPackageJsonInfo(packageDirectory, onlyRecordFailures, state) {
38501
38543
  if (traceEnabled) {
38502
38544
  trace(host, Diagnostics.Found_package_json_at_0, packageJsonPath);
38503
38545
  }
38504
- const result = { packageDirectory, contents: { packageJsonContent, versionPaths: void 0, resolvedEntrypoints: void 0 } };
38546
+ const result = { packageDirectory, contents: { packageJsonContent, versionPaths: void 0, resolvedEntrypoints: void 0, peerDependencies: void 0 } };
38505
38547
  if (state.packageJsonInfoCache && !state.packageJsonInfoCache.isReadonly)
38506
38548
  state.packageJsonInfoCache.setPackageJsonInfo(packageJsonPath, result);
38507
38549
  (_e = state.affectingLocations) == null ? void 0 : _e.push(packageJsonPath);
@@ -38899,7 +38941,7 @@ function getLoadModuleFromTargetImportOrExport(extensions, state, cache, redirec
38899
38941
  /*onlyRecordFailures*/
38900
38942
  false,
38901
38943
  state
38902
- )));
38944
+ ), state));
38903
38945
  } else if (typeof target === "object" && target !== null) {
38904
38946
  if (!Array.isArray(target)) {
38905
38947
  traceIfEnabled(state, Diagnostics.Entering_conditional_exports);
@@ -39013,7 +39055,7 @@ function getLoadModuleFromTargetImportOrExport(extensions, state, cache, redirec
39013
39055
  /*onlyRecordFailures*/
39014
39056
  false,
39015
39057
  state
39016
- )));
39058
+ ), state));
39017
39059
  }
39018
39060
  }
39019
39061
  }
@@ -39144,7 +39186,7 @@ function loadModuleFromSpecificNodeModulesDirectory(extensions, moduleName, node
39144
39186
  packageInfo.contents.packageJsonContent,
39145
39187
  getVersionPathsOfPackageJsonInfo(packageInfo, state)
39146
39188
  );
39147
- return withPackageId(packageInfo, fromDirectory);
39189
+ return withPackageId(packageInfo, fromDirectory, state);
39148
39190
  }
39149
39191
  const loader = (extensions2, candidate2, onlyRecordFailures, state2) => {
39150
39192
  let pathAndExtension = (rest || !(state2.features & 32 /* EsmMode */)) && loadModuleFromFile(extensions2, candidate2, onlyRecordFailures, state2) || loadNodeModuleFromDirectoryWorker(
@@ -39158,7 +39200,7 @@ function loadModuleFromSpecificNodeModulesDirectory(extensions, moduleName, node
39158
39200
  if (!pathAndExtension && packageInfo && (packageInfo.contents.packageJsonContent.exports === void 0 || packageInfo.contents.packageJsonContent.exports === null) && state2.features & 32 /* EsmMode */) {
39159
39201
  pathAndExtension = loadModuleFromFile(extensions2, combinePaths(candidate2, "index.js"), onlyRecordFailures, state2);
39160
39202
  }
39161
- return withPackageId(packageInfo, pathAndExtension);
39203
+ return withPackageId(packageInfo, pathAndExtension, state2);
39162
39204
  };
39163
39205
  if (rest !== "") {
39164
39206
  packageInfo = rootPackageInfo ?? getPackageJsonInfo(packageDirectory, !nodeModulesDirectoryExists, state);
@@ -39365,7 +39407,7 @@ function resolveFromTypeRoot(moduleName, state) {
39365
39407
  false,
39366
39408
  state
39367
39409
  ) : void 0;
39368
- return toSearchResult(withPackageId(packageInfo, resolvedFromFile));
39410
+ return toSearchResult(withPackageId(packageInfo, resolvedFromFile, state));
39369
39411
  }
39370
39412
  const resolved = loadNodeModuleFromDirectory(4 /* Declaration */, candidate, !directoryExists, state);
39371
39413
  if (resolved)
@@ -43500,6 +43542,7 @@ function createTypeChecker(host) {
43500
43542
  isArgumentsSymbol: (symbol) => symbol === argumentsSymbol,
43501
43543
  isUnknownSymbol: (symbol) => symbol === unknownSymbol,
43502
43544
  getMergedSymbol,
43545
+ symbolIsValue,
43503
43546
  getDiagnostics,
43504
43547
  getGlobalDiagnostics,
43505
43548
  getRecursionIdentity,
@@ -49068,68 +49111,7 @@ function createTypeChecker(host) {
49068
49111
  /*skipUnionExpanding*/
49069
49112
  true
49070
49113
  )[0];
49071
- let cleanup;
49072
- if (context.enclosingDeclaration && signature.declaration && signature.declaration !== context.enclosingDeclaration && !isInJSFile(signature.declaration) && (some(expandedParams) || some(signature.typeParameters))) {
49073
- let pushFakeScope2 = function(kind2, addAll) {
49074
- Debug.assert(context.enclosingDeclaration);
49075
- let existingFakeScope;
49076
- if (getNodeLinks(context.enclosingDeclaration).fakeScopeForSignatureDeclaration === kind2) {
49077
- existingFakeScope = context.enclosingDeclaration;
49078
- } else if (context.enclosingDeclaration.parent && getNodeLinks(context.enclosingDeclaration.parent).fakeScopeForSignatureDeclaration === kind2) {
49079
- existingFakeScope = context.enclosingDeclaration.parent;
49080
- }
49081
- Debug.assertOptionalNode(existingFakeScope, isBlock);
49082
- const locals = (existingFakeScope == null ? void 0 : existingFakeScope.locals) ?? createSymbolTable();
49083
- let newLocals;
49084
- addAll((name, symbol) => {
49085
- if (!locals.has(name)) {
49086
- newLocals = append(newLocals, name);
49087
- locals.set(name, symbol);
49088
- }
49089
- });
49090
- if (!newLocals)
49091
- return;
49092
- const oldCleanup = cleanup;
49093
- function undo() {
49094
- forEach(newLocals, (s) => locals.delete(s));
49095
- oldCleanup == null ? void 0 : oldCleanup();
49096
- }
49097
- if (existingFakeScope) {
49098
- cleanup = undo;
49099
- } else {
49100
- const fakeScope = parseNodeFactory.createBlock(emptyArray);
49101
- getNodeLinks(fakeScope).fakeScopeForSignatureDeclaration = kind2;
49102
- fakeScope.locals = locals;
49103
- const saveEnclosingDeclaration = context.enclosingDeclaration;
49104
- setParent(fakeScope, saveEnclosingDeclaration);
49105
- context.enclosingDeclaration = fakeScope;
49106
- cleanup = () => {
49107
- context.enclosingDeclaration = saveEnclosingDeclaration;
49108
- undo();
49109
- };
49110
- }
49111
- };
49112
- var pushFakeScope = pushFakeScope2;
49113
- pushFakeScope2(
49114
- "params",
49115
- (add) => {
49116
- for (const param of expandedParams) {
49117
- add(param.escapedName, param);
49118
- }
49119
- }
49120
- );
49121
- if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */) {
49122
- pushFakeScope2(
49123
- "typeParams",
49124
- (add) => {
49125
- for (const typeParam of signature.typeParameters ?? emptyArray) {
49126
- const typeParamName = typeParameterToName(typeParam, context).escapedText;
49127
- add(typeParamName, typeParam.symbol);
49128
- }
49129
- }
49130
- );
49131
- }
49132
- }
49114
+ const cleanup = enterNewScope(context, signature.declaration, expandedParams, signature.typeParameters);
49133
49115
  const parameters = (some(expandedParams, (p) => p !== expandedParams[expandedParams.length - 1] && !!(getCheckFlags(p) & 32768 /* RestParameter */)) ? signature.parameters : expandedParams).map((parameter) => symbolToParameterDeclaration(parameter, context, kind === 176 /* Constructor */));
49134
49116
  const thisParameter = context.flags & 33554432 /* OmitThisParameter */ ? void 0 : tryGetThisParameterDeclaration(signature, context);
49135
49117
  if (thisParameter) {
@@ -49220,6 +49202,111 @@ function createTypeChecker(host) {
49220
49202
  cleanup == null ? void 0 : cleanup();
49221
49203
  return node;
49222
49204
  }
49205
+ function isNewScopeNode(node) {
49206
+ return isFunctionLike(node) || isJSDocSignature(node) || isMappedTypeNode(node);
49207
+ }
49208
+ function getTypeParametersInScope(node) {
49209
+ return isFunctionLike(node) || isJSDocSignature(node) ? getSignatureFromDeclaration(node).typeParameters : isConditionalTypeNode(node) ? getInferTypeParameters(node) : [getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(node.typeParameter))];
49210
+ }
49211
+ function getParametersInScope(node) {
49212
+ return isFunctionLike(node) || isJSDocSignature(node) ? getExpandedParameters(
49213
+ getSignatureFromDeclaration(node),
49214
+ /*skipUnionExpanding*/
49215
+ true
49216
+ )[0] : void 0;
49217
+ }
49218
+ function enterNewScope(context, declaration, expandedParams, typeParameters) {
49219
+ let cleanup;
49220
+ if (context.enclosingDeclaration && declaration && declaration !== context.enclosingDeclaration && !isInJSFile(declaration) && (some(expandedParams) || some(typeParameters))) {
49221
+ let pushFakeScope2 = function(kind, addAll) {
49222
+ Debug.assert(context.enclosingDeclaration);
49223
+ let existingFakeScope;
49224
+ if (getNodeLinks(context.enclosingDeclaration).fakeScopeForSignatureDeclaration === kind) {
49225
+ existingFakeScope = context.enclosingDeclaration;
49226
+ } else if (context.enclosingDeclaration.parent && getNodeLinks(context.enclosingDeclaration.parent).fakeScopeForSignatureDeclaration === kind) {
49227
+ existingFakeScope = context.enclosingDeclaration.parent;
49228
+ }
49229
+ Debug.assertOptionalNode(existingFakeScope, isBlock);
49230
+ const locals = (existingFakeScope == null ? void 0 : existingFakeScope.locals) ?? createSymbolTable();
49231
+ let newLocals;
49232
+ addAll((name, symbol) => {
49233
+ if (!locals.has(name)) {
49234
+ newLocals = append(newLocals, name);
49235
+ locals.set(name, symbol);
49236
+ }
49237
+ });
49238
+ if (!newLocals)
49239
+ return;
49240
+ const oldCleanup = cleanup;
49241
+ function undo() {
49242
+ forEach(newLocals, (s) => locals.delete(s));
49243
+ oldCleanup == null ? void 0 : oldCleanup();
49244
+ }
49245
+ if (existingFakeScope) {
49246
+ cleanup = undo;
49247
+ } else {
49248
+ const fakeScope = parseNodeFactory.createBlock(emptyArray);
49249
+ getNodeLinks(fakeScope).fakeScopeForSignatureDeclaration = kind;
49250
+ fakeScope.locals = locals;
49251
+ const saveEnclosingDeclaration = context.enclosingDeclaration;
49252
+ setParent(fakeScope, saveEnclosingDeclaration);
49253
+ context.enclosingDeclaration = fakeScope;
49254
+ cleanup = () => {
49255
+ context.enclosingDeclaration = saveEnclosingDeclaration;
49256
+ undo();
49257
+ };
49258
+ }
49259
+ };
49260
+ var pushFakeScope = pushFakeScope2;
49261
+ pushFakeScope2(
49262
+ "params",
49263
+ (add) => {
49264
+ for (const param of expandedParams ?? emptyArray) {
49265
+ if (!forEach(param.declarations, (d) => {
49266
+ if (isParameter(d) && isBindingPattern(d.name)) {
49267
+ bindPattern(d.name);
49268
+ return true;
49269
+ }
49270
+ return void 0;
49271
+ function bindPattern(p) {
49272
+ forEach(p.elements, (e) => {
49273
+ switch (e.kind) {
49274
+ case 232 /* OmittedExpression */:
49275
+ return;
49276
+ case 208 /* BindingElement */:
49277
+ return bindElement(e);
49278
+ default:
49279
+ return Debug.assertNever(e);
49280
+ }
49281
+ });
49282
+ }
49283
+ function bindElement(e) {
49284
+ if (isBindingPattern(e.name)) {
49285
+ return bindPattern(e.name);
49286
+ }
49287
+ const symbol = getSymbolOfDeclaration(e);
49288
+ add(symbol.escapedName, symbol);
49289
+ }
49290
+ })) {
49291
+ add(param.escapedName, param);
49292
+ }
49293
+ }
49294
+ }
49295
+ );
49296
+ if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */) {
49297
+ pushFakeScope2(
49298
+ "typeParams",
49299
+ (add) => {
49300
+ for (const typeParam of typeParameters ?? emptyArray) {
49301
+ const typeParamName = typeParameterToName(typeParam, context).escapedText;
49302
+ add(typeParamName, typeParam.symbol);
49303
+ }
49304
+ }
49305
+ );
49306
+ }
49307
+ return cleanup;
49308
+ }
49309
+ }
49223
49310
  function tryGetThisParameterDeclaration(signature, context) {
49224
49311
  if (signature.thisParameter) {
49225
49312
  return symbolToParameterDeclaration(signature.thisParameter, context);
@@ -49838,6 +49925,9 @@ function createTypeChecker(host) {
49838
49925
  if (initial.typeParameterSymbolList) {
49839
49926
  initial.typeParameterSymbolList = new Set(initial.typeParameterSymbolList);
49840
49927
  }
49928
+ if (initial.typeParameterNamesByTextNextNameCount) {
49929
+ initial.typeParameterNamesByTextNextNameCount = new Map(initial.typeParameterNamesByTextNextNameCount);
49930
+ }
49841
49931
  initial.tracker = new SymbolTrackerImpl(initial, initial.tracker.inner, initial.tracker.moduleResolverHost);
49842
49932
  return initial;
49843
49933
  }
@@ -49845,7 +49935,16 @@ function createTypeChecker(host) {
49845
49935
  return symbol.declarations && find(symbol.declarations, (s) => !!getNonlocalEffectiveTypeAnnotationNode(s) && (!enclosingDeclaration || !!findAncestor(s, (n) => n === enclosingDeclaration)));
49846
49936
  }
49847
49937
  function existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type) {
49848
- return !(getObjectFlags(type) & 4 /* Reference */) || !isTypeReferenceNode(existing) || length(existing.typeArguments) >= getMinTypeArgumentCount(type.target.typeParameters);
49938
+ if (!(getObjectFlags(type) & 4 /* Reference */))
49939
+ return true;
49940
+ if (!isTypeReferenceNode(existing))
49941
+ return true;
49942
+ void getTypeFromTypeReference(existing);
49943
+ const symbol = getNodeLinks(existing).resolvedSymbol;
49944
+ const existingTarget = symbol && getDeclaredTypeOfSymbol(symbol);
49945
+ if (!existingTarget || existingTarget !== type.target)
49946
+ return true;
49947
+ return length(existing.typeArguments) >= getMinTypeArgumentCount(type.target.typeParameters);
49849
49948
  }
49850
49949
  function getEnclosingDeclarationIgnoringFakeScope(enclosingDeclaration) {
49851
49950
  while (getNodeLinks(enclosingDeclaration).fakeScopeForSignatureDeclaration) {
@@ -49970,6 +50069,22 @@ function createTypeChecker(host) {
49970
50069
  }
49971
50070
  return transformed === existing ? setTextRange(factory.cloneNode(existing), existing) : transformed;
49972
50071
  function visitExistingNodeTreeSymbols(node) {
50072
+ const onExitNewScope = isNewScopeNode(node) ? onEnterNewScope(node) : void 0;
50073
+ const result = visitExistingNodeTreeSymbolsWorker(node);
50074
+ onExitNewScope == null ? void 0 : onExitNewScope();
50075
+ return result;
50076
+ }
50077
+ function onEnterNewScope(node) {
50078
+ const oldContex = context;
50079
+ context = cloneNodeBuilderContext(context);
50080
+ const cleanup = enterNewScope(context, node, getParametersInScope(node), getTypeParametersInScope(node));
50081
+ return onExitNewScope;
50082
+ function onExitNewScope() {
50083
+ cleanup == null ? void 0 : cleanup();
50084
+ context = oldContex;
50085
+ }
50086
+ }
50087
+ function visitExistingNodeTreeSymbolsWorker(node) {
49973
50088
  if (isJSDocAllType(node) || node.kind === 319 /* JSDocNamepathType */) {
49974
50089
  return factory.createKeywordTypeNode(133 /* AnyKeyword */);
49975
50090
  }
@@ -50120,6 +50235,21 @@ function createTypeChecker(host) {
50120
50235
  setEmitFlags(clone, flags | (context.flags & 1024 /* MultilineObjectLiterals */ && isTypeLiteralNode(node) ? 0 : 1 /* SingleLine */));
50121
50236
  return clone;
50122
50237
  }
50238
+ if (isConditionalTypeNode(node)) {
50239
+ const checkType = visitNode(node.checkType, visitExistingNodeTreeSymbols, isTypeNode);
50240
+ const disposeScope = onEnterNewScope(node);
50241
+ const extendType = visitNode(node.extendsType, visitExistingNodeTreeSymbols, isTypeNode);
50242
+ const trueType2 = visitNode(node.trueType, visitExistingNodeTreeSymbols, isTypeNode);
50243
+ disposeScope();
50244
+ const falseType2 = visitNode(node.falseType, visitExistingNodeTreeSymbols, isTypeNode);
50245
+ return factory.updateConditionalTypeNode(
50246
+ node,
50247
+ checkType,
50248
+ extendType,
50249
+ trueType2,
50250
+ falseType2
50251
+ );
50252
+ }
50123
50253
  return visitEachChild(
50124
50254
  node,
50125
50255
  visitExistingNodeTreeSymbols,
@@ -63335,6 +63465,9 @@ function createTypeChecker(host) {
63335
63465
  const resolved = resolveStructuredTypeMembers(type);
63336
63466
  return resolved.callSignatures.length === 0 && resolved.constructSignatures.length === 0 && resolved.indexInfos.length === 0 && resolved.properties.length > 0 && every(resolved.properties, (p) => !!(p.flags & 16777216 /* Optional */));
63337
63467
  }
63468
+ if (type.flags & 33554432 /* Substitution */) {
63469
+ return isWeakType(type.baseType);
63470
+ }
63338
63471
  if (type.flags & 2097152 /* Intersection */) {
63339
63472
  return every(type.types, isWeakType);
63340
63473
  }
@@ -70303,7 +70436,11 @@ function createTypeChecker(host) {
70303
70436
  if (getPropertyOfObjectType(targetType, name) || getApplicableIndexInfoForName(targetType, name) || isLateBoundName(name) && getIndexInfoOfType(targetType, stringType) || isComparingJsxAttributes && isHyphenatedJsxName(name)) {
70304
70437
  return true;
70305
70438
  }
70306
- } else if (targetType.flags & 3145728 /* UnionOrIntersection */ && isExcessPropertyCheckTarget(targetType)) {
70439
+ }
70440
+ if (targetType.flags & 33554432 /* Substitution */) {
70441
+ return isKnownProperty(targetType.baseType, name, isComparingJsxAttributes);
70442
+ }
70443
+ if (targetType.flags & 3145728 /* UnionOrIntersection */ && isExcessPropertyCheckTarget(targetType)) {
70307
70444
  for (const t of targetType.types) {
70308
70445
  if (isKnownProperty(t, name, isComparingJsxAttributes)) {
70309
70446
  return true;
@@ -70313,7 +70450,7 @@ function createTypeChecker(host) {
70313
70450
  return false;
70314
70451
  }
70315
70452
  function isExcessPropertyCheckTarget(type) {
70316
- return !!(type.flags & 524288 /* Object */ && !(getObjectFlags(type) & 512 /* ObjectLiteralPatternWithComputedProperties */) || type.flags & 67108864 /* NonPrimitive */ || type.flags & 1048576 /* Union */ && some(type.types, isExcessPropertyCheckTarget) || type.flags & 2097152 /* Intersection */ && every(type.types, isExcessPropertyCheckTarget));
70453
+ return !!(type.flags & 524288 /* Object */ && !(getObjectFlags(type) & 512 /* ObjectLiteralPatternWithComputedProperties */) || type.flags & 67108864 /* NonPrimitive */ || type.flags & 33554432 /* Substitution */ && isExcessPropertyCheckTarget(type.baseType) || type.flags & 1048576 /* Union */ && some(type.types, isExcessPropertyCheckTarget) || type.flags & 2097152 /* Intersection */ && every(type.types, isExcessPropertyCheckTarget));
70317
70454
  }
70318
70455
  function checkJsxExpression(node, checkMode) {
70319
70456
  checkGrammarJsxExpression(node);
@@ -74454,17 +74591,18 @@ function createTypeChecker(host) {
74454
74591
  const antecedent = expr.flowNode || expr.parent.kind === 253 /* ReturnStatement */ && expr.parent.flowNode || { flags: 2 /* Start */ };
74455
74592
  const trueCondition = {
74456
74593
  flags: 32 /* TrueCondition */,
74457
- node: expr,
74458
- antecedent
74594
+ antecedent,
74595
+ node: expr
74459
74596
  };
74460
74597
  const trueType2 = getFlowTypeOfReference(param.name, initType, initType, func, trueCondition);
74461
74598
  if (trueType2 === initType)
74462
74599
  return void 0;
74463
74600
  const falseCondition = {
74464
- ...trueCondition,
74465
- flags: 64 /* FalseCondition */
74601
+ flags: 64 /* FalseCondition */,
74602
+ antecedent,
74603
+ node: expr
74466
74604
  };
74467
- const falseSubtype = getFlowTypeOfReference(param.name, trueType2, trueType2, func, falseCondition);
74605
+ const falseSubtype = getFlowTypeOfReference(param.name, initType, trueType2, func, falseCondition);
74468
74606
  return falseSubtype.flags & 131072 /* Never */ ? trueType2 : void 0;
74469
74607
  }
74470
74608
  function checkAllCodePathsInNonVoidFunctionReturnOrThrow(func, returnType) {
@@ -5793,61 +5793,6 @@ declare namespace ts {
5793
5793
  readonly moduleSpecifier: Expression;
5794
5794
  readonly attributes?: ImportAttributes;
5795
5795
  }
5796
- enum FlowFlags {
5797
- Unreachable = 1,
5798
- Start = 2,
5799
- BranchLabel = 4,
5800
- LoopLabel = 8,
5801
- Assignment = 16,
5802
- TrueCondition = 32,
5803
- FalseCondition = 64,
5804
- SwitchClause = 128,
5805
- ArrayMutation = 256,
5806
- Call = 512,
5807
- ReduceLabel = 1024,
5808
- Referenced = 2048,
5809
- Shared = 4096,
5810
- Label = 12,
5811
- Condition = 96,
5812
- }
5813
- type FlowNode = FlowStart | FlowLabel | FlowAssignment | FlowCondition | FlowSwitchClause | FlowArrayMutation | FlowCall | FlowReduceLabel;
5814
- interface FlowNodeBase {
5815
- flags: FlowFlags;
5816
- id?: number;
5817
- }
5818
- interface FlowStart extends FlowNodeBase {
5819
- node?: FunctionExpression | ArrowFunction | MethodDeclaration | GetAccessorDeclaration | SetAccessorDeclaration;
5820
- }
5821
- interface FlowLabel extends FlowNodeBase {
5822
- antecedents: FlowNode[] | undefined;
5823
- }
5824
- interface FlowAssignment extends FlowNodeBase {
5825
- node: Expression | VariableDeclaration | BindingElement;
5826
- antecedent: FlowNode;
5827
- }
5828
- interface FlowCall extends FlowNodeBase {
5829
- node: CallExpression;
5830
- antecedent: FlowNode;
5831
- }
5832
- interface FlowCondition extends FlowNodeBase {
5833
- node: Expression;
5834
- antecedent: FlowNode;
5835
- }
5836
- interface FlowSwitchClause extends FlowNodeBase {
5837
- switchStatement: SwitchStatement;
5838
- clauseStart: number;
5839
- clauseEnd: number;
5840
- antecedent: FlowNode;
5841
- }
5842
- interface FlowArrayMutation extends FlowNodeBase {
5843
- node: CallExpression | BinaryExpression;
5844
- antecedent: FlowNode;
5845
- }
5846
- interface FlowReduceLabel extends FlowNodeBase {
5847
- target: FlowLabel;
5848
- antecedents: FlowNode[];
5849
- antecedent: FlowNode;
5850
- }
5851
5796
  type FlowType = Type | IncompleteType;
5852
5797
  interface IncompleteType {
5853
5798
  flags: TypeFlags | 0;
package/lib/typescript.js CHANGED
@@ -2328,7 +2328,7 @@ module.exports = __toCommonJS(typescript_exports);
2328
2328
 
2329
2329
  // src/compiler/corePublic.ts
2330
2330
  var versionMajorMinor = "5.5";
2331
- var version = `${versionMajorMinor}.0-dev.20240401`;
2331
+ var version = `${versionMajorMinor}.0-dev.20240404`;
2332
2332
  var Comparison = /* @__PURE__ */ ((Comparison3) => {
2333
2333
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
2334
2334
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -10711,6 +10711,9 @@ var Diagnostics = {
10711
10711
  There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings: diag(6278, 3 /* Message */, "There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The__6278", `There are types at '{0}', but this result could not be resolved when respecting package.json "exports". The '{1}' library may need to update its package.json or typings.`),
10712
10712
  Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_need_configuration_update: diag(6279, 3 /* Message */, "Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_ne_6279", "Resolution of non-relative name failed; trying with '--moduleResolution bundler' to see if project may need configuration update."),
10713
10713
  There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setting_Consider_updating_to_node16_nodenext_or_bundler: diag(6280, 3 /* Message */, "There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setti_6280", "There are types at '{0}', but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'."),
10714
+ package_json_has_a_peerDependencies_field: diag(6281, 3 /* Message */, "package_json_has_a_peerDependencies_field_6281", "'package.json' has a 'peerDependencies' field."),
10715
+ Found_peerDependency_0_with_1_version: diag(6282, 3 /* Message */, "Found_peerDependency_0_with_1_version_6282", "Found peerDependency '{0}' with '{1}' version."),
10716
+ Failed_to_find_peerDependency_0: diag(6283, 3 /* Message */, "Failed_to_find_peerDependency_0_6283", "Failed to find peerDependency '{0}'."),
10714
10717
  Enable_project_compilation: diag(6302, 3 /* Message */, "Enable_project_compilation_6302", "Enable project compilation"),
10715
10718
  Composite_projects_may_not_disable_declaration_emit: diag(6304, 1 /* Error */, "Composite_projects_may_not_disable_declaration_emit_6304", "Composite projects may not disable declaration emit."),
10716
10719
  Output_file_0_has_not_been_built_from_source_file_1: diag(6305, 1 /* Error */, "Output_file_0_has_not_been_built_from_source_file_1_6305", "Output file '{0}' has not been built from source file '{1}'."),
@@ -15332,13 +15335,13 @@ function createModuleNotFoundChain(sourceFile, host, moduleReference, mode, pack
15332
15335
  return result;
15333
15336
  }
15334
15337
  function packageIdIsEqual(a, b) {
15335
- return a === b || !!a && !!b && a.name === b.name && a.subModuleName === b.subModuleName && a.version === b.version;
15338
+ return a === b || !!a && !!b && a.name === b.name && a.subModuleName === b.subModuleName && a.version === b.version && a.peerDependencies === b.peerDependencies;
15336
15339
  }
15337
15340
  function packageIdToPackageName({ name, subModuleName }) {
15338
15341
  return subModuleName ? `${name}/${subModuleName}` : name;
15339
15342
  }
15340
15343
  function packageIdToString(packageId) {
15341
- return `${packageIdToPackageName(packageId)}@${packageId.version}`;
15344
+ return `${packageIdToPackageName(packageId)}@${packageId.version}${packageId.peerDependencies ?? ""}`;
15342
15345
  }
15343
15346
  function typeDirectiveIsEqualTo(oldResolution, newResolution) {
15344
15347
  return oldResolution === newResolution || oldResolution.resolvedTypeReferenceDirective === newResolution.resolvedTypeReferenceDirective || !!oldResolution.resolvedTypeReferenceDirective && !!newResolution.resolvedTypeReferenceDirective && oldResolution.resolvedTypeReferenceDirective.resolvedFileName === newResolution.resolvedTypeReferenceDirective.resolvedFileName && !!oldResolution.resolvedTypeReferenceDirective.primary === !!newResolution.resolvedTypeReferenceDirective.primary && oldResolution.resolvedTypeReferenceDirective.originalPath === newResolution.resolvedTypeReferenceDirective.originalPath;
@@ -41463,7 +41466,7 @@ function trace(host, message, ...args) {
41463
41466
  function isTraceEnabled(compilerOptions, host) {
41464
41467
  return !!compilerOptions.traceResolution && host.trace !== void 0;
41465
41468
  }
41466
- function withPackageId(packageInfo, r) {
41469
+ function withPackageId(packageInfo, r, state) {
41467
41470
  let packageId;
41468
41471
  if (r && packageInfo) {
41469
41472
  const packageJsonContent = packageInfo.contents.packageJsonContent;
@@ -41471,7 +41474,8 @@ function withPackageId(packageInfo, r) {
41471
41474
  packageId = {
41472
41475
  name: packageJsonContent.name,
41473
41476
  subModuleName: r.path.slice(packageInfo.packageDirectory.length + directorySeparator.length),
41474
- version: packageJsonContent.version
41477
+ version: packageJsonContent.version,
41478
+ peerDependencies: getPeerDependenciesOfPackageJsonInfo(packageInfo, state)
41475
41479
  };
41476
41480
  }
41477
41481
  }
@@ -41481,7 +41485,9 @@ function noPackageId(r) {
41481
41485
  return withPackageId(
41482
41486
  /*packageInfo*/
41483
41487
  void 0,
41484
- r
41488
+ r,
41489
+ /*state*/
41490
+ void 0
41485
41491
  );
41486
41492
  }
41487
41493
  function removeIgnoredPackageId(r) {
@@ -41859,7 +41865,7 @@ function resolveTypeReferenceDirective(typeReferenceDirectiveName, containingFil
41859
41865
  false,
41860
41866
  moduleResolutionState
41861
41867
  ) : void 0;
41862
- return resolvedTypeScriptOnly(withPackageId(packageInfo, resolvedFromFile));
41868
+ return resolvedTypeScriptOnly(withPackageId(packageInfo, resolvedFromFile, moduleResolutionState));
41863
41869
  }
41864
41870
  }
41865
41871
  return resolvedTypeScriptOnly(
@@ -42833,7 +42839,7 @@ function nodeLoadModuleByRelativeName(extensions, candidate, onlyRecordFailures,
42833
42839
  false,
42834
42840
  state
42835
42841
  ) : void 0;
42836
- return withPackageId(packageInfo, resolvedFromFile);
42842
+ return withPackageId(packageInfo, resolvedFromFile, state);
42837
42843
  }
42838
42844
  }
42839
42845
  if (!onlyRecordFailures) {
@@ -42976,7 +42982,7 @@ function loadNodeModuleFromDirectory(extensions, candidate, onlyRecordFailures,
42976
42982
  const packageInfo = considerPackageJson ? getPackageJsonInfo(candidate, onlyRecordFailures, state) : void 0;
42977
42983
  const packageJsonContent = packageInfo && packageInfo.contents.packageJsonContent;
42978
42984
  const versionPaths = packageInfo && getVersionPathsOfPackageJsonInfo(packageInfo, state);
42979
- return withPackageId(packageInfo, loadNodeModuleFromDirectoryWorker(extensions, candidate, onlyRecordFailures, state, packageJsonContent, versionPaths));
42985
+ return withPackageId(packageInfo, loadNodeModuleFromDirectoryWorker(extensions, candidate, onlyRecordFailures, state, packageJsonContent, versionPaths), state);
42980
42986
  }
42981
42987
  function getEntrypointsFromPackageJsonInfo(packageJsonInfo, options, host, cache, resolveJs) {
42982
42988
  if (!resolveJs && packageJsonInfo.contents.resolvedEntrypoints !== void 0) {
@@ -43132,6 +43138,42 @@ function getVersionPathsOfPackageJsonInfo(packageJsonInfo, state) {
43132
43138
  }
43133
43139
  return packageJsonInfo.contents.versionPaths || void 0;
43134
43140
  }
43141
+ function getPeerDependenciesOfPackageJsonInfo(packageJsonInfo, state) {
43142
+ if (packageJsonInfo.contents.peerDependencies === void 0) {
43143
+ packageJsonInfo.contents.peerDependencies = readPackageJsonPeerDependencies(packageJsonInfo, state) || false;
43144
+ }
43145
+ return packageJsonInfo.contents.peerDependencies || void 0;
43146
+ }
43147
+ function readPackageJsonPeerDependencies(packageJsonInfo, state) {
43148
+ const peerDependencies = readPackageJsonField(packageJsonInfo.contents.packageJsonContent, "peerDependencies", "object", state);
43149
+ if (peerDependencies === void 0)
43150
+ return void 0;
43151
+ if (state.traceEnabled)
43152
+ trace(state.host, Diagnostics.package_json_has_a_peerDependencies_field);
43153
+ const packageDirectory = realPath(packageJsonInfo.packageDirectory, state.host, state.traceEnabled);
43154
+ const nodeModules = packageDirectory.substring(0, packageDirectory.lastIndexOf("node_modules") + "node_modules".length) + directorySeparator;
43155
+ let result = "";
43156
+ for (const key in peerDependencies) {
43157
+ if (hasProperty(peerDependencies, key)) {
43158
+ const peerPackageJson = getPackageJsonInfo(
43159
+ nodeModules + key,
43160
+ /*onlyRecordFailures*/
43161
+ false,
43162
+ state
43163
+ );
43164
+ if (peerPackageJson) {
43165
+ const version2 = peerPackageJson.contents.packageJsonContent.version;
43166
+ result += `+${key}@${version2}`;
43167
+ if (state.traceEnabled)
43168
+ trace(state.host, Diagnostics.Found_peerDependency_0_with_1_version, key, version2);
43169
+ } else {
43170
+ if (state.traceEnabled)
43171
+ trace(state.host, Diagnostics.Failed_to_find_peerDependency_0, key);
43172
+ }
43173
+ }
43174
+ }
43175
+ return result;
43176
+ }
43135
43177
  function getPackageJsonInfo(packageDirectory, onlyRecordFailures, state) {
43136
43178
  var _a, _b, _c, _d, _e, _f;
43137
43179
  const { host, traceEnabled } = state;
@@ -43160,7 +43202,7 @@ function getPackageJsonInfo(packageDirectory, onlyRecordFailures, state) {
43160
43202
  if (traceEnabled) {
43161
43203
  trace(host, Diagnostics.Found_package_json_at_0, packageJsonPath);
43162
43204
  }
43163
- const result = { packageDirectory, contents: { packageJsonContent, versionPaths: void 0, resolvedEntrypoints: void 0 } };
43205
+ const result = { packageDirectory, contents: { packageJsonContent, versionPaths: void 0, resolvedEntrypoints: void 0, peerDependencies: void 0 } };
43164
43206
  if (state.packageJsonInfoCache && !state.packageJsonInfoCache.isReadonly)
43165
43207
  state.packageJsonInfoCache.setPackageJsonInfo(packageJsonPath, result);
43166
43208
  (_e = state.affectingLocations) == null ? void 0 : _e.push(packageJsonPath);
@@ -43558,7 +43600,7 @@ function getLoadModuleFromTargetImportOrExport(extensions, state, cache, redirec
43558
43600
  /*onlyRecordFailures*/
43559
43601
  false,
43560
43602
  state
43561
- )));
43603
+ ), state));
43562
43604
  } else if (typeof target === "object" && target !== null) {
43563
43605
  if (!Array.isArray(target)) {
43564
43606
  traceIfEnabled(state, Diagnostics.Entering_conditional_exports);
@@ -43672,7 +43714,7 @@ function getLoadModuleFromTargetImportOrExport(extensions, state, cache, redirec
43672
43714
  /*onlyRecordFailures*/
43673
43715
  false,
43674
43716
  state
43675
- )));
43717
+ ), state));
43676
43718
  }
43677
43719
  }
43678
43720
  }
@@ -43803,7 +43845,7 @@ function loadModuleFromSpecificNodeModulesDirectory(extensions, moduleName, node
43803
43845
  packageInfo.contents.packageJsonContent,
43804
43846
  getVersionPathsOfPackageJsonInfo(packageInfo, state)
43805
43847
  );
43806
- return withPackageId(packageInfo, fromDirectory);
43848
+ return withPackageId(packageInfo, fromDirectory, state);
43807
43849
  }
43808
43850
  const loader = (extensions2, candidate2, onlyRecordFailures, state2) => {
43809
43851
  let pathAndExtension = (rest || !(state2.features & 32 /* EsmMode */)) && loadModuleFromFile(extensions2, candidate2, onlyRecordFailures, state2) || loadNodeModuleFromDirectoryWorker(
@@ -43817,7 +43859,7 @@ function loadModuleFromSpecificNodeModulesDirectory(extensions, moduleName, node
43817
43859
  if (!pathAndExtension && packageInfo && (packageInfo.contents.packageJsonContent.exports === void 0 || packageInfo.contents.packageJsonContent.exports === null) && state2.features & 32 /* EsmMode */) {
43818
43860
  pathAndExtension = loadModuleFromFile(extensions2, combinePaths(candidate2, "index.js"), onlyRecordFailures, state2);
43819
43861
  }
43820
- return withPackageId(packageInfo, pathAndExtension);
43862
+ return withPackageId(packageInfo, pathAndExtension, state2);
43821
43863
  };
43822
43864
  if (rest !== "") {
43823
43865
  packageInfo = rootPackageInfo ?? getPackageJsonInfo(packageDirectory, !nodeModulesDirectoryExists, state);
@@ -44024,7 +44066,7 @@ function resolveFromTypeRoot(moduleName, state) {
44024
44066
  false,
44025
44067
  state
44026
44068
  ) : void 0;
44027
- return toSearchResult(withPackageId(packageInfo, resolvedFromFile));
44069
+ return toSearchResult(withPackageId(packageInfo, resolvedFromFile, state));
44028
44070
  }
44029
44071
  const resolved = loadNodeModuleFromDirectory(4 /* Declaration */, candidate, !directoryExists, state);
44030
44072
  if (resolved)
@@ -48265,6 +48307,7 @@ function createTypeChecker(host) {
48265
48307
  isArgumentsSymbol: (symbol) => symbol === argumentsSymbol,
48266
48308
  isUnknownSymbol: (symbol) => symbol === unknownSymbol,
48267
48309
  getMergedSymbol,
48310
+ symbolIsValue,
48268
48311
  getDiagnostics: getDiagnostics2,
48269
48312
  getGlobalDiagnostics,
48270
48313
  getRecursionIdentity,
@@ -53833,68 +53876,7 @@ function createTypeChecker(host) {
53833
53876
  /*skipUnionExpanding*/
53834
53877
  true
53835
53878
  )[0];
53836
- let cleanup;
53837
- if (context.enclosingDeclaration && signature.declaration && signature.declaration !== context.enclosingDeclaration && !isInJSFile(signature.declaration) && (some(expandedParams) || some(signature.typeParameters))) {
53838
- let pushFakeScope2 = function(kind2, addAll) {
53839
- Debug.assert(context.enclosingDeclaration);
53840
- let existingFakeScope;
53841
- if (getNodeLinks(context.enclosingDeclaration).fakeScopeForSignatureDeclaration === kind2) {
53842
- existingFakeScope = context.enclosingDeclaration;
53843
- } else if (context.enclosingDeclaration.parent && getNodeLinks(context.enclosingDeclaration.parent).fakeScopeForSignatureDeclaration === kind2) {
53844
- existingFakeScope = context.enclosingDeclaration.parent;
53845
- }
53846
- Debug.assertOptionalNode(existingFakeScope, isBlock);
53847
- const locals = (existingFakeScope == null ? void 0 : existingFakeScope.locals) ?? createSymbolTable();
53848
- let newLocals;
53849
- addAll((name, symbol) => {
53850
- if (!locals.has(name)) {
53851
- newLocals = append(newLocals, name);
53852
- locals.set(name, symbol);
53853
- }
53854
- });
53855
- if (!newLocals)
53856
- return;
53857
- const oldCleanup = cleanup;
53858
- function undo() {
53859
- forEach(newLocals, (s) => locals.delete(s));
53860
- oldCleanup == null ? void 0 : oldCleanup();
53861
- }
53862
- if (existingFakeScope) {
53863
- cleanup = undo;
53864
- } else {
53865
- const fakeScope = parseNodeFactory.createBlock(emptyArray);
53866
- getNodeLinks(fakeScope).fakeScopeForSignatureDeclaration = kind2;
53867
- fakeScope.locals = locals;
53868
- const saveEnclosingDeclaration = context.enclosingDeclaration;
53869
- setParent(fakeScope, saveEnclosingDeclaration);
53870
- context.enclosingDeclaration = fakeScope;
53871
- cleanup = () => {
53872
- context.enclosingDeclaration = saveEnclosingDeclaration;
53873
- undo();
53874
- };
53875
- }
53876
- };
53877
- var pushFakeScope = pushFakeScope2;
53878
- pushFakeScope2(
53879
- "params",
53880
- (add) => {
53881
- for (const param of expandedParams) {
53882
- add(param.escapedName, param);
53883
- }
53884
- }
53885
- );
53886
- if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */) {
53887
- pushFakeScope2(
53888
- "typeParams",
53889
- (add) => {
53890
- for (const typeParam of signature.typeParameters ?? emptyArray) {
53891
- const typeParamName = typeParameterToName(typeParam, context).escapedText;
53892
- add(typeParamName, typeParam.symbol);
53893
- }
53894
- }
53895
- );
53896
- }
53897
- }
53879
+ const cleanup = enterNewScope(context, signature.declaration, expandedParams, signature.typeParameters);
53898
53880
  const parameters = (some(expandedParams, (p) => p !== expandedParams[expandedParams.length - 1] && !!(getCheckFlags(p) & 32768 /* RestParameter */)) ? signature.parameters : expandedParams).map((parameter) => symbolToParameterDeclaration(parameter, context, kind === 176 /* Constructor */));
53899
53881
  const thisParameter = context.flags & 33554432 /* OmitThisParameter */ ? void 0 : tryGetThisParameterDeclaration(signature, context);
53900
53882
  if (thisParameter) {
@@ -53985,6 +53967,111 @@ function createTypeChecker(host) {
53985
53967
  cleanup == null ? void 0 : cleanup();
53986
53968
  return node;
53987
53969
  }
53970
+ function isNewScopeNode(node) {
53971
+ return isFunctionLike(node) || isJSDocSignature(node) || isMappedTypeNode(node);
53972
+ }
53973
+ function getTypeParametersInScope(node) {
53974
+ return isFunctionLike(node) || isJSDocSignature(node) ? getSignatureFromDeclaration(node).typeParameters : isConditionalTypeNode(node) ? getInferTypeParameters(node) : [getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(node.typeParameter))];
53975
+ }
53976
+ function getParametersInScope(node) {
53977
+ return isFunctionLike(node) || isJSDocSignature(node) ? getExpandedParameters(
53978
+ getSignatureFromDeclaration(node),
53979
+ /*skipUnionExpanding*/
53980
+ true
53981
+ )[0] : void 0;
53982
+ }
53983
+ function enterNewScope(context, declaration, expandedParams, typeParameters) {
53984
+ let cleanup;
53985
+ if (context.enclosingDeclaration && declaration && declaration !== context.enclosingDeclaration && !isInJSFile(declaration) && (some(expandedParams) || some(typeParameters))) {
53986
+ let pushFakeScope2 = function(kind, addAll) {
53987
+ Debug.assert(context.enclosingDeclaration);
53988
+ let existingFakeScope;
53989
+ if (getNodeLinks(context.enclosingDeclaration).fakeScopeForSignatureDeclaration === kind) {
53990
+ existingFakeScope = context.enclosingDeclaration;
53991
+ } else if (context.enclosingDeclaration.parent && getNodeLinks(context.enclosingDeclaration.parent).fakeScopeForSignatureDeclaration === kind) {
53992
+ existingFakeScope = context.enclosingDeclaration.parent;
53993
+ }
53994
+ Debug.assertOptionalNode(existingFakeScope, isBlock);
53995
+ const locals = (existingFakeScope == null ? void 0 : existingFakeScope.locals) ?? createSymbolTable();
53996
+ let newLocals;
53997
+ addAll((name, symbol) => {
53998
+ if (!locals.has(name)) {
53999
+ newLocals = append(newLocals, name);
54000
+ locals.set(name, symbol);
54001
+ }
54002
+ });
54003
+ if (!newLocals)
54004
+ return;
54005
+ const oldCleanup = cleanup;
54006
+ function undo() {
54007
+ forEach(newLocals, (s) => locals.delete(s));
54008
+ oldCleanup == null ? void 0 : oldCleanup();
54009
+ }
54010
+ if (existingFakeScope) {
54011
+ cleanup = undo;
54012
+ } else {
54013
+ const fakeScope = parseNodeFactory.createBlock(emptyArray);
54014
+ getNodeLinks(fakeScope).fakeScopeForSignatureDeclaration = kind;
54015
+ fakeScope.locals = locals;
54016
+ const saveEnclosingDeclaration = context.enclosingDeclaration;
54017
+ setParent(fakeScope, saveEnclosingDeclaration);
54018
+ context.enclosingDeclaration = fakeScope;
54019
+ cleanup = () => {
54020
+ context.enclosingDeclaration = saveEnclosingDeclaration;
54021
+ undo();
54022
+ };
54023
+ }
54024
+ };
54025
+ var pushFakeScope = pushFakeScope2;
54026
+ pushFakeScope2(
54027
+ "params",
54028
+ (add) => {
54029
+ for (const param of expandedParams ?? emptyArray) {
54030
+ if (!forEach(param.declarations, (d) => {
54031
+ if (isParameter(d) && isBindingPattern(d.name)) {
54032
+ bindPattern(d.name);
54033
+ return true;
54034
+ }
54035
+ return void 0;
54036
+ function bindPattern(p) {
54037
+ forEach(p.elements, (e) => {
54038
+ switch (e.kind) {
54039
+ case 232 /* OmittedExpression */:
54040
+ return;
54041
+ case 208 /* BindingElement */:
54042
+ return bindElement(e);
54043
+ default:
54044
+ return Debug.assertNever(e);
54045
+ }
54046
+ });
54047
+ }
54048
+ function bindElement(e) {
54049
+ if (isBindingPattern(e.name)) {
54050
+ return bindPattern(e.name);
54051
+ }
54052
+ const symbol = getSymbolOfDeclaration(e);
54053
+ add(symbol.escapedName, symbol);
54054
+ }
54055
+ })) {
54056
+ add(param.escapedName, param);
54057
+ }
54058
+ }
54059
+ }
54060
+ );
54061
+ if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */) {
54062
+ pushFakeScope2(
54063
+ "typeParams",
54064
+ (add) => {
54065
+ for (const typeParam of typeParameters ?? emptyArray) {
54066
+ const typeParamName = typeParameterToName(typeParam, context).escapedText;
54067
+ add(typeParamName, typeParam.symbol);
54068
+ }
54069
+ }
54070
+ );
54071
+ }
54072
+ return cleanup;
54073
+ }
54074
+ }
53988
54075
  function tryGetThisParameterDeclaration(signature, context) {
53989
54076
  if (signature.thisParameter) {
53990
54077
  return symbolToParameterDeclaration(signature.thisParameter, context);
@@ -54603,6 +54690,9 @@ function createTypeChecker(host) {
54603
54690
  if (initial.typeParameterSymbolList) {
54604
54691
  initial.typeParameterSymbolList = new Set(initial.typeParameterSymbolList);
54605
54692
  }
54693
+ if (initial.typeParameterNamesByTextNextNameCount) {
54694
+ initial.typeParameterNamesByTextNextNameCount = new Map(initial.typeParameterNamesByTextNextNameCount);
54695
+ }
54606
54696
  initial.tracker = new SymbolTrackerImpl(initial, initial.tracker.inner, initial.tracker.moduleResolverHost);
54607
54697
  return initial;
54608
54698
  }
@@ -54610,7 +54700,16 @@ function createTypeChecker(host) {
54610
54700
  return symbol.declarations && find(symbol.declarations, (s) => !!getNonlocalEffectiveTypeAnnotationNode(s) && (!enclosingDeclaration || !!findAncestor(s, (n) => n === enclosingDeclaration)));
54611
54701
  }
54612
54702
  function existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type) {
54613
- return !(getObjectFlags(type) & 4 /* Reference */) || !isTypeReferenceNode(existing) || length(existing.typeArguments) >= getMinTypeArgumentCount(type.target.typeParameters);
54703
+ if (!(getObjectFlags(type) & 4 /* Reference */))
54704
+ return true;
54705
+ if (!isTypeReferenceNode(existing))
54706
+ return true;
54707
+ void getTypeFromTypeReference(existing);
54708
+ const symbol = getNodeLinks(existing).resolvedSymbol;
54709
+ const existingTarget = symbol && getDeclaredTypeOfSymbol(symbol);
54710
+ if (!existingTarget || existingTarget !== type.target)
54711
+ return true;
54712
+ return length(existing.typeArguments) >= getMinTypeArgumentCount(type.target.typeParameters);
54614
54713
  }
54615
54714
  function getEnclosingDeclarationIgnoringFakeScope(enclosingDeclaration) {
54616
54715
  while (getNodeLinks(enclosingDeclaration).fakeScopeForSignatureDeclaration) {
@@ -54735,6 +54834,22 @@ function createTypeChecker(host) {
54735
54834
  }
54736
54835
  return transformed === existing ? setTextRange(factory.cloneNode(existing), existing) : transformed;
54737
54836
  function visitExistingNodeTreeSymbols(node) {
54837
+ const onExitNewScope = isNewScopeNode(node) ? onEnterNewScope(node) : void 0;
54838
+ const result = visitExistingNodeTreeSymbolsWorker(node);
54839
+ onExitNewScope == null ? void 0 : onExitNewScope();
54840
+ return result;
54841
+ }
54842
+ function onEnterNewScope(node) {
54843
+ const oldContex = context;
54844
+ context = cloneNodeBuilderContext(context);
54845
+ const cleanup = enterNewScope(context, node, getParametersInScope(node), getTypeParametersInScope(node));
54846
+ return onExitNewScope;
54847
+ function onExitNewScope() {
54848
+ cleanup == null ? void 0 : cleanup();
54849
+ context = oldContex;
54850
+ }
54851
+ }
54852
+ function visitExistingNodeTreeSymbolsWorker(node) {
54738
54853
  if (isJSDocAllType(node) || node.kind === 319 /* JSDocNamepathType */) {
54739
54854
  return factory.createKeywordTypeNode(133 /* AnyKeyword */);
54740
54855
  }
@@ -54885,6 +55000,21 @@ function createTypeChecker(host) {
54885
55000
  setEmitFlags(clone2, flags | (context.flags & 1024 /* MultilineObjectLiterals */ && isTypeLiteralNode(node) ? 0 : 1 /* SingleLine */));
54886
55001
  return clone2;
54887
55002
  }
55003
+ if (isConditionalTypeNode(node)) {
55004
+ const checkType = visitNode(node.checkType, visitExistingNodeTreeSymbols, isTypeNode);
55005
+ const disposeScope = onEnterNewScope(node);
55006
+ const extendType = visitNode(node.extendsType, visitExistingNodeTreeSymbols, isTypeNode);
55007
+ const trueType2 = visitNode(node.trueType, visitExistingNodeTreeSymbols, isTypeNode);
55008
+ disposeScope();
55009
+ const falseType2 = visitNode(node.falseType, visitExistingNodeTreeSymbols, isTypeNode);
55010
+ return factory.updateConditionalTypeNode(
55011
+ node,
55012
+ checkType,
55013
+ extendType,
55014
+ trueType2,
55015
+ falseType2
55016
+ );
55017
+ }
54888
55018
  return visitEachChild(
54889
55019
  node,
54890
55020
  visitExistingNodeTreeSymbols,
@@ -68100,6 +68230,9 @@ function createTypeChecker(host) {
68100
68230
  const resolved = resolveStructuredTypeMembers(type);
68101
68231
  return resolved.callSignatures.length === 0 && resolved.constructSignatures.length === 0 && resolved.indexInfos.length === 0 && resolved.properties.length > 0 && every(resolved.properties, (p) => !!(p.flags & 16777216 /* Optional */));
68102
68232
  }
68233
+ if (type.flags & 33554432 /* Substitution */) {
68234
+ return isWeakType(type.baseType);
68235
+ }
68103
68236
  if (type.flags & 2097152 /* Intersection */) {
68104
68237
  return every(type.types, isWeakType);
68105
68238
  }
@@ -75068,7 +75201,11 @@ function createTypeChecker(host) {
75068
75201
  if (getPropertyOfObjectType(targetType, name) || getApplicableIndexInfoForName(targetType, name) || isLateBoundName(name) && getIndexInfoOfType(targetType, stringType) || isComparingJsxAttributes && isHyphenatedJsxName(name)) {
75069
75202
  return true;
75070
75203
  }
75071
- } else if (targetType.flags & 3145728 /* UnionOrIntersection */ && isExcessPropertyCheckTarget(targetType)) {
75204
+ }
75205
+ if (targetType.flags & 33554432 /* Substitution */) {
75206
+ return isKnownProperty(targetType.baseType, name, isComparingJsxAttributes);
75207
+ }
75208
+ if (targetType.flags & 3145728 /* UnionOrIntersection */ && isExcessPropertyCheckTarget(targetType)) {
75072
75209
  for (const t of targetType.types) {
75073
75210
  if (isKnownProperty(t, name, isComparingJsxAttributes)) {
75074
75211
  return true;
@@ -75078,7 +75215,7 @@ function createTypeChecker(host) {
75078
75215
  return false;
75079
75216
  }
75080
75217
  function isExcessPropertyCheckTarget(type) {
75081
- return !!(type.flags & 524288 /* Object */ && !(getObjectFlags(type) & 512 /* ObjectLiteralPatternWithComputedProperties */) || type.flags & 67108864 /* NonPrimitive */ || type.flags & 1048576 /* Union */ && some(type.types, isExcessPropertyCheckTarget) || type.flags & 2097152 /* Intersection */ && every(type.types, isExcessPropertyCheckTarget));
75218
+ return !!(type.flags & 524288 /* Object */ && !(getObjectFlags(type) & 512 /* ObjectLiteralPatternWithComputedProperties */) || type.flags & 67108864 /* NonPrimitive */ || type.flags & 33554432 /* Substitution */ && isExcessPropertyCheckTarget(type.baseType) || type.flags & 1048576 /* Union */ && some(type.types, isExcessPropertyCheckTarget) || type.flags & 2097152 /* Intersection */ && every(type.types, isExcessPropertyCheckTarget));
75082
75219
  }
75083
75220
  function checkJsxExpression(node, checkMode) {
75084
75221
  checkGrammarJsxExpression(node);
@@ -79219,17 +79356,18 @@ function createTypeChecker(host) {
79219
79356
  const antecedent = expr.flowNode || expr.parent.kind === 253 /* ReturnStatement */ && expr.parent.flowNode || { flags: 2 /* Start */ };
79220
79357
  const trueCondition = {
79221
79358
  flags: 32 /* TrueCondition */,
79222
- node: expr,
79223
- antecedent
79359
+ antecedent,
79360
+ node: expr
79224
79361
  };
79225
79362
  const trueType2 = getFlowTypeOfReference(param.name, initType, initType, func, trueCondition);
79226
79363
  if (trueType2 === initType)
79227
79364
  return void 0;
79228
79365
  const falseCondition = {
79229
- ...trueCondition,
79230
- flags: 64 /* FalseCondition */
79366
+ flags: 64 /* FalseCondition */,
79367
+ antecedent,
79368
+ node: expr
79231
79369
  };
79232
- const falseSubtype = getFlowTypeOfReference(param.name, trueType2, trueType2, func, falseCondition);
79370
+ const falseSubtype = getFlowTypeOfReference(param.name, initType, trueType2, func, falseCondition);
79233
79371
  return falseSubtype.flags & 131072 /* Never */ ? trueType2 : void 0;
79234
79372
  }
79235
79373
  function checkAllCodePathsInNonVoidFunctionReturnOrThrow(func, returnType) {
@@ -150133,7 +150271,8 @@ function canConvertImportDeclarationForSpecifier(specifier, sourceFile, program)
150133
150271
  const checker = program.getTypeChecker();
150134
150272
  for (const specifier2 of nonTypeOnlySpecifiers) {
150135
150273
  const isUsedAsValue = ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(specifier2.name, checker, sourceFile, (usage) => {
150136
- return !isValidTypeOnlyAliasUseSite(usage);
150274
+ const symbol = checker.getSymbolAtLocation(usage);
150275
+ return !!symbol && checker.symbolIsValue(symbol) || !isValidTypeOnlyAliasUseSite(usage);
150137
150276
  });
150138
150277
  if (isUsedAsValue) {
150139
150278
  return false;
@@ -173518,7 +173657,8 @@ var SmartIndenter;
173518
173657
  return childKind !== 290 /* JsxClosingFragment */;
173519
173658
  case 193 /* IntersectionType */:
173520
173659
  case 192 /* UnionType */:
173521
- if (childKind === 187 /* TypeLiteral */ || childKind === 189 /* TupleType */) {
173660
+ case 238 /* SatisfiesExpression */:
173661
+ if (childKind === 187 /* TypeLiteral */ || childKind === 189 /* TupleType */ || childKind === 200 /* MappedType */) {
173522
173662
  return false;
173523
173663
  }
173524
173664
  break;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "typescript",
3
3
  "author": "Microsoft Corp.",
4
4
  "homepage": "https://www.typescriptlang.org/",
5
- "version": "5.5.0-dev.20240401",
5
+ "version": "5.5.0-dev.20240404",
6
6
  "license": "Apache-2.0",
7
7
  "description": "TypeScript is a language for application scale JavaScript development",
8
8
  "keywords": [
@@ -64,7 +64,6 @@
64
64
  "eslint-formatter-autolinkable-stylish": "^1.3.0",
65
65
  "eslint-plugin-local": "^4.2.1",
66
66
  "eslint-plugin-no-null": "^1.0.2",
67
- "eslint-plugin-simple-import-sort": "^12.0.0",
68
67
  "fast-xml-parser": "^4.3.6",
69
68
  "glob": "^10.3.10",
70
69
  "hereby": "^1.8.9",
@@ -112,5 +111,5 @@
112
111
  "node": "20.1.0",
113
112
  "npm": "8.19.4"
114
113
  },
115
- "gitHead": "32dfb3752f4645a627b4293f99a91fcf7da66c88"
114
+ "gitHead": "4a5f0f2b78d36afee184ec52419559a390cf17bd"
116
115
  }