Browse Source

feat(instances): CI - firewall responsive designs

master
Fábio Moreira 4 years ago committed by Sérgio Ramos
parent
commit
fc81d666d0
  1. 228
      packages/instance-steps/src/firewall/index.js
  2. 1
      packages/instance-steps/src/metadata/index.js
  3. 182
      packages/resource-widgets/src/firewall/index.js
  4. 14
      packages/resource-widgets/src/key-value/index.js
  5. 130
      yarn.lock

228
packages/instance-steps/src/firewall/index.js

@ -1,4 +1,5 @@
import React, { Fragment } from 'react';
import { withTheme } from 'styled-components';
import { Margin } from 'styled-components-spacing';
import Flex, { FlexItem } from 'styled-flex-component';
import { compose, graphql } from 'react-apollo';
@ -42,119 +43,126 @@ const Firewall = ({
enabled = false,
showInactiveRules = null,
showInactive = false,
theme = {},
...props
}) => (
<Step name="firewall" getValue={handleGetValue} {...props}>
<StepHeader icon={<FirewallIcon />}>Firewall rules</StepHeader>
<StepDescription href="https://docs.joyent.com/public-cloud/network/firewall">
Cloud firewall rules secure instances by defining network traffic rules,
controlling incoming and outgoing traffic. Enabling the firewall applies
only rules which match your instance. Although these rules are created in
the firewall console, the addition of tags can alter the firewall rules.
</StepDescription>
<StepPreview>
<Margin top="3">
<Preview {...preview} />
</Margin>
</StepPreview>
<StepOutlet>
{({ next }) => (
<Fragment>
<Margin top="5">
<Flex>
<FlexItem>
<ReduxForm
form={IR_FW_F_ENABLED}
destroyOnUnmount={false}
forceUnregisterOnUnmount={true}
>
{props => (
<Margin right="5">
<ToggleFirewallForm {...props} submitting={loading} />
</Margin>
)}
</ReduxForm>
</FlexItem>
<FlexItem>
<ReduxForm
form={IR_FW_F_INACTIVE}
destroyOnUnmount={false}
forceUnregisterOnUnmount={true}
>
{props =>
enabled && !loading ? (
<ToggleInactiveForm {...props} />
) : null
}
</ReduxForm>
</FlexItem>
</Flex>
</Margin>
{enabled && !loading && !defaultRules.length && !tagRules.length ? (
<Margin top="5">
<Empty borderTop>
<Fragment>
<H3>No Firewall rules found</H3>
<Margin top="1">
<P>
Try viewing inactive rules instead to see firewalls that
can potentially affect your instance
</P>
</Margin>
<Margin top="2">
<Button
secondary
onClick={showInactiveRules}
disabled={showInactive}
>
View Inactive Rules
</Button>
</Margin>
</Fragment>
</Empty>
</Margin>
) : null}
{!loading && enabled && defaultRules.length ? (
<Margin top="5">
<DefaultRules rules={defaultRules} />
</Margin>
) : null}
{!loading && enabled && tagRules.length ? (
}) => {
const mobile = theme.screen === 'mobile';
return (
<Step name="firewall" getValue={handleGetValue} {...props}>
<StepHeader icon={<FirewallIcon />}>Firewall rules</StepHeader>
<StepDescription href="https://docs.joyent.com/public-cloud/network/firewall">
Cloud firewall rules secure instances by defining network traffic rules,
controlling incoming and outgoing traffic. Enabling the firewall applies
only rules which match your instance. Although these rules are created
in the firewall console, the addition of tags can alter the firewall
rules.
</StepDescription>
<StepPreview>
<Margin top="3">
<Preview {...preview} />
</Margin>
</StepPreview>
<StepOutlet>
{({ next }) => (
<Fragment>
<Margin top="5">
<TagRules rules={tagRules} />
<Flex column={mobile}>
<FlexItem>
<ReduxForm
form={IR_FW_F_ENABLED}
destroyOnUnmount={false}
forceUnregisterOnUnmount={true}
>
{props => (
<Margin right="5" bottom={mobile ? '2' : '0'}>
<ToggleFirewallForm {...props} submitting={loading} />
</Margin>
)}
</ReduxForm>
</FlexItem>
<FlexItem>
<ReduxForm
form={IR_FW_F_INACTIVE}
destroyOnUnmount={false}
forceUnregisterOnUnmount={true}
>
{props =>
enabled && !loading ? (
<ToggleInactiveForm {...props} />
) : null
}
</ReduxForm>
</FlexItem>
</Flex>
</Margin>
) : null}
{!loading && enabled && (tagRules.length || defaultRules.length) ? (
{enabled && !loading && !defaultRules.length && !tagRules.length ? (
<Margin top="5">
<Empty borderTop>
<Fragment>
<H3>No Firewall rules found</H3>
<Margin top="1">
<P>
Try viewing inactive rules instead to see firewalls that
can potentially affect your instance
</P>
</Margin>
<Margin top="2">
<Button
secondary
onClick={showInactiveRules}
disabled={showInactive}
>
View Inactive Rules
</Button>
</Margin>
</Fragment>
</Empty>
</Margin>
) : null}
{!loading && enabled && defaultRules.length ? (
<Margin top="5">
<DefaultRules rules={defaultRules} />
</Margin>
) : null}
{!loading && enabled && tagRules.length ? (
<Margin top="5">
<TagRules rules={tagRules} />
</Margin>
) : null}
{!loading && enabled && (tagRules.length || defaultRules.length) ? (
<Margin top="5">
<P>
*Other firewall rules may apply as defined by wildcard(s),
IP(s), subnet(s), tag(s) or VM(s). Please see{' '}
<a
href="https://apidocs.joyent.com/cloudapi/#firewall-rule-syntax"
target="_blank"
rel="noopener noreferrer"
>
firewall rule list
</a>{' '}
for more details.
</P>
</Margin>
) : null}
<Margin top="5">
<P>
*Other firewall rules may apply as defined by wildcard(s),
IP(s), subnet(s), tag(s) or VM(s). Please see{' '}
<a
href="https://apidocs.joyent.com/cloudapi/#firewall-rule-syntax"
target="_blank"
rel="noopener noreferrer"
>
firewall rule list
</a>{' '}
for more details.
</P>
<Button
id="next-button-firewall"
type="button"
component={Link}
to={next}
fluid={mobile}
>
Next
</Button>
</Margin>
) : null}
<Margin top="5">
<Button
id="next-button-firewall"
type="button"
component={Link}
to={next}
>
Next
</Button>
</Margin>
</Fragment>
)}
</StepOutlet>
</Step>
);
</Fragment>
)}
</StepOutlet>
</Step>
);
};
export default compose(
connect(({ form, values }, ownProps) => ({
@ -206,6 +214,4 @@ export default compose(
showInactiveRules: () =>
dispatch(change(IR_FW_F_INACTIVE, 'inactive', true))
}))
)(Firewall);
export { Preview } from './components';
)(withTheme(({ ...rest }) => <Firewall {...rest} />));

1
packages/instance-steps/src/metadata/index.js

@ -2,7 +2,6 @@ import React, { Fragment } from 'react';
import { Margin } from 'styled-components-spacing';
import Flex, { FlexItem } from 'styled-flex-component';
import { withTheme } from 'styled-components';
import { compose } from 'react-apollo';
import { Link } from 'react-router-dom';
import ReduxForm from 'declarative-redux-form';

182
packages/resource-widgets/src/firewall/index.js

@ -9,14 +9,18 @@ import {
H3,
FormGroup,
FormLabel,
Toggle,
TagList,
TagItem,
P,
Checkbox,
Strong,
Card
Card,
QueryBreakpoints
} from 'joyent-ui-toolkit';
const { SmallOnly, MediumDown, Medium, Large } = QueryBreakpoints;
const Form = styled.form`
margin-bottom: 0 !important;
`;
@ -71,66 +75,138 @@ const Rule = ({ enabled, rule_obj }) => {
const tos = rule_obj.to.map((p, index) => parsePartial(p, index, style));
return (
<Card disabled={!enabled}>
<Padding left="3" right="3" top="2" bottom="2">
<Row>
<Col xs="3">
<Flex justifyStart alignCenter contentStretch>
<Margin right="0.5">
<FlexItem>
<Strong style={style}>From: </Strong>
</FlexItem>
<MediumDown>
<Flex column>
<Padding horizontal="3" vertical="2">
<Flex row>
<Margin horizontal="1" inline>
<Strong style={style}>From: </Strong>
<Margin horizontal="1" inline>
{froms}
</Margin>
</Margin>
<Flex alignCenter>{froms}</Flex>
</Flex>
</Col>
<Col xs="3">
<Flex justifyStart alignCenter contentStretch>
<Margin right="0.5">
<FlexItem>
<Strong style={style}>To: </Strong>
</FlexItem>
<Margin left="5" right="1" inline>
<Strong style={style}>To: </Strong>
<Margin horizontal="1" inline>
{tos}
</Margin>
</Margin>
<Flex alignCenter>{tos}</Flex>
</Flex>
</Col>
<Col xs="2">
<Flex justifyStart alignCenter contentStretch>
<Margin right="0.5">
<FlexItem>
</Padding>
<Padding
horizontal="3"
vertical="2"
style={{ 'border-top': '1px solid #D8D8D8' }}
>
<SmallOnly>
<Flex column>
<Margin horizontal="1" inline>
<Strong style={style}>Protocol: </Strong>
</FlexItem>
</Margin>
<Flex alignCenter>
<P style={style}>{protocol.name}</P>
</Flex>
</Flex>
</Col>
<Col xs="2">
<Flex justifyStart alignCenter contentStretch>
<Margin right="0.5">
<FlexItem>
<Margin horizontal="1" inline>
{protocol.name}
</Margin>
</Margin>
<Margin horizontal="1" inline>
<Strong style={style}>Ports: </Strong>
</FlexItem>
</Margin>
<Flex alignCenter>
<P style={style}>{protocol.targets.join(';')}</P>
<Margin horizontal="1" inline>
{protocol.targets.join(';')}
</Margin>
</Margin>
<Margin horizontal="1" inline>
<Strong style={style}>Action: </Strong>
<Margin horizontal="1" inline>
{capitalizeFirstLetter(action)}
</Margin>
</Margin>
</Flex>
</Flex>
</Col>
<Col xs="2">
<Flex justifyStart alignCenter contentStretch>
<Margin right="0.5">
<FlexItem>
</SmallOnly>
<Medium>
<Flex row>
<Margin left="1" right="4" inline>
<Strong style={style}>Protocol: </Strong>
<Margin horizontal="1" inline>
{protocol.name}
</Margin>
</Margin>
<Margin horizontal="4" inline>
<Strong style={style}>Ports: </Strong>
<Margin horizontal="1" inline>
{protocol.targets.join(';')}
</Margin>
</Margin>
<Margin left="4" right="1" inline>
<Strong style={style}>Action: </Strong>
</FlexItem>
</Margin>
<Flex alignCenter>
<P style={style}>{capitalizeFirstLetter(action)}</P>
<Margin horizontal="1" inline>
{capitalizeFirstLetter(action)}
</Margin>
</Margin>
</Flex>
</Flex>
</Col>
</Row>
</Padding>
</Medium>
</Padding>
</Flex>
</MediumDown>
<Large>
<Padding left="3" right="3" top="2" bottom="2">
<Row>
<Col xs="3">
<Flex justifyStart alignCenter contentStretch>
<Margin right="0.5">
<FlexItem>
<Strong style={style}>From: </Strong>
</FlexItem>
</Margin>
<Flex alignCenter>{froms}</Flex>
</Flex>
</Col>
<Col xs="3">
<Flex justifyStart alignCenter contentStretch>
<Margin right="0.5">
<FlexItem>
<Strong style={style}>To: </Strong>
</FlexItem>
</Margin>
<Flex alignCenter>{tos}</Flex>
</Flex>
</Col>
<Col xs="2">
<Flex justifyStart alignCenter contentStretch>
<Margin right="0.5">
<FlexItem>
<Strong style={style}>Protocol: </Strong>
</FlexItem>
</Margin>
<Flex alignCenter>
<P style={style}>{protocol.name}</P>
</Flex>
</Flex>
</Col>
<Col xs="2">
<Flex justifyStart alignCenter contentStretch>
<Margin right="0.5">
<FlexItem>
<Strong style={style}>Ports: </Strong>
</FlexItem>
</Margin>
<Flex alignCenter>
<P style={style}>{protocol.targets.join(';')}</P>
</Flex>
</Flex>
</Col>
<Col xs="2">
<Flex justifyStart alignCenter contentStretch>
<Margin right="0.5">
<FlexItem>
<Strong style={style}>Action: </Strong>
</FlexItem>
</Margin>
<Flex alignCenter>
<P style={style}>{capitalizeFirstLetter(action)}</P>
</Flex>
</Flex>
</Col>
</Row>
</Padding>
</Large>
</Card>
);
};

14
packages/resource-widgets/src/key-value/index.js

@ -91,7 +91,7 @@ const TextareaKeyValue = ({
<Row>
<Col xs="12">
<FormGroup
id={id ? 'kv-input-key-' + id : null}
id={id ? `kv-input-key-${id}` : null}
name="name"
field={Field}
fluid
@ -119,7 +119,7 @@ const TextareaKeyValue = ({
<Row>
<Col xs="12">
<FormGroup
id={id ? 'kv-input-value-' + id : null}
id={id ? `kv-input-value-${id}` : null}
name="value"
field={Field}
fluid
@ -160,7 +160,7 @@ const InputKeyValue = ({
{onlyValue ? null : (
<FlexItem basis="auto">
<FormGroup
id={id ? 'kv-input-name-' + id : null}
id={id ? `kv-input-name-${id}` : null}
name="name"
field={Field}
fluid
@ -184,7 +184,7 @@ const InputKeyValue = ({
<FlexItem basis="auto">
<Margin top={fluid ? '2' : '0'}>
<FormGroup
id={id ? 'kv-input-value-' + id : null}
id={id ? `kv-input-value-${id}` : null}
name="value"
field={Field}
fluid
@ -335,7 +335,7 @@ export const KeyValue = ({
<Col xs={method === 'add' ? '12' : '7'} mobile={mobile}>
<Margin top={mobile ? '1' : '0'} inline>
<MarginalButton
id={id ? 'kv-cancel-button-' + id : null}
id={id ? `kv-cancel-button-${id}` : null}
type="button"
onClick={onCancel}
disabled={disabled || submitting}
@ -346,7 +346,7 @@ export const KeyValue = ({
</MarginalButton>
</Margin>
<Button
id={id ? 'kv-submit-button-' + id : null}
id={id ? `kv-submit-button-${id}` : null}
type="submit"
disabled={pristine || invalid}
loading={submitting && !removing}
@ -366,7 +366,7 @@ export const KeyValue = ({
right
icon
error
id={id ? 'kv-remove-button-' + id : null}
id={id ? `kv-remove-button-${id}` : null}
>
<Margin right="2">
<DeleteIcon

130
yarn.lock

@ -318,8 +318,8 @@ acorn@^4.0.3, acorn@^4.0.4:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
acorn@^5.0.0, acorn@^5.0.3, acorn@^5.1.1, acorn@^5.4.1, acorn@^5.5.0, acorn@^5.5.3:
version "5.5.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9"
version "5.6.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.6.1.tgz#c9e50c3e3717cf897f1b071ceadbb543bbc0a8d4"
add-stream@^1.0.0:
version "1.0.0"
@ -2255,12 +2255,12 @@ caniuse-api@^1.5.2:
lodash.uniq "^4.5.0"
caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
version "1.0.30000846"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000846.tgz#d9c86f914738db4da098eeded997413c44561bd2"
version "1.0.30000847"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000847.tgz#ff4072a5468809fec0ae9ac3b4035ef891e5b144"
caniuse-lite@^1.0.30000748, caniuse-lite@^1.0.30000792:
version "1.0.30000846"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000846.tgz#2092911eecad71a89dae1faa62bcc202fde7f959"
version "1.0.30000847"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000847.tgz#be77f439be29bbc57ae08004b1e470b653b1ec1d"
capture-stack-trace@^1.0.0:
version "1.0.0"
@ -3044,8 +3044,8 @@ create-react-class@^15.5.1:
object-assign "^4.1.1"
cross-fetch@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.0.tgz#2bcbff94ee51319bcee6699c642c5dda2aa8b6c0"
version "2.2.1"
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.1.tgz#96c859104d75defc967fb5db62474e75426b02b0"
dependencies:
node-fetch "2.1.2"
whatwg-fetch "2.0.4"
@ -3511,7 +3511,7 @@ doctrine@1.5.0:
esutils "^2.0.2"
isarray "^1.0.0"
doctrine@^2.0.0, doctrine@^2.0.2, doctrine@^2.1.0:
doctrine@^2.0.0, doctrine@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
dependencies:
@ -3732,8 +3732,8 @@ error-ex@^1.3.1:
is-arrayish "^0.2.1"
es-abstract@^1.7.0:
version "1.11.0"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.11.0.tgz#cce87d518f0496893b1a30cd8461835535480681"
version "1.12.0"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165"
dependencies:
es-to-primitive "^1.1.1"
function-bind "^1.1.1"
@ -3750,8 +3750,8 @@ es-to-primitive@^1.1.1:
is-symbol "^1.0.1"
es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14:
version "0.10.44"
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.44.tgz#7a877e994bb190aebd4718aa2d62784a12e2ca20"
version "0.10.45"
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.45.tgz#0bfdf7b473da5919d5adf3bd25ceb754fccc3653"
dependencies:
es6-iterator "~2.0.3"
es6-symbol "~3.1.1"
@ -3903,8 +3903,8 @@ eslint-plugin-flowtype@2.39.1:
lodash "^4.15.0"
eslint-plugin-flowtype@^2.46.1:
version "2.48.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.48.0.tgz#e447dc27dcb99d68e2a705fd9c1046c32aae2ca1"
version "2.49.3"
resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.49.3.tgz#ccca6ee5ba2027eb3ed36bc2ec8c9a842feee841"
dependencies:
lodash "^4.17.10"
@ -3987,13 +3987,13 @@ eslint-plugin-react@7.4.0:
prop-types "^15.5.10"
eslint-plugin-react@^7.7.0:
version "7.8.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.8.2.tgz#e95c9c47fece55d2303d1a67c9d01b930b88a51d"
version "7.9.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.9.1.tgz#101aadd15e7c7b431ed025303ac7b421a8e3dc15"
dependencies:
doctrine "^2.0.2"
has "^1.0.1"
doctrine "^2.1.0"
has "^1.0.2"
jsx-ast-utils "^2.0.1"
prop-types "^15.6.0"
prop-types "^15.6.1"
eslint-scope@^3.7.1, eslint-scope@~3.7.1:
version "3.7.1"
@ -4703,7 +4703,7 @@ fullstore@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/fullstore/-/fullstore-1.1.0.tgz#a7a8b00ca07d86faca05fb825c45e5d1c3bba97e"
function-bind@^1.0.2, function-bind@^1.1.1:
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
@ -5181,11 +5181,11 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
has@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
has@^1.0.1, has@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.2.tgz#1a64bfe4b52e67fb87b9822503d97c019fb6ba42"
dependencies:
function-bind "^1.0.2"
function-bind "^1.1.1"
hash-base@^3.0.0:
version "3.0.4"
@ -6055,8 +6055,8 @@ istanbul-lib-source-maps@^1.1.0:
source-map "^0.5.3"
istanbul-lib-source-maps@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.4.tgz#cc7ccad61629f4efff8e2f78adb8c522c9976ec7"
version "1.2.5"
resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz#ffe6be4e7ab86d3603e4290d54990b14506fc9b1"
dependencies:
debug "^3.1.0"
istanbul-lib-coverage "^1.2.0"
@ -6342,7 +6342,7 @@ joyent-manifest-editor@^1.4.0:
prop-types "^15.6.0"
react-codemirror "^1.0.0"
joyent-react-scripts@^8.2.1:
joyent-react-scripts@^8.2.0, joyent-react-scripts@^8.2.1:
version "8.2.1"
resolved "https://registry.yarnpkg.com/joyent-react-scripts/-/joyent-react-scripts-8.2.1.tgz#6ccdf4f8e6af028cc8846e8099a2b7f486699f67"
dependencies:
@ -6382,8 +6382,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.4.3, js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1:
version "3.11.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef"
version "3.12.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
@ -6555,8 +6555,8 @@ jss-nested@^6.0.1:
warning "^3.0.0"
jss@^9.8.1:
version "9.8.1"
resolved "https://registry.yarnpkg.com/jss/-/jss-9.8.1.tgz#e2ff250777ad657430e6edc47a63516541b888fa"
version "9.8.2"
resolved "https://registry.yarnpkg.com/jss/-/jss-9.8.2.tgz#09cabdfba831545bf094e399cfa45a1743daf4a6"
dependencies:
is-in-browser "^1.1.3"
symbol-observable "^1.1.0"
@ -7166,7 +7166,11 @@ miller-rabin@^4.0.0:
bn.js "^4.0.0"
brorand "^1.0.1"
mime-db@1.x.x, "mime-db@>= 1.33.0 < 2", mime-db@~1.33.0:
mime-db@1.x.x, "mime-db@>= 1.33.0 < 2":
version "1.34.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.34.0.tgz#452d0ecff5c30346a6dc1e64b1eaee0d3719ff9a"
mime-db@~1.33.0:
version "1.33.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
@ -7294,8 +7298,8 @@ modify-values@^1.0.0:
resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022"
moment@^2.6.0:
version "2.22.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.1.tgz#529a2e9bf973f259c9643d237fda84de3a26e8ad"
version "2.22.2"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66"
move-concurrently@^1.0.1:
version "1.0.1"
@ -8415,8 +8419,8 @@ prettier@1.11.0:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.11.0.tgz#c024f70cab158c993f50fc0c25ffe738cb8b0f85"
prettier@^1.7.4:
version "1.13.3"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.3.tgz#e74c09a7df6519d472ca6febaa37cf7addb48a20"
version "1.13.4"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.4.tgz#31bbae6990f13b1093187c731766a14036fa72e6"
pretty-bytes@^4.0.2:
version "4.0.2"
@ -8928,14 +8932,14 @@ react-scripts@^1.1.1:
fsevents "^1.1.3"
react-scroll-parallax@^1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/react-scroll-parallax/-/react-scroll-parallax-1.3.4.tgz#dcd8bd4930ed143c2f1f33f083a55d3e4375ad44"
version "1.3.5"
resolved "https://registry.yarnpkg.com/react-scroll-parallax/-/react-scroll-parallax-1.3.5.tgz#14a799f4773922c7feb5e31dc8a2acdb783e49d6"
dependencies:
prop-types "^15.5.10"
react-styleguidist@^7.0.14:
version "7.0.14"
resolved "https://registry.yarnpkg.com/react-styleguidist/-/react-styleguidist-7.0.14.tgz#ac6c6e5e7c80cb0e021aebe86f6609122a776a94"
version "7.0.16"
resolved "https://registry.yarnpkg.com/react-styleguidist/-/react-styleguidist-7.0.16.tgz#9d62aa52c94a65634198ea31ee3b17eac37e1328"
dependencies:
"@vxna/mini-html-webpack-template" "^0.1.7"
acorn "^5.5.3"
@ -9004,7 +9008,7 @@ react-test-renderer@^16.4.0:
prop-types "^15.6.0"
react-is "^16.4.0"
react@16.4.0, react@^0.14.0, react@^16.4.0, react@~15.4.1:
react@16.4.0, react@^0.14.0, react@^16.3.1, react@^16.4.0, react@~15.4.1:
version "16.4.0"
resolved "https://registry.yarnpkg.com/react/-/react-16.4.0.tgz#402c2db83335336fba1962c08b98c6272617d585"
dependencies:
@ -9148,7 +9152,7 @@ redent@^2.0.0:
indent-string "^3.0.0"
strip-indent "^2.0.0"
redrun@^6.0.1, redrun@^6.0.4:
redrun@^6.0.1, redrun@^6.0.2, redrun@^6.0.4:
version "6.0.4"
resolved "https://registry.yarnpkg.com/redrun/-/redrun-6.0.4.tgz#b32b0e089fb456529966f9b0134acdf7bad001ae"
dependencies:
@ -9185,16 +9189,7 @@ reduce-reducers@^0.1.0:
version "0.1.5"
resolved "https://registry.yarnpkg.com/reduce-reducers/-/reduce-reducers-0.1.5.tgz#ff77ca8068ff41007319b8b4b91533c7e0e54576"
redux-actions@^2.2.1:
version "2.4.0"
resolved "https://registry.yarnpkg.com/redux-actions/-/redux-actions-2.4.0.tgz#620df42d264af88366b4e919c46ae68da7c9ce7c"
dependencies:
invariant "^2.2.1"
lodash "^4.13.1"
lodash-es "^4.17.4"
reduce-reducers "^0.1.0"
redux-actions@^2.4.0:
redux-actions@^2.2.1, redux-actions@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/redux-actions/-/redux-actions-2.4.0.tgz#620df42d264af88366b4e919c46ae68da7c9ce7c"
dependencies:
@ -10075,8 +10070,8 @@ stream-each@^1.1.0:
stream-shift "^1.0.0"
stream-http@^2.7.2:
version "2.8.2"
resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.2.tgz#4126e8c6b107004465918aa2fc35549e77402c87"
version "2.8.3"
resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
dependencies:
builtin-status-codes "^3.0.0"
inherits "^2.0.1"
@ -10220,14 +10215,14 @@ styled-components-breakpoint@^2.0.1:
resolved "https://registry.yarnpkg.com/styled-components-breakpoint/-/styled-components-breakpoint-2.0.2.tgz#c55dbab794e9ff3a4f813349e2b35727a9364b09"
styled-components-spacing@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/styled-components-spacing/-/styled-components-spacing-3.0.0.tgz#67f9c48d96743e932a36afee1337ba4fb2a6f6ad"
version "3.0.1"
resolved "https://registry.yarnpkg.com/styled-components-spacing/-/styled-components-spacing-3.0.1.tgz#f62e703b329921320e585b5bd1047327292a0c20"
dependencies:
styled-components-breakpoint "^2.0.1"
styled-components@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-3.3.0.tgz#335b1b2b673b416cd5ec012010e237ed1f877fe9"
version "3.3.2"
resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-3.3.2.tgz#087b96830ee3d60d9a8b5ef17c132b4f29cc71df"
dependencies:
buffer "^5.0.3"
css-to-react-native "^2.0.3"
@ -10700,7 +10695,7 @@ uglify-es@^3.3.4, uglify-es@^3.3.9:
commander "~2.13.0"
source-map "~0.6.1"
uglify-js@3.3.x, uglify-js@^3.0.13:
uglify-js@3.3.x:
version "3.3.28"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.28.tgz#0efb9a13850e11303361c1051f64d2ec68d9be06"
dependencies:
@ -10716,6 +10711,13 @@ uglify-js@^2.6, uglify-js@^2.8.29:
optionalDependencies:
uglify-to-browserify "~1.0.0"
uglify-js@^3.0.13:
version "3.4.0"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.0.tgz#796762282b5b5f0eafe7d5c8c708d1d7bd5ba11d"
dependencies:
commander "~2.15.0"
source-map "~0.6.1"
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"
@ -10953,12 +10955,18 @@ util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
util@0.10.3, util@^0.10.3:
util@0.10.3:
version "0.10.3"
resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
dependencies:
inherits "2.0.1"
util@^0.10.3:
version "0.10.4"
resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901"
dependencies:
inherits "2.0.3"
utila@~0.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226"

Loading…
Cancel
Save