You've already forked matrix-react-sdk
							
							
				mirror of
				https://github.com/matrix-org/matrix-react-sdk.git
				synced 2025-11-04 11:51:45 +03:00 
			
		
		
		
	Allow iframes and Jitsi URLs in /addwidget
Fixes https://github.com/vector-im/riot-web/issues/12784
This commit is contained in:
		@@ -82,6 +82,7 @@
 | 
				
			|||||||
    "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop",
 | 
					    "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop",
 | 
				
			||||||
    "minimist": "^1.2.0",
 | 
					    "minimist": "^1.2.0",
 | 
				
			||||||
    "pako": "^1.0.5",
 | 
					    "pako": "^1.0.5",
 | 
				
			||||||
 | 
					    "parse5": "^5.1.1",
 | 
				
			||||||
    "png-chunks-extract": "^1.0.0",
 | 
					    "png-chunks-extract": "^1.0.0",
 | 
				
			||||||
    "project-name-generator": "^2.1.7",
 | 
					    "project-name-generator": "^2.1.7",
 | 
				
			||||||
    "prop-types": "^15.5.8",
 | 
					    "prop-types": "^15.5.8",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,6 +36,8 @@ import { getDefaultIdentityServerUrl, useDefaultIdentityServer } from './utils/I
 | 
				
			|||||||
import {isPermalinkHost, parsePermalink} from "./utils/permalinks/Permalinks";
 | 
					import {isPermalinkHost, parsePermalink} from "./utils/permalinks/Permalinks";
 | 
				
			||||||
import {inviteUsersToRoom} from "./RoomInvite";
 | 
					import {inviteUsersToRoom} from "./RoomInvite";
 | 
				
			||||||
import { WidgetType } from "./widgets/WidgetType";
 | 
					import { WidgetType } from "./widgets/WidgetType";
 | 
				
			||||||
 | 
					import { Jitsi } from "./widgets/Jitsi";
 | 
				
			||||||
 | 
					import { parseFragment as parseHtml } from "parse5";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// XXX: workaround for https://github.com/microsoft/TypeScript/issues/31816
 | 
					// XXX: workaround for https://github.com/microsoft/TypeScript/issues/31816
 | 
				
			||||||
interface HTMLInputEvent extends Event {
 | 
					interface HTMLInputEvent extends Event {
 | 
				
			||||||
@@ -765,18 +767,50 @@ export const Commands = [
 | 
				
			|||||||
    }),
 | 
					    }),
 | 
				
			||||||
    new Command({
 | 
					    new Command({
 | 
				
			||||||
        command: 'addwidget',
 | 
					        command: 'addwidget',
 | 
				
			||||||
        args: '<url>',
 | 
					        args: '<url | embed code | jitsi url>',
 | 
				
			||||||
        description: _td('Adds a custom widget by URL to the room'),
 | 
					        description: _td('Adds a custom widget by URL to the room'),
 | 
				
			||||||
        runFn: function(roomId, args) {
 | 
					        runFn: function(roomId, widgetUrl) {
 | 
				
			||||||
            if (!args || (!args.startsWith("https://") && !args.startsWith("http://"))) {
 | 
					            if (!widgetUrl) {
 | 
				
			||||||
 | 
					                return reject(_t("Please supply a widget URL or embed code"));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // Try and parse out a widget URL from iframes
 | 
				
			||||||
 | 
					            if (widgetUrl.toLowerCase().startsWith("<iframe ")) {
 | 
				
			||||||
 | 
					                // We use parse5, which doesn't render/create a DOM node. It instead runs
 | 
				
			||||||
 | 
					                // some superfast regex over the text so we don't have to.
 | 
				
			||||||
 | 
					                const embed = parseHtml(widgetUrl);
 | 
				
			||||||
 | 
					                if (embed && embed.childNodes && embed.childNodes.length === 1) {
 | 
				
			||||||
 | 
					                    const iframe = embed.childNodes[0];
 | 
				
			||||||
 | 
					                    if (iframe.tagName.toLowerCase() === 'iframe' && iframe.attrs) {
 | 
				
			||||||
 | 
					                        const srcAttr = iframe.attrs.find(a => a.name === 'src');
 | 
				
			||||||
 | 
					                        console.log("Pulling URL out of iframe (embed code)");
 | 
				
			||||||
 | 
					                        widgetUrl = srcAttr.value;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (!widgetUrl.startsWith("https://") && !widgetUrl.startsWith("http://")) {
 | 
				
			||||||
                return reject(_t("Please supply a https:// or http:// widget URL"));
 | 
					                return reject(_t("Please supply a https:// or http:// widget URL"));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (WidgetUtils.canUserModifyWidgets(roomId)) {
 | 
					            if (WidgetUtils.canUserModifyWidgets(roomId)) {
 | 
				
			||||||
                const userId = MatrixClientPeg.get().getUserId();
 | 
					                const userId = MatrixClientPeg.get().getUserId();
 | 
				
			||||||
                const nowMs = (new Date()).getTime();
 | 
					                const nowMs = (new Date()).getTime();
 | 
				
			||||||
                const widgetId = encodeURIComponent(`${roomId}_${userId}_${nowMs}`);
 | 
					                const widgetId = encodeURIComponent(`${roomId}_${userId}_${nowMs}`);
 | 
				
			||||||
                return success(WidgetUtils.setRoomWidget(
 | 
					                let type = WidgetType.CUSTOM;
 | 
				
			||||||
                    roomId, widgetId, WidgetType.CUSTOM, args, "Custom Widget", {}));
 | 
					                let name = "Custom Widget";
 | 
				
			||||||
 | 
					                let data = {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // Make the widget a Jitsi widget if it looks like a Jitsi widget
 | 
				
			||||||
 | 
					                const jitsiData = Jitsi.getInstance().parsePreferredConferenceUrl(widgetUrl);
 | 
				
			||||||
 | 
					                if (jitsiData) {
 | 
				
			||||||
 | 
					                    console.log("Making /addwidget widget a Jitsi conference");
 | 
				
			||||||
 | 
					                    type = WidgetType.JITSI;
 | 
				
			||||||
 | 
					                    name = "Jitsi Conference";
 | 
				
			||||||
 | 
					                    data = jitsiData;
 | 
				
			||||||
 | 
					                    widgetUrl = WidgetUtils.getLocalJitsiWrapperUrl();
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                return success(WidgetUtils.setRoomWidget(roomId, widgetId, type, widgetUrl, name, data));
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                return reject(_t("You cannot modify widgets in this room."));
 | 
					                return reject(_t("You cannot modify widgets in this room."));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,6 +21,12 @@ import {AutoDiscovery} from "matrix-js-sdk/src/autodiscovery";
 | 
				
			|||||||
const JITSI_WK_PROPERTY = "im.vector.riot.jitsi";
 | 
					const JITSI_WK_PROPERTY = "im.vector.riot.jitsi";
 | 
				
			||||||
const JITSI_WK_CHECK_INTERVAL = 2 * 60 * 60 * 1000; // 2 hours, arbitrarily selected
 | 
					const JITSI_WK_CHECK_INTERVAL = 2 * 60 * 60 * 1000; // 2 hours, arbitrarily selected
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface JitsiWidgetData {
 | 
				
			||||||
 | 
					    conferenceId: string;
 | 
				
			||||||
 | 
					    isAudioOnly: boolean;
 | 
				
			||||||
 | 
					    domain: string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export class Jitsi {
 | 
					export class Jitsi {
 | 
				
			||||||
    private static instance: Jitsi;
 | 
					    private static instance: Jitsi;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -64,6 +70,22 @@ export class Jitsi {
 | 
				
			|||||||
        console.log("Jitsi conference domain:", this.preferredDomain);
 | 
					        console.log("Jitsi conference domain:", this.preferredDomain);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Parses the given URL into the data needed for a Jitsi widget, if the widget
 | 
				
			||||||
 | 
					     * URL matches the preferredDomain for the app.
 | 
				
			||||||
 | 
					     * @param {string} url The URL to parse.
 | 
				
			||||||
 | 
					     * @returns {JitsiWidgetData} The widget data if eligible, otherwise null.
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public parsePreferredConferenceUrl(url: string): JitsiWidgetData {
 | 
				
			||||||
 | 
					        const parsed = new URL(url);
 | 
				
			||||||
 | 
					        if (parsed.hostname !== this.preferredDomain) return null; // invalid
 | 
				
			||||||
 | 
					        return {
 | 
				
			||||||
 | 
					            conferenceId: parsed.pathname,
 | 
				
			||||||
 | 
					            domain: parsed.hostname,
 | 
				
			||||||
 | 
					            isAudioOnly: false,
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static getInstance(): Jitsi {
 | 
					    public static getInstance(): Jitsi {
 | 
				
			||||||
        if (!Jitsi.instance) {
 | 
					        if (!Jitsi.instance) {
 | 
				
			||||||
            Jitsi.instance = new Jitsi();
 | 
					            Jitsi.instance = new Jitsi();
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										200
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										200
									
								
								yarn.lock
									
									
									
									
									
								
							@@ -1496,11 +1496,6 @@ abab@^2.0.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a"
 | 
					  resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a"
 | 
				
			||||||
  integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==
 | 
					  integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
abbrev@1:
 | 
					 | 
				
			||||||
  version "1.1.1"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
 | 
					 | 
				
			||||||
  integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
acorn-globals@^4.1.0:
 | 
					acorn-globals@^4.1.0:
 | 
				
			||||||
  version "4.3.4"
 | 
					  version "4.3.4"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7"
 | 
					  resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7"
 | 
				
			||||||
@@ -1634,19 +1629,11 @@ anymatch@~3.1.1:
 | 
				
			|||||||
    normalize-path "^3.0.0"
 | 
					    normalize-path "^3.0.0"
 | 
				
			||||||
    picomatch "^2.0.4"
 | 
					    picomatch "^2.0.4"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
aproba@^1.0.3, aproba@^1.1.1:
 | 
					aproba@^1.1.1:
 | 
				
			||||||
  version "1.2.0"
 | 
					  version "1.2.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
 | 
					  resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
 | 
				
			||||||
  integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
 | 
					  integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
are-we-there-yet@~1.1.2:
 | 
					 | 
				
			||||||
  version "1.1.5"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
 | 
					 | 
				
			||||||
  integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    delegates "^1.0.0"
 | 
					 | 
				
			||||||
    readable-stream "^2.0.6"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
argparse@^1.0.7:
 | 
					argparse@^1.0.7:
 | 
				
			||||||
  version "1.0.10"
 | 
					  version "1.0.10"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
 | 
					  resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
 | 
				
			||||||
@@ -2553,11 +2540,6 @@ console-browserify@^1.1.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
 | 
					  resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
 | 
				
			||||||
  integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
 | 
					  integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
console-control-strings@^1.0.0, console-control-strings@~1.1.0:
 | 
					 | 
				
			||||||
  version "1.1.0"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
 | 
					 | 
				
			||||||
  integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
constants-browserify@^1.0.0:
 | 
					constants-browserify@^1.0.0:
 | 
				
			||||||
  version "1.0.0"
 | 
					  version "1.0.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
 | 
					  resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
 | 
				
			||||||
@@ -2803,7 +2785,7 @@ debug@^2.2.0, debug@^2.3.3:
 | 
				
			|||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    ms "2.0.0"
 | 
					    ms "2.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
debug@^3.1.0, debug@^3.2.6:
 | 
					debug@^3.1.0:
 | 
				
			||||||
  version "3.2.6"
 | 
					  version "3.2.6"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
 | 
					  resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
 | 
				
			||||||
  integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
 | 
					  integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
 | 
				
			||||||
@@ -2879,11 +2861,6 @@ delayed-stream@~1.0.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
 | 
					  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
 | 
				
			||||||
  integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
 | 
					  integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
delegates@^1.0.0:
 | 
					 | 
				
			||||||
  version "1.0.0"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
 | 
					 | 
				
			||||||
  integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
des.js@^1.0.0:
 | 
					des.js@^1.0.0:
 | 
				
			||||||
  version "1.0.1"
 | 
					  version "1.0.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
 | 
					  resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
 | 
				
			||||||
@@ -2897,11 +2874,6 @@ detect-file@^1.0.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
 | 
					  resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
 | 
				
			||||||
  integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=
 | 
					  integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
detect-libc@^1.0.2:
 | 
					 | 
				
			||||||
  version "1.0.3"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
 | 
					 | 
				
			||||||
  integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
detect-newline@^2.1.0:
 | 
					detect-newline@^2.1.0:
 | 
				
			||||||
  version "2.1.0"
 | 
					  version "2.1.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
 | 
					  resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
 | 
				
			||||||
@@ -3916,13 +3888,6 @@ from2@^2.1.0:
 | 
				
			|||||||
    inherits "^2.0.1"
 | 
					    inherits "^2.0.1"
 | 
				
			||||||
    readable-stream "^2.0.0"
 | 
					    readable-stream "^2.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fs-minipass@^1.2.5:
 | 
					 | 
				
			||||||
  version "1.2.7"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
 | 
					 | 
				
			||||||
  integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    minipass "^2.6.0"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
fs-readdir-recursive@^1.1.0:
 | 
					fs-readdir-recursive@^1.1.0:
 | 
				
			||||||
  version "1.1.0"
 | 
					  version "1.1.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
 | 
					  resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
 | 
				
			||||||
@@ -3985,20 +3950,6 @@ fuse.js@^2.2.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-2.7.4.tgz#96e420fde7ef011ac49c258a621314fe576536f9"
 | 
					  resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-2.7.4.tgz#96e420fde7ef011ac49c258a621314fe576536f9"
 | 
				
			||||||
  integrity sha1-luQg/efvARrEnCWKYhMU/ldlNvk=
 | 
					  integrity sha1-luQg/efvARrEnCWKYhMU/ldlNvk=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
gauge@~2.7.3:
 | 
					 | 
				
			||||||
  version "2.7.4"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
 | 
					 | 
				
			||||||
  integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    aproba "^1.0.3"
 | 
					 | 
				
			||||||
    console-control-strings "^1.0.0"
 | 
					 | 
				
			||||||
    has-unicode "^2.0.0"
 | 
					 | 
				
			||||||
    object-assign "^4.1.0"
 | 
					 | 
				
			||||||
    signal-exit "^3.0.0"
 | 
					 | 
				
			||||||
    string-width "^1.0.1"
 | 
					 | 
				
			||||||
    strip-ansi "^3.0.1"
 | 
					 | 
				
			||||||
    wide-align "^1.1.0"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
gensync@^1.0.0-beta.1:
 | 
					gensync@^1.0.0-beta.1:
 | 
				
			||||||
  version "1.0.0-beta.1"
 | 
					  version "1.0.0-beta.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269"
 | 
					  resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269"
 | 
				
			||||||
@@ -4196,11 +4147,6 @@ has-symbols@^1.0.0, has-symbols@^1.0.1:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
 | 
					  resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
 | 
				
			||||||
  integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
 | 
					  integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
has-unicode@^2.0.0:
 | 
					 | 
				
			||||||
  version "2.0.1"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
 | 
					 | 
				
			||||||
  integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
has-value@^0.3.1:
 | 
					has-value@^0.3.1:
 | 
				
			||||||
  version "0.3.1"
 | 
					  version "0.3.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
 | 
					  resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
 | 
				
			||||||
@@ -4388,7 +4334,7 @@ humanize-ms@^1.2.1:
 | 
				
			|||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    ms "^2.0.0"
 | 
					    ms "^2.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
 | 
					iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@~0.4.13:
 | 
				
			||||||
  version "0.4.24"
 | 
					  version "0.4.24"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
 | 
					  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
 | 
				
			||||||
  integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
 | 
					  integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
 | 
				
			||||||
@@ -4405,13 +4351,6 @@ iferr@^0.1.5:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
 | 
					  resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
 | 
				
			||||||
  integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
 | 
					  integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ignore-walk@^3.0.1:
 | 
					 | 
				
			||||||
  version "3.0.3"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37"
 | 
					 | 
				
			||||||
  integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    minimatch "^3.0.4"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ignore@^4.0.3, ignore@^4.0.6:
 | 
					ignore@^4.0.3, ignore@^4.0.6:
 | 
				
			||||||
  version "4.0.6"
 | 
					  version "4.0.6"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
 | 
					  resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
 | 
				
			||||||
@@ -5975,21 +5914,6 @@ minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, "minimist@~ 1.2.0":
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
 | 
					  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
 | 
				
			||||||
  integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
 | 
					  integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
 | 
					 | 
				
			||||||
  version "2.9.0"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
 | 
					 | 
				
			||||||
  integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    safe-buffer "^5.1.2"
 | 
					 | 
				
			||||||
    yallist "^3.0.0"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
minizlib@^1.2.1:
 | 
					 | 
				
			||||||
  version "1.3.3"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
 | 
					 | 
				
			||||||
  integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    minipass "^2.9.0"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
mississippi@^3.0.0:
 | 
					mississippi@^3.0.0:
 | 
				
			||||||
  version "3.0.0"
 | 
					  version "3.0.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
 | 
					  resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
 | 
				
			||||||
@@ -6014,7 +5938,7 @@ mixin-deep@^1.2.0:
 | 
				
			|||||||
    for-in "^1.0.2"
 | 
					    for-in "^1.0.2"
 | 
				
			||||||
    is-extendable "^1.0.1"
 | 
					    is-extendable "^1.0.1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3:
 | 
					mkdirp@^0.5.1, mkdirp@^0.5.3:
 | 
				
			||||||
  version "0.5.5"
 | 
					  version "0.5.5"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
 | 
					  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
 | 
				
			||||||
  integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
 | 
					  integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
 | 
				
			||||||
@@ -6091,15 +6015,6 @@ nearley@^2.7.10:
 | 
				
			|||||||
    randexp "0.4.6"
 | 
					    randexp "0.4.6"
 | 
				
			||||||
    semver "^5.4.1"
 | 
					    semver "^5.4.1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
needle@^2.2.1:
 | 
					 | 
				
			||||||
  version "2.4.1"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.1.tgz#14af48732463d7475696f937626b1b993247a56a"
 | 
					 | 
				
			||||||
  integrity sha512-x/gi6ijr4B7fwl6WYL9FwlCvRQKGlUNvnceho8wxkwXqN8jvVmmmATTmZPRRG7b/yC1eode26C2HO9jl78Du9g==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    debug "^3.2.6"
 | 
					 | 
				
			||||||
    iconv-lite "^0.4.4"
 | 
					 | 
				
			||||||
    sax "^1.2.4"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
neo-async@^2.5.0, neo-async@^2.6.1:
 | 
					neo-async@^2.5.0, neo-async@^2.6.1:
 | 
				
			||||||
  version "2.6.1"
 | 
					  version "2.6.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
 | 
					  resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
 | 
				
			||||||
@@ -6177,35 +6092,11 @@ node-notifier@^5.4.2:
 | 
				
			|||||||
    shellwords "^0.1.1"
 | 
					    shellwords "^0.1.1"
 | 
				
			||||||
    which "^1.3.0"
 | 
					    which "^1.3.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
node-pre-gyp@*:
 | 
					 | 
				
			||||||
  version "0.14.0"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83"
 | 
					 | 
				
			||||||
  integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    detect-libc "^1.0.2"
 | 
					 | 
				
			||||||
    mkdirp "^0.5.1"
 | 
					 | 
				
			||||||
    needle "^2.2.1"
 | 
					 | 
				
			||||||
    nopt "^4.0.1"
 | 
					 | 
				
			||||||
    npm-packlist "^1.1.6"
 | 
					 | 
				
			||||||
    npmlog "^4.0.2"
 | 
					 | 
				
			||||||
    rc "^1.2.7"
 | 
					 | 
				
			||||||
    rimraf "^2.6.1"
 | 
					 | 
				
			||||||
    semver "^5.3.0"
 | 
					 | 
				
			||||||
    tar "^4.4.2"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
node-releases@^1.1.53:
 | 
					node-releases@^1.1.53:
 | 
				
			||||||
  version "1.1.53"
 | 
					  version "1.1.53"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4"
 | 
					  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4"
 | 
				
			||||||
  integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==
 | 
					  integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
nopt@^4.0.1:
 | 
					 | 
				
			||||||
  version "4.0.3"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48"
 | 
					 | 
				
			||||||
  integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    abbrev "1"
 | 
					 | 
				
			||||||
    osenv "^0.1.4"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
 | 
					normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
 | 
				
			||||||
  version "2.5.0"
 | 
					  version "2.5.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
 | 
					  resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
 | 
				
			||||||
@@ -6238,27 +6129,6 @@ normalize-selector@^0.2.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03"
 | 
					  resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03"
 | 
				
			||||||
  integrity sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=
 | 
					  integrity sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
npm-bundled@^1.0.1:
 | 
					 | 
				
			||||||
  version "1.1.1"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b"
 | 
					 | 
				
			||||||
  integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    npm-normalize-package-bin "^1.0.1"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
npm-normalize-package-bin@^1.0.1:
 | 
					 | 
				
			||||||
  version "1.0.1"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
 | 
					 | 
				
			||||||
  integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
npm-packlist@^1.1.6:
 | 
					 | 
				
			||||||
  version "1.4.8"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e"
 | 
					 | 
				
			||||||
  integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    ignore-walk "^3.0.1"
 | 
					 | 
				
			||||||
    npm-bundled "^1.0.1"
 | 
					 | 
				
			||||||
    npm-normalize-package-bin "^1.0.1"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
npm-run-path@^2.0.0:
 | 
					npm-run-path@^2.0.0:
 | 
				
			||||||
  version "2.0.2"
 | 
					  version "2.0.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
 | 
					  resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
 | 
				
			||||||
@@ -6266,16 +6136,6 @@ npm-run-path@^2.0.0:
 | 
				
			|||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    path-key "^2.0.0"
 | 
					    path-key "^2.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
npmlog@^4.0.2:
 | 
					 | 
				
			||||||
  version "4.1.2"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
 | 
					 | 
				
			||||||
  integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    are-we-there-yet "~1.1.2"
 | 
					 | 
				
			||||||
    console-control-strings "~1.1.0"
 | 
					 | 
				
			||||||
    gauge "~2.7.3"
 | 
					 | 
				
			||||||
    set-blocking "~2.0.0"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
nth-check@~1.0.1:
 | 
					nth-check@~1.0.1:
 | 
				
			||||||
  version "1.0.2"
 | 
					  version "1.0.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
 | 
					  resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
 | 
				
			||||||
@@ -6425,11 +6285,6 @@ os-browserify@^0.3.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
 | 
					  resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
 | 
				
			||||||
  integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
 | 
					  integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
os-homedir@^1.0.0:
 | 
					 | 
				
			||||||
  version "1.0.2"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
 | 
					 | 
				
			||||||
  integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
os-locale@^3.0.0, os-locale@^3.1.0:
 | 
					os-locale@^3.0.0, os-locale@^3.1.0:
 | 
				
			||||||
  version "3.1.0"
 | 
					  version "3.1.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
 | 
					  resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
 | 
				
			||||||
@@ -6439,19 +6294,11 @@ os-locale@^3.0.0, os-locale@^3.1.0:
 | 
				
			|||||||
    lcid "^2.0.0"
 | 
					    lcid "^2.0.0"
 | 
				
			||||||
    mem "^4.0.0"
 | 
					    mem "^4.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
 | 
					os-tmpdir@~1.0.2:
 | 
				
			||||||
  version "1.0.2"
 | 
					  version "1.0.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
 | 
					  resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
 | 
				
			||||||
  integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
 | 
					  integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
osenv@^0.1.4:
 | 
					 | 
				
			||||||
  version "0.1.5"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
 | 
					 | 
				
			||||||
  integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    os-homedir "^1.0.0"
 | 
					 | 
				
			||||||
    os-tmpdir "^1.0.0"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
p-defer@^1.0.0:
 | 
					p-defer@^1.0.0:
 | 
				
			||||||
  version "1.0.0"
 | 
					  version "1.0.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
 | 
					  resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
 | 
				
			||||||
@@ -6594,6 +6441,11 @@ parse5@^3.0.1:
 | 
				
			|||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    "@types/node" "*"
 | 
					    "@types/node" "*"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					parse5@^5.1.1:
 | 
				
			||||||
 | 
					  version "5.1.1"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
 | 
				
			||||||
 | 
					  integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pascalcase@^0.1.1:
 | 
					pascalcase@^0.1.1:
 | 
				
			||||||
  version "0.1.1"
 | 
					  version "0.1.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
 | 
					  resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
 | 
				
			||||||
@@ -7096,7 +6948,7 @@ randomfill@^1.0.3:
 | 
				
			|||||||
    randombytes "^2.0.5"
 | 
					    randombytes "^2.0.5"
 | 
				
			||||||
    safe-buffer "^5.1.0"
 | 
					    safe-buffer "^5.1.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
rc@1.2.8, rc@^1.2.7, rc@^1.2.8:
 | 
					rc@1.2.8, rc@^1.2.8:
 | 
				
			||||||
  version "1.2.8"
 | 
					  version "1.2.8"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
 | 
					  resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
 | 
				
			||||||
  integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
 | 
					  integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
 | 
				
			||||||
@@ -7254,7 +7106,7 @@ read-pkg@^4.0.1:
 | 
				
			|||||||
    parse-json "^4.0.0"
 | 
					    parse-json "^4.0.0"
 | 
				
			||||||
    pify "^3.0.0"
 | 
					    pify "^3.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
 | 
					"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
 | 
				
			||||||
  version "2.3.7"
 | 
					  version "2.3.7"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
 | 
					  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
 | 
				
			||||||
  integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
 | 
					  integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
 | 
				
			||||||
@@ -7614,7 +7466,7 @@ rimraf@2.6.3:
 | 
				
			|||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    glob "^7.1.3"
 | 
					    glob "^7.1.3"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
rimraf@^2.4.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3:
 | 
					rimraf@^2.4.3, rimraf@^2.5.4, rimraf@^2.6.3:
 | 
				
			||||||
  version "2.7.1"
 | 
					  version "2.7.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
 | 
					  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
 | 
				
			||||||
  integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
 | 
					  integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
 | 
				
			||||||
@@ -7776,7 +7628,7 @@ serialize-javascript@^2.1.2:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61"
 | 
					  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61"
 | 
				
			||||||
  integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==
 | 
					  integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set-blocking@^2.0.0, set-blocking@~2.0.0:
 | 
					set-blocking@^2.0.0:
 | 
				
			||||||
  version "2.0.0"
 | 
					  version "2.0.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
 | 
					  resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
 | 
				
			||||||
  integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
 | 
					  integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
 | 
				
			||||||
@@ -8112,7 +7964,7 @@ string-width@^1.0.1:
 | 
				
			|||||||
    is-fullwidth-code-point "^1.0.0"
 | 
					    is-fullwidth-code-point "^1.0.0"
 | 
				
			||||||
    strip-ansi "^3.0.0"
 | 
					    strip-ansi "^3.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
 | 
					string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
 | 
				
			||||||
  version "2.1.1"
 | 
					  version "2.1.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
 | 
					  resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
 | 
				
			||||||
  integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
 | 
					  integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
 | 
				
			||||||
@@ -8393,19 +8245,6 @@ tapable@^1.0.0, tapable@^1.1.3:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
 | 
					  resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
 | 
				
			||||||
  integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
 | 
					  integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
tar@^4.4.2:
 | 
					 | 
				
			||||||
  version "4.4.13"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
 | 
					 | 
				
			||||||
  integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    chownr "^1.1.1"
 | 
					 | 
				
			||||||
    fs-minipass "^1.2.5"
 | 
					 | 
				
			||||||
    minipass "^2.8.6"
 | 
					 | 
				
			||||||
    minizlib "^1.2.1"
 | 
					 | 
				
			||||||
    mkdirp "^0.5.0"
 | 
					 | 
				
			||||||
    safe-buffer "^5.1.2"
 | 
					 | 
				
			||||||
    yallist "^3.0.3"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
terser-webpack-plugin@^1.4.3:
 | 
					terser-webpack-plugin@^1.4.3:
 | 
				
			||||||
  version "1.4.3"
 | 
					  version "1.4.3"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c"
 | 
					  resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c"
 | 
				
			||||||
@@ -9128,13 +8967,6 @@ which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1:
 | 
				
			|||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    isexe "^2.0.0"
 | 
					    isexe "^2.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
wide-align@^1.1.0:
 | 
					 | 
				
			||||||
  version "1.1.3"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
 | 
					 | 
				
			||||||
  integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    string-width "^1.0.2 || 2"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
word-wrap@~1.2.3:
 | 
					word-wrap@~1.2.3:
 | 
				
			||||||
  version "1.2.3"
 | 
					  version "1.2.3"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
 | 
					  resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
 | 
				
			||||||
@@ -9219,7 +9051,7 @@ xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
 | 
					  resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
 | 
				
			||||||
  integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
 | 
					  integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
 | 
					yallist@^3.0.2:
 | 
				
			||||||
  version "3.1.1"
 | 
					  version "3.1.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
 | 
					  resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
 | 
				
			||||||
  integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
 | 
					  integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user