Bump version to 4.0.2 and LKG

This commit is contained in:
TypeScript Bot
2020-08-15 01:16:37 +00:00
parent 5f5dac0280
commit c9c6cd29b6
8 changed files with 478 additions and 418 deletions

View File

@@ -67,7 +67,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
var ts;
(function (ts) {
ts.versionMajorMinor = "4.0";
ts.version = ts.versionMajorMinor + ".1-rc";
ts.version = "4.0.2";
var NativeCollections;
(function (NativeCollections) {
function tryGetNativeMap() {
@@ -29791,51 +29791,46 @@ var ts;
configFileSpecs: spec
};
function getFileNames() {
var filesSpecs;
if (ts.hasProperty(raw, "files") && !isNullOrUndefined(raw.files)) {
if (ts.isArray(raw.files)) {
filesSpecs = raw.files;
var hasReferences = ts.hasProperty(raw, "references") && !isNullOrUndefined(raw.references);
var hasZeroOrNoReferences = !hasReferences || raw.references.length === 0;
var hasExtends = ts.hasProperty(raw, "extends");
if (filesSpecs.length === 0 && hasZeroOrNoReferences && !hasExtends) {
if (sourceFile) {
var fileName = configFileName || "tsconfig.json";
var diagnosticMessage = ts.Diagnostics.The_files_list_in_config_file_0_is_empty;
var nodeValue = ts.firstDefined(ts.getTsConfigPropArray(sourceFile, "files"), function (property) { return property.initializer; });
var error = nodeValue
? ts.createDiagnosticForNodeInSourceFile(sourceFile, nodeValue, diagnosticMessage, fileName)
: ts.createCompilerDiagnostic(diagnosticMessage, fileName);
errors.push(error);
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || "tsconfig.json");
}
var referencesOfRaw = getPropFromRaw("references", function (element) { return typeof element === "object"; }, "object");
if (ts.isArray(referencesOfRaw)) {
for (var _i = 0, referencesOfRaw_1 = referencesOfRaw; _i < referencesOfRaw_1.length; _i++) {
var ref = referencesOfRaw_1[_i];
if (typeof ref.path !== "string") {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "reference.path", "string");
}
else {
(projectReferences || (projectReferences = [])).push({
path: ts.getNormalizedAbsolutePath(ref.path, basePath),
originalPath: ref.path,
prepend: ref.prepend,
circular: ref.circular
});
}
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "files", "Array");
}
var filesSpecs = toPropValue(getSpecsFromRaw("files"));
if (filesSpecs) {
var hasZeroOrNoReferences = referencesOfRaw === "no-prop" || ts.isArray(referencesOfRaw) && referencesOfRaw.length === 0;
var hasExtends = ts.hasProperty(raw, "extends");
if (filesSpecs.length === 0 && hasZeroOrNoReferences && !hasExtends) {
if (sourceFile) {
var fileName = configFileName || "tsconfig.json";
var diagnosticMessage = ts.Diagnostics.The_files_list_in_config_file_0_is_empty;
var nodeValue = ts.firstDefined(ts.getTsConfigPropArray(sourceFile, "files"), function (property) { return property.initializer; });
var error = nodeValue
? ts.createDiagnosticForNodeInSourceFile(sourceFile, nodeValue, diagnosticMessage, fileName)
: ts.createCompilerDiagnostic(diagnosticMessage, fileName);
errors.push(error);
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || "tsconfig.json");
}
}
}
var includeSpecs;
if (ts.hasProperty(raw, "include") && !isNullOrUndefined(raw.include)) {
if (ts.isArray(raw.include)) {
includeSpecs = raw.include;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "include", "Array");
}
}
var excludeSpecs;
if (ts.hasProperty(raw, "exclude") && !isNullOrUndefined(raw.exclude)) {
if (ts.isArray(raw.exclude)) {
excludeSpecs = raw.exclude;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "exclude", "Array");
}
}
else if (raw.compilerOptions) {
var includeSpecs = toPropValue(getSpecsFromRaw("include"));
var excludeOfRaw = getSpecsFromRaw("exclude");
var excludeSpecs = toPropValue(excludeOfRaw);
if (excludeOfRaw === "no-prop" && raw.compilerOptions) {
var outDir = raw.compilerOptions.outDir;
var declarationDir = raw.compilerOptions.declarationDir;
if (outDir || declarationDir) {
@@ -29849,28 +29844,29 @@ var ts;
if (shouldReportNoInputFiles(result, canJsonReportNoInputFiles(raw), resolutionStack)) {
errors.push(getErrorForNoInputFiles(result.spec, configFileName));
}
if (ts.hasProperty(raw, "references") && !isNullOrUndefined(raw.references)) {
if (ts.isArray(raw.references)) {
for (var _i = 0, _a = raw.references; _i < _a.length; _i++) {
var ref = _a[_i];
if (typeof ref.path !== "string") {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "reference.path", "string");
}
else {
(projectReferences || (projectReferences = [])).push({
path: ts.getNormalizedAbsolutePath(ref.path, basePath),
originalPath: ref.path,
prepend: ref.prepend,
circular: ref.circular
});
}
return result;
}
function toPropValue(specResult) {
return ts.isArray(specResult) ? specResult : undefined;
}
function getSpecsFromRaw(prop) {
return getPropFromRaw(prop, ts.isString, "string");
}
function getPropFromRaw(prop, validateElement, elementTypeName) {
if (ts.hasProperty(raw, prop) && !isNullOrUndefined(raw[prop])) {
if (ts.isArray(raw[prop])) {
var result = raw[prop];
if (!sourceFile && !ts.every(result, validateElement)) {
errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, elementTypeName));
}
return result;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "references", "Array");
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, "Array");
return "not-array";
}
}
return result;
return "no-prop";
}
function createCompilerDiagnosticOnlyIfJson(message, arg0, arg1) {
if (!sourceFile) {
@@ -30216,7 +30212,15 @@ var ts;
validatedExcludeSpecs = validateSpecs(excludeSpecs, errors, true, jsonSourceFile, "exclude");
}
var wildcardDirectories = getWildcardDirectories(validatedIncludeSpecs, validatedExcludeSpecs, basePath, host.useCaseSensitiveFileNames);
var spec = { filesSpecs: filesSpecs, includeSpecs: includeSpecs, excludeSpecs: excludeSpecs, validatedIncludeSpecs: validatedIncludeSpecs, validatedExcludeSpecs: validatedExcludeSpecs, wildcardDirectories: wildcardDirectories };
var spec = {
filesSpecs: filesSpecs,
includeSpecs: includeSpecs,
excludeSpecs: excludeSpecs,
validatedFilesSpec: ts.filter(filesSpecs, ts.isString),
validatedIncludeSpecs: validatedIncludeSpecs,
validatedExcludeSpecs: validatedExcludeSpecs,
wildcardDirectories: wildcardDirectories
};
return getFileNamesFromConfigSpecs(spec, basePath, options, host, extraFileExtensions);
}
function getFileNamesFromConfigSpecs(spec, basePath, options, host, extraFileExtensions) {
@@ -30226,12 +30230,12 @@ var ts;
var literalFileMap = new ts.Map();
var wildcardFileMap = new ts.Map();
var wildCardJsonFileMap = new ts.Map();
var filesSpecs = spec.filesSpecs, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs, wildcardDirectories = spec.wildcardDirectories;
var validatedFilesSpec = spec.validatedFilesSpec, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs, wildcardDirectories = spec.wildcardDirectories;
var supportedExtensions = ts.getSupportedExtensions(options, extraFileExtensions);
var supportedExtensionsWithJsonIfResolveJsonModule = ts.getSuppoertedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions);
if (filesSpecs) {
for (var _i = 0, filesSpecs_1 = filesSpecs; _i < filesSpecs_1.length; _i++) {
var fileName = filesSpecs_1[_i];
if (validatedFilesSpec) {
for (var _i = 0, validatedFilesSpec_1 = validatedFilesSpec; _i < validatedFilesSpec_1.length; _i++) {
var fileName = validatedFilesSpec_1[_i];
var file = ts.getNormalizedAbsolutePath(fileName, basePath);
literalFileMap.set(keyMapper(file), file);
}
@@ -30278,14 +30282,14 @@ var ts;
}
ts.getFileNamesFromConfigSpecs = getFileNamesFromConfigSpecs;
function isExcludedFile(pathToCheck, spec, basePath, useCaseSensitiveFileNames, currentDirectory) {
var filesSpecs = spec.filesSpecs, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs;
var validatedFilesSpec = spec.validatedFilesSpec, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs;
if (!ts.length(validatedIncludeSpecs) || !ts.length(validatedExcludeSpecs))
return false;
basePath = ts.normalizePath(basePath);
var keyMapper = ts.createGetCanonicalFileName(useCaseSensitiveFileNames);
if (filesSpecs) {
for (var _i = 0, filesSpecs_2 = filesSpecs; _i < filesSpecs_2.length; _i++) {
var fileName = filesSpecs_2[_i];
if (validatedFilesSpec) {
for (var _i = 0, validatedFilesSpec_2 = validatedFilesSpec; _i < validatedFilesSpec_2.length; _i++) {
var fileName = validatedFilesSpec_2[_i];
if (keyMapper(ts.getNormalizedAbsolutePath(fileName, basePath)) === pathToCheck)
return false;
}
@@ -30301,6 +30305,8 @@ var ts;
ts.isExcludedFile = isExcludedFile;
function validateSpecs(specs, errors, allowTrailingRecursion, jsonSourceFile, specKey) {
return specs.filter(function (spec) {
if (!ts.isString(spec))
return false;
var diag = specToDiagnostic(spec, allowTrailingRecursion);
if (diag !== undefined) {
errors.push(createDiagnostic(diag, spec));

View File

@@ -94,7 +94,7 @@ var ts;
// If changing the text in this section, be sure to test `configurePrerelease` too.
ts.versionMajorMinor = "4.0";
/** The version of the TypeScript compiler release */
ts.version = ts.versionMajorMinor + ".1-rc";
ts.version = "4.0.2";
/* @internal */
var Comparison;
(function (Comparison) {
@@ -36687,51 +36687,46 @@ var ts;
configFileSpecs: spec
};
function getFileNames() {
var filesSpecs;
if (ts.hasProperty(raw, "files") && !isNullOrUndefined(raw.files)) {
if (ts.isArray(raw.files)) {
filesSpecs = raw.files;
var hasReferences = ts.hasProperty(raw, "references") && !isNullOrUndefined(raw.references);
var hasZeroOrNoReferences = !hasReferences || raw.references.length === 0;
var hasExtends = ts.hasProperty(raw, "extends");
if (filesSpecs.length === 0 && hasZeroOrNoReferences && !hasExtends) {
if (sourceFile) {
var fileName = configFileName || "tsconfig.json";
var diagnosticMessage = ts.Diagnostics.The_files_list_in_config_file_0_is_empty;
var nodeValue = ts.firstDefined(ts.getTsConfigPropArray(sourceFile, "files"), function (property) { return property.initializer; });
var error = nodeValue
? ts.createDiagnosticForNodeInSourceFile(sourceFile, nodeValue, diagnosticMessage, fileName)
: ts.createCompilerDiagnostic(diagnosticMessage, fileName);
errors.push(error);
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || "tsconfig.json");
}
var referencesOfRaw = getPropFromRaw("references", function (element) { return typeof element === "object"; }, "object");
if (ts.isArray(referencesOfRaw)) {
for (var _i = 0, referencesOfRaw_1 = referencesOfRaw; _i < referencesOfRaw_1.length; _i++) {
var ref = referencesOfRaw_1[_i];
if (typeof ref.path !== "string") {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "reference.path", "string");
}
else {
(projectReferences || (projectReferences = [])).push({
path: ts.getNormalizedAbsolutePath(ref.path, basePath),
originalPath: ref.path,
prepend: ref.prepend,
circular: ref.circular
});
}
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "files", "Array");
}
var filesSpecs = toPropValue(getSpecsFromRaw("files"));
if (filesSpecs) {
var hasZeroOrNoReferences = referencesOfRaw === "no-prop" || ts.isArray(referencesOfRaw) && referencesOfRaw.length === 0;
var hasExtends = ts.hasProperty(raw, "extends");
if (filesSpecs.length === 0 && hasZeroOrNoReferences && !hasExtends) {
if (sourceFile) {
var fileName = configFileName || "tsconfig.json";
var diagnosticMessage = ts.Diagnostics.The_files_list_in_config_file_0_is_empty;
var nodeValue = ts.firstDefined(ts.getTsConfigPropArray(sourceFile, "files"), function (property) { return property.initializer; });
var error = nodeValue
? ts.createDiagnosticForNodeInSourceFile(sourceFile, nodeValue, diagnosticMessage, fileName)
: ts.createCompilerDiagnostic(diagnosticMessage, fileName);
errors.push(error);
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || "tsconfig.json");
}
}
}
var includeSpecs;
if (ts.hasProperty(raw, "include") && !isNullOrUndefined(raw.include)) {
if (ts.isArray(raw.include)) {
includeSpecs = raw.include;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "include", "Array");
}
}
var excludeSpecs;
if (ts.hasProperty(raw, "exclude") && !isNullOrUndefined(raw.exclude)) {
if (ts.isArray(raw.exclude)) {
excludeSpecs = raw.exclude;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "exclude", "Array");
}
}
else if (raw.compilerOptions) {
var includeSpecs = toPropValue(getSpecsFromRaw("include"));
var excludeOfRaw = getSpecsFromRaw("exclude");
var excludeSpecs = toPropValue(excludeOfRaw);
if (excludeOfRaw === "no-prop" && raw.compilerOptions) {
var outDir = raw.compilerOptions.outDir;
var declarationDir = raw.compilerOptions.declarationDir;
if (outDir || declarationDir) {
@@ -36745,28 +36740,29 @@ var ts;
if (shouldReportNoInputFiles(result, canJsonReportNoInputFiles(raw), resolutionStack)) {
errors.push(getErrorForNoInputFiles(result.spec, configFileName));
}
if (ts.hasProperty(raw, "references") && !isNullOrUndefined(raw.references)) {
if (ts.isArray(raw.references)) {
for (var _i = 0, _a = raw.references; _i < _a.length; _i++) {
var ref = _a[_i];
if (typeof ref.path !== "string") {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "reference.path", "string");
}
else {
(projectReferences || (projectReferences = [])).push({
path: ts.getNormalizedAbsolutePath(ref.path, basePath),
originalPath: ref.path,
prepend: ref.prepend,
circular: ref.circular
});
}
return result;
}
function toPropValue(specResult) {
return ts.isArray(specResult) ? specResult : undefined;
}
function getSpecsFromRaw(prop) {
return getPropFromRaw(prop, ts.isString, "string");
}
function getPropFromRaw(prop, validateElement, elementTypeName) {
if (ts.hasProperty(raw, prop) && !isNullOrUndefined(raw[prop])) {
if (ts.isArray(raw[prop])) {
var result = raw[prop];
if (!sourceFile && !ts.every(result, validateElement)) {
errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, elementTypeName));
}
return result;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "references", "Array");
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, "Array");
return "not-array";
}
}
return result;
return "no-prop";
}
function createCompilerDiagnosticOnlyIfJson(message, arg0, arg1) {
if (!sourceFile) {
@@ -37191,7 +37187,15 @@ var ts;
// or a recursive directory. This information is used by filesystem watchers to monitor for
// new entries in these paths.
var wildcardDirectories = getWildcardDirectories(validatedIncludeSpecs, validatedExcludeSpecs, basePath, host.useCaseSensitiveFileNames);
var spec = { filesSpecs: filesSpecs, includeSpecs: includeSpecs, excludeSpecs: excludeSpecs, validatedIncludeSpecs: validatedIncludeSpecs, validatedExcludeSpecs: validatedExcludeSpecs, wildcardDirectories: wildcardDirectories };
var spec = {
filesSpecs: filesSpecs,
includeSpecs: includeSpecs,
excludeSpecs: excludeSpecs,
validatedFilesSpec: ts.filter(filesSpecs, ts.isString),
validatedIncludeSpecs: validatedIncludeSpecs,
validatedExcludeSpecs: validatedExcludeSpecs,
wildcardDirectories: wildcardDirectories
};
return getFileNamesFromConfigSpecs(spec, basePath, options, host, extraFileExtensions);
}
/**
@@ -37220,16 +37224,16 @@ var ts;
// file map with a possibly case insensitive key. We use this map to store paths matched
// via wildcard of *.json kind
var wildCardJsonFileMap = new ts.Map();
var filesSpecs = spec.filesSpecs, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs, wildcardDirectories = spec.wildcardDirectories;
var validatedFilesSpec = spec.validatedFilesSpec, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs, wildcardDirectories = spec.wildcardDirectories;
// Rather than requery this for each file and filespec, we query the supported extensions
// once and store it on the expansion context.
var supportedExtensions = ts.getSupportedExtensions(options, extraFileExtensions);
var supportedExtensionsWithJsonIfResolveJsonModule = ts.getSuppoertedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions);
// Literal files are always included verbatim. An "include" or "exclude" specification cannot
// remove a literal file.
if (filesSpecs) {
for (var _i = 0, filesSpecs_1 = filesSpecs; _i < filesSpecs_1.length; _i++) {
var fileName = filesSpecs_1[_i];
if (validatedFilesSpec) {
for (var _i = 0, validatedFilesSpec_1 = validatedFilesSpec; _i < validatedFilesSpec_1.length; _i++) {
var fileName = validatedFilesSpec_1[_i];
var file = ts.getNormalizedAbsolutePath(fileName, basePath);
literalFileMap.set(keyMapper(file), file);
}
@@ -37288,14 +37292,14 @@ var ts;
ts.getFileNamesFromConfigSpecs = getFileNamesFromConfigSpecs;
/* @internal */
function isExcludedFile(pathToCheck, spec, basePath, useCaseSensitiveFileNames, currentDirectory) {
var filesSpecs = spec.filesSpecs, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs;
var validatedFilesSpec = spec.validatedFilesSpec, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs;
if (!ts.length(validatedIncludeSpecs) || !ts.length(validatedExcludeSpecs))
return false;
basePath = ts.normalizePath(basePath);
var keyMapper = ts.createGetCanonicalFileName(useCaseSensitiveFileNames);
if (filesSpecs) {
for (var _i = 0, filesSpecs_2 = filesSpecs; _i < filesSpecs_2.length; _i++) {
var fileName = filesSpecs_2[_i];
if (validatedFilesSpec) {
for (var _i = 0, validatedFilesSpec_2 = validatedFilesSpec; _i < validatedFilesSpec_2.length; _i++) {
var fileName = validatedFilesSpec_2[_i];
if (keyMapper(ts.getNormalizedAbsolutePath(fileName, basePath)) === pathToCheck)
return false;
}
@@ -37311,6 +37315,8 @@ var ts;
ts.isExcludedFile = isExcludedFile;
function validateSpecs(specs, errors, allowTrailingRecursion, jsonSourceFile, specKey) {
return specs.filter(function (spec) {
if (!ts.isString(spec))
return false;
var diag = specToDiagnostic(spec, allowTrailingRecursion);
if (diag !== undefined) {
errors.push(createDiagnostic(diag, spec));
@@ -143502,7 +143508,7 @@ var ts;
kind: "" /* unknown */,
kindModifiers: "" /* none */,
textSpan: ts.createTextSpanFromNode(nodeForQuickInfo, sourceFile),
displayParts: typeChecker.runWithCancellationToken(cancellationToken, function (typeChecker) { return ts.typeToDisplayParts(typeChecker, type_2, ts.getContainerNode(nodeForQuickInfo)); }),
displayParts: prefixWithApproximation(typeChecker.runWithCancellationToken(cancellationToken, function (typeChecker) { return ts.typeToDisplayParts(typeChecker, type_2, ts.getContainerNode(nodeForQuickInfo)); })),
documentation: type_2.symbol ? type_2.symbol.getDocumentationComment(typeChecker) : undefined,
tags: type_2.symbol ? type_2.symbol.getJsDocTags() : undefined
};
@@ -143514,7 +143520,7 @@ var ts;
kind: symbolKind,
kindModifiers: ts.SymbolDisplay.getSymbolModifiers(symbol),
textSpan: ts.createTextSpanFromNode(nodeForQuickInfo, sourceFile),
displayParts: displayParts,
displayParts: prefixWithApproximation(displayParts),
documentation: documentation,
tags: tags,
};
@@ -143541,6 +143547,12 @@ var ts;
return false;
}
}
function prefixWithApproximation(displayParts) {
if (languageServiceMode === ts.LanguageServiceMode.Semantic) {
return displayParts;
}
return __spreadArrays([ts.textPart("(approximation)"), ts.spacePart()], displayParts);
}
/// Goto definition
function getDefinitionAtPosition(fileName, position) {
synchronizeHostData();

View File

@@ -288,7 +288,7 @@ var ts;
// If changing the text in this section, be sure to test `configurePrerelease` too.
ts.versionMajorMinor = "4.0";
/** The version of the TypeScript compiler release */
ts.version = ts.versionMajorMinor + ".1-rc";
ts.version = "4.0.2";
/* @internal */
var Comparison;
(function (Comparison) {
@@ -36881,51 +36881,46 @@ var ts;
configFileSpecs: spec
};
function getFileNames() {
var filesSpecs;
if (ts.hasProperty(raw, "files") && !isNullOrUndefined(raw.files)) {
if (ts.isArray(raw.files)) {
filesSpecs = raw.files;
var hasReferences = ts.hasProperty(raw, "references") && !isNullOrUndefined(raw.references);
var hasZeroOrNoReferences = !hasReferences || raw.references.length === 0;
var hasExtends = ts.hasProperty(raw, "extends");
if (filesSpecs.length === 0 && hasZeroOrNoReferences && !hasExtends) {
if (sourceFile) {
var fileName = configFileName || "tsconfig.json";
var diagnosticMessage = ts.Diagnostics.The_files_list_in_config_file_0_is_empty;
var nodeValue = ts.firstDefined(ts.getTsConfigPropArray(sourceFile, "files"), function (property) { return property.initializer; });
var error = nodeValue
? ts.createDiagnosticForNodeInSourceFile(sourceFile, nodeValue, diagnosticMessage, fileName)
: ts.createCompilerDiagnostic(diagnosticMessage, fileName);
errors.push(error);
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || "tsconfig.json");
}
var referencesOfRaw = getPropFromRaw("references", function (element) { return typeof element === "object"; }, "object");
if (ts.isArray(referencesOfRaw)) {
for (var _i = 0, referencesOfRaw_1 = referencesOfRaw; _i < referencesOfRaw_1.length; _i++) {
var ref = referencesOfRaw_1[_i];
if (typeof ref.path !== "string") {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "reference.path", "string");
}
else {
(projectReferences || (projectReferences = [])).push({
path: ts.getNormalizedAbsolutePath(ref.path, basePath),
originalPath: ref.path,
prepend: ref.prepend,
circular: ref.circular
});
}
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "files", "Array");
}
var filesSpecs = toPropValue(getSpecsFromRaw("files"));
if (filesSpecs) {
var hasZeroOrNoReferences = referencesOfRaw === "no-prop" || ts.isArray(referencesOfRaw) && referencesOfRaw.length === 0;
var hasExtends = ts.hasProperty(raw, "extends");
if (filesSpecs.length === 0 && hasZeroOrNoReferences && !hasExtends) {
if (sourceFile) {
var fileName = configFileName || "tsconfig.json";
var diagnosticMessage = ts.Diagnostics.The_files_list_in_config_file_0_is_empty;
var nodeValue = ts.firstDefined(ts.getTsConfigPropArray(sourceFile, "files"), function (property) { return property.initializer; });
var error = nodeValue
? ts.createDiagnosticForNodeInSourceFile(sourceFile, nodeValue, diagnosticMessage, fileName)
: ts.createCompilerDiagnostic(diagnosticMessage, fileName);
errors.push(error);
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || "tsconfig.json");
}
}
}
var includeSpecs;
if (ts.hasProperty(raw, "include") && !isNullOrUndefined(raw.include)) {
if (ts.isArray(raw.include)) {
includeSpecs = raw.include;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "include", "Array");
}
}
var excludeSpecs;
if (ts.hasProperty(raw, "exclude") && !isNullOrUndefined(raw.exclude)) {
if (ts.isArray(raw.exclude)) {
excludeSpecs = raw.exclude;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "exclude", "Array");
}
}
else if (raw.compilerOptions) {
var includeSpecs = toPropValue(getSpecsFromRaw("include"));
var excludeOfRaw = getSpecsFromRaw("exclude");
var excludeSpecs = toPropValue(excludeOfRaw);
if (excludeOfRaw === "no-prop" && raw.compilerOptions) {
var outDir = raw.compilerOptions.outDir;
var declarationDir = raw.compilerOptions.declarationDir;
if (outDir || declarationDir) {
@@ -36939,28 +36934,29 @@ var ts;
if (shouldReportNoInputFiles(result, canJsonReportNoInputFiles(raw), resolutionStack)) {
errors.push(getErrorForNoInputFiles(result.spec, configFileName));
}
if (ts.hasProperty(raw, "references") && !isNullOrUndefined(raw.references)) {
if (ts.isArray(raw.references)) {
for (var _i = 0, _a = raw.references; _i < _a.length; _i++) {
var ref = _a[_i];
if (typeof ref.path !== "string") {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "reference.path", "string");
}
else {
(projectReferences || (projectReferences = [])).push({
path: ts.getNormalizedAbsolutePath(ref.path, basePath),
originalPath: ref.path,
prepend: ref.prepend,
circular: ref.circular
});
}
return result;
}
function toPropValue(specResult) {
return ts.isArray(specResult) ? specResult : undefined;
}
function getSpecsFromRaw(prop) {
return getPropFromRaw(prop, ts.isString, "string");
}
function getPropFromRaw(prop, validateElement, elementTypeName) {
if (ts.hasProperty(raw, prop) && !isNullOrUndefined(raw[prop])) {
if (ts.isArray(raw[prop])) {
var result = raw[prop];
if (!sourceFile && !ts.every(result, validateElement)) {
errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, elementTypeName));
}
return result;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "references", "Array");
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, "Array");
return "not-array";
}
}
return result;
return "no-prop";
}
function createCompilerDiagnosticOnlyIfJson(message, arg0, arg1) {
if (!sourceFile) {
@@ -37385,7 +37381,15 @@ var ts;
// or a recursive directory. This information is used by filesystem watchers to monitor for
// new entries in these paths.
var wildcardDirectories = getWildcardDirectories(validatedIncludeSpecs, validatedExcludeSpecs, basePath, host.useCaseSensitiveFileNames);
var spec = { filesSpecs: filesSpecs, includeSpecs: includeSpecs, excludeSpecs: excludeSpecs, validatedIncludeSpecs: validatedIncludeSpecs, validatedExcludeSpecs: validatedExcludeSpecs, wildcardDirectories: wildcardDirectories };
var spec = {
filesSpecs: filesSpecs,
includeSpecs: includeSpecs,
excludeSpecs: excludeSpecs,
validatedFilesSpec: ts.filter(filesSpecs, ts.isString),
validatedIncludeSpecs: validatedIncludeSpecs,
validatedExcludeSpecs: validatedExcludeSpecs,
wildcardDirectories: wildcardDirectories
};
return getFileNamesFromConfigSpecs(spec, basePath, options, host, extraFileExtensions);
}
/**
@@ -37414,16 +37418,16 @@ var ts;
// file map with a possibly case insensitive key. We use this map to store paths matched
// via wildcard of *.json kind
var wildCardJsonFileMap = new ts.Map();
var filesSpecs = spec.filesSpecs, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs, wildcardDirectories = spec.wildcardDirectories;
var validatedFilesSpec = spec.validatedFilesSpec, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs, wildcardDirectories = spec.wildcardDirectories;
// Rather than requery this for each file and filespec, we query the supported extensions
// once and store it on the expansion context.
var supportedExtensions = ts.getSupportedExtensions(options, extraFileExtensions);
var supportedExtensionsWithJsonIfResolveJsonModule = ts.getSuppoertedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions);
// Literal files are always included verbatim. An "include" or "exclude" specification cannot
// remove a literal file.
if (filesSpecs) {
for (var _i = 0, filesSpecs_1 = filesSpecs; _i < filesSpecs_1.length; _i++) {
var fileName = filesSpecs_1[_i];
if (validatedFilesSpec) {
for (var _i = 0, validatedFilesSpec_1 = validatedFilesSpec; _i < validatedFilesSpec_1.length; _i++) {
var fileName = validatedFilesSpec_1[_i];
var file = ts.getNormalizedAbsolutePath(fileName, basePath);
literalFileMap.set(keyMapper(file), file);
}
@@ -37482,14 +37486,14 @@ var ts;
ts.getFileNamesFromConfigSpecs = getFileNamesFromConfigSpecs;
/* @internal */
function isExcludedFile(pathToCheck, spec, basePath, useCaseSensitiveFileNames, currentDirectory) {
var filesSpecs = spec.filesSpecs, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs;
var validatedFilesSpec = spec.validatedFilesSpec, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs;
if (!ts.length(validatedIncludeSpecs) || !ts.length(validatedExcludeSpecs))
return false;
basePath = ts.normalizePath(basePath);
var keyMapper = ts.createGetCanonicalFileName(useCaseSensitiveFileNames);
if (filesSpecs) {
for (var _i = 0, filesSpecs_2 = filesSpecs; _i < filesSpecs_2.length; _i++) {
var fileName = filesSpecs_2[_i];
if (validatedFilesSpec) {
for (var _i = 0, validatedFilesSpec_2 = validatedFilesSpec; _i < validatedFilesSpec_2.length; _i++) {
var fileName = validatedFilesSpec_2[_i];
if (keyMapper(ts.getNormalizedAbsolutePath(fileName, basePath)) === pathToCheck)
return false;
}
@@ -37505,6 +37509,8 @@ var ts;
ts.isExcludedFile = isExcludedFile;
function validateSpecs(specs, errors, allowTrailingRecursion, jsonSourceFile, specKey) {
return specs.filter(function (spec) {
if (!ts.isString(spec))
return false;
var diag = specToDiagnostic(spec, allowTrailingRecursion);
if (diag !== undefined) {
errors.push(createDiagnostic(diag, spec));
@@ -144069,7 +144075,7 @@ var ts;
kind: "" /* unknown */,
kindModifiers: "" /* none */,
textSpan: ts.createTextSpanFromNode(nodeForQuickInfo, sourceFile),
displayParts: typeChecker.runWithCancellationToken(cancellationToken, function (typeChecker) { return ts.typeToDisplayParts(typeChecker, type_2, ts.getContainerNode(nodeForQuickInfo)); }),
displayParts: prefixWithApproximation(typeChecker.runWithCancellationToken(cancellationToken, function (typeChecker) { return ts.typeToDisplayParts(typeChecker, type_2, ts.getContainerNode(nodeForQuickInfo)); })),
documentation: type_2.symbol ? type_2.symbol.getDocumentationComment(typeChecker) : undefined,
tags: type_2.symbol ? type_2.symbol.getJsDocTags() : undefined
};
@@ -144081,7 +144087,7 @@ var ts;
kind: symbolKind,
kindModifiers: ts.SymbolDisplay.getSymbolModifiers(symbol),
textSpan: ts.createTextSpanFromNode(nodeForQuickInfo, sourceFile),
displayParts: displayParts,
displayParts: prefixWithApproximation(displayParts),
documentation: documentation,
tags: tags,
};
@@ -144108,6 +144114,12 @@ var ts;
return false;
}
}
function prefixWithApproximation(displayParts) {
if (languageServiceMode === ts.LanguageServiceMode.Semantic) {
return displayParts;
}
return __spreadArrays([ts.textPart("(approximation)"), ts.spacePart()], displayParts);
}
/// Goto definition
function getDefinitionAtPosition(fileName, position) {
synchronizeHostData();

View File

@@ -288,7 +288,7 @@ var ts;
// If changing the text in this section, be sure to test `configurePrerelease` too.
ts.versionMajorMinor = "4.0";
/** The version of the TypeScript compiler release */
ts.version = ts.versionMajorMinor + ".1-rc";
ts.version = "4.0.2";
/* @internal */
var Comparison;
(function (Comparison) {
@@ -36881,51 +36881,46 @@ var ts;
configFileSpecs: spec
};
function getFileNames() {
var filesSpecs;
if (ts.hasProperty(raw, "files") && !isNullOrUndefined(raw.files)) {
if (ts.isArray(raw.files)) {
filesSpecs = raw.files;
var hasReferences = ts.hasProperty(raw, "references") && !isNullOrUndefined(raw.references);
var hasZeroOrNoReferences = !hasReferences || raw.references.length === 0;
var hasExtends = ts.hasProperty(raw, "extends");
if (filesSpecs.length === 0 && hasZeroOrNoReferences && !hasExtends) {
if (sourceFile) {
var fileName = configFileName || "tsconfig.json";
var diagnosticMessage = ts.Diagnostics.The_files_list_in_config_file_0_is_empty;
var nodeValue = ts.firstDefined(ts.getTsConfigPropArray(sourceFile, "files"), function (property) { return property.initializer; });
var error = nodeValue
? ts.createDiagnosticForNodeInSourceFile(sourceFile, nodeValue, diagnosticMessage, fileName)
: ts.createCompilerDiagnostic(diagnosticMessage, fileName);
errors.push(error);
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || "tsconfig.json");
}
var referencesOfRaw = getPropFromRaw("references", function (element) { return typeof element === "object"; }, "object");
if (ts.isArray(referencesOfRaw)) {
for (var _i = 0, referencesOfRaw_1 = referencesOfRaw; _i < referencesOfRaw_1.length; _i++) {
var ref = referencesOfRaw_1[_i];
if (typeof ref.path !== "string") {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "reference.path", "string");
}
else {
(projectReferences || (projectReferences = [])).push({
path: ts.getNormalizedAbsolutePath(ref.path, basePath),
originalPath: ref.path,
prepend: ref.prepend,
circular: ref.circular
});
}
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "files", "Array");
}
var filesSpecs = toPropValue(getSpecsFromRaw("files"));
if (filesSpecs) {
var hasZeroOrNoReferences = referencesOfRaw === "no-prop" || ts.isArray(referencesOfRaw) && referencesOfRaw.length === 0;
var hasExtends = ts.hasProperty(raw, "extends");
if (filesSpecs.length === 0 && hasZeroOrNoReferences && !hasExtends) {
if (sourceFile) {
var fileName = configFileName || "tsconfig.json";
var diagnosticMessage = ts.Diagnostics.The_files_list_in_config_file_0_is_empty;
var nodeValue = ts.firstDefined(ts.getTsConfigPropArray(sourceFile, "files"), function (property) { return property.initializer; });
var error = nodeValue
? ts.createDiagnosticForNodeInSourceFile(sourceFile, nodeValue, diagnosticMessage, fileName)
: ts.createCompilerDiagnostic(diagnosticMessage, fileName);
errors.push(error);
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || "tsconfig.json");
}
}
}
var includeSpecs;
if (ts.hasProperty(raw, "include") && !isNullOrUndefined(raw.include)) {
if (ts.isArray(raw.include)) {
includeSpecs = raw.include;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "include", "Array");
}
}
var excludeSpecs;
if (ts.hasProperty(raw, "exclude") && !isNullOrUndefined(raw.exclude)) {
if (ts.isArray(raw.exclude)) {
excludeSpecs = raw.exclude;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "exclude", "Array");
}
}
else if (raw.compilerOptions) {
var includeSpecs = toPropValue(getSpecsFromRaw("include"));
var excludeOfRaw = getSpecsFromRaw("exclude");
var excludeSpecs = toPropValue(excludeOfRaw);
if (excludeOfRaw === "no-prop" && raw.compilerOptions) {
var outDir = raw.compilerOptions.outDir;
var declarationDir = raw.compilerOptions.declarationDir;
if (outDir || declarationDir) {
@@ -36939,28 +36934,29 @@ var ts;
if (shouldReportNoInputFiles(result, canJsonReportNoInputFiles(raw), resolutionStack)) {
errors.push(getErrorForNoInputFiles(result.spec, configFileName));
}
if (ts.hasProperty(raw, "references") && !isNullOrUndefined(raw.references)) {
if (ts.isArray(raw.references)) {
for (var _i = 0, _a = raw.references; _i < _a.length; _i++) {
var ref = _a[_i];
if (typeof ref.path !== "string") {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "reference.path", "string");
}
else {
(projectReferences || (projectReferences = [])).push({
path: ts.getNormalizedAbsolutePath(ref.path, basePath),
originalPath: ref.path,
prepend: ref.prepend,
circular: ref.circular
});
}
return result;
}
function toPropValue(specResult) {
return ts.isArray(specResult) ? specResult : undefined;
}
function getSpecsFromRaw(prop) {
return getPropFromRaw(prop, ts.isString, "string");
}
function getPropFromRaw(prop, validateElement, elementTypeName) {
if (ts.hasProperty(raw, prop) && !isNullOrUndefined(raw[prop])) {
if (ts.isArray(raw[prop])) {
var result = raw[prop];
if (!sourceFile && !ts.every(result, validateElement)) {
errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, elementTypeName));
}
return result;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "references", "Array");
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, "Array");
return "not-array";
}
}
return result;
return "no-prop";
}
function createCompilerDiagnosticOnlyIfJson(message, arg0, arg1) {
if (!sourceFile) {
@@ -37385,7 +37381,15 @@ var ts;
// or a recursive directory. This information is used by filesystem watchers to monitor for
// new entries in these paths.
var wildcardDirectories = getWildcardDirectories(validatedIncludeSpecs, validatedExcludeSpecs, basePath, host.useCaseSensitiveFileNames);
var spec = { filesSpecs: filesSpecs, includeSpecs: includeSpecs, excludeSpecs: excludeSpecs, validatedIncludeSpecs: validatedIncludeSpecs, validatedExcludeSpecs: validatedExcludeSpecs, wildcardDirectories: wildcardDirectories };
var spec = {
filesSpecs: filesSpecs,
includeSpecs: includeSpecs,
excludeSpecs: excludeSpecs,
validatedFilesSpec: ts.filter(filesSpecs, ts.isString),
validatedIncludeSpecs: validatedIncludeSpecs,
validatedExcludeSpecs: validatedExcludeSpecs,
wildcardDirectories: wildcardDirectories
};
return getFileNamesFromConfigSpecs(spec, basePath, options, host, extraFileExtensions);
}
/**
@@ -37414,16 +37418,16 @@ var ts;
// file map with a possibly case insensitive key. We use this map to store paths matched
// via wildcard of *.json kind
var wildCardJsonFileMap = new ts.Map();
var filesSpecs = spec.filesSpecs, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs, wildcardDirectories = spec.wildcardDirectories;
var validatedFilesSpec = spec.validatedFilesSpec, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs, wildcardDirectories = spec.wildcardDirectories;
// Rather than requery this for each file and filespec, we query the supported extensions
// once and store it on the expansion context.
var supportedExtensions = ts.getSupportedExtensions(options, extraFileExtensions);
var supportedExtensionsWithJsonIfResolveJsonModule = ts.getSuppoertedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions);
// Literal files are always included verbatim. An "include" or "exclude" specification cannot
// remove a literal file.
if (filesSpecs) {
for (var _i = 0, filesSpecs_1 = filesSpecs; _i < filesSpecs_1.length; _i++) {
var fileName = filesSpecs_1[_i];
if (validatedFilesSpec) {
for (var _i = 0, validatedFilesSpec_1 = validatedFilesSpec; _i < validatedFilesSpec_1.length; _i++) {
var fileName = validatedFilesSpec_1[_i];
var file = ts.getNormalizedAbsolutePath(fileName, basePath);
literalFileMap.set(keyMapper(file), file);
}
@@ -37482,14 +37486,14 @@ var ts;
ts.getFileNamesFromConfigSpecs = getFileNamesFromConfigSpecs;
/* @internal */
function isExcludedFile(pathToCheck, spec, basePath, useCaseSensitiveFileNames, currentDirectory) {
var filesSpecs = spec.filesSpecs, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs;
var validatedFilesSpec = spec.validatedFilesSpec, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs;
if (!ts.length(validatedIncludeSpecs) || !ts.length(validatedExcludeSpecs))
return false;
basePath = ts.normalizePath(basePath);
var keyMapper = ts.createGetCanonicalFileName(useCaseSensitiveFileNames);
if (filesSpecs) {
for (var _i = 0, filesSpecs_2 = filesSpecs; _i < filesSpecs_2.length; _i++) {
var fileName = filesSpecs_2[_i];
if (validatedFilesSpec) {
for (var _i = 0, validatedFilesSpec_2 = validatedFilesSpec; _i < validatedFilesSpec_2.length; _i++) {
var fileName = validatedFilesSpec_2[_i];
if (keyMapper(ts.getNormalizedAbsolutePath(fileName, basePath)) === pathToCheck)
return false;
}
@@ -37505,6 +37509,8 @@ var ts;
ts.isExcludedFile = isExcludedFile;
function validateSpecs(specs, errors, allowTrailingRecursion, jsonSourceFile, specKey) {
return specs.filter(function (spec) {
if (!ts.isString(spec))
return false;
var diag = specToDiagnostic(spec, allowTrailingRecursion);
if (diag !== undefined) {
errors.push(createDiagnostic(diag, spec));
@@ -144069,7 +144075,7 @@ var ts;
kind: "" /* unknown */,
kindModifiers: "" /* none */,
textSpan: ts.createTextSpanFromNode(nodeForQuickInfo, sourceFile),
displayParts: typeChecker.runWithCancellationToken(cancellationToken, function (typeChecker) { return ts.typeToDisplayParts(typeChecker, type_2, ts.getContainerNode(nodeForQuickInfo)); }),
displayParts: prefixWithApproximation(typeChecker.runWithCancellationToken(cancellationToken, function (typeChecker) { return ts.typeToDisplayParts(typeChecker, type_2, ts.getContainerNode(nodeForQuickInfo)); })),
documentation: type_2.symbol ? type_2.symbol.getDocumentationComment(typeChecker) : undefined,
tags: type_2.symbol ? type_2.symbol.getJsDocTags() : undefined
};
@@ -144081,7 +144087,7 @@ var ts;
kind: symbolKind,
kindModifiers: ts.SymbolDisplay.getSymbolModifiers(symbol),
textSpan: ts.createTextSpanFromNode(nodeForQuickInfo, sourceFile),
displayParts: displayParts,
displayParts: prefixWithApproximation(displayParts),
documentation: documentation,
tags: tags,
};
@@ -144108,6 +144114,12 @@ var ts;
return false;
}
}
function prefixWithApproximation(displayParts) {
if (languageServiceMode === ts.LanguageServiceMode.Semantic) {
return displayParts;
}
return __spreadArrays([ts.textPart("(approximation)"), ts.spacePart()], displayParts);
}
/// Goto definition
function getDefinitionAtPosition(fileName, position) {
synchronizeHostData();

View File

@@ -288,7 +288,7 @@ var ts;
// If changing the text in this section, be sure to test `configurePrerelease` too.
ts.versionMajorMinor = "4.0";
/** The version of the TypeScript compiler release */
ts.version = ts.versionMajorMinor + ".1-rc";
ts.version = "4.0.2";
/* @internal */
var Comparison;
(function (Comparison) {
@@ -36881,51 +36881,46 @@ var ts;
configFileSpecs: spec
};
function getFileNames() {
var filesSpecs;
if (ts.hasProperty(raw, "files") && !isNullOrUndefined(raw.files)) {
if (ts.isArray(raw.files)) {
filesSpecs = raw.files;
var hasReferences = ts.hasProperty(raw, "references") && !isNullOrUndefined(raw.references);
var hasZeroOrNoReferences = !hasReferences || raw.references.length === 0;
var hasExtends = ts.hasProperty(raw, "extends");
if (filesSpecs.length === 0 && hasZeroOrNoReferences && !hasExtends) {
if (sourceFile) {
var fileName = configFileName || "tsconfig.json";
var diagnosticMessage = ts.Diagnostics.The_files_list_in_config_file_0_is_empty;
var nodeValue = ts.firstDefined(ts.getTsConfigPropArray(sourceFile, "files"), function (property) { return property.initializer; });
var error = nodeValue
? ts.createDiagnosticForNodeInSourceFile(sourceFile, nodeValue, diagnosticMessage, fileName)
: ts.createCompilerDiagnostic(diagnosticMessage, fileName);
errors.push(error);
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || "tsconfig.json");
}
var referencesOfRaw = getPropFromRaw("references", function (element) { return typeof element === "object"; }, "object");
if (ts.isArray(referencesOfRaw)) {
for (var _i = 0, referencesOfRaw_1 = referencesOfRaw; _i < referencesOfRaw_1.length; _i++) {
var ref = referencesOfRaw_1[_i];
if (typeof ref.path !== "string") {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "reference.path", "string");
}
else {
(projectReferences || (projectReferences = [])).push({
path: ts.getNormalizedAbsolutePath(ref.path, basePath),
originalPath: ref.path,
prepend: ref.prepend,
circular: ref.circular
});
}
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "files", "Array");
}
var filesSpecs = toPropValue(getSpecsFromRaw("files"));
if (filesSpecs) {
var hasZeroOrNoReferences = referencesOfRaw === "no-prop" || ts.isArray(referencesOfRaw) && referencesOfRaw.length === 0;
var hasExtends = ts.hasProperty(raw, "extends");
if (filesSpecs.length === 0 && hasZeroOrNoReferences && !hasExtends) {
if (sourceFile) {
var fileName = configFileName || "tsconfig.json";
var diagnosticMessage = ts.Diagnostics.The_files_list_in_config_file_0_is_empty;
var nodeValue = ts.firstDefined(ts.getTsConfigPropArray(sourceFile, "files"), function (property) { return property.initializer; });
var error = nodeValue
? ts.createDiagnosticForNodeInSourceFile(sourceFile, nodeValue, diagnosticMessage, fileName)
: ts.createCompilerDiagnostic(diagnosticMessage, fileName);
errors.push(error);
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || "tsconfig.json");
}
}
}
var includeSpecs;
if (ts.hasProperty(raw, "include") && !isNullOrUndefined(raw.include)) {
if (ts.isArray(raw.include)) {
includeSpecs = raw.include;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "include", "Array");
}
}
var excludeSpecs;
if (ts.hasProperty(raw, "exclude") && !isNullOrUndefined(raw.exclude)) {
if (ts.isArray(raw.exclude)) {
excludeSpecs = raw.exclude;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "exclude", "Array");
}
}
else if (raw.compilerOptions) {
var includeSpecs = toPropValue(getSpecsFromRaw("include"));
var excludeOfRaw = getSpecsFromRaw("exclude");
var excludeSpecs = toPropValue(excludeOfRaw);
if (excludeOfRaw === "no-prop" && raw.compilerOptions) {
var outDir = raw.compilerOptions.outDir;
var declarationDir = raw.compilerOptions.declarationDir;
if (outDir || declarationDir) {
@@ -36939,28 +36934,29 @@ var ts;
if (shouldReportNoInputFiles(result, canJsonReportNoInputFiles(raw), resolutionStack)) {
errors.push(getErrorForNoInputFiles(result.spec, configFileName));
}
if (ts.hasProperty(raw, "references") && !isNullOrUndefined(raw.references)) {
if (ts.isArray(raw.references)) {
for (var _i = 0, _a = raw.references; _i < _a.length; _i++) {
var ref = _a[_i];
if (typeof ref.path !== "string") {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "reference.path", "string");
}
else {
(projectReferences || (projectReferences = [])).push({
path: ts.getNormalizedAbsolutePath(ref.path, basePath),
originalPath: ref.path,
prepend: ref.prepend,
circular: ref.circular
});
}
return result;
}
function toPropValue(specResult) {
return ts.isArray(specResult) ? specResult : undefined;
}
function getSpecsFromRaw(prop) {
return getPropFromRaw(prop, ts.isString, "string");
}
function getPropFromRaw(prop, validateElement, elementTypeName) {
if (ts.hasProperty(raw, prop) && !isNullOrUndefined(raw[prop])) {
if (ts.isArray(raw[prop])) {
var result = raw[prop];
if (!sourceFile && !ts.every(result, validateElement)) {
errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, elementTypeName));
}
return result;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "references", "Array");
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, "Array");
return "not-array";
}
}
return result;
return "no-prop";
}
function createCompilerDiagnosticOnlyIfJson(message, arg0, arg1) {
if (!sourceFile) {
@@ -37385,7 +37381,15 @@ var ts;
// or a recursive directory. This information is used by filesystem watchers to monitor for
// new entries in these paths.
var wildcardDirectories = getWildcardDirectories(validatedIncludeSpecs, validatedExcludeSpecs, basePath, host.useCaseSensitiveFileNames);
var spec = { filesSpecs: filesSpecs, includeSpecs: includeSpecs, excludeSpecs: excludeSpecs, validatedIncludeSpecs: validatedIncludeSpecs, validatedExcludeSpecs: validatedExcludeSpecs, wildcardDirectories: wildcardDirectories };
var spec = {
filesSpecs: filesSpecs,
includeSpecs: includeSpecs,
excludeSpecs: excludeSpecs,
validatedFilesSpec: ts.filter(filesSpecs, ts.isString),
validatedIncludeSpecs: validatedIncludeSpecs,
validatedExcludeSpecs: validatedExcludeSpecs,
wildcardDirectories: wildcardDirectories
};
return getFileNamesFromConfigSpecs(spec, basePath, options, host, extraFileExtensions);
}
/**
@@ -37414,16 +37418,16 @@ var ts;
// file map with a possibly case insensitive key. We use this map to store paths matched
// via wildcard of *.json kind
var wildCardJsonFileMap = new ts.Map();
var filesSpecs = spec.filesSpecs, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs, wildcardDirectories = spec.wildcardDirectories;
var validatedFilesSpec = spec.validatedFilesSpec, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs, wildcardDirectories = spec.wildcardDirectories;
// Rather than requery this for each file and filespec, we query the supported extensions
// once and store it on the expansion context.
var supportedExtensions = ts.getSupportedExtensions(options, extraFileExtensions);
var supportedExtensionsWithJsonIfResolveJsonModule = ts.getSuppoertedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions);
// Literal files are always included verbatim. An "include" or "exclude" specification cannot
// remove a literal file.
if (filesSpecs) {
for (var _i = 0, filesSpecs_1 = filesSpecs; _i < filesSpecs_1.length; _i++) {
var fileName = filesSpecs_1[_i];
if (validatedFilesSpec) {
for (var _i = 0, validatedFilesSpec_1 = validatedFilesSpec; _i < validatedFilesSpec_1.length; _i++) {
var fileName = validatedFilesSpec_1[_i];
var file = ts.getNormalizedAbsolutePath(fileName, basePath);
literalFileMap.set(keyMapper(file), file);
}
@@ -37482,14 +37486,14 @@ var ts;
ts.getFileNamesFromConfigSpecs = getFileNamesFromConfigSpecs;
/* @internal */
function isExcludedFile(pathToCheck, spec, basePath, useCaseSensitiveFileNames, currentDirectory) {
var filesSpecs = spec.filesSpecs, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs;
var validatedFilesSpec = spec.validatedFilesSpec, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs;
if (!ts.length(validatedIncludeSpecs) || !ts.length(validatedExcludeSpecs))
return false;
basePath = ts.normalizePath(basePath);
var keyMapper = ts.createGetCanonicalFileName(useCaseSensitiveFileNames);
if (filesSpecs) {
for (var _i = 0, filesSpecs_2 = filesSpecs; _i < filesSpecs_2.length; _i++) {
var fileName = filesSpecs_2[_i];
if (validatedFilesSpec) {
for (var _i = 0, validatedFilesSpec_2 = validatedFilesSpec; _i < validatedFilesSpec_2.length; _i++) {
var fileName = validatedFilesSpec_2[_i];
if (keyMapper(ts.getNormalizedAbsolutePath(fileName, basePath)) === pathToCheck)
return false;
}
@@ -37505,6 +37509,8 @@ var ts;
ts.isExcludedFile = isExcludedFile;
function validateSpecs(specs, errors, allowTrailingRecursion, jsonSourceFile, specKey) {
return specs.filter(function (spec) {
if (!ts.isString(spec))
return false;
var diag = specToDiagnostic(spec, allowTrailingRecursion);
if (diag !== undefined) {
errors.push(createDiagnostic(diag, spec));
@@ -144069,7 +144075,7 @@ var ts;
kind: "" /* unknown */,
kindModifiers: "" /* none */,
textSpan: ts.createTextSpanFromNode(nodeForQuickInfo, sourceFile),
displayParts: typeChecker.runWithCancellationToken(cancellationToken, function (typeChecker) { return ts.typeToDisplayParts(typeChecker, type_2, ts.getContainerNode(nodeForQuickInfo)); }),
displayParts: prefixWithApproximation(typeChecker.runWithCancellationToken(cancellationToken, function (typeChecker) { return ts.typeToDisplayParts(typeChecker, type_2, ts.getContainerNode(nodeForQuickInfo)); })),
documentation: type_2.symbol ? type_2.symbol.getDocumentationComment(typeChecker) : undefined,
tags: type_2.symbol ? type_2.symbol.getJsDocTags() : undefined
};
@@ -144081,7 +144087,7 @@ var ts;
kind: symbolKind,
kindModifiers: ts.SymbolDisplay.getSymbolModifiers(symbol),
textSpan: ts.createTextSpanFromNode(nodeForQuickInfo, sourceFile),
displayParts: displayParts,
displayParts: prefixWithApproximation(displayParts),
documentation: documentation,
tags: tags,
};
@@ -144108,6 +144114,12 @@ var ts;
return false;
}
}
function prefixWithApproximation(displayParts) {
if (languageServiceMode === ts.LanguageServiceMode.Semantic) {
return displayParts;
}
return __spreadArrays([ts.textPart("(approximation)"), ts.spacePart()], displayParts);
}
/// Goto definition
function getDefinitionAtPosition(fileName, position) {
synchronizeHostData();

View File

@@ -83,7 +83,7 @@ var ts;
// If changing the text in this section, be sure to test `configurePrerelease` too.
ts.versionMajorMinor = "4.0";
/** The version of the TypeScript compiler release */
ts.version = ts.versionMajorMinor + ".1-rc";
ts.version = "4.0.2";
/* @internal */
var Comparison;
(function (Comparison) {
@@ -36676,51 +36676,46 @@ var ts;
configFileSpecs: spec
};
function getFileNames() {
var filesSpecs;
if (ts.hasProperty(raw, "files") && !isNullOrUndefined(raw.files)) {
if (ts.isArray(raw.files)) {
filesSpecs = raw.files;
var hasReferences = ts.hasProperty(raw, "references") && !isNullOrUndefined(raw.references);
var hasZeroOrNoReferences = !hasReferences || raw.references.length === 0;
var hasExtends = ts.hasProperty(raw, "extends");
if (filesSpecs.length === 0 && hasZeroOrNoReferences && !hasExtends) {
if (sourceFile) {
var fileName = configFileName || "tsconfig.json";
var diagnosticMessage = ts.Diagnostics.The_files_list_in_config_file_0_is_empty;
var nodeValue = ts.firstDefined(ts.getTsConfigPropArray(sourceFile, "files"), function (property) { return property.initializer; });
var error = nodeValue
? ts.createDiagnosticForNodeInSourceFile(sourceFile, nodeValue, diagnosticMessage, fileName)
: ts.createCompilerDiagnostic(diagnosticMessage, fileName);
errors.push(error);
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || "tsconfig.json");
}
var referencesOfRaw = getPropFromRaw("references", function (element) { return typeof element === "object"; }, "object");
if (ts.isArray(referencesOfRaw)) {
for (var _i = 0, referencesOfRaw_1 = referencesOfRaw; _i < referencesOfRaw_1.length; _i++) {
var ref = referencesOfRaw_1[_i];
if (typeof ref.path !== "string") {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "reference.path", "string");
}
else {
(projectReferences || (projectReferences = [])).push({
path: ts.getNormalizedAbsolutePath(ref.path, basePath),
originalPath: ref.path,
prepend: ref.prepend,
circular: ref.circular
});
}
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "files", "Array");
}
var filesSpecs = toPropValue(getSpecsFromRaw("files"));
if (filesSpecs) {
var hasZeroOrNoReferences = referencesOfRaw === "no-prop" || ts.isArray(referencesOfRaw) && referencesOfRaw.length === 0;
var hasExtends = ts.hasProperty(raw, "extends");
if (filesSpecs.length === 0 && hasZeroOrNoReferences && !hasExtends) {
if (sourceFile) {
var fileName = configFileName || "tsconfig.json";
var diagnosticMessage = ts.Diagnostics.The_files_list_in_config_file_0_is_empty;
var nodeValue = ts.firstDefined(ts.getTsConfigPropArray(sourceFile, "files"), function (property) { return property.initializer; });
var error = nodeValue
? ts.createDiagnosticForNodeInSourceFile(sourceFile, nodeValue, diagnosticMessage, fileName)
: ts.createCompilerDiagnostic(diagnosticMessage, fileName);
errors.push(error);
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || "tsconfig.json");
}
}
}
var includeSpecs;
if (ts.hasProperty(raw, "include") && !isNullOrUndefined(raw.include)) {
if (ts.isArray(raw.include)) {
includeSpecs = raw.include;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "include", "Array");
}
}
var excludeSpecs;
if (ts.hasProperty(raw, "exclude") && !isNullOrUndefined(raw.exclude)) {
if (ts.isArray(raw.exclude)) {
excludeSpecs = raw.exclude;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "exclude", "Array");
}
}
else if (raw.compilerOptions) {
var includeSpecs = toPropValue(getSpecsFromRaw("include"));
var excludeOfRaw = getSpecsFromRaw("exclude");
var excludeSpecs = toPropValue(excludeOfRaw);
if (excludeOfRaw === "no-prop" && raw.compilerOptions) {
var outDir = raw.compilerOptions.outDir;
var declarationDir = raw.compilerOptions.declarationDir;
if (outDir || declarationDir) {
@@ -36734,28 +36729,29 @@ var ts;
if (shouldReportNoInputFiles(result, canJsonReportNoInputFiles(raw), resolutionStack)) {
errors.push(getErrorForNoInputFiles(result.spec, configFileName));
}
if (ts.hasProperty(raw, "references") && !isNullOrUndefined(raw.references)) {
if (ts.isArray(raw.references)) {
for (var _i = 0, _a = raw.references; _i < _a.length; _i++) {
var ref = _a[_i];
if (typeof ref.path !== "string") {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "reference.path", "string");
}
else {
(projectReferences || (projectReferences = [])).push({
path: ts.getNormalizedAbsolutePath(ref.path, basePath),
originalPath: ref.path,
prepend: ref.prepend,
circular: ref.circular
});
}
return result;
}
function toPropValue(specResult) {
return ts.isArray(specResult) ? specResult : undefined;
}
function getSpecsFromRaw(prop) {
return getPropFromRaw(prop, ts.isString, "string");
}
function getPropFromRaw(prop, validateElement, elementTypeName) {
if (ts.hasProperty(raw, prop) && !isNullOrUndefined(raw[prop])) {
if (ts.isArray(raw[prop])) {
var result = raw[prop];
if (!sourceFile && !ts.every(result, validateElement)) {
errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, elementTypeName));
}
return result;
}
else {
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "references", "Array");
createCompilerDiagnosticOnlyIfJson(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, "Array");
return "not-array";
}
}
return result;
return "no-prop";
}
function createCompilerDiagnosticOnlyIfJson(message, arg0, arg1) {
if (!sourceFile) {
@@ -37180,7 +37176,15 @@ var ts;
// or a recursive directory. This information is used by filesystem watchers to monitor for
// new entries in these paths.
var wildcardDirectories = getWildcardDirectories(validatedIncludeSpecs, validatedExcludeSpecs, basePath, host.useCaseSensitiveFileNames);
var spec = { filesSpecs: filesSpecs, includeSpecs: includeSpecs, excludeSpecs: excludeSpecs, validatedIncludeSpecs: validatedIncludeSpecs, validatedExcludeSpecs: validatedExcludeSpecs, wildcardDirectories: wildcardDirectories };
var spec = {
filesSpecs: filesSpecs,
includeSpecs: includeSpecs,
excludeSpecs: excludeSpecs,
validatedFilesSpec: ts.filter(filesSpecs, ts.isString),
validatedIncludeSpecs: validatedIncludeSpecs,
validatedExcludeSpecs: validatedExcludeSpecs,
wildcardDirectories: wildcardDirectories
};
return getFileNamesFromConfigSpecs(spec, basePath, options, host, extraFileExtensions);
}
/**
@@ -37209,16 +37213,16 @@ var ts;
// file map with a possibly case insensitive key. We use this map to store paths matched
// via wildcard of *.json kind
var wildCardJsonFileMap = new ts.Map();
var filesSpecs = spec.filesSpecs, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs, wildcardDirectories = spec.wildcardDirectories;
var validatedFilesSpec = spec.validatedFilesSpec, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs, wildcardDirectories = spec.wildcardDirectories;
// Rather than requery this for each file and filespec, we query the supported extensions
// once and store it on the expansion context.
var supportedExtensions = ts.getSupportedExtensions(options, extraFileExtensions);
var supportedExtensionsWithJsonIfResolveJsonModule = ts.getSuppoertedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions);
// Literal files are always included verbatim. An "include" or "exclude" specification cannot
// remove a literal file.
if (filesSpecs) {
for (var _i = 0, filesSpecs_1 = filesSpecs; _i < filesSpecs_1.length; _i++) {
var fileName = filesSpecs_1[_i];
if (validatedFilesSpec) {
for (var _i = 0, validatedFilesSpec_1 = validatedFilesSpec; _i < validatedFilesSpec_1.length; _i++) {
var fileName = validatedFilesSpec_1[_i];
var file = ts.getNormalizedAbsolutePath(fileName, basePath);
literalFileMap.set(keyMapper(file), file);
}
@@ -37277,14 +37281,14 @@ var ts;
ts.getFileNamesFromConfigSpecs = getFileNamesFromConfigSpecs;
/* @internal */
function isExcludedFile(pathToCheck, spec, basePath, useCaseSensitiveFileNames, currentDirectory) {
var filesSpecs = spec.filesSpecs, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs;
var validatedFilesSpec = spec.validatedFilesSpec, validatedIncludeSpecs = spec.validatedIncludeSpecs, validatedExcludeSpecs = spec.validatedExcludeSpecs;
if (!ts.length(validatedIncludeSpecs) || !ts.length(validatedExcludeSpecs))
return false;
basePath = ts.normalizePath(basePath);
var keyMapper = ts.createGetCanonicalFileName(useCaseSensitiveFileNames);
if (filesSpecs) {
for (var _i = 0, filesSpecs_2 = filesSpecs; _i < filesSpecs_2.length; _i++) {
var fileName = filesSpecs_2[_i];
if (validatedFilesSpec) {
for (var _i = 0, validatedFilesSpec_2 = validatedFilesSpec; _i < validatedFilesSpec_2.length; _i++) {
var fileName = validatedFilesSpec_2[_i];
if (keyMapper(ts.getNormalizedAbsolutePath(fileName, basePath)) === pathToCheck)
return false;
}
@@ -37300,6 +37304,8 @@ var ts;
ts.isExcludedFile = isExcludedFile;
function validateSpecs(specs, errors, allowTrailingRecursion, jsonSourceFile, specKey) {
return specs.filter(function (spec) {
if (!ts.isString(spec))
return false;
var diag = specToDiagnostic(spec, allowTrailingRecursion);
if (diag !== undefined) {
errors.push(createDiagnostic(diag, spec));

View File

@@ -2,7 +2,7 @@
"name": "typescript",
"author": "Microsoft Corp.",
"homepage": "https://www.typescriptlang.org/",
"version": "4.0.1-rc",
"version": "4.0.2",
"license": "Apache-2.0",
"description": "TypeScript is a language for application scale JavaScript development",
"keywords": [

View File

@@ -3,7 +3,7 @@ namespace ts {
// If changing the text in this section, be sure to test `configurePrerelease` too.
export const versionMajorMinor = "4.0";
/** The version of the TypeScript compiler release */
export const version = `${versionMajorMinor}.1-rc`;
export const version = "4.0.2" as string;
/**
* Type of objects whose values are all of the same type.