From c36863bca41c01c53bd3e0e458ce268a3c162ddf Mon Sep 17 00:00:00 2001 From: Luis Deschamps Rudge Date: Fri, 6 Oct 2017 09:54:17 -0300 Subject: [PATCH 1/7] upgrading packages + fixing tests and transitions --- .vscode/settings.json | 7 +- css/_transitions.styl | 20 +- css/index.styl | 4 +- package.json | 62 +- .../core/__snapshots__/index.test.js.snap | 4 +- .../field/__snapshots__/username.test.js.snap | 2 +- src/__tests__/setup-tests.js | 10 + src/__tests__/ui/box/global_message.test.jsx | 8 +- src/core.js | 2 +- src/ui/box/chrome.jsx | 42 +- src/ui/box/container.jsx | 6 +- test/acceptance_test_utils.js | 101 +- test/helper/ui.js | 184 +-- test/setup.js | 7 + yarn.lock | 1424 +++++++++++------ 15 files changed, 1220 insertions(+), 663 deletions(-) create mode 100644 src/__tests__/setup-tests.js create mode 100644 test/setup.js diff --git a/.vscode/settings.json b/.vscode/settings.json index 727640f51..0f1ef7352 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,12 +1,13 @@ -// Place your settings in this file to overwrite default and user settings. { + // Place your settings in this file to overwrite default and user settings. "search.exclude": { "**/node_modules": true, "**/bower_components": true, "**/lib": true, - "**/coverage": true + "**/coverage": true, + "**/examples": true }, "editor.formatOnSave": true, "prettier.printWidth": 100, "prettier.singleQuote": true -} \ No newline at end of file +} diff --git a/css/_transitions.styl b/css/_transitions.styl index ebf0898eb..0e7cd53ff 100644 --- a/css/_transitions.styl +++ b/css/_transitions.styl @@ -14,12 +14,12 @@ /*Slide out*/ -.slide-leave { +.slide-exit { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } -.slide-leave.slide-leave-active { +.slide-exit.slide-exit-active { -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); -webkit-transition: -webkit-transform .3s ease-in; @@ -58,13 +58,13 @@ /*vslide out*/ -.vslide-leave { +.vslide-exit { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } -.vslide-leave.vslide-leave-active { +.vslide-exit.vslide-exit-active { -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); -webkit-transition: -webkit-transform .35s; @@ -93,7 +93,7 @@ /*Horizontal fade out*/ -.horizontal-fade-leave { +.horizontal-fade-exit { opacity: 1; position: absolute; width: 100%; @@ -101,7 +101,7 @@ left: 0; } -.horizontal-fade-leave.horizontal-fade-leave-active { +.horizontal-fade-exit.horizontal-fade-exit-active { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); @@ -132,7 +132,7 @@ /* reverse horizontal fade out */ -.reverse-horizontal-fade-leave { +.reverse-horizontal-fade-exit { opacity: 1; position: absolute; width: 100%; @@ -140,7 +140,7 @@ left: 0; } -.reverse-horizontal-fade-leave.reverse-horizontal-fade-leave-active { +.reverse-horizontal-fade-exit.reverse-horizontal-fade-exit-active { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); @@ -163,7 +163,7 @@ /* fade out*/ -.fade-leave { +.fade-exit { opacity: 1; position: absolute; width: 100%; @@ -173,7 +173,7 @@ opacity: 1; } -.fade-leave.fade-leave-active { +.fade-exit.fade-exit-active { opacity: 0; -webkit-transition: opacity .5s linear; diff --git a/css/index.styl b/css/index.styl index 8b44fd201..7fa4c8f83 100644 --- a/css/index.styl +++ b/css/index.styl @@ -58,7 +58,7 @@ tabsHeight = 40px paddingTop 10px paddingBottom 10px - &.global-message-leave + &.global-message-exit transition all 0.2s height 0 paddingTop 0 @@ -132,7 +132,7 @@ tabsHeight = 40px background white position relative - &.horizontal-fade-leave + &.horizontal-fade-exit .auth0-lock-content, .auth0-lock-terms opacity .3 pointer-events none diff --git a/package.json b/package.json index 987adcc6c..03bb4c5ee 100644 --- a/package.json +++ b/package.json @@ -4,15 +4,7 @@ "description": "Auth0 Lock", "author": "Auth0 (http://auth0.com)", "license": "MIT", - "keywords": [ - "auth0", - "auth", - "openid", - "authentication", - "passwordless", - "browser", - "jwt" - ], + "keywords": ["auth0", "auth", "openid", "authentication", "passwordless", "browser", "jwt"], "repository": { "type": "git", "url": "git://github.com/auth0/lock" @@ -28,9 +20,12 @@ "precommit": "lint-staged", "lint": "eslint --ext .jsx,.js src/", "test": "cross-env BABEL_ENV=test zuul -- test/**/*.test.js", - "test:browser": "cross-env BABEL_ENV=test zuul --local 8080 --disable-tunnel -- test/**/*.test.js", - "test:cli": "cross-env BABEL_ENV=test mochify --extension=.jsx --transform=babelify test/**/*.test.js", - "test:watch": "cross-env BABEL_ENV=test mochify --watch --extension=.jsx --transform=babelify test/**/*.test.js", + "test:browser": + "cross-env BABEL_ENV=test zuul --local 8080 --disable-tunnel -- test/**/*.test.js", + "test:cli": + "cross-env BABEL_ENV=test mochify --extension=.jsx --transform=babelify ./test/setup.js test/**/*.test.js", + "test:watch": + "cross-env BABEL_ENV=test mochify --watch --extension=.jsx --transform=babelify ./test/setup.js test/**/*.test.js", "test:jest": "jest --coverage", "test:jest:watch": "jest --watch --coverage", "publish:cdn": "ccu", @@ -45,7 +40,7 @@ "babel-plugin-transform-css-import-to-string": "0.0.2", "babel-plugin-version-inline": "^1.0.0", "babel-preset-es2015": "^6.22.0", - "babel-preset-react": "^6.16.0", + "babel-preset-react": "^6.24.1", "babel-preset-stage-0": "^6.3.13", "babelify": "^7.2.0", "bump-version": "^0.5.0", @@ -53,7 +48,8 @@ "cross-env": "^3.1.4", "css-loader": "^0.26.1", "dotenv": "^4.0.0", - "enzyme": "2.7.0", + "enzyme": "^3.1.0", + "enzyme-adapter-react-16": "^1.0.1", "eslint": "^3.19.0", "eslint-config-prettier": "^1.7.0", "eslint-plugin-react": "^6.10.3", @@ -68,14 +64,13 @@ "grunt-exec": "^0.4.6", "grunt-webpack": "^2.0.1", "husky": "^0.13.3", - "jest": "19.0.0", + "jest": "^21.2.1", "json-beautify": "^1.0.1", "jsonwebtoken": "^7.3.0", "lint-staged": "^3.4.0", - "mochify": "^2.12.0", + "mochify": "^3.3.0", "prettier": "^1.2.2", - "react-addons-test-utils": "^15.6.0", - "react-test-renderer": "^15.6.1", + "react-test-renderer": "^16.0.0", "semver": "^5.3.0", "sinon": "^1.15.4", "stylus": "^0.54.5", @@ -98,10 +93,10 @@ "immutable": "^3.7.3", "jsonp": "^0.2.0", "password-sheriff": "^1.1.0", - "prop-types": "^15.5.10", - "react": "^15.6.1 || ^16.0.0", - "react-dom": "^15.6.1 || ^16.0.0", - "react-transition-group": "^1.2.0", + "prop-types": "^15.6.0", + "react": "^16.0.0", + "react-dom": "^16.0.0", + "react-transition-group": "^2.2.1", "superagent": "^3.3.1", "trim": "0.0.1", "url-join": "^1.1.0" @@ -114,32 +109,25 @@ "localPath": "build" }, "jest": { - "modulePaths": [ - "/src/", - "/src/__tests__" - ], + "modulePaths": ["/src/", "/src/__tests__"], + "setupFiles": ["/src/__tests__/setup-tests.js"], "coveragePathIgnorePatterns": [ "/node_modules/", "/test/", "/lib/", - "/src/__tests__/testUtils.js" + "/src/__tests__/testUtils.js", + "/src/__tests__/setup-tests.js" ], "testPathIgnorePatterns": [ "/node_modules/", "/test/", "/lib/", - "/src/__tests__/testUtils.js" + "/src/__tests__/testUtils.js", + "/src/__tests__/setup-tests.js" ], - "coverageReporters": [ - "lcov", - "text-summary" - ] + "coverageReporters": ["lcov", "text-summary"] }, "lint-staged": { - "*.{js,jsx}": [ - "npm run lint", - "prettier --write --print-width 100 --single-quote", - "git add" - ] + "*.{js,jsx}": ["npm run lint", "prettier --write --print-width 100 --single-quote", "git add"] } } diff --git a/src/__tests__/core/__snapshots__/index.test.js.snap b/src/__tests__/core/__snapshots__/index.test.js.snap index bddab12d8..6cc3edd3a 100644 --- a/src/__tests__/core/__snapshots__/index.test.js.snap +++ b/src/__tests__/core/__snapshots__/index.test.js.snap @@ -6,9 +6,9 @@ exports[`setResolvedConnection sets the connection 1`] = ` Array [ "m", "resolvedConnection", - Object { - "name": "bar", + Immutable.Map { "type": "database", + "name": "bar", }, ] `; diff --git a/src/__tests__/field/__snapshots__/username.test.js.snap b/src/__tests__/field/__snapshots__/username.test.js.snap index 7d5b77e0c..488ffbb6a 100644 --- a/src/__tests__/field/__snapshots__/username.test.js.snap +++ b/src/__tests__/field/__snapshots__/username.test.js.snap @@ -9,7 +9,7 @@ Object { exports[`field/username setUsername() calls setField 1`] = ` Array [ - Object { + Immutable.Map { "validation": null, }, "username", diff --git a/src/__tests__/setup-tests.js b/src/__tests__/setup-tests.js new file mode 100644 index 000000000..d7c7b3222 --- /dev/null +++ b/src/__tests__/setup-tests.js @@ -0,0 +1,10 @@ +// setup file +import { configure } from 'enzyme'; +import Adapter from 'enzyme-adapter-react-16'; + +configure({ adapter: new Adapter() }); + +//jest polyfills +global.requestAnimationFrame = function(callback) { + setTimeout(callback, 0); +}; diff --git a/src/__tests__/ui/box/global_message.test.jsx b/src/__tests__/ui/box/global_message.test.jsx index 3b9fb1f44..15ef853e8 100644 --- a/src/__tests__/ui/box/global_message.test.jsx +++ b/src/__tests__/ui/box/global_message.test.jsx @@ -19,7 +19,7 @@ describe('GlobalMessage', () => { wrapper.getDOMNode().getBoundingClientRect = getBoundingClientRectSpy; wrapper.getDOMNode().scrollIntoView = scrollIntoViewSpy; - wrapper.getNode().componentDidMount(); + wrapper.instance().componentDidMount(); expect(getBoundingClientRectSpy).toHaveBeenCalled(); expect(scrollIntoViewSpy).toHaveBeenCalledWith(true); @@ -31,7 +31,7 @@ describe('GlobalMessage', () => { wrapper.getDOMNode().getBoundingClientRect = getBoundingClientRectSpy; wrapper.getDOMNode().scrollIntoView = scrollIntoViewSpy; - wrapper.getNode().componentDidMount(); + wrapper.instance().componentDidMount(); expect(getBoundingClientRectSpy).toHaveBeenCalled(); expect(scrollIntoViewSpy).not.toHaveBeenCalled(); @@ -43,7 +43,7 @@ describe('GlobalMessage', () => { wrapper.getDOMNode().getBoundingClientRect = getBoundingClientRectSpy; wrapper.getDOMNode().scrollIntoView = scrollIntoViewSpy; - wrapper.getNode().componentDidMount(); + wrapper.instance().componentDidMount(); expect(getBoundingClientRectSpy).toHaveBeenCalled(); expect(scrollIntoViewSpy).toHaveBeenCalledWith(true); @@ -55,7 +55,7 @@ describe('GlobalMessage', () => { wrapper.getDOMNode().getBoundingClientRect = getBoundingClientRectSpy; wrapper.getDOMNode().scrollIntoView = scrollIntoViewSpy; - wrapper.getNode().componentDidMount(); + wrapper.instance().componentDidMount(); expect(scrollIntoViewSpy).not.toHaveBeenCalled(); }); diff --git a/src/core.js b/src/core.js index 3aa728b2a..f639661b6 100644 --- a/src/core.js +++ b/src/core.js @@ -120,7 +120,7 @@ export default class Base extends EventEmitter { tabs: screen.renderTabs(m), terms: screen.renderTerms(m, i18nProp.html('signUpTerms')), title: getScreenTitle(m), - transitionName: screen.name === 'loading' ? 'fade' : 'horizontal-fade', + classNames: screen.name === 'loading' ? 'fade' : 'horizontal-fade', scrollGlobalMessagesIntoView: l.ui.scrollGlobalMessagesIntoView(m) }; render(l.ui.containerID(m), props); diff --git a/src/ui/box/chrome.jsx b/src/ui/box/chrome.jsx index 3a301882e..5cf2bc131 100644 --- a/src/ui/box/chrome.jsx +++ b/src/ui/box/chrome.jsx @@ -1,7 +1,7 @@ import PropTypes from 'prop-types'; import React from 'react'; import ReactDOM from 'react-dom'; -import ReactCSSTransitionGroup from 'react-transition-group/CSSTransitionGroup'; +import { TransitionGroup, CSSTransition } from 'react-transition-group'; import MultisizeSlide from './multisize_slide'; import GlobalMessage from './global_message'; import * as l from '../../core/index'; @@ -193,7 +193,7 @@ export default class Chrome extends React.Component { success, terms, title, - transitionName, + classNames, scrollGlobalMessagesIntoView } = this.props; @@ -260,21 +260,21 @@ export default class Chrome extends React.Component { backgroundColor={primaryColor} logoUrl={logo} /> - - {globalSuccess} - {globalError} - + + +
+ {globalSuccess} + {globalError} +
+
+
@@ -295,14 +295,16 @@ export default class Chrome extends React.Component {
{submitButton} - - {auxiliaryPane} - + {auxiliaryPane && + + + {auxiliaryPane} + + }
); } @@ -338,7 +340,7 @@ Chrome.propTypes = { success: PropTypes.node, terms: PropTypes.element, title: PropTypes.string, - transitionName: PropTypes.string.isRequired, + classNames: PropTypes.string.isRequired, scrollGlobalMessagesIntoView: PropTypes.bool }; diff --git a/src/ui/box/container.jsx b/src/ui/box/container.jsx index be2d37624..769c473f0 100644 --- a/src/ui/box/container.jsx +++ b/src/ui/box/container.jsx @@ -155,7 +155,7 @@ export default class Container extends React.Component { tabs, terms, title, - transitionName, + classNames, scrollGlobalMessagesIntoView } = this.props; @@ -231,7 +231,7 @@ export default class Container extends React.Component { tabs={tabs} terms={terms} title={title} - transitionName={transitionName} + classNames={classNames} scrollGlobalMessagesIntoView={scrollGlobalMessagesIntoView} /> @@ -265,7 +265,7 @@ Container.propTypes = { tabs: PropTypes.bool, terms: PropTypes.element, title: PropTypes.string, - transitionName: PropTypes.string.isRequired, + classNames: PropTypes.string.isRequired, scrollGlobalMessagesIntoView: PropTypes.bool // escHandler // submitHandler, diff --git a/test/acceptance_test_utils.js b/test/acceptance_test_utils.js index 7f9ce6753..1ad68646f 100644 --- a/test/acceptance_test_utils.js +++ b/test/acceptance_test_utils.js @@ -1,7 +1,7 @@ import Immutable, { Map, Set } from 'immutable'; import React from 'react'; import CSSCore from 'fbjs/lib/CSSCore'; -import { Simulate } from 'react-addons-test-utils'; +import { Simulate } from 'react-dom/test-utils'; import Auth0LockPasswordless from '../src/index'; import { spy, stub } from 'sinon'; import webApi from '../src/core/web_api'; @@ -10,7 +10,7 @@ import browser from '../src/browser'; // TODO: remove once all references have been replaced by CSSCore.hasClass. function hasClass(element, str) { - const classes = new Set(element.className.split(" ")); + const classes = new Set(element.className.split(' ')); return classes.has(str); } @@ -18,28 +18,29 @@ function hasClass(element, str) { // transition between them. This means that two credential panes will coexist // for a moment. We may want to perform a query without waiting until the // transition is over (because is rather long). -const CURRENT_CRED_PANE_SELECTOR = ".auth0-lock-cred-pane:not(.horizontal-fade-leave):not(.reverse-horizontal-fade-leave)"; +const CURRENT_CRED_PANE_SELECTOR = + '.auth0-lock-cred-pane:not(.horizontal-fade-exit):not(.reverse-horizontal-fade-exit)'; export const CRED_PANE_DELAY = 1850; // We also perform an animated transition with auxiliary panes. -const AUXILIARY_PANE_SELECTOR_SUFFIX = ":not(.slide-leave)"; +const AUXILIARY_PANE_SELECTOR_SUFFIX = ':not(.slide-exit)'; export const AUXILIARY_PANE_DELAY = 400; -export const SMS_GENERIC_ERROR = "We're sorry, something went wrong when sending the SMS." -export const EMAIL_GENERIC_ERROR = "We're sorry, something went wrong when sending the email." +export const SMS_GENERIC_ERROR = "We're sorry, something went wrong when sending the SMS."; +export const EMAIL_GENERIC_ERROR = "We're sorry, something went wrong when sending the email."; -export function constructLock(cid = "a", domain = "a") { +export function constructLock(cid = 'a', domain = 'a') { return new Auth0LockPasswordless(cid, domain); } function q(lock, query, all = false) { query = `#auth0-lock-container-${lock.id} ${query}`; - const method = all ? "querySelectorAll" : "querySelector"; + const method = all ? 'querySelectorAll' : 'querySelector'; return global.document[method](query); } function qLock(lock, ensure = false) { - const node = q(lock, ".auth0-lock"); + const node = q(lock, '.auth0-lock'); if (ensure && !node) { throw new Error("Unable to query the Lock: couldn't find the element"); } @@ -59,11 +60,11 @@ export function openLock(lock, method, options = {}) { export function isOpened(lock) { const node = qLock(lock); - return node && CSSCore.hasClass(node, "auth0-lock-opened"); + return node && CSSCore.hasClass(node, 'auth0-lock-opened'); } export function closeLock(lock) { - const node = q(lock, ".auth0-lock-close-button"); + const node = q(lock, '.auth0-lock-close-button'); if (!node) { throw new Error("Unable to close the Lock: couldn't find the close button"); } @@ -95,7 +96,7 @@ export function qInputValue(lock, name) { } export function fillInput(lock, name, value) { - Simulate.change(qInput(lock, name, true), {target: {value: value}}); + Simulate.change(qInput(lock, name, true), { target: { value: value } }); } export function clickInput(lock, str) { @@ -106,15 +107,17 @@ export function isInputInvalid(lock, name) { const input = qInput(lock, name, true); const node = input.parentNode && input.parentNode.parentNode; if (!node) { - throw new Error(`Unable to tell whether '${name}' input is invalid: can't find container element responsible to indicate it`); + throw new Error( + `Unable to tell whether '${name}' input is invalid: can't find container element responsible to indicate it` + ); } - return CSSCore.hasClass(node, "auth0-lock-error"); + return CSSCore.hasClass(node, 'auth0-lock-error'); } export function submit(lock) { resetWebApis(); - const form = q(lock, ".auth0-lock-widget"); - if (!form || form.tagName.toUpperCase() !== "FORM") { + const form = q(lock, '.auth0-lock-widget'); + if (!form || form.tagName.toUpperCase() !== 'FORM') { throw new Error(`Unable to submit form: can't find the element`); } @@ -122,10 +125,10 @@ export function submit(lock) { } export function stubWebApis() { - stub(webApi, "logIn").returns(undefined); - stub(webApi, "startPasswordless").returns(undefined); - stub(gravatarActions, "debouncedRequestGravatar").returns(undefined); - stub(gravatarActions, "requestGravatar").returns(undefined); + stub(webApi, 'logIn').returns(undefined); + stub(webApi, 'startPasswordless').returns(undefined); + stub(gravatarActions, 'debouncedRequestGravatar').returns(undefined); + stub(gravatarActions, 'requestGravatar').returns(undefined); } export function restoreWebApis() { @@ -149,13 +152,13 @@ export function startPasswordlessCallCount() { export function isLoading(lock) { const node = qLock(lock, true); - return CSSCore.hasClass(node, "auth0-lock-mode-loading"); + return CSSCore.hasClass(node, 'auth0-lock-mode-loading'); } export function simulateStartPasswordlessResponse(error = null) { const lastCall = webApi.startPasswordless.lastCall; if (!lastCall) { - throw new Error("Unable to simulate start passwordless response: no request has been made"); + throw new Error('Unable to simulate start passwordless response: no request has been made'); } lastCall.args[lastCall.args.length - 1].call(undefined, error); @@ -167,28 +170,31 @@ export function hasStartedPasswordless(params) { } const lastCall = webApi.startPasswordless.lastCall; const paramsFromLastCall = lastCall && lastCall.args[1]; - return paramsFromLastCall && - Immutable.is(Immutable.fromJS(params), Immutable.fromJS(paramsFromLastCall)); + return ( + paramsFromLastCall && + Immutable.is(Immutable.fromJS(params), Immutable.fromJS(paramsFromLastCall)) + ); } export function isSomethingWrong(lock, expectedMessage) { - const node = q(lock, ".auth0-global-grobal-error"); + const node = q(lock, '.auth0-global-grobal-error'); if (!node) { return false; } const acutalMessage = node.textContent; - return typeof expectedMessage.test === "function" ? - expectedMessage.test(acutalMessage) : expectedMessage === acutalMessage; + return typeof expectedMessage.test === 'function' + ? expectedMessage.test(acutalMessage) + : expectedMessage === acutalMessage; } export function simulateSingInResponse(error = null) { const lastCall = webApi.logIn.lastCall; if (!lastCall) { - throw new Error("Unable to simulate sign in response: no request has been made"); + throw new Error('Unable to simulate sign in response: no request has been made'); } - const args = error ? [error] : [null, "fake arg"]; + const args = error ? [error] : [null, 'fake arg']; lastCall.args[lastCall.args.length - 1].call(undefined, ...args); } @@ -201,11 +207,11 @@ export function hasSignedInWith(params) { } export function isShowingConfirmation(lock) { - return !!q(lock, ".auth0-lock-confirmation:not(.slide-leave)"); + return !!q(lock, '.auth0-lock-confirmation:not(.slide-exit)'); } function qResendLink(lock, ensure = false) { - const node = q(lock, ".auth0-lock-resend-link"); + const node = q(lock, '.auth0-lock-resend-link'); if (ensure && !node) { throw new Error("Unable to click the resend link: couldn't find element"); } @@ -223,25 +229,29 @@ export function clickResendLink(lock) { export function isResendingLink(lock) { const node = qResendLink(lock); - return node && node.textContent === "Resending..."; + return node && node.textContent === 'Resending...'; } export function hasLinkBeenResent(lock) { - const node = q(lock, ".auth0-lock-sent-label") + const node = q(lock, '.auth0-lock-sent-label'); if (!node) { - throw new Error(`Unable to tell whether the link has been resent: can't find the element responsible to indicate it`); + throw new Error( + `Unable to tell whether the link has been resent: can't find the element responsible to indicate it` + ); } - return node.textContent === "Sent!"; + return node.textContent === 'Sent!'; } export function hasResendingFailed(lock) { - const node = q(lock, ".auth0-lock-sent-failed-label") + const node = q(lock, '.auth0-lock-sent-failed-label'); if (!node) { - throw new Error(`Unable to tell whether the resending link has failed: can't find the element responsible to indicate it`); + throw new Error( + `Unable to tell whether the resending link has failed: can't find the element responsible to indicate it` + ); } - return node.textContent === "Failed!"; + return node.textContent === 'Failed!'; } export function isRetryAvailable(lock) { @@ -254,25 +264,32 @@ function isShowingAuxiliaryPane(lock, selector) { } export function isShowingLocationSelector(lock) { - return isShowingAuxiliaryPane(lock, ".auth0-lock-select-country"); + return isShowingAuxiliaryPane(lock, '.auth0-lock-select-country'); } export function qLocations(lock) { // TODO: there are too many details here that are subject to change. It would // be nice to have some abstraction to query inside an active auxiliary pane. - return q(lock, `.auth0-lock-select-country${AUXILIARY_PANE_SELECTOR_SUFFIX} .auth0-lock-list-code > ul > li`, true); + return q( + lock, + `.auth0-lock-select-country${AUXILIARY_PANE_SELECTOR_SUFFIX} .auth0-lock-list-code > ul > li`, + true + ); } export function filterLocations(lock, value) { // TODO: there are too many details here that are subject to change. It would // be nice to have some abstraction to query inside an active auxiliary pane // or an input that doesn't belong to a credential pane. - const input = q(lock, `.auth0-lock-select-country${AUXILIARY_PANE_SELECTOR_SUFFIX} .auth0-lock-search input`); + const input = q( + lock, + `.auth0-lock-select-country${AUXILIARY_PANE_SELECTOR_SUFFIX} .auth0-lock-search input` + ); if (!input) { throw new Error(`Unable to filter locations: can't find the location search input`); } - Simulate.change(input, {target: {value: value}}); + Simulate.change(input, { target: { value: value } }); } export function clickFirstLocation(lock) { diff --git a/test/helper/ui.js b/test/helper/ui.js index 301ba69f3..227171325 100644 --- a/test/helper/ui.js +++ b/test/helper/ui.js @@ -1,4 +1,4 @@ -import { Simulate } from 'react-addons-test-utils'; +import { Simulate } from 'react-dom/test-utils'; import { stub } from 'sinon'; import { Map } from 'immutable'; import Auth0Lock from '../../src/index'; @@ -12,39 +12,39 @@ import ssoData from './sso_data'; // stub, mock and spy export const stubWebApis = () => { - stub(webApi, "logIn").returns(undefined); - stub(gravatarProvider, "displayName", (email, cb) => { - cb(null, "someone"); + stub(webApi, 'logIn').returns(undefined); + stub(gravatarProvider, 'displayName', (email, cb) => { + cb(null, 'someone'); }); - stub(gravatarProvider, "url", (email, cb) => { - cb(null, "https://www.gravatar.com/avatar/35b47dce0e2c9ced8b500dca20e1a657.png?size=160"); + stub(gravatarProvider, 'url', (email, cb) => { + cb(null, 'https://www.gravatar.com/avatar/35b47dce0e2c9ced8b500dca20e1a657.png?size=160'); }); - stub(ClientSettings, "fetchClientSettings", (...args) => { + stub(ClientSettings, 'fetchClientSettings', (...args) => { args[args.length - 1](null, clientSettings); }); - stub(SSOData, "fetchSSOData", (id, withAD, cb) => { + stub(SSOData, 'fetchSSOData', (id, withAD, cb) => { cb(null, withAD ? { connection: {}, ...ssoData } : ssoData); }); -} +}; export const stubWebApisForKerberos = () => { SSOData.fetchSSOData.restore(); - stub(SSOData, "fetchSSOData", (id, withAD, cb) => { + stub(SSOData, 'fetchSSOData', (id, withAD, cb) => { cb(null, withAD ? { connection: {}, strategy: 'ad', ...ssoData } : ssoData); }); -} +}; export const unStubWebApisForKerberos = () => { SSOData.fetchSSOData.restore(); - stub(SSOData, "fetchSSOData", (id, withAD, cb) => { + stub(SSOData, 'fetchSSOData', (id, withAD, cb) => { cb(null, withAD ? { connection: {}, ...ssoData } : ssoData); }); -} +}; -export const assertAuthorizeRedirection = (cb) => { +export const assertAuthorizeRedirection = cb => { if (webApi.logIn.restore) { webApi.logIn.restore(); } - stub(webApi, "logIn", cb); + stub(webApi, 'logIn', cb); }; export const restoreWebApis = () => { @@ -53,7 +53,7 @@ export const restoreWebApis = () => { gravatarProvider.url.restore(); ClientSettings.fetchClientSettings.restore(); SSOData.fetchSSOData.restore(); -} +}; // api call checks @@ -62,54 +62,50 @@ export const wasLoginAttemptedWith = params => { if (!lastCall) return false; const paramsFromLastCall = lastCall.args[1]; - return Map(params).reduce( - (r, v, k) => r && paramsFromLastCall[k] === v, - true - ); + return Map(params).reduce((r, v, k) => r && paramsFromLastCall[k] === v, true); }; // rendering export const displayLock = (name, opts = {}, done = () => {}, show_ops = {}) => { - switch(name) { - case "enterprise and corporate": - opts.allowedConnections = ["auth0.com", "rolodato.com"]; - break; - case "single database": - opts.allowedConnections = ["db"]; - break; - case "single enterprise": - opts.allowedConnections = ["auth0.com"]; - break; - case "multiple enterprise": - opts.allowedConnections = ["auth0.com", "auth10.com"]; - break; - case "single corporate": - opts.allowedConnections = ["rolodato.com"]; - break; - case "multiple corporate, one without domain": - opts.allowedConnections = ["rolodato.com", "corporate-no-domain"]; - break; - case "multiple social": - opts.allowedConnections = ["facebook", "twitter", "github"]; - break; - case "kerberos": - opts.allowedConnections = ["rolodato.com"]; - break; + switch (name) { + case 'enterprise and corporate': + opts.allowedConnections = ['auth0.com', 'rolodato.com']; + break; + case 'single database': + opts.allowedConnections = ['db']; + break; + case 'single enterprise': + opts.allowedConnections = ['auth0.com']; + break; + case 'multiple enterprise': + opts.allowedConnections = ['auth0.com', 'auth10.com']; + break; + case 'single corporate': + opts.allowedConnections = ['rolodato.com']; + break; + case 'multiple corporate, one without domain': + opts.allowedConnections = ['rolodato.com', 'corporate-no-domain']; + break; + case 'multiple social': + opts.allowedConnections = ['facebook', 'twitter', 'github']; + break; + case 'kerberos': + opts.allowedConnections = ['rolodato.com']; + break; } - const lock = new Auth0Lock("cid", "domain", opts); + const lock = new Auth0Lock('cid', 'domain', opts); setTimeout(() => lock.show(show_ops), 175); setTimeout(done, 200); return lock; }; - // queries const q = (lock, query, all = false) => { query = `#auth0-lock-container-${lock.id} ${query}`; - const method = all ? "querySelectorAll" : "querySelector"; + const method = all ? 'querySelectorAll' : 'querySelector'; return global.document[method](query); }; @@ -117,8 +113,8 @@ const qView = (lock, query, all = false) => { // NOTE: When an animation is running, two views will be in the // DOM. Both are siblings, and the one that is entering (that is, // the one that will remain visible) is always the first sibling. - const view = q(lock, ".auth0-lock-view-content"); - const method = all ? "querySelectorAll" : "querySelector"; + const view = q(lock, '.auth0-lock-view-content'); + const method = all ? 'querySelectorAll' : 'querySelector'; return view ? view[method](query) : null; }; @@ -141,59 +137,62 @@ const hasOneViewFn = query => lock => qView(lock, query, true).length == 1; const isTabCurrent = (lock, regexp) => { // TODO: this won't work with translations, we need another // mechanism. - const currentTabs = qView(lock, ".auth0-lock-tabs-current", true); - return currentTabs.length === 1 - && currentTabs[0].innerText.match(regexp); + const currentTabs = qView(lock, '.auth0-lock-tabs-current', true); + return currentTabs.length === 1 && currentTabs[0].innerText.match(regexp); }; -export const hasAlternativeLink = hasViewFn(".auth0-lock-alternative-link"); -export const hasBackButton = hasFn(".auth0-lock-back-button"); -export const hasEmailInput = hasInputFn("email"); -export const hasLoginSignUpTabs = hasViewFn(".auth0-lock-tabs"); +export const hasAlternativeLink = hasViewFn('.auth0-lock-alternative-link'); +export const hasBackButton = hasFn('.auth0-lock-back-button'); +export const hasEmailInput = hasInputFn('email'); +export const hasLoginSignUpTabs = hasViewFn('.auth0-lock-tabs'); export const hasNoQuickAuthButton = lock => { - return !qView(lock, ".auth0-lock-socia-button"); + return !qView(lock, '.auth0-lock-socia-button'); }; const hasFlashMessage = (query, lock, message) => { const message_ele = q(lock, query); - if (! message_ele) { + if (!message_ele) { return false; } const span = message_ele.querySelector('span'); - if (! span) { + if (!span) { return false; } return span.innerText.toLowerCase() === message.toLowerCase(); -} +}; export const hasErrorMessage = (lock, message) => { - return hasFlashMessage(".auth0-global-message-error", lock, message); + return hasFlashMessage('.auth0-global-message-error', lock, message); }; export const hasSuccessMessage = (lock, message) => { - return hasFlashMessage(".auth0-global-message-success", lock, message); + return hasFlashMessage('.auth0-global-message-success', lock, message); }; -export const hasOneSocialButton = hasOneViewFn(".auth0-lock-social-button"); -export const hasOneSocialBigButton = hasOneViewFn(".auth0-lock-social-button.auth0-lock-social-big-button"); -export const hasPasswordInput = hasInputFn("password"); -export const hasTermsCheckbox = hasFn(".auth0-lock-sign-up-terms-agreement label input[type='checkbox']"); +export const hasOneSocialButton = hasOneViewFn('.auth0-lock-social-button'); +export const hasOneSocialBigButton = hasOneViewFn( + '.auth0-lock-social-button.auth0-lock-social-big-button' +); +export const hasPasswordInput = hasInputFn('password'); +export const hasTermsCheckbox = hasFn( + ".auth0-lock-sign-up-terms-agreement label input[type='checkbox']" +); export const hasQuickAuthButton = (lock, icon, domain) => { // TODO: we should actually check that there's just a single button const xs = qView(lock, `.auth0-lock-social-button[data-provider^="${icon}"]`, true); return xs.length === 1 && xs[0].innerText.toLowerCase().indexOf(domain) !== -1; }; -export const hasSocialButtons = hasViewFn(".auth0-lock-social-button"); -export const hasSSONotice = hasViewFn(".auth0-sso-notice-container"); -export const hasSubmitButton = hasFn("button.auth0-lock-submit"); -export const hasUsernameInput = hasInputFn("username"); +export const hasSocialButtons = hasViewFn('.auth0-lock-social-button'); +export const hasSSONotice = hasViewFn('.auth0-sso-notice-container'); +export const hasSubmitButton = hasFn('button.auth0-lock-submit'); +export const hasUsernameInput = hasInputFn('username'); export const isLoginTabCurrent = lock => isTabCurrent(lock, /log in/i); export const isSignUpTabCurrent = lock => isTabCurrent(lock, /sign up/i); -export const isSubmitButtonDisabled = hasFn("button.auth0-lock-submit[disabled]"); +export const isSubmitButtonDisabled = hasFn('button.auth0-lock-submit[disabled]'); export const haveShownError = (lock, msg) => { - const errorElement = q(lock, ".auth0-global-message-error span"); + const errorElement = q(lock, '.auth0-global-message-error span'); return errorElement.innerText.toLowerCase() === msg.toLowerCase(); }; @@ -207,34 +206,37 @@ const click = (lock, query) => { }; const checkFn = query => lock => check(lock, query); const clickFn = (lock, query) => click(lock, query); -export const clickTermsCheckbox = checkFn(".auth0-lock-sign-up-terms-agreement label input[type='checkbox']"); -export const clickSocialConnectionButton = (lock, connection) => clickFn(lock, `.auth0-lock-social-button[data-provider='${connection}']`); +export const clickTermsCheckbox = checkFn( + ".auth0-lock-sign-up-terms-agreement label input[type='checkbox']" +); +export const clickSocialConnectionButton = (lock, connection) => + clickFn(lock, `.auth0-lock-social-button[data-provider='${connection}']`); const fillInput = (lock, name, str) => { - Simulate.change(qInput(lock, name, true), {target: {value: str}}); + Simulate.change(qInput(lock, name, true), { target: { value: str } }); }; const fillInputFn = name => (lock, str) => fillInput(lock, name, str); -export const fillEmailInput = fillInputFn("email"); -export const fillPasswordInput = fillInputFn("password"); -export const fillUsernameInput = fillInputFn("username"); -export const fillMFACodeInput = fillInputFn("mfa_code"); +export const fillEmailInput = fillInputFn('email'); +export const fillPasswordInput = fillInputFn('password'); +export const fillUsernameInput = fillInputFn('username'); +export const fillMFACodeInput = fillInputFn('mfa_code'); -export const submit = (lock) => { +export const submit = lock => { // reset web apis restoreWebApis(); stubWebApis(); submitForm(lock); -} +}; -export const submitForm = (lock) => { - const form = q(lock, ".auth0-lock-widget"); - if (!form || form.tagName.toUpperCase() !== "FORM") { +export const submitForm = lock => { + const form = q(lock, '.auth0-lock-widget'); + if (!form || form.tagName.toUpperCase() !== 'FORM') { throw new Error("Unable to submit form: can't find the element"); } Simulate.submit(form, {}); -} +}; export const waitUntilExists = (lock, selector, cb, timeout = 1000) => { const startedAt = Date.now(); @@ -258,19 +260,19 @@ export const waitUntilInputExists = (lock, name, cb, timeout) => waitUntilExists(lock, `.auth0-lock-input-${name} input`, cb, timeout); export const waitUntilErrorExists = (lock, cb, timeout) => - waitUntilExists(lock, ".auth0-global-message-error span", cb, timeout); + waitUntilExists(lock, '.auth0-global-message-error span', cb, timeout); // login export const logInWithEmailAndPassword = lock => { - fillEmailInput(lock, "someone@example.com"); - fillPasswordInput(lock, "mypass"); + fillEmailInput(lock, 'someone@example.com'); + fillPasswordInput(lock, 'mypass'); submit(lock); }; export const logInWithUsernameAndPassword = lock => { - fillUsernameInput(lock, "someone"); - fillPasswordInput(lock, "mypass"); + fillUsernameInput(lock, 'someone'); + fillPasswordInput(lock, 'mypass'); submit(lock); }; diff --git a/test/setup.js b/test/setup.js new file mode 100644 index 000000000..25282ae36 --- /dev/null +++ b/test/setup.js @@ -0,0 +1,7 @@ +import 'core-js/es6/map'; +import 'core-js/es6/set'; + +console.log('asdklhalsdhkaldhaslhkdsal'); +window.requestAnimationFrame = function(callback) { + setTimeout(callback, 0); +}; diff --git a/yarn.lock b/yarn.lock index ff50b7e52..624f602f0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,10 @@ # yarn lockfile v1 +"@types/node@^6.0.46": + version "6.0.88" + resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.88.tgz#f618f11a944f6a18d92b5c472028728a3e3d4b66" + JSON2@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/JSON2/-/JSON2-0.1.0.tgz#8d7493040a63d5835af75f47decb83ab6c8c0790" @@ -111,10 +115,14 @@ amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" -ansi-escapes@^1.0.0, ansi-escapes@^1.1.0, ansi-escapes@^1.4.0: +ansi-escapes@^1.0.0, ansi-escapes@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" +ansi-escapes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" + ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" @@ -123,6 +131,10 @@ ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -133,6 +145,12 @@ ansi-styles@^3.0.0: dependencies: color-convert "^1.0.0" +ansi-styles@^3.1.0, ansi-styles@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" + dependencies: + color-convert "^1.9.0" + ansi_up@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/ansi_up/-/ansi_up-1.3.0.tgz#c9c946bfc0b9bb5eaa060684bf2abaafe68bbd44" @@ -321,6 +339,10 @@ ast-types@0.9.8: version "0.9.8" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.8.tgz#6cb6a40beba31f49f20928e28439fc14a3dab078" +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + astw@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/astw/-/astw-2.2.0.tgz#7bd41784d32493987aeb239b6b4e1c57a873b917" @@ -335,7 +357,7 @@ async@0.9.x, async@^0.9.0, async@~0.9.0: version "0.9.2" resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" -async@1.x, async@^1.2.1, async@^1.4.0, async@^1.4.2, async@^1.5.2: +async@1.x, async@^1.2.1, async@^1.4.0, async@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -486,14 +508,13 @@ babel-helper-builder-binary-assignment-operator-visitor@^6.22.0: babel-runtime "^6.22.0" babel-types "^6.22.0" -babel-helper-builder-react-jsx@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.23.0.tgz#d53fc8c996e0bc56d0de0fc4cc55a7138395ea4b" +babel-helper-builder-react-jsx@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" dependencies: - babel-runtime "^6.22.0" - babel-types "^6.23.0" - esutils "^2.0.0" - lodash "^4.2.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + esutils "^2.0.2" babel-helper-call-delegate@^6.22.0: version "6.22.0" @@ -597,13 +618,12 @@ babel-helpers@^6.23.0: babel-runtime "^6.22.0" babel-template "^6.23.0" -babel-jest@^19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-19.0.0.tgz#59323ced99a3a84d359da219ca881074ffc6ce3f" +babel-jest@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-21.2.0.tgz#2ce059519a9374a2c46f2455b6fbef5ad75d863e" dependencies: - babel-core "^6.0.0" babel-plugin-istanbul "^4.0.0" - babel-preset-jest "^19.0.0" + babel-preset-jest "^21.2.0" babel-loader@^6.2.5: version "6.4.0" @@ -634,9 +654,9 @@ babel-plugin-istanbul@^4.0.0: istanbul-lib-instrument "^1.4.2" test-exclude "^4.0.0" -babel-plugin-jest-hoist@^19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-19.0.0.tgz#4ae2a04ea612a6e73651f3fde52c178991304bea" +babel-plugin-jest-hoist@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz#2cef637259bd4b628a6cace039de5fcd14dbb006" babel-plugin-stylus-compiler@^1.4.0: version "1.4.0" @@ -693,7 +713,7 @@ babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" -babel-plugin-syntax-object-rest-spread@^6.8.0: +babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" @@ -982,11 +1002,11 @@ babel-plugin-transform-react-jsx-source@^6.22.0: babel-plugin-syntax-jsx "^6.8.0" babel-runtime "^6.22.0" -babel-plugin-transform-react-jsx@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.23.0.tgz#23e892f7f2e759678eb5e4446a8f8e94e81b3470" +babel-plugin-transform-react-jsx@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" dependencies: - babel-helper-builder-react-jsx "^6.23.0" + babel-helper-builder-react-jsx "^6.24.1" babel-plugin-syntax-jsx "^6.8.0" babel-runtime "^6.22.0" @@ -1042,19 +1062,20 @@ babel-preset-flow@^6.23.0: dependencies: babel-plugin-transform-flow-strip-types "^6.22.0" -babel-preset-jest@^19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-19.0.0.tgz#22d67201d02324a195811288eb38294bb3cac396" +babel-preset-jest@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz#ff9d2bce08abd98e8a36d9a8a5189b9173b85638" dependencies: - babel-plugin-jest-hoist "^19.0.0" + babel-plugin-jest-hoist "^21.2.0" + babel-plugin-syntax-object-rest-spread "^6.13.0" -babel-preset-react@^6.16.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.23.0.tgz#eb7cee4de98a3f94502c28565332da9819455195" +babel-preset-react@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" dependencies: babel-plugin-syntax-jsx "^6.3.13" babel-plugin-transform-react-display-name "^6.23.0" - babel-plugin-transform-react-jsx "^6.23.0" + babel-plugin-transform-react-jsx "^6.24.1" babel-plugin-transform-react-jsx-self "^6.22.0" babel-plugin-transform-react-jsx-source "^6.22.0" babel-preset-flow "^6.23.0" @@ -1113,6 +1134,13 @@ babel-runtime@^6.18.0, babel-runtime@^6.22.0: core-js "^2.4.0" regenerator-runtime "^0.10.0" +babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + babel-template@^6.16.0, babel-template@^6.22.0, babel-template@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.23.0.tgz#04d4f270adbb3aa704a8143ae26faa529238e638" @@ -1146,6 +1174,15 @@ babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.22.0, babel-types@^6.23 lodash "^4.2.0" to-fast-properties "^1.0.1" +babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + babelify@^7.2.0: version "7.3.0" resolved "https://registry.yarnpkg.com/babelify/-/babelify-7.3.0.tgz#aa56aede7067fd7bd549666ee16dc285087e88e5" @@ -1161,10 +1198,18 @@ babylon@^6.11.0, babylon@^6.13.0, babylon@^6.15.0, babylon@^6.16.1: version "6.16.1" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.16.1.tgz#30c5a22f481978a9e7f8cdfdf496b11d94b404d3" +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + balanced-match@^0.4.1, balanced-match@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + base64-js@^1.0.2, base64-js@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" @@ -1263,6 +1308,13 @@ brace-expansion@^1.0.0: balanced-match "^0.4.1" concat-map "0.0.1" +brace-expansion@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + braces@^1.8.2: version "1.8.5" resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" @@ -1301,6 +1353,10 @@ browser-resolve@^1.11.0, browser-resolve@^1.11.2, browser-resolve@^1.7.0: dependencies: resolve "1.1.7" +browser-stdout@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" + browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" @@ -1516,6 +1572,58 @@ browserify@^14.0.0: vm-browserify "~0.0.1" xtend "^4.0.0" +browserify@^14.4.0: + version "14.4.0" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-14.4.0.tgz#089a3463af58d0e48d8cd4070b3f74654d5abca9" + dependencies: + JSONStream "^1.0.3" + assert "^1.4.0" + browser-pack "^6.0.1" + browser-resolve "^1.11.0" + browserify-zlib "~0.1.2" + buffer "^5.0.2" + cached-path-relative "^1.0.0" + concat-stream "~1.5.1" + console-browserify "^1.1.0" + constants-browserify "~1.0.0" + crypto-browserify "^3.0.0" + defined "^1.0.0" + deps-sort "^2.0.0" + domain-browser "~1.1.0" + duplexer2 "~0.1.2" + events "~1.1.0" + glob "^7.1.0" + has "^1.0.0" + htmlescape "^1.1.0" + https-browserify "^1.0.0" + inherits "~2.0.1" + insert-module-globals "^7.0.0" + labeled-stream-splicer "^2.0.0" + module-deps "^4.0.8" + os-browserify "~0.1.1" + parents "^1.0.1" + path-browserify "~0.0.0" + process "~0.11.0" + punycode "^1.3.2" + querystring-es3 "~0.2.0" + read-only-stream "^2.0.0" + readable-stream "^2.0.2" + resolve "^1.1.4" + shasum "^1.0.0" + shell-quote "^1.6.1" + stream-browserify "^2.0.0" + stream-http "^2.0.0" + string_decoder "~1.0.0" + subarg "^1.0.0" + syntax-error "^1.1.1" + through2 "^2.0.0" + timers-browserify "^1.0.1" + tty-browserify "~0.0.0" + url "~0.11.0" + util "~0.10.1" + vm-browserify "~0.0.1" + xtend "^4.0.0" + browserslist@^1.0.1, browserslist@^1.5.2: version "1.7.6" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.6.tgz#af98589ce6e7ab09618d29451faacb81220bd3ba" @@ -1529,12 +1637,6 @@ browserslist@~1.3.4: dependencies: caniuse-db "^1.0.30000525" -bser@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bser/-/bser-1.0.2.tgz#381116970b2a6deea5646dd15dd7278444b56169" - dependencies: - node-int64 "^0.4.0" - bser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" @@ -1646,6 +1748,10 @@ camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + caniuse-api@^1.5.2: version "1.5.3" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.5.3.tgz#5018e674b51c393e4d50614275dc017e27c4a2a2" @@ -1694,32 +1800,30 @@ chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" +chalk@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + char-split@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/char-split/-/char-split-0.2.0.tgz#8755eda641e5db277dd0f509b517c827e50a8edf" dependencies: through "2.3.4" -cheerio@^0.22.0: - version "0.22.0" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" +cheerio@^1.0.0-rc.2: + version "1.0.0-rc.2" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db" dependencies: css-select "~1.2.0" dom-serializer "~0.1.0" entities "~1.1.1" htmlparser2 "^3.9.1" - lodash.assignin "^4.0.9" - lodash.bind "^4.1.4" - lodash.defaults "^4.0.1" - lodash.filter "^4.4.0" - lodash.flatten "^4.2.0" - lodash.foreach "^4.3.0" - lodash.map "^4.4.0" - lodash.merge "^4.4.0" - lodash.pick "^4.2.1" - lodash.reduce "^4.4.0" - lodash.reject "^4.4.0" - lodash.some "^4.4.0" + lodash "^4.15.0" + parse5 "^3.0.1" chokidar@^1.0.0, chokidar@^1.4.3, chokidar@^1.6.0: version "1.6.1" @@ -1756,6 +1860,10 @@ clap@^1.0.9: dependencies: chalk "^1.1.3" +classnames@^2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" + cli-cursor@^1.0.1, cli-cursor@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" @@ -1815,7 +1923,7 @@ coffee-script@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.3.3.tgz#150d6b4cb522894369efed6a2101c20bc7f4a4f4" -color-convert@^1.0.0, color-convert@^1.3.0: +color-convert@^1.0.0, color-convert@^1.3.0, color-convert@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" dependencies: @@ -1847,6 +1955,10 @@ colormin@^1.0.5: css-color-names "0.0.4" has "^1.0.1" +colors@0.5.x: + version "0.5.1" + resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" + colors@0.6.2, colors@~0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" @@ -1876,10 +1988,6 @@ combined-stream@~0.0.4: dependencies: delayed-stream "0.0.5" -commander@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-0.6.1.tgz#fa68a14f6a945d54dbbe50d8cdb3320e9e3b1a06" - commander@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/commander/-/commander-1.3.2.tgz#8a8f30ec670a6fdd64af52f1914b907d79ead5b5" @@ -1890,11 +1998,7 @@ commander@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781" -commander@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.3.0.tgz#fd430e889832ec353b9acd1de217c11cb3eef873" - -commander@^2.8.1, commander@^2.9.0: +commander@2.9.0, commander@^2.8.1, commander@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" dependencies: @@ -2048,6 +2152,10 @@ convert-source-map@^1.1.0, convert-source-map@^1.1.3: version "1.4.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.4.0.tgz#e3dad195bf61bfe13a7a3c73e9876ec14a0268f3" +convert-source-map@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" + convert-source-map@~1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" @@ -2144,14 +2252,6 @@ create-hmac@^1.1.0, create-hmac@^1.1.2: create-hash "^1.1.0" inherits "^2.0.1" -create-react-class@^15.6.0: - version "15.6.0" - resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.0.tgz#ab448497c26566e1e29413e883207d57cfe7bed4" - dependencies: - fbjs "^0.8.9" - loose-envify "^1.3.1" - object-assign "^4.1.1" - cross-env@^3.1.4: version "3.2.3" resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-3.2.3.tgz#a43a0799b8ec422d0279b829ce8d7cf2da6b17ac" @@ -2383,18 +2483,30 @@ debug@2.1.0: dependencies: ms "0.6.2" -debug@2.2.0, debug@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" - dependencies: - ms "0.7.1" - debug@2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351" dependencies: ms "0.7.2" +debug@2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +debug@^2.6.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +debug@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + dependencies: + ms "0.7.1" + decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -2501,14 +2613,14 @@ detective@^4.0.0: acorn "^4.0.3" defined "^1.0.0" -diff@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" - -diff@^3.0.0: +diff@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" +diff@^3.2.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" + diffie-hellman@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" @@ -2517,6 +2629,10 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +discontinuous-range@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" + doctrine@^1.2.2: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" @@ -2670,19 +2786,38 @@ entities@^1.1.1, entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" -enzyme@2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-2.7.0.tgz#772477800547ca2514cc0af258e647c166aee899" +enzyme-adapter-react-16@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.0.1.tgz#066cb1735e65d8d95841a023f94dab3ce6109e17" + dependencies: + enzyme-adapter-utils "^1.0.0" + lodash "^4.17.4" + object.assign "^4.0.4" + object.values "^1.0.4" + prop-types "^15.5.10" + +enzyme-adapter-utils@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.0.1.tgz#fcd81223339a55a312f7552641e045c404084009" dependencies: - cheerio "^0.22.0" - function.prototype.name "^1.0.0" + lodash "^4.17.4" + object.assign "^4.0.4" + prop-types "^15.5.10" + +enzyme@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.1.0.tgz#d8ca84085790fbcec6ed40badd14478faee4c25a" + dependencies: + cheerio "^1.0.0-rc.2" + function.prototype.name "^1.0.3" is-subset "^0.1.1" - lodash "^4.17.2" + lodash "^4.17.4" object-is "^1.0.1" object.assign "^4.0.4" - object.entries "^1.0.3" - object.values "^1.0.3" - uuid "^2.0.3" + object.entries "^1.0.4" + object.values "^1.0.4" + raf "^3.3.2" + rst-selector-parser "^2.2.2" "errno@>=0.1.1 <0.2.0-0", errno@^0.1.3: version "0.1.4" @@ -2773,11 +2908,7 @@ escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" -escape-string-regexp@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1" - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -2923,7 +3054,7 @@ estraverse@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" -esutils@2.0.2, esutils@^2.0.0, esutils@^2.0.2: +esutils@2.0.2, esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -2984,6 +3115,18 @@ execa@^0.6.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + exit-hook@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" @@ -3008,6 +3151,17 @@ expect.js@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/expect.js/-/expect.js-0.3.1.tgz#b0a59a0d2eff5437544ebf0ceaa6015841d09b5b" +expect@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-21.2.1.tgz#003ac2ac7005c3c29e73b38a272d4afadd6d1d7b" + dependencies: + ansi-styles "^3.2.0" + jest-diff "^21.2.1" + jest-get-type "^21.2.0" + jest-matcher-utils "^21.2.1" + jest-message-util "^21.2.1" + jest-regex-util "^21.2.0" + express-state@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/express-state/-/express-state-1.0.3.tgz#b6f368743a95d8a91b7683adf593d02b1577ec02" @@ -3105,12 +3259,6 @@ faye-websocket@~0.11.0: dependencies: websocket-driver ">=0.5.1" -fb-watchman@^1.8.0: - version "1.9.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-1.9.2.tgz#a24cf47827f82d38fb59a69ad70b76e3b6ae7383" - dependencies: - bser "1.0.2" - fb-watchman@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" @@ -3127,9 +3275,9 @@ fbjs@^0.3.1: ua-parser-js "^0.7.9" whatwg-fetch "^0.9.0" -fbjs@^0.8.9: - version "0.8.9" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.9.tgz#180247fbd347dcc9004517b904f865400a0c8f14" +fbjs@^0.8.16: + version "0.8.16" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db" dependencies: core-js "^1.0.0" isomorphic-fetch "^2.1.1" @@ -3234,7 +3382,7 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" -find-up@^2.1.0: +find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" dependencies: @@ -3389,7 +3537,14 @@ fsevents@^1.0.0: nan "^2.3.0" node-pre-gyp "^0.6.29" -fstream-ignore@~1.0.5: +fsevents@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.36" + +fstream-ignore@^1.0.5, fstream-ignore@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" dependencies: @@ -3397,7 +3552,7 @@ fstream-ignore@~1.0.5: inherits "2" minimatch "^3.0.0" -fstream@^1.0.0, fstream@^1.0.2, fstream@^1.0.8, fstream@~1.0.10: +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2, fstream@^1.0.8, fstream@~1.0.10: version "1.0.11" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" dependencies: @@ -3410,13 +3565,13 @@ function-bind@^1.0.2, function-bind@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" -function.prototype.name@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.0.0.tgz#5f523ca64e491a5f95aba80cc1e391080a14482e" +function.prototype.name@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.0.3.tgz#0099ae5572e9dd6f03c97d023fd92bcc5e639eac" dependencies: define-properties "^1.1.2" function-bind "^1.1.0" - is-callable "^1.1.2" + is-callable "^1.1.3" gauge@~2.7.1: version "2.7.3" @@ -3431,6 +3586,19 @@ gauge@~2.7.1: strip-ansi "^3.0.1" wide-align "^1.1.0" +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + generate-function@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" @@ -3487,7 +3655,7 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob@3.2.11, glob@3.x, glob@~3.2.6, glob@~3.2.9: +glob@3.x, glob@~3.2.6, glob@~3.2.9: version "3.2.11" resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d" dependencies: @@ -3526,6 +3694,17 @@ glob@^5.0.10, glob@^5.0.15, glob@^5.0.3: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.1, glob@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@~3.1.11, glob@~3.1.21: version "3.1.21" resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" @@ -3591,7 +3770,7 @@ graceful-fs@^3.0.2, graceful-fs@~3.0.5: dependencies: natives "^1.1.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -3762,6 +3941,10 @@ has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -3787,7 +3970,7 @@ hawk@1.1.1: hoek "0.9.x" sntp "0.2.x" -hawk@~3.1.3: +hawk@3.1.3, hawk@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" dependencies: @@ -3803,6 +3986,10 @@ hbs@2.4.0: handlebars "1.0.12" walk "2.2.1" +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + highlight.js@7.5.0: version "7.5.0" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-7.5.0.tgz#0052595eef15845d842e02a03313afadc3ebd6cc" @@ -3940,6 +4127,10 @@ https-browserify@0.0.1, https-browserify@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + https-proxy-agent@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" @@ -4046,7 +4237,7 @@ inherits@1: version "1.0.2" resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1: +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -4141,11 +4332,11 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" -is-callable@^1.1.1, is-callable@^1.1.2, is-callable@^1.1.3: +is-callable@^1.1.1, is-callable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" -is-ci@^1.0.9: +is-ci@^1.0.10, is-ci@^1.0.9: version "1.0.10" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" dependencies: @@ -4318,6 +4509,10 @@ isexe@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -4335,33 +4530,37 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -istanbul-api@^1.1.0-alpha.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.1.tgz#d36e2f1560d1a43ce304c4ff7338182de61c8f73" +istanbul-api@^1.1.1: + version "1.1.14" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.14.tgz#25bc5701f7c680c0ffff913de46e3619a3a6e680" dependencies: async "^2.1.4" fileset "^2.0.2" - istanbul-lib-coverage "^1.0.0" - istanbul-lib-hook "^1.0.0" - istanbul-lib-instrument "^1.3.0" - istanbul-lib-report "^1.0.0-alpha.3" - istanbul-lib-source-maps "^1.1.0" - istanbul-reports "^1.0.0" + istanbul-lib-coverage "^1.1.1" + istanbul-lib-hook "^1.0.7" + istanbul-lib-instrument "^1.8.0" + istanbul-lib-report "^1.1.1" + istanbul-lib-source-maps "^1.2.1" + istanbul-reports "^1.1.2" js-yaml "^3.7.0" mkdirp "^0.5.1" once "^1.4.0" -istanbul-lib-coverage@^1.0.0, istanbul-lib-coverage@^1.0.0-alpha, istanbul-lib-coverage@^1.0.0-alpha.0: +istanbul-lib-coverage@^1.0.0, istanbul-lib-coverage@^1.0.0-alpha.0: version "1.0.1" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.1.tgz#f263efb519c051c5f1f3343034fc40e7b43ff212" -istanbul-lib-hook@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.0.tgz#fc5367ee27f59268e8f060b0c7aaf051d9c425c5" +istanbul-lib-coverage@^1.0.1, istanbul-lib-coverage@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da" + +istanbul-lib-hook@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz#dd6607f03076578fe7d6f2a630cf143b49bacddc" dependencies: append-transform "^0.4.0" -istanbul-lib-instrument@^1.1.1, istanbul-lib-instrument@^1.3.0, istanbul-lib-instrument@^1.4.2: +istanbul-lib-instrument@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.4.2.tgz#0e2fdfac93c1dabf2e31578637dc78a19089f43e" dependencies: @@ -4373,15 +4572,25 @@ istanbul-lib-instrument@^1.1.1, istanbul-lib-instrument@^1.3.0, istanbul-lib-ins istanbul-lib-coverage "^1.0.0" semver "^5.3.0" -istanbul-lib-report@^1.0.0-alpha.3: - version "1.0.0-alpha.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.0.0-alpha.3.tgz#32d5f6ec7f33ca3a602209e278b2e6ff143498af" +istanbul-lib-instrument@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.8.0.tgz#66f6c9421cc9ec4704f76f2db084ba9078a2b532" + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.18.0" + istanbul-lib-coverage "^1.1.1" + semver "^5.3.0" + +istanbul-lib-report@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#f0e55f56655ffa34222080b7a0cd4760e1405fc9" dependencies: - async "^1.4.2" - istanbul-lib-coverage "^1.0.0-alpha" + istanbul-lib-coverage "^1.1.1" mkdirp "^0.5.1" path-parse "^1.0.5" - rimraf "^2.4.3" supports-color "^3.1.2" istanbul-lib-source-maps@^1.1.0: @@ -4393,6 +4602,16 @@ istanbul-lib-source-maps@^1.1.0: rimraf "^2.4.4" source-map "^0.5.3" +istanbul-lib-source-maps@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz#a6fe1acba8ce08eebc638e572e294d267008aa0c" + dependencies: + debug "^2.6.3" + istanbul-lib-coverage "^1.1.1" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + istanbul-middleware@0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/istanbul-middleware/-/istanbul-middleware-0.2.2.tgz#83c4c13c128e1a0d6a147792391af3c15a8ab8e0" @@ -4402,9 +4621,9 @@ istanbul-middleware@0.2.2: express "4.x" istanbul "0.4.x" -istanbul-reports@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.0.1.tgz#9a17176bc4a6cbebdae52b2f15961d52fa623fbc" +istanbul-reports@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.2.tgz#0fb2e3f6aa9922bd3ce45d05d8ab4d5e8e07bd4f" dependencies: handlebars "^4.0.3" @@ -4444,109 +4663,117 @@ istanbul@^0.2.8: which "1.0.x" wordwrap "0.0.x" -jade@0.26.3: - version "0.26.3" - resolved "https://registry.yarnpkg.com/jade/-/jade-0.26.3.tgz#8f10d7977d8d79f2f6ff862a81b0513ccb25686c" +jest-changed-files@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-21.2.0.tgz#5dbeecad42f5d88b482334902ce1cba6d9798d29" dependencies: - commander "0.6.1" - mkdirp "0.3.0" + throat "^4.0.0" -jest-changed-files@^19.0.2: - version "19.0.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-19.0.2.tgz#16c54c84c3270be408e06d2e8af3f3e37a885824" - -jest-cli@^19.0.0: - version "19.0.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-19.0.2.tgz#cc3620b62acac5f2d93a548cb6ef697d4ec85443" +jest-cli@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-21.2.1.tgz#9c528b6629d651911138d228bdb033c157ec8c00" dependencies: - ansi-escapes "^1.4.0" - callsites "^2.0.0" - chalk "^1.1.1" - graceful-fs "^4.1.6" - is-ci "^1.0.9" - istanbul-api "^1.1.0-alpha.1" - istanbul-lib-coverage "^1.0.0" - istanbul-lib-instrument "^1.1.1" - jest-changed-files "^19.0.2" - jest-config "^19.0.2" - jest-environment-jsdom "^19.0.2" - jest-haste-map "^19.0.0" - jest-jasmine2 "^19.0.2" - jest-message-util "^19.0.0" - jest-regex-util "^19.0.0" - jest-resolve-dependencies "^19.0.0" - jest-runtime "^19.0.2" - jest-snapshot "^19.0.2" - jest-util "^19.0.2" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + is-ci "^1.0.10" + istanbul-api "^1.1.1" + istanbul-lib-coverage "^1.0.1" + istanbul-lib-instrument "^1.4.2" + istanbul-lib-source-maps "^1.1.0" + jest-changed-files "^21.2.0" + jest-config "^21.2.1" + jest-environment-jsdom "^21.2.1" + jest-haste-map "^21.2.0" + jest-message-util "^21.2.1" + jest-regex-util "^21.2.0" + jest-resolve-dependencies "^21.2.0" + jest-runner "^21.2.1" + jest-runtime "^21.2.1" + jest-snapshot "^21.2.1" + jest-util "^21.2.1" micromatch "^2.3.11" - node-notifier "^5.0.1" + node-notifier "^5.0.2" + pify "^3.0.0" slash "^1.0.0" - string-length "^1.0.1" - throat "^3.0.0" - which "^1.1.1" + string-length "^2.0.0" + strip-ansi "^4.0.0" + which "^1.2.12" worker-farm "^1.3.1" - yargs "^6.3.0" - -jest-config@^19.0.2: - version "19.0.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-19.0.2.tgz#1b9bd2db0ddd16df61c2b10a54009e1768da6411" - dependencies: - chalk "^1.1.1" - jest-environment-jsdom "^19.0.2" - jest-environment-node "^19.0.2" - jest-jasmine2 "^19.0.2" - jest-regex-util "^19.0.0" - jest-resolve "^19.0.2" - jest-validate "^19.0.2" - pretty-format "^19.0.0" - -jest-diff@^19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-19.0.0.tgz#d1563cfc56c8b60232988fbc05d4d16ed90f063c" - dependencies: - chalk "^1.1.3" - diff "^3.0.0" - jest-matcher-utils "^19.0.0" - pretty-format "^19.0.0" - -jest-environment-jsdom@^19.0.2: - version "19.0.2" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-19.0.2.tgz#ceda859c4a4b94ab35e4de7dab54b926f293e4a3" - dependencies: - jest-mock "^19.0.0" - jest-util "^19.0.2" - jsdom "^9.11.0" - -jest-environment-node@^19.0.2: - version "19.0.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-19.0.2.tgz#6e84079db87ed21d0c05e1f9669f207b116fe99b" - dependencies: - jest-mock "^19.0.0" - jest-util "^19.0.2" - -jest-file-exists@^19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/jest-file-exists/-/jest-file-exists-19.0.0.tgz#cca2e587a11ec92e24cfeab3f8a94d657f3fceb8" - -jest-haste-map@^19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-19.0.0.tgz#adde00b62b1fe04432a104b3254fc5004514b55e" + yargs "^9.0.0" + +jest-config@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-21.2.1.tgz#c7586c79ead0bcc1f38c401e55f964f13bf2a480" + dependencies: + chalk "^2.0.1" + glob "^7.1.1" + jest-environment-jsdom "^21.2.1" + jest-environment-node "^21.2.1" + jest-get-type "^21.2.0" + jest-jasmine2 "^21.2.1" + jest-regex-util "^21.2.0" + jest-resolve "^21.2.0" + jest-util "^21.2.1" + jest-validate "^21.2.1" + pretty-format "^21.2.1" + +jest-diff@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-21.2.1.tgz#46cccb6cab2d02ce98bc314011764bb95b065b4f" + dependencies: + chalk "^2.0.1" + diff "^3.2.0" + jest-get-type "^21.2.0" + pretty-format "^21.2.1" + +jest-docblock@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" + +jest-environment-jsdom@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-21.2.1.tgz#38d9980c8259b2a608ec232deee6289a60d9d5b4" + dependencies: + jest-mock "^21.2.0" + jest-util "^21.2.1" + jsdom "^9.12.0" + +jest-environment-node@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-21.2.1.tgz#98c67df5663c7fbe20f6e792ac2272c740d3b8c8" + dependencies: + jest-mock "^21.2.0" + jest-util "^21.2.1" + +jest-get-type@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-21.2.0.tgz#f6376ab9db4b60d81e39f30749c6c466f40d4a23" + +jest-haste-map@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-21.2.0.tgz#1363f0a8bb4338f24f001806571eff7a4b2ff3d8" dependencies: fb-watchman "^2.0.0" - graceful-fs "^4.1.6" + graceful-fs "^4.1.11" + jest-docblock "^21.2.0" micromatch "^2.3.11" - sane "~1.5.0" + sane "^2.0.0" worker-farm "^1.3.1" -jest-jasmine2@^19.0.2: - version "19.0.2" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-19.0.2.tgz#167991ac825981fb1a800af126e83afcca832c73" +jest-jasmine2@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-21.2.1.tgz#9cc6fc108accfa97efebce10c4308548a4ea7592" dependencies: - graceful-fs "^4.1.6" - jest-matcher-utils "^19.0.0" - jest-matchers "^19.0.0" - jest-message-util "^19.0.0" - jest-snapshot "^19.0.2" + chalk "^2.0.1" + expect "^21.2.1" + graceful-fs "^4.1.11" + jest-diff "^21.2.1" + jest-matcher-utils "^21.2.1" + jest-message-util "^21.2.1" + jest-snapshot "^21.2.1" + p-cancelable "^0.3.0" jest-matcher-utils@^19.0.0: version "19.0.0" @@ -4555,87 +4782,102 @@ jest-matcher-utils@^19.0.0: chalk "^1.1.3" pretty-format "^19.0.0" -jest-matchers@^19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-19.0.0.tgz#c74ecc6ebfec06f384767ba4d6fa4a42d6755754" +jest-matcher-utils@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz#72c826eaba41a093ac2b4565f865eb8475de0f64" dependencies: - jest-diff "^19.0.0" - jest-matcher-utils "^19.0.0" - jest-message-util "^19.0.0" - jest-regex-util "^19.0.0" + chalk "^2.0.1" + jest-get-type "^21.2.0" + pretty-format "^21.2.1" -jest-message-util@^19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-19.0.0.tgz#721796b89c0e4d761606f9ba8cb828a3b6246416" +jest-message-util@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-21.2.1.tgz#bfe5d4692c84c827d1dcf41823795558f0a1acbe" dependencies: - chalk "^1.1.1" + chalk "^2.0.1" micromatch "^2.3.11" + slash "^1.0.0" -jest-mock@^19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-19.0.0.tgz#67038641e9607ab2ce08ec4a8cb83aabbc899d01" +jest-mock@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-21.2.0.tgz#7eb0770e7317968165f61ea2a7281131534b3c0f" -jest-regex-util@^19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-19.0.0.tgz#b7754587112aede1456510bb1f6afe74ef598691" +jest-regex-util@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-21.2.0.tgz#1b1e33e63143babc3e0f2e6c9b5ba1eb34b2d530" -jest-resolve-dependencies@^19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-19.0.0.tgz#a741ad1fa094140e64ecf2642a504f834ece22ee" +jest-resolve-dependencies@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-21.2.0.tgz#9e231e371e1a736a1ad4e4b9a843bc72bfe03d09" dependencies: - jest-file-exists "^19.0.0" + jest-regex-util "^21.2.0" -jest-resolve@^19.0.2: - version "19.0.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-19.0.2.tgz#5793575de4f07aec32f7d7ff0c6c181963eefb3c" +jest-resolve@^21.2.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-21.2.0.tgz#068913ad2ba6a20218e5fd32471f3874005de3a6" dependencies: browser-resolve "^1.11.2" - jest-haste-map "^19.0.0" - resolve "^1.2.0" + chalk "^2.0.1" + is-builtin-module "^1.0.0" + +jest-runner@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-21.2.1.tgz#194732e3e518bfb3d7cbfc0fd5871246c7e1a467" + dependencies: + jest-config "^21.2.1" + jest-docblock "^21.2.0" + jest-haste-map "^21.2.0" + jest-jasmine2 "^21.2.1" + jest-message-util "^21.2.1" + jest-runtime "^21.2.1" + jest-util "^21.2.1" + pify "^3.0.0" + throat "^4.0.0" + worker-farm "^1.3.1" -jest-runtime@^19.0.2: - version "19.0.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-19.0.2.tgz#d9a43e72de416d27d196fd9c7940d98fe6685407" +jest-runtime@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-21.2.1.tgz#99dce15309c670442eee2ebe1ff53a3cbdbbb73e" dependencies: babel-core "^6.0.0" - babel-jest "^19.0.0" + babel-jest "^21.2.0" babel-plugin-istanbul "^4.0.0" - chalk "^1.1.3" - graceful-fs "^4.1.6" - jest-config "^19.0.2" - jest-file-exists "^19.0.0" - jest-haste-map "^19.0.0" - jest-regex-util "^19.0.0" - jest-resolve "^19.0.2" - jest-util "^19.0.2" + chalk "^2.0.1" + convert-source-map "^1.4.0" + graceful-fs "^4.1.11" + jest-config "^21.2.1" + jest-haste-map "^21.2.0" + jest-regex-util "^21.2.0" + jest-resolve "^21.2.0" + jest-util "^21.2.1" json-stable-stringify "^1.0.1" micromatch "^2.3.11" + slash "^1.0.0" strip-bom "3.0.0" - yargs "^6.3.0" + write-file-atomic "^2.1.0" + yargs "^9.0.0" -jest-snapshot@^19.0.2: - version "19.0.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-19.0.2.tgz#9c1b216214f7187c38bfd5c70b1efab16b0ff50b" +jest-snapshot@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-21.2.1.tgz#29e49f16202416e47343e757e5eff948c07fd7b0" dependencies: - chalk "^1.1.3" - jest-diff "^19.0.0" - jest-file-exists "^19.0.0" - jest-matcher-utils "^19.0.0" - jest-util "^19.0.2" + chalk "^2.0.1" + jest-diff "^21.2.1" + jest-matcher-utils "^21.2.1" + mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^19.0.0" + pretty-format "^21.2.1" -jest-util@^19.0.2: - version "19.0.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-19.0.2.tgz#e0a0232a2ab9e6b2b53668bdb3534c2b5977ed41" +jest-util@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-21.2.1.tgz#a274b2f726b0897494d694a6c3d6a61ab819bb78" dependencies: - chalk "^1.1.1" - graceful-fs "^4.1.6" - jest-file-exists "^19.0.0" - jest-message-util "^19.0.0" - jest-mock "^19.0.0" - jest-validate "^19.0.2" - leven "^2.0.0" + callsites "^2.0.0" + chalk "^2.0.1" + graceful-fs "^4.1.11" + jest-message-util "^21.2.1" + jest-mock "^21.2.0" + jest-validate "^21.2.1" mkdirp "^0.5.1" jest-validate@19.0.0: @@ -4647,20 +4889,20 @@ jest-validate@19.0.0: leven "^2.0.0" pretty-format "^19.0.0" -jest-validate@^19.0.2: - version "19.0.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-19.0.2.tgz#dc534df5f1278d5b63df32b14241d4dbf7244c0c" +jest-validate@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-21.2.1.tgz#cc0cbca653cd54937ba4f2a111796774530dd3c7" dependencies: - chalk "^1.1.1" - jest-matcher-utils "^19.0.0" - leven "^2.0.0" - pretty-format "^19.0.0" + chalk "^2.0.1" + jest-get-type "^21.2.0" + leven "^2.1.0" + pretty-format "^21.2.1" -jest@19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-19.0.0.tgz#37680d4d8fb54dee7fe7b7c1c0a6203a2dbcbf23" +jest@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-21.2.1.tgz#c964e0b47383768a1438e3ccf3c3d470327604e1" dependencies: - jest-cli "^19.0.0" + jest-cli "^21.2.1" jodid25519@^1.0.0: version "1.0.2" @@ -4710,7 +4952,7 @@ jsbn@^0.1.0, jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" -jsdom@^9.11.0: +jsdom@^9.12.0: version "9.12.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4" dependencies: @@ -4770,7 +5012,7 @@ json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" -json3@^3.3.2: +json3@3.3.2, json3@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" @@ -4873,7 +5115,7 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" -leven@^2.0.0: +leven@^2.0.0, leven@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" @@ -4966,6 +5208,15 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + load-script@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/load-script/-/load-script-0.0.5.tgz#cbd54b27cd7309902b749640c70e996f4c643b63" @@ -5010,6 +5261,29 @@ lock@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/lock/-/lock-0.1.3.tgz#f66c1caa0c41956e1426608039ed59b71bdf1854" +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basecreate@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + lodash._isnative@~2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/lodash._isnative/-/lodash._isnative-2.4.1.tgz#3ea6404b784a7be836c7b57580e1cdf79b14832c" @@ -5024,14 +5298,6 @@ lodash._shimkeys@~2.4.1: dependencies: lodash._objecttypes "~2.4.1" -lodash.assignin@^4.0.9: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" - -lodash.bind@^4.1.4: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" - lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" @@ -5040,9 +5306,13 @@ lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" -lodash.defaults@^4.0.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" +lodash.create@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" + dependencies: + lodash._baseassign "^3.0.0" + lodash._basecreate "^3.0.0" + lodash._isiterateecall "^3.0.0" lodash.defaults@~2.4.1: version "2.4.1" @@ -5051,17 +5321,17 @@ lodash.defaults@~2.4.1: lodash._objecttypes "~2.4.1" lodash.keys "~2.4.1" -lodash.filter@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" - -lodash.flatten@^4.2.0: +lodash.flattendeep@^4.4.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" -lodash.foreach@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" lodash.isobject@~2.4.1: version "2.4.1" @@ -5069,6 +5339,14 @@ lodash.isobject@~2.4.1: dependencies: lodash._objecttypes "~2.4.1" +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + lodash.keys@~2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-2.4.1.tgz#48dea46df8ff7632b10d706b8acb26591e2b3727" @@ -5077,10 +5355,6 @@ lodash.keys@~2.4.1: lodash._shimkeys "~2.4.1" lodash.isobject "~2.4.1" -lodash.map@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" - lodash.memoize@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -5089,30 +5363,10 @@ lodash.memoize@~3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" -lodash.merge@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" - lodash.once@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" -lodash.pick@^4.2.1: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - -lodash.reduce@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" - -lodash.reject@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" - -lodash.some@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" - lodash.uniq@^4.3.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -5121,7 +5375,7 @@ lodash@3.10.1: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.7.0: +lodash@^4.0.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.7.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -5208,6 +5462,12 @@ media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + memory-fs@^0.4.0, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -5305,6 +5565,10 @@ mime@~1.2.11, mime@~1.2.2, mime@~1.2.7, mime@~1.2.9: version "1.2.11" resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" +mimic-fn@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + min-wd@^2.9.0: version "2.9.3" resolved "https://registry.yarnpkg.com/min-wd/-/min-wd-2.9.3.tgz#35d6bc7d32f66e60192babdfd6c1674e992f13bd" @@ -5357,6 +5621,12 @@ minimatch@^2.0.1: dependencies: brace-expansion "^1.0.0" +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + minimist@0.0.8, minimist@~0.0.1: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -5369,10 +5639,6 @@ minimist@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.2.0.tgz#4dffe525dae2b864c66c2e23c6271d7afdecefce" -mkdirp@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" - mkdirp@0.3.5, mkdirp@0.3.x: version "0.3.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" @@ -5387,51 +5653,53 @@ mkpath@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-0.1.0.tgz#7554a6f8d871834cc97b5462b122c4c124d6de91" -mocaccino@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/mocaccino/-/mocaccino-1.9.0.tgz#1b2c64bc8fd79d11daec3ecca3f91f3e2e540d39" +mocaccino@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mocaccino/-/mocaccino-2.0.0.tgz#38e66a751596cdf55a35a94110b5b9fb3eba1b18" dependencies: brout "^1.1.0" listen "^1.0.0" - mocha "^2.3.4" + mocha "^3.2.0" resolve "^1.1.6" supports-color "^3.1.2" through2 "^2.0.0" -mocha@^2.3.4: - version "2.5.3" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-2.5.3.tgz#161be5bdeb496771eb9b35745050b622b5aefc58" +mocha@^3.2.0, mocha@^3.4.2: + version "3.5.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" dependencies: - commander "2.3.0" - debug "2.2.0" - diff "1.4.0" - escape-string-regexp "1.0.2" - glob "3.2.11" + browser-stdout "1.3.0" + commander "2.9.0" + debug "2.6.8" + diff "3.2.0" + escape-string-regexp "1.0.5" + glob "7.1.1" growl "1.9.2" - jade "0.26.3" + he "1.1.1" + json3 "3.3.2" + lodash.create "3.1.1" mkdirp "0.5.1" - supports-color "1.2.0" - to-iso-string "0.0.2" + supports-color "3.1.2" -mochify@^2.12.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/mochify/-/mochify-2.19.0.tgz#6893a46b76131e4d351fe005dbcbcaec2aaf1a9a" +mochify@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/mochify/-/mochify-3.3.0.tgz#df92f76960cf4ef45a91606a2d09afb3c388c2b3" dependencies: brout "^1.1.0" - browserify "^13.0.0" + browserify "^14.4.0" consolify "^2.1.0" coverify "^1.4.1" - glob "^7.0.5" + glob "^7.1.2" min-wd "^2.9.0" - mocaccino "^1.9.0" - mocha "^2.3.4" - phantomic "^1.4.0" - resolve "^1.1.6" + mocaccino "^2.0.0" + mocha "^3.4.2" + phantomic "^1.5.2" + resolve "^1.3.3" source-mapper "^2.0.0" subarg "^1.0.0" through2 "^2.0.0" watchify "^3.7.0" - which "^1.2.1" + which "^1.2.14" module-deps@^4.0.2, module-deps@^4.0.8: version "4.1.1" @@ -5473,6 +5741,10 @@ ms@0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + ms@^0.7.1: version "0.7.3" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff" @@ -5510,6 +5782,14 @@ ncp@~0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/ncp/-/ncp-0.4.2.tgz#abcc6cbd3ec2ed2a729ff6e7c1fa8f01784a8574" +nearley@^2.7.10: + version "2.11.0" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.11.0.tgz#5e626c79a6cd2f6ab9e7e5d5805e7668967757ae" + dependencies: + nomnom "~1.6.2" + railroad-diagrams "^1.0.0" + randexp "^0.4.2" + negotiator@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.3.0.tgz#706d692efeddf574d57ea9fb1ab89a4fa7ee8f60" @@ -5577,9 +5857,9 @@ node-libs-browser@^2.0.0: util "^0.10.3" vm-browserify "0.0.4" -node-notifier@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.0.2.tgz#4438449fe69e321f941cef943986b0797032701b" +node-notifier@^5.0.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.1.2.tgz#2fa9e12605fa10009d44549d6fcd8a63dde0e4ff" dependencies: growly "^1.3.0" semver "^5.3.0" @@ -5600,16 +5880,45 @@ node-pre-gyp@^0.6.29: tar "~2.2.1" tar-pack "~3.3.0" +node-pre-gyp@^0.6.36: + version "0.6.38" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.38.tgz#e92a20f83416415bb4086f6d1fb78b3da73d113d" + dependencies: + hawk "3.1.3" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + node-uuid@^1.4.3, node-uuid@~1.4.0, node-uuid@~1.4.1: version "1.4.7" resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" +nomnom@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.6.2.tgz#84a66a260174408fc5b77a18f888eccc44fb6971" + dependencies: + colors "0.5.x" + underscore "~1.4.4" + nopt@3.x, nopt@^3.0.1, nopt@~3.0.6: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: abbrev "1" +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + nopt@~1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" @@ -5675,6 +5984,15 @@ npmlog@^4.0.1: gauge "~2.7.1" set-blocking "~2.0.0" +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + nth-check@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" @@ -5729,7 +6047,7 @@ object.assign@^4.0.4: function-bind "^1.1.0" object-keys "^1.0.10" -object.entries@^1.0.3: +object.entries@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f" dependencies: @@ -5745,7 +6063,7 @@ object.omit@^2.0.0: for-own "^0.1.4" is-extendable "^0.1.1" -object.values@^1.0.3: +object.values@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a" dependencies: @@ -5774,7 +6092,7 @@ on-headers@~1.0.0, on-headers@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" -once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@1.x, once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: @@ -5864,11 +6182,19 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + os-shim@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" -os-tmpdir@^1.0.1: +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -5876,12 +6202,23 @@ osenv@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.0.3.tgz#cd6ad8ddb290915ad9e22765576025d411f29cb6" +osenv@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + outpipe@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/outpipe/-/outpipe-1.1.1.tgz#50cf8616365e87e031e29a5ec9339a3da4725fa2" dependencies: shell-quote "^1.4.2" +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -5951,6 +6288,12 @@ parse5@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" +parse5@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.2.tgz#05eff57f0ef4577fb144a79f8b9a967a6cc44510" + dependencies: + "@types/node" "^6.0.46" + parseurl@~1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" @@ -6005,6 +6348,12 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + pause@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" @@ -6023,9 +6372,13 @@ performance-now@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" -phantomic@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/phantomic/-/phantomic-1.4.0.tgz#b0a9b64f72a5aabe8cdbe7c8387b3cff2ab1f4a0" +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + +phantomic@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/phantomic/-/phantomic-1.5.2.tgz#53e18c5bbf6fa52ac4fa835d61557f720b4ae25e" dependencies: cross-spawn "^2.1.4" es5-shim "^4.4.1" @@ -6035,6 +6388,10 @@ pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -6342,6 +6699,13 @@ pretty-format@^19.0.0: dependencies: ansi-styles "^3.0.0" +pretty-format@^21.2.1: + version "21.2.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-21.2.1.tgz#ae5407f3cf21066cd011aa1ba5fce7b6a2eddb36" + dependencies: + ansi-regex "^3.0.0" + ansi-styles "^3.2.0" + private@^0.1.6: version "0.1.7" resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" @@ -6364,12 +6728,13 @@ promise@^7.0.3, promise@^7.1.1: dependencies: asap "~2.0.3" -prop-types@^15.5.10, prop-types@^15.5.6: - version "15.5.10" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154" +prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0: + version "15.6.0" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" dependencies: - fbjs "^0.8.9" + fbjs "^0.8.16" loose-envify "^1.3.1" + object-assign "^4.1.1" proxy-addr@~1.1.3: version "1.1.3" @@ -6466,6 +6831,23 @@ querystringify@0.0.x: version "0.0.4" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" +raf@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.0.tgz#a28876881b4bc2ca9117d4138163ddb80f781575" + dependencies: + performance-now "^2.1.0" + +railroad-diagrams@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" + +randexp@^0.4.2: + version "0.4.6" + resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" + dependencies: + discontinuous-range "1.0.0" + ret "~0.1.10" + randomatic@^1.1.3: version "1.1.6" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" @@ -6498,6 +6880,15 @@ raw-body@~2.0.1: bytes "2.1.0" iconv-lite "0.4.8" +rc@^1.1.7: + version "1.2.1" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + rc@~1.1.6: version "1.1.7" resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.7.tgz#c5ea564bb07aff9fd3a5b32e906c1d3a65940fea" @@ -6507,45 +6898,41 @@ rc@~1.1.6: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-addons-test-utils@^15.6.0: - version "15.6.0" - resolved "https://registry.yarnpkg.com/react-addons-test-utils/-/react-addons-test-utils-15.6.0.tgz#062d36117fe8d18f3ba5e06eb33383b0b85ea5b9" - -"react-dom@^15.6.1 || ^16.0.0": - version "15.6.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.1.tgz#2cb0ed4191038e53c209eb3a79a23e2a4cf99470" +react-dom@^16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.0.0.tgz#9cc3079c3dcd70d4c6e01b84aab2a7e34c303f58" dependencies: - fbjs "^0.8.9" + fbjs "^0.8.16" loose-envify "^1.1.0" - object-assign "^4.1.0" - prop-types "^15.5.10" + object-assign "^4.1.1" + prop-types "^15.6.0" -react-test-renderer@^15.6.1: - version "15.6.1" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-15.6.1.tgz#026f4a5bb5552661fd2cc4bbcd0d4bc8a35ebf7e" +react-test-renderer@^16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.0.0.tgz#9fe7b8308f2f71f29fc356d4102086f131c9cb15" dependencies: - fbjs "^0.8.9" - object-assign "^4.1.0" + fbjs "^0.8.16" + object-assign "^4.1.1" -react-transition-group@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-1.2.0.tgz#b51fc921b0c3835a7ef7c571c79fc82c73e9204f" +react-transition-group@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.2.1.tgz#e9fb677b79e6455fd391b03823afe84849df4a10" dependencies: chain-function "^1.0.0" + classnames "^2.2.5" dom-helpers "^3.2.0" loose-envify "^1.3.1" - prop-types "^15.5.6" + prop-types "^15.5.8" warning "^3.0.0" -"react@^15.6.1 || ^16.0.0": - version "15.6.1" - resolved "https://registry.yarnpkg.com/react/-/react-15.6.1.tgz#baa8434ec6780bde997cdc380b79cd33b96393df" +react@^16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.0.0.tgz#ce7df8f1941b036f02b2cca9dbd0cb1f0e855e2d" dependencies: - create-react-class "^15.6.0" - fbjs "^0.8.9" + fbjs "^0.8.16" loose-envify "^1.1.0" - object-assign "^4.1.0" - prop-types "^15.5.10" + object-assign "^4.1.1" + prop-types "^15.6.0" read-only-stream@^2.0.0: version "2.0.0" @@ -6560,6 +6947,13 @@ read-pkg-up@^1.0.1: find-up "^1.0.0" read-pkg "^1.0.0" +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -6568,6 +6962,14 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.2, readable-stream@~1.0.24, readable-stream@~1.0.26, readable-stream@~1.0.33: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" @@ -6598,6 +7000,18 @@ readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2. string_decoder "~0.10.x" util-deprecate "~1.0.1" +readable-stream@^2.1.4: + version "2.3.3" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + readable-stream@~2.0.0: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" @@ -6677,6 +7091,10 @@ regenerator-runtime@^0.10.0: version "0.10.3" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.3.tgz#8c4367a904b51ea62a908ac310bf99ff90a82a3e" +regenerator-runtime@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" + regenerator-transform@0.9.8: version "0.9.8" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.8.tgz#0f88bb2bc03932ddb7b6b7312e68078f01026d6c" @@ -6739,7 +7157,7 @@ request@2.11.4: form-data "~0.0.3" mime "~1.2.7" -request@^2.55.0, request@^2.78.0, request@^2.79.0: +request@2.81.0, request@^2.55.0, request@^2.78.0, request@^2.79.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" dependencies: @@ -6829,12 +7247,18 @@ resolve@1.1.7, resolve@1.1.x: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" -resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.6, resolve@^1.2.0: +resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.6: version "1.3.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.2.tgz#1f0442c9e0cbb8136e87b9305f932f46c7f28235" dependencies: path-parse "^1.0.5" +resolve@^1.3.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" + dependencies: + path-parse "^1.0.5" + resolve@~0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.3.1.tgz#34c63447c664c70598d1c9b126fc43b2a24310a4" @@ -6846,6 +7270,10 @@ restore-cursor@^1.0.1: exit-hook "^1.0.0" onetime "^1.0.0" +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + rework-import@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/rework-import/-/rework-import-2.1.0.tgz#c26ed2b53159ac7be2ec60da223ef89603c1ef1f" @@ -6868,7 +7296,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.4.3, rimraf@^2.4.4: +rimraf@2, rimraf@^2.4.4: version "2.6.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" dependencies: @@ -6878,6 +7306,12 @@ rimraf@^2.2.8, rimraf@~2.2.0, rimraf@~2.2.1, rimraf@~2.2.2, rimraf@~2.2.8: version "2.2.8" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" +rimraf@^2.5.1, rimraf@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + rimraf@~2.5.1, rimraf@~2.5.4: version "2.5.4" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" @@ -6888,6 +7322,13 @@ ripemd160@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e" +rst-selector-parser@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.2.tgz#9927b619bd5af8dc23a76c64caef04edf90d2c65" + dependencies: + lodash.flattendeep "^4.4.0" + nearley "^2.7.10" + run-async@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" @@ -6930,21 +7371,27 @@ safe-buffer@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + samsam@1.1.2, samsam@~1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.2.tgz#bec11fdc83a9fda063401210e40176c3024d1567" -sane@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-1.5.0.tgz#a4adeae764d048621ecb27d5f9ecf513101939f3" +sane@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-2.2.0.tgz#d6d2e2fcab00e3d283c93b912b7c3a20846f1d56" dependencies: anymatch "^1.3.0" exec-sh "^0.2.0" - fb-watchman "^1.8.0" + fb-watchman "^2.0.0" minimatch "^3.0.2" minimist "^1.1.1" walker "~1.0.5" - watch "~0.10.0" + watch "~0.18.0" + optionalDependencies: + fsevents "^1.1.1" saucelabs@^1.0.1: version "1.4.0" @@ -7109,7 +7556,7 @@ sigmund@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" -signal-exit@^3.0.0: +signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -7375,11 +7822,12 @@ strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" -string-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" +string-length@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" dependencies: - strip-ansi "^3.0.0" + astral-regex "^1.0.0" + strip-ansi "^4.0.0" string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" @@ -7400,6 +7848,12 @@ string_decoder@^0.10.25, string_decoder@~0.10.0, string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" +string_decoder@~1.0.0, string_decoder@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + dependencies: + safe-buffer "~5.1.0" + stringstream@~0.0.4: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" @@ -7410,6 +7864,12 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: dependencies: ansi-regex "^2.0.0" +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -7487,9 +7947,11 @@ superagent@^3.3.1: qs "^6.1.0" readable-stream "^2.0.5" -supports-color@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-1.2.0.tgz#ff1ed1e61169d06b3cf2d588e188b18d8847e17e" +supports-color@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + dependencies: + has-flag "^1.0.0" supports-color@^2.0.0: version "2.0.0" @@ -7501,6 +7963,12 @@ supports-color@^3.1.0, supports-color@^3.1.1, supports-color@^3.1.2, supports-co dependencies: has-flag "^1.0.0" +supports-color@^4.0.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" + dependencies: + has-flag "^2.0.0" + svgo@^0.7.0: version "0.7.2" resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" @@ -7563,6 +8031,19 @@ tapable@^0.2.5, tapable@~0.2.5: version "0.2.6" resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.6.tgz#206be8e188860b514425375e6f1ae89bfb01fd8d" +tar-pack@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + tar-pack@~3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" @@ -7604,7 +8085,7 @@ tar.gz@^1.0.3: mout "^0.11.0" tar "^2.1.1" -tar@^2.1.1, tar@~2.2.1: +tar@^2.1.1, tar@^2.2.1, tar@~2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" dependencies: @@ -7626,9 +8107,9 @@ text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" -throat@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-3.0.0.tgz#e7c64c867cbb3845f10877642f7b60055b8ec0d6" +throat@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" through2@^2.0.0, through2@~2.0.0: version "2.0.3" @@ -7680,9 +8161,9 @@ to-fast-properties@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" -to-iso-string@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/to-iso-string/-/to-iso-string-0.0.2.tgz#4dc19e664dfccbe25bd8db508b00c6da158255d1" +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" topo@1.x.x: version "1.1.0" @@ -7785,7 +8266,7 @@ uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" -uid-number@~0.0.6: +uid-number@^0.0.6, uid-number@~0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" @@ -7809,6 +8290,10 @@ underscore.string@~2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.4.0.tgz#8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b" +underscore@~1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" + underscore@~1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" @@ -7894,7 +8379,7 @@ utils-merge@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" -uuid@^2.0.2, uuid@^2.0.3: +uuid@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" @@ -7955,9 +8440,12 @@ warning@^3.0.0: dependencies: loose-envify "^1.0.0" -watch@~0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" +watch@~0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" + dependencies: + exec-sh "^0.2.0" + minimist "^1.2.0" watchify@3.7.0: version "3.7.0" @@ -8130,16 +8618,26 @@ which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + which@1.0.x, which@~1.0.5: version "1.0.9" resolved "https://registry.yarnpkg.com/which/-/which-1.0.9.tgz#460c1da0f810103d0321a9b633af9e575e64486f" -which@^1.1.1, which@^1.2.1, which@^1.2.10, which@^1.2.12, which@^1.2.8, which@^1.2.9: +which@^1.1.1, which@^1.2.10, which@^1.2.12, which@^1.2.8, which@^1.2.9: version "1.2.12" resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" dependencies: isexe "^1.1.1" +which@^1.2.14: + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + dependencies: + isexe "^2.0.0" + wide-align@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" @@ -8184,6 +8682,14 @@ wrench@~1.5.1: version "1.5.9" resolved "https://registry.yarnpkg.com/wrench/-/wrench-1.5.9.tgz#411691c63a9b2531b1700267279bdeca23b2142a" +write-file-atomic@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + write@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" @@ -8248,7 +8754,13 @@ yargs-parser@^4.2.0: dependencies: camelcase "^3.0.0" -yargs@^6.0.0, yargs@^6.3.0: +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + dependencies: + camelcase "^4.1.0" + +yargs@^6.0.0: version "6.6.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" dependencies: @@ -8266,6 +8778,24 @@ yargs@^6.0.0, yargs@^6.3.0: y18n "^3.2.1" yargs-parser "^4.2.0" +yargs@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" From 6359071b7ecd68a96a419654195f8d6148c2c73e Mon Sep 17 00:00:00 2001 From: Luis Deschamps Rudge Date: Fri, 6 Oct 2017 10:46:35 -0300 Subject: [PATCH 2/7] Fix invalid ref --- Gruntfile.js | 4 ++-- src/ui/box/chrome.jsx | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 42800cbad..a34586436 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -82,7 +82,7 @@ module.exports = function(grunt) { port: 3000, https: true, webpack: { - devtool: 'eval' + devtool: 'cheap-module-source-map' } }, design: { @@ -92,7 +92,7 @@ module.exports = function(grunt) { path: path.join(__dirname, 'build'), filename: 'lock.design.js' }, - devtool: 'eval' + devtool: 'cheap-module-source-map' } } }, diff --git a/src/ui/box/chrome.jsx b/src/ui/box/chrome.jsx index 5cf2bc131..39ebcc222 100644 --- a/src/ui/box/chrome.jsx +++ b/src/ui/box/chrome.jsx @@ -268,20 +268,20 @@ export default class Chrome extends React.Component { -
+
-
+
From 472af0d74c57bd2b7bb46a86e92ed56ef3d0ba21 Mon Sep 17 00:00:00 2001 From: Luis Deschamps Rudge Date: Fri, 6 Oct 2017 17:01:14 -0300 Subject: [PATCH 3/7] Fix versioning --- package.json | 4 ++-- yarn.lock | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 03bb4c5ee..369e949fe 100644 --- a/package.json +++ b/package.json @@ -94,8 +94,8 @@ "jsonp": "^0.2.0", "password-sheriff": "^1.1.0", "prop-types": "^15.6.0", - "react": "^16.0.0", - "react-dom": "^16.0.0", + "react": "^15.6.1 || ^16.0.0", + "react-dom": "^15.6.1 || ^16.0.0", "react-transition-group": "^2.2.1", "superagent": "^3.3.1", "trim": "0.0.1", diff --git a/yarn.lock b/yarn.lock index 624f602f0..0db1a6ec8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6898,7 +6898,7 @@ rc@~1.1.6: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-dom@^16.0.0: +"react-dom@^15.6.1 || ^16.0.0": version "16.0.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.0.0.tgz#9cc3079c3dcd70d4c6e01b84aab2a7e34c303f58" dependencies: @@ -6925,7 +6925,7 @@ react-transition-group@^2.2.1: prop-types "^15.5.8" warning "^3.0.0" -react@^16.0.0: +"react@^15.6.1 || ^16.0.0": version "16.0.0" resolved "https://registry.yarnpkg.com/react/-/react-16.0.0.tgz#ce7df8f1941b036f02b2cca9dbd0cb1f0e855e2d" dependencies: From cd4dff0fc4734f4ed6427e5e747e245bfcfa0086 Mon Sep 17 00:00:00 2001 From: Luis Deschamps Rudge Date: Fri, 6 Oct 2017 17:26:12 -0300 Subject: [PATCH 4/7] Formatting package.json --- package.json | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 369e949fe..fbe9c05f5 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,15 @@ "description": "Auth0 Lock", "author": "Auth0 (http://auth0.com)", "license": "MIT", - "keywords": ["auth0", "auth", "openid", "authentication", "passwordless", "browser", "jwt"], + "keywords": [ + "auth0", + "auth", + "openid", + "authentication", + "passwordless", + "browser", + "jwt" + ], "repository": { "type": "git", "url": "git://github.com/auth0/lock" @@ -128,6 +136,10 @@ "coverageReporters": ["lcov", "text-summary"] }, "lint-staged": { - "*.{js,jsx}": ["npm run lint", "prettier --write --print-width 100 --single-quote", "git add"] + "*.{js,jsx}": [ + "npm run lint", + "prettier --write --print-width 100 --single-quote", + "git add" + ] } } From 2bc887f68ea916ecf0bc64f5a708de08e21019f8 Mon Sep 17 00:00:00 2001 From: Luis Deschamps Rudge Date: Fri, 6 Oct 2017 18:09:17 -0300 Subject: [PATCH 5/7] preventing warnings from showing in the tests --- src/__tests__/setup-tests.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/__tests__/setup-tests.js b/src/__tests__/setup-tests.js index d7c7b3222..6e7a0cf4b 100644 --- a/src/__tests__/setup-tests.js +++ b/src/__tests__/setup-tests.js @@ -2,6 +2,8 @@ import { configure } from 'enzyme'; import Adapter from 'enzyme-adapter-react-16'; +jest.mock('react-dom/node_modules/fbjs/lib/warning'); + configure({ adapter: new Adapter() }); //jest polyfills From 673f0c3fb0ac73b7f8aee865ce1ab3adac226b91 Mon Sep 17 00:00:00 2001 From: Luis Deschamps Rudge Date: Fri, 6 Oct 2017 18:35:48 -0300 Subject: [PATCH 6/7] Make just run tests serially --- package.json | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index fbe9c05f5..89258dfde 100644 --- a/package.json +++ b/package.json @@ -4,15 +4,7 @@ "description": "Auth0 Lock", "author": "Auth0 (http://auth0.com)", "license": "MIT", - "keywords": [ - "auth0", - "auth", - "openid", - "authentication", - "passwordless", - "browser", - "jwt" - ], + "keywords": ["auth0", "auth", "openid", "authentication", "passwordless", "browser", "jwt"], "repository": { "type": "git", "url": "git://github.com/auth0/lock" @@ -34,7 +26,7 @@ "cross-env BABEL_ENV=test mochify --extension=.jsx --transform=babelify ./test/setup.js test/**/*.test.js", "test:watch": "cross-env BABEL_ENV=test mochify --watch --extension=.jsx --transform=babelify ./test/setup.js test/**/*.test.js", - "test:jest": "jest --coverage", + "test:jest": "jest --coverage --runInBand", "test:jest:watch": "jest --watch --coverage", "publish:cdn": "ccu", "release": "scripts/release.sh", @@ -136,10 +128,6 @@ "coverageReporters": ["lcov", "text-summary"] }, "lint-staged": { - "*.{js,jsx}": [ - "npm run lint", - "prettier --write --print-width 100 --single-quote", - "git add" - ] + "*.{js,jsx}": ["npm run lint", "prettier --write --print-width 100 --single-quote", "git add"] } } From 07334395854a75c7b49eff7761146d71dba28131 Mon Sep 17 00:00:00 2001 From: Luis Deschamps Rudge Date: Mon, 9 Oct 2017 09:48:29 -0300 Subject: [PATCH 7/7] removing unused ref --- src/ui/box/container.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/box/container.jsx b/src/ui/box/container.jsx index 769c473f0..2e4ec5b79 100644 --- a/src/ui/box/container.jsx +++ b/src/ui/box/container.jsx @@ -204,7 +204,7 @@ export default class Container extends React.Component { } return ( -
+
{overlay}