Browse Source

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
tags/3.10.0
Tristan Cacqueray 1 year ago
parent
commit
85616c4c09

+ 1
- 0
doc/requirements.txt View File

@@ -3,5 +3,6 @@ sphinx>=1.6.1
3 3
 sphinxcontrib-blockdiag>=1.1.0
4 4
 sphinxcontrib-programoutput
5 5
 sphinx-autodoc-typehints
6
+sphinxcontrib-openapi>=0.4.0
6 7
 reno>=2.8.0 # Apache-2.0
7 8
 zuul-sphinx

+ 1
- 0
doc/source/conf.py View File

@@ -31,6 +31,7 @@ extensions = [
31 31
     'sphinx.ext.graphviz',
32 32
     'sphinxcontrib.blockdiag',
33 33
     'sphinxcontrib.programoutput',
34
+    'sphinxcontrib.openapi',
34 35
     'zuul_sphinx',
35 36
     'zuul.sphinx.ansible',
36 37
     'zuul.sphinx.zuul',

+ 1
- 0
doc/source/user/index.rst View File

@@ -16,6 +16,7 @@ configure it to meet your needs.
16 16
    config
17 17
    jobs
18 18
    encryption
19
+   web
19 20
    badges
20 21
    howtos
21 22
    vulnerabilities

+ 7
- 0
doc/source/user/web.rst View File

@@ -0,0 +1,7 @@
1
+:title: REST API
2
+
3
+Rest API
4
+========
5
+
6
+.. openapi:: ../../../web/public/openapi.yaml
7
+   :examples:

+ 1
- 0
test-requirements.txt View File

@@ -1,4 +1,5 @@
1 1
 flake8
2
+openapi-spec-validator
2 3
 
3 4
 coverage>=3.6
4 5
 fixtures>=0.3.14

+ 1
- 0
tox.ini View File

@@ -54,6 +54,7 @@ install_command = pip install {opts} {packages}
54 54
 commands =
55 55
   flake8 {posargs}
56 56
   mypy --ignore-missing-imports zuul
57
+  openapi-spec-validator web/public/openapi.yaml
57 58
 
58 59
 [testenv:cover]
59 60
 setenv =

+ 2
- 0
web/package.json View File

@@ -9,6 +9,7 @@
9 9
   "dependencies": {
10 10
     "axios": "^0.19.0",
11 11
     "immutability-helper": "^2.8.1",
12
+    "js-yaml": "^3.13.0",
12 13
     "lodash": "^4.17.10",
13 14
     "moment": "^2.22.2",
14 15
     "patternfly-react": "^2.13.1",
@@ -24,6 +25,7 @@
24 25
     "redux": "<4.0.0",
25 26
     "redux-thunk": "^2.3.0",
26 27
     "sockette": "^2.0.0",
28
+    "swagger-ui": "^3.20.1",
27 29
     "xterm": "<3.14.0"
28 30
   },
29 31
   "devDependencies": {

+ 439
- 0
web/public/openapi.yaml View File

@@ -0,0 +1,439 @@
1
+info:
2
+  title: Zuul REST API
3
+  version: v1
4
+  description: Incomplete (work in progress) list of the endpoints.
5
+openapi: 3.0.0
6
+tags:
7
+- name: tenant
8
+paths:
9
+  /api/tenant/{tenant}/builds:
10
+    get:
11
+      operationId: list-builds
12
+      parameters:
13
+      - description: The tenant name
14
+        in: path
15
+        name: tenant
16
+        required: true
17
+        schema:
18
+          type: string
19
+      - description: A project name
20
+        in: query
21
+        name: project
22
+        schema:
23
+          type: string
24
+      - description: A pipeline name
25
+        in: query
26
+        name: pipeline
27
+        schema:
28
+          type: string
29
+      - description: A job name
30
+        in: query
31
+        name: job_name
32
+        schema:
33
+          type: string
34
+      - description: A branch name
35
+        in: query
36
+        name: branch
37
+        schema:
38
+          type: string
39
+      - description: A change number
40
+        in: query
41
+        name: change
42
+        schema:
43
+          type: string
44
+      - description: A patchset number
45
+        in: query
46
+        name: patchset
47
+        schema:
48
+          type: string
49
+      - description: A ref
50
+        in: query
51
+        name: ref
52
+        schema:
53
+          type: string
54
+      - description: A new revision hash
55
+        in: query
56
+        name: newrev
57
+        schema:
58
+          type: string
59
+      - description: A build uuid
60
+        in: query
61
+        name: uuid
62
+        schema:
63
+          type: string
64
+      - description: A build voting status
65
+        in: query
66
+        name: voting
67
+        schema:
68
+          type: string
69
+      - description: A build result
70
+        in: query
71
+        name: result
72
+        schema:
73
+          type: string
74
+      - description: The limit count (default 50)
75
+        in: query
76
+        name: limit
77
+        schema:
78
+          type: string
79
+      - description: Skip number of results
80
+        in: query
81
+        name: skip
82
+        schema:
83
+          type: string
84
+      responses:
85
+        '200':
86
+          content:
87
+            application/json:
88
+              schema:
89
+                description: The list of builds
90
+                items:
91
+                  $ref: '#/components/schemas/build'
92
+                type: array
93
+          description: Returns the list of builds
94
+        '404':
95
+          description: Tenant not found
96
+      summary: List the executed builds
97
+      tags:
98
+      - tenant
99
+  /api/tenant/{tenant}/jobs:
100
+    get:
101
+      operationId: list-jobs
102
+      parameters:
103
+      - description: The tenant name
104
+        in: path
105
+        name: tenant
106
+        required: true
107
+        schema:
108
+          type: string
109
+      responses:
110
+        '200':
111
+          content:
112
+            application/json:
113
+              schema:
114
+                description: The list of jobs
115
+                items:
116
+                  description: A job
117
+                  properties:
118
+                    description:
119
+                      description: The job short description
120
+                      type: string
121
+                    name:
122
+                      description: The job name
123
+                      type: string
124
+                  type: object
125
+                type: array
126
+          description: Returns the list of jobs
127
+        '404':
128
+          description: Tenant not found
129
+      summary: List available jobs
130
+      tags:
131
+      - tenant
132
+  /api/tenant/{tenant}/key/{project}.pub:
133
+    get:
134
+      operationId: get-project-key
135
+      parameters:
136
+      - description: The tenant name
137
+        in: path
138
+        name: tenant
139
+        required: true
140
+        schema:
141
+          type: string
142
+      - description: The project name
143
+        in: path
144
+        name: project
145
+        required: true
146
+        schema:
147
+          type: string
148
+      responses:
149
+        '200':
150
+          content:
151
+            text/plain:
152
+              example: '-----BEGIN PUBLIC KEY-----
153
+
154
+                MIICI...
155
+
156
+                -----END PUBLIC KEY-----
157
+
158
+                '
159
+              schema:
160
+                description: The project public key
161
+                type: string
162
+          description: Returns the project public key
163
+        '404':
164
+          description: Tenant or Project not found
165
+      summary: Get a project public key
166
+      tags:
167
+      - tenant
168
+  /api/tenant/{tenant}/status:
169
+    get:
170
+      operationId: get-status
171
+      parameters:
172
+      - description: The tenant name
173
+        in: path
174
+        name: tenant
175
+        required: true
176
+        schema:
177
+          type: string
178
+      responses:
179
+        '200':
180
+          content:
181
+            application/json:
182
+              schema:
183
+                description: The tenant status
184
+                properties:
185
+                  last_reconfigured:
186
+                    description: The Epoch timestamp of the last reconfiguration
187
+                    type: integer
188
+                  pipelines:
189
+                    description: The list of pipelines
190
+                    items:
191
+                      $ref: '#/components/schemas/pipelineStatus'
192
+                    type: array
193
+                  result_event_queue:
194
+                    description: The number of completed events
195
+                    type: integer
196
+                  trigger_event_queue:
197
+                    description: The number of running events
198
+                    type: integer
199
+                  zuul_version:
200
+                    description: The Zuul version
201
+                    type: string
202
+                type: object
203
+          description: Returns the list of tenants
204
+        '404':
205
+          description: Tenant not found
206
+      summary: Get tenant status
207
+      tags:
208
+      - tenant
209
+  /api/tenants:
210
+    get:
211
+      operationId: list-tenants
212
+      responses:
213
+        '200':
214
+          content:
215
+            application/json:
216
+              schema:
217
+                items:
218
+                  properties:
219
+                    name:
220
+                      description: Tenant name
221
+                      type: string
222
+                    projects:
223
+                      description: Tenant project count
224
+                      type: integer
225
+                    queue:
226
+                      description: Active changes count
227
+                      type: integer
228
+                  type: object
229
+                type: array
230
+          description: Returns the list of tenants
231
+      summary: List the tenants
232
+      tags:
233
+      - tenant
234
+components:
235
+  schemas:
236
+    build:
237
+      description: A build
238
+      properties:
239
+        branch:
240
+          description: The build change branch
241
+          type: string
242
+        change:
243
+          description: The build change number
244
+          type: integer
245
+        duration:
246
+          description: The build duration in second
247
+          type: integer
248
+        end_time:
249
+          description: The build end time ISO 8601 format
250
+          type: string
251
+        job_name:
252
+          description: The build job name
253
+          type: string
254
+        log_url:
255
+          description: The build logs url
256
+          type: string
257
+        newrev:
258
+          description: The build newrev
259
+          type: string
260
+        patchset:
261
+          description: The build patchset number
262
+          type: integer
263
+        pipeline:
264
+          description: The build pipeline
265
+          type: string
266
+        project:
267
+          description: The build project name
268
+          type: string
269
+        ref:
270
+          description: The build change reference
271
+          type: string
272
+        ref_url:
273
+          description: The build change reference url
274
+          type: string
275
+        result:
276
+          description: The build result
277
+          type: string
278
+        start_time:
279
+          description: The build start time ISO 8601 format
280
+          type: string
281
+        uuid:
282
+          description: The build uuid
283
+          type: string
284
+        voting:
285
+          description: The build voting status
286
+          type: boolean
287
+      type: object
288
+    changeQueue:
289
+      description: A change queue
290
+      properties:
291
+        heads:
292
+          description: The list of queue events
293
+          items:
294
+            items:
295
+              $ref: '#/components/schemas/eventQueue'
296
+            type: array
297
+          type: array
298
+        name:
299
+          description: The queue name
300
+          type: string
301
+        window:
302
+          description: The queue window
303
+          type: integer
304
+      type: object
305
+    eventQueue:
306
+      description: A queue event
307
+      properties:
308
+        active:
309
+          description: Is the event active
310
+          type: boolean
311
+        enqueue_time:
312
+          description: The epoch creation time
313
+          type: integer
314
+        failing_reasons:
315
+          description: The list of failing reasons
316
+          items:
317
+            type: string
318
+          type: array
319
+        id:
320
+          description: The event id
321
+          type: string
322
+        item_ahead:
323
+          description: The list of events ahead
324
+          items:
325
+            type: string
326
+          type: array
327
+        item_behind:
328
+          description: The list of events behind
329
+          items:
330
+            type: string
331
+          type: array
332
+        jobs:
333
+          description: The event list of jobs
334
+          items:
335
+            $ref: '#/components/schemas/statusJob'
336
+          type: array
337
+        live:
338
+          description: Is the event live
339
+          type: boolean
340
+        owner:
341
+          description: The event owner
342
+          type: string
343
+        project:
344
+          description: The event project
345
+          type: string
346
+        remaining_time:
347
+          description: The estimated remaining time
348
+          type: integer
349
+        url:
350
+          description: The event url
351
+          type: string
352
+        zuul_ref:
353
+          description: The zuul ref
354
+          type: string
355
+      type: object
356
+    pipelineStatus:
357
+      description: A pipeline
358
+      properties:
359
+        change_queues:
360
+          description: The pipeline list of change queues
361
+          items:
362
+            $ref: '#/components/schemas/changeQueue'
363
+          type: array
364
+        description:
365
+          description: The pipeline description
366
+          type: string
367
+        name:
368
+          description: The pipeline name
369
+          type: string
370
+      type: object
371
+    statusJob:
372
+      description: A job status
373
+      properties:
374
+        canceled:
375
+          description: Is the job canceled
376
+          type: boolean
377
+        elapsed_time:
378
+          description: The elapsed time
379
+          type: integer
380
+        launch_time:
381
+          description: The epoch launch time
382
+          type: integer
383
+        name:
384
+          description: The job name
385
+          type: string
386
+        number:
387
+          description: The job number
388
+          type: integer
389
+        pipeline:
390
+          description: The job pipeline
391
+          type: string
392
+        remaining_time:
393
+          description: The estimated remaining time
394
+          type: integer
395
+        result:
396
+          description: The job result
397
+          type: string
398
+        retry:
399
+          description: The retry count
400
+          type: integer
401
+        start_time:
402
+          description: The epoch start time
403
+          type: integer
404
+        url:
405
+          description: The job stream url
406
+          type: string
407
+        uuid:
408
+          description: The job uuid
409
+          type: string
410
+        voting:
411
+          description: Is the job voting
412
+          type: boolean
413
+        worker:
414
+          $ref: '#/components/schemas/statusWorker'
415
+      type: object
416
+    statusWorker:
417
+      description: A job worker node
418
+      properties:
419
+        fqdn:
420
+          description: The worker fully qualified domain name
421
+          type: string
422
+        hostname:
423
+          description: The worker hostname
424
+          type: string
425
+        ips:
426
+          description: The list of worker ip addresses
427
+          items:
428
+            type: string
429
+          type: array
430
+        name:
431
+          description: The worker name
432
+          type: string
433
+        program:
434
+          description: The worker program
435
+          type: string
436
+        version:
437
+          description: The worker version
438
+          type: string
439
+      type: object

+ 6
- 1
web/src/App.jsx View File

@@ -106,7 +106,9 @@ class App extends React.Component {
106 106
         allRoutes.push(
107 107
           <Route
108 108
             key={index}
109
-            path={item.globalRoute ? item.to : tenant.routePrefix + item.to}
109
+            path={
110
+              item.globalRoute ? item.to :
111
+                item.noTenantPrefix ? item.to : tenant.routePrefix + item.to}
110 112
             component={item.component}
111 113
             exact
112 114
             />
@@ -255,6 +257,9 @@ class App extends React.Component {
255 257
                     this.setState({showErrors: !this.state.showErrors})}}
256 258
                   />
257 259
               }
260
+              <li>
261
+                <Link to='/openapi'>API</Link>
262
+              </li>
258 263
               <li>
259 264
                 <a href='https://zuul-ci.org/docs'
260 265
                    rel='noopener noreferrer' target='_blank'>

+ 82
- 0
web/src/actions/openapi.js View File

@@ -0,0 +1,82 @@
1
+// Copyright 2018 Red Hat, Inc
2
+//
3
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
4
+// not use this file except in compliance with the License. You may obtain
5
+// a copy of the License at
6
+//
7
+//      http://www.apache.org/licenses/LICENSE-2.0
8
+//
9
+// Unless required by applicable law or agreed to in writing, software
10
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12
+// License for the specific language governing permissions and limitations
13
+// under the License.
14
+
15
+import * as API from '../api'
16
+import yaml from 'js-yaml'
17
+
18
+export const OPENAPI_FETCH_REQUEST = 'OPENAPI_FETCH_REQUEST'
19
+export const OPENAPI_FETCH_SUCCESS = 'OPENAPI_FETCH_SUCCESS'
20
+export const OPENAPI_FETCH_FAIL    = 'OPENAPI_FETCH_FAIL'
21
+
22
+export const fetchOpenApiRequest = () => ({
23
+  type: OPENAPI_FETCH_REQUEST
24
+})
25
+
26
+export const fetchOpenApiSuccess = (yaml_data, whiteLabel) => {
27
+  const data = yaml.safeLoad(yaml_data)
28
+  if (whiteLabel) {
29
+    const paths = {}
30
+    for (let path in data.paths) {
31
+      // Remove tenant list api
32
+      if (path === '/api/tenants') {
33
+        continue
34
+      }
35
+      // Remove tenant in path parameter
36
+      data.paths[path].get.parameters.splice(0, 1)
37
+      paths[path.replace('/api/tenant/{tenant}/', '/api/')] = data.paths[path]
38
+    }
39
+    data.paths = paths
40
+  }
41
+  data.servers = [{
42
+    // Trim the trailing '/api/'
43
+    url: API.apiUrl.substr(0, API.apiUrl.length - 5),
44
+    description: 'Production server',
45
+  }]
46
+  return {
47
+    type: OPENAPI_FETCH_SUCCESS,
48
+    openapi: data,
49
+  }
50
+}
51
+
52
+const fetchOpenApiFail = error => ({
53
+  type: OPENAPI_FETCH_FAIL,
54
+  error
55
+})
56
+
57
+const fetchOpenApi = (whiteLabel) => dispatch => {
58
+  dispatch(fetchOpenApiRequest())
59
+  return API.fetchOpenApi()
60
+    .then(response => dispatch(fetchOpenApiSuccess(response.data, whiteLabel)))
61
+    .catch(error => {
62
+      dispatch(fetchOpenApiFail(error))
63
+      setTimeout(() => {dispatch(fetchOpenApi())}, 5000)
64
+    })
65
+}
66
+
67
+const shouldFetchOpenApi = openapi => {
68
+  if (!openapi.openapi) {
69
+    return true
70
+  }
71
+  if (openapi.isFetching) {
72
+    return false
73
+  }
74
+  return true
75
+}
76
+
77
+export const fetchOpenApiIfNeeded = (force) => (dispatch, getState) => {
78
+  const state = getState()
79
+  if (force || shouldFetchOpenApi(state.openapi)) {
80
+    return dispatch(fetchOpenApi(state.tenant.whiteLabel))
81
+  }
82
+}

+ 5
- 0
web/src/api.js View File

@@ -106,6 +106,9 @@ function getStreamUrl (apiPrefix) {
106 106
 function fetchInfo () {
107 107
   return Axios.get(apiUrl + 'info')
108 108
 }
109
+function fetchOpenApi () {
110
+  return Axios.get(getHomepageUrl () + 'openapi.yaml')
111
+}
109 112
 function fetchTenants () {
110 113
   return Axios.get(apiUrl + 'tenants')
111 114
 }
@@ -155,6 +158,7 @@ function fetchNodes (apiPrefix) {
155 158
 }
156 159
 
157 160
 export {
161
+  apiUrl,
158 162
   getHomepageUrl,
159 163
   getStreamUrl,
160 164
   fetchChangeStatus,
@@ -169,6 +173,7 @@ export {
169 173
   fetchJobs,
170 174
   fetchLabels,
171 175
   fetchNodes,
176
+  fetchOpenApi,
172 177
   fetchTenants,
173 178
   fetchInfo
174 179
 }

+ 9
- 0
web/src/index.css View File

@@ -121,3 +121,12 @@ a.refresh {
121 121
 div.tree-view-container ul.list-group {
122 122
   margin: 0px 0px;
123 123
 }
124
+
125
+/* OpenAPI page */
126
+pre.version {
127
+    background-color: lightgrey;
128
+    color: black;
129
+}
130
+.swagger-ui .servers {
131
+    padding-top: 5px
132
+}

+ 67
- 0
web/src/pages/OpenApi.jsx View File

@@ -0,0 +1,67 @@
1
+// Copyright 2018 Red Hat, Inc
2
+//
3
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
4
+// not use this file except in compliance with the License. You may obtain
5
+// a copy of the License at
6
+//
7
+//      http://www.apache.org/licenses/LICENSE-2.0
8
+//
9
+// Unless required by applicable law or agreed to in writing, software
10
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12
+// License for the specific language governing permissions and limitations
13
+// under the License.
14
+
15
+import * as React from 'react'
16
+import PropTypes from 'prop-types'
17
+import { connect } from 'react-redux'
18
+import SwaggerUi from 'swagger-ui'
19
+import 'swagger-ui/dist/swagger-ui.css'
20
+
21
+import { fetchOpenApiIfNeeded } from '../actions/openapi'
22
+import Refreshable from '../containers/Refreshable'
23
+
24
+
25
+class OpenApiPage extends Refreshable {
26
+  static propTypes = {
27
+    tenant: PropTypes.object,
28
+    remoteData: PropTypes.object,
29
+    dispatch: PropTypes.func
30
+  }
31
+
32
+  updateData = (force) => {
33
+    this.props.dispatch(fetchOpenApiIfNeeded(force))
34
+  }
35
+
36
+  componentDidMount () {
37
+    document.title = 'Zuul API'
38
+    this.updateData()
39
+  }
40
+
41
+  componentDidUpdate (prevProps) {
42
+    if (this.props.remoteData.openapi &&
43
+        this.props.remoteData.openapi !== prevProps.remoteData.openapi) {
44
+      SwaggerUi({
45
+        dom_id: '#swaggerContainer',
46
+        spec: this.props.remoteData.openapi,
47
+        presets: [SwaggerUi.presets.apis]
48
+      })
49
+    }
50
+  }
51
+
52
+  render() {
53
+    return (
54
+      <React.Fragment>
55
+        <div className="pull-right" style={{display: 'flex'}}>
56
+          {this.renderSpinner()}
57
+        </div>
58
+        <div id="swaggerContainer" />
59
+      </React.Fragment>
60
+    )
61
+  }
62
+}
63
+
64
+export default connect(state => ({
65
+  tenant: state.tenant,
66
+  remoteData: state.openapi,
67
+}))(OpenApiPage)

+ 2
- 0
web/src/reducers/index.js View File

@@ -28,6 +28,7 @@ import projects from './projects'
28 28
 import status from './status'
29 29
 import tenant from './tenant'
30 30
 import tenants from './tenants'
31
+import openapi from './openapi'
31 32
 
32 33
 const reducers = {
33 34
   change,
@@ -44,6 +45,7 @@ const reducers = {
44 45
   status,
45 46
   tenant,
46 47
   tenants,
48
+  openapi,
47 49
 }
48 50
 
49 51
 export default combineReducers(reducers)

+ 40
- 0
web/src/reducers/openapi.js View File

@@ -0,0 +1,40 @@
1
+// Copyright 2018 Red Hat, Inc
2
+//
3
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
4
+// not use this file except in compliance with the License. You may obtain
5
+// a copy of the License at
6
+//
7
+//      http://www.apache.org/licenses/LICENSE-2.0
8
+//
9
+// Unless required by applicable law or agreed to in writing, software
10
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12
+// License for the specific language governing permissions and limitations
13
+// under the License.
14
+
15
+import {
16
+  OPENAPI_FETCH_REQUEST,
17
+  OPENAPI_FETCH_SUCCESS,
18
+  OPENAPI_FETCH_FAIL,
19
+} from '../actions/openapi'
20
+
21
+export default (state = {
22
+  isFetching: false,
23
+  openapi: null,
24
+}, action) => {
25
+  switch (action.type) {
26
+    case OPENAPI_FETCH_REQUEST:
27
+    case OPENAPI_FETCH_FAIL:
28
+      return {
29
+        isFetching: true,
30
+        tenant: state.openapi,
31
+      }
32
+    case OPENAPI_FETCH_SUCCESS:
33
+      return {
34
+        isFetching: false,
35
+        openapi: action.openapi,
36
+      }
37
+    default:
38
+      return state
39
+  }
40
+}

+ 6
- 0
web/src/routes.js View File

@@ -26,6 +26,7 @@ import BuildsetsPage from './pages/Buildsets'
26 26
 import ConfigErrorsPage from './pages/ConfigErrors'
27 27
 import TenantsPage from './pages/Tenants'
28 28
 import StreamPage from './pages/Stream'
29
+import OpenApiPage from './pages/OpenApi'
29 30
 
30 31
 // The Route object are created in the App component.
31 32
 // Object with a title are created in the menu.
@@ -95,6 +96,11 @@ const routes = () => [
95 96
     to: '/tenants',
96 97
     component: TenantsPage,
97 98
     globalRoute: true
99
+  },
100
+  {
101
+    to: '/openapi',
102
+    component: OpenApiPage,
103
+    noTenantPrefix: true,
98 104
   }
99 105
 ]
100 106
 

+ 419
- 51
web/yarn.lock View File

@@ -33,6 +33,30 @@
33 33
   dependencies:
34 34
     regenerator-runtime "^0.13.2"
35 35
 
36
+"@braintree/sanitize-url@^2.0.2":
37
+  version "2.1.0"
38
+  resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-2.1.0.tgz#549a9d1f923c9bc7953a585d3e9aa9429be8fe28"
39
+  integrity sha1-VJqdH5I8m8eVOlhdPpqpQpvo/ig=
40
+
41
+"@kyleshockey/js-yaml@^1.0.1":
42
+  version "1.0.1"
43
+  resolved "https://registry.yarnpkg.com/@kyleshockey/js-yaml/-/js-yaml-1.0.1.tgz#5c036bb67caee77fa887738e695dc02949889bfd"
44
+  integrity sha512-coFyIk1LvTscq1cUU4nCCfYwv+cmG4fCP+wgDKgYZjhM4f++YwZy+g0k+1tUqa4GuUpBTEOGH2KUqKFFWdT73g==
45
+  dependencies:
46
+    argparse "^1.0.7"
47
+
48
+"@kyleshockey/object-assign-deep@^0.4.0", "@kyleshockey/object-assign-deep@^0.4.2":
49
+  version "0.4.2"
50
+  resolved "https://registry.yarnpkg.com/@kyleshockey/object-assign-deep/-/object-assign-deep-0.4.2.tgz#84900f0eefc372798f4751b5262830b8208922ec"
51
+  integrity sha1-hJAPDu/DcnmPR1G1JigwuCCJIuw=
52
+
53
+"@kyleshockey/xml@^1.0.2":
54
+  version "1.0.2"
55
+  resolved "https://registry.yarnpkg.com/@kyleshockey/xml/-/xml-1.0.2.tgz#81fad3d7c33da2ba2639db095db3db24c2921f70"
56
+  integrity sha512-iMo32MPLcI9cPxs3YL5kmKxKgDmkSZDCFEqIT5eRk7d/Ll8r4X3SwGYSigzALd6+RHWlFEmjL1QyaQ15xDZFlw==
57
+  dependencies:
58
+    stream "^0.0.2"
59
+
36 60
 "@types/c3@^0.6.0":
37 61
   version "0.6.4"
38 62
   resolved "https://registry.yarnpkg.com/@types/c3/-/c3-0.6.4.tgz#449830da0e1a2fc4feceb87f97de7ee5965e183b"
@@ -252,6 +276,13 @@
252 276
   resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.7.tgz#c8fa532b60a0042219cdf173ca21a975ef0666ad"
253 277
   integrity sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==
254 278
 
279
+"@types/react@16.4.6":
280
+  version "16.4.6"
281
+  resolved "https://registry.yarnpkg.com/@types/react/-/react-16.4.6.tgz#5024957c6bcef4f02823accf5974faba2e54fada"
282
+  integrity sha512-9LDZdhsuKSc+DjY65SjBkA958oBWcTWSVWAd2cD9XqKBjhGw1KzAkRhWRw2eIsXvaIE/TOTjjKMFVC+JA1iU4g==
283
+  dependencies:
284
+    csstype "^2.2.0"
285
+
255 286
 abab@^1.0.3:
256 287
   version "1.0.4"
257 288
   resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e"
@@ -462,6 +493,14 @@ argparse@^1.0.7:
462 493
   dependencies:
463 494
     sprintf-js "~1.0.2"
464 495
 
496
+argparse@~0.1.15:
497
+  version "0.1.16"
498
+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-0.1.16.tgz#cfd01e0fbba3d6caed049fbd758d40f65196f57c"
499
+  integrity sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=
500
+  dependencies:
501
+    underscore "~1.7.0"
502
+    underscore.string "~2.4.0"
503
+
465 504
 aria-query@^0.7.0:
466 505
   version "0.7.1"
467 506
   resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.1.tgz#26cbb5aff64144b0a825be1846e0b16cfa00b11e"
@@ -621,7 +660,7 @@ async@^1.5.2:
621 660
   resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
622 661
   integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
623 662
 
624
-async@^2.1.2, async@^2.1.4, async@^2.4.1:
663
+async@^2.0.1, async@^2.1.2, async@^2.1.4, async@^2.4.1:
625 664
   version "2.6.2"
626 665
   resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381"
627 666
   integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==
@@ -638,6 +677,11 @@ atob@^2.1.1:
638 677
   resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
639 678
   integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
640 679
 
680
+autolinker@~0.15.0:
681
+  version "0.15.3"
682
+  resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.15.3.tgz#342417d8f2f3461b14cf09088d5edf8791dc9832"
683
+  integrity sha1-NCQX2PLzRhsUzwkIjV7fh5HcmDI=
684
+
641 685
 autoprefixer@7.1.6:
642 686
   version "7.1.6"
643 687
   resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.1.6.tgz#fb933039f74af74a83e71225ce78d9fd58ba84d7"
@@ -1441,7 +1485,7 @@ base16@^1.0.0:
1441 1485
   resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70"
1442 1486
   integrity sha1-4pf2DX7BAUp6lxo568ipjAtoHnA=
1443 1487
 
1444
-base64-js@^1.0.2:
1488
+base64-js@^1.0.2, base64-js@^1.2.0:
1445 1489
   version "1.3.0"
1446 1490
   resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3"
1447 1491
   integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==
@@ -1725,6 +1769,11 @@ bser@^2.0.0:
1725 1769
   dependencies:
1726 1770
     node-int64 "^0.4.0"
1727 1771
 
1772
+btoa@1.1.2:
1773
+  version "1.1.2"
1774
+  resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.1.2.tgz#3e40b81663f81d2dd6596a4cb714a8dc16cfabe0"
1775
+  integrity sha1-PkC4FmP4HS3WWWpMtxSo3BbPq+A=
1776
+
1728 1777
 buffer-from@^1.0.0:
1729 1778
   version "1.1.1"
1730 1779
   resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
@@ -1749,6 +1798,14 @@ buffer@^4.3.0:
1749 1798
     ieee754 "^1.1.4"
1750 1799
     isarray "^1.0.0"
1751 1800
 
1801
+buffer@^5.1.0:
1802
+  version "5.2.1"
1803
+  resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6"
1804
+  integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==
1805
+  dependencies:
1806
+    base64-js "^1.0.2"
1807
+    ieee754 "^1.1.4"
1808
+
1752 1809
 builtin-modules@^1.0.0, builtin-modules@^1.1.1:
1753 1810
   version "1.1.1"
1754 1811
   resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
@@ -2126,7 +2183,7 @@ colors@~1.1.2:
2126 2183
   resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
2127 2184
   integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM=
2128 2185
 
2129
-combined-stream@^1.0.6, combined-stream@~1.0.6:
2186
+combined-stream@^1.0.5, combined-stream@^1.0.6, combined-stream@~1.0.6:
2130 2187
   version "1.0.8"
2131 2188
   resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
2132 2189
   integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
@@ -2266,6 +2323,11 @@ cookie@0.4.0:
2266 2323
   resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
2267 2324
   integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
2268 2325
 
2326
+cookie@^0.3.1:
2327
+  version "0.3.1"
2328
+  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
2329
+  integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=
2330
+
2269 2331
 copy-descriptor@^0.1.0:
2270 2332
   version "0.1.1"
2271 2333
   resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
@@ -2276,7 +2338,7 @@ core-js@^1.0.0:
2276 2338
   resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
2277 2339
   integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=
2278 2340
 
2279
-core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5:
2341
+core-js@^2.4.0, core-js@^2.5.0, core-js@^2.5.1, core-js@^2.6.5:
2280 2342
   version "2.6.9"
2281 2343
   resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2"
2282 2344
   integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==
@@ -2337,6 +2399,15 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
2337 2399
     safe-buffer "^5.0.1"
2338 2400
     sha.js "^2.4.8"
2339 2401
 
2402
+create-react-class@^15.5.1, create-react-class@^15.6.0:
2403
+  version "15.6.3"
2404
+  resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036"
2405
+  integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==
2406
+  dependencies:
2407
+    fbjs "^0.8.9"
2408
+    loose-envify "^1.3.1"
2409
+    object-assign "^4.1.1"
2410
+
2340 2411
 create-react-context@<=0.2.2:
2341 2412
   version "0.2.2"
2342 2413
   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:
2353 2424
     fbjs "^0.8.0"
2354 2425
     gud "^1.0.0"
2355 2426
 
2427
+cross-fetch@0.0.8:
2428
+  version "0.0.8"
2429
+  resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-0.0.8.tgz#01ed94dc407df2c00f1807fde700a7cfa48a205c"
2430
+  integrity sha1-Ae2U3EB98sAPGAf95wCnz6SKIFw=
2431
+  dependencies:
2432
+    node-fetch "1.7.3"
2433
+    whatwg-fetch "2.0.3"
2434
+
2356 2435
 cross-spawn@5.1.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0:
2357 2436
   version "5.1.0"
2358 2437
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
@@ -2449,6 +2528,11 @@ css-what@2.1:
2449 2528
   resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
2450 2529
   integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==
2451 2530
 
2531
+css.escape@1.5.1:
2532
+  version "1.5.1"
2533
+  resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb"
2534
+  integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=
2535
+
2452 2536
 cssesc@^0.1.0:
2453 2537
   version "0.1.0"
2454 2538
   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":
2512 2596
   dependencies:
2513 2597
     cssom "0.3.x"
2514 2598
 
2599
+csstype@^2.2.0:
2600
+  version "2.6.5"
2601
+  resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.5.tgz#1cd1dff742ebf4d7c991470ae71e12bb6751e034"
2602
+  integrity sha512-JsTaiksRsel5n7XwqPAfB0l3TFKdpjW/kgAELf9vrb5adGA7UCPLajKK5s3nFrcFm3Rkyp/Qkgl73ENc1UY3cA==
2603
+
2515 2604
 currently-unhandled@^0.4.1:
2516 2605
   version "0.4.1"
2517 2606
   resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
@@ -2631,6 +2720,11 @@ deep-equal@^1.0.1:
2631 2720
   resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
2632 2721
   integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
2633 2722
 
2723
+deep-extend@0.5.1, deep-extend@^0.5.1:
2724
+  version "0.5.1"
2725
+  resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f"
2726
+  integrity sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==
2727
+
2634 2728
 deep-extend@^0.6.0:
2635 2729
   version "0.6.0"
2636 2730
   resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
@@ -2862,6 +2956,11 @@ domhandler@^2.3.0:
2862 2956
   dependencies:
2863 2957
     domelementtype "1"
2864 2958
 
2959
+dompurify@^1.0.4:
2960
+  version "1.0.10"
2961
+  resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-1.0.10.tgz#18d7353631c86ee25049e38fbca8c6b2c5a2af87"
2962
+  integrity sha512-huhl3DSWX5LaA7jDtnj3XQdJgWW1wYouNW7N0drGzQa4vEUSVWyeFN+Atx6HP4r5cang6oQytMom6I4yhGJj5g==
2963
+
2865 2964
 domutils@1.5.1:
2866 2965
   version "1.5.1"
2867 2966
   resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
@@ -2926,9 +3025,9 @@ ee-first@1.1.1:
2926 3025
   integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
2927 3026
 
2928 3027
 electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30:
2929
-  version "1.3.148"
2930
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.148.tgz#5796c0d9eb0358d397163413b90bf376c5d8bf08"
2931
-  integrity sha512-nuCOlXNlGMQmdzihIPGm2K3Yf3H1hke/1rK381i02pH8wNliJU9hVNnOi/xjmxt+mjABd/BzufP5nPHWKshLWA==
3028
+  version "1.3.158"
3029
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.158.tgz#5e16909dcfd25ab7cd1665114ee381083a3ee858"
3030
+  integrity sha512-wJsJaWsViNQ129XPGmyO5gGs1jPMHr9vffjHAhUje1xZbEzQcqbENdvfyRD9q8UF0TgFQFCCUbaIpJarFbvsIg==
2932 3031
 
2933 3032
 elliptic@^6.0.0:
2934 3033
   version "6.4.1"
@@ -2943,6 +3042,11 @@ elliptic@^6.0.0:
2943 3042
     minimalistic-assert "^1.0.0"
2944 3043
     minimalistic-crypto-utils "^1.0.0"
2945 3044
 
3045
+emitter-component@^1.1.1:
3046
+  version "1.1.1"
3047
+  resolved "https://registry.yarnpkg.com/emitter-component/-/emitter-component-1.1.1.tgz#065e2dbed6959bf470679edabeaf7981d1003ab6"
3048
+  integrity sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY=
3049
+
2946 3050
 emoji-regex@^6.1.0:
2947 3051
   version "6.5.1"
2948 3052
   resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2"
@@ -2958,6 +3062,11 @@ emojis-list@^2.0.0:
2958 3062
   resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
2959 3063
   integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
2960 3064
 
3065
+encode-3986@^1.0.0:
3066
+  version "1.0.0"
3067
+  resolved "https://registry.yarnpkg.com/encode-3986/-/encode-3986-1.0.0.tgz#940d51498f8741ade184b75ad1439b317c0c7a60"
3068
+  integrity sha1-lA1RSY+HQa3hhLda0UObMXwMemA=
3069
+
2961 3070
 encodeurl@~1.0.2:
2962 3071
   version "1.0.2"
2963 3072
   resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
@@ -3030,7 +3139,7 @@ es-to-primitive@^1.2.0:
3030 3139
     is-date-object "^1.0.1"
3031 3140
     is-symbol "^1.0.2"
3032 3141
 
3033
-es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14:
3142
+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:
3034 3143
   version "0.10.50"
3035 3144
   resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.50.tgz#6d0e23a0abdb27018e5ac4fd09b412bc5517a778"
3036 3145
   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:
3039 3148
     es6-symbol "~3.1.1"
3040 3149
     next-tick "^1.0.0"
3041 3150
 
3042
-es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
3151
+es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
3043 3152
   version "2.0.3"
3044 3153
   resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
3045 3154
   integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c=
@@ -3084,14 +3193,14 @@ es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1:
3084 3193
     d "1"
3085 3194
     es5-ext "~0.10.14"
3086 3195
 
3087
-es6-weak-map@^2.0.1:
3088
-  version "2.0.2"
3089
-  resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
3090
-  integrity sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=
3196
+es6-weak-map@^2.0.1, es6-weak-map@^2.0.2:
3197
+  version "2.0.3"
3198
+  resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53"
3199
+  integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==
3091 3200
   dependencies:
3092 3201
     d "1"
3093
-    es5-ext "^0.10.14"
3094
-    es6-iterator "^2.0.1"
3202
+    es5-ext "^0.10.46"
3203
+    es6-iterator "^2.0.3"
3095 3204
     es6-symbol "^3.1.1"
3096 3205
 
3097 3206
 escape-html@~1.0.3:
@@ -3399,7 +3508,7 @@ etag@~1.8.1:
3399 3508
   resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
3400 3509
   integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
3401 3510
 
3402
-event-emitter@~0.3.5:
3511
+event-emitter@^0.3.5, event-emitter@~0.3.5:
3403 3512
   version "0.3.5"
3404 3513
   resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
3405 3514
   integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=
@@ -3611,6 +3720,13 @@ fast-deep-equal@^2.0.1:
3611 3720
   resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
3612 3721
   integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
3613 3722
 
3723
+fast-json-patch@^2.0.6:
3724
+  version "2.1.0"
3725
+  resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-2.1.0.tgz#e348c330a5b2481b14f5fffd707aebfef8b7bef6"
3726
+  integrity sha512-PipOsAKamRw7+CXtKiieehyjUeDVPJ5J7b2kdJYerEf6TSUQoD2ijpVyZ88KQm5YXziff4h762bz3+vzf56khg==
3727
+  dependencies:
3728
+    deep-equal "^1.0.1"
3729
+
3614 3730
 fast-json-stable-stringify@^2.0.0:
3615 3731
   version "2.0.0"
3616 3732
   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:
3634 3750
     websocket-driver ">=0.5.1"
3635 3751
 
3636 3752
 faye-websocket@~0.11.0:
3637
-  version "0.11.1"
3638
-  resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38"
3639
-  integrity sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=
3753
+  version "0.11.3"
3754
+  resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e"
3755
+  integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==
3640 3756
   dependencies:
3641 3757
     websocket-driver ">=0.5.1"
3642 3758
 
@@ -3867,6 +3983,15 @@ forever-agent@~0.6.1:
3867 3983
   resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
3868 3984
   integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
3869 3985
 
3986
+form-data@^1.0.0-rc3:
3987
+  version "1.0.1"
3988
+  resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.1.tgz#ae315db9a4907fa065502304a66d7733475ee37c"
3989
+  integrity sha1-rjFduaSQf6BlUCMEpm13M0de43w=
3990
+  dependencies:
3991
+    async "^2.0.1"
3992
+    combined-stream "^1.0.5"
3993
+    mime-types "^2.1.11"
3994
+
3870 3995
 form-data@~2.3.2:
3871 3996
   version "2.3.3"
3872 3997
   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-
4269 4394
   resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47"
4270 4395
   integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==
4271 4396
 
4272
-hoist-non-react-statics@^3.1.0:
4397
+hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0:
4273 4398
   version "3.3.0"
4274 4399
   resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b"
4275 4400
   integrity sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==
@@ -4443,7 +4568,7 @@ icss-utils@^2.1.0:
4443 4568
   dependencies:
4444 4569
     postcss "^6.0.1"
4445 4570
 
4446
-ieee754@^1.1.4:
4571
+ieee754@^1.1.4, ieee754@^1.1.8:
4447 4572
   version "1.1.13"
4448 4573
   resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
4449 4574
   integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==
@@ -4472,6 +4597,11 @@ immutability-helper@^2.8.1:
4472 4597
   dependencies:
4473 4598
     invariant "^2.2.0"
4474 4599
 
4600
+immutable@^3.7.6, immutable@^3.x.x:
4601
+  version "3.8.2"
4602
+  resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3"
4603
+  integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=
4604
+
4475 4605
 import-fresh@^3.0.0:
4476 4606
   version "3.0.0"
4477 4607
   resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390"
@@ -4589,7 +4719,7 @@ interpret@^1.0.0:
4589 4719
   resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
4590 4720
   integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==
4591 4721
 
4592
-invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4:
4722
+invariant@^2.0.0, invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4:
4593 4723
   version "2.2.4"
4594 4724
   resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
4595 4725
   integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
@@ -4713,6 +4843,11 @@ is-directory@^0.3.1:
4713 4843
   resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
4714 4844
   integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
4715 4845
 
4846
+is-dom@^1.0.9:
4847
+  version "1.0.9"
4848
+  resolved "https://registry.yarnpkg.com/is-dom/-/is-dom-1.0.9.tgz#483832d52972073de12b9fe3f60320870da8370d"
4849
+  integrity sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0=
4850
+
4716 4851
 is-dotfile@^1.0.0:
4717 4852
   version "1.0.3"
4718 4853
   resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
@@ -4865,7 +5000,7 @@ is-primitive@^2.0.0:
4865 5000
   resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
4866 5001
   integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU=
4867 5002
 
4868
-is-promise@^2.1.0:
5003
+is-promise@^2.1, is-promise@^2.1.0:
4869 5004
   version "2.1.0"
4870 5005
   resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
4871 5006
   integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
@@ -4971,6 +5106,13 @@ isomorphic-fetch@^2.1.1:
4971 5106
     node-fetch "^1.0.1"
4972 5107
     whatwg-fetch ">=0.10.0"
4973 5108
 
5109
+isomorphic-form-data@0.0.1:
5110
+  version "0.0.1"
5111
+  resolved "https://registry.yarnpkg.com/isomorphic-form-data/-/isomorphic-form-data-0.0.1.tgz#026f627e032b0cd8413ecc8755928b94a468b062"
5112
+  integrity sha1-Am9ifgMrDNhBPsyHVZKLlKRosGI=
5113
+  dependencies:
5114
+    form-data "^1.0.0-rc3"
5115
+
4974 5116
 isstream@~0.1.2:
4975 5117
   version "0.1.2"
4976 5118
   resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
@@ -5298,6 +5440,11 @@ js-base64@^2.1.9:
5298 5440
   resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121"
5299 5441
   integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==
5300 5442
 
5443
+js-file-download@^0.4.1:
5444
+  version "0.4.7"
5445
+  resolved "https://registry.yarnpkg.com/js-file-download/-/js-file-download-0.4.7.tgz#cafea2f7230b63fa1747e80efe1257649b59143e"
5446
+  integrity sha512-9AQYwIpgTz3BqKQQ9kZldCXd0BekFmxvUguEVJwVlTe9cON1slRaT+hqctEbjoXbz9Aj+8Qgl3841zYWeCstuA==
5447
+
5301 5448
 "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
5302 5449
   version "4.0.0"
5303 5450
   resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -5658,15 +5805,15 @@ lodash.uniq@^4.5.0:
5658 5805
   resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
5659 5806
   integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
5660 5807
 
5661
-"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:
5808
+"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:
5662 5809
   version "4.17.11"
5663 5810
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
5664 5811
   integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
5665 5812
 
5666 5813
 loglevel@^1.4.1:
5667
-  version "1.6.2"
5668
-  resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.2.tgz#668c77948a03dbd22502a3513ace1f62a80cc372"
5669
-  integrity sha512-Jt2MHrCNdtIe1W6co3tF5KXGRkzF+TYffiQstfXa04mrss9IKXzAAXYWak8LbZseAQY03sH2GzMCMU0ZOUc9bg==
5814
+  version "1.6.3"
5815
+  resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280"
5816
+  integrity sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA==
5670 5817
 
5671 5818
 longest@^1.0.1:
5672 5819
   version "1.0.1"
@@ -5706,6 +5853,13 @@ lru-cache@^4.0.1:
5706 5853
     pseudomap "^1.0.2"
5707 5854
     yallist "^2.1.2"
5708 5855
 
5856
+lru-queue@0.1:
5857
+  version "0.1.0"
5858
+  resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3"
5859
+  integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=
5860
+  dependencies:
5861
+    es5-ext "~0.10.2"
5862
+
5709 5863
 make-dir@^1.0.0:
5710 5864
   version "1.3.0"
5711 5865
   resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
@@ -5768,6 +5922,20 @@ mem@^1.1.0:
5768 5922
   dependencies:
5769 5923
     mimic-fn "^1.0.0"
5770 5924
 
5925
+memoizee@^0.4.12:
5926
+  version "0.4.14"
5927
+  resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57"
5928
+  integrity sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==
5929
+  dependencies:
5930
+    d "1"
5931
+    es5-ext "^0.10.45"
5932
+    es6-weak-map "^2.0.2"
5933
+    event-emitter "^0.3.5"
5934
+    is-promise "^2.1"
5935
+    lru-queue "0.1"
5936
+    next-tick "1"
5937
+    timers-ext "^0.1.5"
5938
+
5771 5939
 memory-fs@^0.4.0, memory-fs@~0.4.1:
5772 5940
   version "0.4.1"
5773 5941
   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":
5858 6026
   resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32"
5859 6027
   integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==
5860 6028
 
5861
-mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24:
6029
+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:
5862 6030
   version "2.1.24"
5863 6031
   resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81"
5864 6032
   integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==
@@ -6035,7 +6203,7 @@ neo-async@^2.5.0, neo-async@^2.6.0:
6035 6203
   resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
6036 6204
   integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
6037 6205
 
6038
-next-tick@^1.0.0:
6206
+next-tick@1, next-tick@^1.0.0:
6039 6207
   version "1.0.0"
6040 6208
   resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
6041 6209
   integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
@@ -6052,7 +6220,7 @@ no-case@^2.2.0:
6052 6220
   dependencies:
6053 6221
     lower-case "^1.1.1"
6054 6222
 
6055
-node-fetch@^1.0.1:
6223
+node-fetch@1.7.3, node-fetch@^1.0.1:
6056 6224
   version "1.7.3"
6057 6225
   resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
6058 6226
   integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==
@@ -6586,9 +6754,9 @@ patternfly-bootstrap-treeview@~2.1.0:
6586 6754
     jquery ">= 2.1.x"
6587 6755
 
6588 6756
 patternfly-react@^2.13.1:
6589
-  version "2.36.0"
6590
-  resolved "https://registry.yarnpkg.com/patternfly-react/-/patternfly-react-2.36.0.tgz#7143a13356ef6c61ea7764a61d84be58502fc0e7"
6591
-  integrity sha512-VmkrZtfdieL4kWFeSsjK02pNLt214x2lwpTPyHlbWy5uXjqXU2fYBo9gA2gNXYwdy25DVJ+EDh493+ye/C3AIg==
6757
+  version "2.36.1"
6758
+  resolved "https://registry.yarnpkg.com/patternfly-react/-/patternfly-react-2.36.1.tgz#a6bdfd9b8e11d7fa6055492655fabbd300701815"
6759
+  integrity sha512-1BKlf/LnvEzofpQ0pGSrTuTPP+ykV3d2lH60bM3c3bdCXPYdOsWrRaBZugv1oREzbRSts/8xvwiVMitXc5xjwA==
6592 6760
   dependencies:
6593 6761
     bootstrap-slider-without-jquery "^10.0.0"
6594 6762
     breakjs "^1.0.0"
@@ -7202,7 +7370,7 @@ q@^1.1.2:
7202 7370
   resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
7203 7371
   integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
7204 7372
 
7205
-qs@6.7.0:
7373
+qs@6.7.0, qs@^6.3.0:
7206 7374
   version "6.7.0"
7207 7375
   resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
7208 7376
   integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
@@ -7220,6 +7388,11 @@ query-string@^4.1.0:
7220 7388
     object-assign "^4.1.0"
7221 7389
     strict-uri-encode "^1.0.0"
7222 7390
 
7391
+querystring-browser@^1.0.4:
7392
+  version "1.0.4"
7393
+  resolved "https://registry.yarnpkg.com/querystring-browser/-/querystring-browser-1.0.4.tgz#f2e35881840a819bc7b1bf597faf0979e6622dc6"
7394
+  integrity sha1-8uNYgYQKgZvHsb9Zf68JeeZiLcY=
7395
+
7223 7396
 querystring-es3@^0.2.0:
7224 7397
   version "0.2.1"
7225 7398
   resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
@@ -7400,6 +7573,16 @@ react-dev-utils@^5.0.1:
7400 7573
     strip-ansi "3.0.1"
7401 7574
     text-table "0.2.0"
7402 7575
 
7576
+react-dom@^15.6.2:
7577
+  version "15.6.2"
7578
+  resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730"
7579
+  integrity sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA=
7580
+  dependencies:
7581
+    fbjs "^0.8.9"
7582
+    loose-envify "^1.1.0"
7583
+    object-assign "^4.1.0"
7584
+    prop-types "^15.5.10"
7585
+
7403 7586
 react-dom@^16.4.2:
7404 7587
   version "16.8.6"
7405 7588
   resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f"
@@ -7436,6 +7619,27 @@ react-height@^3.0.0:
7436 7619
   dependencies:
7437 7620
     prop-types "15.5.8"
7438 7621
 
7622
+react-immutable-proptypes@2.1.0:
7623
+  version "2.1.0"
7624
+  resolved "https://registry.yarnpkg.com/react-immutable-proptypes/-/react-immutable-proptypes-2.1.0.tgz#023d6f39bb15c97c071e9e60d00d136eac5fa0b4"
7625
+  integrity sha1-Aj1vObsVyXwHHp5g0A0TbqxfoLQ=
7626
+
7627
+react-immutable-pure-component@^1.1.1:
7628
+  version "1.2.3"
7629
+  resolved "https://registry.yarnpkg.com/react-immutable-pure-component/-/react-immutable-pure-component-1.2.3.tgz#fa33638df68cfe9f73ccbee1d5861c17f3053f86"
7630
+  integrity sha512-kNy2A/fDrSuR8TKwB+4ynmItmp1vgF87tWxxfmadwDYo2J3ANipHqTjDIBvJvJ7libvuh76jIbvmK0krjtKH1g==
7631
+  optionalDependencies:
7632
+    "@types/react" "16.4.6"
7633
+
7634
+react-inspector@^2.3.0:
7635
+  version "2.3.1"
7636
+  resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-2.3.1.tgz#f0eb7f520669b545b441af9d38ec6d706e5f649c"
7637
+  integrity sha512-tUUK7t3KWgZEIUktOYko5Ic/oYwvjEvQUFAGC1UeMeDaQ5za2yZFtItJa2RTwBJB//NxPr000WQK6sEbqC6y0Q==
7638
+  dependencies:
7639
+    babel-runtime "^6.26.0"
7640
+    is-dom "^1.0.9"
7641
+    prop-types "^15.6.1"
7642
+
7439 7643
 react-is@^16.3.2, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1:
7440 7644
   version "16.8.6"
7441 7645
   resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16"
@@ -7496,6 +7700,18 @@ react-prop-types@^0.4.0:
7496 7700
   dependencies:
7497 7701
     warning "^3.0.0"
7498 7702
 
7703
+react-redux@^4.x.x:
7704
+  version "4.4.10"
7705
+  resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-4.4.10.tgz#ad57bd1db00c2d0aa7db992b360ce63dd0b80ec5"
7706
+  integrity sha512-tjL0Bmpkj75Td0k+lXlF8Fc8a9GuXFv/3ahUOCXExWs/jhsKiQeTffdH0j5byejCGCRL4tvGFYlrwBF1X/Aujg==
7707
+  dependencies:
7708
+    create-react-class "^15.5.1"
7709
+    hoist-non-react-statics "^3.3.0"
7710
+    invariant "^2.0.0"
7711
+    lodash "^4.17.11"
7712
+    loose-envify "^1.4.0"
7713
+    prop-types "^15.7.2"
7714
+
7499 7715
 react-redux@^5.0.7:
7500 7716
   version "5.1.1"
7501 7717
   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:
7597 7813
     prop-types "^15.6.2"
7598 7814
     react-lifecycles-compat "^3.0.4"
7599 7815
 
7816
+react@^15.6.2:
7817
+  version "15.6.2"
7818
+  resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72"
7819
+  integrity sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=
7820
+  dependencies:
7821
+    create-react-class "^15.6.0"
7822
+    fbjs "^0.8.9"
7823
+    loose-envify "^1.1.0"
7824
+    object-assign "^4.1.0"
7825
+    prop-types "^15.5.10"
7826
+
7600 7827
 react@^16.4.2:
7601 7828
   version "16.8.6"
7602 7829
   resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe"
@@ -7720,12 +7947,19 @@ reduce-function-call@^1.0.1:
7720 7947
   dependencies:
7721 7948
     balanced-match "^0.4.2"
7722 7949
 
7950
+redux-immutable@3.0.8:
7951
+  version "3.0.8"
7952
+  resolved "https://registry.yarnpkg.com/redux-immutable/-/redux-immutable-3.0.8.tgz#df5a5d601c88227ba38f474cf82f7d00e56f8c14"
7953
+  integrity sha1-31pdYByIInujj0dM+C99AOVvjBQ=
7954
+  dependencies:
7955
+    immutable "^3.7.6"
7956
+
7723 7957
 redux-thunk@^2.3.0:
7724 7958
   version "2.3.0"
7725 7959
   resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622"
7726 7960
   integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==
7727 7961
 
7728
-redux@<4.0.0:
7962
+redux@<4.0.0, redux@^3.x.x:
7729 7963
   version "3.7.2"
7730 7964
   resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b"
7731 7965
   integrity sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==
@@ -7829,6 +8063,14 @@ relateurl@0.2.x:
7829 8063
   resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
7830 8064
   integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
7831 8065
 
8066
+remarkable@^1.7.1:
8067
+  version "1.7.1"
8068
+  resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.1.tgz#aaca4972100b66a642a63a1021ca4bac1be3bff6"
8069
+  integrity sha1-qspJchALZqZCpjoQIcpLrBvjv/Y=
8070
+  dependencies:
8071
+    argparse "~0.1.15"
8072
+    autolinker "~0.15.0"
8073
+
7832 8074
 remove-trailing-separator@^1.0.1:
7833 8075
   version "1.1.0"
7834 8076
   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:
7916 8158
   resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
7917 8159
   integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
7918 8160
 
8161
+reselect@^2.5.4:
8162
+  version "2.5.4"
8163
+  resolved "https://registry.yarnpkg.com/reselect/-/reselect-2.5.4.tgz#b7d23fdf00b83fa7ad0279546f8dbbbd765c7047"
8164
+  integrity sha1-t9I/3wC4P6etAnlUb427vXZccEc=
8165
+
7919 8166
 resolve-cwd@^2.0.0:
7920 8167
   version "2.0.0"
7921 8168
   resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
@@ -7969,9 +8216,9 @@ resolve@1.6.0:
7969 8216
     path-parse "^1.0.5"
7970 8217
 
7971 8218
 resolve@^1.10.0, resolve@^1.10.1, resolve@^1.3.2, resolve@^1.5.0:
7972
-  version "1.11.1"
7973
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e"
7974
-  integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==
8219
+  version "1.11.0"
8220
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232"
8221
+  integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==
7975 8222
   dependencies:
7976 8223
     path-parse "^1.0.6"
7977 8224
 
@@ -8036,7 +8283,7 @@ rxjs@^6.4.0:
8036 8283
   dependencies:
8037 8284
     tslib "^1.9.0"
8038 8285
 
8039
-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:
8286
+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:
8040 8287
   version "5.1.2"
8041 8288
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
8042 8289
   integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
@@ -8129,6 +8376,11 @@ send@0.17.1:
8129 8376
     range-parser "~1.2.1"
8130 8377
     statuses "~1.5.0"
8131 8378
 
8379
+serialize-error@^2.1.0:
8380
+  version "2.1.0"
8381
+  resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a"
8382
+  integrity sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=
8383
+
8132 8384
 serve-index@^1.7.2:
8133 8385
   version "1.9.1"
8134 8386
   resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
@@ -8485,6 +8737,13 @@ stream-http@^2.7.2:
8485 8737
     to-arraybuffer "^1.0.0"
8486 8738
     xtend "^4.0.0"
8487 8739
 
8740
+stream@^0.0.2:
8741
+  version "0.0.2"
8742
+  resolved "https://registry.yarnpkg.com/stream/-/stream-0.0.2.tgz#7f5363f057f6592c5595f00bc80a27f5cec1f0ef"
8743
+  integrity sha1-f1Nj8Ff2WSxVlfALyAon9c7B8O8=
8744
+  dependencies:
8745
+    emitter-component "^1.1.1"
8746
+
8488 8747
 strict-uri-encode@^1.0.0:
8489 8748
   version "1.1.0"
8490 8749
   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:
8667 8926
     path-to-regexp "^1.0.1"
8668 8927
     serviceworker-cache-polyfill "^4.0.0"
8669 8928
 
8929
+swagger-client@^3.9.0:
8930
+  version "3.9.0"
8931
+  resolved "https://registry.yarnpkg.com/swagger-client/-/swagger-client-3.9.0.tgz#b94ea65baa0194f4cb3fad2f8bd552c531d57e03"
8932
+  integrity sha512-uyCq2xoaAtmE0oIQ0fCfnsDoy/v97ANnAZywtyk4yumBP74xXp4NFlpZaqZJHN9K9dbPzgs3MH98VocZeM0ExQ==
8933
+  dependencies:
8934
+    "@kyleshockey/js-yaml" "^1.0.1"
8935
+    "@kyleshockey/object-assign-deep" "^0.4.0"
8936
+    babel-runtime "^6.26.0"
8937
+    btoa "1.1.2"
8938
+    buffer "^5.1.0"
8939
+    cookie "^0.3.1"
8940
+    cross-fetch "0.0.8"
8941
+    deep-extend "^0.5.1"
8942
+    encode-3986 "^1.0.0"
8943
+    fast-json-patch "^2.0.6"
8944
+    isomorphic-form-data "0.0.1"
8945
+    lodash "^4.16.2"
8946
+    qs "^6.3.0"
8947
+    querystring-browser "^1.0.4"
8948
+    traverse "^0.6.6"
8949
+    url "^0.11.0"
8950
+    utf8-bytes "0.0.1"
8951
+    utfstring "^2.0.0"
8952
+
8953
+swagger-ui@^3.20.1:
8954
+  version "3.22.3"
8955
+  resolved "https://registry.yarnpkg.com/swagger-ui/-/swagger-ui-3.22.3.tgz#e24f1573755a61216e0ec842c80ebef484bf38aa"
8956
+  integrity sha512-JDyhQls7Zlhzwzkad58mmTvdYUqtJ7/7FM72w09vFmT/uNBLWM8JMk+9rs4v+nbN5/1hcWyHzAVvYr/91krsFg==
8957
+  dependencies:
8958
+    "@braintree/sanitize-url" "^2.0.2"
8959
+    "@kyleshockey/js-yaml" "^1.0.1"
8960
+    "@kyleshockey/object-assign-deep" "^0.4.2"
8961
+    "@kyleshockey/xml" "^1.0.2"
8962
+    base64-js "^1.2.0"
8963
+    classnames "^2.2.5"
8964
+    core-js "^2.5.1"
8965
+    css.escape "1.5.1"
8966
+    deep-extend "0.5.1"
8967
+    dompurify "^1.0.4"
8968
+    ieee754 "^1.1.8"
8969
+    immutable "^3.x.x"
8970
+    js-file-download "^0.4.1"
8971
+    lodash "^4.17.11"
8972
+    memoizee "^0.4.12"
8973
+    prop-types "^15.5.10"
8974
+    react "^15.6.2"
8975
+    react-debounce-input "^3.2.0"
8976
+    react-dom "^15.6.2"
8977
+    react-immutable-proptypes "2.1.0"
8978
+    react-immutable-pure-component "^1.1.1"
8979
+    react-inspector "^2.3.0"
8980
+    react-motion "^0.5.2"
8981
+    react-redux "^4.x.x"
8982
+    redux "^3.x.x"
8983
+    redux-immutable "3.0.8"
8984
+    remarkable "^1.7.1"
8985
+    reselect "^2.5.4"
8986
+    serialize-error "^2.1.0"
8987
+    swagger-client "^3.9.0"
8988
+    url-parse "^1.4.3"
8989
+    xml-but-prettier "^1.0.1"
8990
+    zenscroll "^4.0.2"
8991
+
8670 8992
 symbol-observable@^1.0.3, symbol-observable@^1.0.4:
8671 8993
   version "1.2.0"
8672 8994
   resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
8673 8995
   integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
8674 8996
 
8675 8997
 symbol-tree@^3.2.1:
8676
-  version "3.2.2"
8677
-  resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
8678
-  integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=
8998
+  version "3.2.4"
8999
+  resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
9000
+  integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
8679 9001
 
8680 9002
 table-resolver@^3.2.0:
8681 9003
   version "3.3.0"
@@ -8777,6 +9099,14 @@ timers-browserify@^2.0.4:
8777 9099
   dependencies:
8778 9100
     setimmediate "^1.0.4"
8779 9101
 
9102
+timers-ext@^0.1.5:
9103
+  version "0.1.7"
9104
+  resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6"
9105
+  integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==
9106
+  dependencies:
9107
+    es5-ext "~0.10.46"
9108
+    next-tick "1"
9109
+
8780 9110
 tiny-invariant@^1.0.2:
8781 9111
   version "1.0.4"
8782 9112
   resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.4.tgz#346b5415fd93cb696b0c4e8a96697ff590f92463"
@@ -8865,6 +9195,11 @@ tr46@~0.0.3:
8865 9195
   resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
8866 9196
   integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
8867 9197
 
9198
+traverse@^0.6.6:
9199
+  version "0.6.6"
9200
+  resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137"
9201
+  integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=
9202
+
8868 9203
 trim-newlines@^1.0.0:
8869 9204
   version "1.0.0"
8870 9205
   resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
@@ -8876,9 +9211,9 @@ trim-right@^1.0.1:
8876 9211
   integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
8877 9212
 
8878 9213
 tslib@^1.9.0:
8879
-  version "1.9.3"
8880
-  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
8881
-  integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==
9214
+  version "1.10.0"
9215
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
9216
+  integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
8882 9217
 
8883 9218
 tty-browserify@0.0.0:
8884 9219
   version "0.0.0"
@@ -8923,9 +9258,9 @@ typedarray@^0.0.6:
8923 9258
   integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
8924 9259
 
8925 9260
 ua-parser-js@^0.7.18:
8926
-  version "0.7.19"
8927
-  resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.19.tgz#94151be4c0a7fb1d001af7022fdaca4642659e4b"
8928
-  integrity sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ==
9261
+  version "0.7.20"
9262
+  resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098"
9263
+  integrity sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw==
8929 9264
 
8930 9265
 uglify-js@3.4.x:
8931 9266
   version "3.4.10"
@@ -8974,6 +9309,16 @@ uncontrollable@^5.0.0:
8974 9309
   dependencies:
8975 9310
     invariant "^2.2.4"
8976 9311
 
9312
+underscore.string@~2.4.0:
9313
+  version "2.4.0"
9314
+  resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.4.0.tgz#8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b"
9315
+  integrity sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=
9316
+
9317
+underscore@~1.7.0:
9318
+  version "1.7.0"
9319
+  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209"
9320
+  integrity sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=
9321
+
8977 9322
 union-value@^1.0.0:
8978 9323
   version "1.0.0"
8979 9324
   resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
@@ -9104,6 +9449,16 @@ use@^3.1.0:
9104 9449
   resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
9105 9450
   integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
9106 9451
 
9452
+utf8-bytes@0.0.1:
9453
+  version "0.0.1"
9454
+  resolved "https://registry.yarnpkg.com/utf8-bytes/-/utf8-bytes-0.0.1.tgz#116b025448c9b500081cdfbf1f4d6c6c37d8837d"
9455
+  integrity sha1-EWsCVEjJtQAIHN+/H01sbDfYg30=
9456
+
9457
+utfstring@^2.0.0:
9458
+  version "2.0.0"
9459
+  resolved "https://registry.yarnpkg.com/utfstring/-/utfstring-2.0.0.tgz#b331f7351e9be1c46334cc7518826cda3b44242a"
9460
+  integrity sha512-/ugBfyvIoLe9xqkFHio3CxXnpUKQ1p2LfTxPr6QTRj6GiwpHo73YGdh03UmAzDQNOWpNIE0J5nLss00L4xlWgg==
9461
+
9107 9462
 util-deprecate@^1.0.1, util-deprecate@~1.0.1:
9108 9463
   version "1.0.2"
9109 9464
   resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
@@ -9323,11 +9678,12 @@ webpack@3.8.1:
9323 9678
     yargs "^8.0.2"
9324 9679
 
9325 9680
 websocket-driver@>=0.5.1:
9326
-  version "0.7.0"
9327
-  resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb"
9328
-  integrity sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=
9681
+  version "0.7.1"
9682
+  resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.1.tgz#d58fa3269f51e480f5af051db7f5c5c1a1092d20"
9683
+  integrity sha512-EC4YX5LEHtiB1XjaCh6++35jGaFmhT7687pySyCfPX9bB8Quw7+Fpx8gSCpkD78tPjalxuoOm8TtTz8K4dAQEg==
9329 9684
   dependencies:
9330 9685
     http-parser-js ">=0.4.0"
9686
+    safe-buffer ">=5.1.1"
9331 9687
     websocket-extensions ">=0.1.1"
9332 9688
 
9333 9689
 websocket-extensions@>=0.1.1:
@@ -9464,6 +9820,13 @@ xdg-basedir@^3.0.0:
9464 9820
   resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
9465 9821
   integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=
9466 9822
 
9823
+xml-but-prettier@^1.0.1:
9824
+  version "1.0.1"
9825
+  resolved "https://registry.yarnpkg.com/xml-but-prettier/-/xml-but-prettier-1.0.1.tgz#f5a33267ed42ccd4e355c62557a5e39b01fb40f3"
9826
+  integrity sha1-9aMyZ+1CzNTjVcYlV6XjmwH7QPM=
9827
+  dependencies:
9828
+    repeat-string "^1.5.2"
9829
+
9467 9830
 xml-name-validator@^2.0.1:
9468 9831
   version "2.0.1"
9469 9832
   resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635"
@@ -9586,3 +9949,8 @@ yarn@^1.16.0:
9586 9949
   version "1.16.0"
9587 9950
   resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.16.0.tgz#5701b58ac555ff91f7b889b7d791b3dc86f8f999"
9588 9951
   integrity sha512-cfemyGlnWKA1zopUUgebTPf8C4WkPIZ+TJmklwcEAJ4u6oWPtJeAzrsamaGGh/+b1XWe8W51yzAImC4AWbWR1g==
9952
+
9953
+zenscroll@^4.0.2:
9954
+  version "4.0.2"
9955
+  resolved "https://registry.yarnpkg.com/zenscroll/-/zenscroll-4.0.2.tgz#e8d5774d1c0738a47bcfa8729f3712e2deddeb25"
9956
+  integrity sha1-6NV3TRwHOKR7z6hynzcS4t7d6yU=

Loading…
Cancel
Save