Skip to content

Commit 4a63ed7

Browse files
committed
Update LKG
1 parent dac383e commit 4a63ed7

9 files changed

+572
-533
lines changed

lib/tsc.js

Lines changed: 88 additions & 86 deletions
Large diffs are not rendered by default.

lib/tsserver.js

Lines changed: 116 additions & 117 deletions
Large diffs are not rendered by default.

lib/tsserverlibrary.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2198,6 +2198,7 @@ declare namespace ts {
21982198
}
21992199
interface PackageId {
22002200
name: string;
2201+
subModuleName: string;
22012202
version: string;
22022203
}
22032204
enum Extension {
@@ -2213,6 +2214,7 @@ declare namespace ts {
22132214
interface ResolvedTypeReferenceDirective {
22142215
primary: boolean;
22152216
resolvedFileName?: string;
2217+
packageId?: PackageId;
22162218
}
22172219
interface ResolvedTypeReferenceDirectiveWithFailedLookupLocations {
22182220
resolvedTypeReferenceDirective: ResolvedTypeReferenceDirective;

lib/tsserverlibrary.js

Lines changed: 103 additions & 103 deletions
Large diffs are not rendered by default.

lib/typescript.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2367,6 +2367,11 @@ declare namespace ts {
23672367
* If accessing a non-index file, this should include its name e.g. "foo/bar".
23682368
*/
23692369
name: string;
2370+
/**
2371+
* Name of a submodule within this package.
2372+
* May be "".
2373+
*/
2374+
subModuleName: string;
23702375
/** Version of the package, e.g. "1.2.3" */
23712376
version: string;
23722377
}
@@ -2383,6 +2388,7 @@ declare namespace ts {
23832388
interface ResolvedTypeReferenceDirective {
23842389
primary: boolean;
23852390
resolvedFileName?: string;
2391+
packageId?: PackageId;
23862392
}
23872393
interface ResolvedTypeReferenceDirectiveWithFailedLookupLocations {
23882394
resolvedTypeReferenceDirective: ResolvedTypeReferenceDirective;

lib/typescript.js

Lines changed: 95 additions & 91 deletions
Large diffs are not rendered by default.

lib/typescriptServices.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2367,6 +2367,11 @@ declare namespace ts {
23672367
* If accessing a non-index file, this should include its name e.g. "foo/bar".
23682368
*/
23692369
name: string;
2370+
/**
2371+
* Name of a submodule within this package.
2372+
* May be "".
2373+
*/
2374+
subModuleName: string;
23702375
/** Version of the package, e.g. "1.2.3" */
23712376
version: string;
23722377
}
@@ -2383,6 +2388,7 @@ declare namespace ts {
23832388
interface ResolvedTypeReferenceDirective {
23842389
primary: boolean;
23852390
resolvedFileName?: string;
2391+
packageId?: PackageId;
23862392
}
23872393
interface ResolvedTypeReferenceDirectiveWithFailedLookupLocations {
23882394
resolvedTypeReferenceDirective: ResolvedTypeReferenceDirective;

lib/typescriptServices.js

Lines changed: 95 additions & 91 deletions
Large diffs are not rendered by default.

lib/typingsInstaller.js

Lines changed: 61 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -3619,7 +3619,7 @@ var ts;
36193619
}
36203620
ts.moduleResolutionIsEqualTo = moduleResolutionIsEqualTo;
36213621
function packageIdIsEqual(a, b) {
3622-
return a === b || a && b && a.name === b.name && a.version === b.version;
3622+
return a === b || a && b && a.name === b.name && a.subModuleName === b.subModuleName && a.version === b.version;
36233623
}
36243624
function typeDirectiveIsEqualTo(oldResolution, newResolution) {
36253625
return oldResolution.resolvedFileName === newResolution.resolvedFileName && oldResolution.primary === newResolution.primary;
@@ -11103,7 +11103,7 @@ var ts;
1110311103
token() === 57 ||
1110411104
isStartOfType(true);
1110511105
}
11106-
function parseParameter() {
11106+
function parseParameter(requireEqualsToken) {
1110711107
var node = createNode(146);
1110811108
if (token() === 99) {
1110911109
node.name = createIdentifier(true);
@@ -11119,15 +11119,9 @@ var ts;
1111911119
}
1112011120
node.questionToken = parseOptionalToken(55);
1112111121
node.type = parseParameterType();
11122-
node.initializer = parseBindingElementInitializer(true);
11122+
node.initializer = parseInitializer(true, requireEqualsToken);
1112311123
return addJSDocComment(finishNode(node));
1112411124
}
11125-
function parseBindingElementInitializer(inParameter) {
11126-
return inParameter ? parseParameterInitializer() : parseNonParameterInitializer();
11127-
}
11128-
function parseParameterInitializer() {
11129-
return parseInitializer(true);
11130-
}
1113111125
function fillSignature(returnToken, flags, signature) {
1113211126
if (!(flags & 32)) {
1113311127
signature.typeParameters = parseTypeParameters();
@@ -11157,7 +11151,7 @@ var ts;
1115711151
var savedAwaitContext = inAwaitContext();
1115811152
setYieldContext(!!(flags & 1));
1115911153
setAwaitContext(!!(flags & 2));
11160-
var result = parseDelimitedList(16, flags & 32 ? parseJSDocParameter : parseParameter);
11154+
var result = parseDelimitedList(16, flags & 32 ? parseJSDocParameter : function () { return parseParameter(!!(flags & 8)); });
1116111155
setYieldContext(savedYieldContext);
1116211156
setAwaitContext(savedAwaitContext);
1116311157
if (!parseExpected(20) && (flags & 8)) {
@@ -11701,11 +11695,16 @@ var ts;
1170111695
}
1170211696
return expr;
1170311697
}
11704-
function parseInitializer(inParameter) {
11698+
function parseInitializer(inParameter, requireEqualsToken) {
1170511699
if (token() !== 58) {
1170611700
if (scanner.hasPrecedingLineBreak() || (inParameter && token() === 17) || !isStartOfExpression()) {
1170711701
return undefined;
1170811702
}
11703+
if (inParameter && requireEqualsToken) {
11704+
var result = createMissingNode(71, true, ts.Diagnostics._0_expected, "=");
11705+
result.escapedText = "= not found";
11706+
return result;
11707+
}
1170911708
}
1171011709
parseExpected(58);
1171111710
return parseAssignmentExpressionOrHigher();
@@ -11874,8 +11873,7 @@ var ts;
1187411873
}
1187511874
function tryParseAsyncSimpleArrowFunctionExpression() {
1187611875
if (token() === 120) {
11877-
var isUnParenthesizedAsyncArrowFunction = lookAhead(isUnParenthesizedAsyncArrowFunctionWorker);
11878-
if (isUnParenthesizedAsyncArrowFunction === 1) {
11876+
if (lookAhead(isUnParenthesizedAsyncArrowFunctionWorker) === 1) {
1187911877
var asyncModifier = parseModifiersForArrowFunction();
1188011878
var expr = parseBinaryExpressionOrHigher(0);
1188111879
return parseSimpleArrowFunctionExpression(expr, asyncModifier);
@@ -11904,7 +11902,8 @@ var ts;
1190411902
if (!node.parameters) {
1190511903
return undefined;
1190611904
}
11907-
if (!allowAmbiguity && token() !== 36 && token() !== 17) {
11905+
if (!allowAmbiguity && ((token() !== 36 && token() !== 17) ||
11906+
ts.find(node.parameters, function (p) { return p.initializer && ts.isIdentifier(p.initializer) && p.initializer.escapedText === "= not found"; }))) {
1190811907
return undefined;
1190911908
}
1191011909
return node;
@@ -13147,7 +13146,7 @@ var ts;
1314713146
var node = createNode(176);
1314813147
node.dotDotDotToken = parseOptionalToken(24);
1314913148
node.name = parseIdentifierOrPattern();
13150-
node.initializer = parseBindingElementInitializer(false);
13149+
node.initializer = parseInitializer(false);
1315113150
return finishNode(node);
1315213151
}
1315313152
function parseObjectBindingElement() {
@@ -13163,7 +13162,7 @@ var ts;
1316313162
node.propertyName = propertyName;
1316413163
node.name = parseIdentifierOrPattern();
1316513164
}
13166-
node.initializer = parseBindingElementInitializer(false);
13165+
node.initializer = parseInitializer(false);
1316713166
return finishNode(node);
1316813167
}
1316913168
function parseObjectBindingPattern() {
@@ -13197,7 +13196,7 @@ var ts;
1319713196
node.name = parseIdentifierOrPattern();
1319813197
node.type = parseTypeAnnotation();
1319913198
if (!isInOrOfKeyword(token())) {
13200-
node.initializer = parseInitializer(false);
13199+
node.initializer = parseNonParameterInitializer();
1320113200
}
1320213201
return finishNode(node);
1320313202
}
@@ -16693,7 +16692,7 @@ var ts;
1669316692
return undefined;
1669416693
}
1669516694
ts.Debug.assert(ts.extensionIsTypeScript(resolved.extension));
16696-
return resolved.path;
16695+
return { fileName: resolved.path, packageId: resolved.packageId };
1669716696
}
1669816697
function createResolvedModuleWithFailedLookupLocations(resolved, isExternalLibraryImport, failedLookupLocations) {
1669916698
return {
@@ -16796,12 +16795,12 @@ var ts;
1679616795
var resolvedTypeReferenceDirective;
1679716796
if (resolved) {
1679816797
if (!options.preserveSymlinks) {
16799-
resolved = realpath(resolved, host, traceEnabled);
16798+
resolved = __assign({}, resolved, { fileName: realpath(resolved.fileName, host, traceEnabled) });
1680016799
}
1680116800
if (traceEnabled) {
16802-
trace(host, ts.Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2, typeReferenceDirectiveName, resolved, primary);
16801+
trace(host, ts.Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2, typeReferenceDirectiveName, resolved.fileName, primary);
1680316802
}
16804-
resolvedTypeReferenceDirective = { primary: primary, resolvedFileName: resolved };
16803+
resolvedTypeReferenceDirective = { primary: primary, resolvedFileName: resolved.fileName, packageId: resolved.packageId };
1680516804
}
1680616805
return { resolvedTypeReferenceDirective: resolvedTypeReferenceDirective, failedLookupLocations: failedLookupLocations };
1680716806
function primaryLookup() {
@@ -17098,7 +17097,7 @@ var ts;
1709817097
if (extension !== undefined) {
1709917098
var path_1 = tryFile(candidate, failedLookupLocations, false, state);
1710017099
if (path_1 !== undefined) {
17101-
return { path: path_1, extension: extension, packageId: undefined };
17100+
return noPackageId({ path: path_1, ext: extension });
1710217101
}
1710317102
}
1710417103
return loader(extensions, candidate, failedLookupLocations, !directoryProbablyExists(ts.getDirectoryPath(candidate), state.host), state);
@@ -17260,31 +17259,40 @@ var ts;
1726017259
}
1726117260
function loadNodeModuleFromDirectory(extensions, candidate, failedLookupLocations, onlyRecordFailures, state, considerPackageJson) {
1726217261
if (considerPackageJson === void 0) { considerPackageJson = true; }
17262+
var _a = considerPackageJson
17263+
? getPackageJsonInfo(candidate, "", failedLookupLocations, onlyRecordFailures, state)
17264+
: { packageJsonContent: undefined, packageId: undefined }, packageJsonContent = _a.packageJsonContent, packageId = _a.packageId;
17265+
return withPackageId(packageId, loadNodeModuleFromDirectoryWorker(extensions, candidate, failedLookupLocations, onlyRecordFailures, state, packageJsonContent));
17266+
}
17267+
function loadNodeModuleFromDirectoryWorker(extensions, candidate, failedLookupLocations, onlyRecordFailures, state, packageJsonContent) {
17268+
var fromPackageJson = packageJsonContent && loadModuleFromPackageJson(packageJsonContent, extensions, candidate, failedLookupLocations, state);
17269+
if (fromPackageJson) {
17270+
return fromPackageJson;
17271+
}
1726317272
var directoryExists = !onlyRecordFailures && directoryProbablyExists(candidate, state.host);
17264-
var packageId;
17265-
if (considerPackageJson) {
17266-
var packageJsonPath = pathToPackageJson(candidate);
17267-
if (directoryExists && state.host.fileExists(packageJsonPath)) {
17268-
if (state.traceEnabled) {
17269-
trace(state.host, ts.Diagnostics.Found_package_json_at_0, packageJsonPath);
17270-
}
17271-
var jsonContent = readJson(packageJsonPath, state.host);
17272-
if (typeof jsonContent.name === "string" && typeof jsonContent.version === "string") {
17273-
packageId = { name: jsonContent.name, version: jsonContent.version };
17274-
}
17275-
var fromPackageJson = loadModuleFromPackageJson(jsonContent, extensions, candidate, failedLookupLocations, state);
17276-
if (fromPackageJson) {
17277-
return withPackageId(packageId, fromPackageJson);
17278-
}
17273+
return loadModuleFromFile(extensions, ts.combinePaths(candidate, "index"), failedLookupLocations, !directoryExists, state);
17274+
}
17275+
function getPackageJsonInfo(nodeModuleDirectory, subModuleName, failedLookupLocations, onlyRecordFailures, _a) {
17276+
var host = _a.host, traceEnabled = _a.traceEnabled;
17277+
var directoryExists = !onlyRecordFailures && directoryProbablyExists(nodeModuleDirectory, host);
17278+
var packageJsonPath = pathToPackageJson(nodeModuleDirectory);
17279+
if (directoryExists && host.fileExists(packageJsonPath)) {
17280+
if (traceEnabled) {
17281+
trace(host, ts.Diagnostics.Found_package_json_at_0, packageJsonPath);
1727917282
}
17280-
else {
17281-
if (directoryExists && state.traceEnabled) {
17282-
trace(state.host, ts.Diagnostics.File_0_does_not_exist, packageJsonPath);
17283-
}
17284-
failedLookupLocations.push(packageJsonPath);
17283+
var packageJsonContent = readJson(packageJsonPath, host);
17284+
var packageId = typeof packageJsonContent.name === "string" && typeof packageJsonContent.version === "string"
17285+
? { name: packageJsonContent.name, subModuleName: subModuleName, version: packageJsonContent.version }
17286+
: undefined;
17287+
return { packageJsonContent: packageJsonContent, packageId: packageId };
17288+
}
17289+
else {
17290+
if (directoryExists && traceEnabled) {
17291+
trace(host, ts.Diagnostics.File_0_does_not_exist, packageJsonPath);
1728517292
}
17293+
failedLookupLocations.push(packageJsonPath);
17294+
return { packageJsonContent: undefined, packageId: undefined };
1728617295
}
17287-
return withPackageId(packageId, loadModuleFromFile(extensions, ts.combinePaths(candidate, "index"), failedLookupLocations, !directoryExists, state));
1728817296
}
1728917297
function loadModuleFromPackageJson(jsonContent, extensions, candidate, failedLookupLocations, state) {
1729017298
var file = tryReadPackageJsonFields(extensions !== Extensions.JavaScript, jsonContent, candidate, state);
@@ -17327,9 +17335,17 @@ var ts;
1732717335
return ts.combinePaths(directory, "package.json");
1732817336
}
1732917337
function loadModuleFromNodeModulesFolder(extensions, moduleName, nodeModulesFolder, nodeModulesFolderExists, failedLookupLocations, state) {
17338+
var _a = getNameOfTopDirectory(moduleName), top = _a.top, rest = _a.rest;
17339+
var packageRootPath = ts.combinePaths(nodeModulesFolder, top);
17340+
var _b = getPackageJsonInfo(packageRootPath, rest, failedLookupLocations, !nodeModulesFolderExists, state), packageJsonContent = _b.packageJsonContent, packageId = _b.packageId;
1733017341
var candidate = ts.normalizePath(ts.combinePaths(nodeModulesFolder, moduleName));
17331-
return loadModuleFromFileNoPackageId(extensions, candidate, failedLookupLocations, !nodeModulesFolderExists, state) ||
17332-
loadNodeModuleFromDirectory(extensions, candidate, failedLookupLocations, !nodeModulesFolderExists, state);
17342+
var pathAndExtension = loadModuleFromFile(extensions, candidate, failedLookupLocations, !nodeModulesFolderExists, state) ||
17343+
loadNodeModuleFromDirectoryWorker(extensions, candidate, failedLookupLocations, !nodeModulesFolderExists, state, packageJsonContent);
17344+
return withPackageId(packageId, pathAndExtension);
17345+
}
17346+
function getNameOfTopDirectory(name) {
17347+
var idx = name.indexOf(ts.directorySeparator);
17348+
return idx === -1 ? { top: name, rest: "" } : { top: name.slice(0, idx), rest: name.slice(idx + 1) };
1733317349
}
1733417350
function loadModuleFromNodeModules(extensions, moduleName, directory, failedLookupLocations, state, cache) {
1733517351
return loadModuleFromNodeModulesWorker(extensions, moduleName, directory, failedLookupLocations, state, false, cache);

0 commit comments

Comments
 (0)