From 85616c4c09fff46e044efdcefaa0424c768da978 Mon Sep 17 00:00:00 2001 From: Tristan Cacqueray Date: Tue, 19 Dec 2017 09:57:32 +0000 Subject: [PATCH] web: add OpenAPI documentation This change adds a swagger description of the REST API. The description is rendered in the sphinx user documentations and in the web interface. Change-Id: I753524f40a09874dab5952f14ab17025525bbab9 --- doc/requirements.txt | 1 + doc/source/conf.py | 1 + doc/source/user/index.rst | 1 + doc/source/user/web.rst | 7 + test-requirements.txt | 1 + tox.ini | 1 + web/package.json | 2 + web/public/openapi.yaml | 439 +++++++++++++++++++++++++++++++++ web/src/App.jsx | 7 +- web/src/actions/openapi.js | 82 +++++++ web/src/api.js | 5 + web/src/index.css | 9 + web/src/pages/OpenApi.jsx | 67 +++++ web/src/reducers/index.js | 2 + web/src/reducers/openapi.js | 40 +++ web/src/routes.js | 6 + web/yarn.lock | 470 ++++++++++++++++++++++++++++++++---- 17 files changed, 1089 insertions(+), 52 deletions(-) create mode 100644 doc/source/user/web.rst create mode 100644 web/public/openapi.yaml create mode 100644 web/src/actions/openapi.js create mode 100644 web/src/pages/OpenApi.jsx create mode 100644 web/src/reducers/openapi.js diff --git a/doc/requirements.txt b/doc/requirements.txt index ebbfd358af..781ed8d362 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -3,5 +3,6 @@ sphinx>=1.6.1 sphinxcontrib-blockdiag>=1.1.0 sphinxcontrib-programoutput sphinx-autodoc-typehints +sphinxcontrib-openapi>=0.4.0 reno>=2.8.0 # Apache-2.0 zuul-sphinx diff --git a/doc/source/conf.py b/doc/source/conf.py index 7b368852ce..ba8614909c 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -31,6 +31,7 @@ extensions = [ 'sphinx.ext.graphviz', 'sphinxcontrib.blockdiag', 'sphinxcontrib.programoutput', + 'sphinxcontrib.openapi', 'zuul_sphinx', 'zuul.sphinx.ansible', 'zuul.sphinx.zuul', diff --git a/doc/source/user/index.rst b/doc/source/user/index.rst index b7eed9edc9..ab1ca63619 100644 --- a/doc/source/user/index.rst +++ b/doc/source/user/index.rst @@ -16,6 +16,7 @@ configure it to meet your needs. config jobs encryption + web badges howtos vulnerabilities diff --git a/doc/source/user/web.rst b/doc/source/user/web.rst new file mode 100644 index 0000000000..982cc5fe2a --- /dev/null +++ b/doc/source/user/web.rst @@ -0,0 +1,7 @@ +:title: REST API + +Rest API +======== + +.. openapi:: ../../../web/public/openapi.yaml + :examples: diff --git a/test-requirements.txt b/test-requirements.txt index 8d19719062..642ba6df27 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,4 +1,5 @@ flake8 +openapi-spec-validator coverage>=3.6 fixtures>=0.3.14 diff --git a/tox.ini b/tox.ini index 79d36f0623..7289b4311d 100644 --- a/tox.ini +++ b/tox.ini @@ -54,6 +54,7 @@ install_command = pip install {opts} {packages} commands = flake8 {posargs} mypy --ignore-missing-imports zuul + openapi-spec-validator web/public/openapi.yaml [testenv:cover] setenv = diff --git a/web/package.json b/web/package.json index 8afb083490..ed5d64e945 100644 --- a/web/package.json +++ b/web/package.json @@ -9,6 +9,7 @@ "dependencies": { "axios": "^0.19.0", "immutability-helper": "^2.8.1", + "js-yaml": "^3.13.0", "lodash": "^4.17.10", "moment": "^2.22.2", "patternfly-react": "^2.13.1", @@ -24,6 +25,7 @@ "redux": "<4.0.0", "redux-thunk": "^2.3.0", "sockette": "^2.0.0", + "swagger-ui": "^3.20.1", "xterm": "<3.14.0" }, "devDependencies": { diff --git a/web/public/openapi.yaml b/web/public/openapi.yaml new file mode 100644 index 0000000000..10218f6dbd --- /dev/null +++ b/web/public/openapi.yaml @@ -0,0 +1,439 @@ +info: + title: Zuul REST API + version: v1 + description: Incomplete (work in progress) list of the endpoints. +openapi: 3.0.0 +tags: +- name: tenant +paths: + /api/tenant/{tenant}/builds: + get: + operationId: list-builds + parameters: + - description: The tenant name + in: path + name: tenant + required: true + schema: + type: string + - description: A project name + in: query + name: project + schema: + type: string + - description: A pipeline name + in: query + name: pipeline + schema: + type: string + - description: A job name + in: query + name: job_name + schema: + type: string + - description: A branch name + in: query + name: branch + schema: + type: string + - description: A change number + in: query + name: change + schema: + type: string + - description: A patchset number + in: query + name: patchset + schema: + type: string + - description: A ref + in: query + name: ref + schema: + type: string + - description: A new revision hash + in: query + name: newrev + schema: + type: string + - description: A build uuid + in: query + name: uuid + schema: + type: string + - description: A build voting status + in: query + name: voting + schema: + type: string + - description: A build result + in: query + name: result + schema: + type: string + - description: The limit count (default 50) + in: query + name: limit + schema: + type: string + - description: Skip number of results + in: query + name: skip + schema: + type: string + responses: + '200': + content: + application/json: + schema: + description: The list of builds + items: + $ref: '#/components/schemas/build' + type: array + description: Returns the list of builds + '404': + description: Tenant not found + summary: List the executed builds + tags: + - tenant + /api/tenant/{tenant}/jobs: + get: + operationId: list-jobs + parameters: + - description: The tenant name + in: path + name: tenant + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + description: The list of jobs + items: + description: A job + properties: + description: + description: The job short description + type: string + name: + description: The job name + type: string + type: object + type: array + description: Returns the list of jobs + '404': + description: Tenant not found + summary: List available jobs + tags: + - tenant + /api/tenant/{tenant}/key/{project}.pub: + get: + operationId: get-project-key + parameters: + - description: The tenant name + in: path + name: tenant + required: true + schema: + type: string + - description: The project name + in: path + name: project + required: true + schema: + type: string + responses: + '200': + content: + text/plain: + example: '-----BEGIN PUBLIC KEY----- + + MIICI... + + -----END PUBLIC KEY----- + + ' + schema: + description: The project public key + type: string + description: Returns the project public key + '404': + description: Tenant or Project not found + summary: Get a project public key + tags: + - tenant + /api/tenant/{tenant}/status: + get: + operationId: get-status + parameters: + - description: The tenant name + in: path + name: tenant + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + description: The tenant status + properties: + last_reconfigured: + description: The Epoch timestamp of the last reconfiguration + type: integer + pipelines: + description: The list of pipelines + items: + $ref: '#/components/schemas/pipelineStatus' + type: array + result_event_queue: + description: The number of completed events + type: integer + trigger_event_queue: + description: The number of running events + type: integer + zuul_version: + description: The Zuul version + type: string + type: object + description: Returns the list of tenants + '404': + description: Tenant not found + summary: Get tenant status + tags: + - tenant + /api/tenants: + get: + operationId: list-tenants + responses: + '200': + content: + application/json: + schema: + items: + properties: + name: + description: Tenant name + type: string + projects: + description: Tenant project count + type: integer + queue: + description: Active changes count + type: integer + type: object + type: array + description: Returns the list of tenants + summary: List the tenants + tags: + - tenant +components: + schemas: + build: + description: A build + properties: + branch: + description: The build change branch + type: string + change: + description: The build change number + type: integer + duration: + description: The build duration in second + type: integer + end_time: + description: The build end time ISO 8601 format + type: string + job_name: + description: The build job name + type: string + log_url: + description: The build logs url + type: string + newrev: + description: The build newrev + type: string + patchset: + description: The build patchset number + type: integer + pipeline: + description: The build pipeline + type: string + project: + description: The build project name + type: string + ref: + description: The build change reference + type: string + ref_url: + description: The build change reference url + type: string + result: + description: The build result + type: string + start_time: + description: The build start time ISO 8601 format + type: string + uuid: + description: The build uuid + type: string + voting: + description: The build voting status + type: boolean + type: object + changeQueue: + description: A change queue + properties: + heads: + description: The list of queue events + items: + items: + $ref: '#/components/schemas/eventQueue' + type: array + type: array + name: + description: The queue name + type: string + window: + description: The queue window + type: integer + type: object + eventQueue: + description: A queue event + properties: + active: + description: Is the event active + type: boolean + enqueue_time: + description: The epoch creation time + type: integer + failing_reasons: + description: The list of failing reasons + items: + type: string + type: array + id: + description: The event id + type: string + item_ahead: + description: The list of events ahead + items: + type: string + type: array + item_behind: + description: The list of events behind + items: + type: string + type: array + jobs: + description: The event list of jobs + items: + $ref: '#/components/schemas/statusJob' + type: array + live: + description: Is the event live + type: boolean + owner: + description: The event owner + type: string + project: + description: The event project + type: string + remaining_time: + description: The estimated remaining time + type: integer + url: + description: The event url + type: string + zuul_ref: + description: The zuul ref + type: string + type: object + pipelineStatus: + description: A pipeline + properties: + change_queues: + description: The pipeline list of change queues + items: + $ref: '#/components/schemas/changeQueue' + type: array + description: + description: The pipeline description + type: string + name: + description: The pipeline name + type: string + type: object + statusJob: + description: A job status + properties: + canceled: + description: Is the job canceled + type: boolean + elapsed_time: + description: The elapsed time + type: integer + launch_time: + description: The epoch launch time + type: integer + name: + description: The job name + type: string + number: + description: The job number + type: integer + pipeline: + description: The job pipeline + type: string + remaining_time: + description: The estimated remaining time + type: integer + result: + description: The job result + type: string + retry: + description: The retry count + type: integer + start_time: + description: The epoch start time + type: integer + url: + description: The job stream url + type: string + uuid: + description: The job uuid + type: string + voting: + description: Is the job voting + type: boolean + worker: + $ref: '#/components/schemas/statusWorker' + type: object + statusWorker: + description: A job worker node + properties: + fqdn: + description: The worker fully qualified domain name + type: string + hostname: + description: The worker hostname + type: string + ips: + description: The list of worker ip addresses + items: + type: string + type: array + name: + description: The worker name + type: string + program: + description: The worker program + type: string + version: + description: The worker version + type: string + type: object diff --git a/web/src/App.jsx b/web/src/App.jsx index 09bc2d5d42..619cc499ed 100644 --- a/web/src/App.jsx +++ b/web/src/App.jsx @@ -106,7 +106,9 @@ class App extends React.Component { allRoutes.push( @@ -255,6 +257,9 @@ class App extends React.Component { this.setState({showErrors: !this.state.showErrors})}} /> } +
  • + API +
  • diff --git a/web/src/actions/openapi.js b/web/src/actions/openapi.js new file mode 100644 index 0000000000..c0e78d0fcb --- /dev/null +++ b/web/src/actions/openapi.js @@ -0,0 +1,82 @@ +// Copyright 2018 Red Hat, Inc +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +import * as API from '../api' +import yaml from 'js-yaml' + +export const OPENAPI_FETCH_REQUEST = 'OPENAPI_FETCH_REQUEST' +export const OPENAPI_FETCH_SUCCESS = 'OPENAPI_FETCH_SUCCESS' +export const OPENAPI_FETCH_FAIL = 'OPENAPI_FETCH_FAIL' + +export const fetchOpenApiRequest = () => ({ + type: OPENAPI_FETCH_REQUEST +}) + +export const fetchOpenApiSuccess = (yaml_data, whiteLabel) => { + const data = yaml.safeLoad(yaml_data) + if (whiteLabel) { + const paths = {} + for (let path in data.paths) { + // Remove tenant list api + if (path === '/api/tenants') { + continue + } + // Remove tenant in path parameter + data.paths[path].get.parameters.splice(0, 1) + paths[path.replace('/api/tenant/{tenant}/', '/api/')] = data.paths[path] + } + data.paths = paths + } + data.servers = [{ + // Trim the trailing '/api/' + url: API.apiUrl.substr(0, API.apiUrl.length - 5), + description: 'Production server', + }] + return { + type: OPENAPI_FETCH_SUCCESS, + openapi: data, + } +} + +const fetchOpenApiFail = error => ({ + type: OPENAPI_FETCH_FAIL, + error +}) + +const fetchOpenApi = (whiteLabel) => dispatch => { + dispatch(fetchOpenApiRequest()) + return API.fetchOpenApi() + .then(response => dispatch(fetchOpenApiSuccess(response.data, whiteLabel))) + .catch(error => { + dispatch(fetchOpenApiFail(error)) + setTimeout(() => {dispatch(fetchOpenApi())}, 5000) + }) +} + +const shouldFetchOpenApi = openapi => { + if (!openapi.openapi) { + return true + } + if (openapi.isFetching) { + return false + } + return true +} + +export const fetchOpenApiIfNeeded = (force) => (dispatch, getState) => { + const state = getState() + if (force || shouldFetchOpenApi(state.openapi)) { + return dispatch(fetchOpenApi(state.tenant.whiteLabel)) + } +} diff --git a/web/src/api.js b/web/src/api.js index 429afbcbec..fcd3066d11 100644 --- a/web/src/api.js +++ b/web/src/api.js @@ -106,6 +106,9 @@ function getStreamUrl (apiPrefix) { function fetchInfo () { return Axios.get(apiUrl + 'info') } +function fetchOpenApi () { + return Axios.get(getHomepageUrl () + 'openapi.yaml') +} function fetchTenants () { return Axios.get(apiUrl + 'tenants') } @@ -155,6 +158,7 @@ function fetchNodes (apiPrefix) { } export { + apiUrl, getHomepageUrl, getStreamUrl, fetchChangeStatus, @@ -169,6 +173,7 @@ export { fetchJobs, fetchLabels, fetchNodes, + fetchOpenApi, fetchTenants, fetchInfo } diff --git a/web/src/index.css b/web/src/index.css index 769337536c..614396d45b 100644 --- a/web/src/index.css +++ b/web/src/index.css @@ -121,3 +121,12 @@ a.refresh { div.tree-view-container ul.list-group { margin: 0px 0px; } + +/* OpenAPI page */ +pre.version { + background-color: lightgrey; + color: black; +} +.swagger-ui .servers { + padding-top: 5px +} diff --git a/web/src/pages/OpenApi.jsx b/web/src/pages/OpenApi.jsx new file mode 100644 index 0000000000..114083c243 --- /dev/null +++ b/web/src/pages/OpenApi.jsx @@ -0,0 +1,67 @@ +// Copyright 2018 Red Hat, Inc +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +import * as React from 'react' +import PropTypes from 'prop-types' +import { connect } from 'react-redux' +import SwaggerUi from 'swagger-ui' +import 'swagger-ui/dist/swagger-ui.css' + +import { fetchOpenApiIfNeeded } from '../actions/openapi' +import Refreshable from '../containers/Refreshable' + + +class OpenApiPage extends Refreshable { + static propTypes = { + tenant: PropTypes.object, + remoteData: PropTypes.object, + dispatch: PropTypes.func + } + + updateData = (force) => { + this.props.dispatch(fetchOpenApiIfNeeded(force)) + } + + componentDidMount () { + document.title = 'Zuul API' + this.updateData() + } + + componentDidUpdate (prevProps) { + if (this.props.remoteData.openapi && + this.props.remoteData.openapi !== prevProps.remoteData.openapi) { + SwaggerUi({ + dom_id: '#swaggerContainer', + spec: this.props.remoteData.openapi, + presets: [SwaggerUi.presets.apis] + }) + } + } + + render() { + return ( + +
    + {this.renderSpinner()} +
    +
    + + ) + } +} + +export default connect(state => ({ + tenant: state.tenant, + remoteData: state.openapi, +}))(OpenApiPage) diff --git a/web/src/reducers/index.js b/web/src/reducers/index.js index 0f9440248b..a668228379 100644 --- a/web/src/reducers/index.js +++ b/web/src/reducers/index.js @@ -28,6 +28,7 @@ import projects from './projects' import status from './status' import tenant from './tenant' import tenants from './tenants' +import openapi from './openapi' const reducers = { change, @@ -44,6 +45,7 @@ const reducers = { status, tenant, tenants, + openapi, } export default combineReducers(reducers) diff --git a/web/src/reducers/openapi.js b/web/src/reducers/openapi.js new file mode 100644 index 0000000000..1e0db50f10 --- /dev/null +++ b/web/src/reducers/openapi.js @@ -0,0 +1,40 @@ +// Copyright 2018 Red Hat, Inc +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. You may obtain +// a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations +// under the License. + +import { + OPENAPI_FETCH_REQUEST, + OPENAPI_FETCH_SUCCESS, + OPENAPI_FETCH_FAIL, +} from '../actions/openapi' + +export default (state = { + isFetching: false, + openapi: null, +}, action) => { + switch (action.type) { + case OPENAPI_FETCH_REQUEST: + case OPENAPI_FETCH_FAIL: + return { + isFetching: true, + tenant: state.openapi, + } + case OPENAPI_FETCH_SUCCESS: + return { + isFetching: false, + openapi: action.openapi, + } + default: + return state + } +} diff --git a/web/src/routes.js b/web/src/routes.js index c8e9cc8468..fe70535b5c 100644 --- a/web/src/routes.js +++ b/web/src/routes.js @@ -26,6 +26,7 @@ import BuildsetsPage from './pages/Buildsets' import ConfigErrorsPage from './pages/ConfigErrors' import TenantsPage from './pages/Tenants' import StreamPage from './pages/Stream' +import OpenApiPage from './pages/OpenApi' // The Route object are created in the App component. // Object with a title are created in the menu. @@ -95,6 +96,11 @@ const routes = () => [ to: '/tenants', component: TenantsPage, globalRoute: true + }, + { + to: '/openapi', + component: OpenApiPage, + noTenantPrefix: true, } ] diff --git a/web/yarn.lock b/web/yarn.lock index 79f08a65e8..4b22bc1469 100644 --- a/web/yarn.lock +++ b/web/yarn.lock @@ -33,6 +33,30 @@ dependencies: regenerator-runtime "^0.13.2" +"@braintree/sanitize-url@^2.0.2": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-2.1.0.tgz#549a9d1f923c9bc7953a585d3e9aa9429be8fe28" + integrity sha1-VJqdH5I8m8eVOlhdPpqpQpvo/ig= + +"@kyleshockey/js-yaml@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@kyleshockey/js-yaml/-/js-yaml-1.0.1.tgz#5c036bb67caee77fa887738e695dc02949889bfd" + integrity sha512-coFyIk1LvTscq1cUU4nCCfYwv+cmG4fCP+wgDKgYZjhM4f++YwZy+g0k+1tUqa4GuUpBTEOGH2KUqKFFWdT73g== + dependencies: + argparse "^1.0.7" + +"@kyleshockey/object-assign-deep@^0.4.0", "@kyleshockey/object-assign-deep@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@kyleshockey/object-assign-deep/-/object-assign-deep-0.4.2.tgz#84900f0eefc372798f4751b5262830b8208922ec" + integrity sha1-hJAPDu/DcnmPR1G1JigwuCCJIuw= + +"@kyleshockey/xml@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@kyleshockey/xml/-/xml-1.0.2.tgz#81fad3d7c33da2ba2639db095db3db24c2921f70" + integrity sha512-iMo32MPLcI9cPxs3YL5kmKxKgDmkSZDCFEqIT5eRk7d/Ll8r4X3SwGYSigzALd6+RHWlFEmjL1QyaQ15xDZFlw== + dependencies: + stream "^0.0.2" + "@types/c3@^0.6.0": version "0.6.4" resolved "https://registry.yarnpkg.com/@types/c3/-/c3-0.6.4.tgz#449830da0e1a2fc4feceb87f97de7ee5965e183b" @@ -252,6 +276,13 @@ resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.7.tgz#c8fa532b60a0042219cdf173ca21a975ef0666ad" integrity sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ== +"@types/react@16.4.6": + version "16.4.6" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.4.6.tgz#5024957c6bcef4f02823accf5974faba2e54fada" + integrity sha512-9LDZdhsuKSc+DjY65SjBkA958oBWcTWSVWAd2cD9XqKBjhGw1KzAkRhWRw2eIsXvaIE/TOTjjKMFVC+JA1iU4g== + dependencies: + csstype "^2.2.0" + abab@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" @@ -462,6 +493,14 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@~0.1.15: + version "0.1.16" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-0.1.16.tgz#cfd01e0fbba3d6caed049fbd758d40f65196f57c" + integrity sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw= + dependencies: + underscore "~1.7.0" + underscore.string "~2.4.0" + aria-query@^0.7.0: version "0.7.1" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.1.tgz#26cbb5aff64144b0a825be1846e0b16cfa00b11e" @@ -621,7 +660,7 @@ async@^1.5.2: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= -async@^2.1.2, async@^2.1.4, async@^2.4.1: +async@^2.0.1, async@^2.1.2, async@^2.1.4, async@^2.4.1: version "2.6.2" resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== @@ -638,6 +677,11 @@ atob@^2.1.1: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== +autolinker@~0.15.0: + version "0.15.3" + resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.15.3.tgz#342417d8f2f3461b14cf09088d5edf8791dc9832" + integrity sha1-NCQX2PLzRhsUzwkIjV7fh5HcmDI= + autoprefixer@7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.1.6.tgz#fb933039f74af74a83e71225ce78d9fd58ba84d7" @@ -1441,7 +1485,7 @@ base16@^1.0.0: resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" integrity sha1-4pf2DX7BAUp6lxo568ipjAtoHnA= -base64-js@^1.0.2: +base64-js@^1.0.2, base64-js@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== @@ -1725,6 +1769,11 @@ bser@^2.0.0: dependencies: node-int64 "^0.4.0" +btoa@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.1.2.tgz#3e40b81663f81d2dd6596a4cb714a8dc16cfabe0" + integrity sha1-PkC4FmP4HS3WWWpMtxSo3BbPq+A= + buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -1749,6 +1798,14 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" +buffer@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" + integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + builtin-modules@^1.0.0, builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -2126,7 +2183,7 @@ colors@~1.1.2: resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= -combined-stream@^1.0.6, combined-stream@~1.0.6: +combined-stream@^1.0.5, combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -2266,6 +2323,11 @@ cookie@0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +cookie@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= + copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" @@ -2276,7 +2338,7 @@ core-js@^1.0.0: resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= -core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5: +core-js@^2.4.0, core-js@^2.5.0, core-js@^2.5.1, core-js@^2.6.5: version "2.6.9" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== @@ -2337,6 +2399,15 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" +create-react-class@^15.5.1, create-react-class@^15.6.0: + version "15.6.3" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" + integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg== + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + object-assign "^4.1.1" + create-react-context@<=0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.2.tgz#9836542f9aaa22868cd7d4a6f82667df38019dca" @@ -2353,6 +2424,14 @@ create-react-context@^0.2.3: fbjs "^0.8.0" gud "^1.0.0" +cross-fetch@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-0.0.8.tgz#01ed94dc407df2c00f1807fde700a7cfa48a205c" + integrity sha1-Ae2U3EB98sAPGAf95wCnz6SKIFw= + dependencies: + node-fetch "1.7.3" + whatwg-fetch "2.0.3" + cross-spawn@5.1.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -2449,6 +2528,11 @@ css-what@2.1: resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== +css.escape@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= + cssesc@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" @@ -2512,6 +2596,11 @@ cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": dependencies: cssom "0.3.x" +csstype@^2.2.0: + version "2.6.5" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.5.tgz#1cd1dff742ebf4d7c991470ae71e12bb6751e034" + integrity sha512-JsTaiksRsel5n7XwqPAfB0l3TFKdpjW/kgAELf9vrb5adGA7UCPLajKK5s3nFrcFm3Rkyp/Qkgl73ENc1UY3cA== + currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" @@ -2631,6 +2720,11 @@ deep-equal@^1.0.1: resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= +deep-extend@0.5.1, deep-extend@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f" + integrity sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w== + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -2862,6 +2956,11 @@ domhandler@^2.3.0: dependencies: domelementtype "1" +dompurify@^1.0.4: + version "1.0.10" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-1.0.10.tgz#18d7353631c86ee25049e38fbca8c6b2c5a2af87" + integrity sha512-huhl3DSWX5LaA7jDtnj3XQdJgWW1wYouNW7N0drGzQa4vEUSVWyeFN+Atx6HP4r5cang6oQytMom6I4yhGJj5g== + domutils@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" @@ -2926,9 +3025,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30: - version "1.3.148" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.148.tgz#5796c0d9eb0358d397163413b90bf376c5d8bf08" - integrity sha512-nuCOlXNlGMQmdzihIPGm2K3Yf3H1hke/1rK381i02pH8wNliJU9hVNnOi/xjmxt+mjABd/BzufP5nPHWKshLWA== + version "1.3.158" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.158.tgz#5e16909dcfd25ab7cd1665114ee381083a3ee858" + integrity sha512-wJsJaWsViNQ129XPGmyO5gGs1jPMHr9vffjHAhUje1xZbEzQcqbENdvfyRD9q8UF0TgFQFCCUbaIpJarFbvsIg== elliptic@^6.0.0: version "6.4.1" @@ -2943,6 +3042,11 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +emitter-component@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/emitter-component/-/emitter-component-1.1.1.tgz#065e2dbed6959bf470679edabeaf7981d1003ab6" + integrity sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY= + emoji-regex@^6.1.0: version "6.5.1" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" @@ -2958,6 +3062,11 @@ emojis-list@^2.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= +encode-3986@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/encode-3986/-/encode-3986-1.0.0.tgz#940d51498f8741ade184b75ad1439b317c0c7a60" + integrity sha1-lA1RSY+HQa3hhLda0UObMXwMemA= + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -3030,7 +3139,7 @@ es-to-primitive@^1.2.0: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: +es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@^0.10.9, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: version "0.10.50" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.50.tgz#6d0e23a0abdb27018e5ac4fd09b412bc5517a778" integrity sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw== @@ -3039,7 +3148,7 @@ es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: es6-symbol "~3.1.1" next-tick "^1.0.0" -es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: +es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= @@ -3084,14 +3193,14 @@ es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: d "1" es5-ext "~0.10.14" -es6-weak-map@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" - integrity sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8= +es6-weak-map@^2.0.1, es6-weak-map@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== dependencies: d "1" - es5-ext "^0.10.14" - es6-iterator "^2.0.1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" es6-symbol "^3.1.1" escape-html@~1.0.3: @@ -3399,7 +3508,7 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= -event-emitter@~0.3.5: +event-emitter@^0.3.5, event-emitter@~0.3.5: version "0.3.5" resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= @@ -3611,6 +3720,13 @@ fast-deep-equal@^2.0.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= +fast-json-patch@^2.0.6: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-2.1.0.tgz#e348c330a5b2481b14f5fffd707aebfef8b7bef6" + integrity sha512-PipOsAKamRw7+CXtKiieehyjUeDVPJ5J7b2kdJYerEf6TSUQoD2ijpVyZ88KQm5YXziff4h762bz3+vzf56khg== + dependencies: + deep-equal "^1.0.1" + fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -3634,9 +3750,9 @@ faye-websocket@^0.10.0: websocket-driver ">=0.5.1" faye-websocket@~0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" - integrity sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg= + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== dependencies: websocket-driver ">=0.5.1" @@ -3867,6 +3983,15 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= +form-data@^1.0.0-rc3: + version "1.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.1.tgz#ae315db9a4907fa065502304a66d7733475ee37c" + integrity sha1-rjFduaSQf6BlUCMEpm13M0de43w= + dependencies: + async "^2.0.1" + combined-stream "^1.0.5" + mime-types "^2.1.11" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -4269,7 +4394,7 @@ hoist-non-react-statics@^2.1.1, hoist-non-react-statics@^2.3.1, hoist-non-react- resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw== -hoist-non-react-statics@^3.1.0: +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b" integrity sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA== @@ -4443,7 +4568,7 @@ icss-utils@^2.1.0: dependencies: postcss "^6.0.1" -ieee754@^1.1.4: +ieee754@^1.1.4, ieee754@^1.1.8: version "1.1.13" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== @@ -4472,6 +4597,11 @@ immutability-helper@^2.8.1: dependencies: invariant "^2.2.0" +immutable@^3.7.6, immutable@^3.x.x: + version "3.8.2" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" + integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= + import-fresh@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" @@ -4589,7 +4719,7 @@ interpret@^1.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== -invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4: +invariant@^2.0.0, invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -4713,6 +4843,11 @@ is-directory@^0.3.1: resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= +is-dom@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/is-dom/-/is-dom-1.0.9.tgz#483832d52972073de12b9fe3f60320870da8370d" + integrity sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0= + is-dotfile@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" @@ -4865,7 +5000,7 @@ is-primitive@^2.0.0: resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= -is-promise@^2.1.0: +is-promise@^2.1, is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= @@ -4971,6 +5106,13 @@ isomorphic-fetch@^2.1.1: node-fetch "^1.0.1" whatwg-fetch ">=0.10.0" +isomorphic-form-data@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isomorphic-form-data/-/isomorphic-form-data-0.0.1.tgz#026f627e032b0cd8413ecc8755928b94a468b062" + integrity sha1-Am9ifgMrDNhBPsyHVZKLlKRosGI= + dependencies: + form-data "^1.0.0-rc3" + isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -5298,6 +5440,11 @@ js-base64@^2.1.9: resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121" integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw== +js-file-download@^0.4.1: + version "0.4.7" + resolved "https://registry.yarnpkg.com/js-file-download/-/js-file-download-0.4.7.tgz#cafea2f7230b63fa1747e80efe1257649b59143e" + integrity sha512-9AQYwIpgTz3BqKQQ9kZldCXd0BekFmxvUguEVJwVlTe9cON1slRaT+hqctEbjoXbz9Aj+8Qgl3841zYWeCstuA== + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -5658,15 +5805,15 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -"lodash@>=3.5 <5", lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0: +"lodash@>=3.5 <5", lodash@^4.15.0, lodash@^4.16.2, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== loglevel@^1.4.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.2.tgz#668c77948a03dbd22502a3513ace1f62a80cc372" - integrity sha512-Jt2MHrCNdtIe1W6co3tF5KXGRkzF+TYffiQstfXa04mrss9IKXzAAXYWak8LbZseAQY03sH2GzMCMU0ZOUc9bg== + version "1.6.3" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280" + integrity sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA== longest@^1.0.1: version "1.0.1" @@ -5706,6 +5853,13 @@ lru-cache@^4.0.1: pseudomap "^1.0.2" yallist "^2.1.2" +lru-queue@0.1: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= + dependencies: + es5-ext "~0.10.2" + make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" @@ -5768,6 +5922,20 @@ mem@^1.1.0: dependencies: mimic-fn "^1.0.0" +memoizee@^0.4.12: + version "0.4.14" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57" + integrity sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg== + dependencies: + d "1" + es5-ext "^0.10.45" + es6-weak-map "^2.0.2" + event-emitter "^0.3.5" + is-promise "^2.1" + lru-queue "0.1" + next-tick "1" + timers-ext "^0.1.5" + memory-fs@^0.4.0, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -5858,7 +6026,7 @@ mime-db@1.40.0, "mime-db@>= 1.40.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: +mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.24" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== @@ -6035,7 +6203,7 @@ neo-async@^2.5.0, neo-async@^2.6.0: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== -next-tick@^1.0.0: +next-tick@1, next-tick@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= @@ -6052,7 +6220,7 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" -node-fetch@^1.0.1: +node-fetch@1.7.3, node-fetch@^1.0.1: version "1.7.3" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== @@ -6586,9 +6754,9 @@ patternfly-bootstrap-treeview@~2.1.0: jquery ">= 2.1.x" patternfly-react@^2.13.1: - version "2.36.0" - resolved "https://registry.yarnpkg.com/patternfly-react/-/patternfly-react-2.36.0.tgz#7143a13356ef6c61ea7764a61d84be58502fc0e7" - integrity sha512-VmkrZtfdieL4kWFeSsjK02pNLt214x2lwpTPyHlbWy5uXjqXU2fYBo9gA2gNXYwdy25DVJ+EDh493+ye/C3AIg== + version "2.36.1" + resolved "https://registry.yarnpkg.com/patternfly-react/-/patternfly-react-2.36.1.tgz#a6bdfd9b8e11d7fa6055492655fabbd300701815" + integrity sha512-1BKlf/LnvEzofpQ0pGSrTuTPP+ykV3d2lH60bM3c3bdCXPYdOsWrRaBZugv1oREzbRSts/8xvwiVMitXc5xjwA== dependencies: bootstrap-slider-without-jquery "^10.0.0" breakjs "^1.0.0" @@ -7202,7 +7370,7 @@ q@^1.1.2: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -qs@6.7.0: +qs@6.7.0, qs@^6.3.0: version "6.7.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== @@ -7220,6 +7388,11 @@ query-string@^4.1.0: object-assign "^4.1.0" strict-uri-encode "^1.0.0" +querystring-browser@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/querystring-browser/-/querystring-browser-1.0.4.tgz#f2e35881840a819bc7b1bf597faf0979e6622dc6" + integrity sha1-8uNYgYQKgZvHsb9Zf68JeeZiLcY= + querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -7400,6 +7573,16 @@ react-dev-utils@^5.0.1: strip-ansi "3.0.1" text-table "0.2.0" +react-dom@^15.6.2: + version "15.6.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730" + integrity sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA= + dependencies: + fbjs "^0.8.9" + loose-envify "^1.1.0" + object-assign "^4.1.0" + prop-types "^15.5.10" + react-dom@^16.4.2: version "16.8.6" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f" @@ -7436,6 +7619,27 @@ react-height@^3.0.0: dependencies: prop-types "15.5.8" +react-immutable-proptypes@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/react-immutable-proptypes/-/react-immutable-proptypes-2.1.0.tgz#023d6f39bb15c97c071e9e60d00d136eac5fa0b4" + integrity sha1-Aj1vObsVyXwHHp5g0A0TbqxfoLQ= + +react-immutable-pure-component@^1.1.1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/react-immutable-pure-component/-/react-immutable-pure-component-1.2.3.tgz#fa33638df68cfe9f73ccbee1d5861c17f3053f86" + integrity sha512-kNy2A/fDrSuR8TKwB+4ynmItmp1vgF87tWxxfmadwDYo2J3ANipHqTjDIBvJvJ7libvuh76jIbvmK0krjtKH1g== + optionalDependencies: + "@types/react" "16.4.6" + +react-inspector@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-2.3.1.tgz#f0eb7f520669b545b441af9d38ec6d706e5f649c" + integrity sha512-tUUK7t3KWgZEIUktOYko5Ic/oYwvjEvQUFAGC1UeMeDaQ5za2yZFtItJa2RTwBJB//NxPr000WQK6sEbqC6y0Q== + dependencies: + babel-runtime "^6.26.0" + is-dom "^1.0.9" + prop-types "^15.6.1" + react-is@^16.3.2, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: version "16.8.6" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" @@ -7496,6 +7700,18 @@ react-prop-types@^0.4.0: dependencies: warning "^3.0.0" +react-redux@^4.x.x: + version "4.4.10" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-4.4.10.tgz#ad57bd1db00c2d0aa7db992b360ce63dd0b80ec5" + integrity sha512-tjL0Bmpkj75Td0k+lXlF8Fc8a9GuXFv/3ahUOCXExWs/jhsKiQeTffdH0j5byejCGCRL4tvGFYlrwBF1X/Aujg== + dependencies: + create-react-class "^15.5.1" + hoist-non-react-statics "^3.3.0" + invariant "^2.0.0" + lodash "^4.17.11" + loose-envify "^1.4.0" + prop-types "^15.7.2" + react-redux@^5.0.7: version "5.1.1" resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.1.1.tgz#88e368682c7fa80e34e055cd7ac56f5936b0f52f" @@ -7597,6 +7813,17 @@ react-transition-group@^2.0.0, react-transition-group@^2.2.0: prop-types "^15.6.2" react-lifecycles-compat "^3.0.4" +react@^15.6.2: + version "15.6.2" + resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72" + integrity sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI= + dependencies: + create-react-class "^15.6.0" + fbjs "^0.8.9" + loose-envify "^1.1.0" + object-assign "^4.1.0" + prop-types "^15.5.10" + react@^16.4.2: version "16.8.6" resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe" @@ -7720,12 +7947,19 @@ reduce-function-call@^1.0.1: dependencies: balanced-match "^0.4.2" +redux-immutable@3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/redux-immutable/-/redux-immutable-3.0.8.tgz#df5a5d601c88227ba38f474cf82f7d00e56f8c14" + integrity sha1-31pdYByIInujj0dM+C99AOVvjBQ= + dependencies: + immutable "^3.7.6" + redux-thunk@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622" integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw== -redux@<4.0.0: +redux@<4.0.0, redux@^3.x.x: version "3.7.2" resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" integrity sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A== @@ -7829,6 +8063,14 @@ relateurl@0.2.x: resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= +remarkable@^1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.1.tgz#aaca4972100b66a642a63a1021ca4bac1be3bff6" + integrity sha1-qspJchALZqZCpjoQIcpLrBvjv/Y= + dependencies: + argparse "~0.1.15" + autolinker "~0.15.0" + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -7916,6 +8158,11 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= +reselect@^2.5.4: + version "2.5.4" + resolved "https://registry.yarnpkg.com/reselect/-/reselect-2.5.4.tgz#b7d23fdf00b83fa7ad0279546f8dbbbd765c7047" + integrity sha1-t9I/3wC4P6etAnlUb427vXZccEc= + resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" @@ -7969,9 +8216,9 @@ resolve@1.6.0: path-parse "^1.0.5" resolve@^1.10.0, resolve@^1.10.1, resolve@^1.3.2, resolve@^1.5.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e" - integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw== + version "1.11.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232" + integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw== dependencies: path-parse "^1.0.6" @@ -8036,7 +8283,7 @@ rxjs@^6.4.0: dependencies: tslib "^1.9.0" -safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@>=5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== @@ -8129,6 +8376,11 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" +serialize-error@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a" + integrity sha1-ULZ51WNc34Rme9yOWa9OW4HV9go= + serve-index@^1.7.2: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -8485,6 +8737,13 @@ stream-http@^2.7.2: to-arraybuffer "^1.0.0" xtend "^4.0.0" +stream@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/stream/-/stream-0.0.2.tgz#7f5363f057f6592c5595f00bc80a27f5cec1f0ef" + integrity sha1-f1Nj8Ff2WSxVlfALyAon9c7B8O8= + dependencies: + emitter-component "^1.1.1" + 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" @@ -8667,15 +8926,78 @@ sw-toolbox@^3.4.0: path-to-regexp "^1.0.1" serviceworker-cache-polyfill "^4.0.0" +swagger-client@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/swagger-client/-/swagger-client-3.9.0.tgz#b94ea65baa0194f4cb3fad2f8bd552c531d57e03" + integrity sha512-uyCq2xoaAtmE0oIQ0fCfnsDoy/v97ANnAZywtyk4yumBP74xXp4NFlpZaqZJHN9K9dbPzgs3MH98VocZeM0ExQ== + dependencies: + "@kyleshockey/js-yaml" "^1.0.1" + "@kyleshockey/object-assign-deep" "^0.4.0" + babel-runtime "^6.26.0" + btoa "1.1.2" + buffer "^5.1.0" + cookie "^0.3.1" + cross-fetch "0.0.8" + deep-extend "^0.5.1" + encode-3986 "^1.0.0" + fast-json-patch "^2.0.6" + isomorphic-form-data "0.0.1" + lodash "^4.16.2" + qs "^6.3.0" + querystring-browser "^1.0.4" + traverse "^0.6.6" + url "^0.11.0" + utf8-bytes "0.0.1" + utfstring "^2.0.0" + +swagger-ui@^3.20.1: + version "3.22.3" + resolved "https://registry.yarnpkg.com/swagger-ui/-/swagger-ui-3.22.3.tgz#e24f1573755a61216e0ec842c80ebef484bf38aa" + integrity sha512-JDyhQls7Zlhzwzkad58mmTvdYUqtJ7/7FM72w09vFmT/uNBLWM8JMk+9rs4v+nbN5/1hcWyHzAVvYr/91krsFg== + dependencies: + "@braintree/sanitize-url" "^2.0.2" + "@kyleshockey/js-yaml" "^1.0.1" + "@kyleshockey/object-assign-deep" "^0.4.2" + "@kyleshockey/xml" "^1.0.2" + base64-js "^1.2.0" + classnames "^2.2.5" + core-js "^2.5.1" + css.escape "1.5.1" + deep-extend "0.5.1" + dompurify "^1.0.4" + ieee754 "^1.1.8" + immutable "^3.x.x" + js-file-download "^0.4.1" + lodash "^4.17.11" + memoizee "^0.4.12" + prop-types "^15.5.10" + react "^15.6.2" + react-debounce-input "^3.2.0" + react-dom "^15.6.2" + react-immutable-proptypes "2.1.0" + react-immutable-pure-component "^1.1.1" + react-inspector "^2.3.0" + react-motion "^0.5.2" + react-redux "^4.x.x" + redux "^3.x.x" + redux-immutable "3.0.8" + remarkable "^1.7.1" + reselect "^2.5.4" + serialize-error "^2.1.0" + swagger-client "^3.9.0" + url-parse "^1.4.3" + xml-but-prettier "^1.0.1" + zenscroll "^4.0.2" + symbol-observable@^1.0.3, symbol-observable@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== symbol-tree@^3.2.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" - integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY= + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== table-resolver@^3.2.0: version "3.3.0" @@ -8777,6 +9099,14 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" +timers-ext@^0.1.5: + version "0.1.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + tiny-invariant@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.4.tgz#346b5415fd93cb696b0c4e8a96697ff590f92463" @@ -8865,6 +9195,11 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= +traverse@^0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -8876,9 +9211,9 @@ trim-right@^1.0.1: integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= tslib@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" - integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== + version "1.10.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== tty-browserify@0.0.0: version "0.0.0" @@ -8923,9 +9258,9 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= ua-parser-js@^0.7.18: - version "0.7.19" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.19.tgz#94151be4c0a7fb1d001af7022fdaca4642659e4b" - integrity sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ== + version "0.7.20" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098" + integrity sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw== uglify-js@3.4.x: version "3.4.10" @@ -8974,6 +9309,16 @@ uncontrollable@^5.0.0: dependencies: invariant "^2.2.4" +underscore.string@~2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.4.0.tgz#8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b" + integrity sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs= + +underscore@~1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" + integrity sha1-a7rwh3UA02vjTsqlhODbn+8DUgk= + union-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" @@ -9104,6 +9449,16 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== +utf8-bytes@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/utf8-bytes/-/utf8-bytes-0.0.1.tgz#116b025448c9b500081cdfbf1f4d6c6c37d8837d" + integrity sha1-EWsCVEjJtQAIHN+/H01sbDfYg30= + +utfstring@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/utfstring/-/utfstring-2.0.0.tgz#b331f7351e9be1c46334cc7518826cda3b44242a" + integrity sha512-/ugBfyvIoLe9xqkFHio3CxXnpUKQ1p2LfTxPr6QTRj6GiwpHo73YGdh03UmAzDQNOWpNIE0J5nLss00L4xlWgg== + util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -9323,11 +9678,12 @@ webpack@3.8.1: yargs "^8.0.2" websocket-driver@>=0.5.1: - version "0.7.0" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" - integrity sha1-DK+dLXVdk67gSdS90NP+LMoqJOs= + version "0.7.1" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.1.tgz#d58fa3269f51e480f5af051db7f5c5c1a1092d20" + integrity sha512-EC4YX5LEHtiB1XjaCh6++35jGaFmhT7687pySyCfPX9bB8Quw7+Fpx8gSCpkD78tPjalxuoOm8TtTz8K4dAQEg== dependencies: http-parser-js ">=0.4.0" + safe-buffer ">=5.1.1" websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: @@ -9464,6 +9820,13 @@ xdg-basedir@^3.0.0: resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= +xml-but-prettier@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/xml-but-prettier/-/xml-but-prettier-1.0.1.tgz#f5a33267ed42ccd4e355c62557a5e39b01fb40f3" + integrity sha1-9aMyZ+1CzNTjVcYlV6XjmwH7QPM= + dependencies: + repeat-string "^1.5.2" + xml-name-validator@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" @@ -9586,3 +9949,8 @@ yarn@^1.16.0: version "1.16.0" resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.16.0.tgz#5701b58ac555ff91f7b889b7d791b3dc86f8f999" integrity sha512-cfemyGlnWKA1zopUUgebTPf8C4WkPIZ+TJmklwcEAJ4u6oWPtJeAzrsamaGGh/+b1XWe8W51yzAImC4AWbWR1g== + +zenscroll@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/zenscroll/-/zenscroll-4.0.2.tgz#e8d5774d1c0738a47bcfa8729f3712e2deddeb25" + integrity sha1-6NV3TRwHOKR7z6hynzcS4t7d6yU=