From 316fdcb4d03017ff6971487ecc7f5eb2d9b3d3e2 Mon Sep 17 00:00:00 2001 From: Chris Williams Date: Mon, 15 Oct 2018 16:52:19 -0700 Subject: [PATCH] [SIP-4] replace chart ajax calls with `SupersetClient` (#5875) * [deps] add @superset-ui/core * [superset-client] initialize SupersetClient in app setup * [superset-client] add abortcontroller-polyfill * [superset-client] replace all chart ajax calls with SupersetClient * [tests] add fetch-mock dep and helpers/setupSupersetClient.js * [superset client][charts][tests] fix and improve chartActions_spec * [deps] @superset-ui/core@^0.0.4 * [common] add better SupersetClient initialization error * [cypress] add readResponseBlob helper, fix broken fetch-based tests * [cypress] fix tests from rebase * [deps] @superset-ui/core@^0.0.5 * [cypress][fetch] fix controls test for fetch * [cypress][dashboard][fetch] fix filter test for fetch * [superset-client] configure protocol on init * yarn.lock * undo Chart.jsx revert * yarn again * [superset-client] fix chartAction unit tests --- .../cypress/integration/dashboard/controls.js | 6 +- .../cypress/integration/dashboard/filter.js | 8 +- .../cypress/integration/dashboard/load.js | 6 +- .../visualizations/big_number_total.js | 9 +- .../explore/visualizations/table.js | 15 +- superset/assets/cypress/support/commands.js | 20 +- superset/assets/cypress/support/index.js | 9 +- .../assets/cypress/utils/readResponseBlob.js | 11 + superset/assets/package.json | 3 + .../spec/helpers/setupSupersetClient.js | 10 + superset/assets/spec/helpers/shim.js | 1 + .../javascripts/explore/chartActions_spec.js | 122 ++- superset/assets/src/chart/Chart.jsx | 1 - superset/assets/src/chart/chartAction.js | 109 +- superset/assets/src/common.js | 26 +- .../explore/components/ExploreChartPanel.jsx | 2 +- .../components/ExploreViewContainer.jsx | 15 +- .../components/controls/AnnotationLayer.jsx | 287 +++--- .../src/explore/reducers/getInitialState.js | 9 +- superset/assets/yarn.lock | 954 ++++++++++-------- 20 files changed, 927 insertions(+), 696 deletions(-) create mode 100644 superset/assets/cypress/utils/readResponseBlob.js create mode 100644 superset/assets/spec/helpers/setupSupersetClient.js diff --git a/superset/assets/cypress/integration/dashboard/controls.js b/superset/assets/cypress/integration/dashboard/controls.js index cfde066a1..b79abf8ba 100644 --- a/superset/assets/cypress/integration/dashboard/controls.js +++ b/superset/assets/cypress/integration/dashboard/controls.js @@ -1,4 +1,5 @@ import { WORLD_HEALTH_DASHBOARD, CHECK_DASHBOARD_FAVORITE_ENDPOINT } from './dashboard.helper'; +import readResponseBlob from '../../utils/readResponseBlob'; export default () => describe('top-level controls', () => { let sliceIds = []; @@ -61,8 +62,9 @@ export default () => describe('top-level controls', () => { cy.wait(forceRefreshRequests).then((xhrs) => { // is_cached in response should be false - xhrs.forEach((xhr) => { - expect(xhr.response.body.is_cached).to.equal(false); + xhrs.forEach(async (xhr) => { + const responseBody = await readResponseBlob(xhr.response.body); + expect(responseBody.is_cached).to.equal(false); }); }); }); diff --git a/superset/assets/cypress/integration/dashboard/filter.js b/superset/assets/cypress/integration/dashboard/filter.js index fe236db5c..e0e65d889 100644 --- a/superset/assets/cypress/integration/dashboard/filter.js +++ b/superset/assets/cypress/integration/dashboard/filter.js @@ -40,11 +40,11 @@ export default () => describe('dashboard filter', () => { .type('South Asia{enter}', { force: true }); cy.wait(aliases).then((requests) => { - requests.forEach((request) => { - const requestBody = request.request.body.substring('form_data='.length); - const requestParams = JSON.parse(decodeURIComponent(requestBody)); + requests.forEach((xhr) => { + const requestFormData = xhr.request.body; + const requestParams = JSON.parse(requestFormData.get('form_data')); expect(requestParams.extra_filters[0]) - .deep.eq({ col: 'region', op: 'in', val: ['South+Asia'] }); + .deep.eq({ col: 'region', op: 'in', val: ['South Asia'] }); }); }); }); diff --git a/superset/assets/cypress/integration/dashboard/load.js b/superset/assets/cypress/integration/dashboard/load.js index 4da064bbb..834241153 100644 --- a/superset/assets/cypress/integration/dashboard/load.js +++ b/superset/assets/cypress/integration/dashboard/load.js @@ -1,3 +1,4 @@ +import readResponseBlob from '../../utils/readResponseBlob'; import { WORLD_HEALTH_DASHBOARD } from './dashboard.helper'; export default () => describe('load', () => { @@ -24,9 +25,10 @@ export default () => describe('load', () => { it('should load dashboard', () => { // wait and verify one-by-one cy.wait(aliases).then((requests) => { - requests.forEach((xhr) => { + requests.forEach(async (xhr) => { expect(xhr.status).to.eq(200); - expect(xhr.response.body).to.have.property('error', null); + const responseBody = await readResponseBlob(xhr.response.body); + expect(responseBody).to.have.property('error', null); cy.get(`#slice-container-${xhr.response.body.form_data.slice_id}`); }); }); diff --git a/superset/assets/cypress/integration/explore/visualizations/big_number_total.js b/superset/assets/cypress/integration/explore/visualizations/big_number_total.js index 1797df62b..b9cd13b58 100644 --- a/superset/assets/cypress/integration/explore/visualizations/big_number_total.js +++ b/superset/assets/cypress/integration/explore/visualizations/big_number_total.js @@ -1,4 +1,5 @@ import { FORM_DATA_DEFAULTS, NUM_METRIC } from './shared.helper'; +import readResponseBlob from '../../../utils/readResponseBlob'; // Big Number Total @@ -42,10 +43,12 @@ export default () => describe('Big Number Total', () => { const formData = { ...BIG_NUMBER_DEFAULTS, metric: NUM_METRIC, groupby: ['state'] }; cy.visitChartByParams(JSON.stringify(formData)); - cy.wait(['@getJson']).then((data) => { - cy.verifyResponseCodes(data); + cy.wait(['@getJson']).then(async (xhr) => { + cy.verifyResponseCodes(xhr); cy.verifySliceContainer(); - expect(data.response.body.query).not.contains(formData.groupby[0]); + + const responseBody = await readResponseBlob(xhr.response.body); + expect(responseBody.query).not.contains(formData.groupby[0]); }); }); }); diff --git a/superset/assets/cypress/integration/explore/visualizations/table.js b/superset/assets/cypress/integration/explore/visualizations/table.js index 92aabb63a..0f7010637 100644 --- a/superset/assets/cypress/integration/explore/visualizations/table.js +++ b/superset/assets/cypress/integration/explore/visualizations/table.js @@ -1,4 +1,5 @@ import { FORM_DATA_DEFAULTS, NUM_METRIC, SIMPLE_FILTER } from './shared.helper'; +import readResponseBlob from '../../../utils/readResponseBlob'; // Table @@ -59,10 +60,11 @@ export default () => describe('Table chart', () => { cy.visitChartByParams(JSON.stringify(formData)); - cy.wait('@getJson').then((data) => { - cy.verifyResponseCodes(data); + cy.wait('@getJson').then(async (xhr) => { + cy.verifyResponseCodes(xhr); cy.verifySliceContainer('table'); - expect(data.response.body.data.records.length).to.eq(limit); + const responseBody = await readResponseBlob(xhr.response.body); + expect(responseBody.data.records.length).to.eq(limit); }); }); @@ -85,10 +87,11 @@ export default () => describe('Table chart', () => { }; cy.visitChartByParams(JSON.stringify(formData)); - cy.wait('@getJson').then((data) => { - cy.verifyResponseCodes(data); + cy.wait('@getJson').then(async (xhr) => { + cy.verifyResponseCodes(xhr); cy.verifySliceContainer('table'); - const records = data.response.body.data.records; + const responseBody = await readResponseBlob(xhr.response.body); + const { records } = responseBody.data; expect(records[0].num).greaterThan(records[records.length - 1].num); }); }); diff --git a/superset/assets/cypress/support/commands.js b/superset/assets/cypress/support/commands.js index a8d432e1b..4fbadef68 100644 --- a/superset/assets/cypress/support/commands.js +++ b/superset/assets/cypress/support/commands.js @@ -24,6 +24,8 @@ // -- This is will overwrite an existing command -- // Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) +import readResponseBlob from '../utils/readResponseBlob'; + const BASE_EXPLORE_URL = '/superset/explore/?form_data='; Cypress.Commands.add('login', () => { @@ -50,11 +52,14 @@ Cypress.Commands.add('visitChartByParams', (params) => { cy.visit(`${BASE_EXPLORE_URL}${params}`); }); -Cypress.Commands.add('verifyResponseCodes', (data) => { +Cypress.Commands.add('verifyResponseCodes', async (xhr) => { // After a wait response check for valid response - expect(data.status).to.eq(200); - if (data.response.body.error) { - expect(data.response.body.error).to.eq(null); + expect(xhr.status).to.eq(200); + + const responseBody = await readResponseBlob(xhr.response.body); + + if (responseBody.error) { + expect(responseBody.error).to.eq(null); } }); @@ -72,11 +77,12 @@ Cypress.Commands.add('verifySliceContainer', (chartSelector) => { }); Cypress.Commands.add('verifySliceSuccess', ({ waitAlias, querySubstring, chartSelector }) => { - cy.wait(waitAlias).then((data) => { - cy.verifyResponseCodes(data); + cy.wait(waitAlias).then(async (xhr) => { + cy.verifyResponseCodes(xhr); + const responseBody = await readResponseBlob(xhr.response.body); if (querySubstring) { - expect(data.response.body.query).contains(querySubstring); + expect(responseBody.query).contains(querySubstring); } cy.verifySliceContainer(chartSelector); diff --git a/superset/assets/cypress/support/index.js b/superset/assets/cypress/support/index.js index 37a498fb5..8b273dfb6 100644 --- a/superset/assets/cypress/support/index.js +++ b/superset/assets/cypress/support/index.js @@ -13,8 +13,11 @@ // https://on.cypress.io/configuration // *********************************************************** -// Import commands.js using ES2015 syntax: import './commands'; -// Alternatively you can use CommonJS syntax: -// require('./commands') +// The following is a workaround for Cypress not supporting fetch. +// By setting window.fetch = null, we force the fetch polyfill to fall back +// to xhr as described here https://github.com/cypress-io/cypress/issues/95 +Cypress.on('window:before:load', (win) => { + win.fetch = null; // eslint-disable-line no-param-reassign +}); diff --git a/superset/assets/cypress/utils/readResponseBlob.js b/superset/assets/cypress/utils/readResponseBlob.js new file mode 100644 index 000000000..bcbe13736 --- /dev/null +++ b/superset/assets/cypress/utils/readResponseBlob.js @@ -0,0 +1,11 @@ +// This function returns a promise that resolves to the value +// of the passed response blob. It assumes the blob should be read as text, +// and that the response can be parsed as JSON. This is needed to read +// the value of any fetch-based response. +export default function readResponseBlob(blob) { + return new Promise((resolve) => { + const reader = new FileReader(); + reader.onload = () => resolve(JSON.parse(reader.result)); + reader.readAsText(blob); + }); +} diff --git a/superset/assets/package.json b/superset/assets/package.json index df297e4f9..52c621562 100644 --- a/superset/assets/package.json +++ b/superset/assets/package.json @@ -51,9 +51,11 @@ "@data-ui/sparkline": "^0.0.54", "@data-ui/theme": "^0.0.62", "@data-ui/xy-chart": "^0.0.61", + "@superset-ui/core": "^0.0.5", "@vx/legend": "^0.0.170", "@vx/responsive": "0.0.172", "@vx/scale": "^0.0.165", + "abortcontroller-polyfill": "^1.1.9", "babel-register": "^6.24.1", "bootstrap": "^3.3.6", "bootstrap-slider": "^10.0.0", @@ -158,6 +160,7 @@ "eslint-plugin-prettier": "^2.6.0", "eslint-plugin-react": "^7.0.1", "exports-loader": "^0.7.0", + "fetch-mock": "^7.0.0-alpha.6", "file-loader": "^1.1.11", "gl": "^4.0.4", "ignore-styles": "^5.0.1", diff --git a/superset/assets/spec/helpers/setupSupersetClient.js b/superset/assets/spec/helpers/setupSupersetClient.js new file mode 100644 index 000000000..dd6367cbc --- /dev/null +++ b/superset/assets/spec/helpers/setupSupersetClient.js @@ -0,0 +1,10 @@ +import fetchMock from 'fetch-mock'; +import { SupersetClient } from '@superset-ui/core'; + +export default function setupSupersetClient() { + // The following is needed to mock out SupersetClient requests + // including CSRF authentication and initialization + global.FormData = window.FormData; // used by SupersetClient + fetchMock.get('glob:*superset/csrf_token/*', { csrf_token: '1234' }); + SupersetClient.configure({ protocol: 'http', host: 'localhost' }).init(); +} diff --git a/superset/assets/spec/helpers/shim.js b/superset/assets/spec/helpers/shim.js index 306d35a23..e63ea984a 100644 --- a/superset/assets/spec/helpers/shim.js +++ b/superset/assets/spec/helpers/shim.js @@ -1,5 +1,6 @@ /* eslint no-native-reassign: 0 */ import 'babel-polyfill'; +import 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'; import jsdom from 'jsdom'; import { configure } from 'enzyme'; import Adapter from 'enzyme-adapter-react-16'; diff --git a/superset/assets/spec/javascripts/explore/chartActions_spec.js b/superset/assets/spec/javascripts/explore/chartActions_spec.js index e3a621b3c..ecac2e2ef 100644 --- a/superset/assets/spec/javascripts/explore/chartActions_spec.js +++ b/superset/assets/spec/javascripts/explore/chartActions_spec.js @@ -1,37 +1,123 @@ +import fetchMock from 'fetch-mock'; import sinon from 'sinon'; -import $ from 'jquery'; + +import { Logger } from '../../../src/logger'; +import setupSupersetClient from '../../helpers/setupSupersetClient'; import * as exploreUtils from '../../../src/explore/exploreUtils'; import * as actions from '../../../src/chart/chartAction'; describe('chart actions', () => { + const MOCK_URL = '/mockURL'; let dispatch; let urlStub; - let ajaxStub; - let request; + let loggerStub; + + const setupDefaultFetchMock = () => { + fetchMock.post(MOCK_URL, { json: {} }, { overwriteRoutes: true }); + }; + + beforeAll(() => { + setupSupersetClient(); + setupDefaultFetchMock(); + }); + + afterAll(fetchMock.restore); beforeEach(() => { dispatch = sinon.spy(); - urlStub = sinon.stub(exploreUtils, 'getExploreUrlAndPayload') - .callsFake(() => ({ url: 'mockURL', payload: {} })); - ajaxStub = sinon.stub($, 'ajax'); + urlStub = sinon + .stub(exploreUtils, 'getExploreUrlAndPayload') + .callsFake(() => ({ url: MOCK_URL, payload: {} })); + loggerStub = sinon.stub(Logger, 'append'); }); afterEach(() => { urlStub.restore(); - ajaxStub.restore(); + loggerStub.restore(); + fetchMock.resetHistory(); }); - it('should handle query timeout', () => { - ajaxStub.rejects({ statusText: 'timeout' }); - request = actions.runQuery({}); - const promise = request(dispatch, sinon.stub().returns({ - explore: { - controls: [], - }, - })); - promise.then(() => { - expect(dispatch.callCount).toBe(3); - expect(dispatch.args[0][0].type).toBe(actions.CHART_UPDATE_TIMEOUT); + it('should dispatch CHART_UPDATE_STARTED action before the query', () => { + const actionThunk = actions.runQuery({}); + + return actionThunk(dispatch).then(() => { + // chart update, trigger query, update form data, success + expect(dispatch.callCount).toBe(4); + expect(fetchMock.calls(MOCK_URL)).toHaveLength(1); + expect(dispatch.args[0][0].type).toBe(actions.CHART_UPDATE_STARTED); + + return Promise.resolve(); + }); + }); + + it('should dispatch TRIGGER_QUERY action with the query', () => { + const actionThunk = actions.runQuery({}); + return actionThunk(dispatch).then(() => { + // chart update, trigger query, update form data, success + expect(dispatch.callCount).toBe(4); + expect(fetchMock.calls(MOCK_URL)).toHaveLength(1); + expect(dispatch.args[1][0].type).toBe(actions.TRIGGER_QUERY); + + return Promise.resolve(); + }); + }); + + it('should dispatch UPDATE_QUERY_FORM_DATA action with the query', () => { + const actionThunk = actions.runQuery({}); + return actionThunk(dispatch).then(() => { + // chart update, trigger query, update form data, success + expect(dispatch.callCount).toBe(4); + expect(fetchMock.calls(MOCK_URL)).toHaveLength(1); + expect(dispatch.args[2][0].type).toBe(actions.UPDATE_QUERY_FORM_DATA); + + return Promise.resolve(); + }); + }); + + it('should dispatch CHART_UPDATE_SUCCEEDED action upon success', () => { + const actionThunk = actions.runQuery({}); + return actionThunk(dispatch).then(() => { + // chart update, trigger query, update form data, success + expect(dispatch.callCount).toBe(4); + expect(fetchMock.calls(MOCK_URL)).toHaveLength(1); + expect(dispatch.args[3][0].type).toBe(actions.CHART_UPDATE_SUCCEEDED); + + return Promise.resolve(); + }); + }); + + it('should CHART_UPDATE_TIMEOUT action upon query timeout', () => { + const unresolvingPromise = new Promise(() => {}); + fetchMock.post(MOCK_URL, () => unresolvingPromise, { overwriteRoutes: true }); + + const timeoutInSec = 1 / 1000; + const actionThunk = actions.runQuery({}, false, timeoutInSec); + + return actionThunk(dispatch).then(() => { + // chart update, trigger query, update form data, fail + expect(dispatch.callCount).toBe(4); + expect(dispatch.args[3][0].type).toBe(actions.CHART_UPDATE_TIMEOUT); + setupDefaultFetchMock(); + + return Promise.resolve(); + }); + }); + + it('should dispatch CHART_UPDATE_FAILED action upon non-timeout non-abort failure', () => { + fetchMock.post(MOCK_URL, { throws: { error: 'misc error' } }, { overwriteRoutes: true }); + + const timeoutInSec = 1 / 1000; + const actionThunk = actions.runQuery({}, false, timeoutInSec); + + return actionThunk(dispatch).then(() => { + // chart update, trigger query, update form data, fail + expect(dispatch.callCount).toBe(4); + const updateFailedAction = dispatch.args[3][0]; + expect(updateFailedAction.type).toBe(actions.CHART_UPDATE_FAILED); + expect(updateFailedAction.queryResponse.error).toBe('misc error'); + setupDefaultFetchMock(); + + return Promise.resolve(); }); }); }); diff --git a/superset/assets/src/chart/Chart.jsx b/superset/assets/src/chart/Chart.jsx index 0d550272d..4944030a5 100644 --- a/superset/assets/src/chart/Chart.jsx +++ b/superset/assets/src/chart/Chart.jsx @@ -31,7 +31,6 @@ const propTypes = { chartUpdateEndTime: PropTypes.number, chartUpdateStartTime: PropTypes.number, latestQueryFormData: PropTypes.object, - queryRequest: PropTypes.object, queryResponse: PropTypes.object, lastRendered: PropTypes.number, triggerQuery: PropTypes.bool, diff --git a/superset/assets/src/chart/chartAction.js b/superset/assets/src/chart/chartAction.js index 8adbdc0a5..12df6a2bc 100644 --- a/superset/assets/src/chart/chartAction.js +++ b/superset/assets/src/chart/chartAction.js @@ -1,16 +1,16 @@ -import URI from 'urijs'; - +/* global window, AbortController */ +/* eslint no-undef: 'error' */ +import { SupersetClient } from '@superset-ui/core'; import { getExploreUrlAndPayload, getAnnotationJsonUrl } from '../explore/exploreUtils'; import { requiresQuery, ANNOTATION_SOURCE_TYPES } from '../modules/AnnotationTypes'; +import { addDangerToast } from '../messageToasts/actions'; import { Logger, LOG_ACTIONS_LOAD_CHART } from '../logger'; import { COMMON_ERR_MESSAGES } from '../utils/common'; import { t } from '../locales'; -const $ = (window.$ = require('jquery')); - export const CHART_UPDATE_STARTED = 'CHART_UPDATE_STARTED'; -export function chartUpdateStarted(queryRequest, latestQueryFormData, key) { - return { type: CHART_UPDATE_STARTED, queryRequest, latestQueryFormData, key }; +export function chartUpdateStarted(queryController, latestQueryFormData, key) { + return { type: CHART_UPDATE_STARTED, queryController, latestQueryFormData, key }; } export const CHART_UPDATE_SUCCEEDED = 'CHART_UPDATE_SUCCEEDED'; @@ -54,8 +54,8 @@ export function annotationQuerySuccess(annotation, queryResponse, key) { } export const ANNOTATION_QUERY_STARTED = 'ANNOTATION_QUERY_STARTED'; -export function annotationQueryStarted(annotation, queryRequest, key) { - return { type: ANNOTATION_QUERY_STARTED, annotation, queryRequest, key }; +export function annotationQueryStarted(annotation, queryController, key) { + return { type: ANNOTATION_QUERY_STARTED, annotation, queryController, key }; } export const ANNOTATION_QUERY_FAILED = 'ANNOTATION_QUERY_FAILED'; @@ -85,18 +85,21 @@ export function runAnnotationQuery(annotation, timeout = 60, formData = null, ke ); const isNative = annotation.sourceType === ANNOTATION_SOURCE_TYPES.NATIVE; const url = getAnnotationJsonUrl(annotation.value, sliceFormData, isNative); - const queryRequest = $.ajax({ + const controller = new AbortController(); + const { signal } = controller; + + dispatch(annotationQueryStarted(annotation, controller, sliceKey)); + + return SupersetClient.get({ url, - dataType: 'json', + signal, timeout: timeout * 1000, - }); - dispatch(annotationQueryStarted(annotation, queryRequest, sliceKey)); - return queryRequest - .then(queryResponse => dispatch(annotationQuerySuccess(annotation, queryResponse, sliceKey))) + }) + .then(({ json }) => dispatch(annotationQuerySuccess(annotation, json, sliceKey))) .catch((err) => { if (err.statusText === 'timeout') { dispatch(annotationQueryFailed(annotation, { error: 'Query Timeout' }, sliceKey)); - } else if ((err.responseJSON.error || '').toLowerCase().startsWith('no data')) { + } else if ((err.responseJSON.error || '').toLowerCase().includes('no data')) { dispatch(annotationQuerySuccess(annotation, err, sliceKey)); } else if (err.statusText !== 'abort') { dispatch(annotationQueryFailed(annotation, err.responseJSON, sliceKey)); @@ -135,30 +138,30 @@ export function runQuery(formData, force = false, timeout = 60, key) { force, }); const logStart = Logger.getTimestamp(); - const queryRequest = $.ajax({ - type: 'POST', + const controller = new AbortController(); + const { signal } = controller; + + dispatch(chartUpdateStarted(controller, payload, key)); + + const queryPromise = SupersetClient.post({ url, - dataType: 'json', - data: { - form_data: JSON.stringify(payload), - }, + postPayload: { form_data: payload }, + signal, timeout: timeout * 1000, - }); - const queryPromise = Promise.resolve(dispatch(chartUpdateStarted(queryRequest, payload, key))) - .then(() => queryRequest) - .then((queryResponse) => { + }) + .then(({ json }) => { Logger.append(LOG_ACTIONS_LOAD_CHART, { slice_id: key, - is_cached: queryResponse.is_cached, + is_cached: json.is_cached, force_refresh: force, - row_count: queryResponse.rowcount, + row_count: json.rowcount, datasource: formData.datasource, start_offset: logStart, duration: Logger.getTimestamp() - logStart, has_extra_filters: formData.extra_filters && formData.extra_filters.length > 0, viz_type: formData.viz_type, }); - return dispatch(chartUpdateSucceeded(queryResponse, key)); + return dispatch(chartUpdateSucceeded(json, key)); }) .catch((err) => { Logger.append(LOG_ACTIONS_LOAD_CHART, { @@ -170,30 +173,30 @@ export function runQuery(formData, force = false, timeout = 60, key) { }); if (err.statusText === 'timeout') { dispatch(chartUpdateTimeout(err.statusText, timeout, key)); - } else if (err.statusText === 'abort') { + } else if (err.statusText === 'AbortError') { dispatch(chartUpdateStopped(key)); } else { - let errObject; + let errObject = err; if (err.responseJSON) { errObject = err.responseJSON; } else if (err.stack) { errObject = { - error: t('Unexpected error: ') + err.description, + error: + t('Unexpected error: ') + + (err.description || t('(no description, click to see stack trace)')), stacktrace: err.stack, }; } else if (err.responseText && err.responseText.indexOf('CSRF') >= 0) { errObject = { error: COMMON_ERR_MESSAGES.SESSION_TIMED_OUT, }; - } else { - errObject = { - error: t('Unexpected error.'), - }; } dispatch(chartUpdateFailed(errObject, key)); } }); + const annotationLayers = formData.annotation_layers || []; + return Promise.all([ queryPromise, dispatch(triggerQuery(false, key)), @@ -203,29 +206,21 @@ export function runQuery(formData, force = false, timeout = 60, key) { }; } -export const SQLLAB_REDIRECT_FAILED = 'SQLLAB_REDIRECT_FAILED'; -export function sqllabRedirectFailed(error, key) { - return { type: SQLLAB_REDIRECT_FAILED, error, key }; -} - export function redirectSQLLab(formData) { - return function (dispatch) { - const { url, payload } = getExploreUrlAndPayload({ formData, endpointType: 'query' }); - $.ajax({ - type: 'POST', - url, - data: { - form_data: JSON.stringify(payload), - }, - success: (response) => { - const redirectUrl = new URI(window.location); - redirectUrl - .pathname('/superset/sqllab') - .search({ datasourceKey: formData.datasource, sql: response.query }); - window.open(redirectUrl.href(), '_blank'); - }, - error: (xhr, status, error) => dispatch(sqllabRedirectFailed(error, formData.slice_id)), - }); + return (dispatch) => { + const { url } = getExploreUrlAndPayload({ formData, endpointType: 'query' }); + return SupersetClient.get({ url }) + .then(({ json }) => { + const redirectUrl = new URL(window.location); + redirectUrl.pathname = '/superset/sqllab'; + for (const key of redirectUrl.searchParams.keys()) { + redirectUrl.searchParams.delete(key); + } + redirectUrl.searchParams.set('datasourceKey', formData.datasource); + redirectUrl.searchParams.set('sql', json.query); + window.open(redirectUrl.href, '_blank'); + }) + .catch(() => dispatch(addDangerToast(t('An error occurred while loading the SQL')))); }; } diff --git a/superset/assets/src/common.js b/superset/assets/src/common.js index 69c255684..4b1add9ec 100644 --- a/superset/assets/src/common.js +++ b/superset/assets/src/common.js @@ -1,14 +1,14 @@ -/* eslint-disable global-require */ +/* eslint global-require: 0, no-console: 0 */ import $ from 'jquery'; +import { SupersetClient } from '@superset-ui/core'; +import 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'; + import airbnb from './modules/colorSchemes/airbnb'; import categoricalSchemes from './modules/colorSchemes/categorical'; import lyft from './modules/colorSchemes/lyft'; import { getInstance } from './modules/ColorSchemeManager'; import { toggleCheckbox } from './modules/utils'; -// Everything imported in this file ends up in the common entry file -// be mindful of double-imports - $(document).ready(function () { $(':checkbox[data-checkbox-api-prefix]').change(function () { const $this = $(this); @@ -22,10 +22,9 @@ $(document).ready(function () { ev.preventDefault(); const targetUrl = ev.currentTarget.href; - $.ajax(targetUrl) - .then(() => { - location.reload(); - }); + $.ajax(targetUrl).then(() => { + location.reload(); + }); }); }); @@ -37,9 +36,18 @@ getInstance() .setDefaultSchemeName('bnbColors'); export function appSetup() { - // A set of hacks to allow apps to run within a FAB template + // A set of hacks to allow apps to run within a FAB template // this allows for the server side generated menus to function window.$ = $; window.jQuery = $; require('bootstrap'); + + SupersetClient.configure({ + protocol: (window.location && window.location.protocol) || '', + host: (window.location && window.location.host) || '', + }) + .init() + .catch((error) => { + console.warn('Error initializing SupersetClient', error); + }); } diff --git a/superset/assets/src/explore/components/ExploreChartPanel.jsx b/superset/assets/src/explore/components/ExploreChartPanel.jsx index bcda75d71..9d30284eb 100644 --- a/superset/assets/src/explore/components/ExploreChartPanel.jsx +++ b/superset/assets/src/explore/components/ExploreChartPanel.jsx @@ -62,7 +62,7 @@ class ExploreChartPanel extends React.PureComponent { latestQueryFormData={chart.latestQueryFormData} lastRendered={chart.lastRendered} queryResponse={chart.queryResponse} - queryRequest={chart.queryRequest} + queryController={chart.queryController} triggerQuery={chart.triggerQuery} /> ); diff --git a/superset/assets/src/explore/components/ExploreViewContainer.jsx b/superset/assets/src/explore/components/ExploreViewContainer.jsx index 34f165dc2..fc95cef75 100644 --- a/superset/assets/src/explore/components/ExploreViewContainer.jsx +++ b/superset/assets/src/explore/components/ExploreViewContainer.jsx @@ -54,6 +54,9 @@ class ExploreViewContainer extends React.Component { this.addHistory = this.addHistory.bind(this); this.handleResize = this.handleResize.bind(this); this.handlePopstate = this.handlePopstate.bind(this); + this.onStop = this.onStop.bind(this); + this.onQuery = this.onQuery.bind(this); + this.toggleModal = this.toggleModal.bind(this); } componentDidMount() { @@ -124,7 +127,9 @@ class ExploreViewContainer extends React.Component { } onStop() { - return this.props.chart.queryRequest.abort(); + if (this.props.chart && this.props.chart.queryController) { + this.props.chart.queryController.abort(); + } } getWidth() { @@ -262,7 +267,7 @@ class ExploreViewContainer extends React.Component { > {this.state.showModal && ( @@ -271,9 +276,9 @@ class ExploreViewContainer extends React.Component {
x).length; } - handleAnnotationType(annotationType) { this.setState({ annotationType, @@ -199,31 +210,25 @@ export default class AnnotationLayer extends React.PureComponent { fetchOptions(annotationType, sourceType, isLoadingOptions) { if (isLoadingOptions === true) { if (sourceType === ANNOTATION_SOURCE_TYPES.NATIVE) { - $.ajax({ - type: 'GET', - url: '/annotationlayermodelview/api/read?', - }).then((data) => { - const layers = data ? data.result.map(layer => ({ - value: layer.id, - label: layer.name, - })) : []; + SupersetClient.get({ endpoint: '/annotationlayermodelview/api/read?' }).then(({ json }) => { + const layers = json + ? json.result.map(layer => ({ + value: layer.id, + label: layer.name, + })) + : []; this.setState({ isLoadingOptions: false, valueOptions: layers, }); }); } else if (requiresQuery(sourceType)) { - $.ajax({ - type: 'GET', - url: '/superset/user_slices', - }).then(data => + SupersetClient.get({ endpoint: '/superset/user_slices' }).then(({ json }) => this.setState({ isLoadingOptions: false, - valueOptions: data.filter( - x => getSupportedSourceTypes(annotationType) - .find(v => v === x.viz_type)) - .map(x => ({ value: x.id, label: x.title, slice: x }), - ), + valueOptions: json + .filter(x => getSupportedSourceTypes(annotationType).find(v => v === x.viz_type)) + .map(x => ({ value: x.id, label: x.title, slice: x })), }), ); } else { @@ -266,26 +271,26 @@ export default class AnnotationLayer extends React.PureComponent { } renderValueConfiguration() { - const { annotationType, sourceType, value, - valueOptions, isLoadingOptions } = this.state; + const { annotationType, sourceType, value, valueOptions, isLoadingOptions } = this.state; let label = ''; let description = ''; if (requiresQuery(sourceType)) { if (sourceType === ANNOTATION_SOURCE_TYPES.NATIVE) { - label = t('Annotation Layer'); - description = t('Select the Annotation Layer you would like to use.'); + label = 'Annotation Layer'; + description = 'Select the Annotation Layer you would like to use.'; } else { - label = t('Chart'); + label = label = t('Chart'); description = `Use a pre defined Superset Chart as a source for annotations and overlays. - 'your chart must be one of these visualization types: - '[${getSupportedSourceTypes(annotationType) - .map(x => ((x in vizTypes && 'label' in vizTypes[x]) ? vizTypes[x].label : '')).join(', ')}]'`; + your chart must be one of these visualization types: + [${getSupportedSourceTypes(annotationType) + .map(x => (x in vizTypes && 'label' in vizTypes[x] ? vizTypes[x].label : '')) + .join(', ')}]`; } } else if (annotationType === AnnotationTypes.FORMULA) { - label = t('Formula'); - description = t(`Expects a formula with depending time parameter 'x' + label = 'Formula'; + description = `Expects a formula with depending time parameter 'x' in milliseconds since epoch. mathjs is used to evaluate the formulas. - Example: '2x+5'`); + Example: '2x+5'`; } if (requiresQuery(sourceType)) { return ( @@ -300,10 +305,11 @@ export default class AnnotationLayer extends React.PureComponent { isLoading={isLoadingOptions} value={value} onChange={this.handleValue} - validationErrors={!value ? [t('Mandatory')] : []} + validationErrors={!value ? ['Mandatory'] : []} /> ); - } if (annotationType === AnnotationTypes.FORMULA) { + } + if (annotationType === AnnotationTypes.FORMULA) { return ( ); } @@ -322,37 +328,43 @@ export default class AnnotationLayer extends React.PureComponent { } renderSliceConfiguration() { - const { annotationType, sourceType, value, valueOptions, overrides, titleColumn, - timeColumn, intervalEndColumn, descriptionColumns } = this.state; + const { + annotationType, + sourceType, + value, + valueOptions, + overrides, + titleColumn, + timeColumn, + intervalEndColumn, + descriptionColumns, + } = this.state; const slice = (valueOptions.find(x => x.value === value) || {}).slice; if (sourceType !== ANNOTATION_SOURCE_TYPES.NATIVE && slice) { - const columns = (slice.data.groupby || []).concat( - (slice.data.all_columns || [])).map(x => ({ value: x, label: x })); - const timeColumnOptions = slice.data.include_time ? - [{ value: '__timestamp', label: '__timestamp' }].concat(columns) : columns; + const columns = (slice.data.groupby || []) + .concat(slice.data.all_columns || []) + .map(x => ({ value: x, label: x })); + const timeColumnOptions = slice.data.include_time + ? [{ value: '__timestamp', label: '__timestamp' }].concat(columns) + : columns; return (
{ - }} + onSelect={() => {}} title="Annotation Slice Configuration" - info={ - `This section allows you to configure how to use the slice - to generate annotations.` - } + info={`This section allows you to configure how to use the slice + to generate annotations.`} > - { - ( - annotationType === AnnotationTypes.EVENT || - annotationType === AnnotationTypes.INTERVAL - ) && + {(annotationType === AnnotationTypes.EVENT || + annotationType === AnnotationTypes.INTERVAL) && ( this.setState({ timeColumn: v })} /> - } - { - annotationType === AnnotationTypes.INTERVAL && + )} + {annotationType === AnnotationTypes.INTERVAL && ( this.setState({ intervalEndColumn: v })} /> - } + )} this.setState({ titleColumn: v })} /> - { - annotationType !== AnnotationTypes.TIME_SERIES && + {annotationType !== AnnotationTypes.TIME_SERIES && ( this.setState({ descriptionColumns: v })} /> - } + )}
); } - return (''); + return ''; } renderDisplayConfiguration() { const { color, opacity, style, width, showMarkers, hideLine, annotationType } = this.state; const colorScheme = [...getScheme(this.props.colorScheme)]; - if (color && color !== AUTOMATIC_COLOR && - !colorScheme.find(x => x.toLowerCase() === color.toLowerCase())) { + if ( + color && + color !== AUTOMATIC_COLOR && + !colorScheme.find(x => x.toLowerCase() === color.toLowerCase()) + ) { colorScheme.push(color); } return ( @@ -493,12 +502,12 @@ export default class AnnotationLayer extends React.PureComponent { this.setState({ style: v })} @@ -506,12 +515,12 @@ export default class AnnotationLayer extends React.PureComponent { this.setState({ opacity: v })} @@ -530,7 +539,7 @@ export default class AnnotationLayer extends React.PureComponent { bsSize="xsmall" onClick={() => this.setState({ color: AUTOMATIC_COLOR })} > - {t('Automatic Color')} + Automatic Color
@@ -541,42 +550,36 @@ export default class AnnotationLayer extends React.PureComponent { value={width} onChange={v => this.setState({ width: v })} /> - {annotationType === AnnotationTypes.TIME_SERIES && - this.setState({ showMarkers: v })} - /> - } - {annotationType === AnnotationTypes.TIME_SERIES && - this.setState({ hideLine: v })} - /> - } + {annotationType === AnnotationTypes.TIME_SERIES && ( + this.setState({ showMarkers: v })} + /> + )} + {annotationType === AnnotationTypes.TIME_SERIES && ( + this.setState({ hideLine: v })} + /> + )} ); } render() { - const { isNew, name, annotationType, - sourceType, show } = this.state; + const { isNew, name, annotationType, sourceType, show } = this.state; const isValid = this.isValidForm(); return (
- { - this.props.error && - - ERROR: {this.props.error} - - } + {this.props.error && ERROR: {this.props.error}}
({ value: x, label: getAnnotationTypeLabel(x) }))} + options={getSupportedAnnotationTypes(this.props.vizType).map(x => ({ + value: x, + label: getAnnotationTypeLabel(x), + }))} value={annotationType} onChange={this.handleAnnotationType} /> - {!!getSupportedSourceTypes(annotationType).length && + {!!getSupportedSourceTypes(annotationType).length && ( ({ value: x, label: getAnnotationSourceTypeLabels(x) }))} + options={getSupportedSourceTypes(annotationType).map(x => ({ + value: x, + label: getAnnotationSourceTypeLabels(x), + }))} value={sourceType} onChange={this.handleAnnotationSourceType} /> - } - { this.renderValueConfiguration() } + )} + {this.renderValueConfiguration()}
- { this.renderSliceConfiguration() } - { this.renderDisplayConfiguration() } + {this.renderSliceConfiguration()} + {this.renderDisplayConfiguration()}
-
- -
@@ -656,5 +652,6 @@ export default class AnnotationLayer extends React.PureComponent { ); } } + AnnotationLayer.propTypes = propTypes; AnnotationLayer.defaultProps = defaultProps; diff --git a/superset/assets/src/explore/reducers/getInitialState.js b/superset/assets/src/explore/reducers/getInitialState.js index 28910bf41..dec455c6f 100644 --- a/superset/assets/src/explore/reducers/getInitialState.js +++ b/superset/assets/src/explore/reducers/getInitialState.js @@ -5,9 +5,10 @@ import { now } from '../../modules/dates'; import { getChartKey } from '../exploreUtils'; import { getControlsState, getFormDataFromControls } from '../store'; -export default function (bootstrapData) { +export default function getInitialState(bootstrapData) { const controls = getControlsState(bootstrapData, bootstrapData.form_data); const rawFormData = { ...bootstrapData.form_data }; + const bootstrappedState = { ...bootstrapData, common: { @@ -20,11 +21,15 @@ export default function (bootstrapData) { isDatasourceMetaLoading: false, isStarred: false, }; + const slice = bootstrappedState.slice; + const sliceFormData = slice ? getFormDataFromControls(getControlsState(bootstrapData, slice.form_data)) : null; + const chartKey = getChartKey(bootstrappedState); + return { featureFlags: bootstrapData.common.feature_flags, charts: { @@ -36,7 +41,7 @@ export default function (bootstrapData) { chartUpdateStartTime: now(), latestQueryFormData: getFormDataFromControls(controls), sliceFormData, - queryRequest: null, + queryController: null, queryResponse: null, triggerQuery: true, lastRendered: 0, diff --git a/superset/assets/yarn.lock b/superset/assets/yarn.lock index bfaa8c61a..fdc093d1d 100644 --- a/superset/assets/yarn.lock +++ b/superset/assets/yarn.lock @@ -66,12 +66,6 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/runtime@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0.tgz#adeb78fedfc855aa05bc041640f3f6f98e85424c" - dependencies: - regenerator-runtime "^0.12.0" - "@babel/template@7.0.0-beta.44": version "7.0.0-beta.44" resolved "http://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" @@ -130,7 +124,7 @@ "@data-ui/event-flow@^0.0.54": version "0.0.54" - resolved "http://registry.npmjs.org/@data-ui/event-flow/-/event-flow-0.0.54.tgz#bb03e1fd2b5634248655b8df9d3c6c38a747e65e" + resolved "https://registry.yarnpkg.com/@data-ui/event-flow/-/event-flow-0.0.54.tgz#bb03e1fd2b5634248655b8df9d3c6c38a747e65e" dependencies: "@data-ui/forms" "0.0.50" "@data-ui/radial-chart" "0.0.54" @@ -193,7 +187,7 @@ "@data-ui/radial-chart@0.0.54": version "0.0.54" - resolved "http://registry.npmjs.org/@data-ui/radial-chart/-/radial-chart-0.0.54.tgz#0d28b07681d9b6027d9ac23b729241827d513001" + resolved "https://registry.yarnpkg.com/@data-ui/radial-chart/-/radial-chart-0.0.54.tgz#0d28b07681d9b6027d9ac23b729241827d513001" dependencies: "@data-ui/shared" "0.0.54" "@data-ui/theme" "0.0.48" @@ -206,7 +200,7 @@ "@data-ui/shared@0.0.54": version "0.0.54" - resolved "http://registry.npmjs.org/@data-ui/shared/-/shared-0.0.54.tgz#2fb0d6dee90dac20bf8f3c2913c6850a8223d59b" + resolved "https://registry.yarnpkg.com/@data-ui/shared/-/shared-0.0.54.tgz#2fb0d6dee90dac20bf8f3c2913c6850a8223d59b" dependencies: "@data-ui/theme" "0.0.48" "@vx/event" "0.0.143" @@ -244,7 +238,7 @@ "@data-ui/sparkline@^0.0.54": version "0.0.54" - resolved "http://registry.npmjs.org/@data-ui/sparkline/-/sparkline-0.0.54.tgz#ce3d166d9e0b239a0ba02f3894cb9e8c84171cef" + resolved "https://registry.yarnpkg.com/@data-ui/sparkline/-/sparkline-0.0.54.tgz#ce3d166d9e0b239a0ba02f3894cb9e8c84171cef" dependencies: "@data-ui/shared" "0.0.54" "@data-ui/theme" "0.0.8" @@ -377,23 +371,18 @@ version "3.1.0" resolved "https://registry.yarnpkg.com/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz#497c67a1cef50d1a2459ba60f315e448d2ad87fe" -"@sinonjs/formatio@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.0.0.tgz#9d282d81030a03a03fa0c5ce31fd8786a4da311a" - dependencies: - "@sinonjs/samsam" "2.1.0" - "@sinonjs/formatio@^2.0.0": version "2.0.0" - resolved "http://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" + resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" dependencies: samsam "1.3.0" -"@sinonjs/samsam@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-2.1.0.tgz#b8b8f5b819605bd63601a6ede459156880f38ea3" +"@superset-ui/core@^0.0.5": + version "0.0.5" + resolved "https://registry.yarnpkg.com/@superset-ui/core/-/core-0.0.5.tgz#2dbb39d7ec55c01a017c923468b276240a9fbc8b" dependencies: - array-from "^2.1.1" + babel-runtime "^6.26.0" + whatwg-fetch "^2.0.4" "@types/blob-util@1.3.3": version "1.3.3" @@ -411,8 +400,8 @@ "@types/jquery" "*" "@types/chai@*": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.5.tgz#6163dc60078d215ec46186dc76062ef6ed68d39c" + version "4.1.4" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.4.tgz#5ca073b330d90b4066d6ce18f60d57f2084ce8ca" "@types/chai@4.0.8": version "4.0.8" @@ -423,8 +412,8 @@ resolved "https://registry.yarnpkg.com/@types/d3/-/d3-3.5.38.tgz#76f8f2e9159ae562965b2fa0e6fbee1aa643a1bc" "@types/jquery@*": - version "3.3.10" - resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.3.10.tgz#d0afaec7ee55f591992e74c607df5dc7cd9c76ab" + version "3.3.6" + resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.3.6.tgz#5932ead926307ca21e5b36808257f7c926b06565" "@types/jquery@3.2.16": version "3.2.16" @@ -443,8 +432,8 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.44.tgz#1d4a798e53f35212fd5ad4d04050620171cd5b5e" "@types/node@*": - version "10.11.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.11.0.tgz#ddd0d67a3b6c3810dd1a59e36675fa82de5e19ae" + version "10.9.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.9.4.tgz#0f4cb2dc7c1de6096055357f70179043c33e9897" "@types/sinon-chai@2.7.29": version "2.7.29" @@ -454,8 +443,8 @@ "@types/sinon" "*" "@types/sinon@*": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-5.0.2.tgz#7a9d64df40b26dd48d673f745addc2fdb2bda193" + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-5.0.1.tgz#a15b36ec42f1f53166617491feabd1734cb03e21" "@types/sinon@4.0.0": version "4.0.0" @@ -941,6 +930,10 @@ abbrev@~1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" +abortcontroller-polyfill@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.1.9.tgz#9fefe359fda2e9e0932dc85e6106453ac393b2da" + accepts@~1.3.4, accepts@~1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" @@ -969,7 +962,7 @@ acorn-globals@^4.1.0: acorn-jsx@^3.0.0: version "3.0.1" - resolved "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" dependencies: acorn "^3.0.4" @@ -979,13 +972,17 @@ acorn-walk@^6.0.1: acorn@^3.0.4: version "3.3.0" - resolved "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" acorn@^4.0.4: version "4.0.13" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" -acorn@^5.0.0, acorn@^5.5.0, acorn@^5.5.3, acorn@^5.6.2, acorn@^5.7.3: +acorn@^5.0.0, acorn@^5.5.0, acorn@^5.6.2: + version "5.7.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.2.tgz#91fa871883485d06708800318404e72bfb26dcc5" + +acorn@^5.5.3, acorn@^5.7.3: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" @@ -1022,8 +1019,8 @@ ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0: json-schema-traverse "^0.3.0" ajv@^6.1.0: - version "6.5.4" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.4.tgz#247d5274110db653706b550fcc2b797ca28cfc59" + version "6.5.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.3.tgz#71a569d189ecf4f4f321224fecb166f071dd90f9" dependencies: fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" @@ -1041,8 +1038,8 @@ ansi-align@^2.0.0: string-width "^2.0.0" ansi-colors@^3.0.0: - version "3.0.6" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.0.6.tgz#a0b9e00e8c1cc6685b1c3130dbeb9abed03ca6a4" + version "3.0.5" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.0.5.tgz#cb9dc64993b64fd6945485f797fc3853137d9a7b" ansi-escapes@^1.0.0: version "1.4.0" @@ -1172,6 +1169,10 @@ array-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -1180,10 +1181,6 @@ array-flatten@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" -array-from@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" - array-includes@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" @@ -1862,8 +1859,8 @@ babel-plugin-transform-react-jsx@^6.24.1: babel-runtime "^6.22.0" babel-plugin-transform-react-remove-prop-types@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.18.tgz#85ff79d66047b34288c6f7cc986b8854ab384f8c" + version "0.4.15" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.15.tgz#7ba830e77276a0e788cd58ea527b5f70396e12a7" babel-plugin-transform-regenerator@^6.22.0: version "6.26.0" @@ -2088,8 +2085,8 @@ bignumber.js@^7.0.0: resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" binary-extensions@^1.0.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" + version "1.11.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" bindings@^1.2.1: version "1.3.0" @@ -2149,6 +2146,21 @@ body-parser@1.18.2: raw-body "2.3.2" type-is "~1.6.15" +body-parser@1.18.3: + version "1.18.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "~1.6.3" + iconv-lite "0.4.23" + on-finished "~2.3.0" + qs "6.5.2" + raw-body "2.3.3" + type-is "~1.6.16" + bonjour@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" @@ -2175,8 +2187,8 @@ bootstrap-slider@9.9.0: resolved "https://registry.yarnpkg.com/bootstrap-slider/-/bootstrap-slider-9.9.0.tgz#4e14ecc6401901da1ddf7681aa24e33b00dadce8" bootstrap-slider@^10.0.0: - version "10.2.1" - resolved "https://registry.yarnpkg.com/bootstrap-slider/-/bootstrap-slider-10.2.1.tgz#c07d7a7d817ba794ac69b56ae1280974e39b63ff" + version "10.2.0" + resolved "https://registry.yarnpkg.com/bootstrap-slider/-/bootstrap-slider-10.2.0.tgz#b71bee15b210442e43f949cb438ac25249dfdc07" bootstrap@^3.3.6: version "3.3.7" @@ -2264,7 +2276,7 @@ browser-resolve@^1.11.3: browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" - resolved "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" dependencies: buffer-xor "^1.0.3" cipher-base "^1.0.0" @@ -2292,7 +2304,7 @@ browserify-des@^1.0.0: browserify-rsa@^4.0.0: version "4.0.1" - resolved "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" dependencies: bn.js "^4.1.0" randombytes "^2.0.1" @@ -2340,7 +2352,7 @@ buffer-alloc-unsafe@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" -buffer-alloc@^1.2.0: +buffer-alloc@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" dependencies: @@ -2488,8 +2500,8 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000884: - version "1.0.30000887" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000887.tgz#1769458c27bbdcf61b0cb6b5072bb6cd11fd9c23" + version "1.0.30000884" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000884.tgz#eb82a959698745033b26a4dcd34d89dba7cc6eb3" capture-exit@^1.2.0: version "1.2.0" @@ -2623,13 +2635,9 @@ chokidar@^2.0.0, chokidar@^2.0.2: optionalDependencies: fsevents "^1.2.2" -chownr@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" - -chownr@~1.0.1: +chownr@^1.0.1, chownr@~1.0.1: version "1.0.1" - resolved "http://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" chrome-trace-event@^1.0.0: version "1.0.0" @@ -2637,9 +2645,9 @@ chrome-trace-event@^1.0.0: dependencies: tslib "^1.9.0" -ci-info@^1.0.0, ci-info@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" +ci-info@^1.0.0, ci-info@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.4.0.tgz#4841d53cad49f11b827b648ebde27a6e189b412f" cint@^8.2.1: version "8.2.1" @@ -2774,14 +2782,10 @@ color-convert@^1.9.0, color-convert@^1.9.1: dependencies: color-name "1.1.3" -color-name@1.1.3: +color-name@1.1.3, color-name@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - color-string@^1.5.2: version "1.5.3" resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" @@ -2815,15 +2819,9 @@ columnify@~1.5.4: strip-ansi "^3.0.0" wcwidth "^1.0.0" -combined-stream@1.0.6: +combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5, combined-stream@~1.0.6: version "1.0.6" - resolved "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" - dependencies: - delayed-stream "~1.0.0" - -combined-stream@^1.0.5, combined-stream@~1.0.5, combined-stream@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" dependencies: delayed-stream "~1.0.0" @@ -2837,18 +2835,18 @@ commander@2.11.0: version "2.11.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" -commander@^2.11.0, commander@^2.18.0, commander@^2.9.0: - version "2.18.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970" +commander@^2.11.0, commander@^2.9.0, commander@~2.17.1: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + +commander@^2.18.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" commander@~2.13.0: version "2.13.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" -commander@~2.17.1: - version "2.17.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - common-tags@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.4.0.tgz#1187be4f3d4cf0c0427d43f74eef1f73501614c0" @@ -2868,10 +2866,10 @@ component-emitter@^1.2.1: resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" compressible@~2.0.14: - version "2.0.15" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.15.tgz#857a9ab0a7e5a07d8d837ed43fe2defff64fe212" + version "2.0.14" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.14.tgz#326c5f507fbb055f54116782b969a81b67a29da7" dependencies: - mime-db ">= 1.36.0 < 2" + mime-db ">= 1.34.0 < 2" compression@^1.5.2: version "1.7.3" @@ -2913,8 +2911,8 @@ concat-stream@~1.2.1: bops "0.0.6" config-chain@~1.1.11: - version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + version "1.1.11" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2" dependencies: ini "^1.3.4" proto-list "~1.2.1" @@ -3036,7 +3034,7 @@ create-error-class@^3.0.0: create-hash@^1.1.0, create-hash@^1.1.2: version "1.2.0" - resolved "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" dependencies: cipher-base "^1.0.1" inherits "^2.0.1" @@ -3046,7 +3044,7 @@ create-hash@^1.1.0, create-hash@^1.1.2: create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: version "1.1.7" - resolved "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" dependencies: cipher-base "^1.0.3" create-hash "^1.1.0" @@ -3124,7 +3122,7 @@ css-declaration-sorter@^3.0.0: css-in-js-utils@^2.0.0: version "2.0.1" - resolved "http://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz#3b472b398787291b47cfe3e44fecfdd9e914ba99" + resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz#3b472b398787291b47cfe3e44fecfdd9e914ba99" dependencies: hyphenate-style-name "^1.0.2" isobject "^3.0.1" @@ -3167,15 +3165,6 @@ css-select-base-adapter@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.0.tgz#0102b3d14630df86c3eb9fa9f5456270106cf990" -css-select@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.0.tgz#7aa2921392114831f68db175c0b6a555df74bbd5" - dependencies: - boolbase "^1.0.0" - css-what "2.1" - domutils "^1.7.0" - nth-check "^1.0.1" - css-select@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" @@ -3185,6 +3174,15 @@ css-select@~1.2.0: domutils "1.5.1" nth-check "~1.0.1" +css-select@~1.3.0-rc0: + version "1.3.0-rc0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.3.0-rc0.tgz#6f93196aaae737666ea1036a8cb14a8fcb7a9231" + dependencies: + boolbase "^1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "^1.0.1" + css-selector-tokenizer@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" @@ -3193,13 +3191,6 @@ css-selector-tokenizer@^0.7.0: fastparse "^1.1.1" regexpu-core "^1.0.0" -css-tree@1.0.0-alpha.28: - version "1.0.0-alpha.28" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f" - dependencies: - mdn-data "~1.1.0" - source-map "^0.5.3" - css-tree@1.0.0-alpha.29: version "1.0.0-alpha.29" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" @@ -3207,6 +3198,13 @@ css-tree@1.0.0-alpha.29: mdn-data "~1.1.0" source-map "^0.5.3" +css-tree@1.0.0-alpha25: + version "1.0.0-alpha25" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha25.tgz#1bbfabfbf6eeef4f01d9108ff2edd0be2fe35597" + dependencies: + mdn-data "^1.0.0" + source-map "^0.5.3" + css-unit-converter@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" @@ -3227,13 +3225,13 @@ cssesc@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" -cssnano-preset-default@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.1.tgz#063c874bc82afe49d4a8790688348dce3f59e672" +cssnano-preset-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.0.tgz#c334287b4f7d49fb2d170a92f9214655788e3b6b" dependencies: css-declaration-sorter "^3.0.0" cssnano-util-raw-cache "^4.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-calc "^6.0.0" postcss-colormin "^4.0.0" postcss-convert-values "^4.0.0" @@ -3271,23 +3269,23 @@ cssnano-util-get-match@^4.0.0: resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" cssnano-util-raw-cache@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.0.tgz#be0a2856e25f185f5f7a2bcc0624e28b7f179a9f" dependencies: - postcss "^7.0.0" + postcss "^6.0.0" cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.0.tgz#d2a3de1039aa98bc4ec25001fa050330c2a16dac" cssnano@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.3.tgz#e7848a7aea42f9a70b1108d58986d41a4f4c30b2" + version "4.1.0" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.0.tgz#682c37b84b9b7df616450a5a8dc9269b9bd10734" dependencies: cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.1" + cssnano-preset-default "^4.0.0" is-resolvable "^1.0.0" - postcss "^7.0.0" + postcss "^6.0.0" csso@^3.5.0: version "3.5.1" @@ -3311,6 +3309,12 @@ cssstyle@^1.0.0: dependencies: cssom "0.3.x" +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" @@ -3583,18 +3587,12 @@ debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6. dependencies: ms "2.0.0" -debug@3.1.0, debug@=3.1.0: +debug@3.1.0, debug@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: ms "2.0.0" -debug@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.5.tgz#c2418fbfd7a29f4d4f70ff4cea604d4b64c46407" - dependencies: - ms "^2.1.1" - debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -3776,7 +3774,7 @@ diff@^3.1.0, diff@^3.2.0: diffie-hellman@^5.0.0: version "5.0.3" - resolved "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" dependencies: bn.js "^4.1.0" miller-rabin "^4.0.0" @@ -3875,8 +3873,8 @@ domhandler@^2.3.0: domelementtype "1" dompurify@^1.0.3: - version "1.0.8" - resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-1.0.8.tgz#3fa0d91fde3827d6509d83b43444da56a2796795" + version "1.0.7" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-1.0.7.tgz#33e5c4a5fc84df93b58ca162d1d3f28537aa3ec2" domutils@1.5.1: version "1.5.1" @@ -3885,7 +3883,7 @@ domutils@1.5.1: dom-serializer "0" domelementtype "1" -domutils@^1.5.1, domutils@^1.7.0: +domutils@^1.5.1: version "1.7.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" dependencies: @@ -3945,8 +3943,8 @@ ejs@^2.6.1: resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.62: - version "1.3.70" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.70.tgz#ded377256d92d81b4257d36c65aa890274afcfd2" + version "1.3.62" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.62.tgz#2e8e2dc070c800ec8ce23ff9dfcceb585d6f9ed8" elegant-spinner@^1.0.1: version "1.0.1" @@ -4092,7 +4090,7 @@ es6-iterator@~2.0.3: es6-promise@^3.0.2: version "3.3.1" - resolved "http://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" es6-symbol@^3.0.2, es6-symbol@^3.1.1, es6-symbol@~3.1.1: version "3.1.1" @@ -4193,8 +4191,8 @@ eslint-plugin-import@^2.2.0: resolve "^1.6.0" eslint-plugin-jest@^21.24.1: - version "21.24.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-21.24.1.tgz#aaf3c34e816f07add83d1e9c20696fdc31fac8dc" + version "21.25.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-21.25.0.tgz#b798c6616a2ad444ea25636d877ca3d3bc881348" eslint-plugin-jsx-a11y@^5.1.1: version "5.1.1" @@ -4467,9 +4465,9 @@ exports-loader@^0.7.0: loader-utils "^1.1.0" source-map "0.5.0" -express@^4.16.2, express@^4.16.3: +express@^4.16.2: version "4.16.3" - resolved "http://registry.npmjs.org/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" dependencies: accepts "~1.3.5" array-flatten "1.1.1" @@ -4502,6 +4500,41 @@ express@^4.16.2, express@^4.16.3: utils-merge "1.0.1" vary "~1.1.2" +express@^4.16.3: + version "4.16.4" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" + dependencies: + accepts "~1.3.5" + array-flatten "1.1.1" + body-parser "1.18.3" + content-disposition "0.5.2" + content-type "~1.0.4" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.1.1" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.2" + path-to-regexp "0.1.7" + proxy-addr "~2.0.4" + qs "6.5.2" + range-parser "~1.2.0" + safe-buffer "5.1.2" + send "0.16.2" + serve-static "1.13.2" + setprototypeof "1.1.0" + statuses "~1.4.0" + type-is "~1.6.16" + utils-merge "1.0.1" + vary "~1.1.2" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -4648,6 +4681,15 @@ fd-slicer@~1.0.1: dependencies: pend "~1.2.0" +fetch-mock@^7.0.0-alpha.6: + version "7.0.7" + resolved "https://registry.yarnpkg.com/fetch-mock/-/fetch-mock-7.0.7.tgz#f9795dd56cc1b2314c4961a7bf012982438c2c5c" + dependencies: + babel-polyfill "^6.26.0" + glob-to-regexp "^0.4.0" + path-to-regexp "^2.2.1" + whatwg-url "^6.5.0" + figgy-pudding@^3.1.0, figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" @@ -4789,10 +4831,10 @@ flush-write-stream@^1.0.0: readable-stream "^2.0.4" follow-redirects@^1.0.0: - version "1.5.8" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.8.tgz#1dbfe13e45ad969f813e86c00e5296f525c885a1" + version "1.5.7" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.7.tgz#a39e4804dacb90202bca76a9e2ac10433ca6a69a" dependencies: - debug "=3.1.0" + debug "^3.1.0" for-each@^0.3.2: version "0.3.3" @@ -5160,7 +5202,11 @@ glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" -glob@7.1.2: +glob-to-regexp@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.0.tgz#49bd677b1671022bd10921c3788f23cdebf9c7e6" + +glob@7.1.2, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.0: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -5171,17 +5217,6 @@ glob@7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.0: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - global-cache@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/global-cache/-/global-cache-1.2.1.tgz#39ca020d3dd7b3f0934c52b75363f8d53312c16d" @@ -5548,9 +5583,9 @@ http-errors@1.6.2: setprototypeof "1.0.3" statuses ">= 1.3.1 < 2" -http-errors@~1.6.2: +http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: version "1.6.3" - resolved "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" dependencies: depd "~1.1.2" inherits "2.0.3" @@ -5604,7 +5639,7 @@ hyphenate-style-name@^1.0.2: iconv-lite@0.2: version "0.2.11" - resolved "http://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8" iconv-lite@0.4.19: version "0.4.19" @@ -5869,7 +5904,7 @@ is-buffer@^1.1.4, is-buffer@^1.1.5, is-buffer@~1.1.1: is-builtin-module@^1.0.0: version "1.0.0" - resolved "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" dependencies: builtin-modules "^1.0.0" @@ -5879,15 +5914,15 @@ is-callable@^1.1.1, is-callable@^1.1.3, is-callable@^1.1.4: is-ci@1.0.10: version "1.0.10" - resolved "http://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" dependencies: ci-info "^1.0.0" is-ci@^1.0.10: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.0.tgz#3f4a08d6303a09882cef3f0fb97439c5f5ce2d53" dependencies: - ci-info "^1.5.0" + ci-info "^1.3.0" is-color-stop@^1.0.0: version "1.1.0" @@ -6061,7 +6096,7 @@ is-number@^4.0.0: is-obj@^1.0.0: version "1.0.1" - resolved "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" is-path-cwd@^1.0.0: version "1.0.0" @@ -6146,10 +6181,8 @@ is-svg@^3.0.0: html-comment-regex "^1.1.0" is-symbol@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - dependencies: - has-symbols "^1.0.0" + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" is-typedarray@~1.0.0: version "1.0.0" @@ -6228,7 +6261,11 @@ istanbul-api@^1.3.1: mkdirp "^0.5.1" once "^1.4.0" -istanbul-lib-coverage@^1.2.0, istanbul-lib-coverage@^1.2.1: +istanbul-lib-coverage@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" + +istanbul-lib-coverage@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" @@ -6633,6 +6670,13 @@ js-yaml@^3.10.0, js-yaml@^3.12.0, js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1 argparse "^1.0.7" esprima "^4.0.0" +js-yaml@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -6799,7 +6843,7 @@ just-extend@^3.0.0: kdbush@^1.0.1: version "1.0.1" - resolved "http://registry.npmjs.org/kdbush/-/kdbush-1.0.1.tgz#3cbd03e9dead9c0f6f66ccdb96450e5cecc640e0" + resolved "https://registry.yarnpkg.com/kdbush/-/kdbush-1.0.1.tgz#3cbd03e9dead9c0f6f66ccdb96450e5cecc640e0" kdbush@^2.0.1: version "2.0.1" @@ -6810,8 +6854,8 @@ keycode@^2.1.2: resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.2.0.tgz#3d0af56dc7b8b8e5cba8d0a97f107204eec22b04" killable@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + version "1.0.0" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" @@ -6974,7 +7018,7 @@ load-json-file@^1.0.0: load-json-file@^2.0.0: version "2.0.0" - resolved "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" @@ -6982,8 +7026,8 @@ load-json-file@^2.0.0: strip-bom "^3.0.0" loader-runner@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979" + version "2.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" loader-utils@^0.2.16: version "0.2.17" @@ -7023,8 +7067,8 @@ lockfile@~1.0.2: signal-exit "^3.0.2" lodash-es@^4.17.5, lodash-es@^4.2.1: - version "4.17.11" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.11.tgz#145ab4a7ac5c5e52a3531fb4f310255a152b4be0" + version "4.17.10" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.10.tgz#62cd7104cdf5dd87f235a837f0ede0e8e5117e05" lodash._baseuniq@~4.6.0: version "4.6.0" @@ -7101,11 +7145,11 @@ lodash.without@~4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" -lodash@4.17.10: +lodash@4.17.10, lodash@^4.0.1, lodash@^4.0.8, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: version "4.17.10" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" -lodash@^4.0.1, lodash@^4.0.8, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: +lodash@^4.13.1, lodash@^4.17.11: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" @@ -7133,8 +7177,8 @@ loglevel@^1.4.1: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" lolex@^2.2.0, lolex@^2.3.2: - version "2.7.5" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" + version "2.7.3" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.3.tgz#5d342280543993aca4be31df9e462963a178e45b" loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.0, loose-envify@^1.3.1: version "1.4.0" @@ -7142,6 +7186,13 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.0, loose-envify@^1.3 dependencies: js-tokens "^3.0.0 || ^4.0.0" +loud-rejection@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + lowercase-keys@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" @@ -7171,7 +7222,7 @@ luma.gl@^5.3.0: magic-string@^0.22.4: version "0.22.5" - resolved "http://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" dependencies: vlq "^0.2.2" @@ -7292,11 +7343,10 @@ math.gl@^1.1.0, math.gl@^1.2.1: gl-vec3 "^1.0.3" gl-vec4 "^1.0.1" -math.gl@^2.0.0, math.gl@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/math.gl/-/math.gl-2.2.0.tgz#301dcda760ae235f5fdf471dd67ef2aa8c74d659" +math.gl@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/math.gl/-/math.gl-2.0.0.tgz#c41cf8f5cfce820161511c435d3f706eebd7deb0" dependencies: - "@babel/runtime" "^7.0.0" gl-mat3 "^1.0.0" gl-mat4 "^1.1.4" gl-quat "^1.0.0" @@ -7310,7 +7360,7 @@ mathfn@^1.0.0: mathjs@^3.20.2: version "3.20.2" - resolved "http://registry.npmjs.org/mathjs/-/mathjs-3.20.2.tgz#3218aebde7de8cb5627c8fe3a1a216bf399ba91d" + resolved "https://registry.yarnpkg.com/mathjs/-/mathjs-3.20.2.tgz#3218aebde7de8cb5627c8fe3a1a216bf399ba91d" dependencies: complex.js "2.0.4" decimal.js "9.0.1" @@ -7342,6 +7392,10 @@ mdast-add-list-metadata@1.0.1: dependencies: unist-util-visit-parents "1.1.2" +mdn-data@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.2.0.tgz#eadd28b0f2d307cf27e71524609bfb749ebfc0b6" + mdn-data@~1.1.0: version "1.1.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" @@ -7413,7 +7467,7 @@ micromatch@^2.1.5, micromatch@^2.3.11: parse-glob "^3.0.4" regex-cache "^0.4.2" -micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9: +micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" dependencies: @@ -7438,7 +7492,7 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.36.0 < 2", mime-db@~1.36.0: +"mime-db@>= 1.34.0 < 2", mime-db@~1.36.0: version "1.36.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397" @@ -7475,8 +7529,8 @@ min-document@^2.19.0: dom-walk "^0.1.0" mini-css-extract-plugin@^0.4.0: - version "0.4.3" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.3.tgz#98d60fcc5d228c3e36a9bd15a1d6816d6580beb8" + version "0.4.2" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.2.tgz#b3ecc0d6b1bbe5ff14add42b946a7b200cf78651" dependencies: loader-utils "^1.1.0" schema-utils "^1.0.0" @@ -7563,14 +7617,14 @@ mixin-deep@^1.2.0: is-extendable "^1.0.1" mjolnir.js@^1.0.0, mjolnir.js@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/mjolnir.js/-/mjolnir.js-1.2.2.tgz#65938d6b443fed5b5c65456e6c934b01fece3610" + version "1.2.1" + resolved "https://registry.yarnpkg.com/mjolnir.js/-/mjolnir.js-1.2.1.tgz#ab3237afc5fbbc8aa4bafc965b10735c4bf8328c" dependencies: hammerjs "^2.0.8" mkdirp@0.5.0: version "0.5.0" - resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" dependencies: minimist "0.0.8" @@ -7607,10 +7661,6 @@ ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" -ms@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - multicast-dns-service-types@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" @@ -7669,8 +7719,8 @@ nearley@^2.7.10: semver "^5.4.1" needle@^2.2.1: - version "2.2.4" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" + version "2.2.2" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.2.tgz#1120ca4c41f2fcc6976fd28a8968afe239929418" dependencies: debug "^2.1.2" iconv-lite "^0.4.4" @@ -7693,18 +7743,18 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" nise@^1.2.0: - version "1.4.5" - resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.5.tgz#979a97a19c48d627bb53703726ae8d53ce8d4b3e" + version "1.4.4" + resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.4.tgz#b8d9dd35334c99e514b75e46fcc38e358caecdd0" dependencies: - "@sinonjs/formatio" "3.0.0" + "@sinonjs/formatio" "^2.0.0" just-extend "^3.0.0" lolex "^2.3.2" path-to-regexp "^1.7.0" text-encoding "^0.6.4" node-abi@^2.2.0: - version "2.4.4" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.4.4.tgz#410d8968809fe616dc078a181c44a370912f12fd" + version "2.4.3" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.4.3.tgz#43666b7b17e57863e572409edbb82115ac7af28b" dependencies: semver "^5.4.1" @@ -7819,8 +7869,8 @@ node-pre-gyp@^0.10.0: tar "^4" node-releases@^1.0.0-alpha.11: - version "1.0.0-alpha.12" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.12.tgz#32e461b879ea76ac674e511d9832cf29da345268" + version "1.0.0-alpha.11" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.11.tgz#73c810acc2e5b741a17ddfbb39dfca9ab9359d8a" dependencies: semver "^5.3.0" @@ -8241,8 +8291,8 @@ opener@~1.4.2: resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8" opn@^5.1.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.4.0.tgz#cb545e7aab78562beb11aa3bfabc7042e1761035" + version "5.3.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" dependencies: is-wsl "^1.1.0" @@ -8345,7 +8395,7 @@ p-finally@^1.0.0: p-is-promise@^1.1.0: version "1.1.0" - resolved "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" p-limit@^1.1.0: version "1.3.0" @@ -8406,7 +8456,7 @@ parallel-transform@^1.1.0: parse-asn1@^5.0.0: version "5.1.1" - resolved "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" dependencies: asn1.js "^4.0.0" browserify-aes "^1.0.0" @@ -8541,6 +8591,10 @@ path-to-regexp@^1.7.0: dependencies: isarray "0.0.1" +path-to-regexp@^2.2.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.4.0.tgz#35ce7f333d5616f1c1e1bfe266c3aba2e5b2e704" + path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -8563,8 +8617,8 @@ pbf@^3.0.5: resolve-protobuf-schema "^2.0.0" pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + version "3.0.16" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c" dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -8585,8 +8639,8 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" phin@^2.9.1: - version "2.9.2" - resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.2.tgz#0a82d5b6dd75552b665f371f8060689c1af7336e" + version "2.9.1" + resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.1.tgz#0de9059b1a9bd56fcb1bd8a374344a06f25f1901" pify@^2.0.0, pify@^2.2.0: version "2.3.0" @@ -8644,7 +8698,7 @@ pngjs@^3.0.0: po2json@^0.4.5: version "0.4.5" - resolved "http://registry.npmjs.org/po2json/-/po2json-0.4.5.tgz#47bb2952da32d58a1be2f256a598eebc0b745118" + resolved "https://registry.yarnpkg.com/po2json/-/po2json-0.4.5.tgz#47bb2952da32d58a1be2f256a598eebc0b745118" dependencies: gettext-parser "1.1.0" nomnom "1.8.1" @@ -8662,109 +8716,108 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" postcss-calc@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-6.0.2.tgz#4d9a43e27dbbf27d095fecb021ac6896e2318337" + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-6.0.1.tgz#3d24171bbf6e7629d422a436ebfe6dd9511f4330" dependencies: css-unit-converter "^1.1.1" - postcss "^7.0.2" + postcss "^6.0.0" postcss-selector-parser "^2.2.2" reduce-css-calc "^2.0.0" postcss-colormin@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.2.tgz#93cd1fa11280008696887db1a528048b18e7ed99" + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.1.tgz#6f1c18a0155bc69613f2ff13843e2e4ae8ff0bbe" dependencies: browserslist "^4.0.0" color "^3.0.0" has "^1.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-value-parser "^3.0.0" postcss-convert-values@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.0.tgz#77d77d9aed1dc4e6956e651cc349d53305876f62" dependencies: - postcss "^7.0.0" + postcss "^6.0.0" postcss-value-parser "^3.0.0" postcss-discard-comments@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.1.tgz#30697735b0c476852a7a11050eb84387a67ef55d" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.0.tgz#9684a299e76b3e93263ef8fd2adbf1a1c08fd88d" dependencies: - postcss "^7.0.0" + postcss "^6.0.0" postcss-discard-duplicates@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.0.tgz#42f3c267f85fa909e042c35767ecfd65cb2bd72c" dependencies: - postcss "^7.0.0" + postcss "^6.0.0" postcss-discard-empty@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.0.tgz#55e18a59c74128e38c7d2804bcfa4056611fb97f" dependencies: - postcss "^7.0.0" + postcss "^6.0.0" postcss-discard-overridden@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.0.tgz#4a0bf85978784cf1f81ed2c1c1fd9d964a1da1fa" dependencies: - postcss "^7.0.0" + postcss "^6.0.0" postcss-merge-longhand@^4.0.0: - version "4.0.6" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.6.tgz#2b938fa3529c3d1657e53dc7ff0fd604dbc85ff1" + version "4.0.5" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.5.tgz#00898d72347fc7e40bb564b11bdc08119c599b59" dependencies: css-color-names "0.0.4" - postcss "^7.0.0" + postcss "^6.0.0" postcss-value-parser "^3.0.0" stylehacks "^4.0.0" postcss-merge-rules@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.2.tgz#2be44401bf19856f27f32b8b12c0df5af1b88e74" + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.1.tgz#430fd59b3f2ed2e8afcd0b31278eda39854abb10" dependencies: browserslist "^4.0.0" caniuse-api "^3.0.0" cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-selector-parser "^3.0.0" vendors "^1.0.0" postcss-minify-font-values@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.0.tgz#4cc33d283d6a81759036e757ef981d92cbd85bed" dependencies: - postcss "^7.0.0" + postcss "^6.0.0" postcss-value-parser "^3.0.0" postcss-minify-gradients@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.1.tgz#6da95c6e92a809f956bb76bf0c04494953e1a7dd" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.0.tgz#3fc3916439d27a9bb8066db7cdad801650eb090e" dependencies: cssnano-util-get-arguments "^4.0.0" is-color-stop "^1.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-value-parser "^3.0.0" postcss-minify-params@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.1.tgz#5b2e2d0264dd645ef5d68f8fec0d4c38c1cf93d2" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.0.tgz#05e9166ee48c05af651989ce84d39c1b4d790674" dependencies: alphanum-sort "^1.0.0" - browserslist "^4.0.0" cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-value-parser "^3.0.0" uniqs "^2.0.0" postcss-minify-selectors@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.1.tgz#a891c197977cc37abf60b3ea06b84248b1c1e9cd" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.0.tgz#b1e9f6c463416d3fcdcb26e7b785d95f61578aad" dependencies: alphanum-sort "^1.0.0" has "^1.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-selector-parser "^3.0.0" postcss-modules-extract-imports@^1.0.0: @@ -8809,101 +8862,100 @@ postcss-modules-values@^1.1.1, postcss-modules-values@^1.3.0: postcss "^6.0.1" postcss-normalize-charset@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.0.tgz#24527292702d5e8129eafa3d1de49ed51a6ab730" dependencies: - postcss "^7.0.0" + postcss "^6.0.0" postcss-normalize-display-values@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz#d9a83d47c716e8a980f22f632c8b0458cfb48a4c" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz#950e0c7be3445770a160fffd6b6644c3c0cd8f89" dependencies: cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-value-parser "^3.0.0" postcss-normalize-positions@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.1.tgz#ee2d4b67818c961964c6be09d179894b94fd6ba1" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.0.tgz#ee9343ab981b822c63ab72615ecccd08564445a3" dependencies: cssnano-util-get-arguments "^4.0.0" has "^1.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-value-parser "^3.0.0" postcss-normalize-repeat-style@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.1.tgz#5293f234b94d7669a9f805495d35b82a581c50e5" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.0.tgz#b711c592cf16faf9ff575e42fa100b6799083eff" dependencies: cssnano-util-get-arguments "^4.0.0" cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-value-parser "^3.0.0" postcss-normalize-string@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.1.tgz#23c5030c2cc24175f66c914fa5199e2e3c10fef3" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.0.tgz#718cb6d30a6fac6ac6a830e32c06c07dbc66fe5d" dependencies: has "^1.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-value-parser "^3.0.0" postcss-normalize-timing-functions@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.1.tgz#8be83e0b9cb3ff2d1abddee032a49108f05f95d7" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.0.tgz#0351f29886aa981d43d91b2c2bd1aea6d0af6d23" dependencies: cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-value-parser "^3.0.0" postcss-normalize-unicode@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.0.tgz#5acd5d47baea5d17674b2ccc4ae5166fa88cdf97" dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-value-parser "^3.0.0" postcss-normalize-url@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.0.tgz#b7a9c8ad26cf26694c146eb2d68bd0cf49956f0d" dependencies: is-absolute-url "^2.0.0" normalize-url "^3.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-value-parser "^3.0.0" postcss-normalize-whitespace@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.1.tgz#d14cb639b61238418ac8bc8d3b7bdd65fc86575e" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.0.tgz#1da7e76b10ae63c11827fa04fc3bb4a1efe99cc0" dependencies: - postcss "^7.0.0" + postcss "^6.0.0" postcss-value-parser "^3.0.0" postcss-ordered-values@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.1.tgz#2e3b432ef3e489b18333aeca1f1295eb89be9fc2" + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.0.tgz#2c769d5d44aa3c7c907b8be2e997ed19dfd8d50a" dependencies: cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-value-parser "^3.0.0" postcss-reduce-initial@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.2.tgz#bac8e325d67510ee01fa460676dc8ea9e3b40f15" + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.1.tgz#f2d58f50cea2b0c5dc1278d6ea5ed0ff5829c293" dependencies: browserslist "^4.0.0" caniuse-api "^3.0.0" has "^1.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-reduce-transforms@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.1.tgz#8600d5553bdd3ad640f43bff81eb52f8760d4561" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.0.tgz#f645fc7440c35274f40de8104e14ad7163edf188" dependencies: cssnano-util-get-match "^4.0.0" has "^1.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-value-parser "^3.0.0" postcss-selector-parser@^2.2.2: @@ -8923,20 +8975,20 @@ postcss-selector-parser@^3.0.0: uniq "^1.0.1" postcss-svgo@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.1.tgz#5628cdb38f015de6b588ce6d0bf0724b492b581d" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.0.tgz#c0bbad02520fc636c9d78b0e8403e2e515c32285" dependencies: is-svg "^3.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-value-parser "^3.0.0" svgo "^1.0.0" postcss-unique-selectors@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.0.tgz#04c1e9764c75874261303402c41f0e9769fc5501" dependencies: alphanum-sort "^1.0.0" - postcss "^7.0.0" + postcss "^6.0.0" uniqs "^2.0.0" postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0: @@ -8951,14 +9003,6 @@ postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.2, postcss@^6.0.23: source-map "^0.6.1" supports-color "^5.4.0" -postcss@^7.0.0, postcss@^7.0.2: - version "7.0.3" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.3.tgz#449779466c944c9ebbfc7ed7c871c16c78a0ae46" - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.5.0" - prebuild-install@^2.1.1: version "2.5.3" resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.5.3.tgz#9f65f242782d370296353710e9bc843490c19f69" @@ -8992,8 +9036,8 @@ preserve@^0.2.0: resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" prettier@^1.12.1: - version "1.14.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.3.tgz#90238dd4c0684b7edce5f83b0fb7328e48bd0895" + version "1.14.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.2.tgz#0ac1c6e1a90baa22a62925f41963c841983282f9" pretty-format@^23.6.0: version "23.6.0" @@ -9100,7 +9144,7 @@ protocol-buffers-schema@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.3.2.tgz#00434f608b4e8df54c59e070efeefc37fb4bb859" -proxy-addr@~2.0.3: +proxy-addr@~2.0.3, proxy-addr@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" dependencies: @@ -9121,7 +9165,7 @@ psl@^1.1.24: public-encrypt@^4.0.0: version "4.0.2" - resolved "http://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994" dependencies: bn.js "^4.1.0" browserify-rsa "^4.0.0" @@ -9178,6 +9222,10 @@ qs@6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" +qs@6.5.2, qs@~6.5.1, qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + qs@~6.2.0: version "6.2.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe" @@ -9186,10 +9234,6 @@ qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" -qs@~6.5.1, qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - query-string@^4.2.2: version "4.3.4" resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" @@ -9276,6 +9320,15 @@ raw-body@2.3.2: iconv-lite "0.4.19" unpipe "1.0.0" +raw-body@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" + dependencies: + bytes "3.0.0" + http-errors "1.6.3" + iconv-lite "0.4.23" + unpipe "1.0.0" + rc-config-loader@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/rc-config-loader/-/rc-config-loader-2.0.2.tgz#46eb2f98fb5b2aa7b1119d66c0554de5133f1bc1" @@ -9298,12 +9351,12 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: strip-json-comments "~2.0.1" re-resizable@^4.3.1: - version "4.9.0" - resolved "https://registry.yarnpkg.com/re-resizable/-/re-resizable-4.9.0.tgz#0160728b9d7e32371fb26562221678ae643e6557" + version "4.8.1" + resolved "https://registry.yarnpkg.com/re-resizable/-/re-resizable-4.8.1.tgz#1edc294e7ba9effcd31c2a134d9f825d62c1ec6c" react-ace@^5.10.0: version "5.10.0" - resolved "http://registry.npmjs.org/react-ace/-/react-ace-5.10.0.tgz#e328b37ac52759f700be5afdb86ada2f5ec84c5e" + resolved "https://registry.yarnpkg.com/react-ace/-/react-ace-5.10.0.tgz#e328b37ac52759f700be5afdb86ada2f5ec84c5e" dependencies: brace "^0.11.0" lodash.get "^4.4.2" @@ -9399,13 +9452,13 @@ react-dnd@^2.5.4: prop-types "^15.5.10" react-dom@^16.4.1: - version "16.5.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.5.2.tgz#b69ee47aa20bab5327b2b9d7c1fe2a30f2cfa9d7" + version "16.5.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.5.0.tgz#57704e5718669374b182a17ea79a6d24922cb27d" dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - schedule "^0.5.0" + schedule "^0.3.0" "react-draggable@^2.2.6 || ^3.0.3": version "3.0.5" @@ -9423,8 +9476,8 @@ react-gravatar@^2.6.1: query-string "^4.2.2" react-hot-loader@^4.3.6: - version "4.3.11" - resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-4.3.11.tgz#fe5cf7be7700c249b58293f977c1e6e0900f0d87" + version "4.3.6" + resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-4.3.6.tgz#26e1491f08daf2bad99d141b1927c9faadef2fb4" dependencies: fast-levenshtein "^2.0.6" global "^4.3.0" @@ -9439,9 +9492,13 @@ react-input-autosize@^2.1.2: dependencies: prop-types "^15.5.8" -react-is@^16.3.2, react-is@^16.4.2, react-is@^16.5.2: - version "16.5.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.5.2.tgz#e2a7b7c3f5d48062eb769fcb123505eb928722e3" +react-is@^16.3.2: + version "16.4.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.4.2.tgz#84891b56c2b6d9efdee577cc83501dfc5ecead88" + +react-is@^16.4.2, react-is@^16.5.0: + version "16.5.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.5.0.tgz#2ec7c192709698591efe13722fab3ef56144ba55" react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: version "3.0.4" @@ -9472,8 +9529,8 @@ react-markdown@^3.3.0: xtend "^4.0.1" react-modal@^3.1.7: - version "3.6.1" - resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.6.1.tgz#54d27a1ec2b493bbc451c7efaa3557b6af82332d" + version "3.5.1" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.5.1.tgz#33d38527def90ea324848f7d63e53acc4468a451" dependencies: exenv "^1.2.0" prop-types "^15.5.10" @@ -9503,7 +9560,7 @@ react-overlays@^0.7.4: react-redux@^5.0.2: version "5.0.7" - resolved "http://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz#0dc1076d9afb4670f993ffaef44b8f8c1155a4c8" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.7.tgz#0dc1076d9afb4670f993ffaef44b8f8c1155a4c8" dependencies: hoist-non-react-statics "^2.5.0" invariant "^2.0.0" @@ -9563,8 +9620,8 @@ react-sortable-hoc@^0.8.3: prop-types "^15.5.7" react-split-pane@^0.1.63, react-split-pane@^0.1.66: - version "0.1.84" - resolved "https://registry.yarnpkg.com/react-split-pane/-/react-split-pane-0.1.84.tgz#b9c1499cbc40b09cf29953ee6f5ff1039d31906e" + version "0.1.82" + resolved "https://registry.yarnpkg.com/react-split-pane/-/react-split-pane-0.1.82.tgz#42fbb9fd4823f05e037de0dab3cd6cf9bf0cf4ea" dependencies: inline-style-prefixer "^3.0.6" prop-types "^15.5.10" @@ -9602,13 +9659,13 @@ react-test-renderer@^15.6.2: object-assign "^4.1.0" react-test-renderer@^16.0.0-0: - version "16.5.2" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.5.2.tgz#92e9d2c6f763b9821b2e0b22f994ee675068b5ae" + version "16.5.0" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.5.0.tgz#1aeca0edc4f27f63265dcaed80ba82e11e762f56" dependencies: object-assign "^4.1.1" prop-types "^15.6.2" - react-is "^16.5.2" - schedule "^0.5.0" + react-is "^16.5.0" + schedule "^0.3.0" react-transition-group@^1.2.0: version "1.2.1" @@ -9668,13 +9725,13 @@ react-with-styles@^1.3.0: prop-types "^15.5.8" react@^16.4.1: - version "16.5.2" - resolved "https://registry.yarnpkg.com/react/-/react-16.5.2.tgz#19f6b444ed139baa45609eee6dc3d318b3895d42" + version "16.5.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.5.0.tgz#f2c1e754bf9751a549d9c6d9aca41905beb56575" dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - schedule "^0.5.0" + schedule "^0.3.0" reactable@^1.1.0: version "1.1.0" @@ -9768,7 +9825,7 @@ read@1, read@~1.0.1, read@~1.0.7: "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.3: version "2.3.6" - resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -9789,7 +9846,7 @@ read@1, read@~1.0.1, read@~1.0.7: readable-stream@~1.1.0: version "1.1.14" - resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" dependencies: core-util-is "~1.0.0" inherits "~2.0.1" @@ -9798,7 +9855,7 @@ readable-stream@~1.1.0: readable-stream@~2.0.5: version "2.0.6" - resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" dependencies: core-util-is "~1.0.0" inherits "~2.0.1" @@ -9809,7 +9866,7 @@ readable-stream@~2.0.5: readable-stream@~2.1.5: version "2.1.5" - resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" dependencies: buffer-shims "^1.0.0" core-util-is "~1.0.0" @@ -9829,12 +9886,13 @@ readdir-scoped-modules@^1.0.0: once "^1.3.0" readdirp@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" + graceful-fs "^4.1.2" + minimatch "^3.0.2" readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" realize-package-specifier@~3.0.3: version "3.0.3" @@ -9866,15 +9924,15 @@ redeyed@~0.4.0: reduce-css-calc@^1.3.0: version "1.3.0" - resolved "http://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" dependencies: balanced-match "^0.4.2" math-expression-evaluator "^1.2.14" reduce-function-call "^1.0.1" reduce-css-calc@^2.0.0: - version "2.1.5" - resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.5.tgz#f283712f0c9708ef952d328f4b16112d57b03714" + version "2.1.4" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.4.tgz#c20e9cda8445ad73d4ff4bea960c6f8353791708" dependencies: css-unit-converter "^1.1.1" postcss-value-parser "^3.3.0" @@ -9932,10 +9990,6 @@ regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" -regenerator-runtime@^0.12.0: - version "0.12.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" - regenerator-transform@^0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" @@ -10062,30 +10116,30 @@ request-promise-native@^1.0.5: stealthy-require "^1.1.0" tough-cookie ">=2.3.3" -request@2, request@^2.65.0, request@^2.74.0, request@^2.79.0, request@^2.85.0, request@^2.87.0: - version "2.88.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" +request@2, request@2.87.0, request@^2.74.0, request@^2.79.0: + version "2.87.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" dependencies: aws-sign2 "~0.7.0" - aws4 "^1.8.0" + aws4 "^1.6.0" caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" + combined-stream "~1.0.5" + extend "~3.0.1" forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.0" + form-data "~2.3.1" + har-validator "~5.0.3" http-signature "~1.2.0" is-typedarray "~1.0.0" isstream "~0.1.2" json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" + mime-types "~2.1.17" + oauth-sign "~0.8.2" performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.4.3" + qs "~6.5.1" + safe-buffer "^5.1.1" + tough-cookie "~2.3.3" tunnel-agent "^0.6.0" - uuid "^3.3.2" + uuid "^3.1.0" request@2.81.0: version "2.81.0" @@ -10114,30 +10168,30 @@ request@2.81.0: tunnel-agent "^0.6.0" uuid "^3.0.0" -request@2.87.0: - version "2.87.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" +request@^2.65.0, request@^2.85.0, request@^2.87.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" dependencies: aws-sign2 "~0.7.0" - aws4 "^1.6.0" + aws4 "^1.8.0" caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.1" + combined-stream "~1.0.6" + extend "~3.0.2" forever-agent "~0.6.1" - form-data "~2.3.1" - har-validator "~5.0.3" + form-data "~2.3.2" + har-validator "~5.1.0" http-signature "~1.2.0" is-typedarray "~1.0.0" isstream "~0.1.2" json-stringify-safe "~5.0.1" - mime-types "~2.1.17" - oauth-sign "~0.8.2" + mime-types "~2.1.19" + oauth-sign "~0.9.0" performance-now "^2.1.0" - qs "~6.5.1" - safe-buffer "^5.1.1" - tough-cookie "~2.3.3" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" tunnel-agent "^0.6.0" - uuid "^3.1.0" + uuid "^3.3.2" request@~2.75.0: version "2.75.0" @@ -10325,8 +10379,8 @@ rx-lite@*, rx-lite@^4.0.8: resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" rxjs@^5.0.0-beta.11: - version "5.5.12" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc" + version "5.5.11" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.11.tgz#f733027ca43e3bec6b994473be4ab98ad43ced87" dependencies: symbol-observable "1.0.1" @@ -10371,9 +10425,9 @@ sax@>=0.6.0, sax@^1.2.1, sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" -schedule@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/schedule/-/schedule-0.5.0.tgz#c128fffa0b402488b08b55ae74bb9df55cc29cc8" +schedule@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/schedule/-/schedule-0.3.0.tgz#1be2ab2fc2e768536269ce7326efb478d6c045e8" dependencies: object-assign "^4.1.1" @@ -10491,6 +10545,10 @@ set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + set-value@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" @@ -10523,7 +10581,7 @@ setprototypeof@1.1.0: sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" - resolved "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" @@ -10786,8 +10844,8 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz#e2a303236cac54b04031fa7a5a79c7e701df852f" + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" spdy-transport@^2.0.18: version "2.1.0" @@ -10826,7 +10884,7 @@ split-string@^3.0.1, split-string@^3.0.2: split@~0.2.10: version "0.2.10" - resolved "http://registry.npmjs.org/split/-/split-0.2.10.tgz#67097c601d697ce1368f418f06cd201cf0521a57" + resolved "https://registry.yarnpkg.com/split/-/split-0.2.10.tgz#67097c601d697ce1368f418f06cd201cf0521a57" dependencies: through "2" @@ -11075,11 +11133,11 @@ style-loader@^0.21.0: schema-utils "^0.4.5" stylehacks@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.1.tgz#3186595d047ab0df813d213e51c8b94e0b9010f2" + version "4.0.0" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.0.tgz#64b323951c4a24e5fc7b2ec06c137bf32d155e8a" dependencies: browserslist "^4.0.0" - postcss "^7.0.0" + postcss "^6.0.0" postcss-selector-parser "^3.0.0" supercluster@^2.3.0: @@ -11117,17 +11175,17 @@ supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-co has-flag "^3.0.0" svgo@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.1.1.tgz#12384b03335bcecd85cfa5f4e3375fed671cb985" + version "1.0.5" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.0.5.tgz#7040364c062a0538abacff4401cea6a26a7a389a" dependencies: coa "~2.0.1" colors "~1.1.2" - css-select "^2.0.0" + css-select "~1.3.0-rc0" css-select-base-adapter "~0.1.0" - css-tree "1.0.0-alpha.28" + css-tree "1.0.0-alpha25" css-url-regex "^1.1.0" csso "^3.5.0" - js-yaml "^3.12.0" + js-yaml "~3.10.0" mkdirp "~0.5.1" object.values "^1.0.4" sax "~1.2.4" @@ -11158,7 +11216,11 @@ table@4.0.2: slice-ansi "1.0.0" string-width "^2.1.1" -tapable@^1.0.0, tapable@^1.1.0: +tapable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2" + +tapable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.0.tgz#0d076a172e3d9ba088fd2272b2668fb8d194b78c" @@ -11172,15 +11234,15 @@ tar-fs@^1.13.0: tar-stream "^1.1.2" tar-stream@^1.1.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + version "1.6.1" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395" dependencies: bl "^1.0.0" - buffer-alloc "^1.2.0" + buffer-alloc "^1.1.0" end-of-stream "^1.0.0" fs-constants "^1.0.0" readable-stream "^2.3.0" - to-buffer "^1.1.1" + to-buffer "^1.1.0" xtend "^4.0.0" tar@^2.0.0, tar@~2.2.1: @@ -11229,8 +11291,8 @@ terser-webpack-plugin@^1.1.0: worker-farm "^1.5.2" terser@^3.8.1: - version "3.8.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-3.8.2.tgz#48b880f949f8d038aca4dfd00a37c53d96ecf9fb" + version "3.10.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.10.0.tgz#6ae15dafecbd02c9788d5f36d27fca32196b533a" dependencies: commander "~2.17.1" source-map "~0.6.1" @@ -11278,7 +11340,7 @@ through2@^2.0.0, through2@^2.0.3, through2@~2.0.3: through@2, through@^2.3.6, through@~2.3.4: version "2.3.8" - resolved "http://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" thunky@^1.0.2: version "1.0.2" @@ -11330,7 +11392,7 @@ to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" -to-buffer@^1.1.1: +to-buffer@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" @@ -11576,14 +11638,14 @@ uniqs@^2.0.0: resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" unique-filename@^1.1.0, unique-filename@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + version "1.1.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" dependencies: imurmurhash "^0.1.4" @@ -11679,6 +11741,10 @@ urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" +url-join@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz#4d3340e807d3773bda9991f8305acdcc2a665d2a" + url-loader@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.1.tgz#4d1f3b4f90dde89f02c008e662d604d7511167c1" @@ -11821,11 +11887,10 @@ vfile@^2.0.0: vfile-message "^1.0.0" viewport-mercator-project@^5.0.0, viewport-mercator-project@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/viewport-mercator-project/-/viewport-mercator-project-5.3.0.tgz#16b7c99813495ef951480893a5b7d82d9c49034b" + version "5.2.0" + resolved "https://registry.yarnpkg.com/viewport-mercator-project/-/viewport-mercator-project-5.2.0.tgz#2c50bc624a085d01a3a486f22ec329c0511fe4bd" dependencies: - "@babel/runtime" "^7.0.0" - math.gl "^2.1.0" + math.gl "^2.0.0" vlq@^0.2.2: version "0.2.3" @@ -11932,8 +11997,8 @@ webpack-bundle-analyzer@^3.0.2: ws "^6.0.0" webpack-cli@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.1.1.tgz#92be3e324c1788208a301172139febb476566262" + version "3.1.2" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.1.2.tgz#17d7e01b77f89f884a2bbf9db545f0f6a648e746" dependencies: chalk "^2.4.1" cross-spawn "^6.0.5" @@ -11946,18 +12011,21 @@ webpack-cli@^3.1.1: v8-compile-cache "^2.0.2" yargs "^12.0.2" -webpack-dev-middleware@3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz#1132fecc9026fd90f0ecedac5cbff75d1fb45890" +webpack-dev-middleware@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.2.0.tgz#a20ceef194873710052da678f3c6ee0aeed92552" dependencies: + loud-rejection "^1.6.0" memory-fs "~0.4.1" mime "^2.3.1" + path-is-absolute "^1.0.0" range-parser "^1.0.3" + url-join "^4.0.0" webpack-log "^2.0.0" webpack-dev-server@^3.1.7: - version "3.1.9" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.9.tgz#8b32167624d2faff40dcedc2cbce17ed1f34d3e0" + version "3.1.7" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.7.tgz#cbf8071cc092d9493732aee4f062f0e065994854" dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -11969,7 +12037,7 @@ webpack-dev-server@^3.1.7: express "^4.16.2" html-entities "^1.2.0" http-proxy-middleware "~0.18.0" - import-local "^2.0.0" + import-local "^1.0.0" internal-ip "^3.0.1" ip "^1.1.5" killable "^1.0.0" @@ -11984,9 +12052,9 @@ webpack-dev-server@^3.1.7: spdy "^3.4.1" strip-ansi "^3.0.0" supports-color "^5.1.0" - webpack-dev-middleware "3.4.0" + webpack-dev-middleware "3.2.0" webpack-log "^2.0.0" - yargs "12.0.2" + yargs "12.0.1" webpack-log@^2.0.0: version "2.0.0" @@ -11995,7 +12063,14 @@ webpack-log@^2.0.0: ansi-colors "^3.0.0" uuid "^3.3.2" -webpack-sources@^1.0.0, webpack-sources@^1.1.0, webpack-sources@^1.3.0: +webpack-sources@^1.0.0, webpack-sources@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.2.0.tgz#18181e0d013fce096faf6f8e6d41eeffffdceac2" + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-sources@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" dependencies: @@ -12058,9 +12133,9 @@ whatwg-encoding@^1.0.3: dependencies: iconv-lite "0.4.24" -whatwg-fetch@>=0.10.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" +whatwg-fetch@>=0.10.0, whatwg-fetch@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" whatwg-mimetype@^2.1.0: version "2.2.0" @@ -12073,7 +12148,7 @@ whatwg-url@^4.3.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -whatwg-url@^6.4.1: +whatwg-url@^6.4.1, whatwg-url@^6.5.0: version "6.5.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" dependencies: @@ -12179,8 +12254,8 @@ ws@^5.2.0: async-limiter "~1.0.0" ws@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.0.0.tgz#eaa494aded00ac4289d455bac8d84c7c651cef35" + version "6.1.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.0.tgz#119a9dbf92c54e190ec18d10e871d55c95cf9373" dependencies: async-limiter "~1.0.0" @@ -12264,15 +12339,15 @@ yargs-parser@^9.0.2: dependencies: camelcase "^4.1.0" -yargs@12.0.2, yargs@^12.0.2: - version "12.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc" +yargs@12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.1.tgz#6432e56123bb4e7c3562115401e98374060261c2" dependencies: cliui "^4.0.0" decamelize "^2.0.0" find-up "^3.0.0" get-caller-file "^1.0.1" - os-locale "^3.0.0" + os-locale "^2.0.0" require-directory "^2.1.1" require-main-filename "^1.0.1" set-blocking "^2.0.0" @@ -12298,6 +12373,23 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" +yargs@^12.0.2: + version "12.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc" + dependencies: + cliui "^4.0.0" + decamelize "^2.0.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^10.1.0" + yauzl@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"