diff --git a/.babelrc b/.babelrc index e0151ef1..a6a7cbe4 100644 --- a/.babelrc +++ b/.babelrc @@ -1,4 +1,15 @@ { - "presets": ["flow", "stage-0"], + "presets": [ + "flow", + "stage-0", + [ + "env", + { + "targets": { + "node": "8" + } + } + ] + ], "plugins": [["module-resolver", { "root": ["src"] }]] } diff --git a/package.json b/package.json index 2ff960e0..75ff699d 100644 --- a/package.json +++ b/package.json @@ -26,13 +26,15 @@ } }, "dependencies": { - "@ledgerhq/hw-btc": "^1.0.4", - "@ledgerhq/hw-comm": "^1.0.4", - "@ledgerhq/hw-comm-node-hid": "^1.0.4", - "@ledgerhq/hw-eth": "^1.0.4", + "@ledgerhq/hw-app-btc": "^1.0.4", + "@ledgerhq/hw-transport": "^1.0.4", + "@ledgerhq/hw-transport-node-hid": "^1.0.4", + "@ledgerhq/hw-app-eth": "^1.0.4", + "babel-loader": "^7.1.2", "color": "^2.0.1", "electron": "1.7.10", "electron-devtools-installer": "^2.2.3", + "file-loader": "^1.1.6", "history": "^4.7.2", "i18next": "^10.2.2", "i18next-node-fs-backend": "^1.0.0", @@ -55,6 +57,7 @@ "devDependencies": { "babel-eslint": "^8.2.1", "babel-plugin-module-resolver": "^3.0.0", + "babel-preset-env": "^1.6.1", "babel-preset-flow": "^6.23.0", "babel-preset-react": "^6.24.1", "babel-preset-stage-0": "^6.24.1", diff --git a/src/main/bridge.js b/src/main/bridge.js index ef5d8a6a..a25405b0 100644 --- a/src/main/bridge.js +++ b/src/main/bridge.js @@ -4,11 +4,14 @@ import { fork } from 'child_process' import { ipcMain } from 'electron' import { resolve } from 'path' +// $FlowFixMe +import usbBridge from 'file-loader!babel-loader!./usb' // eslint-disable-line import/no-webpack-loader-syntax + ipcMain.on('msg', (event: any, payload) => { const { type, data } = payload - const compute = fork('./usb', { - cwd: resolve(__dirname, './'), + const compute = fork(usbBridge, { + cwd: resolve(__dirname, '../../dist/main'), }) compute.send({ type, data }) diff --git a/src/main/usb.js b/src/main/usb.js index 3c7293d4..889fa8d7 100644 --- a/src/main/usb.js +++ b/src/main/usb.js @@ -1,17 +1,19 @@ -process.title = 'ledger-wallet-desktop-usb' +// @flow + +import objectPath from 'object-path' -const objectPath = require('object-path') +import CommNodeHid from '@ledgerhq/hw-transport-node-hid' +import listenDevices from '@ledgerhq/hw-transport-node-hid/lib/listenDevices' +import getDevices from '@ledgerhq/hw-transport-node-hid/lib/getDevices' -const CommNodeHid = require('@ledgerhq/hw-comm-node-hid').default -const listenDevices = require('@ledgerhq/hw-comm-node-hid/lib/listenDevices').default -const getDevices = require('@ledgerhq/hw-comm-node-hid/lib/getDevices').default +import Btc from '@ledgerhq/hw-app-btc' -const Btc = require('@ledgerhq/hw-btc').default +process.title = 'ledger-wallet-desktop-usb' const isLedgerDevice = device => (device.vendorId === 0x2581 && device.productId === 0x3b7c) || device.vendorId === 0x2c97 -function send(type, data, options = { kill: true }) { +function send(type: string, data: any, options = { kill: true }) { process.send({ type, data, options }) } diff --git a/yarn.lock b/yarn.lock index 7f49233d..498b077c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -78,30 +78,30 @@ lodash "^4.2.0" to-fast-properties "^2.0.0" -"@ledgerhq/hw-btc@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-btc/-/hw-btc-1.0.4.tgz#2a2c79377951c1b3318f9ec2d9c5f5d841579777" +"@ledgerhq/hw-app-btc@^1.0.4": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-btc/-/hw-app-btc-1.0.5.tgz#01689c1bf5baaf744a49183a2a54adee2ae10e1a" dependencies: - "@ledgerhq/hw-comm" "^1.0.4" + "@ledgerhq/hw-transport" "^1.0.5" -"@ledgerhq/hw-comm-node-hid@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-comm-node-hid/-/hw-comm-node-hid-1.0.4.tgz#23f21c247ec9bb12064a620a5b29ef98ab2fdd46" +"@ledgerhq/hw-app-eth@^1.0.4": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-1.0.5.tgz#39524d2a0e12e3b772d19c4582fffd43a93ae563" dependencies: - "@ledgerhq/hw-comm" "^1.0.4" - node-hid "^0.7.2" + "@ledgerhq/hw-transport" "^1.0.5" -"@ledgerhq/hw-comm@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-comm/-/hw-comm-1.0.4.tgz#e7aced1a370fd375edecd1178647f9aa55e6b3ae" +"@ledgerhq/hw-transport-node-hid@^1.0.4": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-1.0.5.tgz#2f35773ece17d856a42868fd2d9497c6a7ed20dc" dependencies: - invariant "^2.2.0" + "@ledgerhq/hw-transport" "^1.0.5" + node-hid "^0.7.2" -"@ledgerhq/hw-eth@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-eth/-/hw-eth-1.0.4.tgz#200a901d1cd0caae0ea8b6f126c77ad5747e5ad8" +"@ledgerhq/hw-transport@^1.0.4", "@ledgerhq/hw-transport@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-1.0.5.tgz#8bc40175eed66f0be6971340126e98d374fa01f4" dependencies: - "@ledgerhq/hw-comm" "^1.0.4" + invariant "^2.2.0" "@types/node@^7.0.18": version "7.0.52" @@ -3326,7 +3326,7 @@ file-entry-cache@^2.0.0: flat-cache "^1.2.1" object-assign "^4.0.1" -file-loader@^1.1.5: +file-loader@^1.1.5, file-loader@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.6.tgz#7b9a8f2c58f00a77fddf49e940f7ac978a3ea0e8" dependencies: