pax_global_header00006660000000000000000000000064137277732400014526gustar00rootroot0000000000000052 comment=57f0b4b5bae67a0996f280fba25090d1d7b17cb9 inflected-2.1.0/000077500000000000000000000000001372777324000134635ustar00rootroot00000000000000inflected-2.1.0/.editorconfig000066400000000000000000000004461372777324000161440ustar00rootroot00000000000000# http://editorconfig.org root = true [*] charset = utf-8 end_of_line = lf indent_size = 2 indent_style = space insert_final_newline = true max_line_length = 120 trim_trailing_whitespace = true [*.md] max_line_length = 0 trim_trailing_whitespace = false [COMMIT_EDITMSG] max_line_length = 0 inflected-2.1.0/.eslintrc000066400000000000000000000130051372777324000153060ustar00rootroot00000000000000{ "root": true, "parser": "babel-eslint", "plugins": ["import"], "env": { "browser": true, "commonjs": true, "es6": true, "node": true }, "parserOptions": { "ecmaVersion": 6, "sourceType": "module", "ecmaFeatures": { "experimentalObjectRestSpread": true } }, "settings": { "import/ignore": ["node_modules"], "import/extensions": [".js"], "import/resolver": { "node": { "extensions": [".js", ".json"] } } }, "rules": { // http://eslint.org/docs/rules/ "array-callback-return": "warn", "default-case": ["warn", { "commentPattern": "^no default$" }], "dot-location": ["warn", "property"], "eqeqeq": ["warn", "allow-null"], "new-parens": "warn", "no-array-constructor": "warn", "no-caller": "warn", "no-cond-assign": ["warn", "always"], "no-const-assign": "warn", "no-control-regex": "warn", "no-delete-var": "warn", "no-dupe-args": "warn", "no-dupe-class-members": "warn", "no-dupe-keys": "warn", "no-duplicate-case": "warn", "no-empty-character-class": "warn", "no-empty-pattern": "warn", "no-eval": "warn", "no-ex-assign": "warn", "no-extend-native": "warn", "no-extra-bind": "warn", "no-extra-label": "warn", "no-fallthrough": "warn", "no-func-assign": "warn", "no-implied-eval": "warn", "no-invalid-regexp": "warn", "no-iterator": "warn", "no-label-var": "warn", "no-labels": ["warn", { "allowLoop": false, "allowSwitch": false }], "no-lone-blocks": "warn", "no-loop-func": "warn", "no-mixed-operators": [ "warn", { "groups": [ ["&", "|", "^", "~", "<<", ">>", ">>>"], ["==", "!=", "===", "!==", ">", ">=", "<", "<="], ["&&", "||"], ["in", "instanceof"] ], "allowSamePrecedence": false } ], "no-multi-str": "warn", "no-native-reassign": "warn", "no-negated-in-lhs": "warn", "no-new-func": "warn", "no-new-object": "warn", "no-new-symbol": "warn", "no-new-wrappers": "warn", "no-obj-calls": "warn", "no-octal": "warn", "no-octal-escape": "warn", "no-redeclare": "warn", "no-regex-spaces": "warn", "no-restricted-syntax": ["warn", "LabeledStatement", "WithStatement"], "no-script-url": "warn", "no-self-assign": "warn", "no-self-compare": "warn", "no-sequences": "warn", "no-shadow-restricted-names": "warn", "no-sparse-arrays": "warn", "no-template-curly-in-string": "warn", "no-this-before-super": "warn", "no-throw-literal": "warn", "no-undef": "error", "no-restricted-globals": ["error", "event"], "no-unexpected-multiline": "warn", "no-unreachable": "warn", "no-unused-expressions": [ "warn", { "allowShortCircuit": true, "allowTernary": true } ], "no-unused-labels": "warn", "no-unused-vars": [ "warn", { "vars": "local", "varsIgnorePattern": "^_", "args": "none", "ignoreRestSiblings": true } ], "no-use-before-define": ["warn", "nofunc"], "no-useless-computed-key": "warn", "no-useless-concat": "warn", "no-useless-constructor": "warn", "no-useless-escape": "warn", "no-useless-rename": [ "warn", { "ignoreDestructuring": false, "ignoreImport": false, "ignoreExport": false } ], "no-with": "warn", "no-whitespace-before-property": "warn", "operator-assignment": ["warn", "always"], "radix": "warn", "require-yield": "warn", "rest-spread-spacing": ["warn", "never"], "strict": ["warn", "never"], "unicode-bom": ["warn", "never"], "use-isnan": "warn", "valid-typeof": "warn", "no-restricted-properties": [ "error", { "object": "require", "property": "ensure", "message": "Please use import() instead. More info: https://webpack.js.org/guides/code-splitting-import/#dynamic-import" }, { "object": "System", "property": "import", "message": "Please use import() instead. More info: https://webpack.js.org/guides/code-splitting-import/#dynamic-import" } ], // https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/ // TODO: import rules are temporarily disabled because they don"t play well // with how eslint-loader only checks the file you change. So if module A // imports module B, and B is missing a default export, the linter will // record this as an issue in module A. Now if you fix module B, the linter // will not be aware that it needs to re-lint A as well, so the error // will stay until the next restart, which is really confusing. // This is probably fixable with a patch to eslint-loader. // When file A is saved, we want to invalidate all files that import it // *and* that currently have lint errors. This should fix the problem. // (As an exception, import/no-webpack-loader-syntax can be enabled already // because it doesn"t depend on whether the file exists, so this issue // doesn"t apply to it.) // "import/default": "warn", // "import/export": "warn", // "import/named": "warn", // "import/namespace": "warn", // "import/no-amd": "warn", // "import/no-duplicates": "warn", // "import/no-extraneous-dependencies": "warn", // "import/no-named-as-default": "warn", // "import/no-named-as-default-member": "warn", // "import/no-unresolved": ["warn", { commonjs: true }], }, } inflected-2.1.0/.gitignore000066400000000000000000000001621372777324000154520ustar00rootroot00000000000000.DS_STORE dist node_modules *~ *.pyc .module-cache *.gem *.log* *.sublime-project *.sublime-workspace .idea *.iml inflected-2.1.0/.npmignore000066400000000000000000000001161372777324000154600ustar00rootroot00000000000000test .editorconfig .eslintrc .npmignore LICENSE.txt Makefile rollup.config.js inflected-2.1.0/.travis.yml000066400000000000000000000001041372777324000155670ustar00rootroot00000000000000language: node_js node_js: - "node" - "12" - "10" cache: yarn inflected-2.1.0/LICENSE.txt000066400000000000000000000022241372777324000153060ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2014-2017 Martin Andert Copyright (c) 2005-2017 David Heinemeier Hansson Copyright (c) 2008 The Ruby I18n team Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. inflected-2.1.0/Makefile000066400000000000000000000006301372777324000151220ustar00rootroot00000000000000BIN = ./node_modules/.bin install:: @yarn install test:: @yarn test build:: @yarn build clean:: @rm -rf dist release-patch:: clean test build @$(call release,patch) release-minor:: clean test build @$(call release,minor) release-major:: clean test build @$(call release,major) publish:: git push --tags origin HEAD:master npm publish define release npm version $(1) -m 'Release v%s' endef inflected-2.1.0/README.md000066400000000000000000000243161372777324000147500ustar00rootroot00000000000000# inflected [![Travis build status](https://img.shields.io/travis/martinandert/inflected/master.svg)](https://travis-ci.org/martinandert/inflected) [![npm downloads](https://img.shields.io/npm/dm/inflected.svg)](https://npmjs.com/package/inflected) [![no dependencies](https://img.shields.io/badge/dependencies-none-brightgreen.svg)](https://npmjs.com/package/inflected) [![license](https://img.shields.io/github/license/martinandert/inflected.svg)](https://github.com/martinandert/inflected/blob/master/LICENSE.txt) A port of ActiveSupport's inflector to Node.js. Also usable in the browser. ## Installation Install via npm: ```bash % npm install inflected ``` Or via yarn: ```bash % yarn add inflected ``` The UMD build is also available on [unpkg](https://unpkg.com/), adding a `Inflector` object to the global scope. ```html ``` ## Usage The module exports an object with several utility functions. ```js var Inflector = require('inflected'); Inflector.pluralize('Category') // => 'Categories' ``` If using ES modules, you can cherry-pick only the functions you're interested in: ```js import { pluralize } from 'inflected'; pluralize('Category') // => 'Categories' ``` Here is the complete API reference: ### Inflector.pluralize ```js string pluralize(string word[, string locale]) ``` Returns the plural form of the word in the string. If passed an optional `locale` parameter, the word will be pluralized using rules defined for that language. By default, this parameter is set to "en". ```js Inflector.pluralize('post') // => 'posts' Inflector.pluralize('octopus') // => 'octopi' Inflector.pluralize('sheep') // => 'sheep' Inflector.pluralize('words') // => 'words' Inflector.pluralize('CamelOctopus') // => 'CamelOctopi' Inflector.pluralize('ley', 'es') // => 'leyes' ``` ### Inflector.singularize ```js string singularize(string word[, string locale]) ``` The reverse of `pluralize`, returns the singular form of a word in a string. If passed an optional `locale` parameter, the word will be singularized using rules defined for that language. By default, this parameter is set to "en". ```js Inflector.singularize('posts') // => 'post' Inflector.singularize('octopi') // => 'octopus' Inflector.singularize('sheep') // => 'sheep' Inflector.singularize('word') // => 'word' Inflector.singularize('CamelOctopi') // => 'CamelOctopus' Inflector.singularize('leyes', 'es') // => 'ley' ``` ### Inflector.camelize ```js string camelize(string term[, boolean uppercaseFirstLetter]) ``` By default, `camelize` converts strings to UpperCamelCase. If the second argument is set to `false` then `camelize` produces lowerCamelCase. ```js Inflector.camelize('foo_bar') // => 'FooBar' Inflector.camelize('foo_bar', false) // => 'fooBar' ``` As a rule of thumb you can think of `camelize` as the inverse of `underscore`, though there are cases where that does not hold: ```js Inflector.camelize(Inflector.underscore('SSLError')) // => 'SslError' ``` ### Inflector.underscore ```js string underscore(string camelCasedWord) ``` Makes an underscored, lowercase form from the expression in the string. ```js Inflector.underscore('FooBar') // => 'foo_bar' ``` As a rule of thumb you can think of `underscore` as the inverse of `camelize`, though there are cases where that does not hold: ```js Inflector.camelize(Inflector.underscore('SSLError')) // => 'SslError' ``` ### Inflector.humanize ```js string humanize(string lowerCaseAndUnderscoredWord[, object options]) ``` Capitalizes the first word, turns underscores into spaces, and strips a trailing "_id" if present. Like `titleize`, this is meant for creating pretty output. The capitalization of the first word can be turned off by setting the `capitalize` option key to `false`. By default, this option is `true`. ```js Inflector.humanize('employee_salary') // => 'Employee salary' Inflector.humanize('author_id') // => 'Author' Inflector.humanize('author_id', { capitalize: false }) // => 'author' ``` ### Inflector.titleize ```js string titleize(string sentence) ``` Capitalizes all the words and replaces some characters in the string to create a nicer looking title. `titleize` is meant for creating pretty output. ```js Inflector.titleize('man from the boondocks') // => 'Man From The Boondocks' Inflector.titleize('x-men: the last stand') // => 'X Men: The Last Stand' Inflector.titleize('TheManWithoutAPast') // => 'The Man Without A Past' Inflector.titleize('raiders_of_the_lost_ark') // => 'Raiders Of The Lost Ark' ``` ### Inflector.tableize ```js string tableize(string className) ``` Create the name of a table like Rails does for models to table names. This method uses the `pluralize` method on the last word in the string. ```js Inflector.tableize('RawScaledScorer') // => 'raw_scaled_scorers' Inflector.tableize('egg_and_ham') // => 'egg_and_hams' Inflector.tableize('fancyCategory') // => 'fancy_categories' ``` ### Inflector.classify ```js string classify(string tableName) ``` Create a class name from a plural table name like Rails does for table names to models. ```js Inflector.classify('egg_and_hams') // => 'EggAndHam' Inflector.classify('posts') // => 'Post' ``` Singular names are not handled correctly: ```js Inflector.classify('business') // => 'Busines' ``` ### Inflector.dasherize ```js string dasherize(string underscoredWord) ``` Replaces underscores with dashes in the string. ```js Inflector.dasherize('puni_puni') // => 'puni-puni' ``` ### Inflector.foreignKey ```js string foreignKey(string className[, boolean separateClassNameAndIdWithUnderscore]) ``` Creates a foreign key name from a class name. `separateClassNameAndIdWithUnderscore` sets whether the method should put "_" between the name and "id" (default: `true`). ```js Inflector.foreignKey('Message') // => 'message_id' Inflector.foreignKey('Message', false) // => 'messageid' ``` ### Inflector.ordinal ```js string ordinal(object number) ``` Returns the suffix that should be added to a number to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th. ```js Inflector.ordinal(1) // => 'st' Inflector.ordinal(2) // => 'nd' Inflector.ordinal(1002) // => 'nd' Inflector.ordinal(1003) // => 'rd' Inflector.ordinal(-11) // => 'th' Inflector.ordinal(-1021) // => 'st' ``` ### Inflector.ordinalize ```js string ordinalize(object number) ``` Turns a number into an ordinal string used to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th. ```js Inflector.ordinalize(1) // => '1st' Inflector.ordinalize(2) // => '2nd' Inflector.ordinalize(1002) // => '1002nd' Inflector.ordinalize(1003) // => '1003rd' Inflector.ordinalize(-11) // => '-11th' Inflector.ordinalize(-1021) // => '-1021st' ``` ### Inflector.inflections ```js Inflections inflections([string locale]) inflections([string locale], [function(Inflections) fn]) ``` A singleton instance of the internal Inflections class is yielded by this function, which can then be used to specify additional inflection rules. If passed an optional locale, rules for other languages can be specified. The default locale is "en". Only rules for English are provided by this library. ```js Inflector.inflections('en', function(inflect) { inflect.plural(/^(ox)$/i, '$1$2en'); inflect.singular /^(ox)en/i, '$1'); inflect.irregular('octopus', 'octopi'); inflect.uncountable('equipment', 'snow'); }); ``` New rules are added at the top. So in the example above, the irregular rule for octopus will now be the first of the pluralization and singularization rules that is run. This guarantees that your rules run before any of the rules that may already have been loaded. ### Inflector.transliterate ```js string transliterate(string sentence[, object options]) ``` Replaces non-ASCII characters with an ASCII approximation, or if none exists, a replacement character which defaults to "?". ```js Inflector.transliterate('Ærøskøbing') // => 'AEroskobing' ``` Default approximations are provided for Western/Latin characters, e.g, "ø", "ñ", "é", "ß", etc. This method is I18n-aware, so you can set up custom approximations for a locale. This can be useful, for example, to transliterate German's "ü" and "ö" to "ue" and "oe", or to add support for transliterating Russian to ASCII. In order to make your custom transliterations available, you must set them using the `approximate` helper function: ```js Inflector.transliterations('de', function(t) { t.approximate('ü', 'ue'); t.approximate('ö', 'oe'); }); ``` Now you can have different transliterations for each locale: ```js Inflector.transliterate('Jürgen') // => 'Jurgen' Inflector.transliterate('Jürgen', { locale: 'de' }) // => 'Juergen' ``` ### Inflector.parameterize ```js string parameterize(string sentence[, object options]) ``` Replaces special characters in a string so that it may be used as part of a 'pretty' URL. ```js Inflector.parameterize('Donald E. Knuth') // => 'donald-e-knuth' Inflector.parameterize('Donald E. Knuth', { separator: '+' }) // => 'donald+e+knuth' ``` As of v2.1, there's also a `preserveCase` option: ```js Inflector.parameterize('Donald E. Knuth', { preserveCase: true }) // => 'Donald+E+Knuth' ``` ### Inflector.constantify ```js string constantify(string words) ``` Converts words (camelCased, under_scored, or dasherized) to CONSTANT_CASE. ```js Inflector.constantify('bankAccount') // => 'BANK_ACCOUNT' Inflector.constantify('bank-account') // => 'BANK_ACCOUNT' Inflector.constantify('bank_account') // => 'BANK_ACCOUNT' Inflector.constantify('Bank Account') // => 'BANK_ACCOUNT' ``` ## Contributing Here's a quick guide: 1. Fork the repo and `make install`. 2. Run the tests. We only take pull requests with passing tests, and it's great to know that you have a clean slate: `make test`. 3. Add a test for your change. Only refactoring and documentation changes require no new tests. If you are adding functionality or are fixing a bug, we need a test! 4. Make the test pass. 5. Push to your fork and submit a pull request. ## Licence Released under The MIT License. inflected-2.1.0/package.json000066400000000000000000000032261372777324000157540ustar00rootroot00000000000000{ "name": "inflected", "version": "2.1.0", "description": "A port of ActiveSupport's inflector to Node.js", "main": "dist/umd/inflected.js", "module": "dist/esm/inflected.js", "repository": "martinandert/inflected", "author": "Martin Andert", "license": "MIT", "keywords": [ "inflector", "inflection", "pluralize", "singularize", "camelize", "titleize", "tableize", "humanize", "capitalize", "constantify", "dasherize", "ordinalize", "parameterize", "transliterate", "activesupport" ], "scripts": { "lint": "eslint --max-warnings 0 src/**", "test": "yarn lint && yarn bundle && mocha -R spec --bail test/index.js && bundlesize", "precommit": "lint-staged", "build": "yarn bundle && yarn minify", "bundle": "rollup --config", "minify": "uglifyjs dist/umd/inflected.js --compress --mangle --output dist/umd/inflected.min.js" }, "devDependencies": { "babel-eslint": "^7.2.2", "babel-plugin-external-helpers": "^6.22.0", "babel-plugin-transform-class-properties": "^6.24.1", "babel-preset-latest": "^6.24.1", "bundlesize": "^0.18.0", "eslint": "^4.18.2", "eslint-plugin-import": "^2.2.0", "husky": "^0.13.3", "lint-staged": "^3.4.0", "mocha": "^3.2.0", "object-assign": "^4.1.1", "prettier": "^1.1.0", "rollup": "^0.41.6", "rollup-plugin-babel": "^2.7.1", "rollup-plugin-node-resolve": "^3.0.0", "uglify-js": "^2.8.22" }, "lint-staged": { "src/**/*.js": [ "prettier --write", "git add" ] }, "bundlesize": [ { "path": "./dist/*/inflected.js", "maxSize": "5 kB" } ] } inflected-2.1.0/rollup.config.js000066400000000000000000000006021372777324000166000ustar00rootroot00000000000000import resolve from 'rollup-plugin-node-resolve'; import babel from 'rollup-plugin-babel'; const pkg = require('./package.json'); export default { entry: 'src/index.js', plugins: [ resolve(), babel({ exclude: 'node_modules/**', }), ], targets: [ { dest: pkg.main, format: 'umd', moduleName: 'Inflector' }, { dest: pkg.module, format: 'es' }, ], }; inflected-2.1.0/src/000077500000000000000000000000001372777324000142525ustar00rootroot00000000000000inflected-2.1.0/src/.babelrc000066400000000000000000000002571372777324000156510ustar00rootroot00000000000000{ "presets": [ ["latest", { "es2015": { "modules": false } }] ], "plugins": [ "external-helpers", "transform-class-properties" ] } inflected-2.1.0/src/Inflector.js000066400000000000000000000066711372777324000165470ustar00rootroot00000000000000function icPart(str) { return str .split("") .map(c => `(?:${c.toUpperCase()}|${c.toLowerCase()})`) .join(""); } function remove(arr, elem) { for (let i = arr.length - 1; i >= 0; i--) { if (arr[i] === elem) { Array.prototype.splice.call(arr, i, 1); } } } function hasProp(obj, key) { return Object.prototype.hasOwnProperty.call(obj, key); } const instances = {}; export default class Inflector { static getInstance(locale) { instances[locale] = instances[locale] || new Inflector(); return instances[locale]; } constructor() { this.plurals = []; this.singulars = []; this.uncountables = []; this.humans = []; this.acronyms = {}; this.acronymRegex = /(?=a)b/; } acronym(word) { this.acronyms[word.toLowerCase()] = word; const values = []; for (const key in this.acronyms) { if (hasProp(this.acronyms, key)) { values.push(this.acronyms[key]); } } this.acronymRegex = new RegExp(values.join("|")); } plural(rule, replacement) { if (typeof rule === "string") { remove(this.uncountables, rule); } remove(this.uncountables, replacement); this.plurals.unshift([rule, replacement]); } singular(rule, replacement) { if (typeof rule === "string") { remove(this.uncountables, rule); } remove(this.uncountables, replacement); this.singulars.unshift([rule, replacement]); } irregular(singular, plural) { remove(this.uncountables, singular); remove(this.uncountables, plural); const s0 = singular[0]; const sRest = singular.substr(1); const p0 = plural[0]; const pRest = plural.substr(1); if (s0.toUpperCase() === p0.toUpperCase()) { this.plural(new RegExp("(" + s0 + ")" + sRest + "$", "i"), "$1" + pRest); this.plural(new RegExp("(" + p0 + ")" + pRest + "$", "i"), "$1" + pRest); this.singular( new RegExp("(" + s0 + ")" + sRest + "$", "i"), "$1" + sRest ); this.singular( new RegExp("(" + p0 + ")" + pRest + "$", "i"), "$1" + sRest ); } else { const sRestIC = icPart(sRest); const pRestIC = icPart(pRest); this.plural( new RegExp(s0.toUpperCase() + sRestIC + "$"), p0.toUpperCase() + pRest ); this.plural( new RegExp(s0.toLowerCase() + sRestIC + "$"), p0.toLowerCase() + pRest ); this.plural( new RegExp(p0.toUpperCase() + pRestIC + "$"), p0.toUpperCase() + pRest ); this.plural( new RegExp(p0.toLowerCase() + pRestIC + "$"), p0.toLowerCase() + pRest ); this.singular( new RegExp(s0.toUpperCase() + sRestIC + "$"), s0.toUpperCase() + sRest ); this.singular( new RegExp(s0.toLowerCase() + sRestIC + "$"), s0.toLowerCase() + sRest ); this.singular( new RegExp(p0.toUpperCase() + pRestIC + "$"), s0.toUpperCase() + sRest ); this.singular( new RegExp(p0.toLowerCase() + pRestIC + "$"), s0.toLowerCase() + sRest ); } } uncountable(...words) { this.uncountables = this.uncountables.concat(words); } human(rule, replacement) { this.humans.unshift([rule, replacement]); } clear(scope = "all") { if (scope === "all") { this.plurals = []; this.singulars = []; this.uncountables = []; this.humans = []; } else { this[scope] = []; } } } inflected-2.1.0/src/Transliterator.js000066400000000000000000000077401372777324000176350ustar00rootroot00000000000000// prettier-ignore const DEFAULT_APPROXIMATIONS = { 'À': 'A', 'Á': 'A', 'Â': 'A', 'Ã': 'A', 'Ä': 'A', 'Å': 'A', 'Æ': 'AE', 'Ç': 'C', 'È': 'E', 'É': 'E', 'Ê': 'E', 'Ë': 'E', 'Ì': 'I', 'Í': 'I', 'Î': 'I', 'Ï': 'I', 'Ð': 'D', 'Ñ': 'N', 'Ò': 'O', 'Ó': 'O', 'Ô': 'O', 'Õ': 'O', 'Ö': 'O', '×': 'x', 'Ø': 'O', 'Ù': 'U', 'Ú': 'U', 'Û': 'U', 'Ü': 'U', 'Ý': 'Y', 'Þ': 'Th', 'ß': 'ss', 'à': 'a', 'á': 'a', 'â': 'a', 'ã': 'a', 'ä': 'a', 'å': 'a', 'æ': 'ae', 'ç': 'c', 'è': 'e', 'é': 'e', 'ê': 'e', 'ë': 'e', 'ì': 'i', 'í': 'i', 'î': 'i', 'ï': 'i', 'ð': 'd', 'ñ': 'n', 'ò': 'o', 'ó': 'o', 'ô': 'o', 'õ': 'o', 'ö': 'o', 'ø': 'o', 'ù': 'u', 'ú': 'u', 'û': 'u', 'ü': 'u', 'ý': 'y', 'þ': 'th', 'ÿ': 'y', 'Ā': 'A', 'ā': 'a', 'Ă': 'A', 'ă': 'a', 'Ą': 'A', 'ą': 'a', 'Ć': 'C', 'ć': 'c', 'Ĉ': 'C', 'ĉ': 'c', 'Ċ': 'C', 'ċ': 'c', 'Č': 'C', 'č': 'c', 'Ď': 'D', 'ď': 'd', 'Đ': 'D', 'đ': 'd', 'Ē': 'E', 'ē': 'e', 'Ĕ': 'E', 'ĕ': 'e', 'Ė': 'E', 'ė': 'e', 'Ę': 'E', 'ę': 'e', 'Ě': 'E', 'ě': 'e', 'Ĝ': 'G', 'ĝ': 'g', 'Ğ': 'G', 'ğ': 'g', 'Ġ': 'G', 'ġ': 'g', 'Ģ': 'G', 'ģ': 'g', 'Ĥ': 'H', 'ĥ': 'h', 'Ħ': 'H', 'ħ': 'h', 'Ĩ': 'I', 'ĩ': 'i', 'Ī': 'I', 'ī': 'i', 'Ĭ': 'I', 'ĭ': 'i', 'Į': 'I', 'į': 'i', 'İ': 'I', 'ı': 'i', 'IJ': 'IJ', 'ij': 'ij', 'Ĵ': 'J', 'ĵ': 'j', 'Ķ': 'K', 'ķ': 'k', 'ĸ': 'k', 'Ĺ': 'L', 'ĺ': 'l', 'Ļ': 'L', 'ļ': 'l', 'Ľ': 'L', 'ľ': 'l', 'Ŀ': 'L', 'ŀ': 'l', 'Ł': 'L', 'ł': 'l', 'Ń': 'N', 'ń': 'n', 'Ņ': 'N', 'ņ': 'n', 'Ň': 'N', 'ň': 'n', 'ʼn': '\'n', 'Ŋ': 'NG', 'ŋ': 'ng', 'Ō': 'O', 'ō': 'o', 'Ŏ': 'O', 'ŏ': 'o', 'Ő': 'O', 'ő': 'o', 'Œ': 'OE', 'œ': 'oe', 'Ŕ': 'R', 'ŕ': 'r', 'Ŗ': 'R', 'ŗ': 'r', 'Ř': 'R', 'ř': 'r', 'Ś': 'S', 'ś': 's', 'Ŝ': 'S', 'ŝ': 's', 'Ş': 'S', 'ş': 's', 'Š': 'S', 'š': 's', 'Ţ': 'T', 'ţ': 't', 'Ť': 'T', 'ť': 't', 'Ŧ': 'T', 'ŧ': 't', 'Ũ': 'U', 'ũ': 'u', 'Ū': 'U', 'ū': 'u', 'Ŭ': 'U', 'ŭ': 'u', 'Ů': 'U', 'ů': 'u', 'Ű': 'U', 'ű': 'u', 'Ų': 'U', 'ų': 'u', 'Ŵ': 'W', 'ŵ': 'w', 'Ŷ': 'Y', 'ŷ': 'y', 'Ÿ': 'Y', 'Ź': 'Z', 'ź': 'z', 'Ż': 'Z', 'ż': 'z', 'Ž': 'Z', 'ž': 'z', 'А': 'A', 'Б': 'B', 'В': 'V', 'Г': 'G', 'Д': 'D', 'Е': 'E', 'Ё': 'E', 'Ж': 'ZH', 'З': 'Z', 'И': 'I', 'Й': 'J', 'К': 'K', 'Л': 'L', 'М': 'M', 'Н': 'N', 'О': 'O', 'П': 'P', 'Р': 'R', 'С': 'S', 'Т': 'T', 'У': 'U', 'Ф': 'F', 'Х': 'KH', 'Ц': 'C', 'Ч': 'CH', 'Ш': 'SH', 'Щ': 'SHCH', 'Ъ': '', 'Ы': 'Y', 'Ь': '', 'Э': 'E', 'Ю': 'YU', 'Я': 'YA', 'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'ё': 'e', 'ж': 'zh', 'з': 'z', 'и': 'i', 'й': 'j', 'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', 'о': 'o', 'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u', 'ф': 'f', 'х': 'kh', 'ц': 'c', 'ч': 'ch', 'ш': 'sh', 'щ': 'shch', 'ъ': '', 'ы': 'y', 'ь': '', 'э': 'e', 'ю': 'yu', 'я': 'ya' }; const DEFAULT_REPLACEMENT_CHAR = "?"; const instances = {}; export default class Transliterator { static getInstance(locale) { instances[locale] = instances[locale] || new Transliterator(); return instances[locale]; } constructor() { this.approximations = {}; for (const char in DEFAULT_APPROXIMATIONS) { this.approximate(char, DEFAULT_APPROXIMATIONS[char]); } } approximate(char, replacement) { this.approximations[char] = replacement; } transliterate(string, replacement) { return string.replace( /[^\u0000-\u007f]/g, c => this.approximations[c] || replacement || DEFAULT_REPLACEMENT_CHAR ); } } inflected-2.1.0/src/applyInflections.js000066400000000000000000000012331372777324000201320ustar00rootroot00000000000000import inflections from "./inflections"; export default function applyInflections(word, rules) { var result = "" + word, rule, regex, replacement; if (result.length === 0) { return result; } else { var match = result.toLowerCase().match(/\b\w+$/); if (match && inflections().uncountables.indexOf(match[0]) > -1) { return result; } else { for (var i = 0, ii = rules.length; i < ii; i++) { rule = rules[i]; regex = rule[0]; replacement = rule[1]; if (result.match(regex)) { result = result.replace(regex, replacement); break; } } return result; } } } inflected-2.1.0/src/camelize.js000066400000000000000000000015521372777324000164040ustar00rootroot00000000000000import inflections from "./inflections"; import capitalize from "./capitalize"; export default function camelize(term, uppercaseFirstLetter) { if (uppercaseFirstLetter === null || uppercaseFirstLetter === undefined) { uppercaseFirstLetter = true; } let result = "" + term; if (uppercaseFirstLetter) { result = result.replace(/^[a-z\d]*/, function(a) { return inflections().acronyms[a] || capitalize(a); }); } else { result = result.replace( new RegExp( "^(?:" + inflections().acronymRegex.source + "(?=\\b|[A-Z_])|\\w)" ), function(a) { return a.toLowerCase(); } ); } result = result.replace(/(?:_|(\/))([a-z\d]*)/gi, function( match, a, b, idx, string ) { a || (a = ""); return "" + a + (inflections().acronyms[b] || capitalize(b)); }); return result; } inflected-2.1.0/src/capitalize.js000066400000000000000000000002561372777324000167400ustar00rootroot00000000000000export default function capitalize(str) { const result = str === null || str === undefined ? "" : String(str); return result.charAt(0).toUpperCase() + result.slice(1); } inflected-2.1.0/src/classify.js000066400000000000000000000002751372777324000164310ustar00rootroot00000000000000import camelize from "./camelize"; import singularize from "./singularize"; export default function classify(tableName) { return camelize(singularize(tableName.replace(/.*\./g, ""))); } inflected-2.1.0/src/constantify.js000066400000000000000000000002241372777324000171470ustar00rootroot00000000000000import underscore from "./underscore"; export default function constantify(word) { return underscore(word).toUpperCase().replace(/\s+/g, "_"); } inflected-2.1.0/src/dasherize.js000066400000000000000000000001441372777324000165650ustar00rootroot00000000000000export default function dasherize(underscoredWord) { return underscoredWord.replace(/_/g, "-"); } inflected-2.1.0/src/defaults.js000066400000000000000000000051701372777324000164220ustar00rootroot00000000000000function en(inflector) { inflector.plural(/$/, "s"); inflector.plural(/s$/i, "s"); inflector.plural(/^(ax|test)is$/i, "$1es"); inflector.plural(/(octop|vir)us$/i, "$1i"); inflector.plural(/(octop|vir)i$/i, "$1i"); inflector.plural(/(alias|status)$/i, "$1es"); inflector.plural(/(bu)s$/i, "$1ses"); inflector.plural(/(buffal|tomat)o$/i, "$1oes"); inflector.plural(/([ti])um$/i, "$1a"); inflector.plural(/([ti])a$/i, "$1a"); inflector.plural(/sis$/i, "ses"); inflector.plural(/(?:([^f])fe|([lr])f)$/i, "$1$2ves"); inflector.plural(/(hive)$/i, "$1s"); inflector.plural(/([^aeiouy]|qu)y$/i, "$1ies"); inflector.plural(/(x|ch|ss|sh)$/i, "$1es"); inflector.plural(/(matr|vert|ind)(?:ix|ex)$/i, "$1ices"); inflector.plural(/^(m|l)ouse$/i, "$1ice"); inflector.plural(/^(m|l)ice$/i, "$1ice"); inflector.plural(/^(ox)$/i, "$1en"); inflector.plural(/^(oxen)$/i, "$1"); inflector.plural(/(quiz)$/i, "$1zes"); inflector.singular(/s$/i, ""); inflector.singular(/(ss)$/i, "$1"); inflector.singular(/(n)ews$/i, "$1ews"); inflector.singular(/([ti])a$/i, "$1um"); inflector.singular( /((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)(sis|ses)$/i, "$1sis" ); inflector.singular(/(^analy)(sis|ses)$/i, "$1sis"); inflector.singular(/([^f])ves$/i, "$1fe"); inflector.singular(/(hive)s$/i, "$1"); inflector.singular(/(tive)s$/i, "$1"); inflector.singular(/([lr])ves$/i, "$1f"); inflector.singular(/([^aeiouy]|qu)ies$/i, "$1y"); inflector.singular(/(s)eries$/i, "$1eries"); inflector.singular(/(m)ovies$/i, "$1ovie"); inflector.singular(/(x|ch|ss|sh)es$/i, "$1"); inflector.singular(/^(m|l)ice$/i, "$1ouse"); inflector.singular(/(bus)(es)?$/i, "$1"); inflector.singular(/(o)es$/i, "$1"); inflector.singular(/(shoe)s$/i, "$1"); inflector.singular(/(cris|test)(is|es)$/i, "$1is"); inflector.singular(/^(a)x[ie]s$/i, "$1xis"); inflector.singular(/(octop|vir)(us|i)$/i, "$1us"); inflector.singular(/(alias|status)(es)?$/i, "$1"); inflector.singular(/^(ox)en/i, "$1"); inflector.singular(/(vert|ind)ices$/i, "$1ex"); inflector.singular(/(matr)ices$/i, "$1ix"); inflector.singular(/(quiz)zes$/i, "$1"); inflector.singular(/(database)s$/i, "$1"); inflector.irregular("person", "people"); inflector.irregular("man", "men"); inflector.irregular("child", "children"); inflector.irregular("sex", "sexes"); inflector.irregular("move", "moves"); inflector.irregular("zombie", "zombies"); inflector.uncountable( "equipment", "information", "rice", "money", "species", "series", "fish", "sheep", "jeans", "police" ); } export default { en }; inflected-2.1.0/src/foreignKey.js000066400000000000000000000003061372777324000167110ustar00rootroot00000000000000import underscore from "./underscore"; export default function foreignKey(className, separateWithUnderscore = true) { return `${underscore(className)}${separateWithUnderscore ? "_id" : "id"}`; } inflected-2.1.0/src/humanize.js000066400000000000000000000017531372777324000164360ustar00rootroot00000000000000import inflections from "./inflections"; export default function humanize(lowerCaseAndUnderscoredWord, options) { let result = "" + lowerCaseAndUnderscoredWord; const humans = inflections().humans; let human, rule, replacement; options = options || {}; if (options.capitalize === null || options.capitalize === undefined) { options.capitalize = true; } for (var i = 0, ii = humans.length; i < ii; i++) { human = humans[i]; rule = human[0]; replacement = human[1]; if ((rule.test && rule.test(result)) || result.indexOf(rule) > -1) { result = result.replace(rule, replacement); break; } } result = result.replace(/_id$/, ""); result = result.replace(/_/g, " "); result = result.replace(/([a-z\d]*)/gi, function(match) { return inflections().acronyms[match] || match.toLowerCase(); }); if (options.capitalize) { result = result.replace(/^\w/, function(match) { return match.toUpperCase(); }); } return result; } inflected-2.1.0/src/index.js000066400000000000000000000017121372777324000157200ustar00rootroot00000000000000export { default as pluralize } from "./pluralize"; export { default as singularize } from "./singularize"; export { default as camelize } from "./camelize"; export { default as underscore } from "./underscore"; export { default as humanize } from "./humanize"; export { default as titleize } from "./titleize"; export { default as tableize } from "./tableize"; export { default as classify } from "./classify"; export { default as dasherize } from "./dasherize"; export { default as foreignKey } from "./foreignKey"; export { default as ordinal } from "./ordinal"; export { default as ordinalize } from "./ordinalize"; export { default as transliterate } from "./transliterate"; export { default as parameterize } from "./parameterize"; export { default as capitalize } from "./capitalize"; export { default as inflections } from "./inflections"; export { default as transliterations } from "./transliterations"; export { default as constantify } from "./constantify"; inflected-2.1.0/src/inflections.js000066400000000000000000000007011372777324000171230ustar00rootroot00000000000000import isFunction from "./util/isFunction"; import Inflector from "./Inflector"; import defaults from "./defaults"; export default function inflections(locale, fn) { if (isFunction(locale)) { fn = locale; locale = null; } locale = locale || "en"; if (fn) { fn(Inflector.getInstance(locale)); } else { return Inflector.getInstance(locale); } } for (let locale in defaults) { inflections(locale, defaults[locale]); } inflected-2.1.0/src/ordinal.js000066400000000000000000000006071372777324000162430ustar00rootroot00000000000000export default function ordinal(number) { const absNumber = Math.abs(Number(number)); const mod100 = absNumber % 100; if (mod100 === 11 || mod100 === 12 || mod100 === 13) { return "th"; } else { switch (absNumber % 10) { case 1: return "st"; case 2: return "nd"; case 3: return "rd"; default: return "th"; } } } inflected-2.1.0/src/ordinalize.js000066400000000000000000000001711372777324000167470ustar00rootroot00000000000000import ordinal from "./ordinal"; export default function ordinalize(number) { return `${number}${ordinal(number)}`; } inflected-2.1.0/src/parameterize.js000066400000000000000000000017061372777324000173040ustar00rootroot00000000000000import transliterate from "./transliterate"; export default function parameterize(string, options = {}) { if (options.separator === undefined) { options.separator = "-"; } if (options.separator === null) { options.separator = ""; } // replace accented chars with their ascii equivalents let result = transliterate(string, options); result = result.replace(/[^a-z0-9\-_]+/ig, options.separator); if (options.separator.length) { const separatorRegex = new RegExp(options.separator); // no more than one of the separator in a row result = result.replace( new RegExp(separatorRegex.source + "{2,}"), options.separator ); // remove leading/trailing separator result = result.replace( new RegExp( "^" + separatorRegex.source + "|" + separatorRegex.source + "$", "i" ), "" ); } if (options.preserveCase) { return result; } return result.toLowerCase(); } inflected-2.1.0/src/pluralize.js000066400000000000000000000003261372777324000166200ustar00rootroot00000000000000import applyInflections from "./applyInflections"; import inflections from "./inflections"; export default function pluralize(word, locale = "en") { return applyInflections(word, inflections(locale).plurals); } inflected-2.1.0/src/singularize.js000066400000000000000000000003321372777324000171420ustar00rootroot00000000000000import applyInflections from "./applyInflections"; import inflections from "./inflections"; export default function singularize(word, locale = "en") { return applyInflections(word, inflections(locale).singulars); } inflected-2.1.0/src/tableize.js000066400000000000000000000002501372777324000164040ustar00rootroot00000000000000import pluralize from "./pluralize"; import underscore from "./underscore"; export default function tableize(className) { return pluralize(underscore(className)); } inflected-2.1.0/src/titleize.js000066400000000000000000000005011372777324000164350ustar00rootroot00000000000000import humanize from "./humanize"; import underscore from "./underscore"; export default function titleize(word) { return humanize(underscore(word)).replace(/(^|[\s¿/]+)([a-z])/g, function( match, boundary, letter, idx, string ) { return match.replace(letter, letter.toUpperCase()); }); } inflected-2.1.0/src/transliterate.js000066400000000000000000000004261372777324000174730ustar00rootroot00000000000000import transliterations from "./transliterations"; export default function transliterate(string, options = {}) { const locale = options.locale || "en"; const replacement = options.replacement || "?"; return transliterations(locale).transliterate(string, replacement); } inflected-2.1.0/src/transliterations.js000066400000000000000000000005541372777324000202210ustar00rootroot00000000000000import isFunction from "./util/isFunction"; import Transliterator from "./Transliterator"; export default function transliterations(locale, fn) { if (isFunction(locale)) { fn = locale; locale = null; } locale = locale || "en"; if (fn) { fn(Transliterator.getInstance(locale)); } else { return Transliterator.getInstance(locale); } } inflected-2.1.0/src/underscore.js000066400000000000000000000011231372777324000167560ustar00rootroot00000000000000import inflections from "./inflections"; export default function underscore(camelCasedWord) { let result = "" + camelCasedWord; result = result.replace( new RegExp( "(?:([A-Za-z\\d])|^)(" + inflections().acronymRegex.source + ")(?=\\b|[^a-z])", "g" ), function(match, $1, $2) { return "" + ($1 || "") + ($1 ? "_" : "") + $2.toLowerCase(); } ); result = result.replace(/([A-Z\d]+)([A-Z][a-z])/g, "$1_$2"); result = result.replace(/([a-z\d])([A-Z])/g, "$1_$2"); result = result.replace(/-/g, "_"); return result.toLowerCase(); } inflected-2.1.0/src/util/000077500000000000000000000000001372777324000152275ustar00rootroot00000000000000inflected-2.1.0/src/util/isFunction.js000066400000000000000000000002121372777324000177010ustar00rootroot00000000000000const toString = Object.prototype.toString; export default function isFunc(obj) { return toString.call(obj) === "[object Function]"; } inflected-2.1.0/test/000077500000000000000000000000001372777324000144425ustar00rootroot00000000000000inflected-2.1.0/test/cases.js000066400000000000000000000227011372777324000161000ustar00rootroot00000000000000module.exports = { SingularToPlural: { 'search' : 'searches', 'switch' : 'switches', 'fix' : 'fixes', 'box' : 'boxes', 'process' : 'processes', 'address' : 'addresses', 'case' : 'cases', 'stack' : 'stacks', 'wish' : 'wishes', 'fish' : 'fish', 'jeans' : 'jeans', 'funky jeans' : 'funky jeans', 'my money' : 'my money', 'category' : 'categories', 'query' : 'queries', 'ability' : 'abilities', 'agency' : 'agencies', 'movie' : 'movies', 'archive' : 'archives', 'index' : 'indices', 'wife' : 'wives', 'safe' : 'saves', 'half' : 'halves', 'move' : 'moves', 'salesperson' : 'salespeople', 'person' : 'people', 'spokesman' : 'spokesmen', 'man' : 'men', 'woman' : 'women', 'basis' : 'bases', 'diagnosis' : 'diagnoses', 'diagnosis_a' : 'diagnosis_as', 'datum' : 'data', 'medium' : 'media', 'stadium' : 'stadia', 'analysis' : 'analyses', 'my_analysis' : 'my_analyses', 'node_child' : 'node_children', 'child' : 'children', 'experience' : 'experiences', 'day' : 'days', 'comment' : 'comments', 'foobar' : 'foobars', 'newsletter' : 'newsletters', 'old_news' : 'old_news', 'news' : 'news', 'series' : 'series', 'miniseries' : 'miniseries', 'species' : 'species', 'quiz' : 'quizzes', 'perspective' : 'perspectives', 'ox' : 'oxen', 'photo' : 'photos', 'buffalo' : 'buffaloes', 'tomato' : 'tomatoes', 'dwarf' : 'dwarves', 'elf' : 'elves', 'information' : 'information', 'equipment' : 'equipment', 'bus' : 'buses', 'status' : 'statuses', 'status_code' : 'status_codes', 'mouse' : 'mice', 'louse' : 'lice', 'house' : 'houses', 'octopus' : 'octopi', 'virus' : 'viri', 'alias' : 'aliases', 'portfolio' : 'portfolios', 'vertex' : 'vertices', 'matrix' : 'matrices', 'matrix_fu' : 'matrix_fus', 'axis' : 'axes', 'taxi' : 'taxis', // prevents regression 'testis' : 'testes', 'crisis' : 'crises', 'rice' : 'rice', 'shoe' : 'shoes', 'horse' : 'horses', 'prize' : 'prizes', 'edge' : 'edges', 'database' : 'databases', // regression tests against improper inflection regexes '|ice' : '|ices', '|ouse' : '|ouses', 'slice' : 'slices', 'police' : 'police' }, CamelToUnderscore: { 'Product' : 'product', 'SpecialGuest' : 'special_guest', 'ApplicationController' : 'application_controller', 'Area51Controller' : 'area51_controller' }, UnderscoreToLowerCamel: { 'product' : 'product', 'special_guest' : 'specialGuest', 'application_controller' : 'applicationController', 'area51_controller' : 'area51Controller' }, CamelToUnderscoreWithoutReverse: { 'HTMLTidy' : 'html_tidy', 'HTMLTidyGenerator' : 'html_tidy_generator', 'FreeBSD' : 'free_bsd', 'HTML' : 'html', }, ClassNameToForeignKeyWithUnderscore: { 'Person' : 'person_id', 'BillingAccount' : 'billing_account_id' }, ClassNameToForeignKeyWithoutUnderscore: { 'Person' : 'personid', 'BillingAccount' : 'billing_accountid' }, ClassNameToTableName: { 'PrimarySpokesman' : 'primary_spokesmen', 'NodeChild' : 'node_children' }, StringToParameterized: { 'Donald E. Knuth' : 'donald-e-knuth', 'Random text with *(bad)* characters' : 'random-text-with-bad-characters', 'Allow_Under_Scores' : 'allow_under_scores', 'Trailing bad characters!@#' : 'trailing-bad-characters', '!@#Leading bad characters' : 'leading-bad-characters', 'Squeeze separators' : 'squeeze-separators', 'Test with + sign' : 'test-with-sign', 'Test with malformed utf8 \251' : 'test-with-malformed-utf8' }, StringToParameterizeWithNoSeparator: { 'Donald E. Knuth' : 'donaldeknuth', 'With-some-dashes' : 'with-some-dashes', 'Random text with *(bad)* characters' : 'randomtextwithbadcharacters', 'Trailing bad characters!@#' : 'trailingbadcharacters', '!@#Leading bad characters' : 'leadingbadcharacters', 'Squeeze separators' : 'squeezeseparators', 'Test with + sign' : 'testwithsign', 'Test with malformed utf8 \251' : 'testwithmalformedutf8' }, StringToParameterizeWithPreserveCase: { 'Donald E. Knuth': 'Donald-E-Knuth', 'Random text with *(bad)* Characters': 'Random-text-with-bad-Characters', 'Allow_Under_Scores': 'Allow_Under_Scores', 'Trailing BAD characters!@#': 'Trailing-BAD-characters', '!@#leading bad Characters': 'leading-bad-Characters', 'squeeze Separators': 'squeeze-Separators', 'Test with + Sign': 'Test-with-Sign', 'Test with malformed UTF8 \251': 'Test-with-malformed-UTF8' }, StringToParameterizeWithUnderscore: { 'Donald E. Knuth' : 'donald_e_knuth', 'Random text with *(bad)* characters' : 'random_text_with_bad_characters', 'With-some-dashes' : 'with-some-dashes', 'Retain_underscore' : 'retain_underscore', 'Trailing bad characters!@#' : 'trailing_bad_characters', '!@#Leading bad characters' : 'leading_bad_characters', 'Squeeze separators' : 'squeeze_separators', 'Test with + sign' : 'test_with_sign', 'Test with malformed utf8 \251' : 'test_with_malformed_utf8' }, StringToParameterizedAndNormalized: { 'Malmö' : 'malmo', 'Garçons' : 'garcons', 'Ops\331' : 'opsu', 'Ærøskøbing' : 'aeroskobing', 'Aßlar' : 'asslar', 'Japanese: 日本語' : 'japanese' }, UnderscoreToHuman: { 'employee_salary' : 'Employee salary', 'employee_id' : 'Employee', 'underground' : 'Underground' }, UnderscoreToHumanWithoutCapitalize: { 'employee_salary' : 'employee salary', 'employee_id' : 'employee', 'underground' : 'underground' }, MixtureToTitleCase: { 'active_record' : 'Active Record', 'ActiveRecord' : 'Active Record', 'action web service' : 'Action Web Service', 'Action Web Service' : 'Action Web Service', 'Action web service' : 'Action Web Service', 'actionwebservice' : 'Actionwebservice', 'Actionwebservice' : 'Actionwebservice', 'david\'s code' : 'David\'s Code', 'David\'s code' : 'David\'s Code', 'david\'s Code' : 'David\'s Code', 'sgt. pepper\'s' : 'Sgt. Pepper\'s', 'i\'ve just seen a face': 'I\'ve Just Seen A Face', 'maybe you\'ll be there': 'Maybe You\'ll Be There', '¿por qué?' : '¿Por Qué?', 'Fred’s' : 'Fred’s', 'Fred`s' : 'Fred`s' }, OrdinalNumbers: { '-1' : '-1st', '-2' : '-2nd', '-3' : '-3rd', '-4' : '-4th', '-5' : '-5th', '-6' : '-6th', '-7' : '-7th', '-8' : '-8th', '-9' : '-9th', '-10' : '-10th', '-11' : '-11th', '-12' : '-12th', '-13' : '-13th', '-14' : '-14th', '-20' : '-20th', '-21' : '-21st', '-22' : '-22nd', '-23' : '-23rd', '-24' : '-24th', '-100' : '-100th', '-101' : '-101st', '-102' : '-102nd', '-103' : '-103rd', '-104' : '-104th', '-110' : '-110th', '-111' : '-111th', '-112' : '-112th', '-113' : '-113th', '-1000' : '-1000th', '-1001' : '-1001st', '0' : '0th', '1' : '1st', '2' : '2nd', '3' : '3rd', '4' : '4th', '5' : '5th', '6' : '6th', '7' : '7th', '8' : '8th', '9' : '9th', '10' : '10th', '11' : '11th', '12' : '12th', '13' : '13th', '14' : '14th', '20' : '20th', '21' : '21st', '22' : '22nd', '23' : '23rd', '24' : '24th', '100' : '100th', '101' : '101st', '102' : '102nd', '103' : '103rd', '104' : '104th', '110' : '110th', '111' : '111th', '112' : '112th', '113' : '113th', '1000' : '1000th', '1001' : '1001st' }, UnderscoresToDashes: { 'street' : 'street', 'street_address' : 'street-address', 'person_street_address' : 'person-street-address' }, Irregularities: { 'person' : 'people', 'man' : 'men', 'child' : 'children', 'sex' : 'sexes', 'move' : 'moves', 'cow' : 'kine', 'zombie' : 'zombies', 'genus' : 'genera' }, WordsToConstantCase: { 'Conciliation' : 'CONCILIATION', 'conciliation' : 'CONCILIATION', 'bankAccount' : 'BANK_ACCOUNT', 'BankAccount' : 'BANK_ACCOUNT', 'bank-account' : 'BANK_ACCOUNT', 'bank_account' : 'BANK_ACCOUNT', 'Bank Account' : 'BANK_ACCOUNT', 'Multiple Bank Account' : 'MULTIPLE_BANK_ACCOUNT' }, }; inflected-2.1.0/test/index.js000066400000000000000000000410001372777324000161020ustar00rootroot00000000000000const assert = require('assert'); const extend = require('object-assign'); const Inflector = require('../dist/umd/inflected'); const inflect = Inflector.inflections(); const TestCases = require('./cases'); function objEach(obj, fn) { for (let key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { fn(key, obj[key]); } } } describe('Inflector', () => { it('properly pluralizes plurals', () => { assert.equal(Inflector.pluralize('plurals'), 'plurals'); assert.equal(Inflector.pluralize('Plurals'), 'Plurals'); }); it('properly pluralizes empty string', () => { assert.equal(Inflector.pluralize(''), ''); }); it('properly capitalizes strings', () => { assert.equal(Inflector.capitalize('foo'), 'Foo'); assert.equal(Inflector.capitalize('FOO'), 'FOO'); assert.equal(Inflector.capitalize('foo bar'), 'Foo bar'); assert.equal(Inflector.capitalize(123), '123'); assert.equal(Inflector.capitalize(''), ''); assert.equal(Inflector.capitalize(null), ''); assert.equal(Inflector.capitalize(undefined), ''); }); inflect.uncountables.forEach(function(word) { it('respects the uncountability of ' + word, () => { assert.equal(Inflector.singularize(word), word); assert.equal(Inflector.pluralize(word), word); assert.equal(Inflector.singularize(word), Inflector.pluralize(word)); }); }); it('checks uncountable word is not greedy', () => { const uncountableWord = 'ors'; const countableWord = 'sponsor'; inflect.uncountables.push(uncountableWord); assert.equal(Inflector.singularize(uncountableWord), uncountableWord); assert.equal(Inflector.pluralize(uncountableWord), uncountableWord); assert.equal(Inflector.singularize(uncountableWord), Inflector.pluralize(uncountableWord)); assert.equal(Inflector.singularize(countableWord), 'sponsor'); assert.equal(Inflector.pluralize(countableWord), 'sponsors'); assert.equal(Inflector.singularize(Inflector.pluralize(countableWord)), 'sponsor'); }); objEach(TestCases.SingularToPlural, function(singular, plural) { it('properly pluralizes ' + singular, () => { assert.equal(Inflector.pluralize(singular), plural); assert.equal(Inflector.pluralize(Inflector.capitalize(singular)), Inflector.capitalize(plural)); }); it('properly pluralizes ' + plural, () => { assert.equal(Inflector.pluralize(plural), plural); assert.equal(Inflector.pluralize(Inflector.capitalize(plural)), Inflector.capitalize(plural)); }); it('properly singularizes ' + plural, () => { assert.equal(Inflector.singularize(plural), singular); assert.equal(Inflector.singularize(Inflector.capitalize(plural)), Inflector.capitalize(singular)); }); it('properly singularizes ' + singular, () => { assert.equal(Inflector.singularize(singular), singular); assert.equal(Inflector.singularize(Inflector.capitalize(singular)), Inflector.capitalize(singular)); }); }); it('allows overwriting defined inflectors', () => { assert.equal(Inflector.singularize('series'), 'series'); inflect.singular('series', 'serie'); assert.equal(Inflector.singularize('series'), 'serie'); }); objEach(TestCases.MixtureToTitleCase, function(mixture, titleized) { it('properly titleizes ' + mixture, () => { assert.equal(Inflector.titleize(mixture), titleized); }); }); objEach(TestCases.CamelToUnderscore, function(camel, underscore) { it('properly camelizes ' + underscore, () => { assert.equal(Inflector.camelize(underscore), camel); }); }); it('properly camelizes with lower downcases the first letter', () => { assert.equal(Inflector.camelize('Capital', false), 'capital'); }); it('properly camelizes with underscores', () => { assert.equal(Inflector.camelize('Camel_Case'), 'CamelCase'); }); it('properly handles acronyms', () => { inflect.acronym('API') inflect.acronym('HTML') inflect.acronym('HTTP') inflect.acronym('RESTful') inflect.acronym('W3C') inflect.acronym('PhD') inflect.acronym('RoR') inflect.acronym('SSL') // camelize underscore humanize titleize const items = [ ['API', 'api', 'API', 'API'], ['APIController', 'api_controller', 'API controller', 'API Controller'], ['Nokogiri/HTML', 'nokogiri/html', 'Nokogiri/HTML', 'Nokogiri/HTML'], ['HTTPAPI', 'http_api', 'HTTP API', 'HTTP API'], ['HTTP/Get', 'http/get', 'HTTP/get', 'HTTP/Get'], ['SSLError', 'ssl_error', 'SSL error', 'SSL Error'], ['RESTful', 'restful', 'RESTful', 'RESTful'], ['RESTfulController', 'restful_controller', 'RESTful controller', 'RESTful Controller'], ['IHeartW3C', 'i_heart_w3c', 'I heart W3C', 'I Heart W3C'], ['PhDRequired', 'phd_required', 'PhD required', 'PhD Required'], ['IRoRU', 'i_ror_u', 'I RoR u', 'I RoR U'], ['RESTfulHTTPAPI', 'restful_http_api', 'RESTful HTTP API', 'RESTful HTTP API'], // misdirection ['Capistrano', 'capistrano', 'Capistrano', 'Capistrano'], ['CapiController', 'capi_controller', 'Capi controller', 'Capi Controller'], ['HttpsApis', 'https_apis', 'Https apis', 'Https Apis'], ['Html5', 'html5', 'Html5', 'Html5'], ['Restfully', 'restfully', 'Restfully', 'Restfully'], ['RoRails', 'ro_rails', 'Ro rails', 'Ro Rails'] ]; let camel, under, human, title; for (let i in items) { camel = items[i][0]; under = items[i][1]; human = items[i][2]; title = items[i][3]; assert.equal(Inflector.camelize(under), camel); assert.equal(Inflector.camelize(camel), camel); assert.equal(Inflector.underscore(under), under); assert.equal(Inflector.underscore(camel), under); assert.equal(Inflector.titleize(under), title); assert.equal(Inflector.titleize(camel), title); assert.equal(Inflector.humanize(under), human); } }); it('allows overwriting acronyms', () => { inflect.acronym('API'); inflect.acronym('LegacyApi'); assert.equal(Inflector.camelize('legacyapi'), 'LegacyApi'); assert.equal(Inflector.camelize('legacy_api'), 'LegacyAPI'); assert.equal(Inflector.camelize('some_legacyapi'), 'SomeLegacyApi'); assert.equal(Inflector.camelize('nonlegacyapi'), 'Nonlegacyapi'); }); it('properly handles lower camelized acronyms', () => { inflect.acronym('API'); inflect.acronym('HTML'); assert.equal(Inflector.camelize('html_api', false), 'htmlAPI'); assert.equal(Inflector.camelize('htmlAPI', false), 'htmlAPI'); assert.equal(Inflector.camelize('HTMLAPI', false), 'htmlAPI'); }); it('properly handles lower camelized acronyms', () => { inflect.acronym('API'); inflect.acronym('JSON'); inflect.acronym('HTML'); assert.equal(Inflector.underscore('JSONHTMLAPI'), 'json_html_api'); }); it('properly underscores', () => { objEach(TestCases.CamelToUnderscore, function(camel, underscore) { assert.equal(Inflector.underscore(camel), underscore); }); objEach(TestCases.CamelToUnderscoreWithoutReverse, function(camel, underscore) { assert.equal(Inflector.underscore(camel), underscore); }); }); it('properly adds a foreign key suffix', () => { objEach(TestCases.ClassNameToForeignKeyWithUnderscore, function(klass, foreignKey) { assert.equal(Inflector.foreignKey(klass), foreignKey); }); objEach(TestCases.ClassNameToForeignKeyWithoutUnderscore, function(klass, foreignKey) { assert.equal(Inflector.foreignKey(klass, false), foreignKey); }); }); it('properly tableizes class names', () => { objEach(TestCases.ClassNameToTableName, function(className, tableName) { assert.equal(Inflector.tableize(className), tableName); }); }); it('properly classifies table names', () => { objEach(TestCases.ClassNameToTableName, function(className, tableName) { assert.equal(Inflector.classify(tableName), className); assert.equal(Inflector.classify('table_prefix.' + tableName), className); }); }); it('properly classifies with leading schema name', () => { assert.equal(Inflector.classify('schema.foo_bar'), 'FooBar'); }); it('properly humanizes underscored strings', () => { objEach(TestCases.UnderscoreToHuman, function(underscore, human) { assert.equal(Inflector.humanize(underscore), human); }); }); it('properly humanizes underscored strings without capitalize', () => { objEach(TestCases.UnderscoreToHumanWithoutCapitalize, function(underscore, human) { assert.equal(Inflector.humanize(underscore, { capitalize: false }), human); }); }); it('properly humanizes by rule', () => { inflect.human(/_cnt$/i, '_count'); inflect.human(/^prefx_/i, ''); assert.equal(Inflector.humanize('jargon_cnt'), 'Jargon count'); assert.equal(Inflector.humanize('prefx_request'), 'Request'); }); it('properly humanizes by string', () => { inflect.human('col_rpted_bugs', 'Reported bugs'); assert.equal(Inflector.humanize('col_rpted_bugs'), 'Reported bugs'); assert.equal(Inflector.humanize('COL_rpted_bugs'), 'Col rpted bugs'); }); it('properly generates ordinal suffixes', () => { objEach(TestCases.OrdinalNumbers, function(number, ordinalized) { assert.equal(ordinalized, number + Inflector.ordinal(number)) }); }); it('properly ordinalizes numbers', () => { objEach(TestCases.OrdinalNumbers, function(number, ordinalized) { assert.equal(Inflector.ordinalize(number), ordinalized); }); }); it('properly dasherizes underscored strings', () => { objEach(TestCases.UnderscoresToDashes, function(underscored, dasherized) { assert.equal(Inflector.dasherize(underscored), dasherized); }); }); it('properly underscores as reverse of dasherize', () => { objEach(TestCases.UnderscoresToDashes, function(underscored) { assert.equal(Inflector.underscore(Inflector.dasherize(underscored)), underscored); }); }); it('properly underscores to lower camel', () => { objEach(TestCases.UnderscoreToLowerCamel, function(underscored, lowerCamel) { assert.equal(Inflector.camelize(underscored, false), lowerCamel); }); }); it('respects the inflector locale', () => { Inflector.inflections('es', function(inflect) { inflect.plural(/$/, 's'); inflect.plural(/z$/i, 'ces'); inflect.singular(/s$/, ''); inflect.singular(/es$/, ''); inflect.irregular('el', 'los'); }); assert.equal(Inflector.pluralize('hijo', 'es'), 'hijos'); assert.equal(Inflector.pluralize('luz', 'es'), 'luces'); assert.equal(Inflector.pluralize('luz'), 'luzs'); assert.equal(Inflector.singularize('sociedades', 'es'), 'sociedad'); assert.equal(Inflector.singularize('sociedades'), 'sociedade'); assert.equal(Inflector.pluralize('el', 'es'), 'los'); assert.equal(Inflector.pluralize('el'), 'els'); Inflector.inflections('es', function(inflect) { inflect.clear(); }); assert(Inflector.inflections('es').plurals.length === 0); assert(Inflector.inflections('es').singulars.length === 0); assert(Inflector.inflections().plurals.length !== 0); assert(Inflector.inflections().singulars.length !== 0); }); objEach(TestCases.Irregularities, function(singular, plural) { it('respects the irregularity between ' + singular + ' and ' + plural, () => { Inflector.inflections(function(inflect) { inflect.irregular(singular, plural) assert.equal(Inflector.singularize(plural), singular); assert.equal(Inflector.pluralize(singular), plural); }); }); }); objEach(TestCases.Irregularities, function(singular, plural) { it('makes sure that pluralize of irregularity ' + plural + ' is the same', () => { Inflector.inflections(function(inflect) { inflect.irregular(singular, plural) assert.equal(Inflector.pluralize(plural), plural); }); }); }); objEach(TestCases.Irregularities, function(singular, plural) { it('makes sure that singularize of irregularity ' + singular + ' is the same', () => { Inflector.inflections(function(inflect) { inflect.irregular(singular, plural) assert.equal(Inflector.singularize(singular), singular); }); }); }); ['plurals', 'singulars', 'uncountables', 'humans', 'acronyms'].forEach(function(scope) { it('properly clears ' + scope + ' inflection scope', () => { inflect.clear(scope); assert(inflect[scope].length === 0); }); }); it('properly clears all reflection scopes', () => { Inflector.inflections(function(inflect) { // ensure any data is present inflect.plural(/(quiz)$/i, '$1zes'); inflect.singular(/(database)s$/i, '$1'); inflect.uncountable('series'); inflect.human('col_rpted_bugs', 'Reported bugs'); inflect.clear('all'); assert(inflect.plurals.length === 0); assert(inflect.singulars.length === 0); assert(inflect.uncountables.length === 0); assert(inflect.humans.length === 0); }); }); it('properly clears with default', () => { Inflector.inflections(function(inflect) { // ensure any data is present inflect.plural(/(quiz)$/i, '$1zes'); inflect.singular(/(database)s$/i, '$1'); inflect.uncountable('series'); inflect.human('col_rpted_bugs', 'Reported bugs'); inflect.clear(); assert(inflect.plurals.length === 0); assert(inflect.singulars.length === 0); assert(inflect.uncountables.length === 0); assert(inflect.humans.length === 0); }); }); it('properly parameterizes', () => { objEach(TestCases.StringToParameterized, function(someString, parameterizedString) { assert.equal(Inflector.parameterize(someString), parameterizedString); }); }); it('properly parameterizes and normalizes', () => { objEach(TestCases.StringToParameterizedAndNormalized, function(someString, parameterizedString) { assert.equal(Inflector.parameterize(someString), parameterizedString); }); }); it('properly parameterizes with custom separator', () => { objEach(TestCases.StringToParameterizeWithUnderscore, function(someString, parameterizedString) { assert.equal(Inflector.parameterize(someString, { separator: '_' }), parameterizedString); }); }); it('properly parameterizes with no separator', () => { objEach(TestCases.StringToParameterizeWithNoSeparator, function(someString, parameterizedString) { assert.equal(Inflector.parameterize(someString, { separator: null }), parameterizedString); assert.equal(Inflector.parameterize(someString, { separator: '' }), parameterizedString); }); }); it('properly parameterizes with preserve-case option', () => { objEach(TestCases.StringToParameterizeWithPreserveCase, function(someString, parameterizedString) { assert.equal(Inflector.parameterize(someString, { preserveCase: true }), parameterizedString); }); }); it('properly parameterizes with multi character separator', () => { objEach(TestCases.StringToParameterized, function(someString, parameterizedString) { assert.equal(Inflector.parameterize(someString, { separator: '__sep__' }), parameterizedString.replace(/-/g, '__sep__')); }); }); it('allows overwriting transliterate approximations', () => { assert.equal(Inflector.parameterize('Jürgen'), 'jurgen'); Inflector.transliterations((transliterate) => { transliterate.approximate('ü', 'ue'); }); assert.equal(Inflector.parameterize('Jürgen'), 'juergen'); }); it('allows overwriting transliterate approximations for a specific locale', () => { assert.equal(Inflector.parameterize('Mädchen'), 'madchen'); assert.equal(Inflector.parameterize('Mädchen', { locale: 'de' }), 'madchen'); Inflector.transliterations('de', (transliterate) => { transliterate.approximate('ä', 'ae'); }); assert.equal(Inflector.parameterize('Mädchen'), 'madchen'); assert.equal(Inflector.parameterize('Mädchen', { locale: 'de' }), 'maedchen'); }); it('properly converts words to constant case', () => { objEach(TestCases.WordsToConstantCase, function(words, constantCase) { assert.equal(Inflector.constantify(words), constantCase); }); }); }); inflected-2.1.0/yarn.lock000066400000000000000000003065421372777324000153200ustar00rootroot00000000000000# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 acorn-jsx@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" dependencies: acorn "^3.0.4" acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" acorn@^5.5.0: version "5.7.4" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" ajv-keywords@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" ajv@^5.2.3, ajv@^5.3.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" dependencies: co "^4.6.0" fast-deep-equal "^1.0.0" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" dependencies: kind-of "^3.0.2" longest "^1.0.1" repeat-string "^1.5.2" ansi-escapes@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" ansi-escapes@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" ansi-styles@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.0.0.tgz#5404e93a544c4fec7f048262977bebfe3155e0c1" dependencies: color-convert "^1.0.0" ansi-styles@^3.1.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" dependencies: color-convert "^1.9.0" app-root-path@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46" aproba@^1.0.3: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== are-we-there-yet@~1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== dependencies: delegates "^1.0.0" readable-stream "^2.0.6" argparse@^1.0.7: version "1.0.9" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" dependencies: sprintf-js "~1.0.2" array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" arrify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" ast-types@0.9.8: version "0.9.8" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.8.tgz#6cb6a40beba31f49f20928e28439fc14a3dab078" axios@0.19.0: version "0.19.0" resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.0.tgz#8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8" integrity sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ== dependencies: follow-redirects "1.5.10" is-buffer "^2.0.2" axios@^0.19.0: version "0.19.2" resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== dependencies: follow-redirects "1.5.10" babel-code-frame@6.22.0, babel-code-frame@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" dependencies: chalk "^1.1.0" esutils "^2.0.2" js-tokens "^3.0.0" babel-core@6, babel-core@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.24.1.tgz#8c428564dce1e1f41fb337ec34f4c3b022b5ad83" dependencies: babel-code-frame "^6.22.0" babel-generator "^6.24.1" babel-helpers "^6.24.1" babel-messages "^6.23.0" babel-register "^6.24.1" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-traverse "^6.24.1" babel-types "^6.24.1" babylon "^6.11.0" convert-source-map "^1.1.0" debug "^2.1.1" json5 "^0.5.0" lodash "^4.2.0" minimatch "^3.0.2" path-is-absolute "^1.0.0" private "^0.1.6" slash "^1.0.0" source-map "^0.5.0" babel-eslint@^7.2.2: version "7.2.2" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.2.tgz#0da2cbe6554fd0fb069f19674f2db2f9c59270ff" dependencies: babel-code-frame "^6.22.0" babel-traverse "^6.23.1" babel-types "^6.23.0" babylon "^6.16.1" babel-generator@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.24.1.tgz#e715f486c58ded25649d888944d52aa07c5d9497" dependencies: babel-messages "^6.23.0" babel-runtime "^6.22.0" babel-types "^6.24.1" detect-indent "^4.0.0" jsesc "^1.3.0" lodash "^4.2.0" source-map "^0.5.0" trim-right "^1.0.1" babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" dependencies: babel-helper-explode-assignable-expression "^6.24.1" babel-runtime "^6.22.0" babel-types "^6.24.1" babel-helper-call-delegate@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" dependencies: babel-helper-hoist-variables "^6.24.1" babel-runtime "^6.22.0" babel-traverse "^6.24.1" babel-types "^6.24.1" babel-helper-define-map@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz#7a9747f258d8947d32d515f6aa1c7bd02204a080" dependencies: babel-helper-function-name "^6.24.1" babel-runtime "^6.22.0" babel-types "^6.24.1" lodash "^4.2.0" babel-helper-explode-assignable-expression@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" dependencies: babel-runtime "^6.22.0" babel-traverse "^6.24.1" babel-types "^6.24.1" babel-helper-function-name@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" dependencies: babel-helper-get-function-arity "^6.24.1" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-traverse "^6.24.1" babel-types "^6.24.1" babel-helper-get-function-arity@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-helper-hoist-variables@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-helper-optimise-call-expression@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-helper-regex@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz#d36e22fab1008d79d88648e32116868128456ce8" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" lodash "^4.2.0" babel-helper-remap-async-to-generator@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" dependencies: babel-helper-function-name "^6.24.1" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-traverse "^6.24.1" babel-types "^6.24.1" babel-helper-replace-supers@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" dependencies: babel-helper-optimise-call-expression "^6.24.1" babel-messages "^6.23.0" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-traverse "^6.24.1" babel-types "^6.24.1" babel-helpers@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" babel-messages@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" dependencies: babel-runtime "^6.22.0" babel-plugin-check-es2015-constants@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" dependencies: babel-runtime "^6.22.0" babel-plugin-external-helpers@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz#2285f48b02bd5dede85175caf8c62e86adccefa1" dependencies: babel-runtime "^6.22.0" babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" babel-plugin-syntax-class-properties@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" babel-plugin-syntax-exponentiation-operator@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" babel-plugin-syntax-trailing-function-commas@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" babel-plugin-transform-async-to-generator@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" dependencies: babel-helper-remap-async-to-generator "^6.24.1" babel-plugin-syntax-async-functions "^6.8.0" babel-runtime "^6.22.0" babel-plugin-transform-class-properties@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" dependencies: babel-helper-function-name "^6.24.1" babel-plugin-syntax-class-properties "^6.8.0" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-plugin-transform-es2015-arrow-functions@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-block-scoping@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz#76c295dc3a4741b1665adfd3167215dcff32a576" dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" babel-traverse "^6.24.1" babel-types "^6.24.1" lodash "^4.2.0" babel-plugin-transform-es2015-classes@^6.24.1, babel-plugin-transform-es2015-classes@^6.9.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" dependencies: babel-helper-define-map "^6.24.1" babel-helper-function-name "^6.24.1" babel-helper-optimise-call-expression "^6.24.1" babel-helper-replace-supers "^6.24.1" babel-messages "^6.23.0" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-traverse "^6.24.1" babel-types "^6.24.1" babel-plugin-transform-es2015-computed-properties@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" babel-plugin-transform-es2015-destructuring@^6.22.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-duplicate-keys@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-plugin-transform-es2015-for-of@^6.22.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-function-name@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" dependencies: babel-helper-function-name "^6.24.1" babel-runtime "^6.22.0" babel-types "^6.24.1" babel-plugin-transform-es2015-literals@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-modules-amd@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" dependencies: babel-plugin-transform-es2015-modules-commonjs "^6.24.1" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-plugin-transform-es2015-modules-commonjs@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz#d3e310b40ef664a36622200097c6d440298f2bfe" dependencies: babel-plugin-transform-strict-mode "^6.24.1" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-types "^6.24.1" babel-plugin-transform-es2015-modules-systemjs@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" dependencies: babel-helper-hoist-variables "^6.24.1" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-plugin-transform-es2015-modules-umd@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" dependencies: babel-plugin-transform-es2015-modules-amd "^6.24.1" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-plugin-transform-es2015-object-super@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" dependencies: babel-helper-replace-supers "^6.24.1" babel-runtime "^6.22.0" babel-plugin-transform-es2015-parameters@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" dependencies: babel-helper-call-delegate "^6.24.1" babel-helper-get-function-arity "^6.24.1" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-traverse "^6.24.1" babel-types "^6.24.1" babel-plugin-transform-es2015-shorthand-properties@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-plugin-transform-es2015-spread@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-sticky-regex@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" dependencies: babel-helper-regex "^6.24.1" babel-runtime "^6.22.0" babel-types "^6.24.1" babel-plugin-transform-es2015-template-literals@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-typeof-symbol@^6.22.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-unicode-regex@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" dependencies: babel-helper-regex "^6.24.1" babel-runtime "^6.22.0" regexpu-core "^2.0.0" babel-plugin-transform-exponentiation-operator@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" dependencies: babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" babel-plugin-syntax-exponentiation-operator "^6.8.0" babel-runtime "^6.22.0" babel-plugin-transform-regenerator@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz#b8da305ad43c3c99b4848e4fe4037b770d23c418" dependencies: regenerator-transform "0.9.11" babel-plugin-transform-strict-mode@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-preset-es2015@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" dependencies: babel-plugin-check-es2015-constants "^6.22.0" babel-plugin-transform-es2015-arrow-functions "^6.22.0" babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" babel-plugin-transform-es2015-block-scoping "^6.24.1" babel-plugin-transform-es2015-classes "^6.24.1" babel-plugin-transform-es2015-computed-properties "^6.24.1" babel-plugin-transform-es2015-destructuring "^6.22.0" babel-plugin-transform-es2015-duplicate-keys "^6.24.1" babel-plugin-transform-es2015-for-of "^6.22.0" babel-plugin-transform-es2015-function-name "^6.24.1" babel-plugin-transform-es2015-literals "^6.22.0" babel-plugin-transform-es2015-modules-amd "^6.24.1" babel-plugin-transform-es2015-modules-commonjs "^6.24.1" babel-plugin-transform-es2015-modules-systemjs "^6.24.1" babel-plugin-transform-es2015-modules-umd "^6.24.1" babel-plugin-transform-es2015-object-super "^6.24.1" babel-plugin-transform-es2015-parameters "^6.24.1" babel-plugin-transform-es2015-shorthand-properties "^6.24.1" babel-plugin-transform-es2015-spread "^6.22.0" babel-plugin-transform-es2015-sticky-regex "^6.24.1" babel-plugin-transform-es2015-template-literals "^6.22.0" babel-plugin-transform-es2015-typeof-symbol "^6.22.0" babel-plugin-transform-es2015-unicode-regex "^6.24.1" babel-plugin-transform-regenerator "^6.24.1" babel-preset-es2016@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-es2016/-/babel-preset-es2016-6.24.1.tgz#f900bf93e2ebc0d276df9b8ab59724ebfd959f8b" dependencies: babel-plugin-transform-exponentiation-operator "^6.24.1" babel-preset-es2017@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-es2017/-/babel-preset-es2017-6.24.1.tgz#597beadfb9f7f208bcfd8a12e9b2b29b8b2f14d1" dependencies: babel-plugin-syntax-trailing-function-commas "^6.22.0" babel-plugin-transform-async-to-generator "^6.24.1" babel-preset-latest@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-latest/-/babel-preset-latest-6.24.1.tgz#677de069154a7485c2d25c577c02f624b85b85e8" dependencies: babel-preset-es2015 "^6.24.1" babel-preset-es2016 "^6.24.1" babel-preset-es2017 "^6.24.1" babel-register@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f" dependencies: babel-core "^6.24.1" babel-runtime "^6.22.0" core-js "^2.4.0" home-or-tmp "^2.0.0" lodash "^4.2.0" mkdirp "^0.5.1" source-map-support "^0.4.2" babel-runtime@^6.18.0, babel-runtime@^6.22.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" dependencies: core-js "^2.4.0" regenerator-runtime "^0.10.0" babel-template@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.24.1.tgz#04ae514f1f93b3a2537f2a0f60a5a45fb8308333" dependencies: babel-runtime "^6.22.0" babel-traverse "^6.24.1" babel-types "^6.24.1" babylon "^6.11.0" lodash "^4.2.0" babel-traverse@^6.23.1, babel-traverse@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.24.1.tgz#ab36673fd356f9a0948659e7b338d5feadb31695" dependencies: babel-code-frame "^6.22.0" babel-messages "^6.23.0" babel-runtime "^6.22.0" babel-types "^6.24.1" babylon "^6.15.0" debug "^2.2.0" globals "^9.0.0" invariant "^2.2.0" lodash "^4.2.0" babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.24.1.tgz#a136879dc15b3606bda0d90c1fc74304c2ff0975" dependencies: babel-runtime "^6.22.0" esutils "^2.0.2" lodash "^4.2.0" to-fast-properties "^1.0.1" babylon@7.0.0-beta.8: version "7.0.0-beta.8" resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.8.tgz#2bdc5ae366041442c27e068cce6f0d7c06ea9949" babylon@^6.11.0, babylon@^6.15.0, babylon@^6.16.1: version "6.16.1" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.16.1.tgz#30c5a22f481978a9e7f8cdfdf496b11d94b404d3" balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" base64-js@^1.0.2: version "1.3.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== bl@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== dependencies: buffer "^5.5.0" inherits "^2.0.4" readable-stream "^3.4.0" brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" dependencies: balanced-match "^1.0.0" concat-map "0.0.1" brotli-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/brotli-size/-/brotli-size-0.1.0.tgz#a2c518096c7c1a75e9e66908a42cd9dc77d2b69f" integrity sha512-5ny7BNvpe2TSmdafF1T9dnFYp3AIrJ8qJt29K0DQJzORlK38LBim/CmlY26JtreV6SWmXza7Oa+9m61SzvxR0Q== dependencies: duplexer "^0.1.1" iltorb "^2.4.3" browser-resolve@^1.11.0: version "1.11.2" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" dependencies: resolve "1.1.7" browser-stdout@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" buffer-shims@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" buffer@^5.5.0: version "5.6.0" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" builtin-modules@^1.1.0, builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" bundlesize@^0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/bundlesize/-/bundlesize-0.18.0.tgz#3625520f984f503df8c3d57dd9be2b9c0df40092" integrity sha512-GZURr25umfYxZYZUyOlOtJRbYjAn0VfbjbnS0NBcOiF8VcjmhoEhmx8Gw4va8HeQb8j7Ra0ZltY/IeHgSHFXFw== dependencies: axios "^0.19.0" brotli-size "0.1.0" bytes "^3.1.0" ci-env "^1.4.0" commander "^2.20.0" cosmiconfig "^5.2.1" github-build "^1.2.0" glob "^7.1.4" gzip-size "^4.0.0" prettycli "^1.4.3" bytes@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= dependencies: callsites "^2.0.0" caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" dependencies: callsites "^0.2.0" caller-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= dependencies: caller-callsite "^2.0.0" callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" callsites@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" center-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" dependencies: align-text "^0.1.3" lazy-cache "^1.0.3" chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" has-ansi "^2.0.0" strip-ansi "^3.0.0" supports-color "^2.0.0" chalk@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" integrity sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ== dependencies: ansi-styles "^3.1.0" escape-string-regexp "^1.0.5" supports-color "^4.0.0" chalk@^2.0.0, chalk@^2.1.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== ci-env@^1.4.0: version "1.16.0" resolved "https://registry.yarnpkg.com/ci-env/-/ci-env-1.16.0.tgz#e97f3b5001a8daf7da6e46f418bc6892a238704d" integrity sha512-ucF9caQEX5wQlY449KZBIJPx91+kRg9tJ3tWSc4+KzrvC5KNiPm/3g1noP8VhdI3046+Vw3jLmKAD0fjCRJTmw== ci-info@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534" circular-json@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" cli-cursor@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" dependencies: restore-cursor "^1.0.1" cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" dependencies: restore-cursor "^2.0.0" cli-spinners@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" cli-truncate@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" dependencies: slice-ansi "0.0.4" string-width "^1.0.1" cli-width@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" cliui@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" dependencies: center-align "^0.1.1" right-align "^0.1.1" wordwrap "0.0.2" co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" color-convert@^1.0.0: version "1.9.0" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" dependencies: color-name "^1.1.1" color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" dependencies: color-name "1.1.3" color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" color-name@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.2.tgz#5c8ab72b64bd2215d617ae9559ebb148475cf98d" commander@2.9.0, commander@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" dependencies: graceful-readlink ">= 1.0.0" commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" concat-stream@^1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: buffer-from "^1.0.0" inherits "^2.0.3" readable-stream "^2.2.2" typedarray "^0.0.6" console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= contains-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" convert-source-map@^1.1.0: version "1.5.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" core-js@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" cosmiconfig@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-1.1.0.tgz#0dea0f9804efdfb929fbb1b188e25553ea053d37" dependencies: graceful-fs "^4.1.2" js-yaml "^3.4.3" minimist "^1.2.0" object-assign "^4.0.1" os-homedir "^1.0.1" parse-json "^2.2.0" pinkie-promise "^2.0.0" require-from-string "^1.1.0" cosmiconfig@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== dependencies: import-fresh "^2.0.0" is-directory "^0.3.1" js-yaml "^3.13.1" parse-json "^4.0.0" cross-spawn@^5.0.1, cross-spawn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" dependencies: lru-cache "^4.0.1" shebang-command "^1.2.0" which "^1.2.9" date-fns@^1.27.2: version "1.28.3" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.3.tgz#145d87adc3f5a82c6bda668de97eee1132c97ea1" debug@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" dependencies: ms "0.7.1" debug@=3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" debug@^2.1.1, debug@^2.2.0: version "2.6.3" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.3.tgz#0f7eb8c30965ec08c72accfa0130c8b79984141d" dependencies: ms "0.7.2" debug@^3.1.0: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" dependencies: ms "^2.1.1" decamelize@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" decompress-response@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== dependencies: mimic-response "^2.0.0" deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" del@^2.0.2: version "2.2.2" resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" dependencies: globby "^5.0.0" is-path-cwd "^1.0.0" is-path-in-cwd "^1.0.0" object-assign "^4.0.1" pify "^2.0.0" pinkie-promise "^2.0.0" rimraf "^2.2.8" delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= detect-indent@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" dependencies: repeating "^2.0.0" detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= diff@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" doctrine@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" dependencies: esutils "^2.0.2" isarray "^1.0.0" doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" dependencies: esutils "^2.0.2" duplexer@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" error-ex@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" dependencies: is-arrayish "^0.2.1" error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" eslint-import-resolver-node@^0.2.0: version "0.2.3" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz#5add8106e8c928db2cba232bcd9efa846e3da16c" dependencies: debug "^2.2.0" object-assign "^4.0.1" resolve "^1.1.6" eslint-module-utils@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.0.0.tgz#a6f8c21d901358759cdc35dbac1982ae1ee58bce" dependencies: debug "2.2.0" pkg-dir "^1.0.0" eslint-plugin-import@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz#72ba306fad305d67c4816348a4699a4229ac8b4e" dependencies: builtin-modules "^1.1.1" contains-path "^0.1.0" debug "^2.2.0" doctrine "1.5.0" eslint-import-resolver-node "^0.2.0" eslint-module-utils "^2.0.0" has "^1.0.1" lodash.cond "^4.3.0" minimatch "^3.0.3" pkg-up "^1.0.0" eslint-scope@^3.7.1: version "3.7.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" eslint-visitor-keys@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" eslint@^4.18.2: version "4.18.2" resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.2.tgz#0f81267ad1012e7d2051e186a9004cc2267b8d45" dependencies: ajv "^5.3.0" babel-code-frame "^6.22.0" chalk "^2.1.0" concat-stream "^1.6.0" cross-spawn "^5.1.0" debug "^3.1.0" doctrine "^2.1.0" eslint-scope "^3.7.1" eslint-visitor-keys "^1.0.0" espree "^3.5.2" esquery "^1.0.0" esutils "^2.0.2" file-entry-cache "^2.0.0" functional-red-black-tree "^1.0.1" glob "^7.1.2" globals "^11.0.1" ignore "^3.3.3" imurmurhash "^0.1.4" inquirer "^3.0.6" is-resolvable "^1.0.0" js-yaml "^3.9.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" lodash "^4.17.4" minimatch "^3.0.2" mkdirp "^0.5.1" natural-compare "^1.4.0" optionator "^0.8.2" path-is-inside "^1.0.2" pluralize "^7.0.0" progress "^2.0.0" require-uncached "^1.0.3" semver "^5.3.0" strip-ansi "^4.0.0" strip-json-comments "~2.0.1" table "4.0.2" text-table "~0.2.0" espree@^3.5.2: version "3.5.4" resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" dependencies: acorn "^5.5.0" acorn-jsx "^3.0.0" esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" esquery@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" dependencies: estraverse "^4.0.0" esrecurse@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" dependencies: estraverse "~4.1.0" object-assign "^4.0.1" estraverse@^4.0.0, estraverse@^4.1.1: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" estraverse@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" estree-walker@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e" esutils@2.0.2, esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" execa@^0.6.0: version "0.6.3" resolved "https://registry.yarnpkg.com/execa/-/execa-0.6.3.tgz#57b69a594f081759c69e5370f0d17b9cb11658fe" dependencies: cross-spawn "^5.0.1" get-stream "^3.0.0" is-stream "^1.1.0" npm-run-path "^2.0.0" p-finally "^1.0.0" signal-exit "^3.0.0" strip-eof "^1.0.0" exit-hook@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" expand-template@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== external-editor@^2.0.4: version "2.2.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" dependencies: chardet "^0.4.0" iconv-lite "^0.4.17" tmp "^0.0.33" fast-deep-equal@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" figures@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" dependencies: escape-string-regexp "^1.0.5" object-assign "^4.1.0" figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" dependencies: escape-string-regexp "^1.0.5" file-entry-cache@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" dependencies: flat-cache "^1.2.1" object-assign "^4.0.1" find-parent-dir@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" dependencies: path-exists "^2.0.0" pinkie-promise "^2.0.0" flat-cache@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" dependencies: circular-json "^0.3.1" del "^2.0.2" graceful-fs "^4.1.2" write "^0.2.1" flow-parser@0.43.0: version "0.43.0" resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.43.0.tgz#e2b8eb1ac83dd53f7b6b04a7c35b6a52c33479b7" follow-redirects@1.5.10: version "1.5.10" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== dependencies: debug "=3.1.0" fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" function-bind@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" has-unicode "^2.0.0" object-assign "^4.1.0" signal-exit "^3.0.0" string-width "^1.0.1" strip-ansi "^3.0.1" wide-align "^1.1.0" get-stdin@5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" github-build@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/github-build/-/github-build-1.2.1.tgz#a00f03fb76e5fa01971ddff0e69b88978c6f2f3f" integrity sha512-VAT4NFU8hm9Ks5yNKuuczD2zMbmouAKHtxtwvmCj34Q2DpZsjgp3LLjtrKlm/YvGSzSNGmj22ccJQQei+f/vIw== dependencies: axios "0.19.0" github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= glob@7.0.5: version "7.0.5" resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" minimatch "^3.0.2" once "^1.3.0" path-is-absolute "^1.0.0" glob@7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" minimatch "^3.0.2" once "^1.3.0" path-is-absolute "^1.0.0" glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@^7.1.4: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" globals@^11.0.1: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" globals@^9.0.0: version "9.17.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" globby@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" dependencies: array-union "^1.0.1" arrify "^1.0.0" glob "^7.0.3" object-assign "^4.0.1" pify "^2.0.0" pinkie-promise "^2.0.0" graceful-fs@^4.1.2: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" growl@1.9.2: version "1.9.2" resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" gzip-size@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-4.1.0.tgz#8ae096257eabe7d69c45be2b67c448124ffb517c" integrity sha1-iuCWJX6r59acRb4rZ8RIEk/7UXw= dependencies: duplexer "^0.1.1" pify "^3.0.0" has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" dependencies: ansi-regex "^2.0.0" has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" has-flag@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= has@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" dependencies: function-bind "^1.0.2" home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.1" husky@^0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/husky/-/husky-0.13.3.tgz#bc2066080badc8b8fe3516e881f5bc68a57052ff" dependencies: chalk "^1.1.3" find-parent-dir "^0.3.0" is-ci "^1.0.9" normalize-path "^1.0.0" iconv-lite@^0.4.17: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" dependencies: safer-buffer ">= 2.1.2 < 3" ieee754@^1.1.4: version "1.1.13" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== ignore@^3.3.3: version "3.3.10" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" iltorb@^2.4.3: version "2.4.5" resolved "https://registry.yarnpkg.com/iltorb/-/iltorb-2.4.5.tgz#d64434b527099125c6839ed48b666247a172ef87" integrity sha512-EMCMl3LnnNSZJS5QrxyZmMTaAC4+TJkM5woD+xbpm9RB+mFYCr7C05GFE3TEGCsVQSVHmjX+3sf5AiwsylNInQ== dependencies: detect-libc "^1.0.3" nan "^2.14.0" npmlog "^4.1.2" prebuild-install "^5.3.3" which-pm-runs "^1.0.0" import-fresh@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= dependencies: caller-path "^2.0.0" resolve-from "^3.0.0" imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" indent-string@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" dependencies: repeating "^2.0.0" indent-string@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.1.0.tgz#08ff4334603388399b329e6b9538dc7a3cf5de7d" inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" dependencies: once "^1.3.0" wrappy "1" inherits@2, inherits@^2.0.3, inherits@~2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== inquirer@^3.0.6: version "3.3.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" dependencies: ansi-escapes "^3.0.0" chalk "^2.0.0" cli-cursor "^2.1.0" cli-width "^2.0.0" external-editor "^2.0.4" figures "^2.0.0" lodash "^4.3.0" mute-stream "0.0.7" run-async "^2.2.0" rx-lite "^4.0.8" rx-lite-aggregates "^4.0.8" string-width "^2.1.0" strip-ansi "^4.0.0" through "^2.3.6" invariant@^2.2.0: version "2.2.2" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" dependencies: loose-envify "^1.0.0" is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" is-buffer@^1.0.2: version "1.1.5" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" is-buffer@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== is-ci@^1.0.9: version "1.0.10" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" dependencies: ci-info "^1.0.0" is-directory@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= is-finite@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" is-path-in-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" dependencies: is-path-inside "^1.0.0" is-path-inside@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" dependencies: path-is-inside "^1.0.1" is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" is-resolvable@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" dependencies: tryit "^1.0.1" is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" jest-matcher-utils@^19.0.0: version "19.0.0" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-19.0.0.tgz#5ecd9b63565d2b001f61fbf7ec4c7f537964564d" dependencies: chalk "^1.1.3" pretty-format "^19.0.0" jest-validate@19.0.0: version "19.0.0" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-19.0.0.tgz#8c6318a20ecfeaba0ba5378bfbb8277abded4173" dependencies: chalk "^1.1.1" jest-matcher-utils "^19.0.0" leven "^2.0.0" pretty-format "^19.0.0" js-tokens@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" js-yaml@^3.13.1, js-yaml@^3.4.3, js-yaml@^3.9.1: version "3.14.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" dependencies: argparse "^1.0.7" esprima "^4.0.0" jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" json3@3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" json5@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" kind-of@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" dependencies: is-buffer "^1.0.2" lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" leven@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" lint-staged@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-3.4.0.tgz#52fa85dfc92bb1c6fe8ad0d0d98ca13924e03e4b" dependencies: app-root-path "^2.0.0" cosmiconfig "^1.1.0" execa "^0.6.0" listr "^0.11.0" minimatch "^3.0.0" npm-which "^3.0.1" staged-git-files "0.0.4" listr-silent-renderer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" listr-update-renderer@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz#ca80e1779b4e70266807e8eed1ad6abe398550f9" dependencies: chalk "^1.1.3" cli-truncate "^0.2.1" elegant-spinner "^1.0.1" figures "^1.7.0" indent-string "^3.0.0" log-symbols "^1.0.2" log-update "^1.0.2" strip-ansi "^3.0.1" listr-verbose-renderer@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.0.tgz#44dc01bb0c34a03c572154d4d08cde9b1dc5620f" dependencies: chalk "^1.1.3" cli-cursor "^1.0.2" date-fns "^1.27.2" figures "^1.7.0" listr@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/listr/-/listr-0.11.0.tgz#5e778bc23806ac3ab984ed75564458151f39b03e" dependencies: chalk "^1.1.3" cli-truncate "^0.2.1" figures "^1.7.0" indent-string "^2.1.0" is-promise "^2.1.0" is-stream "^1.1.0" listr-silent-renderer "^1.1.1" listr-update-renderer "^0.2.0" listr-verbose-renderer "^0.4.0" log-symbols "^1.0.2" log-update "^1.0.2" ora "^0.2.3" rxjs "^5.0.0-beta.11" stream-to-observable "^0.1.0" strip-ansi "^3.0.1" lodash._baseassign@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" dependencies: lodash._basecopy "^3.0.0" lodash.keys "^3.0.0" lodash._basecopy@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" lodash._basecreate@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" lodash._isiterateecall@^3.0.0: version "3.0.9" resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" lodash.cond@^4.3.0: version "4.5.2" resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" lodash.create@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" dependencies: lodash._baseassign "^3.0.0" lodash._basecreate "^3.0.0" lodash._isiterateecall "^3.0.0" lodash.isarguments@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" lodash.keys@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" dependencies: lodash._getnative "^3.0.0" lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0: version "4.17.19" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" log-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" dependencies: chalk "^1.0.0" log-update@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" dependencies: ansi-escapes "^1.0.0" cli-cursor "^1.0.2" longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" loose-envify@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" dependencies: js-tokens "^3.0.0" lru-cache@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" dependencies: pseudomap "^1.0.1" yallist "^2.0.0" mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" mimic-response@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: brace-expansion "^1.1.7" minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" minimist@1.2.0, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" minimist@^1.2.3: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== mkdirp-classic@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== mkdirp@0.5.1, mkdirp@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: minimist "0.0.8" mocha@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.2.0.tgz#7dc4f45e5088075171a68896814e6ae9eb7a85e3" dependencies: browser-stdout "1.3.0" commander "2.9.0" debug "2.2.0" diff "1.4.0" escape-string-regexp "1.0.5" glob "7.0.5" growl "1.9.2" json3 "3.3.2" lodash.create "3.1.1" mkdirp "0.5.1" supports-color "3.1.2" ms@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" ms@0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" nan@^2.14.0: version "2.14.1" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== napi-build-utils@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" node-abi@^2.7.0: version "2.19.1" resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.1.tgz#6aa32561d0a5e2fdb6810d8c25641b657a8cea85" integrity sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A== dependencies: semver "^5.4.1" noop-logger@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= normalize-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" npm-path@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.3.tgz#15cff4e1c89a38da77f56f6055b24f975dfb2bbe" dependencies: which "^1.2.10" npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" dependencies: path-key "^2.0.0" npm-which@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" dependencies: commander "^2.9.0" npm-path "^2.0.2" which "^1.2.10" npmlog@^4.0.1, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" gauge "~2.7.3" set-blocking "~2.0.0" number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: wrappy "1" onetime@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" dependencies: mimic-fn "^1.0.0" optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" dependencies: deep-is "~0.1.3" fast-levenshtein "~2.0.4" levn "~0.3.0" prelude-ls "~1.1.2" type-check "~0.3.2" wordwrap "~1.0.0" ora@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" dependencies: chalk "^1.1.1" cli-cursor "^1.0.2" cli-spinners "^0.1.2" object-assign "^4.0.1" os-homedir@^1.0.0, os-homedir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" dependencies: error-ex "^1.2.0" parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" dependencies: pinkie-promise "^2.0.0" path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" path-is-inside@^1.0.1, path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" path-key@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" path-parse@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" pkg-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" dependencies: find-up "^1.0.0" pkg-up@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26" dependencies: find-up "^1.0.0" pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" prebuild-install@^5.3.3: version "5.3.5" resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.5.tgz#e7e71e425298785ea9d22d4f958dbaccf8bb0e1b" integrity sha512-YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw== dependencies: detect-libc "^1.0.3" expand-template "^2.0.3" github-from-package "0.0.0" minimist "^1.2.3" mkdirp "^0.5.1" napi-build-utils "^1.0.1" node-abi "^2.7.0" noop-logger "^0.1.1" npmlog "^4.0.1" pump "^3.0.0" rc "^1.2.7" simple-get "^3.0.3" tar-fs "^2.0.0" tunnel-agent "^0.6.0" which-pm-runs "^1.0.0" prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" prettier@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.1.0.tgz#9d6ad005703efefa66b6999b8916bfc6afeaf9f8" dependencies: ast-types "0.9.8" babel-code-frame "6.22.0" babylon "7.0.0-beta.8" chalk "1.1.3" esutils "2.0.2" flow-parser "0.43.0" get-stdin "5.0.1" glob "7.1.1" jest-validate "19.0.0" minimist "1.2.0" pretty-format@^19.0.0: version "19.0.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-19.0.0.tgz#56530d32acb98a3fa4851c4e2b9d37b420684c84" dependencies: ansi-styles "^3.0.0" prettycli@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/prettycli/-/prettycli-1.4.3.tgz#b28ec2aad9de07ae1fd75ef294fb54cbdee07ed5" integrity sha512-KLiwAXXfSWXZqGmZlnKPuGMTFp+0QbcySplL1ft9gfteT/BNsG64Xo8u2Qr9r+qnsIZWBQ66Zs8tg+8s2fmzvw== dependencies: chalk "2.1.0" private@^0.1.6: version "0.1.7" resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" pseudomap@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" once "^1.3.1" rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" ini "~1.3.0" minimist "^1.2.0" strip-json-comments "~2.0.1" readable-stream@^2.0.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" isarray "~1.0.0" process-nextick-args "~2.0.0" safe-buffer "~5.1.1" string_decoder "~1.1.1" util-deprecate "~1.0.1" readable-stream@^2.2.2: version "2.2.9" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" dependencies: buffer-shims "~1.0.0" core-util-is "~1.0.0" inherits "~2.0.1" isarray "~1.0.0" process-nextick-args "~1.0.6" string_decoder "~1.0.0" util-deprecate "~1.0.1" readable-stream@^3.1.1, readable-stream@^3.4.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" util-deprecate "^1.0.1" regenerate@^1.2.1: version "1.3.2" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" regenerator-runtime@^0.10.0: version "0.10.3" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.3.tgz#8c4367a904b51ea62a908ac310bf99ff90a82a3e" regenerator-transform@0.9.11: version "0.9.11" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283" dependencies: babel-runtime "^6.18.0" babel-types "^6.19.0" private "^0.1.6" regexpu-core@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" dependencies: regenerate "^1.2.1" regjsgen "^0.2.0" regjsparser "^0.1.4" regjsgen@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" regjsparser@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" dependencies: jsesc "~0.5.0" repeat-string@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" repeating@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" dependencies: is-finite "^1.0.0" require-from-string@^1.1.0: version "1.2.1" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" require-uncached@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" dependencies: caller-path "^0.1.0" resolve-from "^1.0.0" resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" integrity sha1-six699nWiBvItuZTM17rywoYh0g= resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" resolve@^1.1.6: version "1.3.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.2.tgz#1f0442c9e0cbb8136e87b9305f932f46c7f28235" dependencies: path-parse "^1.0.5" restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" dependencies: exit-hook "^1.0.0" onetime "^1.0.0" restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" dependencies: onetime "^2.0.0" signal-exit "^3.0.2" right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" dependencies: align-text "^0.1.1" rimraf@^2.2.8: version "2.6.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" dependencies: glob "^7.0.5" rollup-plugin-babel@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-2.7.1.tgz#16528197b0f938a1536f44683c7a93d573182f57" dependencies: babel-core "6" babel-plugin-transform-es2015-classes "^6.9.0" object-assign "^4.1.0" rollup-pluginutils "^1.5.0" rollup-plugin-node-resolve@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.0.tgz#8b897c4c3030d5001277b0514b25d2ca09683ee0" dependencies: browser-resolve "^1.11.0" builtin-modules "^1.1.0" is-module "^1.0.0" resolve "^1.1.6" rollup-pluginutils@^1.5.0: version "1.5.2" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408" dependencies: estree-walker "^0.2.1" minimatch "^3.0.2" rollup@^0.41.6: version "0.41.6" resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.41.6.tgz#e0d05497877a398c104d816d2733a718a7a94e2a" dependencies: source-map-support "^0.4.0" run-async@^2.2.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" rx-lite-aggregates@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" dependencies: rx-lite "*" rx-lite@*, rx-lite@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" rxjs@^5.0.0-beta.11: version "5.3.0" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.3.0.tgz#d88ccbdd46af290cbdb97d5d8055e52453fabe2d" dependencies: symbol-observable "^1.0.1" safe-buffer@^5.0.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" semver@^5.3.0, semver@^5.4.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" dependencies: shebang-regex "^1.0.0" shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" signal-exit@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" simple-concat@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== simple-get@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== dependencies: decompress-response "^4.2.0" once "^1.3.1" simple-concat "^1.0.0" slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" slice-ansi@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" dependencies: is-fullwidth-code-point "^2.0.0" source-map-support@^0.4.0, source-map-support@^0.4.2: version "0.4.14" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.14.tgz#9d4463772598b86271b4f523f6c1f4e02a7d6aef" dependencies: source-map "^0.5.6" source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" staged-git-files@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-0.0.4.tgz#d797e1b551ca7a639dec0237dc6eb4bb9be17d35" stream-to-observable@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.1.0.tgz#45bf1d9f2d7dc09bed81f1c307c430e68b84cffe" string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" "string-width@^1.0.2 || 2", string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" string_decoder@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.0.tgz#f06f41157b664d86069f84bdbdc9b0d8ab281667" dependencies: buffer-shims "~1.0.0" string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" dependencies: ansi-regex "^3.0.0" strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" supports-color@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" dependencies: has-flag "^1.0.0" supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" supports-color@^4.0.0: version "4.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s= dependencies: has-flag "^2.0.0" supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" dependencies: has-flag "^3.0.0" symbol-observable@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" table@4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" dependencies: ajv "^5.2.3" ajv-keywords "^2.1.0" chalk "^2.1.0" lodash "^4.17.4" slice-ansi "1.0.0" string-width "^2.1.1" tar-fs@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.0.tgz#d1cdd121ab465ee0eb9ccde2d35049d3f3daf0d5" integrity sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg== dependencies: chownr "^1.1.1" mkdirp-classic "^0.5.2" pump "^3.0.0" tar-stream "^2.0.0" tar-stream@^2.0.0: version "2.1.4" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.4.tgz#c4fb1a11eb0da29b893a5b25476397ba2d053bfa" integrity sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw== dependencies: bl "^4.0.3" end-of-stream "^1.4.1" fs-constants "^1.0.0" inherits "^2.0.3" readable-stream "^3.1.1" text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" dependencies: os-tmpdir "~1.0.2" to-fast-properties@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" tryit@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" dependencies: prelude-ls "~1.1.2" typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" uglify-js@^2.8.22: version "2.8.22" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.22.tgz#d54934778a8da14903fa29a326fb24c0ab51a1a0" dependencies: source-map "~0.5.1" yargs "~3.10.0" optionalDependencies: uglify-to-browserify "~1.0.0" uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" which-pm-runs@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= which@^1.2.10, which@^1.2.9: version "1.2.14" resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" dependencies: isexe "^2.0.0" wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== dependencies: string-width "^1.0.2 || 2" window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" wordwrap@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" write@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" dependencies: mkdirp "^0.5.1" yallist@^2.0.0: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" dependencies: camelcase "^1.0.2" cliui "^2.1.0" decamelize "^1.0.0" window-size "0.1.0"