Fix Electron linting errors #929
25
.gitignore
vendored
|
@ -1,30 +1,9 @@
|
|||
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
/node_modules
|
||||
/LBRY-darwin-x64
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
/dist
|
||||
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
/src/main/dist
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
/src/main/locales
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
/src/main/node_modules
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
/src/renderer/dist
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
/build/venv
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
/build/daemon.ver
|
||||
/lbry-app-venv
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
/lbry-app
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
/lbry-venv
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
/build/venv
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
*.pyc
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
/static/daemon/lbrynet*
|
||||
/static/locales
|
||||
/daemon/build
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
/daemon/venv
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
/daemon/requirements.txt
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
/.idea
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
|
||||
*.pyc
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
*.iml
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
.#*
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
|
||||
i believe build/venv is still used (by build.sh) i believe build/venv is still used (by build.sh)
|
||||
build/daemon.zip
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
.vimrc
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
package-lock.json
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
.DS_Store
|
||||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
||||
|
|
|||
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
this is here because many of us use JetBrains, which creates that dir this is here because many of us use JetBrains, which creates that dir
I think it's better to keep project related ignore rules into the project I think it's better to keep project related ignore rules into the project `.gitignore`and user-specific rules into the user's global `.gitignore`.
|
35
README.md
|
@ -31,7 +31,6 @@ development and testing purposes.
|
|||
* [Git](https://git-scm.com/downloads)
|
||||
* [Node.js](https://nodejs.org/en/download/)
|
||||
* [Yarn](https://yarnpkg.com/en/docs/install)
|
||||
* `yarn --add-python-to-path install --global --production windows-build-tools` (Windows only)
|
||||
|
||||
### One-time Setup
|
||||
|
||||
|
@ -61,40 +60,10 @@ The app can be run from the sources using the following command:
|
|||
|
||||
### On Windows
|
||||
|
||||
#### Windows Dependency
|
||||
|
||||
1. Download and install `git` from <a href="https://git-for-windows.github.io/">github.io<a>
|
||||
(configure to use command prompt integration)
|
||||
2. Download and install `npm` and `node` from
|
||||
<a href="https://nodejs.org/en/download/current/">nodejs.org<a>
|
||||
3. Download and install `python 2.7` from
|
||||
<a href="https://www.python.org/downloads/windows/">python.org</a>
|
||||
4. Download and Install `Microsoft Visual C++ Compiler for Python 2.7` from
|
||||
<a href="https://www.microsoft.com/en-us/download/confirmation.aspx?id=44266">Microsoft<a>
|
||||
5. Download and install `.NET Framework 2.0 Software Development Kit (SDK) (x64)` from
|
||||
<a href="https://www.microsoft.com/en-gb/download/details.aspx?id=15354">Microsoft<a> (may need
|
||||
to extract setup.exe and install manually by running install.exe as Administrator)
|
||||
|
||||
#### One-time Setup
|
||||
|
||||
1. Open a command prompt as administrator and run the following:
|
||||
|
||||
```
|
||||
npm install --global --production windows-build-tools
|
||||
exit
|
||||
```
|
||||
|
||||
2. Open a command prompt in the root of the project and run the following:
|
||||
|
||||
```
|
||||
python -m pip install -r build\requirements.txt
|
||||
npm install -g yarn
|
||||
yarn install
|
||||
yarn build
|
||||
```
|
||||
|
||||
3. Download the lbry daemon and CLI [binaries](https://github.com/lbryio/lbry/releases) and place
|
||||
them in `static\daemon`.
|
||||
Download the lbry daemon and CLI [binaries](https://github.com/lbryio/lbry/releases) and place them
|
||||
in `static\daemon`.
|
||||
|
||||
### Build
|
||||
|
||||
|
|
|
@ -40,8 +40,12 @@ set -eu
|
|||
if $LINUX; then
|
||||
INSTALL="$SUDO apt-get install --no-install-recommends -y"
|
||||
this only gets run if this only gets run if `brew` command does not exist. so it will only update when it is installed. is that what you intended?
|
||||
$INSTALL build-essential libssl-dev libffi-dev libgmp3-dev python2.7-dev libsecret-1-dev curl
|
||||
elif $OSX && ! cmd_exists brew ; then
|
||||
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
||||
elif $OSX; then
|
||||
if ! cmd_exists brew; then
|
||||
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
||||
else
|
||||
brew update
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
"appId": "io.lbry.LBRY",
|
||||
"productName": "LBRY",
|
||||
"mac": {
|
||||
"category": "public.app-category.entertainment"
|
||||
},
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
why did this change? will this affect the .deb package that's built? if the name changes, i think ubuntu will think its a different package... why did this change? will this affect the .deb package that's built? if the name changes, i think ubuntu will think its a different package...
I changed the name to follow the norms. I'm not sure how exactly it'll behave in Ubuntu since I didn't test on it, but it should normally use the I'll test it to be sure. I changed the name to follow the [norms](https://yarnpkg.com/lang/en/docs/package-json/#toc-name). I'm not sure how exactly it'll behave in Ubuntu since I didn't test on it, but it should normally use the [`productName` field](https://yarnpkg.com/lang/en/docs/package-json/#toc-name) declared in the `electron-builder.json` file and not the `package.json`'s `name`.
I'll test it to be sure.
Debian does identify the app as a new package and doesn't replace the one with the previous name. I think we should wait for the AppImage switch, which should come with the auto-update PR, before applying this change and then request Linux users that they uninstall their previous install. Debian does identify the app as a new package and doesn't replace the one with the previous name.
I think we should wait for the AppImage switch, which should come with the auto-update PR, before applying this change and then request Linux users that they uninstall their previous install.
why did this change? will this affect the .deb package that's built? if the name changes, i think ubuntu will think its a different package... why did this change? will this affect the .deb package that's built? if the name changes, i think ubuntu will think its a different package...
I changed the name to follow the norms. I'm not sure how exactly it'll behave in Ubuntu since I didn't test on it, but it should normally use the I'll test it to be sure. I changed the name to follow the [norms](https://yarnpkg.com/lang/en/docs/package-json/#toc-name). I'm not sure how exactly it'll behave in Ubuntu since I didn't test on it, but it should normally use the [`productName` field](https://yarnpkg.com/lang/en/docs/package-json/#toc-name) declared in the `electron-builder.json` file and not the `package.json`'s `name`.
I'll test it to be sure.
Debian does identify the app as a new package and doesn't replace the one with the previous name. I think we should wait for the AppImage switch, which should come with the auto-update PR, before applying this change and then request Linux users that they uninstall their previous install. Debian does identify the app as a new package and doesn't replace the one with the previous name.
I think we should wait for the AppImage switch, which should come with the auto-update PR, before applying this change and then request Linux users that they uninstall their previous install.
|
||||
"install": "^0.10.2",
|
||||
"jayson": "^2.0.2",
|
||||
"jshashes": "^1.0.7",
|
||||
"keytar": "^4.0.3",
|
||||
why did this change? will this affect the .deb package that's built? if the name changes, i think ubuntu will think its a different package... why did this change? will this affect the .deb package that's built? if the name changes, i think ubuntu will think its a different package...
I changed the name to follow the norms. I'm not sure how exactly it'll behave in Ubuntu since I didn't test on it, but it should normally use the I'll test it to be sure. I changed the name to follow the [norms](https://yarnpkg.com/lang/en/docs/package-json/#toc-name). I'm not sure how exactly it'll behave in Ubuntu since I didn't test on it, but it should normally use the [`productName` field](https://yarnpkg.com/lang/en/docs/package-json/#toc-name) declared in the `electron-builder.json` file and not the `package.json`'s `name`.
I'll test it to be sure.
Debian does identify the app as a new package and doesn't replace the one with the previous name. I think we should wait for the AppImage switch, which should come with the auto-update PR, before applying this change and then request Linux users that they uninstall their previous install. Debian does identify the app as a new package and doesn't replace the one with the previous name.
I think we should wait for the AppImage switch, which should come with the auto-update PR, before applying this change and then request Linux users that they uninstall their previous install.
|
||||
"keytar-prebuild": "^4.0.4",
|
||||
why did this change? will this affect the .deb package that's built? if the name changes, i think ubuntu will think its a different package... why did this change? will this affect the .deb package that's built? if the name changes, i think ubuntu will think its a different package...
I changed the name to follow the norms. I'm not sure how exactly it'll behave in Ubuntu since I didn't test on it, but it should normally use the I'll test it to be sure. I changed the name to follow the [norms](https://yarnpkg.com/lang/en/docs/package-json/#toc-name). I'm not sure how exactly it'll behave in Ubuntu since I didn't test on it, but it should normally use the [`productName` field](https://yarnpkg.com/lang/en/docs/package-json/#toc-name) declared in the `electron-builder.json` file and not the `package.json`'s `name`.
I'll test it to be sure.
Debian does identify the app as a new package and doesn't replace the one with the previous name. I think we should wait for the AppImage switch, which should come with the auto-update PR, before applying this change and then request Linux users that they uninstall their previous install. Debian does identify the app as a new package and doesn't replace the one with the previous name.
I think we should wait for the AppImage switch, which should come with the auto-update PR, before applying this change and then request Linux users that they uninstall their previous install.
|
||||
"localforage": "^1.5.0",
|
||||
"npm": "^5.5.1",
|
||||
"qrcode.react": "^0.7.2",
|
||||
|
|
|||
why did this change? will this affect the .deb package that's built? if the name changes, i think ubuntu will think its a different package... why did this change? will this affect the .deb package that's built? if the name changes, i think ubuntu will think its a different package...
I changed the name to follow the norms. I'm not sure how exactly it'll behave in Ubuntu since I didn't test on it, but it should normally use the I'll test it to be sure. I changed the name to follow the [norms](https://yarnpkg.com/lang/en/docs/package-json/#toc-name). I'm not sure how exactly it'll behave in Ubuntu since I didn't test on it, but it should normally use the [`productName` field](https://yarnpkg.com/lang/en/docs/package-json/#toc-name) declared in the `electron-builder.json` file and not the `package.json`'s `name`.
I'll test it to be sure.
Debian does identify the app as a new package and doesn't replace the one with the previous name. I think we should wait for the AppImage switch, which should come with the auto-update PR, before applying this change and then request Linux users that they uninstall their previous install. Debian does identify the app as a new package and doesn't replace the one with the previous name.
I think we should wait for the AppImage switch, which should come with the auto-update PR, before applying this change and then request Linux users that they uninstall their previous install.
why did this change? will this affect the .deb package that's built? if the name changes, i think ubuntu will think its a different package... why did this change? will this affect the .deb package that's built? if the name changes, i think ubuntu will think its a different package...
I changed the name to follow the norms. I'm not sure how exactly it'll behave in Ubuntu since I didn't test on it, but it should normally use the I'll test it to be sure. I changed the name to follow the [norms](https://yarnpkg.com/lang/en/docs/package-json/#toc-name). I'm not sure how exactly it'll behave in Ubuntu since I didn't test on it, but it should normally use the [`productName` field](https://yarnpkg.com/lang/en/docs/package-json/#toc-name) declared in the `electron-builder.json` file and not the `package.json`'s `name`.
I'll test it to be sure.
Debian does identify the app as a new package and doesn't replace the one with the previous name. I think we should wait for the AppImage switch, which should come with the auto-update PR, before applying this change and then request Linux users that they uninstall their previous install. Debian does identify the app as a new package and doesn't replace the one with the previous name.
I think we should wait for the AppImage switch, which should come with the auto-update PR, before applying this change and then request Linux users that they uninstall their previous install.
|
|
@ -1,14 +1,14 @@
|
|||
/* eslint-disable no-console */
|
||||
// Module imports
|
||||
import Path from 'path';
|
||||
import Url from 'url';
|
||||
import path from 'path';
|
||||
import url from 'url';
|
||||
import Jayson from 'jayson';
|
||||
import Semver from 'semver';
|
||||
import Https from 'https';
|
||||
import Keytar from 'keytar';
|
||||
import SemVer from 'semver';
|
||||
import https from 'https';
|
||||
import keytar from 'keytar-prebuild';
|
||||
import ChildProcess from 'child_process';
|
||||
import Assert from 'assert';
|
||||
import { app, BrowserWindow, globalShortcut, ipcMain, Menu, Tray } from 'electron';
|
||||
import assert from 'assert';
|
||||
import { app, BrowserWindow, globalShortcut, ipcMain, Menu, Tray, dialog } from 'electron';
|
||||
import mainMenu from './menu/mainMenu';
|
||||
import contextMenu from './menu/contextMenu';
|
||||
|
||||
|
@ -18,9 +18,9 @@ const localVersion = app.getVersion();
|
|||
const isDevelopment = process.env.NODE_ENV === 'development';
|
||||
|
||||
// Misc constants
|
||||
const LATEST_RELEASE_API_URL = 'https://api.github.com/repos/lbryio/lbry-app/releases/latest';
|
||||
const DAEMON_PATH = process.env.LBRY_DAEMON || Path.join(__static, 'daemon/lbrynet-daemon');
|
||||
const rendererUrl = isDevelopment
|
||||
const latestReleaseAPIURL = 'https://api.github.com/repos/lbryio/lbry-app/releases/latest';
|
||||
const daemonPath = process.env.LBRY_DAEMON || path.join(__static, 'daemon/lbrynet-daemon');
|
||||
const rendererURL = isDevelopment
|
||||
? `http://localhost:${process.env.ELECTRON_WEBPACK_WDS_PORT}`
|
||||
: `file://${__dirname}/index.html`;
|
||||
|
||||
|
@ -47,7 +47,7 @@ let readyToQuit = false;
|
|||
|
||||
// If we receive a URI to open from an external app but there's no window to
|
||||
// sendCredits it to, it's cached in this variable.
|
||||
let openUri = null;
|
||||
let openURI = null;
|
||||
|
||||
// Set this to true to minimize on clicking close
|
||||
// false for normal action
|
||||
|
@ -56,7 +56,7 @@ let minimize = true;
|
|||
// Keep the tray also, it is getting GC'd if put in createTray()
|
||||
let tray = null;
|
||||
|
||||
function processRequestedUri(uri) {
|
||||
function processRequestedURI(URI) {
|
||||
// Windows normalizes URIs when they're passed in from other apps. On Windows,
|
||||
// this function tries to restore the original URI that was typed.
|
||||
// - If the URI has no path, Windows adds a trailing slash. LBRY URIs
|
||||
|
@ -67,9 +67,9 @@ function processRequestedUri(uri) {
|
|||
// On Linux and Mac, we just return the URI as given.
|
||||
|
||||
if (process.platform === 'win32') {
|
||||
return uri.replace(/\/$/, '').replace('/#', '#');
|
||||
return URI.replace(/\/$/, '').replace('/#', '#');
|
||||
}
|
||||
return uri;
|
||||
return URI;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -162,14 +162,18 @@ function createWindow() {
|
|||
if (isDevelopment) {
|
||||
window.webContents.openDevTools();
|
||||
}
|
||||
window.loadURL(rendererUrl);
|
||||
if (openUri) {
|
||||
window.loadURL(rendererURL);
|
||||
if (openURI) {
|
||||
// We stored and received a URI that an external app requested before we had a window object
|
||||
window.webContents.on('did-finish-load', () => {
|
||||
window.webContents.send('open-uri-requested', openUri, true);
|
||||
window.webContents.send('open-uri-requested', openURI, true);
|
||||
});
|
||||
}
|
||||
|
||||
window.webContents.on('crashed', () => {
|
||||
safeQuit();
|
||||
});
|
||||
|
||||
window.removeAllListeners();
|
||||
|
||||
window.on('close', event => {
|
||||
|
@ -211,6 +215,23 @@ function createWindow() {
|
|||
window.webContents.send('window-is-focused', null);
|
||||
});
|
||||
|
||||
window.on('unresponsive', () => {
|
||||
dialog.showMessageBox(
|
||||
window,
|
||||
{
|
||||
type: 'warning',
|
||||
buttons: ['Wait', 'Quit'],
|
||||
title: 'LBRY Unresponsive',
|
||||
defaultId: 1,
|
||||
message: 'LBRY is not responding. Would you like to quit?',
|
||||
cancelId: 0,
|
||||
},
|
||||
buttonIndex => {
|
||||
if (buttonIndex === 1) safeQuit();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
mainMenu();
|
||||
|
||||
return window;
|
||||
|
@ -223,9 +244,9 @@ function createTray() {
|
|||
if (process.platform === 'darwin') {
|
||||
// Using @2x for mac retina screens so the icon isn't blurry
|
||||
// file name needs to include "Template" at the end for dark menu bar
|
||||
iconPath = Path.join(__static, '/img/fav/macTemplate@2x.png');
|
||||
iconPath = path.join(__static, '/img/fav/macTemplate@2x.png');
|
||||
} else {
|
||||
iconPath = Path.join(__static, '/img/fav/32x32.png');
|
||||
iconPath = path.join(__static, '/img/fav/32x32.png');
|
||||
}
|
||||
|
||||
tray = new Tray(iconPath);
|
||||
|
@ -236,10 +257,10 @@ function createTray() {
|
|||
});
|
||||
}
|
||||
|
||||
function handleOpenUriRequested(uri) {
|
||||
function handleOpenURIRequested(URI) {
|
||||
if (!rendererWindow) {
|
||||
// Window not created yet, so store up requested URI for when it is
|
||||
openUri = processRequestedUri(uri);
|
||||
openURI = processRequestedURI(URI);
|
||||
} else {
|
||||
if (rendererWindow.isMinimized()) {
|
||||
rendererWindow.restore();
|
||||
|
@ -248,7 +269,7 @@ function handleOpenUriRequested(uri) {
|
|||
}
|
||||
|
||||
rendererWindow.focus();
|
||||
rendererWindow.webContents.send('open-uri-requested', processRequestedUri(uri));
|
||||
rendererWindow.webContents.send('open-uri-requested', processRequestedURI(URI));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -282,10 +303,10 @@ function handleDaemonSubprocessExited() {
|
|||
}
|
||||
|
||||
function launchDaemon() {
|
||||
Assert(!daemonSubprocess, 'Tried to launch daemon twice');
|
||||
assert(!daemonSubprocess, 'Tried to launch daemon twice');
|
||||
|
||||
console.log('Launching daemon:', DAEMON_PATH);
|
||||
daemonSubprocess = ChildProcess.spawn(DAEMON_PATH);
|
||||
console.log('Launching daemon:', daemonPath);
|
||||
daemonSubprocess = ChildProcess.spawn(daemonPath);
|
||||
// Need to handle the data event instead of attaching to
|
||||
// process.stdout because the latter doesn't work. I believe on
|
||||
// windows it buffers stdout and we don't get any meaningful output
|
||||
|
@ -300,7 +321,7 @@ function launchDaemon() {
|
|||
|
||||
const isSecondaryInstance = app.makeSingleInstance(argv => {
|
||||
if (argv.length >= 2) {
|
||||
handleOpenUriRequested(argv[1]); // This will handle restoring and focusing the window
|
||||
handleOpenURIRequested(argv[1]); // This will handle restoring and focusing the window
|
||||
} else if (rendererWindow) {
|
||||
if (rendererWindow.isMinimized()) {
|
||||
rendererWindow.restore();
|
||||
|
@ -443,11 +464,11 @@ app.on('activate', () => {
|
|||
});
|
||||
|
||||
if (process.platform === 'darwin') {
|
||||
app.on('open-url', (event, uri) => {
|
||||
handleOpenUriRequested(uri);
|
||||
app.on('open-url', (event, URI) => {
|
||||
handleOpenURIRequested(URI);
|
||||
});
|
||||
} else if (process.argv.length >= 2) {
|
||||
handleOpenUriRequested(process.argv[1]);
|
||||
handleOpenURIRequested(process.argv[1]);
|
||||
}
|
||||
|
||||
ipcMain.on('upgrade', (event, installerPath) => {
|
||||
|
@ -485,7 +506,7 @@ ipcMain.on('version-info-requested', () => {
|
|||
},
|
||||
};
|
||||
|
||||
const req = Https.get(Object.assign(opts, Url.parse(LATEST_RELEASE_API_URL)), res => {
|
||||
const req = https.get(Object.assign(opts, url.parse(latestReleaseAPIURL)), res => {
|
||||
res.on('data', data => {
|
||||
result += data;
|
||||
});
|
||||
|
@ -497,7 +518,7 @@ ipcMain.on('version-info-requested', () => {
|
|||
rendererWindow.webContents.send('version-info-received', null);
|
||||
}
|
||||
} else {
|
||||
const upgradeAvailable = Semver.gt(formatRc(remoteVersion), formatRc(localVersion));
|
||||
const upgradeAvailable = SemVer.gt(formatRc(remoteVersion), formatRc(localVersion));
|
||||
if (rendererWindow) {
|
||||
rendererWindow.webContents.send('version-info-received', {
|
||||
remoteVersion,
|
||||
|
@ -518,13 +539,18 @@ ipcMain.on('version-info-requested', () => {
|
|||
});
|
||||
|
||||
ipcMain.on('get-auth-token', event => {
|
||||
Keytar.getPassword('LBRY', 'auth_token').then(token => {
|
||||
keytar.getPassword('LBRY', 'auth_token').then(token => {
|
||||
event.sender.send('auth-token-response', token ? token.toString().trim() : null);
|
||||
});
|
||||
});
|
||||
|
||||
ipcMain.on('set-auth-token', (event, token) => {
|
||||
Keytar.setPassword('LBRY', 'auth_token', token ? token.toString().trim() : null);
|
||||
keytar.setPassword('LBRY', 'auth_token', token ? token.toString().trim() : null);
|
||||
});
|
||||
|
||||
process.on('uncaughtException', error => {
|
||||
console.error(error);
|
||||
safeQuit();
|
||||
});
|
||||
|
||||
export { contextMenu };
|
||||
|
|
|
@ -1,27 +1,21 @@
|
|||
import React from "react";
|
||||
import { connect } from "react-redux";
|
||||
import { doChangeVolume } from "redux/actions/app";
|
||||
import { selectVolume } from "redux/selectors/app";
|
||||
import { doPlayUri, doSetPlayingUri } from "redux/actions/content";
|
||||
import { doPlay, doPause, savePosition } from "redux/actions/media";
|
||||
import {
|
||||
makeSelectMetadataForUri,
|
||||
makeSelectContentTypeForUri,
|
||||
} from "redux/selectors/claims";
|
||||
import React from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import { doChangeVolume } from 'redux/actions/app';
|
||||
import { selectVolume } from 'redux/selectors/app';
|
||||
import { doPlayUri, doSetPlayingUri } from 'redux/actions/content';
|
||||
import { doPlay, doPause, savePosition } from 'redux/actions/media';
|
||||
import { makeSelectMetadataForUri, makeSelectContentTypeForUri } from 'redux/selectors/claims';
|
||||
import {
|
||||
makeSelectFileInfoForUri,
|
||||
makeSelectLoadingForUri,
|
||||
makeSelectDownloadingForUri,
|
||||
} from "redux/selectors/file_info";
|
||||
import { makeSelectCostInfoForUri } from "redux/selectors/cost_info";
|
||||
import { selectShowNsfw } from "redux/selectors/settings";
|
||||
import {
|
||||
selectMediaPaused,
|
||||
makeSelectMediaPositionForUri,
|
||||
} from "redux/selectors/media";
|
||||
import Video from "./view";
|
||||
import { selectPlayingUri } from "redux/selectors/content";
|
||||
import { makeSelectClaimForUri } from "redux/selectors/claims";
|
||||
} from 'redux/selectors/file_info';
|
||||
import { makeSelectCostInfoForUri } from 'redux/selectors/cost_info';
|
||||
import { selectShowNsfw } from 'redux/selectors/settings';
|
||||
import { selectMediaPaused, makeSelectMediaPositionForUri } from 'redux/selectors/media';
|
||||
import Video from './view';
|
||||
import { selectPlayingUri } from 'redux/selectors/content';
|
||||
import { makeSelectClaimForUri } from 'redux/selectors/claims';
|
||||
|
||||
const select = (state, props) => ({
|
||||
claim: makeSelectClaimForUri(props.uri)(state),
|
||||
|
@ -44,8 +38,7 @@ const perform = dispatch => ({
|
|||
changeVolume: volume => dispatch(doChangeVolume(volume)),
|
||||
doPlay: () => dispatch(doPlay()),
|
||||
doPause: () => dispatch(doPause()),
|
||||
savePosition: (claimId, position) =>
|
||||
dispatch(savePosition(claimId, position)),
|
||||
savePosition: (claimId, position) => dispatch(savePosition(claimId, position)),
|
||||
});
|
||||
|
||||
export default connect(select, perform)(Video);
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
// @flow
|
||||
import * as actions from "constants/action_types";
|
||||
import type { Action, Dispatch } from "redux/reducers/media";
|
||||
import lbry from "lbry";
|
||||
import { makeSelectClaimForUri } from "redux/selectors/claims";
|
||||
import * as actions from 'constants/action_types';
|
||||
import type { Action, Dispatch } from 'redux/reducers/media';
|
||||
import lbry from 'lbry';
|
||||
import { makeSelectClaimForUri } from 'redux/selectors/claims';
|
||||
|
||||
export const doPlay = () => (dispatch: Dispatch) =>
|
||||
dispatch({
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// @flow
|
||||
import * as actions from "constants/action_types";
|
||||
import { handleActions } from "util/redux-utils";
|
||||
import * as actions from 'constants/action_types';
|
||||
import { handleActions } from 'util/redux-utils';
|
||||
|
||||
export type MediaState = {
|
||||
paused: Boolean,
|
||||
|
|
|
@ -1,14 +1,11 @@
|
|||
import * as settings from "constants/settings";
|
||||
import { createSelector } from "reselect";
|
||||
import lbryuri from "lbryuri";
|
||||
import { makeSelectClaimForUri } from "redux/selectors/claims";
|
||||
import * as settings from 'constants/settings';
|
||||
import { createSelector } from 'reselect';
|
||||
import lbryuri from 'lbryuri';
|
||||
import { makeSelectClaimForUri } from 'redux/selectors/claims';
|
||||
|
||||
const _selectState = state => state.media || {};
|
||||
|
||||
export const selectMediaPaused = createSelector(
|
||||
_selectState,
|
||||
state => state.paused
|
||||
);
|
||||
export const selectMediaPaused = createSelector(_selectState, state => state.paused);
|
||||
|
||||
export const makeSelectMediaPositionForUri = uri =>
|
||||
createSelector(_selectState, makeSelectClaimForUri(uri), (state, claim) => {
|
||||
|
|
129
yarn.lock
|
@ -95,8 +95,8 @@
|
|||
component-url "^0.2.1"
|
||||
|
||||
"@types/node@^7.0.18":
|
||||
version "7.0.43"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c"
|
||||
version "7.0.52"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.52.tgz#8990d3350375542b0c21a83cd0331e6a8fc86716"
|
||||
|
||||
"@types/webpack-env@^1.13.2":
|
||||
version "1.13.2"
|
||||
|
@ -182,7 +182,7 @@ ajv@^4.9.1:
|
|||
co "^4.6.0"
|
||||
json-stable-stringify "^1.0.1"
|
||||
|
||||
ajv@^5.0.0, ajv@^5.1.0, ajv@^5.1.5, ajv@^5.2.3:
|
||||
ajv@^5.0.0, ajv@^5.1.5, ajv@^5.2.3:
|
||||
version "5.5.0"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.0.tgz#eb2840746e9dc48bd5e063a36e3fd400c5eab5a9"
|
||||
dependencies:
|
||||
|
@ -191,6 +191,15 @@ ajv@^5.0.0, ajv@^5.1.0, ajv@^5.1.5, ajv@^5.2.3:
|
|||
fast-json-stable-stringify "^2.0.0"
|
||||
json-schema-traverse "^0.3.0"
|
||||
|
||||
ajv@^5.1.0, ajv@^5.5.1:
|
||||
version "5.5.2"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
|
||||
dependencies:
|
||||
co "^4.6.0"
|
||||
fast-deep-equal "^1.0.0"
|
||||
fast-json-stable-stringify "^2.0.0"
|
||||
json-schema-traverse "^0.3.0"
|
||||
|
||||
ajv@^5.3.0:
|
||||
version "5.5.1"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.1.tgz#b38bb8876d9e86bee994956a04e721e88b248eb2"
|
||||
|
@ -200,15 +209,6 @@ ajv@^5.3.0:
|
|||
fast-json-stable-stringify "^2.0.0"
|
||||
json-schema-traverse "^0.3.0"
|
||||
|
||||
ajv@^5.5.1:
|
||||
version "5.5.2"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
|
||||
dependencies:
|
||||
co "^4.6.0"
|
||||
fast-deep-equal "^1.0.0"
|
||||
fast-json-stable-stringify "^2.0.0"
|
||||
json-schema-traverse "^0.3.0"
|
||||
|
||||
align-text@^0.1.1, align-text@^0.1.3:
|
||||
version "0.1.4"
|
||||
resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
|
||||
|
@ -2200,7 +2200,7 @@ core-js@^2.4.0, core-js@^2.5.0:
|
|||
version "2.5.1"
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b"
|
||||
|
||||
core-util-is@~1.0.0:
|
||||
core-util-is@1.0.2, 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"
|
||||
|
||||
|
@ -2446,19 +2446,13 @@ debug@*, debug@^3.0.0, debug@^3.0.1, debug@^3.1.0:
|
|||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@2, debug@2.6.9, debug@^2.1.3, debug@^2.6.6:
|
||||
debug@2, debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.6.6:
|
||||
version "2.6.9"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
||||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
|
||||
dependencies:
|
||||
ms "0.7.1"
|
||||
|
||||
debug@^2.2.0, debug@^2.6.8:
|
||||
debug@^2.6.8:
|
||||
version "2.6.8"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
|
||||
dependencies:
|
||||
|
@ -2911,8 +2905,8 @@ electron-webpack@^1.11.0:
|
|||
yargs "^10.0.3"
|
||||
|
||||
electron@^1.7.9:
|
||||
version "1.7.9"
|
||||
resolved "https://registry.yarnpkg.com/electron/-/electron-1.7.9.tgz#add54e9f8f83ed02f6519ec10135f698b19336cf"
|
||||
version "1.7.10"
|
||||
resolved "https://registry.yarnpkg.com/electron/-/electron-1.7.10.tgz#3a3e83d965fd7fafe473be8ddf8f472561b6253d"
|
||||
dependencies:
|
||||
"@types/node" "^7.0.18"
|
||||
electron-download "^3.0.1"
|
||||
|
@ -3062,10 +3056,14 @@ es6-promise@^3.0.2:
|
|||
version "3.3.1"
|
||||
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
|
||||
|
||||
es6-promise@^4.0.3, es6-promise@^4.0.5:
|
||||
es6-promise@^4.0.3:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.0.tgz#dda03ca8f9f89bc597e689842929de7ba8cebdf0"
|
||||
|
||||
es6-promise@^4.0.5:
|
||||
version "4.2.2"
|
||||
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.2.tgz#f722d7769af88bd33bc13ec6605e1f92966b82d9"
|
||||
|
||||
es6-promisify@3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-3.0.0.tgz#22226b92957317f965247edfde9295f83efebe86"
|
||||
|
@ -3490,17 +3488,21 @@ extract-text-webpack-plugin@^3.0.2:
|
|||
webpack-sources "^1.0.1"
|
||||
|
||||
extract-zip@^1.0.3:
|
||||
version "1.6.5"
|
||||
resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.5.tgz#99a06735b6ea20ea9b705d779acffcc87cff0440"
|
||||
version "1.6.6"
|
||||
resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.6.tgz#1290ede8d20d0872b429fd3f351ca128ec5ef85c"
|
||||
dependencies:
|
||||
concat-stream "1.6.0"
|
||||
debug "2.2.0"
|
||||
debug "2.6.9"
|
||||
mkdirp "0.5.0"
|
||||
yauzl "2.4.1"
|
||||
|
||||
extsprintf@1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
|
||||
extsprintf@1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
|
||||
|
||||
extsprintf@^1.2.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
|
||||
|
||||
eyes@0.1.8:
|
||||
version "0.1.8"
|
||||
|
@ -5049,13 +5051,13 @@ jsonpointer@^4.0.0:
|
|||
resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
|
||||
|
||||
jsprim@^1.2.2:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918"
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
|
||||
dependencies:
|
||||
assert-plus "1.0.0"
|
||||
extsprintf "1.0.2"
|
||||
extsprintf "1.3.0"
|
||||
json-schema "0.2.3"
|
||||
verror "1.3.6"
|
||||
verror "1.10.0"
|
||||
|
||||
jstransform@^11.0.3:
|
||||
version "11.0.3"
|
||||
|
@ -5085,11 +5087,12 @@ keypress@0.1.x:
|
|||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/keypress/-/keypress-0.1.0.tgz#4a3188d4291b66b4f65edb99f806aa9ae293592a"
|
||||
|
||||
keytar@^4.0.3:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/keytar/-/keytar-4.1.0.tgz#9e3933e489d656de1a868e1293709313044989d7"
|
||||
keytar-prebuild@^4.0.4:
|
||||
version "4.0.4"
|
||||
resolved "https://registry.yarnpkg.com/keytar-prebuild/-/keytar-prebuild-4.0.4.tgz#eb6354c68f2b3609dc325ef8709844632652d602"
|
||||
dependencies:
|
||||
nan "2.5.1"
|
||||
nan "2.7.0"
|
||||
prebuild-install "^2.2.2"
|
||||
|
||||
killable@^1.0.0:
|
||||
version "1.0.0"
|
||||
|
@ -5792,10 +5795,6 @@ mp4-stream@^2.0.0:
|
|||
next-event "^1.0.0"
|
||||
readable-stream "^2.0.3"
|
||||
|
||||
ms@0.7.1:
|
||||
version "0.7.1"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
|
||||
|
||||
ms@2.0.0, ms@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||
|
@ -5822,7 +5821,11 @@ mute-stream@0.0.7, mute-stream@~0.0.4:
|
|||
version "0.0.7"
|
||||
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
|
||||
|
||||
nan@2.5.1, nan@^2.3.0, nan@^2.3.2:
|
||||
nan@2.7.0:
|
||||
version "2.7.0"
|
||||
resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46"
|
||||
|
||||
nan@^2.3.0, nan@^2.3.2:
|
||||
version "2.5.1"
|
||||
resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.1.tgz#d5b01691253326a97a2bbee9e61c55d8d60351e2"
|
||||
|
||||
|
@ -6937,6 +6940,25 @@ postcss@^6.0.1:
|
|||
source-map "^0.6.1"
|
||||
supports-color "^4.4.0"
|
||||
|
||||
prebuild-install@^2.2.2:
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.4.1.tgz#c28ba1d1eedc17fbd6b3229a657ffc0fba479b49"
|
||||
dependencies:
|
||||
expand-template "^1.0.2"
|
||||
github-from-package "0.0.0"
|
||||
minimist "^1.2.0"
|
||||
mkdirp "^0.5.1"
|
||||
node-abi "^2.1.1"
|
||||
noop-logger "^0.1.1"
|
||||
npmlog "^4.0.1"
|
||||
os-homedir "^1.0.1"
|
||||
pump "^1.0.1"
|
||||
rc "^1.1.6"
|
||||
simple-get "^1.4.2"
|
||||
tar-fs "^1.13.0"
|
||||
tunnel-agent "^0.6.0"
|
||||
xtend "4.0.1"
|
||||
|
||||
prebuild-install@^2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.3.0.tgz#19481247df728b854ab57b187ce234211311b485"
|
||||
|
@ -7243,7 +7265,7 @@ rc-progress@^2.0.6:
|
|||
babel-runtime "6.x"
|
||||
prop-types "^15.5.8"
|
||||
|
||||
rc@^1.0.1, rc@^1.1.2, rc@^1.1.6, rc@^1.1.7, rc@^1.2.1:
|
||||
rc@^1.0.1, rc@^1.1.6, rc@^1.1.7, rc@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95"
|
||||
dependencies:
|
||||
|
@ -7252,6 +7274,15 @@ rc@^1.0.1, rc@^1.1.2, rc@^1.1.6, rc@^1.1.7, rc@^1.2.1:
|
|||
minimist "^1.2.0"
|
||||
strip-json-comments "~2.0.1"
|
||||
|
||||
rc@^1.1.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.2.tgz#d8ce9cb57e8d64d9c7badd9876c7c34cbe3c7077"
|
||||
dependencies:
|
||||
deep-extend "~0.4.0"
|
||||
ini "~1.3.0"
|
||||
minimist "^1.2.0"
|
||||
strip-json-comments "~2.0.1"
|
||||
|
||||
react-addons-create-fragment@^15.0.0:
|
||||
version "15.6.2"
|
||||
resolved "https://registry.yarnpkg.com/react-addons-create-fragment/-/react-addons-create-fragment-15.6.2.tgz#a394de7c2c7becd6b5475ba1b97ac472ce7c74f8"
|
||||
|
@ -8984,11 +9015,13 @@ vendors@^1.0.0:
|
|||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22"
|
||||
|
||||
verror@1.3.6:
|
||||
version "1.3.6"
|
||||
resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c"
|
||||
verror@1.10.0:
|
||||
version "1.10.0"
|
||||
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
|
||||
dependencies:
|
||||
extsprintf "1.0.2"
|
||||
assert-plus "^1.0.0"
|
||||
core-util-is "1.0.2"
|
||||
extsprintf "^1.2.0"
|
||||
|
||||
videostream@^2.3.0:
|
||||
version "2.4.2"
|
||||
|
|
this is here because many of us use JetBrains, which creates that dir