Compare commits

...

9 Commits

Author SHA1 Message Date
07195d207d 7.0.5 2017-04-01 21:03:55 +02:00
b60bb25b0f update ci 2017-04-01 21:02:47 +02:00
a7af34622b 7.0.4 2017-04-01 20:58:27 +02:00
9c58be69bf update docs 2017-04-01 20:58:23 +02:00
1681fc729d 7.0.3 2017-03-31 19:18:21 +02:00
50e2895ad9 fix #17, now computing coverage result correctly 2017-03-31 19:18:18 +02:00
95ba650a14 update pages job 2017-03-31 17:02:19 +02:00
83aa10eb52 7.0.2 2017-03-31 16:46:52 +02:00
ebc3cb70ff add support for picking up all .ts files in .test/ 2017-03-31 16:46:48 +02:00
24 changed files with 237 additions and 327 deletions

View File

@ -48,12 +48,15 @@ trigger:
- docker - docker
pages: pages:
image: hosttoday/ht-docker-node:npmpage image: hosttoday/ht-docker-node:npmci
stage: pages stage: pages
script: script:
- npmci command npmpage --publish gitlab - npmci command yarn global add npmpage
- npmci command npmpage
only: only:
- tags - tags
tags:
- docker
artifacts: artifacts:
expire_in: 1 week expire_in: 1 week
paths: paths:

View File

@ -7,7 +7,7 @@ const mod00_check_1 = require("../mod00/mod00.check");
exports.run = function (configArg) { exports.run = function (configArg) {
let done = q.defer(); let done = q.defer();
let config = configArg; 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) { if (config.cli === true) {
let mainJsPath = mod00_check_1.projectInfo.packageJson.main; let mainJsPath = mod00_check_1.projectInfo.packageJson.main;
let cliJsString = plugins.smartfile.fs.toStringSync(plugins.path.join(paths.npmtsAssetsDir, 'cli.js')); let cliJsString = plugins.smartfile.fs.toStringSync(plugins.path.join(paths.npmtsAssetsDir, 'cli.js'));

View File

@ -56,11 +56,11 @@ let checkDependencies = (configArg) => {
process.exit(1); process.exit(1);
} }
for (let item in unused.invalidFiles) { 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) { 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); done.resolve(configArg);
}); });
@ -82,20 +82,20 @@ let checkDevDependencies = (configArg) => {
}); });
plugins.depcheck(paths.cwd, depcheckOptionsMerged, (unused) => { plugins.depcheck(paths.cwd, depcheckOptionsMerged, (unused) => {
for (let item of unused.devDependencies) { 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) { for (let item in unused.missing) {
plugins.beautylog.error(`unused devDependency ${item.red}`); plugins.beautylog.error(`unused devDependency ${item}`);
} }
if (unused.missing.length > 0) { if (unused.missing.length > 0) {
plugins.beautylog.info('exiting due to missing dependencies in package.json'); plugins.beautylog.info('exiting due to missing dependencies in package.json');
process.exit(1); process.exit(1);
} }
for (let item in unused.invalidFiles) { 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) { 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); done.resolve(configArg);
}); });

View File

@ -6,7 +6,7 @@ const plugins = require("./mod00.plugins");
exports.run = function (configArg) { exports.run = function (configArg) {
let done = q.defer(); let done = q.defer();
let config = configArg; 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) plugins.tsn.compileGlobStringObject(config.ts, config.tsOptions, paths.cwd)
.then(() => { .then(() => {
plugins.beautylog.ok(`compiled the module's TypeScript!`); plugins.beautylog.ok(`compiled the module's TypeScript!`);

19
dist/mod02/index.js vendored
View File

@ -47,7 +47,7 @@ let tap = function (configArg) {
* handle the test files * handle the test files
*/ */
let testFilesSmartstream = new plugins.smartstream.Smartstream([ let testFilesSmartstream = new plugins.smartstream.Smartstream([
plugins.gulp.src([plugins.path.join(paths.cwd, 'test/test.ts')]), plugins.gulp.src([plugins.path.join(paths.cwd, 'test/*.ts')]),
plugins.gulpTypeScript({ plugins.gulpTypeScript({
target: 'ES5', target: 'ES5',
emitDecoratorMetadata: true, emitDecoratorMetadata: true,
@ -62,7 +62,7 @@ let tap = function (configArg) {
testableFilesSmartstream.run(), testableFilesSmartstream.run(),
testFilesSmartstream.run() testFilesSmartstream.run()
]).then(() => __awaiter(this, void 0, void 0, function* () { ]).then(() => __awaiter(this, void 0, void 0, function* () {
yield npmtsTapBuffer.runTests(); configArg.runData.coverageLcovInfo = yield npmtsTapBuffer.runTests();
done.resolve(configArg); done.resolve(configArg);
}), (err) => { }), (err) => {
plugins.beautylog.error('Tests failed!'); plugins.beautylog.error('Tests failed!');
@ -76,15 +76,15 @@ let tap = function (configArg) {
}); });
return done.promise; return done.promise;
}; };
let handleCoverageData = function (configArg) { let handleCoverageData = (configArg) => __awaiter(this, void 0, void 0, function* () {
let done = q.defer(); let coverageResult = yield plugins.smartcov.get.percentageFromLcovString(configArg.runData.coverageLcovInfo, 2);
if (71 >= configArg.coverageTreshold) { if (coverageResult >= configArg.coverageTreshold) {
plugins.beautylog.ok(`${(71).toString()}% ` plugins.beautylog.ok(`${(coverageResult).toString()}% `
+ `coverage exceeds your treshold of ` + `coverage exceeds your treshold of `
+ `${configArg.coverageTreshold.toString()}%`); + `${configArg.coverageTreshold.toString()}%`);
} }
else { else {
plugins.beautylog.warn(`${(71).toString()}% ` plugins.beautylog.warn(`${(coverageResult).toString()}% `
+ `coverage fails your treshold of ` + `coverage fails your treshold of `
+ `${configArg.coverageTreshold.toString()}%`); + `${configArg.coverageTreshold.toString()}%`);
plugins.beautylog.error('exiting due to coverage failure'); plugins.beautylog.error('exiting due to coverage failure');
@ -92,9 +92,8 @@ let handleCoverageData = function (configArg) {
process.exit(1); process.exit(1);
} }
} }
done.resolve(configArg); return configArg;
return done.promise; });
};
exports.run = function (configArg) { exports.run = function (configArg) {
let done = q.defer(); let done = q.defer();
let config = configArg; let config = configArg;

View File

@ -3,5 +3,6 @@ import * as gulp from 'gulp';
import * as gulpFunction from 'gulp-function'; import * as gulpFunction from 'gulp-function';
import * as gulpSourcemaps from 'gulp-sourcemaps'; import * as gulpSourcemaps from 'gulp-sourcemaps';
import * as gulpTypeScript from 'gulp-typescript'; import * as gulpTypeScript from 'gulp-typescript';
import * as smartcov from 'smartcov';
import * as tapbuffer from 'tapbuffer'; import * as tapbuffer from 'tapbuffer';
export { gulp, gulpFunction, gulpSourcemaps, gulpTypeScript, tapbuffer }; export { gulp, gulpFunction, gulpSourcemaps, gulpTypeScript, smartcov, tapbuffer };

View File

@ -12,5 +12,7 @@ const gulpSourcemaps = require("gulp-sourcemaps");
exports.gulpSourcemaps = gulpSourcemaps; exports.gulpSourcemaps = gulpSourcemaps;
const gulpTypeScript = require("gulp-typescript"); const gulpTypeScript = require("gulp-typescript");
exports.gulpTypeScript = gulpTypeScript; exports.gulpTypeScript = gulpTypeScript;
const smartcov = require("smartcov");
exports.smartcov = smartcov;
const tapbuffer = require("tapbuffer"); const tapbuffer = require("tapbuffer");
exports.tapbuffer = tapbuffer; exports.tapbuffer = tapbuffer;

View File

@ -8,5 +8,9 @@ export interface INpmtsConfig {
ts: any; ts: any;
tsOptions: any; tsOptions: any;
watch: boolean; watch: boolean;
runData: {
coverageLcovInfo?: string;
coverageResult?: number;
};
} }
export declare let run: (argvArg: any) => Promise<{}>; export declare let run: (argvArg: any) => Promise<{}>;

View File

@ -14,7 +14,8 @@ exports.run = function (argvArg) {
testTs: {}, testTs: {},
ts: {}, ts: {},
tsOptions: {}, tsOptions: {},
watch: false watch: false,
runData: {}
}; };
// mix with configfile // mix with configfile
plugins.beautylog.ora.text('running npmextra'); plugins.beautylog.ora.text('running npmextra');

9
docs/00footer.md Normal file
View File

@ -0,0 +1,9 @@
[Legal Info](https://lossless.gmbh)
[Privacy Policy](https://lossless.gmbh/privacy.html)
///
[Git.Zone](https://git.zone)
<span>tools for a seamless dev workflow</span>
[Lossless GmbH](https://push.rocks)
<span>the company behind git.zone and npmts</span>
///

View File

@ -1,4 +1,9 @@
# Configuration of NPMTS ---
name: config
---
# Configuration
## of npmts
npmts can be configured to your needs: npmts can be configured to your needs:
### npmextra.json ### npmextra.json

View File

@ -1,7 +1,11 @@
# Default task execution of npmts ---
name: Default Behaviour
---
# Default Behaviour
## of npmts
1. **Config:** Check config in ./npmextra.json (Check out [npmextra](https://www.npmjs.com/package/npmextra)) 1. **Config:** Check config in ./npmextra.json (Check out [npmextra](https://www.npmjs.com/package/npmextra))
1. **Clean:** Clean up from any previous builds (old js files) 1. **Clean:** Clean up from any previous builds (old js files)
1. **Check:** Check project for typings declaration in package.json, unused dependencies and missing dependencies 1. **Check:** Check project for typings declaration in package.json, unused dependencies and missing dependencies
1. **Transpile:** Transpile TypeScript with **inline sourcemaps** and **declaration files** to ES target 1. **Transpile:** Transpile TypeScript with **inline sourcemaps** and **declaration files** to ES target
1. **Test:** Babelify ES6 to ES5 on the fly, instrumentalize ES5 JavaScript with istanbul and run tests with Mocha. 1. **Test:** transpile TypeScript of module to ES5 for tests (so it can be instrumentalized) and pipe it to tapbuffer. All this happens in memory.

View File

@ -1,13 +1,19 @@
# Examples for npmts ---
name: Examples
---
# Examples
## of modules that use npmts
Module Name | Description
--- | ---
[gulp-browser](https://www.npmjs.com/package/gulp-browser) | browserify for gulp
## Example Usage in modules:
* [gulp-browser](https://www.npmjs.com/package/gulp-browser)
> We will add more options over time. > We will add more options over time.
## Tips and tricks: ### Tips and tricks:
* Use [npmts-g](https://www.npmjs.com/package/npmts-g) to use globally installed npmts and install npmts locally if no global npmts is available. * Use [npmts-g](https://www.npmjs.com/package/npmts-g) to use globally installed npmts and install npmts locally if no global npmts is available.
* Use [npmpage](https://www.npmjs.com/package/npmpage) to create a webpage from coverage reports and TypeDoc for the module * Use [npmpage](https://www.npmjs.com/package/npmpage) to create a webpage from coverage reports and TypeDoc for the module
* Use [hosttoday/ht-docker-node:npmts](https://hub.docker.com/r/hosttoday/ht-docker-node/) for speedy CI builds * Use [hosttoday/ht-docker-node:npmci](https://hub.docker.com/r/hosttoday/ht-docker-node/) for speedy CI builds
* Use [npmdocker](https://www.npmjs.com/package/npmdocker) for running tests consistently with docker. * Use [npmdocker](https://www.npmjs.com/package/npmdocker) for running tests consistently with docker.

View File

@ -1,44 +1,42 @@
---
name: Start
---
# npmts # npmts
Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6. ## Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.
## Availabililty ## Availabililty
[![npm](https://push.rocks/assets/repo-button-npm.svg)](https://www.npmjs.com/package/npmts) [![npm](https://gitzone.gitlab.io/assets/repo-button-npm.svg)](https://www.npmjs.com/package/npmts)
[![git](https://push.rocks/assets/repo-button-git.svg)](https://gitlab.com/pushrocks/npmts) [![git](https://gitzone.gitlab.io/assets/repo-button-git.svg)](https://GitLab.com/gitzone/npmts)
[![git](https://push.rocks/assets/repo-button-mirror.svg)](https://github.com/pushrocks/npmts) [![git](https://gitzone.gitlab.io/assets/repo-button-mirror.svg)](https://github.com/gitzone/npmts)
[![docs](https://push.rocks/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/npmts/) [![docs](https://gitzone.gitlab.io/assets/repo-button-docs.svg)](https://gitzone.gitlab.io/npmts/)
## Status for master ## Status for master
[![build status](https://gitlab.com/pushrocks/npmts/badges/master/build.svg)](https://gitlab.com/pushrocks/npmts/commits/master) [![build status](https://GitLab.com/gitzone/npmts/badges/master/build.svg)](https://GitLab.com/gitzone/npmts/commits/master)
[![coverage report](https://gitlab.com/pushrocks/npmts/badges/master/coverage.svg)](https://gitlab.com/pushrocks/npmts/commits/master) [![coverage report](https://GitLab.com/gitzone/npmts/badges/master/coverage.svg)](https://GitLab.com/gitzone/npmts/commits/master)
[![npm downloads per month](https://img.shields.io/npm/dm/npmts.svg)](https://www.npmjs.com/package/npmts) [![npm downloads per month](https://img.shields.io/npm/dm/npmts.svg)](https://www.npmjs.com/package/npmts)
[![docker pulls](https://img.shields.io/docker/pulls/hosttoday/ht-docker-node.svg)](https://hub.docker.com/r/hosttoday/ht-docker-node/) [![Dependency Status](https://david-dm.org/gitzone/npmts.svg)](https://david-dm.org/gitzone/npmts)
[![Dependency Status](https://david-dm.org/pushrocks/npmts.svg)](https://david-dm.org/pushrocks/npmts) [![bitHound Dependencies](https://www.bithound.io/github/gitzone/npmts/badges/dependencies.svg)](https://www.bithound.io/github/gitzone/npmts/master/dependencies/npm)
[![bitHound Dependencies](https://www.bithound.io/github/pushrocks/npmts/badges/dependencies.svg)](https://www.bithound.io/github/pushrocks/npmts/master/dependencies/npm) [![bitHound Code](https://www.bithound.io/github/gitzone/npmts/badges/code.svg)](https://www.bithound.io/github/gitzone/npmts)
[![bitHound Code](https://www.bithound.io/github/pushrocks/npmts/badges/code.svg)](https://www.bithound.io/github/pushrocks/npmts)
[![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/) [![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/) [![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/) [![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
## Introduction ## Usage
NPMTS is your friend when writing, testing, publishing and documenting npm modules written in TypeScript. NPMTS is your friend when writing, testing, publishing and documenting npm modules written in TypeScript.
npmts will npmts will
1. check your dependencies and package.json 1. check your dependencies and package.json (unused, missing, updates, security)
1. transpile your code with tsc, 1. transpile your code with tsc,
1. document your code with typedoc, 1. test your code with tap (supports the fancy stuff like Promises, Generators, async/await, sourcemaps, parallel test execution in child processes)
1. test your code with mocha 1. create coverage with istanbul (supports tracing of the originating TypeScript)
1. create coverage with istanbul
For more information on how tests are run check out the [tapbuffer module](https://www.npmjs.com/package/tapbuffer).
This works on your machine and in CI. There is a prebuild docker image available that includes npmts to make CI a breeze: This works on your machine and in CI. There is a prebuild docker image available that includes npmts to make CI a breeze:
[hosttoday/ht-docker-node:npmts on Dockerhub](https://hub.docker.com/r/hosttoday/ht-docker-node/) [hosttoday/ht-docker-node:npmts on Dockerhub](https://hub.docker.com/r/hosttoday/ht-docker-node/)
For further information read the docs: > MIT licensed | **&copy;** [Lossless GmbH](https://lossless.gmbh)
1. [Intro](https://pushrocks.gitlab.io/npmts/index.html) | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
2. [Install](https://pushrocks.gitlab.io/npmts/install.html)
3. [Default Behaviour](https://pushrocks.gitlab.io/npmts/default.html)
4. [Configuration](https://pushrocks.gitlab.io/npmts/config.html)
5. [Examples](https://pushrocks.gitlab.io/npmts/examples.html)
6. [Info](https://pushrocks.gitlab.io/npmts/info.html)
[![npm](https://push.rocks/assets/repo-header.svg)](https://push.rocks) [![repo-footer](https://gitzone.gitlab.io/assets/repo-footer.svg)](https://push.rocks)

View File

@ -1,14 +0,0 @@
# Info
## Future Scope:
* automatically manage badges in README
* manage tslint to enforce code best practices
* tear down any differences between local and CI environments by using brand new npmdocker
## About the authors:
[![Project Phase](https://mediaserve.lossless.digital/lossless.com/img/createdby_github.svg)](https://lossless.com/)
[![PayPal](https://img.shields.io/badge/Support%20us-PayPal-blue.svg)](https://paypal.me/lossless)
## Legal Info
https://lossless.gmbh

View File

@ -1,8 +0,0 @@
# Summary
* [1. Intro](index.md)
* [2. Install](install.md)
* [3. Default Behaviour](default.md)
* [4. Configuration](config.md)
* [5. Examples](examples.md)
* [6. Info](info.md)

View File

@ -1,6 +1,6 @@
{ {
"name": "npmts", "name": "npmts",
"version": "7.0.1", "version": "7.0.5",
"description": "Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.", "description": "Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.",
"main": "dist/index.js", "main": "dist/index.js",
"bin": { "bin": {
@ -40,18 +40,18 @@
"@types/through2": "^2.0.32", "@types/through2": "^2.0.32",
"beautylog": "6.1.5", "beautylog": "6.1.5",
"depcheck": "^0.6.7", "depcheck": "^0.6.7",
"early": "^2.0.36", "early": "^2.0.38",
"gulp": "3.9.1", "gulp": "3.9.1",
"gulp-function": "^2.2.3", "gulp-function": "^2.2.3",
"gulp-sourcemaps": "^2.4.1", "gulp-sourcemaps": "^2.5.0",
"gulp-typescript": "^3.1.6", "gulp-typescript": "^3.1.6",
"lodash": "^4.17.4", "lodash": "^4.17.4",
"npmextra": "^2.0.5", "npmextra": "^2.0.5",
"projectinfo": "^3.0.2", "projectinfo": "^3.0.2",
"smartanalytics": "^1.0.3", "smartanalytics": "^1.0.3",
"smartchok": "^1.0.5", "smartchok": "^1.0.5",
"smartcli": "2.0.1", "smartcli": "^2.0.1",
"smartcov": "1.0.0", "smartcov": "^1.0.2",
"smartenv": "2.0.0", "smartenv": "2.0.0",
"smartfile": "^4.1.9", "smartfile": "^4.1.9",
"smartpath": "^3.2.8", "smartpath": "^3.2.8",
@ -60,10 +60,10 @@
"smartstring": "^2.0.24", "smartstring": "^2.0.24",
"smartsystem": "^1.0.12", "smartsystem": "^1.0.12",
"source-map-support": "^0.4.14", "source-map-support": "^0.4.14",
"tapbuffer": "^1.0.9", "tapbuffer": "^1.0.10",
"through2": "^2.0.3", "through2": "^2.0.3",
"tsn": "^2.0.15", "tsn": "^2.0.15",
"typescript": "^2.2.1", "typescript": "^2.2.2",
"typings-global": "^1.0.14" "typings-global": "^1.0.14"
}, },
"devDependencies": {} "devDependencies": {}

View File

@ -8,7 +8,7 @@ import { projectInfo } from '../mod00/mod00.check'
export let run = function(configArg){ export let run = function(configArg){
let done = q.defer() let done = q.defer()
let config = configArg 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) { if (config.cli === true) {
let mainJsPath = projectInfo.packageJson.main let mainJsPath = projectInfo.packageJson.main
let cliJsString: string = plugins.smartfile.fs.toStringSync(plugins.path.join(paths.npmtsAssetsDir,'cli.js')) let cliJsString: string = plugins.smartfile.fs.toStringSync(plugins.path.join(paths.npmtsAssetsDir,'cli.js'))

View File

@ -60,10 +60,10 @@ let checkDependencies = (configArg) => {
process.exit(1) process.exit(1)
} }
for (let item in unused.invalidFiles) { 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) { 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) done.resolve(configArg)
}) })
@ -86,20 +86,20 @@ let checkDevDependencies = (configArg) => {
}) })
plugins.depcheck(paths.cwd, depcheckOptionsMerged, (unused) => { plugins.depcheck(paths.cwd, depcheckOptionsMerged, (unused) => {
for (let item of unused.devDependencies) { 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) { for (let item in unused.missing) {
plugins.beautylog.error(`unused devDependency ${item.red}`) plugins.beautylog.error(`unused devDependency ${item}`)
} }
if (unused.missing.length > 0) { if (unused.missing.length > 0) {
plugins.beautylog.info('exiting due to missing dependencies in package.json') plugins.beautylog.info('exiting due to missing dependencies in package.json')
process.exit(1) process.exit(1)
} }
for (let item in unused.invalidFiles) { 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) { 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) done.resolve(configArg)
}) })

View File

@ -7,7 +7,7 @@ import * as plugins from './mod00.plugins'
export let run = function (configArg) { export let run = function (configArg) {
let done = q.defer() let done = q.defer()
let config = configArg 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) plugins.tsn.compileGlobStringObject(config.ts, config.tsOptions, paths.cwd)
.then(() => { .then(() => {
plugins.beautylog.ok(`compiled the module's TypeScript!`) plugins.beautylog.ok(`compiled the module's TypeScript!`)

View File

@ -44,7 +44,7 @@ let tap = function (configArg: INpmtsConfig) {
* handle the test files * handle the test files
*/ */
let testFilesSmartstream = new plugins.smartstream.Smartstream([ let testFilesSmartstream = new plugins.smartstream.Smartstream([
plugins.gulp.src([ plugins.path.join(paths.cwd, 'test/test.ts') ]), plugins.gulp.src([ plugins.path.join(paths.cwd, 'test/*.ts') ]),
plugins.gulpTypeScript({ plugins.gulpTypeScript({
target: 'ES5', target: 'ES5',
emitDecoratorMetadata: true, emitDecoratorMetadata: true,
@ -61,7 +61,7 @@ let tap = function (configArg: INpmtsConfig) {
testFilesSmartstream.run() testFilesSmartstream.run()
]).then( ]).then(
async () => { async () => {
await npmtsTapBuffer.runTests() configArg.runData.coverageLcovInfo = await npmtsTapBuffer.runTests()
done.resolve(configArg) done.resolve(configArg)
}, (err) => { }, (err) => {
plugins.beautylog.error('Tests failed!') plugins.beautylog.error('Tests failed!')
@ -76,25 +76,27 @@ let tap = function (configArg: INpmtsConfig) {
return done.promise return done.promise
} }
let handleCoverageData = function (configArg: INpmtsConfig) { let handleCoverageData = async (configArg: INpmtsConfig) => {
let done = q.defer() let coverageResult = await plugins.smartcov.get.percentageFromLcovString(
if (71 >= configArg.coverageTreshold) { configArg.runData.coverageLcovInfo,
2
)
if (coverageResult >= configArg.coverageTreshold) {
plugins.beautylog.ok( plugins.beautylog.ok(
`${(71).toString()}% ` `${(coverageResult).toString()}% `
+ `coverage exceeds your treshold of ` + `coverage exceeds your treshold of `
+ `${configArg.coverageTreshold.toString()}%` + `${configArg.coverageTreshold.toString()}%`
) )
} else { } else {
plugins.beautylog.warn( plugins.beautylog.warn(
`${(71).toString()}% ` `${(coverageResult).toString()}% `
+ `coverage fails your treshold of ` + `coverage fails your treshold of `
+ `${configArg.coverageTreshold.toString()}%` + `${configArg.coverageTreshold.toString()}%`
) )
plugins.beautylog.error('exiting due to coverage failure') plugins.beautylog.error('exiting due to coverage failure')
if (!configArg.watch) { process.exit(1) } if (!configArg.watch) { process.exit(1) }
} }
done.resolve(configArg) return configArg
return done.promise
} }
export let run = function (configArg: INpmtsConfig) { export let run = function (configArg: INpmtsConfig) {

View File

@ -4,6 +4,7 @@ import * as gulp from 'gulp'
import * as gulpFunction from 'gulp-function' import * as gulpFunction from 'gulp-function'
import * as gulpSourcemaps from 'gulp-sourcemaps' import * as gulpSourcemaps from 'gulp-sourcemaps'
import * as gulpTypeScript from 'gulp-typescript' import * as gulpTypeScript from 'gulp-typescript'
import * as smartcov from 'smartcov'
import * as tapbuffer from 'tapbuffer' import * as tapbuffer from 'tapbuffer'
export { export {
@ -11,5 +12,6 @@ export {
gulpFunction, gulpFunction,
gulpSourcemaps, gulpSourcemaps,
gulpTypeScript, gulpTypeScript,
smartcov,
tapbuffer tapbuffer
} }

View File

@ -6,73 +6,77 @@ import * as q from 'smartq'
export type npmtsMode = 'default' | 'custom' export type npmtsMode = 'default' | 'custom'
export interface INpmtsConfig { export interface INpmtsConfig {
argv: any, argv: any,
coverageTreshold: number, coverageTreshold: number,
mode: npmtsMode, mode: npmtsMode,
test: boolean, test: boolean,
testTs: any, testTs: any,
ts: any, ts: any,
tsOptions: any, tsOptions: any,
watch: boolean watch: boolean
runData: {
coverageLcovInfo?: string,
coverageResult?: number
}
}; };
export let run = function (argvArg) { export let run = function (argvArg) {
let done = q.defer() let done = q.defer()
let defaultConfig: INpmtsConfig = { let defaultConfig: INpmtsConfig = {
argv: undefined, argv: undefined,
coverageTreshold: 70, coverageTreshold: 70,
mode: 'default', mode: 'default',
test: true, test: true,
testTs: {}, testTs: {},
ts: {}, ts: {},
tsOptions: {}, tsOptions: {},
watch: false 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<INpmtsConfig>(
'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 // mix with commandline
plugins.beautylog.ora.text('running npmextra') if (config.argv.notest) {
config.test = false
};
if (config.argv.watch) {
config.watch = true
};
let localNpmextra = new plugins.npmextra.Npmextra(paths.cwd) plugins.beautylog.ok('build options are ready!')
let config: INpmtsConfig = localNpmextra.dataFor<INpmtsConfig>( done.resolve(config)
'npmts', return done.promise
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
} }

220
yarn.lock
View File

@ -2,6 +2,13 @@
# yarn lockfile v1 # 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": "@types/chai-as-promised@0.0.29":
version "0.0.29" version "0.0.29"
resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-0.0.29.tgz#43d52892aa998e185a3de3e2477edb8573be1d77" resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-0.0.29.tgz#43d52892aa998e185a3de3e2477edb8573be1d77"
@ -25,10 +32,6 @@
dependencies: dependencies:
"@types/node" "*" "@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": "@types/fs-extra@0.x.x":
version "0.0.37" version "0.0.37"
resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-0.0.37.tgz#195f11bcd9a1b97d9e412c6b66899b545471a1f7" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-0.0.37.tgz#195f11bcd9a1b97d9e412c6b66899b545471a1f7"
@ -53,14 +56,10 @@
version "0.4.29" version "0.4.29"
resolved "https://registry.yarnpkg.com/@types/istanbul/-/istanbul-0.4.29.tgz#29c8cbb747ac57280965545dc58514ba0dbb99af" 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" version "4.14.58"
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.58.tgz#18d45863b6119c1ffffe935c1f51fe044c8c4102" 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": "@types/minimatch@2.x.x", "@types/minimatch@^2.0.29":
version "2.0.29" version "2.0.29"
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-2.0.29.tgz#5002e14f75e2d71e564281df0431c8c1b4a2a36a" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-2.0.29.tgz#5002e14f75e2d71e564281df0431c8c1b4a2a36a"
@ -87,7 +86,7 @@
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/@types/q/-/q-1.0.0.tgz#57e5465d665b370d4217e69b344b20faa6b724f5" 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" version "0.0.32"
resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" 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" q "^1.4.1"
smartenv "^1.2.2" 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: beeper@^1.0.0:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" 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" version "1.8.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" 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@*: block-stream@*:
version "0.0.9" version "0.0.9"
resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" 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" version "0.1.2"
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" 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: cli-spinners@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.0.0.tgz#ef987ed3d48391ac3dab9180b406a742180d6e6a" 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" readable-stream "^2.0.0"
stream-shift "^1.0.0" stream-shift "^1.0.0"
early@^2.0.36: early@^2.0.38:
version "2.0.36" version "2.0.38"
resolved "https://registry.yarnpkg.com/early/-/early-2.0.36.tgz#042e1b3a08248aed78cd26f325c3ebd6a93d7ba9" resolved "https://registry.yarnpkg.com/early/-/early-2.0.38.tgz#f7be550eb466d2b52668cabc554c39ff2f92cf41"
dependencies: dependencies:
beautycolor "^1.0.7" beautycolor "^1.0.7"
smartq "^1.1.1" smartq "^1.1.1"
@ -1022,14 +992,6 @@ forever-agent@~0.6.1:
version "0.6.1" version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 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: form-data@~2.1.1:
version "2.1.2" version "2.1.2"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" 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" version "0.1.0"
resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" 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: fs-extra@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.0.0.tgz#337352bded4a0b714f3eb84de8cea765e9d37600" 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" graceful-fs "^4.1.2"
jsonfile "^2.1.0" 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: fs.realpath@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
@ -1258,7 +1217,7 @@ glogg@^1.0.0:
dependencies: dependencies:
sparkles "^1.0.0" 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" version "4.1.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 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" through2 "^2.0.0"
vinyl "^1.0.0" vinyl "^1.0.0"
gulp-sourcemaps@^2.4.1: gulp-sourcemaps@^2.5.0:
version "2.4.1" version "2.5.0"
resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-2.4.1.tgz#8f65dc5c0d07b2fd5c88bc60ec7f13e56716bf74" resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-2.5.0.tgz#8270a25148357ac73597bd0c6bd43177e982a3af"
dependencies: dependencies:
"@gulp-sourcemaps/map-sources" "1.X"
acorn "4.X" acorn "4.X"
convert-source-map "1.X" convert-source-map "1.X"
css "2.X" css "2.X"
@ -1689,7 +1649,7 @@ json-stable-stringify@^1.0.0:
dependencies: dependencies:
jsonify "~0.0.0" 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" version "5.0.1"
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 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: dependencies:
is-buffer "^1.0.2" 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: lazy-cache@^1.0.3:
version "1.0.4" version "1.0.4"
resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" 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" version "3.10.1"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" 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" version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
@ -1924,14 +1878,6 @@ log-symbols@^1.0.2:
dependencies: dependencies:
chalk "^1.0.0" 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: longest@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" 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" version "0.2.2"
resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
mathjs@^3.4.1: mathjs@^3.10.3:
version "3.9.3" version "3.10.3"
resolved "https://registry.yarnpkg.com/mathjs/-/mathjs-3.9.3.tgz#d99b06093e83772a8d622457aedffd8f65a46183" resolved "https://registry.yarnpkg.com/mathjs/-/mathjs-3.10.3.tgz#bd6577a8e7ee22ece373838a99e8808fa88d990f"
dependencies: dependencies:
complex.js "2.0.1" complex.js "2.0.1"
decimal.js "7.1.1" decimal.js "7.1.1"
fraction.js "4.0.0" 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" typed-function "0.10.5"
memoizee@^0.4.3: memoizee@^0.4.3:
@ -2014,7 +1961,7 @@ mime-db@~1.26.0:
version "1.26.0" version "1.26.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" 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" version "2.1.14"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee"
dependencies: dependencies:
@ -2105,10 +2052,6 @@ node-pre-gyp@^0.6.29:
tar "~2.2.1" tar "~2.2.1"
tar-pack "~3.3.0" 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: nopt@3.x, nopt@~3.0.6:
version "3.0.6" version "3.0.6"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" 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" cli-spinners "^0.1.2"
object-assign "^4.0.1" 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: ora@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/ora/-/ora-1.1.0.tgz#69aaa4a209630e43b142c5f7ff41820da87e2faf" resolved "https://registry.yarnpkg.com/ora/-/ora-1.1.0.tgz#69aaa4a209630e43b142c5f7ff41820da87e2faf"
@ -2378,10 +2312,6 @@ q@^1.4.1:
version "1.4.1" version "1.4.1"
resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" 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: qs@~6.3.0:
version "6.3.1" version "6.3.1"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.1.tgz#918c0b3bcd36679772baf135b1acb4c1651ed79d" 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" isarray "0.0.1"
string_decoder "~0.10.x" 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: readable-stream@~2.1.4:
version "2.1.5" version "2.1.5"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" 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" version "1.0.0"
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" 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: request@^2.79.0:
version "2.79.0" version "2.79.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" 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: dependencies:
glob "^7.0.5" 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: rxjs@^5.0.0-beta.12, rxjs@^5.0.1, rxjs@^5.1.1:
version "5.2.0" version "5.2.0"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.2.0.tgz#db537de8767c05fa73721587a29e0085307d318b" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.2.0.tgz#db537de8767c05fa73721587a29e0085307d318b"
dependencies: dependencies:
symbol-observable "^1.0.1" 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: "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@~5.3.0:
version "5.3.0" version "5.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" 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" typings-global "^1.0.14"
yargs "^6.4.0" yargs "^6.4.0"
smartcov@1.0.0: smartcov@1.0.2:
version "1.0.0" version "1.0.2"
resolved "https://registry.yarnpkg.com/smartcov/-/smartcov-1.0.0.tgz#9eafcf774e325c6f96d91224b2d1ade749aceeeb" resolved "https://registry.yarnpkg.com/smartcov/-/smartcov-1.0.2.tgz#d81bed707fc6191a39a71384fb66ddd1f41dac1f"
dependencies: dependencies:
"@types/q" "^0.x.x" beautylog "^6.1.5"
beautylog "^5.0.20" fs-extra "^2.1.2"
fs-extra "^0.30.0"
lcov-parse "0.0.10" lcov-parse "0.0.10"
mathjs "^3.4.1" mathjs "^3.10.3"
q "^1.4.1" smartq "^1.1.1"
typings-global "^1.0.6" typings-global "^1.0.14"
smartenv@2.0.0, smartenv@^2.0.0: smartenv@2.0.0, smartenv@^2.0.0:
version "2.0.0" version "2.0.0"
@ -3081,9 +2973,9 @@ tap-parser@^5.1.0:
optionalDependencies: optionalDependencies:
readable-stream "^2" readable-stream "^2"
tapbuffer@^1.0.9: tapbuffer@^1.0.10:
version "1.0.9" version "1.0.10"
resolved "https://registry.yarnpkg.com/tapbuffer/-/tapbuffer-1.0.9.tgz#f0faa78219dffe66a75315c2fda266f17a0c3c52" resolved "https://registry.yarnpkg.com/tapbuffer/-/tapbuffer-1.0.10.tgz#e4b910d5c3e64bec3c49d73c835694445de40764"
dependencies: dependencies:
"@types/istanbul" "^0.4.29" "@types/istanbul" "^0.4.29"
beautylog "^6.1.1" beautylog "^6.1.1"
@ -3162,13 +3054,9 @@ timers-ext@0.1:
es5-ext "~0.10.2" es5-ext "~0.10.2"
next-tick "~0.2.2" next-tick "~0.2.2"
timespan@2.3.x: tiny-emitter@1.0.2:
version "2.3.0" version "1.0.2"
resolved "https://registry.yarnpkg.com/timespan/-/timespan-2.3.0.tgz#4902ce040bd13d845c8f59b27e9d59bad6f39929" resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-1.0.2.tgz#8e49470d3f55f89e247210368a6bb9fb51aa1601"
tiny-emitter@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-1.1.0.tgz#ab405a21ffed814a76c19739648093d70654fecb"
to-absolute-glob@^0.1.1: to-absolute-glob@^0.1.1:
version "0.1.1" version "0.1.1"
@ -3229,11 +3117,15 @@ typed-promisify@^0.3.0:
version "0.3.0" version "0.3.0"
resolved "https://registry.yarnpkg.com/typed-promisify/-/typed-promisify-0.3.0.tgz#1ba0af5e444c87d8047406f18ce49092a1191853" 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" version "2.2.1"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.2.1.tgz#4862b662b988a4c8ff691cc7969622d24db76ae9" 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" version "1.0.14"
resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.14.tgz#ab682720a03d6b9278869fb5c30c30d7dc61d12c" resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.14.tgz#ab682720a03d6b9278869fb5c30c30d7dc61d12c"
dependencies: dependencies: