From d46d79e4e6077c8eac8232dc3aa95e86e6958835 Mon Sep 17 00:00:00 2001 From: Janci Krajnak Date: Mon, 12 Jun 2017 07:40:18 +0200 Subject: [PATCH] OHFJIRA-57 messages overview and message detail screen --- admin-console/mock-server/index.js | 3 +- .../mock-server/messages/messages.mock.js | 97 ++++ admin-console/package.json | 6 +- .../components/LoginModal/LoginModal.js | 38 +- .../src/common/components/Panel/Panel.js | 2 +- .../src/common/components/Row/Row.js | 25 + .../src/common/components/Row/row.styles.js | 21 + .../src/common/containers/app.container.js | 19 +- admin-console/src/index.html | 2 +- admin-console/src/main.js | 1 + .../components/ConfigLogging/ConfigLogging.js | 12 +- .../ConfigParams/configParams.styles.js | 16 +- .../EditParamModal/EditParamModal.js | 70 ++- .../ErrorsOverview/errorsOverview.styles.js | 29 +- .../Message/components/Message/Message.js | 187 +++++++ .../components/Message/message.styles.js | 34 ++ .../Message/containers/message.container.js | 13 + admin-console/src/routes/Message/index.js | 13 + .../routes/Message/modules/message.module.js | 74 +++ .../Messages/components/Messages/Messages.js | 150 ++++++ .../components/Messages/messages.styles.js | 38 ++ .../Messages/containers/messages.container.js | 13 + admin-console/src/routes/Messages/index.js | 13 + .../Messages/modules/messages.module.js | 46 ++ .../Nodes/components/NodeModal/NodeModal.js | 40 +- admin-console/src/routes/index.js | 6 +- admin-console/src/services/CreateApi.js | 6 +- .../src/services/messages.service.js | 12 + admin-console/src/store/createStore.js | 4 +- admin-console/src/styles/styles.js | 30 ++ admin-console/tests/components/navbar.spec.js | 2 +- admin-console/tests/test-bundler.js | 4 + admin-console/yarn.lock | 465 ++++++++++-------- 33 files changed, 1144 insertions(+), 347 deletions(-) create mode 100644 admin-console/mock-server/messages/messages.mock.js create mode 100644 admin-console/src/common/components/Row/Row.js create mode 100644 admin-console/src/common/components/Row/row.styles.js create mode 100644 admin-console/src/routes/Message/components/Message/Message.js create mode 100644 admin-console/src/routes/Message/components/Message/message.styles.js create mode 100644 admin-console/src/routes/Message/containers/message.container.js create mode 100644 admin-console/src/routes/Message/index.js create mode 100644 admin-console/src/routes/Message/modules/message.module.js create mode 100644 admin-console/src/routes/Messages/components/Messages/Messages.js create mode 100644 admin-console/src/routes/Messages/components/Messages/messages.styles.js create mode 100644 admin-console/src/routes/Messages/containers/messages.container.js create mode 100644 admin-console/src/routes/Messages/index.js create mode 100644 admin-console/src/routes/Messages/modules/messages.module.js create mode 100644 admin-console/src/services/messages.service.js create mode 100644 admin-console/src/styles/styles.js diff --git a/admin-console/mock-server/index.js b/admin-console/mock-server/index.js index a31720e4..40fd4740 100644 --- a/admin-console/mock-server/index.js +++ b/admin-console/mock-server/index.js @@ -16,7 +16,8 @@ const sources = [ require('./errors/errorsOverview.mock'), require('./nodes/nodes.mock'), require('./config/console.mock'), - require('./wsdl/wsdl.mock') + require('./wsdl/wsdl.mock'), + require('./messages/messages.mock') ] runServer(sources, opt_serverConfig) diff --git a/admin-console/mock-server/messages/messages.mock.js b/admin-console/mock-server/messages/messages.mock.js new file mode 100644 index 00000000..9f731460 --- /dev/null +++ b/admin-console/mock-server/messages/messages.mock.js @@ -0,0 +1,97 @@ +module.exports = [ + { + request: { + method: 'GET', + path: '/api/messages' + }, + response: { + statusCode: 200, + body: JSON.stringify({ + 'data': [ + { + 'id': 5232, + 'correlationId': '20301-2332-1321', + 'sourceSystem': 'CRM', + 'received': '2017-05-22T15:20:10', + 'processingStarted': '2017-05-22T15:20:10', + 'state': 'OK', + 'errorCode': 'E114', + 'serviceName': 'HELLO', + 'operationName': 'check' + } + ], + 'limit': 100, + 'totalElements': 50 + }) + } + }, + { + request: { + method: 'GET', + path: '/api/messages/:id' + }, + response: { + statusCode: 200, + body: JSON.stringify({ + 'id': 5232, + 'allowedActions': [ + 'RESTART', + 'CANCEL' + ], + 'correlationId': '20301-2332-1231', + 'processId': '10231-2311-1144', + 'state': 'OK', + 'processingStarted': '2017-05-22T15:20:10', + 'lastChange': '2017-05-22T15:20:10', + 'errorCode': 'E114', + 'failedCount': 3, + 'sourceSystem': 'CRM', + 'received': '2017-05-22T15:20:10', + 'msgTimestamp': '2017-05-22T15:20:10', + 'serviceName': 'HELLO', + 'operationName': 'check', + 'objectId': 'object1', + 'entityType': 'ACCOUNT', + 'funnelValue': 'MSISDN', + 'funnelComponentId': 'componentId', + 'guaranteedOrder': false, + 'excludeFailedState': true, + 'businessError': 'Not enough balance in the account', + 'parentMsgId': 42, + 'body': 'Hello', + 'envelope': '\nTove\nX\nReminder\nDont forget this weekend!\n', + 'failedDescription': 'Something went terribly wrong', + 'requests': [ + { + 'id': 10233, + 'uri': 'spring-ws:http://helloservice.com', + 'timestamp': '2017-05-22T15:20:10', + 'payload': 'Hello', + 'response': { + 'timestamp': '2017-05-22T15:20:10', + 'payload': 'Hello' + } + } + ], + 'externalCalls': [ + { + 'id': 327, + 'state': 'OK', + 'operationName': 'direct:printGreeting', + 'callId': 'CRM_4yEW32321', + 'lastChange': '2017-05-22T15:20:10' + } + ] + }) + } + }, + { + request: { + method: 'POST', + path: '/api/messages/:id/action' + }, + response: { + statusCode: 200 + } + } +] diff --git a/admin-console/package.json b/admin-console/package.json index 1f929134..f893a4c0 100644 --- a/admin-console/package.json +++ b/admin-console/package.json @@ -103,11 +103,13 @@ "better-npm-run": "0.0.13", "compression": "^1.6.2", "debug": "^2.2.0", + "es6-promise": "^4.1.0", "fetch-mock": "^5.10.0", "file-loader": "^0.9.0", "fs-extra": "^1.0.0", "html-webpack-plugin": "^2.22.0", "imports-loader": "^0.6.5", + "input-moment": "^0.3.4", "ip": "^1.1.2", "json-loader": "^0.5.4", "moment": "^2.17.1", @@ -119,6 +121,7 @@ "react": "^15.0.0", "react-animations": "^0.1.0", "react-dom": "^15.0.0", + "react-flatpickr": "^3.4.0", "react-icons": "^2.2.1", "react-json-view": "^1.7.4", "react-markdown": "^2.5.0", @@ -126,6 +129,7 @@ "react-redux": "^4.4.5", "react-redux-toastr": "^6.2.6", "react-router": "^3.0.0", + "react-syntax-highlighter": "^5.6.2", "recharts": "^0.20.8", "redux": "^3.6.0", "redux-promise": "^0.5.3", @@ -133,7 +137,7 @@ "rimraf": "^2.5.4", "tinycolor2": "^1.4.1", "url-loader": "^0.5.6", - "valid-react-form": "^1.0.2", + "valid-react-form": "1.0.3", "validator": "^7.0.0", "webpack": "^1.12.14", "whatwg-fetch": "^2.0.3", diff --git a/admin-console/src/common/components/LoginModal/LoginModal.js b/admin-console/src/common/components/LoginModal/LoginModal.js index 4aebb646..eda523b8 100644 --- a/admin-console/src/common/components/LoginModal/LoginModal.js +++ b/admin-console/src/common/components/LoginModal/LoginModal.js @@ -5,33 +5,31 @@ import styles from './loginModal.styles' import Anchor from '../Anchor/Anchor' import Button from '../Button/Button' import ModalHeader from '../ModalHeader/ModalHeader' -import { ValidForm, Field, ValidStyles } from 'valid-react-form' +import { ValidForm, Field } from 'valid-react-form' @Radium class LoginModal extends Component { render () { const { loginModalOpen, actions } = this.props return ( - + - - - - -
- - Cancel -
-
-
+ + + +
+ + Cancel +
+
) } diff --git a/admin-console/src/common/components/Panel/Panel.js b/admin-console/src/common/components/Panel/Panel.js index 591b23c4..752be718 100644 --- a/admin-console/src/common/components/Panel/Panel.js +++ b/admin-console/src/common/components/Panel/Panel.js @@ -26,7 +26,7 @@ class Panel extends Component { Panel.propTypes = { title: PropTypes.string, - children: PropTypes.element, + children: PropTypes.oneOfType([PropTypes.element, PropTypes.array]), style: PropTypes.object } diff --git a/admin-console/src/common/components/Row/Row.js b/admin-console/src/common/components/Row/Row.js new file mode 100644 index 00000000..ffdf49af --- /dev/null +++ b/admin-console/src/common/components/Row/Row.js @@ -0,0 +1,25 @@ +import React, { Component } from 'react' +import PropTypes from 'prop-types' +import Radium from 'radium' +import styles from './row.styles.js' + +@Radium +class Row extends Component { + + render () { + const { label, children } = this.props + return ( +
+ {label &&
{label}
} +
{children}
+
+ ) + } +} + +Row.propTypes = { + label: PropTypes.string, + children: PropTypes.element +} + +export default Row diff --git a/admin-console/src/common/components/Row/row.styles.js b/admin-console/src/common/components/Row/row.styles.js new file mode 100644 index 00000000..1d2d802d --- /dev/null +++ b/admin-console/src/common/components/Row/row.styles.js @@ -0,0 +1,21 @@ +import { smallGap } from '../../../styles/constants' + +export default { + row: { + position: 'relative', + width: '100%', + marginTop: smallGap, + display: 'flex', + flexDirection: 'row', + boxSizing: 'border-box', + justifyContent: 'flex-start' + }, + label: { + width: '50%', + fontWeight: 600, + lineHeight: '30px' + }, + children: { + width: '50%' + } +} diff --git a/admin-console/src/common/containers/app.container.js b/admin-console/src/common/containers/app.container.js index 81a03a56..1135cc62 100644 --- a/admin-console/src/common/containers/app.container.js +++ b/admin-console/src/common/containers/app.container.js @@ -2,6 +2,7 @@ import React, { Component, PropTypes } from 'react' import { Router, hashHistory } from 'react-router' import ReduxToastr from 'react-redux-toastr' import { Provider } from 'react-redux' +import { ValidStyles } from 'valid-react-form' class AppContainer extends Component { static propTypes = { @@ -19,15 +20,17 @@ class AppContainer extends Component { return (
- + - + +
) diff --git a/admin-console/src/index.html b/admin-console/src/index.html index 80306062..0592f5dc 100644 --- a/admin-console/src/index.html +++ b/admin-console/src/index.html @@ -6,7 +6,7 @@ - +
diff --git a/admin-console/src/main.js b/admin-console/src/main.js index d71c75b5..1359503e 100644 --- a/admin-console/src/main.js +++ b/admin-console/src/main.js @@ -3,6 +3,7 @@ import ReactDOM from 'react-dom' import ApiService from './services/api.service' import createStore from './store/createStore' import AppContainer from './common/containers/app.container' +import 'whatwg-fetch' // ======================================================== // Store Instantiation diff --git a/admin-console/src/routes/ConfigLogging/components/ConfigLogging/ConfigLogging.js b/admin-console/src/routes/ConfigLogging/components/ConfigLogging/ConfigLogging.js index be7f61ab..ce4e13a8 100644 --- a/admin-console/src/routes/ConfigLogging/components/ConfigLogging/ConfigLogging.js +++ b/admin-console/src/routes/ConfigLogging/components/ConfigLogging/ConfigLogging.js @@ -2,7 +2,7 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' import Radium from 'radium' import { reverse, length, take } from 'ramda' -import { Field, ValidStyles } from 'valid-react-form' +import { Field } from 'valid-react-form' import styles from './configLogging.styles.js' import LoggerRow from '../LoggerRow/LoggerRow' @@ -58,12 +58,10 @@ class ConfigLogging extends Component { return (
- - this.updateSearchQuery(val)} - value={value} - placeholder='filter' - name='searchQuery' /> - + this.updateSearchQuery(val)} + value={value} + placeholder='filter' + name='searchQuery' />
{count}
diff --git a/admin-console/src/routes/ConfigParams/components/ConfigParams/configParams.styles.js b/admin-console/src/routes/ConfigParams/components/ConfigParams/configParams.styles.js index cf4a9719..e83e81ad 100644 --- a/admin-console/src/routes/ConfigParams/components/ConfigParams/configParams.styles.js +++ b/admin-console/src/routes/ConfigParams/components/ConfigParams/configParams.styles.js @@ -1,7 +1,9 @@ -import { secondaryColor, lightColor, primaryColor } from '../../../../styles/colors' +import styles from '../../../../styles/styles' +import { secondaryColor, lightColor } from '../../../../styles/colors' import { gap, smallGap } from '../../../../styles/constants' export default { + ...styles, main: { boxSizing: 'border-box', paddingTop: gap, @@ -30,17 +32,5 @@ export default { paddingBottom: gap, paddingLeft: gap, color: lightColor - }, - table: { - position: 'relative', - width: '100%', - boxShadow: '0 2px 10px -2px silver', - borderSpacing: 1 - }, - header: { - fontSize: '0.7em', - textAlign: 'left', - backgroundColor: primaryColor, - minWidth: 80 } } diff --git a/admin-console/src/routes/ConfigParams/components/EditParamModal/EditParamModal.js b/admin-console/src/routes/ConfigParams/components/EditParamModal/EditParamModal.js index c568d874..cb1c2a04 100644 --- a/admin-console/src/routes/ConfigParams/components/EditParamModal/EditParamModal.js +++ b/admin-console/src/routes/ConfigParams/components/EditParamModal/EditParamModal.js @@ -3,7 +3,7 @@ import PropTypes from 'prop-types' import validator from 'validator' import Radium from 'radium' import Modal from 'react-modal' -import { ValidForm, Field, Toggle, ValidStyles } from 'valid-react-form' +import { ValidForm, Field, Toggle } from 'valid-react-form' import ModalHeader from '../../../../common/components/ModalHeader/ModalHeader' import styles from './editParamModal.styles' import Button from '../../../../common/components/Button/Button' @@ -40,43 +40,41 @@ class EditParamModal extends Component { {isOpen && data &&
{updateError &&
Update failed!
} - - updateParam(data, payload)}> -
-
Code
-
{data.code}
+ updateParam(data, payload)}> +
+
Code
+
{data.code}
+
+
+
Description
+
{data.description}
+
+
+
Data type
+
{data.dataType}
+
+
+
Mandatory
+
+
-
-
Description
-
{data.description}
+
+
+ + +
+
+
Validation
+
+
-
-
Data type
-
{data.dataType}
-
-
-
Mandatory
-
- -
-
-
- - -
-
-
Validation
-
- -
-
-
-
- Cancel - -
- - +
+
+
+ Cancel + +
+
} diff --git a/admin-console/src/routes/ErrorsOverview/components/ErrorsOverview/errorsOverview.styles.js b/admin-console/src/routes/ErrorsOverview/components/ErrorsOverview/errorsOverview.styles.js index 79f82586..36eba09e 100644 --- a/admin-console/src/routes/ErrorsOverview/components/ErrorsOverview/errorsOverview.styles.js +++ b/admin-console/src/routes/ErrorsOverview/components/ErrorsOverview/errorsOverview.styles.js @@ -1,33 +1,8 @@ -import { primaryColor, lightColor } from '../../../../styles/colors' +import styles from '../../../../styles/styles' export default { + ...styles, main: { width: '100%' - }, - panel: { - width: '98%' - }, - table: { - position: 'relative', - width: '100%', - boxShadow: '0 2px 10px -2px silver', - borderSpacing: 1 - }, - header:{ - textAlign: 'left', - paddingLeft: 10 - }, - even: { - backgroundColor: primaryColor - }, - odd: { - backgroundColor: lightColor - }, - cell: { - margin: 0, - paddingTop: 10, - paddingBottom: 10, - paddingLeft: 10, - paddingRight: 10 } } diff --git a/admin-console/src/routes/Message/components/Message/Message.js b/admin-console/src/routes/Message/components/Message/Message.js new file mode 100644 index 00000000..fcf3f360 --- /dev/null +++ b/admin-console/src/routes/Message/components/Message/Message.js @@ -0,0 +1,187 @@ +import React, { Component } from 'react' +import PropTypes from 'prop-types' +import moment from 'moment' +import Radium from 'radium' +import SyntaxHighlighter, { registerLanguage } from 'react-syntax-highlighter/dist/light' +import xml from 'react-syntax-highlighter/dist/languages/xml' +import xcode from 'react-syntax-highlighter/dist/styles/xcode' +import styles from './message.styles' +import Panel from '../../../../common/components/Panel/Panel' +import Button from '../../../../common/components/Button/Button' + +registerLanguage('xml', xml) + +const codeStyle = { ...xcode, ...styles.code } + +@Radium +class Message extends Component { + constructor (props) { + super(props) + this.state = { + totalCheckbox: false + } + } + + componentDidMount () { + const { id } = this.props.params + this.props.getMessage(id) + } + + toggle () { + this.setState(({ totalCheckbox }) => ({ + totalCheckbox: !totalCheckbox + })) + } + + render () { + const { message, restart, cancel } = this.props + const states = ['OK', 'FAILED', 'CANCEL'] + if (!message) return
Loading...
+ + const rows = [ + { t: 'Msg ID', v: message.id }, + { t: 'Correlation ID', v: message.correlationId }, + { t: 'Process ID', v: message.processId }, + { t: 'State of message processing', v: message.state }, + { t: 'The time when the process began processing', v: message.processingStarted }, + { t: 'The time of latest change', v: message.lastChange }, + { t: 'Error code', v: message.errorCode }, + { t: 'Failed count', v: message.failedCount }, + { t: 'Source system', v: message.sourceSystem }, + { t: 'The time when message was received', v: message.received }, + { t: 'The time in message', v: message.msgTimestamp }, + { t: 'Service name', v: message.serviceName }, + { t: 'Operation name', v: message.operationName }, + { t: 'ID of the object to be changed', v: message.objectId }, + { t: 'Type of the entity to be changed', v: message.entityType }, + { t: 'Funnel value', v: message.funnelValue }, + { t: 'ID of funnel component', v: message.funnelComponentId }, + { t: 'Guaranteed order', v: message.guaranteedOrder }, + { t: 'Exclude failed state', v: message.excludeFailedState }, + { t: 'Business error overview', v: message.businessError }, + { t: 'ID of parent message', v: message.parentMsgId }, + { t: 'Content (body) of message', v: {message.body} }, + { t: 'Whole incoming message', v: {message.envelope} }, + { t: 'Error description', v: message.failedDescription } + ].map((item) => { + if (typeof item.v === 'boolean') { + item.v = item.v ? 'YES' : 'NO' + } + if (item.v === null || item.v === undefined) { + item.v = '-' + } + return item + }) + + return ( +
+ + + + + + + + {rows.map((row, index) => ( + + + + + ))} + +
{'Attribute Name'}{'Attribute Value'}
{row.t}{row.v}
+
+
+ this.toggle()} + /> total +
+ + +
+
+ + + + + + + + + + + {message.externalCalls.map((call, index) => ( + + + + + + + + ))} + +
{'Internal ID'}{'State'}{'Operation name'}{'ID of call'}{'Last change time'}
{call.id}{call.state}{call.operationName}{call.callId}{moment(call.lastChange).format('MMMM Do YYYY, hh:mm:ss')}
+
+ + + + + + + + + + + + + + {message.requests.map((request, index) => ( + + + + + + + + + + + + + + ))} +
{'ID of executing'}{'URI'}{'Timestamp of request'}{'Content of request'}{'State'}
{'Timestamp of response'}{'Content of response'}
{request.id}{request.uri}{request.timestamp} + {request.payload} + {'N/A'}
{request.response.timestamp} + {request.response.payload} +
+
+
+ ) + } +} + +Message.propTypes = { + getMessage: PropTypes.func, + restart: PropTypes.func, + cancel: PropTypes.func, + message: PropTypes.object, + params: PropTypes.object +} + +export default Message diff --git a/admin-console/src/routes/Message/components/Message/message.styles.js b/admin-console/src/routes/Message/components/Message/message.styles.js new file mode 100644 index 00000000..eed97f9a --- /dev/null +++ b/admin-console/src/routes/Message/components/Message/message.styles.js @@ -0,0 +1,34 @@ +import styles from '../../../../styles/styles' +import { gap, bigGap } from '../../../../styles/constants' + +export default { + ...styles, + main: { + paddingTop: gap, + paddingBottom: gap, + paddingLeft: gap, + paddingRight: gap + }, + smallCell: { + width: '30%' + }, + code: { + hljs: { + background: 'transparent' + } + }, + controls: { + marginTop: bigGap, + marginBottom: bigGap, + width: '300px', + display: 'flex', + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center' + }, + panel: { + ...styles.panel, + marginBottom: bigGap, + minHeight: '100px' + } +} diff --git a/admin-console/src/routes/Message/containers/message.container.js b/admin-console/src/routes/Message/containers/message.container.js new file mode 100644 index 00000000..cc427b0b --- /dev/null +++ b/admin-console/src/routes/Message/containers/message.container.js @@ -0,0 +1,13 @@ +import { connect } from 'react-redux' +import Message from '../components/Message/Message' +import { actions } from '../modules/message.module' + +const mapDispatchToProps = { + ...actions +} + +const mapStateToProps = ({ message }) => ({ + ...message +}) + +export default connect(mapStateToProps, mapDispatchToProps)(Message) diff --git a/admin-console/src/routes/Message/index.js b/admin-console/src/routes/Message/index.js new file mode 100644 index 00000000..a2680c2d --- /dev/null +++ b/admin-console/src/routes/Message/index.js @@ -0,0 +1,13 @@ +import { injectReducer } from '../../store/reducers' + +export default (store) => ({ + path: '/messages/:id', + getComponent (nextState, cb) { + require.ensure([], (require) => { + const nodes = require('./containers/message.container').default + const reducer = require('./modules/message.module').default + injectReducer(store, { key: 'message', reducer }) + cb(null, nodes) + }, 'message') + } +}) diff --git a/admin-console/src/routes/Message/modules/message.module.js b/admin-console/src/routes/Message/modules/message.module.js new file mode 100644 index 00000000..6f88b04d --- /dev/null +++ b/admin-console/src/routes/Message/modules/message.module.js @@ -0,0 +1,74 @@ +import { toastr } from 'react-redux-toastr' +import { + fetchMessage, + restartMessage, + cancelMessage +} from '../../../services/messages.service' + +// ------------------------------------ +// Constants +// ------------------------------------ +export const GET_MESSAGE_SUCCESS = 'GET_MESSAGE_SUCCESS' + +// ------------------------------------ +// Actions +// ------------------------------------ + +export const getMessageSuccess = (payload) => ({ + type: GET_MESSAGE_SUCCESS, + payload +}) + +export const getMessage = (id) => (dispatch) => { + fetchMessage(id) + .then((data) => dispatch(getMessageSuccess(data))) +} + +export const restart = (id, total) => + (dispatch) => { + toastr.confirm('Are you sure that you want to restart this message?', { + onOk: () => { + restartMessage(id, total) + .then(() => { + toastr.success('Message reset successful') + }) + } + }) + } + +export const cancel = (id) => + (dispatch) => { + toastr.confirm('Are you sure that you want to cancel this message?', { + onOk: () => { + cancelMessage(id) + .then(() => { + toastr.success('Message canceled') + }) + } + }) + } + +export const actions = { + getMessage, + restart, + cancel +} + +// ------------------------------------ +// Action Handlers +// ------------------------------------ +const ACTION_HANDLERS = { + [GET_MESSAGE_SUCCESS]: (state, { payload }) => ({ ...state, message: payload }) +} + +// ------------------------------------ +// Reducer +// ------------------------------------ +const initialState = { + message: null +} + +export default function (state = initialState, action) { + const handler = ACTION_HANDLERS[action.type] + return handler ? handler(state, action) : state +} diff --git a/admin-console/src/routes/Messages/components/Messages/Messages.js b/admin-console/src/routes/Messages/components/Messages/Messages.js new file mode 100644 index 00000000..c105de95 --- /dev/null +++ b/admin-console/src/routes/Messages/components/Messages/Messages.js @@ -0,0 +1,150 @@ +import React, { Component } from 'react' +import PropTypes from 'prop-types' +import Radium from 'radium' +import { ValidForm, Field, Valid, Select } from 'valid-react-form' +import { hashHistory } from 'react-router' +import moment from 'moment' +import Flatpickr from 'react-flatpickr' +import Panel from '../../../../common/components/Panel/Panel' +import Button from '../../../../common/components/Button/Button' +import Row from '../../../../common/components/Row/Row' +import styles from './messages.styles.js' + +const states = [ + { label: 'OK', value: 'OK' }, + { label: 'FAILED', value: 'FAILED' }, + { label: 'CANCEL', value: 'CANCEL' } +] + +@Radium +class Messages extends Component { + constructor (props) { + super(props) + this.state = { + form: true + } + } + + componentDidMount () { + this.props.getMessages() + } + + reset () { + this.setState(() => ({ form: false })) + setTimeout(() => { + this.setState(() => ({ form: true })) + }, 0) + } + + openDetail ({ id }) { + hashHistory.push(`/messages/${id}`) + } + + render () { + const { messages } = this.props + const validStyles = this.context.styles + const datepickerStyle = { ...validStyles.field, ...styles.datepicker } + return ( + + {this.state.form && + +
+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + -
-
-
- Cancel -
-
- +
+
+ Cancel + +
+
} ) diff --git a/admin-console/src/routes/index.js b/admin-console/src/routes/index.js index ee590d6e..9105661d 100644 --- a/admin-console/src/routes/index.js +++ b/admin-console/src/routes/index.js @@ -9,6 +9,8 @@ import EnvironmentProperties from './EnvironmentProperties' import ErrorsOverview from './ErrorsOverview' import Nodes from './Nodes' import WSDL from './WSDL' +import Messages from './Messages' +import Message from './Message' export const createRoutes = (store) => ({ path: '/', @@ -21,7 +23,9 @@ export const createRoutes = (store) => ({ EnvironmentProperties(store), ErrorsOverview(store), Nodes(store), - WSDL(store) + WSDL(store), + Messages(store), + Message(store) ], onEnter: () => { store.dispatch(initAuth()) diff --git a/admin-console/src/services/CreateApi.js b/admin-console/src/services/CreateApi.js index fa4f493c..2978ee33 100644 --- a/admin-console/src/services/CreateApi.js +++ b/admin-console/src/services/CreateApi.js @@ -10,7 +10,7 @@ export default class ApiService { http (path, config) { const relativePath = path.substr(this.base.length) - this.store.dispatch(fetchStart(relativePath)) + this.store && this.store.dispatch(fetchStart(relativePath)) return fetch(path, config) .then(res => { if (!res.ok) { @@ -18,11 +18,11 @@ export default class ApiService { error.response = res return Promise.reject(error) } - this.store.dispatch(fetchStop(relativePath)) + this.store && this.store.dispatch(fetchStop(relativePath)) return this.resolveBody(res, config) }) .catch(error => { - this.store.dispatch(fetchError(relativePath, error)) + this.store && this.store.dispatch(fetchError(relativePath, error)) return Promise.reject(error) }) } diff --git a/admin-console/src/services/messages.service.js b/admin-console/src/services/messages.service.js new file mode 100644 index 00000000..ff879c7a --- /dev/null +++ b/admin-console/src/services/messages.service.js @@ -0,0 +1,12 @@ +import apiService from './api.service' + +export const URL = { + get: '/api/messages' +} + +export const fetchMessages = (filter) => apiService.get(URL.get) +export const fetchMessage = (id) => apiService.get(`${URL.get}/${id}`) +export const restartMessage = (id, totalRestart = false) => apiService + .post(`${URL.get}/${id}/action`, { type: 'RESTART', data: { totalRestart } }) +export const cancelMessage = (id) => apiService + .post(`${URL.get}/${id}/action`, { type: 'CANCEL' }) diff --git a/admin-console/src/store/createStore.js b/admin-console/src/store/createStore.js index a84a4fe5..4ad9423e 100644 --- a/admin-console/src/store/createStore.js +++ b/admin-console/src/store/createStore.js @@ -1,6 +1,6 @@ import { applyMiddleware, compose, createStore } from 'redux' import thunk from 'redux-thunk' -import { browserHistory } from 'react-router' +import { hashHistory } from 'react-router' import makeRootReducer from './reducers' import { updateLocation } from './location' import reduxPromise from 'redux-promise' @@ -41,7 +41,7 @@ export default (initialState = {}) => { store.asyncReducers = {} // To unsubscribe, invoke `store.unsubscribeHistory()` anytime - store.unsubscribeHistory = browserHistory.listen(updateLocation(store)) + store.unsubscribeHistory = hashHistory.listen(updateLocation(store)) if (module.hot) { module.hot.accept('./reducers', () => { diff --git a/admin-console/src/styles/styles.js b/admin-console/src/styles/styles.js new file mode 100644 index 00000000..83bcd4ab --- /dev/null +++ b/admin-console/src/styles/styles.js @@ -0,0 +1,30 @@ +import { primaryColor, lightColor } from './colors' + +export default { + panel: { + width: '98%' + }, + table: { + position: 'relative', + width: '100%', + boxShadow: '0 2px 10px -2px silver', + borderSpacing: 1 + }, + header:{ + textAlign: 'left', + paddingLeft: 10 + }, + even: { + backgroundColor: primaryColor + }, + odd: { + backgroundColor: lightColor + }, + cell: { + margin: 0, + paddingTop: 10, + paddingBottom: 10, + paddingLeft: 10, + paddingRight: 10 + } +} diff --git a/admin-console/tests/components/navbar.spec.js b/admin-console/tests/components/navbar.spec.js index 749c5a8d..4a11e57d 100644 --- a/admin-console/tests/components/navbar.spec.js +++ b/admin-console/tests/components/navbar.spec.js @@ -32,7 +32,7 @@ describe('Navbar Component', () => { }) it('should have menu icon if userData', () => { - const wrp = getWrapper({ userData: true, toggleSidebar }) + const wrp = getWrapper({ userData: { fullName: 'Ochmonek' }, toggleSidebar }) expect(wrp.find('.navbar-wrapper')).to.have.descendants(MenuIcon) }) }) diff --git a/admin-console/tests/test-bundler.js b/admin-console/tests/test-bundler.js index d5737d54..ce35cdd1 100644 --- a/admin-console/tests/test-bundler.js +++ b/admin-console/tests/test-bundler.js @@ -6,6 +6,10 @@ import chai from 'chai' import sinonChai from 'sinon-chai' import chaiAsPromised from 'chai-as-promised' import chaiEnzyme from 'chai-enzyme' +import { polyfill } from 'es6-promise' +import 'whatwg-fetch' + +polyfill() chai.use(sinonChai) chai.use(chaiAsPromised) diff --git a/admin-console/yarn.lock b/admin-console/yarn.lock index c738c4da..ff04be62 100644 --- a/admin-console/yarn.lock +++ b/admin-console/yarn.lock @@ -1,16 +1,15 @@ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 + + +Base64@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/Base64/-/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028" + abbrev@1, abbrev@1.0.x: version "1.0.9" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" -accepts@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" - dependencies: - mime-types "~2.1.11" - negotiator "0.6.1" - accepts@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.1.4.tgz#d71c96f7d41d0feda2c38cd14e8a27c04158df4a" @@ -18,6 +17,13 @@ accepts@1.1.4: mime-types "~2.0.4" negotiator "0.4.9" +accepts@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + dependencies: + mime-types "~2.1.11" + negotiator "0.6.1" + acorn-jsx@^3.0.0, acorn-jsx@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" @@ -189,14 +195,14 @@ async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" +async@1.x, async@^1.3.0, async@^1.4.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + 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.3.0, async@^1.4.0, async@1.x: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - async@~0.2.6: version "0.2.10" resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" @@ -889,7 +895,7 @@ babel-register@^6.18.0, babel-register@^6.9.0: mkdirp "^0.5.1" source-map-support "^0.4.2" -babel-runtime@^6.0.0, babel-runtime@^6.11.6, babel-runtime@^6.2.0, babel-runtime@^6.9.0, babel-runtime@^6.9.1: +babel-runtime@^6.0.0, babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.2.0, babel-runtime@^6.9.0, babel-runtime@^6.9.1: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.18.0.tgz#0f4177ffd98492ef13b9f823e9994a02584c9078" dependencies: @@ -956,10 +962,6 @@ base64-js@^1.0.2: version "1.2.0" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" -Base64@~0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/Base64/-/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028" - base64id@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/base64id/-/base64id-0.1.0.tgz#02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f" @@ -1003,6 +1005,10 @@ binary-extensions@^1.0.0: version "1.7.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d" +blacklist@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/blacklist/-/blacklist-1.1.4.tgz#b2dd09d6177625b2caa69835a37b28995fa9a2f2" + blob@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" @@ -1173,7 +1179,7 @@ chai@^3.4.1: deep-eql "^0.1.3" type-detect "^1.0.0" -chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3, chalk@1.1.3: +chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -1231,7 +1237,7 @@ circular-json@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" -classnames@^2.2.3, classnames@2.2.5: +classnames@2.2.5, classnames@^2.2.0, classnames@^2.2.3: version "2.2.5" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" @@ -1317,18 +1323,18 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" -commander@^2.9.0, commander@2.9.0, commander@2.9.x: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - dependencies: - graceful-readlink ">= 1.0.0" - commander@2.8.x: version "2.8.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" dependencies: graceful-readlink ">= 1.0.0" +commander@2.9.0, commander@2.9.x, commander@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -1388,17 +1394,17 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.4.6, concat-stream@^1.4.7: - version "1.5.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" +concat-stream@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.0.tgz#53f7d43c51c5e43f81c8fdd03321c631be68d611" dependencies: inherits "~2.0.1" readable-stream "~2.0.0" typedarray "~0.0.5" -concat-stream@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.0.tgz#53f7d43c51c5e43f81c8fdd03321c631be68d611" +concat-stream@^1.4.6, concat-stream@^1.4.7: + version "1.5.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" dependencies: inherits "~2.0.1" readable-stream "~2.0.0" @@ -1464,14 +1470,14 @@ cookie@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" +core-js@2.4.1, core-js@^2.2.0, core-js@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" + core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" -core-js@^2.2.0, core-js@^2.4.0, core-js@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" - core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -1513,12 +1519,6 @@ custom-event@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" -d@^0.1.1, d@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" - dependencies: - es5-ext "~0.10.2" - d3-array@1: version "1.1.1" resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.1.1.tgz#a01abe63a25ffb91d3423c3c6d051b4d36bc8a09" @@ -1573,6 +1573,12 @@ d3-time@1: version "1.0.6" resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.6.tgz#a55b13d7d15d3a160ae91708232e0835f1d5e945" +d@^0.1.1, d@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" + dependencies: + es5-ext "~0.10.2" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -1594,28 +1600,28 @@ dateformat@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17" -debug@^2.1.1, debug@^2.2.0: - version "2.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" - dependencies: - ms "0.7.2" +debug@0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" -debug@~2.2.0, debug@2.2.0: +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@0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" - 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.1.1, debug@^2.2.0: + version "2.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" + dependencies: + ms "0.7.2" + 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" @@ -1721,7 +1727,7 @@ dom-serialize@^2.2.0: extend "^3.0.0" void-elements "^2.0.0" -dom-serializer@~0.1.0, dom-serializer@0: +dom-serializer@0, dom-serializer@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" dependencies: @@ -1732,7 +1738,7 @@ domain-browser@^1.1.1: version "1.1.7" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" -domelementtype@^1.3.0, domelementtype@1: +domelementtype@1, domelementtype@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" @@ -1740,23 +1746,16 @@ domelementtype@~1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" -domhandler@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" - dependencies: - domelementtype "1" - domhandler@2.1: version "2.1.0" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" dependencies: domelementtype "1" -domutils@^1.5.1, domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" +domhandler@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" dependencies: - dom-serializer "0" domelementtype "1" domutils@1.1: @@ -1765,20 +1764,27 @@ domutils@1.1: dependencies: domelementtype "1" +domutils@1.5.1, domutils@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + dependencies: + dom-serializer "0" + domelementtype "1" + dotenv@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-2.0.0.tgz#bd759c357aaa70365e01c96b7b0bec08a6e0d949" -duplexer@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - duplexer2@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" dependencies: readable-stream "~1.1.9" +duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + duplexify@^3.2.0: version "3.5.0" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604" @@ -1820,18 +1826,18 @@ encoding@^0.1.11: dependencies: iconv-lite "~0.4.13" -end-of-stream@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" - dependencies: - once "~1.3.0" - end-of-stream@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.0.0.tgz#d4596e702734a93e40e9af864319eabd99ff2f0e" dependencies: once "~1.3.0" +end-of-stream@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" + dependencies: + once "~1.3.0" + engine.io-client@1.6.9: version "1.6.9" resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.6.9.tgz#1d6ad48048a5083c95096943b29d36efdb212401" @@ -1966,6 +1972,10 @@ es6-promise@^3.0.2, es6-promise@^3.2.1: version "3.3.1" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" +es6-promise@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.0.tgz#dda03ca8f9f89bc597e689842929de7ba8cebdf0" + es6-promise@~4.0.3: version "4.0.5" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.0.5.tgz#7882f30adde5b240ccfa7f7d78c548330951ae42" @@ -1980,7 +1990,7 @@ es6-set@~0.1.3: es6-symbol "3" event-emitter "~0.3.4" -es6-symbol@~3.1, es6-symbol@~3.1.0, es6-symbol@3: +es6-symbol@3, es6-symbol@~3.1, es6-symbol@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa" dependencies: @@ -2000,7 +2010,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, escape-string-regexp@^1.0.5, 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" @@ -2103,7 +2113,7 @@ espree@^3.3.1: acorn "^4.0.1" acorn-jsx "^3.0.0" -esprima@^2.6.0, esprima@^2.7.1, esprima@2.7.x: +esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" @@ -2153,14 +2163,14 @@ event-stream@~3.3.0: stream-combiner "~0.0.4" through "~2.3.1" -eventemitter3@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" - eventemitter3@1.x.x: version "1.2.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" +eventemitter3@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" + events@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" @@ -2171,14 +2181,14 @@ execSync@1.0.2: dependencies: temp "~0.5.1" -exenv@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.1.tgz#75de1c8dee02e952b102aa17f8875973e0df14f9" - exenv@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.0.tgz#3835f127abf075bfe082d0aed4484057c78e3c89" +exenv@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.1.tgz#75de1c8dee02e952b102aa17f8875973e0df14f9" + exit-hook@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" @@ -2433,6 +2443,10 @@ flat-cache@^1.2.1: graceful-fs "^4.1.2" write "^0.2.1" +flatpickr@^2.3.5: + version "2.6.3" + resolved "https://registry.yarnpkg.com/flatpickr/-/flatpickr-2.6.3.tgz#457357532deb135f3da64b425bf4435737961564" + flux-standard-action@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/flux-standard-action/-/flux-standard-action-0.6.1.tgz#6f34211b94834ea1c3cc30f4e7afad3d0fbf71a2" @@ -2613,6 +2627,23 @@ glob-watcher@^0.0.6: dependencies: gaze "^0.5.1" +glob2base@^0.0.12: + version "0.0.12" + resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" + dependencies: + find-index "^0.1.1" + +glob@7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^4.3.1: version "4.5.3" resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" @@ -2651,23 +2682,6 @@ glob@~3.1.21: inherits "1" minimatch "~0.2.11" -glob@7.0.5: - version "7.0.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob2base@^0.0.12: - version "0.0.12" - resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" - dependencies: - find-index "^0.1.1" - global-modules@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" @@ -2882,6 +2896,14 @@ he@1.1.x: version "1.1.0" resolved "https://registry.yarnpkg.com/he/-/he-1.1.0.tgz#29319d49beec13a9b1f3c4f9b2a6dde4859bb2a7" +highlight.js@~9.12.0: + version "9.12.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.12.0.tgz#e6d9dbe57cbefe60751f02af336195870c90c01e" + +highlight.js@~9.8.0: + version "9.8.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.8.0.tgz#38eeef40cd45eaddbec8c9e5238fb7a783a3b685" + history@^3.0.0: version "3.2.1" resolved "https://registry.yarnpkg.com/history/-/history-3.2.1.tgz#71c7497f4e6090363d19a6713bb52a1bfcdd99aa" @@ -3021,7 +3043,7 @@ hyphenate-style-name@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" -iconv-lite@~0.4.13, iconv-lite@0.4.13: +iconv-lite@0.4.13, iconv-lite@~0.4.13: version "0.4.13" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" @@ -3073,14 +3095,14 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@2, inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - 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: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" @@ -3096,6 +3118,14 @@ inline-style-prefixer@^2.0.5: bowser "^1.0.0" hyphenate-style-name "^1.0.1" +input-moment@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/input-moment/-/input-moment-0.3.4.tgz#3d20492645989f48abf1c81358685a4ec4387c6e" + dependencies: + classnames "^2.2.0" + lodash "^4.17.4" + react-input-slider "^1.5.0" + inquirer@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" @@ -3336,14 +3366,14 @@ is-windows@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" -isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + isbinaryfile@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.1.tgz#6e99573675372e841a0520c036b41513d783e79e" @@ -3422,7 +3452,7 @@ js-tokens@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" -js-yaml@^3.5.1, js-yaml@3.x: +js-yaml@3.x, js-yaml@^3.5.1: version "3.7.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" dependencies: @@ -3637,7 +3667,7 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0.2.5, loader-utils@~0.2.5, loader-utils@0.2.x: +loader-utils@0.2.x, loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0.2.5, loader-utils@~0.2.5: version "0.2.16" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" dependencies: @@ -3882,7 +3912,7 @@ lodash@^3.8.0: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.0.0, lodash@^4.0.1, lodash@^4.13.1, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.0, lodash@~4.17.4: +lodash@^4.0.0, lodash@^4.0.1, lodash@^4.13.1, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.0, lodash@~4.17.4: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -3930,6 +3960,12 @@ lowercase-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" +lowlight@^1.5.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/lowlight/-/lowlight-1.9.0.tgz#6eccfb20f9125a56a82032083967998b5ba19905" + dependencies: + highlight.js "~9.12.0" + lru-cache@2, lru-cache@2.2.x: version "2.2.4" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d" @@ -4032,26 +4068,26 @@ mime-types@~2.0.4: dependencies: mime-db "~1.12.0" -mime@^1.3.4, mime@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" - mime@1.2.x: version "1.2.11" resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" -minimatch@^2.0.1: - version "2.0.10" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" - dependencies: - brace-expansion "^1.0.0" +mime@1.3.4, mime@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" -minimatch@^3.0.0, minimatch@^3.0.2, "minimatch@2 || 3": +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" dependencies: brace-expansion "^1.0.0" +minimatch@^2.0.1: + version "2.0.10" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" + dependencies: + brace-expansion "^1.0.0" + minimatch@~0.2.11: version "0.2.14" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" @@ -4059,19 +4095,13 @@ minimatch@~0.2.11: lru-cache "2" sigmund "~1.0.0" -minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -minimist@~0.0.1, minimist@0.0.8: +minimist@0.0.8, minimist@~0.0.1: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0, mkdirp@~0.5.1, mkdirp@0.5.1, mkdirp@0.5.x: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" +minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" mkdirp@0.5.0: version "0.5.0" @@ -4079,6 +4109,12 @@ mkdirp@0.5.0: dependencies: minimist "0.0.8" +mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + mocha@^3.0.1: version "3.2.0" resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.2.0.tgz#7dc4f45e5088075171a68896814e6ae9eb7a85e3" @@ -4238,15 +4274,15 @@ nodemon@^1.10.2: undefsafe "0.0.3" update-notifier "0.5.0" -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" +nopt@3.x, nopt@~3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: abbrev "1" -nopt@~3.0.6, nopt@3.x: - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" dependencies: abbrev "1" @@ -4357,7 +4393,7 @@ 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.3.0, once@1.x: +once@1.x, once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: @@ -4534,16 +4570,16 @@ path-root@^0.1.1: dependencies: path-root-regex "^0.1.0" +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + path-to-regexp@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" dependencies: isarray "0.0.1" -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -4677,18 +4713,22 @@ ps-tree@^1.0.1: dependencies: event-stream "~3.3.0" -punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + qjobs@^1.1.4: version "1.1.5" resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73" +qs@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" + qs@^6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" @@ -4697,10 +4737,6 @@ qs@~6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" -qs@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" - query-string@^4.2.2: version "4.2.3" resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.2.3.tgz#9f27273d207a25a8ee4c7b8c74dcd45d556db822" @@ -4712,7 +4748,7 @@ querystring-es3@~0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" -querystring@^0.2.0, querystring@0.2.0: +querystring@0.2.0, querystring@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" @@ -4807,6 +4843,13 @@ react-element-to-jsx-string@^3.0.0: stringify-object "^2.3.1" traverse "^0.6.6" +react-flatpickr@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/react-flatpickr/-/react-flatpickr-3.4.0.tgz#93e56133022ea61b85df76470b1570ddd4840bed" + dependencies: + flatpickr "^2.3.5" + prop-types "^15.5.7" + react-icon-base@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/react-icon-base/-/react-icon-base-2.0.4.tgz#b6b7662e8b009b270a4f0c213c222f5d6eca3b22" @@ -4817,6 +4860,13 @@ react-icons@^2.2.1, react-icons@^2.2.3: dependencies: react-icon-base "2.0.4" +react-input-slider@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/react-input-slider/-/react-input-slider-1.6.0.tgz#9094103c6c96a0b1cda9db6be825647fc3fa8ebc" + dependencies: + blacklist "^1.1.2" + classnames "^2.2.0" + react-json-view@^1.7.4: version "1.7.4" resolved "https://registry.yarnpkg.com/react-json-view/-/react-json-view-1.7.4.tgz#6997f0980da1900a3208b24368ac965874bce482" @@ -4877,6 +4927,14 @@ react-smooth@0.1.20: raf "^3.2.0" react-addons-transition-group "^0.14.0 || ^15.0.0" +react-syntax-highlighter@^5.6.2: + version "5.6.2" + resolved "https://registry.yarnpkg.com/react-syntax-highlighter/-/react-syntax-highlighter-5.6.2.tgz#01f5ad3cc44c40c26b6fb4e00a4bed90f66304c5" + dependencies: + babel-runtime "^6.18.0" + highlight.js "~9.8.0" + lowlight "^1.5.0" + react@^15.0.0: version "15.4.1" resolved "https://registry.yarnpkg.com/react/-/react-15.4.1.tgz#498e918602677a3983cd0fd206dfe700389a0dd6" @@ -4916,6 +4974,15 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" +readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.2: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readable-stream@^1.0.27-1, readable-stream@^1.1.13, readable-stream@~1.1.9: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" @@ -4937,15 +5004,6 @@ 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@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.2, readable-stream@1.0: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readable-stream@~2.0.0: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" @@ -5148,7 +5206,7 @@ request-progress@~2.0.1: dependencies: throttleit "^1.0.0" -request@^2.79.0, request@>=2.42.0, request@~2.79.0: +request@>=2.42.0, request@^2.79.0, request@~2.79.0: version "2.79.0" resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" dependencies: @@ -5203,7 +5261,7 @@ resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" -resolve@^1.1.6, resolve@^1.1.7, resolve@1.1.x: +resolve@1.1.x, resolve@^1.1.6, resolve@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" @@ -5220,7 +5278,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.6.1, rimraf@2: +rimraf@2, rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" dependencies: @@ -5252,7 +5310,7 @@ rx-lite@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" -samsam@~1.1, samsam@1.1.2: +samsam@1.1.2, samsam@~1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.2.tgz#bec11fdc83a9fda063401210e40176c3024d1567" @@ -5266,14 +5324,14 @@ semver-diff@^2.0.0: dependencies: semver "^5.0.3" +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.3.0, semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + semver@^4.1.0, semver@~4.3.3: version "4.3.6" resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" -semver@^5.0.3, semver@^5.3.0, semver@~5.3.0, "semver@2 || 3 || 4 || 5": - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - send@0.14.1: version "0.14.1" resolved "https://registry.yarnpkg.com/send/-/send-0.14.1.tgz#a954984325392f51532a7760760e459598c89f7a" @@ -5442,13 +5500,13 @@ source-map-support@^0.4.2: dependencies: source-map "^0.5.3" -source-map@^0.1.41, source-map@0.1.x: +source-map@0.1.x, source-map@^0.1.41: version "0.1.43" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" dependencies: amdefine ">=0.0.4" -source-map@^0.4.4, source-map@~0.4.1, source-map@0.4.x: +source-map@0.4.x, source-map@^0.4.4, source-map@~0.4.1: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" dependencies: @@ -5540,10 +5598,6 @@ 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_decoder@~0.10.25, string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - string-length@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" @@ -5569,6 +5623,10 @@ string.prototype.repeat@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz#aba36de08dcee6a5a337d49b2ea1da1b28fc0ecf" +string_decoder@~0.10.25, string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + stringify-object@^2.3.1: version "2.4.0" resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-2.4.0.tgz#c62d11023eb21fe2d9b087be039a26df3b22a09d" @@ -5613,16 +5671,16 @@ strip-json-comments@~1.0.1, strip-json-comments@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^3.1.0, supports-color@3.1.2: +supports-color@3.1.2, supports-color@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" dependencies: has-flag "^1.0.0" +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + symbol-observable@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" @@ -5687,10 +5745,6 @@ throttleit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" -through@^2.3.6, through@~2.3, through@~2.3.1, through@2: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - through2@^0.6.1: version "0.6.5" resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" @@ -5705,6 +5759,10 @@ through2@^2.0.0: readable-stream "^2.1.5" xtend "~4.0.1" +through@2, through@^2.3.6, through@~2.3, through@~2.3.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + tildify@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" @@ -5789,14 +5847,14 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" - type-detect@0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" +type-detect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" + type-is@~1.6.13: version "1.6.14" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.14.tgz#e219639c17ded1ca0789092dd54a03826b817cb2" @@ -5812,7 +5870,7 @@ ua-parser-js@^0.7.9: version "0.7.12" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" -uglify-js@^2.6, uglify-js@~2.7.3, uglify-js@2.7.x: +uglify-js@2.7.x, uglify-js@^2.6, uglify-js@~2.7.3: version "2.7.5" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" dependencies: @@ -5845,7 +5903,7 @@ unique-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" -unpipe@~1.0.0, unpipe@1.0.0: +unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -5907,7 +5965,7 @@ 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 <1", util@~0.10.3, util@0.10.3: +util@0.10.3, "util@>=0.10.3 <1", util@~0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" dependencies: @@ -5939,9 +5997,9 @@ v8flags@^2.0.2: dependencies: user-home "^1.1.1" -valid-react-form@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/valid-react-form/-/valid-react-form-1.0.2.tgz#8952a808538039f6a5f37519e20c590272d15fe2" +valid-react-form@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/valid-react-form/-/valid-react-form-1.0.3.tgz#46670b42571be765be9c2489ce209f8a12221ac2" dependencies: keycode "^2.1.8" radium "^0.18.2" @@ -6068,7 +6126,7 @@ webpack@^1.12.14: watchpack "^0.2.1" webpack-core "~0.6.0" -whatwg-fetch@^2.0.3, whatwg-fetch@>=0.10.0: +whatwg-fetch@>=0.10.0, whatwg-fetch@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" @@ -6088,6 +6146,10 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.1" +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + window-size@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" @@ -6096,9 +6158,9 @@ window-size@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" wordwrap@^1.0.0, wordwrap@~1.0.0: version "1.0.0" @@ -6108,10 +6170,6 @@ wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" @@ -6162,7 +6220,7 @@ xss-filters@^1.2.6: version "1.2.7" resolved "https://registry.yarnpkg.com/xss-filters/-/xss-filters-1.2.7.tgz#59fa1de201f36f2f3470dcac5f58ccc2830b0a9a" -xtend@^4.0.0, "xtend@>=4.0.0 <4.1.0-0", xtend@~4.0.1: +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -6225,4 +6283,3 @@ yauzl@2.4.1: yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" -