Run unit tests against node.js too (#137790)
* tests - run unit tests also against node.js * fixes * fail if major node.js version mismatch * -tfs is unsupported * Add `@ts-check` and remove `jsdom` * tests - process.env layer breaker * Improve loader config * skip one test * address todos * try to force color output * Use a file: URI as baseUrl Co-authored-by: Alex Dima <alexdima@microsoft.com>
This commit is contained in:
parent
bb7a76bf2b
commit
754190f326
10
.github/workflows/ci.yml
vendored
10
.github/workflows/ci.yml
vendored
|
@ -72,6 +72,9 @@ jobs:
|
||||||
- name: Run Unit Tests (Electron)
|
- name: Run Unit Tests (Electron)
|
||||||
run: .\scripts\test.bat
|
run: .\scripts\test.bat
|
||||||
|
|
||||||
|
- name: Run Unit Tests (node.js)
|
||||||
|
run: yarn test-node
|
||||||
|
|
||||||
- name: Run Unit Tests (Browser)
|
- name: Run Unit Tests (Browser)
|
||||||
run: yarn test-browser --browser chromium
|
run: yarn test-browser --browser chromium
|
||||||
|
|
||||||
|
@ -147,6 +150,10 @@ jobs:
|
||||||
id: electron-unit-tests
|
id: electron-unit-tests
|
||||||
run: DISPLAY=:10 ./scripts/test.sh
|
run: DISPLAY=:10 ./scripts/test.sh
|
||||||
|
|
||||||
|
- name: Run Unit Tests (node.js)
|
||||||
|
id: nodejs-unit-tests
|
||||||
|
run: yarn test-node
|
||||||
|
|
||||||
- name: Run Unit Tests (Browser)
|
- name: Run Unit Tests (Browser)
|
||||||
id: browser-unit-tests
|
id: browser-unit-tests
|
||||||
run: DISPLAY=:10 yarn test-browser --browser chromium
|
run: DISPLAY=:10 yarn test-browser --browser chromium
|
||||||
|
@ -222,6 +229,9 @@ jobs:
|
||||||
- name: Run Unit Tests (Electron)
|
- name: Run Unit Tests (Electron)
|
||||||
run: DISPLAY=:10 ./scripts/test.sh
|
run: DISPLAY=:10 ./scripts/test.sh
|
||||||
|
|
||||||
|
- name: Run Unit Tests (node.js)
|
||||||
|
run: yarn test-node
|
||||||
|
|
||||||
- name: Run Unit Tests (Browser)
|
- name: Run Unit Tests (Browser)
|
||||||
run: DISPLAY=:10 yarn test-browser --browser chromium
|
run: DISPLAY=:10 yarn test-browser --browser chromium
|
||||||
|
|
||||||
|
|
|
@ -179,6 +179,13 @@ steps:
|
||||||
timeoutInMinutes: 7
|
timeoutInMinutes: 7
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
|
- script: |
|
||||||
|
set -e
|
||||||
|
yarn test-node --build
|
||||||
|
displayName: Run unit tests (node.js)
|
||||||
|
timeoutInMinutes: 7
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
- script: |
|
- script: |
|
||||||
set -e
|
set -e
|
||||||
yarn test-browser --build --browser chromium --browser webkit --browser firefox --tfs "Browser Unit Tests"
|
yarn test-browser --build --browser chromium --browser webkit --browser firefox --tfs "Browser Unit Tests"
|
||||||
|
|
|
@ -162,6 +162,13 @@ steps:
|
||||||
timeoutInMinutes: 7
|
timeoutInMinutes: 7
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
|
- script: |
|
||||||
|
set -e
|
||||||
|
yarn test-node --build
|
||||||
|
displayName: Run unit tests (node.js)
|
||||||
|
timeoutInMinutes: 7
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
- script: |
|
- script: |
|
||||||
set -e
|
set -e
|
||||||
yarn test-browser --build --browser chromium --tfs "Browser Unit Tests"
|
yarn test-browser --build --browser chromium --tfs "Browser Unit Tests"
|
||||||
|
|
|
@ -150,6 +150,14 @@ steps:
|
||||||
timeoutInMinutes: 7
|
timeoutInMinutes: 7
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||||
|
|
||||||
|
- powershell: |
|
||||||
|
. build/azure-pipelines/win32/exec.ps1
|
||||||
|
$ErrorActionPreference = "Stop"
|
||||||
|
exec { yarn test-node --build }
|
||||||
|
displayName: Run unit tests (node.js)
|
||||||
|
timeoutInMinutes: 7
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||||
|
|
||||||
- powershell: |
|
- powershell: |
|
||||||
. build/azure-pipelines/win32/exec.ps1
|
. build/azure-pipelines/win32/exec.ps1
|
||||||
$ErrorActionPreference = "Stop"
|
$ErrorActionPreference = "Stop"
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "mocha",
|
"test": "mocha",
|
||||||
"test-browser": "node test/unit/browser/index.js",
|
"test-browser": "node test/unit/browser/index.js",
|
||||||
|
"test-node": "mocha test/unit/node/index.js --delay --ui=tdd --exit",
|
||||||
"preinstall": "node build/npm/preinstall.js",
|
"preinstall": "node build/npm/preinstall.js",
|
||||||
"postinstall": "node build/npm/postinstall.js",
|
"postinstall": "node build/npm/postinstall.js",
|
||||||
"compile": "node --max_old_space_size=4095 ./node_modules/gulp/bin/gulp.js compile",
|
"compile": "node --max_old_space_size=4095 ./node_modules/gulp/bin/gulp.js compile",
|
||||||
|
@ -27,7 +28,6 @@
|
||||||
"watch-extensions": "node --max_old_space_size=4095 ./node_modules/gulp/bin/gulp.js watch-extensions watch-extension-media",
|
"watch-extensions": "node --max_old_space_size=4095 ./node_modules/gulp/bin/gulp.js watch-extensions watch-extension-media",
|
||||||
"watch-extensionsd": "deemon yarn watch-extensions",
|
"watch-extensionsd": "deemon yarn watch-extensions",
|
||||||
"kill-watch-extensionsd": "deemon --kill yarn watch-extensions",
|
"kill-watch-extensionsd": "deemon --kill yarn watch-extensions",
|
||||||
"mocha": "mocha test/unit/node/all.js --delay --ui=tdd",
|
|
||||||
"precommit": "node build/hygiene.js",
|
"precommit": "node build/hygiene.js",
|
||||||
"gulp": "node --max_old_space_size=8192 ./node_modules/gulp/bin/gulp.js",
|
"gulp": "node --max_old_space_size=8192 ./node_modules/gulp/bin/gulp.js",
|
||||||
"electron": "node build/lib/electron",
|
"electron": "node build/lib/electron",
|
||||||
|
@ -169,7 +169,6 @@
|
||||||
"istanbul-lib-report": "^3.0.0",
|
"istanbul-lib-report": "^3.0.0",
|
||||||
"istanbul-lib-source-maps": "^4.0.0",
|
"istanbul-lib-source-maps": "^4.0.0",
|
||||||
"istanbul-reports": "^3.0.0",
|
"istanbul-reports": "^3.0.0",
|
||||||
"jsdom-no-contextify": "^3.1.0",
|
|
||||||
"lazy.js": "^0.4.2",
|
"lazy.js": "^0.4.2",
|
||||||
"merge-options": "^1.0.1",
|
"merge-options": "^1.0.1",
|
||||||
"mime": "^1.4.1",
|
"mime": "^1.4.1",
|
||||||
|
|
|
@ -48,7 +48,6 @@ suite('Event', function () {
|
||||||
|
|
||||||
let doc = new Samples.Document3();
|
let doc = new Samples.Document3();
|
||||||
|
|
||||||
document.createElement('div').onclick = function () { };
|
|
||||||
let subscription = doc.onDidChange(counter.onEvent, counter);
|
let subscription = doc.onDidChange(counter.onEvent, counter);
|
||||||
|
|
||||||
doc.setText('far');
|
doc.setText('far');
|
||||||
|
|
|
@ -149,7 +149,10 @@ suite('Debug - Debugger', () => {
|
||||||
assert.deepStrictEqual(ae!.args, debuggerContribution.args);
|
assert.deepStrictEqual(ae!.args, debuggerContribution.args);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('merge platform specific attributes', () => {
|
test('merge platform specific attributes', function () {
|
||||||
|
if (!process.versions.electron) {
|
||||||
|
this.skip(); //TODO@debug this test fails when run in node.js environments
|
||||||
|
}
|
||||||
const ae = ExecutableDebugAdapter.platformAdapterExecutable([extensionDescriptor1, extensionDescriptor2], 'mock')!;
|
const ae = ExecutableDebugAdapter.platformAdapterExecutable([extensionDescriptor1, extensionDescriptor2], 'mock')!;
|
||||||
assert.strictEqual(ae.command, platform.isLinux ? 'linuxRuntime' : (platform.isMacintosh ? 'osxRuntime' : 'winRuntime'));
|
assert.strictEqual(ae.command, platform.isLinux ? 'linuxRuntime' : (platform.isMacintosh ? 'osxRuntime' : 'winRuntime'));
|
||||||
const xprogram = platform.isLinux ? 'linuxProgram' : (platform.isMacintosh ? 'osxProgram' : 'winProgram');
|
const xprogram = platform.isLinux ? 'linuxProgram' : (platform.isMacintosh ? 'osxProgram' : 'winProgram');
|
||||||
|
|
|
@ -322,6 +322,9 @@ suite('Encoding', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('toDecodeStream - decodes buffer entirely', async function () {
|
test('toDecodeStream - decodes buffer entirely', async function () {
|
||||||
|
if (!process.versions.electron) {
|
||||||
|
this.skip(); // TODO@bpasero enable once we ship Electron 16
|
||||||
|
}
|
||||||
const emojis = Buffer.from('🖥️💻💾');
|
const emojis = Buffer.from('🖥️💻💾');
|
||||||
const incompleteEmojis = emojis.slice(0, emojis.length - 1);
|
const incompleteEmojis = emojis.slice(0, emojis.length - 1);
|
||||||
|
|
||||||
|
|
|
@ -144,6 +144,7 @@ import { TestLanguageConfigurationService } from 'vs/editor/test/common/modes/te
|
||||||
import { FindReplaceState } from 'vs/editor/contrib/find/findState';
|
import { FindReplaceState } from 'vs/editor/contrib/find/findState';
|
||||||
import { TerminalEditorInput } from 'vs/workbench/contrib/terminal/browser/terminalEditorInput';
|
import { TerminalEditorInput } from 'vs/workbench/contrib/terminal/browser/terminalEditorInput';
|
||||||
import { DeserializedTerminalEditorInput } from 'vs/workbench/contrib/terminal/browser/terminalEditorSerializer';
|
import { DeserializedTerminalEditorInput } from 'vs/workbench/contrib/terminal/browser/terminalEditorSerializer';
|
||||||
|
import { env } from 'vs/base/common/process';
|
||||||
|
|
||||||
export function createFileEditorInput(instantiationService: IInstantiationService, resource: URI): FileEditorInput {
|
export function createFileEditorInput(instantiationService: IInstantiationService, resource: URI): FileEditorInput {
|
||||||
return instantiationService.createInstance(FileEditorInput, resource, undefined, undefined, undefined, undefined, undefined, undefined);
|
return instantiationService.createInstance(FileEditorInput, resource, undefined, undefined, undefined, undefined, undefined, undefined);
|
||||||
|
@ -1822,7 +1823,7 @@ export class TestTerminalProfileResolverService implements ITerminalProfileResol
|
||||||
async getDefaultProfile(options: IShellLaunchConfigResolveOptions): Promise<ITerminalProfile> { return { path: '/default', profileName: 'Default', isDefault: true }; }
|
async getDefaultProfile(options: IShellLaunchConfigResolveOptions): Promise<ITerminalProfile> { return { path: '/default', profileName: 'Default', isDefault: true }; }
|
||||||
async getDefaultShell(options: IShellLaunchConfigResolveOptions): Promise<string> { return '/default'; }
|
async getDefaultShell(options: IShellLaunchConfigResolveOptions): Promise<string> { return '/default'; }
|
||||||
async getDefaultShellArgs(options: IShellLaunchConfigResolveOptions): Promise<string | string[]> { return []; }
|
async getDefaultShellArgs(options: IShellLaunchConfigResolveOptions): Promise<string | string[]> { return []; }
|
||||||
async getEnvironment(): Promise<IProcessEnvironment> { return process.env; }
|
async getEnvironment(): Promise<IProcessEnvironment> { return env; }
|
||||||
getSafeConfigValue(key: string, os: OperatingSystem): unknown | undefined { return undefined; }
|
getSafeConfigValue(key: string, os: OperatingSystem): unknown | undefined { return undefined; }
|
||||||
getSafeConfigValueFullKey(key: string): unknown | undefined { return undefined; }
|
getSafeConfigValueFullKey(key: string): unknown | undefined { return undefined; }
|
||||||
createProfileFromShellAndShellArgs(shell?: unknown, shellArgs?: unknown): Promise<string | ITerminalProfile> { throw new Error('Method not implemented.'); }
|
createProfileFromShellAndShellArgs(shell?: unknown, shellArgs?: unknown): Promise<string | ITerminalProfile> { throw new Error('Method not implemented.'); }
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
/*---------------------------------------------------------------------------------------------
|
|
||||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
||||||
*--------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
const yaserver = require('yaserver');
|
|
||||||
const http = require('http');
|
|
||||||
const glob = require('glob');
|
|
||||||
const path = require('path');
|
|
||||||
const fs = require('fs');
|
|
||||||
|
|
||||||
const REPO_ROOT = path.join(__dirname, '../../../');
|
|
||||||
const PORT = 8887;
|
|
||||||
|
|
||||||
function template(str, env) {
|
|
||||||
return str.replace(/{{\s*([\w_\-]+)\s*}}/g, function (all, part) {
|
|
||||||
return env[part];
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
yaserver.createServer({ rootDir: REPO_ROOT }).then((staticServer) => {
|
|
||||||
const server = http.createServer((req, res) => {
|
|
||||||
if (req.url === '' || req.url === '/') {
|
|
||||||
glob('**/vs/{base,platform,editor}/**/test/{common,browser}/**/*.test.js', {
|
|
||||||
cwd: path.join(REPO_ROOT, 'out'),
|
|
||||||
// ignore: ['**/test/{node,electron*}/**/*.js']
|
|
||||||
}, function (err, files) {
|
|
||||||
if (err) { console.log(err); process.exit(0); }
|
|
||||||
|
|
||||||
var modules = files
|
|
||||||
.map(function (file) { return file.replace(/\.js$/, ''); });
|
|
||||||
|
|
||||||
fs.readFile(path.join(__dirname, 'index.html'), 'utf8', function (err, templateString) {
|
|
||||||
if (err) { console.log(err); process.exit(0); }
|
|
||||||
|
|
||||||
res.end(template(templateString, {
|
|
||||||
modules: JSON.stringify(modules)
|
|
||||||
}));
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
return staticServer.handle(req, res);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
server.listen(PORT, () => {
|
|
||||||
console.log(`http://localhost:${PORT}/`);
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -1,12 +0,0 @@
|
||||||
/*---------------------------------------------------------------------------------------------
|
|
||||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
||||||
*--------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
define([], function() {
|
|
||||||
return {
|
|
||||||
load: function(name, req, load) {
|
|
||||||
load({});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
|
@ -1,30 +0,0 @@
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>VSCode Tests</title>
|
|
||||||
<link href="https://cdn.rawgit.com/mochajs/mocha/2.2.5/mocha.css" rel="stylesheet" />
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="mocha"></div>
|
|
||||||
|
|
||||||
<script src="/out/vs/loader.js"></script>
|
|
||||||
<script src="https://cdn.rawgit.com/mochajs/mocha/2.2.5/mocha.js"></script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
mocha.setup('tdd');
|
|
||||||
|
|
||||||
require.config({
|
|
||||||
baseUrl: '/out',
|
|
||||||
paths: {
|
|
||||||
assert: '/test/unit/assert.js',
|
|
||||||
sinon: '/node_modules/sinon/pkg/sinon.js',
|
|
||||||
'sinon-test': '/node_modules/sinon-test/dist/sinon-test.js'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
require({{ modules }}, function () {
|
|
||||||
mocha.run();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -3,13 +3,15 @@
|
||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
/*eslint-env mocha*/
|
//@ts-check
|
||||||
/*global define,run*/
|
|
||||||
|
process.env.MOCHA_COLORS = '1'; // Force colors (note that this must come before any mocha imports)
|
||||||
|
|
||||||
const assert = require('assert');
|
const assert = require('assert');
|
||||||
|
const mocha = require('mocha');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
const fs = require('fs');
|
||||||
const glob = require('glob');
|
const glob = require('glob');
|
||||||
const jsdom = require('jsdom-no-contextify');
|
|
||||||
const minimatch = require('minimatch');
|
const minimatch = require('minimatch');
|
||||||
const coverage = require('../coverage');
|
const coverage = require('../coverage');
|
||||||
const optimist = require('optimist')
|
const optimist = require('optimist')
|
||||||
|
@ -17,13 +19,21 @@ const optimist = require('optimist')
|
||||||
.describe('build', 'Run from out-build').boolean('build')
|
.describe('build', 'Run from out-build').boolean('build')
|
||||||
.describe('run', 'Run a single file').string('run')
|
.describe('run', 'Run a single file').string('run')
|
||||||
.describe('coverage', 'Generate a coverage report').boolean('coverage')
|
.describe('coverage', 'Generate a coverage report').boolean('coverage')
|
||||||
.describe('browser', 'Run tests in a browser').boolean('browser')
|
|
||||||
.alias('h', 'help').boolean('h')
|
.alias('h', 'help').boolean('h')
|
||||||
.describe('h', 'Show help');
|
.describe('h', 'Show help');
|
||||||
|
|
||||||
|
|
||||||
const TEST_GLOB = '**/test/**/*.test.js';
|
const TEST_GLOB = '**/test/**/*.test.js';
|
||||||
const excludeGlob = '**/{browser,electron-sandbox,electron-browser,electron-main,editor/contrib}/**/*.test.js';
|
const excludeGlob = '**/{browser,electron-sandbox,electron-browser,electron-main,editor/contrib}/**/*.test.js';
|
||||||
|
const excludeModules = [
|
||||||
|
'vs/platform/environment/test/node/nativeModules.test.js',
|
||||||
|
'vs/base/parts/storage/test/node/storage.test.js',
|
||||||
|
'vs/platform/files/test/common/files.test.js' // TODO@bpasero enable once we ship Electron 16
|
||||||
|
]
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {{ build: boolean; run: string; runGlob: string; coverage: boolean; help: boolean; }}
|
||||||
|
*/
|
||||||
const argv = optimist.argv;
|
const argv = optimist.argv;
|
||||||
|
|
||||||
if (argv.help) {
|
if (argv.help) {
|
||||||
|
@ -36,21 +46,54 @@ const out = argv.build ? 'out-build' : 'out';
|
||||||
const loader = require(`../../../${out}/vs/loader`);
|
const loader = require(`../../../${out}/vs/loader`);
|
||||||
const src = path.join(REPO_ROOT, out);
|
const src = path.join(REPO_ROOT, out);
|
||||||
|
|
||||||
|
const majorRequiredNodeVersion = `v${/^target\s+"([^"]+)"$/m.exec(fs.readFileSync(path.join(REPO_ROOT, 'remote', '.yarnrc'), 'utf8'))[1]}`.substring(0, 3);
|
||||||
|
const currentMajorNodeVersion = process.version.substring(0, 3);
|
||||||
|
if (majorRequiredNodeVersion !== currentMajorNodeVersion) {
|
||||||
|
console.error(`node.js unit tests require a major node.js version of ${majorRequiredNodeVersion} (your version is: ${currentMajorNodeVersion})`);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
function main() {
|
function main() {
|
||||||
process.on('uncaughtException', function (e) {
|
process.on('uncaughtException', function (e) {
|
||||||
console.error(e.stack || e);
|
console.error(e.stack || e);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} path
|
||||||
|
* @param {{ isWindows?: boolean, scheme?: string, fallbackAuthority?: string }} config
|
||||||
|
* @returns {string}
|
||||||
|
*/
|
||||||
|
function fileUriFromPath(path, config) {
|
||||||
|
|
||||||
|
// Since we are building a URI, we normalize any backslash
|
||||||
|
// to slashes and we ensure that the path begins with a '/'.
|
||||||
|
let pathName = path.replace(/\\/g, '/');
|
||||||
|
if (pathName.length > 0 && pathName.charAt(0) !== '/') {
|
||||||
|
pathName = `/${pathName}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @type {string} */
|
||||||
|
let uri;
|
||||||
|
|
||||||
|
// Windows: in order to support UNC paths (which start with '//')
|
||||||
|
// that have their own authority, we do not use the provided authority
|
||||||
|
// but rather preserve it.
|
||||||
|
if (config.isWindows && pathName.startsWith('//')) {
|
||||||
|
uri = encodeURI(`${config.scheme || 'file'}:${pathName}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise we optionally add the provided authority if specified
|
||||||
|
else {
|
||||||
|
uri = encodeURI(`${config.scheme || 'file'}://${config.fallbackAuthority || ''}${pathName}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return uri.replace(/#/g, '%23');
|
||||||
|
}
|
||||||
|
|
||||||
const loaderConfig = {
|
const loaderConfig = {
|
||||||
nodeRequire: require,
|
nodeRequire: require,
|
||||||
nodeMain: __filename,
|
nodeMain: __filename,
|
||||||
baseUrl: path.join(REPO_ROOT, 'src'),
|
baseUrl: fileUriFromPath(src, { isWindows: process.platform === 'win32' }),
|
||||||
paths: {
|
|
||||||
'vs/css': '../test/unit/node/css.mock',
|
|
||||||
'vs': `../${out}/vs`,
|
|
||||||
'lib': `../${out}/lib`,
|
|
||||||
'bootstrap-fork': `../${out}/bootstrap-fork`
|
|
||||||
},
|
|
||||||
catchError: true
|
catchError: true
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -67,28 +110,19 @@ function main() {
|
||||||
|
|
||||||
loader.config(loaderConfig);
|
loader.config(loaderConfig);
|
||||||
|
|
||||||
global.define = loader;
|
|
||||||
global.document = jsdom.jsdom('<!doctype html><html><body></body></html>');
|
|
||||||
global.self = global.window = global.document.parentWindow;
|
|
||||||
|
|
||||||
global.Element = global.window.Element;
|
|
||||||
global.HTMLElement = global.window.HTMLElement;
|
|
||||||
global.Node = global.window.Node;
|
|
||||||
global.navigator = global.window.navigator;
|
|
||||||
global.XMLHttpRequest = global.window.XMLHttpRequest;
|
|
||||||
|
|
||||||
let didErr = false;
|
let didErr = false;
|
||||||
const write = process.stderr.write;
|
const write = process.stderr.write;
|
||||||
process.stderr.write = function (data) {
|
process.stderr.write = function (...args) {
|
||||||
didErr = didErr || !!data;
|
didErr = didErr || !!args[0];
|
||||||
write.apply(process.stderr, arguments);
|
return write.apply(process.stderr, args);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** @type { (callback:(err:any)=>void)=>void } */
|
||||||
let loadFunc = null;
|
let loadFunc = null;
|
||||||
|
|
||||||
if (argv.runGlob) {
|
if (argv.runGlob) {
|
||||||
loadFunc = (cb) => {
|
loadFunc = (cb) => {
|
||||||
const doRun = tests => {
|
const doRun = /** @param {string[]} tests */(tests) => {
|
||||||
const modulesToLoad = tests.map(test => {
|
const modulesToLoad = tests.map(test => {
|
||||||
if (path.isAbsolute(test)) {
|
if (path.isAbsolute(test)) {
|
||||||
test = path.relative(src, path.resolve(test));
|
test = path.relative(src, path.resolve(test));
|
||||||
|
@ -96,7 +130,7 @@ function main() {
|
||||||
|
|
||||||
return test.replace(/(\.js)|(\.d\.ts)|(\.js\.map)$/, '');
|
return test.replace(/(\.js)|(\.d\.ts)|(\.js\.map)$/, '');
|
||||||
});
|
});
|
||||||
define(modulesToLoad, () => cb(null), cb);
|
loader(modulesToLoad, () => cb(null), cb);
|
||||||
};
|
};
|
||||||
|
|
||||||
glob(argv.runGlob, { cwd: src }, function (err, files) { doRun(files); });
|
glob(argv.runGlob, { cwd: src }, function (err, files) { doRun(files); });
|
||||||
|
@ -109,18 +143,19 @@ function main() {
|
||||||
return path.relative(src, path.resolve(test)).replace(/(\.js)|(\.js\.map)$/, '').replace(/\\/g, '/');
|
return path.relative(src, path.resolve(test)).replace(/(\.js)|(\.js\.map)$/, '').replace(/\\/g, '/');
|
||||||
});
|
});
|
||||||
loadFunc = (cb) => {
|
loadFunc = (cb) => {
|
||||||
define(modulesToLoad, () => cb(null), cb);
|
loader(modulesToLoad, () => cb(null), cb);
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
loadFunc = (cb) => {
|
loadFunc = (cb) => {
|
||||||
glob(TEST_GLOB, { cwd: src }, function (err, files) {
|
glob(TEST_GLOB, { cwd: src }, function (err, files) {
|
||||||
|
/** @type {string[]} */
|
||||||
const modules = [];
|
const modules = [];
|
||||||
for (let file of files) {
|
for (let file of files) {
|
||||||
if (!minimatch(file, excludeGlob)) {
|
if (!minimatch(file, excludeGlob) && excludeModules.indexOf(file) === -1) {
|
||||||
modules.push(file.replace(/\.js$/, ''));
|
modules.push(file.replace(/\.js$/, ''));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
define(modules, function () { cb(null); }, cb);
|
loader(modules, function () { cb(null); }, cb);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -135,7 +170,7 @@ function main() {
|
||||||
|
|
||||||
if (!argv.run && !argv.runGlob) {
|
if (!argv.run && !argv.runGlob) {
|
||||||
// set up last test
|
// set up last test
|
||||||
suite('Loader', function () {
|
mocha.suite('Loader', function () {
|
||||||
test('should not explode while loading', function () {
|
test('should not explode while loading', function () {
|
||||||
assert.ok(!didErr, 'should not explode while loading');
|
assert.ok(!didErr, 'should not explode while loading');
|
||||||
});
|
});
|
||||||
|
@ -144,7 +179,7 @@ function main() {
|
||||||
|
|
||||||
// report failing test for every unexpected error during any of the tests
|
// report failing test for every unexpected error during any of the tests
|
||||||
let unexpectedErrors = [];
|
let unexpectedErrors = [];
|
||||||
suite('Errors', function () {
|
mocha.suite('Errors', function () {
|
||||||
test('should not have unexpected errors in tests', function () {
|
test('should not have unexpected errors in tests', function () {
|
||||||
if (unexpectedErrors.length) {
|
if (unexpectedErrors.length) {
|
||||||
unexpectedErrors.forEach(function (stack) {
|
unexpectedErrors.forEach(function (stack) {
|
||||||
|
@ -165,13 +200,9 @@ function main() {
|
||||||
});
|
});
|
||||||
|
|
||||||
// fire up mocha
|
// fire up mocha
|
||||||
run();
|
mocha.run();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (process.argv.some(function (a) { return /^--browser/.test(a); })) {
|
main();
|
||||||
require('./browser');
|
|
||||||
} else {
|
|
||||||
main();
|
|
||||||
}
|
|
79
yarn.lock
79
yarn.lock
|
@ -1933,11 +1933,6 @@ brorand@^1.0.1, brorand@^1.1.0:
|
||||||
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
|
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
|
||||||
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
|
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
|
||||||
|
|
||||||
"browser-request@>= 0.3.1 < 0.4.0":
|
|
||||||
version "0.3.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/browser-request/-/browser-request-0.3.3.tgz#9ece5b5aca89a29932242e18bf933def9876cc17"
|
|
||||||
integrity sha1-ns5bWsqJopkyJC4Yv5M975h2zBc=
|
|
||||||
|
|
||||||
browser-stdout@1.3.1:
|
browser-stdout@1.3.1:
|
||||||
version "1.3.1"
|
version "1.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
|
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
|
||||||
|
@ -2994,18 +2989,6 @@ csso@^4.0.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
css-tree "^1.1.2"
|
css-tree "^1.1.2"
|
||||||
|
|
||||||
cssom@0.3.x, "cssom@>= 0.3.0 < 0.4.0":
|
|
||||||
version "0.3.8"
|
|
||||||
resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
|
|
||||||
integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
|
|
||||||
|
|
||||||
"cssstyle@>= 0.2.21 < 0.3.0":
|
|
||||||
version "0.2.37"
|
|
||||||
resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54"
|
|
||||||
integrity sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=
|
|
||||||
dependencies:
|
|
||||||
cssom "0.3.x"
|
|
||||||
|
|
||||||
cyclist@^1.0.1:
|
cyclist@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
|
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
|
||||||
|
@ -3308,7 +3291,7 @@ domain-browser@^1.1.1:
|
||||||
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
|
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
|
||||||
integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
|
integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
|
||||||
|
|
||||||
domelementtype@1, domelementtype@^1.3.1:
|
domelementtype@1:
|
||||||
version "1.3.1"
|
version "1.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
|
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
|
||||||
integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
|
integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
|
||||||
|
@ -3318,14 +3301,7 @@ domelementtype@^2.0.1:
|
||||||
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e"
|
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e"
|
||||||
integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==
|
integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==
|
||||||
|
|
||||||
domhandler@^2.3.0:
|
domutils@^1.7.0:
|
||||||
version "2.4.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803"
|
|
||||||
integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==
|
|
||||||
dependencies:
|
|
||||||
domelementtype "1"
|
|
||||||
|
|
||||||
domutils@^1.5.1, domutils@^1.7.0:
|
|
||||||
version "1.7.0"
|
version "1.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
|
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
|
||||||
integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
|
integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
|
||||||
|
@ -3478,11 +3454,6 @@ enhanced-resolve@^5.0.0, enhanced-resolve@^5.8.0:
|
||||||
graceful-fs "^4.2.4"
|
graceful-fs "^4.2.4"
|
||||||
tapable "^2.2.0"
|
tapable "^2.2.0"
|
||||||
|
|
||||||
entities@^1.1.1:
|
|
||||||
version "1.1.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
|
|
||||||
integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
|
|
||||||
|
|
||||||
entities@^2.0.0:
|
entities@^2.0.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5"
|
resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5"
|
||||||
|
@ -5211,18 +5182,6 @@ html-escaper@^2.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.0.tgz#71e87f931de3fe09e56661ab9a29aadec707b491"
|
resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.0.tgz#71e87f931de3fe09e56661ab9a29aadec707b491"
|
||||||
integrity sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==
|
integrity sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==
|
||||||
|
|
||||||
"htmlparser2@>= 3.7.3 < 4.0.0":
|
|
||||||
version "3.10.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f"
|
|
||||||
integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==
|
|
||||||
dependencies:
|
|
||||||
domelementtype "^1.3.1"
|
|
||||||
domhandler "^2.3.0"
|
|
||||||
domutils "^1.5.1"
|
|
||||||
entities "^1.1.1"
|
|
||||||
inherits "^2.0.1"
|
|
||||||
readable-stream "^3.1.1"
|
|
||||||
|
|
||||||
http-cache-semantics@^4.0.0:
|
http-cache-semantics@^4.0.0:
|
||||||
version "4.1.0"
|
version "4.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
|
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
|
||||||
|
@ -6029,21 +5988,6 @@ jsdoctypeparser@^6.1.0:
|
||||||
resolved "https://registry.yarnpkg.com/jsdoctypeparser/-/jsdoctypeparser-6.1.0.tgz#acfb936c26300d98f1405cb03e20b06748e512a8"
|
resolved "https://registry.yarnpkg.com/jsdoctypeparser/-/jsdoctypeparser-6.1.0.tgz#acfb936c26300d98f1405cb03e20b06748e512a8"
|
||||||
integrity sha512-UCQBZ3xCUBv/PLfwKAJhp6jmGOSLFNKzrotXGNgbKhWvz27wPsCsVeP7gIcHPElQw2agBmynAitXqhxR58XAmA==
|
integrity sha512-UCQBZ3xCUBv/PLfwKAJhp6jmGOSLFNKzrotXGNgbKhWvz27wPsCsVeP7gIcHPElQw2agBmynAitXqhxR58XAmA==
|
||||||
|
|
||||||
jsdom-no-contextify@^3.1.0:
|
|
||||||
version "3.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/jsdom-no-contextify/-/jsdom-no-contextify-3.1.0.tgz#0d8beaf610c2ff23894f54dfa7f89dd22fd0f7ab"
|
|
||||||
integrity sha1-DYvq9hDC/yOJT1Tfp/id0i/Q96s=
|
|
||||||
dependencies:
|
|
||||||
browser-request ">= 0.3.1 < 0.4.0"
|
|
||||||
cssom ">= 0.3.0 < 0.4.0"
|
|
||||||
cssstyle ">= 0.2.21 < 0.3.0"
|
|
||||||
htmlparser2 ">= 3.7.3 < 4.0.0"
|
|
||||||
nwmatcher ">= 1.3.4 < 2.0.0"
|
|
||||||
parse5 ">= 1.3.1 < 2.0.0"
|
|
||||||
request ">= 2.44.0 < 3.0.0"
|
|
||||||
xml-name-validator "^1.0.0"
|
|
||||||
xmlhttprequest ">= 1.6.0 < 2.0.0"
|
|
||||||
|
|
||||||
jsesc@^2.5.1:
|
jsesc@^2.5.1:
|
||||||
version "2.5.2"
|
version "2.5.2"
|
||||||
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
|
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
|
||||||
|
@ -7209,7 +7153,7 @@ number-is-nan@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
|
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
|
||||||
integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
|
integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
|
||||||
|
|
||||||
"nwmatcher@>= 1.3.4 < 2.0.0", nwmatcher@^1.4.4:
|
nwmatcher@^1.4.4:
|
||||||
version "1.4.4"
|
version "1.4.4"
|
||||||
resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.4.tgz#2285631f34a95f0d0395cd900c96ed39b58f346e"
|
resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.4.tgz#2285631f34a95f0d0395cd900c96ed39b58f346e"
|
||||||
integrity sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==
|
integrity sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==
|
||||||
|
@ -7565,11 +7509,6 @@ parse-passwd@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
|
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
|
||||||
integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
|
integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
|
||||||
|
|
||||||
"parse5@>= 1.3.1 < 2.0.0":
|
|
||||||
version "1.5.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94"
|
|
||||||
integrity sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=
|
|
||||||
|
|
||||||
pascalcase@^0.1.1:
|
pascalcase@^0.1.1:
|
||||||
version "0.1.1"
|
version "0.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
|
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
|
||||||
|
@ -8582,7 +8521,7 @@ replacestream@^4.0.0:
|
||||||
object-assign "^4.0.1"
|
object-assign "^4.0.1"
|
||||||
readable-stream "^2.0.2"
|
readable-stream "^2.0.2"
|
||||||
|
|
||||||
"request@>= 2.44.0 < 3.0.0", request@^2.85.0, request@^2.88.0:
|
request@^2.85.0, request@^2.88.0:
|
||||||
version "2.88.2"
|
version "2.88.2"
|
||||||
resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
|
resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
|
||||||
integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
|
integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
|
||||||
|
@ -10861,11 +10800,6 @@ ws@^7.4.6:
|
||||||
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.2.tgz#09cc8fea3bec1bc5ed44ef51b42f945be36900f6"
|
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.2.tgz#09cc8fea3bec1bc5ed44ef51b42f945be36900f6"
|
||||||
integrity sha512-lkF7AWRicoB9mAgjeKbGqVUekLnSNO4VjKVnuPHpQeOxZOErX6BPXwJk70nFslRCEEA8EVW7ZjKwXaP9N+1sKQ==
|
integrity sha512-lkF7AWRicoB9mAgjeKbGqVUekLnSNO4VjKVnuPHpQeOxZOErX6BPXwJk70nFslRCEEA8EVW7ZjKwXaP9N+1sKQ==
|
||||||
|
|
||||||
xml-name-validator@^1.0.0:
|
|
||||||
version "1.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-1.0.0.tgz#dcf82ee092322951ef8cc1ba596c9cbfd14a83f1"
|
|
||||||
integrity sha1-3Pgu4JIyKVHvjMG6WWycv9FKg/E=
|
|
||||||
|
|
||||||
xml2js@^0.4.17:
|
xml2js@^0.4.17:
|
||||||
version "0.4.23"
|
version "0.4.23"
|
||||||
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66"
|
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66"
|
||||||
|
@ -10902,11 +10836,6 @@ xmlbuilder@~9.0.1:
|
||||||
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.4.tgz#519cb4ca686d005a8420d3496f3f0caeecca580f"
|
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.4.tgz#519cb4ca686d005a8420d3496f3f0caeecca580f"
|
||||||
integrity sha1-UZy0ymhtAFqEINNJbz8MruzKWA8=
|
integrity sha1-UZy0ymhtAFqEINNJbz8MruzKWA8=
|
||||||
|
|
||||||
"xmlhttprequest@>= 1.6.0 < 2.0.0":
|
|
||||||
version "1.8.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc"
|
|
||||||
integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=
|
|
||||||
|
|
||||||
xregexp@2.0.0:
|
xregexp@2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943"
|
resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943"
|
||||||
|
|
Loading…
Reference in a new issue