diff --git a/ui/component/fileRender/view.jsx b/ui/component/fileRender/view.jsx index 19fa61983..b99529fb3 100644 --- a/ui/component/fileRender/view.jsx +++ b/ui/component/fileRender/view.jsx @@ -24,7 +24,6 @@ import PdfViewer from 'component/viewers/pdfViewer'; type Props = { uri: string, streamingUrl: string, - embedded?: boolean, contentType: string, claim: StreamClaim, currentTheme: string, @@ -45,9 +44,8 @@ class FileRender extends React.PureComponent { } componentDidMount() { - const { embedded } = this.props; window.addEventListener('keydown', this.escapeListener, true); - analytics.playerLoadedEvent(embedded); + analytics.playerLoadedEvent(); } componentWillUnmount() { @@ -146,13 +144,12 @@ class FileRender extends React.PureComponent { } render() { - const { embedded, renderMode, className } = this.props; + const { renderMode, className } = this.props; return (
diff --git a/ui/component/router/view.jsx b/ui/component/router/view.jsx index 27e6fc0ed..8a5e3b80d 100644 --- a/ui/component/router/view.jsx +++ b/ui/component/router/view.jsx @@ -37,7 +37,6 @@ import ChannelsPage from 'page/channels'; import CheckoutPage from 'page/checkoutPage'; import CreatorDashboard from 'page/creatorDashboard'; import DiscoverPage from 'page/discover'; -import EmbedWrapperPage from 'page/embedWrapper'; import FileListPublished from 'page/fileListPublished'; import FourOhFourPage from 'page/fourOhFour'; import HelpPage from 'page/help'; @@ -308,9 +307,6 @@ function AppRouter(props: Props) { - - - {/* Below need to go at the end to make sure we don't match any of our pages first */} diff --git a/ui/component/viewers/videoViewer/index.js b/ui/component/viewers/videoViewer/index.js index 5cccfc102..7e6a0a774 100644 --- a/ui/component/viewers/videoViewer/index.js +++ b/ui/component/viewers/videoViewer/index.js @@ -22,12 +22,11 @@ import { withRouter } from 'react-router'; import { doClaimEligiblePurchaseRewards } from 'redux/actions/rewards'; import { selectDaemonSettings, makeSelectClientSetting, selectHomepageData } from 'redux/selectors/settings'; import { toggleVideoTheaterMode, toggleAutoplayNext, doSetClientSetting } from 'redux/actions/settings'; -import { selectUserVerifiedEmail, selectUser } from 'redux/selectors/user'; +import { selectUser } from 'redux/selectors/user'; const select = (state, props) => { const { search } = props.location; const urlParams = new URLSearchParams(search); - const autoplay = urlParams.get('autoplay'); const uri = props.uri; // TODO: eventually this should be received from DB and not local state (https://github.com/lbryio/lbry-desktop/issues/6796) const position = urlParams.get('t') !== null ? urlParams.get('t') : makeSelectContentPositionForUri(uri)(state); @@ -53,7 +52,6 @@ const select = (state, props) => { nextRecommendedUri, previousListUri, isMarkdownOrComment, - autoplayIfEmbedded: Boolean(autoplay), autoplayNext: makeSelectClientSetting(SETTINGS.AUTOPLAY_NEXT)(state), volume: selectVolume(state), muted: selectMute(state), @@ -61,7 +59,6 @@ const select = (state, props) => { thumbnail: makeSelectThumbnailForUri(uri)(state), claim: makeSelectClaimForUri(uri)(state), homepageData: selectHomepageData(state), - authenticated: selectUserVerifiedEmail(state), shareTelemetry: IS_WEB || selectDaemonSettings(state).share_usage_data, isFloating: makeSelectIsPlayerFloating(props.location)(state), videoTheaterMode: makeSelectClientSetting(SETTINGS.VIDEO_THEATER_MODE)(state), diff --git a/ui/component/viewers/videoViewer/internal/videojs.jsx b/ui/component/viewers/videoViewer/internal/videojs.jsx index 8b68a776e..7fb0cde92 100644 --- a/ui/component/viewers/videoViewer/internal/videojs.jsx +++ b/ui/component/viewers/videoViewer/internal/videojs.jsx @@ -48,12 +48,9 @@ type Props = { poster: ?string, onPlayerReady: (Player, any) => void, isAudio: boolean, - startMuted: boolean, autoplay: boolean, autoplaySetting: boolean, - embedded: boolean, toggleVideoTheaterMode: () => void, - adUrl: ?string, claimId: ?string, userId: ?number, // allowPreRoll: ?boolean, @@ -163,18 +160,14 @@ export default React.memo(function VideoJs(props: Props) { const { autoplay, autoplaySetting, - embedded, - startMuted, source, sourceType, poster, isAudio, onPlayerReady, toggleVideoTheaterMode, - adUrl, claimId, userId, - // allowPreRoll, shareTelemetry, replay, videoTheaterMode, @@ -188,7 +181,6 @@ export default React.memo(function VideoJs(props: Props) { const videoJsOptions = { ...VIDEO_JS_OPTIONS, autoplay: autoplay, - muted: startMuted, sources: [ { src: source, @@ -361,10 +353,9 @@ export default React.memo(function VideoJs(props: Props) { } const onEnded = React.useCallback(() => { - if (!adUrl) { - showTapButton(TAP.NONE); - } - }, [adUrl]); + // not sure if this is necessary - used to be dependent on !adUrl + showTapButton(TAP.NONE); + }, []); function handleKeyDown(e: KeyboardEvent) { const player = playerRef.current; @@ -565,7 +556,6 @@ export default React.memo(function VideoJs(props: Props) { player.recsys({ videoId: claimId, userId: userId, - embedded: embedded, }); } diff --git a/ui/component/viewers/videoViewer/view.jsx b/ui/component/viewers/videoViewer/view.jsx index 5619065f9..50f229231 100644 --- a/ui/component/viewers/videoViewer/view.jsx +++ b/ui/component/viewers/videoViewer/view.jsx @@ -1,29 +1,19 @@ // @flow -import { ENABLE_PREROLL_ADS } from 'config'; -import * as PAGES from 'constants/pages'; -import * as ICONS from 'constants/icons'; -import React, { useEffect, useState, useContext, useCallback } from 'react'; +import React, { useEffect, useState, useCallback } from 'react'; import { stopContextMenu } from 'util/context-menu'; import type { Player } from './internal/videojs'; import VideoJs from './internal/videojs'; import analytics from 'analytics'; -import { EmbedContext } from 'page/embedWrapper/view'; import classnames from 'classnames'; import { FORCE_CONTENT_TYPE_PLAYER } from 'constants/claim'; import AutoplayCountdown from 'component/autoplayCountdown'; import usePrevious from 'effects/use-previous'; -import FileViewerEmbeddedEnded from 'web/component/fileViewerEmbeddedEnded'; -import FileViewerEmbeddedTitle from 'component/fileViewerEmbeddedTitle'; import LoadingScreen from 'component/common/loading-screen'; import { addTheaterModeButton } from './internal/theater-mode'; import { addAutoplayNextButton } from './internal/autoplay-next'; import { addPlayNextButton } from './internal/play-next'; import { addPlayPreviousButton } from './internal/play-previous'; -import { useGetAds } from 'effects/use-get-ads'; -import Button from 'component/button'; -import I18nMessage from 'component/i18nMessage'; import { useHistory } from 'react-router'; -import { getAllIds } from 'util/buildHomepage'; import type { HomepageCat } from 'util/buildHomepage'; import { formatLbryUrlForWeb, generateListSearchUrlParams } from 'util/url'; @@ -43,7 +33,6 @@ type Props = { volume: number, uri: string, autoplayNext: boolean, - autoplayIfEmbedded: boolean, desktopPlayStartTime?: number, doAnalyticsView: (string, number) => Promise, doAnalyticsBuffer: (string, any) => void, @@ -85,7 +74,6 @@ function VideoViewer(props: Props) { muted, volume, autoplayNext, - autoplayIfEmbedded, doAnalyticsView, doAnalyticsBuffer, claimRewards, @@ -95,8 +83,6 @@ function VideoViewer(props: Props) { toggleVideoTheaterMode, toggleAutoplayNext, setVideoPlaybackRate, - homepageData, - authenticated, userId, shareTelemetry, isFloating, @@ -108,27 +94,17 @@ function VideoViewer(props: Props) { isMarkdownOrComment, } = props; const permanentUrl = claim && claim.permanent_url; - const adApprovedChannelIds = homepageData ? getAllIds(homepageData) : []; const claimId = claim && claim.claim_id; - const channelClaimId = claim && claim.signing_channel && claim.signing_channel.claim_id; const isAudio = contentType.includes('audio'); const forcePlayer = FORCE_CONTENT_TYPE_PLAYER.includes(contentType); - const { - push, - location: { pathname }, - } = useHistory(); + const { push } = useHistory(); const [doNavigate, setDoNavigate] = useState(false); const [playNextUrl, setPlayNextUrl] = useState(true); const [isPlaying, setIsPlaying] = useState(false); const [ended, setEnded] = useState(false); const [showAutoplayCountdown, setShowAutoplayCountdown] = useState(false); - const [isEndedEmbed, setIsEndedEmbed] = useState(false); const vjsCallbackDataRef: any = React.useRef(); const previousUri = usePrevious(uri); - const embedded = useContext(EmbedContext); - const approvedVideo = Boolean(channelClaimId) && adApprovedChannelIds.includes(channelClaimId); - const adsEnabled = ENABLE_PREROLL_ADS && !authenticated && !embedded && approvedVideo; - const [adUrl, setAdUrl, isFetchingAd] = useGetAds(approvedVideo, adsEnabled); /* isLoading was designed to show loading screen on first play press, rather than completely black screen, but breaks because some browsers (e.g. Firefox) block autoplay but leave the player.play Promise pending */ const [isLoading, setIsLoading] = useState(false); @@ -139,7 +115,6 @@ function VideoViewer(props: Props) { useEffect(() => { if (uri && previousUri && uri !== previousUri) { setShowAutoplayCountdown(false); - setIsEndedEmbed(false); setIsLoading(false); } }, [uri, previousUri]); @@ -147,10 +122,9 @@ function VideoViewer(props: Props) { // Update vjsCallbackDataRef (ensures videojs callbacks are not using stale values): useEffect(() => { vjsCallbackDataRef.current = { - embedded: embedded, videoPlaybackRate: videoPlaybackRate, }; - }, [embedded, videoPlaybackRate]); + }, [videoPlaybackRate]); function doTrackingBuffered(e: Event, data: any) { fetch(source, { method: 'HEAD', cache: 'no-store' }).then((response) => { @@ -166,7 +140,7 @@ function VideoViewer(props: Props) { const differenceToAdd = Date.now() - desktopPlayStartTime; timeToStart += differenceToAdd; } - analytics.playerStartedEvent(embedded); + analytics.playerStartedEvent(); // convert bytes to bits, and then divide by seconds const contentInBits = Number(claim.value.source.size) * 8; @@ -178,7 +152,15 @@ function VideoViewer(props: Props) { fetch(source, { method: 'HEAD', cache: 'no-store' }).then((response) => { let playerPoweredBy = response.headers.get('x-powered-by') || ''; - analytics.videoStartEvent(claimId, timeToStart, playerPoweredBy, userId, claim.canonical_url, this, bitrateAsBitsPerSecond); + analytics.videoStartEvent( + claimId, + timeToStart, + playerPoweredBy, + userId, + claim.canonical_url, + this, + bitrateAsBitsPerSecond + ); }); doAnalyticsView(uri, timeToStart).then(() => { @@ -248,28 +230,20 @@ function VideoViewer(props: Props) { analytics.videoIsPlaying(false); - if (adUrl) { - setAdUrl(null); - return; - } - - if (embedded) { - setIsEndedEmbed(true); - } else if (!collectionId && autoplayNext) { + if (!collectionId && autoplayNext) { setShowAutoplayCountdown(true); } else if (collectionId) { setDoNavigate(true); } clearPosition(uri); - }, [adUrl, autoplayNext, clearPosition, collectionId, embedded, ended, setAdUrl, uri]); + }, [autoplayNext, clearPosition, collectionId, ended, uri]); function onPlay(player) { setEnded(false); setIsLoading(false); setIsPlaying(true); setShowAutoplayCountdown(false); - setIsEndedEmbed(false); setReplay(false); setDoNavigate(false); analytics.videoIsPlaying(true, player); @@ -296,7 +270,7 @@ function VideoViewer(props: Props) { } } - const playerReadyDependencyList = [uri, adUrl, embedded, autoplayIfEmbedded]; + const playerReadyDependencyList = [uri]; if (!IS_WEB) { playerReadyDependencyList.push(desktopPlayStartTime); } @@ -312,43 +286,38 @@ function VideoViewer(props: Props) { }; const onPlayerReady = useCallback((player: Player, videoNode: any) => { - if (!embedded) { - setVideoNode(videoNode); - player.muted(muted); - player.volume(volume); - player.playbackRate(videoPlaybackRate); - if (!isMarkdownOrComment) { - addTheaterModeButton(player, toggleVideoTheaterMode); - if (collectionId) { - addPlayNextButton(player, doPlayNext); - addPlayPreviousButton(player, doPlayPrevious); - } else { - addAutoplayNextButton(player, toggleAutoplayNext, autoplayNext); - } + setVideoNode(videoNode); + player.muted(muted); + player.volume(volume); + player.playbackRate(videoPlaybackRate); + if (!isMarkdownOrComment) { + addTheaterModeButton(player, toggleVideoTheaterMode); + if (collectionId) { + addPlayNextButton(player, doPlayNext); + addPlayPreviousButton(player, doPlayPrevious); + } else { + addAutoplayNextButton(player, toggleAutoplayNext, autoplayNext); } } - const shouldPlay = !embedded || autoplayIfEmbedded; // https://blog.videojs.com/autoplay-best-practices-with-video-js/#Programmatic-Autoplay-and-Success-Failure-Detection - if (shouldPlay) { - const playPromise = player.play(); - const timeoutPromise = new Promise((resolve, reject) => - setTimeout(() => reject(PLAY_TIMEOUT_ERROR), PLAY_TIMEOUT_LIMIT) - ); + const playPromise = player.play(); + const timeoutPromise = new Promise((resolve, reject) => + setTimeout(() => reject(PLAY_TIMEOUT_ERROR), PLAY_TIMEOUT_LIMIT) + ); - Promise.race([playPromise, timeoutPromise]).catch((error) => { - if (typeof error === 'object' && error.name && error.name === 'NotAllowedError') { - if (player.autoplay() && !player.muted()) { - // player.muted(true); - // another version had player.play() - } + Promise.race([playPromise, timeoutPromise]).catch((error) => { + if (typeof error === 'object' && error.name && error.name === 'NotAllowedError') { + if (player.autoplay() && !player.muted()) { + // player.muted(true); + // another version had player.play() } - setIsLoading(false); - setIsPlaying(false); - }); - } + } + setIsLoading(false); + setIsPlaying(false); + }); - setIsLoading(shouldPlay); // if we are here outside of an embed, we're playing + setIsLoading(true); // if we are here outside of an embed, we're playing // PR: #5535 // Move the restoration to a later `loadedmetadata` phase to counter the @@ -398,7 +367,6 @@ function VideoViewer(props: Props) {
@@ -409,64 +377,25 @@ function VideoViewer(props: Props) { doReplay={() => setReplay(true)} /> )} - {isEndedEmbed && } - {embedded && !isEndedEmbed && } {/* disable this loading behavior because it breaks when player.play() promise hangs */} {isLoading && } - - {!isFetchingAd && adUrl && ( - <> - - {__('Advertisement')}{' '} -
); } diff --git a/ui/page/embedWrapper/index.js b/ui/page/embedWrapper/index.js deleted file mode 100644 index cb25a0658..000000000 --- a/ui/page/embedWrapper/index.js +++ /dev/null @@ -1,33 +0,0 @@ -import { connect } from 'react-redux'; -import EmbedWrapperPage from './view'; -import { makeSelectClaimForUri, makeSelectIsUriResolving } from 'redux/selectors/claims'; -import { makeSelectStreamingUrlForUri } from 'redux/selectors/file_info'; -import { doResolveUri } from 'redux/actions/claims'; -import { buildURI } from 'util/lbryURI'; -import { doPlayUri } from 'redux/actions/content'; -import { makeSelectCostInfoForUri, doFetchCostInfoForUri, selectBlackListedOutpoints } from 'lbryinc'; - -const select = (state, props) => { - const { match } = props; - const { params } = match; - const { claimName, claimId } = params; - const uri = claimName ? buildURI({ claimName, claimId }) : ''; - return { - uri, - claim: makeSelectClaimForUri(uri)(state), - costInfo: makeSelectCostInfoForUri(uri)(state), - streamingUrl: makeSelectStreamingUrlForUri(uri)(state), - isResolvingUri: makeSelectIsUriResolving(uri)(state), - blackListedOutpoints: selectBlackListedOutpoints(state), - }; -}; - -const perform = (dispatch) => { - return { - resolveUri: (uri) => dispatch(doResolveUri(uri)), - doPlayUri: (uri) => dispatch(doPlayUri(uri)), - doFetchCostInfoForUri: (uri) => dispatch(doFetchCostInfoForUri(uri)), - }; -}; - -export default connect(select, perform)(EmbedWrapperPage); diff --git a/ui/page/embedWrapper/view.jsx b/ui/page/embedWrapper/view.jsx deleted file mode 100644 index 78a5ce8fe..000000000 --- a/ui/page/embedWrapper/view.jsx +++ /dev/null @@ -1,126 +0,0 @@ -// @flow -import { SITE_NAME } from 'config'; -import React, { useEffect } from 'react'; -import classnames from 'classnames'; -import FileRender from 'component/fileRender'; -import FileViewerEmbeddedTitle from 'component/fileViewerEmbeddedTitle'; -import Spinner from 'component/spinner'; -import Button from 'component/button'; -import Card from 'component/common/card'; -import { formatLbryUrlForWeb } from 'util/url'; -import { useHistory } from 'react-router'; - -type Props = { - uri: string, - resolveUri: (string) => void, - claim: Claim, - doPlayUri: (string) => void, - costInfo: any, - streamingUrl: string, - doFetchCostInfoForUri: (string) => void, - isResolvingUri: boolean, - blackListedOutpoints: Array<{ - txid: string, - nout: number, - }>, -}; - -export const EmbedContext = React.createContext(); -const EmbedWrapperPage = (props: Props) => { - const { - resolveUri, - claim, - uri, - doPlayUri, - costInfo, - streamingUrl, - doFetchCostInfoForUri, - isResolvingUri, - blackListedOutpoints, - } = props; - - const { - location: { search }, - } = useHistory(); - const urlParams = new URLSearchParams(search); - const embedLightBackground = urlParams.get('embedBackgroundLight'); - const haveClaim = Boolean(claim); - const readyToDisplay = claim && streamingUrl; - const loading = !claim && isResolvingUri; - const noContentFound = !claim && !isResolvingUri; - const isPaidContent = costInfo && costInfo.cost > 0; - const contentLink = formatLbryUrlForWeb(uri); - const signingChannel = claim && claim.signing_channel; - const isClaimBlackListed = - claim && - blackListedOutpoints && - blackListedOutpoints.some( - (outpoint) => - (signingChannel && outpoint.txid === signingChannel.txid && outpoint.nout === signingChannel.nout) || - (outpoint.txid === claim.txid && outpoint.nout === claim.nout) - ); - - useEffect(() => { - if (resolveUri && uri && !haveClaim) { - resolveUri(uri); - } - if (uri && haveClaim && costInfo && costInfo.cost === 0) { - doPlayUri(uri); - } - }, [resolveUri, uri, doPlayUri, haveClaim, costInfo]); - - useEffect(() => { - if (haveClaim && uri && doFetchCostInfoForUri) { - doFetchCostInfoForUri(uri); - } - }, [uri, haveClaim, doFetchCostInfoForUri]); - - if (isClaimBlackListed) { - return ( - -
- } - /> - ); - } - - return ( -
- - {readyToDisplay ? ( - - ) : ( -
- - -
- {loading && } - {noContentFound &&

{__('No content found.')}

} - {isPaidContent && ( -
-

{__('Paid content cannot be embedded.')}

-
-
-
- )} -
-
- )} -
-
- ); -}; - -export default EmbedWrapperPage; diff --git a/ui/scss/all.scss b/ui/scss/all.scss index c654e7b0d..77ca90423 100644 --- a/ui/scss/all.scss +++ b/ui/scss/all.scss @@ -20,7 +20,6 @@ @import 'component/comments'; @import 'component/content'; @import 'component/dat-gui'; -@import 'component/embed-player'; @import 'component/expandable'; @import 'component/expanding-details'; @import 'component/file-drop'; diff --git a/ui/scss/component/_embed-player.scss b/ui/scss/component/_embed-player.scss deleted file mode 100644 index 59ee8119f..000000000 --- a/ui/scss/component/_embed-player.scss +++ /dev/null @@ -1,67 +0,0 @@ -.embed__wrapper { - height: 100vh; - width: 100vw; - position: relative; - display: flex; - flex-direction: column; - justify-content: space-between; - align-items: center; - background-color: var(--color-black); -} - -.embed__wrapper--light-background { - @extend .embed__wrapper; - - .vjs-poster, - video { - background-color: var(--color-white); - } -} - -.embed__inline-button { - @include thumbnail; - position: relative; - background-position: 50% 50%; - background-repeat: no-repeat; - background-size: 100%; - width: 100%; - height: auto; - display: flex; - justify-content: center; - align-items: center; - border-top-left-radius: var(--border-radius); - border-top-right-radius: var(--border-radius); - background-color: var(--color-black); - - @media (max-width: $breakpoint-small) { - height: 200px; - } -} - -.embed__inline-button-preview { - @extend .embed__inline-button; - background-color: var(--color-editor-inline-code-bg); - width: 50%; -} - -.embed__loading { - width: 100%; - height: 100%; -} - -.embed__loading-text { - height: 100%; - display: flex; - align-items: center; - justify-content: center; - color: var(--color-white); - - h1 { - font-size: var(--font-large); - } -} - -.embed__overlay-logo { - max-height: 2rem; - max-width: 7rem; -} diff --git a/web/.env.ody b/web/.env.ody deleted file mode 100644 index 2d9e1313e..000000000 --- a/web/.env.ody +++ /dev/null @@ -1,92 +0,0 @@ -# Copy this file to .env to make modifications - -# Base config - -WEBPACK_WEB_PORT=9090 -WEBPACK_ELECTRON_PORT=9091 -WEB_SERVER_PORT=1337 - -WELCOME_VERSION=1.0 - -# Custom Site info -DOMAIN=lbry.tv -URL=https://lbry.tv - -# UI -SITE_TITLE=lbry.tv -SITE_NAME=local.lbry.tv -SITE_DESCRIPTION=Meet LBRY, an open, free, and community-controlled content wonderland. -LOGO_TITLE=local.lbry.tv - -##### ODYSEE SETTINGS ####### - -MATOMO_URL=https://analytics.lbry.com/ -MATOMO_ID=4 - -# Base config -WEBPACK_WEB_PORT=9090 -WEBPACK_ELECTRON_PORT=9091 -WEB_SERVER_PORT=1337 - -## APIS -LBRY_API_URL=https://api.odysee.com -#LBRY_WEB_API=https://api.na-backend.odysee.com -#LBRY_WEB_STREAMING_API=https://cdn.lbryplayer.xyz -# deprecated: -#LBRY_WEB_BUFFER_API=https://collector-service.api.lbry.tv/api/v1/events/video -#COMMENT_SERVER_API=https://comments.lbry.com/api/v2 -WELCOME_VERSION=1.0 - -# STRIPE -STRIPE_PUBLIC_KEY='pk_live_e8M4dRNnCCbmpZzduEUZBgJO' - -## UI - -LOADING_BAR_COLOR=#e50054 - -# IMAGE ASSETS -YRBL_HAPPY_IMG_URL=https://spee.ch/spaceman-happy:a.png -YRBL_SAD_IMG_URL=https://spee.ch/spaceman-sad:d.png -LOGIN_IMG_URL=https://spee.ch/login:b.png -LOGO=https://spee.ch/odysee-logo-png:3.png -LOGO_TEXT_LIGHT=https://spee.ch/odysee-white-png:f.png -LOGO_TEXT_DARK=https://spee.ch/odysee-png:2.png -AVATAR_DEFAULT=https://spee.ch/spaceman-png:2.png -FAVICON=https://spee.ch/favicon-png:c.png - -# LOCALE -DEFAULT_LANGUAGE=en - -## LINKED CONTENT WHITELIST -KNOWN_APP_DOMAINS=open.lbry.com,lbry.tv,lbry.lat,odysee.com - -## CUSTOM CONTENT -# If the following is true, copy custom/homepage.example.js to custom/homepage.js and modify -CUSTOM_HOMEPAGE=true - -# Add channels to auto-follow on firstrun (space delimited) -AUTO_FOLLOW_CHANNELS=lbry://@Odysee#80d2590ad04e36fb1d077a9b9e3a8bba76defdf8 lbry://@OdyseeHelp#b58dfaeab6c70754d792cdd9b56ff59b90aea334 - -## FEATURES AND LIMITS -SIMPLE_SITE=true -BRANDED_SITE=odysee -# SIMPLE_SITE REPLACEMENTS -ENABLE_MATURE=false -ENABLE_UI_NOTIFICATIONS=true -ENABLE_WILD_WEST=true -SHOW_TAGS_INTRO=false - -# CENTRALIZED FEATURES -ENABLE_COMMENT_REACTIONS=true -ENABLE_FILE_REACTIONS=true -ENABLE_CREATOR_REACTIONS=true -ENABLE_NO_SOURCE_CLAIMS=true -ENABLE_PREROLL_ADS=false -SHOW_ADS=true - -CHANNEL_STAKED_LEVEL_VIDEO_COMMENTS=4 -CHANNEL_STAKED_LEVEL_LIVESTREAM=3 -WEB_PUBLISH_SIZE_LIMIT_GB=4 - -#SEARCH TYPES - comma-delimited -LIGHTHOUSE_DEFAULT_TYPES=audio,video diff --git a/web/bundle-id.js b/web/bundle-id.js deleted file mode 100644 index ac768afaf..000000000 --- a/web/bundle-id.js +++ /dev/null @@ -1,8 +0,0 @@ -const { v4: uuid } = require('uuid'); -const jsBundleId = uuid(); - -function getJsBundleId() { - return jsBundleId; -} - -module.exports = { getJsBundleId }; diff --git a/web/component/fileViewerEmbeddedEnded/index.js b/web/component/fileViewerEmbeddedEnded/index.js deleted file mode 100644 index 4a53330ea..000000000 --- a/web/component/fileViewerEmbeddedEnded/index.js +++ /dev/null @@ -1,10 +0,0 @@ -import { connect } from 'react-redux'; -import fileViewerEmbeddedEnded from './view'; -import { selectUserVerifiedEmail } from 'redux/selectors/user'; -import { makeSelectTagInClaimOrChannelForUri } from 'redux/selectors/claims'; -import { PREFERENCE_EMBED } from 'constants/tags'; - -export default connect((state, props) => ({ - isAuthenticated: selectUserVerifiedEmail(state), - preferEmbed: makeSelectTagInClaimOrChannelForUri(props.uri, PREFERENCE_EMBED)(state), -}))(fileViewerEmbeddedEnded); diff --git a/web/component/fileViewerEmbeddedEnded/view.jsx b/web/component/fileViewerEmbeddedEnded/view.jsx deleted file mode 100644 index 69aac3e9f..000000000 --- a/web/component/fileViewerEmbeddedEnded/view.jsx +++ /dev/null @@ -1,82 +0,0 @@ -// @flow -import React from 'react'; -import Button from 'component/button'; -import * as ICONS from 'constants/icons'; -import { formatLbryUrlForWeb } from 'util/url'; -import { withRouter } from 'react-router'; -import { URL, SITE_NAME } from 'config'; -import Logo from 'component/logo'; - -type Props = { - uri: string, - isAuthenticated: boolean, - preferEmbed: boolean, -}; - -function FileViewerEmbeddedEnded(props: Props) { - const { uri, isAuthenticated, preferEmbed } = props; - - const prompts = isAuthenticated - ? { - discuss_auth: `Continue the discussion on ${SITE_NAME}`, - tip_auth: 'Always tip your creators', - } - : { - bigtech_unauth: 'Together, we can take back control from big tech', - discuss_unauth: `Continue the discussion on ${SITE_NAME}`, - find_unauth: `Find more great content on ${SITE_NAME}`, - a_b_unauth: "We test a lot of messages here. Wouldn't it be funny if the one telling you that did the best?", - earn_unauth: `Join ${SITE_NAME} and earn to watch.`, - blockchain_unauth: "Now if anyone asks, you can say you've used a blockchain.", - }; - - const promptKeys = Object.keys(prompts); - const promptKey = promptKeys[Math.floor(Math.random() * promptKeys.length)]; - // $FlowFixMe - const prompt = prompts[promptKey]; - const lbrytvLink = `${URL}${formatLbryUrlForWeb(uri)}?src=${promptKey}`; - const showReplay = Boolean(window.player); - - return ( -
-
- -
- -
-

{prompt}

-
-
- <> - {showReplay && ( -
-
- ); -} - -export default withRouter(FileViewerEmbeddedEnded); diff --git a/web/effects/use-degraded-performance.js b/web/effects/use-degraded-performance.js deleted file mode 100644 index 5c1e26c36..000000000 --- a/web/effects/use-degraded-performance.js +++ /dev/null @@ -1,45 +0,0 @@ -import { SDK_API_PATH } from 'ui'; -import { useEffect } from 'react'; -import { getAuthToken } from 'util/saved-passwords'; -import { X_LBRY_AUTH_TOKEN } from 'constants/token'; - -import fetchWithTimeout from 'util/fetch'; - -const STATUS_TIMEOUT_LIMIT = 10000; -export const STATUS_OK = 'ok'; -export const STATUS_DEGRADED = 'degraded'; -export const STATUS_FAILING = 'failing'; -export const STATUS_DOWN = 'down'; - -const getParams = (user) => { - const headers = {}; - const token = getAuthToken(); - if (token && user && user.has_verified_email) { - headers[X_LBRY_AUTH_TOKEN] = token; - } - const params = { headers }; - return params; -}; - -export function useDegradedPerformance(onDegradedPerformanceCallback, user) { - const hasUser = user !== undefined && user !== null; - - useEffect(() => { - if (hasUser) { - // The status endpoint is the only endpoint at "v2" currently - // This should be moved into the config once more endpoints are using it - const STATUS_ENDPOINT = `${SDK_API_PATH}/status`.replace('v1', 'v2'); - - fetchWithTimeout(STATUS_TIMEOUT_LIMIT, fetch(STATUS_ENDPOINT, getParams(user))) - .then((response) => response.json()) - .then((status) => { - if (status.general_state !== STATUS_OK) { - onDegradedPerformanceCallback(STATUS_FAILING); - } - }) - .catch(() => { - onDegradedPerformanceCallback(STATUS_FAILING); - }); - } - }, [hasUser]); -} diff --git a/web/index.js b/web/index.js deleted file mode 100644 index b7ee5d01e..000000000 --- a/web/index.js +++ /dev/null @@ -1,39 +0,0 @@ -const config = require('../config'); -const path = require('path'); -const Koa = require('koa'); -const serve = require('koa-static'); -const logger = require('koa-logger'); -const router = require('./src/routes'); -const redirectMiddleware = require('./middleware/redirect'); -const cacheControlMiddleware = require('./middleware/cache-control'); -const iframeDestroyerMiddleware = require('./middleware/iframe-destroyer'); - -const app = new Koa(); -const DIST_ROOT = path.resolve(__dirname, 'dist'); - -app.proxy = true; - -app.use(async (ctx, next) => { - try { - await next(); - } catch (err) { - console.log('error: ', err); - ctx.status = err.status || 500; - ctx.body = err.message; - } -}); - -app.use(logger()); -app.use(cacheControlMiddleware); -app.use(redirectMiddleware); -app.use(iframeDestroyerMiddleware); - -// Check if the request url matches any assets inside of /dist -app.use(serve(DIST_ROOT, { - maxage: 3600000, // set a cache time of one hour, helpful for mobile dev -})); - -app.use(serve(DIST_ROOT)); // Check if the request url matches any assets inside of /dist - -app.use(router.routes()); -app.listen(config.WEB_SERVER_PORT, () => `Server up at localhost:${config.WEB_SERVER_PORT}`); diff --git a/web/lbry.js b/web/lbry.js deleted file mode 100644 index 16059abf4..000000000 --- a/web/lbry.js +++ /dev/null @@ -1,247 +0,0 @@ -// Disabled flow in this copy. This copy is for uncompiled web server ES5 require()s. -require('proxy-polyfill'); - -const CHECK_DAEMON_STARTED_TRY_NUMBER = 200; -// -// Basic LBRY sdk connection config -// Offers a proxy to call LBRY sdk methods - -// -const Lbry = { - isConnected: false, - connectPromise: null, - daemonConnectionString: 'http://localhost:5279', - alternateConnectionString: '', - methodsUsingAlternateConnectionString: [], - apiRequestHeaders: { 'Content-Type': 'application/json-rpc' }, - - // Allow overriding daemon connection string (e.g. to `/api/proxy` for lbryweb) - setDaemonConnectionString: (value) => { - Lbry.daemonConnectionString = value; - }, - - setApiHeader: (key, value) => { - Lbry.apiRequestHeaders = Object.assign(Lbry.apiRequestHeaders, { [key]: value }); - }, - - unsetApiHeader: (key) => { - Object.keys(Lbry.apiRequestHeaders).includes(key) && delete Lbry.apiRequestHeaders['key']; - }, - // Allow overriding Lbry methods - overrides: {}, - setOverride: (methodName, newMethod) => { - Lbry.overrides[methodName] = newMethod; - }, - getApiRequestHeaders: () => Lbry.apiRequestHeaders, - - // Returns a human readable media type based on the content type or extension of a file that is returned by the sdk - getMediaType: (contentType, fileName) => { - if (fileName) { - const formats = [ - [/\.(mp4|m4v|webm|flv|f4v|ogv)$/i, 'video'], - [/\.(mp3|m4a|aac|wav|flac|ogg|opus)$/i, 'audio'], - [/\.(jpeg|jpg|png|gif|svg|webp)$/i, 'image'], - [/\.(h|go|ja|java|js|jsx|c|cpp|cs|css|rb|scss|sh|php|py)$/i, 'script'], - [/\.(html|json|csv|txt|log|md|markdown|docx|pdf|xml|yml|yaml)$/i, 'document'], - [/\.(pdf|odf|doc|docx|epub|org|rtf)$/i, 'e-book'], - [/\.(stl|obj|fbx|gcode)$/i, '3D-file'], - [/\.(cbr|cbt|cbz)$/i, 'comic-book'], - [/\.(lbry)$/i, 'application'], - ]; - - const res = formats.reduce((ret, testpair) => { - switch (testpair[0].test(ret)) { - case true: - return testpair[1]; - default: - return ret; - } - }, fileName); - return res === fileName ? 'unknown' : res; - } else if (contentType) { - // $FlowFixMe - return /^[^/]+/.exec(contentType)[0]; - } - - return 'unknown'; - }, - - // - // Lbry SDK Methods - // https://lbry.tech/api/sdk - // - status: (params = {}) => daemonCallWithResult('status', params), - stop: () => daemonCallWithResult('stop', {}), - version: () => daemonCallWithResult('version', {}), - - // Claim fetching and manipulation - resolve: (params) => daemonCallWithResult('resolve', params), - get: (params) => daemonCallWithResult('get', params), - claim_search: (params) => daemonCallWithResult('claim_search', params), - claim_list: (params) => daemonCallWithResult('claim_list', params), - channel_create: (params) => daemonCallWithResult('channel_create', params), - channel_update: (params) => daemonCallWithResult('channel_update', params), - channel_import: (params) => daemonCallWithResult('channel_import', params), - channel_list: (params) => daemonCallWithResult('channel_list', params), - stream_abandon: (params) => daemonCallWithResult('stream_abandon', params), - stream_list: (params) => daemonCallWithResult('stream_list', params), - channel_abandon: (params) => daemonCallWithResult('channel_abandon', params), - channel_sign: (params) => daemonCallWithResult('channel_sign', params), - support_create: (params) => daemonCallWithResult('support_create', params), - support_list: (params) => daemonCallWithResult('support_list', params), - stream_repost: (params) => daemonCallWithResult('stream_repost', params), - collection_resolve: (params) => daemonCallWithResult('collection_resolve', params), - collection_list: (params) => daemonCallWithResult('collection_list', params), - collection_create: (params) => daemonCallWithResult('collection_create', params), - collection_update: (params) => daemonCallWithResult('collection_update', params), - - // File fetching and manipulation - file_list: (params = {}) => daemonCallWithResult('file_list', params), - file_delete: (params = {}) => daemonCallWithResult('file_delete', params), - file_set_status: (params = {}) => daemonCallWithResult('file_set_status', params), - blob_delete: (params = {}) => daemonCallWithResult('blob_delete', params), - blob_list: (params = {}) => daemonCallWithResult('blob_list', params), - - // Wallet utilities - wallet_balance: (params = {}) => daemonCallWithResult('wallet_balance', params), - wallet_decrypt: () => daemonCallWithResult('wallet_decrypt', {}), - wallet_encrypt: (params = {}) => daemonCallWithResult('wallet_encrypt', params), - wallet_unlock: (params = {}) => daemonCallWithResult('wallet_unlock', params), - wallet_list: (params = {}) => daemonCallWithResult('wallet_list', params), - wallet_send: (params = {}) => daemonCallWithResult('wallet_send', params), - wallet_status: (params = {}) => daemonCallWithResult('wallet_status', params), - address_is_mine: (params = {}) => daemonCallWithResult('address_is_mine', params), - address_unused: (params = {}) => daemonCallWithResult('address_unused', params), - address_list: (params = {}) => daemonCallWithResult('address_list', params), - transaction_list: (params = {}) => daemonCallWithResult('transaction_list', params), - utxo_release: (params = {}) => daemonCallWithResult('utxo_release', params), - support_abandon: (params = {}) => daemonCallWithResult('support_abandon', params), - purchase_list: (params = {}) => daemonCallWithResult('purchase_list', params), - txo_list: (params = {}) => daemonCallWithResult('txo_list', params), - - sync_hash: (params = {}) => daemonCallWithResult('sync_hash', params), - sync_apply: (params = {}) => daemonCallWithResult('sync_apply', params), - - // Preferences - preference_get: (params = {}) => daemonCallWithResult('preference_get', params), - preference_set: (params = {}) => daemonCallWithResult('preference_set', params), - - // Comments - comment_list: (params = {}) => daemonCallWithResult('comment_list', params), - comment_create: (params = {}) => daemonCallWithResult('comment_create', params), - comment_hide: (params = {}) => daemonCallWithResult('comment_hide', params), - comment_abandon: (params = {}) => daemonCallWithResult('comment_abandon', params), - comment_update: (params = {}) => daemonCallWithResult('comment_update', params), - - // Connect to the sdk - connect: () => { - if (Lbry.connectPromise === null) { - Lbry.connectPromise = new Promise((resolve, reject) => { - let tryNum = 0; - // Check every half second to see if the daemon is accepting connections - function checkDaemonStarted() { - tryNum += 1; - Lbry.status() - .then(resolve) - .catch(() => { - if (tryNum <= CHECK_DAEMON_STARTED_TRY_NUMBER) { - setTimeout(checkDaemonStarted, tryNum < 50 ? 400 : 1000); - } else { - reject(new Error('Unable to connect to LBRY')); - } - }); - } - - checkDaemonStarted(); - }); - } - - // Flow thinks this could be empty, but it will always reuturn a promise - // $FlowFixMe - return Lbry.connectPromise; - }, - - publish: (params = {}) => - new Promise((resolve, reject) => { - if (Lbry.overrides.publish) { - Lbry.overrides.publish(params).then(resolve, reject); - } else { - apiCall('publish', params, resolve, reject); - } - }), -}; - -function checkAndParse(response) { - if (response.status >= 200 && response.status < 300) { - return response.json(); - } - return response.json().then((json) => { - let error; - if (json.error) { - const errorMessage = typeof json.error === 'object' ? json.error.message : json.error; - error = new Error(errorMessage); - } else { - error = new Error('Protocol error with unknown response signature'); - } - return Promise.reject(error); - }); -} - -function apiCall(method, params, resolve, reject) { - const counter = new Date().getTime(); - const options = { - method: 'POST', - headers: Lbry.apiRequestHeaders, - body: JSON.stringify({ - jsonrpc: '2.0', - method, - params, - id: counter, - }), - }; - - const connectionString = Lbry.methodsUsingAlternateConnectionString.includes(method) - ? Lbry.alternateConnectionString - : Lbry.daemonConnectionString; - return fetch(connectionString + '?m=' + method, options) - .then(checkAndParse) - .then((response) => { - const error = response.error || (response.result && response.result.error); - - if (error) { - return reject(error); - } - return resolve(response.result); - }) - .catch(reject); -} - -function daemonCallWithResult(name, params = {}) { - return new Promise((resolve, reject) => { - apiCall( - name, - params, - (result) => { - resolve(result); - }, - reject - ); - }); -} - -// This is only for a fallback -// If there is a Lbry method that is being called by an app, it should be added to /flow-typed/Lbry.js -const lbryProxy = new Proxy(Lbry, { - get(target, name) { - if (name in target) { - return target[name]; - } - - return (params = {}) => - new Promise((resolve, reject) => { - apiCall(name, params, resolve, reject); - }); - }, -}); - -module.exports = { lbryProxy, apiCall }; diff --git a/web/middleware/cache-control.js b/web/middleware/cache-control.js deleted file mode 100644 index 800b2b815..000000000 --- a/web/middleware/cache-control.js +++ /dev/null @@ -1,38 +0,0 @@ -const SIX_MONTHS_IN_SECONDS = 15552000; - -const STATIC_ASSET_PATHS = [ - '/public/font/font-v1.css', - '/public/font/v1/300.woff', - '/public/font/v1/300i.woff', - '/public/font/v1/400.woff', - '/public/font/v1/400i.woff', - '/public/font/v1/700.woff', - '/public/font/v1/700i.woff', - '/public/favicon.png', // LBRY icon - '/public/favicon-spaceman.png', - '/public/img/busy.gif', - '/public/img/fileRenderPlaceholder.png', - '/public/img/gerbil-happy.png', - '/public/img/gerbil-sad.png', - '/public/img/placeholder.png', - '/public/img/placeholderTx.gif', - '/public/img/thumbnail-broken.png', - '/public/img/thumbnail-missing.png', - '/public/img/total-background.png', -]; - -async function redirectMiddleware(ctx, next) { - const { - request: { url }, - } = ctx; - - const HASHED_JS_REGEX = /^\/public\/.*[a-fA-F0-9]{12}\.js$/i; - - if (STATIC_ASSET_PATHS.includes(url) || HASHED_JS_REGEX.test(url)) { - ctx.set('Cache-Control', `public, max-age=${SIX_MONTHS_IN_SECONDS}`); - } - - return next(); -} - -module.exports = redirectMiddleware; diff --git a/web/middleware/iframe-destroyer.js b/web/middleware/iframe-destroyer.js deleted file mode 100644 index 13d6a7b2c..000000000 --- a/web/middleware/iframe-destroyer.js +++ /dev/null @@ -1,16 +0,0 @@ -const PAGES = require('../../ui/constants/pages'); - -async function iframeDestroyerMiddleware(ctx, next) { - const { - request: { path }, - } = ctx; - const decodedPath = decodeURIComponent(path); - - if (!decodedPath.startsWith(`/$/${PAGES.EMBED}`)) { - ctx.set('X-Frame-Options', 'DENY'); - } - - return next(); -} - -module.exports = iframeDestroyerMiddleware; diff --git a/web/middleware/redirect.js b/web/middleware/redirect.js deleted file mode 100644 index 11a13596c..000000000 --- a/web/middleware/redirect.js +++ /dev/null @@ -1,67 +0,0 @@ -const PAGES = require('../../ui/constants/pages'); -// const config = require('../../config'); - -function formatInAppUrl(path) { - // Determine if we need to add a leading "/$/" for app pages - const APP_PAGE_REGEX = /(\?)([a-z]*)(.*)/; - const appPageMatches = APP_PAGE_REGEX.exec(path); - - if (appPageMatches && appPageMatches.length) { - // Definitely an app page (or it's formatted like one) - const [, , page, queryString] = appPageMatches; - - if (Object.values(PAGES).includes(page)) { - let actualUrl = '/$/' + page; - - if (queryString) { - actualUrl += `?${queryString.slice(1)}`; - } - - return actualUrl; - } - } - - // Regular claim url - return path; -} - -async function redirectMiddleware(ctx, next) { - const requestHost = ctx.host; - const path = ctx.path; - const url = ctx.url; - - // Getting err: too many redirects on some urls because of this - // Need a better solution - // const decodedUrl = decodeURIComponent(url); - - // if (decodedUrl !== url) { - // ctx.redirect(decodedUrl); - // return; - // } - - if (!path.startsWith('/$/') && path.match(/^([^@/:]+)\/([^:/]+)$/)) { - ctx.redirect(url.replace(/^([^@/:]+)\/([^:/]+)(:(\/.*))/, '$1:$2')); // test against path, but use ctx.url to retain parameters - return; - } - - if (requestHost === 'open.lbry.com' || requestHost === 'open.lbry.io') { - const openQuery = '?src=open'; - // let redirectUrl = config.URL + formatInAppUrl(url); - // Blame tom for this, not me - let redirectUrl = 'https://odysee.com' + formatInAppUrl(url); - - if (redirectUrl.includes('?')) { - redirectUrl = redirectUrl.replace('?', `${openQuery}&`); - } else { - redirectUrl += openQuery; - } - ctx.status = 301; - ctx.redirect(redirectUrl); - return; - } - - // No redirects needed - await next(); -} - -module.exports = redirectMiddleware; diff --git a/web/package.json b/web/package.json deleted file mode 100644 index a74fb14e0..000000000 --- a/web/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "lbry.tv", - "version": "0.0.0", - "description": "A web based browser for the LBRY network, a digital marketplace controlled by its users.", - "keywords": [ - "lbry" - ], - "license": "MIT", - "homepage": "https://lbry.com/", - "bugs": { - "url": "https://github.com/lbryio/lbry-desktop/issues" - }, - "repository": { - "type": "git", - "url": "https://github.com/lbryio/lbry-desktop" - }, - "author": { - "name": "LBRY Inc.", - "email": "hello@lbry.com" - }, - "main": "./index.js", - "scripts": { - "build": "cross-env NODE_ENV=production webpack --progess --config webpack.config.js", - "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot --progress --config webpack.config.js", - "dev:server": "nodemon index.js" - }, - "dependencies": { - "@koa/router": "^8.0.2", - "cross-env": "^6.0.3", - "koa": "^2.11.0", - "koa-logger": "^3.2.1", - "koa-send": "^5.0.0", - "koa-static": "^5.0.0", - "mysql": "^2.17.1", - "node-fetch": "^2.6.1", - "uuid": "^8.3.0" - }, - "devDependencies": { - "@babel/core": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-decorators": "^7.3.0", - "@babel/plugin-proposal-object-rest-spread": "^7.6.2", - "@babel/plugin-transform-flow-strip-types": "^7.2.3", - "@babel/plugin-transform-runtime": "^7.4.3", - "@babel/polyfill": "^7.2.5", - "@babel/preset-env": "^7.7.1", - "@babel/preset-flow": "^7.0.0", - "@babel/preset-react": "^7.0.0", - "@babel/register": "^7.0.0", - "cache-loader": "^4.1.0", - "nodemon": "^1.19.4", - "speed-measure-webpack-plugin": "^1.3.1", - "webpack": "^4.41.2", - "webpack-bundle-analyzer": "^3.6.0", - "webpack-dev-server": "^3.9.0", - "webpack-merge": "^4.2.2", - "write-file-webpack-plugin": "^4.5.1" - } -} diff --git a/web/page/code2257/index.js b/web/page/code2257/index.js deleted file mode 100644 index bf0d2b095..000000000 --- a/web/page/code2257/index.js +++ /dev/null @@ -1,2 +0,0 @@ -import PageCode2257 from './view'; -export default PageCode2257; diff --git a/web/page/code2257/view.jsx b/web/page/code2257/view.jsx deleted file mode 100644 index 3ee535f25..000000000 --- a/web/page/code2257/view.jsx +++ /dev/null @@ -1,47 +0,0 @@ -// @flow -import React from 'react'; -import Page from 'component/page'; -import Card from 'component/common/card'; - -const Code2257Page = () => { - return ( - - -

- lbry.tv is not a producer (primary or secondary) of any and all of the content found on the website - (lbry.tv). With respect to the records as per 18 USC 2257 for any and all content found on this site, - please kindly direct your request to the site for which the content was produced. -

-

- lbry.tv is a video sharing site in which allows for the uploading, sharing and general viewing of various - types of adult content and while lbry.tv does the best it can with verifying compliance, it may not be - 100% accurate. -

-

- lbry.tv abides by the following procedures to ensure compliance: -

    -
  • Requiring all users to be 18 years of age to upload videos.
  • -
  • - When uploading, user must verify the content; assure he/she is 18 years of age; certify that he/she - keeps records of the models in the content and that they are over 18 years of age. -
  • -
-

-

- For further assistance and/or information in finding the content's originating site, please contact - lbry.tv compliance at copyright@lbry.com -

-

- Users of lbry.tv who come across such content are urged to flag it as inappropriate by clicking 'Report - this video' link found below each video. -

- - } - /> -
- ); -}; -export default Code2257Page; diff --git a/web/scss/lbrytv.scss b/web/scss/lbrytv.scss deleted file mode 100644 index 91b6201e5..000000000 --- a/web/scss/lbrytv.scss +++ /dev/null @@ -1,71 +0,0 @@ -@charset "utf-8"; - -@import '../../ui/scss/init/reset'; -@import '../../ui/scss/init/vars'; -@import '../../ui/scss/init/mixins'; -@import '../../ui/scss/init/gui'; -@import '../../ui/scss/init/base-theme'; - -@import 'themes/lbrytv/light.scss'; -@import 'themes/lbrytv/dark.scss'; -@import '../../ui/scss/component/ads'; -@import '../../ui/scss/component/animation'; -@import '../../ui/scss/component/badge'; -@import '../../ui/scss/component/block-list'; -@import '../../ui/scss/component/button'; -@import '../../ui/scss/component/card'; -@import '../../ui/scss/component/channel'; -@import '../../ui/scss/component/channel-mention'; -@import '../../ui/scss/component/claim-list'; -@import '../../ui/scss/component/collection'; -@import '../../ui/scss/component/comments'; -@import '../../ui/scss/component/content'; -@import '../../ui/scss/component/dat-gui'; -@import '../../ui/scss/component/embed-player'; -@import '../../ui/scss/component/expandable'; -@import '../../ui/scss/component/expanding-details'; -@import '../../ui/scss/component/file-drop'; -@import '../../ui/scss/component/file-list'; -@import '../../ui/scss/component/file-properties'; -@import '../../ui/scss/component/file-render'; -@import '../../ui/scss/component/footer'; -@import '../../ui/scss/component/form-field'; -@import '../../ui/scss/component/header'; -@import '../../ui/scss/component/icon'; -@import '../../ui/scss/component/main'; -@import '../../ui/scss/component/markdown-editor'; -@import '../../ui/scss/component/markdown-preview'; -@import '../../ui/scss/component/media'; -@import '../../ui/scss/component/menu-button'; -@import '../../ui/scss/component/modal'; -@import '../../ui/scss/component/nag'; -@import '../../ui/scss/component/navigation'; -@import '../../ui/scss/component/notification'; -@import '../../ui/scss/component/nudge'; -@import '../../ui/scss/component/pagination'; -@import '../../ui/scss/component/post'; -@import '../../ui/scss/component/purchase'; -@import '../../ui/scss/component/placeholder'; -@import '../../ui/scss/component/progress'; -@import '../../ui/scss/component/search'; -@import '../../ui/scss/component/claim-search'; -@import '../../ui/scss/component/section'; -@import '../../ui/scss/component/share'; -@import '../../ui/scss/component/snack-bar'; -@import '../../ui/scss/component/spinner'; -@import '../../ui/scss/component/splash'; -@import '../../ui/scss/component/status-bar'; -@import '../../ui/scss/component/superchat'; -@import '../../ui/scss/component/syntax-highlighter'; -@import '../../ui/scss/component/table'; -@import '../../ui/scss/component/livestream'; -@import '../../ui/scss/component/tabs'; -@import '../../ui/scss/component/tooltip'; -@import '../../ui/scss/component/txo-list'; -@import '../../ui/scss/component/videojs'; -@import '../../ui/scss/component/tags'; -@import '../../ui/scss/component/wunderbar'; -@import '../../ui/scss/component/yrbl'; -@import '../../ui/scss/component/empty'; -@import '../../ui/scss/component/stripe-card'; -@import '../../ui/scss/component/wallet-tip-send'; diff --git a/web/scss/odysee.scss b/web/scss/odysee.scss deleted file mode 100644 index 1e2cf5ede..000000000 --- a/web/scss/odysee.scss +++ /dev/null @@ -1,71 +0,0 @@ -@charset "utf-8"; - -@import 'themes/odysee/init/reset'; -@import 'themes/odysee/init/vars'; -@import 'themes/odysee/init/mixins'; -@import 'themes/odysee/init/gui'; -@import 'themes/odysee/init/base-theme'; - -@import 'themes/odysee/light.scss'; -@import 'themes/odysee/dark.scss'; -@import '../../ui/scss/component/ads'; -@import '../../ui/scss/component/animation'; -@import '../../ui/scss/component/badge'; -@import '../../ui/scss/component/block-list'; -@import '../../ui/scss/component/button'; -@import '../../ui/scss/component/card'; -@import '../../ui/scss/component/channel'; -@import '../../ui/scss/component/channel-mention'; -@import '../../ui/scss/component/claim-list'; -@import '../../ui/scss/component/collection'; -@import '../../ui/scss/component/comments'; -@import '../../ui/scss/component/content'; -@import '../../ui/scss/component/dat-gui'; -@import '../../ui/scss/component/embed-player'; -@import '../../ui/scss/component/expandable'; -@import '../../ui/scss/component/expanding-details'; -@import '../../ui/scss/component/file-drop'; -@import '../../ui/scss/component/file-list'; -@import '../../ui/scss/component/file-properties'; -@import '../../ui/scss/component/file-render'; -@import '../../ui/scss/component/footer'; -@import '../../ui/scss/component/form-field'; -@import '../../ui/scss/component/header'; -@import '../../ui/scss/component/icon'; -@import '../../ui/scss/component/main'; -@import '../../ui/scss/component/markdown-editor'; -@import '../../ui/scss/component/markdown-preview'; -@import '../../ui/scss/component/media'; -@import '../../ui/scss/component/menu-button'; -@import '../../ui/scss/component/modal'; -@import '../../ui/scss/component/nag'; -@import '../../ui/scss/component/navigation'; -@import '../../ui/scss/component/notification'; -@import '../../ui/scss/component/nudge'; -@import '../../ui/scss/component/pagination'; -@import '../../ui/scss/component/post'; -@import '../../ui/scss/component/purchase'; -@import '../../ui/scss/component/placeholder'; -@import '../../ui/scss/component/progress'; -@import '../../ui/scss/component/search'; -@import '../../ui/scss/component/claim-search'; -@import '../../ui/scss/component/section'; -@import '../../ui/scss/component/share'; -@import '../../ui/scss/component/snack-bar'; -@import '../../ui/scss/component/spinner'; -@import '../../ui/scss/component/splash'; -@import '../../ui/scss/component/status-bar'; -@import '../../ui/scss/component/superchat'; -@import '../../ui/scss/component/syntax-highlighter'; -@import '../../ui/scss/component/table'; -@import '../../ui/scss/component/livestream'; -@import '../../ui/scss/component/tabs'; -@import '../../ui/scss/component/tooltip'; -@import '../../ui/scss/component/txo-list'; -@import '../../ui/scss/component/videojs'; -@import '../../ui/scss/component/tags'; -@import '../../ui/scss/component/wunderbar'; -@import '../../ui/scss/component/yrbl'; -@import '../../ui/scss/component/empty'; -@import '../../ui/scss/component/stripe-card'; -@import '../../ui/scss/component/wallet-tip-send'; diff --git a/web/scss/themes/lbrytv/dark.scss b/web/scss/themes/lbrytv/dark.scss deleted file mode 100644 index ab79d895f..000000000 --- a/web/scss/themes/lbrytv/dark.scss +++ /dev/null @@ -1,160 +0,0 @@ -[theme='dark'] { - // Color overrides - --color-primary: #2bbb90; - --color-primary-alt: #3e675d; - --color-primary-alt-2: #065f46; - --color-primary-alt-3: #34e5b0; - --color-secondary: #204166; - --color-secondary-alt: #dbeafe; - --color-secondary-alt-2: #bfdbfe; - --color-secondary-alt-3: #2c5c8c; - - // Structure - --color-background: var(--color-gray-9); - --color-background-overlay: #21252999; - --color-border: #333338; - --color-card-background: var(--color-gray-8); - --color-card-background-highlighted: var(--color-gray-7); - - // Text - --color-text: var(--color-white); - --color-text-subtitle: var(--color-gray-4); - --color-text-empty: var(--color-text-subtitle); - --color-text-help: #bbbbbb; - --color-text-warning: #212529; - --color-text-warning--background: var(--lbry-yellow-1); - --color-text-error: #f87171; - --color-error: #61373f; - - // Tags (words) - --color-tag-words: var(--color-text); - --color-tag-words-bg: var(--color-gray-5); - --color-tag-words-hover: var(--color-white); - --color-tag-words-bg-hover: var(--color-gray-4); - - // Header - --color-header-background: var(--color-gray-8); - --color-header-button: var(--color-gray-6); - --color-header-button-hover: var(--color-gray-6); - --color-header-button-active: var(--color-gray-6); - - // Button - --color-button-primary-bg: var(--color-primary-alt); - --color-button-primary-bg-hover: var(--color-primary-alt-2); - --color-button-primary-text: var(--color-gray-2); - --color-button-primary-hover-text: var(--color-primary-alt); - --color-button-secondary-bg: var(--color-secondary); - --color-button-secondary-border: var(--color-secondary); - --color-button-secondary-bg-hover: var(--color-secondary-alt-3); - --color-button-secondary-text: var(--color-gray-2); - --color-button-alt-bg: var(--color-gray-7); - --color-button-alt-bg-hover: var(--color-gray-6); - --color-button-alt-text: var(--color-gray-1); - --color-button-border: var(--color-gray-5); - --color-button-toggle-text: var(--color-gray-1); - --color-link: var(--color-primary-alt-3); - --color-link-hover: var(--color-text); - --color-link-focus-bg: var(--color-gray-7); - - // Input - --color-input: var(--color-white); - --color-input-label: var(--color-gray-3); - --color-input-placeholder: var(--color-gray-1); - --color-input-bg: var(--color-header-button); - --color-input-bg-copyable: var(--color-gray-6); - --color-input-border: var(--color-border); - --color-input-border-active: var(--color-secondary); - --color-input-toggle: var(--color-primary-alt-3); - --color-input-toggle-bg: var(--color-input-bg); - --color-input-toggle-bg-hover: var(--color-secondary); - --color-input-bg-selected: var(--color-primary-alt); - --color-input-prefix-bg: var(--color-gray-5); - --color-input-prefix-border: var(--color-gray-4); - --select-toggle-background: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg' fill='%23ffffff'%3E%3Cpath d='M17.172, 31.172c1.562, -1.562 4.095, -1.562 5.656, 0l25.172, 25.171l25.172, -25.171c1.562, -1.562 4.095, -1.562 5.656, 0c1.562, 1.562 1.562, 4.095 0, 5.656l-28, 28c-1.562, 1.562 -4.095, 1.562 -5.656, 0l-28, -28c-0.781, -0.781 -1.172, -1.805 -1.172, -2.828c0, -1.023 0.391, -2.047 1.172, -2.828Z'/%3E%3C/svg%3E%0A"); - - // Navigation - --color-navigation-icon: var(--color-gray-4); - --color-navigation-link: var(--color-gray-4); - --color-navigation-active: var(--color-gray-7); - --color-navigation-active-text: var(--color-gray-3); - --color-navigation-hover: var(--color-gray-6); - --color-navigation-hover-text: var(--color-gray-3); - - // Tags - --color-tag: var(--color-primary-alt-3); - --color-tag-bg: var(--color-gray-7); - --color-tag-hover: var(--color-white); - --color-tag-bg-hover: var(--color-primary-alt); - - // Menu - --color-menu-background: var(--color-header-background); - --color-menu-background--active: var(--color-gray-7); - --color-menu-icon: var(--color-gray-4); - --color-menu-icon-active: var(--color-gray-2); - - // Comments - --color-comment-menu: var(--color-gray-5); - --color-comment-menu-hovering: var(--color-gray-2); - --color-comment-threadline: #434b54; - --color-comment-threadline-hover: var(--color-gray-4); - --color-comment-highlighted: #484734; - - // Snack - --color-snack-bg: var(--color-secondary); - - // Superchat - --color-superchat-text: var(--color-black); - --color-superchat-text__light: var(--color-text); - --color-superchat: #fcd34d; - --color-superchat__light: #ef4e1647; - --color-superchat-2: #fde68a; - --color-superchat-3: #fef3c7; - --color-superchat-3__light: #58066087; - --color-superchat-4: #fffbeb; - - // Other - --color-focus: #93c5fd50; - --color-nag: var(--color-orange); - --color-tab-text: var(--color-white); - --color-tabs-background: var(--color-card-background); - --color-tab-divider: var(--color-white); - --color-modal-background: var(--color-card-background); - --color-notice: #58563b; - --color-purchased: #ffd580; - --color-purchased-alt: var(--color-purchased); - --color-purchased-text: var(--color-gray-5); - --color-thumbnail-background: var(--color-gray-5); - --color-tooltip-bg: #2f3337; - --color-help-warning-bg: #d97706; - --color-help-warning-text: white; - --color-blockquote: var(--color-gray-5); - --color-placeholder-background: #4e5862; - --color-spinner-light: #5a6570; - --color-spinner-dark: #212529; - --color-login-graphic-background: var(--color-background); - - // Editor - --color-editor-cursor: var(--color-text); - --color-editor-quote: #d3d3d3; - --color-editor-tag: #efbe5d; - --color-editor-attr: #68ccf9; - --color-editor-string: #ff8b6b; - --color-editor-inline-code-fg: #ce9178; - --color-editor-inline-code-fg-preview: #e8b692; - --color-editor-inline-code-bg: rgba(20, 68, 102, 0.3); - --color-editor-inline-code-bg-preview: #464b50; - --color-editor-selected: #264f78; - --color-editor-link: var(--color-link); - --color-editor-url: var(--color-editor-string); - --color-editor-hr: var(--color-editor-tag); - --color-editor-hr-preview: #a0a0a0; - - // Ads - --color-ads-background: #475057; - --color-ads-text: #111; - --color-ads-link: var(--color-primary-alt); - - // Scrollbar - --color-scrollbar-thumb-bg: rgba(255, 255, 255, 0.2); - --color-scrollbar-track-bg: transparent; -} diff --git a/web/scss/themes/lbrytv/light.scss b/web/scss/themes/lbrytv/light.scss deleted file mode 100644 index 5a4260fca..000000000 --- a/web/scss/themes/lbrytv/light.scss +++ /dev/null @@ -1,2 +0,0 @@ -:root { -} diff --git a/web/scss/themes/odysee/component/_file-render.scss b/web/scss/themes/odysee/component/_file-render.scss deleted file mode 100644 index 20560bad1..000000000 --- a/web/scss/themes/odysee/component/_file-render.scss +++ /dev/null @@ -1,757 +0,0 @@ -.file-page { - .file-page__video-container + .card, - .file-render + .card, - .content__cover + .card, - .card + .file-render, - .card + .file-page__video-container, - .card + .content__cover { - margin-top: var(--spacing-m); - } - - .card + .file-render { - margin-top: var(--spacing-m); - } - - .file-page__md { - .file-viewer--document { - margin-top: var(--spacing-l); - - @media (min-width: $breakpoint-small) { - margin-top: var(--spacing-xl); - } - - .button { - display: inline; - - .button__content { - display: inline; - } - } - - .claim-link { - .button { - display: block; - - .button__content { - display: block; - } - } - } - } - - .media__actions { - justify-content: center; - } - - .file-page__secondary-content { - display: flex; - flex-direction: column; - padding: 0 var(--spacing-m); - } - } - - > * { - width: 100%; - } - - @media (max-width: $breakpoint-medium) { - flex-direction: column; - } -} - -.file-render { - width: 100%; - height: 100%; - z-index: 1; - overflow: hidden; - max-height: var(--inline-player-max-height); -} - -.file-render--video { - background-color: black; - - &:after { - content: ''; - position: absolute; - background-color: black; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: 2; - animation: fadeInFromBlack 2s ease; - opacity: 0; - pointer-events: none; - } -} - -@keyframes fadeInFromBlack { - 0% { - opacity: 1; - } - 100% { - opacity: 0; - } -} - -.file-render--embed { - border-radius: 0; - position: fixed; - max-height: none; -} - -.file-render--img-container { - width: 100%; - aspect-ratio: 16 / 9; -} - -.file-render--post-container { - min-height: 30vh; -} - -.file-render__header { - display: flex; - justify-content: space-between; - flex-wrap: wrap; -} - -.file-viewer { - width: 100%; - height: 100%; - - iframe, - webview, - img { - width: 100%; - height: 100%; - object-fit: contain; - max-height: var(--inline-player-max-height); - } - video { - cursor: pointer; - } - .video-js.vjs-user-inactive.vjs-playing { - video { - cursor: none; - } - } -} - -.file-render__viewer--comic { - position: relative; - overflow: hidden; - .comic-viewer { - width: 100%; - height: calc(100vh - var(--header-height) - var(--spacing-m) * 2); - max-height: var(--inline-player-max-height); - } -} - -.file-viewer--iframe { - display: flex; /*this eliminates extra height from whitespace, if someone edits this with a better technique, tell Jeremy*/ - /* - ideally iframes would dynamiclly grow, see for a start at this - for now, since we don't know size, let's make as large as we can without being larger than available area - */ - iframe { - height: calc(100vh - var(--header-height) - var(--spacing-m) * 2); - } -} - -.file-render__viewer--three { - position: relative; - overflow: hidden; - - .three-viewer { - height: calc(100vh - var(--header-height) - var(--spacing-m) * 2); - max-height: var(--inline-player-max-height); - } -} - -.file-viewer__overlay { - position: absolute; - left: auto; - right: auto; - height: 100%; - width: 100%; - z-index: 2; - color: var(--color-white); - font-size: var(--font-body); /* put back font size from videojs change*/ - - background-color: rgba(0, 0, 0, 0.9); - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - padding: var(--spacing-l); - - @media (max-width: $breakpoint-small) { - font-size: var(--font-small); - } - - .button--uri-indicator, - .button--link { - color: var(--color-white); - } -} - -.content__viewer--floating { - .file-viewer__overlay-title, - .file-viewer__overlay-secondary { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - max-width: 100%; - } -} -@media (max-width: $breakpoint-small) { - .file-viewer__overlay-title, - .file-viewer__overlay-secondary { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - max-width: 100%; - } -} - -.file-viewer__overlay-title { - text-align: center; - font-size: var(--font-large); - margin-bottom: var(--spacing-m); -} -.file-viewer__overlay-secondary { - color: var(--color-text-subtitle); - margin-bottom: var(--spacing-m); -} -.file-viewer__overlay-actions { - .button + .button { - margin-left: var(--spacing-m); - } -} - -.file-viewer__overlay-logo { - height: 2rem; - max-height: 2rem; //embed logo height? - width: 12rem; - display: flex; - align-items: center; - - &:hover { - filter: drop-shadow(1px 2px 10px var(--color-gray-3)); - } - - @media (max-width: $breakpoint-small) { - margin-right: var(--spacing-m); - width: 2.5rem; - - .button__label { - display: none; - } - } -} - -.file-viewer__overlay-logo--videoend { - height: 3.5rem; - width: 12rem; -} - -.file-viewer--is-playing:not(:hover) .file-viewer__embedded-header { - display: none; -} - -.file-viewer__embedded-header { - position: absolute; - display: flex; - align-items: center; - justify-content: space-between; - width: 100%; - top: 0; - opacity: 1; - z-index: 2; - height: 4rem; - padding-left: var(--spacing-m); - padding-right: var(--spacing-s); - font-size: var(--font-large); - overflow-x: hidden; - overflow-y: hidden; - text-overflow: ellipsis; - white-space: nowrap; - border-top-left-radius: var(--border-radius); - border-top-right-radius: var(--border-radius); - - .button { - color: var(--color-white); - z-index: 2; - - .button__label { - white-space: nowrap; - } - - &:hover { - color: var(--color-white); - } - } - - .credit-amount, - .icon--Key { - margin-right: var(--spacing-m); - } - - @media (min-width: $breakpoint-small) { - padding: 0 var(--spacing-l); - } -} - -.file-viewer__embedded-gradient { - position: absolute; - top: 0; - left: 0; - right: 0; - z-index: 2; - background: linear-gradient(#000000, #00000000 70%); - height: 75px; - z-index: 1; -} - -.file-viewer__embedded-title { - color: white; - max-width: 75%; - z-index: 2; -} - -.file-viewer__embedded-info { - display: flex; - align-items: center; - font-size: var(--font-small); - margin-left: var(--spacing-m); - white-space: nowrap; - position: relative; - overflow: hidden; - - & > *:not(:last-child) { - margin-right: var(--spacing-s); - } -} - -.file-render__content { - width: 100%; - height: 100%; - overflow: auto; - max-width: 100vw; -} - -// -// Custom viewers live below here -// These either have custom class names that can't be changed or have styles that need to be overridden -// - -// Code-viewer -.CodeMirror { - @extend .file-render__content; - - .cm-invalidchar { - display: none; - } - - .CodeMirror .CodeMirror-lines { - // is there really a .CodeMirror inside a .CodeMirror? - padding: var(--spacing-s) 0; - } - - .CodeMirror-code { - @include font-sans; - letter-spacing: 0.1rem; - } - - .CodeMirror-gutters { - background-color: var(--color-gray-1); - border-right: 1px solid var(--color-gray-4); - padding-right: var(--spacing-m); - } - - .CodeMirror-line { - padding-left: var(--spacing-m); - } - - .CodeMirror-linenumber { - color: var(--color-gray-5); - } -} - -// **************************************************************************** -// Video -// **************************************************************************** - -.video-js-parent { - height: 100%; - width: 100%; -} - -// By default no video js play button -.vjs-big-play-button { - display: none; -} - -.video-js { - height: 100%; - width: 100%; - - .vjs-modal-dialog .vjs-modal-dialog-content { - position: relative; - padding-top: 5rem; - // Make sure no videojs message interferes with overlaying buttons - pointer-events: none; - } - - .vjs-control-bar { - // background-color: rgba(0, 0, 0, 0.8); - - .vjs-remaining-time { - display: none; - } - - .vjs-current-time, - .vjs-time-divider, - .vjs-duration { - display: flex; - } - } - - .vjs-picture-in-picture-control { - display: none; - } -} - -// **************************************************************************** -// Video::Overlays -// **************************************************************************** - -.video-js { - .vjs-overlay-playrate, - .vjs-overlay-seeked { - background-color: rgba(0, 0, 0, 0.5); - font-size: var(--font-large); - width: auto; - padding: 10px 30px; - margin: 0; - position: absolute; - top: 50%; - left: 50%; - -ms-transform: translate(-50%, -50%); - transform: translate(-50%, -50%); - - animation: fadeOutAnimation ease-in 0.6s; - animation-iteration-count: 1; - animation-fill-mode: forwards; - } - - @keyframes fadeOutAnimation { - 0% { - opacity: 1; - visibility: visible; - } - 100% { - opacity: 0; - visibility: hidden; - } - } -} - -// **************************************************************************** -// Video - Mobile UI -// **************************************************************************** - -.video-js.vjs-mobile-ui { - .vjs-control-bar { - background-color: transparent; - } - - .vjs-touch-overlay:not(.show-play-toggle) { - .vjs-control-bar { - // Sync the controlBar's visibility with the overlay's - display: none; - } - } - - .vjs-touch-overlay { - &.show-play-toggle, - &.skip { - background-color: rgba(0, 0, 0, 0.5); - } - - // Override the original's 'display: block' to avoid the big play button - // from being squished to the side: - position: absolute; - } -} - -video::-internal-media-controls-overlay-cast-button { - // Push the cast button above vjs-touch-overlay: - z-index: 3; - - // Move it to the upper-right since it will clash with "tap to unmute": - left: unset; - right: 8px; -} - -.video-js.video-js.vjs-user-inactive { - video::-internal-media-controls-overlay-cast-button { - // (1) Android-Chrome's original Cast button behavior: - // - If video is playing, fade out the button. - // - If video is paused and video is tapped, display the button and stay on. - // (2) We then injected another behavior: - // - Display the button when '.vjs-touch-overlay' is displayed. However, - // the 'controlslist' attribute hack that was used to do this results in the - // button staying displayed without a fade-out timer. - // (3) Ideally, we should sync the '.vjs-touch-overlay' visibility with the - // cast button, similar to how to controlBar's visibility is synced above. - // But I have no idea how to grab the sibling '.show-play-toggle' into the - // css logic. - // (4) So, this is the best that I can come up with: Whenever user is idle, - // the button goes away. The only downside I know is the scenario of - // "overlay is up and video is paused, but button goes away due to idle". - // The user just needs to re-tap any empty space on the overlay to get the - // Cast button again. - opacity: 0; - transition: opacity 1s ease; - } -} - -// **************************************************************************** -// Layout and control visibility -// **************************************************************************** - -.video-js.vjs-fullscreen, -.video-js:not(.vjs-fullscreen) { - // --- Unhide desired components per layout --- - &.vjs-layout-x-small { - .vjs-playback-rate { - display: flex !important; - } - } - - &.vjs-layout-small { - .vjs-current-time, - .vjs-time-divider, - .vjs-duration, - .vjs-playback-rate { - display: flex !important; - } - } - - // --- Adjust spacing --- - .vjs-current-time { - padding-right: 0; - } - - .vjs-duration { - padding-left: 0; - } - - .vjs-playback-rate .vjs-playback-rate-value { - // Reduce the gigantic font a bit. Default was 1.5em. - font-size: 1.25em; - line-height: 2.5; - } - - .vjs-playback-rate .vjs-menu { - // Extend the width to prevent a potential scrollbar from blocking the text. - width: 8em; - left: -2em; - } -} - -.video-js.vjs-fullscreen { - .vjs-button--theater-mode { - display: none; - } -} - -// **************************************************************************** -// Tap-to-unmute -// **************************************************************************** - -.video-js--tap-to-unmute { - visibility: hidden; // Start off as hidden. - z-index: 2; - position: absolute; - top: var(--spacing-xs); - left: var(--spacing-xs); - padding: var(--spacing-xs) var(--spacing-m); // Make it comfy for touch. - color: var(--color-gray-1); - background: black; - border: 1px solid var(--color-gray-4); - opacity: 0.9; - - &:hover { - opacity: 1; - color: var(--color-white); - } -} - -// **************************************************************************** -// **************************************************************************** - -.video-js:hover { - .vjs-big-play-button { - background-color: var(--color-primary); - } -} - -.file-render { - .video-js { - /*display: flex;*/ - /*align-items: center;*/ - /*justify-content: center;*/ - } - - .vjs-big-play-button { - @extend .button--icon; - @extend .button--play; - border: none; - /*position: static;*/ - z-index: 2; - - .vjs-icon-placeholder { - display: none; - } - } - - .vjs-menu-item-text, - .vjs-icon-placeholder { - text-transform: capitalize; - } -} - -// **************************************************************************** -// **************************************************************************** - -.file-render--embed { - // on embeds, do not inject our colors until interaction - .video-js:hover { - .vjs-big-play-button { - background-color: var(--color-primary); - } - } - - .vjs-paused { - .vjs-big-play-button { - display: block; - background-color: rgba(0, 0, 0, 0.6); - } - } - - .vjs-ended { - .vjs-big-play-button { - display: none; - } - } - - .video-js--tap-to-unmute { - margin-top: var(--spacing-xl); - margin-left: var(--spacing-s); - - @media (min-width: $breakpoint-small) { - margin-left: calc(var(--spacing-m) + var(--spacing-s)); - } - } - - .file-viewer { - iframe, - webview, - img { - max-height: none; - } - } -} - -.file-viewer--ended-embed .vjs-big-play-button { - display: none !important; // yes this is dumb, but this was broken and the above CSS was overriding -} - -// **************************************************************************** -// Autoplay Countdown -// **************************************************************************** - -.autoplay-countdown { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - width: 100%; -} - -.autoplay-countdown__timer { - width: 100%; - text-align: center; - font-size: var(--font-small); -} -.autoplay-countdown__counter { - margin-top: var(--spacing-m); -} - -.autoplay-countdown__button { - /* Border size and color */ - border: 3px solid transparent; - /* Creates a circle */ - border-radius: 50%; - /* Circle size */ - display: inline-block; - height: 86px; - width: 86px; - /* Use transform to rotate to adjust where opening appears */ - transition: border 1s; - transform: rotate(45deg); - .button { - background-color: transparent; - transform: rotate(-45deg); - &:hover { - background-color: var(--color-primary); - } - } -} -.autoplay-countdown__button--4 { - border-top-color: #fff; -} -.autoplay-countdown__button--3 { - border-top-color: #fff; - border-right-color: #fff; -} -.autoplay-countdown__button--2 { - border-top-color: #fff; - border-right-color: #fff; - border-bottom-color: #fff; -} -.autoplay-countdown__button--1 { - border-color: #fff; -} - -// **************************************************************************** -// **************************************************************************** - -.file__viewdate { - display: flex; - justify-content: space-between; - flex-direction: column; - margin-bottom: var(--spacing-s); - - > :first-child { - margin-bottom: var(--spacing-s); - } - - @media (max-width: $breakpoint-medium) { - flex-direction: row; - justify-content: start; - - > :first-child { - margin-bottom: 0; - margin-right: 1rem; - } - } -} - -.file-page__image { - img { - cursor: pointer; - } -} diff --git a/web/scss/themes/odysee/component/_form-field.scss b/web/scss/themes/odysee/component/_form-field.scss deleted file mode 100644 index 5c4a3a2c8..000000000 --- a/web/scss/themes/odysee/component/_form-field.scss +++ /dev/null @@ -1,713 +0,0 @@ -@import '../init/mixins'; - -input, -textarea, -select, -.date-picker-input { - height: var(--height-input); - border-radius: var(--border-radius); - border: 1px solid; - color: var(--color-input); - border-color: var(--color-input-border); - background-color: var(--color-input-bg); - padding-right: var(--spacing-s); - padding-left: var(--spacing-s); - - &:focus { - @include focus; - } - - &::placeholder { - color: var(--color-input-placeholder); - opacity: 0.4; - } - - &:disabled { - opacity: 0.4; - - & + label { - opacity: 0.4; - } - } - - &[type='range'] { - height: auto; - height: 0.5rem; - background-color: var(--color-secondary); - } -} - -checkbox-element, -radio-element, -select { - cursor: pointer; -} - -select { - background-image: var(--select-toggle-background); - background-position: 99% center; - background-repeat: no-repeat; - background-size: 1rem; - padding-right: var(--spacing-l); - padding-left: var(--spacing-s); - font-weight: bold; -} - -fieldset-group { - display: flex; - flex-direction: row; - justify-content: space-between; - - &.fieldset-group--smushed { - fieldset-section + fieldset-section { - margin-top: 0; - } - } -} - -fieldset-section, -fieldset-group, -form, -.checkbox, -.radio, -.form-field--SimpleMDE, -.form-field__help { - + fieldset-section, - + fieldset-group, - + form, - + .checkbox, - + .radio, - + .form-field--SimpleMDE { - margin-top: var(--spacing-l); - } - - + .form-field__help { - margin-top: var(--spacing-s); - } - - &:last-child { - margin-bottom: 0; - } - - input, - select { - width: 100%; - } -} - -fieldset-section, -.checkbox, -.radio { - display: flex; - flex-direction: column; -} - -label { - font-size: var(--font-small); - color: var(--color-input-label); - display: inline-block; - margin-bottom: 0.1rem; - - .icon__lbc { - margin-bottom: 4px; - } -} - -input-submit { - display: flex; - - & > *:first-child, - & > *:nth-child(2) { - margin: 0; - } - - & > *:first-child { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-right: none; - } - - & > *:nth-child(2) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - border: 1px solid var(--color-border); - } -} - -.checkbox, -.radio { - position: relative; - - input[type='checkbox'], - input[type='radio'] { - height: var(--height-checkbox); - width: var(--height-checkbox); - position: absolute; - border: none; - left: 0; - padding: 0; - background-color: transparent; - - &:disabled + label { - cursor: default; - pointer-events: none; - } - } - - label { - position: relative; - display: inline-block; - margin: 0; - font-size: var(--font-base); - padding-left: calc(var(--height-checkbox) + var(--spacing-s)); - min-height: var(--height-checkbox); - - &::before { - background-color: var(--color-input-toggle-bg); - } - - &:hover { - &::before { - background-color: var(--color-input-toggle-bg-hover); - } - } - } - - label::before, - label::after { - position: absolute; - content: ''; - } - - // Hide the checkmark by default - input[type='checkbox'] + label::after, - input[type='radio'] + label::after { - content: none; - } - - // Unhide on the checked state - input[type='checkbox']:checked + label::after, - input[type='radio']:checked + label::after { - content: ''; - } - - input[type='checkbox']:focus + label::before, - input[type='radio']:focus + label::before { - @include focus; - } -} - -.checkbox { - // Outer box of the fake checkbox - label::before { - height: var(--height-checkbox); - width: var(--height-checkbox); - border: 1px solid var(--color-input-border); - border-radius: var(--border-radius); - left: 0px; - top: -1px; - } - - // Checkmark of the fake checkbox - label::after { - height: 6px; - width: 12px; - border-left: 2px solid; - border-bottom: 2px solid; - border-color: var(--color-input-toggle); - border-left-color: var(--color-input-toggle); - transform: rotate(-45deg); - left: 6px; - top: 6px; - } -} - -.radio { - input[type='radio'] { - border-radius: 50%; - } - - // Outer box of the fake radio - label::before { - height: var(--height-radio); - width: var(--height-radio); - border: 1px solid var(--color-input-border); - border-radius: calc(var(--height-radio) * 0.5); - left: 0px; - top: -1px; - } - - // Checkmark of the fake radio - label::after { - height: 12px; - width: 12px; - border-radius: 50%; - background-color: var(--color-primary); - left: 6px; - top: 5px; - } -} - -.range__label { - display: flex; - justify-content: space-between; - width: 100%; - margin-bottom: var(--spacing-m); - - > * { - width: 33%; - text-align: center; - - &:first-of-type { - text-align: left; - } - &:last-of-type { - text-align: right; - } - } -} - -.fieldset-group { - @extend fieldset-group; -} - -.fieldset-section { - @extend fieldset-section; -} - -.input-submit { - @extend input-submit; -} - -input-submit { - align-items: center; - - input { - z-index: 2; - } -} - -input[type='number'] { - width: 8rem; -} - -fieldset-group { - + fieldset-group { - margin-top: var(--spacing-s); - } - - &.fieldset-group--smushed { - justify-content: flex-start; - - fieldset-section { - width: auto; - margin: 0; - - &:first-child { - input, - select { - border-right: none; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } - } - - &:nth-of-type(2) { - input, - select { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - } - - label { - margin-left: var(--spacing-s); - } - } - } - - &.fieldgroup--paginate { - padding-bottom: var(--spacing-l); - margin-top: var(--spacing-l); - align-items: flex-end; - justify-content: center; - } - } - - // This is a special case where the prefix appears "inside" the input - // It would be way simpler to just use position: absolute and give it a width - // but the width can change when we use it for the name prefix - // lbry:// {input}, lbry://@short {input}, @lbry://longername {input} - // The spacing/alignment isn't very robust and will probably need to be changed - // if we use this in more places - &.fieldset-group--disabled-prefix { - align-items: flex-end; - - label { - min-height: 18px; - white-space: nowrap; - // Set width 0 and overflow visible so the label can act as if it's the input label and not a random text node in a side by side div - overflow: visible; - width: 0; - } - - fieldset-section:first-child { - max-width: 40%; - - .form-field__prefix { - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - padding: 0.5rem; - height: var(--height-input); - border: 1px solid; - border-top-left-radius: var(--border-radius); - border-bottom-left-radius: var(--border-radius); - border-color: var(--color-input-border); - border-right-color: var(--color-input-prefix-border); - color: var(--color-text); - background-color: var(--color-input-prefix-bg); - } - } - - fieldset-section:last-child { - width: 100%; - - label { - // Overwrite the input's label to wrap instead. This is usually - // an error message, which could be long in other languages. - width: 100%; - white-space: normal; - } - - input { - border-left: 0; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - border-color: var(--color-input-border); - padding-left: var(--spacing-xs); - } - } - } -} - -.form-field--copyable { - padding: 0.2rem 0.75rem; - text-overflow: ellipsis; - user-select: text; - cursor: default; -} - -.form-field--short { - width: 100%; - @media (min-width: $breakpoint-small) { - width: 25em; - } -} - -.form-field--price-amount { - max-width: 6em; -} - -.form-field--price-amount--auto { - width: auto; - min-width: 100%; -} - -.form-field--address { - min-width: 18em; - @media (max-width: $breakpoint-xxsmall) { - min-width: 10em; - } -} - -.form-field__help { - @extend .help; -} - -.form-field__help + .checkbox, -.form-field__help + .radio { - margin-top: var(--spacing-l); -} - -.form-field__conjuction { - padding-top: 1rem; -} - -.form-field__two-column { - @media (min-width: $breakpoint-small) { - column-count: 2; - } -} - -.form-field__quick-action { - float: right; - font-size: var(--font-xsmall); - margin-top: 2.5%; -} - -.form-field__textarea-info { - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; - margin-top: var(--spacing-xxs); - margin-bottom: var(--spacing-s); -} - -.form-field__quick-emojis { - > *:not(:last-child) { - margin-right: var(--spacing-s); - } -} - -fieldset-section { - .form-field__internal-option { - margin-top: var(--spacing-s); - margin-left: 2.2rem; - - &:first-of-type { - margin-top: var(--spacing-s); // Extra specificity needed here since _section.scss is applied after this file - } - } - - .select--slim { - margin-bottom: var(--spacing-xxs); - - @media (min-width: $breakpoint-small) { - max-width: none; - } - - select { - max-height: 1.5rem !important; - padding: 0 var(--spacing-xs); - padding-right: var(--spacing-l); - } - } -} - -#automatic_dark_mode_range_start, -#automatic_dark_mode_range_end { - min-width: 6em; -} - -.date-picker-input { - font-weight: bold; - - .react-datetime-picker__wrapper { - border: 0; - } -} - -.form-field-date-picker { - margin-bottom: var(--spacing-l); - - label { - display: block; - } - - .controls { - display: flex; - - .date-picker-input, - .button--link { - margin-right: var(--spacing-m); - } - } - - .react-datetime-picker__button { - svg { - stroke: var(--color-text); - } - } - - .react-datetime-picker__button:enabled:hover .react-datetime-picker__button__icon, - .react-datetime-picker__button:enabled:focus .react-datetime-picker__button__icon { - stroke: var(--color-primary); - } - - .react-date-picker__calendar { - z-index: 1000; - } - - .react-calendar { - width: 350px; - max-width: 100%; - background: var(--color-card-background); - border: 1px solid #a0a096; - font-family: inherit; - line-height: 1; - } - - .react-calendar--doubleView { - width: 700px; - } - - .react-calendar--doubleView .react-calendar__viewContainer { - display: flex; - margin: -0.5em; - } - - .react-calendar--doubleView .react-calendar__viewContainer > * { - width: 50%; - margin: 0.5em; - } - - .react-calendar, - .react-calendar *, - .react-calendar *:before, - .react-calendar *:after { - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - padding: 2px 1px; - } - - .react-calendar button { - margin: 0; - border: 0; - outline: none; - } - - .react-calendar button:enabled:hover { - cursor: pointer; - } - - .react-calendar__navigation { - height: 44px; - margin-bottom: 1em; - color: var(--color-text); - } - - .react-calendar__navigation__label { - color: var(--color-text); - } - - .react-calendar__navigation button { - min-width: 44px; - background: none; - color: var(--color-text); - } - - .react-calendar__navigation button:enabled:hover, - .react-calendar__navigation button:enabled:focus { - background: var(--color-button-alt-bg-hover); - } - - .react-calendar__navigation button[disabled] { - color: var(--color-text); - } - - .react-calendar__month-view__weekdays { - text-align: center; - text-transform: uppercase; - font-weight: bold; - font-size: 0.75em; - color: var(--color-text-alt); - } - - .react-calendar__month-view__weekdays__weekday { - padding: 0.5em; - } - - .react-calendar__month-view__weekNumbers { - font-weight: bold; - } - - .react-calendar__month-view__weekNumbers .react-calendar__tile { - display: flex; - align-items: center; - justify-content: center; - font-size: 0.75em; - padding: calc(0.75em / 0.75) calc(0.5em / 0.75); - } - - .react-calendar__month-view__days__day, - .react-calendar__month-view__days__day--weekend { - color: var(--color-text); - font-weight: normal; - } - - .react-calendar__month-view__days__day--neighboringMonth { - color: var(--color-gray-5); - } - - .react-calendar__year-view .react-calendar__tile, - .react-calendar__decade-view .react-calendar__tile, - .react-calendar__century-view .react-calendar__tile { - padding: 2em 0.5em; - } - - .react-calendar__tile { - max-width: 100%; - text-align: center; - padding: 0.75em 0.5em; - background: none; - border-radius: var(--border-radius); - color: var(--color-text); - } - - .react-calendar__tile:enabled:hover, - .react-calendar__tile:enabled:focus { - background: var(--color-button-alt-bg-hover); - } - - .react-calendar__tile--now { - background: var(--color-button-secondary-bg); - } - - .react-calendar__tile--now:enabled:hover, - .react-calendar__tile--now:enabled:focus { - background: var(--color-button-secondary-bg-hover); - } - - .react-calendar__tile--hasActive { - color: var(--color-button-primary-text); - background: var(--color-button-primary-bg); - } - - .react-calendar__tile--hasActive:enabled:hover, - .react-calendar__tile--hasActive:enabled:focus { - background: var(--color-button-primary-bg-hover); - } - - .react-calendar__tile--active { - color: var(--color-button-primary-text); - background: var(--color-button-primary-bg); - } - - .react-calendar__tile--active:enabled:hover, - .react-calendar__tile--active:enabled:focus { - background: var(--color-button-primary-bg-hover); - } - - .react-calendar--selectRange .react-calendar__tile--hover { - background-color: #e6e6e6; - } - - .react-datetime-picker__inputGroup__amPm { - background: var(--color-input-bg); - } - - .react-datetime-picker__inputGroup__leadingZero { - // Not perfect, but good enough for our standard zoom levels. - margin-bottom: 1px; - } - - .react-datetime-picker__inputGroup__input--hasLeadingZero { - margin-left: -0.54em; - padding-left: calc(1px + 0.54em); - } - - .react-calendar__month-view__days__day--neighboringMonth { - color: var(--color-gray-5); - } -} - -.form-field-calendar { - border-radius: var(--border-radius); - border: 1px solid var(--color-border); - margin-left: calc(var(--spacing-xs) * -1); - margin-bottom: var(--spacing-xs); - animation: menu-animate-in var(--animation-duration) var(--animation-style); - box-shadow: 3px 3px rgba(0, 0, 0, 0.1); -} diff --git a/web/scss/themes/odysee/dark.scss b/web/scss/themes/odysee/dark.scss deleted file mode 100644 index ae5d31e53..000000000 --- a/web/scss/themes/odysee/dark.scss +++ /dev/null @@ -1,137 +0,0 @@ -[theme='dark'] { - // Color overrides - --color-primary: #e50054; - --color-primary-alt: #66001880; - --color-fire: #ff6635; - --color-fire-outside: #ff9b20; - - // Structure - --color-background: #140e1b; - --color-background-overlay: #0c0d0e95; - --color-border: #30243d; - --color-card-background: #181021; - --color-card-background-highlighted: #241c30; - - // Text - --color-text: var(--color-gray-1); - --color-text-subtitle: var(--color-gray-4); - --color-text-empty: var(--color-text-subtitle); - --color-text-help: #bbbbbb; - --color-text-warning: #212529; - --color-text-warning--background: var(--lbry-yellow-1); - --color-text-error: var(--color-danger); - --color-error: var(--color-danger-alt); - --color-blockquote: var(--color-gray-5); - --color-blockquote-bg: var(--color-card-background-highlighted); - --color-help-warning-text: var(--color-white-alt); - --color-help-warning-bg: #fbbf2450; - - // Header - --color-header-button: #38274c; - --color-header-background: #231830; - - // Button - --color-button-primary-text: white; - --color-button-primary-hover-text: var(--color-primary-alt); - --color-button-secondary-bg: #2c1543; - --color-button-secondary-border: #4f1c82; - --color-button-secondary-bg-hover: #3b1c5b; - --color-button-secondary-text: #efefef; - --color-button-alt-bg: var(--color-header-button); - --color-button-alt-bg-hover: #2b2037; - --color-button-toggle-text: var(--color-text); - --color-button-toggle-bg: var(--color-primary-alt); - --color-button-toggle-bg-hover: var(--color-primary-alt); - --color-button-alt-text: #e2e9f0; - --color-button-border: #5b4475; - --color-link: var(--color-primary); - --color-link-hover: #d75673; - --color-link-active: #ec1d4c; - --color-link-focus-bg: #3d2d4e; - - // Input - --color-input: #f4f4f5; - --color-input-label: #a7a7a7; - --color-input-placeholder: #f4f4f5; - --color-input-bg: var(--color-header-button); - --color-input-bg-copyable: #4c3861; - --color-input-border: var(--color-border); - --color-input-border-active: var(--color-secondary); - --color-input-toggle: var(--color-primary-alt-3); - --color-input-toggle-bg: var(--color-input-bg); - --color-input-toggle-bg-hover: var(--color-secondary); - --color-input-bg-selected: var(--color-primary-alt); - --color-input-prefix-bg: var(--color-input-bg-copyable); - --color-input-prefix-border: var(--color-gray-4); - --select-toggle-background: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg' fill='%23ffffff'%3E%3Cpath d='M17.172, 31.172c1.562, -1.562 4.095, -1.562 5.656, 0l25.172, 25.171l25.172, -25.171c1.562, -1.562 4.095, -1.562 5.656, 0c1.562, 1.562 1.562, 4.095 0, 5.656l-28, 28c-1.562, 1.562 -4.095, 1.562 -5.656, 0l-28, -28c-0.781, -0.781 -1.172, -1.805 -1.172, -2.828c0, -1.023 0.391, -2.047 1.172, -2.828Z'/%3E%3C/svg%3E%0A"); - - // Navigation - --color-navigation-icon: #76808a; - --color-navigation-link: #b9c3ce; - --color-navigation-active: #2b2037; - --color-navigation-active-text: #c6bcd2; - --color-navigation-hover: #21182a; - --color-navigation-hover-text: #c6bcd2; - - // Tags - --color-tag: #ff85b1; - --color-tag-bg: var(--color-navigation-hover); - --color-tag-hover: var(--color-white); - --color-tag-bg-hover: var(--color-primary-alt-2); - --color-tag-mature-bg: var(--color-primary-alt-2); - - // Menu - --color-menu-background: var(--color-header-background); - --color-menu-background--active: var(--color-primary-alt); - --color-menu-icon: #928b9b; - --color-menu-icon-active: #d6d6d6; - - // Comments - --color-comment-menu: #6a6a6a; - --color-comment-menu-hovering: #e0e0e0; - --color-comment-highlighted: #484734; - --color-comment-threadline: #24192f; - --color-comment-threadline-hover: var(--color-gray-4); - - // Other - --color-tab-text: var(--color-white); - --color-tabs-background: var(--color-card-background); - --color-tab-divider: var(--color-white); - --color-modal-background: var(--color-card-background); - --color-notice: #58563b; - --color-purchased: #ffd580; - --color-purchased-alt: var(--color-purchased); - --color-purchased-text: black; - --color-thumbnail-background: var(--color-gray-5); - --color-tooltip-bg: #2f3337; - --color-focus: #e91e6329; - --color-placeholder-background: #261a35; - --color-spinner-light: white; - --color-spinner-dark: #212529; - --color-login-graphic-background: var(--color-background); - - // Editor - --color-editor-cursor: var(--color-text); - --color-editor-quote: #d3d3d3; - --color-editor-tag: #efbe5d; - --color-editor-attr: #68ccf9; - --color-editor-string: #ff8b6b; - --color-editor-inline-code-fg: #ce9178; - --color-editor-inline-code-fg-preview: #e8b692; - --color-editor-inline-code-bg: rgba(20, 68, 102, 0.3); - --color-editor-inline-code-bg-preview: #464b50; - --color-editor-selected: #264f78; - --color-editor-link: var(--color-link); - --color-editor-url: var(--color-editor-string); - --color-editor-hr: var(--color-editor-tag); - --color-editor-hr-preview: #a0a0a0; - - // Ads - --color-ads-background: #475057; - --color-ads-text: #111; - --color-ads-link: var(--color-primary-alt); - - // Scrollbar - --color-scrollbar-thumb-bg: rgba(255, 255, 255, 0.2); - --color-scrollbar-track-bg: transparent; -} diff --git a/web/scss/themes/odysee/init/_base-theme.scss b/web/scss/themes/odysee/init/_base-theme.scss deleted file mode 100644 index f03b4a055..000000000 --- a/web/scss/themes/odysee/init/_base-theme.scss +++ /dev/null @@ -1,200 +0,0 @@ -// -// Colors are taken from this color palette -// https://tailwindcss.com/docs/customizing-colors -// New colors should be also taken from the same color palette (if possible) -// -:root { - // Generic colors - --color-primary: #047857; - --color-primary-alt: #e4f4ef; - --color-primary-alt-2: #065f46; - --color-primary-alt-3: #10b981; - --color-secondary: #1e3a8a; - --color-secondary-alt: #dbeafe; - --color-secondary-alt-2: #bfdbfe; - --color-secondary-alt-3: #1e40af; - --color-tertiary: #5b21b6; - --color-tertiary-alt: #f5f3ff; - --color-danger: #991b1b; - --color-danger-alt: #fecaca; - --color-warning: #fff58c; - --color-black: #111; - --color-white: #fdfdfd; - --color-white-alt: #fafafa; - --color-gray-1: #f3f4f6; - --color-gray-2: #e5e7eb; - --color-gray-3: #d1d5db; - --color-gray-4: #9ca3af; - --color-gray-5: #71717a; - --color-gray-6: #52525b; - --color-gray-7: #3f3f46; - --color-gray-8: #27272a; - --color-gray-9: #1f1f22; - --color-gray-10: #18181b; - --color-amber: #f26522; - --color-orange: #fb923c; - - // Structure - --color-text: var(--color-black); - --color-text-inverse: #fdfdfd; - --color-background: #fafafa; - --color-background--splash: #212529; - --color-border: #ededed; - --color-background-overlay: #21252980; - --color-card-background: #ffffff; - --color-card-background-highlighted: #f1f7fe; - - // Text - --color-text-selection-bg: var(--color-secondary-alt); - --color-text-selection: var(--color-secondary); - --color-text-empty: #999999; - --color-text-help: #999999; - --color-text-subtitle: #767676; - --color-text-warning: #212529; - --color-help-warning-bg: #fef3c7; - --color-help-warning-text: #555555; - --color-text-warning--background: var(--lbry-yellow-1); - --color-blockquote: var(--color-gray-3); - --color-text-error: var(--color-danger); - --color-error: var(--color-danger-alt); - --color-tooltip-bg: #222; - --color-tooltip-text: #fafafa; - - // Header - --color-header-background: #ffffff; - --color-header-button: var(--color-button-alt-bg); - --color-header-button-active: var(--color-primary-alt); - --color-header-button-hover: var(--color-primary-alt); - - // Button - --color-button-primary-bg: var(--color-primary); - --color-button-primary-text: var(--color-primary-alt); - --color-button-primary-bg-hover: var(--color-primary-alt-2); - --color-button-primary-hover-text: var(--color-primary-alt); - --color-button-secondary-bg: var(--color-secondary-alt); - --color-button-secondary-border: var(--color-secondary-alt); - --color-button-secondary-text: var(--color-secondary); - --color-button-secondary-bg-hover: var(--color-secondary-alt-2); - --color-button-alt-bg: var(--color-gray-1); - --color-button-alt-text: var(--color-text); - --color-button-alt-bg-hover: var(--color-gray-2); - --color-button-toggle-text: var(--color-primary); - --color-button-toggle-bg: var(--color-primary-alt); - --color-button-border: var(--color-gray-3); - --color-link: var(--color-primary); - --color-link-hover: var(--color-black); - --color-link-focus-bg: var(--color-gray-1); - - // Input - --color-input-color: var(--color-black); - --color-input-label: var(--color-gray-5); - --color-input-placeholder: var(--color-gray-8); - --color-input-bg: var(--color-gray-1); - --color-input-border: var(--color-border); - --color-input-border-active: var(--color-secondary); - --color-input-toggle: var(--color-secondary); - --color-input-toggle-bg: var(--color-gray-1); - --color-input-toggle-bg-hover: var(--color-secondary-alt); - --color-input-prefix-bg: var(--color-gray-2); - --color-input-prefix-border: var(--color-gray-5); - --color-input-bg-selected: var(--color-primary-alt); - --select-toggle-background: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg' fill='%23212529'%3E%3Cpath d='M17.172, 31.172c1.562, -1.562 4.095, -1.562 5.656, 0l25.172, 25.171l25.172, -25.171c1.562, -1.562 4.095, -1.562 5.656, 0c1.562, 1.562 1.562, 4.095 0, 5.656l-28, 28c-1.562, 1.562 -4.095, 1.562 -5.656, 0l-28, -28c-0.781, -0.781 -1.172, -1.805 -1.172, -2.828c0, -1.023 0.391, -2.047 1.172, -2.828Z'/%3E%3C/svg%3E%0A"); - - // Navigation - --color-navigation-icon: var(--color-gray-5); - --color-navigation-link: var(--color-gray-5); - --color-navigation-active: var(--color-primary-alt); - --color-navigation-active-text: var(--color-primary); - --color-navigation-hover: var(--color-gray-1); - --color-navigation-hover-text: var(--color-primary); - - // Tags - --color-tag: var(--color-gray-5); - --color-tag-bg: var(--color-button-alt-bg); - --color-tag-hover: var(--color-primary-alt); - --color-tag-bg-hover: var(--color-button-primary-bg); - - // Tags (words) - --color-tag-words: var(--color-primary); - --color-tag-words-bg: var(--color-primary-alt); - --color-tag-words-hover: var(--color-primary); - --color-tag-words-bg-hover: var(--color-primary-alt-3); - - // Menu - --color-menu-background: var(--color-header-background); - --color-menu-background--active: var(--color-card-background-highlighted); - --color-menu-icon: var(--color-navigation-link); - --color-menu-icon-active: var(--color-navigation-link); - - // Comments - --color-comment-menu: var(--color-gray-3); - --color-comment-menu-hovering: var(--color-gray-6); - --color-comment-highlighted: #fff2d9; - --color-comment-threadline: var(--color-gray-1); - --color-comment-threadline-hover: var(--color-gray-4); - - // Icons - --color-follow-bg: #ffd4da; - --color-follow-icon: #e2495e; - --color-view-bg: var(--color-secondary-alt); - --color-view-icon: var(--color-secondary); - - // Snack - --color-snack-bg: var(--color-primary); - --color-snack: var(--color-white); - --color-snack-bg-error: var(--color-danger); - --color-snack-upgrade: var(--color-tertiary); - - // Superchat - --color-superchat-text: var(--color-black); - --color-superchat: var(--color-cost); - --color-superchat__light: #fcd34d50; - --color-superchat-2: #fde68a; - --color-superchat-3: #fef3c7; - --color-superchat-3__light: #fef3c750; - --color-superchat-4: #fffbeb; - - // Editor - --color-editor-cursor: var(--color-text); - --color-editor-quote: #707070; - --color-editor-tag: #ea9400; - --color-editor-attr: #04b0f4; - --color-editor-string: #ff7451; - --color-editor-inline-code-fg: var(--color-text); - --color-editor-inline-code-fg-preview: #2e3439; - --color-editor-inline-code-bg: rgba(157, 161, 165, 0.3); - --color-editor-inline-code-bg-preview: #d0e8ff; - --color-editor-selected: #add6ff; - --color-editor-link: var(--color-link); - --color-editor-url: var(--color-editor-string); - --color-editor-hr: var(--color-editor-tag); - --color-editor-hr-preview: #cccccc; - - // Other - --color-focus: #bfdbfe; - --color-notification: #cc190f; - --color-live: #cc190f; - --color-nag: var(--color-orange); - --color-cost: #fcd34d; - --color-notice: #fef3ca; - --color-purchased: var(--color-cost); - --color-purchased-alt: #ffebc2; - --color-purchased-text: var(--color-gray-5); - --color-thumbnail-background: var(--color-gray-1); - --color-spinner-light: var(--color-white); - --color-spinner-dark: var(--color-black); - --color-placeholder-background: var(--color-gray-1); - --color-file-viewer-background: var(--color-card-background); - --color-tabs-background: var(--color-card-background); - --color-tab-divider: var(--color-primary); - --color-modal-background: var(--color-card-background); - --color-login-graphic-background: var(--color-primary-alt); - - // Ads - --color-ads-background: #fae5ff; - --color-ads-link: var(--color-link); - - // Scrollbar - --color-scrollbar-thumb-bg: rgba(0, 0, 0, 0.2); - --color-scrollbar-track-bg: transparent; -} diff --git a/web/scss/themes/odysee/init/_color.scss b/web/scss/themes/odysee/init/_color.scss deleted file mode 100644 index 70573ea47..000000000 --- a/web/scss/themes/odysee/init/_color.scss +++ /dev/null @@ -1,57 +0,0 @@ -:root { - // Generic colors - --color-primary: #257761; - --color-primary-alt: #e4f4ef; - --color-primary-alt-2: #4b8576; - --color-secondary: #295284; - --color-secondary-alt: #d9eaff; - --color-tertiary: #552470; - --color-tertiary-alt: #f7e8ff; - --color-danger: #9b2023; - --color-danger-alt: #fccdce; - --color-warning: #fff58c; - --color-cost: #ffd580; - --color-focus: #93cff2; - --color-notification: #f02849; - --color-live: #cc190f; - - --color-black: #111; - --color-white: #fdfdfd; - --color-white-alt: #fafafa; - --color-gray-1: #eff1f4; - --color-gray-2: #d8dde1; - --color-gray-3: #ced4da; - --color-gray-4: #abb1b7; - --color-gray-5: #666a6d; - - // Text - --color-text: var(--color-black); - --color-text-subtitle: var(--color-gray-5); - --color-text-inverse: #fdfdfd; - - // Components - - // Button - --color-button-primary-bg: var(--color-primary); - --color-button-primary-text: var(--color-primary-alt); - --color-button-primary-bg-hover: var(--color-primary-alt-2); - --color-button-primary-hover-text: var(--color-primary-alt); - --color-button-secondary-bg: var(--color-secondary-alt); - --color-button-secondary-border: var(--color-secondary-alt); - --color-button-secondary-text: var(--color-secondary); - --color-button-secondary-bg-hover: #b9d0e9; - --color-button-alt-bg: var(--color-gray-1); - --color-button-alt-text: var(--color-text); - --color-button-alt-bg-hover: var(--color-gray-2); - --color-link: var(--color-primary); - --color-link-hover: var(--color-black); - - // Table - --color-table-highlight: var(--color-white-alt); - - // Tag - --color-tag: var(--color-gray-5); - --color-tag-bg: var(--color-button-alt-bg); - --color-tag-hover: var(--color-button-alt-text); - --color-tag-bg-hover: var(--color-button-alt-bg-hover); -} diff --git a/web/scss/themes/odysee/init/_gui.scss b/web/scss/themes/odysee/init/_gui.scss deleted file mode 100644 index 3b55c9ee0..000000000 --- a/web/scss/themes/odysee/init/_gui.scss +++ /dev/null @@ -1,521 +0,0 @@ -// Generic html styles used across the App -// component specific styling should go in the component scss file - -*::selection { - background-color: var(--color-text-selection-bg); - color: var(--color-text-selection); -} - -*:focus { - outline: none; -} - -html { - @include font-sans; - height: 100%; - min-height: 100%; - overflow-x: hidden; - - color: var(--color-text); - background-color: var(--color-background); - font-size: 16px; -} - -body { - font-size: 1em; - cursor: default; - line-height: 1.5; - font-weight: 400; - font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, - 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; -} - -hr { - height: 1px; - background-color: var(--color-gray-2); -} - -h1, -h2, -h3, -h4, -h5, -h6 { - font-size: 1rem; -} - -p, -ol, -ul { - & + p, - & + ul, - & + ol { - margin-top: var(--spacing-s); - } -} - -ul, -ol { - li { - position: relative; - list-style-position: outside; - margin: var(--spacing-xs) 0; - margin-left: var(--spacing-s); - margin-bottom: 0; - - @media (min-width: $breakpoint-small) { - margin-left: var(--spacing-xl); - } - } -} - -.ul--no-style { - list-style: none; - margin-bottom: 0; - - li { - margin: 0; - } -} - -dl { - display: flex; - flex-direction: row; - flex-wrap: wrap; - overflow-x: visible; - margin-top: var(--spacing-m); -} - -dt { - flex-basis: 50%; - text-align: left; - font-weight: bold; -} - -.dt__text { - margin-right: var(--spacing-s); -} - -dd { - display: flex; - align-items: center; - justify-content: flex-end; - flex-basis: 45%; - flex-grow: 1; - margin: 0; - text-align: right; - - .help--warning { - margin-bottom: 0; - margin-top: var(--spacing-s); - text-align: left; - } -} - -.dd__text { - display: flex; - justify-content: flex-end; -} - -.dd__button { - margin-right: var(--spacing-s); -} - -dt, -dd { - padding: var(--spacing-m) var(--spacing-s); - border-top: 1px solid var(--color-border); - - &:last-of-type { - border-bottom: 1px solid var(--color-border); - } -} - -blockquote { - padding: 0 0.8rem; - margin-top: var(--spacing-xxs); - margin-bottom: var(--spacing-xxs); - opacity: 0.9; - border-left: 0.2rem solid var(--color-blockquote); - color: var(--color-text-subtitle); -} - -code { - @include font-mono; - font-size: 1.5rem; -} - -hr { - width: 100%; - height: 1px; - background-color: var(--color-border); -} - -img, -a { - -webkit-user-drag: none; -} - -img { - // Hide alt text when an image fails to load - text-indent: -9999px; -} - -textarea { - min-height: calc(var(--height-input) * 2); -} - -.columns { - display: flex; - justify-content: space-between; - align-items: flex-start; - - > * { - flex-grow: 1; - flex-basis: 0; - min-width: 15rem; - margin-bottom: var(--spacing-l); - - &:first-child { - flex-basis: 1px; - margin-right: 1.5rem; - } - } - - @media (max-width: $breakpoint-small) { - flex-direction: column; - - & > * { - margin: 0; - margin-bottom: var(--spacing-m); - width: 100%; - flex-basis: auto; - - &:first-child { - margin-right: 0; - } - } - } -} - -.hidden { - display: none; -} - -.disabled { - opacity: 0.3; - pointer-events: none; -} - -.column { - display: flex; - - .column__item:not(:first-child) { - padding-left: $spacing-width * 2/3; - flex: 1; - } - - .column__item--between { - justify-content: space-between; - } - - @media (max-width: $breakpoint-small) { - flex-direction: column; - .column__item:not(:first-child) { - padding-left: 0; - flex: 1; - } - & > * { - margin: 0; - margin-bottom: var(--spacing-m); - width: 100%; - flex-basis: auto; - - &:first-child { - margin-right: 0; - } - } - } -} - -.truncated-text { - display: -webkit-box; - overflow: hidden; - -webkit-box-orient: vertical; - word-break: break-word; -} - -.busy-indicator__loader { - min-width: 16px; - min-height: 8px; - margin: -1rem 0; - padding: 0 30px; - - background: url('../../static/img/busy.gif') no-repeat center center; - display: inline-block; - vertical-align: middle; - - &:first-child { - padding-left: 2px; - } - - &:last-child { - padding-right: 2px; - } -} - -.help { - display: block; - font-size: var(--font-xsmall); - color: var(--color-text-help); - margin-top: var(--spacing-s); - - &:not(:last-child) { - margin-bottom: var(--spacing-m); - } - - .button--link + .button--link { - margin-left: var(--spacing-s); - } - - @media (min-width: $breakpoint-small) { - font-size: var(--font-small); - } -} - -.help--warning { - @extend .help; - padding: var(--spacing-s); - border-radius: var(--border-radius); - background-color: var(--color-help-warning-bg); - color: var(--color-help-warning-text); - margin-bottom: var(--spacing-s); - border: 1px solid var(--color-border); -} - -.help--notice { - @extend .help--warning; - background-color: var(--color-card-background-highlighted); -} - -.help--inline { - @extend .help; - margin-top: 0; - margin-bottom: 0; - - &:not(:last-child) { - margin-bottom: 0; - } - - .icon--help { - top: 3px; - margin-left: 2px; - } -} - -.help--card-actions { - @extend .help; - margin-top: var(--spacing-m); -} - -.help--dt { - @extend .help; - display: inline-block; - margin-top: 0; -} - -.help--spendable { - margin-left: var(--spacing-xxs); -} - -.empty { - color: var(--color-text-empty); - font-style: italic; -} - -.empty--centered { - text-align: center; - padding: calc(var(--spacing-l) * 3) 0; -} - -.qr-code { - width: 134px; - height: 134px; - border: 3px solid white; - - &.qr-code--right-padding { - margin-right: $spacing-vertical * 2/3; - } - - &.qr-code--top-padding { - margin-top: $spacing-vertical * 2/3; - } -} - -.error__wrapper { - background-color: var(--color-error); - padding: var(--spacing-s); - border-radius: var(--border-radius); -} - -.error__wrapper--no-overflow { - @extend .error__wrapper; - max-height: 10rem; - overflow: hidden; -} - -.error__text { - color: var(--color-text-error); -} - -.help--error { - @extend .help; - color: var(--color-text-error); -} - -.thumbnail-preview { - width: var(--thumbnail-preview-width); - height: var(--thumbnail-preview-height); - background-color: var(--color-thumbnail-background); - padding: var(--spacing-s); - font-size: var(--font-small); - border-radius: var(--border-radius); - background-position: 50% 50%; - background-repeat: no-repeat; - background-size: cover; -} - -.thumbnail-picker__preview { - width: calc(var(--thumbnail-preview-width) * 1.5); - height: calc(var(--thumbnail-preview-height) * 1.5); - background-color: var(--color-thumbnail-background); - padding: var(--spacing-s); - font-size: var(--font-small); - border-radius: var(--border-radius); - background-position: 50% 50%; - background-repeat: no-repeat; - background-size: cover; -} - -.emoji { - font-size: 1.3em; -} - -.download-text { - font-size: var(--font-xsmall); -} - -.notice-message { - position: relative; - border-radius: var(--border-radius); - padding: var(--spacing-l); - background-color: var(--color-primary-alt); - - ~ .card { - margin-top: var(--spacing-m); - } -} - -.notice-message--loud { - @extend .notice-message; - background-color: #fef1f6; - color: var(--color-black); - font-weight: bold; - - .button { - color: #fa6165; - } -} - -.privacy-img { - height: 10rem; -} - -.confirm__label { - @extend label; -} - -.confirm__value { - display: flex; - align-items: center; - margin-bottom: var(--spacing-m); - font-size: var(--font-large); - - &:last-child { - margin-bottom: 0; - } -} - -.confirm__value--no-gap { - margin-bottom: 0; -} - -.confirm__value--subitem { - font-size: var(--font-xsmall); -} - -.mobile-only { - display: none; - - @media (max-width: $breakpoint-small) { - display: block; - } -} - -.mobile-hidden { - @media (max-width: $breakpoint-small) { - display: none !important; - } -} - -.ads-test { - height: 50vh; - position: relative; - - .video-js { - height: 50vh; - } - - .video-js .vjs-tech { - height: 50vh; - } -} - -.adspruce-bannerspot { - height: 5rem; - width: 100%; -} - -.release__notes { - max-height: 50vh; - overflow: auto; -} - -.signup__odysee-logo { - display: flex; - width: 100%; - align-items: center; - justify-content: center; - - img { - margin-top: var(--spacing-xl); - height: 4rem; - } -} - -.home__meme { - text-align: center; - font-weight: bold; - line-height: 1; - font-size: 1rem; - margin-bottom: var(--spacing-m); - - @media (min-width: $breakpoint-small) { - font-size: 1.2rem; - margin-bottom: var(--spacing-l); - } - - > .button { - white-space: initial; - } -} diff --git a/web/scss/themes/odysee/init/_mixins.scss b/web/scss/themes/odysee/init/_mixins.scss deleted file mode 100644 index 3d626e238..000000000 --- a/web/scss/themes/odysee/init/_mixins.scss +++ /dev/null @@ -1,237 +0,0 @@ -@mixin between { - display: flex; - justify-content: space-between; -} - -@mixin breakpoint-max($breakpoint) { - @media (max-width: #{$breakpoint}px) { - @content; - } -} - -@mixin breakpoint-min($breakpoint) { - @media (min-width: #{$breakpoint}px) { - @content; - } -} - -@mixin center { - align-items: center; - display: inline-flex; - justify-content: center; -} - -@mixin clearfix { - clear: both; - content: ''; - display: block; -} - -// (Smart) text truncation -// Pass in a width to customize how much text is allowed -// Omit value for basic text truncation -@mixin constrict($value: null) { - @if ($value) { - max-width: $value; - } - - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -@mixin create-grid($items-per-row: 4) { - grid-template: repeat(1, 1fr) / repeat($items-per-row, 1fr); -} - -// Smart font include -// Simply pass in the font-weight you want to use and the normal/italicized versions will be added -// No more weighing down the front-end with references to unused weights -@mixin font-face($font-weight, $relative-font-path, $font-name) { - @font-face { - font-family: $font-name; - font-style: normal; - font-weight: $font-weight; - // sass-lint:disable indentation - src: url('#{$relative-font-path}/#{$font-weight}.woff2') format('woff2'), - url('#{$relative-font-path}/#{$font-weight}.woff') format('woff'); - // sass-lint:enable indentation - } - - @font-face { - font-family: $font-name; - font-style: italic; - font-weight: $font-weight; - // sass-lint:disable indentation - src: url('#{$relative-font-path}/#{$font-weight}i.woff2') format('woff2'), - url('#{$relative-font-path}/#{$font-weight}i.woff') format('woff'); - // sass-lint:enable indentation - } -} - -@mixin font-mono { - font-family: 'Fira Code', 'Courier New', monospace; -} - -@mixin font-sans { - font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, - 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; -} - -@mixin font-serif { - font-family: Georgia, serif; -} - -@mixin hide-text { - border: none; - color: transparent; - font: 0 / 0 a; - text-shadow: none; -} - -// Cross-browser line-clamp support -@mixin line-clamp($element-height: 2rem, $row-count: 2, $fade-color: var(--lbry-white), $computed-position: relative) { - height: $element-height; - overflow: hidden; - position: $computed-position; - - &::after { - width: 50%; - height: calc(#{$element-height} / #{$row-count}); - right: 0; - bottom: 0; - - background-image: linear-gradient(to right, rgba($lbry-white, 0), #{$fade-color} 80%); - content: ''; - position: absolute; - } -} - -@mixin no-user-select { - user-select: none; - - -ms-user-select: none; - -moz-user-select: none; - -webkit-user-select: none; -} - -// Use CSS variables without upsetting Sass-Lint -// https://github.com/sasstools/sass-lint/issues/1161#issuecomment-390537190 -@mixin root-prop($prop: null, $value: null) { - @if ($prop and $value) { - #{$prop}: $value; - } -} - -@mixin selection($background-color: var(--lbry-white), $text-color: var(--lbry-black)) { - &::selection { - background-color: $background-color; - color: $text-color; - text-shadow: none; - } - - &::-moz-selection { - background-color: $background-color; - color: $text-color; - text-shadow: none; - } -} - -@mixin thumbnail { - &::before, - &::after { - content: ''; - } - - &::before { - float: left; - padding-top: var(--aspect-ratio-standard); - } - - &::after { - clear: both; - display: block; - } -} - -@mixin focus { - box-shadow: 0 0 0 3px var(--color-focus); -} - -@mixin linkFocus { - background-color: var(--color-link-focus-bg); - box-shadow: 0 0 0 5px var(--color-link-focus-bg); -} - -@mixin underline($text-color: var(--lbry-black), $whitespace-color: var(--lbry-white)) { - @include selection($text-color, $whitespace-color); - - background-image: linear-gradient($whitespace-color, $whitespace-color), - linear-gradient($whitespace-color, $whitespace-color), linear-gradient($text-color, $text-color); - background-position: 0 88%, 100% 88%, 0 88%; - background-repeat: no-repeat, no-repeat, repeat-x; - background-size: 0.05rem 1px, 0.05rem 1px, 1px 1px; - box-decoration-break: clone; - display: inline; - text-decoration: none; - text-shadow: 0.03rem 0 $whitespace-color, -0.03rem 0 $whitespace-color, 0 0.03rem $whitespace-color, - 0 -0.03rem $whitespace-color, 0.06rem 0 $whitespace-color, -0.06rem 0 $whitespace-color, 0.09rem 0 $whitespace-color, - -0.09rem 0 $whitespace-color, 0.12rem 0 $whitespace-color, -0.12rem 0 $whitespace-color, 0.15rem 0 $whitespace-color, - -0.15rem 0 $whitespace-color; - - @-moz-document url-prefix() { - // sass-lint:disable-line empty-args - background-position: 0 90%, 100% 90%, 0 90%; - } -} - -@mixin placeholder { - animation: pulse 2s infinite ease-in-out; - background-color: var(--color-placeholder-background); - border-radius: var(--card-radius); - border-width: 0; -} - -@mixin mediaThumbHoverZoom { - .media__thumb, - img { - transition: all 0.2s ease; - } - - &:hover { - .media__thumb, - img { - transform: scale(1.05); - } - } -} - -@mixin handleClaimTileGifThumbnail($width) { - .ff-canvas, - .freezeframe-img { - height: calc(#{$width} * (9 / 16)) !important; - width: $width; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - } -} - -@mixin handleClaimListGifThumbnail($width) { - .ff-canvas, - .freezeframe-img { - height: calc(#{$width} * (9 / 16)) !important; - width: $width; - } -} - -@mixin handleChannelGif($size) { - height: $size; - width: $size; - - .ff-canvas, - .freezeframe-img { - border-radius: var(--border-radius); - height: $size !important; - width: $size !important; - } -} diff --git a/web/scss/themes/odysee/init/_reset.scss b/web/scss/themes/odysee/init/_reset.scss deleted file mode 100644 index aff7dd756..000000000 --- a/web/scss/themes/odysee/init/_reset.scss +++ /dev/null @@ -1,245 +0,0 @@ -html { - box-sizing: border-box; - text-rendering: optimizeLegibility; - - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - - border: none; - box-sizing: inherit; - outline: 0; -} - -[disabled] { - pointer-events: none; - resize: none; -} - -[readonly] { - cursor: not-allowed; -} - -[for], -[role='button'], -[type='button'], -[type='checkbox'], -[type='file'], -[type='radio'], -[type='select'], -[type='submit'] { - cursor: pointer; -} - -a, -area, -button, -[role='button'], -input, -label, -select, -summary, -textarea { - // Remove touch delay on supported devices - touch-action: manipulation; -} - -button, -input, -select, -textarea { - background-color: transparent; - border-radius: 0; - font-family: inherit; - font-size: inherit; - font-weight: inherit; - - -moz-appearance: none; - -webkit-appearance: none; - - &:disabled { - cursor: default; - } -} - -h1, -h2, -h3, -h4, -h5, -h6 { - font-weight: normal; - font-size: 1em; -} - -ol, -ul { - list-style-position: inside; - - > li { - list-style-position: inside; - } -} - -table { - border-spacing: 0; -} - -dd { - width: 80%; - float: left; -} - -dl { - width: 100%; - overflow-x: scroll; - overflow-y: hidden; -} - -dt { - width: 20%; - float: left; -} - -img { - width: auto; - max-width: 100%; - height: auto; - max-height: 100%; - vertical-align: middle; -} - -a { - text-decoration: none; -} - -button { - background-color: transparent; - line-height: inherit; - - &:not(:disabled) { - cursor: pointer; - } - - &:disabled { - opacity: 0.3; - } -} - -hr { - width: 100%; - height: 1px; - background-color: var(--color-gray-1); -} - -input { - background-color: transparent; - color: inherit; - - &::placeholder { - color: inherit; - opacity: 0.2; - } - - &::-webkit-search-cancel-button { - -webkit-appearance: none; - } -} - -select { - outline: none; -} - -textarea { - width: 100%; - min-height: var(--spacing-xxl); - padding: var(--spacing-s); - // border-color should be added in apps for blur/focus - border: 1px solid; - - &:not([disabled]) { - resize: vertical; - } -} - -@media print { - // sass-lint:disable-block no-important - // Intelligent print styles - pre, - blockquote { - border: 1px solid var(--color-gray-5) !important; - page-break-inside: avoid !important; - } - - tr, - img { - page-break-inside: avoid !important; - } - - img { - max-width: 100% !important; - } - - @page { - margin: 0.5cm !important; - } - - p, - h2, - h3 { - orphans: 3 !important; - widows: 3 !important; - } - - h2, - h3 { - page-break-after: avoid !important; - } - - thead { - display: table-header-group !important; - } - - // Faster, more stable printing - * { - background-color: transparent !important; - background-image: none !important; - color: var(--lbry-black) !important; - filter: none !important; - text-shadow: none !important; - } - - p { - a { - &[href]::after { - // Show hypertext data for links and abbreviations - content: ' (' attr(href) ')' !important; - } - - &[href^='javascript:'], - &[href^='#'] { - &::after { - content: '' !important; - } - } - } - - abbr { - &[title]::after { - content: ' (' attr(title) ')' !important; - } - } - - a, - abbr { - text-decoration: underline !important; - word-wrap: break-word !important; - } - } -} diff --git a/web/scss/themes/odysee/init/_vars.scss b/web/scss/themes/odysee/init/_vars.scss deleted file mode 100644 index 381da76f0..000000000 --- a/web/scss/themes/odysee/init/_vars.scss +++ /dev/null @@ -1,108 +0,0 @@ -// Both of these should probably die and become variables as well -$spacing-vertical: 2rem; -$spacing-width: 36px; - -$breakpoint-xxsmall: 450px; -$breakpoint-xsmall: 600px; -$breakpoint-small: 900px; -$breakpoint-medium: 1150px; -$breakpoint-large: 1600px; - -:root { - --border-radius: 10px; - --height-input: 2.5rem; - --height-button: 2.5rem; - --height-checkbox: 24px; - --height-radio: 24px; - --height-badge: 24px; - - // Spacing - --spacing-xxs: calc(2rem / 5); - --spacing-xs: calc(2rem / 4); - --spacing-s: calc(2rem / 3); - --spacing-m: calc(2rem / 2); - --spacing-l: 2rem; - --spacing-xl: 3rem; - - // Aspect ratio - --aspect-ratio-bluray: 41.6666666667%; // 12:5 - --aspect-ratio-panavision: 36.3636363636%; // 11:4 - --aspect-ratio-sd: 75%; // 4:3 - --aspect-ratio-standard: 56.25%; // 16:9 - - // Type - --font-mono: 'Fira Code'; - --font-sans: Inter; - --font-serif: Georgia; - --font-weight-base: 400; - --font-weight-light: 300; - --font-weight-bold: 700; - --font-base: 14px; - --font-body: 1rem; - --font-xxsmall: 0.65rem; - --font-xsmall: 0.7344rem; - --font-small: 0.8571rem; - --font-large: 1.3rem; - --font-title: 1.71rem; - --font-heading: 2.94rem; - - // Width & spacing - --page-max-width: 1280px; - --page-max-width--filepage: 1700px; - --mac-titlebar-height: 24px; - --mobile: 600px; - --side-nav-width: 230px; - --side-nav-width--micro: 125px; - - --spacing-main-padding: var(--spacing-xl); - --floating-viewer-width: 32rem; - --floating-viewer-height: 18rem; // 32 * 9/16 - --floating-viewer-info-height: 5rem; - --floating-viewer-container-height: calc(var(--floating-viewer-height) + var(--floating-viewer-info-height)); - --option-select-width: 8rem; - - // Text - --text-max-width: 660px; - --text-link-padding: 4px; - - // Tabs - --tab-indicator-size: 0.5rem; - - // Header - // This is tied to the floating player so it knows where to attach to - // ui/component/fileRenderFloating/view.jsx - --header-height: 80px; - - // Inline Player - --inline-player-max-height: calc(100vh - var(--header-height) - var(--spacing-l) * 2); - - // Card - --card-radius: var(--border-radius); - --card-max-width: 1000px; - --card-box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); - - // Modal - --modal-width: 550px; - - // Animation :) - --animation-duration: 0.2s; - --animation-style: ease-in-out; - - // Image - --thumbnail-preview-height: 100px; - --thumbnail-preview-width: 177px; - --cover-photo-height: 210px; - --channel-thumbnail-width: 10rem; - --channel-thumbnail-width--small: 4rem; - --file-list-thumbnail-width: 10rem; - - --tag-height: 1.5rem; - - --livestream-comments-width: 30rem; -} - -@media (max-width: $breakpoint-small) { - :root { - --font-body: 0.8rem; - } -} diff --git a/web/scss/themes/odysee/light.scss b/web/scss/themes/odysee/light.scss deleted file mode 100644 index fe75e4586..000000000 --- a/web/scss/themes/odysee/light.scss +++ /dev/null @@ -1,155 +0,0 @@ -:root { - // Color overrides - --color-primary: #fa6165; - --color-primary-alt: #fef1f6; - --color-primary-alt-2: #fb7e82; - --color-primary-alt-3: #fbcbdd; - --color-secondary: #f9902a; - --color-secondary-alt: #fee8d2; - --color-secondary-alt-2: #fefcf6; - - // Structure - --color-border: #ededed; - --color-background: #fafafa; - --color-background-overlay: #21252980; - --color-card-background: #ffffff; - --color-card-background-highlighted: #fff5f5; - - // Text - --color-text-selection-bg: var(--color-primary-alt); - --color-text-selection: var(--color-primary); - --color-text-error: var(--color-danger); - --color-text-empty: #999999; - --color-text-help: #999999; - --color-text-subtitle: #767676; - --color-text-warning: #212529; - --color-help-warning-bg: #fef3c7; - --color-text-warning--background: var(--lbry-yellow-1); - --color-blockquote: var(--color-gray-3); - --color-blockquote-bg: var(--color-gray-1); - --color-tooltip-bg: #222; - --color-tooltip-text: #fafafa; - - // Header - --color-header-button: var(--color-button-alt-bg); - --color-header-background: #ffffff; - - // Button - --color-button-alt-bg: var(--color-gray-1); - --color-button-alt-bg-hover: var(--color-gray-2); - --color-button-alt-text: black; - --color-button-primary-bg: var(--color-primary); - --color-button-primary-bg-hover: var(--color-primary-alt-2); - --color-button-primary-text: var(--color-primary-alt); - --color-button-primary-hover-text: var(--color-white); - --color-button-secondary-bg: var(--color-primary-alt); - --color-button-secondary-border: var(--color-primary-alt-3); - --color-button-secondary-text: var(--color-primary); - --color-button-secondary-bg-hover: var(--color-primary-alt-3); - --color-button-toggle-text: var(--color-primary); - --color-button-toggle-bg: var(--color-primary-alt); - --color-button-toggle-bg-hover: var(--color-primary-alt); - --color-button-border: var(--color-gray-3); - --color-link-active: var(--color-primary); - --color-link-focus-bg: #f1f1f1; - --color-link: var(--color-primary); - - // Input - --color-input-bg-selected: var(--color-primary-alt); - --color-input-color: #111111; - --color-input-label: var(--color-gray-5); - --color-input-placeholder: #212529; - --color-input-bg: var(--color-gray-1); - --color-input-border: var(--color-border); - --color-input-border-active: var(--color-secondary); - --color-input-toggle: var(--color-secondary); - --color-input-toggle-bg: var(--color-gray-1); - --color-input-toggle-bg-hover: var(--color-secondary-alt); - --color-input-prefix-bg: var(--color-gray-2); - --color-input-prefix-border: var(--color-gray-5); - --select-toggle-background: url("data:image/svg+xml,%3Csvg viewBox='0 0 96 96' xmlns='http://www.w3.org/2000/svg' fill='%23212529'%3E%3Cpath d='M17.172, 31.172c1.562, -1.562 4.095, -1.562 5.656, 0l25.172, 25.171l25.172, -25.171c1.562, -1.562 4.095, -1.562 5.656, 0c1.562, 1.562 1.562, 4.095 0, 5.656l-28, 28c-1.562, 1.562 -4.095, 1.562 -5.656, 0l-28, -28c-0.781, -0.781 -1.172, -1.805 -1.172, -2.828c0, -1.023 0.391, -2.047 1.172, -2.828Z'/%3E%3C/svg%3E%0A"); - - // Navigation - --color-navigation-icon: var(--color-gray-5); - --color-navigation-link: var(--color-gray-5); - --color-navigation-active: var(--color-primary-alt); - --color-navigation-active-text: var(--color-primary); - --color-navigation-hover: var(--color-gray-1); - --color-navigation-hover-text: #3f3f3f; - - // Tags - --color-tag: var(--color-primary-alt-2); - --color-tag-bg: #f9f6f7; - --color-tag-hover: var(--color-button-alt-text); - --color-tag-bg-hover: var(--color-button-alt-bg-hover); - - // Menu - --color-menu-background: var(--color-header-background); - --color-menu-icon: var(--color-navigation-link); - --color-menu-icon-active: var(--color-navigation-link); - --color-menu-background--selected: var(--color-secondary-alt); - --color-menu-background--active: var(--color-primary-alt); - - // Comments - --color-comment-menu: #e0e0e0; - --color-comment-menu-hovering: #6a6a6a; - --color-comment-highlighted: #fff2d9; - --color-comment-threadline: var(--color-gray-1); - --color-comment-threadline-hover: var(--color-gray-4); - - // Superchat - --color-superchat-text: var(--color-black); - --color-superchat: #fcd34d; - --color-superchat__light: #fcd34d50; - --color-superchat-2: #fde68a; - --color-superchat-3: #fef3c7; - --color-superchat-3__light: #fef3c750; - --color-superchat-4: #fffbeb; - - // Color - --color-focus: #8dbff0; - --color-nag: #fa8700; - --color-error: #fcafca; - --color-notice: #fef3ca; - --color-purchased: var(--color-cost); - --color-purchased-alt: #ffebc2; - --color-purchased-text: black; - --color-thumbnail-background: var(--color-gray-1); - --color-spinner-light: #ffffff; - --color-spinner-dark: #212529; - --color-placeholder-background: #f0f0f0; - --color-file-viewer-background: var(--color-card-background); - --color-tabs-background: var(--color-card-background); - --color-tab-divider: var(--color-primary); - --color-modal-background: var(--color-card-background); - - // Icons - --color-follow-bg: #ffd4da; - --color-follow-icon: #e2495e; - --color-view-bg: var(--color-secondary-alt); - --color-view-icon: var(--color-secondary); - - // Editor - --color-editor-cursor: var(--color-text); - --color-editor-quote: #707070; - --color-editor-tag: #ea9400; - --color-editor-attr: #04b0f4; - --color-editor-string: #ff7451; - --color-editor-inline-code-fg: var(--color-text); - --color-editor-inline-code-fg-preview: #2e3439; - --color-editor-inline-code-bg: rgba(157, 161, 165, 0.3); - --color-editor-inline-code-bg-preview: #d0e8ff; - --color-editor-selected: #add6ff; - --color-editor-link: var(--color-link); - --color-editor-url: var(--color-editor-string); - --color-editor-hr: var(--color-editor-tag); - --color-editor-hr-preview: #cccccc; - - // Ads - --color-ads-background: #fae5ff; - --color-ads-link: var(--color-link); - - // Scrollbar - --color-scrollbar-thumb-bg: rgba(0, 0, 0, 0.2); - --color-scrollbar-track-bg: transparent; -} diff --git a/web/setup/publish.js b/web/setup/publish.js deleted file mode 100644 index e5f880836..000000000 --- a/web/setup/publish.js +++ /dev/null @@ -1,104 +0,0 @@ -// @flow -/* - https://api.na-backend.odysee.com/api/v1/proxy currently expects publish to consist - of a multipart/form-data POST request with: - - 'file' binary - - 'json_payload' collection of publish params to be passed to the server's sdk. - */ -import { X_LBRY_AUTH_TOKEN } from '../../ui/constants/token'; -import { doUpdateUploadProgress } from 'lbryinc'; - -// A modified version of Lbry.apiCall that allows -// to perform calling methods at arbitrary urls -// and pass form file fields -export default function apiPublishCallViaWeb( - apiCall: (any, any, any, any) => any, - connectionString: string, - token: string, - method: string, - params: { file_path: string, preview: boolean, remote_url?: string }, // new param for remoteUrl - resolve: Function, - reject: Function -) { - const { file_path: filePath, preview, remote_url: remoteUrl } = params; - - if (!filePath && !remoteUrl) { - return apiCall(method, params, resolve, reject); - } - - const counter = new Date().getTime(); - let fileField = filePath; - - if (preview) { - // Send dummy file for the preview. The tx-fee calculation does not depend on it. - const dummyContent = 'x'; - fileField = new File([dummyContent], 'dummy.md', { type: 'text/markdown' }); - } - - // Putting a dummy value here, the server is going to process the POSTed file - // and set the file_path itself - - const body = new FormData(); - if (fileField) { - body.append('file', fileField); - params.file_path = '__POST_FILE__'; - delete params['remote_url']; - } else if (remoteUrl) { - body.append('remote_url', remoteUrl); - delete params['remote_url']; - } - - const jsonPayload = JSON.stringify({ - jsonrpc: '2.0', - method, - params, - id: counter, - }); - // no fileData? do the livestream remote publish - body.append('json_payload', jsonPayload); - - function makeRequest(connectionString, method, token, body, params) { - return new Promise((resolve, reject) => { - let xhr = new XMLHttpRequest(); - xhr.open(method, connectionString); - xhr.setRequestHeader(X_LBRY_AUTH_TOKEN, token); - xhr.responseType = 'json'; - xhr.upload.onprogress = (e) => { - let percentComplete = Math.ceil((e.loaded / e.total) * 100); - window.store.dispatch(doUpdateUploadProgress(percentComplete, params, xhr)); - }; - xhr.onload = () => { - window.store.dispatch(doUpdateUploadProgress(undefined, params)); - resolve(xhr); - }; - xhr.onerror = () => { - window.store.dispatch(doUpdateUploadProgress(undefined, params)); - reject(new Error(__('There was a problem with your upload. Please try again.'))); - }; - - xhr.onabort = () => { - window.store.dispatch(doUpdateUploadProgress(undefined, params)); - }; - xhr.send(body); - }); - } - - return makeRequest(connectionString, 'POST', token, body, params) - .then((xhr) => { - let error; - if (xhr && xhr.response) { - if (xhr.status >= 200 && xhr.status < 300 && !xhr.response.error) { - return resolve(xhr.response.result); - } else if (xhr.response.error) { - error = new Error(xhr.response.error.message); - } else { - error = new Error(__('Upload likely timed out. Try a smaller file while we work on this.')); - } - } - - if (error) { - return Promise.reject(error); - } - }) - .catch(reject); -} diff --git a/web/src/category-metadata.js b/web/src/category-metadata.js deleted file mode 100644 index f71e5c796..000000000 --- a/web/src/category-metadata.js +++ /dev/null @@ -1,71 +0,0 @@ -const PAGES = require('../../ui/constants/pages'); - -// Uncomment as you add metadata - -module.exports.CATEGORY_METADATA = { - [PAGES.BIG_HITS]: { - title: 'Big Hits', - description: 'Animation, pop culture, comedy, and all the other weird on Odysee', - image: '', - }, - [PAGES.COMMUNITY]: { - title: 'The Universe', - description: 'Podcasts, life, learning, and everything else on Odysee', - image: '', - }, - // [PAGES.ENLIGHTENMENT]: { - // title: '', - // description: '', - // image: '', - // }, - [PAGES.FINANCE]: { - title: 'Finance 2.0', - description: 'Crypto, Money, Economics, Markets on Odysee ', - image: 'https://spee.ch/category-finance:c.jpg?quality=80&height=1200&width=630', - }, - [PAGES.GAMING]: { - title: 'Gaming', - description: 'Pew pew bzzz gaming on Odysee', - image: 'https://spee.ch/category-gaming:5.jpg?quality=80&height=1200&width=630', - }, - [PAGES.GENERAL]: { - title: 'Cheese', - description: 'Cheese is the answer to life, the universe, and everything. We have primo cheese on Odysee', - image: 'https://spee.ch/category-primary1:5.jpg?quality=80&height=1200&width=630', - }, - [PAGES.LAB]: { - title: 'Lab', - description: 'Science - the real kind, on Odysee', - image: '', - }, - [PAGES.NEWS]: { - title: 'News & Politics', - description: `Stay up to date with all that's happening around the world on Odysee`, - image: '', - }, - [PAGES.MOVIES]: { - title: 'Movies', - description: `Do you love B rated movies? We've got you covered on Odysee`, - image: 'https://spee.ch/category-movies:2.jpg?quality=80&height=1200&width=630', - }, - [PAGES.MUSIC]: { - title: 'Music', - description: 'All the songs, reviews, covers, and how-tos you love on Odysee', - image: 'https://spee.ch/category-music:8.jpg?quality=80&height=1200&width=630', - }, - [PAGES.TECH]: { - title: 'Tech', - description: 'Hardware, software, startups, photography on Odysee', - image: '', - }, - [PAGES.TECHNOLOGY]: { - title: 'Tech', - description: 'Hardware, software, startups, photography on Odysee', - image: '', - }, - [PAGES.WILD_WEST]: { - title: 'Wild West', - description: 'Boosted by user credits, this is what the community promotes on Odysee', - image: 'https://spee.ch/category-wildwest:1.jpg?quality=80&height=1200&width=630', - }, -}; diff --git a/web/src/chainquery.js b/web/src/chainquery.js deleted file mode 100644 index bc2fd4a87..000000000 --- a/web/src/chainquery.js +++ /dev/null @@ -1,60 +0,0 @@ -const mysql = require('mysql'); - -const pool = mysql.createPool({ - connectionLimit: 100, - host: 'chainquery.lbry.com', - user: 'lbrytv', - password: process.env.CHAINQUERY_MYSQL_PASSWORD, - database: 'chainquery', -}); - -function queryPool(sql, params) { - return new Promise((resolve) => { - pool.query(sql, params, (error, rows) => { - if (error) { - console.log('error', error); // eslint-disable-line - resolve(); - return; - } - - resolve(rows); - }); - }); -} - -module.exports.getClaim = async function getClaim(claimName, claimId, channelName, channelClaimId) { - let params = [claimName]; - - let sql = - 'SELECT channel_claim.name as channel, claim.claim_id, claim.name, claim.description, claim.language, claim.thumbnail_url, claim.title, claim.source_media_type, claim.frame_width, claim.frame_height, claim.fee, claim.release_time, claim.duration, claim.audio_duration, ' + - 'repost_channel.name as repost_channel, reposted_claim.claim_id as reposted_claim_id, reposted_claim.name as reposted_name, reposted_claim.description as reposted_description, reposted_claim.language as reposted_language, reposted_claim.thumbnail_url as reposted_thumbnail_url, reposted_claim.title as reposted_title, reposted_claim.source_media_type as reposted_source_media_type, reposted_claim.frame_width as reposted_frame_width, reposted_claim.frame_height as reposted_frame_height, reposted_claim.fee as reposted_fee ' + - 'FROM claim ' + - 'LEFT JOIN claim channel_claim on claim.publisher_id = channel_claim.claim_id ' + - 'LEFT JOIN claim as reposted_claim on reposted_claim.claim_id = claim.claim_reference ' + - 'AND (reposted_claim.bid_state in ("controlling", "active", "accepted", "spent")) ' + - 'LEFT JOIN claim as repost_channel on repost_channel.claim_id = reposted_claim.publisher_id ' + - 'WHERE claim.name = ?'; - - if (claimId) { - sql += ' AND claim.claim_id LIKE ?'; - params.push(claimId + '%'); - sql += ' AND claim.bid_state in ("controlling", "active", "accepted", "spent")'; - } else { - sql += ' AND claim.bid_state in ("controlling", "active", "accepted")'; - } - - if (claimName[0] !== '@' && channelName) { - sql += ' AND channel_claim.name = ?'; - params.push('@' + channelName); - if (channelClaimId) { - sql += ' AND channel_claim.claim_id LIKE ?'; - params.push(channelClaimId + '%'); - } else { - sql += ' AND channel_claim.bid_state in ("controlling", "active", "accepted", "spent")'; - } - } - - sql += ' ORDER BY claim.bid_state DESC LIMIT 1'; - - return queryPool(sql, params); -}; diff --git a/web/src/getHomepageJSON.js b/web/src/getHomepageJSON.js deleted file mode 100644 index 345d39711..000000000 --- a/web/src/getHomepageJSON.js +++ /dev/null @@ -1,13 +0,0 @@ -const memo = {}; -// this didn't seem to help. -if (!memo.homepageData) { - try { - memo.homepageData = require('../../custom/homepages/v2'); - } catch (err) { - console.log('homepage data failed'); - } -} -const getHomepageJSON = () => { - return memo.homepageData || {}; -}; -module.exports = { getHomepageJSON }; diff --git a/web/src/html.js b/web/src/html.js deleted file mode 100644 index 3ff8c6cd8..000000000 --- a/web/src/html.js +++ /dev/null @@ -1,370 +0,0 @@ -const { - URL, - DOMAIN, - SITE_TITLE, - SITE_CANONICAL_URL, - OG_HOMEPAGE_TITLE, - OG_TITLE_SUFFIX, - OG_IMAGE_URL, - SITE_DESCRIPTION, - SITE_NAME, - FAVICON, - LBRY_WEB_API, -} = require('../../config.js'); - -const { lbryProxy: Lbry } = require('../lbry'); -const { generateEmbedUrl, generateStreamUrl, generateDirectUrl } = require('../../ui/util/web'); -const PAGES = require('../../ui/constants/pages'); -const { CATEGORY_METADATA } = require('./category-metadata'); -const { parseURI, normalizeURI } = require('./lbryURI'); -const fs = require('fs'); -const path = require('path'); -const moment = require('moment'); -const removeMd = require('remove-markdown'); -const { getJsBundleId } = require('../bundle-id.js'); -const jsBundleId = getJsBundleId(); -const SDK_API_PATH = `${LBRY_WEB_API}/api/v1`; -const PROXY_URL = `${SDK_API_PATH}/proxy`; -Lbry.setDaemonConnectionString(PROXY_URL); - -function insertToHead(fullHtml, htmlToInsert) { - const beginStr = ''; - const finalStr = ''; - - const beginIndex = fullHtml.indexOf(beginStr); - const finalIndex = fullHtml.indexOf(finalStr); - - if (beginIndex > -1 && finalIndex > -1 && finalIndex > beginIndex) { - return `${fullHtml.slice(0, beginIndex)}${ - htmlToInsert || buildOgMetadata() - }${fullHtml.slice(finalIndex + finalStr.length)}`; - } -} - -function truncateDescription(description, maxChars = 200) { - // Get list of single-codepoint strings - const chars = [...description]; - // Use slice array instead of substring to prevent breaking emojis - let truncated = chars.slice(0, maxChars).join(''); - // Format truncated string - return chars.length > maxChars ? truncated + '...' : truncated; -} - -function normalizeClaimUrl(url) { - return normalizeURI(url.replace(/:/g, '#')); -} - -function escapeHtmlProperty(property) { - return property - ? String(property) - .replace(/&/g, '&') - .replace(//g, '>') - .replace(/"/g, '"') - .replace(/'/g, ''') - : ''; -} - -function getCategoryMeta(path) { - const page = Object.keys(CATEGORY_METADATA).find((x) => path === `/$/${x}` || path === `/$/${x}/`); - return CATEGORY_METADATA[page]; -} - -// -// Normal metadata with option to override certain values -// -function buildOgMetadata(overrideOptions = {}) { - const { title, description, image, path } = overrideOptions; - const cleanDescription = removeMd(description || SITE_DESCRIPTION); - const head = - `${SITE_TITLE}\n` + - `\n` + - `\n` + - `\n` + - `\n` + - `\n` + - `\n` + - `\n` + - '\n' + - `\n` + - `\n` + - `\n` + - '\n' + - `` + - ``; - return head; -} - -function conditionallyAddPWA() { - let head = ''; - if (DOMAIN === 'odysee.com') { - head += ''; - head += ''; - head += ''; - } - return head; -} - -function addFavicon() { - let head = ''; - head += ``; - return head; -} - -function buildHead() { - const head = - '' + - addFavicon() + - conditionallyAddPWA() + - buildOgMetadata() + - ''; - return head; -} - -function buildBasicOgMetadata() { - const head = '' + addFavicon() + buildOgMetadata() + ''; - return head; -} - -// -// Metadata used for urls that need claim information -// Also has option to override defaults -// -function buildClaimOgMetadata(uri, claim, overrideOptions = {}) { - // Initial setup for claim based og metadata - const { claimName } = parseURI(uri); - const { meta, value, signing_channel } = claim; - const fee = value && value.fee && (Number(value.fee.amount) || 0); - const tags = value && value.tags; - const media = value && (value.video || value.audio || value.image); - const source = value && value.source; - const channel = signing_channel && signing_channel.name; - const thumbnail = value && value.thumbnail && value.thumbnail.url; - const mediaType = source && source.media_type; - const mediaDuration = media && media.duration; - const claimTitle = escapeHtmlProperty((value && value.title) || claimName); - const releaseTime = (value && value.release_time) || (meta && meta.creation_timestamp) || 0; - - const claimDescription = - value && value.description && value.description.length > 0 - ? escapeHtmlProperty(truncateDescription(value.description)) - : `View ${claimTitle} on ${SITE_NAME}`; - - const claimLanguage = - value && value.languages && value.languages.length > 0 ? escapeHtmlProperty(value.languages[0]) : 'en_US'; - - let imageThumbnail; - - if (fee <= 0 && mediaType && mediaType.startsWith('image/')) { - imageThumbnail = generateStreamUrl(claim.name, claim.claim_id); - } - - const claimThumbnail = escapeHtmlProperty(thumbnail) || imageThumbnail || OG_IMAGE_URL || `${URL}/public/v2-og.png`; - - // Allow for ovverriding default claim based og metadata - const title = overrideOptions.title || claimTitle; - const description = overrideOptions.description || claimDescription; - const cleanDescription = removeMd(description); - - let head = ''; - - head += `${addFavicon()}`; - head += ''; - head += `${title}`; - head += ``; - - if (tags && tags.length > 0) { - head += ``; - } - - head += ``; - head += ``; - head += ``; - head += ``; - head += ``; - head += ``; - head += ``; - head += ``; - // below should be canonical_url, but not provided by chainquery yet - head += ``; - head += ``; - head += ``; - head += ``; - - if (mediaType && (mediaType.startsWith('video/') || mediaType.startsWith('audio/'))) { - const videoUrl = generateEmbedUrl(claim.name, claim.claim_id); - head += ``; - head += ``; - head += ``; - if (channel) { - head += ``; - } - head += ``; - head += ``; - if (releaseTime) { - var release = new Date(releaseTime * 1000).toISOString(); - head += ``; - } - if (mediaDuration) { - head += ``; - } - if (media && media.width && media.height) { - head += ``; - head += ``; - head += ``; - head += ``; - } - } else { - head += ``; - } - - return head; -} - -function buildGoogleVideoMetadata(uri, claim) { - const { claimName } = parseURI(uri); - const { meta, value } = claim; - const media = value && value.video; - const source = value && value.source; - const thumbnail = value && value.thumbnail && value.thumbnail.url; - const mediaType = source && source.media_type; - const mediaDuration = media && media.duration; - const claimTitle = escapeHtmlProperty((value && value.title) || claimName); - const releaseTime = (value && value.release_time) || (meta && meta.creation_timestamp) || 0; - - const claimDescription = - value && value.description && value.description.length > 0 - ? escapeHtmlProperty(truncateDescription(value.description)) - : `View ${claimTitle} on ${SITE_NAME}`; - - if (!mediaType || !mediaType.startsWith('video/')) { - return ''; - } - - const claimThumbnail = escapeHtmlProperty(thumbnail) || OG_IMAGE_URL || `${URL}/public/v2-og.png`; - - // https://developers.google.com/search/docs/data-types/video - const googleVideoMetadata = { - // --- Must --- - '@context': 'https://schema.org', - '@type': 'VideoObject', - name: `${claimTitle}`, - description: `${removeMd(claimDescription)}`, - thumbnailUrl: `${claimThumbnail}`, - uploadDate: `${new Date(releaseTime * 1000).toISOString()}`, - // --- Recommended --- - duration: mediaDuration ? moment.duration(mediaDuration * 1000).toISOString() : undefined, - contentUrl: generateDirectUrl(claim.name, claim.claim_id), - embedUrl: generateEmbedUrl(claim.name, claim.claim_id), - }; - - if ( - !googleVideoMetadata.description.replace(/\s/g, '').length || - googleVideoMetadata.thumbnailUrl.startsWith('data:image') || - !googleVideoMetadata.thumbnailUrl.startsWith('http') - ) { - return ''; - } - - return ( - '\n' - ); -} - -async function resolveClaimOrRedirect(ctx, url, ignoreRedirect = false) { - let claim; - try { - const response = await Lbry.resolve({ urls: [url] }); - if (response && response[url] && !response[url].error) { - claim = response && response[url]; - const isRepost = claim.reposted_claim && claim.reposted_claim.name && claim.reposted_claim.claim_id; - if (isRepost && !ignoreRedirect) { - ctx.redirect(`/${claim.reposted_claim.name}:${claim.reposted_claim.claim_id}`); - return; - } - } - } catch {} - return claim; -} - -let html; -async function getHtml(ctx) { - if (!html) { - html = fs.readFileSync(path.join(__dirname, '/../dist/index.html'), 'utf8'); - } - - const requestPath = decodeURIComponent(ctx.path); - if (requestPath.length === 0) { - const ogMetadata = buildBasicOgMetadata(); - return insertToHead(html, ogMetadata); - } - - const invitePath = `/$/${PAGES.INVITE}/`; - const embedPath = `/$/${PAGES.EMBED}/`; - - if (requestPath.includes(invitePath)) { - try { - const inviteChannel = requestPath.slice(invitePath.length); - const inviteChannelUrl = normalizeClaimUrl(inviteChannel); - const claim = await resolveClaimOrRedirect(ctx, inviteChannelUrl); - const invitePageMetadata = buildClaimOgMetadata(inviteChannelUrl, claim, { - title: `Join ${claim.name} on ${SITE_NAME}`, - description: `Join ${claim.name} on ${SITE_NAME}, a content wonderland owned by everyone (and no one).`, - }); - - return insertToHead(html, invitePageMetadata); - } catch (e) { - // Something about the invite channel is messed up - // Enter generic invite metadata - const invitePageMetadata = buildOgMetadata({ - title: `Join a friend on ${SITE_NAME}`, - description: `Join a friend on ${SITE_NAME}, a content wonderland owned by everyone (and no one).`, - }); - return insertToHead(html, invitePageMetadata); - } - } - - if (requestPath.includes(embedPath)) { - const claimUri = normalizeClaimUrl(requestPath.replace(embedPath, '').replace('/', '#')); - const claim = await resolveClaimOrRedirect(ctx, claimUri, true); - - if (claim) { - const ogMetadata = buildClaimOgMetadata(claimUri, claim); - const googleVideoMetadata = buildGoogleVideoMetadata(claimUri, claim); - return insertToHead(html, ogMetadata.concat('\n', googleVideoMetadata)); - } - - return insertToHead(html); - } - - const categoryMeta = getCategoryMeta(requestPath); - if (categoryMeta) { - const categoryPageMetadata = buildOgMetadata({ - title: categoryMeta.title, - description: categoryMeta.description, - image: categoryMeta.image, - path: requestPath, - }); - return insertToHead(html, categoryPageMetadata); - } - - if (!requestPath.includes('$')) { - const claimUri = normalizeClaimUrl(requestPath.slice(1)); - const claim = await resolveClaimOrRedirect(ctx, claimUri); - - if (claim) { - const ogMetadata = buildClaimOgMetadata(claimUri, claim); - const googleVideoMetadata = buildGoogleVideoMetadata(claimUri, claim); - return insertToHead(html, ogMetadata.concat('\n', googleVideoMetadata)); - } - } - - const ogMetadataAndPWA = buildHead(); - return insertToHead(html, ogMetadataAndPWA); -} - -module.exports = { insertToHead, buildHead, getHtml }; diff --git a/web/src/lbryURI.js b/web/src/lbryURI.js deleted file mode 100644 index 80b26f2ce..000000000 --- a/web/src/lbryURI.js +++ /dev/null @@ -1,343 +0,0 @@ -// Disabled flow in this copy. This copy is for uncompiled web server ES5 require()s. - -const isProduction = process.env.NODE_ENV === 'production'; -const channelNameMinLength = 1; -const claimIdMaxLength = 40; - -// see https://spec.lbry.com/#urls -const regexInvalidURI = /[ =&#:$@%?;/\\"<>%{}|^~[\]`\u{0000}-\u{0008}\u{000b}-\u{000c}\u{000e}-\u{001F}\u{D800}-\u{DFFF}\u{FFFE}-\u{FFFF}]/u; -// const regexAddress = /^(b|r)(?=[^0OIl]{32,33})[0-9A-Za-z]{32,33}$/; -const regexPartProtocol = '^((?:lbry://)?)'; -const regexPartStreamOrChannelName = '([^:$#/]*)'; -const regexPartModifierSeparator = '([:$#]?)([^/]*)'; -const queryStringBreaker = '^([\\S]+)([?][\\S]*)'; -const separateQuerystring = new RegExp(queryStringBreaker); - -const MOD_SEQUENCE_SEPARATOR = '*'; -const MOD_CLAIM_ID_SEPARATOR_OLD = '#'; -const MOD_CLAIM_ID_SEPARATOR = ':'; -const MOD_BID_POSITION_SEPARATOR = '$'; - -/** - * Parses a LBRY name into its component parts. Throws errors with user-friendly - * messages for invalid names. - * - * Returns a dictionary with keys: - * - path (string) - * - isChannel (boolean) - * - streamName (string, if present) - * - streamClaimId (string, if present) - * - channelName (string, if present) - * - channelClaimId (string, if present) - * - primaryClaimSequence (int, if present) - * - secondaryClaimSequence (int, if present) - * - primaryBidPosition (int, if present) - * - secondaryBidPosition (int, if present) - */ - -function parseURI(url, requireProto = false) { - // Break into components. Empty sub-matches are converted to null - - const componentsRegex = new RegExp( - regexPartProtocol + // protocol - regexPartStreamOrChannelName + // stream or channel name (stops at the first separator or end) - regexPartModifierSeparator + // modifier separator, modifier (stops at the first path separator or end) - '(/?)' + // path separator, there should only be one (optional) slash to separate the stream and channel parts - regexPartStreamOrChannelName + - regexPartModifierSeparator - ); - // chop off the querystring first - let QSStrippedURL, qs; - const qsRegexResult = separateQuerystring.exec(url); - if (qsRegexResult) { - [QSStrippedURL, qs] = qsRegexResult.slice(1).map((match) => match || null); - } - - const cleanURL = QSStrippedURL || url; - const regexMatch = componentsRegex.exec(cleanURL) || []; - const [proto, ...rest] = regexMatch.slice(1).map((match) => match || null); - const path = rest.join(''); - const [ - streamNameOrChannelName, - primaryModSeparator, - primaryModValue, - pathSep, // eslint-disable-line no-unused-vars - possibleStreamName, - secondaryModSeparator, - secondaryModValue, - ] = rest; - const searchParams = new URLSearchParams(qs || ''); - const startTime = searchParams.get('t'); - - // Validate protocol - if (requireProto && !proto) { - throw new Error(__('LBRY URLs must include a protocol prefix (lbry://).')); - } - - // Validate and process name - if (!streamNameOrChannelName) { - throw new Error(__('URL does not include name.')); - } - - rest.forEach((urlPiece) => { - if (urlPiece && urlPiece.includes(' ')) { - throw new Error(__('URL can not include a space')); - } - }); - - const includesChannel = streamNameOrChannelName.startsWith('@'); - const isChannel = streamNameOrChannelName.startsWith('@') && !possibleStreamName; - const channelName = includesChannel && streamNameOrChannelName.slice(1); - - if (includesChannel) { - if (!channelName) { - throw new Error(__('No channel name after @.')); - } - - if (channelName.length < channelNameMinLength) { - throw new Error( - __(`Channel names must be at least %channelNameMinLength% characters.`, { - channelNameMinLength, - }) - ); - } - } - - // Validate and process modifier - const [primaryClaimId, primaryClaimSequence, primaryBidPosition] = parseURIModifier( - primaryModSeparator, - primaryModValue - ); - const [secondaryClaimId, secondaryClaimSequence, secondaryBidPosition] = parseURIModifier( - secondaryModSeparator, - secondaryModValue - ); - const streamName = includesChannel ? possibleStreamName : streamNameOrChannelName; - const streamClaimId = includesChannel ? secondaryClaimId : primaryClaimId; - const channelClaimId = includesChannel && primaryClaimId; - - return { - isChannel, - path, - ...(streamName ? { streamName } : {}), - ...(streamClaimId ? { streamClaimId } : {}), - ...(channelName ? { channelName } : {}), - ...(channelClaimId ? { channelClaimId } : {}), - ...(primaryClaimSequence ? { primaryClaimSequence: parseInt(primaryClaimSequence, 10) } : {}), - ...(secondaryClaimSequence ? { secondaryClaimSequence: parseInt(secondaryClaimSequence, 10) } : {}), - ...(primaryBidPosition ? { primaryBidPosition: parseInt(primaryBidPosition, 10) } : {}), - ...(secondaryBidPosition ? { secondaryBidPosition: parseInt(secondaryBidPosition, 10) } : {}), - ...(startTime ? { startTime: parseInt(startTime, 10) } : {}), - - // The values below should not be used for new uses of parseURI - // They will not work properly with canonical_urls - claimName: streamNameOrChannelName, - claimId: primaryClaimId, - ...(streamName ? { contentName: streamName } : {}), - ...(qs ? { queryString: qs } : {}), - }; -} - -function parseURIModifier(modSeperator, modValue) { - let claimId; - let claimSequence; - let bidPosition; - - if (modSeperator) { - if (!modValue) { - throw new Error(__(`No modifier provided after separator %modSeperator%.`, { modSeperator })); - } - - if (modSeperator === MOD_CLAIM_ID_SEPARATOR || MOD_CLAIM_ID_SEPARATOR_OLD) { - claimId = modValue; - } else if (modSeperator === MOD_SEQUENCE_SEPARATOR) { - claimSequence = modValue; - } else if (modSeperator === MOD_BID_POSITION_SEPARATOR) { - bidPosition = modValue; - } - } - - if (claimId && (claimId.length > claimIdMaxLength || !claimId.match(/^[0-9a-f]+$/))) { - throw new Error(__(`Invalid claim ID %claimId%.`, { claimId })); - } - - if (claimSequence && !claimSequence.match(/^-?[1-9][0-9]*$/)) { - throw new Error(__('Claim sequence must be a number.')); - } - - if (bidPosition && !bidPosition.match(/^-?[1-9][0-9]*$/)) { - throw new Error(__('Bid position must be a number.')); - } - - return [claimId, claimSequence, bidPosition]; -} - -/** - * Takes an object in the same format returned by parse() and builds a URI. - * - * The channelName key will accept names with or without the @ prefix. - */ -function buildURI(UrlObj, includeProto = true, protoDefault = 'lbry://') { - const { - streamName, - streamClaimId, - channelName, - channelClaimId, - primaryClaimSequence, - primaryBidPosition, - secondaryClaimSequence, - secondaryBidPosition, - startTime, - ...deprecatedParts - } = UrlObj; - const { claimId, claimName, contentName } = deprecatedParts; - - if (!isProduction) { - if (claimId) { - console.error(__("'claimId' should no longer be used. Use 'streamClaimId' or 'channelClaimId' instead")); - } - if (claimName) { - console.error(__("'claimName' should no longer be used. Use 'streamClaimName' or 'channelClaimName' instead")); - } - if (contentName) { - console.error(__("'contentName' should no longer be used. Use 'streamName' instead")); - } - } - - if (!claimName && !channelName && !streamName) { - console.error( - __("'claimName', 'channelName', and 'streamName' are all empty. One must be present to build a url.") - ); - } - - const formattedChannelName = channelName && (channelName.startsWith('@') ? channelName : `@${channelName}`); - const primaryClaimName = claimName || contentName || formattedChannelName || streamName; - const primaryClaimId = claimId || (formattedChannelName ? channelClaimId : streamClaimId); - const secondaryClaimName = (!claimName && contentName) || (formattedChannelName ? streamName : null); - const secondaryClaimId = secondaryClaimName && streamClaimId; - - return ( - (includeProto ? protoDefault : '') + - // primaryClaimName will always exist here because we throw above if there is no "name" value passed in - // $FlowFixMe - primaryClaimName + - (primaryClaimId ? `#${primaryClaimId}` : '') + - (primaryClaimSequence ? `:${primaryClaimSequence}` : '') + - (primaryBidPosition ? `${primaryBidPosition}` : '') + - (secondaryClaimName ? `/${secondaryClaimName}` : '') + - (secondaryClaimId ? `#${secondaryClaimId}` : '') + - (secondaryClaimSequence ? `:${secondaryClaimSequence}` : '') + - (secondaryBidPosition ? `${secondaryBidPosition}` : '') + - (startTime ? `?t=${startTime}` : '') - ); -} - -/* Takes a parseable LBRY URL and converts it to standard, canonical format */ -function normalizeURI(URL) { - const { - streamName, - streamClaimId, - channelName, - channelClaimId, - primaryClaimSequence, - primaryBidPosition, - secondaryClaimSequence, - secondaryBidPosition, - startTime, - } = parseURI(URL); - - return buildURI({ - streamName, - streamClaimId, - channelName, - channelClaimId, - primaryClaimSequence, - primaryBidPosition, - secondaryClaimSequence, - secondaryBidPosition, - startTime, - }); -} - -function isURIValid(URL) { - try { - parseURI(normalizeURI(URL)); - } catch (error) { - return false; - } - - return true; -} - -function isNameValid(claimName) { - return !regexInvalidURI.test(claimName); -} - -function isURIClaimable(URL) { - let parts; - try { - parts = parseURI(normalizeURI(URL)); - } catch (error) { - return false; - } - - return parts && parts.streamName && !parts.streamClaimId && !parts.isChannel; -} - -function convertToShareLink(URL) { - const { - streamName, - streamClaimId, - channelName, - channelClaimId, - primaryBidPosition, - primaryClaimSequence, - secondaryBidPosition, - secondaryClaimSequence, - } = parseURI(URL); - return buildURI( - { - streamName, - streamClaimId, - channelName, - channelClaimId, - primaryBidPosition, - primaryClaimSequence, - secondaryBidPosition, - secondaryClaimSequence, - }, - true, - 'https://open.lbry.com/' - ); -} - -function splitBySeparator(uri) { - const protocolLength = 7; - return uri.startsWith('lbry://') ? uri.slice(protocolLength).split(/[#:*]/) : uri.split(/#:\*\$/); -} - -function isURIEqual(uriA, uriB) { - const parseA = parseURI(normalizeURI(uriA)); - const parseB = parseURI(normalizeURI(uriB)); - if (parseA.isChannel) { - if (parseB.isChannel && parseA.channelClaimId === parseB.channelClaimId) { - return true; - } - } else if (parseA.streamClaimId === parseB.streamClaimId) { - return true; - } else { - return false; - } -} - -module.exports = { - parseURI, - buildURI, - normalizeURI, - isURIValid, - isURIEqual, - isNameValid, - isURIClaimable, - splitBySeparator, - convertToShareLink, -}; diff --git a/web/src/robots.js b/web/src/robots.js deleted file mode 100644 index c76140386..000000000 --- a/web/src/robots.js +++ /dev/null @@ -1,12 +0,0 @@ -const fs = require('fs'); -const path = require('path'); - -let robots; -async function getRobots(ctx) { - if (!robots) { - robots = fs.readFileSync(path.join(__dirname, '/../dist/public/robots.txt'), 'utf8'); - } - return robots; -} - -module.exports = { getRobots }; diff --git a/web/src/routes.js b/web/src/routes.js deleted file mode 100644 index 38f1ceb38..000000000 --- a/web/src/routes.js +++ /dev/null @@ -1,76 +0,0 @@ -const { getHtml } = require('./html'); -const { getRss } = require('./rss'); -const { getHomepageJSON } = require('./getHomepageJSON'); -const { generateStreamUrl } = require('../../ui/util/web'); -const fetch = require('node-fetch'); -const Router = require('@koa/router'); -const { CUSTOM_HOMEPAGE } = require('../../config.js'); - -// So any code from 'lbry-redux'/'lbryinc' that uses `fetch` can be run on the server -global.fetch = fetch; - -const router = new Router(); - -function getStreamUrl(ctx) { - const { claimName, claimId } = ctx.params; - - const streamUrl = generateStreamUrl(claimName, claimId); - return streamUrl; -} - -const rssMiddleware = async (ctx) => { - const rss = await getRss(ctx); - if (rss.startsWith(' { - if (!CUSTOM_HOMEPAGE) { - ctx.status = 404; - ctx.body = { - message: 'Not Found', - }; - } else { - let content; - try { - content = getHomepageJSON(); - ctx.set('Content-Type', 'application/json'); - ctx.body = { - status: 'success', - data: content, - }; - } catch (err) { - ctx.status = err.statusCode || err.status || 500; - ctx.body = { - message: err.message, - }; - } - } -}); - -router.get(`/$/download/:claimName/:claimId`, async (ctx) => { - const streamUrl = getStreamUrl(ctx); - const downloadUrl = `${streamUrl}?download=1`; - ctx.redirect(downloadUrl); -}); - -router.get(`/$/stream/:claimName/:claimId`, async (ctx) => { - const streamUrl = getStreamUrl(ctx); - ctx.redirect(streamUrl); -}); - -router.get(`/$/activate`, async (ctx) => { - ctx.redirect(`https://sso.odysee.com/auth/realms/Users/device`); -}); - -router.get(`/$/rss/:claimName/:claimId`, rssMiddleware); -router.get(`/$/rss/:claimName::claimId`, rssMiddleware); - -router.get('*', async (ctx) => { - const html = await getHtml(ctx); - ctx.body = html; -}); - -module.exports = router; diff --git a/web/src/rss.js b/web/src/rss.js deleted file mode 100644 index 0974000e3..000000000 --- a/web/src/rss.js +++ /dev/null @@ -1,298 +0,0 @@ -const { generateStreamUrl } = require('../../ui/util/web'); -const { URL, SITE_NAME, LBRY_WEB_API } = require('../../config.js'); -const { lbryProxy: Lbry } = require('../lbry'); -const Rss = require('rss'); -const Mime = require('mime-types'); - -const SDK_API_PATH = `${LBRY_WEB_API}/api/v1`; -const proxyURL = `${SDK_API_PATH}/proxy`; -Lbry.setDaemonConnectionString(proxyURL); - -const NUM_ENTRIES = 500; - -// **************************************************************************** -// Fetch claim info -// **************************************************************************** - -async function doClaimSearch(options) { - let results; - try { - results = await Lbry.claim_search(options); - } catch {} - return results ? results.items : undefined; -} - -async function getChannelClaim(name, claimId) { - let claim; - let error; - - try { - const url = `lbry://${name}#${claimId}`; - const response = await Lbry.resolve({ urls: [url] }); - if (response && response[url] && !response[url].error) { - claim = response && response[url]; - } - } catch {} - - if (!claim) { - error = 'The RSS URL is invalid or is not associated with any channel.'; - } - - return { claim, error }; -} - -async function getClaimsFromChannel(claimId, count) { - const options = { - channel_ids: [claimId], - page_size: count, - has_source: true, - claim_type: 'stream', - order_by: ['release_time'], - no_totals: true, - }; - - return await doClaimSearch(options); -} - -// **************************************************************************** -// Helpers -// **************************************************************************** - -function encodeWithSpecialCharEncode(string) { - // encodeURIComponent doesn't encode `'` and others - // which other services may not like - return encodeURIComponent(string).replace(/'/g, '%27').replace(/\(/g, '%28').replace(/\)/g, '%29'); -} - -const generateEnclosureForClaimContent = (claim) => { - const value = claim.value; - if (!value || !value.stream_type) { - return undefined; - } - const fileExt = value.source && value.source.media_type && '.' + Mime.extension(value.source.media_type); - - switch (value.stream_type) { - case 'video': - return { - url: generateStreamUrl(claim.name, claim.claim_id) + (fileExt || '.mp4'), - type: (value.source && value.source.media_type) || 'video/mp4', - size: (value.source && value.source.size) || 0, // Per spec, 0 is a valid fallback. - }; - - case 'audio': - return { - url: generateStreamUrl(claim.name, claim.claim_id) + ((fileExt === '.mpga' ? '.mp3' : fileExt) || '.mp3'), - type: (value.source && value.source.media_type) || 'audio/mpeg', - size: (value.source && value.source.size) || 0, // Per spec, 0 is a valid fallback. - }; - case 'image': - return { - url: generateStreamUrl(claim.name, claim.claim_id) + (fileExt || '.jpeg'), - type: (value.source && value.source.media_type) || 'image/jpeg', - size: (value.source && value.source.size) || 0, // Per spec, 0 is a valid fallback. - }; - case 'document': - case 'software': - return { - url: generateStreamUrl(claim.name, claim.claim_id), - type: (value.source && value.source.media_type) || undefined, - size: (value.source && value.source.size) || 0, // Per spec, 0 is a valid fallback. - }; - - default: - return undefined; - } -}; - -const getLanguageValue = (claim) => { - if (claim && claim.value && claim.value.languages && claim.value.languages.length > 0) { - return claim.value.languages[0]; - } - return 'en'; -}; - -const replaceLineFeeds = (str) => str.replace(/(?:\r\n|\r|\n)/g, '
'); - -const isEmailRoughlyValid = (email) => /^\S+@\S+$/.test(email); - -/** - * 'itunes:owner' is required by castfeedvalidator (w3c allows omission), and - * both name and email must be defined. The email must also be a "valid" one. - * - * Use a fallback email when the creator did not specify one. The email will not - * be shown to the user; it is just used for administrative purposes. - * - * @param claim - * @returns any - */ -const generateItunesOwnerElement = (claim) => { - let email = 'no-reply@odysee.com'; - let name = claim && (claim.value && claim.value.title ? claim.value.title : claim.name); - - if (claim && claim.value) { - if (isEmailRoughlyValid(claim.value.email)) { - email = claim.value.email; - } - } - - return { - 'itunes:owner': [{ 'itunes:name': name }, { 'itunes:email': email }], - }; -}; - -const generateItunesExplicitElement = (claim) => { - const tags = (claim && claim.value && claim.value.tags) || []; - return { 'itunes:explicit': tags.includes('mature') ? 'yes' : 'no' }; -}; - -const getItunesCategory = (claim) => { - const itunesCategories = [ - 'Arts', - 'Business', - 'Comedy', - 'Education', - 'Fiction', - 'Government', - 'History', - 'Health & Fitness', - 'Kids & Family', - 'Leisure', - 'Music', - 'News', - 'Religion & Spirituality', - 'Science', - 'Society & Culture', - 'Sports', - 'Technology', - 'True Crime', - 'TV & Film', - ]; - - const tags = (claim && claim.value && claim.value.tags) || []; - - for (let i = 0; i < itunesCategories.length; ++i) { - const itunesCategory = itunesCategories[i]; - if (tags.includes(itunesCategory.toLowerCase())) { - // "Note: Although you can specify more than one category and subcategory - // in your RSS feed, Apple Podcasts only recognizes the first category and - // subcategory." - // --> The only parse the first found tag. - return itunesCategory.replace('&', '&'); - } - } - - // itunes will not accept any other categories, and the element is required - // to pass castfeedvalidator. So, fallback to 'Leisure' (closes to "General") - // if the creator did not specify a tag. - return 'Leisure'; -}; - -const generateItunesDurationElement = (claim) => { - let duration; - if (claim && claim.value) { - if (claim.value.video) { - duration = claim.value.video.duration; - } else if (claim.value.audio) { - duration = claim.value.audio.duration; - } - } - - if (duration) { - return { 'itunes:duration': `${duration}` }; - } -}; - -const generateItunesImageElement = (claim) => { - const thumbnailUrl = (claim && claim.value && claim.value.thumbnail && claim.value.thumbnail.url) || ''; - if (thumbnailUrl) { - return { - 'itunes:image': { _attr: { href: thumbnailUrl } }, - }; - } -}; - -const getFormattedDescription = (claim) => { - return replaceLineFeeds((claim && claim.value && claim.value.description) || ''); -}; - -// **************************************************************************** -// Generate -// **************************************************************************** - -function generateFeed(feedLink, channelClaim, claimsInChannel) { - // --- Channel --- - let channelTitle = (channelClaim.value && channelClaim.value.title) || channelClaim.name; - const feed = new Rss({ - title: channelTitle + ' on ' + SITE_NAME, - description: getFormattedDescription(channelClaim), - feed_url: feedLink, - site_url: (channelClaim.value && channelClaim.value.website_url) || URL, - image_url: (channelClaim.value && channelClaim.value.thumbnail && channelClaim.value.thumbnail.url) || undefined, - language: getLanguageValue(channelClaim), - custom_namespaces: { itunes: 'http://www.itunes.com/dtds/podcast-1.0.dtd' }, - custom_elements: [ - { 'itunes:author': channelTitle }, - { - 'itunes:category': [ - { - _attr: { - text: getItunesCategory(channelClaim), - }, - }, - ], - }, - generateItunesImageElement(channelClaim), - generateItunesOwnerElement(channelClaim), - generateItunesExplicitElement(channelClaim), - ], - }); - - // --- Content --- - claimsInChannel.forEach((c) => { - const title = (c.value && c.value.title) || c.name; - const thumbnailUrl = (c.value && c.value.thumbnail && c.value.thumbnail.url) || ''; - const thumbnailHtml = thumbnailUrl - ? `

thumbnail

` - : ''; - const description = thumbnailHtml + getFormattedDescription(c); - - const url = `${URL}/${encodeWithSpecialCharEncode(c.name)}:${c.claim_id}`; - const date = c.release_time ? c.release_time * 1000 : c.meta && c.meta.creation_timestamp * 1000; - - feed.item({ - title: title, - description: description, - url: url, - guid: undefined, // defaults to 'url' - author: undefined, // defaults feed author property - date: new Date(date), - enclosure: generateEnclosureForClaimContent(c), - custom_elements: [ - { 'itunes:title': title }, - { 'itunes:author': channelTitle }, - generateItunesImageElement(c), - generateItunesDurationElement(c), - generateItunesExplicitElement(c), - ], - }); - }); - - return feed; -} - -async function getRss(ctx) { - if (!ctx.params.claimName || !ctx.params.claimId) { - return 'Invalid URL'; - } - - const { claim: channelClaim, error } = await getChannelClaim(ctx.params.claimName, ctx.params.claimId); - if (error) { - return error; - } - - const latestClaimsInChannel = await getClaimsFromChannel(channelClaim.claim_id, NUM_ENTRIES); - const feed = generateFeed(`${URL}${ctx.request.url}`, channelClaim, latestClaimsInChannel); - return feed.xml(); -} - -module.exports = { getRss }; diff --git a/web/src/xml.js b/web/src/xml.js deleted file mode 100644 index 9cd48fe44..000000000 --- a/web/src/xml.js +++ /dev/null @@ -1,18 +0,0 @@ -const { URL, SITE_TITLE, FAVICON } = require('../../config.js'); -const favicon = FAVICON || `${URL}/public/favicon.png`; -function getOpenSearchXml() { - return ( - `${SITE_TITLE}` + - `Search ${SITE_TITLE}` + - 'UTF-8' + - `${favicon}` + - `` + - `${URL}` - ); -} - -function insertVariableXml(fullXml, xmlToInsert) { - return fullXml.replace(/.*/s, xmlToInsert); -} - -module.exports = { getOpenSearchXml, insertVariableXml }; diff --git a/web/static/pwa/icon-180.png b/web/static/pwa/icon-180.png deleted file mode 100644 index ea2380843..000000000 Binary files a/web/static/pwa/icon-180.png and /dev/null differ diff --git a/web/static/pwa/icon-192.png b/web/static/pwa/icon-192.png deleted file mode 100644 index 77b8c6f9d..000000000 Binary files a/web/static/pwa/icon-192.png and /dev/null differ diff --git a/web/static/pwa/icon-512.png b/web/static/pwa/icon-512.png deleted file mode 100644 index fde3b3d72..000000000 Binary files a/web/static/pwa/icon-512.png and /dev/null differ diff --git a/web/static/pwa/icon.png b/web/static/pwa/icon.png deleted file mode 100644 index af25548c0..000000000 Binary files a/web/static/pwa/icon.png and /dev/null differ diff --git a/web/static/pwa/manifest.json b/web/static/pwa/manifest.json deleted file mode 100644 index 93824198c..000000000 --- a/web/static/pwa/manifest.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "Odysee", - "short_name": "Odysee", - "theme_color": "#fa6164", - "background_color": "#FAFAFA", - "display": "standalone", - "description": "Launch your own channel | Watch and share videos", - "scope": "/", - "start_url": "/", - "icons": [ - { - "src": "/public/pwa/icon-192.png", - "type": "image/png", - "sizes": "192x192" - }, - { - "src": "/public/pwa/icon-512.png", - "type": "image/png", - "sizes": "512x512" - }, - { - "src": "/public/pwa/icon-180.png", - "type": "image/png", - "sizes": "180x180" - } - ], - "prefer_related_applications": false -} diff --git a/web/static/pwa/serviceWorker.js b/web/static/pwa/serviceWorker.js deleted file mode 100644 index dbeb24eb1..000000000 --- a/web/static/pwa/serviceWorker.js +++ /dev/null @@ -1,14 +0,0 @@ -// register service worker -if ('serviceWorker' in navigator) { - navigator.serviceWorker - .register('./serviceWorker.js') - .then(function(reg) { - // reg.scope must be '/' to allow '/' as start url - }) - .catch(function(err) { - // console.warn('Error whilst registering service worker', err); - }); -} - -// used to fetch the manifest file -self.addEventListener('fetch', () => {}); diff --git a/web/stubs/electron.js b/web/stubs/electron.js deleted file mode 100644 index 48dfb8bf8..000000000 --- a/web/stubs/electron.js +++ /dev/null @@ -1,43 +0,0 @@ -const callable = () => { - throw new Error('Need to fix this stub'); -}; -const { DEFAULT_LANGUAGE } = require('../../config.js'); -export const remote = { - dialog: { - showOpenDialog: callable, - }, - getCurrentWindow: callable, - app: { - getAppPath: callable, - getLocale: () => { - return DEFAULT_LANGUAGE; - }, - }, - BrowserWindow: { - getFocusedWindow: callable, - }, - Menu: { - getApplicationMenu: callable, - buildFromTemplate: () => { - return { - popup: () => {}, - }; - }, - }, - require: callable, -}; - -export const clipboard = { - readText: () => '', - writeText: text => { - var dummy = document.createElement('textarea'); - document.body.appendChild(dummy); - dummy.value = text; - dummy.select(); - document.execCommand('copy'); - document.body.removeChild(dummy); - }, -}; -export const ipcRenderer = {}; - -export const isDev = false; diff --git a/web/stubs/fs.js b/web/stubs/fs.js deleted file mode 100644 index d218b3465..000000000 --- a/web/stubs/fs.js +++ /dev/null @@ -1,17 +0,0 @@ -function logWarning(method) { - if (process.env.NODE_ENV !== 'production') { - console.error(`Called fs.${method} on lbry.tv. This should be removed.`); - } -} - -export default { - readFileSync: () => { - logWarning('readFileSync'); - return undefined; - }, - accessFileSync: () => { - logWarning('accessFileSync'); - return undefined; - }, - constants: {}, -}; diff --git a/web/theme.js b/web/theme.js deleted file mode 100644 index afb73fe58..000000000 --- a/web/theme.js +++ /dev/null @@ -1,6 +0,0 @@ -// @if BRANDED_SITE='odysee' -import './scss/odysee.scss'; -// @endif -// @if BRANDED_SITE='lbrytv' -import './scss/lbrytv.scss'; -// @endif diff --git a/web/webpack.config.js b/web/webpack.config.js deleted file mode 100644 index 47288fa52..000000000 --- a/web/webpack.config.js +++ /dev/null @@ -1,181 +0,0 @@ -const { WEBPACK_WEB_PORT, LBRY_WEB_API, BRANDED_SITE } = require('../config.js'); -const path = require('path'); -const fs = require('fs'); -const merge = require('webpack-merge'); -const baseConfig = require('../webpack.base.config.js'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); -const WriteFilePlugin = require('write-file-webpack-plugin'); -const { DefinePlugin, ProvidePlugin } = require('webpack'); -const SentryWebpackPlugin = require('@sentry/webpack-plugin'); -const { getJsBundleId } = require('./bundle-id.js'); -const { insertToHead, buildHead } = require('./src/html'); -const { insertVariableXml, getOpenSearchXml } = require('./src/xml'); - -const CUSTOM_ROOT = path.resolve(__dirname, '../custom/'); -const STATIC_ROOT = path.resolve(__dirname, '../static/'); -const UI_ROOT = path.resolve(__dirname, '../ui/'); -const DIST_ROOT = path.resolve(__dirname, 'dist/'); -const WEB_STATIC_ROOT = path.resolve(__dirname, 'static/'); -const WEB_PLATFORM_ROOT = __dirname; -const isProduction = process.env.NODE_ENV === 'production'; -const hasSentryToken = process.env.SENTRY_AUTH_TOKEN !== undefined; -const jsBundleId = getJsBundleId(); - -// copy static files to dist folder -const copyWebpackCommands = [ - { - from: `${STATIC_ROOT}/index-web.html`, - to: `${DIST_ROOT}/index.html`, - // add javascript script to index.html, generate/insert metatags - transform(content, path) { - return insertToHead(content.toString(), buildHead()); - }, - force: true, - }, - { - from: `${STATIC_ROOT}/opensearch.xml`, - to: `${DIST_ROOT}/opensearch.xml`, - transform(content, path) { - return insertVariableXml(content.toString(), getOpenSearchXml()); - }, - force: true, - }, - { - from: `${STATIC_ROOT}/robots.txt`, - to: `${DIST_ROOT}/robots.txt`, - force: true, - }, - { - from: `${STATIC_ROOT}/img/favicon.png`, - to: `${DIST_ROOT}/public/favicon.png`, - force: true, - }, - { - from: `${STATIC_ROOT}/img/favicon-spaceman.png`, - to: `${DIST_ROOT}/public/favicon-spaceman.png`, - force: true, - }, - { - from: `${STATIC_ROOT}/img/v2-og.png`, - to: `${DIST_ROOT}/public/v2-og.png`, - }, - { - from: `${STATIC_ROOT}/font/`, - to: `${DIST_ROOT}/public/font/`, - }, - { - from: `${WEB_STATIC_ROOT}/pwa/`, - to: `${DIST_ROOT}/public/pwa/`, - }, - { - from: `${WEB_STATIC_ROOT}/pwa/serviceWorker.js`, - to: `${DIST_ROOT}/`, - }, -]; - -const CUSTOM_OG_PATH = `${CUSTOM_ROOT}/v2-og.png`; -if (fs.existsSync(CUSTOM_OG_PATH)) { - copyWebpackCommands.push({ - from: CUSTOM_OG_PATH, - to: `${DIST_ROOT}/public/v2-og.png`, - force: true, - }); -} - -// clear the dist folder of existing js files before compilation -let regex = /^.*\.(json|js|map)$/; -// only run on nonprod environments to avoid side effects on prod -if (!isProduction) { - const path = `${DIST_ROOT}/public/`; - if (fs.existsSync(path)) { - fs.readdirSync(path) - .filter((f) => regex.test(f)) - .map((f) => fs.unlinkSync(path + f)); - } -} - -const ROBOTS_TXT_PATH = `${CUSTOM_ROOT}/robots.txt`; -if (fs.existsSync(ROBOTS_TXT_PATH)) { - copyWebpackCommands.push({ - from: ROBOTS_TXT_PATH, - to: `${DIST_ROOT}/robots.txt`, - force: true, - }); -} - -let plugins = [ - new WriteFilePlugin(), - new CopyWebpackPlugin(copyWebpackCommands), - new DefinePlugin({ - IS_WEB: JSON.stringify(true), - 'process.env.SDK_API_URL': JSON.stringify(process.env.SDK_API_URL || LBRY_WEB_API), - }), - new ProvidePlugin({ - __: ['i18n.js', '__'], - }), -]; - -if (isProduction && hasSentryToken) { - plugins.push( - new SentryWebpackPlugin({ - include: './dist', - ignoreFile: '.sentrycliignore', - ignore: ['node_modules', 'webpack.config.js'], - configFile: 'sentry.properties', - }) - ); -} - -const webConfig = { - target: 'web', - entry: { - [`ui-${jsBundleId}`]: '../ui/index.jsx', - }, - output: { - filename: '[name].js', - path: path.join(__dirname, 'dist/public/'), - publicPath: '/public/', - chunkFilename: '[name]-[chunkhash].js', - }, - devServer: { - port: WEBPACK_WEB_PORT, - contentBase: path.join(__dirname, 'dist'), - disableHostCheck: true, // to allow debugging with ngrok - }, - module: { - rules: [ - { - loader: 'babel-loader', - test: /\.jsx?$/, - options: { - presets: ['@babel/env', '@babel/react', '@babel/flow'], - plugins: ['@babel/plugin-proposal-optional-chaining', '@babel/plugin-proposal-object-rest-spread', '@babel/plugin-proposal-class-properties'], - }, - }, - { - loader: 'preprocess-loader', - test: /\.jsx?$/, - exclude: /node_modules/, - options: { - TARGET: 'web', - BRANDED_SITE: BRANDED_SITE, - ppOptions: { - type: 'js', - }, - }, - }, - ], - }, - resolve: { - modules: [UI_ROOT, __dirname], - - alias: { - // lbryinc: '../extras/lbryinc', - electron: `${WEB_PLATFORM_ROOT}/stubs/electron.js`, - fs: `${WEB_PLATFORM_ROOT}/stubs/fs.js`, - }, - }, - plugins, -}; - -module.exports = merge(baseConfig, webConfig); diff --git a/web/yarn.lock b/web/yarn.lock deleted file mode 100644 index ba82cc85f..000000000 --- a/web/yarn.lock +++ /dev/null @@ -1,5692 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" - integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/core@^7.0.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.0.tgz#461d2948b1a7113088baf999499bcbd39a7faa3b" - integrity sha512-Bb1NjZCaiwTQC/ARL+MwDpgocdnwWDCaugvkGt6cxfBzQa8Whv1JybBoUEiBDKl8Ni3H3c7Fykwk7QChUsHRlg== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.0" - "@babel/helpers" "^7.7.0" - "@babel/parser" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - convert-source-map "^1.1.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.0.tgz#c6d4d1f7a0d6e139cbd01aca73170b0bff5425b4" - integrity sha512-1wdJ6UxHyL1XoJQ119JmvuRX27LRih7iYStMPZOWAjQqeAabFg3dYXKMpgihma+to+0ADsTVVt6oRyUxWZw6Mw== - dependencies: - "@babel/types" "^7.7.0" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.0.tgz#efc54032d43891fe267679e63f6860aa7dbf4a5e" - integrity sha512-k50CQxMlYTYo+GGyUGFwpxKVtxVJi9yh61sXZji3zYHccK9RYliZGSTOgci85T+r+0VFN2nWbGM04PIqwfrpMg== - dependencies: - "@babel/types" "^7.7.0" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.0.tgz#32dd9551d6ed3a5fc2edc50d6912852aa18274d9" - integrity sha512-Cd8r8zs4RKDwMG/92lpZcnn5WPQ3LAMQbCw42oqUh4s7vsSN5ANUZjMel0OOnxDLq57hoDDbai+ryygYfCTOsw== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helper-builder-react-jsx@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.7.0.tgz#c6b8254d305bacd62beb648e4dea7d3ed79f352d" - integrity sha512-LSln3cexwInTMYYoFeVLKnYPPMfWNJ8PubTBs3hkh7wCu9iBaqq1OOyW+xGmEdLxT1nhsl+9SJ+h2oUDYz0l2A== - dependencies: - "@babel/types" "^7.7.0" - esutils "^2.0.0" - -"@babel/helper-call-delegate@^7.4.4": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.7.0.tgz#df8942452c2c1a217335ca7e393b9afc67f668dc" - integrity sha512-Su0Mdq7uSSWGZayGMMQ+z6lnL00mMCnGAbO/R0ZO9odIdB/WNU/VfQKqMQU0fdIsxQYbRjDM4BixIa93SQIpvw== - dependencies: - "@babel/helper-hoist-variables" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helper-create-class-features-plugin@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.7.0.tgz#bcdc223abbfdd386f94196ae2544987f8df775e8" - integrity sha512-MZiB5qvTWoyiFOgootmRSDV1udjIqJW/8lmxgzKq6oDqxdmHUjeP2ZUOmgHdYjmUVNABqRrHjYAYRvj8Eox/UA== - dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-member-expression-to-functions" "^7.7.0" - "@babel/helper-optimise-call-expression" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" - -"@babel/helper-create-regexp-features-plugin@^7.7.0": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.2.tgz#6f20443778c8fce2af2ff4206284afc0ced65db6" - integrity sha512-pAil/ZixjTlrzNpjx+l/C/wJk002Wo7XbbZ8oujH/AoJ3Juv0iN/UTcPUHXKMFLqsfS0Hy6Aow8M31brUYBlQQ== - dependencies: - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.6.0" - -"@babel/helper-define-map@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.7.0.tgz#60b0e9fd60def9de5054c38afde8c8ee409c7529" - integrity sha512-kPKWPb0dMpZi+ov1hJiwse9dWweZsz3V9rP4KdytnX1E7z3cTNmFGglwklzFPuqIcHLIY3bgKSs4vkwXXdflQA== - dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/types" "^7.7.0" - lodash "^4.17.13" - -"@babel/helper-explode-assignable-expression@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.0.tgz#db2a6705555ae1f9f33b4b8212a546bc7f9dc3ef" - integrity sha512-CDs26w2shdD1urNUAji2RJXyBFCaR+iBEGnFz3l7maizMkQe3saVw9WtjG1tz8CwbjvlFnaSLVhgnu1SWaherg== - dependencies: - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helper-function-name@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz#44a5ad151cfff8ed2599c91682dda2ec2c8430a3" - integrity sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q== - dependencies: - "@babel/helper-get-function-arity" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helper-get-function-arity@^7.0.0", "@babel/helper-get-function-arity@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz#c604886bc97287a1d1398092bc666bc3d7d7aa2d" - integrity sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw== - dependencies: - "@babel/types" "^7.7.0" - -"@babel/helper-hoist-variables@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.0.tgz#b4552e4cfe5577d7de7b183e193e84e4ec538c81" - integrity sha512-LUe/92NqsDAkJjjCEWkNe+/PcpnisvnqdlRe19FahVapa4jndeuJ+FBiTX1rcAKWKcJGE+C3Q3tuEuxkSmCEiQ== - dependencies: - "@babel/types" "^7.7.0" - -"@babel/helper-member-expression-to-functions@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.0.tgz#472b93003a57071f95a541ea6c2b098398bcad8a" - integrity sha512-QaCZLO2RtBcmvO/ekOLp8p7R5X2JriKRizeDpm5ChATAFWrrYDcDxPuCIBXKyBjY+i1vYSdcUTMIb8psfxHDPA== - dependencies: - "@babel/types" "^7.7.0" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.0.tgz#99c095889466e5f7b6d66d98dffc58baaf42654d" - integrity sha512-Dv3hLKIC1jyfTkClvyEkYP2OlkzNvWs5+Q8WgPbxM5LMeorons7iPP91JM+DU7tRbhqA1ZeooPaMFvQrn23RHw== - dependencies: - "@babel/types" "^7.7.0" - -"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.0.tgz#154a69f0c5b8fd4d39e49750ff7ac4faa3f36786" - integrity sha512-rXEefBuheUYQyX4WjV19tuknrJFwyKw0HgzRwbkyTbB+Dshlq7eqkWbyjzToLrMZk/5wKVKdWFluiAsVkHXvuQ== - dependencies: - "@babel/helper-module-imports" "^7.7.0" - "@babel/helper-simple-access" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/types" "^7.7.0" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.0.tgz#4f66a216116a66164135dc618c5d8b7a959f9365" - integrity sha512-48TeqmbazjNU/65niiiJIJRc5JozB8acui1OS7bSd6PgxfuovWsvjfWSzlgx+gPFdVveNzUdpdIg5l56Pl5jqg== - dependencies: - "@babel/types" "^7.7.0" - -"@babel/helper-plugin-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" - integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== - -"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" - integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.0.tgz#4d69ec653e8bff5bce62f5d33fc1508f223c75a7" - integrity sha512-pHx7RN8X0UNHPB/fnuDnRXVZ316ZigkO8y8D835JlZ2SSdFKb6yH9MIYRU4fy/KPe5sPHDFOPvf8QLdbAGGiyw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.7.0" - "@babel/helper-wrap-function" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helper-replace-supers@^7.5.5", "@babel/helper-replace-supers@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.7.0.tgz#d5365c8667fe7cbd13b8ddddceb9bd7f2b387512" - integrity sha512-5ALYEul5V8xNdxEeWvRsBzLMxQksT7MaStpxjJf9KsnLxpAKBtfw5NeMKZJSYDa0lKdOcy0g+JT/f5mPSulUgg== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.7.0" - "@babel/helper-optimise-call-expression" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helper-simple-access@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.0.tgz#97a8b6c52105d76031b86237dc1852b44837243d" - integrity sha512-AJ7IZD7Eem3zZRuj5JtzFAptBw7pMlS3y8Qv09vaBWoFsle0d1kAn5Wq6Q9MyBXITPOKnxwkZKoAm4bopmv26g== - dependencies: - "@babel/template" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helper-split-export-declaration@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz#1365e74ea6c614deeb56ebffabd71006a0eb2300" - integrity sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA== - dependencies: - "@babel/types" "^7.7.0" - -"@babel/helper-wrap-function@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.0.tgz#15af3d3e98f8417a60554acbb6c14e75e0b33b74" - integrity sha512-sd4QjeMgQqzshSjecZjOp8uKfUtnpmCyQhKQrVJBBgeHAB/0FPi33h3AbVlVp07qQtMD4QgYSzaMI7VwncNK/w== - dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helpers@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.0.tgz#359bb5ac3b4726f7c1fde0ec75f64b3f4275d60b" - integrity sha512-VnNwL4YOhbejHb7x/b5F39Zdg5vIQpUUNzJwx0ww1EcVRt41bbGRZWhAURrfY32T5zTT3qwNOQFWpn+P0i0a2g== - dependencies: - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/highlight@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" - integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.0.tgz#232618f6e8947bc54b407fa1f1c91a22758e7159" - integrity sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ== - -"@babel/plugin-proposal-async-generator-functions@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.0.tgz#83ef2d6044496b4c15d8b4904e2219e6dccc6971" - integrity sha512-ot/EZVvf3mXtZq0Pd0+tSOfGWMizqmOohXmNZg6LNFjHOV+wOPv7BvVYh8oPR8LhpIP3ye8nNooKL50YRWxpYA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" - -"@babel/plugin-proposal-class-properties@^7.0.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.7.0.tgz#ac54e728ecf81d90e8f4d2a9c05a890457107917" - integrity sha512-tufDcFA1Vj+eWvwHN+jvMN6QsV5o+vUlytNKrbMiCeDL0F2j92RURzUsUMWE5EJkLyWxjdUslCsMQa9FWth16A== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-proposal-decorators@^7.3.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.7.0.tgz#d386a45730a4eb8c03e23a80b6d3dbefd761c9c9" - integrity sha512-dMCDKmbYFQQTn1+VJjl5hbqlweuHl5oDeMU9B1Q7oAWi0mHxjQQDHdJIK6iW76NE1KJT3zA6dDU3weR1WT5D4A== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-decorators" "^7.2.0" - -"@babel/plugin-proposal-dynamic-import@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.0.tgz#dc02a8bad8d653fb59daf085516fa416edd2aa7f" - integrity sha512-7poL3Xi+QFPC7sGAzEIbXUyYzGJwbc2+gSD0AkiC5k52kH2cqHdqxm5hNFfLW3cRSTcx9bN0Fl7/6zWcLLnKAQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" - -"@babel/plugin-proposal-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" - integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" - -"@babel/plugin-proposal-object-rest-spread@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096" - integrity sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - -"@babel/plugin-proposal-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" - integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.0.tgz#549fe1717a1bd0a2a7e63163841cb37e78179d5d" - integrity sha512-mk34H+hp7kRBWJOOAR0ZMGCydgKMD4iN9TpDRp3IIcbunltxEY89XSimc6WbtSLCDrwcdy/EEw7h5CFCzxTchw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-async-generators@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" - integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-decorators@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz#c50b1b957dcc69e4b1127b65e1c33eef61570c1b" - integrity sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-dynamic-import@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" - integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-flow@^7.2.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.7.0.tgz#5c9465bcd26354d5215294ea90ab1c706a571386" - integrity sha512-vQMV07p+L+jZeUnvX3pEJ9EiXGCjB5CTTvsirFD9rpEuATnoAvLBLoYbw1v5tyn3d2XxSuvEKi8cV3KqYUa0vQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" - integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-jsx@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" - integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-object-rest-spread@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" - integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" - integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-top-level-await@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.0.tgz#f5699549f50bbe8d12b1843a4e82f0a37bb65f4d" - integrity sha512-hi8FUNiFIY1fnUI2n1ViB1DR0R4QeK4iHcTlW6aJkrPoTdb8Rf1EMQ6GT3f67DDkYyWgew9DFoOZ6gOoEsdzTA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-arrow-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" - integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-async-to-generator@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.0.tgz#e2b84f11952cf5913fe3438b7d2585042772f492" - integrity sha512-vLI2EFLVvRBL3d8roAMqtVY0Bm9C1QzLkdS57hiKrjUBSqsQYrBsMCeOg/0KK7B0eK9V71J5mWcha9yyoI2tZw== - dependencies: - "@babel/helper-module-imports" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.0" - -"@babel/plugin-transform-block-scoped-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" - integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-block-scoping@^7.6.3": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz#6e854e51fbbaa84351b15d4ddafe342f3a5d542a" - integrity sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.13" - -"@babel/plugin-transform-classes@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.0.tgz#b411ecc1b8822d24b81e5d184f24149136eddd4a" - integrity sha512-/b3cKIZwGeUesZheU9jNYcwrEA7f/Bo4IdPmvp7oHgvks2majB5BoT5byAql44fiNQYOPzhk2w8DbgfuafkMoA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.7.0" - "@babel/helper-define-map" "^7.7.0" - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-optimise-call-expression" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" - integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-destructuring@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6" - integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-dotall-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.0.tgz#c5c9ecacab3a5e0c11db6981610f0c32fd698b3b" - integrity sha512-3QQlF7hSBnSuM1hQ0pS3pmAbWLax/uGNCbPBND9y+oJ4Y776jsyujG2k0Sn2Aj2a0QwVOiOFL5QVPA7spjvzSA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-duplicate-keys@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" - integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-exponentiation-operator@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" - integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-flow-strip-types@^7.0.0", "@babel/plugin-transform-flow-strip-types@^7.2.3": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.6.3.tgz#8110f153e7360cfd5996eee68706cfad92d85256" - integrity sha512-l0ETkyEofkqFJ9LS6HChNIKtVJw2ylKbhYMlJ5C6df+ldxxaLIyXY4yOdDQQspfFpV8/vDiaWoJlvflstlYNxg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.2.0" - -"@babel/plugin-transform-for-of@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" - integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-function-name@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.0.tgz#0fa786f1eef52e3b7d4fc02e54b2129de8a04c2a" - integrity sha512-P5HKu0d9+CzZxP5jcrWdpe7ZlFDe24bmqP6a6X8BHEBl/eizAsY8K6LX8LASZL0Jxdjm5eEfzp+FIrxCm/p8bA== - dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" - integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-member-expression-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" - integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-modules-amd@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" - integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== - dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-commonjs@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.0.tgz#3e5ffb4fd8c947feede69cbe24c9554ab4113fe3" - integrity sha512-KEMyWNNWnjOom8vR/1+d+Ocz/mILZG/eyHHO06OuBQ2aNhxT62fr4y6fGOplRx+CxCSp3IFwesL8WdINfY/3kg== - dependencies: - "@babel/helper-module-transforms" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.7.0" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-systemjs@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.0.tgz#9baf471213af9761c1617bb12fd278e629041417" - integrity sha512-ZAuFgYjJzDNv77AjXRqzQGlQl4HdUM6j296ee4fwKVZfhDR9LAGxfvXjBkb06gNETPnN0sLqRm9Gxg4wZH6dXg== - dependencies: - "@babel/helper-hoist-variables" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-umd@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.0.tgz#d62c7da16670908e1d8c68ca0b5d4c0097b69966" - integrity sha512-u7eBA03zmUswQ9LQ7Qw0/ieC1pcAkbp5OQatbWUzY1PaBccvuJXUkYzoN1g7cqp7dbTu6Dp9bXyalBvD04AANA== - dependencies: - "@babel/helper-module-transforms" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.0.tgz#358e6fd869b9a4d8f5cbc79e4ed4fc340e60dcaf" - integrity sha512-+SicSJoKouPctL+j1pqktRVCgy+xAch1hWWTMy13j0IflnyNjaoskj+DwRQFimHbLqO3sq2oN2CXMvXq3Bgapg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" - -"@babel/plugin-transform-new-target@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" - integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-object-super@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" - integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" - -"@babel/plugin-transform-parameters@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" - integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== - dependencies: - "@babel/helper-call-delegate" "^7.4.4" - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-property-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" - integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-react-display-name@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0" - integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-react-jsx-self@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz#461e21ad9478f1031dd5e276108d027f1b5240ba" - integrity sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@babel/plugin-transform-react-jsx-source@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz#583b10c49cf057e237085bcbd8cc960bd83bd96b" - integrity sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@babel/plugin-transform-react-jsx@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.7.0.tgz#834b0723ba78cd4d24d7d629300c2270f516d0b7" - integrity sha512-mXhBtyVB1Ujfy+0L6934jeJcSXj/VCg6whZzEcgiiZHNS0PGC7vUCsZDQCxxztkpIdF+dY1fUMcjAgEOC3ZOMQ== - dependencies: - "@babel/helper-builder-react-jsx" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@babel/plugin-transform-regenerator@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.0.tgz#f1b20b535e7716b622c99e989259d7dd942dd9cc" - integrity sha512-AXmvnC+0wuj/cFkkS/HFHIojxH3ffSXE+ttulrqWjZZRaUOonfJc60e1wSNT4rV8tIunvu/R3wCp71/tLAa9xg== - dependencies: - regenerator-transform "^0.14.0" - -"@babel/plugin-transform-reserved-words@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" - integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-runtime@^7.4.3": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.6.2.tgz#2669f67c1fae0ae8d8bf696e4263ad52cb98b6f8" - integrity sha512-cqULw/QB4yl73cS5Y0TZlQSjDvNkzDbu0FurTZyHlJpWE5T3PCMdnyV+xXoH1opr1ldyHODe3QAX3OMAii5NxA== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/plugin-transform-shorthand-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" - integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-spread@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz#fc77cf798b24b10c46e1b51b1b88c2bf661bb8dd" - integrity sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-sticky-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" - integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - -"@babel/plugin-transform-template-literals@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" - integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-typeof-symbol@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" - integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-unicode-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.0.tgz#743d9bcc44080e3cc7d49259a066efa30f9187a3" - integrity sha512-RrThb0gdrNwFAqEAAx9OWgtx6ICK69x7i9tCnMdVrxQwSDp/Abu9DXFU5Hh16VP33Rmxh04+NGW28NsIkFvFKA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/polyfill@^7.2.5": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.7.0.tgz#e1066e251e17606ec7908b05617f9b7f8180d8f3" - integrity sha512-/TS23MVvo34dFmf8mwCisCbWGrfhbiWZSwBo6HkADTBhUa2Q/jWltyY/tpofz/b6/RIhqaqQcquptCirqIhOaQ== - dependencies: - core-js "^2.6.5" - regenerator-runtime "^0.13.2" - -"@babel/preset-env@^7.7.1": - version "7.7.1" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.1.tgz#04a2ff53552c5885cf1083e291c8dd5490f744bb" - integrity sha512-/93SWhi3PxcVTDpSqC+Dp4YxUu3qZ4m7I76k0w73wYfn7bGVuRIO4QUz95aJksbS+AD1/mT1Ie7rbkT0wSplaA== - dependencies: - "@babel/helper-module-imports" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.7.0" - "@babel/plugin-proposal-dynamic-import" "^7.7.0" - "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.6.2" - "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.7.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - "@babel/plugin-syntax-top-level-await" "^7.7.0" - "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.7.0" - "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.6.3" - "@babel/plugin-transform-classes" "^7.7.0" - "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.6.0" - "@babel/plugin-transform-dotall-regex" "^7.7.0" - "@babel/plugin-transform-duplicate-keys" "^7.5.0" - "@babel/plugin-transform-exponentiation-operator" "^7.2.0" - "@babel/plugin-transform-for-of" "^7.4.4" - "@babel/plugin-transform-function-name" "^7.7.0" - "@babel/plugin-transform-literals" "^7.2.0" - "@babel/plugin-transform-member-expression-literals" "^7.2.0" - "@babel/plugin-transform-modules-amd" "^7.5.0" - "@babel/plugin-transform-modules-commonjs" "^7.7.0" - "@babel/plugin-transform-modules-systemjs" "^7.7.0" - "@babel/plugin-transform-modules-umd" "^7.7.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.0" - "@babel/plugin-transform-new-target" "^7.4.4" - "@babel/plugin-transform-object-super" "^7.5.5" - "@babel/plugin-transform-parameters" "^7.4.4" - "@babel/plugin-transform-property-literals" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.7.0" - "@babel/plugin-transform-reserved-words" "^7.2.0" - "@babel/plugin-transform-shorthand-properties" "^7.2.0" - "@babel/plugin-transform-spread" "^7.6.2" - "@babel/plugin-transform-sticky-regex" "^7.2.0" - "@babel/plugin-transform-template-literals" "^7.4.4" - "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.7.0" - "@babel/types" "^7.7.1" - browserslist "^4.6.0" - core-js-compat "^3.1.1" - invariant "^2.2.2" - js-levenshtein "^1.1.3" - semver "^5.5.0" - -"@babel/preset-flow@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.0.0.tgz#afd764835d9535ec63d8c7d4caf1c06457263da2" - integrity sha512-bJOHrYOPqJZCkPVbG1Lot2r5OSsB+iUOaxiHdlOeB1yPWS6evswVHwvkDLZ54WTaTRIk89ds0iHmGZSnxlPejQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - -"@babel/preset-react@^7.0.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.7.0.tgz#8ab0c4787d98cf1f5f22dabf115552bf9e4e406c" - integrity sha512-IXXgSUYBPHUGhUkH+89TR6faMcBtuMW0h5OHbMuVbL3/5wK2g6a2M2BBpkLa+Kw0sAHiZ9dNVgqJMDP/O4GRBA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.7.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - -"@babel/register@^7.0.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.7.0.tgz#4e23ecf840296ef79c605baaa5c89e1a2426314b" - integrity sha512-HV3GJzTvSoyOMWGYn2TAh6uL6g+gqKTgEZ99Q3+X9UURT1VPT/WcU46R61XftIc5rXytcOHZ4Z0doDlsjPomIg== - dependencies: - find-cache-dir "^2.0.0" - lodash "^4.17.13" - make-dir "^2.1.0" - pirates "^4.0.0" - source-map-support "^0.5.16" - -"@babel/template@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.0.tgz#4fadc1b8e734d97f56de39c77de76f2562e597d0" - integrity sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/traverse@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.0.tgz#9f5744346b8d10097fd2ec2eeffcaf19813cbfaf" - integrity sha512-ea/3wRZc//e/uwCpuBX2itrhI0U9l7+FsrKWyKGNyvWbuMcCG7ATKY2VI4wlg2b2TA39HHwIxnvmXvtiKsyn7w== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.0" - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" - "@babel/parser" "^7.7.0" - "@babel/types" "^7.7.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@^7.7.0": - version "7.7.1" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.1.tgz#8b08ea368f2baff236613512cf67109e76285827" - integrity sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA== - dependencies: - esutils "^2.0.2" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.7.1": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.2.tgz#550b82e5571dcd174af576e23f0adba7ffc683f7" - integrity sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA== - dependencies: - esutils "^2.0.2" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@koa/router@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@koa/router/-/router-8.0.2.tgz#46a48d58cb0d76dc7a3735f14d1e66bbe2116575" - integrity sha512-7Wa8yXBmz9HjmZOr+xfMVuxFPNObdkiQFBiwF9SQ8zFqHykwBHcJA/mLqqxU2NKoeXRPBKUOPeOjwgR+gyadcA== - dependencies: - debug "^3.1.0" - http-errors "^1.3.1" - koa-compose "^3.0.0" - methods "^1.0.1" - path-to-regexp "^1.1.1" - urijs "^1.19.0" - -"@types/events@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== - -"@types/glob@^7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== - dependencies: - "@types/events" "*" - "@types/minimatch" "*" - "@types/node" "*" - -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - -"@types/node@*": - version "12.12.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.6.tgz#a47240c10d86a9a57bb0c633f0b2e0aea9ce9253" - integrity sha512-FjsYUPzEJdGXjwKqSpE0/9QEh6kzhTAeObA54rn6j3rR4C/mzpI9L0KNfoeASSPMMdxIsoJuCLDWcM/rVjIsSA== - -"@webassemblyjs/ast@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" - integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== - dependencies: - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" - -"@webassemblyjs/floating-point-hex-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" - integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== - -"@webassemblyjs/helper-api-error@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" - integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== - -"@webassemblyjs/helper-buffer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" - integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== - -"@webassemblyjs/helper-code-frame@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" - integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== - dependencies: - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/helper-fsm@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" - integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== - -"@webassemblyjs/helper-module-context@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" - integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== - dependencies: - "@webassemblyjs/ast" "1.8.5" - mamacro "^0.0.3" - -"@webassemblyjs/helper-wasm-bytecode@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" - integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== - -"@webassemblyjs/helper-wasm-section@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" - integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - -"@webassemblyjs/ieee754@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" - integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" - integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" - integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== - -"@webassemblyjs/wasm-edit@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" - integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/helper-wasm-section" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-opt" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/wasm-gen@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" - integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wasm-opt@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" - integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - -"@webassemblyjs/wasm-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" - integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wast-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" - integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/floating-point-hex-parser" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-code-frame" "1.8.5" - "@webassemblyjs/helper-fsm" "1.8.5" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" - integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -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== - -accepts@^1.3.5, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn-walk@^6.1.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" - integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== - -acorn@^6.0.7, acorn@^6.2.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== - -ajv@^6.1.0, ajv@^6.10.2: - version "6.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-align@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" - integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= - dependencies: - string-width "^2.0.0" - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -any-promise@^1.0.0, any-promise@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -aproba@^1.0.3, aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - 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" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -atob@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -babel-plugin-dynamic-import-node@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== - dependencies: - object.assign "^4.1.0" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - -bfj@^6.1.1: - version "6.1.2" - resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f" - integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw== - dependencies: - bluebird "^3.5.5" - check-types "^8.0.3" - hoopy "^0.1.4" - tryer "^1.0.1" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -bignumber.js@7.2.1: - version "7.2.1" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" - integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -bluebird@^3.5.5: - version "3.7.1" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.1.tgz#df70e302b471d7473489acf26a93d63b53f874de" - integrity sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boxen@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" - integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== - dependencies: - ansi-align "^2.0.0" - camelcase "^4.0.0" - chalk "^2.0.1" - cli-boxes "^1.0.0" - string-width "^2.0.0" - term-size "^1.2.0" - widest-line "^2.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.6.0, browserslist@^4.7.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.2.tgz#1bb984531a476b5d389cedecb195b2cd69fb1348" - integrity sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw== - dependencies: - caniuse-lite "^1.0.30001004" - electron-to-chromium "^1.3.295" - node-releases "^1.1.38" - -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" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-json@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23" - integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.0, bytes@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacache@^12.0.2: - version "12.0.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" - integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cache-content-type@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" - integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== - dependencies: - mime-types "^2.1.18" - ylru "^1.2.0" - -cache-loader@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-4.1.0.tgz#9948cae353aec0a1fcb1eafda2300816ec85387e" - integrity sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw== - dependencies: - buffer-json "^2.0.0" - find-cache-dir "^3.0.0" - loader-utils "^1.2.3" - mkdirp "^0.5.1" - neo-async "^2.6.1" - schema-utils "^2.0.0" - -camelcase@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30001004: - version "1.0.30001008" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001008.tgz#b8841b1df78a9f5ed9702537ef592f1f8772c0d9" - integrity sha512-b8DJyb+VVXZGRgJUa30cbk8gKHZ3LOZTBLaUEEVr2P4xpmFigOCc62CO4uzquW641Ouq1Rm9N+rWLWdSYDaDIw== - -capture-stack-trace@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" - integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== - -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -check-types@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" - integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== - -chokidar@^2.0.2, chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chownr@^1.1.1, chownr@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" - -ci-info@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" - integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -cli-boxes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= - -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -commander@^2.18.0, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compressible@~2.0.16: - version "2.0.17" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" - integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== - dependencies: - mime-db ">= 1.40.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.0: - 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" - -configstore@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" - integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== - dependencies: - dot-prop "^4.1.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" - -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - 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: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -content-disposition@0.5.3, content-disposition@~0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@^1.0.4, content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.1.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -cookies@~0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" - integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== - dependencies: - depd "~2.0.0" - keygrip "~1.1.0" - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.1.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.4.0.tgz#2a47c51d3dc026d290018cacd987495f68a47c75" - integrity sha512-pgQUcgT2+v9/yxHgMynYjNj7nmxLRXv3UC39rjCjDwpe63ev2rioQTju1PKLYUBbPCQQvZNWvQC8tBJd65q11g== - dependencies: - browserslist "^4.7.2" - semver "^6.3.0" - -core-js@^2.6.5: - version "2.6.10" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f" - integrity sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA== - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-error-class@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= - dependencies: - capture-stack-trace "^1.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-env@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-6.0.3.tgz#4256b71e49b3a40637a0ce70768a6ef5c72ae941" - integrity sha512-+KqxF6LCvfhWvADcDPqo64yVIB31gv/jQulX2NGzKS/g3GEVz6/pt4wjHFtFWsHMddebWD/sDthJemzM4MaAag== - dependencies: - cross-spawn "^7.0.0" - -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" - integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -deep-equal@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.0.tgz#3103cdf8ab6d32cf4a8df7865458f2b8d33f3745" - integrity sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-equal@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" - -define-properties@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - 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" - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -depd@^1.1.2, depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -depd@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@^1.0.4, destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -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-node@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^1.3.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" - integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= - dependencies: - buffer-indexof "^1.0.0" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -dot-prop@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" - integrity sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ== - dependencies: - is-obj "^1.0.0" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -duplexer@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -ejs@^2.6.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz#5b5ab57f718b79d4aca9254457afecd36fa80228" - integrity sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ== - -electron-to-chromium@^1.3.295: - version "1.3.305" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.305.tgz#64f38c2986277b15c7b2c81954171ed22bee249b" - integrity sha512-jBEhRZ3eeJWf3eAnGYB1vDy09uBQpZWshC5fxiiIRofA9L3vkpa3SxsXleVS2MvuYir15oTVxzWPsOwj7KBzUw== - -elliptic@^6.0.0: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - -encodeurl@^1.0.2, encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" - integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -error-inject@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/error-inject/-/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37" - integrity sha1-4rPZG1Su1nLzCdlQ0VSFD6EdTzc= - -escape-html@^1.0.3, escape-html@~1.0.3: - version "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: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== - dependencies: - estraverse "^4.1.0" - -estraverse@^4.1.0, estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -esutils@^2.0.0, esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" - integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== - -eventsource@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" - integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== - dependencies: - original "^1.0.0" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -express@^4.16.3, express@^4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= - -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.1: - version "0.11.3" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" - integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== - dependencies: - websocket-driver ">=0.5.1" - -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -filesize@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" - integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-cache-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.0.0.tgz#cd4b7dd97b7185b7e17dbfe2d6e4115ee3eeb8fc" - integrity sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.0" - pkg-dir "^4.1.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -follow-redirects@^1.0.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" - integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2, fresh@~0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-minipass@^1.2.7: - 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-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.9" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" - integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== - dependencies: - nan "^2.12.1" - node-pre-gyp "^0.12.0" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -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" - -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob@^7.0.3: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.3, glob@^7.1.4: - version "7.1.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.5.tgz#6714c69bee20f3c3e64c4dd905553e532b40cdc0" - integrity sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-dirs@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= - dependencies: - ini "^1.3.4" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -got@^6.7.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" - integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= - dependencies: - create-error-class "^3.0.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - unzip-response "^2.0.1" - url-parse-lax "^1.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: - version "4.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" - integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== - -gzip-size@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" - integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== - dependencies: - duplexer "^0.1.1" - pify "^4.0.1" - -handle-thing@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" - integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= - -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: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hoopy@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" - integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-entities@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" - integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= - -http-assert@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" - integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw== - dependencies: - deep-equal "~1.0.1" - http-errors "~1.7.2" - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@^1.3.1, http-errors@^1.6.3, http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -"http-parser-js@>=0.4.0 <0.4.11": - version "0.4.10" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" - integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= - -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy@^1.17.0: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -humanize-number@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/humanize-number/-/humanize-number-0.0.2.tgz#11c0af6a471643633588588048f1799541489c18" - integrity sha1-EcCvakcWQ2M1iFiASPF5lUFInBg= - -iconv-lite@0.4.24, iconv-lite@^0.4.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore-by-default@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" - integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= - -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" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -infer-owner@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.4, ini@~1.3.0: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== - -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= - -ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - -ipaddr.js@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" - integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== - -ipaddr.js@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-ci@^1.0.10: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" - integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== - dependencies: - ci-info "^1.5.0" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-generator-function@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" - integrity sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw== - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= - dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" - -is-npm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= - dependencies: - path-is-inside "^1.0.1" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= - dependencies: - has "^1.0.1" - -is-retry-allowed@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - -is-stream@^1.0.0, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json3@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" - integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== - dependencies: - minimist "^1.2.0" - -keygrip@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" - integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== - dependencies: - tsscmp "1.0.6" - -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== - -koa-compose@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" - integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec= - dependencies: - any-promise "^1.1.0" - -koa-compose@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" - integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== - -koa-convert@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" - integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA= - dependencies: - co "^4.6.0" - koa-compose "^3.0.0" - -koa-logger@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/koa-logger/-/koa-logger-3.2.1.tgz#ab9db879526db3837cc9ce4fd983c025b1689f22" - integrity sha512-MjlznhLLKy9+kG8nAXKJLM0/ClsQp/Or2vI3a5rbSQmgl8IJBQO0KI5FA70BvW+hqjtxjp49SpH2E7okS6NmHg== - dependencies: - bytes "^3.1.0" - chalk "^2.4.2" - humanize-number "0.0.2" - passthrough-counter "^1.0.0" - -koa-send@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-5.0.0.tgz#5e8441e07ef55737734d7ced25b842e50646e7eb" - integrity sha512-90ZotV7t0p3uN9sRwW2D484rAaKIsD8tAVtypw/aBU+ryfV+fR2xrcAwhI8Wl6WRkojLUs/cB9SBSCuIb+IanQ== - dependencies: - debug "^3.1.0" - http-errors "^1.6.3" - mz "^2.7.0" - resolve-path "^1.4.0" - -koa-static@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/koa-static/-/koa-static-5.0.0.tgz#5e92fc96b537ad5219f425319c95b64772776943" - integrity sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ== - dependencies: - debug "^3.1.0" - koa-send "^5.0.0" - -koa@^2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/koa/-/koa-2.11.0.tgz#fe5a51c46f566d27632dd5dc8fd5d7dd44f935a4" - integrity sha512-EpR9dElBTDlaDgyhDMiLkXrPwp6ZqgAIBvhhmxQ9XN4TFgW+gEz6tkcsNI6BnUbUftrKDjVFj4lW2/J2aNBMMA== - dependencies: - accepts "^1.3.5" - cache-content-type "^1.0.0" - content-disposition "~0.5.2" - content-type "^1.0.4" - cookies "~0.8.0" - debug "~3.1.0" - delegates "^1.0.0" - depd "^1.1.2" - destroy "^1.0.4" - encodeurl "^1.0.2" - error-inject "^1.0.0" - escape-html "^1.0.3" - fresh "~0.5.2" - http-assert "^1.3.0" - http-errors "^1.6.3" - is-generator-function "^1.0.7" - koa-compose "^4.1.0" - koa-convert "^1.2.0" - on-finished "^2.3.0" - only "~0.0.2" - parseurl "^1.3.2" - statuses "^1.5.0" - type-is "^1.6.16" - vary "^1.1.2" - -latest-version@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" - integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= - dependencies: - package-json "^4.0.0" - -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -loglevel@^1.6.4: - version "1.6.6" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.6.tgz#0ee6300cc058db6b3551fa1c4bf73b83bb771312" - integrity sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ== - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lowercase-keys@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz#1b5f39f6b9270ed33f9f054c5c0f84304989f801" - integrity sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw== - dependencies: - semver "^6.0.0" - -mamacro@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" - integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== - -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -methods@^1.0.1, methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.40.0: - version "1.40.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" - integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== - -"mime-db@>= 1.40.0 < 2": - version "1.42.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" - integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== - -mime-types@^2.1.18, mime-types@~2.1.17, mime-types@~2.1.24: - version "2.1.24" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" - integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== - dependencies: - mime-db "1.40.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.4.4: - version "2.4.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" - integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== - -mimic-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minipass@^2.6.0, 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.3.3: - 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: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.1, mkdirp@^0.5.5: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -moment@^2.22.1: - version "2.27.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.27.0.tgz#8bff4e3e26a236220dfe3e36de756b6ebaa0105d" - integrity sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ== - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -mysql@^2.17.1: - version "2.17.1" - resolved "https://registry.yarnpkg.com/mysql/-/mysql-2.17.1.tgz#62bba4a039a9b2f73638cd1652ce50fc6f682899" - integrity sha512-7vMqHQ673SAk5C8fOzTG2LpPcf3bNt0oL3sFpxPEEFp1mdlDcrLK0On7z8ZYKaaHrHwNcQ/MTUz7/oobZ2OyyA== - dependencies: - bignumber.js "7.2.1" - readable-stream "2.3.6" - safe-buffer "5.1.2" - sqlstring "2.3.1" - -mz@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - -nan@^2.12.1: - version "2.14.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -needle@^2.2.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.5.0, neo-async@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-fetch@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== - -node-forge@0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" - integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-modules-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" - integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= - -node-pre-gyp@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" - integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== - 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" - -node-releases@^1.1.38: - version "1.1.39" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.39.tgz#c1011f30343aff5b633153b10ff691d278d08e8d" - integrity sha512-8MRC/ErwNCHOlAFycy9OPca46fQYUjbJRDcZTHVWIGXIjYLM73k70vv3WkYutVnM4cCo4hE0MqBVVZjP6vjISA== - dependencies: - semver "^6.3.0" - -nodemon@^1.19.4: - version "1.19.4" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.19.4.tgz#56db5c607408e0fdf8920d2b444819af1aae0971" - integrity sha512-VGPaqQBNk193lrJFotBU8nvWZPqEZY2eIzymy2jjY0fJ9qIsxA0sxQ8ATPl0gZC645gijYEc1jtZvpS8QWzJGQ== - dependencies: - chokidar "^2.1.8" - debug "^3.2.6" - ignore-by-default "^1.0.1" - minimatch "^3.0.4" - pstree.remy "^1.1.7" - semver "^5.7.1" - supports-color "^5.5.0" - touch "^3.1.0" - undefsafe "^2.0.2" - update-notifier "^2.5.0" - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= - dependencies: - abbrev "1" - osenv "^0.1.4" - -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= - dependencies: - abbrev "1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-bundled@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" - integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== - -npm-packlist@^1.1.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.6.tgz#53ba3ed11f8523079f1457376dd379ee4ea42ff4" - integrity sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - 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" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-is@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" - integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -on-finished@^2.3.0, on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -only@~0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" - integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= - -opener@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" - integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== - -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - -original@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - 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: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - -os-tmpdir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - 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: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" - integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== - dependencies: - p-try "^2.0.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== - dependencies: - retry "^0.12.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" - integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= - dependencies: - got "^6.7.1" - registry-auth-token "^3.0.1" - registry-url "^3.0.3" - semver "^5.1.0" - -pako@~1.0.5: - version "1.0.10" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" - integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -parse-asn1@^5.0.0: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parseurl@^1.3.2, parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -passthrough-counter@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/passthrough-counter/-/passthrough-counter-1.0.0.tgz#1967d9e66da572b5c023c787db112a387ab166fa" - integrity sha1-GWfZ5m2lcrXAI8eH2xEqOHqxZvo= - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@1.0.1, path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@^1.0.1, path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.0.tgz#99a10d870a803bdd5ee6f0470e58dfcd2f9a54d3" - integrity sha512-8cChqz0RP6SHJkMt48FW0A7+qUOn+OsnOsVtzI59tZ8m+5bCSk7hzwET0pulwOM2YMn9J1efb07KB9l9f30SGg== - -path-parse@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-to-regexp@^1.1.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" - integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30= - dependencies: - isarray "0.0.1" - -pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pirates@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" - integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== - dependencies: - node-modules-regexp "^1.0.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -portfinder@^1.0.25: - version "1.0.25" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" - integrity sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg== - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.1" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - -private@^0.1.6: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -proxy-addr@~2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" - integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.0" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -pstree.remy@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.7.tgz#c76963a28047ed61542dc361aa26ee55a7fa15f3" - integrity sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -"readable-stream@1 || 2", readable-stream@2.3.6, 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: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" - integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -regenerate-unicode-properties@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== - -regenerator-runtime@^0.13.2: - version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" - integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== - -regenerator-transform@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" - integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== - dependencies: - private "^0.1.6" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.prototype.flags@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" - integrity sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA== - dependencies: - define-properties "^1.1.2" - -regexpu-core@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" - integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.1.0" - regjsgen "^0.5.0" - regjsparser "^0.6.0" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.1.0" - -registry-auth-token@^3.0.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" - integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== - dependencies: - rc "^1.1.6" - safe-buffer "^5.0.1" - -registry-url@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" - integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= - dependencies: - rc "^1.0.1" - -regjsgen@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" - integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== - -regjsparser@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" - integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== - dependencies: - jsesc "~0.5.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-path@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7" - integrity sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc= - dependencies: - http-errors "~1.6.2" - path-is-absolute "1.0.1" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.3.2, resolve@^1.8.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== - dependencies: - path-parse "^1.0.6" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= - -rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.0.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.5.0.tgz#8f254f618d402cc80257486213c8970edfd7c22f" - integrity sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ== - dependencies: - ajv "^6.10.2" - ajv-keywords "^3.4.1" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= - -selfsigned@^1.10.7: - version "1.10.7" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" - integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== - dependencies: - node-forge "0.9.0" - -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= - dependencies: - semver "^5.0.3" - -semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-javascript@^1.7.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" - integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sockjs-client@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" - integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== - dependencies: - debug "^3.2.5" - eventsource "^1.0.7" - faye-websocket "~0.11.1" - inherits "^2.0.3" - json3 "^3.3.2" - url-parse "^1.4.3" - -sockjs@0.3.19: - version "0.3.19" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" - integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== - dependencies: - faye-websocket "^0.10.0" - uuid "^3.0.1" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== - dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.5.16, source-map-support@~0.5.12: - version "0.5.16" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" - integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" - integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -speed-measure-webpack-plugin@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.1.tgz#69840a5cdc08b4638697dac7db037f595d7f36a0" - integrity sha512-qVIkJvbtS9j/UeZumbdfz0vg+QfG/zxonAjzefZrqzkr7xOncLVXkeGbTpzd1gjCBM4PmVNkWlkeTVhgskAGSQ== - dependencies: - chalk "^2.0.1" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sqlstring@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.1.tgz#475393ff9e91479aea62dcaf0ca3d14983a7fb40" - integrity sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A= - -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== - dependencies: - figgy-pudding "^3.5.1" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0, statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -supports-color@^5.3.0, supports-color@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tar@^4: - version "4.4.19" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" - integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== - dependencies: - chownr "^1.1.4" - fs-minipass "^1.2.7" - minipass "^2.9.0" - minizlib "^1.3.3" - mkdirp "^0.5.5" - safe-buffer "^5.2.1" - yallist "^3.1.1" - -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= - dependencies: - execa "^0.7.0" - -terser-webpack-plugin@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" - integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^1.7.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser@^4.1.2: - version "4.3.9" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.9.tgz#e4be37f80553d02645668727777687dad26bbca8" - integrity sha512-NFGMpHjlzmyOtPL+fDw3G7+6Ueh/sz4mkaUYa4lJCxOPTNzd0Uj0aZJOmsDYoSQyfuVoWDMSWTPU3huyOm2zdA== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.0" - resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" - integrity sha1-5p44obq+lpsBCCB5eLn2K4hgSDk= - dependencies: - any-promise "^1.0.0" - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -timed-out@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== - dependencies: - setimmediate "^1.0.4" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -touch@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" - integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== - dependencies: - nopt "~1.0.10" - -tryer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" - integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== - -tslib@^1.9.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== - -tsscmp@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" - integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -type-is@^1.6.16, type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -undefsafe@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.2.tgz#225f6b9e0337663e0d8e7cfd686fc2836ccace76" - integrity sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY= - dependencies: - debug "^2.2.0" - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= - dependencies: - crypto-random-string "^1.0.0" - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -unzip-response@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" - integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -update-notifier@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" - integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== - dependencies: - boxen "^1.2.1" - chalk "^2.0.1" - configstore "^3.0.0" - import-lazy "^2.1.0" - is-ci "^1.0.10" - is-installed-globally "^0.1.0" - is-npm "^1.0.0" - latest-version "^3.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -urijs@^1.19.0: - version "1.19.6" - resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.6.tgz#51f8cb17ca16faefb20b9a31ac60f84aa2b7c870" - integrity sha512-eSXsXZ2jLvGWeLYlQA3Gh36BcjF+0amo92+wHPyN1mdR8Nxf75fuEuYTd9c0a+m/vhCjRK0ESlE9YNLW+E1VEw== - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= - dependencies: - prepend-http "^1.0.1" - -url-parse@^1.4.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" - integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.0.1, uuid@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" - integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== - -uuid@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" - integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ== - -vary@^1.1.2, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -watchpack@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== - dependencies: - chokidar "^2.0.2" - graceful-fs "^4.1.2" - neo-async "^2.5.0" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -webpack-bundle-analyzer@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.0.tgz#39b3a8f829ca044682bc6f9e011c95deb554aefd" - integrity sha512-orUfvVYEfBMDXgEKAKVvab5iQ2wXneIEorGNsyuOyVYpjYrI7CUOhhXNDd3huMwQ3vNNWWlGP+hzflMFYNzi2g== - dependencies: - acorn "^6.0.7" - acorn-walk "^6.1.1" - bfj "^6.1.1" - chalk "^2.4.1" - commander "^2.18.0" - ejs "^2.6.1" - express "^4.16.3" - filesize "^3.6.1" - gzip-size "^5.0.0" - lodash "^4.17.15" - mkdirp "^0.5.1" - opener "^1.5.1" - ws "^6.0.0" - -webpack-dev-middleware@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" - integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@^3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz#27c3b5d0f6b6677c4304465ac817623c8b27b89c" - integrity sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw== - dependencies: - ansi-html "0.0.7" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.2.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.4" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.25" - schema-utils "^1.0.0" - selfsigned "^1.10.7" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "0.3.19" - sockjs-client "1.4.0" - spdy "^4.0.1" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "12.0.5" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-merge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" - integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== - dependencies: - lodash "^4.17.15" - -webpack-sources@^1.4.0, webpack-sources@^1.4.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^4.41.2: - version "4.41.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.2.tgz#c34ec76daa3a8468c9b61a50336d8e3303dce74e" - integrity sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/wasm-edit" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - acorn "^6.2.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.1" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.1" - watchpack "^1.6.0" - webpack-sources "^1.4.1" - -websocket-driver@>=0.5.1: - version "0.7.3" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" - integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== - dependencies: - http-parser-js ">=0.4.0 <0.4.11" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.1.tgz#f1cf94d07a8e571b6ff006aeb91d0300c47ef0a4" - integrity sha512-N7GBZOTswtB9lkQBZA4+zAXrjEIWAUOB93AvzUiudRzRxhUdLURQ7D/gAIMY1gatT/LTbmbcv8SiYazy3eYB7w== - dependencies: - 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" - -widest-line@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" - integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== - dependencies: - string-width "^2.1.1" - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^2.0.0, write-file-atomic@^2.3.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write-file-webpack-plugin@^4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/write-file-webpack-plugin/-/write-file-webpack-plugin-4.5.1.tgz#aeeb68889194da5ec8a864667d46da9e00ee92d5" - integrity sha512-AZ7qJUvhTCBiOtG21aFJUcNuLVo2FFM6JMGKvaUGAH+QDqQAp2iG0nq3GcuXmJOFQR2JjpjhyYkyPrbFKhdjNQ== - dependencies: - chalk "^2.4.0" - debug "^3.1.0" - filesize "^3.6.1" - lodash "^4.17.13" - mkdirp "^0.5.1" - moment "^2.22.1" - write-file-atomic "^2.3.0" - -ws@^6.0.0, ws@^6.2.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== - dependencies: - async-limiter "~1.0.0" - -xdg-basedir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@12.0.5: - version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== - dependencies: - cliui "^4.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^11.1.1" - -ylru@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" - integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==