feat: use new parser model
MODIFY
package.json
package.json
"bin": "bin/run",
"bugs": "https://github.com/anycli/anycli/issues",
"dependencies": {
- "@anycli/command": "^0.2.9",
- "@anycli/config": "^0.2.1",
- "@anycli/engine": "^0.1.29",
- "@anycli/version": "^0.1.15",
- "cli-ux": "^3.3.8",
+ "@anycli/command": "^0.2.24",
+ "@anycli/config": "^0.2.8",
+ "@anycli/engine": "^0.1.38",
+ "@anycli/version": "^0.1.19",
+ "cli-ux": "^3.3.11",
"debug": "^3.1.0",
"fixpack": "^2.3.1",
"lodash": "^4.17.4",
"yosay": "^2.0.1"
},
"devDependencies": {
- "@anycli/tslint": "^0.2.0",
- "@commitlint/cli": "^6.0.2",
- "@commitlint/config-conventional": "^6.0.2",
- "@types/lodash": "^4.14.98",
+ "@anycli/tslint": "^0.2.1",
+ "@commitlint/cli": "^6.0.5",
+ "@commitlint/config-conventional": "^6.0.4",
+ "@types/lodash": "^4.14.99",
"@types/read-pkg": "^3.0.0",
"@types/shelljs": "^0.7.7",
"@types/yeoman-generator": "^2.0.1",
"eslint": "^4.16.0",
"eslint-config-anycli": "^1.3.0",
"execa": "^0.9.0",
- "fancy-test": "^0.6.5",
+ "fancy-test": "^0.6.6",
"fs-extra": "^5.0.0",
"husky": "^0.14.3",
"mocha": "^5.0.0",
"shelljs": "^0.8.1",
"tmp": "^0.0.33",
"ts-node": "^4.1.0",
- "typescript": "^2.6.2"
+ "typescript": "^2.7.1"
},
"anycli": {
"commands": "./lib/commands",

MODIFY
src/app_command.ts
src/app_command.ts
-import {flags} from '@anycli/command'
+import {flags, parse} from '@anycli/command'
import Base from './command_base'
export default abstract class AppCommand extends Base {
- static flags: flags.Input<AppCommand['flags']> = {
+ static flags = {
defaults: flags.boolean({description: 'use defaults for every setting'}),
options: flags.string({description: '(typescript|semantic-release|mocha)'}),
force: flags.boolean({description: 'overwrite existing files'}),
@@ -11,23 +11,19 @@ export default abstract class AppCommand extends Base {
static args = [
{name: 'path', required: false}
]
- flags: {
- defaults?: boolean
- options?: string
- force?: boolean
- }
+ options = parse(this.argv, AppCommand)
abstract type: string
async run() {
- const options = this.flags.options ? this.flags.options.split(',') : []
+ const options = this.options.flags.options ? this.options.flags.options.split(',') : []
await super.generate('app', {
type: this.type,
- path: this.args.path,
+ path: this.options.args.path,
options,
- defaults: this.flags.defaults,
- force: this.flags.force
+ defaults: this.options.flags.defaults,
+ force: this.options.flags.force
})
}
}

MODIFY
src/commands/command.ts
src/commands/command.ts
-import {flags} from '@anycli/command'
+import {flags, parse} from '@anycli/command'
import Base from '../command_base'
@@ -9,23 +9,20 @@ export interface Options {
}
export default abstract class AppCommand extends Base {
- static flags: flags.Input<AppCommand['flags']> = {
+ static flags = {
defaults: flags.boolean({description: 'use defaults for every setting'}),
force: flags.boolean({description: 'overwrite existing files'}),
}
static args = [
{name: 'name', description: 'name of command', required: true}
]
- flags: {
- defaults?: boolean
- force?: boolean
- }
+ options = parse(this.argv, AppCommand)
async run() {
await super.generate('command', {
- name: this.args.name,
- defaults: this.flags.defaults,
- force: this.flags.force
+ name: this.options.args.name,
+ defaults: this.options.flags.defaults,
+ force: this.options.flags.force
})
}
}

MODIFY
src/generators/app/index.ts
src/generators/app/index.ts
@@ -32,13 +32,13 @@ class App extends Generator {
'semantic-release': boolean
typescript: boolean
}
- args: {[k: string]: string}
+ args!: {[k: string]: string}
type: 'single' | 'multi' | 'plugin' | 'base'
path: string
pjson: any
- fromScratch: boolean
+ fromScratch!: boolean
githubUser: string | undefined
- answers: {
+ answers!: {
name: string
description: string
version: string
@@ -53,9 +53,9 @@ class App extends Generator {
'semantic-release': boolean
}
}
- mocha: boolean
- semantic_release: boolean
- ts: boolean
+ mocha!: boolean
+ semantic_release!: boolean
+ ts!: boolean
get _ext() { return this.ts ? 'ts' : 'js' }
constructor(args: any, opts: any) {
@@ -326,12 +326,12 @@ class App extends Generator {
break
case 'plugin':
dependencies.push(
- '@anycli/config',
'@anycli/command',
'cli-ux',
)
devDependencies.push(
'@anycli/engine',
+ '@anycli/config',
)
break
case 'multi':
@@ -423,14 +423,17 @@ class App extends Generator {
private _writePlugin() {
if (!this.fromScratch) return
+ let bin = this.pjson.anycli.bin || this.pjson.anycli.dirname || this.pjson.name
+ if (bin.includes('/')) bin = bin.split('/').pop()
+ const cmd = `${bin} hello`
this.fs.copyTpl(this.templatePath('plugin/bin/run'), this.destinationPath('bin/run'), this)
this.fs.copyTpl(this.templatePath('bin/run.cmd'), this.destinationPath('bin/run.cmd'), this)
- this.fs.copyTpl(this.templatePath(`command.${this._ext}.ejs`), this.destinationPath(`src/commands/hello.${this._ext}`), {name: 'hello', _})
+ this.fs.copyTpl(this.templatePath(`command.${this._ext}.ejs`), this.destinationPath(`src/commands/hello.${this._ext}`), {name: 'hello', _, bin, cmd})
if (this.ts) {
this.fs.copyTpl(this.templatePath('plugin/src/index.ts'), this.destinationPath('src/index.ts'), this)
}
if (this.mocha) {
- this.fs.copyTpl(this.templatePath(`command.test.${this._ext}.ejs`), this.destinationPath(`test/commands/hello.test.${this._ext}`), {name: 'hello', _})
+ this.fs.copyTpl(this.templatePath(`command.test.${this._ext}.ejs`), this.destinationPath(`test/commands/hello.test.${this._ext}`), {name: 'hello', _, bin, cmd})
}
}

MODIFY
src/generators/command/index.ts
src/generators/command/index.ts
@@ -11,10 +11,7 @@ import {Options} from '../../commands/command'
const {version} = require('../../../package.json')
class CommandGenerator extends Generator {
- pjson: {
- name: string
- devDependencies: {[name: string]: string}
- }
+ pjson!: any
get _path() { return this.options.name.split(':').join('/') }
get _ts() { return this.pjson.devDependencies.typescript }
@@ -33,11 +30,15 @@ class CommandGenerator extends Generator {
writing() {
this.sourceRoot(path.join(__dirname, '../../../templates'))
- this.fs.copyTpl(this.templatePath(`command.${this._ext}.ejs`), this.destinationPath(`src/commands/${this._path}.${this._ext}`), {...this.options, _})
+ let bin = this.pjson.anycli.bin || this.pjson.anycli.dirname || this.pjson.name
+ if (bin.includes('/')) bin = bin.split('/').pop()
+ const cmd = `${bin} ${this.options.name}`
+ const opts = {...this.options, cmd, _}
+ this.fs.copyTpl(this.templatePath(`command.${this._ext}.ejs`), this.destinationPath(`src/commands/${this._path}.${this._ext}`), opts)
// this.fs.copyTpl(this.templatePath(`plugin/src/hooks/init.${this._ext}`), this.destinationPath(`src/hooks/init.${this._ext}`), this)
if (this._mocha) {
// this.fs.copyTpl(this.templatePath(`plugin/test/hooks/init.test.${this._ext}`), this.destinationPath(`test/hooks/init.test.${this._ext}`), this)
- this.fs.copyTpl(this.templatePath(`command.test.${this._ext}.ejs`), this.destinationPath(`test/commands/${this._path}.test.${this._ext}`), {...this.options, _})
+ this.fs.copyTpl(this.templatePath(`command.test.${this._ext}.ejs`), this.destinationPath(`test/commands/${this._path}.test.${this._ext}`), opts)
}
// this.fs.writeJSON(this.destinationPath('./package.json'), this.pjson)
}

MODIFY
templates/command.js.ejs
templates/command.js.ejs
-const {Command, flags} = require('@anycli/command')
+const {Command, flags, parse} = require('@anycli/command')
const {cli} = require('cli-ux')
<%_ const klass = _.upperFirst(_.camelCase(name.split(':').slice(-1).join(':') + ':command')) _%>
class <%- klass %> extends Command {
async run() {
- const name = this.flags.name || 'world'
+ const options = parse(this.argv, <%- klass %>)
+ const name = options.flags.name || 'world'
cli.log(`hello ${name} from <%- name %>!`)
}
}

MODIFY
templates/command.ts.ejs
templates/command.ts.ejs
-import {Command, flags} from '@anycli/command'
+import {Command, flags, parse} from '@anycli/command'
import cli from 'cli-ux'
<%_ const klass = _.upperFirst(_.camelCase(name)) _%>
export default class <%- klass %> extends Command {
- static flags: flags.Input<<%- klass %>['flags']> = {
- name: flags.string({char: 'n', description: 'name to print'})
- }
- flags: {
- name?: string
+ static title = 'scaffolded command that says hello'
+
+ // hide the command from help
+ // can also set hidden on args and flags
+ // static hidden = true
+
+ // usage is set by default
+ // add your own by setting this variable
+ // can be a string or array
+ // static usage = 'title of command'
+
+ static description = `
+Add a longer description here
+...
+...
+`
+
+ static examples = [
+ `$ <%- cmd %>
+hello world from <%- name %>!
+`,
+ `$ <%- cmd %> --name myname
+hello myname from <%- name %>!
+`,
+ '$ <%- cmd %> file outputs "hello world!" to file',
+ '$ <%- cmd %> --force',
+ ]
+
+ // allow running this command by running `$ <%- bin %> foobar`
+ // static aliases = ['foobar']
+
+ static flags = {
+ // flag with a value (-n, --name=VALUE)
+ name: flags.string({
+ char: 'n', // shorter flag version
+ description: 'name to print', // help description for flag
+ hidden: false, // hide from help
+ required: false, // make flag required (probably should use an arg instead of a required flag though)
+ multiple: false, // allow setting this flag multiple times
+ // options: ['a', 'b'], // only allow the value to be from a discrete set
+ // parse: input => 'output', // instead of the user input, return a differnt value
+ // default: 'world', // default value if flag not passed
+ }),
+
+ // flag with no value (-f, --force)
+ force: flags.boolean({
+ char: 'f',
+
+ // by default boolean flags may also be reversed with `--no-` (in this case: `--no-force`)
+ // the flag will be set to false if reversed
+ // set this to false to disable this functionality
+ // allowNo: false,
+ }),
}
+ static args = [
+ {
+ name: 'file', // name of arg to show in help and reference with this.options.args[name]
+ required: false, // make the arg required with `required: true`
+ description: 'file to output', // help description
+ // hidden: true, // hide this flag from help
+ // parse: input => 'output', // instead of the user input, return a differnt value
+ // default: 'world', // default value if no arg input
+ // options: ['a', 'b'], // only allow input to be from a discrete set
+ },
+ ]
+
+ // this makes the parser not fail when it receives invalid arguments
+ // set it to off if you need to accept variable arguments
+ // static strict = false
+
+ // runs the parser and stores the results in this.options
+ // you should run this even if you have no flags/args so it properly errors out
+ // (see strict above for variable argument commands)
+ //
+ // stores the parsed flags in options.flags[name]
+ //
+ // stores the parsed args in options.args[name] as an object
+ // but also in options.argv as an array
+ // you can get the raw args passed to the command with this.argv
+ // or from this.options.argv which will remove any args that were actually flags
+ options = parse(this.argv, <%- klass %>)
+
+ // entry point of command
async run() {
- const name = this.flags.name || 'world'
+ const name = this.options.flags.name || 'world'
cli.log(`hello ${name} from <%- name %>!`)
+
+ // this.options.flags.force is a boolean
+ // this.options.args.file and this.options.argv[0] is a string or undefined
}
}

MODIFY
templates/tsconfig.json
templates/tsconfig.json
"noUnusedLocals": true,
"noUnusedParameters": true,
"outDir": "./lib",
+ "pretty": true,
"rootDirs": [
"./src"
],

MODIFY
tsconfig.json
tsconfig.json
"noUnusedLocals": true,
"noUnusedParameters": true,
"outDir": "./lib",
+ "pretty": true,
"rootDirs": [
"./src"
],

MODIFY
yarn.lock
yarn.lock
# yarn lockfile v1
-"@anycli/command@^0.2.9":
- version "0.2.9"
- resolved "https://registry.yarnpkg.com/@anycli/command/-/command-0.2.9.tgz#658ea8c623e047bc924582d5a885434aed22ed41"
+"@anycli/command@^0.2.19":
+ version "0.2.22"
+ resolved "https://registry.yarnpkg.com/@anycli/command/-/command-0.2.22.tgz#486b36d2916b28f08b9aedb129a758a4da2f542a"
dependencies:
- "@anycli/parser" "^0.1.1"
+ "@anycli/parser" "^3.0.2"
+ cli-ux "^3.3.10"
debug "^3.1.0"
lodash "^4.17.4"
tslib "^1.9.0"
-"@anycli/config@^0.2.0", "@anycli/config@^0.2.1":
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/@anycli/config/-/config-0.2.1.tgz#d32fe5036cd194c34ca32ee6bc5e1a4b0ca3c86f"
+"@anycli/command@^0.2.24":
+ version "0.2.24"
+ resolved "https://registry.yarnpkg.com/@anycli/command/-/command-0.2.24.tgz#3347d7d25ecad258bee80297b14acf4ae9cdd523"
+ dependencies:
+ "@anycli/parser" "^3.0.3"
+ cli-ux "^3.3.10"
+ debug "^3.1.0"
+ lodash "^4.17.4"
+ tslib "^1.9.0"
+
+"@anycli/config@^0.2.3":
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/@anycli/config/-/config-0.2.6.tgz#d40709a61704907d4d6e7dcab6bbf124ab74e9ad"
dependencies:
- cli-ux "^3.3.8"
+ cli-ux "^3.3.10"
debug "^3.1.0"
fs-extra "^5.0.0"
load-json-file "^4.0.0"
lodash "^4.17.4"
read-pkg "^3.0.0"
-"@anycli/engine@^0.1.29":
- version "0.1.29"
- resolved "https://registry.yarnpkg.com/@anycli/engine/-/engine-0.1.29.tgz#fcc83ca4b8ef5c0f0f9f01a16579d3ef24cfdce7"
+"@anycli/config@^0.2.8":
+ version "0.2.8"
+ resolved "https://registry.yarnpkg.com/@anycli/config/-/config-0.2.8.tgz#db2884692252f2f64afaf1e89cc507c2d35a3226"
+ dependencies:
+ cli-ux "^3.3.10"
+ debug "^3.1.0"
+ fs-extra "^5.0.0"
+ load-json-file "^4.0.0"
+ lodash "^4.17.4"
+ read-pkg "^3.0.0"
+
+"@anycli/engine@^0.1.38":
+ version "0.1.38"
+ resolved "https://registry.yarnpkg.com/@anycli/engine/-/engine-0.1.38.tgz#47b74330709eeadb95798f047c22436f0613cbab"
dependencies:
"@anycli/manifest-file" "^0.2.0"
- cli-ux "^3.3.9"
+ cli-ux "^3.3.10"
debug "^3.1.0"
fs-extra "^5.0.0"
globby "^7.1.1"
lodash "^4.17.4"
rwlockfile "^2.0.21"
-"@anycli/parser@^0.1.1":
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/@anycli/parser/-/parser-0.1.3.tgz#6ad888815f65afcf66b6f462efc13a56743dd9d1"
+"@anycli/parser@^3.0.2":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@anycli/parser/-/parser-3.0.2.tgz#69af00b6b6f0cc6da4405cf44dc29b2d14d30c6e"
+ dependencies:
+ "@anycli/screen" "^0.0.3"
+ chalk "^2.3.0"
+ lodash "^4.17.4"
+
+"@anycli/parser@^3.0.3":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@anycli/parser/-/parser-3.0.3.tgz#abc33c9098485d0ae2705eab859ff305aec6006f"
dependencies:
"@anycli/screen" "^0.0.3"
chalk "^2.3.0"
version "0.0.3"
resolved "https://registry.yarnpkg.com/@anycli/screen/-/screen-0.0.3.tgz#f0afd970c3ed725702948a45a874ede1fdd9362e"
-"@anycli/tslint@^0.2.0":
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/@anycli/tslint/-/tslint-0.2.0.tgz#192a612e3664f7a18fe6ed693de94de6d4563882"
+"@anycli/tslint@^0.2.1":
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/@anycli/tslint/-/tslint-0.2.1.tgz#17295a3a4c579884cd3aea7ed1d8c07d11ecc624"
dependencies:
tslint "^5.9.1"
tslint-xo "^0.6.0"
-"@anycli/version@^0.1.15":
- version "0.1.15"
- resolved "https://registry.yarnpkg.com/@anycli/version/-/version-0.1.15.tgz#81751d98c9f431833ca5b29e2b08aabc17edf44b"
+"@anycli/version@^0.1.19":
+ version "0.1.19"
+ resolved "https://registry.yarnpkg.com/@anycli/version/-/version-0.1.19.tgz#4464c3c831e0dc1d0ef92375167ec9af923b66c3"
dependencies:
- "@anycli/command" "^0.2.9"
- "@anycli/config" "^0.2.0"
- cli-ux "^3.3.9"
+ "@anycli/command" "^0.2.19"
+ "@anycli/config" "^0.2.3"
+ cli-ux "^3.3.10"
-"@commitlint/cli@^6.0.2":
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-6.0.2.tgz#378d37e92c4d97346e84c3a3d6677a62e9471d66"
+"@commitlint/cli@^6.0.5":
+ version "6.0.5"
+ resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-6.0.5.tgz#c159c41434d24167c2f52c29e81cffc1959a6d0f"
dependencies:
- "@commitlint/core" "^6.0.2"
+ "@commitlint/core" "^6.0.5"
babel-polyfill "6.26.0"
chalk "2.3.0"
get-stdin "5.0.1"
lodash.pick "4.4.0"
meow "3.7.0"
-"@commitlint/config-conventional@^6.0.2":
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-6.0.2.tgz#8ef87a6facb75b3377b2760b0e91097f8ec64db4"
-
-"@commitlint/core@^6.0.2":
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/@commitlint/core/-/core-6.0.2.tgz#8e79e18d57ea3d30ca4bbfdf028d5f5d0cd3e422"
- dependencies:
- "@commitlint/execute-rule" "^6.0.2"
- "@commitlint/is-ignored" "^6.0.2"
- "@commitlint/parse" "^6.0.2"
- "@commitlint/resolve-extends" "^6.0.2"
- "@commitlint/rules" "^6.0.2"
- "@commitlint/top-level" "^6.0.2"
+"@commitlint/config-conventional@^6.0.4":
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-6.0.4.tgz#f5332c3aaf5423f2fa62287849859a9b769484f3"
+
+"@commitlint/core@^6.0.5":
+ version "6.0.5"
+ resolved "https://registry.yarnpkg.com/@commitlint/core/-/core-6.0.5.tgz#a0f174f08a377eb9e5571bf31c2c9f60964a6ed9"
+ dependencies:
+ "@commitlint/execute-rule" "^6.0.4"
+ "@commitlint/is-ignored" "^6.0.4"
+ "@commitlint/parse" "^6.0.4"
+ "@commitlint/resolve-extends" "^6.0.4"
+ "@commitlint/rules" "^6.0.4"
+ "@commitlint/top-level" "^6.0.5"
"@marionebl/sander" "^0.6.0"
babel-runtime "^6.23.0"
chalk "^2.0.1"
- cosmiconfig "^3.0.1"
+ cosmiconfig "^4.0.0"
git-raw-commits "^1.3.0"
lodash.merge "4.6.0"
lodash.mergewith "4.6.0"
lodash.topairs "4.3.0"
resolve-from "4.0.0"
-"@commitlint/ensure@^6.0.2":
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-6.0.2.tgz#31611fac3d3e67d574ae3808a3a91467fa83e3f4"
+"@commitlint/ensure@^6.0.4":
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-6.0.4.tgz#c5ae6d0a24797e58caceee61608c6ac9ced64691"
dependencies:
lodash.camelcase "4.3.0"
lodash.kebabcase "4.1.1"
lodash.startcase "4.4.0"
lodash.upperfirst "4.3.1"
-"@commitlint/execute-rule@^6.0.2":
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-6.0.2.tgz#764a10a5ad7055e5c1508f1c80be85a3d2c8668a"
+"@commitlint/execute-rule@^6.0.4":
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-6.0.4.tgz#5db080be51b2cc057028ce24a1cd9142283774fc"
dependencies:
babel-runtime "6.26.0"
-"@commitlint/is-ignored@^6.0.2":
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-6.0.2.tgz#3c48bd8473da6471259bb8fd5dbc49ac3ee5b150"
+"@commitlint/is-ignored@^6.0.4":
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-6.0.4.tgz#cc4cde7be8d101e848fa70b37381687fa837c417"
dependencies:
- semver "5.4.1"
+ semver "5.5.0"
-"@commitlint/message@^6.0.2":
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-6.0.2.tgz#7003156700e14c692cbbc26ada8c5b5cb5986805"
+"@commitlint/message@^6.0.4":
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-6.0.4.tgz#80fe320285cab5f0f4ab3847e8d3b98a3fd1e389"
-"@commitlint/parse@^6.0.2":
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-6.0.2.tgz#1978de35bd2e620a892511c4642779a83ad2400e"
+"@commitlint/parse@^6.0.4":
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-6.0.4.tgz#3d7403b024200d32d66e913ee464eaf46bbac075"
dependencies:
conventional-changelog-angular "^1.3.3"
conventional-commits-parser "^2.1.0"
-"@commitlint/resolve-extends@^6.0.2":
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-6.0.2.tgz#1937640053f3a865490aeac97b2efac66dbe9a96"
+"@commitlint/resolve-extends@^6.0.4":
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-6.0.4.tgz#8cce624e856df7582d5621c882e83f69b44c18c4"
dependencies:
babel-runtime "6.26.0"
lodash.merge "4.6.0"
resolve-from "^4.0.0"
resolve-global "^0.1.0"
-"@commitlint/rules@^6.0.2":
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-6.0.2.tgz#11fee4bc134ba6e9da261685a1653d86fcae7771"
+"@commitlint/rules@^6.0.4":
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-6.0.4.tgz#6891d7e37908d6438dc3b382f193774ab4a36479"
dependencies:
- "@commitlint/ensure" "^6.0.2"
- "@commitlint/message" "^6.0.2"
- "@commitlint/to-lines" "^6.0.2"
+ "@commitlint/ensure" "^6.0.4"
+ "@commitlint/message" "^6.0.4"
+ "@commitlint/to-lines" "^6.0.4"
babel-runtime "^6.23.0"
-"@commitlint/to-lines@^6.0.2":
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-6.0.2.tgz#be76792eae6f2446de1d9e15b20b3e3b990c838b"
+"@commitlint/to-lines@^6.0.4":
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-6.0.4.tgz#c0bb6ca0b5c5f565f18d9747de12067cb2c4cc34"
-"@commitlint/top-level@^6.0.2":
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-6.0.2.tgz#fffc584d7275868b884439e5ab02969dee3d62f5"
+"@commitlint/top-level@^6.0.5":
+ version "6.0.5"
+ resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-6.0.5.tgz#01cac031f7452c0bebfda75d6ef7fb79d1714f81"
dependencies:
find-up "^2.1.0"
"@types/rx" "*"
"@types/through" "*"
-"@types/lodash@^4.14.98":
- version "4.14.98"
- resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.98.tgz#aaf012ae443e657e7885e605a4c1b340db160609"
+"@types/lodash@^4.14.99":
+ version "4.14.99"
+ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.99.tgz#e6e10c0a4cc16c7409b3181f1e66880d2fb7d4dc"
"@types/minimatch@*":
version "3.0.3"
@@ -627,9 +657,29 @@ cli-table@^0.3.1:
dependencies:
colors "1.0.3"
-cli-ux@^3.3.8, cli-ux@^3.3.9:
- version "3.3.9"
- resolved "https://registry.yarnpkg.com/cli-ux/-/cli-ux-3.3.9.tgz#b3d09bb9057d2ef75cfd492d58359dd923c0a16b"
+cli-ux@^3.3.10:
+ version "3.3.10"
+ resolved "https://registry.yarnpkg.com/cli-ux/-/cli-ux-3.3.10.tgz#54fad2bc9e1fcb56cdbd7d41682373e0fb7ce447"
+ dependencies:
+ "@anycli/screen" "^0.0.3"
+ "@heroku/linewrap" "^1.0.0"
+ ansi-styles "^3.2.0"
+ cardinal "^1.0.0"
+ chalk "^2.3.0"
+ clean-stack "^1.3.0"
+ extract-stack "^1.0.0"
+ fs-extra "^5.0.0"
+ indent-string "^3.2.0"
+ lodash "^4.17.4"
+ node-notifier "^5.2.1"
+ password-prompt "^1.0.4"
+ semver "^5.5.0"
+ strip-ansi "^4.0.0"
+ supports-color "^5.1.0"
+
+cli-ux@^3.3.11:
+ version "3.3.11"
+ resolved "https://registry.yarnpkg.com/cli-ux/-/cli-ux-3.3.11.tgz#64014c575bf8a4b228976c183e201ac3f18db967"
dependencies:
"@anycli/screen" "^0.0.3"
"@heroku/linewrap" "^1.0.0"
@@ -794,13 +844,13 @@ core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
-cosmiconfig@^3.0.1:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-3.1.0.tgz#640a94bf9847f321800403cd273af60665c73397"
+cosmiconfig@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc"
dependencies:
is-directory "^0.3.1"
js-yaml "^3.9.0"
- parse-json "^3.0.0"
+ parse-json "^4.0.0"
require-from-string "^2.0.1"
cp-file@^3.1.0:
@@ -1205,12 +1255,12 @@ extract-stack@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/extract-stack/-/extract-stack-1.0.0.tgz#b97acaf9441eea2332529624b732fc5a1c8165fa"
-fancy-test@^0.6.5:
- version "0.6.5"
- resolved "https://registry.yarnpkg.com/fancy-test/-/fancy-test-0.6.5.tgz#80a9dfb348fa34003ea030c3297bccc6ce825be2"
+fancy-test@^0.6.6:
+ version "0.6.6"
+ resolved "https://registry.yarnpkg.com/fancy-test/-/fancy-test-0.6.6.tgz#cda1afbf57ea2fb05291edbff34c0bbc2600d956"
dependencies:
lodash "^4.17.4"
- stdout-stderr "^0.1.4"
+ stdout-stderr "^0.1.6"
fast-deep-equal@^1.0.0:
version "1.0.0"
@@ -2205,12 +2255,6 @@ parse-json@^2.2.0:
dependencies:
error-ex "^1.2.0"
-parse-json@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-3.0.0.tgz#fa6f47b18e23826ead32f263e744d0e1e847fb13"
- dependencies:
- error-ex "^1.3.1"
-
parse-json@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
@@ -2562,7 +2606,7 @@ scoped-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-1.0.0.tgz#a346bb1acd4207ae70bd7c0c7ca9e566b6baddb8"
-"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0:
+"semver@2 || 3 || 4 || 5", semver@5.5.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
@@ -2570,10 +2614,6 @@ semver@5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
-semver@5.4.1:
- version "5.4.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
-
set-blocking@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
@@ -2683,9 +2723,9 @@ starts-with@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/starts-with/-/starts-with-1.0.2.tgz#16793a729d89d4cf3d4fb2eda2f908ae357f196f"
-stdout-stderr@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/stdout-stderr/-/stdout-stderr-0.1.5.tgz#adf87b96bb715b692fc62c727050d313ac832c23"
+stdout-stderr@^0.1.6:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/stdout-stderr/-/stdout-stderr-0.1.6.tgz#82616602f639bf029c87ab1049b02640a39a18ba"
dependencies:
debug "*"
strip-ansi "^4.0.0"
@@ -2982,9 +3022,9 @@ typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-typescript@^2.6.2:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4"
+typescript@^2.7.1:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.1.tgz#bb3682c2c791ac90e7c6210b26478a8da085c359"
universalify@^0.1.0:
version "0.1.1"

feat: use new parser model