├── .editorconfig ├── .eslintrc.json ├── .gitignore ├── .prettierrc ├── .snippets └── exampleSrc │ ├── ExampleNoTplFiles.snippet │ └── (SOMNE_NAME).md │ ├── ExampleTplError.snippet │ └── (SOME_NAME).md.tpl │ ├── components │ └── Component.snippet │ │ ├── (SomeName) │ │ ├── (SomeName).jsx.tpl │ │ ├── (someName).css.tpl │ │ ├── __test__ │ │ │ └── (SomeName).test.js.tpl │ │ └── index.js.tpl │ │ └── options.json │ └── services │ └── Service.snippet │ └── (SomeName)Service.js.tpl ├── LICENSE ├── README.md ├── cli ├── createSnippet.js ├── dryRun.js ├── helpers │ ├── copyFileWithTransform.js │ ├── getFilesAndDirs.js │ ├── prepareCases.js │ ├── removeEmptyDirs.js │ ├── removeSnippetDir.js │ ├── replaceFileVars.js │ └── snippetsToSrcPath.js ├── index.js ├── lib │ ├── createVars.js │ ├── getDestinationPath.js │ └── renderFile.js └── prepareSnippet.js ├── docs ├── example-files-tree.png └── project-snippets-cli-example.gif ├── exampleSrc ├── components │ └── Button │ │ ├── Button.jsx │ │ ├── index.js │ │ └── styles.css └── services │ └── UserService.js ├── package.json └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | indent_style = space 7 | indent_size = 4 8 | max_line_length = 90 9 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "babel-eslint", 3 | "extends": "eslint:recommended", 4 | "env": { 5 | "node": true, 6 | "commonjs": true, 7 | "es6": true 8 | }, 9 | "rules": { 10 | "indent": ["error", 4], 11 | "linebreak-style": ["error", "unix"], 12 | "quotes": ["error", "single"], 13 | "semi": ["error", "always"], 14 | "no-console": ["off"] 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "typescript", 3 | "printWidth": 90, 4 | "tabWidth": 4, 5 | "semi": true, 6 | "singleQuote": true, 7 | "trailingComma": "all" 8 | } 9 | -------------------------------------------------------------------------------- /.snippets/exampleSrc/ExampleNoTplFiles.snippet/(SOMNE_NAME).md: -------------------------------------------------------------------------------- 1 | # Where is my .tpl file?! 2 | -------------------------------------------------------------------------------- /.snippets/exampleSrc/ExampleTplError.snippet/(SOME_NAME).md.tpl: -------------------------------------------------------------------------------- 1 | # <%= sOMEnAME %> 2 | -------------------------------------------------------------------------------- /.snippets/exampleSrc/components/Component.snippet/(SomeName)/(SomeName).jsx.tpl: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | <% if (styles) { %> 3 | import css from './<%= someName %>.css' 4 | <% } %> 5 | const <%= SomeName %> = ({ children }) => ( 6 | <% if (styles) { %>
}><% } else { %>
<% } %> 7 | {children} 8 |
9 | ); 10 | 11 | export default <%= SomeName %>; 12 | -------------------------------------------------------------------------------- /.snippets/exampleSrc/components/Component.snippet/(SomeName)/(someName).css.tpl: -------------------------------------------------------------------------------- 1 | <% if (styles) { %> 2 | .<%= someName %> {} 3 | .<%= locals['some-name'] %> {} 4 | <% } %> 5 | -------------------------------------------------------------------------------- /.snippets/exampleSrc/components/Component.snippet/(SomeName)/__test__/(SomeName).test.js.tpl: -------------------------------------------------------------------------------- 1 | <% if (tests) { %> 2 | describe('<%= SomeName %>', () => { 3 | it('should TODO this test', () => { 4 | expect('nothing').toBe('a nice test'); 5 | }); 6 | }); 7 | <% } %> 8 | -------------------------------------------------------------------------------- /.snippets/exampleSrc/components/Component.snippet/(SomeName)/index.js.tpl: -------------------------------------------------------------------------------- 1 | export { default } from './<%= SomeName %>'; 2 | -------------------------------------------------------------------------------- /.snippets/exampleSrc/components/Component.snippet/options.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type": "confirm", 4 | "name": "styles", 5 | "message": "With styles?" 6 | }, 7 | { 8 | "type": "confirm", 9 | "name": "tests", 10 | "message": "With unit tests?" 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /.snippets/exampleSrc/services/Service.snippet/(SomeName)Service.js.tpl: -------------------------------------------------------------------------------- 1 | class <%= SomeName %>Service { 2 | constructor() {} 3 | start() { 4 | // @TODO 5 | } 6 | stop() { 7 | // @TODO 8 | } 9 | } 10 | 11 | export default <%= SomeName %>Service; 12 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Kacper Kozak 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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Project Snippets 2 | 3 | Keep code snippets directly in your project repository and let anyone create files easily and quickly. 4 | 5 | ![](./docs/project-snippets-cli-example.gif) 6 | 7 | ## Quick start and how it works 8 | 9 | ### Installation 10 | 11 | First, install the package: 12 | 13 | ```bash 14 | yarn add --dev project-snippets 15 | 16 | # or npm 17 | 18 | npm install --save-dev project-snippets 19 | ``` 20 | 21 | Now you have available `snippet` command, let's use this in `package.json` as `create` script: 22 | 23 | ```json 24 | { 25 | "scripts": { 26 | "create": "snippet create" 27 | } 28 | } 29 | ``` 30 | 31 | You can run this by typing `yarn run create` or `npm run create`, but first you need `.snippets` directory with your code templates. 32 | 33 | ### Snippets directory 34 | 35 | ![](./docs/example-files-tree.png) 36 | 37 | For example you like to make a snippet for components in `/src/components/*.js`, then `.snippets` directory structure should look like this: 38 | 39 | ``` 40 | .snippets/ 41 | src/ 42 | components/ 43 | MySimpleComponent.snippet/ ← Snippet name, this dir will be omitted 44 | (SomeName).js.tpl ← Snippet files or even directories 45 | (someName).css.tpl ← .tpl extension is important! 46 | ``` 47 | 48 | Now after running the `create` command, you will see list for your snippets. If you select `MySimpleComponent` and then enter the name eg. `circle button` it will create a file: 49 | 50 | ``` 51 | src/ 52 | components/ 53 | … 54 | CircleButton.js 55 | circleButton.css 56 | … 57 | ``` 58 | 59 | Let's look inside the files. 60 | 61 | ### Templates 62 | 63 | Inside the files will we use [ejs templates](https://github.com/mde/ejs): 64 | 65 | `(SomeName).js.tpl`: 66 | 67 | ```js 68 | import '<%= someName %>.css' 69 | 70 | export function <%= SomeName %>() { 71 | // ... 72 | } 73 | ``` 74 | 75 | And similarly for `(someName).css.tpl`. 76 | ``` 77 | .<%= someName %> { 78 | /* ... */ 79 | } 80 | ``` 81 | 82 | Finally, that's all, now you can run this command again and you will receive ready to use `CircleButton.js` and `circleButton.css` files: 83 | 84 | ```javascript 85 | import 'circleButton.css' 86 | 87 | export function CircleButton() { 88 | // ... 89 | } 90 | ``` 91 | ```css 92 | .circleButton { 93 | /* ... */ 94 | } 95 | ``` 96 | 97 | ### CLI options 98 | 99 | * `--dry-run` - show the contents of files without creating them 100 | 101 | ### Variables 102 | 103 | The following variables are now available: 104 | 105 | * Camel case: `someName` 106 | * Pascal case: `SomeName` 107 | * Snake case: `some_name` 108 | * Constant case: `SOME_NAME` 109 | * Param case: `some-name` (IMPORTANT: inside templates use `<%= locals['some-name'] %>`) 110 | 111 | #### Custom variables 112 | 113 | If you need more options for your snippet you can create the `options.json` file in snippet directory. (And remember: empty file = no file) 114 | 115 | Example `.snippets/src/components/Component.snippet/options.json`: 116 | ```json 117 | [ 118 | { 119 | "type": "confirm", 120 | "name": "styles", 121 | "message": "With styles?" 122 | }, 123 | { 124 | "type": "confirm", 125 | "name": "tests", 126 | "message": "With unit tests?" 127 | } 128 | ] 129 | ``` 130 | 131 | -------------------------------------------------------------------------------- /cli/createSnippet.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fs = require('fs'); 4 | const chalk = require('chalk'); 5 | 6 | const copyFileWithTransform = require('./helpers/copyFileWithTransform'); 7 | const getFilesAndDirs = require('./helpers/getFilesAndDirs'); 8 | const removeEmptyDirs = require('./helpers/removeEmptyDirs'); 9 | 10 | const getDestinationPath = require('./lib/getDestinationPath'); 11 | const createVars = require('./lib/createVars'); 12 | const renderFile = require('./lib/renderFile'); 13 | 14 | function createSnippet(snippetPath, values) { 15 | const { files, dirs } = getFilesAndDirs(snippetPath); 16 | const vars = createVars(values); 17 | 18 | dirs.forEach(dir => { 19 | const rdyDir = getDestinationPath(dir, vars); 20 | 21 | if (fs.existsSync(rdyDir)) throw `${rdyDir} already exists!`; 22 | 23 | fs.mkdirSync(rdyDir); 24 | }); 25 | 26 | files.forEach(file => { 27 | const rdyFile = getDestinationPath(file, vars); 28 | 29 | const created = copyFileWithTransform(file, rdyFile, content => 30 | renderFile(content, vars), 31 | ); 32 | 33 | if (created) { 34 | console.log(chalk`${rdyFile} {green.bold ✔}`); 35 | } else { 36 | console.log(chalk`${rdyFile} {gray.bold ✘}`); 37 | } 38 | }); 39 | 40 | removeEmptyDirs(getDestinationPath(snippetPath, vars)); 41 | } 42 | 43 | module.exports = createSnippet; 44 | -------------------------------------------------------------------------------- /cli/dryRun.js: -------------------------------------------------------------------------------- 1 | module.export = 'use strict'; 2 | 3 | const fs = require('fs'); 4 | const path = require('path'); 5 | const chalk = require('chalk'); 6 | const highlight = require('cli-highlight').highlight; 7 | 8 | const getFilesAndDirs = require('./helpers/getFilesAndDirs'); 9 | 10 | const getDestinationPath = require('./lib/getDestinationPath'); 11 | const createVars = require('./lib/createVars'); 12 | const renderFile = require('./lib/renderFile'); 13 | 14 | function getExtension(filename) { 15 | var ext = path.extname(filename || '').split('.'); 16 | return ext[ext.length - 1]; 17 | } 18 | 19 | function dryRun(snippetPath, values) { 20 | const { files } = getFilesAndDirs(snippetPath); 21 | const vars = createVars(values); 22 | 23 | files.forEach(file => { 24 | const rdyFile = getDestinationPath(file, vars); 25 | 26 | fs.readFile(file, 'utf8', (err, content) => { 27 | if (err) throw err; 28 | 29 | const rdyContent = renderFile(content, vars); 30 | 31 | console.log('\n'); 32 | console.log(chalk.bold(rdyFile)); 33 | console.log('-'.repeat(70)); 34 | console.log( 35 | highlight(rdyContent, { 36 | language: getExtension(rdyFile), 37 | ignoreIllegals: true, 38 | }), 39 | ); 40 | }); 41 | }); 42 | } 43 | 44 | module.exports = dryRun; 45 | -------------------------------------------------------------------------------- /cli/helpers/copyFileWithTransform.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fs = require('fs'); 4 | const { trim } = require('lodash'); 5 | 6 | function copyFileWithTransform(fromPath, toPath, transform) { 7 | const content = fs.readFileSync(fromPath, 'utf8'); 8 | 9 | const transformedContent = transform(content); 10 | 11 | if (!trim(transformedContent)) { 12 | return false; 13 | } 14 | 15 | fs.writeFileSync(toPath, transformedContent); 16 | return true; 17 | } 18 | 19 | module.exports = copyFileWithTransform; 20 | -------------------------------------------------------------------------------- /cli/helpers/getFilesAndDirs.js: -------------------------------------------------------------------------------- 1 | const glob = require('glob'); 2 | const chalk = require('chalk'); 3 | 4 | function getFilesAndDirs(snippetPath) { 5 | const files = glob.sync(snippetPath + '**/*.tpl'); 6 | const dirs = glob.sync(snippetPath + '*/**/'); 7 | 8 | if (!files.length) { 9 | throw chalk.red`No files found with the extension .tpl in ${snippetPath}`; 10 | } 11 | 12 | return { files, dirs }; 13 | } 14 | 15 | module.exports = getFilesAndDirs; 16 | -------------------------------------------------------------------------------- /cli/helpers/prepareCases.js: -------------------------------------------------------------------------------- 1 | const { 2 | camelCase, 3 | pascalCase, 4 | snakeCase, 5 | paramCase, 6 | constantCase, 7 | } = require('change-case'); 8 | 9 | function prepareCases(key, value) { 10 | return { 11 | [camelCase(key)]: camelCase(value), 12 | [pascalCase(key)]: pascalCase(value), 13 | [snakeCase(key)]: snakeCase(value), 14 | [paramCase(key)]: paramCase(value), 15 | [constantCase(key)]: constantCase(value), 16 | }; 17 | } 18 | 19 | module.exports = prepareCases; 20 | -------------------------------------------------------------------------------- /cli/helpers/removeEmptyDirs.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | 4 | function removeEmptyDirs(dir) { 5 | const isDir = fs.statSync(dir).isDirectory(); 6 | if (!isDir) return; 7 | 8 | let files = fs.readdirSync(dir); 9 | 10 | if (files.length > 0) { 11 | files.forEach(file => { 12 | const fullPath = path.join(dir, file); 13 | removeEmptyDirs(fullPath); 14 | }); 15 | 16 | files = fs.readdirSync(dir); 17 | } 18 | 19 | if (files.length == 0) { 20 | fs.rmdirSync(dir); 21 | return; 22 | } 23 | } 24 | 25 | module.exports = removeEmptyDirs; 26 | -------------------------------------------------------------------------------- /cli/helpers/removeSnippetDir.js: -------------------------------------------------------------------------------- 1 | function removeSnippetDir(path) { 2 | path.replace(/[^/\\]+\.snippet\//, ''); 3 | } 4 | 5 | module.exports = removeSnippetDir; 6 | -------------------------------------------------------------------------------- /cli/helpers/replaceFileVars.js: -------------------------------------------------------------------------------- 1 | function replaceFileVars(path, data) { 2 | return path.replace(/\(([^)]+)?\)/g, function($1, $2) { 3 | return data[$2]; 4 | }); 5 | } 6 | 7 | module.exports = replaceFileVars; 8 | -------------------------------------------------------------------------------- /cli/helpers/snippetsToSrcPath.js: -------------------------------------------------------------------------------- 1 | function removeSnippetBaseDir(path) { 2 | return path.replace(/^\.\/\.snippets\//, './'); 3 | } 4 | 5 | function removeSnippetNameDir(path) { 6 | return path.replace(/[^/\\]+\.snippet\//, ''); 7 | } 8 | 9 | function snippetsToSrcPath(path) { 10 | return removeSnippetNameDir(removeSnippetBaseDir(path)); 11 | } 12 | 13 | module.exports = snippetsToSrcPath; 14 | -------------------------------------------------------------------------------- /cli/index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 'use strict'; 3 | 4 | const caporal = require('caporal'); 5 | const inquirer = require('inquirer'); 6 | const glob = require('glob'); 7 | const chalk = require('chalk'); 8 | const prepareSnippet = require('./prepareSnippet'); 9 | 10 | const snippetsDirList = glob.sync('./.snippets/**/*.snippet/'); 11 | const snippetsList = snippetsDirList.map( 12 | path => path.match(/^\.\/\.snippets\/(.+)\.snippet/)[1], 13 | ); 14 | 15 | caporal 16 | .command('create', 'Create file(s) from snippet') 17 | .option( 18 | '--dry-run', 19 | 'Show the contents of files without creating them', 20 | caporal.BOOLEAN, 21 | ) 22 | .action(function(args, options) { 23 | inquirer 24 | .prompt([ 25 | { 26 | type: 'list', 27 | name: 'path', 28 | message: 'What do you want to do?', 29 | choices: snippetsList, 30 | }, 31 | { 32 | type: 'input', 33 | name: 'name', 34 | message: 'Name', 35 | }, 36 | ]) 37 | .then(({ path, ...values }) => { 38 | if (!values.name) { 39 | console.log(chalk.red`Name is required!`); 40 | return process.exit(1); 41 | } 42 | 43 | const fullPath = snippetsDirList[snippetsList.indexOf(path)]; 44 | prepareSnippet(fullPath, values, options); 45 | }) 46 | .catch(console.error); 47 | }); 48 | 49 | caporal.parse(process.argv); 50 | -------------------------------------------------------------------------------- /cli/lib/createVars.js: -------------------------------------------------------------------------------- 1 | const prepareCases = require('../helpers/prepareCases'); 2 | 3 | function createVars(values) { 4 | const names = prepareCases('some name', values.name); 5 | return Object.assign({}, values, names); 6 | } 7 | 8 | module.exports = createVars; 9 | -------------------------------------------------------------------------------- /cli/lib/getDestinationPath.js: -------------------------------------------------------------------------------- 1 | const { trimEnd } = require('lodash'); 2 | const replaceFileVars = require('../helpers/replaceFileVars'); 3 | const snippetsToSrcPath = require('../helpers/snippetsToSrcPath'); 4 | 5 | function getDestinationPath(snippetFile, vars) { 6 | const srcFile = snippetsToSrcPath(snippetFile); 7 | const noTplFile = trimEnd(srcFile, '.tpl'); 8 | return replaceFileVars(noTplFile, vars); 9 | } 10 | 11 | module.exports = getDestinationPath; 12 | -------------------------------------------------------------------------------- /cli/lib/renderFile.js: -------------------------------------------------------------------------------- 1 | const ejs = require('ejs'); 2 | 3 | function renderFile(content, vars) { 4 | return ejs.render(content, vars); 5 | } 6 | 7 | module.exports = renderFile; 8 | -------------------------------------------------------------------------------- /cli/prepareSnippet.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fs = require('fs'); 4 | const path = require('path'); 5 | const glob = require('glob'); 6 | const chalk = require('chalk'); 7 | const inquirer = require('inquirer'); 8 | 9 | const createSnippet = require('./createSnippet'); 10 | const dryRun = require('./dryRun'); 11 | 12 | const OPTION_FILE_NAME = 'options.json'; 13 | 14 | function prepareSnippet(snippetPath, values, options) { 15 | if (!fs.lstatSync(snippetPath).isDirectory()) { 16 | throw `Snippet [${snippetPath}] is a file, all snippets should be a directory with .snippet on end!`; 17 | } 18 | 19 | const files = glob.sync(snippetPath + '**/*.tpl'); 20 | 21 | if (!files.length) { 22 | throw chalk.red`No files found with the extension .tpl in ${snippetPath}`; 23 | } 24 | 25 | const snippetOptionsFile = path.resolve(snippetPath, OPTION_FILE_NAME); 26 | const snippetOptions = fs.existsSync(snippetOptionsFile) 27 | ? require(snippetOptionsFile) 28 | : []; 29 | 30 | inquirer 31 | .prompt(snippetOptions) 32 | .then(customValues => { 33 | const allValues = { ...values, ...customValues }; 34 | 35 | if (options.dryRun) { 36 | return dryRun(snippetPath, allValues, options); 37 | } 38 | 39 | return createSnippet(snippetPath, allValues, options); 40 | }) 41 | .catch(console.error); 42 | } 43 | 44 | module.exports = prepareSnippet; 45 | -------------------------------------------------------------------------------- /docs/example-files-tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KacperKozak/project-snippets/779dbac3561658a81d49c8e1f26af0de5566ce37/docs/example-files-tree.png -------------------------------------------------------------------------------- /docs/project-snippets-cli-example.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KacperKozak/project-snippets/779dbac3561658a81d49c8e1f26af0de5566ce37/docs/project-snippets-cli-example.gif -------------------------------------------------------------------------------- /exampleSrc/components/Button/Button.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styles from './button.css'; 3 | 4 | const Button = ({ onClick, children }) => ( 5 | 8 | ); 9 | 10 | export default Button; 11 | -------------------------------------------------------------------------------- /exampleSrc/components/Button/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './Button'; 2 | -------------------------------------------------------------------------------- /exampleSrc/components/Button/styles.css: -------------------------------------------------------------------------------- 1 | .button { 2 | background: black; 3 | color: hotpink; 4 | padding: 20px; 5 | } 6 | -------------------------------------------------------------------------------- /exampleSrc/services/UserService.js: -------------------------------------------------------------------------------- 1 | class UserService extends Ajax { 2 | constructor() {} 3 | start() { 4 | // ... nothing ... 5 | } 6 | stop() { 7 | // ... this is only example :) 8 | } 9 | } 10 | 11 | export default UserService; 12 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "project-snippets", 3 | "version": "0.4.0", 4 | "description": "", 5 | "main": "cli/index.js", 6 | "scripts": { 7 | "create": "node ./cli create", 8 | "lint": "eslint ./cli" 9 | }, 10 | "bin": { 11 | "snippet": "./cli/index.js" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "git+https://github.com/KacperKozak/project-snippets.git" 16 | }, 17 | "author": "Kacper Kozak ", 18 | "license": "MIT", 19 | "bugs": { 20 | "url": "https://github.com/KacperKozak/project-snippets/issues" 21 | }, 22 | "homepage": "https://github.com/KacperKozak/project-snippets#readme", 23 | "dependencies": { 24 | "caporal": "^0.9.0", 25 | "chalk": "^2.3.1", 26 | "change-case": "^3.0.1", 27 | "cli-highlight": "^1.2.3", 28 | "ejs": "^2.5.7", 29 | "glob": "^7.1.2", 30 | "inquirer": "^5.1.0", 31 | "lodash": "^4.17.5" 32 | }, 33 | "devDependencies": { 34 | "babel-eslint": "^8.2.2", 35 | "eslint": "^4.18.2" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@7.0.0-beta.40", "@babel/code-frame@^7.0.0-beta.40": 6 | version "7.0.0-beta.40" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.40.tgz#37e2b0cf7c56026b4b21d3927cadf81adec32ac6" 8 | dependencies: 9 | "@babel/highlight" "7.0.0-beta.40" 10 | 11 | "@babel/generator@7.0.0-beta.40": 12 | version "7.0.0-beta.40" 13 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.40.tgz#ab61f9556f4f71dbd1138949c795bb9a21e302ea" 14 | dependencies: 15 | "@babel/types" "7.0.0-beta.40" 16 | jsesc "^2.5.1" 17 | lodash "^4.2.0" 18 | source-map "^0.5.0" 19 | trim-right "^1.0.1" 20 | 21 | "@babel/helper-function-name@7.0.0-beta.40": 22 | version "7.0.0-beta.40" 23 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.40.tgz#9d033341ab16517f40d43a73f2d81fc431ccd7b6" 24 | dependencies: 25 | "@babel/helper-get-function-arity" "7.0.0-beta.40" 26 | "@babel/template" "7.0.0-beta.40" 27 | "@babel/types" "7.0.0-beta.40" 28 | 29 | "@babel/helper-get-function-arity@7.0.0-beta.40": 30 | version "7.0.0-beta.40" 31 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.40.tgz#ac0419cf067b0ec16453e1274f03878195791c6e" 32 | dependencies: 33 | "@babel/types" "7.0.0-beta.40" 34 | 35 | "@babel/highlight@7.0.0-beta.40": 36 | version "7.0.0-beta.40" 37 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.40.tgz#b43d67d76bf46e1d10d227f68cddcd263786b255" 38 | dependencies: 39 | chalk "^2.0.0" 40 | esutils "^2.0.2" 41 | js-tokens "^3.0.0" 42 | 43 | "@babel/template@7.0.0-beta.40": 44 | version "7.0.0-beta.40" 45 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.40.tgz#034988c6424eb5c3268fe6a608626de1f4410fc8" 46 | dependencies: 47 | "@babel/code-frame" "7.0.0-beta.40" 48 | "@babel/types" "7.0.0-beta.40" 49 | babylon "7.0.0-beta.40" 50 | lodash "^4.2.0" 51 | 52 | "@babel/traverse@^7.0.0-beta.40": 53 | version "7.0.0-beta.40" 54 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.40.tgz#d140e449b2e093ef9fe1a2eecc28421ffb4e521e" 55 | dependencies: 56 | "@babel/code-frame" "7.0.0-beta.40" 57 | "@babel/generator" "7.0.0-beta.40" 58 | "@babel/helper-function-name" "7.0.0-beta.40" 59 | "@babel/types" "7.0.0-beta.40" 60 | babylon "7.0.0-beta.40" 61 | debug "^3.0.1" 62 | globals "^11.1.0" 63 | invariant "^2.2.0" 64 | lodash "^4.2.0" 65 | 66 | "@babel/types@7.0.0-beta.40", "@babel/types@^7.0.0-beta.40": 67 | version "7.0.0-beta.40" 68 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.40.tgz#25c3d7aae14126abe05fcb098c65a66b6d6b8c14" 69 | dependencies: 70 | esutils "^2.0.2" 71 | lodash "^4.2.0" 72 | to-fast-properties "^2.0.0" 73 | 74 | "@types/node@*": 75 | version "9.4.6" 76 | resolved "https://registry.yarnpkg.com/@types/node/-/node-9.4.6.tgz#d8176d864ee48753d053783e4e463aec86b8d82e" 77 | 78 | acorn-jsx@^3.0.0: 79 | version "3.0.1" 80 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" 81 | dependencies: 82 | acorn "^3.0.4" 83 | 84 | acorn@^3.0.4: 85 | version "3.3.0" 86 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 87 | 88 | acorn@^5.5.0: 89 | version "5.5.3" 90 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" 91 | 92 | ajv-keywords@^2.1.0: 93 | version "2.1.1" 94 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" 95 | 96 | ajv@^5.2.3, ajv@^5.3.0: 97 | version "5.5.2" 98 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" 99 | dependencies: 100 | co "^4.6.0" 101 | fast-deep-equal "^1.0.0" 102 | fast-json-stable-stringify "^2.0.0" 103 | json-schema-traverse "^0.3.0" 104 | 105 | ansi-escapes@^1.1.0: 106 | version "1.4.0" 107 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" 108 | 109 | ansi-escapes@^3.0.0: 110 | version "3.0.0" 111 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" 112 | 113 | ansi-regex@^2.0.0: 114 | version "2.1.1" 115 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 116 | 117 | ansi-regex@^3.0.0: 118 | version "3.0.0" 119 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 120 | 121 | ansi-styles@^2.2.1: 122 | version "2.2.1" 123 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 124 | 125 | ansi-styles@^3.1.0, ansi-styles@^3.2.0: 126 | version "3.2.0" 127 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" 128 | dependencies: 129 | color-convert "^1.9.0" 130 | 131 | ansi-styles@^3.2.1: 132 | version "3.2.1" 133 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 134 | dependencies: 135 | color-convert "^1.9.0" 136 | 137 | ansi@^0.3.0, ansi@~0.3.1: 138 | version "0.3.1" 139 | resolved "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz#0c42d4fb17160d5a9af1e484bace1c66922c1b21" 140 | 141 | any-promise@^1.0.0: 142 | version "1.3.0" 143 | resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" 144 | 145 | are-we-there-yet@~1.1.2: 146 | version "1.1.4" 147 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" 148 | dependencies: 149 | delegates "^1.0.0" 150 | readable-stream "^2.0.6" 151 | 152 | argparse@^1.0.7: 153 | version "1.0.10" 154 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 155 | dependencies: 156 | sprintf-js "~1.0.2" 157 | 158 | array-union@^1.0.1: 159 | version "1.0.2" 160 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 161 | dependencies: 162 | array-uniq "^1.0.1" 163 | 164 | array-uniq@^1.0.1: 165 | version "1.0.3" 166 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 167 | 168 | arrify@^1.0.0: 169 | version "1.0.1" 170 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 171 | 172 | async@~1.0.0: 173 | version "1.0.0" 174 | resolved "https://registry.yarnpkg.com/async/-/async-1.0.0.tgz#f8fc04ca3a13784ade9e1641af98578cfbd647a9" 175 | 176 | babel-code-frame@^6.22.0: 177 | version "6.26.0" 178 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 179 | dependencies: 180 | chalk "^1.1.3" 181 | esutils "^2.0.2" 182 | js-tokens "^3.0.2" 183 | 184 | babel-eslint@^8.2.2: 185 | version "8.2.2" 186 | resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.2.tgz#1102273354c6f0b29b4ea28a65f97d122296b68b" 187 | dependencies: 188 | "@babel/code-frame" "^7.0.0-beta.40" 189 | "@babel/traverse" "^7.0.0-beta.40" 190 | "@babel/types" "^7.0.0-beta.40" 191 | babylon "^7.0.0-beta.40" 192 | eslint-scope "~3.7.1" 193 | eslint-visitor-keys "^1.0.0" 194 | 195 | babylon@7.0.0-beta.40, babylon@^7.0.0-beta.40: 196 | version "7.0.0-beta.40" 197 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.40.tgz#91fc8cd56d5eb98b28e6fde41045f2957779940a" 198 | 199 | balanced-match@^1.0.0: 200 | version "1.0.0" 201 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 202 | 203 | bluebird@^3.4.7: 204 | version "3.5.1" 205 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" 206 | 207 | brace-expansion@^1.1.7: 208 | version "1.1.9" 209 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.9.tgz#acdc7dde0e939fb3b32fe933336573e2a7dc2b7c" 210 | dependencies: 211 | balanced-match "^1.0.0" 212 | concat-map "0.0.1" 213 | 214 | caller-path@^0.1.0: 215 | version "0.1.0" 216 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 217 | dependencies: 218 | callsites "^0.2.0" 219 | 220 | callsites@^0.2.0: 221 | version "0.2.0" 222 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 223 | 224 | camel-case@^3.0.0: 225 | version "3.0.0" 226 | resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" 227 | dependencies: 228 | no-case "^2.2.0" 229 | upper-case "^1.1.1" 230 | 231 | camelcase@^4.1.0: 232 | version "4.1.0" 233 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 234 | 235 | caporal@^0.9.0: 236 | version "0.9.0" 237 | resolved "https://registry.yarnpkg.com/caporal/-/caporal-0.9.0.tgz#4c2434a8d4ec5fe25161ccc9cb076d8848949998" 238 | dependencies: 239 | bluebird "^3.4.7" 240 | chalk "^1.1.3" 241 | cli-table2 "^0.2.0" 242 | fast-levenshtein "^2.0.6" 243 | lodash.camelcase "^4.3.0" 244 | lodash.kebabcase "^4.1.1" 245 | micromist "^1.0.1" 246 | prettyjson "^1.2.1" 247 | tabtab "^2.2.2" 248 | winston "^2.3.1" 249 | 250 | chalk@^1.0.0, chalk@^1.1.3: 251 | version "1.1.3" 252 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 253 | dependencies: 254 | ansi-styles "^2.2.1" 255 | escape-string-regexp "^1.0.2" 256 | has-ansi "^2.0.0" 257 | strip-ansi "^3.0.0" 258 | supports-color "^2.0.0" 259 | 260 | chalk@^2.0.0: 261 | version "2.3.0" 262 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" 263 | dependencies: 264 | ansi-styles "^3.1.0" 265 | escape-string-regexp "^1.0.5" 266 | supports-color "^4.0.0" 267 | 268 | chalk@^2.1.0: 269 | version "2.3.2" 270 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" 271 | dependencies: 272 | ansi-styles "^3.2.1" 273 | escape-string-regexp "^1.0.5" 274 | supports-color "^5.3.0" 275 | 276 | chalk@^2.3.0, chalk@^2.3.1: 277 | version "2.3.1" 278 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.1.tgz#523fe2678aec7b04e8041909292fe8b17059b796" 279 | dependencies: 280 | ansi-styles "^3.2.0" 281 | escape-string-regexp "^1.0.5" 282 | supports-color "^5.2.0" 283 | 284 | change-case@^3.0.1: 285 | version "3.0.1" 286 | resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.0.1.tgz#ee5f5ad0415ad1ad9e8072cf49cd4cfa7660a554" 287 | dependencies: 288 | camel-case "^3.0.0" 289 | constant-case "^2.0.0" 290 | dot-case "^2.1.0" 291 | header-case "^1.0.0" 292 | is-lower-case "^1.1.0" 293 | is-upper-case "^1.1.0" 294 | lower-case "^1.1.1" 295 | lower-case-first "^1.0.0" 296 | no-case "^2.2.0" 297 | param-case "^2.1.0" 298 | pascal-case "^2.0.0" 299 | path-case "^2.1.0" 300 | sentence-case "^2.1.0" 301 | snake-case "^2.1.0" 302 | swap-case "^1.1.0" 303 | title-case "^2.1.0" 304 | upper-case "^1.1.1" 305 | upper-case-first "^1.1.0" 306 | 307 | chardet@^0.4.0: 308 | version "0.4.2" 309 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" 310 | 311 | circular-json@^0.3.1: 312 | version "0.3.3" 313 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" 314 | 315 | cli-cursor@^1.0.1: 316 | version "1.0.2" 317 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" 318 | dependencies: 319 | restore-cursor "^1.0.1" 320 | 321 | cli-cursor@^2.1.0: 322 | version "2.1.0" 323 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 324 | dependencies: 325 | restore-cursor "^2.0.0" 326 | 327 | cli-highlight@^1.2.3: 328 | version "1.2.3" 329 | resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-1.2.3.tgz#b200f97ed0e43d24633e89de0f489a48bb87d2bf" 330 | dependencies: 331 | chalk "^2.3.0" 332 | highlight.js "^9.6.0" 333 | mz "^2.4.0" 334 | parse5 "^3.0.3" 335 | yargs "^10.0.3" 336 | 337 | cli-table2@^0.2.0: 338 | version "0.2.0" 339 | resolved "https://registry.yarnpkg.com/cli-table2/-/cli-table2-0.2.0.tgz#2d1ef7f218a0e786e214540562d4bd177fe32d97" 340 | dependencies: 341 | lodash "^3.10.1" 342 | string-width "^1.0.1" 343 | optionalDependencies: 344 | colors "^1.1.2" 345 | 346 | cli-width@^2.0.0: 347 | version "2.2.0" 348 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" 349 | 350 | cliui@^4.0.0: 351 | version "4.0.0" 352 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc" 353 | dependencies: 354 | string-width "^2.1.1" 355 | strip-ansi "^4.0.0" 356 | wrap-ansi "^2.0.0" 357 | 358 | co@^4.6.0: 359 | version "4.6.0" 360 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 361 | 362 | code-point-at@^1.0.0: 363 | version "1.1.0" 364 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 365 | 366 | color-convert@^1.9.0: 367 | version "1.9.1" 368 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" 369 | dependencies: 370 | color-name "^1.1.1" 371 | 372 | color-name@^1.1.1: 373 | version "1.1.3" 374 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 375 | 376 | colors@1.0.x: 377 | version "1.0.3" 378 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" 379 | 380 | colors@^1.1.2: 381 | version "1.1.2" 382 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" 383 | 384 | concat-map@0.0.1: 385 | version "0.0.1" 386 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 387 | 388 | concat-stream@^1.4.7: 389 | version "1.6.0" 390 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" 391 | dependencies: 392 | inherits "^2.0.3" 393 | readable-stream "^2.2.2" 394 | typedarray "^0.0.6" 395 | 396 | concat-stream@^1.6.0: 397 | version "1.6.1" 398 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.1.tgz#261b8f518301f1d834e36342b9fea095d2620a26" 399 | dependencies: 400 | inherits "^2.0.3" 401 | readable-stream "^2.2.2" 402 | typedarray "^0.0.6" 403 | 404 | constant-case@^2.0.0: 405 | version "2.0.0" 406 | resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-2.0.0.tgz#4175764d389d3fa9c8ecd29186ed6005243b6a46" 407 | dependencies: 408 | snake-case "^2.1.0" 409 | upper-case "^1.1.1" 410 | 411 | core-util-is@~1.0.0: 412 | version "1.0.2" 413 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 414 | 415 | cross-spawn@^5.0.1, cross-spawn@^5.1.0: 416 | version "5.1.0" 417 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 418 | dependencies: 419 | lru-cache "^4.0.1" 420 | shebang-command "^1.2.0" 421 | which "^1.2.9" 422 | 423 | cycle@1.0.x: 424 | version "1.0.3" 425 | resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2" 426 | 427 | debug@^2.2.0: 428 | version "2.6.9" 429 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 430 | dependencies: 431 | ms "2.0.0" 432 | 433 | debug@^3.0.1, debug@^3.1.0: 434 | version "3.1.0" 435 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 436 | dependencies: 437 | ms "2.0.0" 438 | 439 | decamelize@^1.1.1: 440 | version "1.2.0" 441 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 442 | 443 | deep-is@~0.1.3: 444 | version "0.1.3" 445 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 446 | 447 | del@^2.0.2: 448 | version "2.2.2" 449 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" 450 | dependencies: 451 | globby "^5.0.0" 452 | is-path-cwd "^1.0.0" 453 | is-path-in-cwd "^1.0.0" 454 | object-assign "^4.0.1" 455 | pify "^2.0.0" 456 | pinkie-promise "^2.0.0" 457 | rimraf "^2.2.8" 458 | 459 | delegates@^1.0.0: 460 | version "1.0.0" 461 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 462 | 463 | doctrine@^2.1.0: 464 | version "2.1.0" 465 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 466 | dependencies: 467 | esutils "^2.0.2" 468 | 469 | dot-case@^2.1.0: 470 | version "2.1.1" 471 | resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-2.1.1.tgz#34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee" 472 | dependencies: 473 | no-case "^2.2.0" 474 | 475 | ejs@^2.5.7: 476 | version "2.5.7" 477 | resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a" 478 | 479 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 480 | version "1.0.5" 481 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 482 | 483 | eslint-scope@^3.7.1, eslint-scope@~3.7.1: 484 | version "3.7.1" 485 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" 486 | dependencies: 487 | esrecurse "^4.1.0" 488 | estraverse "^4.1.1" 489 | 490 | eslint-visitor-keys@^1.0.0: 491 | version "1.0.0" 492 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" 493 | 494 | eslint@^4.18.2: 495 | version "4.18.2" 496 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.2.tgz#0f81267ad1012e7d2051e186a9004cc2267b8d45" 497 | dependencies: 498 | ajv "^5.3.0" 499 | babel-code-frame "^6.22.0" 500 | chalk "^2.1.0" 501 | concat-stream "^1.6.0" 502 | cross-spawn "^5.1.0" 503 | debug "^3.1.0" 504 | doctrine "^2.1.0" 505 | eslint-scope "^3.7.1" 506 | eslint-visitor-keys "^1.0.0" 507 | espree "^3.5.2" 508 | esquery "^1.0.0" 509 | esutils "^2.0.2" 510 | file-entry-cache "^2.0.0" 511 | functional-red-black-tree "^1.0.1" 512 | glob "^7.1.2" 513 | globals "^11.0.1" 514 | ignore "^3.3.3" 515 | imurmurhash "^0.1.4" 516 | inquirer "^3.0.6" 517 | is-resolvable "^1.0.0" 518 | js-yaml "^3.9.1" 519 | json-stable-stringify-without-jsonify "^1.0.1" 520 | levn "^0.3.0" 521 | lodash "^4.17.4" 522 | minimatch "^3.0.2" 523 | mkdirp "^0.5.1" 524 | natural-compare "^1.4.0" 525 | optionator "^0.8.2" 526 | path-is-inside "^1.0.2" 527 | pluralize "^7.0.0" 528 | progress "^2.0.0" 529 | require-uncached "^1.0.3" 530 | semver "^5.3.0" 531 | strip-ansi "^4.0.0" 532 | strip-json-comments "~2.0.1" 533 | table "4.0.2" 534 | text-table "~0.2.0" 535 | 536 | espree@^3.5.2: 537 | version "3.5.4" 538 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" 539 | dependencies: 540 | acorn "^5.5.0" 541 | acorn-jsx "^3.0.0" 542 | 543 | esprima@^4.0.0: 544 | version "4.0.0" 545 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" 546 | 547 | esquery@^1.0.0: 548 | version "1.0.0" 549 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" 550 | dependencies: 551 | estraverse "^4.0.0" 552 | 553 | esrecurse@^4.1.0: 554 | version "4.2.1" 555 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 556 | dependencies: 557 | estraverse "^4.1.0" 558 | 559 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: 560 | version "4.2.0" 561 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 562 | 563 | esutils@^2.0.2: 564 | version "2.0.2" 565 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 566 | 567 | execa@^0.7.0: 568 | version "0.7.0" 569 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" 570 | dependencies: 571 | cross-spawn "^5.0.1" 572 | get-stream "^3.0.0" 573 | is-stream "^1.1.0" 574 | npm-run-path "^2.0.0" 575 | p-finally "^1.0.0" 576 | signal-exit "^3.0.0" 577 | strip-eof "^1.0.0" 578 | 579 | exit-hook@^1.0.0: 580 | version "1.1.1" 581 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" 582 | 583 | extend@^3.0.0: 584 | version "3.0.1" 585 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 586 | 587 | external-editor@^1.1.0: 588 | version "1.1.1" 589 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-1.1.1.tgz#12d7b0db850f7ff7e7081baf4005700060c4600b" 590 | dependencies: 591 | extend "^3.0.0" 592 | spawn-sync "^1.0.15" 593 | tmp "^0.0.29" 594 | 595 | external-editor@^2.0.4, external-editor@^2.1.0: 596 | version "2.1.0" 597 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" 598 | dependencies: 599 | chardet "^0.4.0" 600 | iconv-lite "^0.4.17" 601 | tmp "^0.0.33" 602 | 603 | eyes@0.1.x: 604 | version "0.1.8" 605 | resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" 606 | 607 | fast-deep-equal@^1.0.0: 608 | version "1.1.0" 609 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" 610 | 611 | fast-json-stable-stringify@^2.0.0: 612 | version "2.0.0" 613 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 614 | 615 | fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.4: 616 | version "2.0.6" 617 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 618 | 619 | figures@^1.3.5: 620 | version "1.7.0" 621 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" 622 | dependencies: 623 | escape-string-regexp "^1.0.5" 624 | object-assign "^4.1.0" 625 | 626 | figures@^2.0.0: 627 | version "2.0.0" 628 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 629 | dependencies: 630 | escape-string-regexp "^1.0.5" 631 | 632 | file-entry-cache@^2.0.0: 633 | version "2.0.0" 634 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" 635 | dependencies: 636 | flat-cache "^1.2.1" 637 | object-assign "^4.0.1" 638 | 639 | find-up@^2.1.0: 640 | version "2.1.0" 641 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 642 | dependencies: 643 | locate-path "^2.0.0" 644 | 645 | flat-cache@^1.2.1: 646 | version "1.3.0" 647 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" 648 | dependencies: 649 | circular-json "^0.3.1" 650 | del "^2.0.2" 651 | graceful-fs "^4.1.2" 652 | write "^0.2.1" 653 | 654 | fs.realpath@^1.0.0: 655 | version "1.0.0" 656 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 657 | 658 | functional-red-black-tree@^1.0.1: 659 | version "1.0.1" 660 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 661 | 662 | gauge@~1.2.5: 663 | version "1.2.7" 664 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-1.2.7.tgz#e9cec5483d3d4ee0ef44b60a7d99e4935e136d93" 665 | dependencies: 666 | ansi "^0.3.0" 667 | has-unicode "^2.0.0" 668 | lodash.pad "^4.1.0" 669 | lodash.padend "^4.1.0" 670 | lodash.padstart "^4.1.0" 671 | 672 | get-caller-file@^1.0.1: 673 | version "1.0.2" 674 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" 675 | 676 | get-stream@^3.0.0: 677 | version "3.0.0" 678 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 679 | 680 | glob@^7.0.3, glob@^7.0.5, glob@^7.1.2: 681 | version "7.1.2" 682 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 683 | dependencies: 684 | fs.realpath "^1.0.0" 685 | inflight "^1.0.4" 686 | inherits "2" 687 | minimatch "^3.0.4" 688 | once "^1.3.0" 689 | path-is-absolute "^1.0.0" 690 | 691 | globals@^11.0.1, globals@^11.1.0: 692 | version "11.3.0" 693 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.3.0.tgz#e04fdb7b9796d8adac9c8f64c14837b2313378b0" 694 | 695 | globby@^5.0.0: 696 | version "5.0.0" 697 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" 698 | dependencies: 699 | array-union "^1.0.1" 700 | arrify "^1.0.0" 701 | glob "^7.0.3" 702 | object-assign "^4.0.1" 703 | pify "^2.0.0" 704 | pinkie-promise "^2.0.0" 705 | 706 | graceful-fs@^4.1.2: 707 | version "4.1.11" 708 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 709 | 710 | has-ansi@^2.0.0: 711 | version "2.0.0" 712 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 713 | dependencies: 714 | ansi-regex "^2.0.0" 715 | 716 | has-flag@^2.0.0: 717 | version "2.0.0" 718 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" 719 | 720 | has-flag@^3.0.0: 721 | version "3.0.0" 722 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 723 | 724 | has-unicode@^2.0.0: 725 | version "2.0.1" 726 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 727 | 728 | header-case@^1.0.0: 729 | version "1.0.1" 730 | resolved "https://registry.yarnpkg.com/header-case/-/header-case-1.0.1.tgz#9535973197c144b09613cd65d317ef19963bd02d" 731 | dependencies: 732 | no-case "^2.2.0" 733 | upper-case "^1.1.3" 734 | 735 | highlight.js@^9.6.0: 736 | version "9.12.0" 737 | resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.12.0.tgz#e6d9dbe57cbefe60751f02af336195870c90c01e" 738 | 739 | iconv-lite@^0.4.17: 740 | version "0.4.19" 741 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" 742 | 743 | ignore@^3.3.3: 744 | version "3.3.7" 745 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" 746 | 747 | imurmurhash@^0.1.4: 748 | version "0.1.4" 749 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 750 | 751 | inflight@^1.0.4: 752 | version "1.0.6" 753 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 754 | dependencies: 755 | once "^1.3.0" 756 | wrappy "1" 757 | 758 | inherits@2, inherits@^2.0.3, inherits@~2.0.3: 759 | version "2.0.3" 760 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 761 | 762 | inquirer@^1.0.2: 763 | version "1.2.3" 764 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-1.2.3.tgz#4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918" 765 | dependencies: 766 | ansi-escapes "^1.1.0" 767 | chalk "^1.0.0" 768 | cli-cursor "^1.0.1" 769 | cli-width "^2.0.0" 770 | external-editor "^1.1.0" 771 | figures "^1.3.5" 772 | lodash "^4.3.0" 773 | mute-stream "0.0.6" 774 | pinkie-promise "^2.0.0" 775 | run-async "^2.2.0" 776 | rx "^4.1.0" 777 | string-width "^1.0.1" 778 | strip-ansi "^3.0.0" 779 | through "^2.3.6" 780 | 781 | inquirer@^3.0.6: 782 | version "3.3.0" 783 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" 784 | dependencies: 785 | ansi-escapes "^3.0.0" 786 | chalk "^2.0.0" 787 | cli-cursor "^2.1.0" 788 | cli-width "^2.0.0" 789 | external-editor "^2.0.4" 790 | figures "^2.0.0" 791 | lodash "^4.3.0" 792 | mute-stream "0.0.7" 793 | run-async "^2.2.0" 794 | rx-lite "^4.0.8" 795 | rx-lite-aggregates "^4.0.8" 796 | string-width "^2.1.0" 797 | strip-ansi "^4.0.0" 798 | through "^2.3.6" 799 | 800 | inquirer@^5.1.0: 801 | version "5.1.0" 802 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.1.0.tgz#19da508931892328abbbdd4c477f1efc65abfd67" 803 | dependencies: 804 | ansi-escapes "^3.0.0" 805 | chalk "^2.0.0" 806 | cli-cursor "^2.1.0" 807 | cli-width "^2.0.0" 808 | external-editor "^2.1.0" 809 | figures "^2.0.0" 810 | lodash "^4.3.0" 811 | mute-stream "0.0.7" 812 | run-async "^2.2.0" 813 | rxjs "^5.5.2" 814 | string-width "^2.1.0" 815 | strip-ansi "^4.0.0" 816 | through "^2.3.6" 817 | 818 | invariant@^2.2.0: 819 | version "2.2.3" 820 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.3.tgz#1a827dfde7dcbd7c323f0ca826be8fa7c5e9d688" 821 | dependencies: 822 | loose-envify "^1.0.0" 823 | 824 | invert-kv@^1.0.0: 825 | version "1.0.0" 826 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" 827 | 828 | is-fullwidth-code-point@^1.0.0: 829 | version "1.0.0" 830 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 831 | dependencies: 832 | number-is-nan "^1.0.0" 833 | 834 | is-fullwidth-code-point@^2.0.0: 835 | version "2.0.0" 836 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 837 | 838 | is-lower-case@^1.1.0: 839 | version "1.1.3" 840 | resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393" 841 | dependencies: 842 | lower-case "^1.1.0" 843 | 844 | is-path-cwd@^1.0.0: 845 | version "1.0.0" 846 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 847 | 848 | is-path-in-cwd@^1.0.0: 849 | version "1.0.0" 850 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" 851 | dependencies: 852 | is-path-inside "^1.0.0" 853 | 854 | is-path-inside@^1.0.0: 855 | version "1.0.1" 856 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" 857 | dependencies: 858 | path-is-inside "^1.0.1" 859 | 860 | is-promise@^2.1.0: 861 | version "2.1.0" 862 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 863 | 864 | is-resolvable@^1.0.0: 865 | version "1.1.0" 866 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" 867 | 868 | is-stream@^1.1.0: 869 | version "1.1.0" 870 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 871 | 872 | is-upper-case@^1.1.0: 873 | version "1.1.2" 874 | resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" 875 | dependencies: 876 | upper-case "^1.1.0" 877 | 878 | isarray@~1.0.0: 879 | version "1.0.0" 880 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 881 | 882 | isexe@^2.0.0: 883 | version "2.0.0" 884 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 885 | 886 | isstream@0.1.x: 887 | version "0.1.2" 888 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 889 | 890 | js-tokens@^3.0.0, js-tokens@^3.0.2: 891 | version "3.0.2" 892 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 893 | 894 | js-yaml@^3.9.1: 895 | version "3.11.0" 896 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" 897 | dependencies: 898 | argparse "^1.0.7" 899 | esprima "^4.0.0" 900 | 901 | jsesc@^2.5.1: 902 | version "2.5.1" 903 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" 904 | 905 | json-schema-traverse@^0.3.0: 906 | version "0.3.1" 907 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 908 | 909 | json-stable-stringify-without-jsonify@^1.0.1: 910 | version "1.0.1" 911 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 912 | 913 | lcid@^1.0.0: 914 | version "1.0.0" 915 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" 916 | dependencies: 917 | invert-kv "^1.0.0" 918 | 919 | levn@^0.3.0, levn@~0.3.0: 920 | version "0.3.0" 921 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 922 | dependencies: 923 | prelude-ls "~1.1.2" 924 | type-check "~0.3.2" 925 | 926 | locate-path@^2.0.0: 927 | version "2.0.0" 928 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 929 | dependencies: 930 | p-locate "^2.0.0" 931 | path-exists "^3.0.0" 932 | 933 | lodash.camelcase@^4.3.0: 934 | version "4.3.0" 935 | resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" 936 | 937 | lodash.difference@^4.5.0: 938 | version "4.5.0" 939 | resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" 940 | 941 | lodash.kebabcase@^4.1.1: 942 | version "4.1.1" 943 | resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" 944 | 945 | lodash.pad@^4.1.0: 946 | version "4.5.1" 947 | resolved "https://registry.yarnpkg.com/lodash.pad/-/lodash.pad-4.5.1.tgz#4330949a833a7c8da22cc20f6a26c4d59debba70" 948 | 949 | lodash.padend@^4.1.0: 950 | version "4.6.1" 951 | resolved "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz#53ccba047d06e158d311f45da625f4e49e6f166e" 952 | 953 | lodash.padstart@^4.1.0: 954 | version "4.6.1" 955 | resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" 956 | 957 | lodash.uniq@^4.5.0: 958 | version "4.5.0" 959 | resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" 960 | 961 | lodash@^3.10.1: 962 | version "3.10.1" 963 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" 964 | 965 | lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.3.0: 966 | version "4.17.5" 967 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" 968 | 969 | loose-envify@^1.0.0: 970 | version "1.3.1" 971 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 972 | dependencies: 973 | js-tokens "^3.0.0" 974 | 975 | lower-case-first@^1.0.0: 976 | version "1.0.2" 977 | resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1" 978 | dependencies: 979 | lower-case "^1.1.2" 980 | 981 | lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2: 982 | version "1.1.4" 983 | resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" 984 | 985 | lru-cache@^4.0.1: 986 | version "4.1.1" 987 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" 988 | dependencies: 989 | pseudomap "^1.0.2" 990 | yallist "^2.1.2" 991 | 992 | mem@^1.1.0: 993 | version "1.1.0" 994 | resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" 995 | dependencies: 996 | mimic-fn "^1.0.0" 997 | 998 | micromist@^1.0.1: 999 | version "1.0.2" 1000 | resolved "https://registry.yarnpkg.com/micromist/-/micromist-1.0.2.tgz#41f84949a04c30cdc60a394d0cb06aaa08b86364" 1001 | dependencies: 1002 | lodash.camelcase "^4.3.0" 1003 | 1004 | mimic-fn@^1.0.0: 1005 | version "1.2.0" 1006 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 1007 | 1008 | minimatch@^3.0.2, minimatch@^3.0.4: 1009 | version "3.0.4" 1010 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1011 | dependencies: 1012 | brace-expansion "^1.1.7" 1013 | 1014 | minimist@0.0.8: 1015 | version "0.0.8" 1016 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1017 | 1018 | minimist@^1.2.0: 1019 | version "1.2.0" 1020 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1021 | 1022 | mkdirp@^0.5.1: 1023 | version "0.5.1" 1024 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1025 | dependencies: 1026 | minimist "0.0.8" 1027 | 1028 | ms@2.0.0: 1029 | version "2.0.0" 1030 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1031 | 1032 | mute-stream@0.0.6: 1033 | version "0.0.6" 1034 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db" 1035 | 1036 | mute-stream@0.0.7: 1037 | version "0.0.7" 1038 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 1039 | 1040 | mz@^2.4.0: 1041 | version "2.7.0" 1042 | resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" 1043 | dependencies: 1044 | any-promise "^1.0.0" 1045 | object-assign "^4.0.1" 1046 | thenify-all "^1.0.0" 1047 | 1048 | natural-compare@^1.4.0: 1049 | version "1.4.0" 1050 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1051 | 1052 | no-case@^2.2.0: 1053 | version "2.3.2" 1054 | resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" 1055 | dependencies: 1056 | lower-case "^1.1.1" 1057 | 1058 | npm-run-path@^2.0.0: 1059 | version "2.0.2" 1060 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 1061 | dependencies: 1062 | path-key "^2.0.0" 1063 | 1064 | npmlog@^2.0.3: 1065 | version "2.0.4" 1066 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-2.0.4.tgz#98b52530f2514ca90d09ec5b22c8846722375692" 1067 | dependencies: 1068 | ansi "~0.3.1" 1069 | are-we-there-yet "~1.1.2" 1070 | gauge "~1.2.5" 1071 | 1072 | number-is-nan@^1.0.0: 1073 | version "1.0.1" 1074 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1075 | 1076 | object-assign@^4.0.1, object-assign@^4.1.0: 1077 | version "4.1.1" 1078 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1079 | 1080 | once@^1.3.0: 1081 | version "1.4.0" 1082 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1083 | dependencies: 1084 | wrappy "1" 1085 | 1086 | onetime@^1.0.0: 1087 | version "1.1.0" 1088 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" 1089 | 1090 | onetime@^2.0.0: 1091 | version "2.0.1" 1092 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 1093 | dependencies: 1094 | mimic-fn "^1.0.0" 1095 | 1096 | optionator@^0.8.2: 1097 | version "0.8.2" 1098 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 1099 | dependencies: 1100 | deep-is "~0.1.3" 1101 | fast-levenshtein "~2.0.4" 1102 | levn "~0.3.0" 1103 | prelude-ls "~1.1.2" 1104 | type-check "~0.3.2" 1105 | wordwrap "~1.0.0" 1106 | 1107 | os-locale@^2.0.0: 1108 | version "2.1.0" 1109 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" 1110 | dependencies: 1111 | execa "^0.7.0" 1112 | lcid "^1.0.0" 1113 | mem "^1.1.0" 1114 | 1115 | os-shim@^0.1.2: 1116 | version "0.1.3" 1117 | resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" 1118 | 1119 | os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: 1120 | version "1.0.2" 1121 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1122 | 1123 | p-finally@^1.0.0: 1124 | version "1.0.0" 1125 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 1126 | 1127 | p-limit@^1.1.0: 1128 | version "1.2.0" 1129 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" 1130 | dependencies: 1131 | p-try "^1.0.0" 1132 | 1133 | p-locate@^2.0.0: 1134 | version "2.0.0" 1135 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 1136 | dependencies: 1137 | p-limit "^1.1.0" 1138 | 1139 | p-try@^1.0.0: 1140 | version "1.0.0" 1141 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 1142 | 1143 | param-case@^2.1.0: 1144 | version "2.1.1" 1145 | resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" 1146 | dependencies: 1147 | no-case "^2.2.0" 1148 | 1149 | parse5@^3.0.3: 1150 | version "3.0.3" 1151 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" 1152 | dependencies: 1153 | "@types/node" "*" 1154 | 1155 | pascal-case@^2.0.0: 1156 | version "2.0.1" 1157 | resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-2.0.1.tgz#2d578d3455f660da65eca18ef95b4e0de912761e" 1158 | dependencies: 1159 | camel-case "^3.0.0" 1160 | upper-case-first "^1.1.0" 1161 | 1162 | path-case@^2.1.0: 1163 | version "2.1.1" 1164 | resolved "https://registry.yarnpkg.com/path-case/-/path-case-2.1.1.tgz#94b8037c372d3fe2906e465bb45e25d226e8eea5" 1165 | dependencies: 1166 | no-case "^2.2.0" 1167 | 1168 | path-exists@^3.0.0: 1169 | version "3.0.0" 1170 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1171 | 1172 | path-is-absolute@^1.0.0: 1173 | version "1.0.1" 1174 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1175 | 1176 | path-is-inside@^1.0.1, path-is-inside@^1.0.2: 1177 | version "1.0.2" 1178 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 1179 | 1180 | path-key@^2.0.0: 1181 | version "2.0.1" 1182 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1183 | 1184 | pify@^2.0.0: 1185 | version "2.3.0" 1186 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1187 | 1188 | pinkie-promise@^2.0.0: 1189 | version "2.0.1" 1190 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 1191 | dependencies: 1192 | pinkie "^2.0.0" 1193 | 1194 | pinkie@^2.0.0: 1195 | version "2.0.4" 1196 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 1197 | 1198 | pluralize@^7.0.0: 1199 | version "7.0.0" 1200 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" 1201 | 1202 | prelude-ls@~1.1.2: 1203 | version "1.1.2" 1204 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 1205 | 1206 | prettyjson@^1.2.1: 1207 | version "1.2.1" 1208 | resolved "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.1.tgz#fcffab41d19cab4dfae5e575e64246619b12d289" 1209 | dependencies: 1210 | colors "^1.1.2" 1211 | minimist "^1.2.0" 1212 | 1213 | process-nextick-args@~1.0.6: 1214 | version "1.0.7" 1215 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 1216 | 1217 | progress@^2.0.0: 1218 | version "2.0.0" 1219 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" 1220 | 1221 | pseudomap@^1.0.2: 1222 | version "1.0.2" 1223 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 1224 | 1225 | readable-stream@^2.0.6, readable-stream@^2.2.2: 1226 | version "2.3.3" 1227 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" 1228 | dependencies: 1229 | core-util-is "~1.0.0" 1230 | inherits "~2.0.3" 1231 | isarray "~1.0.0" 1232 | process-nextick-args "~1.0.6" 1233 | safe-buffer "~5.1.1" 1234 | string_decoder "~1.0.3" 1235 | util-deprecate "~1.0.1" 1236 | 1237 | require-directory@^2.1.1: 1238 | version "2.1.1" 1239 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 1240 | 1241 | require-main-filename@^1.0.1: 1242 | version "1.0.1" 1243 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 1244 | 1245 | require-uncached@^1.0.3: 1246 | version "1.0.3" 1247 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 1248 | dependencies: 1249 | caller-path "^0.1.0" 1250 | resolve-from "^1.0.0" 1251 | 1252 | resolve-from@^1.0.0: 1253 | version "1.0.1" 1254 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 1255 | 1256 | restore-cursor@^1.0.1: 1257 | version "1.0.1" 1258 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" 1259 | dependencies: 1260 | exit-hook "^1.0.0" 1261 | onetime "^1.0.0" 1262 | 1263 | restore-cursor@^2.0.0: 1264 | version "2.0.0" 1265 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 1266 | dependencies: 1267 | onetime "^2.0.0" 1268 | signal-exit "^3.0.2" 1269 | 1270 | rimraf@^2.2.8: 1271 | version "2.6.2" 1272 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 1273 | dependencies: 1274 | glob "^7.0.5" 1275 | 1276 | run-async@^2.2.0: 1277 | version "2.3.0" 1278 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 1279 | dependencies: 1280 | is-promise "^2.1.0" 1281 | 1282 | rx-lite-aggregates@^4.0.8: 1283 | version "4.0.8" 1284 | resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" 1285 | dependencies: 1286 | rx-lite "*" 1287 | 1288 | rx-lite@*, rx-lite@^4.0.8: 1289 | version "4.0.8" 1290 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" 1291 | 1292 | rx@^4.1.0: 1293 | version "4.1.0" 1294 | resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" 1295 | 1296 | rxjs@^5.5.2: 1297 | version "5.5.6" 1298 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.6.tgz#e31fb96d6fd2ff1fd84bcea8ae9c02d007179c02" 1299 | dependencies: 1300 | symbol-observable "1.0.1" 1301 | 1302 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1303 | version "5.1.1" 1304 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 1305 | 1306 | semver@^5.3.0: 1307 | version "5.5.0" 1308 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 1309 | 1310 | sentence-case@^2.1.0: 1311 | version "2.1.1" 1312 | resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-2.1.1.tgz#1f6e2dda39c168bf92d13f86d4a918933f667ed4" 1313 | dependencies: 1314 | no-case "^2.2.0" 1315 | upper-case-first "^1.1.2" 1316 | 1317 | set-blocking@^2.0.0: 1318 | version "2.0.0" 1319 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1320 | 1321 | shebang-command@^1.2.0: 1322 | version "1.2.0" 1323 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1324 | dependencies: 1325 | shebang-regex "^1.0.0" 1326 | 1327 | shebang-regex@^1.0.0: 1328 | version "1.0.0" 1329 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1330 | 1331 | signal-exit@^3.0.0, signal-exit@^3.0.2: 1332 | version "3.0.2" 1333 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1334 | 1335 | slice-ansi@1.0.0: 1336 | version "1.0.0" 1337 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" 1338 | dependencies: 1339 | is-fullwidth-code-point "^2.0.0" 1340 | 1341 | snake-case@^2.1.0: 1342 | version "2.1.0" 1343 | resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f" 1344 | dependencies: 1345 | no-case "^2.2.0" 1346 | 1347 | source-map@^0.5.0: 1348 | version "0.5.7" 1349 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 1350 | 1351 | spawn-sync@^1.0.15: 1352 | version "1.0.15" 1353 | resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" 1354 | dependencies: 1355 | concat-stream "^1.4.7" 1356 | os-shim "^0.1.2" 1357 | 1358 | sprintf-js@~1.0.2: 1359 | version "1.0.3" 1360 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1361 | 1362 | stack-trace@0.0.x: 1363 | version "0.0.10" 1364 | resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" 1365 | 1366 | string-width@^1.0.1: 1367 | version "1.0.2" 1368 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1369 | dependencies: 1370 | code-point-at "^1.0.0" 1371 | is-fullwidth-code-point "^1.0.0" 1372 | strip-ansi "^3.0.0" 1373 | 1374 | string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: 1375 | version "2.1.1" 1376 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 1377 | dependencies: 1378 | is-fullwidth-code-point "^2.0.0" 1379 | strip-ansi "^4.0.0" 1380 | 1381 | string_decoder@~1.0.3: 1382 | version "1.0.3" 1383 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" 1384 | dependencies: 1385 | safe-buffer "~5.1.0" 1386 | 1387 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 1388 | version "3.0.1" 1389 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1390 | dependencies: 1391 | ansi-regex "^2.0.0" 1392 | 1393 | strip-ansi@^4.0.0: 1394 | version "4.0.0" 1395 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 1396 | dependencies: 1397 | ansi-regex "^3.0.0" 1398 | 1399 | strip-eof@^1.0.0: 1400 | version "1.0.0" 1401 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 1402 | 1403 | strip-json-comments@~2.0.1: 1404 | version "2.0.1" 1405 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1406 | 1407 | supports-color@^2.0.0: 1408 | version "2.0.0" 1409 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1410 | 1411 | supports-color@^4.0.0: 1412 | version "4.5.0" 1413 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" 1414 | dependencies: 1415 | has-flag "^2.0.0" 1416 | 1417 | supports-color@^5.2.0: 1418 | version "5.2.0" 1419 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.2.0.tgz#b0d5333b1184dd3666cbe5aa0b45c5ac7ac17a4a" 1420 | dependencies: 1421 | has-flag "^3.0.0" 1422 | 1423 | supports-color@^5.3.0: 1424 | version "5.3.0" 1425 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" 1426 | dependencies: 1427 | has-flag "^3.0.0" 1428 | 1429 | swap-case@^1.1.0: 1430 | version "1.1.2" 1431 | resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3" 1432 | dependencies: 1433 | lower-case "^1.1.1" 1434 | upper-case "^1.1.1" 1435 | 1436 | symbol-observable@1.0.1: 1437 | version "1.0.1" 1438 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" 1439 | 1440 | table@4.0.2: 1441 | version "4.0.2" 1442 | resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" 1443 | dependencies: 1444 | ajv "^5.2.3" 1445 | ajv-keywords "^2.1.0" 1446 | chalk "^2.1.0" 1447 | lodash "^4.17.4" 1448 | slice-ansi "1.0.0" 1449 | string-width "^2.1.1" 1450 | 1451 | tabtab@^2.2.2: 1452 | version "2.2.2" 1453 | resolved "https://registry.yarnpkg.com/tabtab/-/tabtab-2.2.2.tgz#7a047f143b010b4cbd31f857e82961512cbf4e14" 1454 | dependencies: 1455 | debug "^2.2.0" 1456 | inquirer "^1.0.2" 1457 | lodash.difference "^4.5.0" 1458 | lodash.uniq "^4.5.0" 1459 | minimist "^1.2.0" 1460 | mkdirp "^0.5.1" 1461 | npmlog "^2.0.3" 1462 | object-assign "^4.1.0" 1463 | 1464 | text-table@~0.2.0: 1465 | version "0.2.0" 1466 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1467 | 1468 | thenify-all@^1.0.0: 1469 | version "1.6.0" 1470 | resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" 1471 | dependencies: 1472 | thenify ">= 3.1.0 < 4" 1473 | 1474 | "thenify@>= 3.1.0 < 4": 1475 | version "3.3.0" 1476 | resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" 1477 | dependencies: 1478 | any-promise "^1.0.0" 1479 | 1480 | through@^2.3.6: 1481 | version "2.3.8" 1482 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1483 | 1484 | title-case@^2.1.0: 1485 | version "2.1.1" 1486 | resolved "https://registry.yarnpkg.com/title-case/-/title-case-2.1.1.tgz#3e127216da58d2bc5becf137ab91dae3a7cd8faa" 1487 | dependencies: 1488 | no-case "^2.2.0" 1489 | upper-case "^1.0.3" 1490 | 1491 | tmp@^0.0.29: 1492 | version "0.0.29" 1493 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0" 1494 | dependencies: 1495 | os-tmpdir "~1.0.1" 1496 | 1497 | tmp@^0.0.33: 1498 | version "0.0.33" 1499 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 1500 | dependencies: 1501 | os-tmpdir "~1.0.2" 1502 | 1503 | to-fast-properties@^2.0.0: 1504 | version "2.0.0" 1505 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1506 | 1507 | trim-right@^1.0.1: 1508 | version "1.0.1" 1509 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 1510 | 1511 | type-check@~0.3.2: 1512 | version "0.3.2" 1513 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1514 | dependencies: 1515 | prelude-ls "~1.1.2" 1516 | 1517 | typedarray@^0.0.6: 1518 | version "0.0.6" 1519 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 1520 | 1521 | upper-case-first@^1.1.0, upper-case-first@^1.1.2: 1522 | version "1.1.2" 1523 | resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115" 1524 | dependencies: 1525 | upper-case "^1.1.1" 1526 | 1527 | upper-case@^1.0.3, upper-case@^1.1.0, upper-case@^1.1.1, upper-case@^1.1.3: 1528 | version "1.1.3" 1529 | resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" 1530 | 1531 | util-deprecate@~1.0.1: 1532 | version "1.0.2" 1533 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1534 | 1535 | which-module@^2.0.0: 1536 | version "2.0.0" 1537 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 1538 | 1539 | which@^1.2.9: 1540 | version "1.3.0" 1541 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" 1542 | dependencies: 1543 | isexe "^2.0.0" 1544 | 1545 | winston@^2.3.1: 1546 | version "2.4.0" 1547 | resolved "https://registry.yarnpkg.com/winston/-/winston-2.4.0.tgz#808050b93d52661ed9fb6c26b3f0c826708b0aee" 1548 | dependencies: 1549 | async "~1.0.0" 1550 | colors "1.0.x" 1551 | cycle "1.0.x" 1552 | eyes "0.1.x" 1553 | isstream "0.1.x" 1554 | stack-trace "0.0.x" 1555 | 1556 | wordwrap@~1.0.0: 1557 | version "1.0.0" 1558 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 1559 | 1560 | wrap-ansi@^2.0.0: 1561 | version "2.1.0" 1562 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 1563 | dependencies: 1564 | string-width "^1.0.1" 1565 | strip-ansi "^3.0.1" 1566 | 1567 | wrappy@1: 1568 | version "1.0.2" 1569 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1570 | 1571 | write@^0.2.1: 1572 | version "0.2.1" 1573 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 1574 | dependencies: 1575 | mkdirp "^0.5.1" 1576 | 1577 | y18n@^3.2.1: 1578 | version "3.2.1" 1579 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" 1580 | 1581 | yallist@^2.1.2: 1582 | version "2.1.2" 1583 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 1584 | 1585 | yargs-parser@^8.1.0: 1586 | version "8.1.0" 1587 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" 1588 | dependencies: 1589 | camelcase "^4.1.0" 1590 | 1591 | yargs@^10.0.3: 1592 | version "10.1.2" 1593 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" 1594 | dependencies: 1595 | cliui "^4.0.0" 1596 | decamelize "^1.1.1" 1597 | find-up "^2.1.0" 1598 | get-caller-file "^1.0.1" 1599 | os-locale "^2.0.0" 1600 | require-directory "^2.1.1" 1601 | require-main-filename "^1.0.1" 1602 | set-blocking "^2.0.0" 1603 | string-width "^2.0.0" 1604 | which-module "^2.0.0" 1605 | y18n "^3.2.1" 1606 | yargs-parser "^8.1.0" 1607 | --------------------------------------------------------------------------------