diff --git a/package.json b/package.json
index 1227d60f..9f81a036 100644
--- a/package.json
+++ b/package.json
@@ -114,7 +114,7 @@
"concurrently": "^3.5.1",
"dotenv": "^5.0.0",
"electron": "1.8.2",
- "electron-builder": "^19.56.0",
+ "electron-builder": "^20.0.4",
"electron-devtools-installer": "^2.2.3",
"electron-webpack": "1.12.1",
"eslint": "^4.17.0",
diff --git a/src/components/App.js b/src/components/App.js
index fb4e67e9..72af5bc2 100644
--- a/src/components/App.js
+++ b/src/components/App.js
@@ -11,8 +11,9 @@ import theme from 'styles/theme'
import i18n from 'renderer/i18n'
-import Wrapper from 'components/Wrapper'
-import PrintWrapper from 'components/PrintWrapper'
+import Default from 'components/layout/Default'
+import Dev from 'components/layout/Dev'
+import Print from 'components/layout/Print'
export default ({
store,
@@ -28,8 +29,9 @@ export default ({
-
-
+ {__DEV__ && }
+
+
diff --git a/src/components/DashboardPage/AccountCard.js b/src/components/DashboardPage/AccountCard.js
index 8ccad93e..b2670992 100644
--- a/src/components/DashboardPage/AccountCard.js
+++ b/src/components/DashboardPage/AccountCard.js
@@ -4,13 +4,12 @@ import React from 'react'
import type { Account } from 'types/common'
-import { formatBTC } from 'helpers/format'
-
import IconCurrencyBitcoin from 'icons/currencies/Bitcoin'
import { AreaChart } from 'components/base/Chart'
import Bar from 'components/base/Bar'
import Box, { Card } from 'components/base/Box'
+import FormattedVal from 'components/base/FormattedVal'
const AccountCard = ({
account,
@@ -37,7 +36,15 @@ const AccountCard = ({
- {account.data && formatBTC(account.data.balance)}
+ {account.data && (
+
+ )}
w.name === 'MainWindow')
+
type HslColor = {
color: Array,
}
@@ -53,40 +56,16 @@ const colors: Array = transform(theme.colors)
const Container = styled(Box).attrs({
bg: 'night',
- p: 1,
+ p: 5,
+ grow: true,
color: 'white',
- fontSize: 0,
-})`
- position: fixed;
- bottom: 0;
- right: 0;
- z-index: 1;
- border-top-left-radius: 3px;
- transition: ease-in-out transform 300ms;
- transform: translate3d(0, ${p => (p.isOpened ? '0' : '100%')}, 0);
-`
-
-const Handle = styled(Box).attrs({
- bg: 'night',
- justify: 'center',
- px: 1,
-})`
- cursor: pointer;
- position: absolute;
- bottom: 100%;
- right: 5px;
- font-size: 9px;
- height: 20px;
- border-top-left-radius: 3px;
- border-top-right-radius: 3px;
-`
+ fontSize: 3,
+})``
const Colors = styled(Box).attrs({
horizontal: true,
- align: 'flex-start',
-})`
- flex-wrap: wrap;
-`
+ flow: 4,
+})``
const Cl = styled(Box).attrs({
align: 'center',
@@ -94,9 +73,8 @@ const Cl = styled(Box).attrs({
p: 2,
})`
border: 2px solid white;
+ flex: 1;
cursor: pointer;
- margin: 2px;
- width: 80px;
`
const Color = ({ onClick, color }: { onClick: Function, color: ColorType }) => (
@@ -106,29 +84,22 @@ const Color = ({ onClick, color }: { onClick: Function, color: ColorType }) => (
)
const Lang = styled(Box).attrs({
- bg: p => (p.current ? 'white' : 'night'),
- color: p => (p.current ? 'night' : 'white'),
+ bg: 'night',
+ color: 'white',
borderColor: 'white',
- borderWidth: 1,
- p: 1,
+ borderWidth: 2,
+ borderRadius: 1,
+ p: 2,
})`
- border-radius: 3px;
cursor: pointer;
`
-const LANGUAGES = {
- fr: 'français',
- en: 'english',
-}
-
type State = {
- isOpened: boolean,
cpuUsage: Object,
}
class DevToolbar extends PureComponent {
state = {
- isOpened: false,
cpuUsage: {},
}
@@ -159,32 +130,34 @@ class DevToolbar extends PureComponent {
}
}
- handleToggle = () => this.setState({ isOpened: !this.state.isOpened })
- handleChangeLanguage = lang => () => this.props.i18n.changeLanguage(lang)
+ handleChangeLanguage = lang => () => {
+ mainWindow.webContents.send('msg', {
+ type: 'application.changeLanguage',
+ data: lang,
+ })
+ }
render() {
const { i18n } = this.props
- const { isOpened, cpuUsage } = this.state
+ const { cpuUsage } = this.state
return (
-
- {'DEV'}
-
-
- {Object.keys(LANGUAGES).map(lang => (
-
- {LANGUAGES[lang]}
+
+
+
+ {Object.keys(i18n.store.data).map(lang => (
+
+ {lang}
))}
-
-
-
- {colors.map(color => (
+
+
+ {chunk(colors, 8).map((c, i) => (
+
+ {c.map(color => (
{
/>
))}
-
+ ))}
-
+
+
{Object.keys(cpuUsage)
.sort()
.map(k => (
-
-
- {k}
- {last(cpuUsage[k]).value}%
+
+
+ {last(cpuUsage[k]).value}%
+ {k}
{
{accounts.map(account => (
+ }
iconActiveColor="#fcb653"
icon={}
key={account.id}
diff --git a/src/components/TopBar.js b/src/components/TopBar.js
index c8169d0a..b06c447f 100644
--- a/src/components/TopBar.js
+++ b/src/components/TopBar.js
@@ -19,9 +19,9 @@ import Box from 'components/base/Box'
import GlobalSearch from 'components/GlobalSearch'
const Container = styled(Box).attrs({
- px: 5,
+ px: 6,
})`
- height: 60px;
+ height: ${p => p.theme.sizes.topBarHeight}px;
position: absolute;
overflow: hidden;
left: 0;
diff --git a/src/components/base/FormattedVal.js b/src/components/base/FormattedVal.js
index 6e468dfd..ed428d00 100644
--- a/src/components/base/FormattedVal.js
+++ b/src/components/base/FormattedVal.js
@@ -45,7 +45,7 @@ function FormattedVal(props: Props) {
if (isPercent) {
text = `${alwaysShowSign ? (isNegative ? '- ' : '+ ') : ''}${val} %`
} else {
- const curr = currency ? currencies[currency] : null
+ const curr = currency ? currencies[currency.toUpperCase()] : null
if (!curr) {
return `[invalid currency ${currency || '(null)'}]`
}
diff --git a/src/components/Wrapper.js b/src/components/layout/Default.js
similarity index 85%
rename from src/components/Wrapper.js
rename to src/components/layout/Default.js
index 5e1670be..8de2507b 100644
--- a/src/components/Wrapper.js
+++ b/src/components/layout/Default.js
@@ -1,6 +1,7 @@
// @flow
import React, { Fragment, Component } from 'react'
+import styled from 'styled-components'
import { ipcRenderer } from 'electron'
import { Route } from 'react-router'
import { translate } from 'react-i18next'
@@ -14,13 +15,18 @@ import DashboardPage from 'components/DashboardPage'
import SettingsPage from 'components/SettingsPage'
import AppRegionDrag from 'components/AppRegionDrag'
-import DevToolbar from 'components/DevToolbar'
import IsUnlocked from 'components/IsUnlocked'
import SideBar from 'components/SideBar'
import TopBar from 'components/TopBar'
import UpdateNotifier from 'components/UpdateNotifier'
-class Wrapper extends Component<{}> {
+const Container = styled(GrowScroll).attrs({
+ p: 6,
+})`
+ padding-top: ${p => p.theme.sizes.topBarHeight + p.theme.space[7]}px;
+`
+
+class Default extends Component<{}> {
componentDidMount() {
window.requestAnimationFrame(
() => (this._timeout = setTimeout(() => ipcRenderer.send('app-finish-rendering'), 300)),
@@ -37,7 +43,6 @@ class Wrapper extends Component<{}> {
return (
{process.platform === 'darwin' && }
- {__DEV__ && }
{Object.entries(modals).map(([name, ModalComponent]: [string, any]) => (
@@ -50,11 +55,11 @@ class Wrapper extends Component<{}> {
-
+
-
+
@@ -63,4 +68,4 @@ class Wrapper extends Component<{}> {
}
}
-export default translate()(Wrapper)
+export default translate()(Default)
diff --git a/src/components/layout/Dev.js b/src/components/layout/Dev.js
new file mode 100644
index 00000000..b0dd5b1e
--- /dev/null
+++ b/src/components/layout/Dev.js
@@ -0,0 +1,25 @@
+// @flow
+
+import React, { PureComponent } from 'react'
+import styled from 'styled-components'
+
+import Box from 'components/base/Box'
+import DevToolbar from 'components/DevToolbar'
+
+const Container = styled(Box).attrs({
+ grow: true,
+})`
+ height: 100%;
+`
+
+class Dev extends PureComponent<{}> {
+ render() {
+ return (
+
+
+
+ )
+ }
+}
+
+export default Dev
diff --git a/src/components/PrintWrapper.js b/src/components/layout/Print.js
similarity index 92%
rename from src/components/PrintWrapper.js
rename to src/components/layout/Print.js
index da4e4fe9..53501912 100644
--- a/src/components/PrintWrapper.js
+++ b/src/components/layout/Print.js
@@ -12,7 +12,7 @@ type State = {
data: Object | null,
}
-class PrintWrapper extends PureComponent {
+class Print extends PureComponent {
state = {
data: null,
}
@@ -49,4 +49,4 @@ class PrintWrapper extends PureComponent {
}
}
-export default PrintWrapper
+export default Print
diff --git a/src/internals/index.js b/src/internals/index.js
index 2040becc..2c700f30 100644
--- a/src/internals/index.js
+++ b/src/internals/index.js
@@ -69,6 +69,7 @@ if (__DEV__) {
value: cpuPercent,
},
{
+ window: 'DevWindow',
kill: false,
},
)
diff --git a/src/main/app.js b/src/main/app.js
index 80ac2ba6..18470cf2 100644
--- a/src/main/app.js
+++ b/src/main/app.js
@@ -8,14 +8,15 @@ import db from 'helpers/db'
// necessary to prevent win from being garbage collected
let mainWindow
+let devWindow
let preloadWindow
let forceClose = false
const devTools = __DEV__
-const getWindowPosition = (height, width) => {
- const { bounds } = screen.getPrimaryDisplay()
+const getWindowPosition = (height, width, display = screen.getPrimaryDisplay()) => {
+ const { bounds } = display
return {
x: Math.ceil(bounds.x + (bounds.width - width) / 2),
@@ -23,10 +24,35 @@ const getWindowPosition = (height, width) => {
}
}
+const getDefaultUrl = () =>
+ __DEV__
+ ? `http://localhost:${process.env.ELECTRON_WEBPACK_WDS_PORT || ''}`
+ : `file://${__dirname}/index.html`
+
+const saveWindowSettings = window => {
+ window.on(
+ 'resize',
+ debounce(() => {
+ const [width, height] = window.getSize()
+ db.setIn('settings', `window.${window.name}.dimensions`, { width, height })
+ }, 100),
+ )
+
+ window.on(
+ 'move',
+ debounce(() => {
+ const [x, y] = window.getPosition()
+ db.setIn('settings', `window.${window.name}.positions`, { x, y })
+ }, 100),
+ )
+}
+
const defaultWindowOptions = {
backgroundColor: '#fff',
webPreferences: {
devTools,
+ // Enable, among other things, the ResizeObserver
+ experimentalFeatures: true,
},
}
@@ -34,8 +60,8 @@ function createMainWindow() {
const MIN_HEIGHT = 768
const MIN_WIDTH = 1024
- const savedDimensions = db.getIn('settings', 'window.dimensions', {})
- const savedPositions = db.getIn('settings', 'window.positions', null)
+ const savedDimensions = db.getIn('settings', 'window.MainWindow.dimensions', {})
+ const savedPositions = db.getIn('settings', 'window.MainWindow.positions', null)
const width = savedDimensions.width || MIN_WIDTH
const height = savedDimensions.height || MIN_HEIGHT
@@ -54,23 +80,20 @@ function createMainWindow() {
minWidth: MIN_WIDTH,
minHeight: MIN_HEIGHT,
show: false,
- webPreferences: {
- ...defaultWindowOptions.webPreferences,
- // Enable, among other things, the ResizeObserver
- experimentalFeatures: true,
- },
}
const window = new BrowserWindow(windowOptions)
- const url = __DEV__
- ? `http://localhost:${process.env.ELECTRON_WEBPACK_WDS_PORT || ''}`
- : `file://${__dirname}/index.html`
+ window.name = 'MainWindow'
+
+ const url = getDefaultUrl()
if (devTools) {
window.webContents.openDevTools()
}
+ saveWindowSettings(window)
+
window.loadURL(url)
window.on('close', e => {
@@ -83,22 +106,6 @@ function createMainWindow() {
}
})
- window.on(
- 'resize',
- debounce(() => {
- const [width, height] = window.getSize()
- db.setIn('settings', 'window.dimensions', { width, height })
- }, 100),
- )
-
- window.on(
- 'move',
- debounce(() => {
- const [x, y] = window.getPosition()
- db.setIn('settings', 'window.positions', { x, y })
- }, 100),
- )
-
window.webContents.on('devtools-opened', () => {
window.focus()
setImmediate(() => {
@@ -109,16 +116,64 @@ function createMainWindow() {
return window
}
+function createDevWindow() {
+ const MIN_HEIGHT = 400
+ const MIN_WIDTH = 600
+
+ const savedDimensions = db.getIn('settings', 'window.DevWindow.dimensions', {})
+ const savedPositions = db.getIn('settings', 'window.DevWindow.positions', null)
+
+ const width = savedDimensions.width || MIN_WIDTH
+ const height = savedDimensions.height || MIN_HEIGHT
+
+ const windowOptions = {
+ ...defaultWindowOptions,
+ ...(savedPositions !== null ? savedPositions : {}),
+ fullscreenable: false,
+ height,
+ show: false,
+ skipTaskbar: true,
+ width,
+ }
+
+ const window = new BrowserWindow(windowOptions)
+
+ window.name = 'DevWindow'
+
+ const url = getDefaultUrl()
+
+ if (devTools) {
+ window.webContents.openDevTools()
+ }
+
+ saveWindowSettings(window)
+
+ window.loadURL(`${url}/#/dev`)
+
+ window.on('ready-to-show', () => {
+ window.show()
+ })
+
+ return window
+}
+
function createPreloadWindow() {
// Preload renderer of main windows
mainWindow = createMainWindow()
+ const [x, y] = mainWindow.getPosition()
+
+ if (__DEV__) {
+ devWindow = createDevWindow()
+ }
+
const height = 144
const width = 256
const windowOptions = {
...defaultWindowOptions,
- ...getWindowPosition(height, width),
+ ...getWindowPosition(height, width, screen.getDisplayNearestPoint({ x, y })),
+ alwaysOnTop: true,
closable: false,
frame: false,
fullscreenable: false,
@@ -131,6 +186,8 @@ function createPreloadWindow() {
const window = new BrowserWindow(windowOptions)
+ window.name = 'PreloadWindow'
+
window.loadURL(`file://${__static}/preload-window.html`)
window.on('ready-to-show', () => {
@@ -197,4 +254,8 @@ ipcMain.on('app-finish-rendering', () => {
mainWindow.show()
setImmediate(() => mainWindow !== null && mainWindow.focus())
}
+
+ if (devWindow !== null) {
+ devWindow.show()
+ }
})
diff --git a/src/main/bridge.js b/src/main/bridge.js
index 14286441..e4f6f62d 100644
--- a/src/main/bridge.js
+++ b/src/main/bridge.js
@@ -1,7 +1,7 @@
// @flow
import { fork } from 'child_process'
-import { ipcMain } from 'electron'
+import { BrowserWindow, ipcMain } from 'electron'
import objectPath from 'object-path'
import { resolve } from 'path'
@@ -34,11 +34,17 @@ function onForkChannel(forkType, callType) {
const onMessage = payload => {
const { type, data, options = {} } = payload
- if (callType === 'async') {
- event.sender.send('msg', { type, data })
- }
- if (callType === 'sync') {
- event.returnValue = { type, data }
+
+ if (options.window) {
+ const devWindow = BrowserWindow.getAllWindows().find(w => w.name === options.window)
+ devWindow.webContents.send('msg', { type, data })
+ } else {
+ if (callType === 'async') {
+ event.sender.send('msg', { type, data })
+ }
+ if (callType === 'sync') {
+ event.returnValue = { type, data }
+ }
}
if (options.kill && compute) {
kill()
@@ -72,5 +78,5 @@ ipcMain.on('msg', (event: any, payload) => {
return
}
const send = (type: string, data: *) => event.sender.send('msg', { type, data })
- handler(send, data)
+ handler(send, data, type)
})
diff --git a/src/renderer/events.js b/src/renderer/events.js
index 807f75c6..70e24b4c 100644
--- a/src/renderer/events.js
+++ b/src/renderer/events.js
@@ -14,6 +14,8 @@ import { updateAccount } from 'actions/accounts'
import { setUpdateStatus } from 'reducers/update'
import { getAccountData, getAccounts } from 'reducers/accounts'
+import i18n from 'renderer/i18n'
+
const { DISABLED_SYNC, DISABLED_AUTO_SYNC } = process.env
type MsgPayload = {
@@ -64,6 +66,10 @@ export function checkUpdates() {
export default ({ store, locked }: { store: Object, locked: boolean }) => {
const handlers = {
+ dispatch: (type, payload) => store.dispatch({ type, payload }),
+ application: {
+ changeLanguage: lang => i18n.changeLanguage(lang),
+ },
account: {
sync: {
success: account => {
diff --git a/src/renderer/index.js b/src/renderer/index.js
index 6529d14b..1a230513 100644
--- a/src/renderer/index.js
+++ b/src/renderer/index.js
@@ -4,6 +4,7 @@ import 'env'
import React from 'react'
import Raven from 'raven-js'
+import { remote } from 'electron'
import { render } from 'react-dom'
import { AppContainer } from 'react-hot-loader'
import createHistory from 'history/createHashHistory'
@@ -35,8 +36,6 @@ const history = createHistory()
const store = createStore(history)
const rootNode = document.getElementById('app')
-global.__PRINT_MODE__ = history.location.pathname.startsWith('/print')
-
store.dispatch(fetchSettings())
const state = store.getState() || {}
@@ -55,7 +54,8 @@ function r(Comp) {
r()
-if (!__PRINT_MODE__) {
+// Only init events on MainWindow
+if (remote.getCurrentWindow().name === 'MainWindow') {
events({ store, locked })
}
diff --git a/src/styles/theme.js b/src/styles/theme.js
index 55a30dfa..0bae72bf 100644
--- a/src/styles/theme.js
+++ b/src/styles/theme.js
@@ -62,6 +62,7 @@ export const fontFamilies = {
export default {
sizes: {
+ topBarHeight: 58,
sideBarWidth: 230,
},
radii,
diff --git a/yarn.lock b/yarn.lock
index a136fc74..dee05ea6 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -10,21 +10,17 @@
version "1.0.1"
resolved "https://registry.yarnpkg.com/7zip-bin-mac/-/7zip-bin-mac-1.0.1.tgz#3e68778bbf0926adc68159427074505d47555c02"
-"7zip-bin-win@~2.1.1":
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/7zip-bin-win/-/7zip-bin-win-2.1.1.tgz#8acfc28bb34e53a9476b46ae85a97418e6035c20"
+"7zip-bin-win@~2.2.0":
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/7zip-bin-win/-/7zip-bin-win-2.2.0.tgz#0b81c43e911100f3ece2ebac4f414ca95a572d5b"
-"7zip-bin@^2.4.1":
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-2.4.1.tgz#88cf99736d35b104dab1d430c4edd1d51e58aade"
+"7zip-bin@~3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-3.1.0.tgz#70814c6b6d44fef8b74be6fc64d3977a2eff59a5"
optionalDependencies:
"7zip-bin-linux" "~1.3.1"
"7zip-bin-mac" "~1.0.1"
- "7zip-bin-win" "~2.1.1"
-
-"7zip-bin@~3.0.0":
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-3.0.0.tgz#17416dc542f41511b26a9667b92847d75ef150fe"
+ "7zip-bin-win" "~2.2.0"
"7zip@0.0.6":
version "0.0.6"
@@ -481,7 +477,7 @@ ajv@^5.0.0, ajv@^5.1.0, ajv@^5.1.5, ajv@^5.2.3, ajv@^5.3.0, ajv@^5.5.0:
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.3.0"
-ajv@^6.1.0:
+ajv@^6.1.0, ajv@^6.1.1:
version "6.1.1"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.1.1.tgz#978d597fbc2b7d0e5a5c3ddeb149a682f2abfa0e"
dependencies:
@@ -563,6 +559,26 @@ anymatch@^2.0.0:
micromatch "^3.1.4"
normalize-path "^2.1.1"
+app-builder-bin-linux@1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/app-builder-bin-linux/-/app-builder-bin-linux-1.3.1.tgz#4e1bb0f0e7c7b15ed134193edb1797a1fc18a40c"
+
+app-builder-bin-mac@1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/app-builder-bin-mac/-/app-builder-bin-mac-1.3.1.tgz#329357417ea0919adf094855404f229c5ff5f12f"
+
+app-builder-bin-win@1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/app-builder-bin-win/-/app-builder-bin-win-1.3.1.tgz#a819d0ba9bb3831d69ab43b744a2794686bfc547"
+
+app-builder-bin@1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-1.3.1.tgz#ba24cb6778c56ba925f282be42aa5dcccc533201"
+ optionalDependencies:
+ app-builder-bin-linux "1.3.1"
+ app-builder-bin-mac "1.3.1"
+ app-builder-bin-win "1.3.1"
+
app-root-path@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46"
@@ -673,13 +689,6 @@ asap@~2.0.3:
version "2.0.6"
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
-asar-integrity@0.2.4:
- version "0.2.4"
- resolved "https://registry.yarnpkg.com/asar-integrity/-/asar-integrity-0.2.4.tgz#b7867c9720e08c461d12bc42f005c239af701733"
- dependencies:
- bluebird-lst "^1.0.5"
- fs-extra-p "^4.5.0"
-
asn1.js@^4.0.0:
version "4.9.2"
resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.2.tgz#8117ef4f7ed87cd8f89044b5bff97ac243a16c9a"
@@ -2102,16 +2111,7 @@ buffers@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb"
-builder-util-runtime@4.0.4:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-4.0.4.tgz#c92c352097006a07f3324ea200fa815440cba198"
- dependencies:
- bluebird-lst "^1.0.5"
- debug "^3.1.0"
- fs-extra-p "^4.5.0"
- sax "^1.2.4"
-
-builder-util-runtime@^4.0.4, builder-util-runtime@^4.0.5:
+builder-util-runtime@4.0.5, builder-util-runtime@^4.0.5:
version "4.0.5"
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-4.0.5.tgz#5340cf9886b9283ea6e5b20dc09b5e3e461aef62"
dependencies:
@@ -2129,37 +2129,17 @@ builder-util-runtime@~4.0.3:
fs-extra-p "^4.5.0"
sax "^1.2.4"
-builder-util@4.2.2:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-4.2.2.tgz#366b2bc32324bfe5565a7e4f13f86238fef5e92b"
- dependencies:
- "7zip-bin" "^2.4.1"
- bluebird-lst "^1.0.5"
- builder-util-runtime "^4.0.4"
- chalk "^2.3.0"
- debug "^3.1.0"
- fs-extra-p "^4.5.0"
- ini "^1.3.5"
- is-ci "^1.1.0"
- js-yaml "^3.10.0"
- lazy-val "^1.0.3"
- semver "^5.5.0"
- source-map-support "^0.5.3"
- stat-mode "^0.2.2"
- temp-file "^3.1.1"
- tunnel-agent "^0.6.0"
-
-builder-util@^4.2.2:
- version "4.2.5"
- resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-4.2.5.tgz#babc190e2f2c3681497632b5cc274f1543aa9264"
+builder-util@5.2.0, builder-util@^5.1.0, builder-util@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-5.2.0.tgz#dd5631b1611e60b35c9fa87ab5a266175db0b0a7"
dependencies:
- "7zip-bin" "~3.0.0"
+ "7zip-bin" "~3.1.0"
+ app-builder-bin "1.3.1"
bluebird-lst "^1.0.5"
builder-util-runtime "^4.0.5"
chalk "^2.3.0"
debug "^3.1.0"
fs-extra-p "^4.5.0"
- ini "^1.3.5"
is-ci "^1.1.0"
js-yaml "^3.10.0"
lazy-val "^1.0.3"
@@ -2167,7 +2147,6 @@ builder-util@^4.2.2:
source-map-support "^0.5.3"
stat-mode "^0.2.2"
temp-file "^3.1.1"
- tunnel-agent "^0.6.0"
builtin-modules@^1.0.0, builtin-modules@^1.1.1:
version "1.1.1"
@@ -3220,16 +3199,18 @@ dijkstrajs@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b"
-dmg-builder@3.1.4:
- version "3.1.4"
- resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-3.1.4.tgz#57c53a2b5a1e28526a837430b6ecc7110cadcf63"
+dmg-builder@4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-4.0.2.tgz#0ca90a6fbd8e92dbcc15889f8950d6080534af5a"
dependencies:
bluebird-lst "^1.0.5"
- builder-util "^4.2.2"
+ builder-util "^5.2.0"
+ electron-builder-lib "~20.0.4"
fs-extra-p "^4.5.0"
iconv-lite "^0.4.19"
js-yaml "^3.10.0"
parse-color "^1.0.0"
+ sanitize-filename "^1.6.1"
dns-equal@^1.0.0:
version "1.0.0"
@@ -3375,22 +3356,21 @@ ejs@^2.5.7:
version "2.5.7"
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a"
-electron-builder-lib@19.56.0:
- version "19.56.0"
- resolved "https://registry.yarnpkg.com/electron-builder-lib/-/electron-builder-lib-19.56.0.tgz#26a6754f89c3e732afbd97868f1fc3f666884149"
+electron-builder-lib@20.0.4, electron-builder-lib@~20.0.4:
+ version "20.0.4"
+ resolved "https://registry.yarnpkg.com/electron-builder-lib/-/electron-builder-lib-20.0.4.tgz#8f27786f03153591b9d051c2bae81d02a3365752"
dependencies:
- "7zip-bin" "^2.4.1"
- asar-integrity "0.2.4"
+ "7zip-bin" "~3.1.0"
+ app-builder-bin "1.3.1"
async-exit-hook "^2.0.1"
bluebird-lst "^1.0.5"
- builder-util "4.2.2"
- builder-util-runtime "4.0.4"
+ builder-util "5.2.0"
+ builder-util-runtime "4.0.5"
chromium-pickle-js "^0.2.0"
debug "^3.1.0"
- dmg-builder "3.1.4"
ejs "^2.5.7"
electron-osx-sign "0.4.8"
- electron-publish "19.56.0"
+ electron-publish "20.0.2"
fs-extra-p "^4.5.0"
hosted-git-info "^2.5.0"
is-ci "^1.1.0"
@@ -3400,25 +3380,26 @@ electron-builder-lib@19.56.0:
minimatch "^3.0.4"
normalize-package-data "^2.4.0"
plist "^2.1.0"
- read-config-file "2.1.1"
+ read-config-file "3.0.0"
sanitize-filename "^1.6.1"
semver "^5.5.0"
temp-file "^3.1.1"
-electron-builder@^19.56.0:
- version "19.56.0"
- resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-19.56.0.tgz#ad5a64c73ce50b561fc8e2bcf9309de0f6ad4e5e"
+electron-builder@^20.0.4:
+ version "20.0.4"
+ resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-20.0.4.tgz#6c14baba7807c4053a346cefbe2f505d4cf48a15"
dependencies:
bluebird-lst "^1.0.5"
- builder-util "4.2.2"
- builder-util-runtime "4.0.4"
+ builder-util "5.2.0"
+ builder-util-runtime "4.0.5"
chalk "^2.3.0"
- electron-builder-lib "19.56.0"
+ dmg-builder "4.0.2"
+ electron-builder-lib "20.0.4"
electron-download-tf "4.3.4"
fs-extra-p "^4.5.0"
is-ci "^1.1.0"
lazy-val "^1.0.3"
- read-config-file "2.1.1"
+ read-config-file "3.0.0"
sanitize-filename "^1.6.1"
update-notifier "^2.3.0"
yargs "^11.0.0"
@@ -3475,13 +3456,13 @@ electron-osx-sign@0.4.8:
minimist "^1.2.0"
plist "^2.1.0"
-electron-publish@19.56.0:
- version "19.56.0"
- resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-19.56.0.tgz#1a0446e69b3085a905c0abdf16125c1c97d108d9"
+electron-publish@20.0.2:
+ version "20.0.2"
+ resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-20.0.2.tgz#6ac7ca3f55d01867c1e4159bff231583d9102000"
dependencies:
bluebird-lst "^1.0.5"
- builder-util "^4.2.2"
- builder-util-runtime "^4.0.4"
+ builder-util "^5.1.0"
+ builder-util-runtime "^4.0.5"
chalk "^2.3.0"
fs-extra-p "^4.5.0"
mime "^2.2.0"
@@ -5083,7 +5064,7 @@ inherits@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
-ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
+ini@^1.3.4, ini@~1.3.0:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
@@ -7764,7 +7745,21 @@ reactcss@^1.2.0:
dependencies:
lodash "^4.0.1"
-read-config-file@2.1.1, read-config-file@^2.1.1:
+read-config-file@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-3.0.0.tgz#771def5184a7f76abaf6b2c82f20cb983775b8ea"
+ dependencies:
+ ajv "^6.1.1"
+ ajv-keywords "^3.1.0"
+ bluebird-lst "^1.0.5"
+ dotenv "^5.0.0"
+ dotenv-expand "^4.0.1"
+ fs-extra-p "^4.5.0"
+ js-yaml "^3.10.0"
+ json5 "^0.5.1"
+ lazy-val "^1.0.3"
+
+read-config-file@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-2.1.1.tgz#bd6c2b93e97a82a35f71a3c9eb43161e16692054"
dependencies: