From 1fe36f0e1b735e3afc03117a6cd251fc771b43af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Ramos?= Date: Wed, 13 Sep 2017 19:11:20 +0100 Subject: [PATCH] feat(portal-api): create Service's before provisioning (#673) --- .../src/containers/deployment-groups/list.js | 22 +- .../navigation/__tests__/not-found.spec.js | 12 +- .../src/components/navigation/header.js | 5 +- .../src/containers/navigation/header.js | 4 +- .../joyent-boilerplate/src/state/state.js | 5 +- packages/portal-api/lib/data/index.js | 63 +- yarn.lock | 592 ++++++++++-------- 7 files changed, 416 insertions(+), 287 deletions(-) diff --git a/packages/cp-frontend/src/containers/deployment-groups/list.js b/packages/cp-frontend/src/containers/deployment-groups/list.js index 09f53134..33f33fb9 100644 --- a/packages/cp-frontend/src/containers/deployment-groups/list.js +++ b/packages/cp-frontend/src/containers/deployment-groups/list.js @@ -119,26 +119,21 @@ export const DeploymentGroupList = ({ }) => { const _title = Deployment groups; - if (loading) { + if (loading && (!deploymentGroups || !deploymentGroups.length)) { return ( - {_title} ); } - if (error) { - return ( - - {_title} - - - ); - } + const _error = + error && (!deploymentGroups || !deploymentGroups.length) ? ( + + ) : null; const groups = forceArray(deploymentGroups).map(({ slug, name }) => ( @@ -178,6 +173,7 @@ export const DeploymentGroupList = ({ return ( {_title} + {_error} {groups} {create} diff --git a/packages/joyent-boilerplate/src/components/navigation/__tests__/not-found.spec.js b/packages/joyent-boilerplate/src/components/navigation/__tests__/not-found.spec.js index aa38f8ec..355b9c68 100644 --- a/packages/joyent-boilerplate/src/components/navigation/__tests__/not-found.spec.js +++ b/packages/joyent-boilerplate/src/components/navigation/__tests__/not-found.spec.js @@ -10,10 +10,12 @@ import { Router } from '@mocks/'; import { NotFound } from '../'; it('renders without throwing', () => { - const tree = renderer.create( - - - - ).toJSON(); + const tree = renderer + .create( + + + + ) + .toJSON(); expect(tree).toMatchSnapshot(); }); diff --git a/packages/joyent-boilerplate/src/components/navigation/header.js b/packages/joyent-boilerplate/src/components/navigation/header.js index d9f5cd85..581fb136 100644 --- a/packages/joyent-boilerplate/src/components/navigation/header.js +++ b/packages/joyent-boilerplate/src/components/navigation/header.js @@ -4,10 +4,7 @@ import { Img } from 'normalized-styled-components'; import remcalc from 'remcalc'; import Logo from '@assets/triton_logo.png'; -import { - Header, - HeaderBrand, -} from 'joyent-ui-toolkit'; +import { Header, HeaderBrand } from 'joyent-ui-toolkit'; const StyledLogo = Img.extend` width: ${remcalc(87)}; diff --git a/packages/joyent-boilerplate/src/containers/navigation/header.js b/packages/joyent-boilerplate/src/containers/navigation/header.js index c134c042..eed568d7 100644 --- a/packages/joyent-boilerplate/src/containers/navigation/header.js +++ b/packages/joyent-boilerplate/src/containers/navigation/header.js @@ -2,8 +2,6 @@ import React from 'react'; import { Header as HeaderComponent } from '@components/navigation'; -export const Header = () => ( - -); +export const Header = () => ; export default Header; diff --git a/packages/joyent-boilerplate/src/state/state.js b/packages/joyent-boilerplate/src/state/state.js index d44b6199..4110b168 100644 --- a/packages/joyent-boilerplate/src/state/state.js +++ b/packages/joyent-boilerplate/src/state/state.js @@ -1,4 +1,3 @@ -const state = {} +const state = {}; - -export default state; \ No newline at end of file +export default state; diff --git a/packages/portal-api/lib/data/index.js b/packages/portal-api/lib/data/index.js index 817decc9..d86efe13 100644 --- a/packages/portal-api/lib/data/index.js +++ b/packages/portal-api/lib/data/index.js @@ -1331,6 +1331,58 @@ class Data extends EventEmitter { }, handleNewServices); }; + const handleConfigServicesCreation = (err) => { + if (err) { + return handleFailedProvision(err); + } + + this._server.log(['debug'], `-> requesting docker-compose provision for DeploymentGroup ${ctx.currentDeploymentGroup.name}`); + + this._dockerCompose.provision({ + projectName: ctx.currentDeploymentGroup.name, + environment: clientManifest.environment, + files: internals.fromKeyValueToDict(clientManifest.files), + manifest: ctx.newManifest.raw + }, handleProvisionResponse); + }; + + const createConfigServices = () => { + VAsync.forEachParallel({ + inputs: ctx.config, + func: ({ name, slug }, next) => { + this.getServices({ + name, + deploymentGroupId: ctx.currentDeploymentGroup.id + }, (err, services = []) => { + if (!err) { + return next(); + } + + if (err && !internals.isNotFound(err)) { + return next(err); + } + + this.createService({ + deploymentGroupId: ctx.currentDeploymentGroup.id, + status: 'PROVISIONING', + name, + slug + }, next); + }); + } + }, (err, result) => { + if (err) { + return handleFailedProvision(err); + } + + this.updateDeploymentGroup({ + id: ctx.currentDeploymentGroup.id, + status: 'PROVISIONING', + services: result.successes + }, handleConfigServicesCreation); + }); + }; + // 7. handle new version // 8. call docker-compose to up dg const handleNewVersion = (err, newVersion) => { @@ -1346,16 +1398,7 @@ class Data extends EventEmitter { // CALLBACK cb(null, ctx.newVersion); - setImmediate(() => { - this._server.log(['debug'], `-> requesting docker-compose provision for DeploymentGroup ${ctx.currentDeploymentGroup.name}`); - - this._dockerCompose.provision({ - projectName: ctx.currentDeploymentGroup.name, - environment: clientManifest.environment, - files: internals.fromKeyValueToDict(clientManifest.files), - manifest: ctx.newManifest.raw - }, handleProvisionResponse); - }); + setImmediate(createConfigServices); }; // 6. handle curent scale based on machines in triton diff --git a/yarn.lock b/yarn.lock index 43305cf7..d002c46e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -288,6 +288,10 @@ ansi-escapes@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b" +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" @@ -650,6 +654,10 @@ ast-types@^0.9.12: version "0.9.12" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.12.tgz#b136300d67026625ae15326982ca9918e5db73c9" +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" @@ -1050,12 +1058,12 @@ babel-jest@20.0.3, babel-jest@^20.0.3: babel-plugin-istanbul "^4.0.0" babel-preset-jest "^20.0.3" -babel-jest@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-21.0.0.tgz#4f636a7dce105aa5753d5f3dde4422ff50c1d6c5" +babel-jest@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-21.0.2.tgz#817ea52c23f1c6c4b684d6960968416b6a9e9c6c" dependencies: babel-plugin-istanbul "^4.0.0" - babel-preset-jest "^21.0.0" + babel-preset-jest "^21.0.2" babel-loader@7.1.1: version "7.1.1" @@ -1126,9 +1134,9 @@ babel-plugin-jest-hoist@^20.0.3: version "20.0.3" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz#afedc853bd3f8dc3548ea671fbe69d03cc2c1767" -babel-plugin-jest-hoist@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.0.0.tgz#aa2dbab7b0d58fa635640efd53aab730be7b3273" +babel-plugin-jest-hoist@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.0.2.tgz#cfdce5bca40d772a056cb8528ad159c7bb4bb03d" babel-plugin-styled-components@^1.1.7, babel-plugin-styled-components@^1.2.0: version "1.2.0" @@ -1524,11 +1532,11 @@ babel-preset-jest@^20.0.3: dependencies: babel-plugin-jest-hoist "^20.0.3" -babel-preset-jest@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-21.0.0.tgz#13a8d82e999aa49f8b2dc14d0023d362f2e4ba23" +babel-preset-jest@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-21.0.2.tgz#9db25def2329f49eace3f5ea0de42a0b898d12cc" dependencies: - babel-plugin-jest-hoist "^21.0.0" + babel-plugin-jest-hoist "^21.0.2" babel-preset-react-app@^3.0.2: version "3.0.2" @@ -2129,12 +2137,12 @@ caniuse-api@^1.5.2: lodash.uniq "^4.5.0" caniuse-db@^1.0.30000187, caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000726" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000726.tgz#9bb742f8d026a62df873bc03c06843d2255b60d7" + version "1.0.30000727" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000727.tgz#4e22593089b0f35c1b2adcfc28234493a21a4b2e" caniuse-lite@^1.0.30000669, caniuse-lite@^1.0.30000697, caniuse-lite@^1.0.30000718, caniuse-lite@^1.0.30000726: - version "1.0.30000726" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000726.tgz#966a753fa107a09d4131cf8b3d616723a06ccf7e" + version "1.0.30000727" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000727.tgz#20c895768398ded5f98a4beab4a76c285def41d2" capture-stack-trace@^1.0.0: version "1.0.0" @@ -2226,23 +2234,23 @@ character-reference-invalid@^1.0.0: resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.1.tgz#942835f750e4ec61a308e60c2ef8cc1011202efc" chart.js@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.6.0.tgz#308f9a4b0bfed5a154c14f5deb1d9470d22abe71" + version "2.7.0" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.7.0.tgz#330dbbee0c66199eb715f60fbf8ca4029609a529" dependencies: - chartjs-color "^2.1.0" - moment "^2.10.6" + chartjs-color "~2.2.0" + moment "~2.18.0" -chartjs-color-string@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.4.0.tgz#57748d4530ae28d8db0a5492182ba06dfdf2f468" +chartjs-color-string@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.5.0.tgz#8d3752d8581d86687c35bfe2cb80ac5213ceb8c1" dependencies: color-name "^1.0.0" -chartjs-color@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.1.0.tgz#9c39ac830ccd98996ae80c9f11086ff12c98a756" +chartjs-color@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.2.0.tgz#84a2fb755787ed85c39dd6dd8c7b1d88429baeae" dependencies: - chartjs-color-string "^0.4.0" + chartjs-color-string "^0.5.0" color-convert "^0.5.3" checksum@^0.1.1: @@ -2717,12 +2725,12 @@ content-type-parser@^1.0.1: resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94" content-type@^1.0.2, content-type@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" content@3.x.x: - version "3.0.5" - resolved "https://registry.yarnpkg.com/content/-/content-3.0.5.tgz#9e147dc7c838c4de9483096845ddb4de455ec509" + version "3.0.6" + resolved "https://registry.yarnpkg.com/content/-/content-3.0.6.tgz#9c2e301e9ae515ed65a4b877d78aa5659bb1b809" dependencies: boom "5.x.x" @@ -3155,10 +3163,11 @@ css-tokenize@^1.0.1: inherits "^2.0.1" readable-stream "^1.0.33" -css-tree@1.0.0-alpha19: - version "1.0.0-alpha19" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha19.tgz#949aa846c2c15b3979792e8fce05f6b6e3ebcad4" +css-tree@1.0.0-alpha23: + version "1.0.0-alpha23" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha23.tgz#5129518def61e99931d9a3397c3d6758af2ff0c5" dependencies: + mdn-data "^1.0.0" source-map "^0.5.3" css-unit-converter@^1.1.1: @@ -3220,10 +3229,10 @@ cssesc@^0.1.0: postcss-zindex "^2.0.1" csso@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/csso/-/csso-3.1.1.tgz#ab427584486c2e02e180327511b0b02a9179c272" + version "3.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-3.2.0.tgz#b290b9581551904aad45bca8988af17ca0711235" dependencies: - css-tree "1.0.0-alpha19" + css-tree "1.0.0-alpha23" csso@~2.3.1: version "2.3.2" @@ -3598,6 +3607,13 @@ deep-object-diff@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.0.4.tgz#ee4c93b4a9da2962a568964c935a1989a416f9c4" +default-gateway@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-2.0.2.tgz#e365db05c50a4643cc1990c6178228c540a0b910" + dependencies: + execa "^0.7.0" + ip-regex "^2.1.0" + default-require-extensions@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" @@ -3745,8 +3761,8 @@ dns-txt@^2.0.2: buffer-indexof "^1.0.0" docker-modem@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-1.0.1.tgz#a65aa694209e2b451544f8493cb313695ec20e77" + version "1.0.2" + resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-1.0.2.tgz#004de0afd2e7b32894e18492fab05ba2dc5d63e3" dependencies: JSONStream "0.10.0" debug "^2.6.0" @@ -3754,8 +3770,8 @@ docker-modem@^1.0.0: split-ca "^1.0.0" dockerode@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-2.5.0.tgz#3fb1ff0e14b6901d92abff75a8a5440569f0538b" + version "2.5.1" + resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-2.5.1.tgz#c0df942c48bf0c0be8353e348d45e1acb4c036e5" dependencies: concat-stream "~1.5.1" docker-modem "^1.0.0" @@ -4120,15 +4136,15 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.0, escape-string-regexp@^1 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" escodegen@^1.6.1, escodegen@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + version "1.9.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.0.tgz#9811a2f265dc1cd3894420ee3717064b632b8852" dependencies: - esprima "^2.7.1" - estraverse "^1.9.1" + esprima "^3.1.3" + estraverse "^4.2.0" esutils "^2.0.2" optionator "^0.8.1" optionalDependencies: - source-map "~0.2.0" + source-map "~0.5.6" escope@^3.6.0: version "3.6.0" @@ -4431,10 +4447,14 @@ espree@3.5.x, espree@^3.5.0: acorn "^5.1.1" acorn-jsx "^3.0.0" -esprima@^2.1.0, esprima@^2.6.0, esprima@^2.7.1: +esprima@^2.1.0, esprima@^2.6.0: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" +esprima@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + esprima@^4.0.0, esprima@~4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" @@ -4458,10 +4478,6 @@ esrecurse@^4.1.0: estraverse "^4.1.0" object-assign "^4.0.1" -estraverse@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" - estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" @@ -4475,8 +4491,8 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" etag@~1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051" + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" event-emitter@~0.3.5: version "0.3.5" @@ -4598,16 +4614,16 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-21.0.0.tgz#55fbb07e989479863663975ae8e9ec51753c99ca" +expect@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-21.0.2.tgz#b34abf0635ec9d6aea1ce7edb4722afe86c4a38f" dependencies: ansi-styles "^3.2.0" - jest-diff "^21.0.0" - jest-get-type "^21.0.0" - jest-matcher-utils "^21.0.0" - jest-message-util "^21.0.0" - jest-regex-util "^21.0.0" + jest-diff "^21.0.2" + jest-get-type "^21.0.2" + jest-matcher-utils "^21.0.2" + jest-message-util "^21.0.2" + jest-regex-util "^21.0.2" express-graphql@^0.6.11: version "0.6.11" @@ -4980,8 +4996,8 @@ form-data@~2.1.1: mime-types "^2.1.12" forwarded@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" + version "0.1.1" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.1.tgz#8a4e30c640b05395399a3549c730257728048961" franc@^2.0.0: version "2.0.0" @@ -5045,11 +5061,11 @@ fs-extra@^1.0.0: klaw "^1.0.0" fs-extra@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.1.tgz#7fc0c6c8957f983f57f306a24e5b9ddd8d0dd880" + version "4.0.2" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.2.tgz#f91704c53d1b461f893452b0c307d9997647ab6b" dependencies: graceful-fs "^4.1.2" - jsonfile "^3.0.0" + jsonfile "^4.0.0" universalify "^0.1.0" fs-readdir-recursive@^1.0.0: @@ -5516,8 +5532,8 @@ hapi-scope-start@2.x.x: resolved "https://registry.yarnpkg.com/hapi-scope-start/-/hapi-scope-start-2.1.1.tgz#7495a726fe72b7bca8de2cdcc1d87cd8ce6ab4f2" hapi@^16.5.2: - version "16.5.2" - resolved "https://registry.yarnpkg.com/hapi/-/hapi-16.5.2.tgz#d1dadf33721c6ac3aaa905ce086d9c7ffb883092" + version "16.6.0" + resolved "https://registry.yarnpkg.com/hapi/-/hapi-16.6.0.tgz#c97cc7119a04314553883868651862fee34318ee" dependencies: accept "^2.1.4" ammo "^2.0.4" @@ -5731,8 +5747,8 @@ html-entities@1.2.1, html-entities@^1.2.0: resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" html-minifier@^3.2.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.3.tgz#4a275e3b1a16639abb79b4c11191ff0d0fcf1ab9" + version "3.5.5" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.5.tgz#3bdc9427e638bbe3dbde96c0eb988b044f02739e" dependencies: camel-case "3.0.x" clean-css "4.1.x" @@ -5741,7 +5757,7 @@ html-minifier@^3.2.3: ncname "1.0.x" param-case "2.1.x" relateurl "0.2.x" - uglify-js "3.0.x" + uglify-js "3.1.x" html-tags@^2.0.0: version "2.0.0" @@ -5799,6 +5815,10 @@ http-errors@~1.5.0: setprototypeof "1.0.2" statuses ">= 1.3.1 < 2" +http-parser-js@>=0.4.0: + version "0.4.6" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.6.tgz#195273f58704c452d671076be201329dd341dc55" + http-proxy-middleware@~0.17.4: version "0.17.4" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" @@ -5862,9 +5882,9 @@ husky@^0.14.3: normalize-path "^1.0.0" strip-indent "^2.0.0" -iconv-lite@0.4, iconv-lite@0.4.18, iconv-lite@^0.4.17, iconv-lite@~0.4.13: - version "0.4.18" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" +iconv-lite@0.4, iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@~0.4.13: + version "0.4.19" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" iconv-lite@0.4.13: version "0.4.13" @@ -6042,6 +6062,13 @@ internal-ip@^1.2.0: dependencies: meow "^3.3.0" +internal-ip@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-2.0.2.tgz#bed2b35491e8b42aee087de7614e870908ee80f2" + dependencies: + default-gateway "^2.0.2" + ipaddr.js "^1.5.1" + interpret@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" @@ -6056,6 +6083,10 @@ invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + ip@^1.0.2, ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -6064,6 +6095,10 @@ ipaddr.js@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0" +ipaddr.js@^1.5.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0" + iron@4.x.x, iron@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/iron/-/iron-4.0.5.tgz#4f042cceb8b9738f346b59aa734c83a89bc31428" @@ -6523,9 +6558,9 @@ jest-changed-files@^20.0.3: version "20.0.3" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-20.0.3.tgz#9394d5cc65c438406149bef1bf4d52b68e03e3f8" -jest-changed-files@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-21.0.0.tgz#fa7cfc353187e2fb852dd5830e8d09068dde78d1" +jest-changed-files@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-21.0.2.tgz#0a74f35cf2d3b7c8ef9ab4fac0a75409f81ec1b0" dependencies: throat "^4.0.0" @@ -6564,11 +6599,11 @@ jest-cli@^20.0.4: worker-farm "^1.3.1" yargs "^7.0.2" -jest-cli@^21.0.1: - version "21.0.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-21.0.1.tgz#b3e9ef6d0ae0e43870932d2ed3d10de0515e9d34" +jest-cli@^21.0.1, jest-cli@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-21.0.2.tgz#2e08af63d44fc21284ebf496cf71e381f3cc9786" dependencies: - ansi-escapes "^2.0.0" + ansi-escapes "^3.0.0" chalk "^2.0.1" glob "^7.1.2" graceful-fs "^4.1.11" @@ -6577,26 +6612,26 @@ jest-cli@^21.0.1: istanbul-lib-coverage "^1.0.1" istanbul-lib-instrument "^1.4.2" istanbul-lib-source-maps "^1.1.0" - jest-changed-files "^21.0.0" - jest-config "^21.0.0" - jest-environment-jsdom "^21.0.0" - jest-haste-map "^21.0.0" - jest-message-util "^21.0.0" - jest-regex-util "^21.0.0" - jest-resolve-dependencies "^21.0.0" - jest-runner "^21.0.0" - jest-runtime "^21.0.0" - jest-snapshot "^21.0.0" - jest-util "^21.0.0" + jest-changed-files "^21.0.2" + jest-config "^21.0.2" + jest-environment-jsdom "^21.0.2" + jest-haste-map "^21.0.2" + jest-message-util "^21.0.2" + jest-regex-util "^21.0.2" + jest-resolve-dependencies "^21.0.2" + jest-runner "^21.0.2" + jest-runtime "^21.0.2" + jest-snapshot "^21.0.2" + jest-util "^21.0.2" micromatch "^2.3.11" node-notifier "^5.0.2" - pify "^2.3.0" + pify "^3.0.0" slash "^1.0.0" - string-length "^1.0.1" + string-length "^2.0.0" strip-ansi "^4.0.0" which "^1.2.12" worker-farm "^1.3.1" - yargs "^7.0.2" + yargs "^9.0.0" jest-config@^20.0.4: version "20.0.4" @@ -6613,21 +6648,21 @@ jest-config@^20.0.4: jest-validate "^20.0.3" pretty-format "^20.0.3" -jest-config@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-21.0.0.tgz#81dcb20d15971f31bf44a82c6fe85b4423d98d95" +jest-config@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-21.0.2.tgz#ea42b94f3c22ae4e4aa11c69f5b45e34e342199d" dependencies: chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^21.0.0" - jest-environment-node "^21.0.0" - jest-get-type "^21.0.0" - jest-jasmine2 "^21.0.0" - jest-regex-util "^21.0.0" - jest-resolve "^21.0.0" - jest-util "^21.0.0" - jest-validate "^21.0.0" - pretty-format "^21.0.0" + jest-environment-jsdom "^21.0.2" + jest-environment-node "^21.0.2" + jest-get-type "^21.0.2" + jest-jasmine2 "^21.0.2" + jest-regex-util "^21.0.2" + jest-resolve "^21.0.2" + jest-util "^21.0.2" + jest-validate "^21.0.2" + pretty-format "^21.0.2" jest-diff@18.1.0, jest-diff@^18.1.0: version "18.1.0" @@ -6647,22 +6682,22 @@ jest-diff@^20.0.3: jest-matcher-utils "^20.0.3" pretty-format "^20.0.3" -jest-diff@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-21.0.0.tgz#b996ba2963a783125e6bc59fd5623bce67df7f17" +jest-diff@^21.0.0, jest-diff@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-21.0.2.tgz#751014f36ad5d505f6affce5542fde0e444ee50a" dependencies: chalk "^2.0.1" diff "^3.2.0" - jest-get-type "^21.0.0" - pretty-format "^21.0.0" + jest-get-type "^21.0.2" + pretty-format "^21.0.2" jest-docblock@^20.0.1, jest-docblock@^20.0.3: version "20.0.3" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-20.0.3.tgz#17bea984342cc33d83c50fbe1545ea0efaa44712" -jest-docblock@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.0.0.tgz#7dd57568543aec98910f749540afc15fab53a27f" +jest-docblock@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.0.2.tgz#66f69ddb440799fc32f91d0ac3d8d35e99e2032f" jest-environment-jsdom@^20.0.3: version "20.0.3" @@ -6672,12 +6707,12 @@ jest-environment-jsdom@^20.0.3: jest-util "^20.0.3" jsdom "^9.12.0" -jest-environment-jsdom@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-21.0.0.tgz#1d53e34b1656254b8c539700e35360d8f8ebb579" +jest-environment-jsdom@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-21.0.2.tgz#6f6ab5bd71970d1900fbd47a46701c0a07fa3be5" dependencies: - jest-mock "^21.0.0" - jest-util "^21.0.0" + jest-mock "^21.0.2" + jest-util "^21.0.2" jsdom "^9.12.0" jest-environment-node@^20.0.3: @@ -6687,20 +6722,20 @@ jest-environment-node@^20.0.3: jest-mock "^20.0.3" jest-util "^20.0.3" -jest-environment-node@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-21.0.0.tgz#ffc781b82569f3f4bc2d8fb8f1ea7373cb11f043" +jest-environment-node@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-21.0.2.tgz#4267ceb39551f8ecaed182ab882a93ef4d5de240" dependencies: - jest-mock "^21.0.0" - jest-util "^21.0.0" + jest-mock "^21.0.2" + jest-util "^21.0.2" jest-file-exists@^17.0.0: version "17.0.0" resolved "https://registry.yarnpkg.com/jest-file-exists/-/jest-file-exists-17.0.0.tgz#7f63eb73a1c43a13f461be261768b45af2cdd169" -jest-get-type@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-21.0.0.tgz#ed8667533c0a24a4feebbf492661f23abac3620b" +jest-get-type@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-21.0.2.tgz#304e6b816dd33cd1f47aba0597bcad258a509fc6" jest-haste-map@^20.0.4: version "20.0.5" @@ -6713,13 +6748,13 @@ jest-haste-map@^20.0.4: sane "~1.6.0" worker-farm "^1.3.1" -jest-haste-map@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-21.0.0.tgz#1f099ff6aedb52ec55fa9773ce26e4bbb00b0580" +jest-haste-map@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-21.0.2.tgz#bd98bc6cd6f207eb029b2f5918da1a9347eb11b7" dependencies: fb-watchman "^2.0.0" graceful-fs "^4.1.11" - jest-docblock "^21.0.0" + jest-docblock "^21.0.2" micromatch "^2.3.11" sane "^2.0.0" worker-farm "^1.3.1" @@ -6738,17 +6773,17 @@ jest-jasmine2@^20.0.4: once "^1.4.0" p-map "^1.1.1" -jest-jasmine2@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-21.0.0.tgz#539725989e45ab0b00029fcf37bc679aa39c2941" +jest-jasmine2@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-21.0.2.tgz#a368abb3a686def4d6e763509a265104943cd469" dependencies: chalk "^2.0.1" - expect "^21.0.0" + expect "^21.0.2" graceful-fs "^4.1.11" - jest-diff "^21.0.0" - jest-matcher-utils "^21.0.0" - jest-message-util "^21.0.0" - jest-snapshot "^21.0.0" + jest-diff "^21.0.2" + jest-matcher-utils "^21.0.2" + jest-message-util "^21.0.2" + jest-snapshot "^21.0.2" p-cancelable "^0.3.0" jest-junit@^3.0.0: @@ -6773,13 +6808,13 @@ jest-matcher-utils@^20.0.3: chalk "^1.1.3" pretty-format "^20.0.3" -jest-matcher-utils@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-21.0.0.tgz#493dc25b9ed6a23a61802ca20656f0f1c16f15b1" +jest-matcher-utils@^21.0.0, jest-matcher-utils@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-21.0.2.tgz#eb6736a45b698546d71f7e1ffbbd36587eeb27bc" dependencies: chalk "^2.0.1" - jest-get-type "^21.0.0" - pretty-format "^21.0.0" + jest-get-type "^21.0.2" + pretty-format "^21.0.2" jest-matchers@^20.0.3: version "20.0.3" @@ -6798,9 +6833,9 @@ jest-message-util@^20.0.3: micromatch "^2.3.11" slash "^1.0.0" -jest-message-util@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-21.0.0.tgz#cd49c2e91d7a227e622884c418185a1a7cbe1fd6" +jest-message-util@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-21.0.2.tgz#81242e07d426ad54c15f3d7c55b072e9db7b39a9" dependencies: chalk "^2.0.1" micromatch "^2.3.11" @@ -6814,17 +6849,17 @@ jest-mock@^20.0.3: version "20.0.3" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-20.0.3.tgz#8bc070e90414aa155c11a8d64c869a0d5c71da59" -jest-mock@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-21.0.0.tgz#948fdbb44ef702ca998e078ca62b4968780e102e" +jest-mock@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-21.0.2.tgz#5e92902450e1ce78be3864cc4d50dbd5d1582fbd" jest-regex-util@^20.0.3: version "20.0.3" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-20.0.3.tgz#85bbab5d133e44625b19faf8c6aa5122d085d762" -jest-regex-util@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-21.0.0.tgz#f13c382a1c55515c20471390ab38e5d71cbd320e" +jest-regex-util@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-21.0.2.tgz#06248c07b53ff444223ebe8e33a25bc051ac976f" jest-resolve-dependencies@^20.0.3: version "20.0.3" @@ -6832,11 +6867,11 @@ jest-resolve-dependencies@^20.0.3: dependencies: jest-regex-util "^20.0.3" -jest-resolve-dependencies@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-21.0.0.tgz#09dfd9654a8af92880a2f66076871d48810bd48d" +jest-resolve-dependencies@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-21.0.2.tgz#c42cc371034023ac1a226a7a52f86233c8871938" dependencies: - jest-regex-util "^21.0.0" + jest-regex-util "^21.0.2" jest-resolve@^20.0.4: version "20.0.4" @@ -6846,27 +6881,27 @@ jest-resolve@^20.0.4: is-builtin-module "^1.0.0" resolve "^1.3.2" -jest-resolve@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-21.0.0.tgz#04d3939203633cc57ae8219b34ad42687dd8d111" +jest-resolve@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-21.0.2.tgz#57b2c20cbeca2357eb5e638d5c28beca7f38c3f8" dependencies: browser-resolve "^1.11.2" chalk "^2.0.1" is-builtin-module "^1.0.0" -jest-runner@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-21.0.0.tgz#8969dd22ff73911c84043cf16b6cfadf609f3d1f" +jest-runner@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-21.0.2.tgz#1462d431d25f7744e8b5e03837bbf9e268dc8b15" dependencies: - jest-config "^21.0.0" - jest-docblock "^21.0.0" - jest-haste-map "^21.0.0" - jest-jasmine2 "^21.0.0" - jest-message-util "^21.0.0" - jest-runtime "^21.0.0" - jest-util "^21.0.0" - pify "^2.3.0" - throat "^3.0.0" + jest-config "^21.0.2" + jest-docblock "^21.0.2" + jest-haste-map "^21.0.2" + jest-jasmine2 "^21.0.2" + jest-message-util "^21.0.2" + jest-runtime "^21.0.2" + jest-util "^21.0.2" + pify "^3.0.0" + throat "^4.0.0" worker-farm "^1.3.1" jest-runtime@^20.0.4: @@ -6889,27 +6924,27 @@ jest-runtime@^20.0.4: strip-bom "3.0.0" yargs "^7.0.2" -jest-runtime@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-21.0.0.tgz#54af290dc664a49ddc251c7d7ce1a5661afc1ead" +jest-runtime@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-21.0.2.tgz#ce26ba06bcd5501991bd994b1eacc0c7c7913895" dependencies: babel-core "^6.0.0" - babel-jest "^21.0.0" + babel-jest "^21.0.2" babel-plugin-istanbul "^4.0.0" chalk "^2.0.1" convert-source-map "^1.4.0" graceful-fs "^4.1.11" - jest-config "^21.0.0" - jest-haste-map "^21.0.0" - jest-regex-util "^21.0.0" - jest-resolve "^21.0.0" - jest-util "^21.0.0" + jest-config "^21.0.2" + jest-haste-map "^21.0.2" + jest-regex-util "^21.0.2" + jest-resolve "^21.0.2" + jest-util "^21.0.2" json-stable-stringify "^1.0.1" micromatch "^2.3.11" slash "^1.0.0" strip-bom "3.0.0" write-file-atomic "^2.1.0" - yargs "^7.0.2" + yargs "^9.0.0" jest-snapshot@18.1.0: version "18.1.0" @@ -6933,20 +6968,20 @@ jest-snapshot@^20.0.3: natural-compare "^1.4.0" pretty-format "^20.0.3" -jest-snapshot@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-21.0.0.tgz#00b582b13ef42112bd431b498e37f7829b30cd66" +jest-snapshot@^21.0.0, jest-snapshot@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-21.0.2.tgz#5b8f4dd05c1759381db835451fba4bcd85a55611" dependencies: chalk "^2.0.1" - jest-diff "^21.0.0" - jest-matcher-utils "^21.0.0" + jest-diff "^21.0.2" + jest-matcher-utils "^21.0.2" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^21.0.0" + pretty-format "^21.0.2" jest-styled-components@^4.4.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/jest-styled-components/-/jest-styled-components-4.5.0.tgz#dca25e4e4dc1b7ed6d1f69b49b41e4ff8fe197e8" + version "4.6.0" + resolved "https://registry.yarnpkg.com/jest-styled-components/-/jest-styled-components-4.6.0.tgz#a5e11c9e8b007857a657b41ceff41a116a976ec4" dependencies: css "^2.2.1" @@ -6977,16 +7012,16 @@ jest-util@^20.0.3: leven "^2.1.0" mkdirp "^0.5.1" -jest-util@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-21.0.0.tgz#62b3a3ec3ff91022ef7e1ffbcf3293424715919f" +jest-util@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-21.0.2.tgz#3ee2380af25c414a39f07b23c84da6f2d5f1f76a" dependencies: callsites "^2.0.0" chalk "^2.0.1" graceful-fs "^4.1.11" - jest-message-util "^21.0.0" - jest-mock "^21.0.0" - jest-validate "^21.0.0" + jest-message-util "^21.0.2" + jest-mock "^21.0.2" + jest-validate "^21.0.2" mkdirp "^0.5.1" jest-validate@^20.0.3: @@ -6998,14 +7033,14 @@ jest-validate@^20.0.3: leven "^2.1.0" pretty-format "^20.0.3" -jest-validate@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-21.0.0.tgz#f906d54eca2a485ffbfb2d8a7d58831c026e6dd5" +jest-validate@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-21.0.2.tgz#dd066b257bd102759c214747d73bed6bcfa4349d" dependencies: chalk "^2.0.1" - jest-get-type "^21.0.0" + jest-get-type "^21.0.2" leven "^2.1.0" - pretty-format "^21.0.0" + pretty-format "^21.0.2" jest@20.0.4, jest@^20.0.4: version "20.0.4" @@ -7014,10 +7049,10 @@ jest@20.0.4, jest@^20.0.4: jest-cli "^20.0.4" jest@^21.0.1: - version "21.0.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-21.0.1.tgz#746cddc89477beaea5b208e7017ca26652bfdb38" + version "21.0.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-21.0.2.tgz#a5c9bdc9d4322ae672fe8cb3eaf25c268c5f04b2" dependencies: - jest-cli "^21.0.1" + jest-cli "^21.0.2" jodid25519@^1.0.0: version "1.0.2" @@ -7077,8 +7112,8 @@ joyent-ui-toolkit@^1.2.0: unitcalc "^1.0.8" js-base64@^2.1.9: - version "2.1.9" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" + version "2.3.2" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.3.2.tgz#a79a923666372b580f8e27f51845c6f7e8fbfbaf" js-string-escape@^1.0.1: version "1.0.1" @@ -7089,8 +7124,8 @@ js-tokens@^3.0.0, js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" js-yaml@^3.2.7, js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.8.2, js-yaml@^3.8.4, js-yaml@^3.9.1: - version "3.9.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.1.tgz#08775cebdfdd359209f0d2acd383c8f86a6904a0" + version "3.10.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -7196,6 +7231,12 @@ jsonfile@^3.0.0: optionalDependencies: graceful-fs "^4.1.6" +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + optionalDependencies: + graceful-fs "^4.1.6" + jsonfilter@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/jsonfilter/-/jsonfilter-1.1.2.tgz#21ef7cedc75193813c75932e96a98be205ba5a11" @@ -7783,8 +7824,8 @@ log-update@^1.0.2: cli-cursor "^1.0.2" loglevel@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.4.1.tgz#95b383f91a3c2756fd4ab093667e4309161f2bcd" + version "1.5.0" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.5.0.tgz#3863984a2c326b986fbb965f378758a6dc8a4324" lomstream@1.1.0: version "1.1.0" @@ -7948,6 +7989,10 @@ mdast-util-to-nlcst@^3.2.0: unist-util-position "^3.0.0" vfile-location "^2.0.0" +mdn-data@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.0.0.tgz#a69d9da76847b4d5834c1465ea25c0653a1fbf66" + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -8129,7 +8174,7 @@ moment@2.15.x: version "2.15.2" resolved "https://registry.yarnpkg.com/moment/-/moment-2.15.2.tgz#1bfdedf6a6e345f322fe956d5df5bd08a8ce84dc" -moment@2.x.x, moment@^2.10.6, moment@^2.6.0: +moment@2.x.x, moment@^2.10.6, moment@^2.6.0, moment@~2.18.0: version "2.18.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" @@ -8280,8 +8325,8 @@ no-arrowception@1.x.x: resolved "https://registry.yarnpkg.com/no-arrowception/-/no-arrowception-1.0.0.tgz#5bf3e95eb9c41b57384a805333daa3b734ee327a" no-case@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.1.tgz#7aeba1c73a52184265554b7dc03baf720df80081" + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" dependencies: lower-case "^1.1.1" @@ -8601,7 +8646,7 @@ opn@4.0.2: object-assign "^4.0.1" pinkie-promise "^2.0.0" -opn@5.1.0: +opn@5.1.0, opn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.1.0.tgz#72ce2306a17dbea58ff1041853352b4a8fc77519" dependencies: @@ -8720,8 +8765,8 @@ p-locate@^2.0.0: p-limit "^1.1.0" p-map@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a" + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" p-timeout@^1.1.1: version "1.2.0" @@ -8857,8 +8902,8 @@ parse5@^1.5.1: resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" parseurl@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" + version "1.3.2" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" path-browserify@0.0.0: version "0.0.0" @@ -8925,8 +8970,8 @@ pause-stream@0.0.11: through "~2.3" pbkdf2@^3.0.3: - version "3.0.13" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.13.tgz#c37d295531e786b1da3e3eadc840426accb0ae25" + version "3.0.14" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -9452,9 +9497,9 @@ pretty-format@^20.0.3: ansi-regex "^2.1.1" ansi-styles "^3.0.0" -pretty-format@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-21.0.0.tgz#bea1522c4c47e49b44db5b6fbf83e7737251f305" +pretty-format@^21.0.2: + version "21.0.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-21.0.2.tgz#76adcebd836c41ccd2e6b626e70f63050d2a3534" dependencies: ansi-regex "^3.0.0" ansi-styles "^3.2.0" @@ -9697,12 +9742,12 @@ range-parser@^1.0.3, range-parser@~1.2.0: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" raw-body@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.1.tgz#30f95e2a67a14e2e4413d8d51fdd92c877e8f2ed" + version "2.3.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" dependencies: bytes "3.0.0" http-errors "1.6.2" - iconv-lite "0.4.18" + iconv-lite "0.4.19" unpipe "1.0.0" raw-body@~2.1.7: @@ -10809,8 +10854,8 @@ right-pad@^1.0.1: resolved "https://registry.yarnpkg.com/right-pad/-/right-pad-1.0.1.tgz#8ca08c2cbb5b55e74dafa96bf7fd1a27d568c8d0" rimraf@2, rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: glob "^7.0.5" @@ -11229,8 +11274,8 @@ source-map-resolve@^0.3.0: urix "~0.1.0" source-map-support@0.4.x, source-map-support@^0.4.0, source-map-support@^0.4.15: - version "0.4.17" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.17.tgz#6f2150553e6375375d0ccb3180502b78c18ba430" + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" dependencies: source-map "^0.5.6" @@ -11242,7 +11287,7 @@ source-map@0.5.6: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" -source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3: +source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3, source-map@~0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -11258,12 +11303,6 @@ source-map@^0.4.2, source-map@^0.4.4: dependencies: amdefine ">=0.0.4" -source-map@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" - dependencies: - amdefine ">=0.0.4" - spache-formula@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/spache-formula/-/spache-formula-1.0.1.tgz#315fb09fdb08348ef61b97bf51702645a417d015" @@ -11503,6 +11542,13 @@ string-length@^1.0.1: dependencies: strip-ansi "^3.0.0" +string-length@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" + dependencies: + astral-regex "^1.0.0" + strip-ansi "^4.0.0" + string-width@^1.0.0, string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -11827,8 +11873,8 @@ stylelint@^7.0.0, stylelint@^7.0.3, stylelint@^7.9.0: table "^4.0.1" stylis@^3.2.1: - version "3.2.15" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.2.15.tgz#1800f829fdf3cf0d647ae6cdb5fb70a1fd81c3e2" + version "3.2.16" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.2.16.tgz#f336893e55f9f13299b39c01af3b10546cd7507a" subtext@^5.0.0: version "5.0.0" @@ -12455,15 +12501,15 @@ ua-parser-js@^0.7.9: resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca" uglify-es@^3.0.24: - version "3.0.28" - resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.0.28.tgz#1cdedbbcdb7865223065281ad7b2347629851d4b" + version "3.1.0" + resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.1.0.tgz#b4ca636bde6467e82a061ea7f2c124899d82bd2c" dependencies: commander "~2.11.0" source-map "~0.5.1" -uglify-js@3.0.x, uglify-js@^3.0.13: - version "3.0.28" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.0.28.tgz#96b8495f0272944787b5843a1679aa326640d5f7" +uglify-js@3.1.x, uglify-js@^3.0.13: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.1.0.tgz#92fae17b88dfbc3c394175a935044cdbcf4085ae" dependencies: commander "~2.11.0" source-map "~0.5.1" @@ -12936,7 +12982,7 @@ webpack-dev-middleware@^1.11.0: range-parser "^1.0.3" time-stamp "^2.0.0" -webpack-dev-server@2.7.1, webpack-dev-server@^2.7.1: +webpack-dev-server@2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.7.1.tgz#21580f5a08cd065c71144cf6f61c345bca59a8b8" dependencies: @@ -12964,6 +13010,35 @@ webpack-dev-server@2.7.1, webpack-dev-server@^2.7.1: webpack-dev-middleware "^1.11.0" yargs "^6.0.0" +webpack-dev-server@^2.7.1: + version "2.8.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.8.0.tgz#bc3072d699fd367078c67f90410f4028b3d008fe" + dependencies: + ansi-html "0.0.7" + array-includes "^3.0.3" + bonjour "^3.5.0" + chokidar "^1.6.0" + compression "^1.5.2" + connect-history-api-fallback "^1.3.0" + del "^3.0.0" + express "^4.13.3" + html-entities "^1.2.0" + http-proxy-middleware "~0.17.4" + internal-ip "^2.0.2" + ip "^1.1.5" + loglevel "^1.4.1" + opn "^5.1.0" + portfinder "^1.0.9" + selfsigned "^1.9.1" + serve-index "^1.7.2" + sockjs "0.3.18" + sockjs-client "1.1.4" + spdy "^3.4.1" + strip-ansi "^4.0.0" + supports-color "^4.2.1" + webpack-dev-middleware "^1.11.0" + yargs "^8.0.2" + webpack-manifest-plugin@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-1.2.1.tgz#e02f0846834ce98dca516946ee3ee679745e7db1" @@ -13043,14 +13118,15 @@ webpage@^0.3.0: resolved "https://registry.yarnpkg.com/webpage/-/webpage-0.3.0.tgz#15c8c99e822b499e9981ae6876539b423448b8e7" websocket-driver@>=0.5.1: - version "0.6.5" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + version "0.7.0" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" dependencies: + http-parser-js ">=0.4.0" websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" + version "0.1.2" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.2.tgz#0e18781de629a18308ce1481650f67ffa2693a5d" well-known-symbols@^1.0.0: version "1.0.0" @@ -13355,6 +13431,24 @@ yargs@^8.0.1, yargs@^8.0.2: y18n "^3.2.1" yargs-parser "^7.0.0" +yargs@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.0.tgz#efe5b1ad3f94bdc20423411b90628eeec0b25f3c" + 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"