From 079808b09e2bb33b0f3bc828a94c791584daa150 Mon Sep 17 00:00:00 2001 From: Jeff Dickey <216188+jdxcode@users.noreply.github.com> Date: Wed, 31 Jan 2018 17:25:16 -0800 Subject: [PATCH] feat: added default scope to plugins --- package.json | 30 ++-- src/commands/plugins/index.ts | 13 +- src/commands/plugins/install.ts | 48 ++++-- src/commands/plugins/uninstall.ts | 7 +- src/plugins.ts | 2 +- test/commands/plugins/index.test.ts | 34 ++++- test/test.ts | 3 +- yarn.lock | 222 +++++++++++++++------------- 8 files changed, 222 insertions(+), 137 deletions(-) diff --git a/package.json b/package.json index 934c0c46..04f223d8 100644 --- a/package.json +++ b/package.json @@ -5,28 +5,30 @@ "author": "Jeff Dickey @jdxcode", "bugs": "https://github.com/jdxcode/plugins/issues", "dependencies": { - "@anycli/command": "^0.2.6", - "@anycli/config": "^0.2.1", + "@anycli/command": "^0.2.21", + "@anycli/config": "^0.2.4", "@anycli/manifest-file": "^0.2.0", "@heroku-cli/color": "^1.1.1", - "cli-ux": "^3.3.8", + "cli-ux": "^3.3.10", "debug": "^3.1.0", "fs-extra": "^5.0.0", + "http-call": "^5.0.2", "lodash": "^4.17.4", "npm-run-path": "^2.0.2", "tslib": "^1.9.0", "yarn": "^1.3.2" }, "devDependencies": { - "@anycli/engine": "^0.1.29", - "@anycli/test": "^0.10.0", - "@anycli/tslint": "^0.2.0", - "@commitlint/cli": "^6.0.2", - "@commitlint/config-conventional": "^6.0.2", + "@anycli/engine": "^0.1.38", + "@anycli/test": "^0.10.1", + "@anycli/tslint": "^0.2.1", + "@anycli/version": "^0.1.19", + "@commitlint/cli": "^6.0.5", + "@commitlint/config-conventional": "^6.0.4", "@types/chai": "^4.1.2", "@types/fs-extra": "^5.0.0", - "@types/lodash": "^4.14.98", - "@types/mocha": "^2.2.47", + "@types/lodash": "^4.14.99", + "@types/mocha": "^2.2.48", "@types/nock": "^9.1.2", "@types/node": "^9.4.0", "@types/node-notifier": "^0.0.28", @@ -41,11 +43,15 @@ "nps": "^5.7.1", "nps-utils": "^1.5.0", "ts-node": "^4.1.0", - "typescript": "^2.6.2" + "typescript": "^2.7.1" }, "anycli": { "commands": "./lib/commands", - "plugins": "./lib/load" + "plugins": "./lib/load", + "pluginScope": "heroku-cli", + "devPlugins": [ + "@anycli/version" + ] }, "engines": { "node": ">=8.0.0" diff --git a/src/commands/plugins/index.ts b/src/commands/plugins/index.ts index b0d4e10b..aab69bd9 100644 --- a/src/commands/plugins/index.ts +++ b/src/commands/plugins/index.ts @@ -1,4 +1,4 @@ -import Command, {flags} from '@anycli/command' +import {Command, flags, parse} from '@anycli/command' import color from '@heroku-cli/color' import cli from 'cli-ux' import * as _ from 'lodash' @@ -23,7 +23,7 @@ if (g.anycli && g.anycli.config) { const examplePluginsHelp = Object.entries(examplePlugins).map(([name, p]: [string, any]) => ` ${name} ${p.version}`) export default class PluginsIndex extends Command { - static flags: flags.Input = { + static flags = { core: flags.boolean({description: 'show core plugins'}) } static description = 'list installed plugins' @@ -31,16 +31,13 @@ export default class PluginsIndex extends Command { $ ${bin} plugins ${examplePluginsHelp.join('\n')} ` - plugins: Plugins - flags: { - core: boolean - } + plugins = new Plugins(this.config) + options = parse(this.argv, PluginsIndex) async run() { - this.plugins = new Plugins(this.config) let plugins = this.config.engine!.plugins _.sortBy(plugins, 'name') - if (!this.flags.core) plugins = plugins.filter(p => p.type !== 'core') + if (!this.options.flags.core) plugins = plugins.filter(p => p.type !== 'core' && p.type !== 'dev') if (!plugins.length) { cli.info('no plugins installed') } diff --git a/src/commands/plugins/install.ts b/src/commands/plugins/install.ts index 27fe3068..300349fc 100644 --- a/src/commands/plugins/install.ts +++ b/src/commands/plugins/install.ts @@ -1,5 +1,6 @@ -import {Command} from '@anycli/command' +import {Command, parse} from '@anycli/command' import cli from 'cli-ux' +import HTTP from 'http-call' import Plugins from '../../plugins' @@ -22,21 +23,46 @@ export default class PluginsInstall extends Command { Example: $ ${bin} plugins:install ${examplePlugin} ` - static variableArgs = true + static strict = false static args = [{name: 'plugin', description: 'plugin to install', required: true}] - plugins: Plugins + plugins = new Plugins(this.config) + options = parse(this.argv, PluginsInstall) async run() { - this.plugins = new Plugins(this.config) - for (let plugin of this.argv) { - let scoped = plugin[0] === '@' - if (scoped) plugin = plugin.slice(1) - let [name, tag = 'latest'] = plugin.split('@') - if (scoped) name = `@${name}` - cli.action.start(`Installing plugin ${plugin}@${tag}`) - await this.plugins.install(name, tag) + for (let plugin of this.options.argv) { + let {name, tag, scope} = parsePlugin(plugin) + plugin = scope ? `@${scope}/${name}@${tag}` : `${name}@${tag}` + cli.action.start(`Installing plugin ${plugin}`) + const defaultScope = this.config.pjson.anycli.pluginScope + if (!scope && defaultScope) { + let version = await this.fetchVersionFromNPM({name, tag, scope: defaultScope}) + if (version) scope = defaultScope + } + await this.plugins.install(scope ? `@${scope}/${name}` : name, tag) cli.action.stop() } } + + private async fetchVersionFromNPM(plugin: {name: string, scope?: string, tag: string}): Promise { + try { + let url = plugin.scope ? `${this.config.npmRegistry}/-/package/@${plugin.scope}%2f${plugin.name}/dist-tags` : `${this.config.npmRegistry}/-/package/${plugin.name}/dist-tags` + const {body: pkg} = await HTTP.get(url) + return pkg[plugin.tag] + } catch (err) { + this.debug(err) + } + } +} + +function parsePlugin(input: string): {name: string, scope?: string, tag: string} { + if (input.includes('/')) { + let [scope, nameAndTag] = input.split('/') + scope = scope.slice(1) + let [name, tag = 'latest'] = nameAndTag.split('@') + return {scope, name, tag} + } else { + let [name, tag = 'latest'] = input.split('@') + return {name, tag} + } } diff --git a/src/commands/plugins/uninstall.ts b/src/commands/plugins/uninstall.ts index 98bba4c4..8682f546 100644 --- a/src/commands/plugins/uninstall.ts +++ b/src/commands/plugins/uninstall.ts @@ -1,4 +1,4 @@ -import {Command} from '@anycli/command' +import {Command, parse} from '@anycli/command' import cli from 'cli-ux' import Plugins from '../../plugins' @@ -25,11 +25,12 @@ export default class PluginsUninstall extends Command { static variableArgs = true static args = [{name: 'plugin', description: 'plugin to uninstall', required: true}] - plugins: Plugins + plugins = new Plugins(this.config) + options = parse(this.argv, PluginsUninstall) async run() { this.plugins = new Plugins(this.config) - for (let plugin of this.argv) { + for (let plugin of this.options.argv) { cli.action.start(`Uninstalling ${plugin}`) await this.plugins.uninstall(plugin) cli.action.stop() diff --git a/src/plugins.ts b/src/plugins.ts index 203fe7d7..440c17ee 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -7,8 +7,8 @@ import Manifest from './manifest' import Yarn from './yarn' export default class Plugins { + readonly yarn: Yarn private readonly manifest: Manifest - private readonly yarn: Yarn private readonly debug: any constructor(public config: IConfig) { diff --git a/test/commands/plugins/index.test.ts b/test/commands/plugins/index.test.ts index d65a8dc5..6358ba1f 100644 --- a/test/commands/plugins/index.test.ts +++ b/test/commands/plugins/index.test.ts @@ -2,15 +2,45 @@ import {expect, test} from '../../test' describe('command', () => { test - .command(['plugins:install', '@heroku-cli/status']) + .command(['plugins:install', 'status']) .stdout() .command(['plugins']) .do(output => expect(output.stdout).to.contain('@heroku-cli/status')) + .stdout() + .command(['status']) + .do(output => expect(output.stdout).to.contain('No known issues at this time')) .command(['plugins:uninstall', '@heroku-cli/status']) + .stdout() + .command(['plugins']) + .do(output => expect(output.stdout).to.equal('no plugins installed\n')) + .it('installs and uninstalls status') + + test + .command(['plugins:install', '@heroku-cli/status']) + .stdout() + .command(['plugins']) + .do(output => expect(output.stdout).to.contain('@heroku-cli/status')) + .stdout() + .command(['status']) + .do(output => expect(output.stdout).to.contain('No known issues at this time')) .command(['plugins:uninstall', '@heroku-cli/status']) - .stderr() .stdout() .command(['plugins']) .do(output => expect(output.stdout).to.equal('no plugins installed\n')) .it('installs and uninstalls @heroku-cli/status') + + test + .skip() + .command(['plugins:install', 'heroku-debug']) + .stdout() + .command(['plugins']) + .do(output => expect(output.stdout).to.contain('heroku-debug')) + .stdout() + .command(['debug']) + .do(output => expect(output.stdout).to.contain('foo')) + .command(['plugins:uninstall', 'heroku-debug']) + .stdout() + .command(['plugins']) + .do(output => expect(output.stdout).to.equal('no plugins installed\n')) + .it('installs and uninstalls heroku-debug') }) diff --git a/test/test.ts b/test/test.ts index 21ac5557..31d0880b 100644 --- a/test/test.ts +++ b/test/test.ts @@ -1,4 +1,4 @@ -import {IConfig, read} from '@anycli/config' +import {IConfig, IEngine, read} from '@anycli/config' import {expect, FancyTypes, NockScope, test as base} from '@anycli/test' import * as fs from 'fs-extra' @@ -13,6 +13,7 @@ export const test = base }) export { + IEngine, expect, IConfig, FancyTypes, diff --git a/yarn.lock b/yarn.lock index c6351969..d2e5d076 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,32 +2,33 @@ # yarn lockfile v1 -"@anycli/command@^0.2.6": - version "0.2.9" - resolved "https://registry.yarnpkg.com/@anycli/command/-/command-0.2.9.tgz#658ea8c623e047bc924582d5a885434aed22ed41" +"@anycli/command@^0.2.19", "@anycli/command@^0.2.21": + version "0.2.21" + resolved "https://registry.yarnpkg.com/@anycli/command/-/command-0.2.21.tgz#68a725cddb0dece1d7dd69965de4ae7e3908b61c" dependencies: - "@anycli/parser" "^0.1.1" + "@anycli/parser" "^3.0.1" + cli-ux "^3.3.10" debug "^3.1.0" lodash "^4.17.4" tslib "^1.9.0" -"@anycli/config@^0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@anycli/config/-/config-0.2.1.tgz#d32fe5036cd194c34ca32ee6bc5e1a4b0ca3c86f" +"@anycli/config@^0.2.3", "@anycli/config@^0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@anycli/config/-/config-0.2.4.tgz#957e4f174cadd397d9bdd81d3552544a8214273e" 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/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" @@ -43,9 +44,9 @@ 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.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@anycli/parser/-/parser-3.0.1.tgz#24a2bca4abe1e1ffb91b0210b709b3ec15ee4ea4" dependencies: "@anycli/screen" "^0.0.3" chalk "^2.3.0" @@ -55,25 +56,33 @@ version "0.0.3" resolved "https://registry.yarnpkg.com/@anycli/screen/-/screen-0.0.3.tgz#f0afd970c3ed725702948a45a874ede1fdd9362e" -"@anycli/test@^0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@anycli/test/-/test-0.10.0.tgz#0861a7bf0cb063a42adb0f086cf984c14024ce46" +"@anycli/test@^0.10.1": + version "0.10.1" + resolved "https://registry.yarnpkg.com/@anycli/test/-/test-0.10.1.tgz#84c9ade6eac283b94e87175bf4b021766af26ab6" dependencies: fancy-test "^0.6.4" lodash "^4.17.4" -"@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" -"@commitlint/cli@^6.0.2": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-6.0.2.tgz#378d37e92c4d97346e84c3a3d6677a62e9471d66" +"@anycli/version@^0.1.19": + version "0.1.19" + resolved "https://registry.yarnpkg.com/@anycli/version/-/version-0.1.19.tgz#4464c3c831e0dc1d0ef92375167ec9af923b66c3" dependencies: - "@commitlint/core" "^6.0.2" + "@anycli/command" "^0.2.19" + "@anycli/config" "^0.2.3" + cli-ux "^3.3.10" + +"@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.5" babel-polyfill "6.26.0" chalk "2.3.0" get-stdin "5.0.1" @@ -81,24 +90,24 @@ 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" @@ -106,9 +115,9 @@ 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" @@ -116,32 +125,32 @@ 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" @@ -150,22 +159,22 @@ 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" @@ -200,13 +209,13 @@ dependencies: "@types/node" "*" -"@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/mocha@^2.2.47": - version "2.2.47" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.47.tgz#30bbd880834d4af0f609025f282a69b8d4458f06" +"@types/mocha@^2.2.48": + version "2.2.48" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.48.tgz#3523b126a0b049482e1c3c11877460f76622ffab" "@types/nock@^9.1.2": version "9.1.2" @@ -499,9 +508,9 @@ cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" -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" @@ -599,6 +608,10 @@ concurrently@^3.4.0: supports-color "^3.2.3" tree-kill "^1.1.0" +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: version "1.6.1" resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.1.tgz#e1434d017c854032b272f690424a8c0ca16dc318" @@ -626,13 +639,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: @@ -1186,6 +1199,17 @@ hosted-git-info@^2.1.4: version "2.5.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" +http-call@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/http-call/-/http-call-5.0.2.tgz#21bec3655f1631de128c0cdaa470777b1fbbc365" + 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" + husky@^0.14.3: version "0.14.3" resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3" @@ -1336,6 +1360,10 @@ is-resolvable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" +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" + is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -1792,12 +1820,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" @@ -2092,11 +2114,11 @@ rx@2.3.24: version "2.3.24" resolved "https://registry.yarnpkg.com/rx/-/rx-2.3.24.tgz#14f950a4217d7e35daa71bbcbe58eff68ea4b2b7" -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@^5.0.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" -"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" @@ -2104,10 +2126,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" @@ -2450,6 +2468,12 @@ tsutils@^2.12.1, tsutils@^2.12.2: dependencies: tslib "^1.8.1" +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -2464,9 +2488,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"