diff --git a/.eslintignore b/.eslintignore
index dda0884b381..f186c7ecd78 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -3,7 +3,6 @@
**/vs/css.build.js
**/vs/css.js
**/vs/loader.js
-**/promise-polyfill/**
**/insane/**
**/marked/**
**/test/**/*.js
diff --git a/.eslintrc.json b/.eslintrc.json
index 5414b07f942..57c99ae5a66 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -35,7 +35,8 @@
"external",
"status",
"origin",
- "orientation"
+ "orientation",
+ "context"
], // non-complete list of globals that are easy to access unintentionally
"no-var": "warn",
"jsdoc/no-types": "warn",
diff --git a/build/builtInExtensions.json b/build/builtInExtensions.json
index 84091196b00..bd9188f8ee1 100644
--- a/build/builtInExtensions.json
+++ b/build/builtInExtensions.json
@@ -1,7 +1,7 @@
[
{
"name": "ms-vscode.node-debug",
- "version": "1.43.1",
+ "version": "1.43.2",
"repo": "https://github.com/Microsoft/vscode-node-debug",
"metadata": {
"id": "b6ded8fb-a0a0-4c1c-acbd-ab2a3bc995a6",
@@ -46,7 +46,7 @@
},
{
"name": "ms-vscode.js-debug-nightly",
- "version": "2020.2.2507",
+ "version": "2020.2.2617",
"forQualities": [
"insider"
],
diff --git a/build/gulpfile.editor.js b/build/gulpfile.editor.js
index 9278f689ec3..bdc34affadc 100644
--- a/build/gulpfile.editor.js
+++ b/build/gulpfile.editor.js
@@ -72,13 +72,8 @@ const extractEditorSrcTask = task.define('extract-editor-src', () => {
apiusages,
extrausages
],
- libs: [
- `lib.es5.d.ts`,
- `lib.dom.d.ts`,
- `lib.webworker.importscripts.d.ts`
- ],
shakeLevel: 2, // 0-Files, 1-InnerFile, 2-ClassMembers
- importIgnorePattern: /(^vs\/css!)|(promise-polyfill\/polyfill)/,
+ importIgnorePattern: /(^vs\/css!)/,
destRoot: path.join(root, 'out-editor-src'),
redirects: []
});
diff --git a/build/gulpfile.hygiene.js b/build/gulpfile.hygiene.js
index ccf965a9dc4..75c8413ae5d 100644
--- a/build/gulpfile.hygiene.js
+++ b/build/gulpfile.hygiene.js
@@ -114,7 +114,6 @@ const copyrightFilter = [
'!**/*.disabled',
'!**/*.code-workspace',
'!**/*.js.map',
- '!**/promise-polyfill/polyfill.js',
'!build/**/*.init',
'!resources/linux/snap/snapcraft.yaml',
'!resources/linux/snap/electron-launch',
diff --git a/build/lib/asar.js b/build/lib/asar.js
index 21c5f65a45b..4a15a200be5 100644
--- a/build/lib/asar.js
+++ b/build/lib/asar.js
@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
+exports.createAsar = void 0;
const path = require("path");
const es = require("event-stream");
const pickle = require('chromium-pickle-js');
diff --git a/build/lib/bundle.js b/build/lib/bundle.js
index 881e8ff6c7f..7d0c8d9b55e 100644
--- a/build/lib/bundle.js
+++ b/build/lib/bundle.js
@@ -4,6 +4,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
+exports.bundle = void 0;
const fs = require("fs");
const path = require("path");
const vm = require("vm");
diff --git a/build/lib/compilation.js b/build/lib/compilation.js
index 59bf1a250f6..c4a3230424b 100644
--- a/build/lib/compilation.js
+++ b/build/lib/compilation.js
@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
+exports.watchTask = exports.compileTask = void 0;
const es = require("event-stream");
const fs = require("fs");
const gulp = require("gulp");
diff --git a/build/lib/electron.js b/build/lib/electron.js
index b38a1f6edc9..abf6baab419 100644
--- a/build/lib/electron.js
+++ b/build/lib/electron.js
@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
+exports.config = exports.getElectronVersion = void 0;
const fs = require("fs");
const path = require("path");
const vfs = require("vinyl-fs");
diff --git a/build/lib/eslint/utils.js b/build/lib/eslint/utils.js
index ec59aef3b7d..c58e4e24be1 100644
--- a/build/lib/eslint/utils.js
+++ b/build/lib/eslint/utils.js
@@ -4,6 +4,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
+exports.createImportRuleListener = void 0;
function createImportRuleListener(validateImport) {
function _checkImport(node) {
if (node && node.type === 'Literal' && typeof node.value === 'string') {
diff --git a/build/lib/extensions.js b/build/lib/extensions.js
index e45b0d4e35a..8ee26bb40dd 100644
--- a/build/lib/extensions.js
+++ b/build/lib/extensions.js
@@ -4,6 +4,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
+exports.packageMarketplaceExtensionsStream = exports.packageLocalExtensionsStream = exports.fromMarketplace = void 0;
const es = require("event-stream");
const fs = require("fs");
const glob = require("glob");
diff --git a/build/lib/git.js b/build/lib/git.js
index da5d66fd8d2..1726f76fcc7 100644
--- a/build/lib/git.js
+++ b/build/lib/git.js
@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
+exports.getVersion = void 0;
const path = require("path");
const fs = require("fs");
/**
diff --git a/build/lib/i18n.js b/build/lib/i18n.js
index 27a4054a1e4..ea1758ee57e 100644
--- a/build/lib/i18n.js
+++ b/build/lib/i18n.js
@@ -4,6 +4,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
+exports.prepareIslFiles = exports.prepareI18nPackFiles = exports.pullI18nPackFiles = exports.prepareI18nFiles = exports.pullSetupXlfFiles = exports.pullCoreAndExtensionsXlfFiles = exports.findObsoleteResources = exports.pushXlfFiles = exports.createXlfFilesForIsl = exports.createXlfFilesForExtensions = exports.createXlfFilesForCoreBundle = exports.getResource = exports.processNlsFiles = exports.Limiter = exports.XLF = exports.Line = exports.externalExtensionsWithTranslations = exports.extraLanguages = exports.defaultLanguages = void 0;
const path = require("path");
const fs = require("fs");
const event_stream_1 = require("event-stream");
@@ -100,155 +101,158 @@ class TextModel {
return this._lines;
}
}
-class XLF {
- constructor(project) {
- this.project = project;
- this.buffer = [];
- this.files = Object.create(null);
- this.numberOfMessages = 0;
- }
- toString() {
- this.appendHeader();
- for (let file in this.files) {
- this.appendNewLine(``, 2);
- for (let item of this.files[file]) {
- this.addStringItem(item);
- }
- this.appendNewLine('', 2);
+let XLF = /** @class */ (() => {
+ class XLF {
+ constructor(project) {
+ this.project = project;
+ this.buffer = [];
+ this.files = Object.create(null);
+ this.numberOfMessages = 0;
}
- this.appendFooter();
- return this.buffer.join('\r\n');
- }
- addFile(original, keys, messages) {
- if (keys.length === 0) {
- console.log('No keys in ' + original);
- return;
- }
- if (keys.length !== messages.length) {
- throw new Error(`Unmatching keys(${keys.length}) and messages(${messages.length}).`);
- }
- this.numberOfMessages += keys.length;
- this.files[original] = [];
- let existingKeys = new Set();
- for (let i = 0; i < keys.length; i++) {
- let key = keys[i];
- let realKey;
- let comment;
- if (Is.string(key)) {
- realKey = key;
- comment = undefined;
- }
- else if (LocalizeInfo.is(key)) {
- realKey = key.key;
- if (key.comment && key.comment.length > 0) {
- comment = key.comment.map(comment => encodeEntities(comment)).join('\r\n');
+ toString() {
+ this.appendHeader();
+ for (let file in this.files) {
+ this.appendNewLine(``, 2);
+ for (let item of this.files[file]) {
+ this.addStringItem(item);
}
+ this.appendNewLine('', 2);
}
- if (!realKey || existingKeys.has(realKey)) {
- continue;
+ this.appendFooter();
+ return this.buffer.join('\r\n');
+ }
+ addFile(original, keys, messages) {
+ if (keys.length === 0) {
+ console.log('No keys in ' + original);
+ return;
}
- existingKeys.add(realKey);
- let message = encodeEntities(messages[i]);
- this.files[original].push({ id: realKey, message: message, comment: comment });
+ if (keys.length !== messages.length) {
+ throw new Error(`Unmatching keys(${keys.length}) and messages(${messages.length}).`);
+ }
+ this.numberOfMessages += keys.length;
+ this.files[original] = [];
+ let existingKeys = new Set();
+ for (let i = 0; i < keys.length; i++) {
+ let key = keys[i];
+ let realKey;
+ let comment;
+ if (Is.string(key)) {
+ realKey = key;
+ comment = undefined;
+ }
+ else if (LocalizeInfo.is(key)) {
+ realKey = key.key;
+ if (key.comment && key.comment.length > 0) {
+ comment = key.comment.map(comment => encodeEntities(comment)).join('\r\n');
+ }
+ }
+ if (!realKey || existingKeys.has(realKey)) {
+ continue;
+ }
+ existingKeys.add(realKey);
+ let message = encodeEntities(messages[i]);
+ this.files[original].push({ id: realKey, message: message, comment: comment });
+ }
+ }
+ addStringItem(item) {
+ if (!item.id || !item.message) {
+ throw new Error(`No item ID or value specified: ${JSON.stringify(item)}`);
+ }
+ this.appendNewLine(``, 4);
+ this.appendNewLine(`${item.message}`, 6);
+ if (item.comment) {
+ this.appendNewLine(`${item.comment}`, 6);
+ }
+ this.appendNewLine('', 4);
+ }
+ appendHeader() {
+ this.appendNewLine('', 0);
+ this.appendNewLine('', 0);
+ }
+ appendFooter() {
+ this.appendNewLine('', 0);
+ }
+ appendNewLine(content, indent) {
+ let line = new Line(indent);
+ line.append(content);
+ this.buffer.push(line.toString());
}
}
- addStringItem(item) {
- if (!item.id || !item.message) {
- throw new Error(`No item ID or value specified: ${JSON.stringify(item)}`);
- }
- this.appendNewLine(``, 4);
- this.appendNewLine(`${item.message}`, 6);
- if (item.comment) {
- this.appendNewLine(`${item.comment}`, 6);
- }
- this.appendNewLine('', 4);
- }
- appendHeader() {
- this.appendNewLine('', 0);
- this.appendNewLine('', 0);
- }
- appendFooter() {
- this.appendNewLine('', 0);
- }
- appendNewLine(content, indent) {
- let line = new Line(indent);
- line.append(content);
- this.buffer.push(line.toString());
- }
-}
+ XLF.parsePseudo = function (xlfString) {
+ return new Promise((resolve) => {
+ let parser = new xml2js.Parser();
+ let files = [];
+ parser.parseString(xlfString, function (_err, result) {
+ const fileNodes = result['xliff']['file'];
+ fileNodes.forEach(file => {
+ const originalFilePath = file.$.original;
+ const messages = {};
+ const transUnits = file.body[0]['trans-unit'];
+ if (transUnits) {
+ transUnits.forEach((unit) => {
+ const key = unit.$.id;
+ const val = pseudify(unit.source[0]['_'].toString());
+ if (key && val) {
+ messages[key] = decodeEntities(val);
+ }
+ });
+ files.push({ messages: messages, originalFilePath: originalFilePath, language: 'ps' });
+ }
+ });
+ resolve(files);
+ });
+ });
+ };
+ XLF.parse = function (xlfString) {
+ return new Promise((resolve, reject) => {
+ let parser = new xml2js.Parser();
+ let files = [];
+ parser.parseString(xlfString, function (err, result) {
+ if (err) {
+ reject(new Error(`XLF parsing error: Failed to parse XLIFF string. ${err}`));
+ }
+ const fileNodes = result['xliff']['file'];
+ if (!fileNodes) {
+ reject(new Error(`XLF parsing error: XLIFF file does not contain "xliff" or "file" node(s) required for parsing.`));
+ }
+ fileNodes.forEach((file) => {
+ const originalFilePath = file.$.original;
+ if (!originalFilePath) {
+ reject(new Error(`XLF parsing error: XLIFF file node does not contain original attribute to determine the original location of the resource file.`));
+ }
+ let language = file.$['target-language'];
+ if (!language) {
+ reject(new Error(`XLF parsing error: XLIFF file node does not contain target-language attribute to determine translated language.`));
+ }
+ const messages = {};
+ const transUnits = file.body[0]['trans-unit'];
+ if (transUnits) {
+ transUnits.forEach((unit) => {
+ const key = unit.$.id;
+ if (!unit.target) {
+ return; // No translation available
+ }
+ let val = unit.target[0];
+ if (typeof val !== 'string') {
+ val = val._;
+ }
+ if (key && val) {
+ messages[key] = decodeEntities(val);
+ }
+ else {
+ reject(new Error(`XLF parsing error: XLIFF file ${originalFilePath} does not contain full localization data. ID or target translation for one of the trans-unit nodes is not present.`));
+ }
+ });
+ files.push({ messages: messages, originalFilePath: originalFilePath, language: language.toLowerCase() });
+ }
+ });
+ resolve(files);
+ });
+ });
+ };
+ return XLF;
+})();
exports.XLF = XLF;
-XLF.parsePseudo = function (xlfString) {
- return new Promise((resolve) => {
- let parser = new xml2js.Parser();
- let files = [];
- parser.parseString(xlfString, function (_err, result) {
- const fileNodes = result['xliff']['file'];
- fileNodes.forEach(file => {
- const originalFilePath = file.$.original;
- const messages = {};
- const transUnits = file.body[0]['trans-unit'];
- if (transUnits) {
- transUnits.forEach((unit) => {
- const key = unit.$.id;
- const val = pseudify(unit.source[0]['_'].toString());
- if (key && val) {
- messages[key] = decodeEntities(val);
- }
- });
- files.push({ messages: messages, originalFilePath: originalFilePath, language: 'ps' });
- }
- });
- resolve(files);
- });
- });
-};
-XLF.parse = function (xlfString) {
- return new Promise((resolve, reject) => {
- let parser = new xml2js.Parser();
- let files = [];
- parser.parseString(xlfString, function (err, result) {
- if (err) {
- reject(new Error(`XLF parsing error: Failed to parse XLIFF string. ${err}`));
- }
- const fileNodes = result['xliff']['file'];
- if (!fileNodes) {
- reject(new Error(`XLF parsing error: XLIFF file does not contain "xliff" or "file" node(s) required for parsing.`));
- }
- fileNodes.forEach((file) => {
- const originalFilePath = file.$.original;
- if (!originalFilePath) {
- reject(new Error(`XLF parsing error: XLIFF file node does not contain original attribute to determine the original location of the resource file.`));
- }
- let language = file.$['target-language'];
- if (!language) {
- reject(new Error(`XLF parsing error: XLIFF file node does not contain target-language attribute to determine translated language.`));
- }
- const messages = {};
- const transUnits = file.body[0]['trans-unit'];
- if (transUnits) {
- transUnits.forEach((unit) => {
- const key = unit.$.id;
- if (!unit.target) {
- return; // No translation available
- }
- let val = unit.target[0];
- if (typeof val !== 'string') {
- val = val._;
- }
- if (key && val) {
- messages[key] = decodeEntities(val);
- }
- else {
- reject(new Error(`XLF parsing error: XLIFF file ${originalFilePath} does not contain full localization data. ID or target translation for one of the trans-unit nodes is not present.`));
- }
- });
- files.push({ messages: messages, originalFilePath: originalFilePath, language: language.toLowerCase() });
- }
- });
- resolve(files);
- });
- });
-};
class Limiter {
constructor(maxDegreeOfParalellism) {
this.maxDegreeOfParalellism = maxDegreeOfParalellism;
diff --git a/build/lib/optimize.js b/build/lib/optimize.js
index 45f11698463..f5db4afaaaa 100644
--- a/build/lib/optimize.js
+++ b/build/lib/optimize.js
@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
+exports.minifyTask = exports.optimizeTask = exports.loaderConfig = void 0;
const es = require("event-stream");
const fs = require("fs");
const gulp = require("gulp");
diff --git a/build/lib/reporter.js b/build/lib/reporter.js
index e0461dc6d9d..67615bf48dc 100644
--- a/build/lib/reporter.js
+++ b/build/lib/reporter.js
@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
+exports.createReporter = void 0;
const es = require("event-stream");
const _ = require("underscore");
const fancyLog = require("fancy-log");
diff --git a/build/lib/standalone.js b/build/lib/standalone.js
index ccfd7b45d23..531194c35fd 100644
--- a/build/lib/standalone.js
+++ b/build/lib/standalone.js
@@ -4,6 +4,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
+exports.createESMSourcesAndResources2 = exports.extractEditor = void 0;
const ts = require("typescript");
const fs = require("fs");
const path = require("path");
diff --git a/build/lib/stats.js b/build/lib/stats.js
index 99ad665f223..2ff02e405a6 100644
--- a/build/lib/stats.js
+++ b/build/lib/stats.js
@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
+exports.submitAllStats = exports.createStatsStream = void 0;
const es = require("event-stream");
const fancyLog = require("fancy-log");
const ansiColors = require("ansi-colors");
diff --git a/build/lib/task.js b/build/lib/task.js
index f1e6e3f6245..d08ab8acde8 100644
--- a/build/lib/task.js
+++ b/build/lib/task.js
@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
+exports.define = exports.parallel = exports.series = void 0;
const fancyLog = require("fancy-log");
const ansiColors = require("ansi-colors");
function _isPromise(p) {
diff --git a/build/lib/treeshaking.js b/build/lib/treeshaking.js
index 65dd88f585c..eeb954c4fcf 100644
--- a/build/lib/treeshaking.js
+++ b/build/lib/treeshaking.js
@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
+exports.shake = exports.toStringShakeLevel = exports.ShakeLevel = void 0;
const fs = require("fs");
const path = require("path");
const ts = require("typescript");
@@ -75,11 +76,7 @@ function createTypeScriptLanguageService(options) {
FILES[typing] = fs.readFileSync(filePath).toString();
});
// Resolve libs
- const RESOLVED_LIBS = {};
- options.libs.forEach((filename) => {
- const filepath = path.join(TYPESCRIPT_LIB_FOLDER, filename);
- RESOLVED_LIBS[`defaultLib:${filename}`] = fs.readFileSync(filepath).toString();
- });
+ const RESOLVED_LIBS = processLibFiles(options);
const compilerOptions = ts.convertCompilerOptionsFromJson(options.compilerOptions, options.sourcesRoot).options;
const host = new TypeScriptLanguageServiceHost(RESOLVED_LIBS, FILES, compilerOptions);
return ts.createLanguageService(host);
@@ -137,6 +134,29 @@ function discoverAndReadFiles(options) {
}
return FILES;
}
+/**
+ * Read lib files and follow lib references
+ */
+function processLibFiles(options) {
+ const stack = [...options.compilerOptions.lib];
+ const result = {};
+ while (stack.length > 0) {
+ const filename = `lib.${stack.shift().toLowerCase()}.d.ts`;
+ const key = `defaultLib:${filename}`;
+ if (!result[key]) {
+ // add this file
+ const filepath = path.join(TYPESCRIPT_LIB_FOLDER, filename);
+ const sourceText = fs.readFileSync(filepath).toString();
+ result[key] = sourceText;
+ // precess dependencies and "recurse"
+ const info = ts.preProcessFile(sourceText);
+ for (let ref of info.libReferenceDirectives) {
+ stack.push(ref.fileName);
+ }
+ }
+ }
+ return result;
+}
/**
* A TypeScript language service host
*/
diff --git a/build/lib/treeshaking.ts b/build/lib/treeshaking.ts
index 89f562ad1b8..19e0dc8bb4d 100644
--- a/build/lib/treeshaking.ts
+++ b/build/lib/treeshaking.ts
@@ -18,7 +18,7 @@ export const enum ShakeLevel {
}
export function toStringShakeLevel(shakeLevel: ShakeLevel): string {
- switch(shakeLevel) {
+ switch (shakeLevel) {
case ShakeLevel.Files:
return 'Files (0)';
case ShakeLevel.InnerFile:
@@ -42,11 +42,6 @@ export interface ITreeShakingOptions {
* Inline usages.
*/
inlineEntryPoints: string[];
- /**
- * TypeScript libs.
- * e.g. `lib.d.ts`, `lib.es2015.collection.d.ts`
- */
- libs: string[];
/**
* Other .d.ts files
*/
@@ -130,11 +125,7 @@ function createTypeScriptLanguageService(options: ITreeShakingOptions): ts.Langu
});
// Resolve libs
- const RESOLVED_LIBS: ILibMap = {};
- options.libs.forEach((filename) => {
- const filepath = path.join(TYPESCRIPT_LIB_FOLDER, filename);
- RESOLVED_LIBS[`defaultLib:${filename}`] = fs.readFileSync(filepath).toString();
- });
+ const RESOLVED_LIBS = processLibFiles(options);
const compilerOptions = ts.convertCompilerOptionsFromJson(options.compilerOptions, options.sourcesRoot).options;
@@ -205,6 +196,34 @@ function discoverAndReadFiles(options: ITreeShakingOptions): IFileMap {
return FILES;
}
+/**
+ * Read lib files and follow lib references
+ */
+function processLibFiles(options: ITreeShakingOptions): ILibMap {
+
+ const stack: string[] = [...options.compilerOptions.lib];
+ const result: ILibMap = {};
+
+ while (stack.length > 0) {
+ const filename = `lib.${stack.shift()!.toLowerCase()}.d.ts`;
+ const key = `defaultLib:${filename}`;
+ if (!result[key]) {
+ // add this file
+ const filepath = path.join(TYPESCRIPT_LIB_FOLDER, filename);
+ const sourceText = fs.readFileSync(filepath).toString();
+ result[key] = sourceText;
+
+ // precess dependencies and "recurse"
+ const info = ts.preProcessFile(sourceText);
+ for (let ref of info.libReferenceDirectives) {
+ stack.push(ref.fileName);
+ }
+ }
+ }
+
+ return result;
+}
+
interface ILibMap { [libName: string]: string; }
interface IFileMap { [fileName: string]: string; }
@@ -475,7 +494,7 @@ function markNodes(languageService: ts.LanguageService, options: ITreeShakingOpt
}
if (black_queue.length === 0) {
- for (let i = 0; i< gray_queue.length; i++) {
+ for (let i = 0; i < gray_queue.length; i++) {
const node = gray_queue[i];
const nodeParent = node.parent;
if ((ts.isClassDeclaration(nodeParent) || ts.isInterfaceDeclaration(nodeParent)) && nodeOrChildIsBlack(nodeParent)) {
diff --git a/build/lib/util.js b/build/lib/util.js
index 752d9fb63f0..d42670e67a5 100644
--- a/build/lib/util.js
+++ b/build/lib/util.js
@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
+exports.streamToPromise = exports.versionStringToNumber = exports.filter = exports.rebase = exports.getVersion = exports.ensureDir = exports.rreddir = exports.rimraf = exports.stripSourceMappingURL = exports.loadSourcemaps = exports.cleanNodeModules = exports.skipDirectories = exports.toFileUri = exports.setExecutableBit = exports.fixWin32DirectoryPermissions = exports.incremental = void 0;
const es = require("event-stream");
const debounce = require("debounce");
const _filter = require("gulp-filter");
diff --git a/build/monaco/ThirdPartyNotices.txt b/build/monaco/ThirdPartyNotices.txt
index 1de70ddaab6..8b488daf191 100644
--- a/build/monaco/ThirdPartyNotices.txt
+++ b/build/monaco/ThirdPartyNotices.txt
@@ -33,32 +33,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
END OF nodejs path library NOTICES AND INFORMATION
-%% promise-polyfill version 8.1.0 (https://github.com/taylorhakes/promise-polyfill)
-=========================================
-Copyright (c) 2014 Taylor Hakes
-Copyright (c) 2014 Forbes Lindesay
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-=========================================
-END OF winjs NOTICES AND INFORMATION
-
-
%% string_scorer version 0.1.20 (https://github.com/joshaven/string_score)
diff --git a/build/monaco/api.js b/build/monaco/api.js
index bd656f2bcd1..1de24d4065c 100644
--- a/build/monaco/api.js
+++ b/build/monaco/api.js
@@ -4,6 +4,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
+exports.execute = exports.run3 = exports.DeclarationResolver = exports.FSProvider = exports.RECIPE_PATH = void 0;
const fs = require("fs");
const ts = require("typescript");
const path = require("path");
diff --git a/build/package.json b/build/package.json
index d1cd1b063b7..8196dd52002 100644
--- a/build/package.json
+++ b/build/package.json
@@ -43,7 +43,7 @@
"minimist": "^1.2.0",
"request": "^2.85.0",
"terser": "4.3.8",
- "typescript": "3.8.2",
+ "typescript": "^3.9.0-dev.20200229",
"vsce": "1.48.0",
"vscode-telemetry-extractor": "^1.5.4",
"xml2js": "^0.4.17"
diff --git a/build/yarn.lock b/build/yarn.lock
index 53bc78757a8..fd19a1b7221 100644
--- a/build/yarn.lock
+++ b/build/yarn.lock
@@ -2453,16 +2453,16 @@ typed-rest-client@^0.9.0:
tunnel "0.0.4"
underscore "1.8.3"
-typescript@3.8.2:
- version "3.8.2"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.2.tgz#91d6868aaead7da74f493c553aeff76c0c0b1d5a"
- integrity sha512-EgOVgL/4xfVrCMbhYKUQTdF37SQn4Iw73H5BgCrF1Abdun7Kwy/QZsE/ssAy0y4LxBbvua3PIbFsbRczWWnDdQ==
-
typescript@^3.0.1:
version "3.5.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977"
integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==
+typescript@^3.9.0-dev.20200229:
+ version "3.9.0-dev.20200229"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.0-dev.20200229.tgz#45f0821d5c420a4c7d6d894c64531e1301dfa9bd"
+ integrity sha512-DtSLzxoiUir0qRc3+JJBxiAe6NvTEM3uDxnPxVWJU6sRDhUi8Ssx6DBjGWCZAQJlLk5A+jk2ptf3JvvZrQlLNQ==
+
typical@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4"
diff --git a/extensions/git/package.json b/extensions/git/package.json
index 1eaf39ad44b..5246020c6c2 100644
--- a/extensions/git/package.json
+++ b/extensions/git/package.json
@@ -1825,37 +1825,37 @@
},
"viewsWelcome": [
{
- "view": "workbench.scm",
+ "view": "scm",
"contents": "%view.workbench.scm.disabled%",
"when": "!config.git.enabled"
},
{
- "view": "workbench.scm",
+ "view": "scm",
"contents": "%view.workbench.scm.missing%",
"when": "config.git.enabled && git.missing"
},
{
- "view": "workbench.scm",
+ "view": "scm",
"contents": "%view.workbench.scm.empty%",
"when": "config.git.enabled && !git.missing && workbenchState == empty"
},
{
- "view": "workbench.scm",
+ "view": "scm",
"contents": "%view.workbench.scm.folder%",
"when": "config.git.enabled && !git.missing && workbenchState == folder"
},
{
- "view": "workbench.scm",
+ "view": "scm",
"contents": "%view.workbench.scm.workspace%",
"when": "config.git.enabled && !git.missing && workbenchState == workspace && workspaceFolderCount != 0"
},
{
- "view": "workbench.scm",
+ "view": "scm",
"contents": "%view.workbench.scm.emptyWorkspace%",
"when": "config.git.enabled && !git.missing && workbenchState == workspace && workspaceFolderCount == 0"
},
{
- "view": "workbench.explorer.emptyView",
+ "view": "explorer",
"contents": "%view.workbench.cloneRepository%"
}
]
diff --git a/extensions/git/package.nls.json b/extensions/git/package.nls.json
index 6328edd99bf..e163ffad48d 100644
--- a/extensions/git/package.nls.json
+++ b/extensions/git/package.nls.json
@@ -150,11 +150,11 @@
"colors.ignored": "Color for ignored resources.",
"colors.conflict": "Color for resources with conflicts.",
"colors.submodule": "Color for submodule resources.",
- "view.workbench.scm.missing": "A valid git installation was not detected, more details can be found in the [git output](command:git.showOutput).\nPlease [install git](https://git-scm.com/), or learn more about how to use Git and source control in VS Code in [our docs](https://aka.ms/vscode-scm).\nIf you're using a different version control system, you can [search the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22) for additional extensions.",
- "view.workbench.scm.disabled": "If you would like to use git features, please enable git in your [settings](command:workbench.action.openSettings?%5B%22git.enabled%22%5D).\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
- "view.workbench.scm.empty": "In order to use git features, you can open a folder containing a git repository or clone from a URL.\n[Open Folder](command:vscode.openFolder)\n[Clone Repository](command:git.clone)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
- "view.workbench.scm.folder": "The folder currently open doesn't have a git repository.\n[Initialize Repository](command:git.init?%5Btrue%5D)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
- "view.workbench.scm.workspace": "The workspace currently open doesn't have any folders containing git repositories.\n[Initialize Repository](command:git.init)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
- "view.workbench.scm.emptyWorkspace": "The workspace currently open doesn't have any folders containing git repositories.\n[Add Folder to Workspace](command:workbench.action.addRootFolder)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
- "view.workbench.cloneRepository": "You can also clone a repository from a URL. To learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).\n[Clone Repository](command:git.clone)"
+ "view.workbench.scm.missing": "A valid git installation was not detected, more details can be found in the [git output](command:git.showOutput).\nPlease [install git](https://git-scm.com/), or learn more about how to use git and source control in VS Code in [our docs](https://aka.ms/vscode-scm).\nIf you're using a different version control system, you can [search the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22) for additional extensions.",
+ "view.workbench.scm.disabled": "If you would like to use git features, please enable git in your [settings](command:workbench.action.openSettings?%5B%22git.enabled%22%5D).\nTo learn more about how to use git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
+ "view.workbench.scm.empty": "In order to use git features, you can open a folder containing a git repository or clone from a URL.\n[Open Folder](command:vscode.openFolder)\n[Clone Repository](command:git.clone)\nTo learn more about how to use git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
+ "view.workbench.scm.folder": "The folder currently open doesn't have a git repository.\n[Initialize Repository](command:git.init?%5Btrue%5D)\nTo learn more about how to use git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
+ "view.workbench.scm.workspace": "The workspace currently open doesn't have any folders containing git repositories.\n[Initialize Repository](command:git.init)\nTo learn more about how to use git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
+ "view.workbench.scm.emptyWorkspace": "The workspace currently open doesn't have any folders containing git repositories.\n[Add Folder to Workspace](command:workbench.action.addRootFolder)\nTo learn more about how to use git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
+ "view.workbench.cloneRepository": "You can also clone a repository from a URL. To learn more about how to use git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).\n[Clone Repository](command:git.clone)"
}
diff --git a/extensions/git/src/commands.ts b/extensions/git/src/commands.ts
index ad4d47485e7..a27fa783fc0 100644
--- a/extensions/git/src/commands.ts
+++ b/extensions/git/src/commands.ts
@@ -1397,12 +1397,16 @@ export class CommandCenter {
opts.signoff = true;
}
+ const smartCommitChanges = config.get<'all' | 'tracked'>('smartCommitChanges');
+
if (
(
// no changes
(noStagedChanges && noUnstagedChanges)
// or no staged changes and not `all`
|| (!opts.all && noStagedChanges)
+ // no staged changes and no tracked unstaged changes
+ || (noStagedChanges && smartCommitChanges === 'tracked' && repository.workingTreeGroup.resourceStates.every(r => r.type === Status.UNTRACKED))
)
&& !opts.empty
) {
@@ -1416,7 +1420,7 @@ export class CommandCenter {
return false;
}
- if (opts.all && config.get<'all' | 'tracked'>('smartCommitChanges') === 'tracked') {
+ if (opts.all && smartCommitChanges === 'tracked') {
opts.all = 'tracked';
}
@@ -2353,7 +2357,7 @@ export class CommandCenter {
else if (item.previousRef === 'HEAD' && item.ref === '~') {
title = localize('git.title.index', '{0} (Index)', basename);
} else {
- title = localize('git.title.diffRefs', '{0} ({1}) \u27f7 {0} ({2})', basename, item.shortPreviousRef, item.shortRef);
+ title = localize('git.title.diffRefs', '{0} ({1}) ⟷ {0} ({2})', basename, item.shortPreviousRef, item.shortRef);
}
return commands.executeCommand('vscode.diff', toGitUri(uri, item.previousRef), item.ref === '' ? uri : toGitUri(uri, item.ref), title);
diff --git a/extensions/git/src/timelineProvider.ts b/extensions/git/src/timelineProvider.ts
index 3fe8e306c95..872e5c36a80 100644
--- a/extensions/git/src/timelineProvider.ts
+++ b/extensions/git/src/timelineProvider.ts
@@ -80,7 +80,7 @@ export class GitTimelineProvider implements TimelineProvider {
constructor(private readonly _model: Model) {
this._disposable = Disposable.from(
_model.onDidOpenRepository(this.onRepositoriesChanged, this),
- workspace.registerTimelineProvider('*', this),
+ workspace.registerTimelineProvider(['file', 'git', 'gitlens-git'], this),
);
}
@@ -114,9 +114,9 @@ export class GitTimelineProvider implements TimelineProvider {
// TODO[ECA]: Ensure that the uri is a file -- if not we could get the history of the repo?
let limit: number | undefined;
- if (typeof options.limit === 'string') {
+ if (options.limit !== undefined && typeof options.limit !== 'number') {
try {
- const result = await this._model.git.exec(repo.root, ['rev-list', '--count', `${options.limit}..`, '--', uri.fsPath]);
+ const result = await this._model.git.exec(repo.root, ['rev-list', '--count', `${options.limit.cursor}..`, '--', uri.fsPath]);
if (!result.exitCode) {
// Ask for 1 more than so we can determine if there are more commits
limit = Number(result.stdout) + 1;
@@ -182,7 +182,7 @@ export class GitTimelineProvider implements TimelineProvider {
const item = new GitTimelineItem('~', 'HEAD', localize('git.timeline.stagedChanges', 'Staged Changes'), date.getTime(), 'index', 'git:file:index');
// TODO[ECA]: Replace with a better icon -- reflecting its status maybe?
item.iconPath = new (ThemeIcon as any)('git-commit');
- item.description = you;
+ item.description = '';
item.detail = localize('git.timeline.detail', '{0} \u2014 {1}\n{2}\n\n{3}', you, localize('git.index', 'Index'), dateFormatter.format('MMMM Do, YYYY h:mma'), Resource.getStatusText(index.type));
item.command = {
title: 'Open Comparison',
@@ -201,7 +201,7 @@ export class GitTimelineProvider implements TimelineProvider {
const item = new GitTimelineItem('', index ? '~' : 'HEAD', localize('git.timeline.uncommitedChanges', 'Uncommited Changes'), date.getTime(), 'working', 'git:file:working');
// TODO[ECA]: Replace with a better icon -- reflecting its status maybe?
item.iconPath = new (ThemeIcon as any)('git-commit');
- item.description = you;
+ item.description = '';
item.detail = localize('git.timeline.detail', '{0} \u2014 {1}\n{2}\n\n{3}', you, localize('git.workingTree', 'Working Tree'), dateFormatter.format('MMMM Do, YYYY h:mma'), Resource.getStatusText(working.type));
item.command = {
title: 'Open Comparison',
diff --git a/extensions/github-authentication/src/extension.ts b/extensions/github-authentication/src/extension.ts
index 943db6f20b5..c377e020939 100644
--- a/extensions/github-authentication/src/extension.ts
+++ b/extensions/github-authentication/src/extension.ts
@@ -16,7 +16,7 @@ export async function activate(context: vscode.ExtensionContext) {
await loginService.initialize();
vscode.authentication.registerAuthenticationProvider({
- id: 'GitHub',
+ id: 'github',
displayName: 'GitHub',
onDidChangeSessions: onDidChangeSessions.event,
getSessions: () => Promise.resolve(loginService.sessions),
diff --git a/extensions/github-authentication/src/github.ts b/extensions/github-authentication/src/github.ts
index 0f46d20d81b..52c7c4e333a 100644
--- a/extensions/github-authentication/src/github.ts
+++ b/extensions/github-authentication/src/github.ts
@@ -71,7 +71,7 @@ export class GitHubAuthenticationProvider {
id: session.id,
accountName: session.accountName,
scopes: session.scopes,
- accessToken: () => Promise.resolve(session.accessToken)
+ getAccessToken: () => Promise.resolve(session.accessToken)
};
});
} catch (e) {
@@ -84,7 +84,7 @@ export class GitHubAuthenticationProvider {
private async storeSessions(): Promise {
const sessionData: SessionData[] = await Promise.all(this._sessions.map(async session => {
- const resolvedAccessToken = await session.accessToken();
+ const resolvedAccessToken = await session.getAccessToken();
return {
id: session.id,
accountName: session.accountName,
@@ -111,7 +111,7 @@ export class GitHubAuthenticationProvider {
const userInfo = await this._githubServer.getUserInfo(token);
return {
id: userInfo.id,
- accessToken: () => Promise.resolve(token),
+ getAccessToken: () => Promise.resolve(token),
accountName: userInfo.accountName,
scopes: scopes
};
diff --git a/extensions/image-preview/package.json b/extensions/image-preview/package.json
index 998f3799f4d..48c7ae314a9 100644
--- a/extensions/image-preview/package.json
+++ b/extensions/image-preview/package.json
@@ -17,7 +17,7 @@
"Other"
],
"activationEvents": [
- "onWebviewEditor:imagePreview.previewEditor",
+ "onCustomEditor:imagePreview.previewEditor",
"onCommand:imagePreview.zoomIn",
"onCommand:imagePreview.zoomOut"
],
diff --git a/extensions/json-language-features/server/src/jsonServerMain.ts b/extensions/json-language-features/server/src/jsonServerMain.ts
index 4f40bd5a3fd..182eef7e9ee 100644
--- a/extensions/json-language-features/server/src/jsonServerMain.ts
+++ b/extensions/json-language-features/server/src/jsonServerMain.ts
@@ -160,7 +160,10 @@ connection.onInitialize((params: InitializeParams): InitializeResult => {
formatterMaxNumberOfEdits = params.initializationOptions?.customCapabilities?.rangeFormatting?.editLimit || Number.MAX_VALUE;
const capabilities: ServerCapabilities = {
textDocumentSync: TextDocumentSyncKind.Incremental,
- completionProvider: clientSnippetSupport ? { resolveProvider: true, triggerCharacters: ['"', ':'] } : undefined,
+ completionProvider: clientSnippetSupport ? {
+ resolveProvider: false, // turn off resolving as the current language service doesn't do anything on resolve. Also fixes #91747
+ triggerCharacters: ['"', ':']
+ } : undefined,
hoverProvider: true,
documentSymbolProvider: true,
documentRangeFormattingProvider: params.initializationOptions.provideFormatter === true,
diff --git a/extensions/markdown-language-features/package.json b/extensions/markdown-language-features/package.json
index f13d46a4b1c..dbc8746c913 100644
--- a/extensions/markdown-language-features/package.json
+++ b/extensions/markdown-language-features/package.json
@@ -26,7 +26,7 @@
"onCommand:markdown.showPreviewSecuritySelector",
"onCommand:markdown.api.render",
"onWebviewPanel:markdown.preview",
- "onWebviewEditor:vscode.markdown.preview.editor"
+ "onCustomEditor:vscode.markdown.preview.editor"
],
"contributes": {
"commands": [
diff --git a/extensions/package.json b/extensions/package.json
index b8e304b2343..7b4e8171c1f 100644
--- a/extensions/package.json
+++ b/extensions/package.json
@@ -3,7 +3,7 @@
"version": "0.0.1",
"description": "Dependencies shared by all extensions",
"dependencies": {
- "typescript": "3.8.2"
+ "typescript": "3.8.3"
},
"scripts": {
"postinstall": "node ./postinstall"
diff --git a/extensions/typescript-language-features/package.json b/extensions/typescript-language-features/package.json
index 7392a267a56..b3f12439bc8 100644
--- a/extensions/typescript-language-features/package.json
+++ b/extensions/typescript-language-features/package.json
@@ -638,6 +638,42 @@
"description": "%typescript.preferences.importModuleSpecifier%",
"scope": "resource"
},
+ "javascript.preferences.importModuleSpecifierEnding": {
+ "type": "string",
+ "enum": [
+ "auto",
+ "minimal",
+ "index",
+ "js"
+ ],
+ "markdownEnumDescriptions": [
+ "%typescript.preferences.importModuleSpecifierEnding.auto%",
+ "%typescript.preferences.importModuleSpecifierEnding.minimal%",
+ "%typescript.preferences.importModuleSpecifierEnding.index%",
+ "%typescript.preferences.importModuleSpecifierEnding.js%"
+ ],
+ "default": "auto",
+ "description": "%typescript.preferences.importModuleSpecifierEnding%",
+ "scope": "resource"
+ },
+ "typescript.preferences.importModuleSpecifierEnding": {
+ "type": "string",
+ "enum": [
+ "auto",
+ "minimal",
+ "index",
+ "js"
+ ],
+ "markdownEnumDescriptions": [
+ "%typescript.preferences.importModuleSpecifierEnding.auto%",
+ "%typescript.preferences.importModuleSpecifierEnding.minimal%",
+ "%typescript.preferences.importModuleSpecifierEnding.index%",
+ "%typescript.preferences.importModuleSpecifierEnding.js%"
+ ],
+ "default": "auto",
+ "description": "%typescript.preferences.importModuleSpecifierEnding%",
+ "scope": "resource"
+ },
"javascript.preferences.renameShorthandProperties": {
"type": "boolean",
"default": true,
diff --git a/extensions/typescript-language-features/package.nls.json b/extensions/typescript-language-features/package.nls.json
index a421936acb9..a2bf1f3eeed 100644
--- a/extensions/typescript-language-features/package.nls.json
+++ b/extensions/typescript-language-features/package.nls.json
@@ -70,6 +70,11 @@
"typescript.preferences.importModuleSpecifier.auto": "Automatically select import path style. Prefers using a relative import if `baseUrl` is configured and the relative path has fewer segments than the non-relative import.",
"typescript.preferences.importModuleSpecifier.relative": "Relative to the file location.",
"typescript.preferences.importModuleSpecifier.nonRelative": "Based on the `baseUrl` configured in your `jsconfig.json` / `tsconfig.json`.",
+ "typescript.preferences.importModuleSpecifierEnding": "Preferred path ending for auto imports.",
+ "typescript.preferences.importModuleSpecifierEnding.auto": "Use project settings to select a default.",
+ "typescript.preferences.importModuleSpecifierEnding.minimal": "Shorten `./component/index.js` to `./component`.",
+ "typescript.preferences.importModuleSpecifierEnding.index": "Shorten `./component/index.js` to `./component/index`",
+ "typescript.preferences.importModuleSpecifierEnding.js": "Do not shorten path endings; include the `.js` extension.",
"typescript.updateImportsOnFileMove.enabled": "Enable/disable automatic updating of import paths when you rename or move a file in VS Code. Requires using TypeScript 2.9 or newer in the workspace.",
"typescript.updateImportsOnFileMove.enabled.prompt": "Prompt on each rename.",
"typescript.updateImportsOnFileMove.enabled.always": "Always update paths automatically.",
diff --git a/extensions/typescript-language-features/src/features/fileConfigurationManager.ts b/extensions/typescript-language-features/src/features/fileConfigurationManager.ts
index cad4e5196b9..be7431eac9f 100644
--- a/extensions/typescript-language-features/src/features/fileConfigurationManager.ts
+++ b/extensions/typescript-language-features/src/features/fileConfigurationManager.ts
@@ -7,9 +7,10 @@ import * as vscode from 'vscode';
import type * as Proto from '../protocol';
import { ITypeScriptServiceClient } from '../typescriptService';
import API from '../utils/api';
+import { Disposable } from '../utils/dispose';
+import * as fileSchemes from '../utils/fileSchemes';
import { isTypeScriptDocument } from '../utils/languageModeIds';
import { ResourceMap } from '../utils/resourceMap';
-import { Disposable } from '../utils/dispose';
function objsAreEqual(a: T, b: T): boolean {
@@ -144,9 +145,7 @@ export default class FileConfigurationManager extends Disposable {
isTypeScriptDocument(document) ? 'typescript.format' : 'javascript.format',
document.uri);
- // `semicolons` added to `Proto.FormatCodeSettings` in TypeScript 3.7:
- // remove intersection type after upgrading TypeScript.
- const settings: Proto.FormatCodeSettings & { semicolons?: string } = {
+ return {
tabSize: options.tabSize,
indentSize: options.tabSize,
convertTabsToSpaces: options.insertSpaces,
@@ -169,8 +168,6 @@ export default class FileConfigurationManager extends Disposable {
placeOpenBraceOnNewLineForControlBlocks: config.get('placeOpenBraceOnNewLineForControlBlocks'),
semicolons: config.get('semicolons'),
};
-
- return settings;
}
private getPreferences(document: vscode.TextDocument): Proto.UserPreferences {
@@ -182,13 +179,18 @@ export default class FileConfigurationManager extends Disposable {
isTypeScriptDocument(document) ? 'typescript.preferences' : 'javascript.preferences',
document.uri);
- return {
+ // `importModuleSpecifierEnding` added to `Proto.UserPreferences` in TypeScript 3.9:
+ // remove intersection type after upgrading TypeScript.
+ const preferences: Proto.UserPreferences & { importModuleSpecifierEnding?: string } = {
quotePreference: this.getQuoteStylePreference(config),
importModuleSpecifierPreference: getImportModuleSpecifierPreference(config),
- allowTextChangesInNewFiles: document.uri.scheme === 'file',
+ importModuleSpecifierEnding: getImportModuleSpecifierEndingPreference(config),
+ allowTextChangesInNewFiles: document.uri.scheme === fileSchemes.file,
providePrefixAndSuffixTextForRename: config.get('renameShorthandProperties', true),
allowRenameOfImportPath: true,
};
+
+ return preferences;
}
private getQuoteStylePreference(config: vscode.WorkspaceConfiguration) {
@@ -207,3 +209,12 @@ function getImportModuleSpecifierPreference(config: vscode.WorkspaceConfiguratio
default: return undefined;
}
}
+
+function getImportModuleSpecifierEndingPreference(config: vscode.WorkspaceConfiguration) {
+ switch (config.get('importModuleSpecifierEnding')) {
+ case 'minimal': return 'minimal';
+ case 'index': return 'index';
+ case 'js': return 'js';
+ default: return 'auto';
+ }
+}
diff --git a/extensions/typescript-language-features/src/typescriptServiceClient.ts b/extensions/typescript-language-features/src/typescriptServiceClient.ts
index 2d256281438..64527b2918e 100644
--- a/extensions/typescript-language-features/src/typescriptServiceClient.ts
+++ b/extensions/typescript-language-features/src/typescriptServiceClient.ts
@@ -735,7 +735,7 @@ export default class TypeScriptServiceClient extends Disposable implements IType
"command" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
}
*/
- this.logTelemetry('fatalError', { command, ...(error instanceof TypeScriptServerError ? error.telemetry : {}) });
+ this.logTelemetry('fatalError', { ...(error instanceof TypeScriptServerError ? error.telemetry : { command }) });
console.error(`A non-recoverable error occured while executing tsserver command: ${command}`);
if (error instanceof TypeScriptServerError && error.serverErrorText) {
console.error(error.serverErrorText);
diff --git a/extensions/vscode-account/package.json b/extensions/vscode-account/package.json
index c4df52ce732..cd579aef85a 100644
--- a/extensions/vscode-account/package.json
+++ b/extensions/vscode-account/package.json
@@ -39,5 +39,8 @@
"tslint": "^5.12.1",
"@types/node": "^10.12.21",
"@types/keytar": "^4.0.1"
+ },
+ "dependencies": {
+ "vscode-nls": "^4.1.1"
}
}
diff --git a/extensions/vscode-account/package.nls.json b/extensions/vscode-account/package.nls.json
index 8211a3f6e9c..c0bb4c4a6a0 100644
--- a/extensions/vscode-account/package.nls.json
+++ b/extensions/vscode-account/package.nls.json
@@ -1,6 +1,6 @@
{
"displayName": "Microsoft Account",
"description": "Microsoft authentication provider",
- "signIn": "Sign in",
- "signOut": "Sign out"
+ "signIn": "Sign In",
+ "signOut": "Sign Out"
}
diff --git a/extensions/vscode-account/src/AADHelper.ts b/extensions/vscode-account/src/AADHelper.ts
index 5f193828141..16e7990be0b 100644
--- a/extensions/vscode-account/src/AADHelper.ts
+++ b/extensions/vscode-account/src/AADHelper.ts
@@ -184,7 +184,7 @@ export class AzureActiveDirectoryService {
private convertToSession(token: IToken): vscode.AuthenticationSession {
return {
id: token.sessionId,
- accessToken: () => this.resolveAccessToken(token),
+ getAccessToken: () => this.resolveAccessToken(token),
accountName: token.accountName,
scopes: token.scope.split(' ')
};
@@ -192,7 +192,9 @@ export class AzureActiveDirectoryService {
private async resolveAccessToken(token: IToken): Promise {
if (token.accessToken && (!token.expiresAt || token.expiresAt > Date.now())) {
- Logger.info('Token available from cache');
+ token.expiresAt
+ ? Logger.info(`Token available from cache, expires in ${token.expiresAt - Date.now()} milliseconds`)
+ : Logger.info('Token available from cache');
return Promise.resolve(token.accessToken);
}
diff --git a/extensions/vscode-account/src/extension.ts b/extensions/vscode-account/src/extension.ts
index 88f5f3133ed..e70fbe59cb0 100644
--- a/extensions/vscode-account/src/extension.ts
+++ b/extensions/vscode-account/src/extension.ts
@@ -5,6 +5,9 @@
import * as vscode from 'vscode';
import { AzureActiveDirectoryService, onDidChangeSessions } from './AADHelper';
+import * as nls from 'vscode-nls';
+
+const localize = nls.loadMessageBundle();
export const DEFAULT_SCOPES = 'https://management.core.windows.net/.default offline_access';
@@ -15,7 +18,7 @@ export async function activate(context: vscode.ExtensionContext) {
await loginService.initialize();
context.subscriptions.push(vscode.authentication.registerAuthenticationProvider({
- id: 'MSA',
+ id: 'microsoft',
displayName: 'Microsoft',
onDidChangeSessions: onDidChangeSessions.event,
getSessions: () => Promise.resolve(loginService.sessions),
@@ -45,6 +48,7 @@ export async function activate(context: vscode.ExtensionContext) {
if (sessions.length === 1) {
await loginService.logout(loginService.sessions[0].id);
onDidChangeSessions.fire();
+ vscode.window.showInformationMessage(localize('signedOut', "Successfully signed out."));
return;
}
@@ -58,6 +62,7 @@ export async function activate(context: vscode.ExtensionContext) {
if (selectedSession) {
await loginService.logout(selectedSession.id);
onDidChangeSessions.fire();
+ vscode.window.showInformationMessage(localize('signedOut', "Successfully signed out."));
return;
}
}));
diff --git a/extensions/vscode-account/yarn.lock b/extensions/vscode-account/yarn.lock
index 3acdda242e9..4a86ea6a2a2 100644
--- a/extensions/vscode-account/yarn.lock
+++ b/extensions/vscode-account/yarn.lock
@@ -635,6 +635,11 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+vscode-nls@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.1.tgz#f9916b64e4947b20322defb1e676a495861f133c"
+ integrity sha512-4R+2UoUUU/LdnMnFjePxfLqNhBS8lrAFyX7pjb2ud/lqDkrUavFUTcG7wR0HBZFakae0Q6KLBFjMS6W93F403A==
+
which-pm-runs@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"
diff --git a/extensions/yarn.lock b/extensions/yarn.lock
index 43a70c058c2..83bd84cdd90 100644
--- a/extensions/yarn.lock
+++ b/extensions/yarn.lock
@@ -2,7 +2,7 @@
# yarn lockfile v1
-typescript@3.8.2:
- version "3.8.2"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.2.tgz#91d6868aaead7da74f493c553aeff76c0c0b1d5a"
- integrity sha512-EgOVgL/4xfVrCMbhYKUQTdF37SQn4Iw73H5BgCrF1Abdun7Kwy/QZsE/ssAy0y4LxBbvua3PIbFsbRczWWnDdQ==
+typescript@3.8.3:
+ version "3.8.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061"
+ integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==
diff --git a/package.json b/package.json
index 7910be5d9ae..3cdbce18f68 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "code-oss-dev",
- "version": "1.43.0",
- "distro": "d9ed2bff7e779c71264b0c08311d08192924f473",
+ "version": "1.44.0",
+ "distro": "5ddb4bf6f3cbd0c5940960a7dd5dd3790d1d844e",
"author": {
"name": "Microsoft Corporation"
},
@@ -150,13 +150,13 @@
"source-map": "^0.4.4",
"style-loader": "^1.0.0",
"ts-loader": "^4.4.2",
- "typescript": "3.8.2",
+ "typescript": "^3.9.0-dev.20200229",
"typescript-formatter": "7.1.0",
"underscore": "^1.8.2",
"vinyl": "^2.0.0",
"vinyl-fs": "^3.0.0",
"vsce": "1.48.0",
- "vscode-debugprotocol": "1.39.0-pre.0",
+ "vscode-debugprotocol": "1.39.0",
"vscode-nls-dev": "^3.3.1",
"webpack": "^4.16.5",
"webpack-cli": "^3.3.8",
@@ -177,4 +177,4 @@
"windows-mutex": "0.3.0",
"windows-process-tree": "0.2.4"
}
-}
+}
\ No newline at end of file
diff --git a/resources/linux/snap/electron-launch b/resources/linux/snap/electron-launch
index 2a1c4395187..9f4eb6a23b8 100755
--- a/resources/linux/snap/electron-launch
+++ b/resources/linux/snap/electron-launch
@@ -2,7 +2,7 @@
# On Fedora $SNAP is under /var and there is some magic to map it to /snap.
# We need to handle that case and reset $SNAP
-SNAP=$(echo $SNAP | sed -e "s|/var/lib/snapd||g")
+SNAP=$(echo "$SNAP" | sed -e "s|/var/lib/snapd||g")
if [ "$SNAP_ARCH" == "amd64" ]; then
ARCH="x86_64-linux-gnu"
@@ -14,21 +14,21 @@ else
ARCH="$SNAP_ARCH-linux-gnu"
fi
-export XDG_CACHE_HOME=$SNAP_USER_COMMON/.cache
-if [[ -d $SNAP_USER_DATA/.cache && ! -e $XDG_CACHE_HOME ]]; then
+GDK_CACHE_DIR="$SNAP_USER_COMMON/.cache"
+if [[ -d "$SNAP_USER_DATA/.cache" && ! -e "$GDK_CACHE_DIR" ]]; then
# the .cache directory used to be stored under $SNAP_USER_DATA, migrate it
- mv $SNAP_USER_DATA/.cache $SNAP_USER_COMMON/
+ mv "$SNAP_USER_DATA/.cache" "$SNAP_USER_COMMON/"
fi
-mkdir -p $XDG_CACHE_HOME
+[ ! -d "$GDK_CACHE_DIR" ] && mkdir -p "$GDK_CACHE_DIR"
# Gdk-pixbuf loaders
-export GDK_PIXBUF_MODULE_FILE=$XDG_CACHE_HOME/gdk-pixbuf-loaders.cache
-export GDK_PIXBUF_MODULEDIR=$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/2.10.0/loaders
-if [ -f $SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders ]; then
- $SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders > $GDK_PIXBUF_MODULE_FILE
+export GDK_PIXBUF_MODULE_FILE="$GDK_CACHE_DIR/gdk-pixbuf-loaders.cache"
+export GDK_PIXBUF_MODULEDIR="$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/2.10.0/loaders"
+if [ -f "$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" ]; then
+ "$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" > "$GDK_PIXBUF_MODULE_FILE"
fi
# Create $XDG_RUNTIME_DIR if not exists (to be removed when https://pad.lv/1656340 is fixed)
-[ -n "$XDG_RUNTIME_DIR" ] && mkdir -p $XDG_RUNTIME_DIR -m 700
+[ -n "$XDG_RUNTIME_DIR" ] && mkdir -p "$XDG_RUNTIME_DIR" -m 700
exec "$@"
diff --git a/src/bootstrap-window.js b/src/bootstrap-window.js
index 0ab195f924f..cc925afa0b7 100644
--- a/src/bootstrap-window.js
+++ b/src/bootstrap-window.js
@@ -31,7 +31,7 @@ exports.load = function (modulePaths, resultCallback, options) {
const args = parseURLQueryArgs();
/**
- * // configuration: IWindowConfiguration
+ * // configuration: INativeWindowConfiguration
* @type {{
* zoomLevel?: number,
* extensionDevelopmentPath?: string[],
diff --git a/src/main.js b/src/main.js
index bc268c8cd12..e1df5deb07c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -175,7 +175,7 @@ function configureCommandlineSwitchesSync(cliArgs) {
app.commandLine.appendSwitch('js-flags', jsFlags);
}
- // TODO@Ben TODO@Deepak Electron 7 workaround for https://github.com/microsoft/vscode/issues/88873
+ // TODO@Deepak Electron 7 workaround for https://github.com/microsoft/vscode/issues/88873
app.commandLine.appendSwitch('disable-features', 'LayoutNG');
return argvConfig;
diff --git a/src/tsconfig.base.json b/src/tsconfig.base.json
index 73985c6c9af..b8dab46bfb6 100644
--- a/src/tsconfig.base.json
+++ b/src/tsconfig.base.json
@@ -12,6 +12,13 @@
"vs/*": [
"./vs/*"
]
- }
+ },
+ "lib": [
+ "ES2015",
+ "ES2018.Promise",
+ "DOM",
+ "DOM.Iterable",
+ "WebWorker.ImportScripts"
+ ]
}
}
diff --git a/src/tsconfig.json b/src/tsconfig.json
index b8cc1caf2cd..9419d9af0f4 100644
--- a/src/tsconfig.json
+++ b/src/tsconfig.json
@@ -6,11 +6,6 @@
"sourceMap": false,
"outDir": "../out",
"target": "es2017",
- "lib": [
- "dom",
- "es5",
- "es2015.iterable"
- ],
"types": [
"keytar",
"mocha",
@@ -22,8 +17,5 @@
"include": [
"./typings",
"./vs"
- ],
- "exclude": [
- "./typings/es6-promise.d.ts"
]
}
diff --git a/src/tsconfig.monaco.json b/src/tsconfig.monaco.json
index a6430a44ccb..1e169f96b3a 100644
--- a/src/tsconfig.monaco.json
+++ b/src/tsconfig.monaco.json
@@ -8,17 +8,14 @@
"moduleResolution": "classic",
"removeComments": false,
"preserveConstEnums": true,
- "target": "es5",
+ "target": "es6",
"sourceMap": false,
"declaration": true
},
"include": [
"typings/require.d.ts",
"typings/thenable.d.ts",
- "typings/es6-promise.d.ts",
- "typings/lib.es2018.promise.d.ts",
"typings/lib.array-ext.d.ts",
- "typings/lib.ie11_safe_es6.d.ts",
"vs/css.d.ts",
"vs/monaco.d.ts",
"vs/nls.d.ts",
diff --git a/src/typings/es2015-proxy.d.ts b/src/typings/es2015-proxy.d.ts
deleted file mode 100644
index 00f7c2b0642..00000000000
--- a/src/typings/es2015-proxy.d.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-/*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
-
-// from TypeScript: lib.es2015.proxy.d.ts
-
-interface ProxyHandler {
- getPrototypeOf?(target: T): object | null;
- setPrototypeOf?(target: T, v: any): boolean;
- isExtensible?(target: T): boolean;
- preventExtensions?(target: T): boolean;
- getOwnPropertyDescriptor?(target: T, p: PropertyKey): PropertyDescriptor | undefined;
- has?(target: T, p: PropertyKey): boolean;
- get?(target: T, p: PropertyKey, receiver: any): any;
- set?(target: T, p: PropertyKey, value: any, receiver: any): boolean;
- deleteProperty?(target: T, p: PropertyKey): boolean;
- defineProperty?(target: T, p: PropertyKey, attributes: PropertyDescriptor): boolean;
- enumerate?(target: T): PropertyKey[];
- ownKeys?(target: T): PropertyKey[];
- apply?(target: T, thisArg: any, argArray?: any): any;
- construct?(target: T, argArray: any, newTarget?: any): object;
-}
-
-interface ProxyConstructor {
- revocable(target: T, handler: ProxyHandler): { proxy: T; revoke: () => void; };
- new (target: T, handler: ProxyHandler): T;
-}
-declare var Proxy: ProxyConstructor;
diff --git a/src/typings/es6-promise.d.ts b/src/typings/es6-promise.d.ts
deleted file mode 100644
index 2d3271e2848..00000000000
--- a/src/typings/es6-promise.d.ts
+++ /dev/null
@@ -1,89 +0,0 @@
-// Type definitions for es6-promise
-// Project: https://github.com/jakearchibald/ES6-Promise
-// Definitions by: François de Campredon , vvakame
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
-interface Thenable {
- then(onFulfilled?: (value: T) => U | Thenable, onRejected?: (error: any) => U | Thenable): Thenable;
- then(onFulfilled?: (value: T) => U | Thenable, onRejected?: (error: any) => void): Thenable;
-}
-
-declare class Promise implements Thenable {
- /**
- * If you call resolve in the body of the callback passed to the constructor,
- * your promise is fulfilled with result object passed to resolve.
- * If you call reject your promise is rejected with the object passed to reject.
- * For consistency and debugging (eg stack traces), obj should be an instanceof Error.
- * Any errors thrown in the constructor callback will be implicitly passed to reject().
- */
- constructor(callback: (resolve: (value?: T | Thenable) => void, reject: (error?: any) => void) => void);
-
- /**
- * onFulfilled is called when/if "promise" resolves. onRejected is called when/if "promise" rejects.
- * Both are optional, if either/both are omitted the next onFulfilled/onRejected in the chain is called.
- * Both callbacks have a single parameter , the fulfillment value or rejection reason.
- * "then" returns a new promise equivalent to the value you return from onFulfilled/onRejected after being passed through Promise.resolve.
- * If an error is thrown in the callback, the returned promise rejects with that error.
- *
- * @param onFulfilled called when/if "promise" resolves
- * @param onRejected called when/if "promise" rejects
- */
- then(onFulfilled?: (value: T) => U | Thenable, onRejected?: (error: any) => U | Thenable): Promise;
- then(onFulfilled?: (value: T) => U | Thenable, onRejected?: (error: any) => void): Promise;
-
- /**
- * Sugar for promise.then(undefined, onRejected)
- *
- * @param onRejected called when/if "promise" rejects
- */
- catch(onRejected?: (error: any) => U | Thenable): Promise;
-}
-
-declare namespace Promise {
- /**
- * Make a new promise from the thenable.
- * A thenable is promise-like in as far as it has a "then" method.
- */
- function resolve(value: T | Thenable): Promise;
-
- /**
- *
- */
- function resolve(): Promise;
-
- /**
- * Make a promise that rejects to obj. For consistency and debugging (eg stack traces), obj should be an instanceof Error
- */
- function reject(error: any): Promise;
- function reject(error: T): Promise;
-
- /**
- * Make a promise that fulfills when every item in the array fulfills, and rejects if (and when) any item rejects.
- * the array passed to all can be a mixture of promise-like objects and other objects.
- * The fulfillment value is an array (in order) of fulfillment values. The rejection value is the first rejection value.
- */
- function all(values: [T1 | Thenable, T2 | Thenable, T3 | Thenable, T4 | Thenable, T5 | Thenable, T6 | Thenable, T7 | Thenable, T8 | Thenable, T9 | Thenable, T10 | Thenable]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
- function all(values: [T1 | Thenable, T2 | Thenable, T3 | Thenable, T4 | Thenable, T5 | Thenable, T6 | Thenable, T7 | Thenable, T8 | Thenable, T9 | Thenable]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
- function all(values: [T1 | Thenable, T2 | Thenable, T3 | Thenable, T4 | Thenable, T5 | Thenable, T6 | Thenable, T7 | Thenable, T8 | Thenable]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
- function all(values: [T1 | Thenable, T2 | Thenable, T3 | Thenable, T4 | Thenable, T5 | Thenable, T6 | Thenable, T7 | Thenable]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
- function all(values: [T1 | Thenable, T2 | Thenable, T3 | Thenable, T4 | Thenable, T5 | Thenable, T6 | Thenable]): Promise<[T1, T2, T3, T4, T5, T6]>;
- function all(values: [T1 | Thenable, T2 | Thenable, T3 | Thenable, T4 | Thenable, T5 | Thenable]): Promise<[T1, T2, T3, T4, T5]>;
- function all(values: [T1 | Thenable, T2 | Thenable, T3 | Thenable, T4 | Thenable]): Promise<[T1, T2, T3, T4]>;
- function all(values: [T1 | Thenable, T2 | Thenable, T3 | Thenable]): Promise<[T1, T2, T3]>;
- function all(values: [T1 | Thenable, T2 | Thenable]): Promise<[T1, T2]>;
- function all(values: (T | Thenable)[]): Promise;
-
- /**
- * Make a Promise that fulfills when any item fulfills, and rejects if any item rejects.
- */
- function race(promises: (T | Thenable)[]): Promise;
-}
-
-declare module 'es6-promise' {
- var foo: typeof Promise; // Temp variable to reference Promise in local context
- namespace rsvp {
- export var Promise: typeof foo;
- export function polyfill(): void;
- }
- export = rsvp;
-}
diff --git a/src/typings/lib.es2018.promise.d.ts b/src/typings/lib.es2018.promise.d.ts
deleted file mode 100644
index 9f7b2d38cb2..00000000000
--- a/src/typings/lib.es2018.promise.d.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation. All rights reserved.
-Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-this file except in compliance with the License. You may obtain a copy of the
-License at http://www.apache.org/licenses/LICENSE-2.0
-
-THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
-MERCHANTABLITY OR NON-INFRINGEMENT.
-
-See the Apache Version 2.0 License for specific language governing permissions
-and limitations under the License.
-***************************************************************************** */
-
-/**
- * Represents the completion of an asynchronous operation
- */
-interface Promise {
- /**
- * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
- * resolved value cannot be modified from the callback.
- * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
- * @returns A Promise for the completion of the callback.
- */
- finally(onfinally?: (() => void) | undefined | null): Promise;
-}
diff --git a/src/typings/lib.ie11_safe_es6.d.ts b/src/typings/lib.ie11_safe_es6.d.ts
deleted file mode 100644
index 4d54d3c08ef..00000000000
--- a/src/typings/lib.ie11_safe_es6.d.ts
+++ /dev/null
@@ -1,821 +0,0 @@
-/*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
-
-// Defined a subset of ES6 built ins that run in IE11
-// CHECK WITH http://kangax.github.io/compat-table/es6/#ie11
-
-interface Map {
- clear(): void;
- delete(key: K): boolean;
- forEach(callbackfn: (value: V, index: K, map: Map) => void, thisArg?: any): void;
- get(key: K): V | undefined;
- has(key: K): boolean;
- set(key: K, value: V): Map;
- readonly size: number;
-
- // not supported on IE11:
- // entries(): IterableIterator<[K, V]>;
- // keys(): IterableIterator;
- // values(): IterableIterator;
- // [Symbol.iterator]():IterableIterator<[K,V]>;
- // [Symbol.toStringTag]: string;
-}
-
-interface MapConstructor {
- new (): Map;
- readonly prototype: Map;
-
- // not supported on IE11:
- // new (iterable: Iterable<[K, V]>): Map;
-}
-declare var Map: MapConstructor;
-
-
-interface Set {
- add(value: T): Set;
- clear(): void;
- delete(value: T): boolean;
- forEach(callbackfn: (value: T, index: T, set: Set) => void, thisArg?: any): void;
- has(value: T): boolean;
- readonly size: number;
-
- // not supported on IE11:
- // entries(): IterableIterator<[T, T]>;
- // keys(): IterableIterator;
- // values(): IterableIterator;
- // [Symbol.iterator]():IterableIterator;
- // [Symbol.toStringTag]: string;
-}
-
-interface SetConstructor {
- new (): Set;
- readonly prototype: Set;
-
- // not supported on IE11:
- // new (iterable: Iterable): Set;
-}
-declare var Set: SetConstructor;
-
-
-interface WeakMap {
- delete(key: K): boolean;
- get(key: K): V | undefined;
- has(key: K): boolean;
- // IE11 doesn't return this
- // set(key: K, value?: V): this;
- set(key: K, value?: V): undefined;
-}
-
-interface WeakMapConstructor {
- new(): WeakMap;
- new (): WeakMap;
- // new (entries?: [K, V][]): WeakMap;
- readonly prototype: WeakMap