mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Bump version to 4.5.5 and LKG
This commit is contained in:
+19
-10
@@ -69,7 +69,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
||||
var ts;
|
||||
(function (ts) {
|
||||
ts.versionMajorMinor = "4.5";
|
||||
ts.version = "4.5.4";
|
||||
ts.version = "4.5.5";
|
||||
var NativeCollections;
|
||||
(function (NativeCollections) {
|
||||
function tryGetNativeMap() {
|
||||
@@ -12247,7 +12247,7 @@ var ts;
|
||||
}
|
||||
ts.getExternalModuleImportEqualsDeclarationExpression = getExternalModuleImportEqualsDeclarationExpression;
|
||||
function getExternalModuleRequireArgument(node) {
|
||||
return isRequireVariableDeclaration(node) && getLeftmostAccessExpression(node.initializer).arguments[0];
|
||||
return isVariableDeclarationInitializedToBareOrAccessedRequire(node) && getLeftmostAccessExpression(node.initializer).arguments[0];
|
||||
}
|
||||
ts.getExternalModuleRequireArgument = getExternalModuleRequireArgument;
|
||||
function isInternalModuleImportEqualsDeclaration(node) {
|
||||
@@ -12301,17 +12301,26 @@ var ts;
|
||||
return !requireStringLiteralLikeArgument || ts.isStringLiteralLike(arg);
|
||||
}
|
||||
ts.isRequireCall = isRequireCall;
|
||||
function isRequireVariableDeclaration(node) {
|
||||
function isVariableDeclarationInitializedToRequire(node) {
|
||||
return isVariableDeclarationInitializedWithRequireHelper(node, false);
|
||||
}
|
||||
ts.isVariableDeclarationInitializedToRequire = isVariableDeclarationInitializedToRequire;
|
||||
function isVariableDeclarationInitializedToBareOrAccessedRequire(node) {
|
||||
return isVariableDeclarationInitializedWithRequireHelper(node, true);
|
||||
}
|
||||
ts.isVariableDeclarationInitializedToBareOrAccessedRequire = isVariableDeclarationInitializedToBareOrAccessedRequire;
|
||||
function isVariableDeclarationInitializedWithRequireHelper(node, allowAccessedRequire) {
|
||||
if (node.kind === 202) {
|
||||
node = node.parent.parent;
|
||||
}
|
||||
return ts.isVariableDeclaration(node) && !!node.initializer && isRequireCall(getLeftmostAccessExpression(node.initializer), true);
|
||||
return ts.isVariableDeclaration(node) &&
|
||||
!!node.initializer &&
|
||||
isRequireCall(allowAccessedRequire ? getLeftmostAccessExpression(node.initializer) : node.initializer, true);
|
||||
}
|
||||
ts.isRequireVariableDeclaration = isRequireVariableDeclaration;
|
||||
function isRequireVariableStatement(node) {
|
||||
return ts.isVariableStatement(node)
|
||||
&& node.declarationList.declarations.length > 0
|
||||
&& ts.every(node.declarationList.declarations, function (decl) { return isRequireVariableDeclaration(decl); });
|
||||
&& ts.every(node.declarationList.declarations, function (decl) { return isVariableDeclarationInitializedToRequire(decl); });
|
||||
}
|
||||
ts.isRequireVariableStatement = isRequireVariableStatement;
|
||||
function isSingleOrDoubleQuote(charCode) {
|
||||
@@ -37770,7 +37779,7 @@ var ts;
|
||||
checkStrictModeEvalOrArguments(node, node.name);
|
||||
}
|
||||
if (!ts.isBindingPattern(node.name)) {
|
||||
if (ts.isInJSFile(node) && ts.isRequireVariableDeclaration(node) && !ts.getJSDocTypeTag(node)) {
|
||||
if (ts.isInJSFile(node) && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node) && !ts.getJSDocTypeTag(node)) {
|
||||
declareSymbolAndAddToSymbolTable(node, 2097152, 2097152);
|
||||
}
|
||||
else if (ts.isBlockOrCatchScoped(node)) {
|
||||
@@ -40045,7 +40054,7 @@ var ts;
|
||||
&& isAliasableOrJsExpression(node.parent.right)
|
||||
|| node.kind === 295
|
||||
|| node.kind === 294 && isAliasableOrJsExpression(node.initializer)
|
||||
|| ts.isRequireVariableDeclaration(node);
|
||||
|| ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node);
|
||||
}
|
||||
function isAliasableOrJsExpression(e) {
|
||||
return ts.isAliasableExpression(e) || ts.isFunctionExpression(e) && isJSConstructor(e);
|
||||
@@ -40901,7 +40910,7 @@ var ts;
|
||||
if (!sigs || !sigs.length) {
|
||||
sigs = getSignaturesOfStructuredType(type, 1);
|
||||
}
|
||||
if ((sigs && sigs.length) || getPropertyOfType(type, "default")) {
|
||||
if ((sigs && sigs.length) || getPropertyOfType(type, "default", true)) {
|
||||
var moduleType = getTypeWithSyntheticDefaultImportType(type, symbol, moduleSymbol, reference);
|
||||
return cloneTypeAsModuleType(symbol, moduleType, referenceParent);
|
||||
}
|
||||
@@ -67235,7 +67244,7 @@ var ts;
|
||||
return;
|
||||
}
|
||||
var symbol = getSymbolOfNode(node);
|
||||
if (symbol.flags & 2097152 && ts.isRequireVariableDeclaration(node)) {
|
||||
if (symbol.flags & 2097152 && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node)) {
|
||||
checkAliasSymbol(node);
|
||||
return;
|
||||
}
|
||||
|
||||
+48
-46
@@ -100,7 +100,7 @@ var ts;
|
||||
// The following is baselined as a literal template type without intervention
|
||||
/** The version of the TypeScript compiler release */
|
||||
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
||||
ts.version = "4.5.4";
|
||||
ts.version = "4.5.5";
|
||||
/* @internal */
|
||||
var Comparison;
|
||||
(function (Comparison) {
|
||||
@@ -15839,7 +15839,7 @@ var ts;
|
||||
}
|
||||
ts.getExternalModuleImportEqualsDeclarationExpression = getExternalModuleImportEqualsDeclarationExpression;
|
||||
function getExternalModuleRequireArgument(node) {
|
||||
return isRequireVariableDeclaration(node) && getLeftmostAccessExpression(node.initializer).arguments[0];
|
||||
return isVariableDeclarationInitializedToBareOrAccessedRequire(node) && getLeftmostAccessExpression(node.initializer).arguments[0];
|
||||
}
|
||||
ts.getExternalModuleRequireArgument = getExternalModuleRequireArgument;
|
||||
function isInternalModuleImportEqualsDeclaration(node) {
|
||||
@@ -15897,17 +15897,29 @@ var ts;
|
||||
* Returns true if the node is a VariableDeclaration initialized to a require call (see `isRequireCall`).
|
||||
* This function does not test if the node is in a JavaScript file or not.
|
||||
*/
|
||||
function isRequireVariableDeclaration(node) {
|
||||
function isVariableDeclarationInitializedToRequire(node) {
|
||||
return isVariableDeclarationInitializedWithRequireHelper(node, /*allowAccessedRequire*/ false);
|
||||
}
|
||||
ts.isVariableDeclarationInitializedToRequire = isVariableDeclarationInitializedToRequire;
|
||||
/**
|
||||
* Like {@link isVariableDeclarationInitializedToRequire} but allows things like `require("...").foo.bar` or `require("...")["baz"]`.
|
||||
*/
|
||||
function isVariableDeclarationInitializedToBareOrAccessedRequire(node) {
|
||||
return isVariableDeclarationInitializedWithRequireHelper(node, /*allowAccessedRequire*/ true);
|
||||
}
|
||||
ts.isVariableDeclarationInitializedToBareOrAccessedRequire = isVariableDeclarationInitializedToBareOrAccessedRequire;
|
||||
function isVariableDeclarationInitializedWithRequireHelper(node, allowAccessedRequire) {
|
||||
if (node.kind === 202 /* BindingElement */) {
|
||||
node = node.parent.parent;
|
||||
}
|
||||
return ts.isVariableDeclaration(node) && !!node.initializer && isRequireCall(getLeftmostAccessExpression(node.initializer), /*requireStringLiteralLikeArgument*/ true);
|
||||
return ts.isVariableDeclaration(node) &&
|
||||
!!node.initializer &&
|
||||
isRequireCall(allowAccessedRequire ? getLeftmostAccessExpression(node.initializer) : node.initializer, /*requireStringLiteralLikeArgument*/ true);
|
||||
}
|
||||
ts.isRequireVariableDeclaration = isRequireVariableDeclaration;
|
||||
function isRequireVariableStatement(node) {
|
||||
return ts.isVariableStatement(node)
|
||||
&& node.declarationList.declarations.length > 0
|
||||
&& ts.every(node.declarationList.declarations, function (decl) { return isRequireVariableDeclaration(decl); });
|
||||
&& ts.every(node.declarationList.declarations, function (decl) { return isVariableDeclarationInitializedToRequire(decl); });
|
||||
}
|
||||
ts.isRequireVariableStatement = isRequireVariableStatement;
|
||||
function isSingleOrDoubleQuote(charCode) {
|
||||
@@ -46064,7 +46076,7 @@ var ts;
|
||||
checkStrictModeEvalOrArguments(node, node.name);
|
||||
}
|
||||
if (!ts.isBindingPattern(node.name)) {
|
||||
if (ts.isInJSFile(node) && ts.isRequireVariableDeclaration(node) && !ts.getJSDocTypeTag(node)) {
|
||||
if (ts.isInJSFile(node) && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node) && !ts.getJSDocTypeTag(node)) {
|
||||
declareSymbolAndAddToSymbolTable(node, 2097152 /* Alias */, 2097152 /* AliasExcludes */);
|
||||
}
|
||||
else if (ts.isBlockOrCatchScoped(node)) {
|
||||
@@ -48843,7 +48855,7 @@ var ts;
|
||||
&& isAliasableOrJsExpression(node.parent.right)
|
||||
|| node.kind === 295 /* ShorthandPropertyAssignment */
|
||||
|| node.kind === 294 /* PropertyAssignment */ && isAliasableOrJsExpression(node.initializer)
|
||||
|| ts.isRequireVariableDeclaration(node);
|
||||
|| ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node);
|
||||
}
|
||||
function isAliasableOrJsExpression(e) {
|
||||
return ts.isAliasableExpression(e) || ts.isFunctionExpression(e) && isJSConstructor(e);
|
||||
@@ -49814,7 +49826,7 @@ var ts;
|
||||
if (!sigs || !sigs.length) {
|
||||
sigs = getSignaturesOfStructuredType(type, 1 /* Construct */);
|
||||
}
|
||||
if ((sigs && sigs.length) || getPropertyOfType(type, "default" /* Default */)) {
|
||||
if ((sigs && sigs.length) || getPropertyOfType(type, "default" /* Default */, /*skipObjectFunctionPropertyAugment*/ true)) {
|
||||
var moduleType = getTypeWithSyntheticDefaultImportType(type, symbol, moduleSymbol, reference);
|
||||
return cloneTypeAsModuleType(symbol, moduleType, referenceParent);
|
||||
}
|
||||
@@ -80246,7 +80258,7 @@ var ts;
|
||||
}
|
||||
// For a commonjs `const x = require`, validate the alias and exit
|
||||
var symbol = getSymbolOfNode(node);
|
||||
if (symbol.flags & 2097152 /* Alias */ && ts.isRequireVariableDeclaration(node)) {
|
||||
if (symbol.flags & 2097152 /* Alias */ && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node)) {
|
||||
checkAliasSymbol(node);
|
||||
return;
|
||||
}
|
||||
@@ -123955,7 +123967,7 @@ var ts;
|
||||
isWhiteSpaceOnlyJsxText(child);
|
||||
if (lookInPreviousChild) {
|
||||
// actual start of the node is past the position - previous token should be at the end of previous child
|
||||
var candidate_1 = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ i, sourceFile);
|
||||
var candidate_1 = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ i, sourceFile, n.kind);
|
||||
return candidate_1 && findRightmostToken(candidate_1, sourceFile);
|
||||
}
|
||||
else {
|
||||
@@ -123969,7 +123981,7 @@ var ts;
|
||||
// the only known case is when position is at the end of the file.
|
||||
// Try to find the rightmost token in the file without filtering.
|
||||
// Namely we are skipping the check: 'position < node.end'
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile);
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile, n.kind);
|
||||
return candidate && findRightmostToken(candidate, sourceFile);
|
||||
}
|
||||
}
|
||||
@@ -123985,17 +123997,19 @@ var ts;
|
||||
if (children.length === 0) {
|
||||
return n;
|
||||
}
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile);
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile, n.kind);
|
||||
return candidate && findRightmostToken(candidate, sourceFile);
|
||||
}
|
||||
/**
|
||||
* Finds the rightmost child to the left of `children[exclusiveStartPosition]` which is a non-all-whitespace token or has constituent tokens.
|
||||
*/
|
||||
function findRightmostChildNodeWithTokens(children, exclusiveStartPosition, sourceFile) {
|
||||
function findRightmostChildNodeWithTokens(children, exclusiveStartPosition, sourceFile, parentKind) {
|
||||
for (var i = exclusiveStartPosition - 1; i >= 0; i--) {
|
||||
var child = children[i];
|
||||
if (isWhiteSpaceOnlyJsxText(child)) {
|
||||
ts.Debug.assert(i > 0, "`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`");
|
||||
if (i === 0 && (parentKind === 11 /* JsxText */ || parentKind === 278 /* JsxSelfClosingElement */)) {
|
||||
ts.Debug.fail("`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`");
|
||||
}
|
||||
}
|
||||
else if (nodeHasTokens(children[i], sourceFile)) {
|
||||
return children[i];
|
||||
@@ -128412,7 +128426,7 @@ var ts;
|
||||
return (location === null || location === void 0 ? void 0 : location.kind) === 79 /* Identifier */ ? ts.createTextSpanFromNode(location) : undefined;
|
||||
}
|
||||
function completionInfoFromData(sourceFile, host, program, compilerOptions, log, completionData, preferences) {
|
||||
var symbols = completionData.symbols, contextToken = completionData.contextToken, completionKind = completionData.completionKind, isInSnippetScope = completionData.isInSnippetScope, isNewIdentifierLocation = completionData.isNewIdentifierLocation, location = completionData.location, propertyAccessToConvert = completionData.propertyAccessToConvert, keywordFilters = completionData.keywordFilters, literals = completionData.literals, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap, recommendedCompletion = completionData.recommendedCompletion, isJsxInitializer = completionData.isJsxInitializer, isTypeOnlyLocation = completionData.isTypeOnlyLocation, isJsxIdentifierExpected = completionData.isJsxIdentifierExpected, importCompletionNode = completionData.importCompletionNode, insideJsDocTagTypeExpression = completionData.insideJsDocTagTypeExpression, symbolToSortTextIdMap = completionData.symbolToSortTextIdMap, hasUnresolvedAutoImports = completionData.hasUnresolvedAutoImports;
|
||||
var symbols = completionData.symbols, contextToken = completionData.contextToken, completionKind = completionData.completionKind, isInSnippetScope = completionData.isInSnippetScope, isNewIdentifierLocation = completionData.isNewIdentifierLocation, location = completionData.location, propertyAccessToConvert = completionData.propertyAccessToConvert, keywordFilters = completionData.keywordFilters, literals = completionData.literals, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap, recommendedCompletion = completionData.recommendedCompletion, isJsxInitializer = completionData.isJsxInitializer, isTypeOnlyLocation = completionData.isTypeOnlyLocation, isJsxIdentifierExpected = completionData.isJsxIdentifierExpected, isRightOfOpenTag = completionData.isRightOfOpenTag, importCompletionNode = completionData.importCompletionNode, insideJsDocTagTypeExpression = completionData.insideJsDocTagTypeExpression, symbolToSortTextIdMap = completionData.symbolToSortTextIdMap, hasUnresolvedAutoImports = completionData.hasUnresolvedAutoImports;
|
||||
// Verify if the file is JSX language variant
|
||||
if (ts.getLanguageVariant(sourceFile.scriptKind) === 1 /* JSX */) {
|
||||
var completionInfo = getJsxClosingTagCompletion(location, sourceFile);
|
||||
@@ -128423,7 +128437,7 @@ var ts;
|
||||
var entries = [];
|
||||
if (isUncheckedFile(sourceFile, compilerOptions)) {
|
||||
var uniqueNames = getCompletionEntriesFromSymbols(symbols, entries,
|
||||
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap);
|
||||
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap, isJsxIdentifierExpected, isRightOfOpenTag);
|
||||
getJSCompletionEntries(sourceFile, location.pos, uniqueNames, ts.getEmitScriptTarget(compilerOptions), entries); // TODO: GH#18217
|
||||
}
|
||||
else {
|
||||
@@ -128431,7 +128445,7 @@ var ts;
|
||||
return undefined;
|
||||
}
|
||||
getCompletionEntriesFromSymbols(symbols, entries,
|
||||
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap);
|
||||
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap, isJsxIdentifierExpected, isRightOfOpenTag);
|
||||
}
|
||||
if (keywordFilters !== 0 /* None */) {
|
||||
var entryNames = new ts.Set(entries.map(function (e) { return e.name; }));
|
||||
@@ -128537,7 +128551,7 @@ var ts;
|
||||
function createCompletionEntryForLiteral(sourceFile, preferences, literal) {
|
||||
return { name: completionNameForLiteral(sourceFile, preferences, literal), kind: "string" /* string */, kindModifiers: "" /* none */, sortText: SortText.LocationPriority };
|
||||
}
|
||||
function createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importCompletionNode, useSemicolons, options, preferences, completionKind) {
|
||||
function createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importCompletionNode, useSemicolons, options, preferences, completionKind, isJsxIdentifierExpected, isRightOfOpenTag) {
|
||||
var _a, _b;
|
||||
var insertText;
|
||||
var replacementSpan = ts.getReplacementSpanForContextToken(replacementToken);
|
||||
@@ -128608,24 +128622,7 @@ var ts;
|
||||
source = CompletionSource.ClassMemberSnippet;
|
||||
}
|
||||
}
|
||||
// Before offering up a JSX attribute snippet, ensure that we aren't potentially completing
|
||||
// a tag name; this may appear as an attribute after the "<" when the tag has not yet been
|
||||
// closed, as in:
|
||||
//
|
||||
// return <>
|
||||
// foo <butto|
|
||||
// </>
|
||||
//
|
||||
// We can detect this case by checking if both:
|
||||
//
|
||||
// 1. The location is "<", so we are completing immediately after it.
|
||||
// 2. The "<" has the same position as its parent, so is not a binary expression.
|
||||
var kind = ts.SymbolDisplay.getSymbolKind(typeChecker, symbol, location);
|
||||
if (kind === "JSX attribute" /* jsxAttribute */
|
||||
&& (location.kind !== 29 /* LessThanToken */ || location.pos !== location.parent.pos)
|
||||
&& preferences.includeCompletionsWithSnippetText
|
||||
&& preferences.jsxAttributeCompletionStyle
|
||||
&& preferences.jsxAttributeCompletionStyle !== "none") {
|
||||
if (isJsxIdentifierExpected && !isRightOfOpenTag && preferences.includeCompletionsWithSnippetText && preferences.jsxAttributeCompletionStyle && preferences.jsxAttributeCompletionStyle !== "none") {
|
||||
var useBraces_1 = preferences.jsxAttributeCompletionStyle === "braces";
|
||||
var type = typeChecker.getTypeOfSymbolAtLocation(symbol, location);
|
||||
// If is boolean like or undefined, don't return a snippet we want just to return the completion.
|
||||
@@ -128663,7 +128660,7 @@ var ts;
|
||||
// entries (like JavaScript identifier entries).
|
||||
return {
|
||||
name: name,
|
||||
kind: kind,
|
||||
kind: ts.SymbolDisplay.getSymbolKind(typeChecker, symbol, location),
|
||||
kindModifiers: ts.SymbolDisplay.getSymbolModifiers(typeChecker, symbol),
|
||||
sortText: sortText,
|
||||
source: source,
|
||||
@@ -128938,7 +128935,7 @@ var ts;
|
||||
return CompletionSource.ThisProperty;
|
||||
}
|
||||
}
|
||||
function getCompletionEntriesFromSymbols(symbols, entries, replacementToken, contextToken, location, sourceFile, host, program, target, log, kind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, jsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap) {
|
||||
function getCompletionEntriesFromSymbols(symbols, entries, replacementToken, contextToken, location, sourceFile, host, program, target, log, kind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, jsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap, isJsxIdentifierExpected, isRightOfOpenTag) {
|
||||
var _a;
|
||||
var start = ts.timestamp();
|
||||
var variableDeclaration = getVariableDeclaration(location);
|
||||
@@ -128959,7 +128956,7 @@ var ts;
|
||||
var name = info.name, needsConvertPropertyAccess = info.needsConvertPropertyAccess;
|
||||
var sortTextId = (_a = symbolToSortTextIdMap === null || symbolToSortTextIdMap === void 0 ? void 0 : symbolToSortTextIdMap[ts.getSymbolId(symbol)]) !== null && _a !== void 0 ? _a : 11 /* LocationPriority */;
|
||||
var sortText = (isDeprecated(symbol, typeChecker) ? 8 /* DeprecatedOffset */ + sortTextId : sortTextId).toString();
|
||||
var entry = createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importCompletionNode, useSemicolons, compilerOptions, preferences, kind);
|
||||
var entry = createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importCompletionNode, useSemicolons, compilerOptions, preferences, kind, isJsxIdentifierExpected, isRightOfOpenTag);
|
||||
if (!entry) {
|
||||
continue;
|
||||
}
|
||||
@@ -129553,6 +129550,7 @@ var ts;
|
||||
symbolToSortTextIdMap: symbolToSortTextIdMap,
|
||||
isTypeOnlyLocation: isTypeOnlyLocation,
|
||||
isJsxIdentifierExpected: isJsxIdentifierExpected,
|
||||
isRightOfOpenTag: isRightOfOpenTag,
|
||||
importCompletionNode: importCompletionNode,
|
||||
hasUnresolvedAutoImports: hasUnresolvedAutoImports,
|
||||
};
|
||||
@@ -132484,7 +132482,7 @@ var ts;
|
||||
ts.Debug.assert(parent.name === node);
|
||||
return true;
|
||||
case 202 /* BindingElement */:
|
||||
return ts.isInJSFile(node) && ts.isRequireVariableDeclaration(parent);
|
||||
return ts.isInJSFile(node) && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(parent);
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@@ -133884,7 +133882,7 @@ var ts;
|
||||
// Use the parent symbol if the location is commonjs require syntax on javascript files only.
|
||||
if (ts.isInJSFile(referenceLocation)
|
||||
&& referenceLocation.parent.kind === 202 /* BindingElement */
|
||||
&& ts.isRequireVariableDeclaration(referenceLocation.parent)) {
|
||||
&& ts.isVariableDeclarationInitializedToBareOrAccessedRequire(referenceLocation.parent)) {
|
||||
referenceSymbol = referenceLocation.parent.symbol;
|
||||
// The parent will not have a symbol if it's an ObjectBindingPattern (when destructuring is used). In
|
||||
// this case, just skip it, since the bound identifiers are not an alias of the import.
|
||||
@@ -135591,7 +135589,7 @@ var ts;
|
||||
return declaration.parent.kind === 268 /* NamedImports */;
|
||||
case 202 /* BindingElement */:
|
||||
case 253 /* VariableDeclaration */:
|
||||
return ts.isInJSFile(declaration) && ts.isRequireVariableDeclaration(declaration);
|
||||
return ts.isInJSFile(declaration) && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(declaration);
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@@ -136874,6 +136872,9 @@ var ts;
|
||||
// We use 1 NavNode to represent 'A.B.C', but there are multiple source nodes.
|
||||
// Only merge module nodes that have the same chain. Don't merge 'A.B.C' with 'A'!
|
||||
function areSameModule(a, b) {
|
||||
if (!a.body || !b.body) {
|
||||
return a.body === b.body;
|
||||
}
|
||||
return a.body.kind === b.body.kind && (a.body.kind !== 260 /* ModuleDeclaration */ || areSameModule(a.body, b.body));
|
||||
}
|
||||
/** Merge source into target. Source should be thrown away after this is called. */
|
||||
@@ -148623,7 +148624,7 @@ var ts;
|
||||
var importKind = getImportKind(importingFile, exportKind, compilerOptions);
|
||||
return ts.mapDefined(importingFile.imports, function (moduleSpecifier) {
|
||||
var i = ts.importFromModuleSpecifier(moduleSpecifier);
|
||||
if (ts.isRequireVariableDeclaration(i.parent)) {
|
||||
if (ts.isVariableDeclarationInitializedToRequire(i.parent)) {
|
||||
return checker.resolveExternalModuleName(moduleSpecifier) === moduleSymbol ? { declaration: i.parent, importKind: importKind, symbol: symbol, targetFlags: targetFlags } : undefined;
|
||||
}
|
||||
if (i.kind === 265 /* ImportDeclaration */ || i.kind === 264 /* ImportEqualsDeclaration */) {
|
||||
@@ -156683,11 +156684,12 @@ var ts;
|
||||
var result = [];
|
||||
return visitor(selection) ? undefined : result;
|
||||
function visitor(node) {
|
||||
var _a;
|
||||
if (ts.isTypeReferenceNode(node)) {
|
||||
if (ts.isIdentifier(node.typeName)) {
|
||||
var symbol = checker.resolveName(node.typeName.text, node.typeName, 262144 /* TypeParameter */, /* excludeGlobals */ true);
|
||||
if (symbol === null || symbol === void 0 ? void 0 : symbol.declarations) {
|
||||
var declaration = ts.cast(ts.first(symbol.declarations), ts.isTypeParameterDeclaration);
|
||||
var declaration = ts.tryCast((_a = symbol === null || symbol === void 0 ? void 0 : symbol.declarations) === null || _a === void 0 ? void 0 : _a[0], ts.isTypeParameterDeclaration);
|
||||
if (declaration) {
|
||||
if (rangeContainsSkipTrivia(statement, declaration, file) && !rangeContainsSkipTrivia(selection, declaration, file)) {
|
||||
ts.pushIfUnique(result, declaration);
|
||||
}
|
||||
|
||||
+48
-46
@@ -294,7 +294,7 @@ var ts;
|
||||
// The following is baselined as a literal template type without intervention
|
||||
/** The version of the TypeScript compiler release */
|
||||
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
||||
ts.version = "4.5.4";
|
||||
ts.version = "4.5.5";
|
||||
/* @internal */
|
||||
var Comparison;
|
||||
(function (Comparison) {
|
||||
@@ -16033,7 +16033,7 @@ var ts;
|
||||
}
|
||||
ts.getExternalModuleImportEqualsDeclarationExpression = getExternalModuleImportEqualsDeclarationExpression;
|
||||
function getExternalModuleRequireArgument(node) {
|
||||
return isRequireVariableDeclaration(node) && getLeftmostAccessExpression(node.initializer).arguments[0];
|
||||
return isVariableDeclarationInitializedToBareOrAccessedRequire(node) && getLeftmostAccessExpression(node.initializer).arguments[0];
|
||||
}
|
||||
ts.getExternalModuleRequireArgument = getExternalModuleRequireArgument;
|
||||
function isInternalModuleImportEqualsDeclaration(node) {
|
||||
@@ -16091,17 +16091,29 @@ var ts;
|
||||
* Returns true if the node is a VariableDeclaration initialized to a require call (see `isRequireCall`).
|
||||
* This function does not test if the node is in a JavaScript file or not.
|
||||
*/
|
||||
function isRequireVariableDeclaration(node) {
|
||||
function isVariableDeclarationInitializedToRequire(node) {
|
||||
return isVariableDeclarationInitializedWithRequireHelper(node, /*allowAccessedRequire*/ false);
|
||||
}
|
||||
ts.isVariableDeclarationInitializedToRequire = isVariableDeclarationInitializedToRequire;
|
||||
/**
|
||||
* Like {@link isVariableDeclarationInitializedToRequire} but allows things like `require("...").foo.bar` or `require("...")["baz"]`.
|
||||
*/
|
||||
function isVariableDeclarationInitializedToBareOrAccessedRequire(node) {
|
||||
return isVariableDeclarationInitializedWithRequireHelper(node, /*allowAccessedRequire*/ true);
|
||||
}
|
||||
ts.isVariableDeclarationInitializedToBareOrAccessedRequire = isVariableDeclarationInitializedToBareOrAccessedRequire;
|
||||
function isVariableDeclarationInitializedWithRequireHelper(node, allowAccessedRequire) {
|
||||
if (node.kind === 202 /* BindingElement */) {
|
||||
node = node.parent.parent;
|
||||
}
|
||||
return ts.isVariableDeclaration(node) && !!node.initializer && isRequireCall(getLeftmostAccessExpression(node.initializer), /*requireStringLiteralLikeArgument*/ true);
|
||||
return ts.isVariableDeclaration(node) &&
|
||||
!!node.initializer &&
|
||||
isRequireCall(allowAccessedRequire ? getLeftmostAccessExpression(node.initializer) : node.initializer, /*requireStringLiteralLikeArgument*/ true);
|
||||
}
|
||||
ts.isRequireVariableDeclaration = isRequireVariableDeclaration;
|
||||
function isRequireVariableStatement(node) {
|
||||
return ts.isVariableStatement(node)
|
||||
&& node.declarationList.declarations.length > 0
|
||||
&& ts.every(node.declarationList.declarations, function (decl) { return isRequireVariableDeclaration(decl); });
|
||||
&& ts.every(node.declarationList.declarations, function (decl) { return isVariableDeclarationInitializedToRequire(decl); });
|
||||
}
|
||||
ts.isRequireVariableStatement = isRequireVariableStatement;
|
||||
function isSingleOrDoubleQuote(charCode) {
|
||||
@@ -46258,7 +46270,7 @@ var ts;
|
||||
checkStrictModeEvalOrArguments(node, node.name);
|
||||
}
|
||||
if (!ts.isBindingPattern(node.name)) {
|
||||
if (ts.isInJSFile(node) && ts.isRequireVariableDeclaration(node) && !ts.getJSDocTypeTag(node)) {
|
||||
if (ts.isInJSFile(node) && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node) && !ts.getJSDocTypeTag(node)) {
|
||||
declareSymbolAndAddToSymbolTable(node, 2097152 /* Alias */, 2097152 /* AliasExcludes */);
|
||||
}
|
||||
else if (ts.isBlockOrCatchScoped(node)) {
|
||||
@@ -49037,7 +49049,7 @@ var ts;
|
||||
&& isAliasableOrJsExpression(node.parent.right)
|
||||
|| node.kind === 295 /* ShorthandPropertyAssignment */
|
||||
|| node.kind === 294 /* PropertyAssignment */ && isAliasableOrJsExpression(node.initializer)
|
||||
|| ts.isRequireVariableDeclaration(node);
|
||||
|| ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node);
|
||||
}
|
||||
function isAliasableOrJsExpression(e) {
|
||||
return ts.isAliasableExpression(e) || ts.isFunctionExpression(e) && isJSConstructor(e);
|
||||
@@ -50008,7 +50020,7 @@ var ts;
|
||||
if (!sigs || !sigs.length) {
|
||||
sigs = getSignaturesOfStructuredType(type, 1 /* Construct */);
|
||||
}
|
||||
if ((sigs && sigs.length) || getPropertyOfType(type, "default" /* Default */)) {
|
||||
if ((sigs && sigs.length) || getPropertyOfType(type, "default" /* Default */, /*skipObjectFunctionPropertyAugment*/ true)) {
|
||||
var moduleType = getTypeWithSyntheticDefaultImportType(type, symbol, moduleSymbol, reference);
|
||||
return cloneTypeAsModuleType(symbol, moduleType, referenceParent);
|
||||
}
|
||||
@@ -80440,7 +80452,7 @@ var ts;
|
||||
}
|
||||
// For a commonjs `const x = require`, validate the alias and exit
|
||||
var symbol = getSymbolOfNode(node);
|
||||
if (symbol.flags & 2097152 /* Alias */ && ts.isRequireVariableDeclaration(node)) {
|
||||
if (symbol.flags & 2097152 /* Alias */ && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node)) {
|
||||
checkAliasSymbol(node);
|
||||
return;
|
||||
}
|
||||
@@ -124537,7 +124549,7 @@ var ts;
|
||||
isWhiteSpaceOnlyJsxText(child);
|
||||
if (lookInPreviousChild) {
|
||||
// actual start of the node is past the position - previous token should be at the end of previous child
|
||||
var candidate_1 = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ i, sourceFile);
|
||||
var candidate_1 = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ i, sourceFile, n.kind);
|
||||
return candidate_1 && findRightmostToken(candidate_1, sourceFile);
|
||||
}
|
||||
else {
|
||||
@@ -124551,7 +124563,7 @@ var ts;
|
||||
// the only known case is when position is at the end of the file.
|
||||
// Try to find the rightmost token in the file without filtering.
|
||||
// Namely we are skipping the check: 'position < node.end'
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile);
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile, n.kind);
|
||||
return candidate && findRightmostToken(candidate, sourceFile);
|
||||
}
|
||||
}
|
||||
@@ -124567,17 +124579,19 @@ var ts;
|
||||
if (children.length === 0) {
|
||||
return n;
|
||||
}
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile);
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile, n.kind);
|
||||
return candidate && findRightmostToken(candidate, sourceFile);
|
||||
}
|
||||
/**
|
||||
* Finds the rightmost child to the left of `children[exclusiveStartPosition]` which is a non-all-whitespace token or has constituent tokens.
|
||||
*/
|
||||
function findRightmostChildNodeWithTokens(children, exclusiveStartPosition, sourceFile) {
|
||||
function findRightmostChildNodeWithTokens(children, exclusiveStartPosition, sourceFile, parentKind) {
|
||||
for (var i = exclusiveStartPosition - 1; i >= 0; i--) {
|
||||
var child = children[i];
|
||||
if (isWhiteSpaceOnlyJsxText(child)) {
|
||||
ts.Debug.assert(i > 0, "`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`");
|
||||
if (i === 0 && (parentKind === 11 /* JsxText */ || parentKind === 278 /* JsxSelfClosingElement */)) {
|
||||
ts.Debug.fail("`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`");
|
||||
}
|
||||
}
|
||||
else if (nodeHasTokens(children[i], sourceFile)) {
|
||||
return children[i];
|
||||
@@ -128994,7 +129008,7 @@ var ts;
|
||||
return (location === null || location === void 0 ? void 0 : location.kind) === 79 /* Identifier */ ? ts.createTextSpanFromNode(location) : undefined;
|
||||
}
|
||||
function completionInfoFromData(sourceFile, host, program, compilerOptions, log, completionData, preferences) {
|
||||
var symbols = completionData.symbols, contextToken = completionData.contextToken, completionKind = completionData.completionKind, isInSnippetScope = completionData.isInSnippetScope, isNewIdentifierLocation = completionData.isNewIdentifierLocation, location = completionData.location, propertyAccessToConvert = completionData.propertyAccessToConvert, keywordFilters = completionData.keywordFilters, literals = completionData.literals, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap, recommendedCompletion = completionData.recommendedCompletion, isJsxInitializer = completionData.isJsxInitializer, isTypeOnlyLocation = completionData.isTypeOnlyLocation, isJsxIdentifierExpected = completionData.isJsxIdentifierExpected, importCompletionNode = completionData.importCompletionNode, insideJsDocTagTypeExpression = completionData.insideJsDocTagTypeExpression, symbolToSortTextIdMap = completionData.symbolToSortTextIdMap, hasUnresolvedAutoImports = completionData.hasUnresolvedAutoImports;
|
||||
var symbols = completionData.symbols, contextToken = completionData.contextToken, completionKind = completionData.completionKind, isInSnippetScope = completionData.isInSnippetScope, isNewIdentifierLocation = completionData.isNewIdentifierLocation, location = completionData.location, propertyAccessToConvert = completionData.propertyAccessToConvert, keywordFilters = completionData.keywordFilters, literals = completionData.literals, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap, recommendedCompletion = completionData.recommendedCompletion, isJsxInitializer = completionData.isJsxInitializer, isTypeOnlyLocation = completionData.isTypeOnlyLocation, isJsxIdentifierExpected = completionData.isJsxIdentifierExpected, isRightOfOpenTag = completionData.isRightOfOpenTag, importCompletionNode = completionData.importCompletionNode, insideJsDocTagTypeExpression = completionData.insideJsDocTagTypeExpression, symbolToSortTextIdMap = completionData.symbolToSortTextIdMap, hasUnresolvedAutoImports = completionData.hasUnresolvedAutoImports;
|
||||
// Verify if the file is JSX language variant
|
||||
if (ts.getLanguageVariant(sourceFile.scriptKind) === 1 /* JSX */) {
|
||||
var completionInfo = getJsxClosingTagCompletion(location, sourceFile);
|
||||
@@ -129005,7 +129019,7 @@ var ts;
|
||||
var entries = [];
|
||||
if (isUncheckedFile(sourceFile, compilerOptions)) {
|
||||
var uniqueNames = getCompletionEntriesFromSymbols(symbols, entries,
|
||||
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap);
|
||||
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap, isJsxIdentifierExpected, isRightOfOpenTag);
|
||||
getJSCompletionEntries(sourceFile, location.pos, uniqueNames, ts.getEmitScriptTarget(compilerOptions), entries); // TODO: GH#18217
|
||||
}
|
||||
else {
|
||||
@@ -129013,7 +129027,7 @@ var ts;
|
||||
return undefined;
|
||||
}
|
||||
getCompletionEntriesFromSymbols(symbols, entries,
|
||||
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap);
|
||||
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap, isJsxIdentifierExpected, isRightOfOpenTag);
|
||||
}
|
||||
if (keywordFilters !== 0 /* None */) {
|
||||
var entryNames = new ts.Set(entries.map(function (e) { return e.name; }));
|
||||
@@ -129119,7 +129133,7 @@ var ts;
|
||||
function createCompletionEntryForLiteral(sourceFile, preferences, literal) {
|
||||
return { name: completionNameForLiteral(sourceFile, preferences, literal), kind: "string" /* string */, kindModifiers: "" /* none */, sortText: SortText.LocationPriority };
|
||||
}
|
||||
function createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importCompletionNode, useSemicolons, options, preferences, completionKind) {
|
||||
function createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importCompletionNode, useSemicolons, options, preferences, completionKind, isJsxIdentifierExpected, isRightOfOpenTag) {
|
||||
var _a, _b;
|
||||
var insertText;
|
||||
var replacementSpan = ts.getReplacementSpanForContextToken(replacementToken);
|
||||
@@ -129190,24 +129204,7 @@ var ts;
|
||||
source = CompletionSource.ClassMemberSnippet;
|
||||
}
|
||||
}
|
||||
// Before offering up a JSX attribute snippet, ensure that we aren't potentially completing
|
||||
// a tag name; this may appear as an attribute after the "<" when the tag has not yet been
|
||||
// closed, as in:
|
||||
//
|
||||
// return <>
|
||||
// foo <butto|
|
||||
// </>
|
||||
//
|
||||
// We can detect this case by checking if both:
|
||||
//
|
||||
// 1. The location is "<", so we are completing immediately after it.
|
||||
// 2. The "<" has the same position as its parent, so is not a binary expression.
|
||||
var kind = ts.SymbolDisplay.getSymbolKind(typeChecker, symbol, location);
|
||||
if (kind === "JSX attribute" /* jsxAttribute */
|
||||
&& (location.kind !== 29 /* LessThanToken */ || location.pos !== location.parent.pos)
|
||||
&& preferences.includeCompletionsWithSnippetText
|
||||
&& preferences.jsxAttributeCompletionStyle
|
||||
&& preferences.jsxAttributeCompletionStyle !== "none") {
|
||||
if (isJsxIdentifierExpected && !isRightOfOpenTag && preferences.includeCompletionsWithSnippetText && preferences.jsxAttributeCompletionStyle && preferences.jsxAttributeCompletionStyle !== "none") {
|
||||
var useBraces_1 = preferences.jsxAttributeCompletionStyle === "braces";
|
||||
var type = typeChecker.getTypeOfSymbolAtLocation(symbol, location);
|
||||
// If is boolean like or undefined, don't return a snippet we want just to return the completion.
|
||||
@@ -129245,7 +129242,7 @@ var ts;
|
||||
// entries (like JavaScript identifier entries).
|
||||
return {
|
||||
name: name,
|
||||
kind: kind,
|
||||
kind: ts.SymbolDisplay.getSymbolKind(typeChecker, symbol, location),
|
||||
kindModifiers: ts.SymbolDisplay.getSymbolModifiers(typeChecker, symbol),
|
||||
sortText: sortText,
|
||||
source: source,
|
||||
@@ -129520,7 +129517,7 @@ var ts;
|
||||
return CompletionSource.ThisProperty;
|
||||
}
|
||||
}
|
||||
function getCompletionEntriesFromSymbols(symbols, entries, replacementToken, contextToken, location, sourceFile, host, program, target, log, kind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, jsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap) {
|
||||
function getCompletionEntriesFromSymbols(symbols, entries, replacementToken, contextToken, location, sourceFile, host, program, target, log, kind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, jsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap, isJsxIdentifierExpected, isRightOfOpenTag) {
|
||||
var _a;
|
||||
var start = ts.timestamp();
|
||||
var variableDeclaration = getVariableDeclaration(location);
|
||||
@@ -129541,7 +129538,7 @@ var ts;
|
||||
var name = info.name, needsConvertPropertyAccess = info.needsConvertPropertyAccess;
|
||||
var sortTextId = (_a = symbolToSortTextIdMap === null || symbolToSortTextIdMap === void 0 ? void 0 : symbolToSortTextIdMap[ts.getSymbolId(symbol)]) !== null && _a !== void 0 ? _a : 11 /* LocationPriority */;
|
||||
var sortText = (isDeprecated(symbol, typeChecker) ? 8 /* DeprecatedOffset */ + sortTextId : sortTextId).toString();
|
||||
var entry = createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importCompletionNode, useSemicolons, compilerOptions, preferences, kind);
|
||||
var entry = createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importCompletionNode, useSemicolons, compilerOptions, preferences, kind, isJsxIdentifierExpected, isRightOfOpenTag);
|
||||
if (!entry) {
|
||||
continue;
|
||||
}
|
||||
@@ -130135,6 +130132,7 @@ var ts;
|
||||
symbolToSortTextIdMap: symbolToSortTextIdMap,
|
||||
isTypeOnlyLocation: isTypeOnlyLocation,
|
||||
isJsxIdentifierExpected: isJsxIdentifierExpected,
|
||||
isRightOfOpenTag: isRightOfOpenTag,
|
||||
importCompletionNode: importCompletionNode,
|
||||
hasUnresolvedAutoImports: hasUnresolvedAutoImports,
|
||||
};
|
||||
@@ -133066,7 +133064,7 @@ var ts;
|
||||
ts.Debug.assert(parent.name === node);
|
||||
return true;
|
||||
case 202 /* BindingElement */:
|
||||
return ts.isInJSFile(node) && ts.isRequireVariableDeclaration(parent);
|
||||
return ts.isInJSFile(node) && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(parent);
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@@ -134466,7 +134464,7 @@ var ts;
|
||||
// Use the parent symbol if the location is commonjs require syntax on javascript files only.
|
||||
if (ts.isInJSFile(referenceLocation)
|
||||
&& referenceLocation.parent.kind === 202 /* BindingElement */
|
||||
&& ts.isRequireVariableDeclaration(referenceLocation.parent)) {
|
||||
&& ts.isVariableDeclarationInitializedToBareOrAccessedRequire(referenceLocation.parent)) {
|
||||
referenceSymbol = referenceLocation.parent.symbol;
|
||||
// The parent will not have a symbol if it's an ObjectBindingPattern (when destructuring is used). In
|
||||
// this case, just skip it, since the bound identifiers are not an alias of the import.
|
||||
@@ -136173,7 +136171,7 @@ var ts;
|
||||
return declaration.parent.kind === 268 /* NamedImports */;
|
||||
case 202 /* BindingElement */:
|
||||
case 253 /* VariableDeclaration */:
|
||||
return ts.isInJSFile(declaration) && ts.isRequireVariableDeclaration(declaration);
|
||||
return ts.isInJSFile(declaration) && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(declaration);
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@@ -137456,6 +137454,9 @@ var ts;
|
||||
// We use 1 NavNode to represent 'A.B.C', but there are multiple source nodes.
|
||||
// Only merge module nodes that have the same chain. Don't merge 'A.B.C' with 'A'!
|
||||
function areSameModule(a, b) {
|
||||
if (!a.body || !b.body) {
|
||||
return a.body === b.body;
|
||||
}
|
||||
return a.body.kind === b.body.kind && (a.body.kind !== 260 /* ModuleDeclaration */ || areSameModule(a.body, b.body));
|
||||
}
|
||||
/** Merge source into target. Source should be thrown away after this is called. */
|
||||
@@ -149205,7 +149206,7 @@ var ts;
|
||||
var importKind = getImportKind(importingFile, exportKind, compilerOptions);
|
||||
return ts.mapDefined(importingFile.imports, function (moduleSpecifier) {
|
||||
var i = ts.importFromModuleSpecifier(moduleSpecifier);
|
||||
if (ts.isRequireVariableDeclaration(i.parent)) {
|
||||
if (ts.isVariableDeclarationInitializedToRequire(i.parent)) {
|
||||
return checker.resolveExternalModuleName(moduleSpecifier) === moduleSymbol ? { declaration: i.parent, importKind: importKind, symbol: symbol, targetFlags: targetFlags } : undefined;
|
||||
}
|
||||
if (i.kind === 265 /* ImportDeclaration */ || i.kind === 264 /* ImportEqualsDeclaration */) {
|
||||
@@ -157265,11 +157266,12 @@ var ts;
|
||||
var result = [];
|
||||
return visitor(selection) ? undefined : result;
|
||||
function visitor(node) {
|
||||
var _a;
|
||||
if (ts.isTypeReferenceNode(node)) {
|
||||
if (ts.isIdentifier(node.typeName)) {
|
||||
var symbol = checker.resolveName(node.typeName.text, node.typeName, 262144 /* TypeParameter */, /* excludeGlobals */ true);
|
||||
if (symbol === null || symbol === void 0 ? void 0 : symbol.declarations) {
|
||||
var declaration = ts.cast(ts.first(symbol.declarations), ts.isTypeParameterDeclaration);
|
||||
var declaration = ts.tryCast((_a = symbol === null || symbol === void 0 ? void 0 : symbol.declarations) === null || _a === void 0 ? void 0 : _a[0], ts.isTypeParameterDeclaration);
|
||||
if (declaration) {
|
||||
if (rangeContainsSkipTrivia(statement, declaration, file) && !rangeContainsSkipTrivia(selection, declaration, file)) {
|
||||
ts.pushIfUnique(result, declaration);
|
||||
}
|
||||
|
||||
+48
-46
@@ -294,7 +294,7 @@ var ts;
|
||||
// The following is baselined as a literal template type without intervention
|
||||
/** The version of the TypeScript compiler release */
|
||||
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
||||
ts.version = "4.5.4";
|
||||
ts.version = "4.5.5";
|
||||
/* @internal */
|
||||
var Comparison;
|
||||
(function (Comparison) {
|
||||
@@ -16033,7 +16033,7 @@ var ts;
|
||||
}
|
||||
ts.getExternalModuleImportEqualsDeclarationExpression = getExternalModuleImportEqualsDeclarationExpression;
|
||||
function getExternalModuleRequireArgument(node) {
|
||||
return isRequireVariableDeclaration(node) && getLeftmostAccessExpression(node.initializer).arguments[0];
|
||||
return isVariableDeclarationInitializedToBareOrAccessedRequire(node) && getLeftmostAccessExpression(node.initializer).arguments[0];
|
||||
}
|
||||
ts.getExternalModuleRequireArgument = getExternalModuleRequireArgument;
|
||||
function isInternalModuleImportEqualsDeclaration(node) {
|
||||
@@ -16091,17 +16091,29 @@ var ts;
|
||||
* Returns true if the node is a VariableDeclaration initialized to a require call (see `isRequireCall`).
|
||||
* This function does not test if the node is in a JavaScript file or not.
|
||||
*/
|
||||
function isRequireVariableDeclaration(node) {
|
||||
function isVariableDeclarationInitializedToRequire(node) {
|
||||
return isVariableDeclarationInitializedWithRequireHelper(node, /*allowAccessedRequire*/ false);
|
||||
}
|
||||
ts.isVariableDeclarationInitializedToRequire = isVariableDeclarationInitializedToRequire;
|
||||
/**
|
||||
* Like {@link isVariableDeclarationInitializedToRequire} but allows things like `require("...").foo.bar` or `require("...")["baz"]`.
|
||||
*/
|
||||
function isVariableDeclarationInitializedToBareOrAccessedRequire(node) {
|
||||
return isVariableDeclarationInitializedWithRequireHelper(node, /*allowAccessedRequire*/ true);
|
||||
}
|
||||
ts.isVariableDeclarationInitializedToBareOrAccessedRequire = isVariableDeclarationInitializedToBareOrAccessedRequire;
|
||||
function isVariableDeclarationInitializedWithRequireHelper(node, allowAccessedRequire) {
|
||||
if (node.kind === 202 /* BindingElement */) {
|
||||
node = node.parent.parent;
|
||||
}
|
||||
return ts.isVariableDeclaration(node) && !!node.initializer && isRequireCall(getLeftmostAccessExpression(node.initializer), /*requireStringLiteralLikeArgument*/ true);
|
||||
return ts.isVariableDeclaration(node) &&
|
||||
!!node.initializer &&
|
||||
isRequireCall(allowAccessedRequire ? getLeftmostAccessExpression(node.initializer) : node.initializer, /*requireStringLiteralLikeArgument*/ true);
|
||||
}
|
||||
ts.isRequireVariableDeclaration = isRequireVariableDeclaration;
|
||||
function isRequireVariableStatement(node) {
|
||||
return ts.isVariableStatement(node)
|
||||
&& node.declarationList.declarations.length > 0
|
||||
&& ts.every(node.declarationList.declarations, function (decl) { return isRequireVariableDeclaration(decl); });
|
||||
&& ts.every(node.declarationList.declarations, function (decl) { return isVariableDeclarationInitializedToRequire(decl); });
|
||||
}
|
||||
ts.isRequireVariableStatement = isRequireVariableStatement;
|
||||
function isSingleOrDoubleQuote(charCode) {
|
||||
@@ -46258,7 +46270,7 @@ var ts;
|
||||
checkStrictModeEvalOrArguments(node, node.name);
|
||||
}
|
||||
if (!ts.isBindingPattern(node.name)) {
|
||||
if (ts.isInJSFile(node) && ts.isRequireVariableDeclaration(node) && !ts.getJSDocTypeTag(node)) {
|
||||
if (ts.isInJSFile(node) && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node) && !ts.getJSDocTypeTag(node)) {
|
||||
declareSymbolAndAddToSymbolTable(node, 2097152 /* Alias */, 2097152 /* AliasExcludes */);
|
||||
}
|
||||
else if (ts.isBlockOrCatchScoped(node)) {
|
||||
@@ -49037,7 +49049,7 @@ var ts;
|
||||
&& isAliasableOrJsExpression(node.parent.right)
|
||||
|| node.kind === 295 /* ShorthandPropertyAssignment */
|
||||
|| node.kind === 294 /* PropertyAssignment */ && isAliasableOrJsExpression(node.initializer)
|
||||
|| ts.isRequireVariableDeclaration(node);
|
||||
|| ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node);
|
||||
}
|
||||
function isAliasableOrJsExpression(e) {
|
||||
return ts.isAliasableExpression(e) || ts.isFunctionExpression(e) && isJSConstructor(e);
|
||||
@@ -50008,7 +50020,7 @@ var ts;
|
||||
if (!sigs || !sigs.length) {
|
||||
sigs = getSignaturesOfStructuredType(type, 1 /* Construct */);
|
||||
}
|
||||
if ((sigs && sigs.length) || getPropertyOfType(type, "default" /* Default */)) {
|
||||
if ((sigs && sigs.length) || getPropertyOfType(type, "default" /* Default */, /*skipObjectFunctionPropertyAugment*/ true)) {
|
||||
var moduleType = getTypeWithSyntheticDefaultImportType(type, symbol, moduleSymbol, reference);
|
||||
return cloneTypeAsModuleType(symbol, moduleType, referenceParent);
|
||||
}
|
||||
@@ -80440,7 +80452,7 @@ var ts;
|
||||
}
|
||||
// For a commonjs `const x = require`, validate the alias and exit
|
||||
var symbol = getSymbolOfNode(node);
|
||||
if (symbol.flags & 2097152 /* Alias */ && ts.isRequireVariableDeclaration(node)) {
|
||||
if (symbol.flags & 2097152 /* Alias */ && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node)) {
|
||||
checkAliasSymbol(node);
|
||||
return;
|
||||
}
|
||||
@@ -124537,7 +124549,7 @@ var ts;
|
||||
isWhiteSpaceOnlyJsxText(child);
|
||||
if (lookInPreviousChild) {
|
||||
// actual start of the node is past the position - previous token should be at the end of previous child
|
||||
var candidate_1 = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ i, sourceFile);
|
||||
var candidate_1 = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ i, sourceFile, n.kind);
|
||||
return candidate_1 && findRightmostToken(candidate_1, sourceFile);
|
||||
}
|
||||
else {
|
||||
@@ -124551,7 +124563,7 @@ var ts;
|
||||
// the only known case is when position is at the end of the file.
|
||||
// Try to find the rightmost token in the file without filtering.
|
||||
// Namely we are skipping the check: 'position < node.end'
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile);
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile, n.kind);
|
||||
return candidate && findRightmostToken(candidate, sourceFile);
|
||||
}
|
||||
}
|
||||
@@ -124567,17 +124579,19 @@ var ts;
|
||||
if (children.length === 0) {
|
||||
return n;
|
||||
}
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile);
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile, n.kind);
|
||||
return candidate && findRightmostToken(candidate, sourceFile);
|
||||
}
|
||||
/**
|
||||
* Finds the rightmost child to the left of `children[exclusiveStartPosition]` which is a non-all-whitespace token or has constituent tokens.
|
||||
*/
|
||||
function findRightmostChildNodeWithTokens(children, exclusiveStartPosition, sourceFile) {
|
||||
function findRightmostChildNodeWithTokens(children, exclusiveStartPosition, sourceFile, parentKind) {
|
||||
for (var i = exclusiveStartPosition - 1; i >= 0; i--) {
|
||||
var child = children[i];
|
||||
if (isWhiteSpaceOnlyJsxText(child)) {
|
||||
ts.Debug.assert(i > 0, "`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`");
|
||||
if (i === 0 && (parentKind === 11 /* JsxText */ || parentKind === 278 /* JsxSelfClosingElement */)) {
|
||||
ts.Debug.fail("`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`");
|
||||
}
|
||||
}
|
||||
else if (nodeHasTokens(children[i], sourceFile)) {
|
||||
return children[i];
|
||||
@@ -128994,7 +129008,7 @@ var ts;
|
||||
return (location === null || location === void 0 ? void 0 : location.kind) === 79 /* Identifier */ ? ts.createTextSpanFromNode(location) : undefined;
|
||||
}
|
||||
function completionInfoFromData(sourceFile, host, program, compilerOptions, log, completionData, preferences) {
|
||||
var symbols = completionData.symbols, contextToken = completionData.contextToken, completionKind = completionData.completionKind, isInSnippetScope = completionData.isInSnippetScope, isNewIdentifierLocation = completionData.isNewIdentifierLocation, location = completionData.location, propertyAccessToConvert = completionData.propertyAccessToConvert, keywordFilters = completionData.keywordFilters, literals = completionData.literals, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap, recommendedCompletion = completionData.recommendedCompletion, isJsxInitializer = completionData.isJsxInitializer, isTypeOnlyLocation = completionData.isTypeOnlyLocation, isJsxIdentifierExpected = completionData.isJsxIdentifierExpected, importCompletionNode = completionData.importCompletionNode, insideJsDocTagTypeExpression = completionData.insideJsDocTagTypeExpression, symbolToSortTextIdMap = completionData.symbolToSortTextIdMap, hasUnresolvedAutoImports = completionData.hasUnresolvedAutoImports;
|
||||
var symbols = completionData.symbols, contextToken = completionData.contextToken, completionKind = completionData.completionKind, isInSnippetScope = completionData.isInSnippetScope, isNewIdentifierLocation = completionData.isNewIdentifierLocation, location = completionData.location, propertyAccessToConvert = completionData.propertyAccessToConvert, keywordFilters = completionData.keywordFilters, literals = completionData.literals, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap, recommendedCompletion = completionData.recommendedCompletion, isJsxInitializer = completionData.isJsxInitializer, isTypeOnlyLocation = completionData.isTypeOnlyLocation, isJsxIdentifierExpected = completionData.isJsxIdentifierExpected, isRightOfOpenTag = completionData.isRightOfOpenTag, importCompletionNode = completionData.importCompletionNode, insideJsDocTagTypeExpression = completionData.insideJsDocTagTypeExpression, symbolToSortTextIdMap = completionData.symbolToSortTextIdMap, hasUnresolvedAutoImports = completionData.hasUnresolvedAutoImports;
|
||||
// Verify if the file is JSX language variant
|
||||
if (ts.getLanguageVariant(sourceFile.scriptKind) === 1 /* JSX */) {
|
||||
var completionInfo = getJsxClosingTagCompletion(location, sourceFile);
|
||||
@@ -129005,7 +129019,7 @@ var ts;
|
||||
var entries = [];
|
||||
if (isUncheckedFile(sourceFile, compilerOptions)) {
|
||||
var uniqueNames = getCompletionEntriesFromSymbols(symbols, entries,
|
||||
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap);
|
||||
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap, isJsxIdentifierExpected, isRightOfOpenTag);
|
||||
getJSCompletionEntries(sourceFile, location.pos, uniqueNames, ts.getEmitScriptTarget(compilerOptions), entries); // TODO: GH#18217
|
||||
}
|
||||
else {
|
||||
@@ -129013,7 +129027,7 @@ var ts;
|
||||
return undefined;
|
||||
}
|
||||
getCompletionEntriesFromSymbols(symbols, entries,
|
||||
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap);
|
||||
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap, isJsxIdentifierExpected, isRightOfOpenTag);
|
||||
}
|
||||
if (keywordFilters !== 0 /* None */) {
|
||||
var entryNames = new ts.Set(entries.map(function (e) { return e.name; }));
|
||||
@@ -129119,7 +129133,7 @@ var ts;
|
||||
function createCompletionEntryForLiteral(sourceFile, preferences, literal) {
|
||||
return { name: completionNameForLiteral(sourceFile, preferences, literal), kind: "string" /* string */, kindModifiers: "" /* none */, sortText: SortText.LocationPriority };
|
||||
}
|
||||
function createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importCompletionNode, useSemicolons, options, preferences, completionKind) {
|
||||
function createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importCompletionNode, useSemicolons, options, preferences, completionKind, isJsxIdentifierExpected, isRightOfOpenTag) {
|
||||
var _a, _b;
|
||||
var insertText;
|
||||
var replacementSpan = ts.getReplacementSpanForContextToken(replacementToken);
|
||||
@@ -129190,24 +129204,7 @@ var ts;
|
||||
source = CompletionSource.ClassMemberSnippet;
|
||||
}
|
||||
}
|
||||
// Before offering up a JSX attribute snippet, ensure that we aren't potentially completing
|
||||
// a tag name; this may appear as an attribute after the "<" when the tag has not yet been
|
||||
// closed, as in:
|
||||
//
|
||||
// return <>
|
||||
// foo <butto|
|
||||
// </>
|
||||
//
|
||||
// We can detect this case by checking if both:
|
||||
//
|
||||
// 1. The location is "<", so we are completing immediately after it.
|
||||
// 2. The "<" has the same position as its parent, so is not a binary expression.
|
||||
var kind = ts.SymbolDisplay.getSymbolKind(typeChecker, symbol, location);
|
||||
if (kind === "JSX attribute" /* jsxAttribute */
|
||||
&& (location.kind !== 29 /* LessThanToken */ || location.pos !== location.parent.pos)
|
||||
&& preferences.includeCompletionsWithSnippetText
|
||||
&& preferences.jsxAttributeCompletionStyle
|
||||
&& preferences.jsxAttributeCompletionStyle !== "none") {
|
||||
if (isJsxIdentifierExpected && !isRightOfOpenTag && preferences.includeCompletionsWithSnippetText && preferences.jsxAttributeCompletionStyle && preferences.jsxAttributeCompletionStyle !== "none") {
|
||||
var useBraces_1 = preferences.jsxAttributeCompletionStyle === "braces";
|
||||
var type = typeChecker.getTypeOfSymbolAtLocation(symbol, location);
|
||||
// If is boolean like or undefined, don't return a snippet we want just to return the completion.
|
||||
@@ -129245,7 +129242,7 @@ var ts;
|
||||
// entries (like JavaScript identifier entries).
|
||||
return {
|
||||
name: name,
|
||||
kind: kind,
|
||||
kind: ts.SymbolDisplay.getSymbolKind(typeChecker, symbol, location),
|
||||
kindModifiers: ts.SymbolDisplay.getSymbolModifiers(typeChecker, symbol),
|
||||
sortText: sortText,
|
||||
source: source,
|
||||
@@ -129520,7 +129517,7 @@ var ts;
|
||||
return CompletionSource.ThisProperty;
|
||||
}
|
||||
}
|
||||
function getCompletionEntriesFromSymbols(symbols, entries, replacementToken, contextToken, location, sourceFile, host, program, target, log, kind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, jsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap) {
|
||||
function getCompletionEntriesFromSymbols(symbols, entries, replacementToken, contextToken, location, sourceFile, host, program, target, log, kind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, jsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap, isJsxIdentifierExpected, isRightOfOpenTag) {
|
||||
var _a;
|
||||
var start = ts.timestamp();
|
||||
var variableDeclaration = getVariableDeclaration(location);
|
||||
@@ -129541,7 +129538,7 @@ var ts;
|
||||
var name = info.name, needsConvertPropertyAccess = info.needsConvertPropertyAccess;
|
||||
var sortTextId = (_a = symbolToSortTextIdMap === null || symbolToSortTextIdMap === void 0 ? void 0 : symbolToSortTextIdMap[ts.getSymbolId(symbol)]) !== null && _a !== void 0 ? _a : 11 /* LocationPriority */;
|
||||
var sortText = (isDeprecated(symbol, typeChecker) ? 8 /* DeprecatedOffset */ + sortTextId : sortTextId).toString();
|
||||
var entry = createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importCompletionNode, useSemicolons, compilerOptions, preferences, kind);
|
||||
var entry = createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importCompletionNode, useSemicolons, compilerOptions, preferences, kind, isJsxIdentifierExpected, isRightOfOpenTag);
|
||||
if (!entry) {
|
||||
continue;
|
||||
}
|
||||
@@ -130135,6 +130132,7 @@ var ts;
|
||||
symbolToSortTextIdMap: symbolToSortTextIdMap,
|
||||
isTypeOnlyLocation: isTypeOnlyLocation,
|
||||
isJsxIdentifierExpected: isJsxIdentifierExpected,
|
||||
isRightOfOpenTag: isRightOfOpenTag,
|
||||
importCompletionNode: importCompletionNode,
|
||||
hasUnresolvedAutoImports: hasUnresolvedAutoImports,
|
||||
};
|
||||
@@ -133066,7 +133064,7 @@ var ts;
|
||||
ts.Debug.assert(parent.name === node);
|
||||
return true;
|
||||
case 202 /* BindingElement */:
|
||||
return ts.isInJSFile(node) && ts.isRequireVariableDeclaration(parent);
|
||||
return ts.isInJSFile(node) && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(parent);
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@@ -134466,7 +134464,7 @@ var ts;
|
||||
// Use the parent symbol if the location is commonjs require syntax on javascript files only.
|
||||
if (ts.isInJSFile(referenceLocation)
|
||||
&& referenceLocation.parent.kind === 202 /* BindingElement */
|
||||
&& ts.isRequireVariableDeclaration(referenceLocation.parent)) {
|
||||
&& ts.isVariableDeclarationInitializedToBareOrAccessedRequire(referenceLocation.parent)) {
|
||||
referenceSymbol = referenceLocation.parent.symbol;
|
||||
// The parent will not have a symbol if it's an ObjectBindingPattern (when destructuring is used). In
|
||||
// this case, just skip it, since the bound identifiers are not an alias of the import.
|
||||
@@ -136173,7 +136171,7 @@ var ts;
|
||||
return declaration.parent.kind === 268 /* NamedImports */;
|
||||
case 202 /* BindingElement */:
|
||||
case 253 /* VariableDeclaration */:
|
||||
return ts.isInJSFile(declaration) && ts.isRequireVariableDeclaration(declaration);
|
||||
return ts.isInJSFile(declaration) && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(declaration);
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@@ -137456,6 +137454,9 @@ var ts;
|
||||
// We use 1 NavNode to represent 'A.B.C', but there are multiple source nodes.
|
||||
// Only merge module nodes that have the same chain. Don't merge 'A.B.C' with 'A'!
|
||||
function areSameModule(a, b) {
|
||||
if (!a.body || !b.body) {
|
||||
return a.body === b.body;
|
||||
}
|
||||
return a.body.kind === b.body.kind && (a.body.kind !== 260 /* ModuleDeclaration */ || areSameModule(a.body, b.body));
|
||||
}
|
||||
/** Merge source into target. Source should be thrown away after this is called. */
|
||||
@@ -149205,7 +149206,7 @@ var ts;
|
||||
var importKind = getImportKind(importingFile, exportKind, compilerOptions);
|
||||
return ts.mapDefined(importingFile.imports, function (moduleSpecifier) {
|
||||
var i = ts.importFromModuleSpecifier(moduleSpecifier);
|
||||
if (ts.isRequireVariableDeclaration(i.parent)) {
|
||||
if (ts.isVariableDeclarationInitializedToRequire(i.parent)) {
|
||||
return checker.resolveExternalModuleName(moduleSpecifier) === moduleSymbol ? { declaration: i.parent, importKind: importKind, symbol: symbol, targetFlags: targetFlags } : undefined;
|
||||
}
|
||||
if (i.kind === 265 /* ImportDeclaration */ || i.kind === 264 /* ImportEqualsDeclaration */) {
|
||||
@@ -157265,11 +157266,12 @@ var ts;
|
||||
var result = [];
|
||||
return visitor(selection) ? undefined : result;
|
||||
function visitor(node) {
|
||||
var _a;
|
||||
if (ts.isTypeReferenceNode(node)) {
|
||||
if (ts.isIdentifier(node.typeName)) {
|
||||
var symbol = checker.resolveName(node.typeName.text, node.typeName, 262144 /* TypeParameter */, /* excludeGlobals */ true);
|
||||
if (symbol === null || symbol === void 0 ? void 0 : symbol.declarations) {
|
||||
var declaration = ts.cast(ts.first(symbol.declarations), ts.isTypeParameterDeclaration);
|
||||
var declaration = ts.tryCast((_a = symbol === null || symbol === void 0 ? void 0 : symbol.declarations) === null || _a === void 0 ? void 0 : _a[0], ts.isTypeParameterDeclaration);
|
||||
if (declaration) {
|
||||
if (rangeContainsSkipTrivia(statement, declaration, file) && !rangeContainsSkipTrivia(selection, declaration, file)) {
|
||||
ts.pushIfUnique(result, declaration);
|
||||
}
|
||||
|
||||
+48
-46
@@ -294,7 +294,7 @@ var ts;
|
||||
// The following is baselined as a literal template type without intervention
|
||||
/** The version of the TypeScript compiler release */
|
||||
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
||||
ts.version = "4.5.4";
|
||||
ts.version = "4.5.5";
|
||||
/* @internal */
|
||||
var Comparison;
|
||||
(function (Comparison) {
|
||||
@@ -16033,7 +16033,7 @@ var ts;
|
||||
}
|
||||
ts.getExternalModuleImportEqualsDeclarationExpression = getExternalModuleImportEqualsDeclarationExpression;
|
||||
function getExternalModuleRequireArgument(node) {
|
||||
return isRequireVariableDeclaration(node) && getLeftmostAccessExpression(node.initializer).arguments[0];
|
||||
return isVariableDeclarationInitializedToBareOrAccessedRequire(node) && getLeftmostAccessExpression(node.initializer).arguments[0];
|
||||
}
|
||||
ts.getExternalModuleRequireArgument = getExternalModuleRequireArgument;
|
||||
function isInternalModuleImportEqualsDeclaration(node) {
|
||||
@@ -16091,17 +16091,29 @@ var ts;
|
||||
* Returns true if the node is a VariableDeclaration initialized to a require call (see `isRequireCall`).
|
||||
* This function does not test if the node is in a JavaScript file or not.
|
||||
*/
|
||||
function isRequireVariableDeclaration(node) {
|
||||
function isVariableDeclarationInitializedToRequire(node) {
|
||||
return isVariableDeclarationInitializedWithRequireHelper(node, /*allowAccessedRequire*/ false);
|
||||
}
|
||||
ts.isVariableDeclarationInitializedToRequire = isVariableDeclarationInitializedToRequire;
|
||||
/**
|
||||
* Like {@link isVariableDeclarationInitializedToRequire} but allows things like `require("...").foo.bar` or `require("...")["baz"]`.
|
||||
*/
|
||||
function isVariableDeclarationInitializedToBareOrAccessedRequire(node) {
|
||||
return isVariableDeclarationInitializedWithRequireHelper(node, /*allowAccessedRequire*/ true);
|
||||
}
|
||||
ts.isVariableDeclarationInitializedToBareOrAccessedRequire = isVariableDeclarationInitializedToBareOrAccessedRequire;
|
||||
function isVariableDeclarationInitializedWithRequireHelper(node, allowAccessedRequire) {
|
||||
if (node.kind === 202 /* BindingElement */) {
|
||||
node = node.parent.parent;
|
||||
}
|
||||
return ts.isVariableDeclaration(node) && !!node.initializer && isRequireCall(getLeftmostAccessExpression(node.initializer), /*requireStringLiteralLikeArgument*/ true);
|
||||
return ts.isVariableDeclaration(node) &&
|
||||
!!node.initializer &&
|
||||
isRequireCall(allowAccessedRequire ? getLeftmostAccessExpression(node.initializer) : node.initializer, /*requireStringLiteralLikeArgument*/ true);
|
||||
}
|
||||
ts.isRequireVariableDeclaration = isRequireVariableDeclaration;
|
||||
function isRequireVariableStatement(node) {
|
||||
return ts.isVariableStatement(node)
|
||||
&& node.declarationList.declarations.length > 0
|
||||
&& ts.every(node.declarationList.declarations, function (decl) { return isRequireVariableDeclaration(decl); });
|
||||
&& ts.every(node.declarationList.declarations, function (decl) { return isVariableDeclarationInitializedToRequire(decl); });
|
||||
}
|
||||
ts.isRequireVariableStatement = isRequireVariableStatement;
|
||||
function isSingleOrDoubleQuote(charCode) {
|
||||
@@ -46258,7 +46270,7 @@ var ts;
|
||||
checkStrictModeEvalOrArguments(node, node.name);
|
||||
}
|
||||
if (!ts.isBindingPattern(node.name)) {
|
||||
if (ts.isInJSFile(node) && ts.isRequireVariableDeclaration(node) && !ts.getJSDocTypeTag(node)) {
|
||||
if (ts.isInJSFile(node) && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node) && !ts.getJSDocTypeTag(node)) {
|
||||
declareSymbolAndAddToSymbolTable(node, 2097152 /* Alias */, 2097152 /* AliasExcludes */);
|
||||
}
|
||||
else if (ts.isBlockOrCatchScoped(node)) {
|
||||
@@ -49037,7 +49049,7 @@ var ts;
|
||||
&& isAliasableOrJsExpression(node.parent.right)
|
||||
|| node.kind === 295 /* ShorthandPropertyAssignment */
|
||||
|| node.kind === 294 /* PropertyAssignment */ && isAliasableOrJsExpression(node.initializer)
|
||||
|| ts.isRequireVariableDeclaration(node);
|
||||
|| ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node);
|
||||
}
|
||||
function isAliasableOrJsExpression(e) {
|
||||
return ts.isAliasableExpression(e) || ts.isFunctionExpression(e) && isJSConstructor(e);
|
||||
@@ -50008,7 +50020,7 @@ var ts;
|
||||
if (!sigs || !sigs.length) {
|
||||
sigs = getSignaturesOfStructuredType(type, 1 /* Construct */);
|
||||
}
|
||||
if ((sigs && sigs.length) || getPropertyOfType(type, "default" /* Default */)) {
|
||||
if ((sigs && sigs.length) || getPropertyOfType(type, "default" /* Default */, /*skipObjectFunctionPropertyAugment*/ true)) {
|
||||
var moduleType = getTypeWithSyntheticDefaultImportType(type, symbol, moduleSymbol, reference);
|
||||
return cloneTypeAsModuleType(symbol, moduleType, referenceParent);
|
||||
}
|
||||
@@ -80440,7 +80452,7 @@ var ts;
|
||||
}
|
||||
// For a commonjs `const x = require`, validate the alias and exit
|
||||
var symbol = getSymbolOfNode(node);
|
||||
if (symbol.flags & 2097152 /* Alias */ && ts.isRequireVariableDeclaration(node)) {
|
||||
if (symbol.flags & 2097152 /* Alias */ && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node)) {
|
||||
checkAliasSymbol(node);
|
||||
return;
|
||||
}
|
||||
@@ -124537,7 +124549,7 @@ var ts;
|
||||
isWhiteSpaceOnlyJsxText(child);
|
||||
if (lookInPreviousChild) {
|
||||
// actual start of the node is past the position - previous token should be at the end of previous child
|
||||
var candidate_1 = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ i, sourceFile);
|
||||
var candidate_1 = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ i, sourceFile, n.kind);
|
||||
return candidate_1 && findRightmostToken(candidate_1, sourceFile);
|
||||
}
|
||||
else {
|
||||
@@ -124551,7 +124563,7 @@ var ts;
|
||||
// the only known case is when position is at the end of the file.
|
||||
// Try to find the rightmost token in the file without filtering.
|
||||
// Namely we are skipping the check: 'position < node.end'
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile);
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile, n.kind);
|
||||
return candidate && findRightmostToken(candidate, sourceFile);
|
||||
}
|
||||
}
|
||||
@@ -124567,17 +124579,19 @@ var ts;
|
||||
if (children.length === 0) {
|
||||
return n;
|
||||
}
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile);
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile, n.kind);
|
||||
return candidate && findRightmostToken(candidate, sourceFile);
|
||||
}
|
||||
/**
|
||||
* Finds the rightmost child to the left of `children[exclusiveStartPosition]` which is a non-all-whitespace token or has constituent tokens.
|
||||
*/
|
||||
function findRightmostChildNodeWithTokens(children, exclusiveStartPosition, sourceFile) {
|
||||
function findRightmostChildNodeWithTokens(children, exclusiveStartPosition, sourceFile, parentKind) {
|
||||
for (var i = exclusiveStartPosition - 1; i >= 0; i--) {
|
||||
var child = children[i];
|
||||
if (isWhiteSpaceOnlyJsxText(child)) {
|
||||
ts.Debug.assert(i > 0, "`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`");
|
||||
if (i === 0 && (parentKind === 11 /* JsxText */ || parentKind === 278 /* JsxSelfClosingElement */)) {
|
||||
ts.Debug.fail("`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`");
|
||||
}
|
||||
}
|
||||
else if (nodeHasTokens(children[i], sourceFile)) {
|
||||
return children[i];
|
||||
@@ -128994,7 +129008,7 @@ var ts;
|
||||
return (location === null || location === void 0 ? void 0 : location.kind) === 79 /* Identifier */ ? ts.createTextSpanFromNode(location) : undefined;
|
||||
}
|
||||
function completionInfoFromData(sourceFile, host, program, compilerOptions, log, completionData, preferences) {
|
||||
var symbols = completionData.symbols, contextToken = completionData.contextToken, completionKind = completionData.completionKind, isInSnippetScope = completionData.isInSnippetScope, isNewIdentifierLocation = completionData.isNewIdentifierLocation, location = completionData.location, propertyAccessToConvert = completionData.propertyAccessToConvert, keywordFilters = completionData.keywordFilters, literals = completionData.literals, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap, recommendedCompletion = completionData.recommendedCompletion, isJsxInitializer = completionData.isJsxInitializer, isTypeOnlyLocation = completionData.isTypeOnlyLocation, isJsxIdentifierExpected = completionData.isJsxIdentifierExpected, importCompletionNode = completionData.importCompletionNode, insideJsDocTagTypeExpression = completionData.insideJsDocTagTypeExpression, symbolToSortTextIdMap = completionData.symbolToSortTextIdMap, hasUnresolvedAutoImports = completionData.hasUnresolvedAutoImports;
|
||||
var symbols = completionData.symbols, contextToken = completionData.contextToken, completionKind = completionData.completionKind, isInSnippetScope = completionData.isInSnippetScope, isNewIdentifierLocation = completionData.isNewIdentifierLocation, location = completionData.location, propertyAccessToConvert = completionData.propertyAccessToConvert, keywordFilters = completionData.keywordFilters, literals = completionData.literals, symbolToOriginInfoMap = completionData.symbolToOriginInfoMap, recommendedCompletion = completionData.recommendedCompletion, isJsxInitializer = completionData.isJsxInitializer, isTypeOnlyLocation = completionData.isTypeOnlyLocation, isJsxIdentifierExpected = completionData.isJsxIdentifierExpected, isRightOfOpenTag = completionData.isRightOfOpenTag, importCompletionNode = completionData.importCompletionNode, insideJsDocTagTypeExpression = completionData.insideJsDocTagTypeExpression, symbolToSortTextIdMap = completionData.symbolToSortTextIdMap, hasUnresolvedAutoImports = completionData.hasUnresolvedAutoImports;
|
||||
// Verify if the file is JSX language variant
|
||||
if (ts.getLanguageVariant(sourceFile.scriptKind) === 1 /* JSX */) {
|
||||
var completionInfo = getJsxClosingTagCompletion(location, sourceFile);
|
||||
@@ -129005,7 +129019,7 @@ var ts;
|
||||
var entries = [];
|
||||
if (isUncheckedFile(sourceFile, compilerOptions)) {
|
||||
var uniqueNames = getCompletionEntriesFromSymbols(symbols, entries,
|
||||
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap);
|
||||
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap, isJsxIdentifierExpected, isRightOfOpenTag);
|
||||
getJSCompletionEntries(sourceFile, location.pos, uniqueNames, ts.getEmitScriptTarget(compilerOptions), entries); // TODO: GH#18217
|
||||
}
|
||||
else {
|
||||
@@ -129013,7 +129027,7 @@ var ts;
|
||||
return undefined;
|
||||
}
|
||||
getCompletionEntriesFromSymbols(symbols, entries,
|
||||
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap);
|
||||
/*replacementToken*/ undefined, contextToken, location, sourceFile, host, program, ts.getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap, isJsxIdentifierExpected, isRightOfOpenTag);
|
||||
}
|
||||
if (keywordFilters !== 0 /* None */) {
|
||||
var entryNames = new ts.Set(entries.map(function (e) { return e.name; }));
|
||||
@@ -129119,7 +129133,7 @@ var ts;
|
||||
function createCompletionEntryForLiteral(sourceFile, preferences, literal) {
|
||||
return { name: completionNameForLiteral(sourceFile, preferences, literal), kind: "string" /* string */, kindModifiers: "" /* none */, sortText: SortText.LocationPriority };
|
||||
}
|
||||
function createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importCompletionNode, useSemicolons, options, preferences, completionKind) {
|
||||
function createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importCompletionNode, useSemicolons, options, preferences, completionKind, isJsxIdentifierExpected, isRightOfOpenTag) {
|
||||
var _a, _b;
|
||||
var insertText;
|
||||
var replacementSpan = ts.getReplacementSpanForContextToken(replacementToken);
|
||||
@@ -129190,24 +129204,7 @@ var ts;
|
||||
source = CompletionSource.ClassMemberSnippet;
|
||||
}
|
||||
}
|
||||
// Before offering up a JSX attribute snippet, ensure that we aren't potentially completing
|
||||
// a tag name; this may appear as an attribute after the "<" when the tag has not yet been
|
||||
// closed, as in:
|
||||
//
|
||||
// return <>
|
||||
// foo <butto|
|
||||
// </>
|
||||
//
|
||||
// We can detect this case by checking if both:
|
||||
//
|
||||
// 1. The location is "<", so we are completing immediately after it.
|
||||
// 2. The "<" has the same position as its parent, so is not a binary expression.
|
||||
var kind = ts.SymbolDisplay.getSymbolKind(typeChecker, symbol, location);
|
||||
if (kind === "JSX attribute" /* jsxAttribute */
|
||||
&& (location.kind !== 29 /* LessThanToken */ || location.pos !== location.parent.pos)
|
||||
&& preferences.includeCompletionsWithSnippetText
|
||||
&& preferences.jsxAttributeCompletionStyle
|
||||
&& preferences.jsxAttributeCompletionStyle !== "none") {
|
||||
if (isJsxIdentifierExpected && !isRightOfOpenTag && preferences.includeCompletionsWithSnippetText && preferences.jsxAttributeCompletionStyle && preferences.jsxAttributeCompletionStyle !== "none") {
|
||||
var useBraces_1 = preferences.jsxAttributeCompletionStyle === "braces";
|
||||
var type = typeChecker.getTypeOfSymbolAtLocation(symbol, location);
|
||||
// If is boolean like or undefined, don't return a snippet we want just to return the completion.
|
||||
@@ -129245,7 +129242,7 @@ var ts;
|
||||
// entries (like JavaScript identifier entries).
|
||||
return {
|
||||
name: name,
|
||||
kind: kind,
|
||||
kind: ts.SymbolDisplay.getSymbolKind(typeChecker, symbol, location),
|
||||
kindModifiers: ts.SymbolDisplay.getSymbolModifiers(typeChecker, symbol),
|
||||
sortText: sortText,
|
||||
source: source,
|
||||
@@ -129520,7 +129517,7 @@ var ts;
|
||||
return CompletionSource.ThisProperty;
|
||||
}
|
||||
}
|
||||
function getCompletionEntriesFromSymbols(symbols, entries, replacementToken, contextToken, location, sourceFile, host, program, target, log, kind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, jsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap) {
|
||||
function getCompletionEntriesFromSymbols(symbols, entries, replacementToken, contextToken, location, sourceFile, host, program, target, log, kind, preferences, compilerOptions, isTypeOnlyLocation, propertyAccessToConvert, jsxIdentifierExpected, isJsxInitializer, importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextIdMap, isJsxIdentifierExpected, isRightOfOpenTag) {
|
||||
var _a;
|
||||
var start = ts.timestamp();
|
||||
var variableDeclaration = getVariableDeclaration(location);
|
||||
@@ -129541,7 +129538,7 @@ var ts;
|
||||
var name = info.name, needsConvertPropertyAccess = info.needsConvertPropertyAccess;
|
||||
var sortTextId = (_a = symbolToSortTextIdMap === null || symbolToSortTextIdMap === void 0 ? void 0 : symbolToSortTextIdMap[ts.getSymbolId(symbol)]) !== null && _a !== void 0 ? _a : 11 /* LocationPriority */;
|
||||
var sortText = (isDeprecated(symbol, typeChecker) ? 8 /* DeprecatedOffset */ + sortTextId : sortTextId).toString();
|
||||
var entry = createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importCompletionNode, useSemicolons, compilerOptions, preferences, kind);
|
||||
var entry = createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importCompletionNode, useSemicolons, compilerOptions, preferences, kind, isJsxIdentifierExpected, isRightOfOpenTag);
|
||||
if (!entry) {
|
||||
continue;
|
||||
}
|
||||
@@ -130135,6 +130132,7 @@ var ts;
|
||||
symbolToSortTextIdMap: symbolToSortTextIdMap,
|
||||
isTypeOnlyLocation: isTypeOnlyLocation,
|
||||
isJsxIdentifierExpected: isJsxIdentifierExpected,
|
||||
isRightOfOpenTag: isRightOfOpenTag,
|
||||
importCompletionNode: importCompletionNode,
|
||||
hasUnresolvedAutoImports: hasUnresolvedAutoImports,
|
||||
};
|
||||
@@ -133066,7 +133064,7 @@ var ts;
|
||||
ts.Debug.assert(parent.name === node);
|
||||
return true;
|
||||
case 202 /* BindingElement */:
|
||||
return ts.isInJSFile(node) && ts.isRequireVariableDeclaration(parent);
|
||||
return ts.isInJSFile(node) && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(parent);
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@@ -134466,7 +134464,7 @@ var ts;
|
||||
// Use the parent symbol if the location is commonjs require syntax on javascript files only.
|
||||
if (ts.isInJSFile(referenceLocation)
|
||||
&& referenceLocation.parent.kind === 202 /* BindingElement */
|
||||
&& ts.isRequireVariableDeclaration(referenceLocation.parent)) {
|
||||
&& ts.isVariableDeclarationInitializedToBareOrAccessedRequire(referenceLocation.parent)) {
|
||||
referenceSymbol = referenceLocation.parent.symbol;
|
||||
// The parent will not have a symbol if it's an ObjectBindingPattern (when destructuring is used). In
|
||||
// this case, just skip it, since the bound identifiers are not an alias of the import.
|
||||
@@ -136173,7 +136171,7 @@ var ts;
|
||||
return declaration.parent.kind === 268 /* NamedImports */;
|
||||
case 202 /* BindingElement */:
|
||||
case 253 /* VariableDeclaration */:
|
||||
return ts.isInJSFile(declaration) && ts.isRequireVariableDeclaration(declaration);
|
||||
return ts.isInJSFile(declaration) && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(declaration);
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@@ -137456,6 +137454,9 @@ var ts;
|
||||
// We use 1 NavNode to represent 'A.B.C', but there are multiple source nodes.
|
||||
// Only merge module nodes that have the same chain. Don't merge 'A.B.C' with 'A'!
|
||||
function areSameModule(a, b) {
|
||||
if (!a.body || !b.body) {
|
||||
return a.body === b.body;
|
||||
}
|
||||
return a.body.kind === b.body.kind && (a.body.kind !== 260 /* ModuleDeclaration */ || areSameModule(a.body, b.body));
|
||||
}
|
||||
/** Merge source into target. Source should be thrown away after this is called. */
|
||||
@@ -149205,7 +149206,7 @@ var ts;
|
||||
var importKind = getImportKind(importingFile, exportKind, compilerOptions);
|
||||
return ts.mapDefined(importingFile.imports, function (moduleSpecifier) {
|
||||
var i = ts.importFromModuleSpecifier(moduleSpecifier);
|
||||
if (ts.isRequireVariableDeclaration(i.parent)) {
|
||||
if (ts.isVariableDeclarationInitializedToRequire(i.parent)) {
|
||||
return checker.resolveExternalModuleName(moduleSpecifier) === moduleSymbol ? { declaration: i.parent, importKind: importKind, symbol: symbol, targetFlags: targetFlags } : undefined;
|
||||
}
|
||||
if (i.kind === 265 /* ImportDeclaration */ || i.kind === 264 /* ImportEqualsDeclaration */) {
|
||||
@@ -157265,11 +157266,12 @@ var ts;
|
||||
var result = [];
|
||||
return visitor(selection) ? undefined : result;
|
||||
function visitor(node) {
|
||||
var _a;
|
||||
if (ts.isTypeReferenceNode(node)) {
|
||||
if (ts.isIdentifier(node.typeName)) {
|
||||
var symbol = checker.resolveName(node.typeName.text, node.typeName, 262144 /* TypeParameter */, /* excludeGlobals */ true);
|
||||
if (symbol === null || symbol === void 0 ? void 0 : symbol.declarations) {
|
||||
var declaration = ts.cast(ts.first(symbol.declarations), ts.isTypeParameterDeclaration);
|
||||
var declaration = ts.tryCast((_a = symbol === null || symbol === void 0 ? void 0 : symbol.declarations) === null || _a === void 0 ? void 0 : _a[0], ts.isTypeParameterDeclaration);
|
||||
if (declaration) {
|
||||
if (rangeContainsSkipTrivia(statement, declaration, file) && !rangeContainsSkipTrivia(selection, declaration, file)) {
|
||||
ts.pushIfUnique(result, declaration);
|
||||
}
|
||||
|
||||
+22
-10
@@ -89,7 +89,7 @@ var ts;
|
||||
// The following is baselined as a literal template type without intervention
|
||||
/** The version of the TypeScript compiler release */
|
||||
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
||||
ts.version = "4.5.4";
|
||||
ts.version = "4.5.5";
|
||||
/* @internal */
|
||||
var Comparison;
|
||||
(function (Comparison) {
|
||||
@@ -15828,7 +15828,7 @@ var ts;
|
||||
}
|
||||
ts.getExternalModuleImportEqualsDeclarationExpression = getExternalModuleImportEqualsDeclarationExpression;
|
||||
function getExternalModuleRequireArgument(node) {
|
||||
return isRequireVariableDeclaration(node) && getLeftmostAccessExpression(node.initializer).arguments[0];
|
||||
return isVariableDeclarationInitializedToBareOrAccessedRequire(node) && getLeftmostAccessExpression(node.initializer).arguments[0];
|
||||
}
|
||||
ts.getExternalModuleRequireArgument = getExternalModuleRequireArgument;
|
||||
function isInternalModuleImportEqualsDeclaration(node) {
|
||||
@@ -15886,17 +15886,29 @@ var ts;
|
||||
* Returns true if the node is a VariableDeclaration initialized to a require call (see `isRequireCall`).
|
||||
* This function does not test if the node is in a JavaScript file or not.
|
||||
*/
|
||||
function isRequireVariableDeclaration(node) {
|
||||
function isVariableDeclarationInitializedToRequire(node) {
|
||||
return isVariableDeclarationInitializedWithRequireHelper(node, /*allowAccessedRequire*/ false);
|
||||
}
|
||||
ts.isVariableDeclarationInitializedToRequire = isVariableDeclarationInitializedToRequire;
|
||||
/**
|
||||
* Like {@link isVariableDeclarationInitializedToRequire} but allows things like `require("...").foo.bar` or `require("...")["baz"]`.
|
||||
*/
|
||||
function isVariableDeclarationInitializedToBareOrAccessedRequire(node) {
|
||||
return isVariableDeclarationInitializedWithRequireHelper(node, /*allowAccessedRequire*/ true);
|
||||
}
|
||||
ts.isVariableDeclarationInitializedToBareOrAccessedRequire = isVariableDeclarationInitializedToBareOrAccessedRequire;
|
||||
function isVariableDeclarationInitializedWithRequireHelper(node, allowAccessedRequire) {
|
||||
if (node.kind === 202 /* BindingElement */) {
|
||||
node = node.parent.parent;
|
||||
}
|
||||
return ts.isVariableDeclaration(node) && !!node.initializer && isRequireCall(getLeftmostAccessExpression(node.initializer), /*requireStringLiteralLikeArgument*/ true);
|
||||
return ts.isVariableDeclaration(node) &&
|
||||
!!node.initializer &&
|
||||
isRequireCall(allowAccessedRequire ? getLeftmostAccessExpression(node.initializer) : node.initializer, /*requireStringLiteralLikeArgument*/ true);
|
||||
}
|
||||
ts.isRequireVariableDeclaration = isRequireVariableDeclaration;
|
||||
function isRequireVariableStatement(node) {
|
||||
return ts.isVariableStatement(node)
|
||||
&& node.declarationList.declarations.length > 0
|
||||
&& ts.every(node.declarationList.declarations, function (decl) { return isRequireVariableDeclaration(decl); });
|
||||
&& ts.every(node.declarationList.declarations, function (decl) { return isVariableDeclarationInitializedToRequire(decl); });
|
||||
}
|
||||
ts.isRequireVariableStatement = isRequireVariableStatement;
|
||||
function isSingleOrDoubleQuote(charCode) {
|
||||
@@ -46053,7 +46065,7 @@ var ts;
|
||||
checkStrictModeEvalOrArguments(node, node.name);
|
||||
}
|
||||
if (!ts.isBindingPattern(node.name)) {
|
||||
if (ts.isInJSFile(node) && ts.isRequireVariableDeclaration(node) && !ts.getJSDocTypeTag(node)) {
|
||||
if (ts.isInJSFile(node) && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node) && !ts.getJSDocTypeTag(node)) {
|
||||
declareSymbolAndAddToSymbolTable(node, 2097152 /* Alias */, 2097152 /* AliasExcludes */);
|
||||
}
|
||||
else if (ts.isBlockOrCatchScoped(node)) {
|
||||
@@ -48832,7 +48844,7 @@ var ts;
|
||||
&& isAliasableOrJsExpression(node.parent.right)
|
||||
|| node.kind === 295 /* ShorthandPropertyAssignment */
|
||||
|| node.kind === 294 /* PropertyAssignment */ && isAliasableOrJsExpression(node.initializer)
|
||||
|| ts.isRequireVariableDeclaration(node);
|
||||
|| ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node);
|
||||
}
|
||||
function isAliasableOrJsExpression(e) {
|
||||
return ts.isAliasableExpression(e) || ts.isFunctionExpression(e) && isJSConstructor(e);
|
||||
@@ -49803,7 +49815,7 @@ var ts;
|
||||
if (!sigs || !sigs.length) {
|
||||
sigs = getSignaturesOfStructuredType(type, 1 /* Construct */);
|
||||
}
|
||||
if ((sigs && sigs.length) || getPropertyOfType(type, "default" /* Default */)) {
|
||||
if ((sigs && sigs.length) || getPropertyOfType(type, "default" /* Default */, /*skipObjectFunctionPropertyAugment*/ true)) {
|
||||
var moduleType = getTypeWithSyntheticDefaultImportType(type, symbol, moduleSymbol, reference);
|
||||
return cloneTypeAsModuleType(symbol, moduleType, referenceParent);
|
||||
}
|
||||
@@ -80235,7 +80247,7 @@ var ts;
|
||||
}
|
||||
// For a commonjs `const x = require`, validate the alias and exit
|
||||
var symbol = getSymbolOfNode(node);
|
||||
if (symbol.flags & 2097152 /* Alias */ && ts.isRequireVariableDeclaration(node)) {
|
||||
if (symbol.flags & 2097152 /* Alias */ && ts.isVariableDeclarationInitializedToBareOrAccessedRequire(node)) {
|
||||
checkAliasSymbol(node);
|
||||
return;
|
||||
}
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
"name": "typescript",
|
||||
"author": "Microsoft Corp.",
|
||||
"homepage": "https://www.typescriptlang.org/",
|
||||
"version": "4.5.4",
|
||||
"version": "4.5.5",
|
||||
"license": "Apache-2.0",
|
||||
"description": "TypeScript is a language for application scale JavaScript development",
|
||||
"keywords": [
|
||||
|
||||
@@ -5,7 +5,7 @@ namespace ts {
|
||||
// The following is baselined as a literal template type without intervention
|
||||
/** The version of the TypeScript compiler release */
|
||||
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
||||
export const version = "4.5.4" as string;
|
||||
export const version = "4.5.5" as string;
|
||||
|
||||
/**
|
||||
* Type of objects whose values are all of the same type.
|
||||
|
||||
Reference in New Issue
Block a user