Initial
This commit is contained in:
6
Client/node_modules/vscode/bin/compile
generated
vendored
Executable file
6
Client/node_modules/vscode/bin/compile
generated
vendored
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
console.log('The vscode extension module got updated to TypeScript 2.0.x.');
|
||||
console.log('Please see https://code.visualstudio.com/updates/v1_6#_extension-authoring for instruction on how to migrate your extension.');
|
||||
|
||||
process.exit(1);
|
||||
135
Client/node_modules/vscode/bin/install
generated
vendored
Executable file
135
Client/node_modules/vscode/bin/install
generated
vendored
Executable file
@@ -0,0 +1,135 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var semver = require('semver');
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var shared = require('../lib/shared');
|
||||
|
||||
process.on('uncaughtException', function (err) {
|
||||
exitWithError(err);
|
||||
});
|
||||
|
||||
var engine = process.env.npm_package_engines_vscode;
|
||||
if (!engine) {
|
||||
exitWithError('Missing VSCode engine declaration in package.json.');
|
||||
}
|
||||
|
||||
var vscodeDtsTypescriptPath = path.join(path.dirname(__dirname), 'vscode.d.ts');
|
||||
|
||||
console.log('Detected VS Code engine version: ' + engine);
|
||||
|
||||
getURLMatchingEngine(engine, function (_, data) {
|
||||
console.log('Fetching vscode.d.ts from: ' + data.url);
|
||||
|
||||
shared.getContents(data.url, process.env.GITHUB_TOKEN, null, function (error, contents) {
|
||||
if (error) {
|
||||
exitWithError(error);
|
||||
}
|
||||
|
||||
if (contents === 'Not Found') {
|
||||
exitWithError(new Error('Could not find vscode.d.ts at the provided URL. Please report this to https://github.com/Microsoft/vscode/issues'));
|
||||
}
|
||||
|
||||
if (data.version !== '*' && semver.lt(data.version, '1.7.0')) {
|
||||
// Older versions of vscode.d.ts need a massage to play nice.
|
||||
contents = vscodeDtsToTypescript(contents);
|
||||
}
|
||||
|
||||
fs.writeFileSync(vscodeDtsTypescriptPath, contents);
|
||||
|
||||
console.log('vscode.d.ts successfully installed!\n');
|
||||
});
|
||||
});
|
||||
|
||||
function vscodeDtsToTypescript(contents) {
|
||||
var markerHit = false;
|
||||
var lines = contents.split('\n').filter(function (line) {
|
||||
if (!markerHit && (line === '// when used for JS*' || line === 'declare module \'vscode\' {')) {
|
||||
markerHit = true;
|
||||
}
|
||||
|
||||
return !markerHit;
|
||||
});
|
||||
|
||||
lines.unshift('/// <reference path="./thenable.d.ts" />');
|
||||
lines.push('export = vscode;'); // this is to enable TS module resolution support
|
||||
|
||||
return lines.join('\n');
|
||||
}
|
||||
|
||||
function getURLMatchingEngine(engine, callback) {
|
||||
if (engine === '*') {
|
||||
// master
|
||||
return callback(null, {
|
||||
url: 'https://raw.githubusercontent.com/Microsoft/vscode/master/src/vs/vscode.d.ts',
|
||||
version: '*'
|
||||
});
|
||||
}
|
||||
|
||||
shared.getContents('https://vscode-update.azurewebsites.net/api/releases/stable', null, { "X-API-Version": "2" }, function (error, tagsRaw) {
|
||||
if (error) {
|
||||
exitWithError(error);
|
||||
}
|
||||
|
||||
var tagsAndCommits;
|
||||
try {
|
||||
tagsAndCommits = JSON.parse(tagsRaw);
|
||||
} catch (error) {
|
||||
exitWithError(error);
|
||||
}
|
||||
|
||||
var mapTagsToCommits = Object.create(null);
|
||||
for (var i = 0; i < tagsAndCommits.length; i++) {
|
||||
var tagAndCommit = tagsAndCommits[i];
|
||||
mapTagsToCommits[tagAndCommit.version] = tagAndCommit.id;
|
||||
}
|
||||
|
||||
var tags = Object.keys(mapTagsToCommits);
|
||||
|
||||
var tag = minSatisfying(tags, engine);
|
||||
|
||||
// check if master is on the version specified
|
||||
if (!tag) {
|
||||
return shared.getContents('https://raw.githubusercontent.com/Microsoft/vscode/master/package.json', process.env.GITHUB_TOKEN, null, function (error, packageJson) {
|
||||
if (error) {
|
||||
exitWithError(error);
|
||||
}
|
||||
|
||||
var version = JSON.parse(packageJson).version;
|
||||
if (semver.satisfies(version, engine)) {
|
||||
// master
|
||||
return callback(null, {
|
||||
url: 'https://raw.githubusercontent.com/Microsoft/vscode/master/src/vs/vscode.d.ts',
|
||||
version: version
|
||||
});
|
||||
}
|
||||
|
||||
exitWithError('Could not find satifying VSCode for version ' + engine + ' in the tags: [' + tags.join(', ') + '] or on master: ' + version);
|
||||
});
|
||||
}
|
||||
|
||||
console.log('Found minimal version that qualifies engine range: ' + tag);
|
||||
|
||||
return callback(null, {
|
||||
url: 'https://raw.githubusercontent.com/Microsoft/vscode/' + mapTagsToCommits[tag] + '/src/vs/vscode.d.ts',
|
||||
version: tag
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function minSatisfying(versions, range) {
|
||||
return versions.filter(function (version) {
|
||||
try {
|
||||
return semver.satisfies(version, range);
|
||||
} catch (error) {
|
||||
return false; // version might be invalid so we return as not matching
|
||||
}
|
||||
}).sort(function (a, b) {
|
||||
return semver.compare(a, b);
|
||||
})[0] || null;
|
||||
}
|
||||
|
||||
function exitWithError(error) {
|
||||
console.error('Error installing vscode.d.ts: ' + error.toString());
|
||||
process.exit(1);
|
||||
}
|
||||
157
Client/node_modules/vscode/bin/test
generated
vendored
Executable file
157
Client/node_modules/vscode/bin/test
generated
vendored
Executable file
@@ -0,0 +1,157 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var remote = require('gulp-remote-src-vscode');
|
||||
var vzip = require('gulp-vinyl-zip');
|
||||
var symdest = require('gulp-symdest');
|
||||
var untar = require('gulp-untar');
|
||||
var gunzip = require('gulp-gunzip');
|
||||
var chmod = require('gulp-chmod');
|
||||
var filter = require('gulp-filter');
|
||||
var path = require('path');
|
||||
var cp = require('child_process');
|
||||
var fs = require('fs');
|
||||
var shared = require('../lib/shared');
|
||||
var request = require('request');
|
||||
var source = require('vinyl-source-stream');
|
||||
|
||||
var version = process.env.CODE_VERSION || '*';
|
||||
var isInsiders = version === 'insiders';
|
||||
|
||||
var testRunFolder = path.join('.vscode-test', isInsiders ? 'insiders' : 'stable');
|
||||
var testRunFolderAbsolute = path.join(process.cwd(), testRunFolder);
|
||||
|
||||
var downloadPlatform = (process.platform === 'darwin') ? 'darwin' : process.platform === 'win32' ? 'win32-archive' : 'linux-x64';
|
||||
|
||||
var windowsExecutable;
|
||||
var darwinExecutable;
|
||||
var linuxExecutable;
|
||||
|
||||
if (isInsiders) {
|
||||
windowsExecutable = path.join(testRunFolderAbsolute, 'Code - Insiders.exe');
|
||||
darwinExecutable = path.join(testRunFolderAbsolute, 'Visual Studio Code - Insiders.app', 'Contents', 'MacOS', 'Electron');
|
||||
linuxExecutable = path.join(testRunFolderAbsolute, 'VSCode-linux-x64', 'code-insiders');
|
||||
} else {
|
||||
windowsExecutable = path.join(testRunFolderAbsolute, 'Code.exe');
|
||||
darwinExecutable = path.join(testRunFolderAbsolute, 'Visual Studio Code.app', 'Contents', 'MacOS', 'Electron');
|
||||
linuxExecutable = path.join(testRunFolderAbsolute, 'VSCode-linux-x64', 'code');
|
||||
if (['0.10.1', '0.10.2', '0.10.3', '0.10.4', '0.10.5', '0.10.6', '0.10.7', '0.10.8', '0.10.9'].indexOf(version) >= 0) {
|
||||
linuxExecutable = path.join(testRunFolderAbsolute, 'VSCode-linux-x64', 'Code');
|
||||
}
|
||||
}
|
||||
|
||||
var testsFolder;
|
||||
if (process.env.CODE_TESTS_PATH) {
|
||||
testsFolder = process.env.CODE_TESTS_PATH;
|
||||
} else if (fs.existsSync(path.join(process.cwd(), 'out', 'test'))) {
|
||||
testsFolder = path.join(process.cwd(), 'out', 'test'); // TS extension
|
||||
} else {
|
||||
testsFolder = path.join(process.cwd(), 'test'); // JS extension
|
||||
}
|
||||
|
||||
var testsWorkspace = process.env.CODE_TESTS_WORKSPACE || testsFolder;
|
||||
var extensionsFolder = process.env.CODE_EXTENSIONS_PATH || process.cwd();
|
||||
var executable = (process.platform === 'darwin') ? darwinExecutable : process.platform === 'win32' ? windowsExecutable : linuxExecutable;
|
||||
|
||||
console.log('### VS Code Extension Test Run ###');
|
||||
console.log('Current working directory: ' + process.cwd());
|
||||
|
||||
function runTests() {
|
||||
var args = [
|
||||
testsWorkspace,
|
||||
'--extensionDevelopmentPath=' + extensionsFolder,
|
||||
'--extensionTestsPath=' + testsFolder
|
||||
];
|
||||
|
||||
console.log('Running extension tests: ' + [executable, args.join(' ')].join(' '));
|
||||
|
||||
var cmd = cp.spawn(executable, args);
|
||||
|
||||
cmd.stdout.on('data', function (data) {
|
||||
console.log(data.toString());
|
||||
});
|
||||
|
||||
cmd.stderr.on('data', function (data) {
|
||||
console.error(data.toString());
|
||||
});
|
||||
|
||||
cmd.on('error', function (data) {
|
||||
console.log('Failed to execute tests: ' + data.toString());
|
||||
});
|
||||
|
||||
cmd.on('close', function (code) {
|
||||
console.log('Tests exited with code: ' + code);
|
||||
|
||||
if (code !== 0) {
|
||||
process.exit(code); // propagate exit code to outer runner
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function downloadExecutableAndRunTests() {
|
||||
getDownloadUrl(function (downloadUrl) {
|
||||
console.log('Downloading VS Code into "' + testRunFolderAbsolute + '" from: ' + downloadUrl);
|
||||
|
||||
var version = downloadUrl.match(/\d+\.\d+\.\d+/)[0].split('\.');
|
||||
var isTarGz = downloadUrl.match(/linux/) && version[0] >= 1 && version[1] >= 5;
|
||||
|
||||
var stream;
|
||||
if (isTarGz) {
|
||||
var gulpFilter = filter(['VSCode-linux-x64/code', 'VSCode-linux-x64/code-insiders', 'VSCode-linux-x64/resources/app/node_modules*/vscode-ripgrep/**/rg'], { restore: true });
|
||||
stream = request(downloadUrl)
|
||||
.pipe(source(path.basename(downloadUrl)))
|
||||
.pipe(gunzip())
|
||||
.pipe(untar())
|
||||
.pipe(gulpFilter)
|
||||
.pipe(chmod(493)) // 0o755
|
||||
.pipe(gulpFilter.restore)
|
||||
.pipe(symdest(testRunFolder));
|
||||
} else {
|
||||
stream = remote('', { base: downloadUrl })
|
||||
.pipe(vzip.src())
|
||||
.pipe(symdest(testRunFolder));
|
||||
}
|
||||
|
||||
stream.on('end', runTests);
|
||||
});
|
||||
}
|
||||
|
||||
function getDownloadUrl(clb) {
|
||||
if (process.env.CODE_DOWNLOAD_URL) {
|
||||
return clb(process.env.CODE_DOWNLOAD_URL);
|
||||
}
|
||||
|
||||
getTag(function (tag) {
|
||||
return clb(['https://vscode-update.azurewebsites.net', tag, downloadPlatform, (isInsiders ? 'insider' : 'stable')].join('/'));
|
||||
});
|
||||
}
|
||||
|
||||
function getTag(clb) {
|
||||
if (version !== '*' && version !== 'insiders') {
|
||||
return clb(version);
|
||||
}
|
||||
|
||||
shared.getContents('https://vscode-update.azurewebsites.net/api/releases/' + (isInsiders ? 'insider/' : 'stable/') + downloadPlatform, null, null, function (error, tagsRaw) {
|
||||
if (error) {
|
||||
exitWithError(error);
|
||||
}
|
||||
|
||||
try {
|
||||
clb(JSON.parse(tagsRaw)[0]); // first one is latest
|
||||
} catch (error) {
|
||||
exitWithError(error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
fs.exists(executable, function (exists) {
|
||||
if (exists) {
|
||||
runTests();
|
||||
} else {
|
||||
downloadExecutableAndRunTests();
|
||||
}
|
||||
});
|
||||
|
||||
function exitWithError(error) {
|
||||
console.error('Error running tests: ' + error.toString());
|
||||
process.exit(1);
|
||||
}
|
||||
Reference in New Issue
Block a user