├── .eslintrc ├── .gitignore ├── .travis.yml ├── CHANGELOG.md ├── LICENSE ├── README.md ├── index.js ├── package.json ├── test └── test.js ├── utils.js └── yarn.lock /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "globals": { 3 | "console": false 4 | }, 5 | "env": { 6 | "browser": true, 7 | "node": true, 8 | "mocha": true, 9 | }, 10 | "extends": "airbnb", 11 | "rules": { 12 | "arrow-parens": ["error", "always"], 13 | "class-methods-use-this": "off", 14 | "comma-dangle": ['error', { 15 | arrays: 'always-multiline', 16 | objects: 'always-multiline', 17 | imports: 'always-multiline', 18 | exports: 'always-multiline', 19 | functions: 'ignore', 20 | }], 21 | "func-names": "off", 22 | "no-mixed-operators": "off", 23 | "no-var": "off", 24 | "no-console": "error", 25 | "no-plusplus": "off", 26 | "no-prototype-builtins": "off", 27 | "no-underscore-dangle": "off", 28 | "object-shorthand": "off", 29 | "prefer-arrow-callback": "off", 30 | "prefer-template": "off", 31 | "space-before-function-paren": ["error", "never"], 32 | "vars-on-top": "off", 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | 5 | # Runtime data 6 | pids 7 | *.pid 8 | *.seed 9 | 10 | # Directory for instrumented libs generated by jscoverage/JSCover 11 | lib-cov 12 | 13 | # Coverage directory used by tools like istanbul 14 | coverage 15 | 16 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 17 | .grunt 18 | 19 | # node-waf configuration 20 | .lock-wscript 21 | 22 | # Compiled binary addons (http://nodejs.org/api/addons.html) 23 | build/Release 24 | 25 | # Dependency directory 26 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git 27 | node_modules 28 | *.po 29 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | node_js: 4 | - "6" 5 | script: 6 | - yarn test-ci 7 | cache: yarn 8 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## Unreleased 4 | 5 | - None 6 | 7 | ## 4.1.2 8 | - feat: Update `gettext-parser` to 1.4.0 (#19) 9 | 10 | ## 4.1.1 11 | - feat: Allow functions for `fileName` [@woutervanvliet] (#11) 12 | - fix: Ensure target directory exists [@pabloparejo] (#15) 13 | 14 | ## 4.0.0 15 | - feat: Update to babel 7 [@willdurand] (#17) 16 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 jruchaud 4 | Copyright (c) 2015 Sentry 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://travis-ci.com/getsentry/babel-gettext-extractor.svg?branch=master)](https://travis-ci.org/getsentry/babel-gettext-extractor) 2 | [![npm version](https://img.shields.io/npm/v/babel-gettext-extractor.svg)](https://www.npmjs.com/package/babel-gettext-extractor) 3 | 4 | # babel-gettext-extractor 5 | 6 | Extract gettext string with babel support syntax JSX, ES6, ... It is based on 7 | node-gettext. This is a fork of the npm module `babel-gettext-plugin` which 8 | adds support for references and runs on earlier versions of node. 9 | 10 | Supports babel 7. 11 | 12 | Install 13 | ======== 14 | `yarn add babel-gettext-extractor` 15 | or 16 | `npm install --save babel-gettext-extractor` 17 | 18 | Node use 19 | ======== 20 | 21 | ```js 22 | var babel = require("babel"); 23 | 24 | babel.transform(code, { plugins:["babel-gettext-extractor"]}); 25 | ``` 26 | 27 | Command line use 28 | ================ 29 | 30 | ``` 31 | babel --plugins babel-gettext-extractor code.js 32 | ``` 33 | 34 | Options 35 | ======= 36 | 37 | 38 | ```js 39 | "plugins": [ 40 | [ "babel-gettext-extractor", { 41 | "headers": , 42 | "functionNames": , 43 | "fileName": , 44 | "baseDirectory": , 45 | "stripTemplateLiteralIndent": 46 | }] 47 | ] 48 | ``` 49 | 50 | ### headers ### 51 | The headers to put in the po file. 52 | 53 | ```js 54 | headers: { 55 | "content-type": "text/plain; charset=UTF-8", 56 | "plural-forms": "nplurals=2; plural=(n!=1);" 57 | } 58 | ``` 59 | 60 | ### functionNames ### 61 | 62 | A list of function names to extract. The list is the definition of the 63 | parameters: `"domain"`, `"msgctxt"`, `"msgid"`, `"msgid_plural"` and 64 | `"count"` 65 | 66 | example: 67 | ```js 68 | functionNames: { 69 | myfunction: ["msgid"] 70 | } 71 | ``` 72 | 73 | ### fileName ### 74 | 75 | The filename where the end result is placed. If you supply a function, it will receive the current file babel is working 76 | on and you can return the full path to where you want to save your translation template for this particular file. 77 | 78 | example: 79 | ```javascript 80 | [ 81 | require("babel-gettext-extractor"), 82 | { 83 | fileName: (file) => { 84 | const sourceFile = file.opts.sourceFileName; 85 | if (/^node_modules\//.test(sourceFile)) { 86 | return false; 87 | } 88 | return sourceFile 89 | .split(/[\/\\.]/) 90 | .filter(name => !['src', 'packages', 'js'].includes(name)) 91 | .slice(0, 2) 92 | .join('-') + '-template.pot'; 93 | }, 94 | }, 95 | ] 96 | ``` 97 | 98 | ### baseDirectory ### 99 | 100 | If provided, then file names are chopped off in relation to this base path 101 | if filenames start with that path. 102 | 103 | ### stripTemplateLiteralIndent ### 104 | 105 | If true this will strip leading indents from multiline strings. Note: this 106 | requires gettext function implementations to do the same leading indent removal. 107 | Useful if you want to use Template literals for multiline strings to be passed 108 | into to gettext functions. 109 | 110 | License 111 | ======= 112 | 113 | [MIT License](LICENSE). 114 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | var utils = require('./utils'); 2 | var gettextParser = require('gettext-parser'); 3 | var fs = require('fs'); 4 | var path = require('path'); 5 | 6 | var DEFAULT_FUNCTION_NAMES = { 7 | gettext: ['msgid'], 8 | dgettext: ['domain', 'msgid'], 9 | ngettext: ['msgid', 'msgid_plural', 'count'], 10 | dngettext: ['domain', 'msgid', 'msgid_plural', 'count'], 11 | pgettext: ['msgctxt', 'msgid'], 12 | dpgettext: ['domain', 'msgctxt', 'msgid'], 13 | npgettext: ['msgctxt', 'msgid', 'msgid_plural', 'count'], 14 | dnpgettext: ['domain', 'msgctxt', 'msgid', 'msgid_plural', 'count'], 15 | }; 16 | 17 | var DEFAULT_FILE_NAME = 'gettext.po'; 18 | 19 | var DEFAULT_HEADERS = { 20 | 'content-type': 'text/plain; charset=UTF-8', 21 | 'plural-forms': 'nplurals = 2; plural = (n !== 1);', 22 | }; 23 | 24 | 25 | function getTranslatorComment(node) { 26 | var comments = []; 27 | (node.leadingComments || []).forEach(function(commentNode) { 28 | var match = commentNode.value.match(/^\s*translators:\s*(.*?)\s*$/im); 29 | if (match) { 30 | comments.push(match[1]); 31 | } 32 | }); 33 | return comments.length > 0 ? comments.join('\n') : null; 34 | } 35 | 36 | function ensureDirectoryExistence(filePath) { 37 | var dirname = path.dirname(filePath); 38 | if (fs.existsSync(dirname)) { 39 | return; 40 | } 41 | 42 | ensureDirectoryExistence(dirname); 43 | fs.mkdirSync(dirname); 44 | } 45 | 46 | 47 | module.exports = function() { 48 | var currentFileName; 49 | var data; 50 | var relocatedComments = {}; 51 | 52 | return { visitor: { 53 | 54 | VariableDeclaration(nodePath) { 55 | var translatorComment = getTranslatorComment(nodePath.node); 56 | if (!translatorComment) { 57 | return; 58 | } 59 | nodePath.node.declarations.forEach(function(declarator) { 60 | var comment = getTranslatorComment(declarator); 61 | if (!comment) { 62 | var key = declarator.init.start + '|' + declarator.init.end; 63 | relocatedComments[key] = translatorComment; 64 | } 65 | }); 66 | }, 67 | 68 | CallExpression(nodePath, plugin) { 69 | var functionNames = plugin.opts && plugin.opts.functionNames || DEFAULT_FUNCTION_NAMES; 70 | var fileName = plugin.opts && plugin.opts.fileName || DEFAULT_FILE_NAME; 71 | var headers = plugin.opts && plugin.opts.headers || DEFAULT_HEADERS; 72 | var base = plugin.opts && plugin.opts.baseDirectory; 73 | if (base) { 74 | base = base.match(/^(.*?)\/*$/)[1] + '/'; 75 | } 76 | 77 | if (typeof fileName === 'function') { 78 | fileName = fileName(this.file); 79 | } 80 | 81 | if (!fileName) { 82 | return; 83 | } 84 | 85 | if (fileName !== currentFileName) { 86 | currentFileName = fileName; 87 | data = { 88 | charset: 'UTF-8', 89 | headers: headers, 90 | translations: { context: {} }, 91 | }; 92 | 93 | headers['plural-forms'] = headers['plural-forms'] 94 | || DEFAULT_HEADERS['plural-forms']; 95 | headers['content-type'] = headers['content-type'] 96 | || DEFAULT_HEADERS['content-type']; 97 | } 98 | 99 | var defaultContext = data.translations.context; 100 | var nplurals = /nplurals ?= ?(\d)/.exec(headers['plural-forms'])[1]; 101 | 102 | const callee = nodePath.node.callee; 103 | 104 | if (functionNames.hasOwnProperty(callee.name) || 105 | callee.property && 106 | functionNames.hasOwnProperty(callee.property.name)) { 107 | var functionName = functionNames[callee.name] 108 | || functionNames[callee.property.name]; 109 | var translate = {}; 110 | 111 | var args = nodePath.get('arguments'); 112 | for (var i = 0, l = args.length; i < l; i++) { 113 | var name = functionName[i]; 114 | 115 | if (name && name !== 'count' && name !== 'domain') { 116 | var arg = args[i].evaluate(); 117 | var value = arg.value; 118 | if (arg.confident && value) { 119 | if (plugin.opts.stripTemplateLiteralIndent) { 120 | value = utils.stripIndent(value); 121 | } 122 | translate[name] = value; 123 | } 124 | 125 | if (name === 'msgid_plural') { 126 | translate.msgstr = []; 127 | for (var p = 0; p < nplurals; p++) { 128 | translate.msgstr[p] = ''; 129 | } 130 | } 131 | } 132 | } 133 | 134 | var fn = this.file.opts.filename; 135 | if (base && fn && fn.substr(0, base.length) === base) { 136 | fn = fn.substr(base.length); 137 | } 138 | 139 | translate.comments = { 140 | reference: fn + ':' + nodePath.node.loc.start.line, 141 | }; 142 | 143 | var translatorComment = getTranslatorComment(nodePath.node); 144 | if (!translatorComment) { 145 | translatorComment = getTranslatorComment(nodePath.parentPath); 146 | if (!translatorComment) { 147 | translatorComment = relocatedComments[ 148 | nodePath.node.start + '|' + nodePath.node.end]; 149 | } 150 | } 151 | 152 | if (translatorComment) { 153 | translate.comments.translator = translatorComment; 154 | } 155 | 156 | var context = defaultContext; 157 | var msgctxt = translate.msgctxt; 158 | if (msgctxt) { 159 | data.translations[msgctxt] = data.translations[msgctxt] || {}; 160 | context = data.translations[msgctxt]; 161 | } 162 | 163 | if (typeof context[translate.msgid] !== 'undefined') { 164 | // If we already have this translation append the new file reference 165 | // so we know about all the places it is used. 166 | var newRef = translate.comments.reference; 167 | var currentRef = context[translate.msgid].comments.reference; 168 | var refs = currentRef.split('\n'); 169 | if (refs.indexOf(newRef) === -1) { 170 | refs.push(newRef); 171 | context[translate.msgid].comments.reference = refs.sort().join('\n'); 172 | } 173 | } else if (typeof translate.msgid !== 'undefined') { 174 | // Do not add translation if msgid is undefined. 175 | context[translate.msgid] = translate; 176 | } 177 | 178 | // Sort by file reference to make output idempotent for the same input. 179 | if (data.translations && data.translations.context) { 180 | data.translations.context = utils.sortObjectKeysByRef(data.translations.context); 181 | } 182 | ensureDirectoryExistence(fileName); 183 | fs.writeFileSync(fileName, gettextParser.po.compile(data)); 184 | } 185 | }, 186 | } }; 187 | }; 188 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "babel-gettext-extractor", 3 | "version": "4.1.3", 4 | "description": " Extract gettext string with babel", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "mocha", 8 | "lint": "eslint *.js **/*.js", 9 | "test-ci": "npm run clean && npm run test && npm run lint", 10 | "clean": "rimraf 'test/*.po'" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "git+https://github.com/getsentry/babel-gettext-extractor.git" 15 | }, 16 | "keywords": [ 17 | "babel", 18 | "gettext", 19 | "plugin", 20 | "i18n" 21 | ], 22 | "author": "getsentry", 23 | "license": "MIT", 24 | "bugs": { 25 | "url": "https://github.com/getsentry/babel-gettext-extractor/issues" 26 | }, 27 | "homepage": "https://github.com/getsentry/babel-gettext-extractor", 28 | "dependencies": { 29 | "@babel/core": "^7.0.0", 30 | "gettext-parser": "1.4.0" 31 | }, 32 | "devDependencies": { 33 | "@babel/preset-react": "^7.0.0", 34 | "eslint": "^3.19.0", 35 | "eslint-config-airbnb": "14.1.0", 36 | "eslint-plugin-import": "2.2.0", 37 | "eslint-plugin-jsx-a11y": "4.0.0", 38 | "eslint-plugin-react": "6.10.0", 39 | "mocha": "^2.3.4", 40 | "rimraf": "^2.6.1" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /test/test.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert'); 2 | var babel = require('@babel/core'); 3 | 4 | var fs = require('fs'); 5 | var plugin = require('../index.js'); 6 | 7 | describe('babel-gettext-extractor', function() { 8 | describe('#extract()', function() { 9 | it('Should return a result for simple code example', function() { 10 | var result = babel.transform('let t = _t("code");_t("hello");', { 11 | plugins: [ 12 | [plugin, { 13 | functionNames: { 14 | _t: ['msgid'], 15 | }, 16 | fileName: './test/first.po', 17 | }], 18 | ], 19 | }); 20 | assert(!!result); 21 | 22 | var content = fs.readFileSync('./test/first.po'); 23 | assert(content.indexOf('msgid "code"') !== -1); 24 | assert(content.indexOf('msgid "hello"') !== -1); 25 | }); 26 | 27 | it('Should create subfolder if doesn\'t exists', function() { 28 | var result = babel.transform('let t = _t("code");_t("hello");', { 29 | plugins: [ 30 | [plugin, { 31 | functionNames: { 32 | _t: ['msgid'], 33 | }, 34 | fileName: './test/some/folder/structure/test.po', 35 | }], 36 | ], 37 | }); 38 | assert(!!result); 39 | 40 | var content = fs.readFileSync('./test/some/folder/structure/test.po'); 41 | assert(content.indexOf('msgid "code"') !== -1); 42 | assert(content.indexOf('msgid "hello"') !== -1); 43 | }); 44 | 45 | it('No file created if no file name provided', function() { 46 | var result = babel.transform('let t = _t("code");_t("hello");', { 47 | plugins: [ 48 | [plugin, { 49 | fileName: './test/test2.po', 50 | }], 51 | ], 52 | }); 53 | assert(!!result); 54 | assert(!fs.existsSync('./test/test2.po')); 55 | }); 56 | 57 | it('Should return a result for dnpgettext', function() { 58 | var result = babel.transform('dnpgettext("mydomain", "mycontext", "msg", "plurial", 10)', { 59 | plugins: [ 60 | [plugin, { 61 | fileName: './test/dnpgettext.po', 62 | }], 63 | ], 64 | }); 65 | assert(!!result); 66 | var content = fs.readFileSync('./test/dnpgettext.po'); 67 | assert(content.indexOf('msgid "msg"') !== -1); 68 | assert(content.indexOf('msgid_plural "plurial"') !== -1); 69 | }); 70 | 71 | it('Should extract comments', function() { 72 | var result = babel.transform('// Translators: whatever happens\n let t = _t("code");', { 73 | plugins: [ 74 | [plugin, { 75 | functionNames: { 76 | _t: ['msgid'], 77 | }, 78 | fileName: './test/comments.po', 79 | }], 80 | ], 81 | }); 82 | assert(!!result); 83 | var content = fs.readFileSync('./test/comments.po') + ''; 84 | assert(content.match(/whatever happens/)); 85 | }); 86 | 87 | it('Should return a result when expression is used as an argument', function() { 88 | var result = babel.transform("let t = _t('some' + ' expression');", { 89 | plugins: [ 90 | [plugin, { 91 | functionNames: { 92 | _t: ['msgid'], 93 | }, 94 | fileName: './test/defaultTranslate.po', 95 | }], 96 | ], 97 | }); 98 | assert(!!result); 99 | var content = fs.readFileSync('./test/defaultTranslate.po'); 100 | assert(content.indexOf('msgid "some expression"') !== -1); 101 | }); 102 | 103 | it('Should stripIndent from template literals when configured', function() { 104 | var result = babel.transform(`let t = _t(\`spread 105 | over 106 | multi 107 | lines\`);`, { 108 | plugins: [ 109 | [plugin, { 110 | functionNames: { 111 | _t: ['msgid'], 112 | }, 113 | fileName: './test/multiline.po', 114 | stripTemplateLiteralIndent: true, 115 | }], 116 | ], 117 | }); 118 | assert(!!result); 119 | var content = fs.readFileSync('./test/multiline.po'); 120 | assert(content.indexOf('spread over multi lines') !== -1); 121 | }); 122 | 123 | it('Should stripIndent from template literals in plurals', function() { 124 | var result = babel.transform(`let t = ngettext(\`multi 125 | line\`, \`multi 126 | line 127 | plural\`, foo);`, { 128 | plugins: [ 129 | [plugin, { 130 | functionNames: { 131 | ngettext: ['msgid', 'msgid_plural', 'count'], 132 | }, 133 | fileName: './test/multiline-plural.po', 134 | stripTemplateLiteralIndent: true, 135 | }], 136 | ], 137 | }); 138 | assert(!!result); 139 | var content = fs.readFileSync('./test/multiline-plural.po'); 140 | assert(content.indexOf('msgid "multi line') !== -1); 141 | assert(content.indexOf('msgid_plural "multi line plural') !== -1); 142 | }); 143 | 144 | it('Should not stripIndent from template literals by default', function() { 145 | var result = babel.transform(`let t = _t(\`spread 146 | over 147 | multi 148 | lines\`);`, { 149 | plugins: [ 150 | [plugin, { 151 | functionNames: { 152 | _t: ['msgid'], 153 | }, 154 | fileName: './test/stripIndent-not-configured.po', 155 | }], 156 | ], 157 | }); 158 | assert(!!result); 159 | var content = fs.readFileSync('./test/stripIndent-not-configured.po'); 160 | assert(content.indexOf('spread over multi lines') === -1); 161 | }); 162 | 163 | it('Should return a result for JSX', function() { 164 | var result = babel.transform('let jsx =

{_t("title")}

', { 165 | presets: ['@babel/react'], 166 | plugins: [ 167 | [plugin, { 168 | functionNames: { 169 | _t: ['msgid'], 170 | }, 171 | fileName: './test/react.po', 172 | }], 173 | ], 174 | }); 175 | assert(!!result); 176 | var content = fs.readFileSync('./test/react.po'); 177 | assert(content.indexOf('msgid "title"') !== -1); 178 | }); 179 | 180 | it('Should decide on a filename dynamically', function() { 181 | const code = '_t("Dynamic Filenames")'; 182 | 183 | var result = babel.transform(code, { 184 | plugins: [ 185 | [plugin, { 186 | functionNames: { 187 | _t: ['msgid'], 188 | }, 189 | fileName: (file) => 'test/' + file.opts.generatorOpts.sourceFileName + '-dynamic-filename.po', 190 | }], 191 | ], 192 | }); 193 | assert(!!result); 194 | var content = fs.readFileSync('./test/unknown-dynamic-filename.po'); 195 | assert(content.indexOf('msgid "Dynamic Filenames"') !== -1); 196 | }); 197 | 198 | it('Should skip a file if the dynamic filename is false', function() { 199 | const code = '_t("Dynamic Filenames")'; 200 | 201 | var result = babel.transform(code, { 202 | plugins: [ 203 | [plugin, { 204 | functionNames: { 205 | _t: ['msgid'], 206 | }, 207 | fileName: () => false, 208 | }], 209 | ], 210 | }); 211 | assert(!!result); 212 | }); 213 | }); 214 | }); 215 | -------------------------------------------------------------------------------- /utils.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Sorts the object keys by the file reference. 3 | * There's no guarantee of key iteration in order prior to es6 4 | * but in practice it tends to work out. 5 | */ 6 | function sortObjectKeysByRef(unordered) { 7 | const ordered = {}; 8 | Object.keys(unordered).sort((a, b) => { 9 | const refA = unordered[a].comments.reference.toLowerCase(); 10 | const refB = unordered[b].comments.reference.toLowerCase(); 11 | if (refA < refB) { 12 | return -1; 13 | } 14 | if (refA > refB) { 15 | return 1; 16 | } 17 | return 0; 18 | }).forEach(function(key) { 19 | ordered[key] = unordered[key]; 20 | }); 21 | return ordered; 22 | } 23 | 24 | function stripIndent(str) { 25 | if (str && str.replace && str.trim) { 26 | return str.replace(/(?:\n(?:\s*))+/g, ' ').trim(); 27 | } 28 | return str; 29 | } 30 | 31 | module.exports = { 32 | stripIndent: stripIndent, 33 | sortObjectKeysByRef: sortObjectKeysByRef, 34 | }; 35 | -------------------------------------------------------------------------------- /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": 6 | version "7.0.0" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" 8 | integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== 9 | dependencies: 10 | "@babel/highlight" "^7.0.0" 11 | 12 | "@babel/core@^7.0.0": 13 | version "7.1.6" 14 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.6.tgz#3733cbee4317429bc87c62b29cf8587dba7baeb3" 15 | integrity sha512-Hz6PJT6e44iUNpAn8AoyAs6B3bl60g7MJQaI0rZEar6ECzh6+srYO1xlIdssio34mPaUtAb1y+XlkkSJzok3yw== 16 | dependencies: 17 | "@babel/code-frame" "^7.0.0" 18 | "@babel/generator" "^7.1.6" 19 | "@babel/helpers" "^7.1.5" 20 | "@babel/parser" "^7.1.6" 21 | "@babel/template" "^7.1.2" 22 | "@babel/traverse" "^7.1.6" 23 | "@babel/types" "^7.1.6" 24 | convert-source-map "^1.1.0" 25 | debug "^4.1.0" 26 | json5 "^2.1.0" 27 | lodash "^4.17.10" 28 | resolve "^1.3.2" 29 | semver "^5.4.1" 30 | source-map "^0.5.0" 31 | 32 | "@babel/generator@^7.1.6": 33 | version "7.1.6" 34 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.6.tgz#001303cf87a5b9d093494a4bf251d7b5d03d3999" 35 | integrity sha512-brwPBtVvdYdGxtenbQgfCdDPmtkmUBZPjUoK5SXJEBuHaA5BCubh9ly65fzXz7R6o5rA76Rs22ES8Z+HCc0YIQ== 36 | dependencies: 37 | "@babel/types" "^7.1.6" 38 | jsesc "^2.5.1" 39 | lodash "^4.17.10" 40 | source-map "^0.5.0" 41 | trim-right "^1.0.1" 42 | 43 | "@babel/helper-builder-react-jsx@^7.0.0": 44 | version "7.0.0" 45 | resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0.tgz#fa154cb53eb918cf2a9a7ce928e29eb649c5acdb" 46 | integrity sha512-ebJ2JM6NAKW0fQEqN8hOLxK84RbRz9OkUhGS/Xd5u56ejMfVbayJ4+LykERZCOUM6faa6Fp3SZNX3fcT16MKHw== 47 | dependencies: 48 | "@babel/types" "^7.0.0" 49 | esutils "^2.0.0" 50 | 51 | "@babel/helper-function-name@^7.1.0": 52 | version "7.1.0" 53 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" 54 | integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== 55 | dependencies: 56 | "@babel/helper-get-function-arity" "^7.0.0" 57 | "@babel/template" "^7.1.0" 58 | "@babel/types" "^7.0.0" 59 | 60 | "@babel/helper-get-function-arity@^7.0.0": 61 | version "7.0.0" 62 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" 63 | integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== 64 | dependencies: 65 | "@babel/types" "^7.0.0" 66 | 67 | "@babel/helper-plugin-utils@^7.0.0": 68 | version "7.0.0" 69 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" 70 | integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== 71 | 72 | "@babel/helper-split-export-declaration@^7.0.0": 73 | version "7.0.0" 74 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" 75 | integrity sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag== 76 | dependencies: 77 | "@babel/types" "^7.0.0" 78 | 79 | "@babel/helpers@^7.1.5": 80 | version "7.1.5" 81 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.5.tgz#68bfc1895d685f2b8f1995e788dbfe1f6ccb1996" 82 | integrity sha512-2jkcdL02ywNBry1YNFAH/fViq4fXG0vdckHqeJk+75fpQ2OH+Az6076tX/M0835zA45E0Cqa6pV5Kiv9YOqjEg== 83 | dependencies: 84 | "@babel/template" "^7.1.2" 85 | "@babel/traverse" "^7.1.5" 86 | "@babel/types" "^7.1.5" 87 | 88 | "@babel/highlight@^7.0.0": 89 | version "7.0.0" 90 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" 91 | integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== 92 | dependencies: 93 | chalk "^2.0.0" 94 | esutils "^2.0.2" 95 | js-tokens "^4.0.0" 96 | 97 | "@babel/parser@^7.1.2", "@babel/parser@^7.1.6": 98 | version "7.1.6" 99 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.6.tgz#16e97aca1ec1062324a01c5a6a7d0df8dd189854" 100 | integrity sha512-dWP6LJm9nKT6ALaa+bnL247GHHMWir3vSlZ2+IHgHgktZQx0L3Uvq2uAWcuzIe+fujRsYWBW2q622C5UvGK9iQ== 101 | 102 | "@babel/plugin-syntax-jsx@^7.0.0": 103 | version "7.0.0" 104 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0.tgz#034d5e2b4e14ccaea2e4c137af7e4afb39375ffd" 105 | integrity sha512-PdmL2AoPsCLWxhIr3kG2+F9v4WH06Q3z+NoGVpQgnUNGcagXHq5sB3OXxkSahKq9TLdNMN/AJzFYSOo8UKDMHg== 106 | dependencies: 107 | "@babel/helper-plugin-utils" "^7.0.0" 108 | 109 | "@babel/plugin-transform-react-display-name@^7.0.0": 110 | version "7.0.0" 111 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0.tgz#93759e6c023782e52c2da3b75eca60d4f10533ee" 112 | integrity sha512-BX8xKuQTO0HzINxT6j/GiCwoJB0AOMs0HmLbEnAvcte8U8rSkNa/eSCAY+l1OA4JnCVq2jw2p6U8QQryy2fTPg== 113 | dependencies: 114 | "@babel/helper-plugin-utils" "^7.0.0" 115 | 116 | "@babel/plugin-transform-react-jsx-self@^7.0.0": 117 | version "7.0.0" 118 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.0.0.tgz#a84bb70fea302d915ea81d9809e628266bb0bc11" 119 | integrity sha512-pymy+AK12WO4safW1HmBpwagUQRl9cevNX+82AIAtU1pIdugqcH+nuYP03Ja6B+N4gliAaKWAegIBL/ymALPHA== 120 | dependencies: 121 | "@babel/helper-plugin-utils" "^7.0.0" 122 | "@babel/plugin-syntax-jsx" "^7.0.0" 123 | 124 | "@babel/plugin-transform-react-jsx-source@^7.0.0": 125 | version "7.0.0" 126 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0.tgz#28e00584f9598c0dd279f6280eee213fa0121c3c" 127 | integrity sha512-OSeEpFJEH5dw/TtxTg4nijl4nHBbhqbKL94Xo/Y17WKIf2qJWeIk/QeXACF19lG1vMezkxqruwnTjVizaW7u7w== 128 | dependencies: 129 | "@babel/helper-plugin-utils" "^7.0.0" 130 | "@babel/plugin-syntax-jsx" "^7.0.0" 131 | 132 | "@babel/plugin-transform-react-jsx@^7.0.0": 133 | version "7.1.6" 134 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.1.6.tgz#e6188e7d2a2dcd2796d45a87f8b0a8c906f57d1a" 135 | integrity sha512-iU/IUlPEYDRwuqLwqVobzPAZkBOQoZ9xRTBmj6ANuk5g/Egn/zdNGnXlSoKeNmKoYVeIRxx5GZhWmMhLik8dag== 136 | dependencies: 137 | "@babel/helper-builder-react-jsx" "^7.0.0" 138 | "@babel/helper-plugin-utils" "^7.0.0" 139 | "@babel/plugin-syntax-jsx" "^7.0.0" 140 | 141 | "@babel/preset-react@^7.0.0": 142 | version "7.0.0" 143 | resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" 144 | integrity sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w== 145 | dependencies: 146 | "@babel/helper-plugin-utils" "^7.0.0" 147 | "@babel/plugin-transform-react-display-name" "^7.0.0" 148 | "@babel/plugin-transform-react-jsx" "^7.0.0" 149 | "@babel/plugin-transform-react-jsx-self" "^7.0.0" 150 | "@babel/plugin-transform-react-jsx-source" "^7.0.0" 151 | 152 | "@babel/template@^7.1.0", "@babel/template@^7.1.2": 153 | version "7.1.2" 154 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644" 155 | integrity sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag== 156 | dependencies: 157 | "@babel/code-frame" "^7.0.0" 158 | "@babel/parser" "^7.1.2" 159 | "@babel/types" "^7.1.2" 160 | 161 | "@babel/traverse@^7.1.5", "@babel/traverse@^7.1.6": 162 | version "7.1.6" 163 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.6.tgz#c8db9963ab4ce5b894222435482bd8ea854b7b5c" 164 | integrity sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ== 165 | dependencies: 166 | "@babel/code-frame" "^7.0.0" 167 | "@babel/generator" "^7.1.6" 168 | "@babel/helper-function-name" "^7.1.0" 169 | "@babel/helper-split-export-declaration" "^7.0.0" 170 | "@babel/parser" "^7.1.6" 171 | "@babel/types" "^7.1.6" 172 | debug "^4.1.0" 173 | globals "^11.1.0" 174 | lodash "^4.17.10" 175 | 176 | "@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.1.5", "@babel/types@^7.1.6": 177 | version "7.1.6" 178 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.6.tgz#0adb330c3a281348a190263aceb540e10f04bcce" 179 | integrity sha512-DMiUzlY9DSjVsOylJssxLHSgj6tWM9PRFJOGW/RaOglVOK9nzTxoOMfTfRQXGUCUQ/HmlG2efwC+XqUEJ5ay4w== 180 | dependencies: 181 | esutils "^2.0.2" 182 | lodash "^4.17.10" 183 | to-fast-properties "^2.0.0" 184 | 185 | acorn-jsx@^3.0.0: 186 | version "3.0.1" 187 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" 188 | dependencies: 189 | acorn "^3.0.4" 190 | 191 | acorn@^3.0.4: 192 | version "3.3.0" 193 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 194 | 195 | acorn@^5.0.1: 196 | version "5.0.3" 197 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" 198 | 199 | ajv-keywords@^1.0.0: 200 | version "1.5.1" 201 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" 202 | 203 | ajv@^4.7.0: 204 | version "4.11.8" 205 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" 206 | dependencies: 207 | co "^4.6.0" 208 | json-stable-stringify "^1.0.1" 209 | 210 | ansi-escapes@^1.1.0: 211 | version "1.4.0" 212 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" 213 | 214 | ansi-regex@^2.0.0: 215 | version "2.1.1" 216 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 217 | 218 | ansi-styles@^2.2.1: 219 | version "2.2.1" 220 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 221 | 222 | ansi-styles@^3.2.1: 223 | version "3.2.1" 224 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 225 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 226 | dependencies: 227 | color-convert "^1.9.0" 228 | 229 | argparse@^1.0.7: 230 | version "1.0.10" 231 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 232 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 233 | dependencies: 234 | sprintf-js "~1.0.2" 235 | 236 | aria-query@^0.3.0: 237 | version "0.3.0" 238 | resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.3.0.tgz#cb8a9984e2862711c83c80ade5b8f5ca0de2b467" 239 | dependencies: 240 | ast-types-flow "0.0.7" 241 | 242 | array-union@^1.0.1: 243 | version "1.0.2" 244 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 245 | dependencies: 246 | array-uniq "^1.0.1" 247 | 248 | array-uniq@^1.0.1: 249 | version "1.0.3" 250 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 251 | 252 | array.prototype.find@^2.0.1: 253 | version "2.0.4" 254 | resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.4.tgz#556a5c5362c08648323ddaeb9de9d14bc1864c90" 255 | dependencies: 256 | define-properties "^1.1.2" 257 | es-abstract "^1.7.0" 258 | 259 | arrify@^1.0.0: 260 | version "1.0.1" 261 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 262 | 263 | ast-types-flow@0.0.7: 264 | version "0.0.7" 265 | resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" 266 | 267 | babel-code-frame@^6.16.0: 268 | version "6.22.0" 269 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" 270 | dependencies: 271 | chalk "^1.1.0" 272 | esutils "^2.0.2" 273 | js-tokens "^3.0.0" 274 | 275 | balanced-match@^0.4.1: 276 | version "0.4.2" 277 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" 278 | 279 | brace-expansion@^1.1.7: 280 | version "1.1.7" 281 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" 282 | dependencies: 283 | balanced-match "^0.4.1" 284 | concat-map "0.0.1" 285 | 286 | builtin-modules@^1.1.1: 287 | version "1.1.1" 288 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 289 | 290 | caller-path@^0.1.0: 291 | version "0.1.0" 292 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 293 | dependencies: 294 | callsites "^0.2.0" 295 | 296 | callsites@^0.2.0: 297 | version "0.2.0" 298 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 299 | 300 | chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: 301 | version "1.1.3" 302 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 303 | dependencies: 304 | ansi-styles "^2.2.1" 305 | escape-string-regexp "^1.0.2" 306 | has-ansi "^2.0.0" 307 | strip-ansi "^3.0.0" 308 | supports-color "^2.0.0" 309 | 310 | chalk@^2.0.0: 311 | version "2.4.1" 312 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" 313 | integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== 314 | dependencies: 315 | ansi-styles "^3.2.1" 316 | escape-string-regexp "^1.0.5" 317 | supports-color "^5.3.0" 318 | 319 | circular-json@^0.3.1: 320 | version "0.3.1" 321 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" 322 | 323 | cli-cursor@^1.0.1: 324 | version "1.0.2" 325 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" 326 | dependencies: 327 | restore-cursor "^1.0.1" 328 | 329 | cli-width@^2.0.0: 330 | version "2.1.0" 331 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" 332 | 333 | co@^4.6.0: 334 | version "4.6.0" 335 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 336 | 337 | code-point-at@^1.0.0: 338 | version "1.1.0" 339 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 340 | 341 | color-convert@^1.9.0: 342 | version "1.9.3" 343 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 344 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 345 | dependencies: 346 | color-name "1.1.3" 347 | 348 | color-name@1.1.3: 349 | version "1.1.3" 350 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 351 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 352 | 353 | commander@0.6.1: 354 | version "0.6.1" 355 | resolved "https://registry.yarnpkg.com/commander/-/commander-0.6.1.tgz#fa68a14f6a945d54dbbe50d8cdb3320e9e3b1a06" 356 | 357 | commander@2.3.0: 358 | version "2.3.0" 359 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.3.0.tgz#fd430e889832ec353b9acd1de217c11cb3eef873" 360 | 361 | concat-map@0.0.1: 362 | version "0.0.1" 363 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 364 | 365 | concat-stream@^1.5.2: 366 | version "1.6.0" 367 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" 368 | dependencies: 369 | inherits "^2.0.3" 370 | readable-stream "^2.2.2" 371 | typedarray "^0.0.6" 372 | 373 | contains-path@^0.1.0: 374 | version "0.1.0" 375 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" 376 | 377 | convert-source-map@^1.1.0: 378 | version "1.5.0" 379 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" 380 | 381 | core-util-is@~1.0.0: 382 | version "1.0.2" 383 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 384 | 385 | d@1: 386 | version "1.0.0" 387 | resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" 388 | dependencies: 389 | es5-ext "^0.10.9" 390 | 391 | damerau-levenshtein@^1.0.0: 392 | version "1.0.4" 393 | resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514" 394 | 395 | debug@2.2.0: 396 | version "2.2.0" 397 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" 398 | dependencies: 399 | ms "0.7.1" 400 | 401 | debug@^2.1.1, debug@^2.2.0: 402 | version "2.6.8" 403 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" 404 | dependencies: 405 | ms "2.0.0" 406 | 407 | debug@^4.1.0: 408 | version "4.1.0" 409 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" 410 | integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== 411 | dependencies: 412 | ms "^2.1.1" 413 | 414 | deep-is@~0.1.3: 415 | version "0.1.3" 416 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 417 | 418 | define-properties@^1.1.2: 419 | version "1.1.2" 420 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" 421 | dependencies: 422 | foreach "^2.0.5" 423 | object-keys "^1.0.8" 424 | 425 | del@^2.0.2: 426 | version "2.2.2" 427 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" 428 | dependencies: 429 | globby "^5.0.0" 430 | is-path-cwd "^1.0.0" 431 | is-path-in-cwd "^1.0.0" 432 | object-assign "^4.0.1" 433 | pify "^2.0.0" 434 | pinkie-promise "^2.0.0" 435 | rimraf "^2.2.8" 436 | 437 | diff@1.4.0: 438 | version "1.4.0" 439 | resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" 440 | 441 | doctrine@1.5.0, doctrine@^1.2.2: 442 | version "1.5.0" 443 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 444 | dependencies: 445 | esutils "^2.0.2" 446 | isarray "^1.0.0" 447 | 448 | doctrine@^2.0.0: 449 | version "2.0.0" 450 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" 451 | dependencies: 452 | esutils "^2.0.2" 453 | isarray "^1.0.0" 454 | 455 | emoji-regex@^6.1.0: 456 | version "6.4.2" 457 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.4.2.tgz#a30b6fee353d406d96cfb9fa765bdc82897eff6e" 458 | 459 | encoding@^0.1.12: 460 | version "0.1.12" 461 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 462 | integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= 463 | dependencies: 464 | iconv-lite "~0.4.13" 465 | 466 | es-abstract@^1.7.0: 467 | version "1.7.0" 468 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c" 469 | dependencies: 470 | es-to-primitive "^1.1.1" 471 | function-bind "^1.1.0" 472 | is-callable "^1.1.3" 473 | is-regex "^1.0.3" 474 | 475 | es-to-primitive@^1.1.1: 476 | version "1.1.1" 477 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" 478 | dependencies: 479 | is-callable "^1.1.1" 480 | is-date-object "^1.0.1" 481 | is-symbol "^1.0.1" 482 | 483 | es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: 484 | version "0.10.23" 485 | resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.23.tgz#7578b51be974207a5487821b56538c224e4e7b38" 486 | dependencies: 487 | es6-iterator "2" 488 | es6-symbol "~3.1" 489 | 490 | es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: 491 | version "2.0.1" 492 | resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" 493 | dependencies: 494 | d "1" 495 | es5-ext "^0.10.14" 496 | es6-symbol "^3.1" 497 | 498 | es6-map@^0.1.3: 499 | version "0.1.5" 500 | resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" 501 | dependencies: 502 | d "1" 503 | es5-ext "~0.10.14" 504 | es6-iterator "~2.0.1" 505 | es6-set "~0.1.5" 506 | es6-symbol "~3.1.1" 507 | event-emitter "~0.3.5" 508 | 509 | es6-set@~0.1.5: 510 | version "0.1.5" 511 | resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" 512 | dependencies: 513 | d "1" 514 | es5-ext "~0.10.14" 515 | es6-iterator "~2.0.1" 516 | es6-symbol "3.1.1" 517 | event-emitter "~0.3.5" 518 | 519 | es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: 520 | version "3.1.1" 521 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" 522 | dependencies: 523 | d "1" 524 | es5-ext "~0.10.14" 525 | 526 | es6-weak-map@^2.0.1: 527 | version "2.0.2" 528 | resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" 529 | dependencies: 530 | d "1" 531 | es5-ext "^0.10.14" 532 | es6-iterator "^2.0.1" 533 | es6-symbol "^3.1.1" 534 | 535 | escape-string-regexp@1.0.2, escape-string-regexp@^1.0.2: 536 | version "1.0.2" 537 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1" 538 | 539 | escape-string-regexp@^1.0.5: 540 | version "1.0.5" 541 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 542 | 543 | escope@^3.6.0: 544 | version "3.6.0" 545 | resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" 546 | dependencies: 547 | es6-map "^0.1.3" 548 | es6-weak-map "^2.0.1" 549 | esrecurse "^4.1.0" 550 | estraverse "^4.1.1" 551 | 552 | eslint-config-airbnb-base@^11.1.0: 553 | version "11.2.0" 554 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.2.0.tgz#19a9dc4481a26f70904545ec040116876018f853" 555 | 556 | eslint-config-airbnb@14.1.0: 557 | version "14.1.0" 558 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-14.1.0.tgz#355d290040bbf8e00bf8b4b19f4b70cbe7c2317f" 559 | dependencies: 560 | eslint-config-airbnb-base "^11.1.0" 561 | 562 | eslint-import-resolver-node@^0.2.0: 563 | version "0.2.3" 564 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz#5add8106e8c928db2cba232bcd9efa846e3da16c" 565 | dependencies: 566 | debug "^2.2.0" 567 | object-assign "^4.0.1" 568 | resolve "^1.1.6" 569 | 570 | eslint-module-utils@^2.0.0: 571 | version "2.0.0" 572 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.0.0.tgz#a6f8c21d901358759cdc35dbac1982ae1ee58bce" 573 | dependencies: 574 | debug "2.2.0" 575 | pkg-dir "^1.0.0" 576 | 577 | eslint-plugin-import@2.2.0: 578 | version "2.2.0" 579 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz#72ba306fad305d67c4816348a4699a4229ac8b4e" 580 | dependencies: 581 | builtin-modules "^1.1.1" 582 | contains-path "^0.1.0" 583 | debug "^2.2.0" 584 | doctrine "1.5.0" 585 | eslint-import-resolver-node "^0.2.0" 586 | eslint-module-utils "^2.0.0" 587 | has "^1.0.1" 588 | lodash.cond "^4.3.0" 589 | minimatch "^3.0.3" 590 | pkg-up "^1.0.0" 591 | 592 | eslint-plugin-jsx-a11y@4.0.0: 593 | version "4.0.0" 594 | resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-4.0.0.tgz#779bb0fe7b08da564a422624911de10061e048ee" 595 | dependencies: 596 | aria-query "^0.3.0" 597 | ast-types-flow "0.0.7" 598 | damerau-levenshtein "^1.0.0" 599 | emoji-regex "^6.1.0" 600 | jsx-ast-utils "^1.0.0" 601 | object-assign "^4.0.1" 602 | 603 | eslint-plugin-react@6.10.0: 604 | version "6.10.0" 605 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.0.tgz#9c48b48d101554b5355413e7c64238abde6ef1ef" 606 | dependencies: 607 | array.prototype.find "^2.0.1" 608 | doctrine "^1.2.2" 609 | has "^1.0.1" 610 | jsx-ast-utils "^1.3.4" 611 | object.assign "^4.0.4" 612 | 613 | eslint@^3.19.0: 614 | version "3.19.0" 615 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc" 616 | dependencies: 617 | babel-code-frame "^6.16.0" 618 | chalk "^1.1.3" 619 | concat-stream "^1.5.2" 620 | debug "^2.1.1" 621 | doctrine "^2.0.0" 622 | escope "^3.6.0" 623 | espree "^3.4.0" 624 | esquery "^1.0.0" 625 | estraverse "^4.2.0" 626 | esutils "^2.0.2" 627 | file-entry-cache "^2.0.0" 628 | glob "^7.0.3" 629 | globals "^9.14.0" 630 | ignore "^3.2.0" 631 | imurmurhash "^0.1.4" 632 | inquirer "^0.12.0" 633 | is-my-json-valid "^2.10.0" 634 | is-resolvable "^1.0.0" 635 | js-yaml "^3.5.1" 636 | json-stable-stringify "^1.0.0" 637 | levn "^0.3.0" 638 | lodash "^4.0.0" 639 | mkdirp "^0.5.0" 640 | natural-compare "^1.4.0" 641 | optionator "^0.8.2" 642 | path-is-inside "^1.0.1" 643 | pluralize "^1.2.1" 644 | progress "^1.1.8" 645 | require-uncached "^1.0.2" 646 | shelljs "^0.7.5" 647 | strip-bom "^3.0.0" 648 | strip-json-comments "~2.0.1" 649 | table "^3.7.8" 650 | text-table "~0.2.0" 651 | user-home "^2.0.0" 652 | 653 | espree@^3.4.0: 654 | version "3.4.3" 655 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.3.tgz#2910b5ccd49ce893c2ffffaab4fd8b3a31b82374" 656 | dependencies: 657 | acorn "^5.0.1" 658 | acorn-jsx "^3.0.0" 659 | 660 | esprima@^4.0.0: 661 | version "4.0.1" 662 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 663 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 664 | 665 | esquery@^1.0.0: 666 | version "1.0.0" 667 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" 668 | dependencies: 669 | estraverse "^4.0.0" 670 | 671 | esrecurse@^4.1.0: 672 | version "4.1.0" 673 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" 674 | dependencies: 675 | estraverse "~4.1.0" 676 | object-assign "^4.0.1" 677 | 678 | estraverse@^4.0.0, estraverse@^4.1.1, estraverse@^4.2.0: 679 | version "4.2.0" 680 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 681 | 682 | estraverse@~4.1.0: 683 | version "4.1.1" 684 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" 685 | 686 | esutils@^2.0.0, esutils@^2.0.2: 687 | version "2.0.2" 688 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 689 | 690 | event-emitter@~0.3.5: 691 | version "0.3.5" 692 | resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" 693 | dependencies: 694 | d "1" 695 | es5-ext "~0.10.14" 696 | 697 | exit-hook@^1.0.0: 698 | version "1.1.1" 699 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" 700 | 701 | fast-levenshtein@~2.0.4: 702 | version "2.0.6" 703 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 704 | 705 | figures@^1.3.5: 706 | version "1.7.0" 707 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" 708 | dependencies: 709 | escape-string-regexp "^1.0.5" 710 | object-assign "^4.1.0" 711 | 712 | file-entry-cache@^2.0.0: 713 | version "2.0.0" 714 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" 715 | dependencies: 716 | flat-cache "^1.2.1" 717 | object-assign "^4.0.1" 718 | 719 | find-up@^1.0.0: 720 | version "1.1.2" 721 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 722 | dependencies: 723 | path-exists "^2.0.0" 724 | pinkie-promise "^2.0.0" 725 | 726 | flat-cache@^1.2.1: 727 | version "1.2.2" 728 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" 729 | dependencies: 730 | circular-json "^0.3.1" 731 | del "^2.0.2" 732 | graceful-fs "^4.1.2" 733 | write "^0.2.1" 734 | 735 | foreach@^2.0.5: 736 | version "2.0.5" 737 | resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" 738 | 739 | fs.realpath@^1.0.0: 740 | version "1.0.0" 741 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 742 | 743 | function-bind@^1.0.2, function-bind@^1.1.0: 744 | version "1.1.0" 745 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" 746 | 747 | generate-function@^2.0.0: 748 | version "2.3.1" 749 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" 750 | integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== 751 | dependencies: 752 | is-property "^1.0.2" 753 | 754 | generate-object-property@^1.1.0: 755 | version "1.2.0" 756 | resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" 757 | integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA= 758 | dependencies: 759 | is-property "^1.0.0" 760 | 761 | gettext-parser@1.4.0: 762 | version "1.4.0" 763 | resolved "https://registry.yarnpkg.com/gettext-parser/-/gettext-parser-1.4.0.tgz#f8baf34a292f03d5e42f02df099d301f167a7ace" 764 | integrity sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA== 765 | dependencies: 766 | encoding "^0.1.12" 767 | safe-buffer "^5.1.1" 768 | 769 | glob@3.2.11: 770 | version "3.2.11" 771 | resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d" 772 | dependencies: 773 | inherits "2" 774 | minimatch "0.3" 775 | 776 | glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: 777 | version "7.1.2" 778 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 779 | dependencies: 780 | fs.realpath "^1.0.0" 781 | inflight "^1.0.4" 782 | inherits "2" 783 | minimatch "^3.0.4" 784 | once "^1.3.0" 785 | path-is-absolute "^1.0.0" 786 | 787 | globals@^11.1.0: 788 | version "11.9.0" 789 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz#bde236808e987f290768a93d065060d78e6ab249" 790 | integrity sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg== 791 | 792 | globals@^9.14.0: 793 | version "9.17.0" 794 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" 795 | 796 | globby@^5.0.0: 797 | version "5.0.0" 798 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" 799 | dependencies: 800 | array-union "^1.0.1" 801 | arrify "^1.0.0" 802 | glob "^7.0.3" 803 | object-assign "^4.0.1" 804 | pify "^2.0.0" 805 | pinkie-promise "^2.0.0" 806 | 807 | graceful-fs@^4.1.2: 808 | version "4.1.11" 809 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 810 | 811 | growl@1.9.2: 812 | version "1.9.2" 813 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" 814 | 815 | has-ansi@^2.0.0: 816 | version "2.0.0" 817 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 818 | dependencies: 819 | ansi-regex "^2.0.0" 820 | 821 | has-flag@^3.0.0: 822 | version "3.0.0" 823 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 824 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 825 | 826 | has@^1.0.1: 827 | version "1.0.1" 828 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" 829 | dependencies: 830 | function-bind "^1.0.2" 831 | 832 | iconv-lite@~0.4.13: 833 | version "0.4.17" 834 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.17.tgz#4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d" 835 | 836 | ignore@^3.2.0: 837 | version "3.3.3" 838 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d" 839 | 840 | imurmurhash@^0.1.4: 841 | version "0.1.4" 842 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 843 | 844 | inflight@^1.0.4: 845 | version "1.0.6" 846 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 847 | dependencies: 848 | once "^1.3.0" 849 | wrappy "1" 850 | 851 | inherits@2, inherits@^2.0.3, inherits@~2.0.1: 852 | version "2.0.3" 853 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 854 | 855 | inquirer@^0.12.0: 856 | version "0.12.0" 857 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" 858 | dependencies: 859 | ansi-escapes "^1.1.0" 860 | ansi-regex "^2.0.0" 861 | chalk "^1.0.0" 862 | cli-cursor "^1.0.1" 863 | cli-width "^2.0.0" 864 | figures "^1.3.5" 865 | lodash "^4.3.0" 866 | readline2 "^1.0.1" 867 | run-async "^0.1.0" 868 | rx-lite "^3.1.2" 869 | string-width "^1.0.1" 870 | strip-ansi "^3.0.0" 871 | through "^2.3.6" 872 | 873 | interpret@^1.0.0: 874 | version "1.0.3" 875 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" 876 | 877 | is-callable@^1.1.1, is-callable@^1.1.3: 878 | version "1.1.3" 879 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" 880 | 881 | is-date-object@^1.0.1: 882 | version "1.0.1" 883 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 884 | 885 | is-fullwidth-code-point@^1.0.0: 886 | version "1.0.0" 887 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 888 | dependencies: 889 | number-is-nan "^1.0.0" 890 | 891 | is-fullwidth-code-point@^2.0.0: 892 | version "2.0.0" 893 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 894 | 895 | is-my-ip-valid@^1.0.0: 896 | version "1.0.0" 897 | resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" 898 | integrity sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ== 899 | 900 | is-my-json-valid@^2.10.0: 901 | version "2.20.0" 902 | resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz#1345a6fca3e8daefc10d0fa77067f54cedafd59a" 903 | integrity sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA== 904 | dependencies: 905 | generate-function "^2.0.0" 906 | generate-object-property "^1.1.0" 907 | is-my-ip-valid "^1.0.0" 908 | jsonpointer "^4.0.0" 909 | xtend "^4.0.0" 910 | 911 | is-path-cwd@^1.0.0: 912 | version "1.0.0" 913 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 914 | 915 | is-path-in-cwd@^1.0.0: 916 | version "1.0.0" 917 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" 918 | dependencies: 919 | is-path-inside "^1.0.0" 920 | 921 | is-path-inside@^1.0.0: 922 | version "1.0.0" 923 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" 924 | dependencies: 925 | path-is-inside "^1.0.1" 926 | 927 | is-property@^1.0.0, is-property@^1.0.2: 928 | version "1.0.2" 929 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" 930 | integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ= 931 | 932 | is-regex@^1.0.3: 933 | version "1.0.4" 934 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 935 | dependencies: 936 | has "^1.0.1" 937 | 938 | is-resolvable@^1.0.0: 939 | version "1.0.0" 940 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" 941 | dependencies: 942 | tryit "^1.0.1" 943 | 944 | is-symbol@^1.0.1: 945 | version "1.0.1" 946 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" 947 | 948 | isarray@^1.0.0, isarray@~1.0.0: 949 | version "1.0.0" 950 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 951 | 952 | jade@0.26.3: 953 | version "0.26.3" 954 | resolved "https://registry.yarnpkg.com/jade/-/jade-0.26.3.tgz#8f10d7977d8d79f2f6ff862a81b0513ccb25686c" 955 | dependencies: 956 | commander "0.6.1" 957 | mkdirp "0.3.0" 958 | 959 | js-tokens@^3.0.0: 960 | version "3.0.1" 961 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 962 | 963 | js-tokens@^4.0.0: 964 | version "4.0.0" 965 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 966 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 967 | 968 | js-yaml@^3.5.1: 969 | version "3.13.1" 970 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" 971 | integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== 972 | dependencies: 973 | argparse "^1.0.7" 974 | esprima "^4.0.0" 975 | 976 | jsesc@^2.5.1: 977 | version "2.5.2" 978 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 979 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 980 | 981 | json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: 982 | version "1.0.1" 983 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 984 | dependencies: 985 | jsonify "~0.0.0" 986 | 987 | json5@^2.1.0: 988 | version "2.1.0" 989 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" 990 | integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== 991 | dependencies: 992 | minimist "^1.2.0" 993 | 994 | jsonify@~0.0.0: 995 | version "0.0.0" 996 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 997 | 998 | jsonpointer@^4.0.0: 999 | version "4.0.1" 1000 | resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" 1001 | integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk= 1002 | 1003 | jsx-ast-utils@^1.0.0, jsx-ast-utils@^1.3.4: 1004 | version "1.4.1" 1005 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" 1006 | 1007 | levn@^0.3.0, levn@~0.3.0: 1008 | version "0.3.0" 1009 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 1010 | dependencies: 1011 | prelude-ls "~1.1.2" 1012 | type-check "~0.3.2" 1013 | 1014 | lodash.cond@^4.3.0: 1015 | version "4.5.2" 1016 | resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" 1017 | 1018 | lodash@^4.0.0, lodash@^4.17.10, lodash@^4.3.0: 1019 | version "4.17.19" 1020 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" 1021 | integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== 1022 | 1023 | lru-cache@2: 1024 | version "2.7.3" 1025 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" 1026 | 1027 | minimatch@0.3: 1028 | version "0.3.0" 1029 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd" 1030 | dependencies: 1031 | lru-cache "2" 1032 | sigmund "~1.0.0" 1033 | 1034 | minimatch@^3.0.3, minimatch@^3.0.4: 1035 | version "3.0.4" 1036 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1037 | dependencies: 1038 | brace-expansion "^1.1.7" 1039 | 1040 | minimist@0.0.8: 1041 | version "0.0.8" 1042 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1043 | 1044 | minimist@^1.2.0: 1045 | version "1.2.0" 1046 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1047 | integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= 1048 | 1049 | mkdirp@0.3.0: 1050 | version "0.3.0" 1051 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" 1052 | 1053 | mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1: 1054 | version "0.5.1" 1055 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1056 | dependencies: 1057 | minimist "0.0.8" 1058 | 1059 | mocha@^2.3.4: 1060 | version "2.5.3" 1061 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-2.5.3.tgz#161be5bdeb496771eb9b35745050b622b5aefc58" 1062 | dependencies: 1063 | commander "2.3.0" 1064 | debug "2.2.0" 1065 | diff "1.4.0" 1066 | escape-string-regexp "1.0.2" 1067 | glob "3.2.11" 1068 | growl "1.9.2" 1069 | jade "0.26.3" 1070 | mkdirp "0.5.1" 1071 | supports-color "1.2.0" 1072 | to-iso-string "0.0.2" 1073 | 1074 | ms@0.7.1: 1075 | version "0.7.1" 1076 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" 1077 | 1078 | ms@2.0.0: 1079 | version "2.0.0" 1080 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1081 | 1082 | ms@^2.1.1: 1083 | version "2.1.1" 1084 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 1085 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 1086 | 1087 | mute-stream@0.0.5: 1088 | version "0.0.5" 1089 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" 1090 | 1091 | natural-compare@^1.4.0: 1092 | version "1.4.0" 1093 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1094 | 1095 | number-is-nan@^1.0.0: 1096 | version "1.0.1" 1097 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1098 | 1099 | object-assign@^4.0.1, object-assign@^4.1.0: 1100 | version "4.1.1" 1101 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1102 | 1103 | object-keys@^1.0.10, object-keys@^1.0.8: 1104 | version "1.0.11" 1105 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" 1106 | 1107 | object.assign@^4.0.4: 1108 | version "4.0.4" 1109 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc" 1110 | dependencies: 1111 | define-properties "^1.1.2" 1112 | function-bind "^1.1.0" 1113 | object-keys "^1.0.10" 1114 | 1115 | once@^1.3.0: 1116 | version "1.4.0" 1117 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1118 | dependencies: 1119 | wrappy "1" 1120 | 1121 | onetime@^1.0.0: 1122 | version "1.1.0" 1123 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" 1124 | 1125 | optionator@^0.8.2: 1126 | version "0.8.2" 1127 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 1128 | dependencies: 1129 | deep-is "~0.1.3" 1130 | fast-levenshtein "~2.0.4" 1131 | levn "~0.3.0" 1132 | prelude-ls "~1.1.2" 1133 | type-check "~0.3.2" 1134 | wordwrap "~1.0.0" 1135 | 1136 | os-homedir@^1.0.0: 1137 | version "1.0.2" 1138 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 1139 | 1140 | path-exists@^2.0.0: 1141 | version "2.1.0" 1142 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 1143 | dependencies: 1144 | pinkie-promise "^2.0.0" 1145 | 1146 | path-is-absolute@^1.0.0: 1147 | version "1.0.1" 1148 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1149 | 1150 | path-is-inside@^1.0.1: 1151 | version "1.0.2" 1152 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 1153 | 1154 | path-parse@^1.0.5: 1155 | version "1.0.5" 1156 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" 1157 | 1158 | pify@^2.0.0: 1159 | version "2.3.0" 1160 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1161 | 1162 | pinkie-promise@^2.0.0: 1163 | version "2.0.1" 1164 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 1165 | dependencies: 1166 | pinkie "^2.0.0" 1167 | 1168 | pinkie@^2.0.0: 1169 | version "2.0.4" 1170 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 1171 | 1172 | pkg-dir@^1.0.0: 1173 | version "1.0.0" 1174 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" 1175 | dependencies: 1176 | find-up "^1.0.0" 1177 | 1178 | pkg-up@^1.0.0: 1179 | version "1.0.0" 1180 | resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26" 1181 | dependencies: 1182 | find-up "^1.0.0" 1183 | 1184 | pluralize@^1.2.1: 1185 | version "1.2.1" 1186 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" 1187 | 1188 | prelude-ls@~1.1.2: 1189 | version "1.1.2" 1190 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 1191 | 1192 | process-nextick-args@~1.0.6: 1193 | version "1.0.7" 1194 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 1195 | 1196 | progress@^1.1.8: 1197 | version "1.1.8" 1198 | resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" 1199 | 1200 | readable-stream@^2.2.2: 1201 | version "2.2.10" 1202 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.10.tgz#effe72bb7c884c0dd335e2379d526196d9d011ee" 1203 | dependencies: 1204 | core-util-is "~1.0.0" 1205 | inherits "~2.0.1" 1206 | isarray "~1.0.0" 1207 | process-nextick-args "~1.0.6" 1208 | safe-buffer "^5.0.1" 1209 | string_decoder "~1.0.0" 1210 | util-deprecate "~1.0.1" 1211 | 1212 | readline2@^1.0.1: 1213 | version "1.0.1" 1214 | resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" 1215 | dependencies: 1216 | code-point-at "^1.0.0" 1217 | is-fullwidth-code-point "^1.0.0" 1218 | mute-stream "0.0.5" 1219 | 1220 | rechoir@^0.6.2: 1221 | version "0.6.2" 1222 | resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" 1223 | dependencies: 1224 | resolve "^1.1.6" 1225 | 1226 | require-uncached@^1.0.2: 1227 | version "1.0.3" 1228 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 1229 | dependencies: 1230 | caller-path "^0.1.0" 1231 | resolve-from "^1.0.0" 1232 | 1233 | resolve-from@^1.0.0: 1234 | version "1.0.1" 1235 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 1236 | 1237 | resolve@^1.1.6: 1238 | version "1.3.3" 1239 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" 1240 | dependencies: 1241 | path-parse "^1.0.5" 1242 | 1243 | resolve@^1.3.2: 1244 | version "1.8.1" 1245 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" 1246 | integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA== 1247 | dependencies: 1248 | path-parse "^1.0.5" 1249 | 1250 | restore-cursor@^1.0.1: 1251 | version "1.0.1" 1252 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" 1253 | dependencies: 1254 | exit-hook "^1.0.0" 1255 | onetime "^1.0.0" 1256 | 1257 | rimraf@^2.2.8, rimraf@^2.6.1: 1258 | version "2.6.1" 1259 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" 1260 | dependencies: 1261 | glob "^7.0.5" 1262 | 1263 | run-async@^0.1.0: 1264 | version "0.1.0" 1265 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" 1266 | dependencies: 1267 | once "^1.3.0" 1268 | 1269 | rx-lite@^3.1.2: 1270 | version "3.1.2" 1271 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" 1272 | 1273 | safe-buffer@^5.0.1: 1274 | version "5.1.0" 1275 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.0.tgz#fe4c8460397f9eaaaa58e73be46273408a45e223" 1276 | 1277 | safe-buffer@^5.1.1: 1278 | version "5.2.0" 1279 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" 1280 | integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== 1281 | 1282 | semver@^5.4.1: 1283 | version "5.6.0" 1284 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" 1285 | integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== 1286 | 1287 | shelljs@^0.7.5: 1288 | version "0.7.7" 1289 | resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" 1290 | dependencies: 1291 | glob "^7.0.0" 1292 | interpret "^1.0.0" 1293 | rechoir "^0.6.2" 1294 | 1295 | sigmund@~1.0.0: 1296 | version "1.0.1" 1297 | resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" 1298 | 1299 | slice-ansi@0.0.4: 1300 | version "0.0.4" 1301 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" 1302 | 1303 | source-map@^0.5.0: 1304 | version "0.5.6" 1305 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" 1306 | 1307 | sprintf-js@~1.0.2: 1308 | version "1.0.3" 1309 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1310 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 1311 | 1312 | string-width@^1.0.1: 1313 | version "1.0.2" 1314 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1315 | dependencies: 1316 | code-point-at "^1.0.0" 1317 | is-fullwidth-code-point "^1.0.0" 1318 | strip-ansi "^3.0.0" 1319 | 1320 | string-width@^2.0.0: 1321 | version "2.0.0" 1322 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" 1323 | dependencies: 1324 | is-fullwidth-code-point "^2.0.0" 1325 | strip-ansi "^3.0.0" 1326 | 1327 | string_decoder@~1.0.0: 1328 | version "1.0.1" 1329 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.1.tgz#62e200f039955a6810d8df0a33ffc0f013662d98" 1330 | dependencies: 1331 | safe-buffer "^5.0.1" 1332 | 1333 | strip-ansi@^3.0.0: 1334 | version "3.0.1" 1335 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1336 | dependencies: 1337 | ansi-regex "^2.0.0" 1338 | 1339 | strip-bom@^3.0.0: 1340 | version "3.0.0" 1341 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1342 | 1343 | strip-json-comments@~2.0.1: 1344 | version "2.0.1" 1345 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1346 | 1347 | supports-color@1.2.0: 1348 | version "1.2.0" 1349 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-1.2.0.tgz#ff1ed1e61169d06b3cf2d588e188b18d8847e17e" 1350 | 1351 | supports-color@^2.0.0: 1352 | version "2.0.0" 1353 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1354 | 1355 | supports-color@^5.3.0: 1356 | version "5.5.0" 1357 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1358 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1359 | dependencies: 1360 | has-flag "^3.0.0" 1361 | 1362 | table@^3.7.8: 1363 | version "3.8.3" 1364 | resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" 1365 | dependencies: 1366 | ajv "^4.7.0" 1367 | ajv-keywords "^1.0.0" 1368 | chalk "^1.1.1" 1369 | lodash "^4.0.0" 1370 | slice-ansi "0.0.4" 1371 | string-width "^2.0.0" 1372 | 1373 | text-table@~0.2.0: 1374 | version "0.2.0" 1375 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1376 | 1377 | through@^2.3.6: 1378 | version "2.3.8" 1379 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1380 | 1381 | to-fast-properties@^2.0.0: 1382 | version "2.0.0" 1383 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1384 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 1385 | 1386 | to-iso-string@0.0.2: 1387 | version "0.0.2" 1388 | resolved "https://registry.yarnpkg.com/to-iso-string/-/to-iso-string-0.0.2.tgz#4dc19e664dfccbe25bd8db508b00c6da158255d1" 1389 | 1390 | trim-right@^1.0.1: 1391 | version "1.0.1" 1392 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 1393 | 1394 | tryit@^1.0.1: 1395 | version "1.0.3" 1396 | resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" 1397 | 1398 | type-check@~0.3.2: 1399 | version "0.3.2" 1400 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1401 | dependencies: 1402 | prelude-ls "~1.1.2" 1403 | 1404 | typedarray@^0.0.6: 1405 | version "0.0.6" 1406 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 1407 | 1408 | user-home@^2.0.0: 1409 | version "2.0.0" 1410 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" 1411 | dependencies: 1412 | os-homedir "^1.0.0" 1413 | 1414 | util-deprecate@~1.0.1: 1415 | version "1.0.2" 1416 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1417 | 1418 | wordwrap@~1.0.0: 1419 | version "1.0.0" 1420 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 1421 | 1422 | wrappy@1: 1423 | version "1.0.2" 1424 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1425 | 1426 | write@^0.2.1: 1427 | version "0.2.1" 1428 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 1429 | dependencies: 1430 | mkdirp "^0.5.1" 1431 | 1432 | xtend@^4.0.0: 1433 | version "4.0.2" 1434 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 1435 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 1436 | --------------------------------------------------------------------------------