wireapp / wire-desktop

:computer: Wire for desktop
https://wire.com/download/
GNU General Public License v3.0
1.08k stars 233 forks source link

Cannot build wire-desktop on Ubuntu 16.04 LTS #1485

Closed AlfonsoMuskedunder closed 6 years ago

AlfonsoMuskedunder commented 6 years ago

Operating system: Ubuntu 16.04.4 LTS Node version: v8.11.2

When I try to build Wire, the process is aborted, with the following output:

Running "electronbuilder:linux_prod" (electronbuilder) task
electron-builder 18.6.2
Rebuilding native production dependencies for linux:ia32
Warning: /usr/bin/node exited with code 1
Output:

> spellchecker@3.4.4 install /home/xyz/GitHub/wire-desktop/electron/node_modules/spellchecker
> node-gyp rebuild

make: Entering directory '/home/xyz/GitHub/wire-desktop/electron/node_modules/spellchecker/build'
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/affentry.o
hunspell.target.mk:104: recipe for target 'Release/obj.target/hunspell/vendor/hunspell/src/hunspell/affentry.o' failed
make: Leaving directory '/home/xyz/GitHub/wire-desktop/electron/node_modules/spellchecker/build'

Error output:
In file included from /usr/include/stdlib.h:24:0,
                 from ../vendor/hunspell/src/hunspell/affentry.cxx:4:
/usr/include/features.h:367:25: fatal error: sys/cdefs.h: No such file or directory
compilation terminated.
make: * [Release/obj.target/hunspell/vendor/hunspell/src/hunspell/affentry.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack     at emitTwo (events.js:126:13)
gyp ERR! stack     at ChildProcess.emit (events.js:214:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
gyp ERR! System Linux 4.4.0-127-generic
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/xyz/GitHub/wire-desktop/electron/node_modules/spellchecker
gyp ERR! node -v v8.11.2
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! spellchecker@3.4.4 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the spellchecker@3.4.4 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/xyz/.npm/_logs/2018-05-24T09_50_27_875Z-debug.log
 Use --force to continue.

Aborted due to warnings.
npm ERR! code ELIFECYCLE
npm ERR! errno 3
npm ERR! @ build:linux: `grunt linux-prod`
npm ERR! Exit status 3
npm ERR! 
npm ERR! Failed at the @ build:linux script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

I have searched open and closed issues before posting, but none of them resembled my problem to the best of my knowledge.

ffflorian commented 6 years ago

Hi @AlfonsoMuskedunder,

please see this AskUbuntu question related to your problem: https://askubuntu.com/questions/470796/fatal-error-sys-cdefs-h-no-such-file-or-directory.

AlfonsoMuskedunder commented 6 years ago

Thank you @ffflorian. I followed the answer with the most upvotes and installed libc6-dev-i386 (and I updated npm via npm i -g npm after running npm test). Building failed again (for a different reason), and I installed g++-multilib.

After that, things looked promising, but alas, the build script aborts again:

Running "electronbuilder:linux_prod" (electronbuilder) task
electron-builder 18.6.2
Rebuilding native production dependencies for linux:ia32
⚠️  Packaging using asar archive is disabled — it is strongly not recommended.
Please enable asar and use asarUnpack to unpack files that must be externally available.
Packaging for linux ia32 using electron 2.0.2 to wrap/dist/linux-ia32-unpacked
Downloading tmp-6959-1-SHASUMS256.txt-2.0.2
[============================================>] 100.0% of 5.33 kB (5.33 kB/s)
Building AppImage for arch ia32
Rebuilding native production dependencies for linux:x64
⚠️  Packaging using asar archive is disabled — it is strongly not recommended.
Downloading tmp-6959-2-electron-v2.0.2-linux-x64.zip
[============================================>] 100.0% of 48.56 MB (2.74 MB/s)
Building deb
Building AppImage for arch x64
Building deb
Building rpm
Warning: Exit code: 1. Command failed: /home/[REDACTED]/.cache/electron-builder/fpm/fpm-1.8.1-2.3.1/fpm -s dir -t rpm --architecture i386 --name wire --force --after-install /tmp/electron-builder-9GQ7j6/0-5-after-install --after-remove /tmp/electron-builder-9GQ7j6/0-3-after-remove --description Secure messenger for everyone. --maintainer Wire Swiss <wireapp@wire.com> --vendor Wire Swiss <wireapp@wire.com> --version 3.2.0-689d81f --package /home/[REDACTED]/GitHub/wire-desktop/wrap/dist/wire-3.2.0-689d81f.i686.rpm --url https://wire.com --rpm-os linux --depends alsa-lib --depends Gconf2 --depends libappindicator --depends libnotify --depends libXScrnSaver --depends libXtst --depends nss --license GPL-3.0 --name wire-desktop /home/[REDACTED]/GitHub/wire-desktop/wrap/dist/linux-ia32-unpacked/=/opt/wire-desktop /home/[REDACTED]/GitHub/wire-desktop/resources/icons/256x256.png=/usr/share/icons/hicolor/256x256/apps/wire-desktop.png /home/[REDACTED]/GitHub/wire-desktop/resources/icons/32x32.png=/usr/share/icons/hicolor/32x32/apps/wire-desktop.png /tmp/electron-builder-9GQ7j6/0-8-wire-desktop.desktop=/usr/share/applications/wire-desktop.desktop

{:timestamp=>"2018-05-28T17:35:56.196799+0200", :message=>"Package version '3.2.0-689d81f' includes dashes, converting to underscores", :level=>:warn}
{:timestamp=>"2018-05-28T17:35:57.593763+0200", :message=>"Need executable 'rpmbuild' to convert dir to rpm", :level=>:error}
ffflorian commented 6 years ago

Hi @AlfonsoMuskedunder, as the log already states, you need the executable rpmbuild. Install it with sudo apt install alien.

This answer can also be found in our Troubleshooting Wiki Page.

ffflorian commented 6 years ago

Closing this due to inactivity - feel free to comment if you still can't build it.

JazzTp commented 6 years ago

Ubuntu 16.04 LTS, not trying to build it actually, I was following the README instructions in this GitHub repo... actually wondering how I would launch it, afterwards, if I didn't got an error as the result of npm test. Here's the console output:

nico@nicopc:~/MANINST/wire-desktop$ npm test

> @ test /home/nico/MANINST/wire-desktop
> npm run test:other && npm run test:js && npm run test:react && npm run test:main

/usr/local/lib/node_modules/npm/bin/npm-cli.js:79
      let notifier = require('update-notifier')({pkg})
      ^^^

SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:374:25)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Function.Module.runMain (module.js:442:10)
    at startup (node.js:136:18)
    at node.js:966:3
npm ERR! Test failed.  See above for more details.
nico@nicopc:~/MANINST/wire-desktop$ 

In case you need it, here's the console output of the preceding installation process (MANINST is a folder where I "manually" install anything not coming as a .deb package):

nico@nicopc:~$ cd MANINST/
nico@nicopc:~/MANINST$ git clone https://github.com/wireapp/wire-desktop.git
Cloning into 'wire-desktop'...
remote: Counting objects: 6668, done.
remote: Compressing objects: 100% (54/54), done.
remote: Total 6668 (delta 60), reused 23 (delta 23), pack-reused 6591
Receiving objects: 100% (6668/6668), 3.47 MiB | 1.16 MiB/s, done.
Resolving deltas: 100% (4708/4708), done.
Checking connectivity... done.
nico@nicopc:~/MANINST$ cd wire-desktop/
nico@nicopc:~/MANINST/wire-desktop$ npm install
npm WARN deprecated babel-preset-es2015@6.24.1: 🙌  Thanks for using Babel: we recommend using babel-preset-env now: please read babeljs.io/env to update! 
loadDevDep:webpack-cli →  ▀ ╢████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine lint-staged@7.2.0: wanted: {"node":">=6"} (current: {"node":"4.2.6",loadDevDep:webpack-cli →  ▌ ╢████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine webpack-cli@3.0.8: wanted: {"node":">=6.11.5"} (current: {"node":"4.loadDevDep:webpack-cli →  ▀ ╢████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine jest@23.2.0: wanted: {"node":">= 6"} (current: {"node":"4.2.6","npm"loadDevDep:webpack-cli →  ▄ ╢████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine load-grunt-tasks@4.0.0: wanted: {"node":">=6"} (current: {"node":"4.loadDevDep:webpack-cli →  ▌ ╢████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine eslint@5.0.1: wanted: {"node":"^6.14.0 || ^8.10.0 || >=9.10.0"} (curloadDevDep:webpack-cli →  ▀ ╢████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine webpack@4.12.2: wanted: {"node":">=6.11.5"} (current: {"node":"4.2.6loadDevDep:webpack-cli →  ▐ ╢████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine electron-builder@20.16.4: wanted: {"node":">=6.11.4"} (current: {"noloadDep:urix → 200        ▌ ╢████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine atob@2.1.1: wanted: {"node":">= 4.5.0"} (current: {"node":"4.2.6","nloadDep:dmg-builder → 200 ▌ ╢█████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine fs-extra-p@4.6.1: wanted: {"node":">=6.0.0"} (current: {"node":"4.2.6","npm":"3.5.2"})
WARN engine builder-util-runtime@4.2.2: wanted: {"node":">=6.0.0"} (current: {"nloadDep:dmg-builder → res ▄ ╢█████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine electron-builder-lib@20.16.4: wanted: {"node":">=6.11.4"} (current: loadDep:ejs → 200         ▀ ╢█████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine plist@3.0.1: wanted: {"node":">=6"} (current: {"node":"4.2.6","npm":loadDep:json5 → fetch     ▐ ╢█████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine dotenv@6.0.0: wanted: {"node":">=6"} (current: {"node":"4.2.6","npm"loadDep:uri-js → fetchAnd ▄ ╢█████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine punycode@2.1.1: wanted: {"node":">=6"} (current: {"node":"4.2.6","nploadDep:resolve → 200     ▌ ╢██████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine asar@0.14.3: wanted: {"node":">=4.6"} (current: {"node":"4.2.6","npmloadDep:ajv → resolveWith ▀ ╢██████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine cross-spawn@6.0.5: wanted: {"node":">=4.8"} (current: {"node":"4.2.6loadDep:text-table → addN ▄ ╢██████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine inquirer@5.2.0: wanted: {"node":">=6.0.0"} (current: {"node":"4.2.6"loadDep:text-table → fetc ▌ ╢██████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine espree@4.0.0: wanted: {"node":">=6.0.0"} (current: {"node":"4.2.6","loadDep:js-yaml → resolve ▌ ╢███████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine grunt-legacy-util@1.1.1: wanted: {"node":">= 6"} (current: {"node":"loadDep:hooker → 200      ▀ ╢███████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine grunt-legacy-log-utils@2.0.1: wanted: {"node":">=6"} (current: {"nodloadDep:jest-cli → 200    ▀ ╢████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine jest-cli@23.2.0: wanted: {"node":">= 6"} (current: {"node":"4.2.6","loadDep:yargs → 200       ▄ ╢████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine prompts@0.1.9: wanted: {"node":">= 6"} (current: {"node":"4.2.6","npnpm WARN deprecated istanbul-lib-hook@1.2.1: 1.2.0 should have been a major version bump
loadDep:punycode → mapToR ▌ ╢████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine punycode@2.1.1: wanted: {"node":">=6"} (current: {"node":"4.2.6","nploadDep:rxjs → fetch      ▐ ╢████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine @samverschueren/stream-to-observable@0.3.0: wanted: {"node":">=6"} (loadDep:any-observable →  ▐ ╢████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine any-observable@0.3.0: wanted: {"node":">=6"} (current: {"node":"4.2.loadDep:schema-utils → 20 ▐ ╢█████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine schema-utils@0.4.5: wanted: {"node":">= 4.8.0 || >= 6.9.0 || >= 8.9.loadDep:webpack-sources → ▄ ╢█████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine chrome-trace-event@1.0.0: wanted: {"node":">=6.0"} (current: {"node":"4.2.6","npm":"3.5.2"})
WARN engine loader-runner@2.3.0: wanted: {"node":">=4.3.0 <5.0.0 || >=5.10"} (culoadDep:webpack-sources → ▐ ╢█████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine tapable@1.0.0: wanted: {"node":">=6"} (current: {"node":"4.2.6","npmloadDep:webpack-sources → ▐ ╢█████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine enhanced-resolve@4.0.0: wanted: {"node":">=6.11.5"} (current: {"node":"4.2.6","npm":"3.5.2"})
WARN engine uglifyjs-webpack-plugin@1.2.7: wanted: {"node":">= 4.8 < 5.0.0 || >=loadDep:cross-spawn → res ▐ ╢█████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine cross-spawn@6.0.5: wanted: {"node":">=4.8"} (current: {"node":"4.2.6","npm":"3.5.2"})
WARN engine inquirer@6.0.0: wanted: {"node":">=6.0.0"} (current: {"node":"4.2.6"npm WARN prefer global coffeescript@1.10.0 should be installed with -g

> husky@0.14.3 install /home/nico/MANINST/wire-desktop/node_modules/husky
> node ./bin/install.js

husky
setting up Git hooks
done

> electron@1.8.7 postinstall /home/nico/MANINST/wire-desktop/node_modules/electron
> node install.js

Downloading SHASUMS256.txt
[============================================>] 100.0% of 5.74 kB (5.74 kB/s)

> undefined preinstall /home/nico/MANINST/wire-desktop
> cd electron && npm install

loadDevDep:cross-spawn →  ▌ ╢████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine cross-spawn@6.0.5: wanted: {"node":">=4.8"} (current: {"node":"4.2.6
> node-addressbook@1.2.0 install /home/nico/MANINST/wire-desktop/electron/node_modules/node-addressbook
> node-gyp rebuild

make: Entering directory '/home/nico/MANINST/wire-desktop/electron/node_modules/node-addressbook/build'
  CXX(target) Release/obj.target/electron-addressbook/AddressBook.o
  CXX(target) Release/obj.target/electron-addressbook/Person.o
  CXX(target) Release/obj.target/electron-addressbook/wrapper.o
../wrapper.cc: In member function ‘virtual void AddressBookWorker::HandleProgressCallback(const char*, size_t)’:
../wrapper.cc:72:35: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
             progress->Call(1, argv);
                                   ^
In file included from ../wrapper.cc:18:0:
../../nan/nan.h:1618:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^
../wrapper.cc: In member function ‘virtual void AddressBookWorker::HandleOKCallback()’:
../wrapper.cc:90:35: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
             callback->Call(1, argv);
                                   ^
In file included from ../wrapper.cc:18:0:
../../nan/nan.h:1618:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^
  SOLINK_MODULE(target) Release/obj.target/electron-addressbook.node
  COPY Release/electron-addressbook.node
make: Leaving directory '/home/nico/MANINST/wire-desktop/electron/node_modules/node-addressbook/build'

> spellchecker@3.4.4 install /home/nico/MANINST/wire-desktop/electron/node_modules/spellchecker
> node-gyp rebuild

make: Entering directory '/home/nico/MANINST/wire-desktop/electron/node_modules/spellchecker/build'
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/affentry.o
In file included from ../vendor/hunspell/src/hunspell/affentry.cxx:9:0:
../vendor/hunspell/src/hunspell/affentry.hxx:30:105: warning: converting to non-pointer type ‘short unsigned int’ from NULL [-Wconversion-null]
 sfx(const char * word, int len, char in_compound, const FLAG needflag = NULL);
                                                                         ^
../vendor/hunspell/src/hunspell/affentry.hxx:93:114: warning: converting to non-pointer type ‘short unsigned int’ from NULL [-Wconversion-null]
 ar * word, int len, int optflags, PfxEntry* ppfx, const FLAG needflag = NULL);
                                                                         ^
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/affixmgr.o
In file included from ../vendor/hunspell/src/hunspell/affixmgr.cxx:12:0:
../vendor/hunspell/src/hunspell/affentry.hxx:30:105: warning: converting to non-pointer type ‘short unsigned int’ from NULL [-Wconversion-null]
 sfx(const char * word, int len, char in_compound, const FLAG needflag = NULL);
                                                                         ^
../vendor/hunspell/src/hunspell/affentry.hxx:93:114: warning: converting to non-pointer type ‘short unsigned int’ from NULL [-Wconversion-null]
 ar * word, int len, int optflags, PfxEntry* ppfx, const FLAG needflag = NULL);
                                                                         ^
../vendor/hunspell/src/hunspell/affixmgr.cxx: In member function ‘int AffixMgr::parse_convtable(char*, FileMgr*, RepList**, const char*)’:
../vendor/hunspell/src/hunspell/affixmgr.cxx:3654:64: warning: argument to ‘sizeof’ in ‘int strncmp(const char*, const char*, size_t)’ call is the same expression as the second source; did you mean to provide an explicit length? [-Wsizeof-pointer-memaccess]
                              if (strncmp(piece, keyword, sizeof(keyword)) != 0)
                                                                ^
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/csutil.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/dictmgr.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/filemgr.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/hashmgr.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/hunspell.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/hunzip.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/phonet.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/replist.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/suggestmgr.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/parsers/textparser.o
  AR(target) Release/obj.target/hunspell.a
  COPY Release/hunspell.a
  CXX(target) Release/obj.target/spellchecker/src/main.o
  CXX(target) Release/obj.target/spellchecker/src/worker.o
../src/worker.cc: In member function ‘virtual void CheckSpellingWorker::HandleOKCallback()’:
../src/worker.cc:44:25: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
   callback->Call(2, argv);
                         ^
In file included from ../src/worker.h:4:0,
                 from ../src/worker.cc:1:
../../nan/nan.h:1618:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^
  CXX(target) Release/obj.target/spellchecker/src/spellchecker_hunspell.o
  CXX(target) Release/obj.target/spellchecker/src/spellchecker_linux.o
  CXX(target) Release/obj.target/spellchecker/src/transcoder_posix.o
  SOLINK_MODULE(target) Release/obj.target/spellchecker.node
  COPY Release/spellchecker.node
make: Leaving directory '/home/nico/MANINST/wire-desktop/electron/node_modules/spellchecker/build'
wireinternal@ /home/nico/MANINST/wire-desktop/electron
├─┬ auto-launch@5.0.5 
│ ├── applescript@1.0.0 
│ ├─┬ mkdirp@0.5.1 
│ │ └── minimist@0.0.8 
│ ├── path-is-absolute@1.0.1 
│ ├── untildify@3.0.3 
│ └── winreg@1.2.4 
├─┬ cross-spawn@6.0.5 
│ ├── nice-try@1.0.4 
│ ├── path-key@2.0.1 
│ ├── semver@5.5.0 
│ ├─┬ shebang-command@1.2.0 
│ │ └── shebang-regex@1.0.0 
│ └─┬ which@1.3.1 
│   └── isexe@2.0.0 
├─┬ debug@3.1.0 
│ └── ms@2.0.0 
├── file-url@2.0.2 
├─┬ fs-extra@6.0.1 
│ ├── graceful-fs@4.1.11 
│ ├── jsonfile@4.0.0 
│ └── universalify@0.1.2 
├─┬ googleapis@24.0.0 
│ ├── async@2.6.0 
│ ├─┬ google-auth-library@0.12.0 
│ │ ├─┬ gtoken@1.2.3 
│ │ │ ├─┬ google-p12-pem@0.1.2 
│ │ │ │ └── node-forge@0.7.5 
│ │ │ └── mime@1.6.0 
│ │ ├─┬ jws@3.1.5 
│ │ │ └─┬ jwa@1.1.6 
│ │ │   ├── buffer-equal-constant-time@1.0.1 
│ │ │   └── ecdsa-sig-formatter@1.0.10 
│ │ ├── lodash.isstring@4.0.1 
│ │ └── lodash.merge@4.6.1 
│ └── string-template@1.0.0 
├─┬ image-type@3.0.0 
│ └── file-type@4.4.0 
├── jsrsasign@8.0.12 
├── lodash@4.17.10 
├── minimist@1.2.0 
├─┬ node-addressbook@1.2.0  (git+https://github.com/wireapp/node-addressbook.git#5799991759e017d92931075c5fd6eed9e66936b9)
│ └── nan@2.10.0 
├─┬ open-graph@0.2.3 
│ └─┬ cheerio@0.22.0 
│   ├─┬ css-select@1.2.0 
│   │ ├── boolbase@1.0.0 
│   │ ├── css-what@2.1.0 
│   │ ├── domutils@1.5.1 
│   │ └── nth-check@1.0.1 
│   ├─┬ dom-serializer@0.1.0 
│   │ └── domelementtype@1.1.3 
│   ├── entities@1.1.1 
│   ├─┬ htmlparser2@3.9.2 
│   │ ├── domelementtype@1.3.0 
│   │ ├── domhandler@2.4.2 
│   │ ├── inherits@2.0.3 
│   │ └─┬ readable-stream@2.3.6 
│   │   ├── core-util-is@1.0.2 
│   │   ├── isarray@1.0.0 
│   │   ├── process-nextick-args@2.0.0 
│   │   ├── string_decoder@1.1.1 
│   │   └── util-deprecate@1.0.2 
│   ├── lodash.assignin@4.2.0 
│   ├── lodash.bind@4.2.1 
│   ├── lodash.defaults@4.2.0 
│   ├── lodash.filter@4.6.0 
│   ├── lodash.flatten@4.4.0 
│   ├── lodash.foreach@4.5.0 
│   ├── lodash.map@4.6.0 
│   ├── lodash.pick@4.4.0 
│   ├── lodash.reduce@4.6.0 
│   ├── lodash.reject@4.6.0 
│   └── lodash.some@4.6.0 
├─┬ prop-types@15.6.2 
│ ├─┬ loose-envify@1.3.1 
│ │ └── js-tokens@3.0.2 
│ └── object-assign@4.1.1 
├─┬ raygun@0.10.0 
│ ├─┬ nock@8.2.2 
│ │ ├─┬ chai@3.5.0 
│ │ │ ├── assertion-error@1.1.0 
│ │ │ ├─┬ deep-eql@0.1.3 
│ │ │ │ └── type-detect@0.1.1 
│ │ │ └── type-detect@1.0.0 
│ │ ├── debug@2.6.9 
│ │ ├── deep-equal@1.0.1 
│ │ ├── lodash@4.9.0 
│ │ └── propagate@0.4.0 
│ ├── object-to-human-string@0.0.3 
│ └── stack-trace@0.0.6 
├─┬ react@16.4.1 
│ └─┬ fbjs@0.8.17 
│   ├── core-js@1.2.7 
│   ├─┬ isomorphic-fetch@2.2.1 
│   │ ├─┬ node-fetch@1.7.3 
│   │ │ ├─┬ encoding@0.1.12 
│   │ │ │ └── iconv-lite@0.4.23 
│   │ │ └── is-stream@1.1.0 
│   │ └── whatwg-fetch@2.0.4 
│   ├─┬ promise@7.3.1 
│   │ └── asap@2.0.6 
│   ├── setimmediate@1.0.5 
│   └── ua-parser-js@0.7.18 
├── react-dom@16.4.1 
├─┬ react-redux@5.0.7 
│ ├── hoist-non-react-statics@2.5.5 
│ ├── invariant@2.2.4 
│ └── lodash-es@4.17.10 
├─┬ redux@3.7.2 
│ └── symbol-observable@1.2.0 
├─┬ redux-logger@3.0.6 
│ └── deep-diff@0.3.8 
├── redux-thunk@2.3.0 
├─┬ request@2.87.0 
│ ├── aws-sign2@0.7.0 
│ ├── aws4@1.7.0 
│ ├── caseless@0.12.0 
│ ├─┬ combined-stream@1.0.6 
│ │ └── delayed-stream@1.0.0 
│ ├── extend@3.0.1 
│ ├── forever-agent@0.6.1 
│ ├─┬ form-data@2.3.2 
│ │ └── asynckit@0.4.0 
│ ├─┬ har-validator@5.0.3 
│ │ ├─┬ ajv@5.5.2 
│ │ │ ├── co@4.6.0 
│ │ │ ├── fast-deep-equal@1.1.0 
│ │ │ ├── fast-json-stable-stringify@2.0.0 
│ │ │ └── json-schema-traverse@0.3.1 
│ │ └── har-schema@2.0.0 
│ ├─┬ http-signature@1.2.0 
│ │ ├── assert-plus@1.0.0 
│ │ ├─┬ jsprim@1.4.1 
│ │ │ ├── extsprintf@1.3.0 
│ │ │ ├── json-schema@0.2.3 
│ │ │ └── verror@1.10.0 
│ │ └─┬ sshpk@1.14.2 
│ │   ├── asn1@0.2.3 
│ │   ├── bcrypt-pbkdf@1.0.1 
│ │   ├── dashdash@1.14.1 
│ │   ├── ecc-jsbn@0.1.1 
│ │   ├── getpass@0.1.7 
│ │   ├── jsbn@0.1.1 
│ │   ├── safer-buffer@2.1.2 
│ │   └── tweetnacl@0.14.5 
│ ├── is-typedarray@1.0.0 
│ ├── isstream@0.1.2 
│ ├── json-stringify-safe@5.0.1 
│ ├─┬ mime-types@2.1.18 
│ │ └── mime-db@1.33.0 
│ ├── oauth-sign@0.8.2 
│ ├── performance-now@2.1.0 
│ ├── qs@6.5.2 
│ ├── safe-buffer@5.1.2 
│ ├─┬ tough-cookie@2.3.4 
│ │ └── punycode@1.4.1 
│ └── tunnel-agent@0.6.0 
├─┬ spellchecker@3.4.4 
│ └── any-promise@1.3.0 
├── uuid@3.3.0 
└─┬ winston@2.2.0  (git+https://github.com/wireapp/winston.git#6526c40fdf9ef4108091aac298ea954bb26493ae)
  ├── async@1.0.0 
  ├── colors@1.0.3 
  ├── cycle@1.0.3 
  ├── eyes@0.1.8 
  └── pkginfo@0.3.1 

/home/nico/MANINST/wire-desktop
├─┬ babel-core@6.26.3 
│ ├─┬ babel-code-frame@6.26.0 
│ │ ├─┬ chalk@1.1.3 
│ │ │ ├── ansi-styles@2.2.1 
│ │ │ ├── has-ansi@2.0.0 
│ │ │ └── supports-color@2.0.0 
│ │ └── js-tokens@3.0.2 
│ ├─┬ babel-generator@6.26.1 
│ │ ├─┬ detect-indent@4.0.0 
│ │ │ └─┬ repeating@2.0.1 
│ │ │   └─┬ is-finite@1.0.2 
│ │ │     └── number-is-nan@1.0.1 
│ │ ├── jsesc@1.3.0 
│ │ └── trim-right@1.0.1 
│ ├── babel-helpers@6.24.1 
│ ├── babel-messages@6.23.0 
│ ├─┬ babel-register@6.26.0 
│ │ ├── core-js@2.5.7 
│ │ ├─┬ home-or-tmp@2.0.0 
│ │ │ └── os-homedir@1.0.2 
│ │ └── source-map-support@0.4.18 
│ ├─┬ babel-runtime@6.26.0 
│ │ └── regenerator-runtime@0.11.1 
│ ├── babel-template@6.26.0 
│ ├─┬ babel-traverse@6.26.0 
│ │ ├── debug@2.6.9 
│ │ ├── globals@9.18.0 
│ │ └── invariant@2.2.4 
│ ├─┬ babel-types@6.26.0 
│ │ └── to-fast-properties@1.0.3 
│ ├── babylon@6.18.0 
│ ├── convert-source-map@1.5.1 
│ ├── debug@2.6.9 
│ ├── json5@0.5.1 
│ ├── lodash@4.17.10 
│ ├─┬ minimatch@3.0.4 
│ │ └─┬ brace-expansion@1.1.11 
│ │   ├── balanced-match@1.0.0 
│ │   └── concat-map@0.0.1 
│ ├── path-is-absolute@1.0.1 
│ ├── private@0.1.8 
│ ├── slash@1.0.0 
│ └── source-map@0.5.7 
├─┬ babel-jest@23.2.0 
│ ├─┬ babel-plugin-istanbul@4.1.6 
│ │ ├─┬ find-up@2.1.0 
│ │ │ └─┬ locate-path@2.0.0 
│ │ │   └─┬ p-locate@2.0.0 
│ │ │     └─┬ p-limit@1.3.0 
│ │ │       └── p-try@1.0.0 
│ │ ├── istanbul-lib-instrument@1.10.1 
│ │ └─┬ test-exclude@4.2.1 
│ │   └─┬ read-pkg-up@1.0.1 
│ │     ├─┬ find-up@1.1.2 
│ │     │ └── path-exists@2.1.0 
│ │     └─┬ read-pkg@1.1.0 
│ │       ├─┬ load-json-file@1.1.0 
│ │       │ └─┬ strip-bom@2.0.0 
│ │       │   └── is-utf8@0.2.1 
│ │       └── path-type@1.1.0 
│ └─┬ babel-preset-jest@23.2.0 
│   └── babel-plugin-jest-hoist@23.2.0 
├─┬ babel-loader@7.1.4 
│ ├─┬ find-cache-dir@1.0.0 
│ │ ├── commondir@1.0.1 
│ │ ├─┬ make-dir@1.3.0 
│ │ │ └── pify@3.0.0 
│ │ └── pkg-dir@2.0.0 
│ ├─┬ loader-utils@1.1.0 
│ │ ├── big.js@3.2.0 
│ │ └── emojis-list@2.1.0 
│ └─┬ mkdirp@0.5.1 
│   └── minimist@0.0.8 
├─┬ babel-plugin-transform-object-rest-spread@6.26.0 
│ └── babel-plugin-syntax-object-rest-spread@6.13.0 
├─┬ babel-preset-es2015@6.24.1 
│ ├── babel-plugin-check-es2015-constants@6.22.0 
│ ├── babel-plugin-transform-es2015-arrow-functions@6.22.0 
│ ├── babel-plugin-transform-es2015-block-scoped-functions@6.22.0 
│ ├── babel-plugin-transform-es2015-block-scoping@6.26.0 
│ ├─┬ babel-plugin-transform-es2015-classes@6.24.1 
│ │ ├── babel-helper-define-map@6.26.0 
│ │ ├── babel-helper-function-name@6.24.1 
│ │ ├── babel-helper-optimise-call-expression@6.24.1 
│ │ └── babel-helper-replace-supers@6.24.1 
│ ├── babel-plugin-transform-es2015-computed-properties@6.24.1 
│ ├── babel-plugin-transform-es2015-destructuring@6.23.0 
│ ├── babel-plugin-transform-es2015-duplicate-keys@6.24.1 
│ ├── babel-plugin-transform-es2015-for-of@6.23.0 
│ ├── babel-plugin-transform-es2015-function-name@6.24.1 
│ ├── babel-plugin-transform-es2015-literals@6.22.0 
│ ├── babel-plugin-transform-es2015-modules-amd@6.24.1 
│ ├─┬ babel-plugin-transform-es2015-modules-commonjs@6.26.2 
│ │ └── babel-plugin-transform-strict-mode@6.24.1 
│ ├─┬ babel-plugin-transform-es2015-modules-systemjs@6.24.1 
│ │ └── babel-helper-hoist-variables@6.24.1 
│ ├── babel-plugin-transform-es2015-modules-umd@6.24.1 
│ ├── babel-plugin-transform-es2015-object-super@6.24.1 
│ ├─┬ babel-plugin-transform-es2015-parameters@6.24.1 
│ │ ├── babel-helper-call-delegate@6.24.1 
│ │ └── babel-helper-get-function-arity@6.24.1 
│ ├── babel-plugin-transform-es2015-shorthand-properties@6.24.1 
│ ├── babel-plugin-transform-es2015-spread@6.22.0 
│ ├─┬ babel-plugin-transform-es2015-sticky-regex@6.24.1 
│ │ └── babel-helper-regex@6.26.0 
│ ├── babel-plugin-transform-es2015-template-literals@6.22.0 
│ ├── babel-plugin-transform-es2015-typeof-symbol@6.23.0 
│ ├─┬ babel-plugin-transform-es2015-unicode-regex@6.24.1 
│ │ └─┬ regexpu-core@2.0.0 
│ │   ├── regenerate@1.4.0 
│ │   ├── regjsgen@0.2.0 
│ │   └─┬ regjsparser@0.1.5 
│ │     └── jsesc@0.5.0 
│ └─┬ babel-plugin-transform-regenerator@6.26.0 
│   └── regenerator-transform@0.10.1 
├─┬ babel-preset-react@6.24.1 
│ ├── babel-plugin-syntax-jsx@6.18.0 
│ ├── babel-plugin-transform-react-display-name@6.25.0 
│ ├─┬ babel-plugin-transform-react-jsx@6.24.1 
│ │ └── babel-helper-builder-react-jsx@6.26.0 
│ ├── babel-plugin-transform-react-jsx-self@6.22.0 
│ ├── babel-plugin-transform-react-jsx-source@6.22.0 
│ └─┬ babel-preset-flow@6.23.0 
│   └─┬ babel-plugin-transform-flow-strip-types@6.22.0 
│     └── babel-plugin-syntax-flow@6.18.0 
├─┬ css-loader@0.28.11 
│ ├─┬ css-selector-tokenizer@0.7.0 
│ │ ├── cssesc@0.1.0 
│ │ ├── fastparse@1.1.1 
│ │ └── regexpu-core@1.0.0 
│ ├─┬ cssnano@3.10.0 
│ │ ├─┬ autoprefixer@6.7.7 
│ │ │ ├─┬ browserslist@1.7.7 
│ │ │ │ └── electron-to-chromium@1.3.50 
│ │ │ ├── caniuse-db@1.0.30000859 
│ │ │ ├── normalize-range@0.1.2 
│ │ │ └── num2fraction@1.2.2 
│ │ ├── decamelize@1.2.0 
│ │ ├── defined@1.0.0 
│ │ ├─┬ postcss-calc@5.3.1 
│ │ │ ├── postcss-message-helpers@2.0.0 
│ │ │ └─┬ reduce-css-calc@1.3.0 
│ │ │   ├── balanced-match@0.4.2 
│ │ │   ├── math-expression-evaluator@1.2.17 
│ │ │   └─┬ reduce-function-call@1.0.2 
│ │ │     └── balanced-match@0.4.2 
│ │ ├─┬ postcss-colormin@2.2.2 
│ │ │ └─┬ colormin@1.1.2 
│ │ │   ├─┬ color@0.11.4 
│ │ │   │ ├── clone@1.0.4 
│ │ │   │ └── color-string@0.3.0 
│ │ │   └── css-color-names@0.0.4 
│ │ ├── postcss-convert-values@2.6.1 
│ │ ├── postcss-discard-comments@2.0.4 
│ │ ├── postcss-discard-duplicates@2.1.0 
│ │ ├── postcss-discard-empty@2.1.0 
│ │ ├── postcss-discard-overridden@0.1.1 
│ │ ├─┬ postcss-discard-unused@2.2.3 
│ │ │ └── uniqs@2.0.0 
│ │ ├── postcss-filter-plugins@2.0.3 
│ │ ├── postcss-merge-idents@2.1.7 
│ │ ├── postcss-merge-longhand@2.0.2 
│ │ ├─┬ postcss-merge-rules@2.1.2 
│ │ │ ├─┬ caniuse-api@1.6.1 
│ │ │ │ ├── lodash.memoize@4.1.2 
│ │ │ │ └── lodash.uniq@4.5.0 
│ │ │ ├─┬ postcss-selector-parser@2.2.3 
│ │ │ │ ├── flatten@1.0.2 
│ │ │ │ ├── indexes-of@1.0.1 
│ │ │ │ └── uniq@1.0.1 
│ │ │ └── vendors@1.0.2 
│ │ ├── postcss-minify-font-values@1.0.5 
│ │ ├── postcss-minify-gradients@1.0.5 
│ │ ├─┬ postcss-minify-params@1.2.2 
│ │ │ └── alphanum-sort@1.0.2 
│ │ ├── postcss-minify-selectors@2.1.1 
│ │ ├── postcss-normalize-charset@1.1.1 
│ │ ├─┬ postcss-normalize-url@3.0.8 
│ │ │ ├── is-absolute-url@2.1.0 
│ │ │ └─┬ normalize-url@1.9.1 
│ │ │   ├── prepend-http@1.0.4 
│ │ │   ├─┬ query-string@4.3.4 
│ │ │   │ └── strict-uri-encode@1.1.0 
│ │ │   └─┬ sort-keys@1.1.2 
│ │ │     └── is-plain-obj@1.1.0 
│ │ ├── postcss-ordered-values@2.2.3 
│ │ ├── postcss-reduce-idents@2.4.0 
│ │ ├── postcss-reduce-initial@1.0.1 
│ │ ├── postcss-reduce-transforms@1.0.4 
│ │ ├─┬ postcss-svgo@2.1.6 
│ │ │ ├─┬ is-svg@2.1.0 
│ │ │ │ └── html-comment-regex@1.1.1 
│ │ │ └─┬ svgo@0.7.2 
│ │ │   ├── coa@1.0.4 
│ │ │   ├─┬ csso@2.3.2 
│ │ │   │ └── clap@1.2.3 
│ │ │   └── whet.extend@0.9.9 
│ │ ├── postcss-unique-selectors@2.0.2 
│ │ └── postcss-zindex@2.2.0 
│ ├─┬ icss-utils@2.1.0 
│ │ └─┬ postcss@6.0.23 
│ │   ├─┬ chalk@2.4.1 
│ │   │ └── ansi-styles@3.2.1 
│ │   ├── source-map@0.6.1 
│ │   └─┬ supports-color@5.4.0 
│ │     └── has-flag@3.0.0 
│ ├── lodash.camelcase@4.3.0 
│ ├── object-assign@4.1.1 
│ ├─┬ postcss@5.2.18 
│ │ ├── js-base64@2.4.5 
│ │ └─┬ supports-color@3.2.3 
│ │   └── has-flag@1.0.0 
│ ├─┬ postcss-modules-extract-imports@1.2.0 
│ │ └─┬ postcss@6.0.23 
│ │   ├─┬ chalk@2.4.1 
│ │   │ └── ansi-styles@3.2.1 
│ │   ├── source-map@0.6.1 
│ │   └─┬ supports-color@5.4.0 
│ │     └── has-flag@3.0.0 
│ ├─┬ postcss-modules-local-by-default@1.2.0 
│ │ └─┬ postcss@6.0.23 
│ │   ├─┬ chalk@2.4.1 
│ │   │ └── ansi-styles@3.2.1 
│ │   ├── source-map@0.6.1 
│ │   └─┬ supports-color@5.4.0 
│ │     └── has-flag@3.0.0 
│ ├─┬ postcss-modules-scope@1.1.0 
│ │ └─┬ postcss@6.0.23 
│ │   ├─┬ chalk@2.4.1 
│ │   │ └── ansi-styles@3.2.1 
│ │   ├── source-map@0.6.1 
│ │   └─┬ supports-color@5.4.0 
│ │     └── has-flag@3.0.0 
│ ├─┬ postcss-modules-values@1.3.0 
│ │ ├── icss-replace-symbols@1.1.0 
│ │ └─┬ postcss@6.0.23 
│ │   ├─┬ chalk@2.4.1 
│ │   │ └── ansi-styles@3.2.1 
│ │   ├── source-map@0.6.1 
│ │   └─┬ supports-color@5.4.0 
│ │     └── has-flag@3.0.0 
│ ├── postcss-value-parser@3.3.0 
│ └── source-list-map@2.0.0 
├─┬ debug@3.1.0 
│ └── ms@2.0.0 
├─┬ electron@1.8.7 
│ ├── @types/node@8.10.20 
│ ├─┬ electron-download@3.3.0 
│ │ ├── debug@2.6.9 
│ │ ├── fs-extra@0.30.0 
│ │ ├── home-path@1.0.6 
│ │ ├── minimist@1.2.0 
│ │ ├─┬ nugget@2.0.1 
│ │ │ ├── debug@2.6.9 
│ │ │ ├── minimist@1.2.0 
│ │ │ ├── pretty-bytes@1.0.4 
│ │ │ ├─┬ progress-stream@1.2.0 
│ │ │ │ ├── speedometer@0.1.4 
│ │ │ │ └─┬ through2@0.2.3 
│ │ │ │   └─┬ xtend@2.1.2 
│ │ │ │     └── object-keys@0.4.0 
│ │ │ ├─┬ request@2.87.0 
│ │ │ │ ├── aws-sign2@0.7.0 
│ │ │ │ ├── aws4@1.7.0 
│ │ │ │ ├── caseless@0.12.0 
│ │ │ │ ├─┬ combined-stream@1.0.6 
│ │ │ │ │ └── delayed-stream@1.0.0 
│ │ │ │ ├── extend@3.0.1 
│ │ │ │ ├── forever-agent@0.6.1 
│ │ │ │ ├─┬ form-data@2.3.2 
│ │ │ │ │ └── asynckit@0.4.0 
│ │ │ │ ├─┬ har-validator@5.0.3 
│ │ │ │ │ ├─┬ ajv@5.5.2 
│ │ │ │ │ │ ├── fast-deep-equal@1.1.0 
│ │ │ │ │ │ └── json-schema-traverse@0.3.1 
│ │ │ │ │ └── har-schema@2.0.0 
│ │ │ │ ├─┬ http-signature@1.2.0 
│ │ │ │ │ ├── assert-plus@1.0.0 
│ │ │ │ │ ├─┬ jsprim@1.4.1 
│ │ │ │ │ │ ├── extsprintf@1.3.0 
│ │ │ │ │ │ ├── json-schema@0.2.3 
│ │ │ │ │ │ └── verror@1.10.0 
│ │ │ │ │ └─┬ sshpk@1.14.2 
│ │ │ │ │   ├── asn1@0.2.3 
│ │ │ │ │   ├── bcrypt-pbkdf@1.0.1 
│ │ │ │ │   ├── dashdash@1.14.1 
│ │ │ │ │   ├── ecc-jsbn@0.1.1 
│ │ │ │ │   ├── getpass@0.1.7 
│ │ │ │ │   ├── jsbn@0.1.1 
│ │ │ │ │   └── tweetnacl@0.14.5 
│ │ │ │ ├── is-typedarray@1.0.0 
│ │ │ │ ├── isstream@0.1.2 
│ │ │ │ ├── json-stringify-safe@5.0.1 
│ │ │ │ ├─┬ mime-types@2.1.18 
│ │ │ │ │ └── mime-db@1.33.0 
│ │ │ │ ├── oauth-sign@0.8.2 
│ │ │ │ ├── performance-now@2.1.0 
│ │ │ │ ├── qs@6.5.2 
│ │ │ │ ├── tough-cookie@2.3.4 
│ │ │ │ ├── tunnel-agent@0.6.0 
│ │ │ │ └── uuid@3.3.0 
│ │ │ ├── single-line-log@1.1.2 
│ │ │ └── throttleit@0.0.2 
│ │ ├─┬ path-exists@2.1.0 
│ │ │ └─┬ pinkie-promise@2.0.1 
│ │ │   └── pinkie@2.0.4 
│ │ ├─┬ rc@1.2.8 
│ │ │ ├── deep-extend@0.6.0 
│ │ │ ├── ini@1.3.5 
│ │ │ └── minimist@1.2.0 
│ │ └─┬ sumchecker@1.3.1 
│ │   ├── debug@2.6.9 
│ │   └── es6-promise@4.2.4 
│ └─┬ extract-zip@1.6.7 
│   ├─┬ concat-stream@1.6.2 
│   │ ├── buffer-from@1.1.0 
│   │ ├─┬ readable-stream@2.3.6 
│   │ │ └── string_decoder@1.1.1 
│   │ └── typedarray@0.0.6 
│   ├── debug@2.6.9 
│   └─┬ yauzl@2.4.1 
│     └─┬ fd-slicer@1.0.1 
│       └── pend@1.2.0 
├─┬ electron-builder@20.16.4 
│ ├── bluebird-lst@1.0.5 
│ ├─┬ builder-util@5.11.9 
│ │ ├── 7zip-bin@4.0.2 
│ │ ├── app-builder-bin@1.9.16 
│ │ ├─┬ chalk@2.4.1 
│ │ │ ├── ansi-styles@3.2.1 
│ │ │ └─┬ supports-color@5.4.0 
│ │ │   └── has-flag@3.0.0 
│ │ ├─┬ js-yaml@3.12.0 
│ │ │ └── esprima@4.0.0 
│ │ ├─┬ source-map-support@0.5.6 
│ │ │ └── source-map@0.6.1 
│ │ ├── stat-mode@0.2.2 
│ │ └── temp-file@3.1.3 
│ ├─┬ builder-util-runtime@4.2.2 
│ │ └── sax@1.2.4 
│ ├─┬ chalk@2.4.1 
│ │ ├─┬ ansi-styles@3.2.1 
│ │ │ └─┬ color-convert@1.9.2 
│ │ │   └── color-name@1.1.1 
│ │ ├── escape-string-regexp@1.0.5 
│ │ └─┬ supports-color@5.4.0 
│ │   └── has-flag@3.0.0 
│ ├─┬ dmg-builder@4.10.2 
│ │ ├─┬ js-yaml@3.12.0 
│ │ │ └── esprima@4.0.0 
│ │ └─┬ parse-color@1.0.0 
│ │   └── color-convert@0.5.3 
│ ├─┬ electron-builder-lib@20.16.4 
│ │ ├── async-exit-hook@2.0.1 
│ │ ├── chromium-pickle-js@0.2.0 
│ │ ├── ejs@2.6.1 
│ │ ├─┬ electron-publish@20.16.0 
│ │ │ ├─┬ chalk@2.4.1 
│ │ │ │ ├── ansi-styles@3.2.1 
│ │ │ │ └─┬ supports-color@5.4.0 
│ │ │ │   └── has-flag@3.0.0 
│ │ │ └── mime@2.3.1 
│ │ ├── hosted-git-info@2.6.1 
│ │ ├── isbinaryfile@3.0.2 
│ │ ├─┬ js-yaml@3.12.0 
│ │ │ └── esprima@4.0.0 
│ │ ├─┬ normalize-package-data@2.4.0 
│ │ │ ├─┬ is-builtin-module@1.0.0 
│ │ │ │ └── builtin-modules@1.1.1 
│ │ │ └─┬ validate-npm-package-license@3.0.3 
│ │ │   ├─┬ spdx-correct@3.0.0 
│ │ │   │ └── spdx-license-ids@3.0.0 
│ │ │   └─┬ spdx-expression-parse@3.0.0 
│ │ │     └── spdx-exceptions@2.1.0 
│ │ ├─┬ plist@3.0.1 
│ │ │ ├── base64-js@1.3.0 
│ │ │ └── xmlbuilder@9.0.7 
│ │ └─┬ stream-json@1.0.3 
│ │   └── stream-chain@2.0.3 
│ ├─┬ electron-download-tf@4.3.4 
│ │ ├── env-paths@1.0.0 
│ │ ├─┬ fs-extra@4.0.3 
│ │ │ └── jsonfile@4.0.0 
│ │ ├── minimist@1.2.0 
│ │ ├── path-exists@3.0.0 
│ │ └─┬ sumchecker@2.0.2 
│ │   └── debug@2.6.9 
│ ├─┬ fs-extra-p@4.6.1 
│ │ └─┬ fs-extra@6.0.1 
│ │   └── jsonfile@4.0.0 
│ ├─┬ is-ci@1.1.0 
│ │ └── ci-info@1.1.3 
│ ├── lazy-val@1.0.3 
│ ├─┬ read-config-file@3.0.2 
│ │ ├─┬ UNMET PEER DEPENDENCY ajv@6.5.1
│ │ │ ├── fast-deep-equal@2.0.1 
│ │ │ └── json-schema-traverse@0.4.1 
│ │ ├── dotenv@6.0.0 
│ │ ├── dotenv-expand@4.2.0 
│ │ ├─┬ js-yaml@3.12.0 
│ │ │ └── esprima@4.0.0 
│ │ └─┬ json5@1.0.1 
│ │   └── minimist@1.2.0 
│ ├─┬ sanitize-filename@1.6.1 
│ │ └─┬ truncate-utf8-bytes@1.0.2 
│ │   └── utf8-byte-length@1.0.4 
│ ├─┬ update-notifier@2.5.0 
│ │ ├─┬ boxen@1.3.0 
│ │ │ ├─┬ ansi-align@2.0.0 
│ │ │ │ └─┬ string-width@2.1.1 
│ │ │ │   ├── is-fullwidth-code-point@2.0.0 
│ │ │ │   └─┬ strip-ansi@4.0.0 
│ │ │ │     └── ansi-regex@3.0.0 
│ │ │ ├── camelcase@4.1.0 
│ │ │ ├─┬ chalk@2.4.1 
│ │ │ │ ├── ansi-styles@3.2.1 
│ │ │ │ └─┬ supports-color@5.4.0 
│ │ │ │   └── has-flag@3.0.0 
│ │ │ ├── cli-boxes@1.0.0 
│ │ │ ├─┬ string-width@2.1.1 
│ │ │ │ ├── is-fullwidth-code-point@2.0.0 
│ │ │ │ └─┬ strip-ansi@4.0.0 
│ │ │ │   └── ansi-regex@3.0.0 
│ │ │ ├── term-size@1.2.0 
│ │ │ └─┬ widest-line@2.0.0 
│ │ │   └─┬ string-width@2.1.1 
│ │ │     ├── is-fullwidth-code-point@2.0.0 
│ │ │     └─┬ strip-ansi@4.0.0 
│ │ │       └── ansi-regex@3.0.0 
│ │ ├─┬ chalk@2.4.1 
│ │ │ ├── ansi-styles@3.2.1 
│ │ │ └─┬ supports-color@5.4.0 
│ │ │   └── has-flag@3.0.0 
│ │ ├─┬ configstore@3.1.2 
│ │ │ ├── dot-prop@4.2.0 
│ │ │ ├─┬ unique-string@1.0.0 
│ │ │ │ └── crypto-random-string@1.0.0 
│ │ │ └── write-file-atomic@2.3.0 
│ │ ├── import-lazy@2.1.0 
│ │ ├─┬ is-installed-globally@0.1.0 
│ │ │ ├── global-dirs@0.1.1 
│ │ │ └── is-path-inside@1.0.1 
│ │ ├── is-npm@1.0.0 
│ │ ├─┬ latest-version@3.1.0 
│ │ │ └─┬ package-json@4.0.1 
│ │ │   ├─┬ got@6.7.1 
│ │ │   │ ├─┬ create-error-class@3.0.2 
│ │ │   │ │ └── capture-stack-trace@1.0.0 
│ │ │   │ ├── duplexer3@0.1.4 
│ │ │   │ ├── is-redirect@1.0.0 
│ │ │   │ ├── is-retry-allowed@1.1.0 
│ │ │   │ ├── lowercase-keys@1.0.1 
│ │ │   │ ├── timed-out@4.0.1 
│ │ │   │ ├── unzip-response@2.0.1 
│ │ │   │ └── url-parse-lax@1.0.0 
│ │ │   ├── registry-auth-token@3.3.2 
│ │ │   └── registry-url@3.1.0 
│ │ ├── semver-diff@2.1.0 
│ │ └── xdg-basedir@3.0.0 
│ └─┬ yargs@12.0.0 
│   ├─┬ cliui@4.1.0 
│   │ ├─┬ string-width@2.1.1 
│   │ │ └── is-fullwidth-code-point@2.0.0 
│   │ ├─┬ strip-ansi@4.0.0 
│   │ │ └── ansi-regex@3.0.0 
│   │ └── wrap-ansi@2.1.0 
│   ├── get-caller-file@1.0.2 
│   ├─┬ os-locale@2.1.0 
│   │ ├── execa@0.7.0 
│   │ ├─┬ lcid@1.0.0 
│   │ │ └── invert-kv@1.0.0 
│   │ └─┬ mem@1.1.0 
│   │   └── mimic-fn@1.2.0 
│   ├── require-directory@2.1.1 
│   ├── require-main-filename@1.0.1 
│   ├── set-blocking@2.0.0 
│   ├─┬ string-width@2.1.1 
│   │ ├── is-fullwidth-code-point@2.0.0 
│   │ └─┬ strip-ansi@4.0.0 
│   │   └── ansi-regex@3.0.0 
│   ├── which-module@2.0.0 
│   └── y18n@4.0.0 
├─┬ electron-mocha@6.0.4 
│ ├── commander@2.15.1 
│ ├─┬ electron-window@0.8.1 
│ │ └── is-electron-renderer@2.0.1 
│ ├─┬ fs-extra@6.0.1 
│ │ ├── graceful-fs@4.1.11 
│ │ ├── jsonfile@4.0.0 
│ │ └── universalify@0.1.2 
│ ├─┬ mocha@5.2.0 
│ │ ├── browser-stdout@1.3.1 
│ │ ├── diff@3.5.0 
│ │ ├── growl@1.10.5 
│ │ ├── he@1.1.1 
│ │ └─┬ supports-color@5.4.0 
│ │   └── has-flag@3.0.0 
│ └─┬ which@1.3.1 
│   └── isexe@2.0.0 
├─┬ electron-packager@12.1.0 
│ ├─┬ asar@0.14.3 
│ │ ├── cuint@0.2.2 
│ │ ├── glob@6.0.4 
│ │ ├─┬ mksnapshot@0.3.1 
│ │ │ ├─┬ decompress-zip@0.3.0 
│ │ │ │ ├─┬ binary@0.3.0 
│ │ │ │ │ ├── buffers@0.1.1 
│ │ │ │ │ └─┬ chainsaw@0.1.0 
│ │ │ │ │   └── traverse@0.3.9 
│ │ │ │ ├── mkpath@0.1.0 
│ │ │ │ ├── q@1.5.1 
│ │ │ │ ├─┬ readable-stream@1.1.14 
│ │ │ │ │ ├── isarray@0.0.1 
│ │ │ │ │ └── string_decoder@0.10.31 
│ │ │ │ └─┬ touch@0.0.3 
│ │ │ │   └── nopt@1.0.10 
│ │ │ └── fs-extra@0.26.7 
│ │ └── tmp@0.0.28 
│ ├─┬ electron-download@4.1.0 
│ │ ├── debug@2.6.9 
│ │ ├── fs-extra@2.1.2 
│ │ ├── minimist@1.2.0 
│ │ └─┬ sumchecker@2.0.2 
│ │   └── debug@2.6.9 
│ ├─┬ electron-osx-sign@0.4.10 
│ │ ├── compare-version@0.1.2 
│ │ ├── debug@2.6.9 
│ │ ├── minimist@1.2.0 
│ │ └── plist@2.1.0 
│ ├─┬ fs-extra@5.0.0 
│ │ └── jsonfile@4.0.0 
│ ├─┬ galactus@0.2.1 
│ │ ├─┬ flora-colossus@1.0.0 
│ │ │ └─┬ fs-extra@4.0.3 
│ │ │   └── jsonfile@4.0.0 
│ │ └─┬ fs-extra@4.0.3 
│ │   └── jsonfile@4.0.0 
│ ├─┬ get-package-info@1.0.0 
│ │ ├── debug@2.6.9 
│ │ ├── lodash.get@4.4.2 
│ │ └─┬ read-pkg-up@2.0.0 
│ │   └─┬ read-pkg@2.0.0 
│ │     ├─┬ load-json-file@2.0.0 
│ │     │ ├── parse-json@2.2.0 
│ │     │ └── strip-bom@3.0.0 
│ │     └── path-type@2.0.0 
│ ├─┬ nodeify@1.0.1 
│ │ ├── is-promise@1.0.1 
│ │ └── promise@1.3.0 
│ ├─┬ parse-author@2.0.0 
│ │ └── author-regex@1.0.0 
│ ├── pify@3.0.0 
│ ├─┬ plist@2.1.0 
│ │ ├── base64-js@1.2.0 
│ │ ├── xmlbuilder@8.2.2 
│ │ └── xmldom@0.1.27 
│ ├── rcedit@1.1.0 
│ ├─┬ resolve@1.8.1 
│ │ └── path-parse@1.0.5 
│ ├── semver@5.5.0 
│ └─┬ yargs-parser@10.0.0 
│   └── camelcase@4.1.0 
├─┬ electron-winstaller@2.5.2 
│ ├─┬ asar@0.11.0 
│ │ ├── chromium-pickle-js@0.1.0 
│ │ └── glob@6.0.4 
│ ├── bluebird@3.5.1 
│ ├── debug@2.6.9 
│ ├─┬ fs-extra@0.26.7 
│ │ ├── jsonfile@2.4.0 
│ │ └── klaw@1.3.1 
│ ├─┬ lodash.template@4.4.0 
│ │ ├── lodash._reinterpolate@3.0.0 
│ │ └── lodash.templatesettings@4.1.0 
│ └─┬ temp@0.8.3 
│   ├── os-tmpdir@1.0.2 
│   └── rimraf@2.2.8 
├─┬ eslint@5.0.1 
│ ├─┬ ajv@6.5.1 
│ │ ├── fast-deep-equal@2.0.1 
│ │ ├── fast-json-stable-stringify@2.0.0 
│ │ ├── json-schema-traverse@0.4.1 
│ │ └─┬ uri-js@4.2.2 
│ │   └── punycode@2.1.1 
│ ├─┬ chalk@2.4.1 
│ │ ├── ansi-styles@3.2.1 
│ │ └─┬ supports-color@5.4.0 
│ │   └── has-flag@3.0.0 
│ ├─┬ cross-spawn@6.0.5 
│ │ ├── nice-try@1.0.4 
│ │ ├── path-key@2.0.1 
│ │ └─┬ shebang-command@1.2.0 
│ │   └── shebang-regex@1.0.0 
│ ├── doctrine@2.1.0 
│ ├─┬ eslint-scope@4.0.0 
│ │ ├── esrecurse@4.2.1 
│ │ └── estraverse@4.2.0 
│ ├── eslint-visitor-keys@1.0.0 
│ ├─┬ espree@4.0.0 
│ │ └── acorn-jsx@4.1.1 
│ ├── esquery@1.0.1 
│ ├── esutils@2.0.2 
│ ├─┬ file-entry-cache@2.0.0 
│ │ └─┬ flat-cache@1.3.0 
│ │   ├── circular-json@0.3.3 
│ │   ├─┬ del@2.2.2 
│ │   │ ├── globby@5.0.0 
│ │   │ ├── is-path-cwd@1.0.0 
│ │   │ ├── is-path-in-cwd@1.0.1 
│ │   │ └── pify@2.3.0 
│ │   └── write@0.2.1 
│ ├── functional-red-black-tree@1.0.1 
│ ├─┬ glob@7.1.2 
│ │ ├── fs.realpath@1.0.0 
│ │ ├─┬ inflight@1.0.6 
│ │ │ └── wrappy@1.0.2 
│ │ ├── inherits@2.0.3 
│ │ └── once@1.4.0 
│ ├── globals@11.7.0 
│ ├── ignore@3.3.10 
│ ├── imurmurhash@0.1.4 
│ ├─┬ inquirer@5.2.0 
│ │ ├── ansi-escapes@3.1.0 
│ │ ├─┬ chalk@2.4.1 
│ │ │ ├── ansi-styles@3.2.1 
│ │ │ └─┬ supports-color@5.4.0 
│ │ │   └── has-flag@3.0.0 
│ │ ├─┬ cli-cursor@2.1.0 
│ │ │ └─┬ restore-cursor@2.0.0 
│ │ │   └── onetime@2.0.1 
│ │ ├── cli-width@2.2.0 
│ │ ├─┬ external-editor@2.2.0 
│ │ │ ├── chardet@0.4.2 
│ │ │ └── tmp@0.0.33 
│ │ ├── figures@2.0.0 
│ │ ├── mute-stream@0.0.7 
│ │ ├─┬ run-async@2.3.0 
│ │ │ └── is-promise@2.1.0 
│ │ ├─┬ rxjs@5.5.11 
│ │ │ └── symbol-observable@1.0.1 
│ │ ├─┬ string-width@2.1.1 
│ │ │ └── is-fullwidth-code-point@2.0.0 
│ │ ├─┬ strip-ansi@4.0.0 
│ │ │ └── ansi-regex@3.0.0 
│ │ └── through@2.3.8 
│ ├── is-resolvable@1.1.0 
│ ├─┬ js-yaml@3.12.0 
│ │ ├─┬ argparse@1.0.10 
│ │ │ └── sprintf-js@1.0.3 
│ │ └── esprima@4.0.0 
│ ├── json-stable-stringify-without-jsonify@1.0.1 
│ ├─┬ levn@0.3.0 
│ │ ├── prelude-ls@1.1.2 
│ │ └── type-check@0.3.2 
│ ├── natural-compare@1.4.0 
│ ├─┬ optionator@0.8.2 
│ │ ├── deep-is@0.1.3 
│ │ ├── fast-levenshtein@2.0.6 
│ │ └── wordwrap@1.0.0 
│ ├── path-is-inside@1.0.2 
│ ├── pluralize@7.0.0 
│ ├── progress@2.0.0 
│ ├── regexpp@1.1.0 
│ ├─┬ require-uncached@1.0.3 
│ │ ├─┬ caller-path@0.1.0 
│ │ │ └── callsites@0.2.0 
│ │ └── resolve-from@1.0.1 
│ ├─┬ string.prototype.matchall@2.0.0 
│ │ ├─┬ define-properties@1.1.2 
│ │ │ ├── foreach@2.0.5 
│ │ │ └── object-keys@1.0.12 
│ │ ├─┬ es-abstract@1.12.0 
│ │ │ ├─┬ es-to-primitive@1.1.1 
│ │ │ │ ├── is-date-object@1.0.1 
│ │ │ │ └── is-symbol@1.0.1 
│ │ │ ├── is-callable@1.1.3 
│ │ │ └── is-regex@1.0.4 
│ │ ├── function-bind@1.1.1 
│ │ ├── has-symbols@1.0.0 
│ │ └── regexp.prototype.flags@1.2.0 
│ ├─┬ strip-ansi@4.0.0 
│ │ └── ansi-regex@3.0.0 
│ ├── strip-json-comments@2.0.1 
│ ├─┬ table@4.0.3 
│ │ ├─┬ UNMET PEER DEPENDENCY ajv@6.5.1
│ │ │ ├── fast-deep-equal@2.0.1 
│ │ │ └── json-schema-traverse@0.4.1 
│ │ ├─┬ chalk@2.4.1 
│ │ │ ├── ansi-styles@3.2.1 
│ │ │ └─┬ supports-color@5.4.0 
│ │ │   └── has-flag@3.0.0 
│ │ ├─┬ slice-ansi@1.0.0 
│ │ │ └── is-fullwidth-code-point@2.0.0 
│ │ └─┬ string-width@2.1.1 
│ │   ├── is-fullwidth-code-point@2.0.0 
│ │   └─┬ strip-ansi@4.0.0 
│ │     └── ansi-regex@3.0.0 
│ └── text-table@0.2.0 
├─┬ eslint-config-prettier@2.9.0 
│ └── get-stdin@5.0.1 
├─┬ eslint-plugin-prettier@2.6.1 
│ ├── fast-diff@1.1.2 
│ └── jest-docblock@21.2.0 
├─┬ eslint-plugin-react@7.10.0 
│ ├── has@1.0.3 
│ ├─┬ jsx-ast-utils@2.0.1 
│ │ └── array-includes@3.0.3 
│ └─┬ prop-types@15.6.2 
│   └── loose-envify@1.3.1 
├─┬ grunt@1.0.3 
│ ├── coffeescript@1.10.0 
│ ├─┬ dateformat@1.0.12 
│ │ ├── get-stdin@4.0.1 
│ │ └─┬ meow@3.7.0 
│ │   ├─┬ camelcase-keys@2.1.0 
│ │   │ └── camelcase@2.1.1 
│ │   ├─┬ loud-rejection@1.6.0 
│ │   │ └─┬ currently-unhandled@0.4.1 
│ │   │   └── array-find-index@1.0.2 
│ │   ├── map-obj@1.0.1 
│ │   ├── minimist@1.2.0 
│ │   ├─┬ redent@1.0.0 
│ │   │ └── strip-indent@1.0.1 
│ │   └── trim-newlines@1.0.0 
│ ├── eventemitter2@0.4.14 
│ ├── exit@0.1.2 
│ ├─┬ findup-sync@0.3.0 
│ │ └── glob@5.0.15 
│ ├── glob@7.0.6 
│ ├─┬ grunt-cli@1.2.0 
│ │ └── resolve@1.1.7 
│ ├── grunt-known-options@1.1.0 
│ ├─┬ grunt-legacy-log@2.0.0 
│ │ ├── colors@1.1.2 
│ │ ├─┬ grunt-legacy-log-utils@2.0.1 
│ │ │ └─┬ chalk@2.4.1 
│ │ │   ├── ansi-styles@3.2.1 
│ │ │   └─┬ supports-color@5.4.0 
│ │ │     └── has-flag@3.0.0 
│ │ └── hooker@0.2.3 
│ ├─┬ grunt-legacy-util@1.1.1 
│ │ └─┬ underscore.string@3.3.4 
│ │   └── util-deprecate@1.0.2 
│ ├─┬ iconv-lite@0.4.23 
│ │ └── safer-buffer@2.1.2 
│ ├─┬ js-yaml@3.5.5 
│ │ └── esprima@2.7.3 
│ ├─┬ nopt@3.0.6 
│ │ └── abbrev@1.1.1 
│ └── rimraf@2.6.2 
├─┬ grunt-contrib-clean@1.1.0 
│ └── async@1.5.2 
├─┬ grunt-git@1.0.9 
│ └─┬ flopmang@0.0.1 
│   ├── underscore@1.9.1 
│   └── underscore.string@2.4.0 
├─┬ grunt-gitinfo@0.1.8 
│ ├── async@0.9.2 
│ ├── getobject@0.1.0 
│ └── lodash@2.4.2 
├─┬ husky@0.14.3 
│ ├── normalize-path@1.0.0 
│ └── strip-indent@2.0.0 
├─┬ jest@23.2.0 
│ ├─┬ import-local@1.0.0 
│ │ └─┬ resolve-cwd@2.0.0 
│ │   └── resolve-from@3.0.0 
│ └─┬ jest-cli@23.2.0 
│   ├─┬ chalk@2.4.1 
│   │ ├── ansi-styles@3.2.1 
│   │ └─┬ supports-color@5.4.0 
│   │   └── has-flag@3.0.0 
│   ├─┬ istanbul-api@1.3.1 
│   │ ├── async@2.6.1 
│   │ ├── compare-versions@3.3.0 
│   │ ├── fileset@2.0.3 
│   │ ├─┬ istanbul-lib-hook@1.2.1 
│   │ │ └─┬ append-transform@1.0.0 
│   │ │   └─┬ default-require-extensions@2.0.0 
│   │ │     └── strip-bom@3.0.0 
│   │ ├─┬ istanbul-lib-report@1.1.4 
│   │ │ └── supports-color@3.2.3 
│   │ ├─┬ istanbul-reports@1.3.0 
│   │ │ └─┬ handlebars@4.0.11 
│   │ │   ├─┬ optimist@0.6.1 
│   │ │   │ └── wordwrap@0.0.3 
│   │ │   ├─┬ source-map@0.4.4 
│   │ │   │ └── amdefine@1.0.1 
│   │ │   └─┬ uglify-js@2.8.29 
│   │ │     ├── uglify-to-browserify@1.0.2 
│   │ │     └─┬ yargs@3.10.0 
│   │ │       ├── camelcase@1.2.1 
│   │ │       ├─┬ cliui@2.1.0 
│   │ │       │ ├─┬ center-align@0.1.3 
│   │ │       │ │ ├─┬ align-text@0.1.4 
│   │ │       │ │ │ ├── kind-of@3.2.2 
│   │ │       │ │ │ └── longest@1.0.1 
│   │ │       │ │ └── lazy-cache@1.0.4 
│   │ │       │ ├── right-align@0.1.3 
│   │ │       │ └── wordwrap@0.0.2 
│   │ │       └── window-size@0.1.0 
│   │ └── js-yaml@3.7.0 
│   ├── istanbul-lib-coverage@1.2.0 
│   ├── istanbul-lib-source-maps@1.2.5 
│   ├─┬ jest-changed-files@23.2.0 
│   │ └── throat@4.1.0 
│   ├─┬ jest-config@23.2.0 
│   │ ├─┬ chalk@2.4.1 
│   │ │ ├── ansi-styles@3.2.1 
│   │ │ └─┬ supports-color@5.4.0 
│   │ │   └── has-flag@3.0.0 
│   │ ├── jest-environment-node@23.2.0 
│   │ ├─┬ jest-jasmine2@23.2.0 
│   │ │ ├─┬ chalk@2.4.1 
│   │ │ │ ├── ansi-styles@3.2.1 
│   │ │ │ └─┬ supports-color@5.4.0 
│   │ │ │   └── has-flag@3.0.0 
│   │ │ ├── co@4.6.0 
│   │ │ ├─┬ expect@23.2.0 
│   │ │ │ └── ansi-styles@3.2.1 
│   │ │ ├── is-generator-fn@1.0.0 
│   │ │ └─┬ jest-each@23.2.0 
│   │ │   └─┬ chalk@2.4.1 
│   │ │     ├── ansi-styles@3.2.1 
│   │ │     └─┬ supports-color@5.4.0 
│   │ │       └── has-flag@3.0.0 
│   │ └─┬ jest-resolve@23.2.0 
│   │   ├─┬ browser-resolve@1.11.3 
│   │   │ └── resolve@1.1.7 
│   │   └─┬ chalk@2.4.1 
│   │     ├── ansi-styles@3.2.1 
│   │     └─┬ supports-color@5.4.0 
│   │       └── has-flag@3.0.0 
│   ├─┬ jest-environment-jsdom@23.2.0 
│   │ ├── jest-mock@23.2.0 
│   │ └─┬ jsdom@11.11.0 
│   │   ├── abab@1.0.4 
│   │   ├── acorn-globals@4.1.0 
│   │   ├── array-equal@1.0.0 
│   │   ├── cssom@0.3.2 
│   │   ├── cssstyle@0.3.1 
│   │   ├── data-urls@1.0.0 
│   │   ├── domexception@1.0.1 
│   │   ├─┬ escodegen@1.10.0 
│   │   │ ├── esprima@3.1.3 
│   │   │ └── source-map@0.6.1 
│   │   ├── html-encoding-sniffer@1.0.2 
│   │   ├── left-pad@1.3.0 
│   │   ├── nwsapi@2.0.4 
│   │   ├── parse5@4.0.0 
│   │   ├── pn@1.1.0 
│   │   ├─┬ request-promise-native@1.0.5 
│   │   │ ├── request-promise-core@1.1.1 
│   │   │ └── stealthy-require@1.1.1 
│   │   ├── symbol-tree@3.2.2 
│   │   ├─┬ w3c-hr-time@1.0.1 
│   │   │ └── browser-process-hrtime@0.1.2 
│   │   ├── webidl-conversions@4.0.2 
│   │   ├─┬ whatwg-encoding@1.0.3 
│   │   │ └── iconv-lite@0.4.19 
│   │   ├── whatwg-mimetype@2.1.0 
│   │   ├─┬ whatwg-url@6.5.0 
│   │   │ ├── lodash.sortby@4.7.0 
│   │   │ └─┬ tr46@1.0.1 
│   │   │   └── punycode@2.1.1 
│   │   ├─┬ ws@4.1.0 
│   │   │ └── async-limiter@1.0.0 
│   │   └── xml-name-validator@3.0.0 
│   ├── jest-get-type@22.4.3 
│   ├─┬ jest-haste-map@23.2.0 
│   │ ├─┬ fb-watchman@2.0.0 
│   │ │ └─┬ bser@2.0.0 
│   │ │   └── node-int64@0.4.0 
│   │ ├─┬ jest-docblock@23.2.0 
│   │ │ └── detect-newline@2.1.0 
│   │ ├── jest-serializer@23.0.1 
│   │ └─┬ sane@2.5.2 
│   │   ├─┬ capture-exit@1.2.0 
│   │   │ └── rsvp@3.6.2 
│   │   ├─┬ exec-sh@0.2.2 
│   │   │ └── merge@1.2.0 
│   │   ├── minimist@1.2.0 
│   │   ├─┬ walker@1.0.7 
│   │   │ └─┬ makeerror@1.0.11 
│   │   │   └── tmpl@1.0.4 
│   │   └─┬ watch@0.18.0 
│   │     └── minimist@1.2.0 
│   ├─┬ jest-message-util@23.2.0 
│   │ ├─┬ @babel/code-frame@7.0.0-beta.51 
│   │ │ └─┬ @babel/highlight@7.0.0-beta.51 
│   │ │   └─┬ chalk@2.4.1 
│   │ │     ├── ansi-styles@3.2.1 
│   │ │     └─┬ supports-color@5.4.0 
│   │ │       └── has-flag@3.0.0 
│   │ ├─┬ chalk@2.4.1 
│   │ │ ├── ansi-styles@3.2.1 
│   │ │ └─┬ supports-color@5.4.0 
│   │ │   └── has-flag@3.0.0 
│   │ └── stack-utils@1.0.1 
│   ├── jest-regex-util@23.0.0 
│   ├── jest-resolve-dependencies@23.2.0 
│   ├─┬ jest-runner@23.2.0 
│   │ ├── jest-docblock@23.2.0 
│   │ ├── jest-leak-detector@23.2.0 
│   │ └─┬ source-map-support@0.5.6 
│   │   └── source-map@0.6.1 
│   ├─┬ jest-runtime@23.2.0 
│   │ ├─┬ chalk@2.4.1 
│   │ │ ├── ansi-styles@3.2.1 
│   │ │ └─┬ supports-color@5.4.0 
│   │ │   └── has-flag@3.0.0 
│   │ ├── strip-bom@3.0.0 
│   │ └─┬ yargs@11.0.0 
│   │   ├─┬ string-width@2.1.1 
│   │   │ ├── is-fullwidth-code-point@2.0.0 
│   │   │ └─┬ strip-ansi@4.0.0 
│   │   │   └── ansi-regex@3.0.0 
│   │   ├── y18n@3.2.1 
│   │   └─┬ yargs-parser@9.0.2 
│   │     └── camelcase@4.1.0 
│   ├─┬ jest-snapshot@23.2.0 
│   │ ├─┬ chalk@2.4.1 
│   │ │ ├── ansi-styles@3.2.1 
│   │ │ └─┬ supports-color@5.4.0 
│   │ │   └── has-flag@3.0.0 
│   │ ├─┬ jest-diff@23.2.0 
│   │ │ └─┬ chalk@2.4.1 
│   │ │   ├── ansi-styles@3.2.1 
│   │ │   └─┬ supports-color@5.4.0 
│   │ │     └── has-flag@3.0.0 
│   │ └─┬ jest-matcher-utils@23.2.0 
│   │   └─┬ chalk@2.4.1 
│   │     ├── ansi-styles@3.2.1 
│   │     └─┬ supports-color@5.4.0 
│   │       └── has-flag@3.0.0 
│   ├─┬ jest-util@23.2.0 
│   │ ├── callsites@2.0.0 
│   │ ├─┬ chalk@2.4.1 
│   │ │ ├── ansi-styles@3.2.1 
│   │ │ └─┬ supports-color@5.4.0 
│   │ │   └── has-flag@3.0.0 
│   │ └── source-map@0.6.1 
│   ├─┬ jest-watcher@23.2.0 
│   │ └─┬ chalk@2.4.1 
│   │   ├── ansi-styles@3.2.1 
│   │   └─┬ supports-color@5.4.0 
│   │     └── has-flag@3.0.0 
│   ├─┬ jest-worker@23.2.0 
│   │ └─┬ merge-stream@1.0.1 
│   │   └─┬ readable-stream@2.3.6 
│   │     └── string_decoder@1.1.1 
│   ├─┬ node-notifier@5.2.1 
│   │ ├── growly@1.3.0 
│   │ └── shellwords@0.1.1 
│   ├─┬ prompts@0.1.9 
│   │ ├── clorox@1.0.3 
│   │ └── sisteransi@0.1.1 
│   ├─┬ realpath-native@1.0.0 
│   │ └─┬ util.promisify@1.0.0 
│   │   └── object.getownpropertydescriptors@2.0.3 
│   ├─┬ string-length@2.0.0 
│   │ ├── astral-regex@1.0.0 
│   │ └─┬ strip-ansi@4.0.0 
│   │   └── ansi-regex@3.0.0 
│   ├─┬ strip-ansi@4.0.0 
│   │ └── ansi-regex@3.0.0 
│   └─┬ yargs@11.0.0 
│     ├─┬ string-width@2.1.1 
│     │ └── is-fullwidth-code-point@2.0.0 
│     ├── y18n@3.2.1 
│     └─┬ yargs-parser@9.0.2 
│       └── camelcase@4.1.0 
├─┬ lint-staged@7.2.0 
│ ├── app-root-path@2.1.0 
│ ├─┬ chalk@2.4.1 
│ │ ├── ansi-styles@3.2.1 
│ │ └─┬ supports-color@5.4.0 
│ │   └── has-flag@3.0.0 
│ ├─┬ cosmiconfig@5.0.5 
│ │ ├── is-directory@0.3.1 
│ │ ├─┬ js-yaml@3.12.0 
│ │ │ └── esprima@4.0.0 
│ │ └─┬ parse-json@4.0.0 
│ │   └─┬ error-ex@1.3.2 
│ │     └── is-arrayish@0.2.1 
│ ├── dedent@0.7.0 
│ ├─┬ execa@0.9.0 
│ │ ├─┬ cross-spawn@5.1.0 
│ │ │ └─┬ lru-cache@4.1.3 
│ │ │   ├── pseudomap@1.0.2 
│ │ │   └── yallist@2.1.2 
│ │ ├── get-stream@3.0.0 
│ │ ├── is-stream@1.1.0 
│ │ ├── npm-run-path@2.0.2 
│ │ ├── p-finally@1.0.0 
│ │ ├── signal-exit@3.0.2 
│ │ └── strip-eof@1.0.0 
│ ├── find-parent-dir@0.3.0 
│ ├─┬ is-glob@4.0.0 
│ │ └── is-extglob@2.1.1 
│ ├── is-windows@1.0.2 
│ ├─┬ jest-validate@23.2.0 
│ │ ├─┬ chalk@2.4.1 
│ │ │ ├── ansi-styles@3.2.1 
│ │ │ └─┬ supports-color@5.4.0 
│ │ │   └── has-flag@3.0.0 
│ │ ├── leven@2.1.0 
│ │ └─┬ pretty-format@23.2.0 
│ │   ├── ansi-regex@3.0.0 
│ │   └── ansi-styles@3.2.1 
│ ├─┬ listr@0.14.1 
│ │ ├─┬ @samverschueren/stream-to-observable@0.3.0 
│ │ │ └── any-observable@0.3.0 
│ │ ├─┬ cli-truncate@0.2.1 
│ │ │ ├── slice-ansi@0.0.4 
│ │ │ └─┬ string-width@1.0.2 
│ │ │   ├── code-point-at@1.1.0 
│ │ │   └── is-fullwidth-code-point@1.0.0 
│ │ ├── figures@1.7.0 
│ │ ├── indent-string@2.1.0 
│ │ ├─┬ is-observable@1.1.0 
│ │ │ └── symbol-observable@1.2.0 
│ │ ├── is-promise@2.1.0 
│ │ ├── listr-silent-renderer@1.1.1 
│ │ ├─┬ listr-update-renderer@0.4.0 
│ │ │ ├── elegant-spinner@1.0.1 
│ │ │ ├── figures@1.7.0 
│ │ │ ├── indent-string@3.2.0 
│ │ │ └── log-symbols@1.0.2 
│ │ ├─┬ listr-verbose-renderer@0.4.1 
│ │ │ ├─┬ cli-cursor@1.0.2 
│ │ │ │ └─┬ restore-cursor@1.0.1 
│ │ │ │   ├── exit-hook@1.1.1 
│ │ │ │   └── onetime@1.1.0 
│ │ │ ├── date-fns@1.29.0 
│ │ │ └── figures@1.7.0 
│ │ ├── log-symbols@1.0.2 
│ │ ├─┬ log-update@1.0.2 
│ │ │ ├── ansi-escapes@1.4.0 
│ │ │ └─┬ cli-cursor@1.0.2 
│ │ │   └─┬ restore-cursor@1.0.1 
│ │ │     └── onetime@1.1.0 
│ │ ├─┬ ora@0.2.3 
│ │ │ ├─┬ cli-cursor@1.0.2 
│ │ │ │ └─┬ restore-cursor@1.0.1 
│ │ │ │   └── onetime@1.1.0 
│ │ │ └── cli-spinners@0.1.2 
│ │ ├── rxjs@6.2.1 
│ │ └─┬ strip-ansi@3.0.1 
│ │   └── ansi-regex@2.1.1 
│ ├─┬ log-symbols@2.2.0 
│ │ └─┬ chalk@2.4.1 
│ │   ├── ansi-styles@3.2.1 
│ │   └─┬ supports-color@5.4.0 
│ │     └── has-flag@3.0.0 
│ ├─┬ micromatch@3.1.10 
│ │ ├── arr-diff@4.0.0 
│ │ ├── array-unique@0.3.2 
│ │ ├─┬ braces@2.3.2 
│ │ │ ├── arr-flatten@1.1.0 
│ │ │ ├─┬ extend-shallow@2.0.1 
│ │ │ │ └── is-extendable@0.1.1 
│ │ │ ├─┬ fill-range@4.0.0 
│ │ │ │ ├── extend-shallow@2.0.1 
│ │ │ │ ├─┬ is-number@3.0.0 
│ │ │ │ │ └─┬ kind-of@3.2.2 
│ │ │ │ │   └── is-buffer@1.1.6 
│ │ │ │ ├── repeat-string@1.6.1 
│ │ │ │ └── to-regex-range@2.1.1 
│ │ │ ├── isobject@3.0.1 
│ │ │ ├── repeat-element@1.1.2 
│ │ │ ├─┬ snapdragon-node@2.1.1 
│ │ │ │ ├─┬ define-property@1.0.0 
│ │ │ │ │ └─┬ is-descriptor@1.0.2 
│ │ │ │ │   ├── is-accessor-descriptor@1.0.0 
│ │ │ │ │   └── is-data-descriptor@1.0.0 
│ │ │ │ └─┬ snapdragon-util@3.0.1 
│ │ │ │   └── kind-of@3.2.2 
│ │ │ └── split-string@3.1.0 
│ │ ├─┬ define-property@2.0.2 
│ │ │ └─┬ is-descriptor@1.0.2 
│ │ │   ├── is-accessor-descriptor@1.0.0 
│ │ │   └── is-data-descriptor@1.0.0 
│ │ ├─┬ extend-shallow@3.0.2 
│ │ │ ├── assign-symbols@1.0.0 
│ │ │ └─┬ is-extendable@1.0.1 
│ │ │   └── is-plain-object@2.0.4 
│ │ ├─┬ extglob@2.0.4 
│ │ │ ├─┬ define-property@1.0.0 
│ │ │ │ └─┬ is-descriptor@1.0.2 
│ │ │ │   ├── is-accessor-descriptor@1.0.0 
│ │ │ │   └── is-data-descriptor@1.0.0 
│ │ │ ├─┬ expand-brackets@2.1.4 
│ │ │ │ ├── debug@2.6.9 
│ │ │ │ ├── define-property@0.2.5 
│ │ │ │ ├── extend-shallow@2.0.1 
│ │ │ │ └── posix-character-classes@0.1.1 
│ │ │ └── extend-shallow@2.0.1 
│ │ ├─┬ fragment-cache@0.2.1 
│ │ │ └── map-cache@0.2.2 
│ │ ├── kind-of@6.0.2 
│ │ ├── nanomatch@1.2.13 
│ │ ├── object.pick@1.3.0 
│ │ ├─┬ regex-not@1.0.2 
│ │ │ └─┬ safe-regex@1.1.0 
│ │ │   └── ret@0.1.15 
│ │ ├─┬ snapdragon@0.8.2 
│ │ │ ├─┬ base@0.11.2 
│ │ │ │ ├─┬ cache-base@1.0.1 
│ │ │ │ │ ├─┬ collection-visit@1.0.0 
│ │ │ │ │ │ ├── map-visit@1.0.0 
│ │ │ │ │ │ └── object-visit@1.0.1 
│ │ │ │ │ ├── get-value@2.0.6 
│ │ │ │ │ ├─┬ has-value@1.0.0 
│ │ │ │ │ │ └─┬ has-values@1.0.0 
│ │ │ │ │ │   └── kind-of@4.0.0 
│ │ │ │ │ ├─┬ set-value@2.0.0 
│ │ │ │ │ │ └── extend-shallow@2.0.1 
│ │ │ │ │ ├─┬ to-object-path@0.3.0 
│ │ │ │ │ │ └── kind-of@3.2.2 
│ │ │ │ │ ├─┬ union-value@1.0.0 
│ │ │ │ │ │ └─┬ set-value@0.4.3 
│ │ │ │ │ │   └── extend-shallow@2.0.1 
│ │ │ │ │ └─┬ unset-value@1.0.0 
│ │ │ │ │   └─┬ has-value@0.3.1 
│ │ │ │ │     ├── has-values@0.1.4 
│ │ │ │ │     └── isobject@2.1.0 
│ │ │ │ ├─┬ class-utils@0.3.6 
│ │ │ │ │ ├── arr-union@3.1.0 
│ │ │ │ │ ├── define-property@0.2.5 
│ │ │ │ │ └─┬ static-extend@0.1.2 
│ │ │ │ │   ├── define-property@0.2.5 
│ │ │ │ │   └─┬ object-copy@0.1.0 
│ │ │ │ │     ├── copy-descriptor@0.1.1 
│ │ │ │ │     ├── define-property@0.2.5 
│ │ │ │ │     └── kind-of@3.2.2 
│ │ │ │ ├── component-emitter@1.2.1 
│ │ │ │ ├─┬ define-property@1.0.0 
│ │ │ │ │ └─┬ is-descriptor@1.0.2 
│ │ │ │ │   ├── is-accessor-descriptor@1.0.0 
│ │ │ │ │   └── is-data-descriptor@1.0.0 
│ │ │ │ ├─┬ mixin-deep@1.3.1 
│ │ │ │ │ ├── for-in@1.0.2 
│ │ │ │ │ └── is-extendable@1.0.1 
│ │ │ │ └── pascalcase@0.1.1 
│ │ │ ├── debug@2.6.9 
│ │ │ ├─┬ define-property@0.2.5 
│ │ │ │ └─┬ is-descriptor@0.1.6 
│ │ │ │   ├─┬ is-accessor-descriptor@0.1.6 
│ │ │ │   │ └── kind-of@3.2.2 
│ │ │ │   ├─┬ is-data-descriptor@0.1.4 
│ │ │ │   │ └── kind-of@3.2.2 
│ │ │ │   └── kind-of@5.1.0 
│ │ │ ├── extend-shallow@2.0.1 
│ │ │ ├─┬ source-map-resolve@0.5.2 
│ │ │ │ ├── atob@2.1.1 
│ │ │ │ ├── decode-uri-component@0.2.0 
│ │ │ │ ├── resolve-url@0.2.1 
│ │ │ │ ├── source-map-url@0.4.0 
│ │ │ │ └── urix@0.1.0 
│ │ │ └── use@3.1.0 
│ │ └── to-regex@3.0.2 
│ ├─┬ npm-which@3.0.1 
│ │ └── npm-path@2.0.4 
│ ├── p-map@1.2.0 
│ ├── pify@3.0.0 
│ ├─┬ please-upgrade-node@3.0.2 
│ │ └── semver-compare@1.0.0 
│ ├── staged-git-files@1.1.1 
│ ├── string-argv@0.0.2 
│ └─┬ stringify-object@3.2.2 
│   ├── get-own-enumerable-property-symbols@2.0.1 
│   ├── is-obj@1.0.1 
│   └── is-regexp@1.0.0 
├─┬ load-grunt-tasks@4.0.0 
│ ├── arrify@1.0.1 
│ ├─┬ multimatch@2.1.0 
│ │ ├── array-differ@1.0.0 
│ │ └─┬ array-union@1.0.2 
│ │   └── array-uniq@1.0.3 
│ ├── pkg-up@2.0.0 
│ └─┬ resolve-pkg@1.0.0 
│   └── resolve-from@2.0.0 
├── prettier@1.13.6 
├─┬ style-loader@0.21.0 
│ └─┬ schema-utils@0.4.5 
│   └─┬ UNMET PEER DEPENDENCY ajv@6.5.1
│     ├── fast-deep-equal@2.0.1 
│     └── json-schema-traverse@0.4.1 
├─┬ webpack@4.12.2 
│ ├─┬ @webassemblyjs/ast@1.5.12 
│ │ ├── @webassemblyjs/helper-wasm-bytecode@1.5.12 
│ │ ├─┬ @webassemblyjs/wast-parser@1.5.12 
│ │ │ ├── @webassemblyjs/floating-point-hex-parser@1.5.12 
│ │ │ ├── @webassemblyjs/helper-code-frame@1.5.12 
│ │ │ ├── @webassemblyjs/helper-fsm@1.5.12 
│ │ │ └── long@3.2.0 
│ │ └── mamacro@0.0.3 
│ ├── @webassemblyjs/helper-module-context@1.5.12 
│ ├─┬ @webassemblyjs/wasm-edit@1.5.12 
│ │ ├── @webassemblyjs/helper-buffer@1.5.12 
│ │ ├── @webassemblyjs/helper-wasm-section@1.5.12 
│ │ ├── @webassemblyjs/wasm-gen@1.5.12 
│ │ └── @webassemblyjs/wast-printer@1.5.12 
│ ├── @webassemblyjs/wasm-opt@1.5.12 
│ ├─┬ @webassemblyjs/wasm-parser@1.5.12 
│ │ ├── @webassemblyjs/helper-api-error@1.5.12 
│ │ ├─┬ @webassemblyjs/ieee754@1.5.12 
│ │ │ └── ieee754@1.1.12 
│ │ ├─┬ @webassemblyjs/leb128@1.5.12 
│ │ │ └── leb@0.3.0 
│ │ └── @webassemblyjs/utf8@1.5.12 
│ ├── acorn@5.7.1 
│ ├── acorn-dynamic-import@3.0.0 
│ ├─┬ UNMET PEER DEPENDENCY ajv@6.5.1
│ │ ├── fast-deep-equal@2.0.1 
│ │ └── json-schema-traverse@0.4.1 
│ ├── ajv-keywords@3.2.0 
│ ├─┬ chrome-trace-event@1.0.0 
│ │ └── tslib@1.9.3 
│ ├── enhanced-resolve@4.0.0 
│ ├── eslint-scope@3.7.1 
│ ├── json-parse-better-errors@1.0.2 
│ ├── loader-runner@2.3.0 
│ ├─┬ memory-fs@0.4.1 
│ │ ├─┬ errno@0.1.7 
│ │ │ └── prr@1.0.1 
│ │ └─┬ readable-stream@2.3.6 
│ │   ├── core-util-is@1.0.2 
│ │   ├── isarray@1.0.0 
│ │   ├── process-nextick-args@2.0.0 
│ │   ├── safe-buffer@5.1.2 
│ │   └── string_decoder@1.1.1 
│ ├── neo-async@2.5.1 
│ ├─┬ node-libs-browser@2.1.0 
│ │ ├─┬ assert@1.4.1 
│ │ │ └─┬ util@0.10.3 
│ │ │   └── inherits@2.0.1 
│ │ ├─┬ browserify-zlib@0.2.0 
│ │ │ └── pako@1.0.6 
│ │ ├── buffer@4.9.1 
│ │ ├─┬ console-browserify@1.1.0 
│ │ │ └── date-now@0.1.4 
│ │ ├── constants-browserify@1.0.0 
│ │ ├─┬ crypto-browserify@3.12.0 
│ │ │ ├─┬ browserify-cipher@1.0.1 
│ │ │ │ ├─┬ browserify-aes@1.2.0 
│ │ │ │ │ └── buffer-xor@1.0.3 
│ │ │ │ ├─┬ browserify-des@1.0.1 
│ │ │ │ │ └── des.js@1.0.0 
│ │ │ │ └── evp_bytestokey@1.0.3 
│ │ │ ├─┬ browserify-sign@4.0.4 
│ │ │ │ ├── bn.js@4.11.8 
│ │ │ │ ├── browserify-rsa@4.0.1 
│ │ │ │ ├─┬ elliptic@6.4.0 
│ │ │ │ │ ├── brorand@1.1.0 
│ │ │ │ │ ├── hash.js@1.1.4 
│ │ │ │ │ ├── hmac-drbg@1.0.1 
│ │ │ │ │ ├── minimalistic-assert@1.0.1 
│ │ │ │ │ └── minimalistic-crypto-utils@1.0.1 
│ │ │ │ └─┬ parse-asn1@5.1.1 
│ │ │ │   └── asn1.js@4.10.1 
│ │ │ ├── create-ecdh@4.0.3 
│ │ │ ├─┬ create-hash@1.2.0 
│ │ │ │ ├── cipher-base@1.0.4 
│ │ │ │ ├─┬ md5.js@1.3.4 
│ │ │ │ │ └── hash-base@3.0.4 
│ │ │ │ ├── ripemd160@2.0.2 
│ │ │ │ └── sha.js@2.4.11 
│ │ │ ├── create-hmac@1.1.7 
│ │ │ ├─┬ diffie-hellman@5.0.3 
│ │ │ │ └── miller-rabin@4.0.1 
│ │ │ ├── pbkdf2@3.0.16 
│ │ │ ├── public-encrypt@4.0.2 
│ │ │ ├── randombytes@2.0.6 
│ │ │ └── randomfill@1.0.4 
│ │ ├── domain-browser@1.2.0 
│ │ ├── events@1.1.1 
│ │ ├── https-browserify@1.0.0 
│ │ ├── os-browserify@0.3.0 
│ │ ├── path-browserify@0.0.0 
│ │ ├── process@0.11.10 
│ │ ├── punycode@1.4.1 
│ │ ├── querystring-es3@0.2.1 
│ │ ├── readable-stream@2.3.6 
│ │ ├─┬ stream-browserify@2.0.1 
│ │ │ └─┬ readable-stream@2.3.6 
│ │ │   └── string_decoder@1.1.1 
│ │ ├─┬ stream-http@2.8.3 
│ │ │ ├── builtin-status-codes@3.0.0 
│ │ │ ├─┬ readable-stream@2.3.6 
│ │ │ │ └── string_decoder@1.1.1 
│ │ │ ├── to-arraybuffer@1.0.1 
│ │ │ └── xtend@4.0.1 
│ │ ├── string_decoder@1.1.1 
│ │ ├─┬ timers-browserify@2.0.10 
│ │ │ └── setimmediate@1.0.5 
│ │ ├── tty-browserify@0.0.0 
│ │ ├─┬ url@0.11.0 
│ │ │ ├── punycode@1.3.2 
│ │ │ └── querystring@0.2.0 
│ │ ├── util@0.10.4 
│ │ └─┬ vm-browserify@0.0.4 
│ │   └── indexof@0.0.1 
│ ├── tapable@1.0.0 
│ ├─┬ uglifyjs-webpack-plugin@1.2.7 
│ │ ├─┬ cacache@10.0.4 
│ │ │ ├── chownr@1.0.1 
│ │ │ ├─┬ mississippi@2.0.0 
│ │ │ │ ├─┬ duplexify@3.6.0 
│ │ │ │ │ ├─┬ readable-stream@2.3.6 
│ │ │ │ │ │ └── string_decoder@1.1.1 
│ │ │ │ │ └── stream-shift@1.0.0 
│ │ │ │ ├── end-of-stream@1.4.1 
│ │ │ │ ├─┬ flush-write-stream@1.0.3 
│ │ │ │ │ └─┬ readable-stream@2.3.6 
│ │ │ │ │   └── string_decoder@1.1.1 
│ │ │ │ ├─┬ from2@2.3.0 
│ │ │ │ │ └─┬ readable-stream@2.3.6 
│ │ │ │ │   └── string_decoder@1.1.1 
│ │ │ │ ├─┬ parallel-transform@1.1.0 
│ │ │ │ │ ├── cyclist@0.2.2 
│ │ │ │ │ └─┬ readable-stream@2.3.6 
│ │ │ │ │   └── string_decoder@1.1.1 
│ │ │ │ ├── pump@2.0.1 
│ │ │ │ ├── pumpify@1.5.1 
│ │ │ │ ├── stream-each@1.2.2 
│ │ │ │ └─┬ through2@2.0.3 
│ │ │ │   ├─┬ readable-stream@2.3.6 
│ │ │ │   │ └── string_decoder@1.1.1 
│ │ │ │   └── xtend@4.0.1 
│ │ │ ├─┬ move-concurrently@1.0.1 
│ │ │ │ ├── aproba@1.2.0 
│ │ │ │ ├─┬ copy-concurrently@1.0.5 
│ │ │ │ │ └── iferr@0.1.5 
│ │ │ │ ├── fs-write-stream-atomic@1.0.10 
│ │ │ │ └── run-queue@1.0.3 
│ │ │ ├── promise-inflight@1.0.1 
│ │ │ ├── ssri@5.3.0 
│ │ │ └─┬ unique-filename@1.1.0 
│ │ │   └── unique-slug@2.0.0 
│ │ ├── serialize-javascript@1.5.0 
│ │ ├── source-map@0.6.1 
│ │ ├─┬ uglify-es@3.3.9 
│ │ │ └── commander@2.13.0 
│ │ └── worker-farm@1.6.0 
│ ├─┬ watchpack@1.6.0 
│ │ └─┬ chokidar@2.0.4 
│ │   ├─┬ anymatch@2.0.0 
│ │   │ └── normalize-path@2.1.1 
│ │   ├── async-each@1.0.1 
│ │   ├─┬ glob-parent@3.1.0 
│ │   │ ├── is-glob@3.1.0 
│ │   │ └── path-dirname@1.0.2 
│ │   ├─┬ is-binary-path@1.0.1 
│ │   │ └── binary-extensions@1.11.0 
│ │   ├── lodash.debounce@4.0.8 
│ │   ├─┬ normalize-path@2.1.1 
│ │   │ └── remove-trailing-separator@1.1.0 
│ │   ├─┬ readdirp@2.1.0 
│ │   │ ├─┬ readable-stream@2.3.6 
│ │   │ │ └── string_decoder@1.1.1 
│ │   │ └── set-immediate-shim@1.0.1 
│ │   └── upath@1.1.0 
│ └─┬ webpack-sources@1.1.0 
│   └── source-map@0.6.1 
└─┬ webpack-cli@3.0.8 
  ├─┬ chalk@2.4.1 
  │ └── ansi-styles@3.2.1 
  ├── cross-spawn@6.0.5 
  ├── global-modules-path@2.1.0 
  ├─┬ inquirer@6.0.0 
  │ ├─┬ external-editor@3.0.0 
  │ │ ├── chardet@0.5.0 
  │ │ └── tmp@0.0.33 
  │ ├── rxjs@6.2.1 
  │ ├─┬ string-width@2.1.1 
  │ │ └── is-fullwidth-code-point@2.0.0 
  │ └─┬ strip-ansi@4.0.0 
  │   └── ansi-regex@3.0.0 
  ├── interpret@1.1.0 
  ├─┬ supports-color@5.4.0 
  │ └── has-flag@3.0.0 
  ├── v8-compile-cache@2.0.0 
  └─┬ yargs@11.1.0 
    ├── y18n@3.2.1 
    └─┬ yargs-parser@9.0.2 
      └── camelcase@4.1.0 

npm WARN optional Skipping failed optional dependency /sane/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.2.4
npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.2.4
npm WARN ajv-keywords@3.2.0 requires a peer of ajv@^6.0.0 but none was installed.
nico@nicopc:~/MANINST/wire-desktop$ npm test

> @ test /home/nico/MANINST/wire-desktop
> npm run test:other && npm run test:js && npm run test:react && npm run test:main

> @ test:other /home/nico/MANINST/wire-desktop
> npm run prettier -- --list-different

> @ prettier /home/nico/MANINST/wire-desktop
> prettier "**/*.{json,md,css}" "--list-different"

> @ test:js /home/nico/MANINST/wire-desktop
> eslint -c .eslintrc.json --ignore-path .gitignore --ignore-path .eslintignore "**/*.js"

/home/nico/MANINST/wire-desktop/node_modules/eslint/lib/linter.js:288
                disableDirectives.push(...createDisableDirectives(directiveType, comment.loc.start, directiveValue));
                                       ^^^

SyntaxError: Unexpected token ...
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:374:25)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/home/nico/MANINST/wire-desktop/node_modules/eslint/lib/cli-engine.js:21:14)
    at Module._compile (module.js:410:26)
    at Object.Module._extensions..js (module.js:417:10)

npm ERR! Linux 4.13.0-45-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "run" "test:js"
npm ERR! node v4.2.6
npm ERR! npm  v3.5.2
npm ERR! code ELIFECYCLE
npm ERR! @ test:js: `eslint -c .eslintrc.json --ignore-path .gitignore --ignore-path .eslintignore "**/*.js"`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the @ test:js script 'eslint -c .eslintrc.json --ignore-path .gitignore --ignore-path .eslintignore "**/*.js"'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the  package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     eslint -c .eslintrc.json --ignore-path .gitignore --ignore-path .eslintignore "**/*.js"
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs 
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls 
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/nico/MANINST/wire-desktop/npm-debug.log
npm ERR! Test failed.  See above for more details.
nico@nicopc:~/MANINST/wire-desktop$ 

Then I found this issue in GitHub, libc6-dev was already installed here (and I guess it's not related as I'm not building anything from C/C++ source code), I updated npm and tried to launch the test again:

nico@nicopc:~$ sudo npm i -g npm
[sudo] password for nico: 
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
/usr/local/bin/npx -> /usr/local/lib/node_modules/npm/bin/npx-cli.js
/usr/local/lib
├── abbrev@1.1.1 
├── ansi-regex@3.0.0 
├── aproba@1.2.0 
├── bin-links@1.1.2 
├── bluebird@3.5.1 
├── byte-size@4.0.3 
├─┬ cacache@11.0.2 
│ └── y18n@4.0.0 
├─┬ cli-columns@3.1.2 
│ ├─┬ string-width@2.1.1 
│ │ ├── is-fullwidth-code-point@2.0.0 
│ │ └── strip-ansi@4.0.0 
│ └─┬ strip-ansi@3.0.1 
│   └── ansi-regex@2.1.1 
├─┬ cli-table2@0.2.0 
│ ├── colors@1.1.2 
│ ├── lodash@3.10.1 
│ └─┬ string-width@1.0.2 
│   ├── code-point-at@1.1.0 
│   ├─┬ is-fullwidth-code-point@1.0.0 
│   │ └── number-is-nan@1.0.1 
│   └─┬ strip-ansi@3.0.1 
│     └── ansi-regex@2.1.1 
├── detect-indent@5.0.0 
├── detect-newline@2.1.0 
├── figgy-pudding@3.1.0 
├── find-npm-prefix@1.0.2 
├─┬ gentle-fs@2.0.1 
│ └── iferr@0.1.5 
├─┬ glob@7.1.2 
│ ├── fs.realpath@1.0.0 
│ ├─┬ minimatch@3.0.4 
│ │ └─┬ brace-expansion@1.1.8 
│ │   ├── balanced-match@1.0.0 
│ │   └── concat-map@0.0.1 
│ └── path-is-absolute@1.0.1 
├── hosted-git-info@2.6.0 
├── iferr@1.0.0 
├── ini@1.3.5 
├─┬ init-package-json@1.10.3 
│ └── promzard@0.3.0 
├─┬ is-cidr@2.0.5 
│ └─┬ cidr-regex@2.0.8 
│   └── ip-regex@2.1.0 
├── json-parse-better-errors@1.0.2 
├─┬ JSONStream@1.3.2 
│ ├── jsonparse@1.3.1 
│ └── through@2.3.8 
├─┬ libcipm@1.6.2 
│ ├── npm-logical-tree@1.2.1 
│ ├─┬ pacote@7.6.1 
│ │ ├─┬ cacache@10.0.4 
│ │ │ ├─┬ mississippi@2.0.0 
│ │ │ │ ├─┬ concat-stream@1.6.2 
│ │ │ │ │ ├── buffer-from@1.0.0 
│ │ │ │ │ └── typedarray@0.0.6 
│ │ │ │ ├─┬ duplexify@3.5.4 
│ │ │ │ │ └── stream-shift@1.0.0 
│ │ │ │ ├── end-of-stream@1.4.1 
│ │ │ │ ├── flush-write-stream@1.0.3 
│ │ │ │ ├── from2@2.3.0 
│ │ │ │ ├─┬ parallel-transform@1.1.0 
│ │ │ │ │ └── cyclist@0.2.2 
│ │ │ │ ├── pump@2.0.1 
│ │ │ │ ├── pumpify@1.4.0 
│ │ │ │ ├─┬ stream-each@1.2.2 
│ │ │ │ │ └── stream-shift@1.0.0 
│ │ │ │ └─┬ through2@2.0.3 
│ │ │ │   └── xtend@4.0.1 
│ │ │ └── y18n@4.0.0 
│ │ ├── get-stream@3.0.0 
│ │ ├─┬ make-fetch-happen@2.6.0 
│ │ │ ├─┬ agentkeepalive@3.4.1 
│ │ │ │ └─┬ humanize-ms@1.2.1 
│ │ │ │   └── ms@2.1.1 
│ │ │ ├── http-cache-semantics@3.8.1 
│ │ │ ├─┬ http-proxy-agent@2.1.0 
│ │ │ │ ├─┬ agent-base@4.2.0 
│ │ │ │ │ └─┬ es6-promisify@5.0.0 
│ │ │ │ │   └── es6-promise@4.2.4 
│ │ │ │ └─┬ debug@3.1.0 
│ │ │ │   └── ms@2.0.0 
│ │ │ ├─┬ https-proxy-agent@2.2.1 
│ │ │ │ ├─┬ agent-base@4.2.0 
│ │ │ │ │ └─┬ es6-promisify@5.0.0 
│ │ │ │ │   └── es6-promise@4.2.4 
│ │ │ │ └─┬ debug@3.1.0 
│ │ │ │   └── ms@2.0.0 
│ │ │ ├─┬ mississippi@1.3.1 
│ │ │ │ ├─┬ concat-stream@1.6.2 
│ │ │ │ │ ├── buffer-from@1.0.0 
│ │ │ │ │ └── typedarray@0.0.6 
│ │ │ │ ├─┬ duplexify@3.5.4 
│ │ │ │ │ └── stream-shift@1.0.0 
│ │ │ │ ├── end-of-stream@1.4.1 
│ │ │ │ ├── flush-write-stream@1.0.3 
│ │ │ │ ├── from2@2.3.0 
│ │ │ │ ├─┬ parallel-transform@1.1.0 
│ │ │ │ │ └── cyclist@0.2.2 
│ │ │ │ ├── pump@1.0.3 
│ │ │ │ ├─┬ pumpify@1.4.0 
│ │ │ │ │ └── pump@2.0.1 
│ │ │ │ ├─┬ stream-each@1.2.2 
│ │ │ │ │ └── stream-shift@1.0.0 
│ │ │ │ └─┬ through2@2.0.3 
│ │ │ │   └── xtend@4.0.1 
│ │ │ ├─┬ node-fetch-npm@2.0.2 
│ │ │ │ └─┬ encoding@0.1.12 
│ │ │ │   └─┬ iconv-lite@0.4.21 
│ │ │ │     └── safer-buffer@2.1.2 
│ │ │ └─┬ socks-proxy-agent@3.0.1 
│ │ │   ├─┬ agent-base@4.2.0 
│ │ │   │ └─┬ es6-promisify@5.0.0 
│ │ │   │   └── es6-promise@4.2.4 
│ │ │   └─┬ socks@1.1.10 
│ │ │     ├── ip@1.1.5 
│ │ │     └── smart-buffer@1.1.15 
│ │ ├─┬ minimatch@3.0.4 
│ │ │ └─┬ brace-expansion@1.1.11 
│ │ │   ├── balanced-match@1.0.0 
│ │ │   └── concat-map@0.0.1 
│ │ ├─┬ promise-retry@1.1.1 
│ │ │ ├── err-code@1.1.2 
│ │ │ └── retry@0.10.1 
│ │ └── ssri@5.3.0 
│ └─┬ protoduck@5.0.0 
│   └── genfun@4.0.1 
├─┬ libnpmhook@4.0.1 
│ └─┬ npm-registry-fetch@3.1.1 
│   └─┬ make-fetch-happen@4.0.1 
│     ├─┬ agentkeepalive@3.4.1 
│     │ └─┬ humanize-ms@1.2.1 
│     │   └── ms@2.1.1 
│     ├── http-cache-semantics@3.8.1 
│     ├─┬ http-proxy-agent@2.1.0 
│     │ ├─┬ agent-base@4.2.0 
│     │ │ └─┬ es6-promisify@5.0.0 
│     │ │   └── es6-promise@4.2.4 
│     │ └─┬ debug@3.1.0 
│     │   └── ms@2.0.0 
│     ├─┬ https-proxy-agent@2.2.1 
│     │ ├─┬ agent-base@4.2.0 
│     │ │ └─┬ es6-promisify@5.0.0 
│     │ │   └── es6-promise@4.2.4 
│     │ └─┬ debug@3.1.0 
│     │   └── ms@2.0.0 
│     ├─┬ node-fetch-npm@2.0.2 
│     │ └─┬ encoding@0.1.12 
│     │   └─┬ iconv-lite@0.4.21 
│     │     └── safer-buffer@2.1.2 
│     ├─┬ promise-retry@1.1.1 
│     │ ├── err-code@1.1.2 
│     │ └── retry@0.10.1 
│     └─┬ socks-proxy-agent@4.0.0 
│       ├─┬ agent-base@4.1.2 
│       │ └─┬ es6-promisify@5.0.0 
│       │   └── es6-promise@4.2.4 
│       └─┬ socks@2.1.6 
│         ├── ip@1.1.5 
│         └── smart-buffer@4.0.1 
├─┬ libnpx@10.2.0 
│ ├── dotenv@5.0.1 
│ ├── y18n@4.0.0 
│ └─┬ yargs@11.0.0 
│   ├─┬ cliui@4.0.0 
│   │ └─┬ wrap-ansi@2.1.0 
│   │   ├─┬ string-width@1.0.2 
│   │   │ ├── code-point-at@1.1.0 
│   │   │ └─┬ is-fullwidth-code-point@1.0.0 
│   │   │   └── number-is-nan@1.0.1 
│   │   └─┬ strip-ansi@3.0.1 
│   │     └── ansi-regex@2.1.1 
│   ├── decamelize@1.2.0 
│   ├─┬ find-up@2.1.0 
│   │ └─┬ locate-path@2.0.0 
│   │   ├─┬ p-locate@2.0.0 
│   │   │ └─┬ p-limit@1.2.0 
│   │   │   └── p-try@1.0.0 
│   │   └── path-exists@3.0.0 
│   ├── get-caller-file@1.0.2 
│   ├─┬ os-locale@2.1.0 
│   │ ├─┬ execa@0.7.0 
│   │ │ ├─┬ cross-spawn@5.1.0 
│   │ │ │ └─┬ shebang-command@1.2.0 
│   │ │ │   └── shebang-regex@1.0.0 
│   │ │ ├── get-stream@3.0.0 
│   │ │ ├── is-stream@1.1.0 
│   │ │ ├─┬ npm-run-path@2.0.2 
│   │ │ │ └── path-key@2.0.1 
│   │ │ ├── p-finally@1.0.0 
│   │ │ ├── signal-exit@3.0.2 
│   │ │ └── strip-eof@1.0.0 
│   │ ├─┬ lcid@1.0.0 
│   │ │ └── invert-kv@1.0.0 
│   │ └─┬ mem@1.1.0 
│   │   └── mimic-fn@1.2.0 
│   ├── require-directory@2.1.1 
│   ├── require-main-filename@1.0.1 
│   ├── set-blocking@2.0.0 
│   ├─┬ string-width@2.1.1 
│   │ └── is-fullwidth-code-point@2.0.0 
│   ├── which-module@2.0.0 
│   ├── y18n@3.2.1 
│   └─┬ yargs-parser@9.0.2 
│     └── camelcase@4.1.0 
├─┬ lockfile@1.0.4 
│ └── signal-exit@3.0.2 
├─┬ lru-cache@4.1.3 
│ ├── pseudomap@1.0.2 
│ └── yallist@2.1.2 
├── meant@1.0.1 
├─┬ mississippi@3.0.0 
│ ├─┬ concat-stream@1.6.1 
│ │ └── typedarray@0.0.6 
│ ├─┬ duplexify@3.5.4 
│ │ └── stream-shift@1.0.0 
│ ├── end-of-stream@1.4.1 
│ ├── flush-write-stream@1.0.2 
│ ├── from2@2.3.0 
│ ├─┬ parallel-transform@1.1.0 
│ │ └── cyclist@0.2.2 
│ ├── pump@3.0.0 
│ ├─┬ pumpify@1.4.0 
│ │ └── pump@2.0.1 
│ ├─┬ stream-each@1.2.2 
│ │ └── stream-shift@1.0.0 
│ └─┬ through2@2.0.3 
│   └── xtend@4.0.1 
├─┬ move-concurrently@1.0.1 
│ ├─┬ copy-concurrently@1.0.5 
│ │ └── iferr@0.1.5 
│ └── run-queue@1.0.3 
├─┬ node-gyp@3.6.2 
│ ├── fstream@1.0.11 
│ ├─┬ minimatch@3.0.4 
│ │ └─┬ brace-expansion@1.1.11 
│ │   ├── balanced-match@1.0.0 
│ │   └── concat-map@0.0.1 
│ ├── nopt@3.0.6 
│ ├── semver@5.3.0 
│ └─┬ tar@2.2.1 
│   └── block-stream@0.0.9 
├─┬ normalize-package-data@2.4.0 
│ └─┬ is-builtin-module@1.0.0 
│   └── builtin-modules@1.1.1 
├─┬ npm@6.1.0 
│ ├── ansicolors@0.3.2 
│ ├── ansistyles@0.1.3 
│ ├── archy@1.0.0 
│ ├── call-limit@1.1.0 
│ ├── chownr@1.0.1 
│ ├── cmd-shim@2.0.2 
│ ├─┬ columnify@1.5.4 
│ │ ├─┬ strip-ansi@3.0.1 
│ │ │ └── ansi-regex@2.1.1 
│ │ └─┬ wcwidth@1.0.1 
│ │   └─┬ defaults@1.0.3 
│ │     └── clone@1.0.2 
│ ├─┬ config-chain@1.1.11 
│ │ └── proto-list@1.2.4 
│ ├── debuglog@1.0.1 
│ ├─┬ dezalgo@1.0.3 
│ │ └── asap@2.0.5 
│ ├── editor@1.0.0 
│ ├── fs-vacuum@1.2.10 
│ ├─┬ fs-write-stream-atomic@1.0.10 
│ │ └── iferr@0.1.5 
│ ├── graceful-fs@4.1.11 
│ ├── has-unicode@2.0.1 
│ ├── imurmurhash@0.1.4 
│ ├── inflight@1.0.6 
│ ├── inherits@2.0.3 
│ ├── lazy-property@1.0.0 
│ ├── lock-verify@2.0.2 
│ ├── lodash._baseindexof@3.1.0 
│ ├─┬ lodash._baseuniq@4.6.0 
│ │ ├── lodash._createset@4.0.3 
│ │ └── lodash._root@3.0.1 
│ ├── lodash._bindcallback@3.0.1 
│ ├── lodash._cacheindexof@3.0.2 
│ ├── lodash._createcache@3.1.2 
│ ├── lodash._getnative@3.9.1 
│ ├── lodash.clonedeep@4.5.0 
│ ├── lodash.restparam@3.6.1 
│ ├── lodash.union@4.6.0 
│ ├── lodash.uniq@4.5.0 
│ ├── lodash.without@4.4.0 
│ ├─┬ mkdirp@0.5.1 
│ │ └── minimist@0.0.8 
│ ├── nopt@4.0.1 
│ ├── npm-cache-filename@1.0.2 
│ ├── npm-install-checks@3.0.0 
│ ├── once@1.4.0 
│ ├── opener@1.4.3 
│ ├── path-is-inside@1.0.2 
│ ├── promise-inflight@1.0.1 
│ ├─┬ read@1.0.7 
│ │ └── mute-stream@0.0.7 
│ ├── read-cmd-shim@1.0.1 
│ ├─┬ read-installed@4.0.3 
│ │ └── util-extend@1.0.3 
│ ├── readdir-scoped-modules@1.0.2 
│ ├── sha@2.0.1 
│ ├── slide@1.1.6 
│ ├── sorted-object@2.0.1 
│ ├─┬ sorted-union-stream@2.1.3 
│ │ ├─┬ from2@1.3.0 
│ │ │ └─┬ readable-stream@1.1.14 
│ │ │   ├── core-util-is@1.0.2 
│ │ │   ├── isarray@0.0.1 
│ │ │   └── string_decoder@0.10.31 
│ │ └─┬ stream-iterate@1.2.0 
│ │   └── stream-shift@1.0.0 
│ ├── text-table@0.2.0 
│ ├── uid-number@0.0.6 
│ ├── umask@1.1.0 
│ ├─┬ unique-filename@1.1.0 
│ │ └── unique-slug@2.0.0 
│ ├── unpipe@1.0.0 
│ ├─┬ validate-npm-package-name@3.0.0 
│ │ └── builtins@1.0.3 
│ └── wrappy@1.0.2 
├─┬ npm-audit-report@1.2.1 
│ └── console-control-strings@1.1.0 
├─┬ npm-lifecycle@2.0.3 
│ ├── byline@5.0.0 
│ └── resolve-from@4.0.0 
├── npm-package-arg@6.1.0 
├─┬ npm-packlist@1.1.10 
│ ├─┬ ignore-walk@3.0.1 
│ │ └─┬ minimatch@3.0.4 
│ │   └─┬ brace-expansion@1.1.8 
│ │     ├── balanced-match@1.0.0 
│ │     └── concat-map@0.0.1 
│ └── npm-bundled@1.0.3 
├── npm-pick-manifest@2.1.0 
├─┬ npm-profile@3.0.1 
│ └─┬ make-fetch-happen@2.6.0 
│   ├─┬ agentkeepalive@3.3.0 
│   │ └─┬ humanize-ms@1.2.1 
│   │   └── ms@2.1.1 
│   ├─┬ cacache@10.0.4 
│   │ ├─┬ mississippi@2.0.0 
│   │ │ ├─┬ concat-stream@1.6.2 
│   │ │ │ ├── buffer-from@1.0.0 
│   │ │ │ └── typedarray@0.0.6 
│   │ │ ├─┬ duplexify@3.5.4 
│   │ │ │ └── stream-shift@1.0.0 
│   │ │ ├── end-of-stream@1.4.1 
│   │ │ ├── flush-write-stream@1.0.3 
│   │ │ ├── from2@2.3.0 
│   │ │ ├─┬ parallel-transform@1.1.0 
│   │ │ │ └── cyclist@0.2.2 
│   │ │ ├── pump@2.0.1 
│   │ │ ├── pumpify@1.4.0 
│   │ │ ├─┬ stream-each@1.2.2 
│   │ │ │ └── stream-shift@1.0.0 
│   │ │ └─┬ through2@2.0.3 
│   │ │   └── xtend@4.0.1 
│   │ └── y18n@4.0.0 
│   ├── http-cache-semantics@3.8.1 
│   ├─┬ http-proxy-agent@2.1.0 
│   │ ├─┬ agent-base@4.2.0 
│   │ │ └─┬ es6-promisify@5.0.0 
│   │ │   └── es6-promise@4.2.4 
│   │ └─┬ debug@3.1.0 
│   │   └── ms@2.0.0 
│   ├─┬ https-proxy-agent@2.2.1 
│   │ ├─┬ agent-base@4.2.0 
│   │ │ └─┬ es6-promisify@5.0.0 
│   │ │   └── es6-promise@4.2.4 
│   │ └─┬ debug@3.1.0 
│   │   └── ms@2.0.0 
│   ├─┬ mississippi@1.3.1 
│   │ ├─┬ concat-stream@1.6.0 
│   │ │ └── typedarray@0.0.6 
│   │ ├─┬ duplexify@3.5.3 
│   │ │ └── stream-shift@1.0.0 
│   │ ├── end-of-stream@1.4.1 
│   │ ├── flush-write-stream@1.0.2 
│   │ ├── from2@2.3.0 
│   │ ├─┬ parallel-transform@1.1.0 
│   │ │ └── cyclist@0.2.2 
│   │ ├── pump@1.0.3 
│   │ ├─┬ pumpify@1.4.0 
│   │ │ └── pump@2.0.1 
│   │ ├─┬ stream-each@1.2.2 
│   │ │ └── stream-shift@1.0.0 
│   │ └─┬ through2@2.0.3 
│   │   └── xtend@4.0.1 
│   ├─┬ node-fetch-npm@2.0.2 
│   │ ├─┬ encoding@0.1.12 
│   │ │ └── iconv-lite@0.4.19 
│   │ └── json-parse-better-errors@1.0.1 
│   ├─┬ promise-retry@1.1.1 
│   │ ├── err-code@1.1.2 
│   │ └── retry@0.10.1 
│   ├─┬ socks-proxy-agent@3.0.1 
│   │ ├─┬ agent-base@4.2.0 
│   │ │ └─┬ es6-promisify@5.0.0 
│   │ │   └── es6-promise@4.2.4 
│   │ └─┬ socks@1.1.10 
│   │   ├── ip@1.1.5 
│   │   └── smart-buffer@1.1.15 
│   └── ssri@5.3.0 
├─┬ npm-registry-client@8.5.1 
│ ├─┬ concat-stream@1.6.1 
│ │ └── typedarray@0.0.6 
│ ├── retry@0.10.1 
│ └── ssri@5.3.0 
├─┬ npm-registry-fetch@1.1.0 
│ ├── figgy-pudding@2.0.1 
│ └─┬ make-fetch-happen@3.0.0 
│   ├─┬ agentkeepalive@3.4.1 
│   │ └─┬ humanize-ms@1.2.1 
│   │   └── ms@2.1.1 
│   ├─┬ cacache@10.0.4 
│   │ ├─┬ mississippi@2.0.0 
│   │ │ ├─┬ concat-stream@1.6.2 
│   │ │ │ ├── buffer-from@1.0.0 
│   │ │ │ └── typedarray@0.0.6 
│   │ │ ├─┬ duplexify@3.5.4 
│   │ │ │ └── stream-shift@1.0.0 
│   │ │ ├── end-of-stream@1.4.1 
│   │ │ ├── flush-write-stream@1.0.3 
│   │ │ ├── from2@2.3.0 
│   │ │ ├─┬ parallel-transform@1.1.0 
│   │ │ │ └── cyclist@0.2.2 
│   │ │ ├── pump@2.0.1 
│   │ │ ├── pumpify@1.4.0 
│   │ │ ├─┬ stream-each@1.2.2 
│   │ │ │ └── stream-shift@1.0.0 
│   │ │ └─┬ through2@2.0.3 
│   │ │   └── xtend@4.0.1 
│   │ └── y18n@4.0.0 
│   ├── http-cache-semantics@3.8.1 
│   ├─┬ http-proxy-agent@2.1.0 
│   │ ├─┬ agent-base@4.2.0 
│   │ │ └─┬ es6-promisify@5.0.0 
│   │ │   └── es6-promise@4.2.4 
│   │ └─┬ debug@3.1.0 
│   │   └── ms@2.0.0 
│   ├─┬ https-proxy-agent@2.2.1 
│   │ ├─┬ agent-base@4.2.0 
│   │ │ └─┬ es6-promisify@5.0.0 
│   │ │   └── es6-promise@4.2.4 
│   │ └─┬ debug@3.1.0 
│   │   └── ms@2.0.0 
│   ├─┬ node-fetch-npm@2.0.2 
│   │ └─┬ encoding@0.1.12 
│   │   └─┬ iconv-lite@0.4.21 
│   │     └── safer-buffer@2.1.2 
│   ├─┬ promise-retry@1.1.1 
│   │ ├── err-code@1.1.2 
│   │ └── retry@0.10.1 
│   ├─┬ socks-proxy-agent@3.0.1 
│   │ ├─┬ agent-base@4.2.0 
│   │ │ └─┬ es6-promisify@5.0.0 
│   │ │   └── es6-promise@4.2.4 
│   │ └─┬ socks@1.1.10 
│   │   ├── ip@1.1.5 
│   │   └── smart-buffer@1.1.15 
│   └── ssri@5.3.0 
├── npm-user-validate@1.0.0 
├─┬ npmlog@4.1.2 
│ ├─┬ are-we-there-yet@1.1.4 
│ │ └── delegates@1.0.0 
│ ├── console-control-strings@1.1.0 
│ ├─┬ gauge@2.7.4 
│ │ ├── object-assign@4.1.1 
│ │ ├── signal-exit@3.0.2 
│ │ ├─┬ string-width@1.0.2 
│ │ │ ├── code-point-at@1.1.0 
│ │ │ └─┬ is-fullwidth-code-point@1.0.0 
│ │ │   └── number-is-nan@1.0.1 
│ │ ├─┬ strip-ansi@3.0.1 
│ │ │ └── ansi-regex@2.1.1 
│ │ └── wide-align@1.1.2 
│ └── set-blocking@2.0.0 
├─┬ osenv@0.1.5 
│ ├── os-homedir@1.0.2 
│ └── os-tmpdir@1.0.2 
├─┬ pacote@8.1.5 
│ ├── get-stream@3.0.0 
│ ├─┬ make-fetch-happen@4.0.1 
│ │ ├─┬ agentkeepalive@3.4.1 
│ │ │ └─┬ humanize-ms@1.2.1 
│ │ │   └── ms@2.1.1 
│ │ ├── http-cache-semantics@3.8.1 
│ │ ├─┬ http-proxy-agent@2.1.0 
│ │ │ ├─┬ agent-base@4.2.0 
│ │ │ │ └─┬ es6-promisify@5.0.0 
│ │ │ │   └── es6-promise@4.2.4 
│ │ │ └─┬ debug@3.1.0 
│ │ │   └── ms@2.0.0 
│ │ ├─┬ https-proxy-agent@2.2.1 
│ │ │ ├─┬ agent-base@4.2.0 
│ │ │ │ └─┬ es6-promisify@5.0.0 
│ │ │ │   └── es6-promise@4.2.4 
│ │ │ └─┬ debug@3.1.0 
│ │ │   └── ms@2.0.0 
│ │ ├─┬ node-fetch-npm@2.0.2 
│ │ │ └─┬ encoding@0.1.12 
│ │ │   └─┬ iconv-lite@0.4.23 
│ │ │     └── safer-buffer@2.1.2 
│ │ └─┬ socks-proxy-agent@4.0.1 
│ │   ├─┬ agent-base@4.2.0 
│ │   │ └─┬ es6-promisify@5.0.0 
│ │   │   └── es6-promise@4.2.4 
│ │   └─┬ socks@2.2.0 
│ │     ├── ip@1.1.5 
│ │     └── smart-buffer@4.0.1 
│ ├─┬ minimatch@3.0.4 
│ │ └─┬ brace-expansion@1.1.11 
│ │   ├── balanced-match@1.0.0 
│ │   └── concat-map@0.0.1 
│ ├─┬ minipass@2.3.3 
│ │ └── yallist@3.0.2 
│ ├─┬ promise-retry@1.1.1 
│ │ ├── err-code@1.1.2 
│ │ └── retry@0.10.1 
│ └─┬ protoduck@5.0.0 
│   └── genfun@4.0.1 
├── qrcode-terminal@0.12.0 
├─┬ query-string@6.1.0 
│ ├── decode-uri-component@0.2.0 
│ └── strict-uri-encode@2.0.0 
├── qw@1.0.1 
├─┬ read-package-json@2.0.13 
│ ├── json-parse-better-errors@1.0.1 
│ └── slash@1.0.0 
├── read-package-tree@5.2.1 
├─┬ readable-stream@2.3.6 
│ ├── core-util-is@1.0.2 
│ ├── isarray@1.0.0 
│ ├── process-nextick-args@2.0.0 
│ ├── string_decoder@1.1.1 
│ └── util-deprecate@1.0.2 
├─┬ request@2.86.0 
│ ├── aws-sign2@0.7.0 
│ ├── aws4@1.7.0 
│ ├── caseless@0.12.0 
│ ├─┬ combined-stream@1.0.6 
│ │ └── delayed-stream@1.0.0 
│ ├── extend@3.0.1 
│ ├── forever-agent@0.6.1 
│ ├─┬ form-data@2.3.2 
│ │ └── asynckit@0.4.0 
│ ├─┬ har-validator@5.0.3 
│ │ ├─┬ ajv@5.5.2 
│ │ │ ├── co@4.6.0 
│ │ │ ├── fast-deep-equal@1.1.0 
│ │ │ ├── fast-json-stable-stringify@2.0.0 
│ │ │ └── json-schema-traverse@0.3.1 
│ │ └── har-schema@2.0.0 
│ ├─┬ hawk@6.0.2 
│ │ ├── boom@4.3.1 
│ │ ├─┬ cryptiles@3.1.2 
│ │ │ └── boom@5.2.0 
│ │ ├── hoek@4.2.1 
│ │ └── sntp@2.1.0 
│ ├─┬ http-signature@1.2.0 
│ │ ├── assert-plus@1.0.0 
│ │ ├─┬ jsprim@1.4.1 
│ │ │ ├── extsprintf@1.3.0 
│ │ │ ├── json-schema@0.2.3 
│ │ │ └─┬ verror@1.10.0 
│ │ │   └── core-util-is@1.0.2 
│ │ └─┬ sshpk@1.14.1 
│ │   ├── asn1@0.2.3 
│ │   ├── bcrypt-pbkdf@1.0.1 
│ │   ├── dashdash@1.14.1 
│ │   ├── ecc-jsbn@0.1.1 
│ │   ├── getpass@0.1.7 
│ │   ├── jsbn@0.1.1 
│ │   └── tweetnacl@0.14.5 
│ ├── is-typedarray@1.0.0 
│ ├── isstream@0.1.2 
│ ├── json-stringify-safe@5.0.1 
│ ├─┬ mime-types@2.1.18 
│ │ └── mime-db@1.33.0 
│ ├── oauth-sign@0.8.2 
│ ├── performance-now@2.1.0 
│ ├── qs@6.5.2 
│ ├─┬ tough-cookie@2.3.4 
│ │ └── punycode@1.4.1 
│ └── tunnel-agent@0.6.0 
├── retry@0.12.0 
├── rimraf@2.6.2 
├── safe-buffer@5.1.2 
├── semver@5.5.0 
├── ssri@6.0.0 
├─┬ strip-ansi@4.0.0 
│ └── ansi-regex@3.0.0 
├─┬ tar@4.4.1 
│ ├── fs-minipass@1.2.5 
│ ├── minipass@2.3.1 
│ ├── minizlib@1.1.0 
│ └── yallist@3.0.2 
├── tiny-relative-date@1.3.0 
├─┬ update-notifier@2.5.0 
│ ├─┬ boxen@1.3.0 
│ │ ├── ansi-align@2.0.0 
│ │ ├── camelcase@4.1.0 
│ │ ├── cli-boxes@1.0.0 
│ │ ├─┬ string-width@2.1.1 
│ │ │ └── is-fullwidth-code-point@2.0.0 
│ │ ├─┬ term-size@1.2.0 
│ │ │ └─┬ execa@0.7.0 
│ │ │   ├─┬ cross-spawn@5.1.0 
│ │ │   │ └─┬ shebang-command@1.2.0 
│ │ │   │   └── shebang-regex@1.0.0 
│ │ │   ├── get-stream@3.0.0 
│ │ │   ├── is-stream@1.1.0 
│ │ │   ├─┬ npm-run-path@2.0.2 
│ │ │   │ └── path-key@2.0.1 
│ │ │   ├── p-finally@1.0.0 
│ │ │   ├── signal-exit@3.0.2 
│ │ │   └── strip-eof@1.0.0 
│ │ └── widest-line@2.0.0 
│ ├─┬ chalk@2.4.1 
│ │ ├─┬ ansi-styles@3.2.1 
│ │ │ └─┬ color-convert@1.9.1 
│ │ │   └── color-name@1.1.3 
│ │ ├── escape-string-regexp@1.0.5 
│ │ └─┬ supports-color@5.4.0 
│ │   └── has-flag@3.0.0 
│ ├─┬ configstore@3.1.2 
│ │ ├─┬ dot-prop@4.2.0 
│ │ │ └── is-obj@1.0.1 
│ │ ├─┬ make-dir@1.2.0 
│ │ │ └── pify@3.0.0 
│ │ └─┬ unique-string@1.0.0 
│ │   └── crypto-random-string@1.0.0 
│ ├── import-lazy@2.1.0 
│ ├─┬ is-ci@1.1.0 
│ │ └── ci-info@1.1.3 
│ ├─┬ is-installed-globally@0.1.0 
│ │ ├── global-dirs@0.1.1 
│ │ └── is-path-inside@1.0.1 
│ ├── is-npm@1.0.0 
│ ├─┬ latest-version@3.1.0 
│ │ └─┬ package-json@4.0.1 
│ │   ├─┬ got@6.7.1 
│ │   │ ├─┬ create-error-class@3.0.2 
│ │   │ │ └── capture-stack-trace@1.0.0 
│ │   │ ├── duplexer3@0.1.4 
│ │   │ ├── get-stream@3.0.0 
│ │   │ ├── is-redirect@1.0.0 
│ │   │ ├── is-retry-allowed@1.1.0 
│ │   │ ├── is-stream@1.1.0 
│ │   │ ├── lowercase-keys@1.0.1 
│ │   │ ├── timed-out@4.0.1 
│ │   │ ├── unzip-response@2.0.1 
│ │   │ └─┬ url-parse-lax@1.0.0 
│ │   │   └── prepend-http@1.0.4 
│ │   ├─┬ registry-auth-token@3.3.2 
│ │   │ └─┬ rc@1.2.7 
│ │   │   ├── deep-extend@0.5.1 
│ │   │   ├── minimist@1.2.0 
│ │   │   └── strip-json-comments@2.0.1 
│ │   └─┬ registry-url@3.1.0 
│ │     └─┬ rc@1.2.7 
│ │       ├── deep-extend@0.5.1 
│ │       ├── minimist@1.2.0 
│ │       └── strip-json-comments@2.0.1 
│ ├── semver-diff@2.1.0 
│ └── xdg-basedir@3.0.0 
├── uuid@3.2.1 
├─┬ validate-npm-package-license@3.0.3 
│ ├─┬ spdx-correct@3.0.0 
│ │ └── spdx-license-ids@3.0.0 
│ └─┬ spdx-expression-parse@3.0.0 
│   ├── spdx-exceptions@2.1.0 
│   └── spdx-license-ids@3.0.0 
├─┬ which@1.3.0 
│ └── isexe@2.0.0 
├─┬ worker-farm@1.6.0 
│ └─┬ errno@0.1.7 
│   └── prr@1.0.1 
└─┬ write-file-atomic@2.3.0 
  └── signal-exit@3.0.2 

nico@nicopc:~$ cd MANINST/
nico@nicopc:~/MANINST$ cd wire-desktop/
nico@nicopc:~/MANINST/wire-desktop$ npm test

> @ test /home/nico/MANINST/wire-desktop
> npm run test:other && npm run test:js && npm run test:react && npm run test:main

/usr/local/lib/node_modules/npm/bin/npm-cli.js:79
      let notifier = require('update-notifier')({pkg})
      ^^^

SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:374:25)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Function.Module.runMain (module.js:442:10)
    at startup (node.js:136:18)
    at node.js:966:3
npm ERR! Test failed.  See above for more details.
nico@nicopc:~/MANINST/wire-desktop$ 
gregor commented 6 years ago

You are still runnning node 4.x. Please upgrade. The LTS is at 8.x which definitely supports let/const.

JazzTp commented 6 years ago

Thank you @gregor, according to both the Software Updater and the Synaptic Package Manager this system is up to date, but I've found these pages so I'll be trying to apply something from them (or other pages) and then come back to report:

https://askubuntu.com/questions/1040831/no-way-to-upgrade-nodejs-in-this-case https://askubuntu.com/questions/594656/how-to-install-the-latest-versions-of-nodejs-and-npm

JazzTp commented 6 years ago

@gregor Please, is the following OK now? The README doesn't say anything more, how should I launch WIRE now?

[EDIT: the README does actually say more, sorry, I guess it's npm run build:linux]

In order to install node 8.x, I purged node and did what is said on this page apparently by user Guss, currently upvoted 147 times (I had done what said in user muru's post, currently upvoted 245 times, but just after doing that I read a comment about security issues, inviting to follow Guss's post instead, so I purged again and I did it in this other way, and the console output below details this second installation of node 8.x... The npm test console output was actually the same anyway).

The commands were:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 68576280
sudo apt-add-repository "deb https://deb.nodesource.com/node_7.x $(lsb_release -sc) main"
sudo apt-get update
sudo apt-get install nodejs

Console output:

nico@nicopc:~$ sudo apt-get purge nodejs npm
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'npm' is not installed, so not removed
The following packages were automatically installed and are no longer required:
  gyp libjs-inherits libjs-node-uuid libjs-underscore libssl-dev libssl-doc
  libuv1 libuv1-dev
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  nodejs*
0 upgraded, 0 newly installed, 1 to remove and 4 not upgraded.
After this operation, 61.4 MB disk space will be freed.
Do you want to continue? [Y/n] 
(Reading database ... 384463 files and directories currently installed.)
Removing nodejs (8.11.3-1nodesource1) ...
Processing triggers for man-db (2.7.5-1) ...
nico@nicopc:~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 68576280Executing: /tmp/tmp.pPf7jx4SG7/gpg.1.sh --keyserver
keyserver.ubuntu.com
--recv
68576280
gpg: requesting key 68576280 from hkp server keyserver.ubuntu.com
gpg: key 68576280: "NodeSource <gpg@nodesource.com>" 1 new signature
gpg: Total number processed: 1
gpg:         new signatures: 1
nico@nicopc:~$ sudo apt-add-repository "deb https://deb.nodesource.com/node_8.x $(lsb_release -sc) main"
nico@nicopc:~$ sudo apt-get update
Hit:1 https://deb.opera.com/opera-stable stable InRelease
Hit:2 http://security.ubuntu.com/ubuntu xenial-security InRelease              
Hit:3 http://ppa.launchpad.net/makehuman-official/makehuman-11x/ubuntu xenial InRelease
Hit:4 http://ar.archive.ubuntu.com/ubuntu xenial InRelease                     
Hit:5 http://ar.archive.ubuntu.com/ubuntu xenial-updates InRelease             
Hit:6 https://deb.nodesource.com/node_8.x xenial InRelease                     
Hit:7 http://ppa.launchpad.net/mscore-ubuntu/mscore-nightly/ubuntu xenial InRelease
Ign:8 http://repo.vivaldi.com/stable/deb stable InRelease                      
Hit:9 http://ar.archive.ubuntu.com/ubuntu xenial-backports InRelease           
Hit:10 http://repo.vivaldi.com/stable/deb stable Release                       
Hit:12 http://ppa.launchpad.net/saiarcot895/flightgear/ubuntu xenial InRelease 
Reading package lists... Done 
nico@nicopc:~$ sudo apt-get install nodejs
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  gyp libjs-inherits libjs-node-uuid libjs-underscore libssl-dev libssl-doc
  libuv1 libuv1-dev
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  nodejs
0 upgraded, 1 newly installed, 0 to remove and 4 not upgraded.
Need to get 0 B/12.7 MB of archives.
After this operation, 61.4 MB of additional disk space will be used.
Selecting previously unselected package nodejs.
(Reading database ... 379800 files and directories currently installed.)
Preparing to unpack .../nodejs_8.11.3-1nodesource1_amd64.deb ...
Unpacking nodejs (8.11.3-1nodesource1) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up nodejs (8.11.3-1nodesource1) ...
nico@nicopc:~$ 

Then I launched npm test:

nico@nicopc:~/MANINST/wire-desktop$ npm test

> @ test /home/nico/MANINST/wire-desktop
> npm run test:other && npm run test:js && npm run test:react && npm run test:main

> @ test:other /home/nico/MANINST/wire-desktop
> npm run prettier -- --list-different

> @ prettier /home/nico/MANINST/wire-desktop
> prettier "**/*.{json,md,css}" "--list-different"

> @ test:js /home/nico/MANINST/wire-desktop
> eslint -c .eslintrc.json --ignore-path .gitignore --ignore-path .eslintignore "**/*.js"

(node:10139) [ESLINT_LEGACY_OBJECT_REST_SPREAD] DeprecationWarning: The 'parserOptions.ecmaFeatures.experimentalObjectRestSpread' option is deprecated. Use 'parserOptions.ecmaVersion' instead. (found in ".eslintrc.json")

> @ test:react /home/nico/MANINST/wire-desktop
> jest

 PASS  electron/renderer/src/actions/__tests__/actions.spec.js
 PASS  electron/renderer/src/reducers/__tests__/accountReducer.spec.js
 PASS  electron/renderer/src/lib/__tests__/verifyObjectProperties.spec.js
 PASS  electron/renderer/src/lib/__tests__/localStorage.spec.js
 PASS  electron/renderer/src/lib/__tests__/accentColor.spec.js

Test Suites: 5 passed, 5 total
Tests:       20 passed, 20 total
Snapshots:   0 total
Time:        2.465s, estimated 6s
Ran all test suites.

> @ test:main /home/nico/MANINST/wire-desktop
> electron-mocha --reporter spec tests/main

  tray
    "updateBadgeIcon"
      ✓ updates badge according to window title (54ms)

  1 passing (79ms)

nico@nicopc:~/MANINST/wire-desktop$
JazzTp commented 6 years ago

npm run build:linux gave a few more problems but nothing that couldn't be solved by searching the web (including Wire's troubleshooting page). I've just launched it and registered and so far it is working fine [EDIT: off-topic, poor quality the audio-video call, trying between my Linux PC and my Android Phone in Wifi, both have hardware which works fine with other comm apps]. Thank you again @gregor your input on node version was essential.