Release blockers #1469

Merged
neb-b merged 9 commits from release-blockers into master 2018-05-16 23:42:08 +02:00
20 changed files with 247 additions and 166 deletions

View file

@ -35,6 +35,7 @@
}],
"func-names": ["warn", "as-needed"],
"jsx-a11y/label-has-for": 0,
"import/prefer-default-export": 0
"import/prefer-default-export": 0,
"no-return-assign": 0
}
neb-b commented 2018-05-16 21:32:40 +02:00 (Migrated from github.com)
Review

I think we can get rid of this since it is a common patter to return assignments for react refs

<input ref={(input) => this.input = input} />
I think we can get rid of this since it is a common patter to return assignments for react refs ``` <input ref={(input) => this.input = input} /> ```
}

View file

@ -25,7 +25,7 @@ class IconComponent extends React.PureComponent<Props> {
let size = 14;
if (icon === icons.ARROW_LEFT || icon === icons.ARROW_RIGHT) {
size = 18;
size = 20;
}
return Icon ? <Icon size={size} className="icon" color={color} /> : null;

View file

@ -59,7 +59,7 @@ class FileListSearch extends React.PureComponent<Props> {
query && (
<div className="search__results">
<div className="search-result__column">
<div className="file-list__header">{__('Files')}</div>
<div className="file-list__header">{__('Content')}</div>
{!isSearching &&
(fileResults.length ? (
fileResults.map(uri => <FileTile key={uri} uri={uri} />)
@ -81,7 +81,7 @@ class FileListSearch extends React.PureComponent<Props> {
<div className="search-result__column">
<div className="file-list__header">{__('Your downloads')}</div>
{downloadUris && downloadUris.length ? (
downloadUris.map(uri => <FileTile test key={uri} uri={uri} />)
downloadUris.map(uri => <FileTile hideNoResult key={uri} uri={uri} />)
) : (
<NoResults />
)}

View file

@ -1,12 +1,13 @@
// @flow
import * as React from 'react';
import * as icons from 'constants/icons';
import { normalizeURI, isURIClaimable, parseURI } from 'lbry-redux';
import { normalizeURI, parseURI } from 'lbry-redux';
import CardMedia from 'component/cardMedia';
import TruncatedText from 'component/common/truncated-text';
import Icon from 'component/common/icon';
import Button from 'component/button';
import classnames from 'classnames';
import FilePrice from 'component/filePrice';
type Props = {
fullWidth: boolean, // removes the max-width css
@ -21,11 +22,15 @@ type Props = {
channel_name: string,
claim_id: string,
},
metadata: {},
metadata: ?{
title: ?string,
thumbnail: ?string,
},
resolveUri: string => void,
navigate: (string, ?{}) => void,
clearPublish: () => void,
updatePublishForm: () => void,
updatePublishForm: ({}) => void,
hideNoResult: boolean, // don't show the tile if there is no claim at this uri
};
class FileTile extends React.PureComponent<Props> {
@ -58,6 +63,7 @@ class FileTile extends React.PureComponent<Props> {
isDownloaded,
clearPublish,
updatePublishForm,
hideNoResult,
} = this.props;
const uri = normalizeURI(this.props.uri);
@ -76,7 +82,7 @@ class FileTile extends React.PureComponent<Props> {
channel = claim.channel_name;
}
return (
return !name && hideNoResult ? null : (
<section
className={classnames('file-tile card--link', {
'file-tile--fullwidth': fullWidth,
@ -98,6 +104,9 @@ class FileTile extends React.PureComponent<Props> {
{showUri ? uri : channel || __('Anonymous')}
{isRewardContent && <Icon icon={icons.FEATURED} />}
{showLocal && isDownloaded && <Icon icon={icons.LOCAL} />}
<div className="card__subtitle-price">
<FilePrice uri={uri} />
</div>
</div>
{!name && (
<React.Fragment>

View file

@ -12,11 +12,9 @@ import {
makeSelectFileInfoForUri,
makeSelectLoadingForUri,
makeSelectDownloadingForUri,
selectSearchBarFocused,
} from 'lbry-redux';
import {
makeSelectClientSetting,
selectShowNsfw
} from 'redux/selectors/settings';
import { makeSelectClientSetting, selectShowNsfw } from 'redux/selectors/settings';
import { selectMediaPaused, makeSelectMediaPositionForUri } from 'redux/selectors/media';
import { selectPlayingUri } from 'redux/selectors/content';
import Video from './view';
@ -34,7 +32,8 @@ const select = (state, props) => ({
volume: selectVolume(state),
mediaPaused: selectMediaPaused(state),
mediaPosition: makeSelectMediaPositionForUri(props.uri)(state),
autoplay: makeSelectClientSetting(settings.AUTOPLAY)(state)
autoplay: makeSelectClientSetting(settings.AUTOPLAY)(state),
searchBarFocused: selectSearchBarFocused(state),
});
const perform = dispatch => ({

View file

@ -3,40 +3,22 @@ import React from 'react';
import Button from 'component/button';
type Props = {
play: string => void,
play: () => void,
isLoading: boolean,
uri: string,
mediaType: string,
fileInfo: ?{},
};
class VideoPlayButton extends React.PureComponent<Props> {
watch: () => void;
constructor() {
super();
this.watch = this.watch.bind(this);
}
watch() {
this.props.play(this.props.uri);
}
render() {
const { fileInfo, mediaType, isLoading } = this.props;
const { fileInfo, mediaType, isLoading, play } = this.props;
const disabled = isLoading || fileInfo === undefined;
const doesPlayback = ['audio', 'video'].indexOf(mediaType) !== -1;
const icon = doesPlayback ? 'Play' : 'Folder';
const label = doesPlayback ? 'Play' : 'View';
return (
<Button
button="secondary"
disabled={disabled}
label={label}
icon={icon}
onClick={this.watch}
/>
<Button button="secondary" disabled={disabled} label={label} icon={icon} onClick={play} />
);
}
}

View file

@ -7,6 +7,8 @@ import VideoPlayer from './internal/player';
import VideoPlayButton from './internal/play-button';
import LoadingScreen from './internal/loading-screen';
const SPACE_BAR_KEYCODE = 32;
type Props = {
cancelPlay: () => void,
fileInfo: {
@ -37,11 +39,20 @@ type Props = {
className: ?string,
obscureNsfw: boolean,
play: string => void,
searchBarFocused: boolean,
};
class Video extends React.PureComponent<Props> {
constructor() {
super();
(this: any).playContent = this.playContent.bind(this);
(this: any).handleKeyDown = this.handleKeyDown.bind(this);
}
componentDidMount() {
this.handleAutoplay(this.props);
window.addEventListener('keydown', this.handleKeyDown);
}
componentWillReceiveProps(nextProps: Props) {
@ -57,10 +68,29 @@ class Video extends React.PureComponent<Props> {
componentWillUnmount() {
this.props.cancelPlay();
window.removeEventListener('keydown', this.handleKeyDown);
}
handleAutoplay(props: Props) {
const { autoplay, playingUri, fileInfo, costInfo, isDownloading, uri, load, play, metadata } = props;
handleKeyDown(event: SyntheticKeyboardEvent<*>) {
const { searchBarFocused } = this.props;
if (!searchBarFocused && event.keyCode === SPACE_BAR_KEYCODE) {
event.preventDefault(); // prevent page scroll
this.playContent();
}
}
handleAutoplay = (props: Props) => {
const {
autoplay,
playingUri,
fileInfo,
costInfo,
isDownloading,
uri,
load,
play,
metadata,
} = props;
const playable = autoplay && playingUri !== uri && metadata && !metadata.nsfw;
@ -70,7 +100,7 @@ class Video extends React.PureComponent<Props> {
} else if (playable && fileInfo && fileInfo.blobs_completed > 0) {
play(uri);
}
}
};
isMediaSame(nextProps: Props) {
return (
@ -80,6 +110,11 @@ class Video extends React.PureComponent<Props> {
);
}
playContent() {
const { play, uri } = this.props;
play(uri);
}
render() {
const {
metadata,
@ -99,7 +134,6 @@ class Video extends React.PureComponent<Props> {
mediaPosition,
className,
obscureNsfw,
play,
} = this.props;
const isPlaying = playingUri === uri;
@ -154,9 +188,14 @@ class Video extends React.PureComponent<Props> {
</div>
)}
{!isPlaying && (
<div className={layoverClass} style={layoverStyle}>
<div
role="button"
onClick={this.playContent}
className={layoverClass}
style={layoverStyle}
>
<VideoPlayButton
play={play}
play={this.playContent}
fileInfo={fileInfo}
uri={uri}
isLoading={isLoading}

View file

@ -5,6 +5,8 @@ import {
doUpdateSearchQuery,
doNotify,
MODALS,
doFocusSearchInput,
doBlurSearchInput,
} from 'lbry-redux';
import { doNavigate } from 'redux/actions/navigation';
import Wunderbar from './view';
@ -30,6 +32,8 @@ const perform = dispatch => ({
},
onSubmit: (uri, extraParams) => dispatch(doNavigate('/show', { uri, ...extraParams })),
updateSearchQuery: query => dispatch(doUpdateSearchQuery(query)),
doFocus: () => dispatch(doFocusSearchInput()),
doBlur: () => dispatch(doBlurSearchInput()),
});
export default connect(select, perform)(Wunderbar);

View file

@ -445,6 +445,10 @@ export default class Autocomplete extends React.Component {
}
renderMenu() {
if (!this.props.value) {
return null;
}
const items = this.getFilteredItems(this.props).map((item, index) => {
const element = this.props.renderItem(item, this.state.highlightedIndex === index, {
cursor: 'default',

View file

@ -13,6 +13,8 @@ type Props = {
onSubmit: (string, {}) => void,
wunderbarValue: ?string,
suggestions: Array<string>,
doFocus: () => void,
doBlur: () => void,
};
class WunderBar extends React.PureComponent<Props> {
@ -83,7 +85,7 @@ class WunderBar extends React.PureComponent<Props> {
input: ?HTMLInputElement;
render() {
const { wunderbarValue, suggestions } = this.props;
const { wunderbarValue, suggestions, doFocus, doBlur } = this.props;
return (
<div className="wunderbar">
@ -96,6 +98,10 @@ class WunderBar extends React.PureComponent<Props> {
getItemValue={item => item.value}
onChange={this.handleChange}
onSelect={this.handleSubmit}
inputProps={{
onFocus: doFocus,
onBlur: doBlur,
}}
renderInput={props => (
<input
{...props}

View file

@ -1,8 +1,14 @@
// @flow
import React from 'react';
import { Modal } from 'modal/modal';
import Button from 'component/button';
class ModalIncompatibleDaemon extends React.PureComponent {
type Props = {
quit: () => void,
quitAnyDaemon: () => void,
};
class ModalIncompatibleDaemon extends React.PureComponent<Props> {
render() {
const { quit, quitAnyDaemon } = this.props;
@ -19,7 +25,11 @@ class ModalIncompatibleDaemon extends React.PureComponent {
{__(
'This browser is running with an incompatible version of the LBRY protocol and your install must be repaired. '
)}
<Button label={__('Learn more')} href="https://lbry.io/faq/incompatible-protocol-version" />
<Button
button="link"
label={__('Learn more')}
href="https://lbry.io/faq/incompatible-protocol-version"
/>
</Modal>
);
}

View file

@ -59,6 +59,7 @@ class SearchPage extends React.PureComponent<Props> {
</React.Fragment>
)}
<FileListSearch query={query} />
<div className="help">{__('These search results are provided by LBRY, Inc.')}</div>
</div>
</Page>
);

View file

@ -251,12 +251,21 @@ export function doCheckUpgradeSubscribe() {
export function doCheckDaemonVersion() {
return dispatch => {
Lbry.version().then(({ lbrynet_version: lbrynetVersion }) => {
if (config.lbrynetDaemonVersion === lbrynetVersion) {
dispatch({
type:
config.lbrynetDaemonVersion === lbrynetVersion
? ACTIONS.DAEMON_VERSION_MATCH
: ACTIONS.DAEMON_VERSION_MISMATCH,
type: ACTIONS.DAEMON_VERSION_MATCH,
});
return;
}
dispatch({
type: ACTIONS.DAEMON_VERSION_MISMATCH,
});
dispatch(
doNotify({
id: MODALS.INCOMPATIBLE_DAEMON,
})
);
});
};
}

View file

@ -1,7 +1,6 @@
// @flow
import * as ACTIONS from 'constants/action_types';
import { MODALS } from 'lbry-redux';
import { remote } from 'electron';
@ -74,7 +73,6 @@ reducers[ACTIONS.DAEMON_VERSION_MATCH] = state =>
reducers[ACTIONS.DAEMON_VERSION_MISMATCH] = state =>
Object.assign({}, state, {
daemonVersionMatched: false,
modal: MODALS.INCOMPATIBLE_DAEMON,
});
reducers[ACTIONS.UPGRADE_CANCELLED] = state =>

View file

@ -259,6 +259,7 @@ p {
font-family: 'metropolis-bold';
font-size: 10px;
padding: 5px;
white-space: nowrap;
}
.credit-amount--large {

View file

@ -146,7 +146,8 @@ $large-breakpoint: 1760px;
--success-msg-bg: var(--color-green-light);
/* File Tile Card */
--file-tile--media-size: 60px;
--file-tile--media-height: 60px;
--file-tile--media-width: 94px; // 60 * (1 + 9/16)
/* Modal */
--modal-width: 440px;

View file

@ -145,10 +145,7 @@ button:disabled {
.btn.btn--arrow {
width: var(--btn-arrow-width);
&:hover:not(:disabled) {
color: var(--text-color);
}
&:disabled {
opacity: 0.3;

View file

@ -131,6 +131,10 @@
}
}
.card__subtitle-price {
padding-top: $spacing-vertical * 1/3;
}
.card__subtitle--file-info {
display: flex;
align-items: center;

View file

@ -20,10 +20,10 @@
display: flex;
margin-top: $spacing-vertical;
max-width: 260px;
height: var(--file-tile--media-size);
.card__media {
flex: 0 0 var(--file-tile--media-size);
height: var(--file-tile--media-height);
flex: 0 0 var(--file-tile--media-width);
}
.card__subtitle {

236
yarn.lock
View file

@ -33,10 +33,10 @@
"@babel/highlight" "7.0.0-beta.44"
"@babel/code-frame@^7.0.0-beta.35":
version "7.0.0-beta.46"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.46.tgz#e0d002100805daab1461c0fcb32a07e304f3a4f4"
version "7.0.0-beta.47"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.47.tgz#d18c2f4c4ba8d093a2bcfab5616593bfe2441a27"
dependencies:
"@babel/highlight" "7.0.0-beta.46"
"@babel/highlight" "7.0.0-beta.47"
"@babel/generator@7.0.0-beta.44":
version "7.0.0-beta.44"
@ -83,9 +83,9 @@
esutils "^2.0.2"
js-tokens "^3.0.0"
"@babel/highlight@7.0.0-beta.46":
version "7.0.0-beta.46"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.46.tgz#c553c51e65f572bdedd6eff66fc0bb563016645e"
"@babel/highlight@7.0.0-beta.47":
version "7.0.0-beta.47"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.47.tgz#8fbc83fb2a21f0bd2b95cdbeb238cf9689cad494"
dependencies:
chalk "^2.0.0"
esutils "^2.0.2"
@ -138,8 +138,8 @@
unist-util-visit "^1.3.0"
"@octokit/rest@^15.2.6":
version "15.4.0"
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-15.4.0.tgz#8d5f08562adf7ddab5668ef243d8fedd283bcd85"
version "15.5.1"
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-15.5.1.tgz#66be91d5e99b0936665b3494e25b364358b2bf63"
dependencies:
before-after-hook "^1.1.0"
btoa-lite "^1.0.0"
@ -151,8 +151,8 @@
url-template "^2.0.8"
"@types/node@^8.0.24":
version "8.10.13"
resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.13.tgz#786153acbe3e8e0b844053e72c9d9f2db71c796a"
version "8.10.15"
resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.15.tgz#3ce3cdf6ee1846a9db0c0f52275c14bf0cd67f67"
"@types/webpack-env@^1.13.5":
version "1.13.6"
@ -507,7 +507,7 @@ asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
atob@^2.0.0:
atob@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a"
@ -523,8 +523,8 @@ autoprefixer@^6.3.1:
postcss-value-parser "^3.2.3"
aws-sdk@^2.231.1:
version "2.235.1"
resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.235.1.tgz#b895da9482bb5d90b2f54c45203b7a3c1c2b7cea"
version "2.239.1"
resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.239.1.tgz#299a3e611e5c47b39230bd1f51e2d25d1fbdb345"
dependencies:
buffer "4.9.1"
events "1.1.1"
@ -535,7 +535,6 @@ aws-sdk@^2.231.1:
url "0.10.3"
uuid "3.1.0"
xml2js "0.4.17"
xmlbuilder "4.2.1"
aws-sign2@~0.6.0:
version "0.6.0"
@ -1106,8 +1105,8 @@ babel-polyfill@^6.20.0, babel-polyfill@^6.23.0, babel-polyfill@^6.26.0:
regenerator-runtime "^0.10.5"
babel-preset-env@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48"
version "1.7.0"
resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a"
dependencies:
babel-plugin-check-es2015-constants "^6.22.0"
babel-plugin-syntax-trailing-function-commas "^6.22.0"
@ -1136,7 +1135,7 @@ babel-preset-env@^1.6.1:
babel-plugin-transform-es2015-unicode-regex "^6.22.0"
babel-plugin-transform-exponentiation-operator "^6.22.0"
babel-plugin-transform-regenerator "^6.22.0"
browserslist "^2.1.2"
browserslist "^3.2.6"
invariant "^2.2.2"
semver "^5.3.0"
@ -1525,12 +1524,12 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6:
caniuse-db "^1.0.30000639"
electron-to-chromium "^1.2.7"
browserslist@^2.1.2:
version "2.11.3"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2"
browserslist@^3.2.6:
version "3.2.7"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.7.tgz#aa488634d320b55e88bab0256184dbbcca1e6de9"
dependencies:
caniuse-lite "^1.0.30000792"
electron-to-chromium "^1.3.30"
caniuse-lite "^1.0.30000835"
electron-to-chromium "^1.3.45"
btoa-lite@^1.0.0:
version "1.0.0"
@ -1721,12 +1720,12 @@ caniuse-api@^1.5.2:
lodash.uniq "^4.5.0"
caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
version "1.0.30000836"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000836.tgz#788b6c8f6f02991743b18cdbbd54f96d05b4b95a"
version "1.0.30000840"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000840.tgz#68d5a0f0694c92180b0d82e720d70f8e61366604"
caniuse-lite@^1.0.30000792:
version "1.0.30000836"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000836.tgz#c08f405b884d36dc44fa4c9a85c2c06cdab1dbb5"
caniuse-lite@^1.0.30000835:
version "1.0.30000840"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000840.tgz#344513f8f843536cf99694964c09811277eee395"
capture-stack-trace@^1.0.0:
version "1.0.0"
@ -2046,8 +2045,8 @@ colormin@^1.0.5:
has "^1.0.1"
colors@^1.1.2:
version "1.2.4"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.4.tgz#e0cb41d3e4b20806b3bfc27f4559f01b94bc2f7c"
version "1.2.5"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.5.tgz#89c7ad9a374bc030df8013241f68136ed8835afc"
colors@~1.1.2:
version "1.1.2"
@ -2507,8 +2506,8 @@ danger-plugin-yarn@^1.3.0:
esdoc "^0.5.2"
danger@^3.6.0:
version "3.6.5"
resolved "https://registry.yarnpkg.com/danger/-/danger-3.6.5.tgz#e00fe1e88b2d82ab2a90ce7e0da5b9f15d1206d4"
version "3.6.6"
resolved "https://registry.yarnpkg.com/danger/-/danger-3.6.6.tgz#683ecd1644f9444a15644d698c6ac4f6e1499c92"
dependencies:
"@octokit/rest" "^15.2.6"
babel-polyfill "^6.23.0"
@ -2536,7 +2535,7 @@ danger@^3.6.0:
require-from-string "^2.0.1"
rfc6902 "^2.2.2"
supports-hyperlinks "^1.0.1"
vm2 patriksimek/vm2#custom_files
vm2 "^3.6.0"
voca "^1.4.0"
dashdash@^1.12.0:
@ -2889,8 +2888,8 @@ domhandler@2.3:
domelementtype "1"
domhandler@^2.3.0:
version "2.4.1"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259"
version "2.4.2"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803"
dependencies:
domelementtype "1"
@ -2961,9 +2960,38 @@ ejs@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0"
electron-builder-lib@20.13.3, electron-builder-lib@~20.13.2:
version "20.13.3"
resolved "https://registry.yarnpkg.com/electron-builder-lib/-/electron-builder-lib-20.13.3.tgz#1fc9b795fa913125c0708426a16159fb854b8e3b"
electron-builder-lib@20.13.4:
version "20.13.4"
resolved "https://registry.yarnpkg.com/electron-builder-lib/-/electron-builder-lib-20.13.4.tgz#dcadc4a72b4d57996c11a32e5a6a4669bbb4cff9"
dependencies:
"7zip-bin" "~3.1.0"
app-builder-bin "1.8.6"
async-exit-hook "^2.0.1"
bluebird-lst "^1.0.5"
builder-util "5.8.1"
builder-util-runtime "4.2.1"
chromium-pickle-js "^0.2.0"
debug "^3.1.0"
ejs "^2.6.1"
electron-osx-sign "0.4.10"
electron-publish "20.13.2"
fs-extra-p "^4.6.0"
hosted-git-info "^2.6.0"
is-ci "^1.1.0"
isbinaryfile "^3.0.2"
js-yaml "^3.11.0"
lazy-val "^1.0.3"
minimatch "^3.0.4"
normalize-package-data "^2.4.0"
plist "^3.0.1"
read-config-file "3.0.1"
sanitize-filename "^1.6.1"
semver "^5.5.0"
temp-file "^3.1.2"
electron-builder-lib@~20.13.2:
version "20.13.5"
resolved "https://registry.yarnpkg.com/electron-builder-lib/-/electron-builder-lib-20.13.5.tgz#7c1d978c08b5ca6f668d5d825f7d3aae9cc9296e"
dependencies:
"7zip-bin" "~3.1.0"
app-builder-bin "1.8.6"
@ -2991,15 +3019,15 @@ electron-builder-lib@20.13.3, electron-builder-lib@~20.13.2:
temp-file "^3.1.2"
electron-builder@^20.13.3:
version "20.13.3"
resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-20.13.3.tgz#ef419c9a2a62faaf5d5e5e1968b18b2418befe36"
version "20.13.4"
resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-20.13.4.tgz#fad23bcf9db1923785ef6bdbcf286a8780453240"
dependencies:
bluebird-lst "^1.0.5"
builder-util "5.8.1"
builder-util-runtime "4.2.1"
chalk "^2.4.1"
dmg-builder "4.1.8"
electron-builder-lib "20.13.3"
electron-builder-lib "20.13.4"
electron-download-tf "4.3.4"
fs-extra-p "^4.6.0"
is-ci "^1.1.0"
@ -3096,7 +3124,7 @@ electron-publisher-s3@^20.8.1:
fs-extra-p "^4.6.0"
mime "^2.3.1"
electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30:
electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.45:
version "1.3.45"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.45.tgz#458ac1b1c5c760ce8811a16d2bfbd97ec30bafb8"
@ -3481,8 +3509,8 @@ eslint-plugin-prettier@^2.6.0:
jest-docblock "^21.0.0"
eslint-plugin-react@^7.7.0:
version "7.7.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz#f606c719dbd8a1a2b3d25c16299813878cca0160"
version "7.8.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.8.2.tgz#e95c9c47fece55d2303d1a67c9d01b930b88a51d"
dependencies:
doctrine "^2.0.2"
has "^1.0.1"
@ -4190,8 +4218,8 @@ fs-extra@^5.0.0:
universalify "^0.1.0"
fs-extra@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.0.tgz#0f0afb290bb3deb87978da816fcd3c7797f3a817"
version "6.0.1"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b"
dependencies:
graceful-fs "^4.1.2"
jsonfile "^4.0.0"
@ -4223,11 +4251,11 @@ fs.realpath@^1.0.0:
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
fsevents@^1.1.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.3.tgz#08292982e7059f6674c93d8b829c1e8604979ac0"
version "1.2.4"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426"
dependencies:
nan "^2.9.2"
node-pre-gyp "^0.9.0"
node-pre-gyp "^0.10.0"
fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10:
version "1.0.11"
@ -4668,8 +4696,8 @@ home-or-tmp@^2.0.0:
os-tmpdir "^1.0.1"
home-path@^1.0.1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/home-path/-/home-path-1.0.5.tgz#788b29815b12d53bacf575648476e6f9041d133f"
version "1.0.6"
resolved "https://registry.yarnpkg.com/home-path/-/home-path-1.0.6.tgz#d549dc2465388a7f8667242c5b31588d29af29fc"
homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1:
version "1.0.1"
@ -6180,8 +6208,8 @@ macaddress@^0.2.8:
resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12"
make-dir@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b"
version "1.3.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
dependencies:
pify "^3.0.0"
@ -6283,8 +6311,8 @@ media-typer@0.3.0:
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
mediasource@^2.0.0, mediasource@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/mediasource/-/mediasource-2.2.0.tgz#19e976bf60d5cc82b342b0c8998e8e826b66579a"
version "2.2.1"
resolved "https://registry.yarnpkg.com/mediasource/-/mediasource-2.2.1.tgz#763e706d756f6de0a93d8e824aeab6e90854346c"
dependencies:
inherits "^2.0.1"
readable-stream "^2.0.5"
@ -6695,9 +6723,9 @@ node-notifier@5.1.2:
shellwords "^0.1.0"
which "^1.2.12"
node-pre-gyp@^0.9.0:
version "0.9.1"
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.9.1.tgz#f11c07516dd92f87199dbc7e1838eab7cd56c9e0"
node-pre-gyp@^0.10.0:
version "0.10.0"
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz#6e4ef5bb5c5203c6552448828c852c40111aac46"
dependencies:
detect-libc "^1.0.2"
mkdirp "^0.5.1"
@ -6957,10 +6985,10 @@ ora@^0.2.3:
object-assign "^4.0.1"
original@>=0.0.5:
version "1.0.0"
resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b"
version "1.0.1"
resolved "https://registry.yarnpkg.com/original/-/original-1.0.1.tgz#b0a53ff42ba997a8c9cd1fb5daaeb42b9d693190"
dependencies:
url-parse "1.0.x"
url-parse "~1.4.0"
os-browserify@^0.3.0:
version "0.3.0"
@ -7771,10 +7799,6 @@ querystring@0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
querystringify@0.0.x:
version "0.0.4"
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c"
querystringify@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755"
@ -7850,8 +7874,8 @@ react-feather@^1.0.8:
resolved "https://registry.yarnpkg.com/react-feather/-/react-feather-1.1.0.tgz#f0aa692497de952237ca1f3b118ebcb5427152e1"
react-lifecycles-compat@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.2.tgz#7279047275bd727a912e25f734c0559527e84eff"
version "3.0.4"
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
react-markdown@^2.5.0:
version "2.5.1"
@ -7964,7 +7988,7 @@ read-pkg@^2.0.0:
normalize-package-data "^2.3.2"
path-type "^2.0.0"
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.3, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.5:
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.3, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6:
version "2.3.6"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
dependencies:
@ -8104,8 +8128,8 @@ redux@^3.6.0:
symbol-observable "^1.0.3"
regenerate@^1.2.1:
version "1.3.3"
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f"
version "1.4.0"
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
regenerator-runtime@^0.10.5:
version "0.10.5"
@ -8243,9 +8267,9 @@ 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"
render-media@^2.12.0:
version "2.12.0"
resolved "https://registry.yarnpkg.com/render-media/-/render-media-2.12.0.tgz#e44714d5c9789ec6330ffcaf12c552837e3d80f9"
render-media@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/render-media/-/render-media-3.1.0.tgz#6bf9e7603fa819afe56c57b6baedd33e60c4acba"
dependencies:
debug "^3.1.0"
is-ascii "^1.0.0"
@ -8302,8 +8326,8 @@ request-promise-native@^1.0.5:
tough-cookie ">=2.3.3"
request@2, request@^2.45.0, request@^2.55.0, request@^2.83.0:
version "2.85.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa"
version "2.86.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.86.0.tgz#2b9497f449b0a32654c081a5cf426bbfb5bf5b69"
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.6.0"
@ -8323,7 +8347,6 @@ request@2, request@^2.45.0, request@^2.55.0, request@^2.83.0:
performance-now "^2.1.0"
qs "~6.5.1"
safe-buffer "^5.1.1"
stringstream "~0.0.5"
tough-cookie "~2.3.3"
tunnel-agent "^0.6.0"
uuid "^3.1.0"
@ -8372,7 +8395,7 @@ require-uncached@^1.0.3:
caller-path "^0.1.0"
resolve-from "^1.0.0"
requires-port@1.0.x, requires-port@^1.0.0:
requires-port@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
@ -8817,10 +8840,10 @@ source-list-map@^2.0.0:
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085"
source-map-resolve@^0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a"
version "0.5.2"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
dependencies:
atob "^2.0.0"
atob "^2.1.1"
decode-uri-component "^0.2.0"
resolve-url "^0.2.1"
source-map-url "^0.4.0"
@ -8833,8 +8856,8 @@ source-map-support@^0.4.15:
source-map "^0.5.6"
source-map-support@^0.5.0, source-map-support@^0.5.3, source-map-support@^0.5.4, source-map-support@^0.5.5:
version "0.5.5"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.5.tgz#0d4af9e00493e855402e8ec36ebed2d266fceb90"
version "0.5.6"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13"
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"
@ -8998,12 +9021,12 @@ stream-each@^1.1.0:
stream-shift "^1.0.0"
stream-http@^2.7.2:
version "2.8.1"
resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.1.tgz#d0441be1a457a73a733a8a7b53570bebd9ef66a4"
version "2.8.2"
resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.2.tgz#4126e8c6b107004465918aa2fc35549e77402c87"
dependencies:
builtin-status-codes "^3.0.0"
inherits "^2.0.1"
readable-stream "^2.3.3"
readable-stream "^2.3.6"
to-arraybuffer "^1.0.0"
xtend "^4.0.0"
@ -9083,7 +9106,7 @@ stringify-object@^3.2.2:
is-obj "^1.0.1"
is-regexp "^1.0.0"
stringstream@~0.0.4, stringstream@~0.0.5:
stringstream@~0.0.4:
version "0.0.5"
resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
@ -9254,14 +9277,14 @@ tar-fs@^1.13.0:
tar-stream "^1.1.2"
tar-stream@^1.1.2, tar-stream@^1.5.2:
version "1.6.0"
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.0.tgz#a50efaa7b17760b82c27b3cae4a301a8254a5715"
version "1.6.1"
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395"
dependencies:
bl "^1.0.0"
buffer-alloc "^1.1.0"
end-of-stream "^1.0.0"
fs-constants "^1.0.0"
readable-stream "^2.0.0"
readable-stream "^2.3.0"
to-buffer "^1.1.0"
xtend "^4.0.0"
@ -9503,8 +9526,8 @@ uglify-es@^3.3.4:
source-map "~0.6.1"
uglify-js@3.3.x:
version "3.3.24"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.24.tgz#abeae7690c602ebd006f4567387a0c0c333bdc0d"
version "3.3.25"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.25.tgz#3266ccb87c5bea229f69041a0296010d6477d539"
dependencies:
commander "~2.15.0"
source-map "~0.6.1"
@ -9688,8 +9711,8 @@ unzip-response@^2.0.1:
resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
unzipper@^0.8.11:
version "0.8.13"
resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.8.13.tgz#ea889ca10cdda4dcf604e632f19fc5f81871beae"
version "0.8.14"
resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.8.14.tgz#ade0524cd2fc14d11b8de258be22f9d247d3f79b"
dependencies:
big-integer "^1.6.17"
binary "~0.3.0"
@ -9748,14 +9771,7 @@ url-parse-lax@^1.0.0:
dependencies:
prepend-http "^1.0.1"
url-parse@1.0.x:
version "1.0.5"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b"
dependencies:
querystringify "0.0.x"
requires-port "1.0.x"
url-parse@^1.1.8:
url-parse@^1.1.8, url-parse@~1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.0.tgz#6bfdaad60098c7fe06f623e42b22de62de0d3d75"
dependencies:
@ -9889,9 +9905,9 @@ vm-browserify@0.0.4:
dependencies:
indexof "0.0.1"
vm2@patriksimek/vm2#custom_files:
version "3.5.2"
resolved "https://codeload.github.com/patriksimek/vm2/tar.gz/468bc1e54e75e766b842830ea775669992a979e0"
vm2@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.6.0.tgz#a6e6370c57e6edd77decfb7b1ad64fc87dbf2d4e"
voca@^1.4.0:
version "1.4.0"
@ -9995,8 +10011,8 @@ webpack-sources@^1.0.1, webpack-sources@^1.1.0:
source-map "~0.6.1"
webpack@^3.10.0:
version "3.11.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.11.0.tgz#77da451b1d7b4b117adaf41a1a93b5742f24d894"
version "3.12.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.12.0.tgz#3f9e34360370602fcf639e97939db486f4ec0d74"
dependencies:
acorn "^5.0.0"
acorn-dynamic-import "^2.0.0"
@ -10184,16 +10200,16 @@ xml2js@0.4.17:
sax ">=0.6.0"
xmlbuilder "^4.1.0"
xmlbuilder@4.2.1, xmlbuilder@^4.1.0:
xmlbuilder@8.2.2:
version "8.2.2"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773"
xmlbuilder@^4.1.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5"
dependencies:
lodash "^4.0.0"
xmlbuilder@8.2.2:
version "8.2.2"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773"
xmlbuilder@^9.0.7:
version "9.0.7"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"