diff --git a/dist/mod00/mod00.assets.js b/dist/mod00/mod00.assets.js index 71c32af..a2dfcc8 100644 --- a/dist/mod00/mod00.assets.js +++ b/dist/mod00/mod00.assets.js @@ -7,7 +7,7 @@ const mod00_check_1 = require("../mod00/mod00.check"); exports.run = function (configArg) { let done = q.defer(); let config = configArg; - plugins.beautylog.ora.text('now looking at ' + 'required assets'.yellow); + plugins.beautylog.ora.text('now looking at ' + 'required assets'); if (config.cli === true) { let mainJsPath = mod00_check_1.projectInfo.packageJson.main; let cliJsString = plugins.smartfile.fs.toStringSync(plugins.path.join(paths.npmtsAssetsDir, 'cli.js')); diff --git a/dist/mod00/mod00.check.js b/dist/mod00/mod00.check.js index 27dd4e2..d910ee6 100644 --- a/dist/mod00/mod00.check.js +++ b/dist/mod00/mod00.check.js @@ -56,11 +56,11 @@ let checkDependencies = (configArg) => { process.exit(1); } for (let item in unused.invalidFiles) { - plugins.beautylog.warn(`Watch out: could not parse file ${item.red}`); + plugins.beautylog.warn(`Watch out: could not parse file ${item}`); } ; for (let item in unused.invalidDirs) { - plugins.beautylog.warn(`Watch out: could not parse directory ${item.red}`); + plugins.beautylog.warn(`Watch out: could not parse directory ${item}`); } done.resolve(configArg); }); @@ -82,20 +82,20 @@ let checkDevDependencies = (configArg) => { }); plugins.depcheck(paths.cwd, depcheckOptionsMerged, (unused) => { for (let item of unused.devDependencies) { - plugins.beautylog.log(`unused devDependency ${item.red}`); + plugins.beautylog.log(`unused devDependency ${item}`); } for (let item in unused.missing) { - plugins.beautylog.error(`unused devDependency ${item.red}`); + plugins.beautylog.error(`unused devDependency ${item}`); } if (unused.missing.length > 0) { plugins.beautylog.info('exiting due to missing dependencies in package.json'); process.exit(1); } for (let item in unused.invalidFiles) { - plugins.beautylog.warn(`Watch out: could not parse file ${item.red}`); + plugins.beautylog.warn(`Watch out: could not parse file ${item}`); } for (let item in unused.invalidDirs) { - plugins.beautylog.warn(`Watch out: could not parse directory ${item.red}`); + plugins.beautylog.warn(`Watch out: could not parse directory ${item}`); } done.resolve(configArg); }); diff --git a/dist/mod00/mod00.compile.js b/dist/mod00/mod00.compile.js index 0e0cedc..31cf5f3 100644 --- a/dist/mod00/mod00.compile.js +++ b/dist/mod00/mod00.compile.js @@ -6,7 +6,7 @@ const plugins = require("./mod00.plugins"); exports.run = function (configArg) { let done = q.defer(); let config = configArg; - plugins.beautylog.ora.text('now compiling ' + 'TypeScript'.yellow); + plugins.beautylog.ora.text('now compiling ' + 'TypeScript'); plugins.tsn.compileGlobStringObject(config.ts, config.tsOptions, paths.cwd) .then(() => { plugins.beautylog.ok(`compiled the module's TypeScript!`); diff --git a/dist/mod02/index.js b/dist/mod02/index.js index fa843d5..2f3ec6f 100644 --- a/dist/mod02/index.js +++ b/dist/mod02/index.js @@ -62,7 +62,7 @@ let tap = function (configArg) { testableFilesSmartstream.run(), testFilesSmartstream.run() ]).then(() => __awaiter(this, void 0, void 0, function* () { - yield npmtsTapBuffer.runTests(); + configArg.runData.coverageLcovInfo = yield npmtsTapBuffer.runTests(); done.resolve(configArg); }), (err) => { plugins.beautylog.error('Tests failed!'); @@ -76,15 +76,15 @@ let tap = function (configArg) { }); return done.promise; }; -let handleCoverageData = function (configArg) { - let done = q.defer(); - if (71 >= configArg.coverageTreshold) { - plugins.beautylog.ok(`${(71).toString()}% ` +let handleCoverageData = (configArg) => __awaiter(this, void 0, void 0, function* () { + let coverageResult = yield plugins.smartcov.get.percentageFromLcovString(configArg.runData.coverageLcovInfo, 2); + if (coverageResult >= configArg.coverageTreshold) { + plugins.beautylog.ok(`${(coverageResult).toString()}% ` + `coverage exceeds your treshold of ` + `${configArg.coverageTreshold.toString()}%`); } else { - plugins.beautylog.warn(`${(71).toString()}% ` + plugins.beautylog.warn(`${(coverageResult).toString()}% ` + `coverage fails your treshold of ` + `${configArg.coverageTreshold.toString()}%`); plugins.beautylog.error('exiting due to coverage failure'); @@ -92,9 +92,8 @@ let handleCoverageData = function (configArg) { process.exit(1); } } - done.resolve(configArg); - return done.promise; -}; + return configArg; +}); exports.run = function (configArg) { let done = q.defer(); let config = configArg; diff --git a/dist/mod02/mod02.plugins.d.ts b/dist/mod02/mod02.plugins.d.ts index 33b4c1a..cf5743c 100644 --- a/dist/mod02/mod02.plugins.d.ts +++ b/dist/mod02/mod02.plugins.d.ts @@ -3,5 +3,6 @@ import * as gulp from 'gulp'; import * as gulpFunction from 'gulp-function'; import * as gulpSourcemaps from 'gulp-sourcemaps'; import * as gulpTypeScript from 'gulp-typescript'; +import * as smartcov from 'smartcov'; import * as tapbuffer from 'tapbuffer'; -export { gulp, gulpFunction, gulpSourcemaps, gulpTypeScript, tapbuffer }; +export { gulp, gulpFunction, gulpSourcemaps, gulpTypeScript, smartcov, tapbuffer }; diff --git a/dist/mod02/mod02.plugins.js b/dist/mod02/mod02.plugins.js index 6d119d2..f67d0c7 100644 --- a/dist/mod02/mod02.plugins.js +++ b/dist/mod02/mod02.plugins.js @@ -12,5 +12,7 @@ const gulpSourcemaps = require("gulp-sourcemaps"); exports.gulpSourcemaps = gulpSourcemaps; const gulpTypeScript = require("gulp-typescript"); exports.gulpTypeScript = gulpTypeScript; +const smartcov = require("smartcov"); +exports.smartcov = smartcov; const tapbuffer = require("tapbuffer"); exports.tapbuffer = tapbuffer; diff --git a/dist/npmts.config.d.ts b/dist/npmts.config.d.ts index 888f07a..5db6b35 100644 --- a/dist/npmts.config.d.ts +++ b/dist/npmts.config.d.ts @@ -8,5 +8,9 @@ export interface INpmtsConfig { ts: any; tsOptions: any; watch: boolean; + runData: { + coverageLcovInfo?: string; + coverageResult?: number; + }; } export declare let run: (argvArg: any) => Promise<{}>; diff --git a/dist/npmts.config.js b/dist/npmts.config.js index dfb1c5a..1c7c704 100644 --- a/dist/npmts.config.js +++ b/dist/npmts.config.js @@ -14,7 +14,8 @@ exports.run = function (argvArg) { testTs: {}, ts: {}, tsOptions: {}, - watch: false + watch: false, + runData: {} }; // mix with configfile plugins.beautylog.ora.text('running npmextra'); diff --git a/package.json b/package.json index 6c8da43..74b3b28 100644 --- a/package.json +++ b/package.json @@ -40,18 +40,18 @@ "@types/through2": "^2.0.32", "beautylog": "6.1.5", "depcheck": "^0.6.7", - "early": "^2.0.36", + "early": "^2.0.38", "gulp": "3.9.1", "gulp-function": "^2.2.3", - "gulp-sourcemaps": "^2.4.1", + "gulp-sourcemaps": "^2.5.0", "gulp-typescript": "^3.1.6", "lodash": "^4.17.4", "npmextra": "^2.0.5", "projectinfo": "^3.0.2", "smartanalytics": "^1.0.3", "smartchok": "^1.0.5", - "smartcli": "2.0.1", - "smartcov": "1.0.0", + "smartcli": "^2.0.1", + "smartcov": "^1.0.2", "smartenv": "2.0.0", "smartfile": "^4.1.9", "smartpath": "^3.2.8", @@ -60,10 +60,10 @@ "smartstring": "^2.0.24", "smartsystem": "^1.0.12", "source-map-support": "^0.4.14", - "tapbuffer": "^1.0.9", + "tapbuffer": "^1.0.10", "through2": "^2.0.3", "tsn": "^2.0.15", - "typescript": "^2.2.1", + "typescript": "^2.2.2", "typings-global": "^1.0.14" }, "devDependencies": {} diff --git a/ts/mod00/mod00.assets.ts b/ts/mod00/mod00.assets.ts index a794ed1..346e785 100644 --- a/ts/mod00/mod00.assets.ts +++ b/ts/mod00/mod00.assets.ts @@ -8,7 +8,7 @@ import { projectInfo } from '../mod00/mod00.check' export let run = function(configArg){ let done = q.defer() let config = configArg - plugins.beautylog.ora.text('now looking at ' + 'required assets'.yellow) + plugins.beautylog.ora.text('now looking at ' + 'required assets') if (config.cli === true) { let mainJsPath = projectInfo.packageJson.main let cliJsString: string = plugins.smartfile.fs.toStringSync(plugins.path.join(paths.npmtsAssetsDir,'cli.js')) diff --git a/ts/mod00/mod00.check.ts b/ts/mod00/mod00.check.ts index 7c7c63e..33d0088 100644 --- a/ts/mod00/mod00.check.ts +++ b/ts/mod00/mod00.check.ts @@ -60,10 +60,10 @@ let checkDependencies = (configArg) => { process.exit(1) } for (let item in unused.invalidFiles) { - plugins.beautylog.warn(`Watch out: could not parse file ${item.red}`) + plugins.beautylog.warn(`Watch out: could not parse file ${item}`) }; for (let item in unused.invalidDirs) { - plugins.beautylog.warn(`Watch out: could not parse directory ${item.red}`) + plugins.beautylog.warn(`Watch out: could not parse directory ${item}`) } done.resolve(configArg) }) @@ -86,20 +86,20 @@ let checkDevDependencies = (configArg) => { }) plugins.depcheck(paths.cwd, depcheckOptionsMerged, (unused) => { for (let item of unused.devDependencies) { - plugins.beautylog.log(`unused devDependency ${item.red}`) + plugins.beautylog.log(`unused devDependency ${item}`) } for (let item in unused.missing) { - plugins.beautylog.error(`unused devDependency ${item.red}`) + plugins.beautylog.error(`unused devDependency ${item}`) } if (unused.missing.length > 0) { plugins.beautylog.info('exiting due to missing dependencies in package.json') process.exit(1) } for (let item in unused.invalidFiles) { - plugins.beautylog.warn(`Watch out: could not parse file ${item.red}`) + plugins.beautylog.warn(`Watch out: could not parse file ${item}`) } for (let item in unused.invalidDirs) { - plugins.beautylog.warn(`Watch out: could not parse directory ${item.red}`) + plugins.beautylog.warn(`Watch out: could not parse directory ${item}`) } done.resolve(configArg) }) diff --git a/ts/mod00/mod00.compile.ts b/ts/mod00/mod00.compile.ts index af90263..f7eebac 100644 --- a/ts/mod00/mod00.compile.ts +++ b/ts/mod00/mod00.compile.ts @@ -7,7 +7,7 @@ import * as plugins from './mod00.plugins' export let run = function (configArg) { let done = q.defer() let config = configArg - plugins.beautylog.ora.text('now compiling ' + 'TypeScript'.yellow) + plugins.beautylog.ora.text('now compiling ' + 'TypeScript') plugins.tsn.compileGlobStringObject(config.ts, config.tsOptions, paths.cwd) .then(() => { plugins.beautylog.ok(`compiled the module's TypeScript!`) diff --git a/ts/mod02/index.ts b/ts/mod02/index.ts index c0ff210..173fbdb 100644 --- a/ts/mod02/index.ts +++ b/ts/mod02/index.ts @@ -61,7 +61,7 @@ let tap = function (configArg: INpmtsConfig) { testFilesSmartstream.run() ]).then( async () => { - await npmtsTapBuffer.runTests() + configArg.runData.coverageLcovInfo = await npmtsTapBuffer.runTests() done.resolve(configArg) }, (err) => { plugins.beautylog.error('Tests failed!') @@ -76,25 +76,27 @@ let tap = function (configArg: INpmtsConfig) { return done.promise } -let handleCoverageData = function (configArg: INpmtsConfig) { - let done = q.defer() - if (71 >= configArg.coverageTreshold) { +let handleCoverageData = async (configArg: INpmtsConfig) => { + let coverageResult = await plugins.smartcov.get.percentageFromLcovString( + configArg.runData.coverageLcovInfo, + 2 + ) + if (coverageResult >= configArg.coverageTreshold) { plugins.beautylog.ok( - `${(71).toString()}% ` + `${(coverageResult).toString()}% ` + `coverage exceeds your treshold of ` + `${configArg.coverageTreshold.toString()}%` ) } else { plugins.beautylog.warn( - `${(71).toString()}% ` + `${(coverageResult).toString()}% ` + `coverage fails your treshold of ` + `${configArg.coverageTreshold.toString()}%` ) plugins.beautylog.error('exiting due to coverage failure') if (!configArg.watch) { process.exit(1) } } - done.resolve(configArg) - return done.promise + return configArg } export let run = function (configArg: INpmtsConfig) { diff --git a/ts/mod02/mod02.plugins.ts b/ts/mod02/mod02.plugins.ts index d449e76..baca913 100644 --- a/ts/mod02/mod02.plugins.ts +++ b/ts/mod02/mod02.plugins.ts @@ -4,6 +4,7 @@ import * as gulp from 'gulp' import * as gulpFunction from 'gulp-function' import * as gulpSourcemaps from 'gulp-sourcemaps' import * as gulpTypeScript from 'gulp-typescript' +import * as smartcov from 'smartcov' import * as tapbuffer from 'tapbuffer' export { @@ -11,5 +12,6 @@ export { gulpFunction, gulpSourcemaps, gulpTypeScript, + smartcov, tapbuffer } diff --git a/ts/npmts.config.ts b/ts/npmts.config.ts index a154765..7f089c9 100644 --- a/ts/npmts.config.ts +++ b/ts/npmts.config.ts @@ -6,73 +6,77 @@ import * as q from 'smartq' export type npmtsMode = 'default' | 'custom' export interface INpmtsConfig { - argv: any, - coverageTreshold: number, - mode: npmtsMode, - test: boolean, - testTs: any, - ts: any, - tsOptions: any, - watch: boolean - + argv: any, + coverageTreshold: number, + mode: npmtsMode, + test: boolean, + testTs: any, + ts: any, + tsOptions: any, + watch: boolean + runData: { + coverageLcovInfo?: string, + coverageResult?: number + } }; export let run = function (argvArg) { - let done = q.defer() - let defaultConfig: INpmtsConfig = { - argv: undefined, - coverageTreshold: 70, - mode: 'default', - test: true, - testTs: {}, - ts: {}, - tsOptions: {}, - watch: false + let done = q.defer() + let defaultConfig: INpmtsConfig = { + argv: undefined, + coverageTreshold: 70, + mode: 'default', + test: true, + testTs: {}, + ts: {}, + tsOptions: {}, + watch: false, + runData: {} + } + + // mix with configfile + plugins.beautylog.ora.text('running npmextra') + + let localNpmextra = new plugins.npmextra.Npmextra(paths.cwd) + let config: INpmtsConfig = localNpmextra.dataFor( + 'npmts', + defaultConfig + ) + + // add argv + config.argv = argvArg + + // check mode + switch (config.mode) { + case 'default': + case 'custom': + plugins.beautylog.ok('mode is ' + config.mode) + done.resolve(config) + break + default: + plugins.beautylog.error(`mode not recognised!`) + process.exit(1) + }; + + // handle default mode + if (config.mode === 'default') { + config.ts = { + './ts/**/*.ts': './dist/' } + config.testTs = { + './test/**/*.ts': './test/' + } + }; - // mix with configfile - plugins.beautylog.ora.text('running npmextra') + // mix with commandline + if (config.argv.notest) { + config.test = false + }; + if (config.argv.watch) { + config.watch = true + }; - let localNpmextra = new plugins.npmextra.Npmextra(paths.cwd) - let config: INpmtsConfig = localNpmextra.dataFor( - 'npmts', - defaultConfig - ) - - // add argv - config.argv = argvArg - - // check mode - switch (config.mode) { - case 'default': - case 'custom': - plugins.beautylog.ok('mode is ' + config.mode) - done.resolve(config) - break - default: - plugins.beautylog.error(`mode not recognised!`) - process.exit(1) - }; - - // handle default mode - if (config.mode === 'default') { - config.ts = { - './ts/**/*.ts': './dist/' - } - config.testTs = { - './test/**/*.ts': './test/' - } - }; - - // mix with commandline - if (config.argv.notest) { - config.test = false - }; - if (config.argv.watch) { - config.watch = true - }; - - plugins.beautylog.ok('build options are ready!') - done.resolve(config) - return done.promise + plugins.beautylog.ok('build options are ready!') + done.resolve(config) + return done.promise } diff --git a/yarn.lock b/yarn.lock index 7b45ad8..5516cc6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,13 @@ # yarn lockfile v1 +"@gulp-sourcemaps/map-sources@1.X": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz#890ae7c5d8c877f6d384860215ace9d7ec945bda" + dependencies: + normalize-path "^2.0.1" + through2 "^2.0.3" + "@types/chai-as-promised@0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-0.0.29.tgz#43d52892aa998e185a3de3e2477edb8573be1d77" @@ -25,10 +32,6 @@ dependencies: "@types/node" "*" -"@types/colors@0.x.x": - version "0.6.33" - resolved "https://registry.yarnpkg.com/@types/colors/-/colors-0.6.33.tgz#17dada5971c395259490d6c83d7c182cf6e9ce55" - "@types/fs-extra@0.x.x": version "0.0.37" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-0.0.37.tgz#195f11bcd9a1b97d9e412c6b66899b545471a1f7" @@ -53,14 +56,10 @@ version "0.4.29" resolved "https://registry.yarnpkg.com/@types/istanbul/-/istanbul-0.4.29.tgz#29c8cbb747ac57280965545dc58514ba0dbb99af" -"@types/lodash@4.x.x", "@types/lodash@^4.14.35", "@types/lodash@^4.14.50", "@types/lodash@^4.14.55": +"@types/lodash@^4.14.35", "@types/lodash@^4.14.50", "@types/lodash@^4.14.55": version "4.14.58" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.58.tgz#18d45863b6119c1ffffe935c1f51fe044c8c4102" -"@types/loggly@1.x.x": - version "1.1.30" - resolved "https://registry.yarnpkg.com/@types/loggly/-/loggly-1.1.30.tgz#a6658432314cbf0ec0350d33e7df9f4c0b76b3d0" - "@types/minimatch@2.x.x", "@types/minimatch@^2.0.29": version "2.0.29" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-2.0.29.tgz#5002e14f75e2d71e564281df0431c8c1b4a2a36a" @@ -87,7 +86,7 @@ version "1.0.0" resolved "https://registry.yarnpkg.com/@types/q/-/q-1.0.0.tgz#57e5465d665b370d4217e69b344b20faa6b724f5" -"@types/q@0.0.32", "@types/q@0.x.x", "@types/q@^0.x.x": +"@types/q@0.0.32", "@types/q@0.x.x": version "0.0.32" resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" @@ -348,25 +347,6 @@ beautylog@^4.1.2: q "^1.4.1" smartenv "^1.2.2" -beautylog@^5.0.20: - version "5.0.23" - resolved "https://registry.yarnpkg.com/beautylog/-/beautylog-5.0.23.tgz#db0161b063be4ff40cee812c066582da2e599bf1" - dependencies: - "@types/colors" "0.x.x" - "@types/lodash" "4.x.x" - "@types/loggly" "1.x.x" - "@types/q" "0.x.x" - cli-color "^1.1.0" - cli-table2 "^0.2.0" - colors "1.1.2" - figlet "^1.1.2" - lodash "^4.15.0" - loggly "^1.1.0" - ora "^0.3.0" - q "^1.4.1" - smartenv "^1.2.5" - typings-global "^1.0.13" - beeper@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" @@ -375,12 +355,6 @@ binary-extensions@^1.0.0: version "1.8.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" -bl@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398" - dependencies: - readable-stream "~2.0.5" - block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" @@ -509,10 +483,6 @@ cli-spinners@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" -cli-spinners@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.2.0.tgz#85078737913b880f6ec9ffe7b65e83ec7776284f" - cli-spinners@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.0.0.tgz#ef987ed3d48391ac3dab9180b406a742180d6e6a" @@ -775,9 +745,9 @@ duplexify@^3.2.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -early@^2.0.36: - version "2.0.36" - resolved "https://registry.yarnpkg.com/early/-/early-2.0.36.tgz#042e1b3a08248aed78cd26f325c3ebd6a93d7ba9" +early@^2.0.38: + version "2.0.38" + resolved "https://registry.yarnpkg.com/early/-/early-2.0.38.tgz#f7be550eb466d2b52668cabc554c39ff2f92cf41" dependencies: beautycolor "^1.0.7" smartq "^1.1.1" @@ -1022,14 +992,6 @@ forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" -form-data@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.0.0.tgz#6f0aebadcc5da16c13e1ecc11137d85f9b883b25" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.11" - form-data@~2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" @@ -1046,16 +1008,6 @@ fs-exists-sync@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" -fs-extra@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - fs-extra@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.0.0.tgz#337352bded4a0b714f3eb84de8cea765e9d37600" @@ -1063,6 +1015,13 @@ fs-extra@^2.0.0: graceful-fs "^4.1.2" jsonfile "^2.1.0" +fs-extra@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -1258,7 +1217,7 @@ glogg@^1.0.0: dependencies: sparkles "^1.0.0" -graceful-fs@4.X, graceful-fs@^4.0.0, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: +graceful-fs@4.X, graceful-fs@^4.0.0, graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -1296,10 +1255,11 @@ gulp-sourcemaps@1.6.0: through2 "^2.0.0" vinyl "^1.0.0" -gulp-sourcemaps@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-2.4.1.tgz#8f65dc5c0d07b2fd5c88bc60ec7f13e56716bf74" +gulp-sourcemaps@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-2.5.0.tgz#8270a25148357ac73597bd0c6bd43177e982a3af" dependencies: + "@gulp-sourcemaps/map-sources" "1.X" acorn "4.X" convert-source-map "1.X" css "2.X" @@ -1689,7 +1649,7 @@ json-stable-stringify@^1.0.0: dependencies: jsonify "~0.0.0" -json-stringify-safe@5.0.x, json-stringify-safe@~5.0.1: +json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -1721,12 +1681,6 @@ kind-of@^3.0.2: dependencies: is-buffer "^1.0.2" -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - optionalDependencies: - graceful-fs "^4.1.9" - lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" @@ -1910,7 +1864,7 @@ lodash@^3.10.1: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.11.1, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.16.1, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.5.1: +lodash@^4.11.1, lodash@^4.13.1, lodash@^4.16.1, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.5.1: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -1924,14 +1878,6 @@ log-symbols@^1.0.2: dependencies: chalk "^1.0.0" -loggly@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/loggly/-/loggly-1.1.1.tgz#0a0fc1d3fa3a5ec44fdc7b897beba2a4695cebee" - dependencies: - json-stringify-safe "5.0.x" - request "2.75.x" - timespan "2.3.x" - longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" @@ -1963,14 +1909,15 @@ map-cache@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" -mathjs@^3.4.1: - version "3.9.3" - resolved "https://registry.yarnpkg.com/mathjs/-/mathjs-3.9.3.tgz#d99b06093e83772a8d622457aedffd8f65a46183" +mathjs@^3.10.3: + version "3.10.3" + resolved "https://registry.yarnpkg.com/mathjs/-/mathjs-3.10.3.tgz#bd6577a8e7ee22ece373838a99e8808fa88d990f" dependencies: complex.js "2.0.1" decimal.js "7.1.1" fraction.js "4.0.0" - tiny-emitter "1.1.0" + seed-random "2.2.0" + tiny-emitter "1.0.2" typed-function "0.10.5" memoizee@^0.4.3: @@ -2014,7 +1961,7 @@ mime-db@~1.26.0: version "1.26.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" -mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.7: +mime-types@^2.1.12, mime-types@~2.1.7: version "2.1.14" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" dependencies: @@ -2105,10 +2052,6 @@ node-pre-gyp@^0.6.29: tar "~2.2.1" tar-pack "~3.3.0" -node-uuid@~1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" - nopt@3.x, nopt@~3.0.6: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" @@ -2215,15 +2158,6 @@ ora@^0.2.1, ora@^0.2.3: cli-spinners "^0.1.2" object-assign "^4.0.1" -ora@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-0.3.0.tgz#367a078ad25cfb096da501115eb5b401e07d7495" - dependencies: - chalk "^1.1.1" - cli-cursor "^1.0.2" - cli-spinners "^0.2.0" - log-symbols "^1.0.2" - ora@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ora/-/ora-1.1.0.tgz#69aaa4a209630e43b142c5f7ff41820da87e2faf" @@ -2378,10 +2312,6 @@ q@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" -qs@~6.2.0: - version "6.2.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.2.tgz#d506a5ad5b2cae1fd35c4f54ec182e267e3ef586" - qs@~6.3.0: version "6.3.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.1.tgz#918c0b3bcd36679772baf135b1acb4c1651ed79d" @@ -2447,17 +2377,6 @@ readable-stream@~1.1.9: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - readable-stream@~2.1.4: version "2.1.5" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" @@ -2516,32 +2435,6 @@ replace-ext@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" -request@2.75.x: - version "2.75.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.75.0.tgz#d2b8268a286da13eaa5d01adf5d18cc90f657d93" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - bl "~1.1.2" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.0.0" - har-validator "~2.0.6" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - node-uuid "~1.4.7" - oauth-sign "~0.8.1" - qs "~6.2.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - request@^2.79.0: version "2.79.0" resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" @@ -2630,16 +2523,16 @@ rimraf@2, rimraf@^2.3.3, rimraf@~2.5.1, rimraf@~2.5.4: dependencies: glob "^7.0.5" -rimraf@^2.2.8: - version "2.2.8" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" - rxjs@^5.0.0-beta.12, rxjs@^5.0.1, rxjs@^5.1.1: version "5.2.0" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.2.0.tgz#db537de8767c05fa73721587a29e0085307d318b" dependencies: symbol-observable "^1.0.1" +seed-random@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/seed-random/-/seed-random-2.2.0.tgz#2a9b19e250a817099231a5b99a4daf80b7fbed54" + "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -2725,17 +2618,16 @@ smartcli@2.0.1: typings-global "^1.0.14" yargs "^6.4.0" -smartcov@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/smartcov/-/smartcov-1.0.0.tgz#9eafcf774e325c6f96d91224b2d1ade749aceeeb" +smartcov@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/smartcov/-/smartcov-1.0.2.tgz#d81bed707fc6191a39a71384fb66ddd1f41dac1f" dependencies: - "@types/q" "^0.x.x" - beautylog "^5.0.20" - fs-extra "^0.30.0" + beautylog "^6.1.5" + fs-extra "^2.1.2" lcov-parse "0.0.10" - mathjs "^3.4.1" - q "^1.4.1" - typings-global "^1.0.6" + mathjs "^3.10.3" + smartq "^1.1.1" + typings-global "^1.0.14" smartenv@2.0.0, smartenv@^2.0.0: version "2.0.0" @@ -3081,9 +2973,9 @@ tap-parser@^5.1.0: optionalDependencies: readable-stream "^2" -tapbuffer@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/tapbuffer/-/tapbuffer-1.0.9.tgz#f0faa78219dffe66a75315c2fda266f17a0c3c52" +tapbuffer@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/tapbuffer/-/tapbuffer-1.0.10.tgz#e4b910d5c3e64bec3c49d73c835694445de40764" dependencies: "@types/istanbul" "^0.4.29" beautylog "^6.1.1" @@ -3162,13 +3054,9 @@ timers-ext@0.1: es5-ext "~0.10.2" next-tick "~0.2.2" -timespan@2.3.x: - version "2.3.0" - resolved "https://registry.yarnpkg.com/timespan/-/timespan-2.3.0.tgz#4902ce040bd13d845c8f59b27e9d59bad6f39929" - -tiny-emitter@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-1.1.0.tgz#ab405a21ffed814a76c19739648093d70654fecb" +tiny-emitter@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-1.0.2.tgz#8e49470d3f55f89e247210368a6bb9fb51aa1601" to-absolute-glob@^0.1.1: version "0.1.1" @@ -3229,11 +3117,15 @@ typed-promisify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/typed-promisify/-/typed-promisify-0.3.0.tgz#1ba0af5e444c87d8047406f18ce49092a1191853" -typescript@^2.1.5, typescript@^2.2.1: +typescript@^2.1.5: version "2.2.1" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.2.1.tgz#4862b662b988a4c8ff691cc7969622d24db76ae9" -typings-global@*, typings-global@^1.0.13, typings-global@^1.0.14, typings-global@^1.0.3, typings-global@^1.0.6: +typescript@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.2.2.tgz#606022508479b55ffa368b58fee963a03dfd7b0c" + +typings-global@*, typings-global@^1.0.14, typings-global@^1.0.3: version "1.0.14" resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.14.tgz#ab682720a03d6b9278869fb5c30c30d7dc61d12c" dependencies: