test: remove unused code coverage infrastructure

Closes #13228
It is currently unused and requires an old version of the `source-map` package.  This old version conflicts with the use of newer versions that are required to provide the necessary functionality and performance within the published packages.
This commit is contained in:
Charles Lyding 2019-07-30 16:53:42 -04:00 committed by Keen Yee Liau
parent d7b9650b5f
commit 402349d763
7 changed files with 22 additions and 284 deletions

View File

@ -9,8 +9,3 @@ files across the repo).
first. It allows for compiling and loading packages in memory directly from the repo. Not only first. It allows for compiling and loading packages in memory directly from the repo. Not only
does the `devkit-admin` scripts use this to include the library, but also all binaries linked does the `devkit-admin` scripts use this to include the library, but also all binaries linked
locally (like `schematics` and `ng`), when not using the npm published packages. locally (like `schematics` and `ng`), when not using the npm published packages.
`istanbul-local.js` adds global hooks and information to be able to use code coverage with
`bootstrap-local.js`. Istanbul does not keep the sourcemaps properly in sync if they're available
in the code, which happens locally when transpiling TypeScript. It is currently used by the
`test` script and is included by `bootstrap-local.js` for integration.

View File

@ -30,16 +30,6 @@ const compilerOptions = ts.getParsedCommandLineOfConfigFile(
ts.sys, ts.sys,
).options; ).options;
let _istanbulRequireHook = null;
if (process.env['CODE_COVERAGE'] || process.argv.indexOf('--code-coverage') !== -1) {
debugLocal('setup code coverage');
_istanbulRequireHook = require('./istanbul-local').istanbulRequireHook;
// async keyword isn't supported by the Esprima version used by Istanbul version used by us.
// TODO: update istanbul to istanbul-lib-* (see http://istanbul.js.org/) and remove this hack.
compilerOptions.target = 'es2016';
}
// Check if we need to profile this CLI run. // Check if we need to profile this CLI run.
let profiler = null; let profiler = null;
if (process.env['DEVKIT_PROFILING']) { if (process.env['DEVKIT_PROFILING']) {
@ -103,9 +93,6 @@ require.extensions['.ts'] = function (m, filename) {
try { try {
let result = ts.transpile(source, compilerOptions, filename); let result = ts.transpile(source, compilerOptions, filename);
if (_istanbulRequireHook) {
result = _istanbulRequireHook(result, filename);
}
debugBuildTs('done'); debugBuildTs('done');
// Send it to node to execute. // Send it to node to execute.

View File

@ -1,57 +0,0 @@
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
const { SourceMapConsumer } = require('source-map');
const Istanbul = require('istanbul');
const inlineSourceMapRe = /\/\/# sourceMappingURL=data:application\/json;base64,(\S+)$/;
// Use the internal DevKit Hook of the require extension installed by our bootstrapping code to add
// Istanbul (not Constantinople) collection to the code.
const codeMap = new Map();
exports.codeMap = codeMap;
exports.istanbulRequireHook = function(code, filename) {
// Skip spec files.
if (filename.match(/_spec(_large)?\.ts$/)) {
return code;
}
const codeFile = codeMap.get(filename);
if (codeFile) {
return codeFile.code;
}
const instrumenter = new Istanbul.Instrumenter({
esModules: true,
codeGenerationOptions: {
sourceMap: filename,
sourceMapWithCode: true,
},
});
let instrumentedCode = instrumenter.instrumentSync(code, filename);
const match = code.match(inlineSourceMapRe);
if (match) {
const sourceMapGenerator = instrumenter.sourceMap;
// Fix source maps for exception reporting (since the exceptions happen in the instrumented
// code.
const sourceMapJson = JSON.parse(Buffer.from(match[1], 'base64').toString());
const consumer = new SourceMapConsumer(sourceMapJson);
sourceMapGenerator.applySourceMap(consumer, filename);
instrumentedCode = instrumentedCode.replace(inlineSourceMapRe, '')
+ '//# sourceMappingURL=data:application/json;base64,'
+ Buffer.from(sourceMapGenerator.toString()).toString('base64');
// Keep the consumer from the original source map, because the reports from Istanbul (not
// Constantinople) are already mapped against the code.
codeMap.set(filename, { code: instrumentedCode, map: consumer });
}
return instrumentedCode;
};

View File

@ -94,7 +94,6 @@
"@types/express": "^4.16.0", "@types/express": "^4.16.0",
"@types/glob": "^7.0.0", "@types/glob": "^7.0.0",
"@types/inquirer": "^0.0.44", "@types/inquirer": "^0.0.44",
"@types/istanbul": "^0.4.30",
"@types/jasmine": "^3.3.8", "@types/jasmine": "^3.3.8",
"@types/karma": "^3.0.2", "@types/karma": "^3.0.2",
"@types/loader-utils": "^1.1.3", "@types/loader-utils": "^1.1.3",
@ -102,7 +101,6 @@
"@types/node": "10.9.4", "@types/node": "10.9.4",
"@types/request": "^2.47.1", "@types/request": "^2.47.1",
"@types/semver": "^6.0.0", "@types/semver": "^6.0.0",
"@types/source-map": "0.5.2",
"@types/webpack": "^4.4.11", "@types/webpack": "^4.4.11",
"@types/webpack-dev-server": "^3.1.0", "@types/webpack-dev-server": "^3.1.0",
"@types/webpack-sources": "^0.1.5", "@types/webpack-sources": "^0.1.5",
@ -115,7 +113,6 @@
"gh-got": "^8.0.1", "gh-got": "^8.0.1",
"git-raw-commits": "^2.0.0", "git-raw-commits": "^2.0.0",
"husky": "^1.3.1", "husky": "^1.3.1",
"istanbul": "^0.4.5",
"jasmine": "^3.3.1", "jasmine": "^3.3.1",
"jasmine-spec-reporter": "^4.2.1", "jasmine-spec-reporter": "^4.2.1",
"karma": "~4.2.0", "karma": "~4.2.0",
@ -131,7 +128,7 @@
"rxjs": "~6.4.0", "rxjs": "~6.4.0",
"sauce-connect": "https://saucelabs.com/downloads/sc-4.5.4-linux.tar.gz", "sauce-connect": "https://saucelabs.com/downloads/sc-4.5.4-linux.tar.gz",
"semver": "6.3.0", "semver": "6.3.0",
"source-map": "^0.5.6", "source-map": "^0.7.3",
"source-map-support": "^0.5.0", "source-map-support": "^0.5.0",
"spdx-satisfies": "^4.0.0", "spdx-satisfies": "^4.0.0",
"tar": "^4.4.4", "tar": "^4.4.4",

View File

@ -18,7 +18,6 @@
"master" "master"
], ],
"ignoreDeps": [ "ignoreDeps": [
"source-map",
"@types/node", "@types/node",
"webpack-subresource-integrity" "webpack-subresource-integrity"
], ],

View File

@ -10,16 +10,13 @@
import { logging } from '@angular-devkit/core'; import { logging } from '@angular-devkit/core';
import { spawnSync } from 'child_process'; import { spawnSync } from 'child_process';
import * as glob from 'glob'; import * as glob from 'glob';
import * as Istanbul from 'istanbul';
import 'jasmine'; import 'jasmine';
import { SpecReporter as JasmineSpecReporter } from 'jasmine-spec-reporter'; import { SpecReporter as JasmineSpecReporter } from 'jasmine-spec-reporter';
import { ParsedArgs } from 'minimist'; import { ParsedArgs } from 'minimist';
import { join, normalize, relative } from 'path'; import { join, normalize, relative } from 'path';
import { Position, SourceMapConsumer } from 'source-map';
import * as ts from 'typescript'; import * as ts from 'typescript';
import { packages } from '../lib/packages'; import { packages } from '../lib/packages';
const codeMap = require('../lib/istanbul-local').codeMap;
const Jasmine = require('jasmine'); const Jasmine = require('jasmine');
const knownFlakes = [ const knownFlakes = [
@ -33,16 +30,6 @@ require('source-map-support').install({
hookRequire: true, hookRequire: true,
}); });
interface CoverageLocation {
start: Position;
end: Position;
}
type CoverageType = any; // tslint:disable-line:no-any
declare const global: {
__coverage__: CoverageType;
};
function _exec(command: string, args: string[], opts: { cwd?: string }, logger: logging.Logger) { function _exec(command: string, args: string[], opts: { cwd?: string }, logger: logging.Logger) {
const { status, error, stdout } = spawnSync(command, args, { const { status, error, stdout } = spawnSync(command, args, {
stdio: ['ignore', 'pipe', 'inherit'], stdio: ['ignore', 'pipe', 'inherit'],
@ -57,78 +44,6 @@ function _exec(command: string, args: string[], opts: { cwd?: string }, logger:
return stdout.toString('utf-8'); return stdout.toString('utf-8');
} }
// Add the Istanbul (not Constantinople) reporter.
const istanbulCollector = new Istanbul.Collector({});
const istanbulReporter = new Istanbul.Reporter(undefined, 'coverage/');
istanbulReporter.addAll(['json', 'lcov']);
class IstanbulReporter implements jasmine.CustomReporter {
// Update a location object from a SourceMap. Will ignore the location if the sourcemap does
// not have a valid mapping.
private _updateLocation(consumer: SourceMapConsumer, location: CoverageLocation) {
const start = consumer.originalPositionFor(location.start);
const end = consumer.originalPositionFor(location.end);
// Filter invalid original positions.
if (start.line !== null && start.column !== null) {
// Filter unwanted properties.
location.start = { line: start.line, column: start.column };
}
if (end.line !== null && end.column !== null) {
location.end = { line: end.line, column: end.column };
}
}
private _updateCoverageJsonSourceMap(coverageJson: CoverageType) {
// Update the coverageJson with the SourceMap.
for (const path of Object.keys(coverageJson)) {
const entry = codeMap.get(path);
if (!entry) {
continue;
}
const consumer = entry.map;
const coverage = coverageJson[path];
// Update statement maps.
for (const branchId of Object.keys(coverage.branchMap)) {
const branch = coverage.branchMap[branchId];
let line: number | null = null;
let column = 0;
do {
line = consumer.originalPositionFor({ line: branch.line, column: column++ }).line;
} while (line === null && column < 100);
branch.line = line;
for (const location of branch.locations) {
this._updateLocation(consumer, location);
}
}
for (const id of Object.keys(coverage.statementMap)) {
const location = coverage.statementMap[id];
this._updateLocation(consumer, location);
}
for (const id of Object.keys(coverage.fnMap)) {
const fn = coverage.fnMap[id];
fn.line = consumer.originalPositionFor({ line: fn.line, column: 0 }).line;
this._updateLocation(consumer, fn.loc);
}
}
}
jasmineDone(_runDetails: jasmine.RunDetails): void {
if (global.__coverage__) {
this._updateCoverageJsonSourceMap(global.__coverage__);
istanbulCollector.add(global.__coverage__);
istanbulReporter.write(istanbulCollector, true, () => {});
}
}
}
// Create a Jasmine runner and configure it. // Create a Jasmine runner and configure it.
const runner = new Jasmine({ projectBaseDir: projectBaseDir }); const runner = new Jasmine({ projectBaseDir: projectBaseDir });
@ -174,10 +89,6 @@ export default function(args: ParsedArgs, logger: logging.Logger) {
const specGlob = args.large ? '*_spec_large.ts' : '*_spec.ts'; const specGlob = args.large ? '*_spec_large.ts' : '*_spec.ts';
const regex = args.glob ? args.glob : `packages/**/${specGlob}`; const regex = args.glob ? args.glob : `packages/**/${specGlob}`;
if (args['code-coverage']) {
runner.env.addReporter(new IstanbulReporter());
}
if (args.large) { if (args.large) {
// Default timeout for large specs is 2.5 minutes. // Default timeout for large specs is 2.5 minutes.
jasmine.DEFAULT_TIMEOUT_INTERVAL = 150000; jasmine.DEFAULT_TIMEOUT_INTERVAL = 150000;

124
yarn.lock
View File

@ -450,11 +450,6 @@
"@types/rx" "*" "@types/rx" "*"
"@types/through" "*" "@types/through" "*"
"@types/istanbul@^0.4.30":
version "0.4.30"
resolved "https://registry.yarnpkg.com/@types/istanbul/-/istanbul-0.4.30.tgz#073159320ab3296b2cfeb481f756a1f8f4c9c8e4"
integrity sha512-+hQU4fh2G96ze78uI5/V6+SRDZD1UnVrFn23i2eDetwfbBq3s0/zYP92xj/3qyvVMM3WnvS88N56zjz+HmL04A==
"@types/jasmine@^3.3.8": "@types/jasmine@^3.3.8":
version "3.3.8" version "3.3.8"
resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-3.3.8.tgz#fc6abd92f7121431685ec986f0ec8f77b4390a3e" resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-3.3.8.tgz#fc6abd92f7121431685ec986f0ec8f77b4390a3e"
@ -672,11 +667,6 @@
resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9"
integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==
"@types/source-map@0.5.2":
version "0.5.2"
resolved "https://registry.yarnpkg.com/@types/source-map/-/source-map-0.5.2.tgz#973459e744cc7445c85b97f770275b479b138e08"
integrity sha512-++w4WmMbk3dS3UeHGzAG+xJOSz5Xqtjys/TBkqG3qp3SeWE7Wwezqe5eB7B51cxUyh4PW7bwVotpsLdBK0D8cw==
"@types/tapable@*": "@types/tapable@*":
version "1.0.4" version "1.0.4"
resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.4.tgz#b4ffc7dc97b498c969b360a41eee247f82616370" resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.4.tgz#b4ffc7dc97b498c969b360a41eee247f82616370"
@ -985,11 +975,6 @@ abbrev@1:
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
abbrev@1.0.x:
version "1.0.9"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
integrity sha1-kbR5JYinc4wl813W9jdSovh3YTU=
accepts@~1.3.4, accepts@~1.3.5: accepts@~1.3.4, accepts@~1.3.5:
version "1.3.5" version "1.3.5"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2"
@ -1373,16 +1358,16 @@ async-limiter@^1.0.0, async-limiter@~1.0.0:
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==
async@1.x, async@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
async@3.1.0: async@3.1.0:
version "3.1.0" version "3.1.0"
resolved "https://registry.yarnpkg.com/async/-/async-3.1.0.tgz#42b3b12ae1b74927b5217d8c0016baaf62463772" resolved "https://registry.yarnpkg.com/async/-/async-3.1.0.tgz#42b3b12ae1b74927b5217d8c0016baaf62463772"
integrity sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ== integrity sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ==
async@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
async@^2.1.2, async@^2.5.0, async@^2.6.0, async@^2.6.1: async@^2.1.2, async@^2.5.0, async@^2.6.0, async@^2.6.1:
version "2.6.1" version "2.6.1"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610"
@ -3736,18 +3721,6 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
escodegen@1.8.x:
version "1.8.1"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018"
integrity sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=
dependencies:
esprima "^2.7.1"
estraverse "^1.9.1"
esutils "^2.0.2"
optionator "^0.8.1"
optionalDependencies:
source-map "~0.2.0"
escodegen@^1.11.1: escodegen@^1.11.1:
version "1.11.1" version "1.11.1"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510"
@ -3792,11 +3765,6 @@ eslint-scope@^4.0.0:
esrecurse "^4.1.0" esrecurse "^4.1.0"
estraverse "^4.1.1" estraverse "^4.1.1"
esprima@2.7.x, esprima@^2.7.1:
version "2.7.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=
esprima@^3.1.3: esprima@^3.1.3:
version "3.1.3" version "3.1.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
@ -3814,11 +3782,6 @@ esrecurse@^4.1.0:
dependencies: dependencies:
estraverse "^4.1.0" estraverse "^4.1.0"
estraverse@^1.9.1:
version "1.9.3"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44"
integrity sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=
estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
version "4.2.0" version "4.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
@ -4660,17 +4623,6 @@ glob@7.1.4, glob@^7.1.4:
once "^1.3.0" once "^1.3.0"
path-is-absolute "^1.0.0" path-is-absolute "^1.0.0"
glob@^5.0.15:
version "5.0.15"
resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
integrity sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=
dependencies:
inflight "^1.0.4"
inherits "2"
minimatch "2 || 3"
once "^1.3.0"
path-is-absolute "^1.0.0"
glob@^6.0.1: glob@^6.0.1:
version "6.0.4" version "6.0.4"
resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
@ -4816,7 +4768,7 @@ handlebars@4.1.2, handlebars@^4.1.2:
optionalDependencies: optionalDependencies:
uglify-js "^3.1.4" uglify-js "^3.1.4"
handlebars@^4.0.1, handlebars@^4.0.2: handlebars@^4.0.2:
version "4.0.12" version "4.0.12"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.12.tgz#2c15c8a96d46da5e266700518ba8cb8d919d5bc5" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.12.tgz#2c15c8a96d46da5e266700518ba8cb8d919d5bc5"
integrity sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA== integrity sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==
@ -4867,11 +4819,6 @@ has-cors@1.1.0:
resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=
has-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=
has-flag@^3.0.0: has-flag@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
@ -5835,26 +5782,6 @@ istanbul-reports@^2.2.4:
dependencies: dependencies:
handlebars "^4.1.2" handlebars "^4.1.2"
istanbul@^0.4.5:
version "0.4.5"
resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b"
integrity sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=
dependencies:
abbrev "1.0.x"
async "1.x"
escodegen "1.8.x"
esprima "2.7.x"
glob "^5.0.15"
handlebars "^4.0.1"
js-yaml "3.x"
mkdirp "0.5.x"
nopt "3.x"
once "1.x"
resolve "1.1.x"
supports-color "^3.1.0"
which "^1.1.1"
wordwrap "^1.0.0"
jasmine-core@2.8.0, jasmine-core@~2.8.0: jasmine-core@2.8.0, jasmine-core@~2.8.0:
version "2.8.0" version "2.8.0"
resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e"
@ -5927,7 +5854,7 @@ js-yaml@3.13.1, js-yaml@^3.13.0, js-yaml@^3.13.1:
argparse "^1.0.7" argparse "^1.0.7"
esprima "^4.0.0" esprima "^4.0.0"
js-yaml@3.x, js-yaml@^3.9.0: js-yaml@^3.9.0:
version "3.12.0" version "3.12.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A== integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==
@ -7354,13 +7281,6 @@ node-sass-tilde-importer@^1.0.0:
dependencies: dependencies:
find-parent-dir "^0.3.0" find-parent-dir "^0.3.0"
nopt@3.x:
version "3.0.6"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k=
dependencies:
abbrev "1"
nopt@^4.0.1: nopt@^4.0.1:
version "4.0.1" version "4.0.1"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
@ -7632,7 +7552,7 @@ on-headers@~1.0.2:
resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
once@1.x, once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0:
version "1.4.0" version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
@ -9039,11 +8959,6 @@ resolve-url@^0.2.1:
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
resolve@1.1.x, resolve@~1.1.6:
version "1.1.7"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
resolve@^1.1.5, resolve@^1.1.7, resolve@^1.3.2: resolve@^1.1.5, resolve@^1.1.7, resolve@^1.3.2:
version "1.8.1" version "1.8.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
@ -9058,6 +8973,11 @@ resolve@^1.11.0, resolve@^1.11.1:
dependencies: dependencies:
path-parse "^1.0.6" path-parse "^1.0.6"
resolve@~1.1.6:
version "1.1.7"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
responselike@^1.0.2: responselike@^1.0.2:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
@ -9804,7 +9724,7 @@ source-map@0.5.6:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
integrity sha1-dc449SvwczxafwwRjYEzSiu19BI= integrity sha1-dc449SvwczxafwwRjYEzSiu19BI=
source-map@0.7.3: source-map@0.7.3, source-map@^0.7.3:
version "0.7.3" version "0.7.3"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
@ -9819,13 +9739,6 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
source-map@~0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d"
integrity sha1-2rc/vPwrqBm03gO9b26qSBZLP50=
dependencies:
amdefine ">=0.0.4"
source-map@~0.4.1: source-map@~0.4.1:
version "0.4.4" version "0.4.4"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
@ -10278,13 +10191,6 @@ supports-color@^2.0.0:
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
supports-color@^3.1.0:
version "3.2.3"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=
dependencies:
has-flag "^1.0.0"
supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.5.0: supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.5.0:
version "5.5.0" version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
@ -11326,7 +11232,7 @@ which-module@^2.0.0:
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
which@^1.1.1, which@^1.2.1, which@^1.2.9, which@^1.3.1: which@^1.2.1, which@^1.2.9, which@^1.3.1:
version "1.3.1" version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==