diff --git a/package.json b/package.json index 5d3fd8a..b66d989 100644 --- a/package.json +++ b/package.json @@ -6,11 +6,12 @@ "bugs": "https://github.com/heroku/cli-engine-config/issues", "dependencies": {}, "devDependencies": { - "@cli-engine/util": "^1.0.9", - "@heroku-cli/tslint": "^1.0.3", - "@types/jest": "22.0.0", + "@cli-engine/util": "^1.1.5", + "@heroku-cli/tslint": "^1.1.4", + "@types/jest": "22.0.1", "@types/mock-fs": "^3.6.30", - "@types/node": "8.5.2", + "@types/node": "9.3.0", + "@types/read-pkg": "^3.0.0", "@types/semver": "^5.4.0", "ajv-cli": "^2.1.0", "cli-flags": "2.0.7", @@ -19,7 +20,8 @@ "jest": "^22.0.4", "mock-fs": "^4.4.2", "prettier": "^1.9.2", - "ts-jest": "22.0.0", + "rxjs": "^5.5.6", + "ts-jest": "22.0.1", "tslib": "^1.8.1", "tslint": "^5.8.0", "typescript": "2.6.2" diff --git a/src/config.ts b/src/config.ts index a34c6f4..13405d2 100644 --- a/src/config.ts +++ b/src/config.ts @@ -2,11 +2,13 @@ import * as os from 'os' import * as path from 'path' import {deprecate, inspect} from 'util' +import {IEngine} from './engine' import * as Types from './types' export * from './types' export class Config { + readonly engine: IEngine _version = require('../package.json').version constructor (protected opts: Types.ConfigOptions = {}) { @@ -57,7 +59,7 @@ export class Config { name: 'cli-engine', version: '0.0.0', ...(this.opts.pjson || {}), - } + } as Types.ICLIPJSON } @memoize() diff --git a/src/engine.ts b/src/engine.ts new file mode 100644 index 0000000..eb68fe9 --- /dev/null +++ b/src/engine.ts @@ -0,0 +1,39 @@ +import { Observable } from 'rxjs/Observable' + +import { Hooks } from './hooks' +import { ICommand, IPlugin, ITopic } from './types' + +export interface IUserPluginInstallOpts { + type: 'user' + name: string + tag?: string +} +export interface ILinkPluginInstallOpts { + type: 'link' + root: string +} + +export interface IPluginManager { + readonly plugins: Observable + + install(opts: IUserPluginInstallOpts | ILinkPluginInstallOpts): Promise + uninstall(name: string): Promise + update(): Promise +} + +export interface IEngine extends ICommand { + readonly hooks: Hooks + readonly plugins: IPluginManager + + readonly topics: Promise + readonly commands: Promise + readonly commandIDs: Promise + readonly rootTopics: Promise + readonly rootCommands: Promise + + findCommand(id: string, must: true): Promise + findCommand(id: string, must?: boolean): Promise + + findTopic(id: string, must: true): Promise + findTopic(id: string, must?: boolean): Promise +} diff --git a/src/hooks.ts b/src/hooks.ts new file mode 100644 index 0000000..84f1700 --- /dev/null +++ b/src/hooks.ts @@ -0,0 +1,25 @@ +import Config from './config' +import { ICommand, IPluginModule, IPluginPJSON } from './types' + +export interface IHooks { + init: {} + update: {} + 'plugins:parse': { + module: IPluginModule + pjson: IPluginPJSON + } + prerun: { + Command: ICommand + argv: string[] + } +} + +export abstract class Hook { + protected readonly debug = require('debug')(`cli:hook:${this.options.event}`) + constructor(protected config: Config, protected options: IHooks[T] & { event: T }) {} + public abstract run(): Promise +} + +export interface Hooks { + run(event: T, options?: IHooks[T]): Promise +} diff --git a/src/types.ts b/src/types.ts index 20df345..524faa9 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,11 +1,35 @@ import { args, flags } from 'cli-flags' +import { Package } from 'read-pkg' import { Config } from './config' +export * from './hooks' +export * from './engine' + +export interface IPluginModuleTopic { + name: string + description?: string + subtopics?: { [k: string]: IPluginModuleTopic } + hidden?: boolean +} +export interface IPluginModule { + commands: ICommand[] + topic?: IPluginModuleTopic + topics: IPluginModuleTopic[] +} +export interface IPluginPJSON extends Package { + name: string + version: string + 'cli-engine': { + commands?: string + topics?: { [k: string]: ITopic } + } +} export interface ITopics { [name: string]: ITopic } export interface ITopic { + name: string description?: string hidden?: boolean subtopics?: ITopics @@ -30,7 +54,7 @@ export interface ICLI { userPluginsEnabled?: boolean } -export interface ICLIPJSON { +export interface ICLIPJSON extends Package { name: string version: string dependencies: { [name: string]: string } @@ -60,21 +84,13 @@ export interface IPlugin { } export interface ICommand { - topic?: string - command?: string - description?: string + id?: string hidden: boolean - usage?: string - help?: string - _version: string - id: string + base: '@cli-engine/command@1.0.0' aliases: string[] - buildHelp: (config: Config) => string - buildHelpLine: (config: Config) => [string, string | undefined] - args?: args.IArg[] - flags?: flags.Input + help: (config: Config) => string + helpLine: (config: Config) => [string, string | undefined] run: (argv: string[], config: Config) => Promise - plugin?: IPlugin } export type PlatformTypes = 'darwin' | 'linux' | 'win32' | 'aix' | 'freebsd' | 'openbsd' | 'sunos' diff --git a/yarn.lock b/yarn.lock index 6cb22d3..d64ecbc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,53 +10,63 @@ esutils "^2.0.2" js-tokens "^3.0.0" -"@cli-engine/command@^12.0.3": - version "12.0.3" - resolved "https://registry.yarnpkg.com/@cli-engine/command/-/command-12.0.3.tgz#4bf3c0a9d126ee6c412e26b3404a353c7db7401b" +"@cli-engine/command@^12.1.0": + version "12.1.0" + resolved "https://registry.yarnpkg.com/@cli-engine/command/-/command-12.1.0.tgz#86300ad3c7f51b1c539f9c7b998204f52016e0a7" dependencies: "@cli-engine/screen" "^0.0.0" chalk "^2.3.0" - cli-flags "^2.0.6" + cli-flags "^2.0.7" -"@cli-engine/config@^5.0.10": - version "5.0.10" - resolved "https://registry.yarnpkg.com/@cli-engine/config/-/config-5.0.10.tgz#f8420b9c4cd44e4feafeb90165d9557168bb484c" +"@cli-engine/config@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@cli-engine/config/-/config-5.1.0.tgz#d8ac7122317bc505dc09e7fd778777602d6b7568" -"@cli-engine/engine@^6.1.9": - version "6.1.9" - resolved "https://registry.yarnpkg.com/@cli-engine/engine/-/engine-6.1.9.tgz#9937edd007225a4f219fe8bab60673ead9340eb4" +"@cli-engine/engine@^6.1.30": + version "6.1.30" + resolved "https://registry.yarnpkg.com/@cli-engine/engine/-/engine-6.1.30.tgz#0a3f15bb6a68d3fe191dd42dba1ec8c4c86a6ecd" dependencies: - "@heroku-cli/color" "^1.0.4" + "@heroku-cli/color" "^1.1.1" assync "^1.0.4" - cli-ux "^2.0.17" + cli-ux "^2.0.21" + cross-spawn "^5.1.0" debug "^3.1.0" + filesize "^3.5.11" fs-extra "^5.0.0" + globby "^7.1.1" graceful-fs "^4.1.11" - http-call "^4.0.6" + http-call "^4.0.8" klaw "^2.1.1" log-chopper "^1.0.2" moment "^2.20.1" - rwlockfile "^1.4.12" + rwlockfile "^2.0.17" semver "5.4.1" string-similarity "^1.2.0" strip-ansi "4.0.0" - ts-lodash "4.0.8" + ts-lodash "4.0.9" + yarn "^1.3.2" "@cli-engine/screen@^0.0.0": version "0.0.0" resolved "https://registry.yarnpkg.com/@cli-engine/screen/-/screen-0.0.0.tgz#c2e847c7d4d998490c9097282bf21637d5162116" -"@cli-engine/util@^1.0.9": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@cli-engine/util/-/util-1.0.9.tgz#f97b94083a9700a7e6af1b4561afe0b87f9ed87e" +"@cli-engine/util@^1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@cli-engine/util/-/util-1.1.5.tgz#6bb79740d00bc234446a87cae371b2cede3bd0c3" dependencies: - "@cli-engine/command" "^12.0.3" - "@cli-engine/config" "^5.0.10" - "@cli-engine/engine" "^6.1.9" - cli-ux "^2.0.17" + "@cli-engine/command" "^12.1.0" + "@cli-engine/config" "^5.1.0" + "@cli-engine/engine" "^6.1.30" + "@heroku-cli/color" "^1.1.1" + cli-ux "^2.0.21" cross-spawn "^5.1.0" del "^3.0.0" + execa "^0.8.0" fs-extra "^5.0.0" + handlebars "^4.0.11" + jest-diff "^22.0.3" + read-pkg-up "^3.0.0" + ts-lodash "^4.0.10" tslib "^1.8.1" "@heroku-cli/color@^1.0.4": @@ -67,19 +77,29 @@ chalk "^2.3.0" supports-color "^5.1.0" -"@heroku-cli/tslint@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@heroku-cli/tslint/-/tslint-1.0.3.tgz#a7258f8a365ea2d0e9199b73328f913bf2656443" +"@heroku-cli/color@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@heroku-cli/color/-/color-1.1.1.tgz#a2c25239ff1196733a79cabc7a750cd46b96dc30" + dependencies: + ansi-styles "^3.2.0" + chalk "^2.3.0" + strip-ansi "^4.0.0" + supports-color "^5.1.0" + +"@heroku-cli/tslint@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@heroku-cli/tslint/-/tslint-1.1.4.tgz#32f75496df3e3ecd7e14716c4250302025c7840f" dependencies: + tslint "^5.8.0" tslint-config-prettier "*" "@heroku/linewrap@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@heroku/linewrap/-/linewrap-1.0.0.tgz#a9d4e99f0a3e423a899b775f5f3d6747a1ff15c6" -"@types/jest@22.0.0": - version "22.0.0" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-22.0.0.tgz#23009941178aad7979a9591e026f7a96054d7bc0" +"@types/jest@22.0.1": + version "22.0.1" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-22.0.1.tgz#6370a6d60cce3845e4cd5d00bf65f654264685bc" "@types/mock-fs@^3.6.30": version "3.6.30" @@ -87,10 +107,24 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@8.5.2": +"@types/node@*": version "8.5.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-8.5.2.tgz#83b8103fa9a2c2e83d78f701a9aa7c9539739aa5" +"@types/node@9.3.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-9.3.0.tgz#3a129cda7c4e5df2409702626892cb4b96546dd5" + +"@types/normalize-package-data@*": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + +"@types/read-pkg@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/read-pkg/-/read-pkg-3.0.0.tgz#17ab6f0b396a58a5567ee387f558f2caedc8ae53" + dependencies: + "@types/normalize-package-data" "*" + "@types/semver@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-5.4.0.tgz#f3658535af7f1f502acd6da7daf405ffeb1f7ee4" @@ -621,7 +655,7 @@ ci-info@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.2.tgz#03561259db48d0474c8bdc90f5b47b068b6bbfb4" -cli-flags@2.0.7: +cli-flags@2.0.7, cli-flags@^2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/cli-flags/-/cli-flags-2.0.7.tgz#215b3f8d911142c3e4833eaf7f2f96ab97fd22cf" dependencies: @@ -629,17 +663,9 @@ cli-flags@2.0.7: "@heroku/linewrap" "^1.0.0" ts-lodash "^4.0.8" -cli-flags@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/cli-flags/-/cli-flags-2.0.6.tgz#2fd0a355f22c3c829f8dc079a446b4b13f5d80a0" - dependencies: - "@cli-engine/screen" "^0.0.0" - "@heroku/linewrap" "^1.0.0" - ts-lodash "^4.0.8" - -cli-ux@^2.0.17: - version "2.0.17" - resolved "https://registry.yarnpkg.com/cli-ux/-/cli-ux-2.0.17.tgz#8e510cf169f6ad5ea70ca7a430d166a9b6b33ddf" +cli-ux@^2.0.21: + version "2.0.21" + resolved "https://registry.yarnpkg.com/cli-ux/-/cli-ux-2.0.21.tgz#a7231097af95356e79f5d6a380f04be889703083" dependencies: "@cli-engine/screen" "^0.0.0" "@heroku-cli/color" "^1.0.4" @@ -860,6 +886,13 @@ diff@^3.2.0: version "3.4.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c" +dir-glob@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" + dependencies: + arrify "^1.0.1" + path-type "^3.0.0" + domexception@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.0.tgz#81fe5df81b3f057052cde3a9fa9bf536a85b9ab0" @@ -884,7 +917,7 @@ editorconfig@^0.13.2: semver "^5.1.0" sigmund "^1.0.1" -error-ex@^1.2.0: +error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" dependencies: @@ -961,6 +994,18 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" @@ -1035,6 +1080,10 @@ fileset@^2.0.2: glob "^7.0.3" minimatch "^3.0.3" +filesize@^3.5.11: + version "3.5.11" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.11.tgz#1919326749433bb3cf77368bd158caabcc19e9ee" + fill-range@^2.1.0: version "2.2.3" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" @@ -1056,7 +1105,7 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" -find-up@^2.1.0: +find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" dependencies: @@ -1215,6 +1264,17 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" +globby@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" + dependencies: + array-union "^1.0.1" + dir-glob "^2.0.0" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -1223,7 +1283,7 @@ growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" -handlebars@^4.0.3: +handlebars@^4.0.11, handlebars@^4.0.3: version "4.0.11" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" dependencies: @@ -1322,9 +1382,9 @@ html-encoding-sniffer@^1.0.1: dependencies: whatwg-encoding "^1.0.1" -http-call@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/http-call/-/http-call-4.0.6.tgz#d6160b89736be792a94f125ea86dd61103903e91" +http-call@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/http-call/-/http-call-4.0.8.tgz#fd0207764958a3f1238bb3344ff912b32ddfa64a" dependencies: content-type "^1.0.4" debug "^3.1.0" @@ -1361,6 +1421,10 @@ iconv-lite@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" +ignore@^3.3.5: + version "3.3.7" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -1500,6 +1564,12 @@ is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" +is-process-active@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-process-active/-/is-process-active-1.0.1.tgz#63616541f447d84b71783cb2002360cf7e690b4f" + dependencies: + debug "^3.1.0" + is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" @@ -1910,6 +1980,10 @@ jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" +json-parse-better-errors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a" + json-schema-migrate@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/json-schema-migrate/-/json-schema-migrate-0.2.0.tgz#ba47a5b0072fc72396460e1bd60b44d52178bbc6" @@ -2010,6 +2084,15 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.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" + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -2342,6 +2425,13 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + parse5@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" @@ -2389,6 +2479,12 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^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" + performance-now@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" @@ -2499,6 +2595,13 @@ read-pkg-up@^1.0.1: find-up "^1.0.0" read-pkg "^1.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" + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -2507,6 +2610,14 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.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" + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4: version "2.3.3" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" @@ -2670,11 +2781,20 @@ rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1: dependencies: glob "^7.0.5" -rwlockfile@^1.4.12: - version "1.4.12" - resolved "https://registry.yarnpkg.com/rwlockfile/-/rwlockfile-1.4.12.tgz#40cef17c915207c4315c1f535a006e0d1556bcd8" +rwlockfile@^2.0.17: + version "2.0.19" + resolved "https://registry.yarnpkg.com/rwlockfile/-/rwlockfile-2.0.19.tgz#33c9b06521db6646548aca8d9cc754685ae6fa6e" dependencies: fs-extra "^5.0.0" + is-process-active "^1.0.1" + tslib "^1.8.1" + uuid "^3.1.0" + +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.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" @@ -2873,7 +2993,7 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: dependencies: ansi-regex "^2.0.0" -strip-bom@3.0.0: +strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -2923,6 +3043,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" + symbol-tree@^3.2.1: version "3.2.2" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" @@ -2986,9 +3110,9 @@ trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" -ts-jest@22.0.0: - version "22.0.0" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-22.0.0.tgz#cce1a5f1106150ca002d09f7e85913355ceb5e8d" +ts-jest@22.0.1: + version "22.0.1" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-22.0.1.tgz#48942936a466c2e76e259b02e2f1356f1839afc3" dependencies: babel-core "^6.24.1" babel-plugin-istanbul "^4.1.4" @@ -3001,7 +3125,19 @@ ts-jest@22.0.0: source-map-support "^0.5.0" yargs "^10.0.3" -ts-lodash@4.0.8, ts-lodash@^4.0.8: +ts-lodash@4.0.9: + version "4.0.9" + resolved "https://registry.yarnpkg.com/ts-lodash/-/ts-lodash-4.0.9.tgz#088d7ceefbf36c8c4bcdf28372249015ccafd429" + dependencies: + lodash "^4.17.4" + +ts-lodash@^4.0.10: + version "4.0.11" + resolved "https://registry.yarnpkg.com/ts-lodash/-/ts-lodash-4.0.11.tgz#f668e2ad4b6cb3bcbeceb894cf0a8cde48b3cd85" + dependencies: + lodash "^4.17.4" + +ts-lodash@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/ts-lodash/-/ts-lodash-4.0.8.tgz#4f424e687f9c89a3dcf1473779a251f134170f6a" dependencies: @@ -3240,3 +3376,7 @@ yargs@~3.10.0: cliui "^2.1.0" decamelize "^1.0.0" window-size "0.1.0" + +yarn@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.3.2.tgz#5939762581b5b4ddcd3418c0f6be42df3aee195f"