test: add CI tests
MODIFY
.circleci/config.yml
.circleci/config.yml
@@ -12,7 +12,7 @@ jobs:
- v0-yarn-{{ .Environment.CIRCLE_JOB }}-{{checksum "scripts/circleci"}}-{{checksum ".circleci/config.yml"}}-{{ .Branch }}-{{checksum "yarn.lock"}}
- v0-yarn-{{ .Environment.CIRCLE_JOB }}-{{checksum "scripts/circleci"}}-{{checksum ".circleci/config.yml"}}-{{ .Branch }}-
- v0-yarn-{{ .Environment.CIRCLE_JOB }}-{{checksum "scripts/circleci"}}-{{checksum ".circleci/config.yml"}}-master-
- - run: ./scripts/circleci test
+ - run: ./scripts/circleci
- store_test_results:
path: ~/cli/reports
- save_cache: &save_cache
@@ -30,7 +30,8 @@ jobs:
steps:
- checkout
- restore_cache: *restore_cache
- - run: ./scripts/circleci release
+ - run: yarn --frozen-lockfile
+ - run: ./node_modules/.bin/nps ci.release
- save_cache: *save_cache
workflows:

MODIFY
.eslintignore
.eslintignore
-
+/tmp

MODIFY
.gitattributes
.gitattributes
* text=auto
*.js text eol=lf
-*.ts text eol=lf

MODIFY
appveyor.yml
appveyor.yml
@@ -6,6 +6,8 @@ cache:
install:
- ps: Install-Product node $env:nodejs_version x64
+ - git submodule sync
+ - git submodule update --init --recursive
- git config --global user.email "dxcli@example.com"
- git config --global user.name "dxcli"
- yarn

ADD
package-scripts.js
+/* eslint-disable node/no-extraneous-require */
+
+const {concurrent} = require('nps-utils')
+
+module.exports = {
+ scripts: {
+ lint: {
+ default: concurrent.nps('lint.eslint', 'lint.commitlint'),
+ eslint: {
+ script: 'eslint .',
+ description: 'lint js files',
+ },
+ commitlint: {
+ script: 'commitlint --from origin/master',
+ description: 'ensure that commits are in valid conventional-changelog format',
+ },
+ },
+ test: {
+ default: {
+ script: concurrent.nps('lint', 'test.single'),
+ description: 'lint and test',
+ },
+ single: {
+ script: 'node ./scripts/test single',
+ description: 'test single CLI generator',
+ },
+ },
+ ci: {
+ default: {
+ script: concurrent.nps(
+ 'ci.eslint',
+ ),
+ hiddenFromHelp: true,
+ },
+ eslint: {
+ script: concurrent.nps('lint.eslint --format junit --output-file reports/eslint.xml'),
+ hiddenFromHelp: true,
+ },
+ release: {
+ script: 'yarn --frozen-lockfile && dxcli-dev-semantic-release',
+ hiddenFromHelp: true,
+ },
+ },
+ },
+}

MODIFY
package.json
package.json
"version": "0.14.0",
"author": "Jeff Dickey @jdxcode",
"bin": "bin/run",
+ "bugs": "https://github.com/dxcli/create-dxcli/issues",
"dependencies": {
"generator-dxcli": "1.12.3"
},
"devDependencies": {
- "@dxcli/dev": "^1.1.2",
+ "@dxcli/command": "^0.1.1",
"@dxcli/dev-semantic-release": "^0.0.3",
"eslint": "^4.15.0",
"eslint-config-dxcli": "^1.1.4",
"husky": "^0.14.3",
- "nyc": "^11.4.1"
- },
- "dxcli": {
- "workflows": {
- "test": [
- "eslint .",
- "commitlint --from master",
- "echo TODO: \"rm -rf tmp/build-base && ./bin/run base tmp/build-base --defaults && yarn test\""
- ],
- "lint": [
- "eslint .",
- "commitlint --from master"
- ]
- }
+ "nps": "^5.7.1",
+ "nps-utils": "^1.5.0",
+ "nyc": "^11.4.1",
+ "shelljs": "^0.8.0"
},
"engines": {
"node": ">=8.0.0"
"files": [
"/bin"
],
+ "homepage": "https://github.com/dxcli/create-dxcli",
+ "keywords": [
+ "dxcli"
+ ],
"license": "MIT",
"repository": "dxcli/create-dxcli",
"scripts": {
"commitmsg": "dxcli-dev-commitmsg",
- "lint": "dxcli-dev lint",
- "precommit": "dxcli-dev test",
- "test": "dxcli-dev test"
+ "precommit": "nps lint",
+ "test": "nps test"
}
}

MODIFY
scripts/circleci
scripts/circleci
set -ex
-duration() {
- set +x
- start=$(date +%s)
- "$@"
- end=$(date +%s)
- python -c "print 'Ran $1 in %u:%02u' % ((${end} - ${start})/60, (${end} - ${start})%60)"
- set -x
-}
-
PATH=/usr/local/share/.config/yarn/global/node_modules/.bin:$PATH
if [[ ! -z "$GIT_EMAIL" ]] & [[ ! -z "$GIT_USERNAME" ]]; then
@@ -19,44 +10,21 @@ if [[ ! -z "$GIT_EMAIL" ]] & [[ ! -z "$GIT_USERNAME" ]]; then
git config --global user.user "$GIT_USERNAME"
fi
-_test() {
CLI_ENGINE_UTIL_YARN_ARGS="--frozen-lockfile"
if [[ "$CIRCLE_BRANCH" == greenkeeper/* ]]; then
CLI_ENGINE_GREENKEEPER_BRANCH=1
CLI_ENGINE_UTIL_YARN_ARGS=""
if [[ ! -x "$(command -v greenkeeper-lockfile-update)" ]]; then
- duration yarn global add greenkeeper-lockfile@1
+ yarn global add greenkeeper-lockfile@1
fi
- duration greenkeeper-lockfile-update
+ greenkeeper-lockfile-update
fi
- duration yarn install $CLI_ENGINE_UTIL_YARN_ARGS
+yarn install $CLI_ENGINE_UTIL_YARN_ARGS
if [[ "$CLI_ENGINE_GREENKEEPER_BRANCH" == 1 ]]; then
- duration greenkeeper-lockfile-upload
+ greenkeeper-lockfile-upload
fi
- CWD=$(pwd)
- NYC=(./node_modules/.bin/nyc --nycrc-path node_modules/@dxcli/dev-nyc-config/.nycrc)
- mkdir -p reports
- MOCHA_FILE="$CWD/reports/mocha.xml" \
- DXCLI_MOCHA_OPTS="--reporter mocha-junit-reporter" \
- DXCLI_ESLINT_OPTS="--format junit --output-file $CWD/reports/eslint.xml" \
- DXCLI_TSLINT_OPTS="--format junit > $CWD/reports/tslint.xml" \
- duration "${NYC[@]}" yarn test
-
- duration "${NYC[@]}" report --reporter=text-lcov > coverage.lcov
-
- duration curl -s https://codecov.io/bash | bash
-}
-
-_release() {
- yarn --frozen-lockfile
- ./node_modules/.bin/dxcli-dev-semantic-release
-}
-
-case "$1" in
- release) _release;;
- *) _test;;
-esac
+yarn test

ADD
scripts/test
+#!/usr/bin/env node
+
+/* eslint-disable node/shebang */
+/* eslint-disable no-console */
+
+const {Command, flags} = require('@dxcli/command')
+const sh = require('shelljs')
+const path = require('path')
+
+class CLI extends Command {
+ async run() {
+ process.env.DXCLI_CREATE_DEFAULTS = '1'
+ process.env.DXCLI_CREATE_TYPESCRIPT = this.flags.typescript && '1'
+ process.env.DXCLI_CREATE_MOCHA = this.flags.mocha && '1'
+ process.env.DXCLI_CREATE_SEMANTIC_RELEASE = this.flags['semantic-release'] && '1'
+
+ sh.set('-ev')
+ const {type} = this.args
+ let dir = path.join(__dirname, '../tmp', ['test', type, ...Object.keys(this.flags)].join('-'))
+ console.log(`\ntesting ${dir}`)
+ console.log(`--------${'-'.repeat(dir.length)}`)
+ sh.rm('-rf', dir)
+ sh.exec(`node bin/run ${type} ${dir}`)
+ sh.cd(dir)
+ sh.exec('git add .')
+ sh.exec('git commit -nm init')
+ sh.exec('git checkout -B origin/master')
+ sh.exec('yarn test')
+ sh.exec('yarn run precommit')
+ switch (type) {
+ case 'single':
+ sh.exec('node ./bin/run')
+ break
+ default:
+ }
+ }
+}
+
+CLI.args = [
+ {name: 'type', required: true},
+]
+
+CLI.flags = {
+ typescript: flags.boolean(),
+ mocha: flags.boolean(),
+ 'semantic-release': flags.boolean(),
+}
+
+CLI.run()
+

MODIFY
yarn.lock
yarn.lock
dependencies:
find-up "^2.1.0"
+"@dxcli/command@^0.1.1":
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/@dxcli/command/-/command-0.1.1.tgz#8670eae6c303d7883f3177a5aa44cac31d74af48"
+ dependencies:
+ "@dxcli/config" "^0.1.6"
+ "@dxcli/parser" "^0.0.2"
+ "@dxcli/screen" "^0.0.0"
+ cli-ux "^3.0.0-alpha.2"
+ debug "^3.1.0"
+ http-call "^5.0.1"
+
+"@dxcli/config@^0.1.6":
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/@dxcli/config/-/config-0.1.6.tgz#c5787c1d21a150e03c6e3fcf2113cc0efb647a79"
+ dependencies:
+ debug "^3.1.0"
+ fs-extra "^5.0.0"
+ load-json-file "^4.0.0"
+ lodash "^4.17.4"
+ read-pkg-up "^3.0.0"
+
"@dxcli/dev-commitmsg@^0.0.3":
version "0.0.3"
resolved "https://registry.yarnpkg.com/@dxcli/dev-commitmsg/-/dev-commitmsg-0.0.3.tgz#8941971c9778b675dd14c407c1123b8bef397757"
"@semantic-release/npm" "^2.6.1"
semantic-release "^12.2.0"
-"@dxcli/dev@^1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@dxcli/dev/-/dev-1.1.2.tgz#66acd0b6d5cc9cf8a94a00692c67d40c94ebf81b"
+"@dxcli/parser@^0.0.2":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/@dxcli/parser/-/parser-0.0.2.tgz#a60b1642626853c6e41014b78e6b2ea18cefa5db"
dependencies:
- cli-ux "^2.0.21"
- concurrently "^3.5.1"
- debug "^3.1.0"
- execa "^0.9.0"
- get-stream "^3.0.0"
+ "@dxcli/screen" "^0.0.0"
+ chalk "^2.3.0"
lodash "^4.17.4"
- read-pkg-up "^3.0.0"
- supports-color "^5.1.0"
+
+"@dxcli/screen@^0.0.0":
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/@dxcli/screen/-/screen-0.0.0.tgz#a85f69bfb00d3961656bad5d7b12f8e603c7ce09"
"@heroku-cli/color@^1.0.4":
version "1.1.1"
@@ -339,6 +359,10 @@ ansicolors@~0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef"
+any-shell-escape@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/any-shell-escape/-/any-shell-escape-0.1.1.tgz#d55ab972244c71a9a5e1ab0879f30bf110806959"
+
append-transform@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991"
@@ -786,6 +810,23 @@ cli-ux@^2.0.21:
supports-color "^5.1.0"
ts-lodash "^4.0.8"
+cli-ux@^3.0.0-alpha.2:
+ version "3.0.0-alpha.3"
+ resolved "https://registry.yarnpkg.com/cli-ux/-/cli-ux-3.0.0-alpha.3.tgz#ad88be894af0e3524b78d5fb22ee7d4891343898"
+ dependencies:
+ "@dxcli/screen" "^0.0.0"
+ "@heroku/linewrap" "^1.0.0"
+ ansi-styles "^3.2.0"
+ cardinal "^1.0.0"
+ chalk "^2.3.0"
+ fs-extra "^5.0.0"
+ lodash "^4.17.4"
+ password-prompt "^1.0.3"
+ rxjs "^5.5.6"
+ semver "^5.4.1"
+ strip-ansi "^4.0.0"
+ supports-color "^5.1.0"
+
cli-width@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
@@ -798,6 +839,14 @@ cliui@^2.1.0:
right-align "^0.1.1"
wordwrap "0.0.2"
+cliui@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+ wrap-ansi "^2.0.0"
+
cliui@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc"
@@ -901,6 +950,12 @@ commitizen@^2.9.6:
shelljs "0.7.6"
strip-json-comments "2.0.1"
+common-tags@^1.4.0:
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.7.2.tgz#24d9768c63d253a56ecff93845b44b4df1d52771"
+ dependencies:
+ babel-runtime "^6.26.0"
+
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -928,7 +983,7 @@ concat-stream@^1.4.7, concat-stream@^1.5.2, concat-stream@^1.6.0:
readable-stream "^2.2.2"
typedarray "^0.0.6"
-concurrently@^3.5.1:
+concurrently@^3.4.0:
version "3.5.1"
resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-3.5.1.tgz#ee8b60018bbe86b02df13e5249453c6ececd2521"
dependencies:
@@ -952,6 +1007,10 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
+content-type@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+
conventional-changelog-angular@^1.3.3, conventional-changelog-angular@^1.4.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.0.tgz#0a26a071f2c9fcfcf2b86ba0cfbf6e6301b75bfa"
@@ -1022,6 +1081,43 @@ cosmiconfig@^3.0.1, cosmiconfig@^3.1.0:
parse-json "^3.0.0"
require-from-string "^2.0.1"
+cp-file@^3.1.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-3.2.0.tgz#6f83616254624f0ad58aa4aa8d076f026be7e188"
+ dependencies:
+ graceful-fs "^4.1.2"
+ mkdirp "^0.5.0"
+ nested-error-stacks "^1.0.1"
+ object-assign "^4.0.1"
+ pify "^2.3.0"
+ pinkie-promise "^2.0.0"
+ readable-stream "^2.1.4"
+
+cpy-cli@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/cpy-cli/-/cpy-cli-1.0.1.tgz#67fb5a4a2dec28ca8abff375de4b9e71f6a7561c"
+ dependencies:
+ cpy "^4.0.0"
+ meow "^3.6.0"
+
+cpy@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/cpy/-/cpy-4.0.1.tgz#b67267eba2f3960ba06a5a61ac94033422833424"
+ dependencies:
+ cp-file "^3.1.0"
+ globby "^4.0.0"
+ meow "^3.6.0"
+ nested-error-stacks "^1.0.0"
+ object-assign "^4.0.1"
+ pinkie-promise "^2.0.0"
+
+cross-env@^3.1.4:
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-3.2.4.tgz#9e0585f277864ed421ce756f81a980ff0d698aba"
+ dependencies:
+ cross-spawn "^5.1.0"
+ is-windows "^1.0.0"
+
cross-spawn@^4:
version "4.0.2"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
@@ -1238,6 +1334,10 @@ duplexer3@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
+duplexer@~0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
+
ecc-jsbn@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
@@ -1429,6 +1529,18 @@ esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
+event-stream@~3.3.0:
+ version "3.3.4"
+ resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
+ dependencies:
+ duplexer "~0.1.1"
+ from "~0"
+ map-stream "~0.1.0"
+ pause-stream "0.0.11"
+ split "0.3"
+ stream-combiner "~0.0.4"
+ through "~2.3.1"
+
execa@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
@@ -1595,6 +1707,10 @@ file-entry-cache@^2.0.0:
flat-cache "^1.2.1"
object-assign "^4.0.1"
+file-type@^3.6.0:
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
+
filename-regex@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
@@ -1725,6 +1841,10 @@ from2@^2.1.1:
inherits "^2.0.1"
readable-stream "^2.0.0"
+from@~0:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
+
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"
@@ -1784,7 +1904,7 @@ get-caller-file@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
-get-stdin@5.0.1:
+get-stdin@5.0.1, get-stdin@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398"
@@ -1889,6 +2009,16 @@ glob@7.1.1:
once "^1.3.0"
path-is-absolute "^1.0.0"
+glob@^6.0.1:
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
+ dependencies:
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "2 || 3"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.2:
version "7.1.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
@@ -1930,6 +2060,17 @@ globals@^9.18.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
+globby@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-4.1.0.tgz#080f54549ec1b82a6c60e631fc82e1211dbe95f8"
+ dependencies:
+ array-union "^1.0.1"
+ arrify "^1.0.0"
+ glob "^6.0.1"
+ object-assign "^4.0.1"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
globby@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
@@ -2096,6 +2237,17 @@ hosted-git-info@^2.1.4, hosted-git-info@^2.4.2:
version "2.5.0"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
+http-call@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/http-call/-/http-call-5.0.1.tgz#161544092420c9189808ef05dd51df72b8789b46"
+ dependencies:
+ content-type "^1.0.4"
+ debug "^3.1.0"
+ is-retry-allowed "^1.1.0"
+ is-stream "^1.1.0"
+ tslib "^1.8.1"
+ tunnel-agent "^0.6.0"
+
http-signature@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
@@ -2154,7 +2306,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3:
+inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
@@ -2399,7 +2551,7 @@ is-resolvable@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.1.tgz#acca1cd36dbe44b974b924321555a70ba03b1cf4"
-is-retry-allowed@^1.0.0:
+is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
@@ -2441,6 +2593,10 @@ is-windows@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c"
+is-windows@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9"
+
isarray@1.0.0, isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
@@ -2652,6 +2808,15 @@ load-json-file@^1.0.0:
pinkie-promise "^2.0.0"
strip-bom "^2.0.0"
+load-json-file@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ strip-bom "^3.0.0"
+
load-json-file@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
@@ -2793,6 +2958,10 @@ make-dir@^1.0.0:
dependencies:
pify "^3.0.0"
+manage-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/manage-path/-/manage-path-2.0.0.tgz#f4cf8457b926eeee2a83b173501414bc76eb9597"
+
map-cache@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
@@ -2801,6 +2970,10 @@ map-obj@^1.0.0, map-obj@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
+map-stream@~0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"
+
map-visit@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
@@ -2860,7 +3033,7 @@ mem@^1.1.0:
dependencies:
mimic-fn "^1.0.0"
-meow@3.7.0, meow@^3.3.0:
+meow@3.7.0, meow@^3.3.0, meow@^3.6.0, meow@^3.7.0:
version "3.7.0"
resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
dependencies:
@@ -2943,7 +3116,7 @@ mimic-response@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.0.tgz#df3d3652a73fded6b9b0b24146e6fd052353458e"
-minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4:
+"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
dependencies:
@@ -3023,10 +3196,20 @@ natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+ncp@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3"
+
nerf-dart@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/nerf-dart/-/nerf-dart-1.0.0.tgz#e6dab7febf5ad816ea81cf5c629c5a0ebde72c1a"
+nested-error-stacks@^1.0.0, nested-error-stacks@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz#19f619591519f096769a5ba9a86e6eeec823c3cf"
+ dependencies:
+ inherits "~2.0.1"
+
node-emoji@^1.4.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.8.1.tgz#6eec6bfb07421e2148c75c6bba72421f8530a826"
@@ -3100,6 +3283,38 @@ npm-run-path@^2.0.0:
gauge "~2.7.3"
set-blocking "~2.0.0"
+nps-utils@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/nps-utils/-/nps-utils-1.5.0.tgz#d20b5848dd20622d4d51c955c8b1790348b57686"
+ dependencies:
+ any-shell-escape "^0.1.1"
+ common-tags "^1.4.0"
+ concurrently "^3.4.0"
+ cpy-cli "^1.0.1"
+ cross-env "^3.1.4"
+ is-windows "^1.0.0"
+ mkdirp "^0.5.1"
+ ncp "2.0.0"
+ opn-cli "^3.1.0"
+ rimraf "^2.6.1"
+
+nps@^5.7.1:
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/nps/-/nps-5.7.1.tgz#12cbfc635a6535ccb4f6eb516e6011f3af6bef42"
+ dependencies:
+ arrify "^1.0.1"
+ chalk "^2.0.1"
+ common-tags "^1.4.0"
+ find-up "^2.1.0"
+ js-yaml "^3.9.0"
+ lodash "^4.17.4"
+ manage-path "^2.0.0"
+ prefix-matches "^1.0.1"
+ readline-sync "^1.4.7"
+ spawn-command-with-kill "^1.0.0"
+ type-detect "^4.0.3"
+ yargs "^8.0.2"
+
number-is-nan@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
@@ -3187,6 +3402,23 @@ onetime@^2.0.0:
dependencies:
mimic-fn "^1.0.0"
+opn-cli@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/opn-cli/-/opn-cli-3.1.0.tgz#f819ae6cae0b411bd0149b8560fe6c88adad20f8"
+ dependencies:
+ file-type "^3.6.0"
+ get-stdin "^5.0.1"
+ meow "^3.7.0"
+ opn "^4.0.0"
+ temp-write "^2.1.0"
+
+opn@^4.0.0:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95"
+ dependencies:
+ object-assign "^4.0.1"
+ pinkie-promise "^2.0.0"
+
optimist@^0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
@@ -3368,17 +3600,29 @@ path-type@^1.0.0:
pify "^2.0.0"
pinkie-promise "^2.0.0"
+path-type@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
+ dependencies:
+ pify "^2.0.0"
+
path-type@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
dependencies:
pify "^3.0.0"
+pause-stream@0.0.11:
+ version "0.0.11"
+ resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445"
+ dependencies:
+ through "~2.3"
+
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
-pify@^2.0.0, pify@^2.3.0:
+pify@^2.0.0, pify@^2.2.0, pify@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -3410,6 +3654,13 @@ posix-character-classes@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
+prefix-matches@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/prefix-matches/-/prefix-matches-1.0.1.tgz#02e34ce27f33af48e68bbfce2aac2a004bc2b76c"
+ dependencies:
+ is-object "^1.0.1"
+ starts-with "^1.0.2"
+
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -3446,6 +3697,12 @@ proxy-from-env@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee"
+ps-tree@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014"
+ dependencies:
+ event-stream "~3.3.0"
+
pseudomap@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
@@ -3501,6 +3758,13 @@ read-pkg-up@^1.0.1:
find-up "^1.0.0"
read-pkg "^1.0.0"
+read-pkg-up@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
+ dependencies:
+ find-up "^2.0.0"
+ read-pkg "^2.0.0"
+
read-pkg-up@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07"
@@ -3516,6 +3780,14 @@ read-pkg@^1.0.0:
normalize-package-data "^2.3.2"
path-type "^1.0.0"
+read-pkg@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
+ dependencies:
+ load-json-file "^2.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^2.0.0"
+
read-pkg@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
@@ -3524,7 +3796,7 @@ read-pkg@^3.0.0:
normalize-package-data "^2.3.2"
path-type "^3.0.0"
-readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2:
+readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2:
version "2.3.3"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
dependencies:
@@ -3536,6 +3808,10 @@ readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.6, readable
string_decoder "~1.0.3"
util-deprecate "~1.0.1"
+readline-sync@^1.4.7:
+ version "1.4.7"
+ resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.7.tgz#001bfdd4c06110c3c084c63bf7c6a56022213f30"
+
rechoir@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
@@ -3751,6 +4027,12 @@ rx@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782"
+rxjs@^5.5.6:
+ version "5.5.6"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.6.tgz#e31fb96d6fd2ff1fd84bcea8ae9c02d007179c02"
+ dependencies:
+ symbol-observable "1.0.1"
+
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
@@ -3846,6 +4128,14 @@ shelljs@^0.7.8:
interpret "^1.0.0"
rechoir "^0.6.2"
+shelljs@^0.8.0:
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.0.tgz#12f561c52ec5d0d3315af15616c011a18ff80d59"
+ dependencies:
+ glob "^7.0.0"
+ interpret "^1.0.0"
+ rechoir "^0.6.2"
+
signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
@@ -3931,6 +4221,13 @@ source-map@^0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+spawn-command-with-kill@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/spawn-command-with-kill/-/spawn-command-with-kill-1.0.0.tgz#803ad79f2f56e44dd926183768aac2faec7d0ce6"
+ dependencies:
+ ps-tree "^1.1.0"
+ spawn-command "^0.0.2-1"
+
spawn-command@^0.0.2-1:
version "0.0.2-1"
resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0"
@@ -3989,6 +4286,12 @@ split2@~1.0.0:
dependencies:
through2 "~2.0.0"
+split@0.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f"
+ dependencies:
+ through "2"
+
split@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
@@ -4019,6 +4322,10 @@ ssri@^4.1.2:
dependencies:
safe-buffer "^5.1.0"
+starts-with@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/starts-with/-/starts-with-1.0.2.tgz#16793a729d89d4cf3d4fb2eda2f908ae357f196f"
+
static-extend@^0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
@@ -4033,6 +4340,12 @@ stream-combiner2@~1.1.1:
duplexer2 "~0.1.0"
readable-stream "^2.0.2"
+stream-combiner@~0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14"
+ dependencies:
+ duplexer "~0.1.1"
+
string-template@~0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add"
@@ -4145,6 +4458,10 @@ supports-color@^5.1.0:
dependencies:
has-flag "^2.0.0"
+symbol-observable@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
+
table@^4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36"
@@ -4163,6 +4480,17 @@ taketalk@^1.0.0:
get-stdin "^4.0.1"
minimist "^1.1.0"
+temp-write@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/temp-write/-/temp-write-2.1.0.tgz#59890918e0ef09d548aaa342f4bd3409d8404e96"
+ dependencies:
+ graceful-fs "^4.1.2"
+ mkdirp "^0.5.0"
+ os-tmpdir "^1.0.0"
+ pify "^2.2.0"
+ pinkie-promise "^2.0.0"
+ uuid "^2.0.1"
+
test-exclude@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.1.tgz#4d84964b0966b0087ecc334a2ce002d3d9341e26"
@@ -4192,7 +4520,7 @@ through2@^2.0.0, through2@^2.0.1, through2@^2.0.2, through2@~2.0.0:
readable-stream "^2.1.5"
xtend "~4.0.1"
-through@2, "through@>=2.2.7 <3", through@^2.3.6:
+through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3, through@~2.3.1:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
@@ -4269,6 +4597,10 @@ ts-lodash@^4.0.11, ts-lodash@^4.0.8:
dependencies:
lodash "^4.17.4"
+tslib@^1.8.1:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8"
+
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
@@ -4285,6 +4617,10 @@ type-check@~0.3.2:
dependencies:
prelude-ls "~1.1.2"
+type-detect@^4.0.3:
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.7.tgz#862bd2cf6058ad92799ff5a5b8cf7b6cec726198"
+
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
@@ -4360,6 +4696,10 @@ util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+uuid@^2.0.1:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
+
uuid@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
@@ -4488,6 +4828,12 @@ yallist@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+yargs-parser@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
+ dependencies:
+ camelcase "^4.1.0"
+
yargs-parser@^8.0.0, yargs-parser@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950"
@@ -4511,6 +4857,24 @@ yargs@^10.0.3:
y18n "^3.2.1"
yargs-parser "^8.1.0"
+yargs@^8.0.2:
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
+ dependencies:
+ camelcase "^4.1.0"
+ cliui "^3.2.0"
+ decamelize "^1.1.1"
+ get-caller-file "^1.0.1"
+ os-locale "^2.0.0"
+ read-pkg-up "^2.0.0"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
+ y18n "^3.2.1"
+ yargs-parser "^7.0.0"
+
yargs@~3.10.0:
version "3.10.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"

test: add CI tests