├── prettier.config.js ├── README.md ├── package.json ├── LICENSE ├── src ├── index.js └── ghch.js ├── .gitignore └── yarn.lock /prettier.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | singleQuote: true, 3 | semi: false, 4 | trailingComma: 'es5' 5 | } 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Github Clubhouse Importer 2 | 3 | ![Github Clubhouse Importer Demo](https://media.giphy.com/media/f5RDyNavjTGfUakbu9/giphy.gif) 4 | 5 | > Import your Github Issues into Clubhouse Stories 6 | 7 | ### Installation 8 | 9 | ```shell 10 | $ npm install -g @kimmel/github-clubhouse-importer 11 | ``` 12 | 13 | ### Usage 14 | 15 | ```shell 16 | $ ghch --help 17 | ``` 18 | 19 | **NOTE** The provided Github API Token must have Repository Scope access 20 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@kimmel/github-clubhouse-importer", 3 | "version": "0.2.0", 4 | "description": "Import Github Issues to Clubhouse", 5 | "repository": "https://github.com/kimmelsg/github-clubhouse-importer", 6 | "author": "Ryan Castner ", 7 | "license": "MIT", 8 | "bin": { 9 | "ghch": "src/index.js" 10 | }, 11 | "engines": { 12 | "node": ">=8.11" 13 | }, 14 | "keywords": [ 15 | "github", 16 | "clubhouse", 17 | "issue", 18 | "importer", 19 | "import", 20 | "story", 21 | "stories", 22 | "issues" 23 | ], 24 | "scripts": { 25 | "start": "node src/index" 26 | }, 27 | "dependencies": { 28 | "@octokit/rest": "^16.24.3", 29 | "chalk": "^2.4.2", 30 | "clubhouse-lib": "^0.5.0", 31 | "meow": "^5.0.0", 32 | "ora": "^3.4.0" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Kimmel 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | const meow = require('meow') 3 | const ghch = require('./ghch').default 4 | 5 | const cli = meow( 6 | ` 7 | Usage 8 | $ ghch 9 | 10 | Options 11 | --github-token= Github API Token, must have repository scope 12 | --clubhouse-token= Clubhouse API Token 13 | --github-url= Github repository owner/name, e.g. facebook/react 14 | --clubhouse-project= ID of Clubhouse Project to import issues into 15 | --state= Github issue state to import 16 | 17 | Examples 18 | $ ghch --state=open --github-url=facebook/react --clubhouse-project=4 --github-token=xxx --clubhouse-token=xxx 19 | `, 20 | { 21 | flags: { 22 | githubToken: { 23 | type: 'string', 24 | }, 25 | clubhouseToken: { 26 | type: 'string', 27 | }, 28 | githubUrl: { 29 | type: 'string', 30 | }, 31 | clubhouseProject: { 32 | type: 'string', 33 | }, 34 | state: { 35 | type: 'string', 36 | default: 'open', 37 | }, 38 | }, 39 | } 40 | ) 41 | 42 | ghch(cli.flags) 43 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (https://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # TypeScript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | # next.js build output 61 | .next 62 | *ascii.cast 63 | -------------------------------------------------------------------------------- /src/ghch.js: -------------------------------------------------------------------------------- 1 | const { Octokit } = require('@octokit/rest') 2 | const Clubhouse = require('clubhouse-lib') 3 | const ora = require('ora') 4 | const chalk = require('chalk') 5 | 6 | const log = console.log 7 | 8 | const githubClubhouseImport = options => { 9 | validateOptions(options) 10 | const octokit = new Octokit({ 11 | auth: options.githubToken, 12 | }) 13 | 14 | const [owner, repo] = options.githubUrl.split('/') 15 | 16 | function fetchGithubIssues() { 17 | const octokitOptions = octokit.issues.listForRepo.endpoint.merge({ 18 | owner, 19 | repo, 20 | per_page: 100, 21 | state: options.state, 22 | }) 23 | return octokit 24 | .paginate(octokitOptions) 25 | .then(data => { 26 | const issues = data.filter(issue => !issue.pull_request) 27 | return issues 28 | }) 29 | .catch(err => { 30 | spinner.fail( 31 | `Failed to fetch issues from ${chalk.underline(options.githubUrl)}\n` 32 | ) 33 | log(chalk.red(err)) 34 | }) 35 | } 36 | 37 | function importIssuesToClubhouse(issues) { 38 | const clubhouse = Clubhouse.create(options.clubhouseToken) 39 | return clubhouse 40 | .getProject(options.clubhouseProject) 41 | .then(project => { 42 | let issuesImported = 0 43 | return Promise.all( 44 | issues.map(({ created_at, updated_at, labels, title, body, html_url, number }) => { 45 | const story_type = getStoryType(labels) 46 | return reflect( 47 | clubhouse 48 | .createStory({ 49 | created_at, 50 | updated_at, 51 | story_type, 52 | name: title, 53 | description: body, 54 | external_id: html_url, 55 | project_id: project.id, 56 | }) 57 | .then(() => (issuesImported = issuesImported + 1)) 58 | .catch(() => { 59 | log(chalk.red(`Failed to import issue #${number}`)) 60 | }) 61 | ) 62 | }) 63 | ).then(() => { 64 | return issuesImported 65 | }) 66 | }) 67 | .catch(() => { 68 | log( 69 | chalk.red( 70 | `Clubhouse Project ID ${ 71 | options.clubhouseProject 72 | } could not be found` 73 | ) 74 | ) 75 | }) 76 | } 77 | 78 | const githubSpinner = ora('Retrieving issues from Github').start() 79 | fetchGithubIssues().then(issues => { 80 | githubSpinner.succeed( 81 | `Retrieved ${chalk.bold(issues.length)} issues from Github` 82 | ) 83 | const clubhouseSpinner = ora('Importing issues into Clubhouse').start() 84 | importIssuesToClubhouse(issues).then(issuesImported => { 85 | clubhouseSpinner.succeed( 86 | `Imported ${chalk.bold(issuesImported)} issues into Clubhouse` 87 | ) 88 | }) 89 | }) 90 | } 91 | 92 | const validateOptions = options => { 93 | let hasError = false 94 | if (!options.githubToken) { 95 | hasError = true 96 | log(chalk.red(`Usage: ${chalk.bold('--github-token')} arg is required`)) 97 | } 98 | 99 | if (!options.clubhouseToken) { 100 | hasError = true 101 | log(chalk.red(`Usage: ${chalk.bold('--clubhouse-token')} arg is required`)) 102 | } 103 | 104 | if (!options.clubhouseProject) { 105 | hasError = true 106 | log( 107 | chalk.red(`Usage: ${chalk.bold('--clubhouse-project')} arg is required`) 108 | ) 109 | } 110 | 111 | if (!options.githubUrl) { 112 | hasError = true 113 | log(chalk.red(`Usage: ${chalk.bold('--github-url')} arg is required`)) 114 | } 115 | 116 | if (!['open', 'closed', 'all'].includes(options.state.toLowerCase())) { 117 | hasError = true 118 | log( 119 | chalk.red( 120 | `Usage: ${chalk.bold('--state')} must be one of open | closed | all` 121 | ) 122 | ) 123 | } 124 | 125 | if (hasError) { 126 | log() 127 | process.exit(1) 128 | } 129 | } 130 | 131 | function getStoryType(labels) { 132 | if (labels.find(label => label.name.includes('bug'))) return 'bug' 133 | if (labels.find(label => label.name.includes('chore'))) return 'chore' 134 | return 'feature' 135 | } 136 | 137 | const reflect = p => 138 | p.then(v => ({ v, status: 'fulfilled' }), e => ({ e, status: 'rejected' })) 139 | 140 | module.exports.default = githubClubhouseImport 141 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@octokit/endpoint@^4.0.0": 6 | version "4.0.0" 7 | resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-4.0.0.tgz#97032a6690ef1cf9576ab1b1582c0ac837e3b5b6" 8 | integrity sha512-b8sptNUekjREtCTJFpOfSIL4SKh65WaakcyxWzRcSPOk5RxkZJ/S8884NGZFxZ+jCB2rDURU66pSHn14cVgWVg== 9 | dependencies: 10 | deepmerge "3.2.0" 11 | is-plain-object "^2.0.4" 12 | universal-user-agent "^2.0.1" 13 | url-template "^2.0.8" 14 | 15 | "@octokit/request@3.0.0": 16 | version "3.0.0" 17 | resolved "https://registry.yarnpkg.com/@octokit/request/-/request-3.0.0.tgz#304a279036b2dc89e7fba7cb30c9e6a9b1f4d2df" 18 | integrity sha512-DZqmbm66tq+a9FtcKrn0sjrUpi0UaZ9QPUCxxyk/4CJ2rseTMpAWRf6gCwOSUCzZcx/4XVIsDk+kz5BVdaeenA== 19 | dependencies: 20 | "@octokit/endpoint" "^4.0.0" 21 | deprecation "^1.0.1" 22 | is-plain-object "^2.0.4" 23 | node-fetch "^2.3.0" 24 | once "^1.4.0" 25 | universal-user-agent "^2.0.1" 26 | 27 | "@octokit/rest@^16.24.3": 28 | version "16.24.3" 29 | resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.24.3.tgz#5f844be604826b352d9683a133839341db2bed23" 30 | integrity sha512-fBr2ziN4WT9G9sYTfnNVI/0wCb68ZI5isNU48lfWXQDyAy4ftlrh0SkIbhL7aigXUjcY0cX5J46ypyRPH0/U0g== 31 | dependencies: 32 | "@octokit/request" "3.0.0" 33 | atob-lite "^2.0.0" 34 | before-after-hook "^1.4.0" 35 | btoa-lite "^1.0.0" 36 | deprecation "^1.0.1" 37 | lodash.get "^4.4.2" 38 | lodash.set "^4.3.2" 39 | lodash.uniq "^4.5.0" 40 | octokit-pagination-methods "^1.1.0" 41 | once "^1.4.0" 42 | universal-user-agent "^2.0.0" 43 | url-template "^2.0.8" 44 | 45 | ansi-regex@^4.1.0: 46 | version "4.1.0" 47 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 48 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== 49 | 50 | ansi-styles@^3.2.1: 51 | version "3.2.1" 52 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 53 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 54 | dependencies: 55 | color-convert "^1.9.0" 56 | 57 | array-find-index@^1.0.1: 58 | version "1.0.2" 59 | resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" 60 | integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= 61 | 62 | arrify@^1.0.1: 63 | version "1.0.1" 64 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 65 | integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= 66 | 67 | atob-lite@^2.0.0: 68 | version "2.0.0" 69 | resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" 70 | integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY= 71 | 72 | before-after-hook@^1.4.0: 73 | version "1.4.0" 74 | resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-1.4.0.tgz#2b6bf23dca4f32e628fd2747c10a37c74a4b484d" 75 | integrity sha512-l5r9ir56nda3qu14nAXIlyq1MmUSs0meCIaFAh8HwkFwP1F8eToOuS3ah2VAHHcY04jaYD7FpJC5JTXHYRbkzg== 76 | 77 | btoa-lite@^1.0.0: 78 | version "1.0.0" 79 | resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" 80 | integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= 81 | 82 | camelcase-keys@^4.0.0: 83 | version "4.2.0" 84 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" 85 | integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= 86 | dependencies: 87 | camelcase "^4.1.0" 88 | map-obj "^2.0.0" 89 | quick-lru "^1.0.0" 90 | 91 | camelcase@^4.1.0: 92 | version "4.1.0" 93 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 94 | integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= 95 | 96 | chalk@^2.0.1, chalk@^2.4.2: 97 | version "2.4.2" 98 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 99 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 100 | dependencies: 101 | ansi-styles "^3.2.1" 102 | escape-string-regexp "^1.0.5" 103 | supports-color "^5.3.0" 104 | 105 | cli-cursor@^2.1.0: 106 | version "2.1.0" 107 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 108 | integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= 109 | dependencies: 110 | restore-cursor "^2.0.0" 111 | 112 | cli-spinners@^2.0.0: 113 | version "2.1.0" 114 | resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.1.0.tgz#22c34b4d51f573240885b201efda4e4ec9fff3c7" 115 | integrity sha512-8B00fJOEh1HPrx4fo5eW16XmE1PcL1tGpGrxy63CXGP9nHdPBN63X75hA1zhvQuhVztJWLqV58Roj2qlNM7cAA== 116 | 117 | clone@^1.0.2: 118 | version "1.0.4" 119 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" 120 | integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= 121 | 122 | clubhouse-lib@^0.5.0: 123 | version "0.5.0" 124 | resolved "https://registry.yarnpkg.com/clubhouse-lib/-/clubhouse-lib-0.5.0.tgz#d23b86a98312546f39375290711dd4347a20e123" 125 | integrity sha512-r2EnSG2E2CcVN4oBbLMZpJNDVJHD1MVzyE23mP2rf+509UYqwFjKWv7+j8WjXDAKJTQmF7f4wmJoT/N0HjuMOA== 126 | dependencies: 127 | fetch-everywhere "^1.0.5" 128 | query-string "^6.2.0" 129 | universal-url "^2.0.0" 130 | 131 | color-convert@^1.9.0: 132 | version "1.9.3" 133 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 134 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 135 | dependencies: 136 | color-name "1.1.3" 137 | 138 | color-name@1.1.3: 139 | version "1.1.3" 140 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 141 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 142 | 143 | cross-spawn@^6.0.0: 144 | version "6.0.5" 145 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 146 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 147 | dependencies: 148 | nice-try "^1.0.4" 149 | path-key "^2.0.1" 150 | semver "^5.5.0" 151 | shebang-command "^1.2.0" 152 | which "^1.2.9" 153 | 154 | currently-unhandled@^0.4.1: 155 | version "0.4.1" 156 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" 157 | integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= 158 | dependencies: 159 | array-find-index "^1.0.1" 160 | 161 | decamelize-keys@^1.0.0: 162 | version "1.1.0" 163 | resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" 164 | integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= 165 | dependencies: 166 | decamelize "^1.1.0" 167 | map-obj "^1.0.0" 168 | 169 | decamelize@^1.1.0: 170 | version "1.2.0" 171 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 172 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 173 | 174 | decode-uri-component@^0.2.0: 175 | version "0.2.0" 176 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" 177 | integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= 178 | 179 | deepmerge@3.2.0: 180 | version "3.2.0" 181 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.2.0.tgz#58ef463a57c08d376547f8869fdc5bcee957f44e" 182 | integrity sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow== 183 | 184 | defaults@^1.0.3: 185 | version "1.0.3" 186 | resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" 187 | integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= 188 | dependencies: 189 | clone "^1.0.2" 190 | 191 | deprecation@^1.0.1: 192 | version "1.0.1" 193 | resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-1.0.1.tgz#2df79b79005752180816b7b6e079cbd80490d711" 194 | integrity sha512-ccVHpE72+tcIKaGMql33x5MAjKQIZrk+3x2GbJ7TeraUCZWHoT+KSZpoC+JQFsUBlSTXUrBaGiF0j6zVTepPLg== 195 | 196 | encoding@^0.1.11: 197 | version "0.1.12" 198 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 199 | integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= 200 | dependencies: 201 | iconv-lite "~0.4.13" 202 | 203 | end-of-stream@^1.1.0: 204 | version "1.4.1" 205 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" 206 | integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== 207 | dependencies: 208 | once "^1.4.0" 209 | 210 | error-ex@^1.3.1: 211 | version "1.3.2" 212 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 213 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 214 | dependencies: 215 | is-arrayish "^0.2.1" 216 | 217 | escape-string-regexp@^1.0.5: 218 | version "1.0.5" 219 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 220 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 221 | 222 | execa@^1.0.0: 223 | version "1.0.0" 224 | resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" 225 | integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== 226 | dependencies: 227 | cross-spawn "^6.0.0" 228 | get-stream "^4.0.0" 229 | is-stream "^1.1.0" 230 | npm-run-path "^2.0.0" 231 | p-finally "^1.0.0" 232 | signal-exit "^3.0.0" 233 | strip-eof "^1.0.0" 234 | 235 | fetch-everywhere@^1.0.5: 236 | version "1.0.5" 237 | resolved "https://registry.yarnpkg.com/fetch-everywhere/-/fetch-everywhere-1.0.5.tgz#b2497f47a57d9026b3907c09756acf5f4bd34e8b" 238 | integrity sha1-skl/R6V9kCazkHwJdWrPX0vTTos= 239 | dependencies: 240 | node-fetch "^1.0.1" 241 | whatwg-fetch ">=0.10.0" 242 | 243 | find-up@^2.0.0: 244 | version "2.1.0" 245 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 246 | integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= 247 | dependencies: 248 | locate-path "^2.0.0" 249 | 250 | get-stream@^4.0.0: 251 | version "4.1.0" 252 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" 253 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 254 | dependencies: 255 | pump "^3.0.0" 256 | 257 | graceful-fs@^4.1.2: 258 | version "4.1.15" 259 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" 260 | integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== 261 | 262 | has-flag@^3.0.0: 263 | version "3.0.0" 264 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 265 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 266 | 267 | hasurl@^1.0.0: 268 | version "1.0.0" 269 | resolved "https://registry.yarnpkg.com/hasurl/-/hasurl-1.0.0.tgz#e4c619097ae1e8fc906bee904ce47e94f5e1ea37" 270 | integrity sha512-43ypUd3DbwyCT01UYpA99AEZxZ4aKtRxWGBHEIbjcOsUghd9YUON0C+JF6isNjaiwC/UF5neaUudy6JS9jZPZQ== 271 | 272 | hosted-git-info@^2.1.4: 273 | version "2.7.1" 274 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" 275 | integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== 276 | 277 | iconv-lite@~0.4.13: 278 | version "0.4.24" 279 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 280 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 281 | dependencies: 282 | safer-buffer ">= 2.1.2 < 3" 283 | 284 | indent-string@^3.0.0: 285 | version "3.2.0" 286 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" 287 | integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= 288 | 289 | is-arrayish@^0.2.1: 290 | version "0.2.1" 291 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 292 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 293 | 294 | is-plain-obj@^1.1.0: 295 | version "1.1.0" 296 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" 297 | integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= 298 | 299 | is-plain-object@^2.0.4: 300 | version "2.0.4" 301 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 302 | integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== 303 | dependencies: 304 | isobject "^3.0.1" 305 | 306 | is-stream@^1.0.1, is-stream@^1.1.0: 307 | version "1.1.0" 308 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 309 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 310 | 311 | isexe@^2.0.0: 312 | version "2.0.0" 313 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 314 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 315 | 316 | isobject@^3.0.1: 317 | version "3.0.1" 318 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 319 | integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= 320 | 321 | json-parse-better-errors@^1.0.1: 322 | version "1.0.2" 323 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 324 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 325 | 326 | load-json-file@^4.0.0: 327 | version "4.0.0" 328 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" 329 | integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= 330 | dependencies: 331 | graceful-fs "^4.1.2" 332 | parse-json "^4.0.0" 333 | pify "^3.0.0" 334 | strip-bom "^3.0.0" 335 | 336 | locate-path@^2.0.0: 337 | version "2.0.0" 338 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 339 | integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= 340 | dependencies: 341 | p-locate "^2.0.0" 342 | path-exists "^3.0.0" 343 | 344 | lodash.get@^4.4.2: 345 | version "4.4.2" 346 | resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" 347 | integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= 348 | 349 | lodash.set@^4.3.2: 350 | version "4.3.2" 351 | resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" 352 | integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM= 353 | 354 | lodash.sortby@^4.7.0: 355 | version "4.7.0" 356 | resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" 357 | integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= 358 | 359 | lodash.uniq@^4.5.0: 360 | version "4.5.0" 361 | resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" 362 | integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= 363 | 364 | log-symbols@^2.2.0: 365 | version "2.2.0" 366 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" 367 | integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== 368 | dependencies: 369 | chalk "^2.0.1" 370 | 371 | loud-rejection@^1.0.0: 372 | version "1.6.0" 373 | resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" 374 | integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= 375 | dependencies: 376 | currently-unhandled "^0.4.1" 377 | signal-exit "^3.0.0" 378 | 379 | macos-release@^2.2.0: 380 | version "2.2.0" 381 | resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.2.0.tgz#ab58d55dd4714f0a05ad4b0e90f4370fef5cdea8" 382 | integrity sha512-iV2IDxZaX8dIcM7fG6cI46uNmHUxHE4yN+Z8tKHAW1TBPMZDIKHf/3L+YnOuj/FK9il14UaVdHmiQ1tsi90ltA== 383 | 384 | map-obj@^1.0.0: 385 | version "1.0.1" 386 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" 387 | integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= 388 | 389 | map-obj@^2.0.0: 390 | version "2.0.0" 391 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" 392 | integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= 393 | 394 | meow@^5.0.0: 395 | version "5.0.0" 396 | resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" 397 | integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== 398 | dependencies: 399 | camelcase-keys "^4.0.0" 400 | decamelize-keys "^1.0.0" 401 | loud-rejection "^1.0.0" 402 | minimist-options "^3.0.1" 403 | normalize-package-data "^2.3.4" 404 | read-pkg-up "^3.0.0" 405 | redent "^2.0.0" 406 | trim-newlines "^2.0.0" 407 | yargs-parser "^10.0.0" 408 | 409 | mimic-fn@^1.0.0: 410 | version "1.2.0" 411 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 412 | integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== 413 | 414 | minimist-options@^3.0.1: 415 | version "3.0.2" 416 | resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" 417 | integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== 418 | dependencies: 419 | arrify "^1.0.1" 420 | is-plain-obj "^1.1.0" 421 | 422 | nice-try@^1.0.4: 423 | version "1.0.5" 424 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 425 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 426 | 427 | node-fetch@^1.0.1: 428 | version "1.7.3" 429 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" 430 | integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== 431 | dependencies: 432 | encoding "^0.1.11" 433 | is-stream "^1.0.1" 434 | 435 | node-fetch@^2.3.0: 436 | version "2.3.0" 437 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5" 438 | integrity sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA== 439 | 440 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: 441 | version "2.5.0" 442 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 443 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 444 | dependencies: 445 | hosted-git-info "^2.1.4" 446 | resolve "^1.10.0" 447 | semver "2 || 3 || 4 || 5" 448 | validate-npm-package-license "^3.0.1" 449 | 450 | npm-run-path@^2.0.0: 451 | version "2.0.2" 452 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 453 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 454 | dependencies: 455 | path-key "^2.0.0" 456 | 457 | octokit-pagination-methods@^1.1.0: 458 | version "1.1.0" 459 | resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" 460 | integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== 461 | 462 | once@^1.3.1, once@^1.4.0: 463 | version "1.4.0" 464 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 465 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 466 | dependencies: 467 | wrappy "1" 468 | 469 | onetime@^2.0.0: 470 | version "2.0.1" 471 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 472 | integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= 473 | dependencies: 474 | mimic-fn "^1.0.0" 475 | 476 | ora@^3.4.0: 477 | version "3.4.0" 478 | resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" 479 | integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== 480 | dependencies: 481 | chalk "^2.4.2" 482 | cli-cursor "^2.1.0" 483 | cli-spinners "^2.0.0" 484 | log-symbols "^2.2.0" 485 | strip-ansi "^5.2.0" 486 | wcwidth "^1.0.1" 487 | 488 | os-name@^3.0.0: 489 | version "3.1.0" 490 | resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" 491 | integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== 492 | dependencies: 493 | macos-release "^2.2.0" 494 | windows-release "^3.1.0" 495 | 496 | p-finally@^1.0.0: 497 | version "1.0.0" 498 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 499 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 500 | 501 | p-limit@^1.1.0: 502 | version "1.3.0" 503 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 504 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== 505 | dependencies: 506 | p-try "^1.0.0" 507 | 508 | p-locate@^2.0.0: 509 | version "2.0.0" 510 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 511 | integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= 512 | dependencies: 513 | p-limit "^1.1.0" 514 | 515 | p-try@^1.0.0: 516 | version "1.0.0" 517 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 518 | integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= 519 | 520 | parse-json@^4.0.0: 521 | version "4.0.0" 522 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" 523 | integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= 524 | dependencies: 525 | error-ex "^1.3.1" 526 | json-parse-better-errors "^1.0.1" 527 | 528 | path-exists@^3.0.0: 529 | version "3.0.0" 530 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 531 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 532 | 533 | path-key@^2.0.0, path-key@^2.0.1: 534 | version "2.0.1" 535 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 536 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 537 | 538 | path-parse@^1.0.6: 539 | version "1.0.6" 540 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 541 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 542 | 543 | path-type@^3.0.0: 544 | version "3.0.0" 545 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" 546 | integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== 547 | dependencies: 548 | pify "^3.0.0" 549 | 550 | pify@^3.0.0: 551 | version "3.0.0" 552 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 553 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= 554 | 555 | pump@^3.0.0: 556 | version "3.0.0" 557 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 558 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 559 | dependencies: 560 | end-of-stream "^1.1.0" 561 | once "^1.3.1" 562 | 563 | punycode@^2.1.0: 564 | version "2.1.1" 565 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 566 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 567 | 568 | query-string@^6.2.0: 569 | version "6.4.2" 570 | resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.4.2.tgz#8be1dbd105306aebf86022144f575a29d516b713" 571 | integrity sha512-DfJqAen17LfLA3rQ+H5S4uXphrF+ANU1lT2ijds4V/Tj4gZxA3gx5/tg1bz7kYCmwna7LyJNCYqO7jNRzo3aLw== 572 | dependencies: 573 | decode-uri-component "^0.2.0" 574 | split-on-first "^1.0.0" 575 | strict-uri-encode "^2.0.0" 576 | 577 | quick-lru@^1.0.0: 578 | version "1.1.0" 579 | resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" 580 | integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= 581 | 582 | read-pkg-up@^3.0.0: 583 | version "3.0.0" 584 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" 585 | integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= 586 | dependencies: 587 | find-up "^2.0.0" 588 | read-pkg "^3.0.0" 589 | 590 | read-pkg@^3.0.0: 591 | version "3.0.0" 592 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" 593 | integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= 594 | dependencies: 595 | load-json-file "^4.0.0" 596 | normalize-package-data "^2.3.2" 597 | path-type "^3.0.0" 598 | 599 | redent@^2.0.0: 600 | version "2.0.0" 601 | resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" 602 | integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= 603 | dependencies: 604 | indent-string "^3.0.0" 605 | strip-indent "^2.0.0" 606 | 607 | resolve@^1.10.0: 608 | version "1.10.0" 609 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" 610 | integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== 611 | dependencies: 612 | path-parse "^1.0.6" 613 | 614 | restore-cursor@^2.0.0: 615 | version "2.0.0" 616 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 617 | integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= 618 | dependencies: 619 | onetime "^2.0.0" 620 | signal-exit "^3.0.2" 621 | 622 | "safer-buffer@>= 2.1.2 < 3": 623 | version "2.1.2" 624 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 625 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 626 | 627 | "semver@2 || 3 || 4 || 5", semver@^5.5.0: 628 | version "5.7.0" 629 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" 630 | integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== 631 | 632 | shebang-command@^1.2.0: 633 | version "1.2.0" 634 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 635 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 636 | dependencies: 637 | shebang-regex "^1.0.0" 638 | 639 | shebang-regex@^1.0.0: 640 | version "1.0.0" 641 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 642 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 643 | 644 | signal-exit@^3.0.0, signal-exit@^3.0.2: 645 | version "3.0.2" 646 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 647 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 648 | 649 | spdx-correct@^3.0.0: 650 | version "3.1.0" 651 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" 652 | integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== 653 | dependencies: 654 | spdx-expression-parse "^3.0.0" 655 | spdx-license-ids "^3.0.0" 656 | 657 | spdx-exceptions@^2.1.0: 658 | version "2.2.0" 659 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" 660 | integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== 661 | 662 | spdx-expression-parse@^3.0.0: 663 | version "3.0.0" 664 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" 665 | integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== 666 | dependencies: 667 | spdx-exceptions "^2.1.0" 668 | spdx-license-ids "^3.0.0" 669 | 670 | spdx-license-ids@^3.0.0: 671 | version "3.0.4" 672 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" 673 | integrity sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA== 674 | 675 | split-on-first@^1.0.0: 676 | version "1.0.0" 677 | resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.0.0.tgz#648af4ce9a28fbcaadd43274455f298b55025fc6" 678 | integrity sha512-mjA57TQtdWztVZ9THAjGNpgbuIrNfsNrGa5IyK94NoPaT4N14M+GI4jD7t4arLjFkYRQWdETC5RxFzLWouoB3A== 679 | 680 | strict-uri-encode@^2.0.0: 681 | version "2.0.0" 682 | resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" 683 | integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= 684 | 685 | strip-ansi@^5.2.0: 686 | version "5.2.0" 687 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 688 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 689 | dependencies: 690 | ansi-regex "^4.1.0" 691 | 692 | strip-bom@^3.0.0: 693 | version "3.0.0" 694 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 695 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 696 | 697 | strip-eof@^1.0.0: 698 | version "1.0.0" 699 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 700 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 701 | 702 | strip-indent@^2.0.0: 703 | version "2.0.0" 704 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" 705 | integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= 706 | 707 | supports-color@^5.3.0: 708 | version "5.5.0" 709 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 710 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 711 | dependencies: 712 | has-flag "^3.0.0" 713 | 714 | tr46@^1.0.1: 715 | version "1.0.1" 716 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" 717 | integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= 718 | dependencies: 719 | punycode "^2.1.0" 720 | 721 | trim-newlines@^2.0.0: 722 | version "2.0.0" 723 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" 724 | integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= 725 | 726 | universal-url@^2.0.0: 727 | version "2.0.0" 728 | resolved "https://registry.yarnpkg.com/universal-url/-/universal-url-2.0.0.tgz#35e7fc2c3374804905cee67ea289ed3a47669809" 729 | integrity sha512-3DLtXdm/G1LQMCnPj+Aw7uDoleQttNHp2g5FnNQKR6cP6taNWS1b/Ehjjx4PVyvejKi3TJyu8iBraKM4q3JQPg== 730 | dependencies: 731 | hasurl "^1.0.0" 732 | whatwg-url "^7.0.0" 733 | 734 | universal-user-agent@^2.0.0, universal-user-agent@^2.0.1: 735 | version "2.0.3" 736 | resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-2.0.3.tgz#9f6f09f9cc33de867bb720d84c08069b14937c6c" 737 | integrity sha512-eRHEHhChCBHrZsA4WEhdgiOKgdvgrMIHwnwnqD0r5C6AO8kwKcG7qSku3iXdhvHL3YvsS9ZkSGN8h/hIpoFC8g== 738 | dependencies: 739 | os-name "^3.0.0" 740 | 741 | url-template@^2.0.8: 742 | version "2.0.8" 743 | resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" 744 | integrity sha1-/FZaPMy/93MMd19WQflVV5FDnyE= 745 | 746 | validate-npm-package-license@^3.0.1: 747 | version "3.0.4" 748 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 749 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 750 | dependencies: 751 | spdx-correct "^3.0.0" 752 | spdx-expression-parse "^3.0.0" 753 | 754 | wcwidth@^1.0.1: 755 | version "1.0.1" 756 | resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" 757 | integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= 758 | dependencies: 759 | defaults "^1.0.3" 760 | 761 | webidl-conversions@^4.0.2: 762 | version "4.0.2" 763 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" 764 | integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== 765 | 766 | whatwg-fetch@>=0.10.0: 767 | version "3.0.0" 768 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" 769 | integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== 770 | 771 | whatwg-url@^7.0.0: 772 | version "7.0.0" 773 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" 774 | integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ== 775 | dependencies: 776 | lodash.sortby "^4.7.0" 777 | tr46 "^1.0.1" 778 | webidl-conversions "^4.0.2" 779 | 780 | which@^1.2.9: 781 | version "1.3.1" 782 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 783 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 784 | dependencies: 785 | isexe "^2.0.0" 786 | 787 | windows-release@^3.1.0: 788 | version "3.2.0" 789 | resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.2.0.tgz#8122dad5afc303d833422380680a79cdfa91785f" 790 | integrity sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA== 791 | dependencies: 792 | execa "^1.0.0" 793 | 794 | wrappy@1: 795 | version "1.0.2" 796 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 797 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 798 | 799 | yargs-parser@^10.0.0: 800 | version "10.1.0" 801 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" 802 | integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== 803 | dependencies: 804 | camelcase "^4.1.0" 805 | --------------------------------------------------------------------------------