├── .gitignore ├── README.md ├── index.js ├── lazinit.gif ├── lib ├── files.js ├── github.js ├── inquirer.js └── repo.js ├── package-lock.json └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | node_modules -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # lazinit 2 | Command Line Interface for initializing a GitHub repository 3 | 4 | ![Lazinit](https://github.com/ebrugulec/lazinit/blob/master/lazinit.gif) 5 | 6 | ## Installation 7 | 8 | * `git clone git@github.com:ebrugulec/lazinit.git` 9 | * `cd lazinit` 10 | * `npm install` 11 | * `npm install -g` 12 | * `$ lazinit` 13 | 14 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const chalk = require('chalk'); 4 | const clear = require('clear'); 5 | const figlet = require('figlet'); 6 | 7 | const files = require('./lib/files'); 8 | const github = require('./lib/github'); 9 | const repo = require('./lib/repo'); 10 | 11 | clear(); 12 | 13 | console.log( 14 | chalk.yellow( 15 | figlet.textSync('LAZINIT', { horizontalLayout: 'full' }) 16 | ) 17 | ); 18 | 19 | if (files.directoryExists('.git')) { 20 | console.log(chalk.red('Already a Git repository!')); 21 | process.exit(); 22 | } 23 | 24 | const getGithubToken = async () => { 25 | let token = github.getStoredGithubToken(); 26 | if(token) { 27 | return token; 28 | } 29 | 30 | await github.setGithubCredentials(); 31 | 32 | token = await github.registerNewToken(); 33 | return token; 34 | }; 35 | 36 | const run = async () => { 37 | try { 38 | const token = await getGithubToken(); 39 | github.githubAuth(token); 40 | 41 | const url = await repo.createRemoteRepo(); 42 | 43 | await repo.createGitignore(); 44 | 45 | await repo.setupRepo(url); 46 | console.log(chalk.green('All done!')); 47 | } catch(err) { 48 | if (err) { 49 | switch (err.status) { 50 | case 401: 51 | console.log(chalk.red('Couldn\'t log you in. Please provide correct credentials/token.')); 52 | break; 53 | case 422: 54 | console.log(chalk.red('There already exists a remote repository with the same name')); 55 | break; 56 | default: 57 | console.log(err); 58 | } 59 | } 60 | } 61 | }; 62 | 63 | run(); -------------------------------------------------------------------------------- /lazinit.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebrugulec/lazinit/5f216837eb9369e818b0b10c3539da058b023c99/lazinit.gif -------------------------------------------------------------------------------- /lib/files.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | 4 | module.exports = { 5 | getCurrentDirectoryBase: () => { 6 | return path.basename(process.cwd()); 7 | }, 8 | 9 | directoryExists: (filePath) => { 10 | return fs.existsSync(filePath); 11 | } 12 | }; -------------------------------------------------------------------------------- /lib/github.js: -------------------------------------------------------------------------------- 1 | const CLI = require('clui'); 2 | const Configstore = require('configstore'); 3 | const Octokit = require('@octokit/rest'); 4 | const Spinner = CLI.Spinner; 5 | 6 | const inquirer = require('./inquirer'); 7 | const pkg = require('../package.json'); 8 | 9 | const conf = new Configstore(pkg.name); 10 | 11 | let octokit; 12 | 13 | module.exports = { 14 | getInstance: () => { 15 | return octokit; 16 | }, 17 | 18 | githubAuth: (token) => { 19 | octokit = new Octokit({ 20 | auth: token 21 | }); 22 | }, 23 | 24 | getStoredGithubToken: () => { 25 | return conf.get('github.token'); 26 | }, 27 | 28 | setGithubCredentials: async () => { 29 | const credentials = await inquirer.askGithubCredentials(); 30 | octokit = new Octokit({ 31 | auth: { 32 | username: credentials.username, 33 | password: credentials.password, 34 | } 35 | }); 36 | }, 37 | 38 | registerNewToken: async () => { 39 | const status = new Spinner('Authenticating you, please wait...'); 40 | status.start(); 41 | 42 | try { 43 | const response = await octokit.oauthAuthorizations.createAuthorization({ 44 | scopes: ['user', 'public_repo', 'repo', 'repo:status'], 45 | note: 'lazinit, the command-line tool for initalizing Git repos' 46 | }); 47 | const token = response.data.token; 48 | if(token) { 49 | conf.set('github.token', token); 50 | return token; 51 | } else { 52 | throw new Error("Missing Token","GitHub token was not found in the response"); 53 | } 54 | } catch (err) { 55 | throw err; 56 | } finally { 57 | status.stop(); 58 | } 59 | }, 60 | }; -------------------------------------------------------------------------------- /lib/inquirer.js: -------------------------------------------------------------------------------- 1 | const inquirer = require('inquirer'); 2 | 3 | const files = require('./files'); 4 | 5 | module.exports = { 6 | askGithubCredentials: () => { 7 | const questions = [ 8 | { 9 | name: 'username', 10 | type: 'input', 11 | message: 'Enter your Github username or email:', 12 | validate: function(value) { 13 | if (value.length) { 14 | return true; 15 | } else { 16 | return 'Please enter your username or email address.'; 17 | } 18 | } 19 | }, 20 | { 21 | name: 'password', 22 | type: 'password', 23 | message: 'Enter your password:', 24 | validate: function(value) { 25 | if (value.length) { 26 | return true 27 | } else { 28 | return 'Please enter your password.'; 29 | } 30 | } 31 | } 32 | ]; 33 | return inquirer.prompt(questions); 34 | }, 35 | askRepoDetails: () => { 36 | const argv = require('minimist')(process.argv.slice(2)); 37 | 38 | const questions = [ 39 | { 40 | type: 'input', 41 | name: 'name', 42 | message: 'Enter a name for the repository:', 43 | defauult: argv._[0] || files.getCurrentDirectoryBase(), 44 | validate: function (value) { 45 | if (value.length) { 46 | return true; 47 | } else { 48 | return 'Please enter a name for the repository.'; 49 | } 50 | } 51 | }, 52 | { 53 | type: 'input', 54 | name: 'description', 55 | default: argv._[1] || null, 56 | message: 'Optionally enter a description of the repository:' 57 | }, 58 | { 59 | type: 'list', 60 | name: 'visibility', 61 | message: 'Public or private:', 62 | choices: [ 'public', 'private' ], 63 | default: 'public' 64 | } 65 | ]; 66 | return inquirer.prompt(questions); 67 | }, 68 | askIgnoreFiles: (filelist) => { 69 | const questions = [ 70 | { 71 | type: 'checkbox', 72 | name: 'ignore', 73 | message: 'Select the files and/or folders you wish to ignore:', 74 | choices: filelist, 75 | default: ['node_modules', 'bower_components'] 76 | } 77 | ]; 78 | return inquirer.prompt(questions); 79 | }, 80 | }; -------------------------------------------------------------------------------- /lib/repo.js: -------------------------------------------------------------------------------- 1 | const CLI = require('clui'); 2 | const fs = require('fs'); 3 | const git = require('simple-git/promise')(); 4 | const Spinner = CLI.Spinner; 5 | const _ = require('lodash'); 6 | 7 | const inquirer = require('./inquirer'); 8 | const gh = require('./github'); 9 | 10 | module.exports = { 11 | createRemoteRepo: async () => { 12 | const github = gh.getInstance(); 13 | const answers = await inquirer.askRepoDetails(); 14 | 15 | const data = { 16 | name: answers.name, 17 | description: answers.description, 18 | private: (answers.visibility === 'private') 19 | }; 20 | 21 | const status = new Spinner('Creating remote repository...'); 22 | status.start(); 23 | 24 | try { 25 | const response = await github.repos.createForAuthenticatedUser(data); 26 | return response.data.ssh_url; 27 | } catch(err) { 28 | throw err; 29 | } finally { 30 | status.stop(); 31 | } 32 | }, 33 | 34 | createGitignore: async () => { 35 | const filelist = _.without(fs.readdirSync('.'), '.git', '.gitignore'); 36 | 37 | if (filelist.length) { 38 | const answers = await inquirer.askIgnoreFiles(filelist); 39 | 40 | if (answers.ignore.length) { 41 | fs.writeFileSync( '.gitignore', answers.ignore.join( '\n' ) ); 42 | } else { 43 | touch( '.gitignore' ); 44 | } 45 | } else { 46 | touch('.gitignore'); 47 | } 48 | }, 49 | 50 | setupRepo: async (url) => { 51 | const status = new Spinner('Initializing local repository and pushing to remote...'); 52 | status.start(); 53 | 54 | return git.init() 55 | .then(git.add('.gitignore')) 56 | .then(git.add('./*')) 57 | .then(git.commit('Initial commit')) 58 | .then(git.addRemote('origin', url)) 59 | .then(git.push('origin', 'master')) 60 | .finally(status.stop()); 61 | }, 62 | }; -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lazinit", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@octokit/endpoint": { 8 | "version": "5.4.1", 9 | "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.4.1.tgz", 10 | "integrity": "sha512-iwn46orWg3F4iqIzAVRfbzhnROyx7BQ7zJE0B7SEeaMIBvk3qmWtswtRk14QkMNUuNiCHQ6mAM00VJxWqrdM1g==", 11 | "requires": { 12 | "is-plain-object": "^3.0.0", 13 | "universal-user-agent": "^4.0.0" 14 | } 15 | }, 16 | "@octokit/request": { 17 | "version": "5.2.1", 18 | "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.2.1.tgz", 19 | "integrity": "sha512-onjQo4QKyiMAqLM6j3eH8vWw1LEfNCpoZUl6a+TrZVJM1wysBC8F0GhK9K/Vc9UsScSmVs2bstOVD34xpQ2wqQ==", 20 | "requires": { 21 | "@octokit/endpoint": "^5.1.0", 22 | "@octokit/request-error": "^1.0.1", 23 | "deprecation": "^2.0.0", 24 | "is-plain-object": "^3.0.0", 25 | "node-fetch": "^2.3.0", 26 | "once": "^1.4.0", 27 | "universal-user-agent": "^4.0.0" 28 | } 29 | }, 30 | "@octokit/request-error": { 31 | "version": "1.0.4", 32 | "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.0.4.tgz", 33 | "integrity": "sha512-L4JaJDXn8SGT+5G0uX79rZLv0MNJmfGa4vb4vy1NnpjSnWDLJRy6m90udGwvMmavwsStgbv2QNkPzzTCMmL+ig==", 34 | "requires": { 35 | "deprecation": "^2.0.0", 36 | "once": "^1.4.0" 37 | } 38 | }, 39 | "@octokit/rest": { 40 | "version": "16.33.1", 41 | "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.33.1.tgz", 42 | "integrity": "sha512-lOQ+fJZwkeJ/1PRTdnY1uNja01aKOMioRhQfZtei64gZMXIX3EAfF4koMQMvoLFwsnVBu3ifj1JW1WAAKdXcnA==", 43 | "requires": { 44 | "@octokit/request": "^5.2.0", 45 | "@octokit/request-error": "^1.0.2", 46 | "atob-lite": "^2.0.0", 47 | "before-after-hook": "^2.0.0", 48 | "btoa-lite": "^1.0.0", 49 | "deprecation": "^2.0.0", 50 | "lodash.get": "^4.4.2", 51 | "lodash.set": "^4.3.2", 52 | "lodash.uniq": "^4.5.0", 53 | "octokit-pagination-methods": "^1.1.0", 54 | "once": "^1.4.0", 55 | "universal-user-agent": "^4.0.0" 56 | } 57 | }, 58 | "abbrev": { 59 | "version": "1.1.1", 60 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 61 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" 62 | }, 63 | "ansi-escapes": { 64 | "version": "4.2.1", 65 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.2.1.tgz", 66 | "integrity": "sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q==", 67 | "requires": { 68 | "type-fest": "^0.5.2" 69 | } 70 | }, 71 | "ansi-regex": { 72 | "version": "4.1.0", 73 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 74 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" 75 | }, 76 | "ansi-styles": { 77 | "version": "3.2.1", 78 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 79 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 80 | "requires": { 81 | "color-convert": "^1.9.0" 82 | } 83 | }, 84 | "atob-lite": { 85 | "version": "2.0.0", 86 | "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", 87 | "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=" 88 | }, 89 | "before-after-hook": { 90 | "version": "2.1.0", 91 | "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz", 92 | "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==" 93 | }, 94 | "btoa-lite": { 95 | "version": "1.0.0", 96 | "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", 97 | "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=" 98 | }, 99 | "chalk": { 100 | "version": "2.4.2", 101 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 102 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 103 | "requires": { 104 | "ansi-styles": "^3.2.1", 105 | "escape-string-regexp": "^1.0.5", 106 | "supports-color": "^5.3.0" 107 | } 108 | }, 109 | "chardet": { 110 | "version": "0.7.0", 111 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", 112 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" 113 | }, 114 | "clear": { 115 | "version": "0.1.0", 116 | "resolved": "https://registry.npmjs.org/clear/-/clear-0.1.0.tgz", 117 | "integrity": "sha512-qMjRnoL+JDPJHeLePZJuao6+8orzHMGP04A8CdwCNsKhRbOnKRjefxONR7bwILT3MHecxKBjHkKL/tkZ8r4Uzw==" 118 | }, 119 | "cli-color": { 120 | "version": "0.3.2", 121 | "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-0.3.2.tgz", 122 | "integrity": "sha1-dfpfcowwjMSsWUsF4GzF2A2szYY=", 123 | "requires": { 124 | "d": "~0.1.1", 125 | "es5-ext": "~0.10.2", 126 | "memoizee": "0.3.x", 127 | "timers-ext": "0.1.x" 128 | } 129 | }, 130 | "cli-cursor": { 131 | "version": "3.1.0", 132 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", 133 | "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", 134 | "requires": { 135 | "restore-cursor": "^3.1.0" 136 | } 137 | }, 138 | "cli-width": { 139 | "version": "2.2.0", 140 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", 141 | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" 142 | }, 143 | "clui": { 144 | "version": "0.3.6", 145 | "resolved": "https://registry.npmjs.org/clui/-/clui-0.3.6.tgz", 146 | "integrity": "sha512-Z4UbgZILlIAjkEkZiDOa2aoYjohKx7fa6DxIh6cE9A6WNWZ61iXfQc6CmdC9SKdS5nO0P0UyQ+WfoXfB65e3HQ==", 147 | "requires": { 148 | "cli-color": "0.3.2" 149 | } 150 | }, 151 | "color-convert": { 152 | "version": "1.9.3", 153 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 154 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 155 | "requires": { 156 | "color-name": "1.1.3" 157 | } 158 | }, 159 | "color-name": { 160 | "version": "1.1.3", 161 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 162 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 163 | }, 164 | "configstore": { 165 | "version": "5.0.0", 166 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.0.tgz", 167 | "integrity": "sha512-eE/hvMs7qw7DlcB5JPRnthmrITuHMmACUJAp89v6PT6iOqzoLS7HRWhBtuHMlhNHo2AhUSA/3Dh1bKNJHcublQ==", 168 | "requires": { 169 | "dot-prop": "^5.1.0", 170 | "graceful-fs": "^4.1.2", 171 | "make-dir": "^3.0.0", 172 | "unique-string": "^2.0.0", 173 | "write-file-atomic": "^3.0.0", 174 | "xdg-basedir": "^4.0.0" 175 | } 176 | }, 177 | "cross-spawn": { 178 | "version": "6.0.5", 179 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 180 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 181 | "requires": { 182 | "nice-try": "^1.0.4", 183 | "path-key": "^2.0.1", 184 | "semver": "^5.5.0", 185 | "shebang-command": "^1.2.0", 186 | "which": "^1.2.9" 187 | } 188 | }, 189 | "crypto-random-string": { 190 | "version": "2.0.0", 191 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", 192 | "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" 193 | }, 194 | "d": { 195 | "version": "0.1.1", 196 | "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", 197 | "integrity": "sha1-2hhMU10Y2O57oqoim5FACfrhEwk=", 198 | "requires": { 199 | "es5-ext": "~0.10.2" 200 | } 201 | }, 202 | "debug": { 203 | "version": "4.1.1", 204 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 205 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 206 | "requires": { 207 | "ms": "^2.1.1" 208 | } 209 | }, 210 | "deprecation": { 211 | "version": "2.3.1", 212 | "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", 213 | "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" 214 | }, 215 | "dot-prop": { 216 | "version": "5.1.1", 217 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.1.1.tgz", 218 | "integrity": "sha512-QCHI6Lkf+9fJMpwfAFsTvbiSh6ujoPmhCLiDvD/n4dGtLvHfhuBwPdN6z2x4YSOwwtTcLoO/LP70xELWGF/JVA==", 219 | "requires": { 220 | "is-obj": "^2.0.0" 221 | } 222 | }, 223 | "emoji-regex": { 224 | "version": "8.0.0", 225 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 226 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 227 | }, 228 | "end-of-stream": { 229 | "version": "1.4.4", 230 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 231 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 232 | "requires": { 233 | "once": "^1.4.0" 234 | } 235 | }, 236 | "es5-ext": { 237 | "version": "0.10.51", 238 | "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.51.tgz", 239 | "integrity": "sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ==", 240 | "requires": { 241 | "es6-iterator": "~2.0.3", 242 | "es6-symbol": "~3.1.1", 243 | "next-tick": "^1.0.0" 244 | } 245 | }, 246 | "es6-iterator": { 247 | "version": "2.0.3", 248 | "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", 249 | "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", 250 | "requires": { 251 | "d": "1", 252 | "es5-ext": "^0.10.35", 253 | "es6-symbol": "^3.1.1" 254 | }, 255 | "dependencies": { 256 | "d": { 257 | "version": "1.0.1", 258 | "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", 259 | "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", 260 | "requires": { 261 | "es5-ext": "^0.10.50", 262 | "type": "^1.0.1" 263 | } 264 | } 265 | } 266 | }, 267 | "es6-symbol": { 268 | "version": "3.1.2", 269 | "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.2.tgz", 270 | "integrity": "sha512-/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ==", 271 | "requires": { 272 | "d": "^1.0.1", 273 | "es5-ext": "^0.10.51" 274 | }, 275 | "dependencies": { 276 | "d": { 277 | "version": "1.0.1", 278 | "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", 279 | "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", 280 | "requires": { 281 | "es5-ext": "^0.10.50", 282 | "type": "^1.0.1" 283 | } 284 | } 285 | } 286 | }, 287 | "es6-weak-map": { 288 | "version": "0.1.4", 289 | "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz", 290 | "integrity": "sha1-cGzvnpmqI2undmwjnIueKG6n0ig=", 291 | "requires": { 292 | "d": "~0.1.1", 293 | "es5-ext": "~0.10.6", 294 | "es6-iterator": "~0.1.3", 295 | "es6-symbol": "~2.0.1" 296 | }, 297 | "dependencies": { 298 | "es6-iterator": { 299 | "version": "0.1.3", 300 | "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz", 301 | "integrity": "sha1-1vWLjE/EE8JJtLqhl2j45NfIlE4=", 302 | "requires": { 303 | "d": "~0.1.1", 304 | "es5-ext": "~0.10.5", 305 | "es6-symbol": "~2.0.1" 306 | } 307 | }, 308 | "es6-symbol": { 309 | "version": "2.0.1", 310 | "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz", 311 | "integrity": "sha1-dhtcZ8/U8dGK+yNPaR1nhoLLO/M=", 312 | "requires": { 313 | "d": "~0.1.1", 314 | "es5-ext": "~0.10.5" 315 | } 316 | } 317 | } 318 | }, 319 | "escape-string-regexp": { 320 | "version": "1.0.5", 321 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 322 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 323 | }, 324 | "event-emitter": { 325 | "version": "0.3.5", 326 | "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", 327 | "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", 328 | "requires": { 329 | "d": "1", 330 | "es5-ext": "~0.10.14" 331 | }, 332 | "dependencies": { 333 | "d": { 334 | "version": "1.0.1", 335 | "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", 336 | "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", 337 | "requires": { 338 | "es5-ext": "^0.10.50", 339 | "type": "^1.0.1" 340 | } 341 | } 342 | } 343 | }, 344 | "execa": { 345 | "version": "1.0.0", 346 | "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", 347 | "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", 348 | "requires": { 349 | "cross-spawn": "^6.0.0", 350 | "get-stream": "^4.0.0", 351 | "is-stream": "^1.1.0", 352 | "npm-run-path": "^2.0.0", 353 | "p-finally": "^1.0.0", 354 | "signal-exit": "^3.0.0", 355 | "strip-eof": "^1.0.0" 356 | } 357 | }, 358 | "external-editor": { 359 | "version": "3.1.0", 360 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", 361 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", 362 | "requires": { 363 | "chardet": "^0.7.0", 364 | "iconv-lite": "^0.4.24", 365 | "tmp": "^0.0.33" 366 | } 367 | }, 368 | "figlet": { 369 | "version": "1.2.4", 370 | "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.2.4.tgz", 371 | "integrity": "sha512-mv8YA9RruB4C5QawPaD29rEVx3N97ZTyNrE4DAfbhuo6tpcMdKnPVo8MlyT3RP5uPcg5M14bEJBq7kjFf4kAWg==" 372 | }, 373 | "figures": { 374 | "version": "3.1.0", 375 | "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", 376 | "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", 377 | "requires": { 378 | "escape-string-regexp": "^1.0.5" 379 | } 380 | }, 381 | "get-stream": { 382 | "version": "4.1.0", 383 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 384 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 385 | "requires": { 386 | "pump": "^3.0.0" 387 | } 388 | }, 389 | "graceful-fs": { 390 | "version": "4.2.2", 391 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", 392 | "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==" 393 | }, 394 | "has-flag": { 395 | "version": "3.0.0", 396 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 397 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" 398 | }, 399 | "iconv-lite": { 400 | "version": "0.4.24", 401 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 402 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 403 | "requires": { 404 | "safer-buffer": ">= 2.1.2 < 3" 405 | } 406 | }, 407 | "imurmurhash": { 408 | "version": "0.1.4", 409 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 410 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" 411 | }, 412 | "inquirer": { 413 | "version": "7.0.0", 414 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.0.tgz", 415 | "integrity": "sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ==", 416 | "requires": { 417 | "ansi-escapes": "^4.2.1", 418 | "chalk": "^2.4.2", 419 | "cli-cursor": "^3.1.0", 420 | "cli-width": "^2.0.0", 421 | "external-editor": "^3.0.3", 422 | "figures": "^3.0.0", 423 | "lodash": "^4.17.15", 424 | "mute-stream": "0.0.8", 425 | "run-async": "^2.2.0", 426 | "rxjs": "^6.4.0", 427 | "string-width": "^4.1.0", 428 | "strip-ansi": "^5.1.0", 429 | "through": "^2.3.6" 430 | } 431 | }, 432 | "is-fullwidth-code-point": { 433 | "version": "3.0.0", 434 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 435 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 436 | }, 437 | "is-obj": { 438 | "version": "2.0.0", 439 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", 440 | "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" 441 | }, 442 | "is-plain-object": { 443 | "version": "3.0.0", 444 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", 445 | "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", 446 | "requires": { 447 | "isobject": "^4.0.0" 448 | } 449 | }, 450 | "is-promise": { 451 | "version": "2.1.0", 452 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", 453 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" 454 | }, 455 | "is-stream": { 456 | "version": "1.1.0", 457 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 458 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" 459 | }, 460 | "is-typedarray": { 461 | "version": "1.0.0", 462 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 463 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 464 | }, 465 | "isexe": { 466 | "version": "2.0.0", 467 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 468 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" 469 | }, 470 | "isobject": { 471 | "version": "4.0.0", 472 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", 473 | "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" 474 | }, 475 | "lodash": { 476 | "version": "4.17.15", 477 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", 478 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" 479 | }, 480 | "lodash.get": { 481 | "version": "4.4.2", 482 | "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", 483 | "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" 484 | }, 485 | "lodash.set": { 486 | "version": "4.3.2", 487 | "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", 488 | "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=" 489 | }, 490 | "lodash.uniq": { 491 | "version": "4.5.0", 492 | "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", 493 | "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" 494 | }, 495 | "lru-queue": { 496 | "version": "0.1.0", 497 | "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", 498 | "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", 499 | "requires": { 500 | "es5-ext": "~0.10.2" 501 | } 502 | }, 503 | "macos-release": { 504 | "version": "2.3.0", 505 | "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", 506 | "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==" 507 | }, 508 | "make-dir": { 509 | "version": "3.0.0", 510 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", 511 | "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", 512 | "requires": { 513 | "semver": "^6.0.0" 514 | }, 515 | "dependencies": { 516 | "semver": { 517 | "version": "6.3.0", 518 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 519 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" 520 | } 521 | } 522 | }, 523 | "memoizee": { 524 | "version": "0.3.10", 525 | "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.3.10.tgz", 526 | "integrity": "sha1-TsoNiu057J0Bf0xcLy9kMvQuXI8=", 527 | "requires": { 528 | "d": "~0.1.1", 529 | "es5-ext": "~0.10.11", 530 | "es6-weak-map": "~0.1.4", 531 | "event-emitter": "~0.3.4", 532 | "lru-queue": "0.1", 533 | "next-tick": "~0.2.2", 534 | "timers-ext": "0.1" 535 | }, 536 | "dependencies": { 537 | "next-tick": { 538 | "version": "0.2.2", 539 | "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-0.2.2.tgz", 540 | "integrity": "sha1-ddpKkn7liH45BliABltzNkE7MQ0=" 541 | } 542 | } 543 | }, 544 | "mimic-fn": { 545 | "version": "2.1.0", 546 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 547 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" 548 | }, 549 | "minimist": { 550 | "version": "1.2.0", 551 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 552 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" 553 | }, 554 | "ms": { 555 | "version": "2.1.2", 556 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 557 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 558 | }, 559 | "mute-stream": { 560 | "version": "0.0.8", 561 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", 562 | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" 563 | }, 564 | "next-tick": { 565 | "version": "1.0.0", 566 | "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", 567 | "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" 568 | }, 569 | "nice-try": { 570 | "version": "1.0.5", 571 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 572 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" 573 | }, 574 | "node-fetch": { 575 | "version": "2.6.0", 576 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", 577 | "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" 578 | }, 579 | "nopt": { 580 | "version": "1.0.10", 581 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", 582 | "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", 583 | "requires": { 584 | "abbrev": "1" 585 | } 586 | }, 587 | "npm-run-path": { 588 | "version": "2.0.2", 589 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 590 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 591 | "requires": { 592 | "path-key": "^2.0.0" 593 | } 594 | }, 595 | "octokit-pagination-methods": { 596 | "version": "1.1.0", 597 | "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", 598 | "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==" 599 | }, 600 | "once": { 601 | "version": "1.4.0", 602 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 603 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 604 | "requires": { 605 | "wrappy": "1" 606 | } 607 | }, 608 | "onetime": { 609 | "version": "5.1.0", 610 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", 611 | "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", 612 | "requires": { 613 | "mimic-fn": "^2.1.0" 614 | } 615 | }, 616 | "os-name": { 617 | "version": "3.1.0", 618 | "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", 619 | "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", 620 | "requires": { 621 | "macos-release": "^2.2.0", 622 | "windows-release": "^3.1.0" 623 | } 624 | }, 625 | "os-tmpdir": { 626 | "version": "1.0.2", 627 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 628 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" 629 | }, 630 | "p-finally": { 631 | "version": "1.0.0", 632 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 633 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" 634 | }, 635 | "path-key": { 636 | "version": "2.0.1", 637 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 638 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" 639 | }, 640 | "pump": { 641 | "version": "3.0.0", 642 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 643 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 644 | "requires": { 645 | "end-of-stream": "^1.1.0", 646 | "once": "^1.3.1" 647 | } 648 | }, 649 | "restore-cursor": { 650 | "version": "3.1.0", 651 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", 652 | "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", 653 | "requires": { 654 | "onetime": "^5.1.0", 655 | "signal-exit": "^3.0.2" 656 | } 657 | }, 658 | "run-async": { 659 | "version": "2.3.0", 660 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", 661 | "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", 662 | "requires": { 663 | "is-promise": "^2.1.0" 664 | } 665 | }, 666 | "rxjs": { 667 | "version": "6.5.3", 668 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", 669 | "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", 670 | "requires": { 671 | "tslib": "^1.9.0" 672 | } 673 | }, 674 | "safer-buffer": { 675 | "version": "2.1.2", 676 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 677 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 678 | }, 679 | "semver": { 680 | "version": "5.7.1", 681 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 682 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 683 | }, 684 | "shebang-command": { 685 | "version": "1.2.0", 686 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 687 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 688 | "requires": { 689 | "shebang-regex": "^1.0.0" 690 | } 691 | }, 692 | "shebang-regex": { 693 | "version": "1.0.0", 694 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 695 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" 696 | }, 697 | "signal-exit": { 698 | "version": "3.0.2", 699 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 700 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" 701 | }, 702 | "simple-git": { 703 | "version": "1.126.0", 704 | "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-1.126.0.tgz", 705 | "integrity": "sha512-47mqHxgZnN8XRa9HbpWprzUv3Ooqz9RY/LSZgvA7jCkW8jcwLahMz7LKugY91KZehfG0sCVPtgXiU72hd6b1Bw==", 706 | "requires": { 707 | "debug": "^4.0.1" 708 | } 709 | }, 710 | "string-width": { 711 | "version": "4.1.0", 712 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.1.0.tgz", 713 | "integrity": "sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==", 714 | "requires": { 715 | "emoji-regex": "^8.0.0", 716 | "is-fullwidth-code-point": "^3.0.0", 717 | "strip-ansi": "^5.2.0" 718 | } 719 | }, 720 | "strip-ansi": { 721 | "version": "5.2.0", 722 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 723 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 724 | "requires": { 725 | "ansi-regex": "^4.1.0" 726 | } 727 | }, 728 | "strip-eof": { 729 | "version": "1.0.0", 730 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 731 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" 732 | }, 733 | "supports-color": { 734 | "version": "5.5.0", 735 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 736 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 737 | "requires": { 738 | "has-flag": "^3.0.0" 739 | } 740 | }, 741 | "through": { 742 | "version": "2.3.8", 743 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 744 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" 745 | }, 746 | "timers-ext": { 747 | "version": "0.1.7", 748 | "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", 749 | "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", 750 | "requires": { 751 | "es5-ext": "~0.10.46", 752 | "next-tick": "1" 753 | } 754 | }, 755 | "tmp": { 756 | "version": "0.0.33", 757 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 758 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 759 | "requires": { 760 | "os-tmpdir": "~1.0.2" 761 | } 762 | }, 763 | "touch": { 764 | "version": "3.1.0", 765 | "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", 766 | "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", 767 | "requires": { 768 | "nopt": "~1.0.10" 769 | } 770 | }, 771 | "tslib": { 772 | "version": "1.10.0", 773 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", 774 | "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" 775 | }, 776 | "type": { 777 | "version": "1.2.0", 778 | "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", 779 | "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" 780 | }, 781 | "type-fest": { 782 | "version": "0.5.2", 783 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz", 784 | "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==" 785 | }, 786 | "typedarray-to-buffer": { 787 | "version": "3.1.5", 788 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", 789 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", 790 | "requires": { 791 | "is-typedarray": "^1.0.0" 792 | } 793 | }, 794 | "unique-string": { 795 | "version": "2.0.0", 796 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", 797 | "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", 798 | "requires": { 799 | "crypto-random-string": "^2.0.0" 800 | } 801 | }, 802 | "universal-user-agent": { 803 | "version": "4.0.0", 804 | "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.0.tgz", 805 | "integrity": "sha512-eM8knLpev67iBDizr/YtqkJsF3GK8gzDc6st/WKzrTuPtcsOKW/0IdL4cnMBsU69pOx0otavLWBDGTwg+dB0aA==", 806 | "requires": { 807 | "os-name": "^3.1.0" 808 | } 809 | }, 810 | "which": { 811 | "version": "1.3.1", 812 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 813 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 814 | "requires": { 815 | "isexe": "^2.0.0" 816 | } 817 | }, 818 | "windows-release": { 819 | "version": "3.2.0", 820 | "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", 821 | "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", 822 | "requires": { 823 | "execa": "^1.0.0" 824 | } 825 | }, 826 | "wrappy": { 827 | "version": "1.0.2", 828 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 829 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 830 | }, 831 | "write-file-atomic": { 832 | "version": "3.0.1", 833 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.1.tgz", 834 | "integrity": "sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw==", 835 | "requires": { 836 | "imurmurhash": "^0.1.4", 837 | "is-typedarray": "^1.0.0", 838 | "signal-exit": "^3.0.2", 839 | "typedarray-to-buffer": "^3.1.5" 840 | } 841 | }, 842 | "xdg-basedir": { 843 | "version": "4.0.0", 844 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", 845 | "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" 846 | } 847 | } 848 | } 849 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lazinit", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "bin": { 10 | "lazinit": "./index.js" 11 | }, 12 | "keywords": [], 13 | "author": "", 14 | "license": "ISC", 15 | "dependencies": { 16 | "@octokit/rest": "^16.33.1", 17 | "chalk": "^2.4.2", 18 | "clear": "^0.1.0", 19 | "clui": "^0.3.6", 20 | "configstore": "^5.0.0", 21 | "figlet": "^1.2.4", 22 | "inquirer": "^7.0.0", 23 | "lodash": "^4.17.15", 24 | "minimist": "^1.2.0", 25 | "simple-git": "^1.126.0", 26 | "touch": "^3.1.0" 27 | } 28 | } 29 | --------------------------------------------------------------------------------