diff --git a/.travis.yml b/.travis.yml
index c51d7da54..6b0840430 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,15 +9,5 @@ jobs:
     include:
         - name: "Build"
           script: yarn run ci
-        - name: "Tests"
-          before_script:
-              - python -m SimpleHTTPServer &
-              - 'export DISPLAY=:99.0'
-              - 'sh -e /etc/init.d/xvfb start'
-              - sleep 5
-          sudo: required
-          addons:
-              chrome: beta
-          script: travis_retry yarn run functional-tests-ci
         - name: "E2E Tests"
           script: yarn test:e2e
diff --git a/codecept.conf.js b/codecept.conf.js
deleted file mode 100644
index 8471b3040..000000000
--- a/codecept.conf.js
+++ /dev/null
@@ -1,32 +0,0 @@
-const { CI, DEFAULT_WAIT_TIME = 90000 } = process.env;
-
-exports.config = {
-    tests: './functional-tests/*_test.js',
-    timeout: DEFAULT_WAIT_TIME,
-    output: './functional-tests/output',
-    helpers: {
-        Puppeteer: {
-            url: 'http://localhost:8000',
-            restart: true,
-            show: true,
-            waitForTimeout: DEFAULT_WAIT_TIME,
-            chrome: {
-                defaultArgs: {
-                    args: ['--no-sandbox', '--start-fullscreen']
-                },
-                executablePath: CI
-                    ? '/usr/bin/google-chrome-beta'
-                    : '/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary'
-            }
-        }
-    },
-    include: {},
-    bootstrap: false,
-    mocha: {},
-    name: 'box-content-preview',
-    multiple: {
-        parallel: {
-            chunks: 4
-        }
-    }
-};
diff --git a/functional-tests/.eslintrc b/functional-tests/.eslintrc
deleted file mode 100644
index c34acc9b7..000000000
--- a/functional-tests/.eslintrc
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-    "extends": ["../.eslintrc"],
-    "globals": {
-        "Feature": false,
-        "Before": false,
-        "Scenario": false
-    },
-    "rules": {
-        "func-names": ["off"],
-        "no-unused-expressions" : ["off"]
-    }
-}
diff --git a/functional-tests/README.md b/functional-tests/README.md
deleted file mode 100644
index c3f6fe1b6..000000000
--- a/functional-tests/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Running tests locally
-
-## Prerequisites
-
-Before running the tests, you need to have the latest Chrome Canary installed. We assume you are running Mac OS X. If you are not, you will need to change the location of chrome canary in `codecept.conf.js`.
-
-## Execute the tests
-
-`ACCESS_TOKEN=<token> yarn functional-tests`
diff --git a/functional-tests/constants.js b/functional-tests/constants.js
deleted file mode 100644
index f97e2ee70..000000000
--- a/functional-tests/constants.js
+++ /dev/null
@@ -1,55 +0,0 @@
-// Unfortunately node doesnt support native imports (yet)
-
-// CSS selectors
-exports.SELECTOR_BOX_PREVIEW_BTN_DOWNLOAD = '.bp-btn-download';
-exports.SELECTOR_DOWNLOAD_IFRAME = '#downloadiframe';
-exports.SELECTOR_NAVIGATION_LEFT = '.bp-navigate-left';
-exports.SELECTOR_NAVIGATION_RIGHT = '.bp-navigate-right';
-exports.SELECTOR_BOX_PREVIEW_LOADED = '.bp-loaded';
-exports.SELECTOR_BOX_PREVIEW_LOGO = '.bp-default-logo';
-exports.SELECTOR_DOC_CURRENT_PAGE = '.bp-current-page';
-exports.SELECTOR_MEDIA_CONTAINER = '.bp-media-container';
-exports.SELECTOR_MEDIA_TIMESTAMP = '.bp-media-controls-timecode';
-exports.SELECTOR_MEDIA_DURATION = '.bp-media-controls-duration';
-exports.SELECTOR_MEDIA_CONTROLS_GEAR = '.bp-media-gear-icon';
-exports.SELECTOR_MEDIA_SETTINGS_MENU_QUALITY = '.bp-media-settings-menu-quality';
-exports.SELECTOR_MEDIA_SETTINGS_QUALITY_ITEM = '.bp-media-settings-item-quality';
-exports.SELECTOR_MEDIA_SETTINGS_LABEL = '.bp-media-settings-label';
-exports.SELECTOR_HD_SETTINGS_VALUE = '[data-value="hd"] > .bp-media-settings-value';
-exports.SELECTOR_MEDIA_CONTROLS_HD = '.bp-media-controls-hd';
-exports.SELECTOR_MEDIA_CONTROLS_CC_ICON = '.bp-media-cc-icon';
-exports.SELECTOR_MEDIA_SETTINGS_SUBTITLES_ON = '.bp-media-settings-subtitles-on';
-exports.SELECTOR_MEDIA_SETTINGS_SUBTITLES_ITEM = '//div[@data-type="subtitles"]';
-exports.SELECTOR_MEDIA_SETTINGS_AUDIOTRACKS_ITEM = '//div[@data-type="audiotracks"]';
-exports.SELECTOR_MEDIA_SETTINGS_AUTOPLAY_ITEM = '//div[@data-type="autoplay"]';
-exports.SELECTOR_MEDIA_SETTINGS_SPEED_ITEM = '//div[@data-type="speed"]';
-exports.SELECTOR_BOX_PREVIEW = '.bp';
-exports.SELECTOR_BOX_PREVIEW_DOC = '.bp-doc';
-exports.SELECTOR_BOX_PREVIEW_MP3 = '.bp-media-mp3';
-exports.SELECTOR_BOX_PREVIEW_DASH = '.bp-media-dash';
-exports.SELECTOR_BOX_PREVIEW_MP4 = '.bp-media-mp4';
-exports.SELECTOR_BOX_PREVIEW_ZOOM_OUT_BUTTON = '.bp-doc-zoom-out-icon';
-exports.SELECTOR_BOX_PREVIEW_ZOOM_IN_BUTTON = '.bp-doc-zoom-in-icon';
-exports.SELECTOR_DOC_FIRST_PAGE = '.page[data-page-number="1"]';
-exports.SELECTOR_BOX_PREVIEW_NEXT_PAGE = '.bp-next-page';
-exports.SELECTOR_BOX_PREVIEW_PREVIOUS_PAGE = '.bp-previous-page';
-exports.SELECTOR_BOX_PREVIEW_NUM_INPUT = '.bp-page-num-input';
-exports.SELECTOR_BOX_PREVIEW_ENTER_FULLSCREEN_ICON = '.bp-enter-fullscreen-icon';
-exports.SELECTOR_BOX_PREVIEW_EXIT_FULLSCREEN_ICON = '.bp-exit-fullscreen-icon';
-exports.SELECTOR_BOX_PREVIEW_PAGE_NUM_WRAPPER = '.bp-page-num-wrapper';
-exports.SELECTOR_BOX_PREVIEW_ERROR = '.bp-error';
-exports.SELECTOR_BOX_PREVIEW_NAV_VISIBLE = '.bp-is-navigation-visible';
-
-exports.CLASS_CONTAINER = '.bp-container';
-exports.CLASS_CONTROLS_CONTAINER = '.bp-media-controls-container';
-exports.CLASS_CONTROLS_WRAPPER = '.bp-controls-wrapper';
-exports.CLASS_BOX_PREVIEW_LOADING_WRAPPER = '.bp-loading-wrapper';
-
-exports.TEXT_1080P = '1080p';
-
-// file ids
-exports.FILE_ID_DOC = '287707140303';
-exports.FILE_ID_MP3 = '286509191779';
-exports.FILE_ID_VIDEO = '286114565199';
-exports.FILE_ID_VIDEO_SUBTITLES_TRACKS = '286840567797';
-exports.FILE_ID_VIDEO_SMALL = '286114192023';
diff --git a/functional-tests/controls_test.js b/functional-tests/controls_test.js
deleted file mode 100644
index 8b4577013..000000000
--- a/functional-tests/controls_test.js
+++ /dev/null
@@ -1,109 +0,0 @@
-const {
-    FILE_ID_DOC,
-    SELECTOR_DOC_CURRENT_PAGE,
-    SELECTOR_BOX_PREVIEW_ZOOM_OUT_BUTTON,
-    SELECTOR_DOC_FIRST_PAGE,
-    SELECTOR_BOX_PREVIEW_ZOOM_IN_BUTTON,
-    SELECTOR_BOX_PREVIEW_NEXT_PAGE,
-    SELECTOR_BOX_PREVIEW_PREVIOUS_PAGE,
-    SELECTOR_BOX_PREVIEW_NUM_INPUT,
-    SELECTOR_BOX_PREVIEW_ENTER_FULLSCREEN_ICON,
-    SELECTOR_BOX_PREVIEW_EXIT_FULLSCREEN_ICON,
-    SELECTOR_BOX_PREVIEW_PAGE_NUM_WRAPPER
-} = require('./constants');
-const assert = require('assert');
-
-const { makeNavAppear, zoom, getIsFullscreen, showPreview, showDocumentControls } = require('./helpers');
-
-const { CI } = process.env;
-
-Feature('Controls', { retries: CI ? 3 : 0 });
-
-Before((I) => {
-    I.amOnPage('/functional-tests/index.html');
-    showPreview(I, FILE_ID_DOC);
-});
-
-Scenario('Check document preview zoom', function*(I) {
-    // zoom out
-    const origWidth = yield I.grabAttributeFrom(SELECTOR_DOC_FIRST_PAGE, 'scrollWidth');
-    const origHeight = yield I.grabAttributeFrom(SELECTOR_DOC_FIRST_PAGE, 'scrollHeight');
-
-    zoom(I, SELECTOR_BOX_PREVIEW_ZOOM_OUT_BUTTON);
-
-    const zoomedOutWidth = yield I.grabAttributeFrom(SELECTOR_DOC_FIRST_PAGE, 'scrollWidth');
-    const zoomedOutHeight = yield I.grabAttributeFrom(SELECTOR_DOC_FIRST_PAGE, 'scrollHeight');
-
-    assert.ok(parseInt(origWidth, 10) > parseInt(zoomedOutWidth, 10));
-    assert.ok(parseInt(origHeight, 10) > parseInt(zoomedOutHeight, 10));
-
-    // zoom in
-    zoom(I, SELECTOR_BOX_PREVIEW_ZOOM_IN_BUTTON);
-
-    const zoomedInWidth = yield I.grabAttributeFrom(SELECTOR_DOC_FIRST_PAGE, 'scrollWidth');
-    const zoomedInHeight = yield I.grabAttributeFrom(SELECTOR_DOC_FIRST_PAGE, 'scrollHeight');
-
-    assert.ok(parseInt(zoomedOutWidth, 10) < parseInt(zoomedInWidth, 10));
-    assert.ok(parseInt(zoomedOutHeight, 10) < parseInt(zoomedInHeight, 10));
-});
-
-Scenario('Check document preview navigation', function*(I) {
-    const FIRST_PAGE = '#bp-page-1';
-    const SECOND_PAGE = '#bp-page-2';
-    showDocumentControls(I);
-    makeNavAppear(I);
-
-    // go to page 2
-    I.waitForVisible(SELECTOR_BOX_PREVIEW_NEXT_PAGE);
-    const origPage = yield I.grabTextFrom(SELECTOR_DOC_CURRENT_PAGE);
-    assert.equal(origPage, '1');
-    I.seeElement(FIRST_PAGE);
-    const isPreviousDisabled = yield I.grabAttributeFrom(SELECTOR_BOX_PREVIEW_PREVIOUS_PAGE, 'disabled');
-    assert.ok(isPreviousDisabled);
-    I.click(SELECTOR_BOX_PREVIEW_NEXT_PAGE);
-    let newPage = yield I.grabTextFrom(SELECTOR_DOC_CURRENT_PAGE);
-    assert.equal(newPage, '2');
-    I.seeElement(SECOND_PAGE);
-
-    // go to page 1
-    makeNavAppear(I);
-    const isNextDisabled = yield I.grabAttributeFrom(SELECTOR_BOX_PREVIEW_NEXT_PAGE, 'disabled');
-    assert.ok(isNextDisabled);
-    I.click(SELECTOR_BOX_PREVIEW_PREVIOUS_PAGE);
-    newPage = yield I.grabTextFrom(SELECTOR_DOC_CURRENT_PAGE);
-    assert.equal(newPage, '1');
-    I.seeElement(FIRST_PAGE);
-
-    // go to page 2 by typing into input
-    makeNavAppear(I);
-    I.click(SELECTOR_BOX_PREVIEW_PAGE_NUM_WRAPPER);
-    I.waitForVisible(SELECTOR_BOX_PREVIEW_NUM_INPUT);
-    I.click(SELECTOR_BOX_PREVIEW_NUM_INPUT);
-    I.pressKey('2');
-    I.pressKey('Enter');
-    I.waitForVisible(SELECTOR_BOX_PREVIEW_NEXT_PAGE);
-    I.seeElement(SECOND_PAGE);
-});
-
-Scenario('Check document preview fullscreen', function*(I) {
-    showDocumentControls(I);
-
-    // Enter fullscreem
-    I.waitForVisible(SELECTOR_BOX_PREVIEW_ENTER_FULLSCREEN_ICON);
-    I.click(SELECTOR_BOX_PREVIEW_ENTER_FULLSCREEN_ICON);
-    I.waitForInvisible(SELECTOR_BOX_PREVIEW_ENTER_FULLSCREEN_ICON);
-
-    let isFullscreen = yield I.executeScript(getIsFullscreen);
-
-    assert.ok(isFullscreen);
-
-    showDocumentControls(I);
-
-    // Exit fullscreem
-    I.waitForVisible(SELECTOR_BOX_PREVIEW_EXIT_FULLSCREEN_ICON);
-    I.click(SELECTOR_BOX_PREVIEW_EXIT_FULLSCREEN_ICON);
-    isFullscreen = yield I.executeScript(getIsFullscreen);
-    I.waitForInvisible(SELECTOR_BOX_PREVIEW_EXIT_FULLSCREEN_ICON);
-
-    assert.equal(!!isFullscreen, false);
-});
diff --git a/functional-tests/fileOptions_test.js b/functional-tests/fileOptions_test.js
deleted file mode 100644
index 1818168c0..000000000
--- a/functional-tests/fileOptions_test.js
+++ /dev/null
@@ -1,73 +0,0 @@
-const {
-    SELECTOR_MEDIA_TIMESTAMP,
-    SELECTOR_DOC_CURRENT_PAGE,
-
-    FILE_ID_DOC,
-    FILE_ID_VIDEO,
-    FILE_ID_MP3
-} = require('./constants');
-
-const { showMediaControls, showDocumentControls, disableDash, showPreview } = require('./helpers');
-
-const { CI } = process.env;
-const DOC_START = '2';
-const VIDEO_START = '0:15';
-const MP3_START = '0:03';
-
-const fileOptions = {
-    [FILE_ID_DOC]: {
-        startAt: {
-            value: 2,
-            unit: 'pages'
-        }
-    },
-    [FILE_ID_VIDEO]: {
-        startAt: {
-            value: 15,
-            unit: 'seconds'
-        }
-    },
-    [FILE_ID_MP3]: {
-        startAt: {
-            value: 3,
-            unit: 'seconds'
-        }
-    }
-};
-
-Feature('File Options', { retries: CI ? 3 : 0 });
-
-Before((I) => {
-    I.amOnPage('/functional-tests/index.html');
-});
-
-Scenario('Check preview starts at correct spot for all file types', { retries: 5 }, (I) => {
-    // Document
-    showPreview(I, FILE_ID_DOC, { fileOptions });
-
-    showDocumentControls(I);
-    I.waitForVisible(SELECTOR_DOC_CURRENT_PAGE);
-    I.seeTextEquals(DOC_START, SELECTOR_DOC_CURRENT_PAGE);
-
-    // Video (DASH)
-    showPreview(I, FILE_ID_VIDEO, { fileOptions });
-
-    showMediaControls(I);
-    I.waitForVisible(SELECTOR_MEDIA_TIMESTAMP);
-    I.seeTextEquals(VIDEO_START, SELECTOR_MEDIA_TIMESTAMP);
-
-    // MP3
-    showPreview(I, FILE_ID_MP3, { fileOptions });
-
-    showMediaControls(I);
-    I.waitForVisible(SELECTOR_MEDIA_TIMESTAMP);
-    I.seeTextEquals(MP3_START, SELECTOR_MEDIA_TIMESTAMP);
-
-    // Video (MP4)
-    disableDash(I);
-    showPreview(I, FILE_ID_VIDEO, { fileOptions });
-
-    showMediaControls(I);
-    I.waitForVisible(SELECTOR_MEDIA_TIMESTAMP);
-    I.seeTextEquals(VIDEO_START, SELECTOR_MEDIA_TIMESTAMP);
-});
diff --git a/functional-tests/header_test.js b/functional-tests/header_test.js
deleted file mode 100644
index efb6e0ce5..000000000
--- a/functional-tests/header_test.js
+++ /dev/null
@@ -1,23 +0,0 @@
-const { SELECTOR_BOX_PREVIEW_BTN_DOWNLOAD, SELECTOR_DOWNLOAD_IFRAME, FILE_ID_DOC } = require('./constants');
-const { showPreview } = require('./helpers');
-const { expect } = require('chai');
-
-const { CI } = process.env;
-
-Feature('Header', { retries: CI ? 3 : 0 });
-
-Before((I) => {
-    I.amOnPage('/functional-tests/index.html');
-    showPreview(I, FILE_ID_DOC, {
-        showDownload: true
-    });
-});
-
-Scenario('Download the file', function*(I) {
-    I.waitForVisible(SELECTOR_BOX_PREVIEW_BTN_DOWNLOAD);
-    I.click(SELECTOR_BOX_PREVIEW_BTN_DOWNLOAD);
-    I.waitForElement(SELECTOR_DOWNLOAD_IFRAME);
-    const src = yield I.grabAttributeFrom(SELECTOR_DOWNLOAD_IFRAME, 'src');
-    const urlRegex = /https:\/\/dl[0-9]*\.boxcloud\.com.+\/download/;
-    expect(urlRegex.test(src)).to.be.true;
-});
diff --git a/functional-tests/helpers.js b/functional-tests/helpers.js
deleted file mode 100644
index 78f30dda8..000000000
--- a/functional-tests/helpers.js
+++ /dev/null
@@ -1,159 +0,0 @@
-const {
-    SELECTOR_BOX_PREVIEW,
-    CLASS_BOX_PREVIEW_LOADING_WRAPPER,
-    SELECTOR_BOX_PREVIEW_LOADED,
-    SELECTOR_BOX_PREVIEW_NAV_VISIBLE,
-    FILE_ID_DOC,
-    CLASS_CONTAINER,
-    CLASS_CONTROLS_WRAPPER,
-    CLASS_CONTROLS_CONTAINER
-} = require('./constants');
-
-const { BROWSER_PLATFORM } = process.env;
-
-const isMobile = BROWSER_PLATFORM === 'iOS' || BROWSER_PLATFORM === 'Android';
-
-/**
- * Makes the navigation arrows appear in preview
- * This currently doesnt work in firefox
- *
- * @param {Object} I - the codeceptjs I
- * @param {string} selector - the selector to use
- *
- * @return {void}
- */
-function makeNavAppear(I, selector = SELECTOR_BOX_PREVIEW) {
-    I.waitForElement(selector);
-
-    /* eslint-disable prefer-arrow-callback, no-var */
-    I.executeScript(
-        function(sel, isMobileBrowser, navSelector) {
-            var count = 0;
-            var NUM_TIMES_TO_RUN = 5;
-            var el = document.querySelector(sel);
-
-            /**
-             * Simulates click and mousemove events for mobile & desktop browsers for
-             * controls to appear
-             *
-             * @return {void}
-             */
-            function simulateEvents() {
-                /**
-                 * Cross browswer event creation
-                 * @param {string} eventName the event name
-                 * @return {Event} the event
-                 */
-                function createNewEvent(eventName) {
-                    var event;
-                    if (typeof Event === 'function') {
-                        event = new Event(eventName, { bubbles: true });
-                    } else {
-                        event = document.createEvent('Event');
-                        event.initEvent(eventName, true, true);
-                    }
-
-                    return event;
-                }
-
-                el.dispatchEvent(createNewEvent('mousemove'));
-                if (isMobileBrowser) {
-                    el.dispatchEvent(createNewEvent('click'));
-                }
-
-                count += 1;
-                if (!document.querySelector(navSelector) && count < NUM_TIMES_TO_RUN) {
-                    simulateEvents();
-                }
-            }
-
-            simulateEvents();
-        },
-        selector,
-        isMobile,
-        SELECTOR_BOX_PREVIEW_NAV_VISIBLE
-    );
-}
-
-/**
- * Waits for the loaded class to be applied
- *
- * @param {Object} I - the codeceptjs I
- *
- * @return {void}
- */
-function waitForLoad(I) {
-    I.waitForElement(SELECTOR_BOX_PREVIEW_LOADED);
-    I.dontSee('didn\'t load');
-}
-
-exports.getIsFullscreen = function() {
-    return (
-        document.fullscreenElement ||
-        document.webkitFullscreenElement ||
-        document.mozFullScreenElement ||
-        document.msFullscreenElement
-    );
-};
-
-exports.makeNavAppear = makeNavAppear;
-exports.waitForLoad = waitForLoad;
-
-exports.navigateToNextItem = (I) => {
-    I.executeScript(function() {
-        window.preview.navigateRight();
-    });
-    I.waitForElement(CLASS_BOX_PREVIEW_LOADING_WRAPPER);
-};
-exports.navigateToPrevItem = (I) => {
-    I.executeScript(function() {
-        window.preview.navigateLeft();
-    });
-    I.waitForElement(CLASS_BOX_PREVIEW_LOADING_WRAPPER);
-};
-exports.disableDash = (I) => {
-    I.executeScript(function() {
-        window.preview.disableViewers('Dash');
-    });
-};
-exports.showPreview = (I, fileId = FILE_ID_DOC, options = {}) => {
-    const { ACCESS_TOKEN } = process.env;
-    I.executeScript(
-        function(previewFileId, accessToken, previewOptions) {
-            window.showPreview(previewFileId, accessToken, previewOptions);
-        },
-        fileId,
-        ACCESS_TOKEN,
-        options
-    );
-
-    waitForLoad(I);
-};
-exports.showMediaControls = (I) => {
-    I.executeScript(function(containerClass) {
-        var container = document.querySelector(containerClass);
-        container.classList.add('bp-media-controls-is-visible');
-    }, CLASS_CONTAINER);
-    I.waitForVisible(CLASS_CONTROLS_CONTAINER);
-};
-/**
- * Shows the document controls
- * @param {Object} I - the codeceptjs I
- *
- * @return {void}
- */
-function showDocumentControls(I) {
-    I.executeScript(function(containerClass) {
-        var container = document.querySelector(containerClass);
-        container.classList.add('box-show-preview-controls');
-    }, CLASS_CONTAINER);
-    I.waitForVisible(CLASS_CONTROLS_WRAPPER);
-}
-exports.showDocumentControls = showDocumentControls;
-/* eslint-enable prefer-arrow-callback, no-var */
-
-exports.zoom = (I, selector) => {
-    showDocumentControls(I);
-    I.waitForVisible(selector);
-    I.click(selector);
-};
diff --git a/functional-tests/index.html b/functional-tests/index.html
deleted file mode 100644
index 61f4f8351..000000000
--- a/functional-tests/index.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE html>
-<html>
-
-<head>
-    <meta charset="UTF-8">
-
-    <style>
-        .preview-container {
-            border: 1px solid #eee;
-            height: 490px;
-            width: 100%;
-        }
-    </style>
-    <link rel="stylesheet" type="text/css" href="../dist/dev/en-US/preview.css">
-    <script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=Promise"></script>
-    <script src="../dist/dev/en-US/preview.js"></script>
-
-</head>
-
-<body>
-    <div class="preview-container"></div>
-    <script>
-        var preview = new Box.Preview();
-        function showPreview(fileId, token, options) {
-            options = options || {};
-            options.container = '.preview-container';
-            preview.show(fileId, token, options);
-        }
-    </script>
-</body>
-
-</html>
diff --git a/functional-tests/mediaControls_test.js b/functional-tests/mediaControls_test.js
deleted file mode 100644
index 614ba5ed1..000000000
--- a/functional-tests/mediaControls_test.js
+++ /dev/null
@@ -1,144 +0,0 @@
-const {
-    FILE_ID_MP3,
-    FILE_ID_VIDEO,
-    FILE_ID_VIDEO_SMALL,
-    FILE_ID_VIDEO_SUBTITLES_TRACKS,
-    SELECTOR_MEDIA_TIMESTAMP,
-    SELECTOR_MEDIA_DURATION,
-    CLASS_BOX_PREVIEW_LOADING_WRAPPER,
-    SELECTOR_BOX_PREVIEW_MP3,
-    SELECTOR_BOX_PREVIEW_DASH,
-    SELECTOR_BOX_PREVIEW_MP4,
-    SELECTOR_MEDIA_CONTAINER,
-    SELECTOR_MEDIA_CONTROLS_GEAR,
-    SELECTOR_MEDIA_SETTINGS_QUALITY_ITEM,
-    SELECTOR_MEDIA_SETTINGS_MENU_QUALITY,
-    SELECTOR_MEDIA_SETTINGS_LABEL,
-    SELECTOR_MEDIA_CONTROLS_HD,
-    SELECTOR_HD_SETTINGS_VALUE,
-    SELECTOR_MEDIA_CONTROLS_CC_ICON,
-    SELECTOR_MEDIA_SETTINGS_SUBTITLES_ON,
-    SELECTOR_MEDIA_SETTINGS_SUBTITLES_ITEM,
-    SELECTOR_MEDIA_SETTINGS_AUDIOTRACKS_ITEM,
-    SELECTOR_MEDIA_SETTINGS_AUTOPLAY_ITEM,
-    SELECTOR_MEDIA_SETTINGS_SPEED_ITEM,
-    TEXT_1080P
-} = require('./constants');
-
-const { showPreview, showMediaControls, disableDash } = require('./helpers');
-
-const { CI } = process.env;
-const DEFAULT_START = '0:00';
-const VIDEO_DURATION = '3:52';
-const VIDEO_WITH_SUBTITLES_TRACKS_DURATION = '0:46';
-const AUDIO_DURATION = '7:47';
-const SELECTOR_VIDEO = 'video';
-
-Feature('Media Controls', { retries: CI ? 3 : 0 });
-
-Before((I) => {
-    I.amOnPage('/functional-tests/index.html');
-});
-
-Scenario('Check that the media controls show the correct time current/total times', { retries: 3 }, (I) => {
-    // Video (DASH)
-    showPreview(I, FILE_ID_VIDEO);
-
-    showMediaControls(I, SELECTOR_VIDEO);
-    I.waitForVisible(SELECTOR_MEDIA_TIMESTAMP);
-    I.seeTextEquals(DEFAULT_START, SELECTOR_MEDIA_TIMESTAMP);
-    I.seeTextEquals(VIDEO_DURATION, SELECTOR_MEDIA_DURATION);
-
-    // Video (tracks and subtitles)
-    showPreview(I, FILE_ID_VIDEO_SUBTITLES_TRACKS);
-
-    I.waitForElement(SELECTOR_BOX_PREVIEW_DASH);
-    showMediaControls(I, SELECTOR_VIDEO);
-    I.waitForVisible(SELECTOR_MEDIA_TIMESTAMP);
-    I.seeTextEquals(DEFAULT_START, SELECTOR_MEDIA_TIMESTAMP);
-    I.seeTextEquals(VIDEO_WITH_SUBTITLES_TRACKS_DURATION, SELECTOR_MEDIA_DURATION);
-
-    // MP3
-    showPreview(I, FILE_ID_MP3);
-
-    I.waitForElement(SELECTOR_BOX_PREVIEW_MP3);
-    showMediaControls(I);
-    I.waitForVisible(SELECTOR_MEDIA_TIMESTAMP);
-    I.seeTextEquals(DEFAULT_START, SELECTOR_MEDIA_TIMESTAMP);
-    I.seeTextEquals(AUDIO_DURATION, SELECTOR_MEDIA_DURATION);
-
-    // Video (MP4)
-    disableDash(I);
-    showPreview(I, FILE_ID_VIDEO);
-
-    I.waitForElement(CLASS_BOX_PREVIEW_LOADING_WRAPPER);
-    I.waitForElement(SELECTOR_BOX_PREVIEW_MP4);
-    showMediaControls(I, SELECTOR_VIDEO);
-    I.waitForVisible(SELECTOR_MEDIA_TIMESTAMP);
-    I.seeTextEquals(DEFAULT_START, SELECTOR_MEDIA_TIMESTAMP);
-    I.seeTextEquals(VIDEO_DURATION, SELECTOR_MEDIA_DURATION);
-});
-
-Scenario('Check that the media controls show the correct settings items', { retries: 3 }, (I) => {
-    // Video (DASH)
-    showPreview(I, FILE_ID_VIDEO);
-
-    I.waitForElement(SELECTOR_BOX_PREVIEW_DASH);
-    showMediaControls(I, SELECTOR_VIDEO);
-
-    I.waitForVisible(SELECTOR_MEDIA_CONTROLS_GEAR);
-    // Click on the Gear
-    I.click(SELECTOR_MEDIA_CONTROLS_GEAR);
-    I.waitForVisible(SELECTOR_MEDIA_SETTINGS_QUALITY_ITEM);
-    // Click on the quality item
-    I.click(`${SELECTOR_MEDIA_SETTINGS_QUALITY_ITEM} ${SELECTOR_MEDIA_SETTINGS_LABEL}`);
-    // Find the 1080 text
-    I.waitForText(TEXT_1080P);
-    // Click the 1080 text
-    I.click(SELECTOR_HD_SETTINGS_VALUE);
-    // Check that the HD icon is there
-    I.waitForVisible(SELECTOR_MEDIA_CONTROLS_HD);
-
-    // Video with tracks
-    showPreview(I, FILE_ID_VIDEO_SUBTITLES_TRACKS);
-
-    I.waitForElement(SELECTOR_BOX_PREVIEW_DASH);
-    showMediaControls(I, SELECTOR_VIDEO);
-    // Wait for the CC button to be visisble
-    I.waitForVisible(SELECTOR_MEDIA_CONTROLS_CC_ICON);
-    // Look for this class bp-media-settings-subtitles-on
-    I.seeElement(SELECTOR_MEDIA_SETTINGS_SUBTITLES_ON);
-    // Click the CC button
-    I.click(SELECTOR_MEDIA_CONTROLS_CC_ICON);
-    // Look for this class bp-media-settings-subtitles-on
-    I.dontSeeElement(SELECTOR_MEDIA_SETTINGS_SUBTITLES_ON);
-    // Click on the Gear
-    I.waitForVisible(SELECTOR_MEDIA_CONTROLS_GEAR);
-    I.click(SELECTOR_MEDIA_CONTROLS_GEAR);
-    // Wait for audio tracks and for subtitles items to be visisble
-    I.waitForVisible(SELECTOR_MEDIA_SETTINGS_SUBTITLES_ITEM);
-    I.waitForVisible(SELECTOR_MEDIA_SETTINGS_AUDIOTRACKS_ITEM);
-
-    // MP3
-    showPreview(I, FILE_ID_MP3);
-
-    I.waitForElement(SELECTOR_BOX_PREVIEW_MP3);
-    // Click on the Gear
-    I.click(SELECTOR_MEDIA_CONTROLS_GEAR);
-    // Look for autoplay and speed
-    I.waitForVisible(SELECTOR_MEDIA_SETTINGS_AUTOPLAY_ITEM);
-    I.waitForVisible(SELECTOR_MEDIA_SETTINGS_SPEED_ITEM);
-
-    // Video (no HD)
-    showPreview(I, FILE_ID_VIDEO_SMALL);
-
-    I.waitForElement(SELECTOR_MEDIA_CONTAINER);
-    showMediaControls(I, SELECTOR_VIDEO);
-    // Click on the Gear
-    I.waitForVisible(SELECTOR_MEDIA_CONTROLS_GEAR);
-    I.click(SELECTOR_MEDIA_CONTROLS_GEAR);
-    // Look for autoplay and speed
-    I.waitForVisible(SELECTOR_MEDIA_SETTINGS_AUTOPLAY_ITEM);
-    I.waitForVisible(SELECTOR_MEDIA_SETTINGS_SPEED_ITEM);
-    I.dontSeeElement(SELECTOR_MEDIA_SETTINGS_MENU_QUALITY);
-});
diff --git a/functional-tests/sanity_test.js b/functional-tests/sanity_test.js
deleted file mode 100644
index c827ae345..000000000
--- a/functional-tests/sanity_test.js
+++ /dev/null
@@ -1,13 +0,0 @@
-const { FILE_ID_DOC } = require('./constants');
-const { showPreview } = require('./helpers');
-
-Feature('Sanity', { retries: 3 });
-
-Before((I) => {
-    I.amOnPage('/functional-tests/index.html');
-});
-
-Scenario('Sanity test', (I) => {
-    showPreview(I, FILE_ID_DOC);
-    I.waitForText('The Content Platform for Your Apps');
-});
diff --git a/package.json b/package.json
index c53dcd826..2535cfdcd 100644
--- a/package.json
+++ b/package.json
@@ -30,7 +30,6 @@
     "box-react-ui": "^22.7.0",
     "chai": "^4.2.0",
     "chai-dom": "^1.8.1",
-    "codeceptjs": "^1.4.6",
     "conventional-changelog-cli": "^1.3.5",
     "conventional-github-releaser": "^2.0.0",
     "create-react-class": "^15.6.2",
@@ -83,13 +82,11 @@
     "postcss-sass": "^0.3.0",
     "prettier": "^1.8.2",
     "prettier-eslint-cli": "^4.4.2",
-    "puppeteer": "^1.11.0",
     "raw-loader": "^0.5.1",
     "react": "^16.7.0",
     "react-dom": "^16.7.0",
     "react-virtualized": "^9.13.0",
     "sass-loader": "^6.0.6",
-    "saucelabs": "^1.4.0",
     "selenium-webdriver": "^3.6.0",
     "sinon": "^7.2.2",
     "sinon-chai": "3.3.0",
@@ -122,8 +119,6 @@
     "cy:wait": "wait-on http-get://localhost:8000",
     "debug": "yarn install && NODE_ENV=test ./node_modules/.bin/karma start build/karma.conf.js --no-single-run --auto-watch",
     "dev": "yarn install && BABEL_ENV=dev NODE_ENV=dev ./node_modules/.bin/webpack --progress --colors --config build/webpack.config.js",
-    "functional-tests": "python -m SimpleHTTPServer 8000 & node ./node_modules/codeceptjs/bin/codecept.js run-multiple parallel --verbose ; pkill -i python -m SimpleHTTPServer 8000",
-    "functional-tests-ci": "yarn run clean && yarn run build-rb && yarn run build-ci && node ./node_modules/codeceptjs/bin/codecept.js run-multiple parallel",
     "lint": "NODE_ENV=dev ./node_modules/.bin/eslint src/lib && ./node_modules/.bin/stylelint 'src/lib/**/*.scss'",
     "precommit": "lint-staged",
     "prepush": "yarn run lint",
diff --git a/test/README.md b/test/README.md
new file mode 100644
index 000000000..6555f78e9
--- /dev/null
+++ b/test/README.md
@@ -0,0 +1,9 @@
+# Running tests locally
+
+## Execute the tests
+
+`CYPRESS_ACCESS_TOKEN=<token> yarn test:e2e`
+
+If you want to run the tests in debug mode:
+
+`CYPRESS_ACCESS_TOKEN=<token> yarn test:e2e:open`
diff --git a/test/integration/sanity/Header.e2e.test.js b/test/integration/sanity/Header.e2e.test.js
index 77b4f50f2..3120a6481 100644
--- a/test/integration/sanity/Header.e2e.test.js
+++ b/test/integration/sanity/Header.e2e.test.js
@@ -5,8 +5,6 @@ describe('Preview Header', () => {
     // const urlRegex = /https:\/\/dl[0-9]*\.boxcloud\.com.+\/download/;
 
     beforeEach(() => {
-        cy.server();
-        cy.route('GET', '**/files/*?fields=download_url', { download_url: '' });
         cy.visit('/');
         cy.showPreview(token, fileIdDoc, { showDownload: true });
     });
diff --git a/yarn.lock b/yarn.lock
index 1b84d3740..1113a7129 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -379,21 +379,6 @@ after@0.8.2:
   resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
   integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=
 
-agent-base@2:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7"
-  integrity sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=
-  dependencies:
-    extend "~3.0.0"
-    semver "~5.0.1"
-
-agent-base@^4.1.0:
-  version "4.2.1"
-  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9"
-  integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==
-  dependencies:
-    es6-promisify "^5.0.0"
-
 ajv-keywords@^2.1.0:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
@@ -442,18 +427,6 @@ align-text@^0.1.1, align-text@^0.1.3:
     longest "^1.0.1"
     repeat-string "^1.5.2"
 
-allure-js-commons@^1.3.2:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/allure-js-commons/-/allure-js-commons-1.3.2.tgz#e1cf0466e36695bb3ced1228f6570eac6c2e9eda"
-  integrity sha512-FTmoqP36ZjHFT4iLdYamyCFhyj1jqD6BIdiZ5pBlyafDJrFRV76XIXNxwRqbHpSw40o1vHzYi4vGpmREnhnHVw==
-  dependencies:
-    file-type "^7.7.1"
-    fs-extra "^6.0.1"
-    js2xmlparser "^3.0.0"
-    mime "^2.3.1"
-    object-assign "^4.1.1"
-    uuid "^3.0.0"
-
 alphanum-sort@^1.0.1, alphanum-sort@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
@@ -464,7 +437,7 @@ amdefine@>=0.0.4:
   resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
   integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=
 
-ansi-escapes@^1.0.0, ansi-escapes@^1.1.0:
+ansi-escapes@^1.0.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
   integrity sha1-06ioOzGapneTZisT52HHkRQiMG4=
@@ -685,7 +658,7 @@ arraybuffer.slice@~0.0.7:
   resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"
   integrity sha1-O7xCdd1YTMGxCAm4nU6LY6aednU=
 
-arrify@1.0.1, arrify@^1.0.0, arrify@^1.0.1:
+arrify@^1.0.0, arrify@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
   integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
@@ -1495,11 +1468,6 @@ babylon@7.0.0-beta.40, babylon@^7.0.0-beta.40:
   resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.40.tgz#91fc8cd56d5eb98b28e6fde41045f2957779940a"
   integrity sha512-AVxF2EcxvGD5hhOuLTOLAXBb0VhwWpEX0HyHdAI2zU+AAP4qEwtQj8voz1JR3uclGai0rfcE+dCTHnNMOnimFg==
 
-babylon@7.0.0-beta.47:
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.47.tgz#6d1fa44f0abec41ab7c780481e62fd9aafbdea80"
-  integrity sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==
-
 babylon@^6.18.0:
   version "6.18.0"
   resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
@@ -1565,11 +1533,6 @@ bcrypt-pbkdf@^1.0.0:
   dependencies:
     tweetnacl "^0.14.3"
 
-becke-ch--regex--s0-0-v1--base--pl--lib@^1.2.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/becke-ch--regex--s0-0-v1--base--pl--lib/-/becke-ch--regex--s0-0-v1--base--pl--lib-1.4.0.tgz#429ceebbfa5f7e936e78d73fbdc7da7162b20e20"
-  integrity sha1-Qpzuu/pffpNueNc/vcfacWKyDiA=
-
 better-assert@~1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
@@ -1631,11 +1594,6 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
   resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
   integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
 
-bo-selector@0.0.10:
-  version "0.0.10"
-  resolved "https://registry.yarnpkg.com/bo-selector/-/bo-selector-0.0.10.tgz#9816dcb00adf374ea87941a863b2acfc026afa3e"
-  integrity sha1-mBbcsArfN06oeUGoY7Ks/AJq+j4=
-
 body-parser@1.18.2, body-parser@^1.16.1:
   version "1.18.2"
   resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
@@ -1847,11 +1805,6 @@ buffer-fill@^0.1.0:
   resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-0.1.1.tgz#76d825c4d6e50e06b7a31eb520c04d08cc235071"
   integrity sha512-YgBMBzdRLEfgxJIGu2wrvI2E03tMCFU1p7d1KhB4BOoMN0VxmTFjSyN5JtKt9z8Z9JajMHruI6SE25W96wNv7Q==
 
-buffer-from@^1.0.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
-  integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
-
 buffer-indexof@^1.0.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
@@ -2179,7 +2132,7 @@ classnames@^2.2.3:
   resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d"
   integrity sha1-+zgB1FNGdknvNgPH1hoCvRKb3m0=
 
-cli-cursor@^1.0.1, cli-cursor@^1.0.2:
+cli-cursor@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
   integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=
@@ -2206,11 +2159,6 @@ cli-truncate@^0.2.1:
     slice-ansi "0.0.4"
     string-width "^1.0.1"
 
-cli-width@^1.0.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-1.1.1.tgz#a4d293ef67ebb7b88d4a4d42c0ccf00c4d1e366d"
-  integrity sha1-pNKT72frt7iNSk1CwMzwDE0eNm0=
-
 cli-width@^2.0.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
@@ -2282,29 +2230,6 @@ code-point-at@^1.0.0:
   resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
   integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
 
-codeceptjs@^1.4.6:
-  version "1.4.6"
-  resolved "https://registry.yarnpkg.com/codeceptjs/-/codeceptjs-1.4.6.tgz#8652949c275a76ef4c8dc95c663f946223d8d122"
-  integrity sha512-duBU5/octSUcbfAZQBemfzeNBQHPlYpkuYh0tlkMvlAoAGm57uIo4v14ZnvrjQFijXfgpzsSXpcg0hHLnSSPIw==
-  dependencies:
-    allure-js-commons "^1.3.2"
-    chalk "^1.1.3"
-    commander "^2.18.0"
-    css-to-xpath "^0.1.0"
-    cucumber-expressions "^6.0.1"
-    escape-string-regexp "^1.0.3"
-    figures "^2.0.0"
-    fn-args "^3.0.0"
-    gherkin "^5.1.0"
-    glob "^6.0.1"
-    inquirer "^0.11.0"
-    mkdirp "^0.5.1"
-    mocha "^4.1.0"
-    parse-function "^5.2.10"
-    promise-retry "^1.1.1"
-    requireg "^0.1.8"
-    sprintf-js "^1.1.1"
-
 collapse-white-space@^1.0.2:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.3.tgz#4b906f670e5a963a87b76b0e1689643341b6023c"
@@ -2401,11 +2326,6 @@ commander@^2.11.0, commander@^2.13.0, commander@^2.9.0:
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.0.tgz#ad2a23a1c3b036e392469b8012cec6b33b4c1322"
   integrity sha512-7B1ilBwtYSbetCgTY1NJFg+gVpestg0fdA1MhC1Vs4ssyfSXnCAjFr+QcQM9/RedXC0EaUx1sG8Smgw2VfgKEg==
 
-commander@^2.18.0:
-  version "2.19.0"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
-  integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
-
 common-tags@1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.4.0.tgz#1187be4f3d4cf0c0427d43f74eef1f73501614c0"
@@ -2492,16 +2412,6 @@ concat-stream@1.6.0:
     readable-stream "^2.2.2"
     typedarray "^0.0.6"
 
-concat-stream@1.6.2:
-  version "1.6.2"
-  resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
-  integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
-  dependencies:
-    buffer-from "^1.0.0"
-    inherits "^2.0.3"
-    readable-stream "^2.2.2"
-    typedarray "^0.0.6"
-
 concat-stream@^1.6.0:
   version "1.6.1"
   resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.1.tgz#261b8f518301f1d834e36342b9fea095d2620a26"
@@ -2947,14 +2857,6 @@ css-selector-tokenizer@^0.7.0:
     fastparse "^1.1.1"
     regexpu-core "^1.0.0"
 
-css-to-xpath@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/css-to-xpath/-/css-to-xpath-0.1.0.tgz#ac0d1c26cef023f7bd8cf2e1fc1f77134bc70c47"
-  integrity sha1-rA0cJs7wI/e9jPLh/B93E0vHDEc=
-  dependencies:
-    bo-selector "0.0.10"
-    xpath-builder "0.0.7"
-
 css-value@~0.0.1:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/css-value/-/css-value-0.0.1.tgz#5efd6c2eea5ea1fd6b6ac57ec0427b18452424ea"
@@ -3031,13 +2933,6 @@ csso@~2.3.1:
     clap "^1.0.9"
     source-map "^0.5.3"
 
-cucumber-expressions@^6.0.1:
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/cucumber-expressions/-/cucumber-expressions-6.0.1.tgz#47c9c573781c2ff721d7ad5b2cd1c97f4399ab8e"
-  integrity sha1-R8nFc3gcL/ch161bLNHJf0OZq44=
-  dependencies:
-    becke-ch--regex--s0-0-v1--base--pl--lib "^1.2.0"
-
 currently-unhandled@^0.4.1:
   version "0.4.1"
   resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
@@ -3150,7 +3045,7 @@ dateformat@^3.0.0:
   resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
   integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
 
-debug@2, debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9:
+debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9:
   version "2.6.9"
   resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
   integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
@@ -3171,13 +3066,6 @@ debug@^3.1.0:
   dependencies:
     ms "^2.1.1"
 
-debug@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87"
-  integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==
-  dependencies:
-    ms "^2.1.1"
-
 decamelize-keys@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9"
@@ -3243,14 +3131,6 @@ define-properties@^1.1.2:
     foreach "^2.0.5"
     object-keys "^1.0.8"
 
-define-property@2.0.2, define-property@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
-  integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
-  dependencies:
-    is-descriptor "^1.0.2"
-    isobject "^3.0.1"
-
 define-property@^0.2.5:
   version "0.2.5"
   resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
@@ -3265,6 +3145,14 @@ define-property@^1.0.0:
   dependencies:
     is-descriptor "^1.0.0"
 
+define-property@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
+  integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
+  dependencies:
+    is-descriptor "^1.0.2"
+    isobject "^3.0.1"
+
 defined@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
@@ -3643,11 +3531,6 @@ entities@^1.1.1, entities@~1.1.1:
   resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
   integrity sha1-blwtClYhtdra7O+AuQ7ftc13cvA=
 
-err-code@^1.0.0:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960"
-  integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=
-
 errno@^0.1.3:
   version "0.1.7"
   resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
@@ -3742,13 +3625,6 @@ es6-promise@~3.0.2:
   resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.0.2.tgz#010d5858423a5f118979665f46486a95c6ee2bb6"
   integrity sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=
 
-es6-promisify@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
-  integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=
-  dependencies:
-    es6-promise "^4.0.3"
-
 es6-set@~0.1.5:
   version "0.1.5"
   resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
@@ -3783,7 +3659,7 @@ escape-html@~1.0.3:
   resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
   integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
 
-escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5:
+escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
   integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
@@ -4224,7 +4100,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
     assign-symbols "^1.0.0"
     is-extendable "^1.0.1"
 
-extend@3, extend@^3.0.0, extend@~3.0.0:
+extend@^3.0.0:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
   integrity sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=
@@ -4284,16 +4160,6 @@ extract-zip@1.6.6, extract-zip@^1.6.5:
     mkdirp "0.5.0"
     yauzl "2.4.1"
 
-extract-zip@^1.6.6:
-  version "1.6.7"
-  resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9"
-  integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=
-  dependencies:
-    concat-stream "1.6.2"
-    debug "2.6.9"
-    mkdirp "0.5.1"
-    yauzl "2.4.1"
-
 extsprintf@1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
@@ -4379,7 +4245,7 @@ fetch-mock@^5.13.1:
     node-fetch "^1.3.3"
     path-to-regexp "^1.7.0"
 
-figures@^1.3.5, figures@^1.7.0:
+figures@^1.7.0:
   version "1.7.0"
   resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
   integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=
@@ -4410,11 +4276,6 @@ file-loader@^1.1.5:
     loader-utils "^1.0.2"
     schema-utils "^0.4.5"
 
-file-type@^7.7.1:
-  version "7.7.1"
-  resolved "https://registry.yarnpkg.com/file-type/-/file-type-7.7.1.tgz#91c2f5edb8ce70688b9b68a90d931bbb6cb21f65"
-  integrity sha512-bTrKkzzZI6wH+NXhyD3SOXtb2zXTw2SbwI2RxUlRcXVsnN7jNL5hJzVQLYv7FOQhxFkK4XWdAflEaWFpaLLWpQ==
-
 filename-regex@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
@@ -4526,11 +4387,6 @@ flatten@^1.0.2:
   resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782"
   integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=
 
-fn-args@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/fn-args/-/fn-args-3.0.0.tgz#df5c3805ed41ec3b38a72aabe390cf9493ec084c"
-  integrity sha1-31w4Be1B7Ds4pyqr45DPlJPsCEw=
-
 follow-redirects@^1.0.0:
   version "1.6.1"
   resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.6.1.tgz#514973c44b5757368bad8bddfe52f81f015c94cb"
@@ -4635,15 +4491,6 @@ fs-extra@^1.0.0:
     jsonfile "^2.1.0"
     klaw "^1.0.0"
 
-fs-extra@^6.0.1:
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b"
-  integrity sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==
-  dependencies:
-    graceful-fs "^4.1.2"
-    jsonfile "^4.0.0"
-    universalify "^0.1.0"
-
 fs-minipass@^1.2.5:
   version "1.2.5"
   resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
@@ -4783,11 +4630,6 @@ gh-got@^6.0.0:
     got "^7.0.0"
     is-plain-obj "^1.1.0"
 
-gherkin@^5.1.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/gherkin/-/gherkin-5.1.0.tgz#684bbb03add24eaf7bdf544f58033eb28fb3c6d5"
-  integrity sha1-aEu7A63STq9731RPWAM+so+zxtU=
-
 git-raw-commits@^1.3.0, git-raw-commits@^1.3.4:
   version "1.3.4"
   resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.4.tgz#442c3df5985b4f5689e9e43597f5194736aac001"
@@ -4873,7 +4715,7 @@ glob@^5.0.10, glob@^5.0.15:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
-glob@^6.0.1, glob@^6.0.4:
+glob@^6.0.4:
   version "6.0.4"
   resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
   integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=
@@ -5339,23 +5181,6 @@ https-browserify@^1.0.0:
   resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
   integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
 
-https-proxy-agent@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6"
-  integrity sha1-NffabEjOTdv6JkiRrFk+5f+GceY=
-  dependencies:
-    agent-base "2"
-    debug "2"
-    extend "3"
-
-https-proxy-agent@^2.2.1:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
-  integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==
-  dependencies:
-    agent-base "^4.1.0"
-    debug "^3.1.0"
-
 husky@^0.14.3:
   version "0.14.3"
   resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3"
@@ -5479,25 +5304,6 @@ ini@^1.3.2, ini@^1.3.4, ini@~1.3.0:
   resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
   integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
 
-inquirer@^0.11.0:
-  version "0.11.4"
-  resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.11.4.tgz#81e3374e8361beaff2d97016206d359d0b32fa4d"
-  integrity sha1-geM3ToNhvq/y2XAWIG01nQsy+k0=
-  dependencies:
-    ansi-escapes "^1.1.0"
-    ansi-regex "^2.0.0"
-    chalk "^1.0.0"
-    cli-cursor "^1.0.1"
-    cli-width "^1.0.1"
-    figures "^1.3.5"
-    lodash "^3.3.1"
-    readline2 "^1.0.1"
-    run-async "^0.1.0"
-    rx-lite "^3.1.2"
-    string-width "^1.0.1"
-    strip-ansi "^3.0.0"
-    through "^2.3.6"
-
 inquirer@^3.0.6, inquirer@~3.3.0:
   version "3.3.0"
   resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
@@ -6138,13 +5944,6 @@ js-yaml@~3.7.0:
     argparse "^1.0.7"
     esprima "^2.6.0"
 
-js2xmlparser@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-3.0.0.tgz#3fb60eaa089c5440f9319f51760ccd07e2499733"
-  integrity sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=
-  dependencies:
-    xmlcreate "^1.0.1"
-
 jsbn@~0.1.0:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
@@ -6224,13 +6023,6 @@ jsonfile@^3.0.0:
   optionalDependencies:
     graceful-fs "^4.1.6"
 
-jsonfile@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
-  integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
-  optionalDependencies:
-    graceful-fs "^4.1.6"
-
 jsonify@~0.0.0:
   version "0.0.0"
   resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
@@ -6834,7 +6626,7 @@ lodash@4.17.11, lodash@^4.14.0, lodash@^4.17.0, lodash@^4.17.2:
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
   integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
 
-lodash@^3.10.1, lodash@^3.3.1:
+lodash@^3.10.1:
   version "3.10.1"
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
   integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=
@@ -7200,7 +6992,7 @@ mime@^1.5.0:
   resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
   integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
 
-mime@^2.0.3, mime@^2.1.0, mime@^2.3.1:
+mime@^2.1.0, mime@^2.3.1:
   version "2.4.0"
   resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz#e051fd881358585f3279df333fe694da0bcffdd6"
   integrity sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==
@@ -7312,7 +7104,7 @@ mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdi
   dependencies:
     minimist "0.0.8"
 
-mocha@^4.0.1, mocha@^4.1.0:
+mocha@^4.0.1:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/mocha/-/mocha-4.1.0.tgz#7d86cfbcf35cb829e2754c32e17355ec05338794"
   integrity sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==
@@ -7380,11 +7172,6 @@ multicast-dns@^6.0.1:
     dns-packet "^1.3.1"
     thunky "^1.0.2"
 
-mute-stream@0.0.5:
-  version "0.0.5"
-  resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
-  integrity sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=
-
 mute-stream@0.0.7:
   version "0.0.7"
   resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
@@ -7437,11 +7224,6 @@ neo-async@^2.5.0:
   resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.0.tgz#76b1c823130cca26acfbaccc8fbaf0a2fa33b18f"
   integrity sha512-nJmSswG4As/MkRq7QZFuH/sf/yuv8ODdMZrY4Bedjp77a5MK4A6s7YbBB64c9u79EBUOfXUXBvArmvzTD0X+6g==
 
-nested-error-stacks@~2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz#d2cc9fc5235ddb371fc44d506234339c8e4b0a4b"
-  integrity sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==
-
 nice-try@^1.0.4:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
@@ -7974,15 +7756,6 @@ parse-entities@^1.0.2:
     is-decimal "^1.0.0"
     is-hexadecimal "^1.0.0"
 
-parse-function@^5.2.10:
-  version "5.2.11"
-  resolved "https://registry.yarnpkg.com/parse-function/-/parse-function-5.2.11.tgz#89ca2e30b05ecec41e6e12ede647c25839e75036"
-  integrity sha512-2nQChgTKz80awFjQqs93ZzgQPOykT+BXomHUfwMdIben3PT2uohAPot+h5D+PNa0T+odzjuMZUMOoCyJfnej1Q==
-  dependencies:
-    arrify "1.0.1"
-    babylon "7.0.0-beta.47"
-    define-property "2.0.2"
-
 parse-github-repo-url@^1.3.0:
   version "1.4.1"
   resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50"
@@ -8734,19 +8507,6 @@ progress@^2.0.0:
   resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
   integrity sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=
 
-progress@^2.0.1:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
-  integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
-
-promise-retry@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d"
-  integrity sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=
-  dependencies:
-    err-code "^1.0.0"
-    retry "^0.10.0"
-
 promise@^7.1.1:
   version "7.3.1"
   resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
@@ -8784,11 +8544,6 @@ proxy-addr@~2.0.3:
     forwarded "~0.1.2"
     ipaddr.js "1.6.0"
 
-proxy-from-env@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee"
-  integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=
-
 prr@~1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
@@ -8830,20 +8585,6 @@ punycode@^1.2.4, punycode@^1.4.1:
   resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
   integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
 
-puppeteer@^1.11.0:
-  version "1.11.0"
-  resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.11.0.tgz#63cdbe12b07275cd6e0b94bce41f3fcb20305770"
-  integrity sha512-iG4iMOHixc2EpzqRV+pv7o3GgmU2dNYEMkvKwSaQO/vMZURakwSOn/EYJ6OIRFYOque1qorzIBvrytPIQB3YzQ==
-  dependencies:
-    debug "^4.1.0"
-    extract-zip "^1.6.6"
-    https-proxy-agent "^2.2.1"
-    mime "^2.0.3"
-    progress "^2.0.1"
-    proxy-from-env "^1.0.0"
-    rimraf "^2.6.1"
-    ws "^6.1.0"
-
 q@^1.1.2, q@^1.4.1, q@^1.5.1, q@~1.5.0:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
@@ -8940,7 +8681,7 @@ raw-loader@^0.5.1:
   resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa"
   integrity sha1-DD0L6u2KAclm2Xh793goElKpeao=
 
-rc@^1.2.7, rc@~1.2.7:
+rc@^1.2.7:
   version "1.2.8"
   resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
   integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
@@ -9087,15 +8828,6 @@ readdirp@^2.0.0:
     readable-stream "^2.0.2"
     set-immediate-shim "^1.0.1"
 
-readline2@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35"
-  integrity sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=
-  dependencies:
-    code-point-at "^1.0.0"
-    is-fullwidth-code-point "^1.0.0"
-    mute-stream "0.0.5"
-
 redent@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
@@ -9434,15 +9166,6 @@ require-uncached@^1.0.3:
     caller-path "^0.1.0"
     resolve-from "^1.0.0"
 
-requireg@^0.1.8:
-  version "0.1.8"
-  resolved "https://registry.yarnpkg.com/requireg/-/requireg-0.1.8.tgz#75c1d495294fa5ddfd51e4fcca4965c44f1ed8b1"
-  integrity sha512-qjbwnviLXg4oZiAFEr1ExbevkUPaEiP1uPGSoFCVgCCcbo4PXv9SmiJpXNYmgTBCZ8fY1Jy+sk7F9/kPNepeDw==
-  dependencies:
-    nested-error-stacks "~2.0.1"
-    rc "~1.2.7"
-    resolve "~1.7.1"
-
 requires-port@1.x.x, requires-port@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
@@ -9499,13 +9222,6 @@ resolve@^1.2.0, resolve@^1.5.0:
   dependencies:
     path-parse "^1.0.5"
 
-resolve@~1.7.1:
-  version "1.7.1"
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3"
-  integrity sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==
-  dependencies:
-    path-parse "^1.0.5"
-
 restore-cursor@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
@@ -9527,11 +9243,6 @@ ret@~0.1.10:
   resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
   integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
 
-retry@^0.10.0:
-  version "0.10.1"
-  resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4"
-  integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=
-
 rfdc@^1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.2.tgz#e6e72d74f5dc39de8f538f65e00c36c18018e349"
@@ -9564,13 +9275,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
     hash-base "^2.0.0"
     inherits "^2.0.1"
 
-run-async@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
-  integrity sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=
-  dependencies:
-    once "^1.3.0"
-
 run-async@^2.2.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
@@ -9590,11 +9294,6 @@ rx-lite@*, rx-lite@^4.0.8:
   resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
   integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=
 
-rx-lite@^3.1.2:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
-  integrity sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=
-
 rx@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782"
@@ -9657,13 +9356,6 @@ sass-loader@^6.0.6:
     neo-async "^2.5.0"
     pify "^3.0.0"
 
-saucelabs@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.4.0.tgz#b934a9af9da2874b3f40aae1fcde50a4466f5f38"
-  integrity sha1-uTSpr52ih0s/QKrh/N5QpEZvXzg=
-  dependencies:
-    https-proxy-agent "^1.0.0"
-
 sax@>=0.6.0, sax@^1.2.4, sax@~1.2.1:
   version "1.2.4"
   resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
@@ -9742,11 +9434,6 @@ semver@^5.5.0:
   resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004"
   integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==
 
-semver@~5.0.1:
-  version "5.0.3"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a"
-  integrity sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=
-
 semver@~5.3.0:
   version "5.3.0"
   resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
@@ -10175,11 +9862,6 @@ split@^1.0.0:
   dependencies:
     through "2"
 
-sprintf-js@^1.1.1:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
-  integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==
-
 sprintf-js@~1.0.2:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
@@ -11165,11 +10847,6 @@ uuid@^2.0.1:
   resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
   integrity sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=
 
-uuid@^3.0.0:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
-  integrity sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==
-
 uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2:
   version "3.3.2"
   resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
@@ -11533,13 +11210,6 @@ ws@^4.0.0:
     async-limiter "~1.0.0"
     safe-buffer "~5.1.0"
 
-ws@^6.1.0:
-  version "6.1.2"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.2.tgz#3cc7462e98792f0ac679424148903ded3b9c3ad8"
-  integrity sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==
-  dependencies:
-    async-limiter "~1.0.0"
-
 ws@~3.3.1:
   version "3.3.3"
   resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
@@ -11577,21 +11247,11 @@ xmlbuilder@~9.0.1:
   resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
   integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=
 
-xmlcreate@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-1.0.2.tgz#fa6bf762a60a413fb3dd8f4b03c5b269238d308f"
-  integrity sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=
-
 xmlhttprequest-ssl@~1.5.4:
   version "1.5.5"
   resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
   integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=
 
-xpath-builder@0.0.7:
-  version "0.0.7"
-  resolved "https://registry.yarnpkg.com/xpath-builder/-/xpath-builder-0.0.7.tgz#67d6bbc3f6a320ec317e3e6368c5706b6111deec"
-  integrity sha1-Z9a7w/ajIOwxfj5jaMVwa2ER3uw=
-
 xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"