├── .npmignore ├── src ├── constants.js ├── Loading.js ├── index.js ├── Permission.js ├── AuthProvider.js ├── resolvePermissions.js ├── resolvePermissions.spec.js ├── SwitchPermissions.js ├── WithPermission.js ├── Admin.js └── Admin.spec.js ├── .gitignore ├── mocha.opts ├── .nycrc ├── .travis.yml ├── .babelrc ├── .eslintrc ├── LICENSE ├── Makefile ├── package.json ├── README.md └── yarn.lock /.npmignore: -------------------------------------------------------------------------------- 1 | src 2 | .babelrc 3 | .eslintrc 4 | Makefile -------------------------------------------------------------------------------- /src/constants.js: -------------------------------------------------------------------------------- 1 | export const AUTH_GET_PERMISSIONS = 'AUTH_GET_PERMISSIONS'; 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | lib 2 | node_modules 3 | .nvmrc 4 | .nyc_output 5 | .coverage-cache 6 | coverage 7 | -------------------------------------------------------------------------------- /mocha.opts: -------------------------------------------------------------------------------- 1 | --require babel-polyfill 2 | --compilers js:babel-core/register 3 | --colors 4 | --reporter=spec 5 | --timeout=5000 6 | --recursive 7 | --sort 8 | -------------------------------------------------------------------------------- /.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "sourceMap": false, 3 | "instrument": false, 4 | "reporter": [ 5 | "cobertura", 6 | "lcov", 7 | "text" 8 | ] 9 | } -------------------------------------------------------------------------------- /src/Loading.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import LinearProgress from 'material-ui/LinearProgress'; 3 | 4 | const LoadingComponent = () => ; 5 | 6 | export default LoadingComponent; 7 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | export SwitchPermissions from './SwitchPermissions'; 2 | export WithPermission from './WithPermission'; 3 | export Permission from './Permission'; 4 | export Loading from './Loading'; 5 | export AuthProvider from './AuthProvider'; 6 | export Admin from './Admin'; 7 | export { AUTH_GET_PERMISSIONS } from './constants'; 8 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | 3 | node_js: 4 | - "7.7.2" 5 | 6 | env: 7 | global: 8 | - NODE_ENV=test 9 | 10 | dist: trusty 11 | 12 | cache: 13 | yarn: true 14 | directories: 15 | - node_modules 16 | 17 | before_install: 18 | - npm install -g yarn 19 | 20 | install: 21 | - "make --silent install" 22 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "es2015", 4 | "stage-0", 5 | "react" 6 | ], 7 | "plugins": [ 8 | [ 9 | "transform-runtime", 10 | { 11 | "polyfill": false, 12 | "regenerator": true 13 | } 14 | ] 15 | ], 16 | "env": { 17 | "test": { 18 | "plugins": [ 19 | ["istanbul", { "exclude": "**/*.spec.js" }] 20 | ] 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/Permission.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | 4 | const Permission = () => <ForRole> elements are for configuration only and should not be rendered; 5 | 6 | Permission.propTypes = { 7 | children: PropTypes.node.isRequired, 8 | exact: PropTypes.bool, 9 | value: PropTypes.any, 10 | resolve: PropTypes.any, 11 | }; 12 | 13 | export default Permission; 14 | -------------------------------------------------------------------------------- /src/AuthProvider.js: -------------------------------------------------------------------------------- 1 | import { cloneElement } from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import withContext from 'recompose/withContext'; 4 | 5 | const AuthProviderComponent = ({ authClient, children }) => cloneElement(children, { authClient }); 6 | 7 | AuthProviderComponent.propTypes = { 8 | children: PropTypes.node.isRequired, 9 | }; 10 | 11 | export default withContext({ authClientFromContext: PropTypes.func }, ({ authClient }) => ({ 12 | authClientFromContext: authClient, 13 | }))(AuthProviderComponent); 14 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "babel-eslint", 3 | "env": { 4 | "es6": true, 5 | "mocha": true, 6 | "node": true 7 | }, 8 | "extends": [ 9 | "eslint:recommended", 10 | "plugin:import/errors", 11 | "plugin:import/warnings", 12 | "plugin:react/recommended", 13 | "prettier", 14 | "prettier/react" 15 | ], 16 | "plugins": [ 17 | "react", 18 | "prettier" 19 | ], 20 | "rules": { 21 | "prettier/prettier": ["error", { 22 | "printWidth": 120, 23 | "singleQuote": true, 24 | "tabWidth": 4, 25 | "trailingComma": "all" 26 | }], 27 | "import/no-extraneous-dependencies": "off", 28 | "no-console": ["error", { "allow": ["warn", "error"] }], 29 | "no-unused-vars": ["error", { "ignoreRestSiblings": true }] 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017-present, Gildas Garcia, Marmelab 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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 NON INFRINGEMENT. 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. 10 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: build help 2 | 3 | help: 4 | @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' 5 | 6 | install: package.json ## Install dependencies 7 | @yarn 8 | 9 | clean: ## Clean up the lib folder for building 10 | @rm -rf lib 11 | 12 | build: clean ## Compile ES6 files to JS 13 | @NODE_ENV=production ./node_modules/.bin/babel \ 14 | --out-dir=lib \ 15 | --ignore=*.spec.js \ 16 | ./src 17 | 18 | watch: ## continuously compile ES6 files to JS 19 | @NODE_ENV=production ./node_modules/.bin/babel \ 20 | --out-dir=lib \ 21 | --ignore='*.spec.js' \ 22 | --watch \ 23 | ./src 24 | 25 | test: ## Launch unit tests 26 | @NODE_ENV=test ./node_modules/.bin/nyc \ 27 | ./node_modules/.bin/mocha \ 28 | --opts ./mocha.opts \ 29 | "./src/**/*.spec.js" 30 | 31 | 32 | watch-test: ## Launch unit tests and watch for changes 33 | @NODE_ENV=test ./node_modules/.bin/nyc \ 34 | ./node_modules/.bin/mocha \ 35 | --opts ./mocha.opts \ 36 | --watch \ 37 | "./src/**/*.spec.js" 38 | 39 | format: ## Format the source code 40 | @./node_modules/.bin/eslint --fix ./src 41 | -------------------------------------------------------------------------------- /src/resolvePermissions.js: -------------------------------------------------------------------------------- 1 | export const resolvePermission = ({ permissions, record, resource }) => mapping => { 2 | if (typeof mapping.resolve === 'function') { 3 | const result = mapping.resolve({ 4 | record, 5 | resource, 6 | permissions, 7 | exact: mapping.exact, 8 | value: mapping.permissions, 9 | }); 10 | 11 | if (typeof result.then === 'function') { 12 | return result.then(matched => ({ matched, view: mapping.view })); 13 | } 14 | 15 | return Promise.resolve({ matched: result, view: mapping.view }); 16 | } 17 | 18 | if (Array.isArray(mapping.permissions) && Array.isArray(permissions)) { 19 | if (mapping.exact) { 20 | return Promise.resolve({ 21 | matched: mapping.permissions.every(mp => permissions.includes(mp)), 22 | view: mapping.view, 23 | }); 24 | } 25 | 26 | return Promise.resolve({ 27 | matched: mapping.permissions.some(mp => permissions.includes(mp)), 28 | view: mapping.view, 29 | }); 30 | } 31 | 32 | if (Array.isArray(mapping.permissions)) { 33 | return Promise.resolve({ 34 | matched: mapping.permissions.includes(permissions), 35 | view: mapping.view, 36 | }); 37 | } 38 | 39 | if (Array.isArray(permissions)) { 40 | return Promise.resolve({ 41 | matched: permissions.includes(mapping.permissions), 42 | view: mapping.view, 43 | }); 44 | } 45 | 46 | return Promise.resolve({ matched: mapping.permissions === permissions, view: mapping.view }); 47 | }; 48 | 49 | export default ({ mappings, permissions, record, resource }) => { 50 | const promise = resolvePermission({ permissions, record, resource }); 51 | return Promise.all(mappings.map(promise)).then(matchers => matchers.find(match => match.matched)); 52 | }; 53 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "aor-permissions", 3 | "version": "1.1.3", 4 | "description": "A component for Admin-on-rest allowing to switch views depending on user roles.", 5 | "main": "./lib/index.js", 6 | "repository": "https://github.com/marmelab/aor-permissions.git", 7 | "authors": [ 8 | "Gildas Garcia" 9 | ], 10 | "license": "MIT", 11 | "scripts": { 12 | "build": "make build", 13 | "clean": "make clean", 14 | "format": "make format", 15 | "precommit": "lint-staged", 16 | "prepublish": "make build", 17 | "test": "make test", 18 | "watch-test": "make watch-test" 19 | }, 20 | "lint-staged": { 21 | "*.js": [ 22 | "eslint --fix ./src", 23 | "git add" 24 | ] 25 | }, 26 | "devDependencies": { 27 | "admin-on-rest": "~1.2.0", 28 | "babel-cli": "~6.24.1", 29 | "babel-core": "~6.25.0", 30 | "babel-eslint": "~7.2.3", 31 | "babel-plugin-istanbul": "~4.1.3", 32 | "babel-preset-es2015": "~6.24.1", 33 | "babel-preset-react": "~6.24.1", 34 | "babel-preset-stage-0": "~6.24.1", 35 | "enzyme": "~2.9.1", 36 | "eslint": "~4.2.0", 37 | "eslint-config-prettier": "~2.3.0", 38 | "eslint-plugin-import": "~2.7.0", 39 | "eslint-plugin-jsx-a11y": "~6.0.2", 40 | "eslint-plugin-mocha": "~4.11.0", 41 | "eslint-plugin-prettier": "~2.1.2", 42 | "eslint-plugin-react": "~7.1.0", 43 | "expect": "~1.20.2", 44 | "husky": "~0.14.3", 45 | "istanbul-cobertura-badger": "~1.3.0", 46 | "lint-staged": "~4.0.1", 47 | "material-ui": "~0.17.4", 48 | "mocha": "~3.4.2", 49 | "nyc": "~11.0.3", 50 | "prettier": "~1.5.2", 51 | "react-test-renderer": "~15.6.1" 52 | }, 53 | "dependencies": { 54 | "babel-plugin-transform-runtime": "~6.23.0", 55 | "lodash.get": "~4.4.2", 56 | "lodash.omit": "~4.5.0", 57 | "prop-types": "~15.5.10", 58 | "recompose": "~0.23.4" 59 | }, 60 | "peerDependencies": { 61 | "admin-on-rest": "~1.2.0", 62 | "material-ui": "~0.17.4" 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/resolvePermissions.spec.js: -------------------------------------------------------------------------------- 1 | import expect, { createSpy } from 'expect'; 2 | import resolvePermissions from './resolvePermissions'; 3 | 4 | describe('resolvePermissions', () => { 5 | const checker = createSpy().andCall(params => Promise.resolve(params.permissions === 'function')); 6 | const parameters = { 7 | mappings: [ 8 | { permissions: 'admin', view: 'SingleValue' }, 9 | { permissions: ['ignored_role', 'array_value'], view: 'ArrayValue' }, 10 | { permissions: ['array_value_exact_1', 'array_value_exact_2'], exact: true, view: 'ArrayValueExactMatch' }, 11 | { resolve: checker, view: 'FunctionValue', exact: true, permissions: 'foo' }, 12 | ], 13 | resource: 'products', 14 | record: { category: 'announcements' }, 15 | }; 16 | 17 | it('returns a match with mapping having a single value permissions and available permissions is a single value', async () => { 18 | const match = await resolvePermissions({ 19 | ...parameters, 20 | permissions: 'admin', 21 | }); 22 | 23 | expect(match.view).toEqual('SingleValue'); 24 | }); 25 | 26 | it('returns a match with mapping having an array of permissions and available permissions is a single value', async () => { 27 | const match = await resolvePermissions({ 28 | ...parameters, 29 | permissions: 'array_value', 30 | }); 31 | 32 | expect(match.view).toEqual('ArrayValue'); 33 | }); 34 | 35 | it('returns a match with mapping having an array of permissions, available permissions is an array and exact is falsy', async () => { 36 | const match = await resolvePermissions({ 37 | ...parameters, 38 | permissions: ['array_value', 'foo'], 39 | }); 40 | 41 | expect(match.view).toEqual('ArrayValue'); 42 | }); 43 | 44 | it('returns a match with mapping having an array of permissions, available permissions is a single value and exact match requested', async () => { 45 | const match = await resolvePermissions({ 46 | ...parameters, 47 | permissions: ['array_value_exact_1', 'array_value_exact_2'], 48 | }); 49 | 50 | expect(match.view).toEqual('ArrayValueExactMatch'); 51 | }); 52 | 53 | it('returns a match with resolve being a function', async () => { 54 | const match = await resolvePermissions({ 55 | ...parameters, 56 | permissions: 'function', 57 | }); 58 | 59 | expect(match.view).toEqual('FunctionValue'); 60 | expect(checker).toHaveBeenCalledWith({ 61 | permissions: 'function', 62 | resource: 'products', 63 | record: { category: 'announcements' }, 64 | exact: true, 65 | value: 'foo', 66 | }); 67 | }); 68 | 69 | it('returns undefined if no match found', async () => { 70 | const match = await resolvePermissions({ 71 | ...parameters, 72 | permissions: 'an_unknown_permission', 73 | }); 74 | 75 | expect(match).toNotExist(); 76 | }); 77 | }); 78 | -------------------------------------------------------------------------------- /src/SwitchPermissions.js: -------------------------------------------------------------------------------- 1 | import React, { createElement, Component } from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import FormField from 'admin-on-rest/lib/mui/form/FormField'; 4 | import getContext from 'recompose/getContext'; 5 | 6 | import DefaultLoading from './Loading'; 7 | import { AUTH_GET_PERMISSIONS } from './constants'; 8 | import resolvePermissions from './resolvePermissions'; 9 | 10 | export class SwitchPermissionsComponent extends Component { 11 | static propTypes = { 12 | authClient: PropTypes.func, 13 | authClientFromContext: PropTypes.func, 14 | children: PropTypes.node.isRequired, 15 | notFound: PropTypes.func, 16 | loading: PropTypes.func, 17 | record: PropTypes.object, 18 | resource: PropTypes.string, 19 | }; 20 | 21 | static defaultProps = { 22 | notFound: null, 23 | loading: DefaultLoading, 24 | }; 25 | 26 | state = { 27 | isNotFound: false, 28 | match: undefined, 29 | role: undefined, 30 | }; 31 | 32 | async componentWillMount() { 33 | const { authClient, authClientFromContext, children, record, resource } = this.props; 34 | const mappings = 35 | React.Children.map(children, ({ props: { value, resolve, children, exact } }) => ({ 36 | permissions: value, 37 | resolve, 38 | view: children, 39 | exact, 40 | })) || []; 41 | 42 | const finalAuthClient = authClient || authClientFromContext; 43 | 44 | const permissions = await finalAuthClient(AUTH_GET_PERMISSIONS, { record, resource }); 45 | const match = await resolvePermissions({ mappings, permissions, record, resource }); 46 | 47 | if (match) { 48 | this.setState({ match: match.view }); 49 | } else { 50 | this.setState({ isNotFound: true, permissions }); 51 | } 52 | } 53 | 54 | renderSourceChild = (child, props) => 55 |
56 | 57 |
; 58 | 59 | render() { 60 | const { isNotFound, match, role } = this.state; 61 | const { authClient, authClientFromContext, children, notFound, loading, ...props } = this.props; 62 | 63 | if (isNotFound) { 64 | if (notFound) { 65 | return createElement(notFound, { role }); 66 | } 67 | return null; 68 | } 69 | 70 | if (!match) { 71 | return createElement(loading); 72 | } 73 | 74 | if (Array.isArray(match)) { 75 | return ( 76 |
77 | {React.Children.map( 78 | match, 79 | child => 80 | child.props.source ? this.renderSourceChild(child) : , 81 | )} 82 |
83 | ); 84 | } 85 | 86 | return match.props.source ? this.renderSourceChild(match) : ; 87 | } 88 | } 89 | 90 | export default getContext({ 91 | authClientFromContext: PropTypes.func, 92 | })(SwitchPermissionsComponent); 93 | -------------------------------------------------------------------------------- /src/WithPermission.js: -------------------------------------------------------------------------------- 1 | import React, { createElement, Component } from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import FormField from 'admin-on-rest/lib/mui/form/FormField'; 4 | import getContext from 'recompose/getContext'; 5 | 6 | import DefaultLoading from './Loading'; 7 | import { AUTH_GET_PERMISSIONS } from './constants'; 8 | import { resolvePermission } from './resolvePermissions'; 9 | 10 | export class WithPermissionComponent extends Component { 11 | static propTypes = { 12 | authClient: PropTypes.func, 13 | authClientFromContext: PropTypes.func, 14 | children: PropTypes.node.isRequired, 15 | exact: PropTypes.bool, 16 | loading: PropTypes.func, 17 | notFound: PropTypes.func, 18 | record: PropTypes.object, 19 | resource: PropTypes.string, 20 | value: PropTypes.any, 21 | resolve: PropTypes.func, 22 | }; 23 | 24 | static defaultProps = { 25 | loading: DefaultLoading, 26 | }; 27 | 28 | state = { 29 | isNotFound: false, 30 | match: undefined, 31 | role: undefined, 32 | }; 33 | 34 | async componentWillMount() { 35 | const { 36 | authClient, 37 | authClientFromContext, 38 | children, 39 | record, 40 | resolve, 41 | resource, 42 | value: requiredPermissions, 43 | exact, 44 | } = this.props; 45 | const finalAuthClient = authClient || authClientFromContext; 46 | 47 | const permissions = await finalAuthClient(AUTH_GET_PERMISSIONS, { record, resource }); 48 | const match = await resolvePermission({ permissions, record, resource })({ 49 | exact, 50 | permissions: requiredPermissions, 51 | resolve, 52 | view: children, 53 | }); 54 | 55 | if (match && match.matched) { 56 | this.setState({ match: match.view }); 57 | } else { 58 | this.setState({ isNotFound: true, permissions }); 59 | } 60 | } 61 | 62 | renderSourceChild = (child, props) => 63 |
64 | 65 |
; 66 | 67 | render() { 68 | const { isNotFound, match, role } = this.state; 69 | const { 70 | authClient, 71 | authClientFromContext, 72 | children, 73 | notFound, 74 | loading, 75 | resource, 76 | record, 77 | resolve, 78 | value, 79 | exact, 80 | ...props 81 | } = this.props; 82 | 83 | if (isNotFound) { 84 | if (notFound) { 85 | return createElement(notFound, { role }); 86 | } 87 | 88 | return null; 89 | } 90 | 91 | if (!match) { 92 | return createElement(loading); 93 | } 94 | 95 | if (Array.isArray(children)) { 96 | return ( 97 |
98 | {React.Children.map( 99 | children, 100 | child => 101 | child.props.source 102 | ? this.renderSourceChild(child, props) 103 | : , 104 | )} 105 |
106 | ); 107 | } 108 | 109 | return children.props.source 110 | ? this.renderSourceChild(children, props) 111 | : ; 112 | } 113 | } 114 | 115 | export default getContext({ 116 | authClientFromContext: PropTypes.func, 117 | })(WithPermissionComponent); 118 | -------------------------------------------------------------------------------- /src/Admin.js: -------------------------------------------------------------------------------- 1 | import React, { Children, Component } from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { Admin as OriginalAdmin, Resource } from 'admin-on-rest'; 4 | import omit from 'lodash.omit'; 5 | import AuthProvider from './AuthProvider'; 6 | import { AUTH_GET_PERMISSIONS } from './constants'; 7 | import { resolvePermission as defaultResolvePermission } from './resolvePermissions'; 8 | 9 | export const defaultApplyPermissionsToAction = async ({ 10 | permissions, 11 | resource, 12 | action, 13 | resolvePermission = defaultResolvePermission, 14 | }) => { 15 | if (resource.props[`${action}Permissions`]) { 16 | const match = await resolvePermission({ permissions, resource })({ 17 | exact: resource.props[`${action}Exact`], 18 | permissions: resource.props[`${action}Permissions`], 19 | resolve: resource.props[`${action}Resolve`], 20 | view: true, 21 | }); 22 | 23 | return match.matched ? resource.props[action] : null; 24 | } 25 | 26 | return resource.props[action]; 27 | }; 28 | 29 | const permissionsProps = [ 30 | 'permissions', 31 | 'exact', 32 | 'resolve', 33 | 'listPermissions', 34 | 'listExact', 35 | 'listResolve', 36 | 'createPermissions', 37 | 'createExact', 38 | 'createResolve', 39 | 'editPermissions', 40 | 'editExact', 41 | 'editResolve', 42 | 'showPermissions', 43 | 'showExact', 44 | 'showResolve', 45 | 'removePermissions', 46 | 'removeExact', 47 | 'removeResolve', 48 | ]; 49 | 50 | export const defaultApplyPermissionsToResource = async ({ 51 | authClient, 52 | resource, 53 | resolvePermission = defaultResolvePermission, 54 | applyPermissionsToAction = defaultApplyPermissionsToAction, 55 | }) => { 56 | const permissions = await authClient(AUTH_GET_PERMISSIONS, { resource }); 57 | 58 | if (resource.props.permissions) { 59 | const match = await resolvePermission({ permissions, resource })({ 60 | exact: resource.props.exact, 61 | permissions: resource.props.permissions, 62 | resolve: resource.props.resolve, 63 | view: true, 64 | }); 65 | 66 | if (!match.matched) { 67 | return false; 68 | } 69 | } 70 | 71 | const newResource = { 72 | ...omit(resource.props, permissionsProps), 73 | list: await applyPermissionsToAction({ permissions, resource, action: 'list' }), 74 | create: await applyPermissionsToAction({ permissions, resource, action: 'create' }), 75 | edit: await applyPermissionsToAction({ permissions, resource, action: 'edit' }), 76 | show: await applyPermissionsToAction({ permissions, resource, action: 'show' }), 77 | remove: await applyPermissionsToAction({ permissions, resource, action: 'remove' }), 78 | }; 79 | 80 | return newResource; 81 | }; 82 | 83 | export const applyPermissionsToResources = async ({ 84 | authClient, 85 | resources, 86 | applyPermissionsToResource = defaultApplyPermissionsToResource, 87 | }) => { 88 | const newResources = await Promise.all( 89 | Children.map(resources, resource => applyPermissionsToResource({ authClient, resource })), 90 | ); 91 | return newResources.filter(resource => !!resource); 92 | }; 93 | 94 | export default class Admin extends Component { 95 | static propTypes = { 96 | authClient: PropTypes.func.isRequired, 97 | children: PropTypes.node.isRequired, 98 | }; 99 | 100 | state = { resources: false }; 101 | 102 | componentWillMount() { 103 | applyPermissionsToResources({ authClient: this.props.authClient, resources: this.props.children }) 104 | .then(resources => this.setState({ resources })) 105 | .catch(error => console.error(error)); 106 | } 107 | 108 | render() { 109 | const { authClient, ...props } = this.props; 110 | const { resources } = this.state; 111 | if (!resources) return null; 112 | 113 | return ( 114 | 115 | 116 | {resources.map(resource => )} 117 | 118 | 119 | ); 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /src/Admin.spec.js: -------------------------------------------------------------------------------- 1 | import expect, { createSpy } from 'expect'; 2 | import React from 'react'; 3 | import { shallow } from 'enzyme'; 4 | import { Resource } from 'admin-on-rest'; 5 | 6 | import Admin, { 7 | defaultApplyPermissionsToAction, 8 | defaultApplyPermissionsToResource, 9 | applyPermissionsToResources, 10 | } from './Admin'; 11 | 12 | describe('', () => { 13 | describe('defaultApplyPermissionsToAction', () => { 14 | it('resolves to the action component if no permissions attributes are defined', async () => { 15 | const result = await defaultApplyPermissionsToAction({ 16 | permissions: [], 17 | resource: { props: { list: 'listComponent' } }, 18 | action: 'list', 19 | }); 20 | 21 | expect(result).toEqual('listComponent'); 22 | }); 23 | 24 | it('resolves to the action component if permissions attributes are defined and resolvePermission matches', async () => { 25 | const resolvePermission = createSpy().andReturn(() => Promise.resolve({ matched: true })); 26 | 27 | const result = await defaultApplyPermissionsToAction({ 28 | permissions: [], 29 | resource: { props: { list: 'listComponent', listPermissions: 'foo' } }, 30 | action: 'list', 31 | resolvePermission, 32 | }); 33 | 34 | expect(result).toEqual('listComponent'); 35 | }); 36 | 37 | it('resolves to null if permissions attributes are defined and resolvePermission does not match', async () => { 38 | const resolvePermission = createSpy().andReturn(() => Promise.resolve({ matched: false })); 39 | 40 | const result = await defaultApplyPermissionsToAction({ 41 | permissions: [], 42 | resource: { props: { list: 'listComponent', listPermissions: 'foo' } }, 43 | action: 'list', 44 | resolvePermission, 45 | }); 46 | 47 | expect(result).toEqual(null); 48 | }); 49 | }); 50 | 51 | describe('defaultApplyPermissionsToResource', () => { 52 | it('resolves to the resource if no permissions attributes are defined', async () => { 53 | const authClient = createSpy().andReturn(Promise.resolve('foo')); 54 | const result = await defaultApplyPermissionsToResource({ 55 | authClient, 56 | resource: { 57 | props: { 58 | name: 'aResource', 59 | icon: 'anIcon', 60 | options: 'someOptions', 61 | checkCredentials: 'doesCheckCredentials', 62 | list: 'listComponent', 63 | create: 'createComponent', 64 | edit: 'editComponent', 65 | show: 'showComponent', 66 | remove: 'removeComponent', 67 | }, 68 | }, 69 | }); 70 | 71 | expect(result).toEqual({ 72 | name: 'aResource', 73 | icon: 'anIcon', 74 | options: 'someOptions', 75 | checkCredentials: 'doesCheckCredentials', 76 | list: 'listComponent', 77 | create: 'createComponent', 78 | edit: 'editComponent', 79 | show: 'showComponent', 80 | remove: 'removeComponent', 81 | }); 82 | }); 83 | 84 | it('resolves to the resource with filtered actions if permissions attributes are defined', async () => { 85 | const authClient = createSpy().andReturn(Promise.resolve(['list', 'show'])); 86 | const result = await defaultApplyPermissionsToResource({ 87 | authClient, 88 | resource: { 89 | props: { 90 | name: 'aResource', 91 | icon: 'anIcon', 92 | options: 'someOptions', 93 | checkCredentials: 'doesCheckCredentials', 94 | list: 'listComponent', 95 | listPermissions: 'list', 96 | create: 'createComponent', 97 | createPermissions: 'foo', 98 | edit: 'editComponent', 99 | show: 'showComponent', 100 | showPermissions: 'show', 101 | showResolve: () => Promise.resolve(false), 102 | remove: 'removeComponent', 103 | removePermissions: 'foo', 104 | removeResolve: () => true, 105 | }, 106 | }, 107 | }); 108 | 109 | expect(result).toEqual({ 110 | name: 'aResource', 111 | icon: 'anIcon', 112 | options: 'someOptions', 113 | checkCredentials: 'doesCheckCredentials', 114 | list: 'listComponent', 115 | create: null, 116 | edit: 'editComponent', 117 | show: null, 118 | remove: 'removeComponent', 119 | }); 120 | }); 121 | 122 | it('resolves to false if permissions attribute is defined and resolvePermission does not match', async () => { 123 | const authClient = createSpy().andReturn(Promise.resolve('foo')); 124 | const resolvePermission = createSpy().andReturn(() => Promise.resolve({ matched: false })); 125 | const result = await defaultApplyPermissionsToResource({ 126 | authClient, 127 | resource: { props: { permissions: 'bar' } }, 128 | resolvePermission, 129 | }); 130 | 131 | expect(result).toEqual(false); 132 | }); 133 | }); 134 | 135 | describe('applyPermissionsToResources', () => { 136 | it('resolves to filtered resources', async () => { 137 | const applyPermissionsToResource = createSpy().andCall( 138 | ({ resource }) => (resource === 'resource1' ? resource : false), 139 | ); 140 | 141 | const resources = await applyPermissionsToResources({ 142 | authClient: 'authClientImpl', 143 | resources: ['resource1', 'resource2'], 144 | applyPermissionsToResource, 145 | }); 146 | 147 | expect(resources).toEqual(['resource1']); 148 | expect(applyPermissionsToResource).toHaveBeenCalledWith({ 149 | authClient: 'authClientImpl', 150 | resource: 'resource1', 151 | }); 152 | expect(applyPermissionsToResource).toHaveBeenCalledWith({ 153 | authClient: 'authClientImpl', 154 | resource: 'resource2', 155 | }); 156 | }); 157 | }); 158 | 159 | it('pass back all additional resources props', () => { 160 | const authClient = () => Promise.resolve('user'); 161 | const wrapper = shallow( 162 | 163 | 164 | 165 | 166 | , 167 | ); 168 | 169 | return new Promise(resolve => { 170 | // We need a timeout here because of the asynchronous call to the authClient 171 | setTimeout(() => { 172 | expect(wrapper.find(Resource).length).toEqual(2); 173 | const postsResource = wrapper.find(Resource).at(0); 174 | expect(postsResource.prop('name')).toEqual('posts'); 175 | expect(postsResource.prop('customProp')).toEqual('value1'); 176 | expect(postsResource.prop('customProp2')).toEqual('value2'); 177 | 178 | const commentsResource = wrapper.find(Resource).at(1); 179 | expect(commentsResource.prop('name')).toEqual('comments'); 180 | expect(commentsResource.prop('customProp')).toEqual('value3'); 181 | expect(commentsResource.prop('customProp2')).toEqual('value4'); 182 | 183 | resolve(); 184 | }, 100); 185 | }); 186 | }); 187 | }); 188 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 |
archivedArchived Repository
5 | This code is no longer maintained. Feel free to fork it, but use it at your own risks. 6 |
9 | 10 | # aor-permissions 11 | 12 | **This project is discontinued. Its features have been merged in admin-on-rest 1.3.0. See [admin-on-rest documentation](https://marmelab.com/admin-on-rest/Authorization.html)** 13 | 14 | [![Build Status](https://travis-ci.org/marmelab/aor-permissions.svg?branch=master)](https://travis-ci.org/marmelab/aor-permissions) 15 | 16 | A component for [Admin-on-rest](https://github.com/marmelab/admin-on-rest) allowing to switch views depending on user roles. 17 | 18 | - [Installation](#installation) 19 | - [Usage](#installation) 20 | - [API](#api) 21 | - [SwitchPermissions](#switchpermissions) 22 | - [Permission](#permission) 23 | - [WithPermission](#withpermission) 24 | - [AuthProvider](#authprovider) 25 | 26 | ## Installation 27 | 28 | Install with: 29 | 30 | ```sh 31 | npm install --save aor-permissions 32 | ``` 33 | 34 | or 35 | 36 | ```sh 37 | yarn add aor-permissions 38 | ``` 39 | 40 | ## Usage 41 | 42 | First, the [authClient](https://marmelab.com/admin-on-rest/Authentication.html) must handle a new type: `AUTH_GET_PERMISSIONS`. 43 | 44 | Here is a naive implementation using localstorage: 45 | 46 | ```jsx 47 | // in authClient.js 48 | import { AUTH_LOGIN, AUTH_LOGOUT, AUTH_CHECK, AUTH_ERROR } from 'admin-on-rest'; 49 | import { AUTH_GET_PERMISSIONS } from 'aor-permissions'; 50 | import { decode } from 'jsonwebtoken'; 51 | 52 | export default (type, params) => { 53 | if (type === AUTH_LOGIN) { 54 | const { username, password } = params; 55 | const request = new Request('https://mydomain.com/authenticate', { 56 | method: 'POST', 57 | body: JSON.stringify({ username, password }), 58 | headers: new Headers({ 'Content-Type': 'application/json' }), 59 | }) 60 | return fetch(request) 61 | .then(response => { 62 | if (response.status < 200 || response.status >= 300) { 63 | throw new Error(response.statusText); 64 | } 65 | return response.json(); 66 | }) 67 | .then(({ token, permissions }) => { 68 | const decoded = decode(token); 69 | localStorage.setItem('token', token); 70 | localStorage.setItem('permissions', decoded.permissions); 71 | }); 72 | } 73 | // ... usual authClient code 74 | 75 | if (type === AUTH_GET_PERMISSIONS) { 76 | return Promise.resolve(localStorage.getItem('permissions')); 77 | } 78 | }; 79 | ``` 80 | 81 | Then, you may use the `SwitchPermissions` and `Permission` components: 82 | 83 | ### Simple permissions check 84 | 85 | ```jsx 86 | // In products.js 87 | import { SwitchPermissions, Permission } from 'aor-permissions'; 88 | import authClient from '../authClient'; 89 | 90 | // ...other views as usual (List, Create, etc.) 91 | 92 | // Use this ProductEdit component as usual in your resource declaration 93 | export const ProductEdit = props => ( 94 | 95 | 96 | 97 | {/* Usual layout component */} 98 | 99 | 100 | 101 | 102 | {/* Usual layout component */} 103 | 104 | 105 | 106 | 107 | {/* Usual layout component */} 108 | 109 | 110 | 111 | ); 112 | ``` 113 | 114 | ### Permissions check depending on the resource/record 115 | 116 | ```jsx 117 | // In products.js 118 | import { SwitchPermissions, Permission } from 'aor-permissions'; 119 | import authClient from '../authClient'; 120 | 121 | // ...other views as usual (List, Create, etc.) 122 | 123 | const checkUserCanEdit = (params) => { 124 | const user = params.permissions; // This is the result of the `authClient` call with type `AUTH_GET_PERMISSIONS` 125 | const resource = params.resource; // The resource, eg: 'posts' 126 | const record = params.record; // The current record (only supplied for Edit) 127 | 128 | // Only user with admin role can edit the posts of the 'announcements' category 129 | if (record.category === 'announcement' && user.role === 'admin') { 130 | return true; 131 | } 132 | 133 | return false; 134 | } 135 | 136 | // Use this PostEdit component as usual in your resource declaration 137 | // Note that in order to get the record, we must have the SwitchPermissions component inside the Edit component 138 | export const PostEdit = props => ( 139 | 140 | 141 | 142 | {/* Usual layout component */} 143 | 144 | 145 | {/* Usual layout component */} 146 | 147 | 148 | 149 | ); 150 | ``` 151 | 152 | ### Protect access to resources 153 | 154 | ```jsx 155 | import { Admin } from 'aor-permissions'; 156 | import { Resource } from 'admin-on-rest'; 157 | import restClient from '../restClient'; 158 | import authClient from '../authClient'; 159 | import { PostList, PostEdit, PostCreate } from './posts'; 160 | 161 | const resolveAccessToPosts = ({ resource, permissions, exact, value }) => { 162 | // value = the requested permissions specified in the `permissions` prop (eg `admin`). May be undefined 163 | // resource = the requested resource (eg `posts`) 164 | // exact = the value of the `exact` prop 165 | // permissions = the result of the authClient call 166 | }; 167 | 168 | const resolveEditAccess = ({ resource, permissions, exact, value }) => { 169 | // value = the requested permissions specified in the `permissions` prop (eg `admin`). May be undefined 170 | // resource = the requested resource (eg `posts`) 171 | // exact = the value of the `exact` prop 172 | // permissions = the result of the authClient call 173 | }; 174 | 175 | const App = () => ( 176 | 177 | 188 | 189 | ); 190 | 191 | ``` 192 | 193 | ## API 194 | 195 | ### SwitchPermissions 196 | 197 | The `SwitchPermissions` component requires an `authClient` prop which accepts the same ([authClient](https://marmelab.com/admin-on-rest/Authentication.html)) as in Admin-on-rest. However, this client must be able to handle the new `AUTH_GET_PERMISSIONS` type. 198 | 199 | It also accepts two optional props: 200 | 201 | - `loading`: A component to display while checking for permissions. It defaults to the Material-UI [LinearProgress](http://www.material-ui.com/#/components/linear-progress) in `indeterminate` mode. 202 | - `notFound`: A component to display when no match was found while checking the permissions. Default to `null`. 203 | 204 | The `SwitchPermissions` component only accepts `Permission` components as children. They are used to map a permission to a view. 205 | 206 | ### Permission 207 | 208 | The `Permission` component requires either a `value` with the permissions to check (could be a role, an array of rules, etc) or a `resolve` function. 209 | 210 | If both are specified, only `resolve` will be used. 211 | 212 | You can pass anything as children for this component: a view ([List](https://marmelab.com/admin-on-rest/List.html), [Create](https://marmelab.com/admin-on-rest/CreateEdit.html), [Edit](https://marmelab.com/admin-on-rest/CreateEdit.html)), an input, a React node, whatever. 213 | 214 | #### Using the value prop 215 | 216 | Permissions matches differently depending on the `value` type and the authClient result type. 217 | 218 | An additional `exact` prop may be specified on the `Permission` component depending on your requirements. 219 | 220 | The following table shows how permissions are resolved: 221 | 222 | | permissions | authClient result | exact | resolve | 223 | | ------------- | ----------------- | ------- | ---------------------------------------------------------------------- | 224 | | single value | single value | | permissions must equal authClient result | 225 | | single value | array | | authClient result must contain permissions | 226 | | array | single value | | permissions must contain authClient result | 227 | | array | array | `false` | at least one value of permissions must be present in authClient result | 228 | | array | array | `true` | all values in permissions must be present in authClient result | 229 | 230 | #### Using the resolve prop 231 | 232 | The function specified for `resolve` may return `true` or `false` directly or a promise resolving to either `true` or `false`. It will be called with an object having the following properties: 233 | 234 | - `permissions`: the result of the `authClient` call. 235 | - `resource`: the resource being checked (eg: `products`, `posts`, etc.) 236 | - `value`: the value of the `value` prop 237 | - `exact`: the value of the `exact` prop 238 | - `record`: Only when inside an `Edit` component, the record being edited 239 | 240 | If multiple matches are found, the first one will be applied. 241 | 242 | ### WithPermission 243 | 244 | A simpler component which will render its children only if its permissions are matched. For example, in a custom [Menu](https://marmelab.com/admin-on-rest/AdminResource.html#menu): 245 | 246 | ```jsx 247 | import React from 'react'; 248 | import { Link } from 'react-router-dom'; 249 | import MenuItem from 'material-ui/MenuItem'; 250 | import SettingsIcon from 'material-ui/svg-icons/action/settings'; 251 | import { WithPermission } from 'aor-permissions'; 252 | import authClient from './authClient'; 253 | 254 | const Menu = ({ onMenuTap, logout }) => ( 255 |
256 | {/* Other menu items */} 257 | 258 | 259 | } 261 | primaryText="Configuration" 262 | leftIcon={} 263 | onTouchTap={onMenuTap} 264 | /> 265 | 266 | {logout} 267 |
268 | ); 269 | 270 | export default Menu; 271 | ``` 272 | 273 | The `WithPermission` component accepts the following props: 274 | 275 | - `authClient`: the same ([authClient](https://marmelab.com/admin-on-rest/Authentication.html)) as in Admin-on-rest. However, this client must be able to handle the new `AUTH_GET_PERMISSIONS` type. 276 | - `value`: the permissions to check (could be a role, an array of rules, etc) 277 | - `resolve`: a function called to resolve the permissions. (same as `Permission`) 278 | 279 | You can pass anything as children for this component: a view ([List](https://marmelab.com/admin-on-rest/List.html), [Create](https://marmelab.com/admin-on-rest/CreateEdit.html), [Edit](https://marmelab.com/admin-on-rest/CreateEdit.html)), an input, a React node, whatever. 280 | 281 | ### AuthProvider 282 | 283 | Requiring and specifying the `authClient` for each `SwitchPermissions` and `WithPermission` components could be cumbersome. That's why we also provided an `AuthProvider` component. 284 | 285 | It must enclose the [Admin](https://marmelab.com/admin-on-rest/AdminResource.html#the-admin-component) component. 286 | 287 | It accepts a single prop: `authClient`. 288 | 289 | ```jsx 290 | import { Admin, Resource } from 'admin-on-rest'; 291 | import { AuthProvider } from 'aor-permissions'; 292 | import authClient from './authClient'; 293 | 294 | export const App = () => ( 295 | 296 | 297 | {/* Usual Resource components */} 298 | 299 | 300 | ) 301 | ``` 302 | 303 | ### Admin 304 | 305 | This component can be used instead of the default `Admin` component from `admin-on-rest`. 306 | 307 | It allows to define permissions on each resource and for each resource's view. 308 | 309 | It accepts the following props: 310 | 311 | - `permissions`: to define the permissions required for the whole resource 312 | - `resolve`: function called to check whether permissions for the whole resource are ok 313 | - `exact`: Boolean for exact match (useful when `permissions` is an array) 314 | 315 | If defined, the `resolve` function will be called with an object containing the following properties: 316 | 317 | - `permissions`: the result of the `authClient` call. 318 | - `value`: the value of the `permissions` prop: the requested permissions 319 | - `exact`: the value of the `exact` prop 320 | 321 | Additionnaly, the `Admin` components accepts for each view (list, create, edit and remove) the same three props prefixed with the view's name. For example: `listPermissions`, `listResolve` and `listExact`. 322 | 323 | **Note**: when using this custom `Admin` component, there's no need to use the `AuthProvider` too as it will be added automatically. 324 | 325 | ## Contributing 326 | 327 | Run the tests with this command: 328 | 329 | ```sh 330 | make test 331 | ``` 332 | 333 | Coverage data is available in `./coverage` after executing `make test`. 334 | 335 | An HTML report is generated in `./coverage/lcov-report/index.html`. 336 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | abbrev@1: 6 | version "1.1.0" 7 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" 8 | 9 | acorn-jsx@^3.0.0: 10 | version "3.0.1" 11 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" 12 | dependencies: 13 | acorn "^3.0.4" 14 | 15 | acorn@^3.0.4: 16 | version "3.3.0" 17 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 18 | 19 | acorn@^5.0.1: 20 | version "5.1.1" 21 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75" 22 | 23 | admin-on-rest@~1.2.0: 24 | version "1.2.0" 25 | resolved "https://registry.yarnpkg.com/admin-on-rest/-/admin-on-rest-1.2.0.tgz#a62bdbf7ac3d0eeb743557ced3ef1e233d839ad5" 26 | dependencies: 27 | babel-runtime "~6.18.0" 28 | inflection "~1.12.0" 29 | lodash.debounce "~4.0.8" 30 | lodash.defaultsdeep "~4.6.0" 31 | lodash.get "~4.4.2" 32 | lodash.set "~4.3.2" 33 | material-ui "~0.17.4" 34 | material-ui-chip-input "~0.13.5" 35 | node-polyglot "2.2.2" 36 | prop-types "~15.5.7" 37 | query-string "~4.3.2" 38 | react "~15.5.4" 39 | react-dom "~15.5.4" 40 | react-dropzone "~3.13.1" 41 | react-redux "~5.0.4" 42 | react-router "~4.1.0" 43 | react-router-dom "~4.1.0" 44 | react-router-redux "~5.0.0-alpha.5" 45 | react-tap-event-plugin "~2.0.1" 46 | recompose "~0.23.1" 47 | redux "~3.6.0" 48 | redux-form "~6.6.3" 49 | redux-saga "~0.15.0" 50 | reselect "~3.0.0" 51 | 52 | ajv-keywords@^1.0.0: 53 | version "1.5.1" 54 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" 55 | 56 | ajv@^4.7.0, ajv@^4.9.1: 57 | version "4.11.8" 58 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" 59 | dependencies: 60 | co "^4.6.0" 61 | json-stable-stringify "^1.0.1" 62 | 63 | ajv@^5.2.0: 64 | version "5.2.2" 65 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.2.tgz#47c68d69e86f5d953103b0074a9430dc63da5e39" 66 | dependencies: 67 | co "^4.6.0" 68 | fast-deep-equal "^1.0.0" 69 | json-schema-traverse "^0.3.0" 70 | json-stable-stringify "^1.0.1" 71 | 72 | align-text@^0.1.1, align-text@^0.1.3: 73 | version "0.1.4" 74 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" 75 | dependencies: 76 | kind-of "^3.0.2" 77 | longest "^1.0.1" 78 | repeat-string "^1.5.2" 79 | 80 | amdefine@>=0.0.4: 81 | version "1.0.1" 82 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" 83 | 84 | ansi-escapes@^1.0.0: 85 | version "1.4.0" 86 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" 87 | 88 | ansi-escapes@^2.0.0: 89 | version "2.0.0" 90 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b" 91 | 92 | ansi-regex@^2.0.0: 93 | version "2.1.1" 94 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 95 | 96 | ansi-regex@^3.0.0: 97 | version "3.0.0" 98 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 99 | 100 | ansi-styles@^2.2.1: 101 | version "2.2.1" 102 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 103 | 104 | ansi-styles@^3.1.0: 105 | version "3.1.0" 106 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.1.0.tgz#09c202d5c917ec23188caa5c9cb9179cd9547750" 107 | dependencies: 108 | color-convert "^1.0.0" 109 | 110 | anymatch@^1.3.0: 111 | version "1.3.0" 112 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" 113 | dependencies: 114 | arrify "^1.0.0" 115 | micromatch "^2.1.5" 116 | 117 | app-root-path@^2.0.0: 118 | version "2.0.1" 119 | resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46" 120 | 121 | append-transform@^0.4.0: 122 | version "0.4.0" 123 | resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" 124 | dependencies: 125 | default-require-extensions "^1.0.0" 126 | 127 | aproba@^1.0.3: 128 | version "1.1.2" 129 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" 130 | 131 | archy@^1.0.0: 132 | version "1.0.0" 133 | resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" 134 | 135 | are-we-there-yet@~1.1.2: 136 | version "1.1.4" 137 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" 138 | dependencies: 139 | delegates "^1.0.0" 140 | readable-stream "^2.0.6" 141 | 142 | argparse@^1.0.7: 143 | version "1.0.9" 144 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" 145 | dependencies: 146 | sprintf-js "~1.0.2" 147 | 148 | aria-query@^0.7.0: 149 | version "0.7.0" 150 | resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.0.tgz#4af10a1e61573ddea0cf3b99b51c52c05b424d24" 151 | dependencies: 152 | ast-types-flow "0.0.7" 153 | 154 | arr-diff@^2.0.0: 155 | version "2.0.0" 156 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 157 | dependencies: 158 | arr-flatten "^1.0.1" 159 | 160 | arr-flatten@^1.0.1: 161 | version "1.1.0" 162 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 163 | 164 | array-includes@^3.0.3: 165 | version "3.0.3" 166 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" 167 | dependencies: 168 | define-properties "^1.1.2" 169 | es-abstract "^1.7.0" 170 | 171 | array-union@^1.0.1: 172 | version "1.0.2" 173 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 174 | dependencies: 175 | array-uniq "^1.0.1" 176 | 177 | array-uniq@^1.0.1: 178 | version "1.0.3" 179 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 180 | 181 | array-unique@^0.2.1: 182 | version "0.2.1" 183 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 184 | 185 | arrify@^1.0.0, arrify@^1.0.1: 186 | version "1.0.1" 187 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 188 | 189 | asap@~2.0.3: 190 | version "2.0.6" 191 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" 192 | 193 | asn1@~0.2.3: 194 | version "0.2.3" 195 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 196 | 197 | assert-plus@1.0.0, assert-plus@^1.0.0: 198 | version "1.0.0" 199 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 200 | 201 | assert-plus@^0.2.0: 202 | version "0.2.0" 203 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" 204 | 205 | ast-types-flow@0.0.7: 206 | version "0.0.7" 207 | resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" 208 | 209 | async-each@^1.0.0: 210 | version "1.0.1" 211 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 212 | 213 | async@^1.4.0: 214 | version "1.5.2" 215 | resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" 216 | 217 | asynckit@^0.4.0: 218 | version "0.4.0" 219 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 220 | 221 | attr-accept@^1.0.3: 222 | version "1.1.0" 223 | resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-1.1.0.tgz#b5cd35227f163935a8f1de10ed3eba16941f6be6" 224 | 225 | aws-sign2@~0.6.0: 226 | version "0.6.0" 227 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" 228 | 229 | aws4@^1.2.1: 230 | version "1.6.0" 231 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" 232 | 233 | axobject-query@^0.1.0: 234 | version "0.1.0" 235 | resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0" 236 | dependencies: 237 | ast-types-flow "0.0.7" 238 | 239 | babel-cli@~6.24.1: 240 | version "6.24.1" 241 | resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.24.1.tgz#207cd705bba61489b2ea41b5312341cf6aca2283" 242 | dependencies: 243 | babel-core "^6.24.1" 244 | babel-polyfill "^6.23.0" 245 | babel-register "^6.24.1" 246 | babel-runtime "^6.22.0" 247 | commander "^2.8.1" 248 | convert-source-map "^1.1.0" 249 | fs-readdir-recursive "^1.0.0" 250 | glob "^7.0.0" 251 | lodash "^4.2.0" 252 | output-file-sync "^1.1.0" 253 | path-is-absolute "^1.0.0" 254 | slash "^1.0.0" 255 | source-map "^0.5.0" 256 | v8flags "^2.0.10" 257 | optionalDependencies: 258 | chokidar "^1.6.1" 259 | 260 | babel-code-frame@^6.22.0: 261 | version "6.22.0" 262 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" 263 | dependencies: 264 | chalk "^1.1.0" 265 | esutils "^2.0.2" 266 | js-tokens "^3.0.0" 267 | 268 | babel-core@^6.24.1, babel-core@~6.25.0: 269 | version "6.25.0" 270 | resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.25.0.tgz#7dd42b0463c742e9d5296deb3ec67a9322dad729" 271 | dependencies: 272 | babel-code-frame "^6.22.0" 273 | babel-generator "^6.25.0" 274 | babel-helpers "^6.24.1" 275 | babel-messages "^6.23.0" 276 | babel-register "^6.24.1" 277 | babel-runtime "^6.22.0" 278 | babel-template "^6.25.0" 279 | babel-traverse "^6.25.0" 280 | babel-types "^6.25.0" 281 | babylon "^6.17.2" 282 | convert-source-map "^1.1.0" 283 | debug "^2.1.1" 284 | json5 "^0.5.0" 285 | lodash "^4.2.0" 286 | minimatch "^3.0.2" 287 | path-is-absolute "^1.0.0" 288 | private "^0.1.6" 289 | slash "^1.0.0" 290 | source-map "^0.5.0" 291 | 292 | babel-eslint@~7.2.3: 293 | version "7.2.3" 294 | resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" 295 | dependencies: 296 | babel-code-frame "^6.22.0" 297 | babel-traverse "^6.23.1" 298 | babel-types "^6.23.0" 299 | babylon "^6.17.0" 300 | 301 | babel-generator@^6.18.0, babel-generator@^6.25.0: 302 | version "6.25.0" 303 | resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.25.0.tgz#33a1af70d5f2890aeb465a4a7793c1df6a9ea9fc" 304 | dependencies: 305 | babel-messages "^6.23.0" 306 | babel-runtime "^6.22.0" 307 | babel-types "^6.25.0" 308 | detect-indent "^4.0.0" 309 | jsesc "^1.3.0" 310 | lodash "^4.2.0" 311 | source-map "^0.5.0" 312 | trim-right "^1.0.1" 313 | 314 | babel-helper-bindify-decorators@^6.24.1: 315 | version "6.24.1" 316 | resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330" 317 | dependencies: 318 | babel-runtime "^6.22.0" 319 | babel-traverse "^6.24.1" 320 | babel-types "^6.24.1" 321 | 322 | babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: 323 | version "6.24.1" 324 | resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" 325 | dependencies: 326 | babel-helper-explode-assignable-expression "^6.24.1" 327 | babel-runtime "^6.22.0" 328 | babel-types "^6.24.1" 329 | 330 | babel-helper-builder-react-jsx@^6.24.1: 331 | version "6.24.1" 332 | resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.24.1.tgz#0ad7917e33c8d751e646daca4e77cc19377d2cbc" 333 | dependencies: 334 | babel-runtime "^6.22.0" 335 | babel-types "^6.24.1" 336 | esutils "^2.0.0" 337 | 338 | babel-helper-call-delegate@^6.24.1: 339 | version "6.24.1" 340 | resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" 341 | dependencies: 342 | babel-helper-hoist-variables "^6.24.1" 343 | babel-runtime "^6.22.0" 344 | babel-traverse "^6.24.1" 345 | babel-types "^6.24.1" 346 | 347 | babel-helper-define-map@^6.24.1: 348 | version "6.24.1" 349 | resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz#7a9747f258d8947d32d515f6aa1c7bd02204a080" 350 | dependencies: 351 | babel-helper-function-name "^6.24.1" 352 | babel-runtime "^6.22.0" 353 | babel-types "^6.24.1" 354 | lodash "^4.2.0" 355 | 356 | babel-helper-explode-assignable-expression@^6.24.1: 357 | version "6.24.1" 358 | resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" 359 | dependencies: 360 | babel-runtime "^6.22.0" 361 | babel-traverse "^6.24.1" 362 | babel-types "^6.24.1" 363 | 364 | babel-helper-explode-class@^6.24.1: 365 | version "6.24.1" 366 | resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb" 367 | dependencies: 368 | babel-helper-bindify-decorators "^6.24.1" 369 | babel-runtime "^6.22.0" 370 | babel-traverse "^6.24.1" 371 | babel-types "^6.24.1" 372 | 373 | babel-helper-function-name@^6.24.1: 374 | version "6.24.1" 375 | resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" 376 | dependencies: 377 | babel-helper-get-function-arity "^6.24.1" 378 | babel-runtime "^6.22.0" 379 | babel-template "^6.24.1" 380 | babel-traverse "^6.24.1" 381 | babel-types "^6.24.1" 382 | 383 | babel-helper-get-function-arity@^6.24.1: 384 | version "6.24.1" 385 | resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" 386 | dependencies: 387 | babel-runtime "^6.22.0" 388 | babel-types "^6.24.1" 389 | 390 | babel-helper-hoist-variables@^6.24.1: 391 | version "6.24.1" 392 | resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" 393 | dependencies: 394 | babel-runtime "^6.22.0" 395 | babel-types "^6.24.1" 396 | 397 | babel-helper-optimise-call-expression@^6.24.1: 398 | version "6.24.1" 399 | resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" 400 | dependencies: 401 | babel-runtime "^6.22.0" 402 | babel-types "^6.24.1" 403 | 404 | babel-helper-regex@^6.24.1: 405 | version "6.24.1" 406 | resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz#d36e22fab1008d79d88648e32116868128456ce8" 407 | dependencies: 408 | babel-runtime "^6.22.0" 409 | babel-types "^6.24.1" 410 | lodash "^4.2.0" 411 | 412 | babel-helper-remap-async-to-generator@^6.24.1: 413 | version "6.24.1" 414 | resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" 415 | dependencies: 416 | babel-helper-function-name "^6.24.1" 417 | babel-runtime "^6.22.0" 418 | babel-template "^6.24.1" 419 | babel-traverse "^6.24.1" 420 | babel-types "^6.24.1" 421 | 422 | babel-helper-replace-supers@^6.24.1: 423 | version "6.24.1" 424 | resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" 425 | dependencies: 426 | babel-helper-optimise-call-expression "^6.24.1" 427 | babel-messages "^6.23.0" 428 | babel-runtime "^6.22.0" 429 | babel-template "^6.24.1" 430 | babel-traverse "^6.24.1" 431 | babel-types "^6.24.1" 432 | 433 | babel-helpers@^6.24.1: 434 | version "6.24.1" 435 | resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" 436 | dependencies: 437 | babel-runtime "^6.22.0" 438 | babel-template "^6.24.1" 439 | 440 | babel-messages@^6.23.0: 441 | version "6.23.0" 442 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" 443 | dependencies: 444 | babel-runtime "^6.22.0" 445 | 446 | babel-plugin-check-es2015-constants@^6.22.0: 447 | version "6.22.0" 448 | resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" 449 | dependencies: 450 | babel-runtime "^6.22.0" 451 | 452 | babel-plugin-istanbul@~4.1.3: 453 | version "4.1.4" 454 | resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.4.tgz#18dde84bf3ce329fddf3f4103fae921456d8e587" 455 | dependencies: 456 | find-up "^2.1.0" 457 | istanbul-lib-instrument "^1.7.2" 458 | test-exclude "^4.1.1" 459 | 460 | babel-plugin-syntax-async-functions@^6.8.0: 461 | version "6.13.0" 462 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" 463 | 464 | babel-plugin-syntax-async-generators@^6.5.0: 465 | version "6.13.0" 466 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" 467 | 468 | babel-plugin-syntax-class-constructor-call@^6.18.0: 469 | version "6.18.0" 470 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" 471 | 472 | babel-plugin-syntax-class-properties@^6.8.0: 473 | version "6.13.0" 474 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" 475 | 476 | babel-plugin-syntax-decorators@^6.13.0: 477 | version "6.13.0" 478 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" 479 | 480 | babel-plugin-syntax-do-expressions@^6.8.0: 481 | version "6.13.0" 482 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz#5747756139aa26d390d09410b03744ba07e4796d" 483 | 484 | babel-plugin-syntax-dynamic-import@^6.18.0: 485 | version "6.18.0" 486 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" 487 | 488 | babel-plugin-syntax-exponentiation-operator@^6.8.0: 489 | version "6.13.0" 490 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" 491 | 492 | babel-plugin-syntax-export-extensions@^6.8.0: 493 | version "6.13.0" 494 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" 495 | 496 | babel-plugin-syntax-flow@^6.18.0: 497 | version "6.18.0" 498 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" 499 | 500 | babel-plugin-syntax-function-bind@^6.8.0: 501 | version "6.13.0" 502 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46" 503 | 504 | babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: 505 | version "6.18.0" 506 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" 507 | 508 | babel-plugin-syntax-object-rest-spread@^6.8.0: 509 | version "6.13.0" 510 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" 511 | 512 | babel-plugin-syntax-trailing-function-commas@^6.22.0: 513 | version "6.22.0" 514 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" 515 | 516 | babel-plugin-transform-async-generator-functions@^6.24.1: 517 | version "6.24.1" 518 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db" 519 | dependencies: 520 | babel-helper-remap-async-to-generator "^6.24.1" 521 | babel-plugin-syntax-async-generators "^6.5.0" 522 | babel-runtime "^6.22.0" 523 | 524 | babel-plugin-transform-async-to-generator@^6.24.1: 525 | version "6.24.1" 526 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" 527 | dependencies: 528 | babel-helper-remap-async-to-generator "^6.24.1" 529 | babel-plugin-syntax-async-functions "^6.8.0" 530 | babel-runtime "^6.22.0" 531 | 532 | babel-plugin-transform-class-constructor-call@^6.24.1: 533 | version "6.24.1" 534 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9" 535 | dependencies: 536 | babel-plugin-syntax-class-constructor-call "^6.18.0" 537 | babel-runtime "^6.22.0" 538 | babel-template "^6.24.1" 539 | 540 | babel-plugin-transform-class-properties@^6.24.1: 541 | version "6.24.1" 542 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" 543 | dependencies: 544 | babel-helper-function-name "^6.24.1" 545 | babel-plugin-syntax-class-properties "^6.8.0" 546 | babel-runtime "^6.22.0" 547 | babel-template "^6.24.1" 548 | 549 | babel-plugin-transform-decorators@^6.24.1: 550 | version "6.24.1" 551 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d" 552 | dependencies: 553 | babel-helper-explode-class "^6.24.1" 554 | babel-plugin-syntax-decorators "^6.13.0" 555 | babel-runtime "^6.22.0" 556 | babel-template "^6.24.1" 557 | babel-types "^6.24.1" 558 | 559 | babel-plugin-transform-do-expressions@^6.22.0: 560 | version "6.22.0" 561 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz#28ccaf92812d949c2cd1281f690c8fdc468ae9bb" 562 | dependencies: 563 | babel-plugin-syntax-do-expressions "^6.8.0" 564 | babel-runtime "^6.22.0" 565 | 566 | babel-plugin-transform-es2015-arrow-functions@^6.22.0: 567 | version "6.22.0" 568 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" 569 | dependencies: 570 | babel-runtime "^6.22.0" 571 | 572 | babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: 573 | version "6.22.0" 574 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" 575 | dependencies: 576 | babel-runtime "^6.22.0" 577 | 578 | babel-plugin-transform-es2015-block-scoping@^6.24.1: 579 | version "6.24.1" 580 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz#76c295dc3a4741b1665adfd3167215dcff32a576" 581 | dependencies: 582 | babel-runtime "^6.22.0" 583 | babel-template "^6.24.1" 584 | babel-traverse "^6.24.1" 585 | babel-types "^6.24.1" 586 | lodash "^4.2.0" 587 | 588 | babel-plugin-transform-es2015-classes@^6.24.1: 589 | version "6.24.1" 590 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" 591 | dependencies: 592 | babel-helper-define-map "^6.24.1" 593 | babel-helper-function-name "^6.24.1" 594 | babel-helper-optimise-call-expression "^6.24.1" 595 | babel-helper-replace-supers "^6.24.1" 596 | babel-messages "^6.23.0" 597 | babel-runtime "^6.22.0" 598 | babel-template "^6.24.1" 599 | babel-traverse "^6.24.1" 600 | babel-types "^6.24.1" 601 | 602 | babel-plugin-transform-es2015-computed-properties@^6.24.1: 603 | version "6.24.1" 604 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" 605 | dependencies: 606 | babel-runtime "^6.22.0" 607 | babel-template "^6.24.1" 608 | 609 | babel-plugin-transform-es2015-destructuring@^6.22.0: 610 | version "6.23.0" 611 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" 612 | dependencies: 613 | babel-runtime "^6.22.0" 614 | 615 | babel-plugin-transform-es2015-duplicate-keys@^6.24.1: 616 | version "6.24.1" 617 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" 618 | dependencies: 619 | babel-runtime "^6.22.0" 620 | babel-types "^6.24.1" 621 | 622 | babel-plugin-transform-es2015-for-of@^6.22.0: 623 | version "6.23.0" 624 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" 625 | dependencies: 626 | babel-runtime "^6.22.0" 627 | 628 | babel-plugin-transform-es2015-function-name@^6.24.1: 629 | version "6.24.1" 630 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" 631 | dependencies: 632 | babel-helper-function-name "^6.24.1" 633 | babel-runtime "^6.22.0" 634 | babel-types "^6.24.1" 635 | 636 | babel-plugin-transform-es2015-literals@^6.22.0: 637 | version "6.22.0" 638 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" 639 | dependencies: 640 | babel-runtime "^6.22.0" 641 | 642 | babel-plugin-transform-es2015-modules-amd@^6.24.1: 643 | version "6.24.1" 644 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" 645 | dependencies: 646 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1" 647 | babel-runtime "^6.22.0" 648 | babel-template "^6.24.1" 649 | 650 | babel-plugin-transform-es2015-modules-commonjs@^6.24.1: 651 | version "6.24.1" 652 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz#d3e310b40ef664a36622200097c6d440298f2bfe" 653 | dependencies: 654 | babel-plugin-transform-strict-mode "^6.24.1" 655 | babel-runtime "^6.22.0" 656 | babel-template "^6.24.1" 657 | babel-types "^6.24.1" 658 | 659 | babel-plugin-transform-es2015-modules-systemjs@^6.24.1: 660 | version "6.24.1" 661 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" 662 | dependencies: 663 | babel-helper-hoist-variables "^6.24.1" 664 | babel-runtime "^6.22.0" 665 | babel-template "^6.24.1" 666 | 667 | babel-plugin-transform-es2015-modules-umd@^6.24.1: 668 | version "6.24.1" 669 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" 670 | dependencies: 671 | babel-plugin-transform-es2015-modules-amd "^6.24.1" 672 | babel-runtime "^6.22.0" 673 | babel-template "^6.24.1" 674 | 675 | babel-plugin-transform-es2015-object-super@^6.24.1: 676 | version "6.24.1" 677 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" 678 | dependencies: 679 | babel-helper-replace-supers "^6.24.1" 680 | babel-runtime "^6.22.0" 681 | 682 | babel-plugin-transform-es2015-parameters@^6.24.1: 683 | version "6.24.1" 684 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" 685 | dependencies: 686 | babel-helper-call-delegate "^6.24.1" 687 | babel-helper-get-function-arity "^6.24.1" 688 | babel-runtime "^6.22.0" 689 | babel-template "^6.24.1" 690 | babel-traverse "^6.24.1" 691 | babel-types "^6.24.1" 692 | 693 | babel-plugin-transform-es2015-shorthand-properties@^6.24.1: 694 | version "6.24.1" 695 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" 696 | dependencies: 697 | babel-runtime "^6.22.0" 698 | babel-types "^6.24.1" 699 | 700 | babel-plugin-transform-es2015-spread@^6.22.0: 701 | version "6.22.0" 702 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" 703 | dependencies: 704 | babel-runtime "^6.22.0" 705 | 706 | babel-plugin-transform-es2015-sticky-regex@^6.24.1: 707 | version "6.24.1" 708 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" 709 | dependencies: 710 | babel-helper-regex "^6.24.1" 711 | babel-runtime "^6.22.0" 712 | babel-types "^6.24.1" 713 | 714 | babel-plugin-transform-es2015-template-literals@^6.22.0: 715 | version "6.22.0" 716 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" 717 | dependencies: 718 | babel-runtime "^6.22.0" 719 | 720 | babel-plugin-transform-es2015-typeof-symbol@^6.22.0: 721 | version "6.23.0" 722 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" 723 | dependencies: 724 | babel-runtime "^6.22.0" 725 | 726 | babel-plugin-transform-es2015-unicode-regex@^6.24.1: 727 | version "6.24.1" 728 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" 729 | dependencies: 730 | babel-helper-regex "^6.24.1" 731 | babel-runtime "^6.22.0" 732 | regexpu-core "^2.0.0" 733 | 734 | babel-plugin-transform-exponentiation-operator@^6.24.1: 735 | version "6.24.1" 736 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" 737 | dependencies: 738 | babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" 739 | babel-plugin-syntax-exponentiation-operator "^6.8.0" 740 | babel-runtime "^6.22.0" 741 | 742 | babel-plugin-transform-export-extensions@^6.22.0: 743 | version "6.22.0" 744 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" 745 | dependencies: 746 | babel-plugin-syntax-export-extensions "^6.8.0" 747 | babel-runtime "^6.22.0" 748 | 749 | babel-plugin-transform-flow-strip-types@^6.22.0: 750 | version "6.22.0" 751 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" 752 | dependencies: 753 | babel-plugin-syntax-flow "^6.18.0" 754 | babel-runtime "^6.22.0" 755 | 756 | babel-plugin-transform-function-bind@^6.22.0: 757 | version "6.22.0" 758 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz#c6fb8e96ac296a310b8cf8ea401462407ddf6a97" 759 | dependencies: 760 | babel-plugin-syntax-function-bind "^6.8.0" 761 | babel-runtime "^6.22.0" 762 | 763 | babel-plugin-transform-object-rest-spread@^6.22.0: 764 | version "6.23.0" 765 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz#875d6bc9be761c58a2ae3feee5dc4895d8c7f921" 766 | dependencies: 767 | babel-plugin-syntax-object-rest-spread "^6.8.0" 768 | babel-runtime "^6.22.0" 769 | 770 | babel-plugin-transform-react-display-name@^6.23.0: 771 | version "6.25.0" 772 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" 773 | dependencies: 774 | babel-runtime "^6.22.0" 775 | 776 | babel-plugin-transform-react-jsx-self@^6.22.0: 777 | version "6.22.0" 778 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" 779 | dependencies: 780 | babel-plugin-syntax-jsx "^6.8.0" 781 | babel-runtime "^6.22.0" 782 | 783 | babel-plugin-transform-react-jsx-source@^6.22.0: 784 | version "6.22.0" 785 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" 786 | dependencies: 787 | babel-plugin-syntax-jsx "^6.8.0" 788 | babel-runtime "^6.22.0" 789 | 790 | babel-plugin-transform-react-jsx@^6.24.1: 791 | version "6.24.1" 792 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" 793 | dependencies: 794 | babel-helper-builder-react-jsx "^6.24.1" 795 | babel-plugin-syntax-jsx "^6.8.0" 796 | babel-runtime "^6.22.0" 797 | 798 | babel-plugin-transform-regenerator@^6.24.1: 799 | version "6.24.1" 800 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz#b8da305ad43c3c99b4848e4fe4037b770d23c418" 801 | dependencies: 802 | regenerator-transform "0.9.11" 803 | 804 | babel-plugin-transform-runtime@~6.23.0: 805 | version "6.23.0" 806 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" 807 | dependencies: 808 | babel-runtime "^6.22.0" 809 | 810 | babel-plugin-transform-strict-mode@^6.24.1: 811 | version "6.24.1" 812 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" 813 | dependencies: 814 | babel-runtime "^6.22.0" 815 | babel-types "^6.24.1" 816 | 817 | babel-polyfill@^6.23.0: 818 | version "6.23.0" 819 | resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" 820 | dependencies: 821 | babel-runtime "^6.22.0" 822 | core-js "^2.4.0" 823 | regenerator-runtime "^0.10.0" 824 | 825 | babel-preset-es2015@~6.24.1: 826 | version "6.24.1" 827 | resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" 828 | dependencies: 829 | babel-plugin-check-es2015-constants "^6.22.0" 830 | babel-plugin-transform-es2015-arrow-functions "^6.22.0" 831 | babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" 832 | babel-plugin-transform-es2015-block-scoping "^6.24.1" 833 | babel-plugin-transform-es2015-classes "^6.24.1" 834 | babel-plugin-transform-es2015-computed-properties "^6.24.1" 835 | babel-plugin-transform-es2015-destructuring "^6.22.0" 836 | babel-plugin-transform-es2015-duplicate-keys "^6.24.1" 837 | babel-plugin-transform-es2015-for-of "^6.22.0" 838 | babel-plugin-transform-es2015-function-name "^6.24.1" 839 | babel-plugin-transform-es2015-literals "^6.22.0" 840 | babel-plugin-transform-es2015-modules-amd "^6.24.1" 841 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1" 842 | babel-plugin-transform-es2015-modules-systemjs "^6.24.1" 843 | babel-plugin-transform-es2015-modules-umd "^6.24.1" 844 | babel-plugin-transform-es2015-object-super "^6.24.1" 845 | babel-plugin-transform-es2015-parameters "^6.24.1" 846 | babel-plugin-transform-es2015-shorthand-properties "^6.24.1" 847 | babel-plugin-transform-es2015-spread "^6.22.0" 848 | babel-plugin-transform-es2015-sticky-regex "^6.24.1" 849 | babel-plugin-transform-es2015-template-literals "^6.22.0" 850 | babel-plugin-transform-es2015-typeof-symbol "^6.22.0" 851 | babel-plugin-transform-es2015-unicode-regex "^6.24.1" 852 | babel-plugin-transform-regenerator "^6.24.1" 853 | 854 | babel-preset-flow@^6.23.0: 855 | version "6.23.0" 856 | resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" 857 | dependencies: 858 | babel-plugin-transform-flow-strip-types "^6.22.0" 859 | 860 | babel-preset-react@~6.24.1: 861 | version "6.24.1" 862 | resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" 863 | dependencies: 864 | babel-plugin-syntax-jsx "^6.3.13" 865 | babel-plugin-transform-react-display-name "^6.23.0" 866 | babel-plugin-transform-react-jsx "^6.24.1" 867 | babel-plugin-transform-react-jsx-self "^6.22.0" 868 | babel-plugin-transform-react-jsx-source "^6.22.0" 869 | babel-preset-flow "^6.23.0" 870 | 871 | babel-preset-stage-0@~6.24.1: 872 | version "6.24.1" 873 | resolved "https://registry.yarnpkg.com/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz#5642d15042f91384d7e5af8bc88b1db95b039e6a" 874 | dependencies: 875 | babel-plugin-transform-do-expressions "^6.22.0" 876 | babel-plugin-transform-function-bind "^6.22.0" 877 | babel-preset-stage-1 "^6.24.1" 878 | 879 | babel-preset-stage-1@^6.24.1: 880 | version "6.24.1" 881 | resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0" 882 | dependencies: 883 | babel-plugin-transform-class-constructor-call "^6.24.1" 884 | babel-plugin-transform-export-extensions "^6.22.0" 885 | babel-preset-stage-2 "^6.24.1" 886 | 887 | babel-preset-stage-2@^6.24.1: 888 | version "6.24.1" 889 | resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" 890 | dependencies: 891 | babel-plugin-syntax-dynamic-import "^6.18.0" 892 | babel-plugin-transform-class-properties "^6.24.1" 893 | babel-plugin-transform-decorators "^6.24.1" 894 | babel-preset-stage-3 "^6.24.1" 895 | 896 | babel-preset-stage-3@^6.24.1: 897 | version "6.24.1" 898 | resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395" 899 | dependencies: 900 | babel-plugin-syntax-trailing-function-commas "^6.22.0" 901 | babel-plugin-transform-async-generator-functions "^6.24.1" 902 | babel-plugin-transform-async-to-generator "^6.24.1" 903 | babel-plugin-transform-exponentiation-operator "^6.24.1" 904 | babel-plugin-transform-object-rest-spread "^6.22.0" 905 | 906 | babel-register@^6.24.1: 907 | version "6.24.1" 908 | resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f" 909 | dependencies: 910 | babel-core "^6.24.1" 911 | babel-runtime "^6.22.0" 912 | core-js "^2.4.0" 913 | home-or-tmp "^2.0.0" 914 | lodash "^4.2.0" 915 | mkdirp "^0.5.1" 916 | source-map-support "^0.4.2" 917 | 918 | babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0: 919 | version "6.23.0" 920 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" 921 | dependencies: 922 | core-js "^2.4.0" 923 | regenerator-runtime "^0.10.0" 924 | 925 | babel-runtime@~6.18.0: 926 | version "6.18.0" 927 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.18.0.tgz#0f4177ffd98492ef13b9f823e9994a02584c9078" 928 | dependencies: 929 | core-js "^2.4.0" 930 | regenerator-runtime "^0.9.5" 931 | 932 | babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.25.0: 933 | version "6.25.0" 934 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.25.0.tgz#665241166b7c2aa4c619d71e192969552b10c071" 935 | dependencies: 936 | babel-runtime "^6.22.0" 937 | babel-traverse "^6.25.0" 938 | babel-types "^6.25.0" 939 | babylon "^6.17.2" 940 | lodash "^4.2.0" 941 | 942 | babel-traverse@^6.18.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.25.0: 943 | version "6.25.0" 944 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.25.0.tgz#2257497e2fcd19b89edc13c4c91381f9512496f1" 945 | dependencies: 946 | babel-code-frame "^6.22.0" 947 | babel-messages "^6.23.0" 948 | babel-runtime "^6.22.0" 949 | babel-types "^6.25.0" 950 | babylon "^6.17.2" 951 | debug "^2.2.0" 952 | globals "^9.0.0" 953 | invariant "^2.2.0" 954 | lodash "^4.2.0" 955 | 956 | babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.25.0: 957 | version "6.25.0" 958 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.25.0.tgz#70afb248d5660e5d18f811d91c8303b54134a18e" 959 | dependencies: 960 | babel-runtime "^6.22.0" 961 | esutils "^2.0.2" 962 | lodash "^4.2.0" 963 | to-fast-properties "^1.0.1" 964 | 965 | babylon@^6.17.0, babylon@^6.17.2, babylon@^6.17.4: 966 | version "6.17.4" 967 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.4.tgz#3e8b7402b88d22c3423e137a1577883b15ff869a" 968 | 969 | balanced-match@^1.0.0: 970 | version "1.0.0" 971 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 972 | 973 | bcrypt-pbkdf@^1.0.0: 974 | version "1.0.1" 975 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 976 | dependencies: 977 | tweetnacl "^0.14.3" 978 | 979 | binary-extensions@^1.0.0: 980 | version "1.8.0" 981 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" 982 | 983 | block-stream@*: 984 | version "0.0.9" 985 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" 986 | dependencies: 987 | inherits "~2.0.0" 988 | 989 | boolbase@~1.0.0: 990 | version "1.0.0" 991 | resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" 992 | 993 | boom@2.x.x: 994 | version "2.10.1" 995 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" 996 | dependencies: 997 | hoek "2.x.x" 998 | 999 | bowser@^1.6.0: 1000 | version "1.7.0" 1001 | resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.7.0.tgz#169de4018711f994242bff9a8009e77a1f35e003" 1002 | 1003 | brace-expansion@^1.1.7: 1004 | version "1.1.8" 1005 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" 1006 | dependencies: 1007 | balanced-match "^1.0.0" 1008 | concat-map "0.0.1" 1009 | 1010 | braces@^1.8.2: 1011 | version "1.8.5" 1012 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 1013 | dependencies: 1014 | expand-range "^1.8.1" 1015 | preserve "^0.2.0" 1016 | repeat-element "^1.1.2" 1017 | 1018 | browser-stdout@1.3.0: 1019 | version "1.3.0" 1020 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" 1021 | 1022 | builtin-modules@^1.0.0, builtin-modules@^1.1.1: 1023 | version "1.1.1" 1024 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 1025 | 1026 | caching-transform@^1.0.0: 1027 | version "1.0.1" 1028 | resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1" 1029 | dependencies: 1030 | md5-hex "^1.2.0" 1031 | mkdirp "^0.5.1" 1032 | write-file-atomic "^1.1.4" 1033 | 1034 | caller-path@^0.1.0: 1035 | version "0.1.0" 1036 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 1037 | dependencies: 1038 | callsites "^0.2.0" 1039 | 1040 | callsites@^0.2.0: 1041 | version "0.2.0" 1042 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 1043 | 1044 | camelcase@^1.0.2: 1045 | version "1.2.1" 1046 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" 1047 | 1048 | camelcase@^3.0.0: 1049 | version "3.0.0" 1050 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" 1051 | 1052 | camelcase@^4.1.0: 1053 | version "4.1.0" 1054 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 1055 | 1056 | caseless@~0.12.0: 1057 | version "0.12.0" 1058 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 1059 | 1060 | center-align@^0.1.1: 1061 | version "0.1.3" 1062 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" 1063 | dependencies: 1064 | align-text "^0.1.3" 1065 | lazy-cache "^1.0.3" 1066 | 1067 | chain-function@^1.0.0: 1068 | version "1.0.0" 1069 | resolved "https://registry.yarnpkg.com/chain-function/-/chain-function-1.0.0.tgz#0d4ab37e7e18ead0bdc47b920764118ce58733dc" 1070 | 1071 | chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: 1072 | version "1.1.3" 1073 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 1074 | dependencies: 1075 | ansi-styles "^2.2.1" 1076 | escape-string-regexp "^1.0.2" 1077 | has-ansi "^2.0.0" 1078 | strip-ansi "^3.0.0" 1079 | supports-color "^2.0.0" 1080 | 1081 | chalk@^2.0.0: 1082 | version "2.0.1" 1083 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.0.1.tgz#dbec49436d2ae15f536114e76d14656cdbc0f44d" 1084 | dependencies: 1085 | ansi-styles "^3.1.0" 1086 | escape-string-regexp "^1.0.5" 1087 | supports-color "^4.0.0" 1088 | 1089 | change-emitter@^0.1.2: 1090 | version "0.1.6" 1091 | resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515" 1092 | 1093 | cheerio@^0.22.0: 1094 | version "0.22.0" 1095 | resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" 1096 | dependencies: 1097 | css-select "~1.2.0" 1098 | dom-serializer "~0.1.0" 1099 | entities "~1.1.1" 1100 | htmlparser2 "^3.9.1" 1101 | lodash.assignin "^4.0.9" 1102 | lodash.bind "^4.1.4" 1103 | lodash.defaults "^4.0.1" 1104 | lodash.filter "^4.4.0" 1105 | lodash.flatten "^4.2.0" 1106 | lodash.foreach "^4.3.0" 1107 | lodash.map "^4.4.0" 1108 | lodash.merge "^4.4.0" 1109 | lodash.pick "^4.2.1" 1110 | lodash.reduce "^4.4.0" 1111 | lodash.reject "^4.4.0" 1112 | lodash.some "^4.4.0" 1113 | 1114 | chokidar@^1.6.1: 1115 | version "1.7.0" 1116 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" 1117 | dependencies: 1118 | anymatch "^1.3.0" 1119 | async-each "^1.0.0" 1120 | glob-parent "^2.0.0" 1121 | inherits "^2.0.1" 1122 | is-binary-path "^1.0.0" 1123 | is-glob "^2.0.0" 1124 | path-is-absolute "^1.0.0" 1125 | readdirp "^2.0.0" 1126 | optionalDependencies: 1127 | fsevents "^1.0.0" 1128 | 1129 | ci-info@^1.0.0: 1130 | version "1.0.0" 1131 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534" 1132 | 1133 | circular-json@^0.3.1: 1134 | version "0.3.1" 1135 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" 1136 | 1137 | cli-cursor@^1.0.2: 1138 | version "1.0.2" 1139 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" 1140 | dependencies: 1141 | restore-cursor "^1.0.1" 1142 | 1143 | cli-cursor@^2.1.0: 1144 | version "2.1.0" 1145 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 1146 | dependencies: 1147 | restore-cursor "^2.0.0" 1148 | 1149 | cli-spinners@^0.1.2: 1150 | version "0.1.2" 1151 | resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" 1152 | 1153 | cli-truncate@^0.2.1: 1154 | version "0.2.1" 1155 | resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" 1156 | dependencies: 1157 | slice-ansi "0.0.4" 1158 | string-width "^1.0.1" 1159 | 1160 | cli-width@^2.0.0: 1161 | version "2.1.0" 1162 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" 1163 | 1164 | cliui@^2.1.0: 1165 | version "2.1.0" 1166 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" 1167 | dependencies: 1168 | center-align "^0.1.1" 1169 | right-align "^0.1.1" 1170 | wordwrap "0.0.2" 1171 | 1172 | cliui@^3.2.0: 1173 | version "3.2.0" 1174 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" 1175 | dependencies: 1176 | string-width "^1.0.1" 1177 | strip-ansi "^3.0.1" 1178 | wrap-ansi "^2.0.0" 1179 | 1180 | clone@~0.1.11: 1181 | version "0.1.19" 1182 | resolved "https://registry.yarnpkg.com/clone/-/clone-0.1.19.tgz#613fb68639b26a494ac53253e15b1a6bd88ada85" 1183 | 1184 | co@^4.6.0: 1185 | version "4.6.0" 1186 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 1187 | 1188 | code-point-at@^1.0.0: 1189 | version "1.1.0" 1190 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 1191 | 1192 | color-convert@^1.0.0: 1193 | version "1.9.0" 1194 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" 1195 | dependencies: 1196 | color-name "^1.1.1" 1197 | 1198 | color-name@^1.1.1: 1199 | version "1.1.2" 1200 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.2.tgz#5c8ab72b64bd2215d617ae9559ebb148475cf98d" 1201 | 1202 | combined-stream@^1.0.5, combined-stream@~1.0.5: 1203 | version "1.0.5" 1204 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" 1205 | dependencies: 1206 | delayed-stream "~1.0.0" 1207 | 1208 | commander@2.9.0: 1209 | version "2.9.0" 1210 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" 1211 | dependencies: 1212 | graceful-readlink ">= 1.0.0" 1213 | 1214 | commander@^2.8.1, commander@^2.9.0: 1215 | version "2.11.0" 1216 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" 1217 | 1218 | commondir@^1.0.1: 1219 | version "1.0.1" 1220 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 1221 | 1222 | concat-map@0.0.1: 1223 | version "0.0.1" 1224 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 1225 | 1226 | concat-stream@^1.6.0: 1227 | version "1.6.0" 1228 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" 1229 | dependencies: 1230 | inherits "^2.0.3" 1231 | readable-stream "^2.2.2" 1232 | typedarray "^0.0.6" 1233 | 1234 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 1235 | version "1.1.0" 1236 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 1237 | 1238 | contains-path@^0.1.0: 1239 | version "0.1.0" 1240 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" 1241 | 1242 | convert-source-map@^1.1.0, convert-source-map@^1.3.0: 1243 | version "1.5.0" 1244 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" 1245 | 1246 | core-js@^1.0.0: 1247 | version "1.2.7" 1248 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" 1249 | 1250 | core-js@^2.4.0: 1251 | version "2.4.1" 1252 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" 1253 | 1254 | core-util-is@~1.0.0: 1255 | version "1.0.2" 1256 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 1257 | 1258 | cosmiconfig@^1.1.0: 1259 | version "1.1.0" 1260 | resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-1.1.0.tgz#0dea0f9804efdfb929fbb1b188e25553ea053d37" 1261 | dependencies: 1262 | graceful-fs "^4.1.2" 1263 | js-yaml "^3.4.3" 1264 | minimist "^1.2.0" 1265 | object-assign "^4.0.1" 1266 | os-homedir "^1.0.1" 1267 | parse-json "^2.2.0" 1268 | pinkie-promise "^2.0.0" 1269 | require-from-string "^1.1.0" 1270 | 1271 | create-react-class@^15.5.3: 1272 | version "15.6.0" 1273 | resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.0.tgz#ab448497c26566e1e29413e883207d57cfe7bed4" 1274 | dependencies: 1275 | fbjs "^0.8.9" 1276 | loose-envify "^1.3.1" 1277 | object-assign "^4.1.1" 1278 | 1279 | cross-spawn@^4, cross-spawn@^4.0.0: 1280 | version "4.0.2" 1281 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" 1282 | dependencies: 1283 | lru-cache "^4.0.1" 1284 | which "^1.2.9" 1285 | 1286 | cross-spawn@^5.0.1: 1287 | version "5.1.0" 1288 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 1289 | dependencies: 1290 | lru-cache "^4.0.1" 1291 | shebang-command "^1.2.0" 1292 | which "^1.2.9" 1293 | 1294 | cryptiles@2.x.x: 1295 | version "2.0.5" 1296 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" 1297 | dependencies: 1298 | boom "2.x.x" 1299 | 1300 | css-in-js-utils@^1.0.3: 1301 | version "1.0.3" 1302 | resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-1.0.3.tgz#9ac7e02f763cf85d94017666565ed68a5b5f3215" 1303 | dependencies: 1304 | hyphenate-style-name "^1.0.2" 1305 | 1306 | css-select@~1.2.0: 1307 | version "1.2.0" 1308 | resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" 1309 | dependencies: 1310 | boolbase "~1.0.0" 1311 | css-what "2.1" 1312 | domutils "1.5.1" 1313 | nth-check "~1.0.1" 1314 | 1315 | css-what@2.1: 1316 | version "2.1.0" 1317 | resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" 1318 | 1319 | damerau-levenshtein@^1.0.0: 1320 | version "1.0.4" 1321 | resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514" 1322 | 1323 | dashdash@^1.12.0: 1324 | version "1.14.1" 1325 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 1326 | dependencies: 1327 | assert-plus "^1.0.0" 1328 | 1329 | date-fns@^1.27.2: 1330 | version "1.28.5" 1331 | resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.5.tgz#257cfc45d322df45ef5658665967ee841cd73faf" 1332 | 1333 | debug-log@^1.0.1: 1334 | version "1.0.1" 1335 | resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" 1336 | 1337 | debug@2.6.0: 1338 | version "2.6.0" 1339 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b" 1340 | dependencies: 1341 | ms "0.7.2" 1342 | 1343 | debug@^2.1.1, debug@^2.2.0, debug@^2.6.3, debug@^2.6.8: 1344 | version "2.6.8" 1345 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" 1346 | dependencies: 1347 | ms "2.0.0" 1348 | 1349 | decamelize@^1.0.0, decamelize@^1.1.1: 1350 | version "1.2.0" 1351 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 1352 | 1353 | deep-equal@^1.0.1: 1354 | version "1.0.1" 1355 | resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" 1356 | 1357 | deep-extend@~0.4.0: 1358 | version "0.4.2" 1359 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" 1360 | 1361 | deep-is@~0.1.3: 1362 | version "0.1.3" 1363 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 1364 | 1365 | default-require-extensions@^1.0.0: 1366 | version "1.0.0" 1367 | resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" 1368 | dependencies: 1369 | strip-bom "^2.0.0" 1370 | 1371 | define-properties@^1.1.2, define-properties@~1.1.2: 1372 | version "1.1.2" 1373 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" 1374 | dependencies: 1375 | foreach "^2.0.5" 1376 | object-keys "^1.0.8" 1377 | 1378 | del@^2.0.2: 1379 | version "2.2.2" 1380 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" 1381 | dependencies: 1382 | globby "^5.0.0" 1383 | is-path-cwd "^1.0.0" 1384 | is-path-in-cwd "^1.0.0" 1385 | object-assign "^4.0.1" 1386 | pify "^2.0.0" 1387 | pinkie-promise "^2.0.0" 1388 | rimraf "^2.2.8" 1389 | 1390 | delayed-stream@~1.0.0: 1391 | version "1.0.0" 1392 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 1393 | 1394 | delegates@^1.0.0: 1395 | version "1.0.0" 1396 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 1397 | 1398 | detect-indent@^4.0.0: 1399 | version "4.0.0" 1400 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" 1401 | dependencies: 1402 | repeating "^2.0.0" 1403 | 1404 | diff@3.2.0: 1405 | version "3.2.0" 1406 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" 1407 | 1408 | doctrine@1.5.0: 1409 | version "1.5.0" 1410 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 1411 | dependencies: 1412 | esutils "^2.0.2" 1413 | isarray "^1.0.0" 1414 | 1415 | doctrine@^2.0.0: 1416 | version "2.0.0" 1417 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" 1418 | dependencies: 1419 | esutils "^2.0.2" 1420 | isarray "^1.0.0" 1421 | 1422 | dom-helpers@^3.2.0: 1423 | version "3.2.1" 1424 | resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.2.1.tgz#3203e07fed217bd1f424b019735582fc37b2825a" 1425 | 1426 | dom-serializer@0, dom-serializer@~0.1.0: 1427 | version "0.1.0" 1428 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" 1429 | dependencies: 1430 | domelementtype "~1.1.1" 1431 | entities "~1.1.1" 1432 | 1433 | domelementtype@1, domelementtype@^1.3.0: 1434 | version "1.3.0" 1435 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" 1436 | 1437 | domelementtype@~1.1.1: 1438 | version "1.1.3" 1439 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" 1440 | 1441 | domhandler@^2.3.0: 1442 | version "2.4.1" 1443 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259" 1444 | dependencies: 1445 | domelementtype "1" 1446 | 1447 | domutils@1.5.1: 1448 | version "1.5.1" 1449 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" 1450 | dependencies: 1451 | dom-serializer "0" 1452 | domelementtype "1" 1453 | 1454 | domutils@^1.5.1: 1455 | version "1.6.2" 1456 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.6.2.tgz#1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff" 1457 | dependencies: 1458 | dom-serializer "0" 1459 | domelementtype "1" 1460 | 1461 | ecc-jsbn@~0.1.1: 1462 | version "0.1.1" 1463 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 1464 | dependencies: 1465 | jsbn "~0.1.0" 1466 | 1467 | elegant-spinner@^1.0.1: 1468 | version "1.0.1" 1469 | resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" 1470 | 1471 | emoji-regex@^6.1.0: 1472 | version "6.4.3" 1473 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.4.3.tgz#6ac2ac58d4b78def5e39b33fcbf395688af3076c" 1474 | 1475 | encoding@^0.1.11: 1476 | version "0.1.12" 1477 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 1478 | dependencies: 1479 | iconv-lite "~0.4.13" 1480 | 1481 | entities@^1.1.1, entities@~1.1.1: 1482 | version "1.1.1" 1483 | resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" 1484 | 1485 | enzyme@~2.9.1: 1486 | version "2.9.1" 1487 | resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-2.9.1.tgz#07d5ce691241240fb817bf2c4b18d6e530240df6" 1488 | dependencies: 1489 | cheerio "^0.22.0" 1490 | function.prototype.name "^1.0.0" 1491 | is-subset "^0.1.1" 1492 | lodash "^4.17.4" 1493 | object-is "^1.0.1" 1494 | object.assign "^4.0.4" 1495 | object.entries "^1.0.4" 1496 | object.values "^1.0.4" 1497 | prop-types "^15.5.10" 1498 | uuid "^3.0.1" 1499 | 1500 | error-ex@^1.2.0: 1501 | version "1.3.1" 1502 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" 1503 | dependencies: 1504 | is-arrayish "^0.2.1" 1505 | 1506 | es-abstract@^1.5.0, es-abstract@^1.6.1, es-abstract@^1.7.0: 1507 | version "1.7.0" 1508 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c" 1509 | dependencies: 1510 | es-to-primitive "^1.1.1" 1511 | function-bind "^1.1.0" 1512 | is-callable "^1.1.3" 1513 | is-regex "^1.0.3" 1514 | 1515 | es-to-primitive@^1.1.1: 1516 | version "1.1.1" 1517 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" 1518 | dependencies: 1519 | is-callable "^1.1.1" 1520 | is-date-object "^1.0.1" 1521 | is-symbol "^1.0.1" 1522 | 1523 | es6-error@^4.0.0: 1524 | version "4.0.2" 1525 | resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.0.2.tgz#eec5c726eacef51b7f6b73c20db6e1b13b069c98" 1526 | 1527 | escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 1528 | version "1.0.5" 1529 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1530 | 1531 | eslint-config-prettier@~2.3.0: 1532 | version "2.3.0" 1533 | resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.3.0.tgz#b75b1eabea0c8b97b34403647ee25db349b9d8a0" 1534 | dependencies: 1535 | get-stdin "^5.0.1" 1536 | 1537 | eslint-import-resolver-node@^0.3.1: 1538 | version "0.3.1" 1539 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz#4422574cde66a9a7b099938ee4d508a199e0e3cc" 1540 | dependencies: 1541 | debug "^2.6.8" 1542 | resolve "^1.2.0" 1543 | 1544 | eslint-module-utils@^2.1.1: 1545 | version "2.1.1" 1546 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449" 1547 | dependencies: 1548 | debug "^2.6.8" 1549 | pkg-dir "^1.0.0" 1550 | 1551 | eslint-plugin-import@~2.7.0: 1552 | version "2.7.0" 1553 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.7.0.tgz#21de33380b9efb55f5ef6d2e210ec0e07e7fa69f" 1554 | dependencies: 1555 | builtin-modules "^1.1.1" 1556 | contains-path "^0.1.0" 1557 | debug "^2.6.8" 1558 | doctrine "1.5.0" 1559 | eslint-import-resolver-node "^0.3.1" 1560 | eslint-module-utils "^2.1.1" 1561 | has "^1.0.1" 1562 | lodash.cond "^4.3.0" 1563 | minimatch "^3.0.3" 1564 | read-pkg-up "^2.0.0" 1565 | 1566 | eslint-plugin-jsx-a11y@~6.0.2: 1567 | version "6.0.2" 1568 | resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.0.2.tgz#659277a758b036c305a7e4a13057c301cd3be73f" 1569 | dependencies: 1570 | aria-query "^0.7.0" 1571 | array-includes "^3.0.3" 1572 | ast-types-flow "0.0.7" 1573 | axobject-query "^0.1.0" 1574 | damerau-levenshtein "^1.0.0" 1575 | emoji-regex "^6.1.0" 1576 | jsx-ast-utils "^1.4.0" 1577 | 1578 | eslint-plugin-mocha@~4.11.0: 1579 | version "4.11.0" 1580 | resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-4.11.0.tgz#91193a2f55e20a5e35974054a0089d30198ee578" 1581 | dependencies: 1582 | ramda "^0.24.1" 1583 | 1584 | eslint-plugin-prettier@~2.1.2: 1585 | version "2.1.2" 1586 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.1.2.tgz#4b90f4ee7f92bfbe2e926017e1ca40eb628965ea" 1587 | dependencies: 1588 | fast-diff "^1.1.1" 1589 | jest-docblock "^20.0.1" 1590 | 1591 | eslint-plugin-react@~7.1.0: 1592 | version "7.1.0" 1593 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.1.0.tgz#27770acf39f5fd49cd0af4083ce58104eb390d4c" 1594 | dependencies: 1595 | doctrine "^2.0.0" 1596 | has "^1.0.1" 1597 | jsx-ast-utils "^1.4.1" 1598 | 1599 | eslint-scope@^3.7.1: 1600 | version "3.7.1" 1601 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" 1602 | dependencies: 1603 | esrecurse "^4.1.0" 1604 | estraverse "^4.1.1" 1605 | 1606 | eslint@~4.2.0: 1607 | version "4.2.0" 1608 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.2.0.tgz#a2b3184111b198e02e9c7f3cca625a5e01c56b3d" 1609 | dependencies: 1610 | ajv "^5.2.0" 1611 | babel-code-frame "^6.22.0" 1612 | chalk "^1.1.3" 1613 | concat-stream "^1.6.0" 1614 | debug "^2.6.8" 1615 | doctrine "^2.0.0" 1616 | eslint-scope "^3.7.1" 1617 | espree "^3.4.3" 1618 | esquery "^1.0.0" 1619 | estraverse "^4.2.0" 1620 | esutils "^2.0.2" 1621 | file-entry-cache "^2.0.0" 1622 | glob "^7.1.2" 1623 | globals "^9.17.0" 1624 | ignore "^3.3.3" 1625 | imurmurhash "^0.1.4" 1626 | inquirer "^3.0.6" 1627 | is-resolvable "^1.0.0" 1628 | js-yaml "^3.8.4" 1629 | json-stable-stringify "^1.0.1" 1630 | levn "^0.3.0" 1631 | lodash "^4.17.4" 1632 | minimatch "^3.0.2" 1633 | mkdirp "^0.5.1" 1634 | natural-compare "^1.4.0" 1635 | optionator "^0.8.2" 1636 | path-is-inside "^1.0.2" 1637 | pluralize "^4.0.0" 1638 | progress "^2.0.0" 1639 | require-uncached "^1.0.3" 1640 | strip-json-comments "~2.0.1" 1641 | table "^4.0.1" 1642 | text-table "~0.2.0" 1643 | 1644 | espree@^3.4.3: 1645 | version "3.4.3" 1646 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.3.tgz#2910b5ccd49ce893c2ffffaab4fd8b3a31b82374" 1647 | dependencies: 1648 | acorn "^5.0.1" 1649 | acorn-jsx "^3.0.0" 1650 | 1651 | esprima@^4.0.0: 1652 | version "4.0.0" 1653 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" 1654 | 1655 | esquery@^1.0.0: 1656 | version "1.0.0" 1657 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" 1658 | dependencies: 1659 | estraverse "^4.0.0" 1660 | 1661 | esrecurse@^4.1.0: 1662 | version "4.2.0" 1663 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" 1664 | dependencies: 1665 | estraverse "^4.1.0" 1666 | object-assign "^4.0.1" 1667 | 1668 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: 1669 | version "4.2.0" 1670 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 1671 | 1672 | esutils@^2.0.0, esutils@^2.0.2: 1673 | version "2.0.2" 1674 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 1675 | 1676 | execa@^0.5.0: 1677 | version "0.5.1" 1678 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.5.1.tgz#de3fb85cb8d6e91c85bcbceb164581785cb57b36" 1679 | dependencies: 1680 | cross-spawn "^4.0.0" 1681 | get-stream "^2.2.0" 1682 | is-stream "^1.1.0" 1683 | npm-run-path "^2.0.0" 1684 | p-finally "^1.0.0" 1685 | signal-exit "^3.0.0" 1686 | strip-eof "^1.0.0" 1687 | 1688 | execa@^0.7.0: 1689 | version "0.7.0" 1690 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" 1691 | dependencies: 1692 | cross-spawn "^5.0.1" 1693 | get-stream "^3.0.0" 1694 | is-stream "^1.1.0" 1695 | npm-run-path "^2.0.0" 1696 | p-finally "^1.0.0" 1697 | signal-exit "^3.0.0" 1698 | strip-eof "^1.0.0" 1699 | 1700 | exit-hook@^1.0.0: 1701 | version "1.1.1" 1702 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" 1703 | 1704 | expand-brackets@^0.1.4: 1705 | version "0.1.5" 1706 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 1707 | dependencies: 1708 | is-posix-bracket "^0.1.0" 1709 | 1710 | expand-range@^1.8.1: 1711 | version "1.8.2" 1712 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 1713 | dependencies: 1714 | fill-range "^2.1.0" 1715 | 1716 | expect@~1.20.2: 1717 | version "1.20.2" 1718 | resolved "https://registry.yarnpkg.com/expect/-/expect-1.20.2.tgz#d458fe4c56004036bae3232416a3f6361f04f965" 1719 | dependencies: 1720 | define-properties "~1.1.2" 1721 | has "^1.0.1" 1722 | is-equal "^1.5.1" 1723 | is-regex "^1.0.3" 1724 | object-inspect "^1.1.0" 1725 | object-keys "^1.0.9" 1726 | tmatch "^2.0.1" 1727 | 1728 | extend@~3.0.0: 1729 | version "3.0.1" 1730 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 1731 | 1732 | external-editor@^2.0.4: 1733 | version "2.0.4" 1734 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972" 1735 | dependencies: 1736 | iconv-lite "^0.4.17" 1737 | jschardet "^1.4.2" 1738 | tmp "^0.0.31" 1739 | 1740 | extglob@^0.3.1: 1741 | version "0.3.2" 1742 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 1743 | dependencies: 1744 | is-extglob "^1.0.0" 1745 | 1746 | extsprintf@1.0.2: 1747 | version "1.0.2" 1748 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" 1749 | 1750 | fast-deep-equal@^1.0.0: 1751 | version "1.0.0" 1752 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" 1753 | 1754 | fast-diff@^1.1.1: 1755 | version "1.1.1" 1756 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.1.tgz#0aea0e4e605b6a2189f0e936d4b7fbaf1b7cfd9b" 1757 | 1758 | fast-levenshtein@~2.0.4: 1759 | version "2.0.6" 1760 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 1761 | 1762 | fbjs@^0.8.1, fbjs@^0.8.4, fbjs@^0.8.6, fbjs@^0.8.9: 1763 | version "0.8.12" 1764 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" 1765 | dependencies: 1766 | core-js "^1.0.0" 1767 | isomorphic-fetch "^2.1.1" 1768 | loose-envify "^1.0.0" 1769 | object-assign "^4.1.0" 1770 | promise "^7.1.1" 1771 | setimmediate "^1.0.5" 1772 | ua-parser-js "^0.7.9" 1773 | 1774 | figures@^1.7.0: 1775 | version "1.7.0" 1776 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" 1777 | dependencies: 1778 | escape-string-regexp "^1.0.5" 1779 | object-assign "^4.1.0" 1780 | 1781 | figures@^2.0.0: 1782 | version "2.0.0" 1783 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 1784 | dependencies: 1785 | escape-string-regexp "^1.0.5" 1786 | 1787 | file-entry-cache@^2.0.0: 1788 | version "2.0.0" 1789 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" 1790 | dependencies: 1791 | flat-cache "^1.2.1" 1792 | object-assign "^4.0.1" 1793 | 1794 | filename-regex@^2.0.0: 1795 | version "2.0.1" 1796 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" 1797 | 1798 | fill-range@^2.1.0: 1799 | version "2.2.3" 1800 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" 1801 | dependencies: 1802 | is-number "^2.1.0" 1803 | isobject "^2.0.0" 1804 | randomatic "^1.1.3" 1805 | repeat-element "^1.1.2" 1806 | repeat-string "^1.5.2" 1807 | 1808 | find-cache-dir@^0.1.1: 1809 | version "0.1.1" 1810 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" 1811 | dependencies: 1812 | commondir "^1.0.1" 1813 | mkdirp "^0.5.1" 1814 | pkg-dir "^1.0.0" 1815 | 1816 | find-up@^1.0.0: 1817 | version "1.1.2" 1818 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 1819 | dependencies: 1820 | path-exists "^2.0.0" 1821 | pinkie-promise "^2.0.0" 1822 | 1823 | find-up@^2.0.0, find-up@^2.1.0: 1824 | version "2.1.0" 1825 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 1826 | dependencies: 1827 | locate-path "^2.0.0" 1828 | 1829 | flat-cache@^1.2.1: 1830 | version "1.2.2" 1831 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" 1832 | dependencies: 1833 | circular-json "^0.3.1" 1834 | del "^2.0.2" 1835 | graceful-fs "^4.1.2" 1836 | write "^0.2.1" 1837 | 1838 | for-each@^0.3.2: 1839 | version "0.3.2" 1840 | resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.2.tgz#2c40450b9348e97f281322593ba96704b9abd4d4" 1841 | dependencies: 1842 | is-function "~1.0.0" 1843 | 1844 | for-in@^1.0.1: 1845 | version "1.0.2" 1846 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 1847 | 1848 | for-own@^0.1.4: 1849 | version "0.1.5" 1850 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 1851 | dependencies: 1852 | for-in "^1.0.1" 1853 | 1854 | foreach@^2.0.5: 1855 | version "2.0.5" 1856 | resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" 1857 | 1858 | foreground-child@^1.5.3, foreground-child@^1.5.6: 1859 | version "1.5.6" 1860 | resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" 1861 | dependencies: 1862 | cross-spawn "^4" 1863 | signal-exit "^3.0.0" 1864 | 1865 | forever-agent@~0.6.1: 1866 | version "0.6.1" 1867 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 1868 | 1869 | form-data@~2.1.1: 1870 | version "2.1.4" 1871 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" 1872 | dependencies: 1873 | asynckit "^0.4.0" 1874 | combined-stream "^1.0.5" 1875 | mime-types "^2.1.12" 1876 | 1877 | fs-readdir-recursive@^1.0.0: 1878 | version "1.0.0" 1879 | resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" 1880 | 1881 | fs.realpath@^1.0.0: 1882 | version "1.0.0" 1883 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1884 | 1885 | fsevents@^1.0.0: 1886 | version "1.1.2" 1887 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" 1888 | dependencies: 1889 | nan "^2.3.0" 1890 | node-pre-gyp "^0.6.36" 1891 | 1892 | fstream-ignore@^1.0.5: 1893 | version "1.0.5" 1894 | resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" 1895 | dependencies: 1896 | fstream "^1.0.0" 1897 | inherits "2" 1898 | minimatch "^3.0.0" 1899 | 1900 | fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: 1901 | version "1.0.11" 1902 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" 1903 | dependencies: 1904 | graceful-fs "^4.1.2" 1905 | inherits "~2.0.0" 1906 | mkdirp ">=0.5 0" 1907 | rimraf "2" 1908 | 1909 | function-bind@^1.0.2, function-bind@^1.1.0: 1910 | version "1.1.0" 1911 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" 1912 | 1913 | function.prototype.name@^1.0.0: 1914 | version "1.0.3" 1915 | resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.0.3.tgz#0099ae5572e9dd6f03c97d023fd92bcc5e639eac" 1916 | dependencies: 1917 | define-properties "^1.1.2" 1918 | function-bind "^1.1.0" 1919 | is-callable "^1.1.3" 1920 | 1921 | gauge@~2.7.3: 1922 | version "2.7.4" 1923 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 1924 | dependencies: 1925 | aproba "^1.0.3" 1926 | console-control-strings "^1.0.0" 1927 | has-unicode "^2.0.0" 1928 | object-assign "^4.1.0" 1929 | signal-exit "^3.0.0" 1930 | string-width "^1.0.1" 1931 | strip-ansi "^3.0.1" 1932 | wide-align "^1.1.0" 1933 | 1934 | get-caller-file@^1.0.1: 1935 | version "1.0.2" 1936 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" 1937 | 1938 | get-stdin@^5.0.1: 1939 | version "5.0.1" 1940 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" 1941 | 1942 | get-stream@^2.2.0: 1943 | version "2.3.1" 1944 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" 1945 | dependencies: 1946 | object-assign "^4.0.1" 1947 | pinkie-promise "^2.0.0" 1948 | 1949 | get-stream@^3.0.0: 1950 | version "3.0.0" 1951 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 1952 | 1953 | getpass@^0.1.1: 1954 | version "0.1.7" 1955 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 1956 | dependencies: 1957 | assert-plus "^1.0.0" 1958 | 1959 | glob-base@^0.3.0: 1960 | version "0.3.0" 1961 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 1962 | dependencies: 1963 | glob-parent "^2.0.0" 1964 | is-glob "^2.0.0" 1965 | 1966 | glob-parent@^2.0.0: 1967 | version "2.0.0" 1968 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 1969 | dependencies: 1970 | is-glob "^2.0.0" 1971 | 1972 | glob@7.1.1: 1973 | version "7.1.1" 1974 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" 1975 | dependencies: 1976 | fs.realpath "^1.0.0" 1977 | inflight "^1.0.4" 1978 | inherits "2" 1979 | minimatch "^3.0.2" 1980 | once "^1.3.0" 1981 | path-is-absolute "^1.0.0" 1982 | 1983 | glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.2: 1984 | version "7.1.2" 1985 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 1986 | dependencies: 1987 | fs.realpath "^1.0.0" 1988 | inflight "^1.0.4" 1989 | inherits "2" 1990 | minimatch "^3.0.4" 1991 | once "^1.3.0" 1992 | path-is-absolute "^1.0.0" 1993 | 1994 | globals@^9.0.0, globals@^9.17.0: 1995 | version "9.18.0" 1996 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" 1997 | 1998 | globby@^5.0.0: 1999 | version "5.0.0" 2000 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" 2001 | dependencies: 2002 | array-union "^1.0.1" 2003 | arrify "^1.0.0" 2004 | glob "^7.0.3" 2005 | object-assign "^4.0.1" 2006 | pify "^2.0.0" 2007 | pinkie-promise "^2.0.0" 2008 | 2009 | graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4: 2010 | version "4.1.11" 2011 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 2012 | 2013 | "graceful-readlink@>= 1.0.0": 2014 | version "1.0.1" 2015 | resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" 2016 | 2017 | growl@1.9.2: 2018 | version "1.9.2" 2019 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" 2020 | 2021 | handlebars@^4.0.3: 2022 | version "4.0.10" 2023 | resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.10.tgz#3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f" 2024 | dependencies: 2025 | async "^1.4.0" 2026 | optimist "^0.6.1" 2027 | source-map "^0.4.4" 2028 | optionalDependencies: 2029 | uglify-js "^2.6" 2030 | 2031 | har-schema@^1.0.5: 2032 | version "1.0.5" 2033 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" 2034 | 2035 | har-validator@~4.2.1: 2036 | version "4.2.1" 2037 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" 2038 | dependencies: 2039 | ajv "^4.9.1" 2040 | har-schema "^1.0.5" 2041 | 2042 | has-ansi@^2.0.0: 2043 | version "2.0.0" 2044 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 2045 | dependencies: 2046 | ansi-regex "^2.0.0" 2047 | 2048 | has-flag@^1.0.0: 2049 | version "1.0.0" 2050 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 2051 | 2052 | has-flag@^2.0.0: 2053 | version "2.0.0" 2054 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" 2055 | 2056 | has-unicode@^2.0.0: 2057 | version "2.0.1" 2058 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 2059 | 2060 | has@^1.0.1: 2061 | version "1.0.1" 2062 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" 2063 | dependencies: 2064 | function-bind "^1.0.2" 2065 | 2066 | hawk@~3.1.3: 2067 | version "3.1.3" 2068 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" 2069 | dependencies: 2070 | boom "2.x.x" 2071 | cryptiles "2.x.x" 2072 | hoek "2.x.x" 2073 | sntp "1.x.x" 2074 | 2075 | history@^4.5.1, history@^4.6.0: 2076 | version "4.6.3" 2077 | resolved "https://registry.yarnpkg.com/history/-/history-4.6.3.tgz#6d723a8712c581d6bef37e8c26f4aedc6eb86967" 2078 | dependencies: 2079 | invariant "^2.2.1" 2080 | loose-envify "^1.2.0" 2081 | resolve-pathname "^2.0.0" 2082 | value-equal "^0.2.0" 2083 | warning "^3.0.0" 2084 | 2085 | hoek@2.x.x: 2086 | version "2.16.3" 2087 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" 2088 | 2089 | hoist-non-react-statics@^1.0.0, hoist-non-react-statics@^1.0.3, hoist-non-react-statics@^1.2.0: 2090 | version "1.2.0" 2091 | resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb" 2092 | 2093 | home-or-tmp@^2.0.0: 2094 | version "2.0.0" 2095 | resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" 2096 | dependencies: 2097 | os-homedir "^1.0.0" 2098 | os-tmpdir "^1.0.1" 2099 | 2100 | hosted-git-info@^2.1.4: 2101 | version "2.5.0" 2102 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" 2103 | 2104 | htmlparser2@^3.9.1: 2105 | version "3.9.2" 2106 | resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" 2107 | dependencies: 2108 | domelementtype "^1.3.0" 2109 | domhandler "^2.3.0" 2110 | domutils "^1.5.1" 2111 | entities "^1.1.1" 2112 | inherits "^2.0.1" 2113 | readable-stream "^2.0.2" 2114 | 2115 | http-signature@~1.1.0: 2116 | version "1.1.1" 2117 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" 2118 | dependencies: 2119 | assert-plus "^0.2.0" 2120 | jsprim "^1.2.2" 2121 | sshpk "^1.7.0" 2122 | 2123 | husky@~0.14.3: 2124 | version "0.14.3" 2125 | resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3" 2126 | dependencies: 2127 | is-ci "^1.0.10" 2128 | normalize-path "^1.0.0" 2129 | strip-indent "^2.0.0" 2130 | 2131 | hyphenate-style-name@^1.0.2: 2132 | version "1.0.2" 2133 | resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" 2134 | 2135 | iconv-lite@^0.4.17, iconv-lite@~0.4.13: 2136 | version "0.4.18" 2137 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" 2138 | 2139 | ignore@^3.3.3: 2140 | version "3.3.3" 2141 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d" 2142 | 2143 | imurmurhash@^0.1.4: 2144 | version "0.1.4" 2145 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 2146 | 2147 | indent-string@^2.1.0: 2148 | version "2.1.0" 2149 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" 2150 | dependencies: 2151 | repeating "^2.0.0" 2152 | 2153 | indent-string@^3.0.0: 2154 | version "3.1.0" 2155 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.1.0.tgz#08ff4334603388399b329e6b9538dc7a3cf5de7d" 2156 | 2157 | inflection@~1.12.0: 2158 | version "1.12.0" 2159 | resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416" 2160 | 2161 | inflight@^1.0.4: 2162 | version "1.0.6" 2163 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 2164 | dependencies: 2165 | once "^1.3.0" 2166 | wrappy "1" 2167 | 2168 | inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.3: 2169 | version "2.0.3" 2170 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 2171 | 2172 | ini@~1.3.0: 2173 | version "1.3.4" 2174 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" 2175 | 2176 | inline-style-prefixer@^3.0.2: 2177 | version "3.0.6" 2178 | resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-3.0.6.tgz#b27fe309b4168a31eaf38c8e8c60ab9e7c11731f" 2179 | dependencies: 2180 | bowser "^1.6.0" 2181 | css-in-js-utils "^1.0.3" 2182 | 2183 | inquirer@^3.0.6: 2184 | version "3.2.0" 2185 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.0.tgz#45b44c2160c729d7578c54060b3eed94487bb42b" 2186 | dependencies: 2187 | ansi-escapes "^2.0.0" 2188 | chalk "^2.0.0" 2189 | cli-cursor "^2.1.0" 2190 | cli-width "^2.0.0" 2191 | external-editor "^2.0.4" 2192 | figures "^2.0.0" 2193 | lodash "^4.3.0" 2194 | mute-stream "0.0.7" 2195 | run-async "^2.2.0" 2196 | rx-lite "^4.0.8" 2197 | rx-lite-aggregates "^4.0.8" 2198 | string-width "^2.1.0" 2199 | strip-ansi "^4.0.0" 2200 | through "^2.3.6" 2201 | 2202 | invariant@^2.0.0, invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2: 2203 | version "2.2.2" 2204 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" 2205 | dependencies: 2206 | loose-envify "^1.0.0" 2207 | 2208 | invert-kv@^1.0.0: 2209 | version "1.0.0" 2210 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" 2211 | 2212 | is-arrayish@^0.2.1: 2213 | version "0.2.1" 2214 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 2215 | 2216 | is-arrow-function@^2.0.3: 2217 | version "2.0.3" 2218 | resolved "https://registry.yarnpkg.com/is-arrow-function/-/is-arrow-function-2.0.3.tgz#29be2c2d8d9450852b8bbafb635ba7b8d8e87ec2" 2219 | dependencies: 2220 | is-callable "^1.0.4" 2221 | 2222 | is-binary-path@^1.0.0: 2223 | version "1.0.1" 2224 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 2225 | dependencies: 2226 | binary-extensions "^1.0.0" 2227 | 2228 | is-boolean-object@^1.0.0: 2229 | version "1.0.0" 2230 | resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" 2231 | 2232 | is-buffer@^1.1.5: 2233 | version "1.1.5" 2234 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" 2235 | 2236 | is-builtin-module@^1.0.0: 2237 | version "1.0.0" 2238 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 2239 | dependencies: 2240 | builtin-modules "^1.0.0" 2241 | 2242 | is-callable@^1.0.4, is-callable@^1.1.1, is-callable@^1.1.3: 2243 | version "1.1.3" 2244 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" 2245 | 2246 | is-ci@^1.0.10: 2247 | version "1.0.10" 2248 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" 2249 | dependencies: 2250 | ci-info "^1.0.0" 2251 | 2252 | is-date-object@^1.0.1: 2253 | version "1.0.1" 2254 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 2255 | 2256 | is-dotfile@^1.0.0: 2257 | version "1.0.3" 2258 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" 2259 | 2260 | is-equal-shallow@^0.1.3: 2261 | version "0.1.3" 2262 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 2263 | dependencies: 2264 | is-primitive "^2.0.0" 2265 | 2266 | is-equal@^1.5.1: 2267 | version "1.5.5" 2268 | resolved "https://registry.yarnpkg.com/is-equal/-/is-equal-1.5.5.tgz#5e85f1957e052883247feb386965a3bba15fbb3d" 2269 | dependencies: 2270 | has "^1.0.1" 2271 | is-arrow-function "^2.0.3" 2272 | is-boolean-object "^1.0.0" 2273 | is-callable "^1.1.3" 2274 | is-date-object "^1.0.1" 2275 | is-generator-function "^1.0.6" 2276 | is-number-object "^1.0.3" 2277 | is-regex "^1.0.3" 2278 | is-string "^1.0.4" 2279 | is-symbol "^1.0.1" 2280 | object.entries "^1.0.4" 2281 | 2282 | is-extendable@^0.1.1: 2283 | version "0.1.1" 2284 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 2285 | 2286 | is-extglob@^1.0.0: 2287 | version "1.0.0" 2288 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 2289 | 2290 | is-finite@^1.0.0: 2291 | version "1.0.2" 2292 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 2293 | dependencies: 2294 | number-is-nan "^1.0.0" 2295 | 2296 | is-fullwidth-code-point@^1.0.0: 2297 | version "1.0.0" 2298 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 2299 | dependencies: 2300 | number-is-nan "^1.0.0" 2301 | 2302 | is-fullwidth-code-point@^2.0.0: 2303 | version "2.0.0" 2304 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 2305 | 2306 | is-function@~1.0.0: 2307 | version "1.0.1" 2308 | resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" 2309 | 2310 | is-generator-function@^1.0.6: 2311 | version "1.0.6" 2312 | resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.6.tgz#9e71653cd15fff341c79c4151460a131d31e9fc4" 2313 | 2314 | is-glob@^2.0.0, is-glob@^2.0.1: 2315 | version "2.0.1" 2316 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 2317 | dependencies: 2318 | is-extglob "^1.0.0" 2319 | 2320 | is-number-object@^1.0.3: 2321 | version "1.0.3" 2322 | resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799" 2323 | 2324 | is-number@^2.1.0: 2325 | version "2.1.0" 2326 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 2327 | dependencies: 2328 | kind-of "^3.0.2" 2329 | 2330 | is-number@^3.0.0: 2331 | version "3.0.0" 2332 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 2333 | dependencies: 2334 | kind-of "^3.0.2" 2335 | 2336 | is-path-cwd@^1.0.0: 2337 | version "1.0.0" 2338 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 2339 | 2340 | is-path-in-cwd@^1.0.0: 2341 | version "1.0.0" 2342 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" 2343 | dependencies: 2344 | is-path-inside "^1.0.0" 2345 | 2346 | is-path-inside@^1.0.0: 2347 | version "1.0.0" 2348 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" 2349 | dependencies: 2350 | path-is-inside "^1.0.1" 2351 | 2352 | is-posix-bracket@^0.1.0: 2353 | version "0.1.1" 2354 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 2355 | 2356 | is-primitive@^2.0.0: 2357 | version "2.0.0" 2358 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 2359 | 2360 | is-promise@^2.1.0: 2361 | version "2.1.0" 2362 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 2363 | 2364 | is-regex@^1.0.3: 2365 | version "1.0.4" 2366 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 2367 | dependencies: 2368 | has "^1.0.1" 2369 | 2370 | is-resolvable@^1.0.0: 2371 | version "1.0.0" 2372 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" 2373 | dependencies: 2374 | tryit "^1.0.1" 2375 | 2376 | is-stream@^1.0.1, is-stream@^1.1.0: 2377 | version "1.1.0" 2378 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 2379 | 2380 | is-string@^1.0.4: 2381 | version "1.0.4" 2382 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz#cc3a9b69857d621e963725a24caeec873b826e64" 2383 | 2384 | is-subset@^0.1.1: 2385 | version "0.1.1" 2386 | resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" 2387 | 2388 | is-symbol@^1.0.1: 2389 | version "1.0.1" 2390 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" 2391 | 2392 | is-typedarray@~1.0.0: 2393 | version "1.0.0" 2394 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 2395 | 2396 | is-utf8@^0.2.0: 2397 | version "0.2.1" 2398 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 2399 | 2400 | isarray@0.0.1: 2401 | version "0.0.1" 2402 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 2403 | 2404 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: 2405 | version "1.0.0" 2406 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 2407 | 2408 | isexe@^2.0.0: 2409 | version "2.0.0" 2410 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 2411 | 2412 | isobject@^2.0.0: 2413 | version "2.1.0" 2414 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 2415 | dependencies: 2416 | isarray "1.0.0" 2417 | 2418 | isomorphic-fetch@^2.1.1: 2419 | version "2.2.1" 2420 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" 2421 | dependencies: 2422 | node-fetch "^1.0.1" 2423 | whatwg-fetch ">=0.10.0" 2424 | 2425 | isstream@~0.1.2: 2426 | version "0.1.2" 2427 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 2428 | 2429 | istanbul-cobertura-badger@~1.3.0: 2430 | version "1.3.0" 2431 | resolved "https://registry.yarnpkg.com/istanbul-cobertura-badger/-/istanbul-cobertura-badger-1.3.0.tgz#78b9cb48abb3a2d5e7c3abd357fa700787672c60" 2432 | dependencies: 2433 | commander "^2.8.1" 2434 | xml-splitter "~1.2.1" 2435 | xtend "~4.0.1" 2436 | 2437 | istanbul-lib-coverage@^1.1.1: 2438 | version "1.1.1" 2439 | resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da" 2440 | 2441 | istanbul-lib-hook@^1.0.7: 2442 | version "1.0.7" 2443 | resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz#dd6607f03076578fe7d6f2a630cf143b49bacddc" 2444 | dependencies: 2445 | append-transform "^0.4.0" 2446 | 2447 | istanbul-lib-instrument@^1.7.2, istanbul-lib-instrument@^1.7.3: 2448 | version "1.7.3" 2449 | resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.3.tgz#925b239163eabdd68cc4048f52c2fa4f899ecfa7" 2450 | dependencies: 2451 | babel-generator "^6.18.0" 2452 | babel-template "^6.16.0" 2453 | babel-traverse "^6.18.0" 2454 | babel-types "^6.18.0" 2455 | babylon "^6.17.4" 2456 | istanbul-lib-coverage "^1.1.1" 2457 | semver "^5.3.0" 2458 | 2459 | istanbul-lib-report@^1.1.1: 2460 | version "1.1.1" 2461 | resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#f0e55f56655ffa34222080b7a0cd4760e1405fc9" 2462 | dependencies: 2463 | istanbul-lib-coverage "^1.1.1" 2464 | mkdirp "^0.5.1" 2465 | path-parse "^1.0.5" 2466 | supports-color "^3.1.2" 2467 | 2468 | istanbul-lib-source-maps@^1.2.1: 2469 | version "1.2.1" 2470 | resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz#a6fe1acba8ce08eebc638e572e294d267008aa0c" 2471 | dependencies: 2472 | debug "^2.6.3" 2473 | istanbul-lib-coverage "^1.1.1" 2474 | mkdirp "^0.5.1" 2475 | rimraf "^2.6.1" 2476 | source-map "^0.5.3" 2477 | 2478 | istanbul-reports@^1.1.1: 2479 | version "1.1.1" 2480 | resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.1.tgz#042be5c89e175bc3f86523caab29c014e77fee4e" 2481 | dependencies: 2482 | handlebars "^4.0.3" 2483 | 2484 | jest-docblock@^20.0.1: 2485 | version "20.0.3" 2486 | resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-20.0.3.tgz#17bea984342cc33d83c50fbe1545ea0efaa44712" 2487 | 2488 | js-tokens@^3.0.0: 2489 | version "3.0.2" 2490 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 2491 | 2492 | js-yaml@^3.4.3, js-yaml@^3.8.4: 2493 | version "3.9.0" 2494 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.0.tgz#4ffbbf25c2ac963b8299dc74da7e3740de1c18ce" 2495 | dependencies: 2496 | argparse "^1.0.7" 2497 | esprima "^4.0.0" 2498 | 2499 | jsbn@~0.1.0: 2500 | version "0.1.1" 2501 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 2502 | 2503 | jschardet@^1.4.2: 2504 | version "1.4.2" 2505 | resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.4.2.tgz#2aa107f142af4121d145659d44f50830961e699a" 2506 | 2507 | jsesc@^1.3.0: 2508 | version "1.3.0" 2509 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" 2510 | 2511 | jsesc@~0.5.0: 2512 | version "0.5.0" 2513 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 2514 | 2515 | json-schema-traverse@^0.3.0: 2516 | version "0.3.1" 2517 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 2518 | 2519 | json-schema@0.2.3: 2520 | version "0.2.3" 2521 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 2522 | 2523 | json-stable-stringify@^1.0.1: 2524 | version "1.0.1" 2525 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 2526 | dependencies: 2527 | jsonify "~0.0.0" 2528 | 2529 | json-stringify-safe@~5.0.1: 2530 | version "5.0.1" 2531 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 2532 | 2533 | json3@3.3.2: 2534 | version "3.3.2" 2535 | resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" 2536 | 2537 | json5@^0.5.0: 2538 | version "0.5.1" 2539 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 2540 | 2541 | jsonify@~0.0.0: 2542 | version "0.0.0" 2543 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 2544 | 2545 | jsprim@^1.2.2: 2546 | version "1.4.0" 2547 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" 2548 | dependencies: 2549 | assert-plus "1.0.0" 2550 | extsprintf "1.0.2" 2551 | json-schema "0.2.3" 2552 | verror "1.3.6" 2553 | 2554 | jsx-ast-utils@^1.4.0, jsx-ast-utils@^1.4.1: 2555 | version "1.4.1" 2556 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" 2557 | 2558 | keycode@^2.1.8: 2559 | version "2.1.9" 2560 | resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.1.9.tgz#964a23c54e4889405b4861a5c9f0480d45141dfa" 2561 | 2562 | kind-of@^3.0.2: 2563 | version "3.2.2" 2564 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 2565 | dependencies: 2566 | is-buffer "^1.1.5" 2567 | 2568 | kind-of@^4.0.0: 2569 | version "4.0.0" 2570 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 2571 | dependencies: 2572 | is-buffer "^1.1.5" 2573 | 2574 | lazy-cache@^1.0.3: 2575 | version "1.0.4" 2576 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" 2577 | 2578 | lcid@^1.0.0: 2579 | version "1.0.0" 2580 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" 2581 | dependencies: 2582 | invert-kv "^1.0.0" 2583 | 2584 | levn@^0.3.0, levn@~0.3.0: 2585 | version "0.3.0" 2586 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 2587 | dependencies: 2588 | prelude-ls "~1.1.2" 2589 | type-check "~0.3.2" 2590 | 2591 | lint-staged@~4.0.1: 2592 | version "4.0.1" 2593 | resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-4.0.1.tgz#05365469898439dbade8a455893cf11e24d12b0f" 2594 | dependencies: 2595 | app-root-path "^2.0.0" 2596 | cosmiconfig "^1.1.0" 2597 | execa "^0.7.0" 2598 | listr "^0.12.0" 2599 | lodash.chunk "^4.2.0" 2600 | minimatch "^3.0.0" 2601 | npm-which "^3.0.1" 2602 | p-map "^1.1.1" 2603 | staged-git-files "0.0.4" 2604 | 2605 | listr-silent-renderer@^1.1.1: 2606 | version "1.1.1" 2607 | resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" 2608 | 2609 | listr-update-renderer@^0.2.0: 2610 | version "0.2.0" 2611 | resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz#ca80e1779b4e70266807e8eed1ad6abe398550f9" 2612 | dependencies: 2613 | chalk "^1.1.3" 2614 | cli-truncate "^0.2.1" 2615 | elegant-spinner "^1.0.1" 2616 | figures "^1.7.0" 2617 | indent-string "^3.0.0" 2618 | log-symbols "^1.0.2" 2619 | log-update "^1.0.2" 2620 | strip-ansi "^3.0.1" 2621 | 2622 | listr-verbose-renderer@^0.4.0: 2623 | version "0.4.0" 2624 | resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.0.tgz#44dc01bb0c34a03c572154d4d08cde9b1dc5620f" 2625 | dependencies: 2626 | chalk "^1.1.3" 2627 | cli-cursor "^1.0.2" 2628 | date-fns "^1.27.2" 2629 | figures "^1.7.0" 2630 | 2631 | listr@^0.12.0: 2632 | version "0.12.0" 2633 | resolved "https://registry.yarnpkg.com/listr/-/listr-0.12.0.tgz#6bce2c0f5603fa49580ea17cd6a00cc0e5fa451a" 2634 | dependencies: 2635 | chalk "^1.1.3" 2636 | cli-truncate "^0.2.1" 2637 | figures "^1.7.0" 2638 | indent-string "^2.1.0" 2639 | is-promise "^2.1.0" 2640 | is-stream "^1.1.0" 2641 | listr-silent-renderer "^1.1.1" 2642 | listr-update-renderer "^0.2.0" 2643 | listr-verbose-renderer "^0.4.0" 2644 | log-symbols "^1.0.2" 2645 | log-update "^1.0.2" 2646 | ora "^0.2.3" 2647 | p-map "^1.1.1" 2648 | rxjs "^5.0.0-beta.11" 2649 | stream-to-observable "^0.1.0" 2650 | strip-ansi "^3.0.1" 2651 | 2652 | load-json-file@^1.0.0: 2653 | version "1.1.0" 2654 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 2655 | dependencies: 2656 | graceful-fs "^4.1.2" 2657 | parse-json "^2.2.0" 2658 | pify "^2.0.0" 2659 | pinkie-promise "^2.0.0" 2660 | strip-bom "^2.0.0" 2661 | 2662 | load-json-file@^2.0.0: 2663 | version "2.0.0" 2664 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 2665 | dependencies: 2666 | graceful-fs "^4.1.2" 2667 | parse-json "^2.2.0" 2668 | pify "^2.0.0" 2669 | strip-bom "^3.0.0" 2670 | 2671 | locate-path@^2.0.0: 2672 | version "2.0.0" 2673 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 2674 | dependencies: 2675 | p-locate "^2.0.0" 2676 | path-exists "^3.0.0" 2677 | 2678 | lodash-es@^4.17.3, lodash-es@^4.2.0, lodash-es@^4.2.1: 2679 | version "4.17.4" 2680 | resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7" 2681 | 2682 | lodash._baseassign@^3.0.0: 2683 | version "3.2.0" 2684 | resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" 2685 | dependencies: 2686 | lodash._basecopy "^3.0.0" 2687 | lodash.keys "^3.0.0" 2688 | 2689 | lodash._basecopy@^3.0.0: 2690 | version "3.0.1" 2691 | resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" 2692 | 2693 | lodash._basecreate@^3.0.0: 2694 | version "3.0.3" 2695 | resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" 2696 | 2697 | lodash._getnative@^3.0.0: 2698 | version "3.9.1" 2699 | resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" 2700 | 2701 | lodash._isiterateecall@^3.0.0: 2702 | version "3.0.9" 2703 | resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" 2704 | 2705 | lodash.assignin@^4.0.9: 2706 | version "4.2.0" 2707 | resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" 2708 | 2709 | lodash.bind@^4.1.4: 2710 | version "4.2.1" 2711 | resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" 2712 | 2713 | lodash.chunk@^4.2.0: 2714 | version "4.2.0" 2715 | resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc" 2716 | 2717 | lodash.cond@^4.3.0: 2718 | version "4.5.2" 2719 | resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" 2720 | 2721 | lodash.create@3.1.1: 2722 | version "3.1.1" 2723 | resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" 2724 | dependencies: 2725 | lodash._baseassign "^3.0.0" 2726 | lodash._basecreate "^3.0.0" 2727 | lodash._isiterateecall "^3.0.0" 2728 | 2729 | lodash.debounce@~4.0.8: 2730 | version "4.0.8" 2731 | resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" 2732 | 2733 | lodash.defaults@^4.0.1: 2734 | version "4.2.0" 2735 | resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" 2736 | 2737 | lodash.defaultsdeep@~4.6.0: 2738 | version "4.6.0" 2739 | resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.0.tgz#bec1024f85b1bd96cbea405b23c14ad6443a6f81" 2740 | 2741 | lodash.filter@^4.4.0: 2742 | version "4.6.0" 2743 | resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" 2744 | 2745 | lodash.flatten@^4.2.0: 2746 | version "4.4.0" 2747 | resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" 2748 | 2749 | lodash.foreach@^4.3.0: 2750 | version "4.5.0" 2751 | resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" 2752 | 2753 | lodash.get@~4.4.2: 2754 | version "4.4.2" 2755 | resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" 2756 | 2757 | lodash.isarguments@^3.0.0: 2758 | version "3.1.0" 2759 | resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" 2760 | 2761 | lodash.isarray@^3.0.0: 2762 | version "3.0.4" 2763 | resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" 2764 | 2765 | lodash.keys@^3.0.0: 2766 | version "3.1.2" 2767 | resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" 2768 | dependencies: 2769 | lodash._getnative "^3.0.0" 2770 | lodash.isarguments "^3.0.0" 2771 | lodash.isarray "^3.0.0" 2772 | 2773 | lodash.map@^4.4.0: 2774 | version "4.6.0" 2775 | resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" 2776 | 2777 | lodash.merge@^4.4.0, lodash.merge@^4.6.0: 2778 | version "4.6.0" 2779 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" 2780 | 2781 | lodash.omit@~4.5.0: 2782 | version "4.5.0" 2783 | resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" 2784 | 2785 | lodash.pick@^4.2.1: 2786 | version "4.4.0" 2787 | resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" 2788 | 2789 | lodash.reduce@^4.4.0: 2790 | version "4.6.0" 2791 | resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" 2792 | 2793 | lodash.reject@^4.4.0: 2794 | version "4.6.0" 2795 | resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" 2796 | 2797 | lodash.set@~4.3.2: 2798 | version "4.3.2" 2799 | resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" 2800 | 2801 | lodash.some@^4.4.0: 2802 | version "4.6.0" 2803 | resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" 2804 | 2805 | lodash.throttle@^4.1.1: 2806 | version "4.1.1" 2807 | resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" 2808 | 2809 | lodash@^4.0.0, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: 2810 | version "4.17.4" 2811 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 2812 | 2813 | log-symbols@^1.0.2: 2814 | version "1.0.2" 2815 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" 2816 | dependencies: 2817 | chalk "^1.0.0" 2818 | 2819 | log-update@^1.0.2: 2820 | version "1.0.2" 2821 | resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" 2822 | dependencies: 2823 | ansi-escapes "^1.0.0" 2824 | cli-cursor "^1.0.2" 2825 | 2826 | longest@^1.0.1: 2827 | version "1.0.1" 2828 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" 2829 | 2830 | loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1: 2831 | version "1.3.1" 2832 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 2833 | dependencies: 2834 | js-tokens "^3.0.0" 2835 | 2836 | lru-cache@^4.0.1: 2837 | version "4.1.1" 2838 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" 2839 | dependencies: 2840 | pseudomap "^1.0.2" 2841 | yallist "^2.1.2" 2842 | 2843 | material-ui-chip-input@~0.13.5: 2844 | version "0.13.6" 2845 | resolved "https://registry.yarnpkg.com/material-ui-chip-input/-/material-ui-chip-input-0.13.6.tgz#ca5f50c85da1f7a3e02532513f95cc471fd15d30" 2846 | dependencies: 2847 | prop-types "^15.5.7" 2848 | 2849 | material-ui@~0.17.4: 2850 | version "0.17.4" 2851 | resolved "https://registry.yarnpkg.com/material-ui/-/material-ui-0.17.4.tgz#193999ecb49c3ec15ae0abb4e90fdf9a7bd343e0" 2852 | dependencies: 2853 | babel-runtime "^6.23.0" 2854 | inline-style-prefixer "^3.0.2" 2855 | keycode "^2.1.8" 2856 | lodash.merge "^4.6.0" 2857 | lodash.throttle "^4.1.1" 2858 | prop-types "^15.5.7" 2859 | react-addons-create-fragment "^15.4.0" 2860 | react-addons-transition-group "^15.4.0" 2861 | react-event-listener "^0.4.5" 2862 | recompose "^0.23.0" 2863 | simple-assign "^0.1.0" 2864 | warning "^3.0.0" 2865 | 2866 | md5-hex@^1.2.0: 2867 | version "1.3.0" 2868 | resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" 2869 | dependencies: 2870 | md5-o-matic "^0.1.1" 2871 | 2872 | md5-o-matic@^0.1.1: 2873 | version "0.1.1" 2874 | resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" 2875 | 2876 | mem@^1.1.0: 2877 | version "1.1.0" 2878 | resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" 2879 | dependencies: 2880 | mimic-fn "^1.0.0" 2881 | 2882 | merge-source-map@^1.0.2: 2883 | version "1.0.4" 2884 | resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f" 2885 | dependencies: 2886 | source-map "^0.5.6" 2887 | 2888 | micromatch@^2.1.5, micromatch@^2.3.11: 2889 | version "2.3.11" 2890 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 2891 | dependencies: 2892 | arr-diff "^2.0.0" 2893 | array-unique "^0.2.1" 2894 | braces "^1.8.2" 2895 | expand-brackets "^0.1.4" 2896 | extglob "^0.3.1" 2897 | filename-regex "^2.0.0" 2898 | is-extglob "^1.0.0" 2899 | is-glob "^2.0.1" 2900 | kind-of "^3.0.2" 2901 | normalize-path "^2.0.1" 2902 | object.omit "^2.0.0" 2903 | parse-glob "^3.0.4" 2904 | regex-cache "^0.4.2" 2905 | 2906 | mime-db@~1.27.0: 2907 | version "1.27.0" 2908 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" 2909 | 2910 | mime-types@^2.1.12, mime-types@~2.1.7: 2911 | version "2.1.15" 2912 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" 2913 | dependencies: 2914 | mime-db "~1.27.0" 2915 | 2916 | mimic-fn@^1.0.0: 2917 | version "1.1.0" 2918 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" 2919 | 2920 | minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: 2921 | version "3.0.4" 2922 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 2923 | dependencies: 2924 | brace-expansion "^1.1.7" 2925 | 2926 | minimist@0.0.8: 2927 | version "0.0.8" 2928 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 2929 | 2930 | minimist@^1.2.0: 2931 | version "1.2.0" 2932 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 2933 | 2934 | minimist@~0.0.1: 2935 | version "0.0.10" 2936 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" 2937 | 2938 | mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: 2939 | version "0.5.1" 2940 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 2941 | dependencies: 2942 | minimist "0.0.8" 2943 | 2944 | mocha@~3.4.2: 2945 | version "3.4.2" 2946 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.4.2.tgz#d0ef4d332126dbf18d0d640c9b382dd48be97594" 2947 | dependencies: 2948 | browser-stdout "1.3.0" 2949 | commander "2.9.0" 2950 | debug "2.6.0" 2951 | diff "3.2.0" 2952 | escape-string-regexp "1.0.5" 2953 | glob "7.1.1" 2954 | growl "1.9.2" 2955 | json3 "3.3.2" 2956 | lodash.create "3.1.1" 2957 | mkdirp "0.5.1" 2958 | supports-color "3.1.2" 2959 | 2960 | ms@0.7.2: 2961 | version "0.7.2" 2962 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" 2963 | 2964 | ms@2.0.0: 2965 | version "2.0.0" 2966 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 2967 | 2968 | mute-stream@0.0.7: 2969 | version "0.0.7" 2970 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 2971 | 2972 | nan@^2.3.0: 2973 | version "2.6.2" 2974 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" 2975 | 2976 | natural-compare@^1.4.0: 2977 | version "1.4.0" 2978 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 2979 | 2980 | node-fetch@^1.0.1: 2981 | version "1.7.1" 2982 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.1.tgz#899cb3d0a3c92f952c47f1b876f4c8aeabd400d5" 2983 | dependencies: 2984 | encoding "^0.1.11" 2985 | is-stream "^1.0.1" 2986 | 2987 | node-polyglot@2.2.2: 2988 | version "2.2.2" 2989 | resolved "https://registry.yarnpkg.com/node-polyglot/-/node-polyglot-2.2.2.tgz#1a3f76d7392f836ea0823836ede817e6ea6ec26c" 2990 | dependencies: 2991 | for-each "^0.3.2" 2992 | has "^1.0.1" 2993 | string.prototype.trim "^1.1.2" 2994 | warning "^3.0.0" 2995 | 2996 | node-pre-gyp@^0.6.36: 2997 | version "0.6.36" 2998 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786" 2999 | dependencies: 3000 | mkdirp "^0.5.1" 3001 | nopt "^4.0.1" 3002 | npmlog "^4.0.2" 3003 | rc "^1.1.7" 3004 | request "^2.81.0" 3005 | rimraf "^2.6.1" 3006 | semver "^5.3.0" 3007 | tar "^2.2.1" 3008 | tar-pack "^3.4.0" 3009 | 3010 | nopt@^4.0.1: 3011 | version "4.0.1" 3012 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 3013 | dependencies: 3014 | abbrev "1" 3015 | osenv "^0.1.4" 3016 | 3017 | normalize-package-data@^2.3.2: 3018 | version "2.4.0" 3019 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" 3020 | dependencies: 3021 | hosted-git-info "^2.1.4" 3022 | is-builtin-module "^1.0.0" 3023 | semver "2 || 3 || 4 || 5" 3024 | validate-npm-package-license "^3.0.1" 3025 | 3026 | normalize-path@^1.0.0: 3027 | version "1.0.0" 3028 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" 3029 | 3030 | normalize-path@^2.0.1: 3031 | version "2.1.1" 3032 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 3033 | dependencies: 3034 | remove-trailing-separator "^1.0.1" 3035 | 3036 | npm-path@^2.0.2: 3037 | version "2.0.3" 3038 | resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.3.tgz#15cff4e1c89a38da77f56f6055b24f975dfb2bbe" 3039 | dependencies: 3040 | which "^1.2.10" 3041 | 3042 | npm-run-path@^2.0.0: 3043 | version "2.0.2" 3044 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 3045 | dependencies: 3046 | path-key "^2.0.0" 3047 | 3048 | npm-which@^3.0.1: 3049 | version "3.0.1" 3050 | resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" 3051 | dependencies: 3052 | commander "^2.9.0" 3053 | npm-path "^2.0.2" 3054 | which "^1.2.10" 3055 | 3056 | npmlog@^4.0.2: 3057 | version "4.1.2" 3058 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 3059 | dependencies: 3060 | are-we-there-yet "~1.1.2" 3061 | console-control-strings "~1.1.0" 3062 | gauge "~2.7.3" 3063 | set-blocking "~2.0.0" 3064 | 3065 | nth-check@~1.0.1: 3066 | version "1.0.1" 3067 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" 3068 | dependencies: 3069 | boolbase "~1.0.0" 3070 | 3071 | number-is-nan@^1.0.0: 3072 | version "1.0.1" 3073 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 3074 | 3075 | nyc@~11.0.3: 3076 | version "11.0.3" 3077 | resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.0.3.tgz#0c28bc669a851621709bf7a08503034bee3812b6" 3078 | dependencies: 3079 | archy "^1.0.0" 3080 | arrify "^1.0.1" 3081 | caching-transform "^1.0.0" 3082 | convert-source-map "^1.3.0" 3083 | debug-log "^1.0.1" 3084 | default-require-extensions "^1.0.0" 3085 | find-cache-dir "^0.1.1" 3086 | find-up "^2.1.0" 3087 | foreground-child "^1.5.3" 3088 | glob "^7.0.6" 3089 | istanbul-lib-coverage "^1.1.1" 3090 | istanbul-lib-hook "^1.0.7" 3091 | istanbul-lib-instrument "^1.7.3" 3092 | istanbul-lib-report "^1.1.1" 3093 | istanbul-lib-source-maps "^1.2.1" 3094 | istanbul-reports "^1.1.1" 3095 | md5-hex "^1.2.0" 3096 | merge-source-map "^1.0.2" 3097 | micromatch "^2.3.11" 3098 | mkdirp "^0.5.0" 3099 | resolve-from "^2.0.0" 3100 | rimraf "^2.5.4" 3101 | signal-exit "^3.0.1" 3102 | spawn-wrap "^1.3.7" 3103 | test-exclude "^4.1.1" 3104 | yargs "^8.0.1" 3105 | yargs-parser "^5.0.0" 3106 | 3107 | oauth-sign@~0.8.1: 3108 | version "0.8.2" 3109 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 3110 | 3111 | object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: 3112 | version "4.1.1" 3113 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 3114 | 3115 | object-inspect@^1.1.0: 3116 | version "1.2.2" 3117 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.2.2.tgz#c82115e4fcc888aea14d64c22e4f17f6a70d5e5a" 3118 | 3119 | object-is@^1.0.1: 3120 | version "1.0.1" 3121 | resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" 3122 | 3123 | object-keys@^1.0.10, object-keys@^1.0.8, object-keys@^1.0.9: 3124 | version "1.0.11" 3125 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" 3126 | 3127 | object.assign@^4.0.4: 3128 | version "4.0.4" 3129 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc" 3130 | dependencies: 3131 | define-properties "^1.1.2" 3132 | function-bind "^1.1.0" 3133 | object-keys "^1.0.10" 3134 | 3135 | object.entries@^1.0.4: 3136 | version "1.0.4" 3137 | resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f" 3138 | dependencies: 3139 | define-properties "^1.1.2" 3140 | es-abstract "^1.6.1" 3141 | function-bind "^1.1.0" 3142 | has "^1.0.1" 3143 | 3144 | object.omit@^2.0.0: 3145 | version "2.0.1" 3146 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 3147 | dependencies: 3148 | for-own "^0.1.4" 3149 | is-extendable "^0.1.1" 3150 | 3151 | object.values@^1.0.4: 3152 | version "1.0.4" 3153 | resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a" 3154 | dependencies: 3155 | define-properties "^1.1.2" 3156 | es-abstract "^1.6.1" 3157 | function-bind "^1.1.0" 3158 | has "^1.0.1" 3159 | 3160 | once@^1.3.0, once@^1.3.3: 3161 | version "1.4.0" 3162 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 3163 | dependencies: 3164 | wrappy "1" 3165 | 3166 | onetime@^1.0.0: 3167 | version "1.1.0" 3168 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" 3169 | 3170 | onetime@^2.0.0: 3171 | version "2.0.1" 3172 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 3173 | dependencies: 3174 | mimic-fn "^1.0.0" 3175 | 3176 | optimist@^0.6.1: 3177 | version "0.6.1" 3178 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" 3179 | dependencies: 3180 | minimist "~0.0.1" 3181 | wordwrap "~0.0.2" 3182 | 3183 | optionator@^0.8.2: 3184 | version "0.8.2" 3185 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 3186 | dependencies: 3187 | deep-is "~0.1.3" 3188 | fast-levenshtein "~2.0.4" 3189 | levn "~0.3.0" 3190 | prelude-ls "~1.1.2" 3191 | type-check "~0.3.2" 3192 | wordwrap "~1.0.0" 3193 | 3194 | ora@^0.2.3: 3195 | version "0.2.3" 3196 | resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" 3197 | dependencies: 3198 | chalk "^1.1.1" 3199 | cli-cursor "^1.0.2" 3200 | cli-spinners "^0.1.2" 3201 | object-assign "^4.0.1" 3202 | 3203 | os-homedir@^1.0.0, os-homedir@^1.0.1: 3204 | version "1.0.2" 3205 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 3206 | 3207 | os-locale@^2.0.0: 3208 | version "2.0.0" 3209 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.0.0.tgz#15918ded510522b81ee7ae5a309d54f639fc39a4" 3210 | dependencies: 3211 | execa "^0.5.0" 3212 | lcid "^1.0.0" 3213 | mem "^1.1.0" 3214 | 3215 | os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: 3216 | version "1.0.2" 3217 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 3218 | 3219 | osenv@^0.1.4: 3220 | version "0.1.4" 3221 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" 3222 | dependencies: 3223 | os-homedir "^1.0.0" 3224 | os-tmpdir "^1.0.0" 3225 | 3226 | output-file-sync@^1.1.0: 3227 | version "1.1.2" 3228 | resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" 3229 | dependencies: 3230 | graceful-fs "^4.1.4" 3231 | mkdirp "^0.5.1" 3232 | object-assign "^4.1.0" 3233 | 3234 | p-finally@^1.0.0: 3235 | version "1.0.0" 3236 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 3237 | 3238 | p-limit@^1.1.0: 3239 | version "1.1.0" 3240 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" 3241 | 3242 | p-locate@^2.0.0: 3243 | version "2.0.0" 3244 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 3245 | dependencies: 3246 | p-limit "^1.1.0" 3247 | 3248 | p-map@^1.1.1: 3249 | version "1.1.1" 3250 | resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a" 3251 | 3252 | parse-glob@^3.0.4: 3253 | version "3.0.4" 3254 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 3255 | dependencies: 3256 | glob-base "^0.3.0" 3257 | is-dotfile "^1.0.0" 3258 | is-extglob "^1.0.0" 3259 | is-glob "^2.0.0" 3260 | 3261 | parse-json@^2.2.0: 3262 | version "2.2.0" 3263 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 3264 | dependencies: 3265 | error-ex "^1.2.0" 3266 | 3267 | path-exists@^2.0.0: 3268 | version "2.1.0" 3269 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 3270 | dependencies: 3271 | pinkie-promise "^2.0.0" 3272 | 3273 | path-exists@^3.0.0: 3274 | version "3.0.0" 3275 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 3276 | 3277 | path-is-absolute@^1.0.0: 3278 | version "1.0.1" 3279 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 3280 | 3281 | path-is-inside@^1.0.1, path-is-inside@^1.0.2: 3282 | version "1.0.2" 3283 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 3284 | 3285 | path-key@^2.0.0: 3286 | version "2.0.1" 3287 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 3288 | 3289 | path-parse@^1.0.5: 3290 | version "1.0.5" 3291 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" 3292 | 3293 | path-to-regexp@^1.5.3: 3294 | version "1.7.0" 3295 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" 3296 | dependencies: 3297 | isarray "0.0.1" 3298 | 3299 | path-type@^1.0.0: 3300 | version "1.1.0" 3301 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 3302 | dependencies: 3303 | graceful-fs "^4.1.2" 3304 | pify "^2.0.0" 3305 | pinkie-promise "^2.0.0" 3306 | 3307 | path-type@^2.0.0: 3308 | version "2.0.0" 3309 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" 3310 | dependencies: 3311 | pify "^2.0.0" 3312 | 3313 | performance-now@^0.2.0: 3314 | version "0.2.0" 3315 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" 3316 | 3317 | pify@^2.0.0: 3318 | version "2.3.0" 3319 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 3320 | 3321 | pinkie-promise@^2.0.0: 3322 | version "2.0.1" 3323 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 3324 | dependencies: 3325 | pinkie "^2.0.0" 3326 | 3327 | pinkie@^2.0.0: 3328 | version "2.0.4" 3329 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 3330 | 3331 | pkg-dir@^1.0.0: 3332 | version "1.0.0" 3333 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" 3334 | dependencies: 3335 | find-up "^1.0.0" 3336 | 3337 | pluralize@^4.0.0: 3338 | version "4.0.0" 3339 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-4.0.0.tgz#59b708c1c0190a2f692f1c7618c446b052fd1762" 3340 | 3341 | prelude-ls@~1.1.2: 3342 | version "1.1.2" 3343 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 3344 | 3345 | preserve@^0.2.0: 3346 | version "0.2.0" 3347 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 3348 | 3349 | prettier@~1.5.2: 3350 | version "1.5.2" 3351 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.5.2.tgz#7ea0751da27b93bfb6cecfcec509994f52d83bb3" 3352 | 3353 | private@^0.1.6: 3354 | version "0.1.7" 3355 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" 3356 | 3357 | process-nextick-args@~1.0.6: 3358 | version "1.0.7" 3359 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 3360 | 3361 | progress@^2.0.0: 3362 | version "2.0.0" 3363 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" 3364 | 3365 | promise@^7.1.1: 3366 | version "7.3.1" 3367 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" 3368 | dependencies: 3369 | asap "~2.0.3" 3370 | 3371 | prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@~15.5.10, prop-types@~15.5.7: 3372 | version "15.5.10" 3373 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154" 3374 | dependencies: 3375 | fbjs "^0.8.9" 3376 | loose-envify "^1.3.1" 3377 | 3378 | pseudomap@^1.0.2: 3379 | version "1.0.2" 3380 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 3381 | 3382 | punycode@^1.4.1: 3383 | version "1.4.1" 3384 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 3385 | 3386 | qs@~6.4.0: 3387 | version "6.4.0" 3388 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" 3389 | 3390 | query-string@~4.3.2: 3391 | version "4.3.4" 3392 | resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" 3393 | dependencies: 3394 | object-assign "^4.1.0" 3395 | strict-uri-encode "^1.0.0" 3396 | 3397 | ramda@^0.24.1: 3398 | version "0.24.1" 3399 | resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857" 3400 | 3401 | randomatic@^1.1.3: 3402 | version "1.1.7" 3403 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" 3404 | dependencies: 3405 | is-number "^3.0.0" 3406 | kind-of "^4.0.0" 3407 | 3408 | rc@^1.1.7: 3409 | version "1.2.1" 3410 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" 3411 | dependencies: 3412 | deep-extend "~0.4.0" 3413 | ini "~1.3.0" 3414 | minimist "^1.2.0" 3415 | strip-json-comments "~2.0.1" 3416 | 3417 | react-addons-create-fragment@^15.4.0: 3418 | version "15.6.0" 3419 | resolved "https://registry.yarnpkg.com/react-addons-create-fragment/-/react-addons-create-fragment-15.6.0.tgz#af91a22b1fb095dd01f1afba43bfd0ef589d8b20" 3420 | dependencies: 3421 | fbjs "^0.8.4" 3422 | loose-envify "^1.3.1" 3423 | object-assign "^4.1.0" 3424 | 3425 | react-addons-transition-group@^15.4.0: 3426 | version "15.6.0" 3427 | resolved "https://registry.yarnpkg.com/react-addons-transition-group/-/react-addons-transition-group-15.6.0.tgz#0f220b9f9597db3a80a88dbd6fe805fc644ce21c" 3428 | dependencies: 3429 | react-transition-group "^1.2.0" 3430 | 3431 | react-dom@~15.5.4: 3432 | version "15.5.4" 3433 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.5.4.tgz#ba0c28786fd52ed7e4f2135fe0288d462aef93da" 3434 | dependencies: 3435 | fbjs "^0.8.9" 3436 | loose-envify "^1.1.0" 3437 | object-assign "^4.1.0" 3438 | prop-types "~15.5.7" 3439 | 3440 | react-dropzone@~3.13.1: 3441 | version "3.13.3" 3442 | resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-3.13.3.tgz#b8bde4b5a12842f85196b45e8cc2959834b81962" 3443 | dependencies: 3444 | attr-accept "^1.0.3" 3445 | prop-types "^15.5.7" 3446 | 3447 | react-event-listener@^0.4.5: 3448 | version "0.4.5" 3449 | resolved "https://registry.yarnpkg.com/react-event-listener/-/react-event-listener-0.4.5.tgz#e3e895a0970cf14ee8f890113af68197abf3d0b1" 3450 | dependencies: 3451 | babel-runtime "^6.20.0" 3452 | fbjs "^0.8.4" 3453 | prop-types "^15.5.4" 3454 | warning "^3.0.0" 3455 | 3456 | react-redux@~5.0.4: 3457 | version "5.0.5" 3458 | resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.5.tgz#f8e8c7b239422576e52d6b7db06439469be9846a" 3459 | dependencies: 3460 | create-react-class "^15.5.3" 3461 | hoist-non-react-statics "^1.0.3" 3462 | invariant "^2.0.0" 3463 | lodash "^4.2.0" 3464 | lodash-es "^4.2.0" 3465 | loose-envify "^1.1.0" 3466 | prop-types "^15.5.10" 3467 | 3468 | react-router-dom@~4.1.0: 3469 | version "4.1.1" 3470 | resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-4.1.1.tgz#3021ade1f2c160af97cf94e25594c5f294583025" 3471 | dependencies: 3472 | history "^4.5.1" 3473 | loose-envify "^1.3.1" 3474 | prop-types "^15.5.4" 3475 | react-router "^4.1.1" 3476 | 3477 | react-router-redux@~5.0.0-alpha.5: 3478 | version "5.0.0-alpha.6" 3479 | resolved "https://registry.yarnpkg.com/react-router-redux/-/react-router-redux-5.0.0-alpha.6.tgz#7418663c2ecd3c51be856fcf28f3d1deecc1a576" 3480 | dependencies: 3481 | history "^4.5.1" 3482 | prop-types "^15.5.4" 3483 | react-router "^4.1.1" 3484 | 3485 | react-router@^4.1.1, react-router@~4.1.0: 3486 | version "4.1.1" 3487 | resolved "https://registry.yarnpkg.com/react-router/-/react-router-4.1.1.tgz#d448f3b7c1b429a6fbb03395099949c606b1fe95" 3488 | dependencies: 3489 | history "^4.6.0" 3490 | hoist-non-react-statics "^1.2.0" 3491 | invariant "^2.2.2" 3492 | loose-envify "^1.3.1" 3493 | path-to-regexp "^1.5.3" 3494 | prop-types "^15.5.4" 3495 | warning "^3.0.0" 3496 | 3497 | react-tap-event-plugin@~2.0.1: 3498 | version "2.0.1" 3499 | resolved "https://registry.yarnpkg.com/react-tap-event-plugin/-/react-tap-event-plugin-2.0.1.tgz#316beb3bc6556e29ec869a7293e89c826a9074d2" 3500 | dependencies: 3501 | fbjs "^0.8.6" 3502 | 3503 | react-test-renderer@~15.6.1: 3504 | version "15.6.1" 3505 | resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-15.6.1.tgz#026f4a5bb5552661fd2cc4bbcd0d4bc8a35ebf7e" 3506 | dependencies: 3507 | fbjs "^0.8.9" 3508 | object-assign "^4.1.0" 3509 | 3510 | react-transition-group@^1.2.0: 3511 | version "1.2.0" 3512 | resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-1.2.0.tgz#b51fc921b0c3835a7ef7c571c79fc82c73e9204f" 3513 | dependencies: 3514 | chain-function "^1.0.0" 3515 | dom-helpers "^3.2.0" 3516 | loose-envify "^1.3.1" 3517 | prop-types "^15.5.6" 3518 | warning "^3.0.0" 3519 | 3520 | react@~15.5.4: 3521 | version "15.5.4" 3522 | resolved "https://registry.yarnpkg.com/react/-/react-15.5.4.tgz#fa83eb01506ab237cdc1c8c3b1cea8de012bf047" 3523 | dependencies: 3524 | fbjs "^0.8.9" 3525 | loose-envify "^1.1.0" 3526 | object-assign "^4.1.0" 3527 | prop-types "^15.5.7" 3528 | 3529 | read-pkg-up@^1.0.1: 3530 | version "1.0.1" 3531 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 3532 | dependencies: 3533 | find-up "^1.0.0" 3534 | read-pkg "^1.0.0" 3535 | 3536 | read-pkg-up@^2.0.0: 3537 | version "2.0.0" 3538 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" 3539 | dependencies: 3540 | find-up "^2.0.0" 3541 | read-pkg "^2.0.0" 3542 | 3543 | read-pkg@^1.0.0: 3544 | version "1.1.0" 3545 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 3546 | dependencies: 3547 | load-json-file "^1.0.0" 3548 | normalize-package-data "^2.3.2" 3549 | path-type "^1.0.0" 3550 | 3551 | read-pkg@^2.0.0: 3552 | version "2.0.0" 3553 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" 3554 | dependencies: 3555 | load-json-file "^2.0.0" 3556 | normalize-package-data "^2.3.2" 3557 | path-type "^2.0.0" 3558 | 3559 | readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2: 3560 | version "2.3.3" 3561 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" 3562 | dependencies: 3563 | core-util-is "~1.0.0" 3564 | inherits "~2.0.3" 3565 | isarray "~1.0.0" 3566 | process-nextick-args "~1.0.6" 3567 | safe-buffer "~5.1.1" 3568 | string_decoder "~1.0.3" 3569 | util-deprecate "~1.0.1" 3570 | 3571 | readdirp@^2.0.0: 3572 | version "2.1.0" 3573 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" 3574 | dependencies: 3575 | graceful-fs "^4.1.2" 3576 | minimatch "^3.0.2" 3577 | readable-stream "^2.0.2" 3578 | set-immediate-shim "^1.0.1" 3579 | 3580 | recompose@^0.23.0, recompose@~0.23.1, recompose@~0.23.4: 3581 | version "0.23.5" 3582 | resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.23.5.tgz#72ac8261246bec378235d187467d02a721e8b1de" 3583 | dependencies: 3584 | change-emitter "^0.1.2" 3585 | fbjs "^0.8.1" 3586 | hoist-non-react-statics "^1.0.0" 3587 | symbol-observable "^1.0.4" 3588 | 3589 | redux-form@~6.6.3: 3590 | version "6.6.3" 3591 | resolved "https://registry.yarnpkg.com/redux-form/-/redux-form-6.6.3.tgz#62362654f2214c83a8f9fcb8313702bb46f92205" 3592 | dependencies: 3593 | deep-equal "^1.0.1" 3594 | es6-error "^4.0.0" 3595 | hoist-non-react-statics "^1.2.0" 3596 | invariant "^2.2.2" 3597 | is-promise "^2.1.0" 3598 | lodash "^4.17.3" 3599 | lodash-es "^4.17.3" 3600 | prop-types "^15.5.6" 3601 | 3602 | redux-saga@~0.15.0: 3603 | version "0.15.4" 3604 | resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-0.15.4.tgz#27982a947280053b7ecbb5d3170c837a5fe6b261" 3605 | 3606 | redux@~3.6.0: 3607 | version "3.6.0" 3608 | resolved "https://registry.yarnpkg.com/redux/-/redux-3.6.0.tgz#887c2b3d0b9bd86eca2be70571c27654c19e188d" 3609 | dependencies: 3610 | lodash "^4.2.1" 3611 | lodash-es "^4.2.1" 3612 | loose-envify "^1.1.0" 3613 | symbol-observable "^1.0.2" 3614 | 3615 | regenerate@^1.2.1: 3616 | version "1.3.2" 3617 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" 3618 | 3619 | regenerator-runtime@^0.10.0: 3620 | version "0.10.5" 3621 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" 3622 | 3623 | regenerator-runtime@^0.9.5: 3624 | version "0.9.6" 3625 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz#d33eb95d0d2001a4be39659707c51b0cb71ce029" 3626 | 3627 | regenerator-transform@0.9.11: 3628 | version "0.9.11" 3629 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283" 3630 | dependencies: 3631 | babel-runtime "^6.18.0" 3632 | babel-types "^6.19.0" 3633 | private "^0.1.6" 3634 | 3635 | regex-cache@^0.4.2: 3636 | version "0.4.3" 3637 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" 3638 | dependencies: 3639 | is-equal-shallow "^0.1.3" 3640 | is-primitive "^2.0.0" 3641 | 3642 | regexpu-core@^2.0.0: 3643 | version "2.0.0" 3644 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" 3645 | dependencies: 3646 | regenerate "^1.2.1" 3647 | regjsgen "^0.2.0" 3648 | regjsparser "^0.1.4" 3649 | 3650 | regjsgen@^0.2.0: 3651 | version "0.2.0" 3652 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" 3653 | 3654 | regjsparser@^0.1.4: 3655 | version "0.1.5" 3656 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" 3657 | dependencies: 3658 | jsesc "~0.5.0" 3659 | 3660 | remove-trailing-separator@^1.0.1: 3661 | version "1.0.2" 3662 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz#69b062d978727ad14dc6b56ba4ab772fd8d70511" 3663 | 3664 | repeat-element@^1.1.2: 3665 | version "1.1.2" 3666 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 3667 | 3668 | repeat-string@^1.5.2: 3669 | version "1.6.1" 3670 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 3671 | 3672 | repeating@^2.0.0: 3673 | version "2.0.1" 3674 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 3675 | dependencies: 3676 | is-finite "^1.0.0" 3677 | 3678 | request@^2.81.0: 3679 | version "2.81.0" 3680 | resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" 3681 | dependencies: 3682 | aws-sign2 "~0.6.0" 3683 | aws4 "^1.2.1" 3684 | caseless "~0.12.0" 3685 | combined-stream "~1.0.5" 3686 | extend "~3.0.0" 3687 | forever-agent "~0.6.1" 3688 | form-data "~2.1.1" 3689 | har-validator "~4.2.1" 3690 | hawk "~3.1.3" 3691 | http-signature "~1.1.0" 3692 | is-typedarray "~1.0.0" 3693 | isstream "~0.1.2" 3694 | json-stringify-safe "~5.0.1" 3695 | mime-types "~2.1.7" 3696 | oauth-sign "~0.8.1" 3697 | performance-now "^0.2.0" 3698 | qs "~6.4.0" 3699 | safe-buffer "^5.0.1" 3700 | stringstream "~0.0.4" 3701 | tough-cookie "~2.3.0" 3702 | tunnel-agent "^0.6.0" 3703 | uuid "^3.0.0" 3704 | 3705 | require-directory@^2.1.1: 3706 | version "2.1.1" 3707 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 3708 | 3709 | require-from-string@^1.1.0: 3710 | version "1.2.1" 3711 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" 3712 | 3713 | require-main-filename@^1.0.1: 3714 | version "1.0.1" 3715 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 3716 | 3717 | require-uncached@^1.0.3: 3718 | version "1.0.3" 3719 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 3720 | dependencies: 3721 | caller-path "^0.1.0" 3722 | resolve-from "^1.0.0" 3723 | 3724 | reselect@~3.0.0: 3725 | version "3.0.1" 3726 | resolved "https://registry.yarnpkg.com/reselect/-/reselect-3.0.1.tgz#efdaa98ea7451324d092b2b2163a6a1d7a9a2147" 3727 | 3728 | resolve-from@^1.0.0: 3729 | version "1.0.1" 3730 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 3731 | 3732 | resolve-from@^2.0.0: 3733 | version "2.0.0" 3734 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" 3735 | 3736 | resolve-pathname@^2.0.0: 3737 | version "2.1.0" 3738 | resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.1.0.tgz#e8358801b86b83b17560d4e3c382d7aef2100944" 3739 | 3740 | resolve@^1.2.0: 3741 | version "1.3.3" 3742 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" 3743 | dependencies: 3744 | path-parse "^1.0.5" 3745 | 3746 | restore-cursor@^1.0.1: 3747 | version "1.0.1" 3748 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" 3749 | dependencies: 3750 | exit-hook "^1.0.0" 3751 | onetime "^1.0.0" 3752 | 3753 | restore-cursor@^2.0.0: 3754 | version "2.0.0" 3755 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 3756 | dependencies: 3757 | onetime "^2.0.0" 3758 | signal-exit "^3.0.2" 3759 | 3760 | right-align@^0.1.1: 3761 | version "0.1.3" 3762 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" 3763 | dependencies: 3764 | align-text "^0.1.1" 3765 | 3766 | rimraf@2, rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1: 3767 | version "2.6.1" 3768 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" 3769 | dependencies: 3770 | glob "^7.0.5" 3771 | 3772 | run-async@^2.2.0: 3773 | version "2.3.0" 3774 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 3775 | dependencies: 3776 | is-promise "^2.1.0" 3777 | 3778 | rx-lite-aggregates@^4.0.8: 3779 | version "4.0.8" 3780 | resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" 3781 | dependencies: 3782 | rx-lite "*" 3783 | 3784 | rx-lite@*, rx-lite@^4.0.8: 3785 | version "4.0.8" 3786 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" 3787 | 3788 | rxjs@^5.0.0-beta.11: 3789 | version "5.4.2" 3790 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.2.tgz#2a3236fcbf03df57bae06fd6972fd99e5c08fcf7" 3791 | dependencies: 3792 | symbol-observable "^1.0.1" 3793 | 3794 | safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 3795 | version "5.1.1" 3796 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 3797 | 3798 | sax@~0.5.5: 3799 | version "0.5.8" 3800 | resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1" 3801 | 3802 | "semver@2 || 3 || 4 || 5", semver@^5.3.0: 3803 | version "5.3.0" 3804 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" 3805 | 3806 | set-blocking@^2.0.0, set-blocking@~2.0.0: 3807 | version "2.0.0" 3808 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 3809 | 3810 | set-immediate-shim@^1.0.1: 3811 | version "1.0.1" 3812 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 3813 | 3814 | setimmediate@^1.0.5: 3815 | version "1.0.5" 3816 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 3817 | 3818 | shebang-command@^1.2.0: 3819 | version "1.2.0" 3820 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 3821 | dependencies: 3822 | shebang-regex "^1.0.0" 3823 | 3824 | shebang-regex@^1.0.0: 3825 | version "1.0.0" 3826 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 3827 | 3828 | signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2: 3829 | version "3.0.2" 3830 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 3831 | 3832 | simple-assign@^0.1.0: 3833 | version "0.1.0" 3834 | resolved "https://registry.yarnpkg.com/simple-assign/-/simple-assign-0.1.0.tgz#17fd3066a5f3d7738f50321bb0f14ca281cc4baa" 3835 | 3836 | slash@^1.0.0: 3837 | version "1.0.0" 3838 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" 3839 | 3840 | slice-ansi@0.0.4: 3841 | version "0.0.4" 3842 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" 3843 | 3844 | slide@^1.1.5: 3845 | version "1.1.6" 3846 | resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" 3847 | 3848 | sntp@1.x.x: 3849 | version "1.0.9" 3850 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" 3851 | dependencies: 3852 | hoek "2.x.x" 3853 | 3854 | source-map-support@^0.4.2: 3855 | version "0.4.15" 3856 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1" 3857 | dependencies: 3858 | source-map "^0.5.6" 3859 | 3860 | source-map@^0.4.4: 3861 | version "0.4.4" 3862 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" 3863 | dependencies: 3864 | amdefine ">=0.0.4" 3865 | 3866 | source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: 3867 | version "0.5.6" 3868 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" 3869 | 3870 | spawn-wrap@^1.3.7: 3871 | version "1.3.8" 3872 | resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.3.8.tgz#fa2a79b990cbb0bb0018dca6748d88367b19ec31" 3873 | dependencies: 3874 | foreground-child "^1.5.6" 3875 | mkdirp "^0.5.0" 3876 | os-homedir "^1.0.1" 3877 | rimraf "^2.3.3" 3878 | signal-exit "^3.0.2" 3879 | which "^1.2.4" 3880 | 3881 | spdx-correct@~1.0.0: 3882 | version "1.0.2" 3883 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" 3884 | dependencies: 3885 | spdx-license-ids "^1.0.2" 3886 | 3887 | spdx-expression-parse@~1.0.0: 3888 | version "1.0.4" 3889 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" 3890 | 3891 | spdx-license-ids@^1.0.2: 3892 | version "1.2.2" 3893 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" 3894 | 3895 | sprintf-js@~1.0.2: 3896 | version "1.0.3" 3897 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 3898 | 3899 | sshpk@^1.7.0: 3900 | version "1.13.1" 3901 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" 3902 | dependencies: 3903 | asn1 "~0.2.3" 3904 | assert-plus "^1.0.0" 3905 | dashdash "^1.12.0" 3906 | getpass "^0.1.1" 3907 | optionalDependencies: 3908 | bcrypt-pbkdf "^1.0.0" 3909 | ecc-jsbn "~0.1.1" 3910 | jsbn "~0.1.0" 3911 | tweetnacl "~0.14.0" 3912 | 3913 | staged-git-files@0.0.4: 3914 | version "0.0.4" 3915 | resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-0.0.4.tgz#d797e1b551ca7a639dec0237dc6eb4bb9be17d35" 3916 | 3917 | stream-to-observable@^0.1.0: 3918 | version "0.1.0" 3919 | resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.1.0.tgz#45bf1d9f2d7dc09bed81f1c307c430e68b84cffe" 3920 | 3921 | strict-uri-encode@^1.0.0: 3922 | version "1.1.0" 3923 | resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" 3924 | 3925 | string-width@^1.0.1, string-width@^1.0.2: 3926 | version "1.0.2" 3927 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 3928 | dependencies: 3929 | code-point-at "^1.0.0" 3930 | is-fullwidth-code-point "^1.0.0" 3931 | strip-ansi "^3.0.0" 3932 | 3933 | string-width@^2.0.0, string-width@^2.1.0: 3934 | version "2.1.0" 3935 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.0.tgz#030664561fc146c9423ec7d978fe2457437fe6d0" 3936 | dependencies: 3937 | is-fullwidth-code-point "^2.0.0" 3938 | strip-ansi "^4.0.0" 3939 | 3940 | string.prototype.trim@^1.1.2: 3941 | version "1.1.2" 3942 | resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" 3943 | dependencies: 3944 | define-properties "^1.1.2" 3945 | es-abstract "^1.5.0" 3946 | function-bind "^1.0.2" 3947 | 3948 | string_decoder@~1.0.3: 3949 | version "1.0.3" 3950 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" 3951 | dependencies: 3952 | safe-buffer "~5.1.0" 3953 | 3954 | stringstream@~0.0.4: 3955 | version "0.0.5" 3956 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 3957 | 3958 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 3959 | version "3.0.1" 3960 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 3961 | dependencies: 3962 | ansi-regex "^2.0.0" 3963 | 3964 | strip-ansi@^4.0.0: 3965 | version "4.0.0" 3966 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 3967 | dependencies: 3968 | ansi-regex "^3.0.0" 3969 | 3970 | strip-bom@^2.0.0: 3971 | version "2.0.0" 3972 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 3973 | dependencies: 3974 | is-utf8 "^0.2.0" 3975 | 3976 | strip-bom@^3.0.0: 3977 | version "3.0.0" 3978 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 3979 | 3980 | strip-eof@^1.0.0: 3981 | version "1.0.0" 3982 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 3983 | 3984 | strip-indent@^2.0.0: 3985 | version "2.0.0" 3986 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" 3987 | 3988 | strip-json-comments@~2.0.1: 3989 | version "2.0.1" 3990 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 3991 | 3992 | supports-color@3.1.2: 3993 | version "3.1.2" 3994 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" 3995 | dependencies: 3996 | has-flag "^1.0.0" 3997 | 3998 | supports-color@^2.0.0: 3999 | version "2.0.0" 4000 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 4001 | 4002 | supports-color@^3.1.2: 4003 | version "3.2.3" 4004 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" 4005 | dependencies: 4006 | has-flag "^1.0.0" 4007 | 4008 | supports-color@^4.0.0: 4009 | version "4.2.0" 4010 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.0.tgz#ad986dc7eb2315d009b4d77c8169c2231a684037" 4011 | dependencies: 4012 | has-flag "^2.0.0" 4013 | 4014 | symbol-observable@^1.0.1, symbol-observable@^1.0.2, symbol-observable@^1.0.4: 4015 | version "1.0.4" 4016 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" 4017 | 4018 | table@^4.0.1: 4019 | version "4.0.1" 4020 | resolved "https://registry.yarnpkg.com/table/-/table-4.0.1.tgz#a8116c133fac2c61f4a420ab6cdf5c4d61f0e435" 4021 | dependencies: 4022 | ajv "^4.7.0" 4023 | ajv-keywords "^1.0.0" 4024 | chalk "^1.1.1" 4025 | lodash "^4.0.0" 4026 | slice-ansi "0.0.4" 4027 | string-width "^2.0.0" 4028 | 4029 | tar-pack@^3.4.0: 4030 | version "3.4.0" 4031 | resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" 4032 | dependencies: 4033 | debug "^2.2.0" 4034 | fstream "^1.0.10" 4035 | fstream-ignore "^1.0.5" 4036 | once "^1.3.3" 4037 | readable-stream "^2.1.4" 4038 | rimraf "^2.5.1" 4039 | tar "^2.2.1" 4040 | uid-number "^0.0.6" 4041 | 4042 | tar@^2.2.1: 4043 | version "2.2.1" 4044 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" 4045 | dependencies: 4046 | block-stream "*" 4047 | fstream "^1.0.2" 4048 | inherits "2" 4049 | 4050 | test-exclude@^4.1.1: 4051 | version "4.1.1" 4052 | resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.1.tgz#4d84964b0966b0087ecc334a2ce002d3d9341e26" 4053 | dependencies: 4054 | arrify "^1.0.1" 4055 | micromatch "^2.3.11" 4056 | object-assign "^4.1.0" 4057 | read-pkg-up "^1.0.1" 4058 | require-main-filename "^1.0.1" 4059 | 4060 | text-table@~0.2.0: 4061 | version "0.2.0" 4062 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 4063 | 4064 | through@^2.3.6: 4065 | version "2.3.8" 4066 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 4067 | 4068 | tmatch@^2.0.1: 4069 | version "2.0.1" 4070 | resolved "https://registry.yarnpkg.com/tmatch/-/tmatch-2.0.1.tgz#0c56246f33f30da1b8d3d72895abaf16660f38cf" 4071 | 4072 | tmp@^0.0.31: 4073 | version "0.0.31" 4074 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" 4075 | dependencies: 4076 | os-tmpdir "~1.0.1" 4077 | 4078 | to-fast-properties@^1.0.1: 4079 | version "1.0.3" 4080 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" 4081 | 4082 | tough-cookie@~2.3.0: 4083 | version "2.3.2" 4084 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" 4085 | dependencies: 4086 | punycode "^1.4.1" 4087 | 4088 | trim-right@^1.0.1: 4089 | version "1.0.1" 4090 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 4091 | 4092 | tryit@^1.0.1: 4093 | version "1.0.3" 4094 | resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" 4095 | 4096 | tunnel-agent@^0.6.0: 4097 | version "0.6.0" 4098 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 4099 | dependencies: 4100 | safe-buffer "^5.0.1" 4101 | 4102 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 4103 | version "0.14.5" 4104 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 4105 | 4106 | type-check@~0.3.2: 4107 | version "0.3.2" 4108 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 4109 | dependencies: 4110 | prelude-ls "~1.1.2" 4111 | 4112 | typedarray@^0.0.6: 4113 | version "0.0.6" 4114 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 4115 | 4116 | ua-parser-js@^0.7.9: 4117 | version "0.7.13" 4118 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.13.tgz#cd9dd2f86493b3f44dbeeef3780fda74c5ee14be" 4119 | 4120 | uglify-js@^2.6: 4121 | version "2.8.29" 4122 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" 4123 | dependencies: 4124 | source-map "~0.5.1" 4125 | yargs "~3.10.0" 4126 | optionalDependencies: 4127 | uglify-to-browserify "~1.0.0" 4128 | 4129 | uglify-to-browserify@~1.0.0: 4130 | version "1.0.2" 4131 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" 4132 | 4133 | uid-number@^0.0.6: 4134 | version "0.0.6" 4135 | resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" 4136 | 4137 | user-home@^1.1.1: 4138 | version "1.1.1" 4139 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" 4140 | 4141 | util-deprecate@~1.0.1: 4142 | version "1.0.2" 4143 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 4144 | 4145 | uuid@^3.0.0, uuid@^3.0.1: 4146 | version "3.1.0" 4147 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" 4148 | 4149 | v8flags@^2.0.10: 4150 | version "2.1.1" 4151 | resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" 4152 | dependencies: 4153 | user-home "^1.1.1" 4154 | 4155 | validate-npm-package-license@^3.0.1: 4156 | version "3.0.1" 4157 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" 4158 | dependencies: 4159 | spdx-correct "~1.0.0" 4160 | spdx-expression-parse "~1.0.0" 4161 | 4162 | value-equal@^0.2.0: 4163 | version "0.2.1" 4164 | resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.2.1.tgz#c220a304361fce6994dbbedaa3c7e1a1b895871d" 4165 | 4166 | verror@1.3.6: 4167 | version "1.3.6" 4168 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" 4169 | dependencies: 4170 | extsprintf "1.0.2" 4171 | 4172 | warning@^3.0.0: 4173 | version "3.0.0" 4174 | resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" 4175 | dependencies: 4176 | loose-envify "^1.0.0" 4177 | 4178 | whatwg-fetch@>=0.10.0: 4179 | version "2.0.3" 4180 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 4181 | 4182 | which-module@^2.0.0: 4183 | version "2.0.0" 4184 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 4185 | 4186 | which@^1.2.10, which@^1.2.4, which@^1.2.9: 4187 | version "1.2.14" 4188 | resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" 4189 | dependencies: 4190 | isexe "^2.0.0" 4191 | 4192 | wide-align@^1.1.0: 4193 | version "1.1.2" 4194 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" 4195 | dependencies: 4196 | string-width "^1.0.2" 4197 | 4198 | window-size@0.1.0: 4199 | version "0.1.0" 4200 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" 4201 | 4202 | wordwrap@0.0.2: 4203 | version "0.0.2" 4204 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" 4205 | 4206 | wordwrap@~0.0.2: 4207 | version "0.0.3" 4208 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" 4209 | 4210 | wordwrap@~1.0.0: 4211 | version "1.0.0" 4212 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 4213 | 4214 | wrap-ansi@^2.0.0: 4215 | version "2.1.0" 4216 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 4217 | dependencies: 4218 | string-width "^1.0.1" 4219 | strip-ansi "^3.0.1" 4220 | 4221 | wrappy@1: 4222 | version "1.0.2" 4223 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 4224 | 4225 | write-file-atomic@^1.1.4: 4226 | version "1.3.4" 4227 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" 4228 | dependencies: 4229 | graceful-fs "^4.1.11" 4230 | imurmurhash "^0.1.4" 4231 | slide "^1.1.5" 4232 | 4233 | write@^0.2.1: 4234 | version "0.2.1" 4235 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 4236 | dependencies: 4237 | mkdirp "^0.5.1" 4238 | 4239 | xml-splitter@~1.2.1: 4240 | version "1.2.1" 4241 | resolved "https://registry.yarnpkg.com/xml-splitter/-/xml-splitter-1.2.1.tgz#b3fd28c88063e510ab6a35ed0943292409c4c812" 4242 | dependencies: 4243 | clone "~0.1.11" 4244 | sax "~0.5.5" 4245 | 4246 | xtend@~4.0.1: 4247 | version "4.0.1" 4248 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 4249 | 4250 | y18n@^3.2.1: 4251 | version "3.2.1" 4252 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" 4253 | 4254 | yallist@^2.1.2: 4255 | version "2.1.2" 4256 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 4257 | 4258 | yargs-parser@^5.0.0: 4259 | version "5.0.0" 4260 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" 4261 | dependencies: 4262 | camelcase "^3.0.0" 4263 | 4264 | yargs-parser@^7.0.0: 4265 | version "7.0.0" 4266 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" 4267 | dependencies: 4268 | camelcase "^4.1.0" 4269 | 4270 | yargs@^8.0.1: 4271 | version "8.0.2" 4272 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" 4273 | dependencies: 4274 | camelcase "^4.1.0" 4275 | cliui "^3.2.0" 4276 | decamelize "^1.1.1" 4277 | get-caller-file "^1.0.1" 4278 | os-locale "^2.0.0" 4279 | read-pkg-up "^2.0.0" 4280 | require-directory "^2.1.1" 4281 | require-main-filename "^1.0.1" 4282 | set-blocking "^2.0.0" 4283 | string-width "^2.0.0" 4284 | which-module "^2.0.0" 4285 | y18n "^3.2.1" 4286 | yargs-parser "^7.0.0" 4287 | 4288 | yargs@~3.10.0: 4289 | version "3.10.0" 4290 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" 4291 | dependencies: 4292 | camelcase "^1.0.2" 4293 | cliui "^2.1.0" 4294 | decamelize "^1.0.0" 4295 | window-size "0.1.0" 4296 | --------------------------------------------------------------------------------