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 +1 -1
- package/lib/tsc.js +223 -85
- package/lib/typescript.d.ts +0 -55
- package/lib/typescript.js +227 -87
- package/package.json +2 -3
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
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
}
|
|
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
|
-
|
|
74458
|
-
|
|
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
|
-
|
|
74465
|
-
|
|
74601
|
+
flags: 64 /* FalseCondition */,
|
|
74602
|
+
antecedent,
|
|
74603
|
+
node: expr
|
|
74466
74604
|
};
|
|
74467
|
-
const falseSubtype = getFlowTypeOfReference(param.name,
|
|
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) {
|
package/lib/typescript.d.ts
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
}
|
|
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
|
-
|
|
79223
|
-
|
|
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
|
-
|
|
79230
|
-
|
|
79366
|
+
flags: 64 /* FalseCondition */,
|
|
79367
|
+
antecedent,
|
|
79368
|
+
node: expr
|
|
79231
79369
|
};
|
|
79232
|
-
const falseSubtype = getFlowTypeOfReference(param.name,
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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": "
|
|
114
|
+
"gitHead": "4a5f0f2b78d36afee184ec52419559a390cf17bd"
|
|
116
115
|
}
|