ranisalt / node-argon2

Node.js bindings for Argon2 hashing algorithm
https://www.npmjs.com/package/argon2
MIT License
1.88k stars 93 forks source link

Failed at the argon2@0.16.2 install script 'node-gyp rebuild'. #97

Closed barbequesauce closed 6 years ago

barbequesauce commented 6 years ago

Hi! Trying to build jfurrow/flood on my rpi, and it consistently dies on this step. Only Argon2 seems to be a problem. node-gyp was installed globally successfully prior to this install.

Steps to reproduce

1.sudo npm install --unsafe-perm -g --verbose argon2 2. 3.

Expected behaviour

Build successful.

Actual behaviour

Verbose output below.

Environment

Raspbian Jessie Node version: 7.10.1 Compiler version: 4.9.2

npm verb stack Error: argon2@0.16.2 install: node-gyp rebuild npm verb stack Exit status 1 npm verb stack at EventEmitter. (/usr/lib/node_modules/npm/lib/utils/lifecycle.js:279:16) npm verb stack at emitTwo (events.js:106:13) npm verb stack at EventEmitter.emit (events.js:194:7) npm verb stack at ChildProcess. (/usr/lib/node_modules/npm/lib/utils/spawn.js:40:14) npm verb stack at emitTwo (events.js:106:13) npm verb stack at ChildProcess.emit (events.js:194:7) npm verb stack at maybeClose (internal/child_process.js:899:16) npm verb stack at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5) npm verb pkgid argon2@0.16.2 npm verb cwd /opt/flood npm ERR! Linux 4.9.35-v7+ npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "--unsafe-perm" "-g" "--verbose" "argon2" npm ERR! node v7.10.1 npm ERR! npm v4.2.0 npm ERR! code ELIFECYCLE npm ERR! errno 1

npm ERR! argon2@0.16.2 install: node-gyp rebuild npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the argon2@0.16.2 install script 'node-gyp rebuild'. 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 argon2 package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node-gyp rebuild npm ERR! You can get information on how to open an issue for this project with: npm ERR! npm bugs argon2 npm ERR! Or if that isn't available, you can get their info via: npm ERR! npm owner ls argon2 npm ERR! There is likely additional logging output above. npm verb exit [ 1, true ]

npm ERR! Please include the following file with any support request: npm ERR! /root/.npm/_logs/2017-11-27T15_02_34_772Z-debug.log

ranisalt commented 6 years ago

You shouldn't install it globally, but try cloning and running node-gyp rebuild --verbose and post the error messages here.

barbequesauce commented 6 years ago

No dice.

npm info linkStuff argon2@0.16.2
npm verb linkBins argon2@0.16.2
npm verb linkMans argon2@0.16.2
npm info lifecycle argon2@0.16.2~install: argon2@0.16.2

> argon2@0.16.2 install /opt/node-argon2
> node-gyp rebuild

gyp info it worked if it ends with ok
gyp verb cli [ '/usr/bin/nodejs',
gyp verb cli   '/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js',
gyp verb cli   'rebuild' ]
gyp info using node-gyp@3.5.0
gyp info using node@7.10.1 | linux | arm
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` succeeded python2 /usr/bin/python2
gyp verb check python version `/usr/bin/python2 -c "import platform; print(platform.python_version());"` returned: "2.7.9\n"
gyp verb get node dir no --target version specified, falling back to host node version: 7.10.1
gyp verb command install [ '7.10.1' ]
gyp verb install input version string "7.10.1"
gyp verb install installing version: 7.10.1
gyp verb install --ensure was passed, so won't reinstall if already installed
gyp verb install version is already installed, need to check "installVersion"
gyp verb got "installVersion" 9
gyp verb needs "installVersion" 9
gyp verb install version is good
gyp verb get node dir target node version installed: 7.10.1
gyp verb build dir attempting to create "build" dir: /opt/node-argon2/build
gyp verb build dir "build" dir needed to be created? /opt/node-argon2/build
gyp verb build/config.gypi creating config file
gyp verb build/config.gypi writing out config file: /opt/node-argon2/build/config.gypi
gyp verb config.gypi checking for gypi file: /opt/node-argon2/config.gypi
gyp verb common.gypi checking for gypi file: /opt/node-argon2/common.gypi
gyp verb gyp gyp format was not specified; forcing "make"
gyp info spawn /usr/bin/python2
gyp info spawn args [ '/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/opt/node-argon2/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/root/.node-gyp/7.10.1/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/root/.node-gyp/7.10.1',
gyp info spawn args   '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=node.lib',
gyp info spawn args   '-Dmodule_root_dir=/opt/node-argon2',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.' ]
gyp verb command build []
gyp verb build type Release
gyp verb architecture arm
gyp verb node dev dir /root/.node-gyp/7.10.1
gyp verb `which` succeeded for `make` /usr/bin/make
gyp info spawn make
gyp info spawn args [ 'V=1', 'BUILDTYPE=Release', '-C', 'build' ]
make: Entering directory '/opt/node-argon2/build'
make: *** No rule to make target 'Release/obj.target/libargon2/argon2/src/ref.o', needed by 'Release/obj.target/argon2.a'.  Stop.
make: Leaving directory '/opt/node-argon2/build'
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:276:23)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:194:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Linux 4.9.35-v7+
gyp ERR! command "/usr/bin/nodejs" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /opt/node-argon2
gyp ERR! node -v v7.10.1
gyp ERR! node-gyp -v v3.5.0
gyp ERR! not ok 

npm verb lifecycle argon2@0.16.2~install: unsafe-perm in lifecycle true
npm verb lifecycle argon2@0.16.2~install: PATH: /usr/lib/node_modules/npm/bin/node-gyp-bin:/opt/node-argon2/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
npm verb lifecycle argon2@0.16.2~install: CWD: /opt/node-argon2
npm info lifecycle argon2@0.16.2~install: Failed to exec install script
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.1.1 (node_modules/sane/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Valid OS:    darwin
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Valid Arch:  any
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Actual OS:   linux
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Actual Arch: arm
npm verb stack Error: argon2@0.16.2 install: `node-gyp rebuild`
npm verb stack Exit status 1
npm verb stack     at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/lib/utils/lifecycle.js:279:16)
npm verb stack     at emitTwo (events.js:106:13)
npm verb stack     at EventEmitter.emit (events.js:194:7)
npm verb stack     at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/lib/utils/spawn.js:40:14)
npm verb stack     at emitTwo (events.js:106:13)
npm verb stack     at ChildProcess.emit (events.js:194:7)
npm verb stack     at maybeClose (internal/child_process.js:899:16)
npm verb stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
npm verb pkgid argon2@0.16.2
npm verb cwd /opt/node-argon2
npm ERR! Linux 4.9.35-v7+
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "--unsafe-perm" "--verbose"
npm ERR! node v7.10.1
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! argon2@0.16.2 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the argon2@0.16.2 install script 'node-gyp rebuild'.
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 argon2 package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs argon2
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls argon2
npm ERR! There is likely additional logging output above.
npm verb exit [ 1, true ]

npm ERR! Please include the following file with any support request:
npm ERR!     /root/.npm/_logs/2017-11-27T17_45_37_970Z-debug.log
/opt/node-argon2 $ 
ranisalt commented 6 years ago

Did you clone with --recursive? If not, on the git root, run git submodule update --init --recursive.

I will try to reproduce with qemu and, if possible, build with it on Travis.

barbequesauce commented 6 years ago
/opt/node-argon2 $ sudo git submodule update --init --recursive
Submodule 'argon2' (https://github.com/P-H-C/phc-winner-argon2.git) registered for path 'argon2'
Cloning into 'argon2'...
remote: Counting objects: 2683, done.
remote: Total 2683 (delta 0), reused 0 (delta 0), pack-reused 2683
Receiving objects: 100% (2683/2683), 5.33 MiB | 1.53 MiB/s, done.
Resolving deltas: 100% (1800/1800), done.
Checking connectivity... done.
Submodule path 'argon2': checked out '54ff100b0717505493439ec9d4ca85cb9cbdef00'

/opt/node-argon2 $ sudo node-gyp rebuild --verbose
gyp info it worked if it ends with ok
gyp verb cli [ '/usr/bin/nodejs', '/usr/bin/node-gyp', 'rebuild', '--verbose' ]
gyp info using node-gyp@3.6.2
gyp info using node@7.10.1 | linux | arm
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` succeeded python2 /usr/bin/python2
gyp verb check python version `/usr/bin/python2 -c "import platform; print(platform.python_version());"` returned: "2.7.9\n"
gyp verb get node dir no --target version specified, falling back to host node version: 7.10.1
gyp verb command install [ '7.10.1' ]
gyp verb install input version string "7.10.1"
gyp verb install installing version: 7.10.1
gyp verb install --ensure was passed, so won't reinstall if already installed
gyp verb install version is already installed, need to check "installVersion"
gyp verb got "installVersion" 9
gyp verb needs "installVersion" 9
gyp verb install version is good
gyp verb get node dir target node version installed: 7.10.1
gyp verb build dir attempting to create "build" dir: /opt/node-argon2/build
gyp verb build dir "build" dir needed to be created? /opt/node-argon2/build
gyp verb build/config.gypi creating config file
gyp verb build/config.gypi writing out config file: /opt/node-argon2/build/config.gypi
gyp verb config.gypi checking for gypi file: /opt/node-argon2/config.gypi
gyp verb common.gypi checking for gypi file: /opt/node-argon2/common.gypi
gyp verb gyp gyp format was not specified; forcing "make"
gyp info spawn /usr/bin/python2
gyp info spawn args [ '/usr/lib/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/opt/node-argon2/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/lib/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/root/.node-gyp/7.10.1/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/root/.node-gyp/7.10.1',
gyp info spawn args   '-Dnode_gyp_dir=/usr/lib/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/root/.node-gyp/7.10.1/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/opt/node-argon2',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.' ]
gyp verb command build []
gyp verb build type Release
gyp verb architecture arm
gyp verb node dev dir /root/.node-gyp/7.10.1
gyp verb `which` succeeded for `make` /usr/bin/make
gyp info spawn make
gyp info spawn args [ 'V=1', 'BUILDTYPE=Release', '-C', 'build' ]
make: Entering directory '/opt/node-argon2/build'
  cc '-DNDEBUG' '-D_FORTIFY_SOURCE=2' '-DNODE_GYP_MODULE_NAME=libargon2' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' -I../argon2/include -I/root/.node-gyp/7.10.1/include/node -I/root/.node-gyp/7.10.1/src -I/root/.node-gyp/7.10.1/deps/uv/include -I/root/.node-gyp/7.10.1/deps/v8/include  -fdata-sections -ffunction-sections -fvisibility=hidden -march=native -Wno-type-limits -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -O3 -fno-omit-frame-pointer  -MMD -MF ./Release/.deps/Release/obj.target/libargon2/argon2/src/ref.o.d.raw   -c -o Release/obj.target/libargon2/argon2/src/ref.o ../argon2/src/ref.c
*** Error in `cc': double free or corruption (!prev): 0x01f161a0 ***
libargon2.target.mk:108: recipe for target 'Release/obj.target/libargon2/argon2/src/ref.o' failed
make: *** [Release/obj.target/libargon2/argon2/src/ref.o] Aborted
make: Leaving directory '/opt/node-argon2/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:194:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Linux 4.9.35-v7+
gyp ERR! command "/usr/bin/nodejs" "/usr/bin/node-gyp" "rebuild" "--verbose"
gyp ERR! cwd /opt/node-argon2
gyp ERR! node -v v7.10.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok 
/opt/node-argon2 $ 
ranisalt commented 6 years ago

Well, your compiler is failing with a memory corruption. You can try reinstalling/recompiling it.

barbequesauce commented 6 years ago

So I started fresh this morning - nuked the argon & flood directories, reinstalled node-gyp successfully all by itself, and then attempted to build flood. It came back with the same error (output attached below).

Googling around I found some comments here that indicate there may be some tuning needed for the armv8 processor; I'm not familiar enough to go digging around at that level though. Does any of it seem to apply?


/usr/bin/node-gyp -> /usr/lib/node_modules/node-gyp/bin/node-gyp.js
/usr/lib
└── node-gyp@3.6.2 

/opt $ sudo git clone https://github.com/jfurrow/flood
Cloning into 'flood'...
remote: Counting objects: 11485, done.
remote: Compressing objects: 100% (87/87), done.
remote: Total 11485 (delta 39), reused 81 (delta 27), pack-reused 11371
Receiving objects: 100% (11485/11485), 21.28 MiB | 1.15 MiB/s, done.
Resolving deltas: 100% (7412/7412), done.
Checking connectivity... done.
/opt $ cd flood
/opt/flood $ ls
CHANGELOG.md  config.docker.js    Dockerfile  LICENSE       package-lock.json  server
client        config.template.js  flood.png   package.json  README.md          shared
/opt/flood $ sudo cp config.template.js config.js
/opt/flood $ sudo vi config.js
/opt/flood $ sudo npm install --unsafe-perm
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! 
npm WARN prefer global node-gyp@3.6.2 should be installed with -g

> argon2@0.16.2 install /opt/flood/node_modules/argon2
> node-gyp rebuild

make: Entering directory '/opt/flood/node_modules/argon2/build'
  CC(target) Release/obj.target/libargon2/argon2/src/ref.o
*** Error in `cc': double free or corruption (top): 0x013631f8 ***
libargon2.target.mk:105: recipe for target 'Release/obj.target/libargon2/argon2/src/ref.o' failed
make: *** [Release/obj.target/libargon2/argon2/src/ref.o] Aborted
make: Leaving directory '/opt/flood/node_modules/argon2/build'
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:276:23)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:194:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Linux 4.9.35-v7+
gyp ERR! command "/usr/bin/nodejs" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /opt/flood/node_modules/argon2
gyp ERR! node -v v7.10.1
gyp ERR! node-gyp -v v3.5.0
gyp ERR! not ok 
flood@1.0.0 /opt/flood
β”œβ”€β”¬ autoprefixer@7.1.6 
β”‚ β”œβ”€β”¬ browserslist@2.9.1 
β”‚ β”‚ └── electron-to-chromium@1.3.27 
β”‚ β”œβ”€β”€ caniuse-lite@1.0.30000772 
β”‚ β”œβ”€β”€ normalize-range@0.1.2 
β”‚ β”œβ”€β”€ num2fraction@1.2.2 
β”‚ β”œβ”€β”€ postcss@6.0.14 
β”‚ └── postcss-value-parser@3.3.0 
β”œβ”€β”¬ axios@0.16.2 
β”‚ β”œβ”€β”¬ follow-redirects@1.2.6 
β”‚ β”‚ └── debug@3.1.0 
β”‚ └── is-buffer@1.1.6 
β”œβ”€β”¬ babel-core@6.25.0 
β”‚ β”œβ”€β”¬ babel-code-frame@6.26.0 
β”‚ β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚ └── supports-color@2.0.0 
β”‚ β”‚ └── js-tokens@3.0.2 
β”‚ β”œβ”€β”¬ babel-generator@6.26.0 
β”‚ β”‚ β”œβ”€β”¬ detect-indent@4.0.0 
β”‚ β”‚ β”‚ └─┬ repeating@2.0.1 
β”‚ β”‚ β”‚   └── is-finite@1.0.2 
β”‚ β”‚ β”œβ”€β”€ jsesc@1.3.0 
β”‚ β”‚ β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ └── trim-right@1.0.1 
β”‚ β”œβ”€β”€ babel-helpers@6.24.1 
β”‚ β”œβ”€β”€ babel-messages@6.23.0 
β”‚ β”œβ”€β”¬ babel-register@6.26.0 
β”‚ β”‚ β”œβ”€β”¬ babel-core@6.26.0 
β”‚ β”‚ β”‚ └── source-map@0.5.7 
β”‚ β”‚ β”œβ”€β”¬ home-or-tmp@2.0.0 
β”‚ β”‚ β”‚ └── os-tmpdir@1.0.2 
β”‚ β”‚ └─┬ source-map-support@0.4.18 
β”‚ β”‚   └── source-map@0.5.7 
β”‚ β”œβ”€β”€ babel-template@6.26.0 
β”‚ β”œβ”€β”€ babel-traverse@6.26.0 
β”‚ β”œβ”€β”¬ babel-types@6.26.0 
β”‚ β”‚ └── to-fast-properties@1.0.3 
β”‚ β”œβ”€β”€ babylon@6.18.0 
β”‚ β”œβ”€β”€ convert-source-map@1.5.1 
β”‚ β”œβ”€β”€ json5@0.5.1 
β”‚ β”œβ”€β”¬ 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 
β”‚ β”œβ”€β”€ private@0.1.8 
β”‚ β”œβ”€β”€ slash@1.0.0 
β”‚ └── source-map@0.5.7 
β”œβ”€β”€ babel-eslint@7.2.3 
β”œβ”€β”¬ babel-jest@20.0.3 
β”‚ β”œβ”€β”¬ babel-plugin-istanbul@4.1.5 
β”‚ β”‚ β”œβ”€β”¬ find-up@2.1.0 
β”‚ β”‚ β”‚ └─┬ locate-path@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”¬ p-locate@2.0.0 
β”‚ β”‚ β”‚   β”‚ └── p-limit@1.1.0 
β”‚ β”‚ β”‚   └── path-exists@3.0.0 
β”‚ β”‚ β”œβ”€β”€ istanbul-lib-instrument@1.9.1 
β”‚ β”‚ └─┬ test-exclude@4.1.1 
β”‚ β”‚   └── arrify@1.0.1 
β”‚ └─┬ babel-preset-jest@20.0.3 
β”‚   └── babel-plugin-jest-hoist@20.0.3 
β”œβ”€β”¬ babel-loader@7.1.2 
β”‚ β”œβ”€β”¬ find-cache-dir@1.0.0 
β”‚ β”‚ β”œβ”€β”€ commondir@1.0.1 
β”‚ β”‚ β”œβ”€β”€ make-dir@1.1.0 
β”‚ β”‚ └── pkg-dir@2.0.0 
β”‚ └─┬ loader-utils@1.1.0 
β”‚   β”œβ”€β”€ big.js@3.2.0 
β”‚   └── emojis-list@2.1.0 
β”œβ”€β”¬ babel-plugin-transform-react-jsx@6.24.1 
β”‚ β”œβ”€β”€ babel-helper-builder-react-jsx@6.26.0 
β”‚ └── babel-plugin-syntax-jsx@6.18.0 
β”œβ”€β”€ babel-plugin-transform-runtime@6.23.0 
β”œβ”€β”¬ babel-polyfill@6.26.0 
β”‚ β”œβ”€β”€ core-js@2.5.1 
β”‚ └── regenerator-runtime@0.10.5 
β”œβ”€β”¬ 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.0 
β”‚ β”‚ └── 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.3.3 
β”‚ β”‚   β”œβ”€β”€ 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-app@3.1.0 
β”‚ β”œβ”€β”€ babel-plugin-dynamic-import-node@1.1.0 
β”‚ β”œβ”€β”€ babel-plugin-syntax-dynamic-import@6.18.0 
β”‚ β”œβ”€β”¬ babel-plugin-transform-class-properties@6.24.1 
β”‚ β”‚ └── babel-plugin-syntax-class-properties@6.13.0 
β”‚ β”œβ”€β”¬ babel-plugin-transform-object-rest-spread@6.26.0 
β”‚ β”‚ └── babel-plugin-syntax-object-rest-spread@6.13.0 
β”‚ β”œβ”€β”€ babel-plugin-transform-react-constant-elements@6.23.0 
β”‚ β”œβ”€β”€ babel-plugin-transform-react-jsx-self@6.22.0 
β”‚ β”œβ”€β”€ babel-plugin-transform-react-jsx-source@6.22.0 
β”‚ β”œβ”€β”¬ babel-preset-env@1.6.1 
β”‚ β”‚ β”œβ”€β”€ babel-plugin-syntax-trailing-function-commas@6.22.0 
β”‚ β”‚ β”œβ”€β”¬ babel-plugin-transform-async-to-generator@6.24.1 
β”‚ β”‚ β”‚ β”œβ”€β”€ babel-helper-remap-async-to-generator@6.24.1 
β”‚ β”‚ β”‚ └── babel-plugin-syntax-async-functions@6.13.0 
β”‚ β”‚ β”œβ”€β”¬ babel-plugin-transform-exponentiation-operator@6.24.1 
β”‚ β”‚ β”‚ β”œβ”€β”¬ babel-helper-builder-binary-assignment-operator-visitor@6.24.1 
β”‚ β”‚ β”‚ β”‚ └── babel-helper-explode-assignable-expression@6.24.1 
β”‚ β”‚ β”‚ └── babel-plugin-syntax-exponentiation-operator@6.13.0 
β”‚ β”‚ └── semver@5.4.1 
β”‚ └─┬ babel-preset-react@6.24.1 
β”‚   β”œβ”€β”€ babel-plugin-transform-react-display-name@6.25.0 
β”‚   └─┬ babel-preset-flow@6.23.0 
β”‚     └─┬ babel-plugin-transform-flow-strip-types@6.22.0 
β”‚       └── babel-plugin-syntax-flow@6.18.0 
β”œβ”€β”¬ babel-preset-stage-2@6.24.1 
β”‚ β”œβ”€β”¬ babel-plugin-transform-decorators@6.24.1 
β”‚ β”‚ β”œβ”€β”¬ babel-helper-explode-class@6.24.1 
β”‚ β”‚ β”‚ └── babel-helper-bindify-decorators@6.24.1 
β”‚ β”‚ └── babel-plugin-syntax-decorators@6.13.0 
β”‚ └─┬ babel-preset-stage-3@6.24.1 
β”‚   └─┬ babel-plugin-transform-async-generator-functions@6.24.1 
β”‚     └── babel-plugin-syntax-async-generators@6.13.0 
β”œβ”€β”¬ babel-runtime@6.26.0 
β”‚ └── regenerator-runtime@0.11.0 
β”œβ”€β”¬ bcrypt@1.0.3 
β”‚ β”œβ”€β”€ nan@2.6.2 
β”‚ └─┬ node-pre-gyp@0.6.36 
β”‚   β”œβ”€β”¬ nopt@4.0.1 
β”‚   β”‚ └── abbrev@1.1.1 
β”‚   β”œβ”€β”¬ rc@1.2.2 
β”‚   β”‚ β”œβ”€β”€ deep-extend@0.4.2 
β”‚   β”‚ β”œβ”€β”€ ini@1.3.5 
β”‚   β”‚ └── minimist@1.2.0 
β”‚   β”œβ”€β”¬ request@2.83.0 
β”‚   β”‚ β”œβ”€β”€ aws-sign2@0.7.0 
β”‚   β”‚ β”œβ”€β”€ caseless@0.12.0 
β”‚   β”‚ β”œβ”€β”€ form-data@2.3.1 
β”‚   β”‚ β”œβ”€β”¬ har-validator@5.0.3 
β”‚   β”‚ β”‚ └── har-schema@2.0.0 
β”‚   β”‚ β”œβ”€β”¬ hawk@6.0.2 
β”‚   β”‚ β”‚ β”œβ”€β”€ boom@4.3.1 
β”‚   β”‚ β”‚ β”œβ”€β”¬ cryptiles@3.1.2 
β”‚   β”‚ β”‚ β”‚ └── boom@5.2.0 
β”‚   β”‚ β”‚ β”œβ”€β”€ hoek@4.2.0 
β”‚   β”‚ β”‚ └── sntp@2.1.0 
β”‚   β”‚ β”œβ”€β”¬ http-signature@1.2.0 
β”‚   β”‚ β”‚ └── assert-plus@1.0.0 
β”‚   β”‚ └── tunnel-agent@0.6.0 
β”‚   β”œβ”€β”¬ tar@2.2.1 
β”‚   β”‚ └── block-stream@0.0.9 
β”‚   └─┬ tar-pack@3.4.1 
β”‚     β”œβ”€β”€ fstream-ignore@1.0.5 
β”‚     └── uid-number@0.0.6 
β”œβ”€β”¬ body-parser@1.18.2 
β”‚ β”œβ”€β”€ bytes@3.0.0 
β”‚ β”œβ”€β”€ content-type@1.0.4 
β”‚ β”œβ”€β”€ depd@1.1.1 
β”‚ β”œβ”€β”¬ http-errors@1.6.2 
β”‚ β”‚ β”œβ”€β”€ inherits@2.0.3 
β”‚ β”‚ β”œβ”€β”€ setprototypeof@1.0.3 
β”‚ β”‚ └── statuses@1.4.0 
β”‚ β”œβ”€β”€ iconv-lite@0.4.19 
β”‚ β”œβ”€β”¬ on-finished@2.3.0 
β”‚ β”‚ └── ee-first@1.1.1 
β”‚ β”œβ”€β”€ qs@6.5.1 
β”‚ β”œβ”€β”¬ raw-body@2.3.2 
β”‚ β”‚ └── unpipe@1.0.0 
β”‚ └─┬ type-is@1.6.15 
β”‚   β”œβ”€β”€ media-typer@0.3.0 
β”‚   └── mime-types@2.1.17 
β”œβ”€β”€ case-sensitive-paths-webpack-plugin@2.1.1 
β”œβ”€β”¬ chalk@2.3.0 
β”‚ β”œβ”€β”¬ ansi-styles@3.2.0 
β”‚ β”‚ └─┬ color-convert@1.9.1 
β”‚ β”‚   └── color-name@1.1.3 
β”‚ β”œβ”€β”€ escape-string-regexp@1.0.5 
β”‚ └─┬ supports-color@4.5.0 
β”‚   └── has-flag@2.0.0 
β”œβ”€β”€ classnames@2.2.5 
β”œβ”€β”¬ clipboard@1.7.1 
β”‚ β”œβ”€β”¬ good-listener@1.2.2 
β”‚ β”‚ └── delegate@3.1.3 
β”‚ β”œβ”€β”€ select@1.1.2 
β”‚ └── tiny-emitter@2.0.2 
β”œβ”€β”¬ compression@1.7.1 
β”‚ β”œβ”€β”¬ accepts@1.3.4 
β”‚ β”‚ └── negotiator@0.6.1 
β”‚ β”œβ”€β”¬ compressible@2.0.12 
β”‚ β”‚ └── mime-db@1.30.0 
β”‚ β”œβ”€β”€ on-headers@1.0.1 
β”‚ β”œβ”€β”€ safe-buffer@5.1.1 
β”‚ └── vary@1.1.2 
β”œβ”€β”¬ cookie-parser@1.4.3 
β”‚ β”œβ”€β”€ cookie@0.3.1 
β”‚ └── cookie-signature@1.0.6 
β”œβ”€β”¬ css-loader@0.28.4 
β”‚ β”œβ”€β”¬ 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 
β”‚ β”‚ β”‚ └── caniuse-db@1.0.30000772 
β”‚ β”‚ β”œβ”€β”€ decamelize@1.2.0 
β”‚ β”‚ β”œβ”€β”€ defined@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss@5.2.18 
β”‚ β”‚ β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚ β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚ β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚ └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚   └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-calc@5.3.1 
β”‚ β”‚ β”‚ β”œβ”€β”¬ postcss@5.2.18 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚ β”‚ β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚ β”‚ └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚ β”‚   └── has-flag@1.0.0 
β”‚ β”‚ β”‚ β”œβ”€β”€ 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.3 
β”‚ β”‚ β”‚ β”‚ β”‚ └── color-string@0.3.0 
β”‚ β”‚ β”‚ β”‚ └── css-color-names@0.0.4 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-convert-values@2.6.1 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-discard-comments@2.0.4 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-discard-duplicates@2.1.0 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-discard-empty@2.1.0 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-discard-overridden@0.1.1 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-discard-unused@2.2.3 
β”‚ β”‚ β”‚ β”œβ”€β”¬ postcss@5.2.18 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚ β”‚ β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚ β”‚ └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚ β”‚   └── has-flag@1.0.0 
β”‚ β”‚ β”‚ └── uniqs@2.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-filter-plugins@2.0.2 
β”‚ β”‚ β”‚ β”œβ”€β”¬ postcss@5.2.18 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚ β”‚ β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚ β”‚ └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚ β”‚   └── has-flag@1.0.0 
β”‚ β”‚ β”‚ └─┬ uniqid@4.1.1 
β”‚ β”‚ β”‚   └── macaddress@0.2.8 
β”‚ β”‚ β”œβ”€β”¬ postcss-merge-idents@2.1.7 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-merge-longhand@2.0.2 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-merge-rules@2.1.2 
β”‚ β”‚ β”‚ β”œβ”€β”€ browserslist@1.7.7 
β”‚ β”‚ β”‚ β”œβ”€β”¬ caniuse-api@1.6.1 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ browserslist@1.7.7 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ lodash.memoize@4.1.2 
β”‚ β”‚ β”‚ β”‚ └── lodash.uniq@4.5.0 
β”‚ β”‚ β”‚ β”œβ”€β”¬ postcss@5.2.18 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚ β”‚ β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚ β”‚ └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚ β”‚   └── has-flag@1.0.0 
β”‚ β”‚ β”‚ β”œβ”€β”¬ postcss-selector-parser@2.2.3 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ flatten@1.0.2 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ indexes-of@1.0.1 
β”‚ β”‚ β”‚ β”‚ └── uniq@1.0.1 
β”‚ β”‚ β”‚ └── vendors@1.0.1 
β”‚ β”‚ β”œβ”€β”¬ postcss-minify-font-values@1.0.5 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-minify-gradients@1.0.5 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-minify-params@1.2.2 
β”‚ β”‚ β”‚ β”œβ”€β”€ alphanum-sort@1.0.2 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-minify-selectors@2.1.1 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-normalize-charset@1.1.1 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-normalize-url@3.0.8 
β”‚ β”‚ β”‚ β”œβ”€β”€ is-absolute-url@2.1.0 
β”‚ β”‚ β”‚ β”œβ”€β”¬ normalize-url@1.9.1 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ prepend-http@1.0.4 
β”‚ β”‚ β”‚ β”‚ └─┬ sort-keys@1.1.2 
β”‚ β”‚ β”‚ β”‚   └── is-plain-obj@1.1.0 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-ordered-values@2.2.3 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-reduce-idents@2.4.0 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-reduce-initial@1.0.1 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-reduce-transforms@1.0.4 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ postcss-svgo@2.1.6 
β”‚ β”‚ β”‚ β”œβ”€β”¬ is-svg@2.1.0 
β”‚ β”‚ β”‚ β”‚ └── html-comment-regex@1.1.1 
β”‚ β”‚ β”‚ β”œβ”€β”¬ postcss@5.2.18 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚ β”‚ β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚ β”‚ └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚ β”‚   └── has-flag@1.0.0 
β”‚ β”‚ β”‚ └─┬ svgo@0.7.2 
β”‚ β”‚ β”‚   β”œβ”€β”€ coa@1.0.4 
β”‚ β”‚ β”‚   β”œβ”€β”¬ csso@2.3.2 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”¬ clap@1.2.3 
β”‚ β”‚ β”‚   β”‚ β”‚ └─┬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”‚   β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ β”‚   └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”‚ └── source-map@0.5.7 
β”‚ β”‚ β”‚   └── whet.extend@0.9.9 
β”‚ β”‚ β”œβ”€β”¬ postcss-unique-selectors@2.0.2 
β”‚ β”‚ β”‚ └─┬ postcss@5.2.18 
β”‚ β”‚ β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚   β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ β”‚   └─┬ supports-color@3.2.3 
β”‚ β”‚ β”‚     └── has-flag@1.0.0 
β”‚ β”‚ └─┬ postcss-zindex@2.2.0 
β”‚ β”‚   └─┬ postcss@5.2.18 
β”‚ β”‚     β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚     β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚     β”‚ └── supports-color@2.0.0 
β”‚ β”‚     β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚     └─┬ supports-color@3.2.3 
β”‚ β”‚       └── has-flag@1.0.0 
β”‚ β”œβ”€β”€ icss-utils@2.1.0 
β”‚ β”œβ”€β”€ lodash.camelcase@4.3.0 
β”‚ β”œβ”€β”¬ postcss@5.2.18 
β”‚ β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”œβ”€β”€ js-base64@2.3.2 
β”‚ β”‚ β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ └─┬ supports-color@3.2.3 
β”‚ β”‚   └── has-flag@1.0.0 
β”‚ β”œβ”€β”€ postcss-modules-extract-imports@1.1.0 
β”‚ β”œβ”€β”€ postcss-modules-local-by-default@1.2.0 
β”‚ β”œβ”€β”€ postcss-modules-scope@1.1.0 
β”‚ β”œβ”€β”¬ postcss-modules-values@1.3.0 
β”‚ β”‚ └── icss-replace-symbols@1.1.0 
β”‚ └── source-list-map@0.1.8 
β”œβ”€β”€ d3@3.5.17 
β”œβ”€β”¬ debug@2.6.9 
β”‚ └── ms@2.0.0 
β”œβ”€β”€ deep-equal@1.0.1 
β”œβ”€β”¬ envify@4.1.0 
β”‚ β”œβ”€β”€ esprima@4.0.0 
β”‚ └── through@2.3.8 
β”œβ”€β”¬ eslint@3.19.0 
β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”œβ”€β”€ has-ansi@2.0.0 
β”‚ β”‚ └── supports-color@2.0.0 
β”‚ β”œβ”€β”¬ concat-stream@1.6.0 
β”‚ β”‚ └── typedarray@0.0.6 
β”‚ β”œβ”€β”€ doctrine@2.0.2 
β”‚ β”œβ”€β”¬ escope@3.6.0 
β”‚ β”‚ β”œβ”€β”¬ es6-map@0.1.5 
β”‚ β”‚ β”‚ β”œβ”€β”€ d@1.0.0 
β”‚ β”‚ β”‚ β”œβ”€β”€ es5-ext@0.10.37 
β”‚ β”‚ β”‚ β”œβ”€β”€ es6-iterator@2.0.3 
β”‚ β”‚ β”‚ β”œβ”€β”€ es6-set@0.1.5 
β”‚ β”‚ β”‚ β”œβ”€β”€ es6-symbol@3.1.1 
β”‚ β”‚ β”‚ └── event-emitter@0.3.5 
β”‚ β”‚ β”œβ”€β”€ es6-weak-map@2.0.2 
β”‚ β”‚ └── esrecurse@4.2.0 
β”‚ β”œβ”€β”¬ espree@3.5.2 
β”‚ β”‚ └─┬ acorn-jsx@3.0.1 
β”‚ β”‚   └── acorn@3.3.0 
β”‚ β”œβ”€β”€ esquery@1.0.0 
β”‚ β”œβ”€β”€ estraverse@4.2.0 
β”‚ β”œβ”€β”€ 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 
β”‚ β”‚   β”‚ β”‚ └── pify@2.3.0 
β”‚ β”‚   β”‚ └── pify@2.3.0 
β”‚ β”‚   └── write@0.2.1 
β”‚ β”œβ”€β”¬ glob@7.1.2 
β”‚ β”‚ β”œβ”€β”€ fs.realpath@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ inflight@1.0.6 
β”‚ β”‚ β”‚ └── wrappy@1.0.2 
β”‚ β”‚ └── once@1.4.0 
β”‚ β”œβ”€β”€ globals@9.18.0 
β”‚ β”œβ”€β”€ ignore@3.3.7 
β”‚ β”œβ”€β”€ imurmurhash@0.1.4 
β”‚ β”œβ”€β”¬ inquirer@0.12.0 
β”‚ β”‚ β”œβ”€β”€ ansi-escapes@1.4.0 
β”‚ β”‚ β”œβ”€β”€ ansi-regex@2.1.1 
β”‚ β”‚ β”œβ”€β”¬ cli-cursor@1.0.2 
β”‚ β”‚ β”‚ └─┬ restore-cursor@1.0.1 
β”‚ β”‚ β”‚   β”œβ”€β”€ exit-hook@1.1.1 
β”‚ β”‚ β”‚   └── onetime@1.1.0 
β”‚ β”‚ β”œβ”€β”€ cli-width@2.2.0 
β”‚ β”‚ β”œβ”€β”€ figures@1.7.0 
β”‚ β”‚ β”œβ”€β”¬ readline2@1.0.1 
β”‚ β”‚ β”‚ β”œβ”€β”€ code-point-at@1.1.0 
β”‚ β”‚ β”‚ β”œβ”€β”¬ is-fullwidth-code-point@1.0.0 
β”‚ β”‚ β”‚ β”‚ └── number-is-nan@1.0.1 
β”‚ β”‚ β”‚ └── mute-stream@0.0.5 
β”‚ β”‚ β”œβ”€β”€ run-async@0.1.0 
β”‚ β”‚ β”œβ”€β”€ rx-lite@3.1.2 
β”‚ β”‚ └── string-width@1.0.2 
β”‚ β”œβ”€β”¬ is-my-json-valid@2.16.1 
β”‚ β”‚ β”œβ”€β”€ generate-function@2.0.0 
β”‚ β”‚ β”œβ”€β”¬ generate-object-property@1.2.0 
β”‚ β”‚ β”‚ └── is-property@1.0.2 
β”‚ β”‚ └── jsonpointer@4.0.1 
β”‚ β”œβ”€β”¬ is-resolvable@1.0.0 
β”‚ β”‚ └── tryit@1.0.3 
β”‚ β”œβ”€β”¬ js-yaml@3.7.0 
β”‚ β”‚ β”œβ”€β”¬ argparse@1.0.9 
β”‚ β”‚ β”‚ └── sprintf-js@1.0.3 
β”‚ β”‚ └── esprima@2.7.3 
β”‚ β”œβ”€β”¬ json-stable-stringify@1.0.1 
β”‚ β”‚ └── jsonify@0.0.0 
β”‚ β”œβ”€β”¬ 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@1.2.1 
β”‚ β”œβ”€β”€ progress@1.1.8 
β”‚ β”œβ”€β”¬ require-uncached@1.0.3 
β”‚ β”‚ β”œβ”€β”¬ caller-path@0.1.0 
β”‚ β”‚ β”‚ └── callsites@0.2.0 
β”‚ β”‚ └── resolve-from@1.0.1 
β”‚ β”œβ”€β”¬ shelljs@0.7.8 
β”‚ β”‚ └── rechoir@0.6.2 
β”‚ β”œβ”€β”€ strip-bom@3.0.0 
β”‚ β”œβ”€β”€ strip-json-comments@2.0.1 
β”‚ β”œβ”€β”¬ table@3.8.3 
β”‚ β”‚ β”œβ”€β”€ ajv@4.11.8 
β”‚ β”‚ β”œβ”€β”€ ajv-keywords@1.5.1 
β”‚ β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ β”‚ └── supports-color@2.0.0 
β”‚ β”‚ β”œβ”€β”€ slice-ansi@0.0.4 
β”‚ β”‚ └─┬ 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 
β”‚ └─┬ user-home@2.0.0 
β”‚   └── os-homedir@1.0.2 
β”œβ”€β”¬ eslint-config-airbnb@15.1.0 
β”‚ └─┬ eslint-config-airbnb-base@11.3.2 
β”‚   └── eslint-restricted-globals@0.1.1 
β”œβ”€β”€ eslint-config-react-app@1.0.5 
β”œβ”€β”¬ eslint-loader@1.7.1 
β”‚ β”œβ”€β”¬ find-cache-dir@0.1.1 
β”‚ β”‚ └─┬ pkg-dir@1.0.0 
β”‚ β”‚   └─┬ find-up@1.1.2 
β”‚ β”‚     └── path-exists@2.1.0 
β”‚ β”œβ”€β”¬ loader-fs-cache@1.0.1 
β”‚ β”‚ └─┬ find-cache-dir@0.1.1 
β”‚ β”‚   └─┬ pkg-dir@1.0.0 
β”‚ β”‚     └─┬ find-up@1.1.2 
β”‚ β”‚       └── path-exists@2.1.0 
β”‚ └── object-hash@1.2.0 
β”œβ”€β”€ eslint-plugin-flowtype@2.34.0 
β”œβ”€β”¬ eslint-plugin-import@2.8.0 
β”‚ β”œβ”€β”€ builtin-modules@1.1.1 
β”‚ β”œβ”€β”€ contains-path@0.1.0 
β”‚ β”œβ”€β”¬ doctrine@1.5.0 
β”‚ β”‚ └── isarray@1.0.0 
β”‚ β”œβ”€β”¬ eslint-import-resolver-node@0.3.1 
β”‚ β”‚ └─┬ resolve@1.5.0 
β”‚ β”‚   └── path-parse@1.0.5 
β”‚ β”œβ”€β”¬ eslint-module-utils@2.1.1 
β”‚ β”‚ └─┬ pkg-dir@1.0.0 
β”‚ β”‚   └─┬ find-up@1.1.2 
β”‚ β”‚     └── path-exists@2.1.0 
β”‚ β”œβ”€β”¬ has@1.0.1 
β”‚ β”‚ └── function-bind@1.1.1 
β”‚ β”œβ”€β”€ lodash.cond@4.5.2 
β”‚ └─┬ read-pkg-up@2.0.0 
β”‚   └─┬ read-pkg@2.0.0 
β”‚     β”œβ”€β”¬ load-json-file@2.0.0 
β”‚     β”‚ β”œβ”€β”€ pify@2.3.0 
β”‚     β”‚ └── strip-bom@3.0.0 
β”‚     └── path-type@2.0.0 
β”œβ”€β”¬ eslint-plugin-jsx-a11y@5.1.1 
β”‚ β”œβ”€β”€ aria-query@0.7.0 
β”‚ β”œβ”€β”¬ array-includes@3.0.3 
β”‚ β”‚ β”œβ”€β”¬ define-properties@1.1.2 
β”‚ β”‚ β”‚ β”œβ”€β”€ foreach@2.0.5 
β”‚ β”‚ β”‚ └── object-keys@1.0.11 
β”‚ β”‚ └─┬ es-abstract@1.10.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 
β”‚ β”œβ”€β”€ ast-types-flow@0.0.7 
β”‚ β”œβ”€β”€ axobject-query@0.1.0 
β”‚ β”œβ”€β”€ damerau-levenshtein@1.0.4 
β”‚ β”œβ”€β”€ emoji-regex@6.5.1 
β”‚ └── jsx-ast-utils@1.4.1 
β”œβ”€β”€ eslint-plugin-react@7.1.0 
β”œβ”€β”€ events@1.1.1 
β”œβ”€β”¬ express@4.16.2 
β”‚ β”œβ”€β”€ array-flatten@1.1.1 
β”‚ β”œβ”€β”€ content-disposition@0.5.2 
β”‚ β”œβ”€β”€ encodeurl@1.0.1 
β”‚ β”œβ”€β”€ escape-html@1.0.3 
β”‚ β”œβ”€β”€ etag@1.8.1 
β”‚ β”œβ”€β”¬ finalhandler@1.1.0 
β”‚ β”‚ └── statuses@1.3.1 
β”‚ β”œβ”€β”€ fresh@0.5.2 
β”‚ β”œβ”€β”€ merge-descriptors@1.0.1 
β”‚ β”œβ”€β”€ methods@1.1.2 
β”‚ β”œβ”€β”€ parseurl@1.3.2 
β”‚ β”œβ”€β”€ path-to-regexp@0.1.7 
β”‚ β”œβ”€β”¬ proxy-addr@2.0.2 
β”‚ β”‚ β”œβ”€β”€ forwarded@0.1.2 
β”‚ β”‚ └── ipaddr.js@1.5.2 
β”‚ β”œβ”€β”€ range-parser@1.2.0 
β”‚ β”œβ”€β”¬ send@0.16.1 
β”‚ β”‚ β”œβ”€β”€ destroy@1.0.4 
β”‚ β”‚ β”œβ”€β”€ mime@1.4.1 
β”‚ β”‚ └── statuses@1.3.1 
β”‚ β”œβ”€β”€ serve-static@1.13.1 
β”‚ β”œβ”€β”€ setprototypeof@1.1.0 
β”‚ β”œβ”€β”€ statuses@1.3.1 
β”‚ └── utils-merge@1.0.1 
β”œβ”€β”¬ extract-text-webpack-plugin@3.0.2 
β”‚ β”œβ”€β”€ async@2.6.0 
β”‚ β”œβ”€β”€ schema-utils@0.3.0 
β”‚ └─┬ webpack-sources@1.1.0 
β”‚   └── source-list-map@2.0.0 
β”œβ”€β”¬ feedsub@0.4.0 
β”‚ β”œβ”€β”¬ feedme@1.0.1 
β”‚ β”‚ β”œβ”€β”€ clarinet@0.11.0 
β”‚ β”‚ └── eventyoshi@0.1.9 
β”‚ └── newsemitter@0.2.3 
β”œβ”€β”€ file-loader@0.11.2 
β”œβ”€β”¬ flood-ui-kit@0.1.6 
β”‚ β”œβ”€β”€ normalize.css@7.0.0 
β”‚ β”œβ”€β”€ prop-types@15.6.0 
β”‚ └─┬ react-router-dom@4.2.2 
β”‚   β”œβ”€β”¬ history@4.7.2 
β”‚   β”‚ β”œβ”€β”€ resolve-pathname@2.2.0 
β”‚   β”‚ └── value-equal@0.4.0 
β”‚   └─┬ react-router@4.2.0 
β”‚     └─┬ path-to-regexp@1.7.0 
β”‚       └── isarray@0.0.1 
β”œβ”€β”¬ flux@3.1.3 
β”‚ β”œβ”€β”€ fbemitter@2.1.1 
β”‚ └─┬ fbjs@0.8.16 
β”‚   β”œβ”€β”€ core-js@1.2.7 
β”‚   β”œβ”€β”¬ isomorphic-fetch@2.2.1 
β”‚   β”‚ β”œβ”€β”¬ node-fetch@1.7.3 
β”‚   β”‚ β”‚ β”œβ”€β”€ encoding@0.1.12 
β”‚   β”‚ β”‚ └── is-stream@1.1.0 
β”‚   β”‚ └── whatwg-fetch@2.0.3 
β”‚   β”œβ”€β”€ promise@7.3.1 
β”‚   β”œβ”€β”€ setimmediate@1.0.5 
β”‚   └── ua-parser-js@0.7.17 
β”œβ”€β”¬ fs-extra@4.0.2 
β”‚ β”œβ”€β”€ graceful-fs@4.1.11 
β”‚ β”œβ”€β”€ jsonfile@4.0.0 
β”‚ └── universalify@0.1.1 
β”œβ”€β”¬ geoip-country-only@1.1.8 
β”‚ β”œβ”€β”€ async@1.5.2 
β”‚ β”œβ”€β”€ colors@1.1.2 
β”‚ β”œβ”€β”€ glob@7.0.6 
β”‚ β”œβ”€β”€ lazy@1.0.11 
β”‚ β”œβ”€β”€ rimraf@2.5.4 
β”‚ └─┬ unzip@0.1.11 
β”‚   β”œβ”€β”¬ binary@0.3.0 
β”‚   β”‚ β”œβ”€β”€ buffers@0.1.1 
β”‚   β”‚ └─┬ chainsaw@0.1.0 
β”‚   β”‚   └── traverse@0.3.9 
β”‚   β”œβ”€β”¬ fstream@0.1.31 
β”‚   β”‚ └─┬ graceful-fs@3.0.11 
β”‚   β”‚   └── natives@1.1.0 
β”‚   β”œβ”€β”¬ match-stream@0.0.2 
β”‚   β”‚ └─┬ readable-stream@1.0.34 
β”‚   β”‚   β”œβ”€β”€ isarray@0.0.1 
β”‚   β”‚   └── string_decoder@0.10.31 
β”‚   β”œβ”€β”¬ pullstream@0.4.1 
β”‚   β”‚ β”œβ”€β”€ over@0.0.5 
β”‚   β”‚ β”œβ”€β”¬ readable-stream@1.0.34 
β”‚   β”‚ β”‚ β”œβ”€β”€ isarray@0.0.1 
β”‚   β”‚ β”‚ └── string_decoder@0.10.31 
β”‚   β”‚ └─┬ slice-stream@1.0.0 
β”‚   β”‚   └─┬ readable-stream@1.0.34 
β”‚   β”‚     β”œβ”€β”€ isarray@0.0.1 
β”‚   β”‚     └── string_decoder@0.10.31 
β”‚   └─┬ readable-stream@1.0.34 
β”‚     β”œβ”€β”€ isarray@0.0.1 
β”‚     └── string_decoder@0.10.31 
β”œβ”€β”¬ html-webpack-plugin@2.30.1 
β”‚ β”œβ”€β”€ bluebird@3.5.1 
β”‚ β”œβ”€β”¬ html-minifier@3.5.7 
β”‚ β”‚ β”œβ”€β”¬ camel-case@3.0.0 
β”‚ β”‚ β”‚ β”œβ”€β”¬ no-case@2.3.2 
β”‚ β”‚ β”‚ β”‚ └── lower-case@1.1.4 
β”‚ β”‚ β”‚ └── upper-case@1.1.3 
β”‚ β”‚ β”œβ”€β”¬ clean-css@4.1.9 
β”‚ β”‚ β”‚ └── source-map@0.5.7 
β”‚ β”‚ β”œβ”€β”€ he@1.1.1 
β”‚ β”‚ β”œβ”€β”¬ ncname@1.0.0 
β”‚ β”‚ β”‚ └── xml-char-classes@1.0.0 
β”‚ β”‚ β”œβ”€β”€ param-case@2.1.1 
β”‚ β”‚ β”œβ”€β”€ relateurl@0.2.7 
β”‚ β”‚ └── uglify-js@3.2.0 
β”‚ β”œβ”€β”€ loader-utils@0.2.17 
β”‚ β”œβ”€β”¬ pretty-error@2.1.1 
β”‚ β”‚ β”œβ”€β”¬ renderkid@2.0.1 
β”‚ β”‚ β”‚ β”œβ”€β”¬ css-select@1.2.0 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ boolbase@1.0.0 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ css-what@2.1.0 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ domutils@1.5.1 
β”‚ β”‚ β”‚ β”‚ β”‚ └─┬ dom-serializer@0.1.0 
β”‚ β”‚ β”‚ β”‚ β”‚   β”œβ”€β”€ domelementtype@1.1.3 
β”‚ β”‚ β”‚ β”‚ β”‚   └── entities@1.1.1 
β”‚ β”‚ β”‚ β”‚ └── nth-check@1.0.1 
β”‚ β”‚ β”‚ β”œβ”€β”¬ dom-converter@0.1.4 
β”‚ β”‚ β”‚ β”‚ └── utila@0.3.3 
β”‚ β”‚ β”‚ β”œβ”€β”¬ htmlparser2@3.3.0 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ domelementtype@1.3.0 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ domhandler@2.1.0 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ domutils@1.1.6 
β”‚ β”‚ β”‚ β”‚ └─┬ readable-stream@1.0.34 
β”‚ β”‚ β”‚ β”‚   β”œβ”€β”€ isarray@0.0.1 
β”‚ β”‚ β”‚ β”‚   └── string_decoder@0.10.31 
β”‚ β”‚ β”‚ └── utila@0.3.3 
β”‚ β”‚ └── utila@0.4.0 
β”‚ └── toposort@1.0.6 
β”œβ”€β”¬ inuit-page@0.2.1 
β”‚ β”œβ”€β”€ inuit-defaults@0.2.3 
β”‚ └── inuit-mixins@0.2.3 
β”œβ”€β”€ inuit-reset@0.1.1 
β”œβ”€β”¬ jest@20.0.4 
β”‚ └─┬ jest-cli@20.0.4 
β”‚   β”œβ”€β”€ ansi-escapes@1.4.0 
β”‚   β”œβ”€β”€ callsites@2.0.0 
β”‚   β”œβ”€β”¬ chalk@1.1.3 
β”‚   β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚   β”‚ └── supports-color@2.0.0 
β”‚   β”œβ”€β”¬ is-ci@1.0.10 
β”‚   β”‚ └── ci-info@1.1.2 
β”‚   β”œβ”€β”¬ istanbul-api@1.2.1 
β”‚   β”‚ β”œβ”€β”€ fileset@2.0.3 
β”‚   β”‚ β”œβ”€β”¬ istanbul-lib-hook@1.1.0 
β”‚   β”‚ β”‚ └─┬ append-transform@0.4.0 
β”‚   β”‚ β”‚   └── default-require-extensions@1.0.0 
β”‚   β”‚ β”œβ”€β”¬ istanbul-lib-report@1.1.2 
β”‚   β”‚ β”‚ └─┬ supports-color@3.2.3 
β”‚   β”‚ β”‚   └── has-flag@1.0.0 
β”‚   β”‚ └─┬ istanbul-reports@1.1.3 
β”‚   β”‚   └─┬ handlebars@4.0.11 
β”‚   β”‚     β”œβ”€β”€ async@1.5.2 
β”‚   β”‚     β”œβ”€β”€ optimist@0.6.1 
β”‚   β”‚     β”œβ”€β”€ source-map@0.4.4 
β”‚   β”‚     └─┬ uglify-js@2.8.29 
β”‚   β”‚       β”œβ”€β”€ source-map@0.5.7 
β”‚   β”‚       └─┬ yargs@3.10.0 
β”‚   β”‚         β”œβ”€β”€ camelcase@1.2.1 
β”‚   β”‚         └── cliui@2.1.0 
β”‚   β”œβ”€β”€ istanbul-lib-coverage@1.1.1 
β”‚   β”œβ”€β”¬ istanbul-lib-source-maps@1.2.2 
β”‚   β”‚ β”œβ”€β”€ debug@3.1.0 
β”‚   β”‚ └── source-map@0.5.7 
β”‚   β”œβ”€β”€ jest-changed-files@20.0.3 
β”‚   β”œβ”€β”¬ jest-config@20.0.4 
β”‚   β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚   β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚   β”‚ β”‚ └── supports-color@2.0.0 
β”‚   β”‚ β”œβ”€β”€ jest-environment-node@20.0.3 
β”‚   β”‚ β”œβ”€β”¬ jest-matcher-utils@20.0.3 
β”‚   β”‚ β”‚ └─┬ chalk@1.1.3 
β”‚   β”‚ β”‚   β”œβ”€β”€ ansi-styles@2.2.1 
β”‚   β”‚ β”‚   └── supports-color@2.0.0 
β”‚   β”‚ β”œβ”€β”¬ jest-resolve@20.0.4 
β”‚   β”‚ β”‚ └─┬ browser-resolve@1.11.2 
β”‚   β”‚ β”‚   └── resolve@1.1.7 
β”‚   β”‚ β”œβ”€β”¬ jest-validate@20.0.3 
β”‚   β”‚ β”‚ └─┬ chalk@1.1.3 
β”‚   β”‚ β”‚   β”œβ”€β”€ ansi-styles@2.2.1 
β”‚   β”‚ β”‚   └── supports-color@2.0.0 
β”‚   β”‚ └── pretty-format@20.0.3 
β”‚   β”œβ”€β”€ jest-docblock@20.0.3 
β”‚   β”œβ”€β”¬ jest-environment-jsdom@20.0.3 
β”‚   β”‚ β”œβ”€β”€ jest-mock@20.0.3 
β”‚   β”‚ └─┬ jsdom@9.12.0 
β”‚   β”‚   β”œβ”€β”€ abab@1.0.4 
β”‚   β”‚   β”œβ”€β”€ acorn@4.0.13 
β”‚   β”‚   β”œβ”€β”€ array-equal@1.0.0 
β”‚   β”‚   β”œβ”€β”€ content-type-parser@1.0.2 
β”‚   β”‚   β”œβ”€β”€ cssom@0.3.2 
β”‚   β”‚   β”œβ”€β”€ cssstyle@0.2.37 
β”‚   β”‚   β”œβ”€β”¬ escodegen@1.9.0 
β”‚   β”‚   β”‚ β”œβ”€β”€ esprima@3.1.3 
β”‚   β”‚   β”‚ └── source-map@0.5.7 
β”‚   β”‚   β”œβ”€β”€ html-encoding-sniffer@1.0.2 
β”‚   β”‚   β”œβ”€β”€ nwmatcher@1.4.3 
β”‚   β”‚   β”œβ”€β”€ parse5@1.5.1 
β”‚   β”‚   β”œβ”€β”€ symbol-tree@3.2.2 
β”‚   β”‚   β”œβ”€β”€ webidl-conversions@4.0.2 
β”‚   β”‚   β”œβ”€β”€ whatwg-encoding@1.0.3 
β”‚   β”‚   β”œβ”€β”¬ whatwg-url@4.8.0 
β”‚   β”‚   β”‚ β”œβ”€β”€ tr46@0.0.3 
β”‚   β”‚   β”‚ └── webidl-conversions@3.0.1 
β”‚   β”‚   └── xml-name-validator@2.0.1 
β”‚   β”œβ”€β”¬ jest-haste-map@20.0.5 
β”‚   β”‚ β”œβ”€β”¬ fb-watchman@2.0.0 
β”‚   β”‚ β”‚ └─┬ bser@2.0.0 
β”‚   β”‚ β”‚   └── node-int64@0.4.0 
β”‚   β”‚ └─┬ sane@1.6.0 
β”‚   β”‚   β”œβ”€β”¬ exec-sh@0.2.1 
β”‚   β”‚   β”‚ └── merge@1.2.0 
β”‚   β”‚   β”œβ”€β”¬ fb-watchman@1.9.2 
β”‚   β”‚   β”‚ └── bser@1.0.2 
β”‚   β”‚   β”œβ”€β”€ minimist@1.2.0 
β”‚   β”‚   β”œβ”€β”¬ walker@1.0.7 
β”‚   β”‚   β”‚ └─┬ makeerror@1.0.11 
β”‚   β”‚   β”‚   └── tmpl@1.0.4 
β”‚   β”‚   └── watch@0.10.0 
β”‚   β”œβ”€β”¬ jest-jasmine2@20.0.4 
β”‚   β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚   β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚   β”‚ β”‚ └── supports-color@2.0.0 
β”‚   β”‚ β”œβ”€β”¬ jest-diff@20.0.3 
β”‚   β”‚ β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚   β”‚ β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚   β”‚ β”‚ β”‚ └── supports-color@2.0.0 
β”‚   β”‚ β”‚ └── diff@3.4.0 
β”‚   β”‚ └── jest-matchers@20.0.3 
β”‚   β”œβ”€β”¬ jest-message-util@20.0.3 
β”‚   β”‚ └─┬ chalk@1.1.3 
β”‚   β”‚   β”œβ”€β”€ ansi-styles@2.2.1 
β”‚   β”‚   └── supports-color@2.0.0 
β”‚   β”œβ”€β”€ jest-regex-util@20.0.3 
β”‚   β”œβ”€β”€ jest-resolve-dependencies@20.0.3 
β”‚   β”œβ”€β”¬ jest-runtime@20.0.4 
β”‚   β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚   β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚   β”‚ β”‚ └── supports-color@2.0.0 
β”‚   β”‚ └── strip-bom@3.0.0 
β”‚   β”œβ”€β”¬ jest-snapshot@20.0.3 
β”‚   β”‚ └─┬ chalk@1.1.3 
β”‚   β”‚   β”œβ”€β”€ ansi-styles@2.2.1 
β”‚   β”‚   └── supports-color@2.0.0 
β”‚   β”œβ”€β”¬ jest-util@20.0.3 
β”‚   β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚   β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚   β”‚ β”‚ └── supports-color@2.0.0 
β”‚   β”‚ └── leven@2.1.0 
β”‚   β”œβ”€β”¬ micromatch@2.3.11 
β”‚   β”‚ β”œβ”€β”¬ arr-diff@2.0.0 
β”‚   β”‚ β”‚ └── arr-flatten@1.1.0 
β”‚   β”‚ β”œβ”€β”€ array-unique@0.2.1 
β”‚   β”‚ β”œβ”€β”¬ braces@1.8.5 
β”‚   β”‚ β”‚ β”œβ”€β”¬ expand-range@1.8.2 
β”‚   β”‚ β”‚ β”‚ └─┬ fill-range@2.2.3 
β”‚   β”‚ β”‚ β”‚   β”œβ”€β”€ is-number@2.1.0 
β”‚   β”‚ β”‚ β”‚   β”œβ”€β”€ isobject@2.1.0 
β”‚   β”‚ β”‚ β”‚   β”œβ”€β”¬ randomatic@1.1.7 
β”‚   β”‚ β”‚ β”‚   β”‚ β”œβ”€β”¬ is-number@3.0.0 
β”‚   β”‚ β”‚ β”‚   β”‚ β”‚ └── kind-of@3.2.2 
β”‚   β”‚ β”‚ β”‚   β”‚ └── kind-of@4.0.0 
β”‚   β”‚ β”‚ β”‚   └── repeat-string@1.6.1 
β”‚   β”‚ β”‚ β”œβ”€β”€ preserve@0.2.0 
β”‚   β”‚ β”‚ └── repeat-element@1.1.2 
β”‚   β”‚ β”œβ”€β”¬ expand-brackets@0.1.5 
β”‚   β”‚ β”‚ └── is-posix-bracket@0.1.1 
β”‚   β”‚ β”œβ”€β”€ extglob@0.3.2 
β”‚   β”‚ β”œβ”€β”€ filename-regex@2.0.1 
β”‚   β”‚ β”œβ”€β”€ is-extglob@1.0.0 
β”‚   β”‚ β”œβ”€β”¬ normalize-path@2.1.1 
β”‚   β”‚ β”‚ └── remove-trailing-separator@1.1.0 
β”‚   β”‚ β”œβ”€β”¬ object.omit@2.0.1 
β”‚   β”‚ β”‚ └── for-own@0.1.5 
β”‚   β”‚ β”œβ”€β”¬ parse-glob@3.0.4 
β”‚   β”‚ β”‚ β”œβ”€β”€ glob-base@0.3.0 
β”‚   β”‚ β”‚ └── is-dotfile@1.0.3 
β”‚   β”‚ └─┬ regex-cache@0.4.4 
β”‚   β”‚   └─┬ is-equal-shallow@0.1.3 
β”‚   β”‚     └── is-primitive@2.0.0 
β”‚   β”œβ”€β”¬ node-notifier@5.1.2 
β”‚   β”‚ β”œβ”€β”€ growly@1.3.0 
β”‚   β”‚ └── shellwords@0.1.1 
β”‚   β”œβ”€β”€ pify@2.3.0 
β”‚   β”œβ”€β”€ string-length@1.0.1 
β”‚   β”œβ”€β”€ throat@3.2.0 
β”‚   β”œβ”€β”¬ which@1.3.0 
β”‚   β”‚ └── isexe@2.0.0 
β”‚   β”œβ”€β”€ worker-farm@1.5.2 
β”‚   └─┬ yargs@7.1.0 
β”‚     β”œβ”€β”€ camelcase@3.0.0 
β”‚     └─┬ yargs-parser@5.0.0 
β”‚       └── camelcase@3.0.0 
β”œβ”€β”¬ jsonwebtoken@7.4.3 
β”‚ β”œβ”€β”¬ joi@6.10.1 
β”‚ β”‚ β”œβ”€β”€ hoek@2.16.3 
β”‚ β”‚ β”œβ”€β”€ isemail@1.2.0 
β”‚ β”‚ └─┬ topo@1.1.0 
β”‚ β”‚   └── hoek@2.16.3 
β”‚ β”œβ”€β”¬ jws@3.1.4 
β”‚ β”‚ β”œβ”€β”€ base64url@2.0.0 
β”‚ β”‚ └─┬ jwa@1.1.5 
β”‚ β”‚   β”œβ”€β”€ buffer-equal-constant-time@1.0.1 
β”‚ β”‚   └── ecdsa-sig-formatter@1.0.9 
β”‚ β”œβ”€β”€ lodash.once@4.1.1 
β”‚ └── xtend@4.0.1 
β”œβ”€β”¬ jsx-loader@0.13.2 
β”‚ β”œβ”€β”¬ jstransform@11.0.3 
β”‚ β”‚ β”œβ”€β”€ base62@1.2.1 
β”‚ β”‚ β”œβ”€β”¬ commoner@0.10.8 
β”‚ β”‚ β”‚ β”œβ”€β”€ detective@4.6.0 
β”‚ β”‚ β”‚ β”œβ”€β”€ glob@5.0.15 
β”‚ β”‚ β”‚ β”œβ”€β”€ q@1.5.1 
β”‚ β”‚ β”‚ └─┬ recast@0.11.23 
β”‚ β”‚ β”‚   β”œβ”€β”€ ast-types@0.9.6 
β”‚ β”‚ β”‚   β”œβ”€β”€ esprima@3.1.3 
β”‚ β”‚ β”‚   └── source-map@0.5.7 
β”‚ β”‚ β”œβ”€β”€ esprima-fb@15001.1.0-dev-harmony-fb 
β”‚ β”‚ β”œβ”€β”€ object-assign@2.1.1 
β”‚ β”‚ └─┬ source-map@0.4.4 
β”‚ β”‚   └── amdefine@1.0.1 
β”‚ └── loader-utils@0.2.17 
β”œβ”€β”€ lodash@4.17.4 
β”œβ”€β”¬ mkdirp@0.5.1 
β”‚ └── minimist@0.0.8 
β”œβ”€β”€ moment@2.19.2 
β”œβ”€β”¬ morgan@1.9.0 
β”‚ └── basic-auth@2.0.0 
β”œβ”€β”¬ multer@1.3.0 
β”‚ β”œβ”€β”€ append-field@0.1.0 
β”‚ β”œβ”€β”¬ busboy@0.2.14 
β”‚ β”‚ β”œβ”€β”¬ dicer@0.2.5 
β”‚ β”‚ β”‚ β”œβ”€β”¬ readable-stream@1.1.14 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ isarray@0.0.1 
β”‚ β”‚ β”‚ β”‚ └── string_decoder@0.10.31 
β”‚ β”‚ β”‚ └── streamsearch@0.1.2 
β”‚ β”‚ └─┬ readable-stream@1.1.14 
β”‚ β”‚   β”œβ”€β”€ isarray@0.0.1 
β”‚ β”‚   └── string_decoder@0.10.31 
β”‚ └── object-assign@3.0.0 
β”œβ”€β”¬ mv@2.1.1 
β”‚ β”œβ”€β”€ ncp@2.0.0 
β”‚ └─┬ rimraf@2.4.5 
β”‚   └── glob@6.0.4 
β”œβ”€β”¬ nedb@1.8.0 
β”‚ β”œβ”€β”€ async@0.2.10 
β”‚ β”œβ”€β”€ binary-search-tree@0.2.5 
β”‚ β”œβ”€β”¬ localforage@1.5.3 
β”‚ β”‚ └─┬ lie@3.0.2 
β”‚ β”‚   β”œβ”€β”¬ es3ify@0.1.4 
β”‚ β”‚   β”‚ β”œβ”€β”€ esprima-fb@3001.1.0-dev-harmony-fb 
β”‚ β”‚   β”‚ └─┬ jstransform@3.0.0 
β”‚ β”‚   β”‚   β”œβ”€β”€ base62@0.1.1 
β”‚ β”‚   β”‚   └── source-map@0.1.31 
β”‚ β”‚   β”œβ”€β”€ immediate@3.0.6 
β”‚ β”‚   β”œβ”€β”¬ inline-process-browser@1.0.0 
β”‚ β”‚   β”‚ β”œβ”€β”¬ falafel@1.2.0 
β”‚ β”‚   β”‚ β”‚ β”œβ”€β”€ acorn@1.2.2 
β”‚ β”‚   β”‚ β”‚ └── isarray@0.0.1 
β”‚ β”‚   β”‚ └─┬ through2@0.6.5 
β”‚ β”‚   β”‚   └─┬ readable-stream@1.0.34 
β”‚ β”‚   β”‚     β”œβ”€β”€ isarray@0.0.1 
β”‚ β”‚   β”‚     └── string_decoder@0.10.31 
β”‚ β”‚   └─┬ unreachable-branch-transform@0.3.0 
β”‚ β”‚     β”œβ”€β”€ esmangle-evaluator@1.0.1 
β”‚ β”‚     └─┬ recast@0.10.43 
β”‚ β”‚       β”œβ”€β”€ ast-types@0.8.15 
β”‚ β”‚       β”œβ”€β”€ esprima-fb@15001.1001.0-dev-harmony-fb 
β”‚ β”‚       └── source-map@0.5.7 
β”‚ └── underscore@1.4.4 
β”œβ”€β”¬ node-sass@4.7.2 
β”‚ β”œβ”€β”€ async-foreach@0.1.3 
β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ └── supports-color@2.0.0 
β”‚ β”œβ”€β”¬ cross-spawn@3.0.1 
β”‚ β”‚ └─┬ lru-cache@4.1.1 
β”‚ β”‚   β”œβ”€β”€ pseudomap@1.0.2 
β”‚ β”‚   └── yallist@2.1.2 
β”‚ β”œβ”€β”¬ gaze@1.1.2 
β”‚ β”‚ └── globule@1.2.0 
β”‚ β”œβ”€β”€ get-stdin@4.0.1 
β”‚ β”œβ”€β”€ in-publish@2.0.0 
β”‚ β”œβ”€β”€ lodash.assign@4.2.0 
β”‚ β”œβ”€β”€ lodash.clonedeep@4.5.0 
β”‚ β”œβ”€β”€ lodash.mergewith@4.6.0 
β”‚ β”œβ”€β”¬ 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 
β”‚ β”‚ β”‚ └── signal-exit@3.0.2 
β”‚ β”‚ β”œβ”€β”€ map-obj@1.0.1 
β”‚ β”‚ β”œβ”€β”€ minimist@1.2.0 
β”‚ β”‚ β”œβ”€β”¬ normalize-package-data@2.4.0 
β”‚ β”‚ β”‚ β”œβ”€β”€ hosted-git-info@2.5.0 
β”‚ β”‚ β”‚ β”œβ”€β”€ is-builtin-module@1.0.0 
β”‚ β”‚ β”‚ └─┬ validate-npm-package-license@3.0.1 
β”‚ β”‚ β”‚   β”œβ”€β”¬ spdx-correct@1.0.2 
β”‚ β”‚ β”‚   β”‚ └── spdx-license-ids@1.2.2 
β”‚ β”‚ β”‚   └── spdx-expression-parse@1.0.4 
β”‚ β”‚ β”œβ”€β”¬ 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 
β”‚ β”‚ β”‚   β”‚ β”œβ”€β”€ pify@2.3.0 
β”‚ β”‚ β”‚   β”‚ └─┬ strip-bom@2.0.0 
β”‚ β”‚ β”‚   β”‚   └── is-utf8@0.2.1 
β”‚ β”‚ β”‚   └─┬ path-type@1.1.0 
β”‚ β”‚ β”‚     └── pify@2.3.0 
β”‚ β”‚ β”œβ”€β”¬ redent@1.0.0 
β”‚ β”‚ β”‚ β”œβ”€β”€ indent-string@2.1.0 
β”‚ β”‚ β”‚ └── strip-indent@1.0.1 
β”‚ β”‚ └── trim-newlines@1.0.0 
β”‚ β”œβ”€β”€ nan@2.8.0 
β”‚ β”œβ”€β”¬ node-gyp@3.6.2 
β”‚ β”‚ β”œβ”€β”€ fstream@1.0.11 
β”‚ β”‚ β”œβ”€β”€ nopt@3.0.6 
β”‚ β”‚ β”œβ”€β”€ osenv@0.1.4 
β”‚ β”‚ └── semver@5.3.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 
β”‚ β”‚ β”‚ β”œβ”€β”€ aproba@1.2.0 
β”‚ β”‚ β”‚ β”œβ”€β”€ has-unicode@2.0.1 
β”‚ β”‚ β”‚ └── wide-align@1.1.2 
β”‚ β”‚ └── set-blocking@2.0.0 
β”‚ β”œβ”€β”¬ request@2.79.0 
β”‚ β”‚ β”œβ”€β”€ aws-sign2@0.6.0 
β”‚ β”‚ β”œβ”€β”€ aws4@1.6.0 
β”‚ β”‚ β”œβ”€β”€ caseless@0.11.0 
β”‚ β”‚ β”œβ”€β”¬ combined-stream@1.0.5 
β”‚ β”‚ β”‚ └── delayed-stream@1.0.0 
β”‚ β”‚ β”œβ”€β”€ extend@3.0.1 
β”‚ β”‚ β”œβ”€β”€ forever-agent@0.6.1 
β”‚ β”‚ β”œβ”€β”¬ form-data@2.1.4 
β”‚ β”‚ β”‚ └── asynckit@0.4.0 
β”‚ β”‚ β”œβ”€β”¬ har-validator@2.0.6 
β”‚ β”‚ β”‚ └─┬ pinkie-promise@2.0.1 
β”‚ β”‚ β”‚   └── pinkie@2.0.4 
β”‚ β”‚ β”œβ”€β”¬ hawk@3.1.3 
β”‚ β”‚ β”‚ β”œβ”€β”€ boom@2.10.1 
β”‚ β”‚ β”‚ β”œβ”€β”€ cryptiles@2.0.5 
β”‚ β”‚ β”‚ β”œβ”€β”€ hoek@2.16.3 
β”‚ β”‚ β”‚ └── sntp@1.0.9 
β”‚ β”‚ β”œβ”€β”¬ http-signature@1.1.1 
β”‚ β”‚ β”‚ β”œβ”€β”€ assert-plus@0.2.0 
β”‚ β”‚ β”‚ β”œβ”€β”¬ jsprim@1.4.1 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ extsprintf@1.3.0 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ json-schema@0.2.3 
β”‚ β”‚ β”‚ β”‚ └── verror@1.10.0 
β”‚ β”‚ β”‚ └─┬ sshpk@1.13.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 
β”‚ β”‚ β”œβ”€β”€ oauth-sign@0.8.2 
β”‚ β”‚ β”œβ”€β”€ qs@6.3.2 
β”‚ β”‚ β”œβ”€β”€ stringstream@0.0.5 
β”‚ β”‚ β”œβ”€β”€ tough-cookie@2.3.3 
β”‚ β”‚ β”œβ”€β”€ tunnel-agent@0.4.3 
β”‚ β”‚ └── uuid@3.1.0 
β”‚ β”œβ”€β”¬ sass-graph@2.2.4 
β”‚ β”‚ └─┬ scss-tokenizer@0.2.3 
β”‚ β”‚   └── source-map@0.4.4 
β”‚ β”œβ”€β”€ stdout-stream@1.4.0 
β”‚ └─┬ true-case-path@1.0.2 
β”‚   └── glob@6.0.4 
β”œβ”€β”¬ nodemon@1.12.1 
β”‚ β”œβ”€β”¬ chokidar@1.7.0 
β”‚ β”‚ β”œβ”€β”€ anymatch@1.3.2 
β”‚ β”‚ β”œβ”€β”€ async-each@1.0.1 
β”‚ β”‚ β”œβ”€β”€ glob-parent@2.0.0 
β”‚ β”‚ β”œβ”€β”¬ is-binary-path@1.0.1 
β”‚ β”‚ β”‚ └── binary-extensions@1.11.0 
β”‚ β”‚ β”œβ”€β”€ is-glob@2.0.1 
β”‚ β”‚ └─┬ readdirp@2.1.0 
β”‚ β”‚   └── set-immediate-shim@1.0.1 
β”‚ β”œβ”€β”€ es6-promise@3.3.1 
β”‚ β”œβ”€β”€ ignore-by-default@1.0.1 
β”‚ β”œβ”€β”¬ lodash.defaults@3.1.2 
β”‚ β”‚ β”œβ”€β”¬ lodash.assign@3.2.0 
β”‚ β”‚ β”‚ β”œβ”€β”¬ lodash._baseassign@3.2.0 
β”‚ β”‚ β”‚ β”‚ └── lodash._basecopy@3.0.1 
β”‚ β”‚ β”‚ β”œβ”€β”¬ lodash._createassigner@3.1.1 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ lodash._bindcallback@3.0.1 
β”‚ β”‚ β”‚ β”‚ └── lodash._isiterateecall@3.0.9 
β”‚ β”‚ β”‚ └─┬ lodash.keys@3.1.2 
β”‚ β”‚ β”‚   β”œβ”€β”€ lodash._getnative@3.9.1 
β”‚ β”‚ β”‚   β”œβ”€β”€ lodash.isarguments@3.1.0 
β”‚ β”‚ β”‚   └── lodash.isarray@3.0.4 
β”‚ β”‚ └── lodash.restparam@3.6.1 
β”‚ β”œβ”€β”¬ ps-tree@1.1.0 
β”‚ β”‚ └─┬ event-stream@3.3.4 
β”‚ β”‚   β”œβ”€β”€ from@0.1.7 
β”‚ β”‚   β”œβ”€β”€ map-stream@0.1.0 
β”‚ β”‚   β”œβ”€β”€ pause-stream@0.0.11 
β”‚ β”‚   β”œβ”€β”€ split@0.3.3 
β”‚ β”‚   └── stream-combiner@0.0.4 
β”‚ β”œβ”€β”¬ touch@3.1.0 
β”‚ β”‚ └── nopt@1.0.10 
β”‚ β”œβ”€β”€ undefsafe@0.0.3 
β”‚ └─┬ update-notifier@2.3.0 
β”‚   β”œβ”€β”¬ boxen@1.2.2 
β”‚   β”‚ β”œβ”€β”¬ 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 
β”‚   β”‚ β”œβ”€β”€ 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@1.0.0 
β”‚   β”œβ”€β”¬ configstore@3.1.1 
β”‚   β”‚ β”œβ”€β”¬ dot-prop@4.2.0 
β”‚   β”‚ β”‚ └── is-obj@1.0.1 
β”‚   β”‚ β”œβ”€β”¬ 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.0 
β”‚   β”œβ”€β”€ 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.0 
β”‚   β”‚   β”‚ β”œβ”€β”€ timed-out@4.0.1 
β”‚   β”‚   β”‚ β”œβ”€β”€ unzip-response@2.0.1 
β”‚   β”‚   β”‚ └── url-parse-lax@1.0.0 
β”‚   β”‚   β”œβ”€β”€ registry-auth-token@3.3.1 
β”‚   β”‚   └── registry-url@3.1.0 
β”‚   β”œβ”€β”€ semver-diff@2.1.0 
β”‚   └── xdg-basedir@3.0.0 
β”œβ”€β”€ object-assign@4.1.1 
β”œβ”€β”€ ospath@1.2.2 
β”œβ”€β”¬ passport@0.3.2 
β”‚ β”œβ”€β”€ passport-strategy@1.0.0 
β”‚ └── pause@0.0.1 
β”œβ”€β”€ passport-jwt@2.2.1 
β”œβ”€β”€ postcss-flexbugs-fixes@3.2.0 
β”œβ”€β”¬ postcss-loader@2.0.6 
β”‚ └─┬ postcss-load-config@1.2.0 
β”‚   β”œβ”€β”¬ cosmiconfig@2.2.2 
β”‚   β”‚ β”œβ”€β”€ is-directory@0.3.1 
β”‚   β”‚ β”œβ”€β”€ minimist@1.2.0 
β”‚   β”‚ β”œβ”€β”¬ parse-json@2.2.0 
β”‚   β”‚ β”‚ └─┬ error-ex@1.3.1 
β”‚   β”‚ β”‚   └── is-arrayish@0.2.1 
β”‚   β”‚ └── require-from-string@1.2.1 
β”‚   β”œβ”€β”€ postcss-load-options@1.2.0 
β”‚   └── postcss-load-plugins@2.3.0 
β”œβ”€β”¬ promise@8.0.1 
β”‚ └── asap@2.0.6 
β”œβ”€β”¬ pug@2.0.0-rc.4 
β”‚ β”œβ”€β”¬ pug-code-gen@2.0.0 
β”‚ β”‚ β”œβ”€β”¬ constantinople@3.1.0 
β”‚ β”‚ β”‚ β”œβ”€β”€ acorn@3.3.0 
β”‚ β”‚ β”‚ └─┬ is-expression@2.1.0 
β”‚ β”‚ β”‚   └── acorn@3.3.0 
β”‚ β”‚ β”œβ”€β”€ doctypes@1.1.0 
β”‚ β”‚ β”œβ”€β”€ js-stringify@1.0.2 
β”‚ β”‚ β”œβ”€β”€ pug-attrs@2.0.2 
β”‚ β”‚ β”œβ”€β”€ pug-error@1.3.2 
β”‚ β”‚ β”œβ”€β”€ void-elements@2.0.1 
β”‚ β”‚ └─┬ with@5.1.1 
β”‚ β”‚   β”œβ”€β”€ acorn@3.3.0 
β”‚ β”‚   └─┬ acorn-globals@3.1.0 
β”‚ β”‚     └── acorn@4.0.13 
β”‚ β”œβ”€β”¬ pug-filters@2.1.5 
β”‚ β”‚ β”œβ”€β”¬ clean-css@3.4.28 
β”‚ β”‚ β”‚ β”œβ”€β”¬ commander@2.8.1 
β”‚ β”‚ β”‚ β”‚ └── graceful-readlink@1.0.1 
β”‚ β”‚ β”‚ └── source-map@0.4.4 
β”‚ β”‚ β”œβ”€β”¬ jstransformer@1.0.0 
β”‚ β”‚ β”‚ β”œβ”€β”€ is-promise@2.1.0 
β”‚ β”‚ β”‚ └── promise@7.3.1 
β”‚ β”‚ β”œβ”€β”€ pug-walk@1.1.5 
β”‚ β”‚ └─┬ uglify-js@2.8.29 
β”‚ β”‚   β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚   β”œβ”€β”€ 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 
β”‚ β”‚     β”‚ β”‚ β”‚ └── longest@1.0.1 
β”‚ β”‚     β”‚ β”‚ └── lazy-cache@1.0.4 
β”‚ β”‚     β”‚ β”œβ”€β”€ right-align@0.1.3 
β”‚ β”‚     β”‚ └── wordwrap@0.0.2 
β”‚ β”‚     └── window-size@0.1.0 
β”‚ β”œβ”€β”¬ pug-lexer@3.1.0 
β”‚ β”‚ β”œβ”€β”€ character-parser@2.2.0 
β”‚ β”‚ └─┬ is-expression@3.0.0 
β”‚ β”‚   └── acorn@4.0.13 
β”‚ β”œβ”€β”€ pug-linker@3.0.3 
β”‚ β”œβ”€β”€ pug-load@2.0.9 
β”‚ β”œβ”€β”¬ pug-parser@4.0.0 
β”‚ β”‚ └── token-stream@0.0.1 
β”‚ β”œβ”€β”€ pug-runtime@2.0.3 
β”‚ └── pug-strip-comments@1.0.2 
β”œβ”€β”¬ react@15.6.2 
β”‚ β”œβ”€β”€ create-react-class@15.6.2 
β”‚ └── loose-envify@1.3.1 
β”œβ”€β”€ react-addons-create-fragment@15.6.2 
β”œβ”€β”¬ react-addons-css-transition-group@15.6.2 
β”‚ └── react-transition-group@1.2.1 
β”œβ”€β”¬ react-custom-scrollbars@4.2.1 
β”‚ β”œβ”€β”¬ dom-css@2.1.0 
β”‚ β”‚ β”œβ”€β”€ add-px-to-style@1.0.0 
β”‚ β”‚ β”œβ”€β”€ prefix-style@2.0.1 
β”‚ β”‚ └─┬ to-camel-case@1.0.0 
β”‚ β”‚   └─┬ to-space-case@1.0.0 
β”‚ β”‚     └── to-no-case@1.0.2 
β”‚ └─┬ raf@3.4.0 
β”‚   └── performance-now@2.1.0 
β”œβ”€β”¬ react-dev-utils@3.1.1 
β”‚ β”œβ”€β”€ address@1.0.2 
β”‚ β”œβ”€β”€ anser@1.4.1 
β”‚ β”œβ”€β”€ babel-code-frame@6.22.0 
β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ └── supports-color@2.0.0 
β”‚ β”œβ”€β”¬ cross-spawn@5.1.0 
β”‚ β”‚ └─┬ shebang-command@1.2.0 
β”‚ β”‚   └── shebang-regex@1.0.0 
β”‚ β”œβ”€β”€ detect-port-alt@1.1.3 
β”‚ β”œβ”€β”€ filesize@3.5.10 
β”‚ β”œβ”€β”¬ global-modules@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ global-prefix@1.0.2 
β”‚ β”‚ β”‚ β”œβ”€β”€ expand-tilde@2.0.2 
β”‚ β”‚ β”‚ └─┬ homedir-polyfill@1.0.1 
β”‚ β”‚ β”‚   └── parse-passwd@1.0.0 
β”‚ β”‚ β”œβ”€β”€ is-windows@1.0.1 
β”‚ β”‚ └── resolve-dir@1.0.1 
β”‚ β”œβ”€β”¬ gzip-size@3.0.0 
β”‚ β”‚ └── duplexer@0.1.1 
β”‚ β”œβ”€β”€ html-entities@1.2.1 
β”‚ β”œβ”€β”¬ inquirer@3.2.1 
β”‚ β”‚ β”œβ”€β”€ ansi-escapes@2.0.0 
β”‚ β”‚ β”œβ”€β”¬ cli-cursor@2.1.0 
β”‚ β”‚ β”‚ └─┬ restore-cursor@2.0.0 
β”‚ β”‚ β”‚   └── onetime@2.0.1 
β”‚ β”‚ β”œβ”€β”¬ external-editor@2.1.0 
β”‚ β”‚ β”‚ β”œβ”€β”€ chardet@0.4.2 
β”‚ β”‚ β”‚ └── tmp@0.0.33 
β”‚ β”‚ β”œβ”€β”€ figures@2.0.0 
β”‚ β”‚ β”œβ”€β”€ mute-stream@0.0.7 
β”‚ β”‚ β”œβ”€β”€ run-async@2.3.0 
β”‚ β”‚ β”œβ”€β”€ rx-lite@4.0.8 
β”‚ β”‚ β”œβ”€β”€ rx-lite-aggregates@4.0.8 
β”‚ β”‚ β”œβ”€β”¬ string-width@2.1.1 
β”‚ β”‚ β”‚ └── is-fullwidth-code-point@2.0.0 
β”‚ β”‚ └─┬ strip-ansi@4.0.0 
β”‚ β”‚   └── ansi-regex@3.0.0 
β”‚ β”œβ”€β”€ is-root@1.0.0 
β”‚ β”œβ”€β”¬ opn@5.1.0 
β”‚ β”‚ └── is-wsl@1.1.0 
β”‚ β”œβ”€β”¬ recursive-readdir@2.2.1 
β”‚ β”‚ └── minimatch@3.0.3 
β”‚ β”œβ”€β”¬ shell-quote@1.6.1 
β”‚ β”‚ β”œβ”€β”€ array-filter@0.0.1 
β”‚ β”‚ β”œβ”€β”€ array-map@0.0.0 
β”‚ β”‚ └── array-reduce@0.0.0 
β”‚ β”œβ”€β”¬ sockjs-client@1.1.4 
β”‚ β”‚ β”œβ”€β”¬ eventsource@0.1.6 
β”‚ β”‚ β”‚ └─┬ original@1.0.0 
β”‚ β”‚ β”‚   └─┬ url-parse@1.0.5 
β”‚ β”‚ β”‚     └── querystringify@0.0.4 
β”‚ β”‚ β”œβ”€β”¬ faye-websocket@0.11.1 
β”‚ β”‚ β”‚ └─┬ websocket-driver@0.7.0 
β”‚ β”‚ β”‚   β”œβ”€β”€ http-parser-js@0.4.9 
β”‚ β”‚ β”‚   └── websocket-extensions@0.1.3 
β”‚ β”‚ β”œβ”€β”€ json3@3.3.2 
β”‚ β”‚ └─┬ url-parse@1.2.0 
β”‚ β”‚   β”œβ”€β”€ querystringify@1.0.0 
β”‚ β”‚   └── requires-port@1.0.0 
β”‚ └── strip-ansi@3.0.1 
β”œβ”€β”¬ react-dnd@2.5.4 
β”‚ β”œβ”€β”€ disposables@1.0.1 
β”‚ β”œβ”€β”¬ dnd-core@2.5.4 
β”‚ β”‚ └─┬ redux@3.7.2 
β”‚ β”‚   β”œβ”€β”€ lodash-es@4.17.4 
β”‚ β”‚   └── symbol-observable@1.0.4 
β”‚ β”œβ”€β”€ hoist-non-react-statics@2.3.1 
β”‚ └── invariant@2.2.2 
β”œβ”€β”€ react-dnd-html5-backend@2.5.4 
β”œβ”€β”¬ react-document-title@2.0.3 
β”‚ └─┬ react-side-effect@1.1.3 
β”‚   β”œβ”€β”€ exenv@1.2.2 
β”‚   └── shallowequal@1.0.2 
β”œβ”€β”€ react-dom@15.6.2 
β”œβ”€β”¬ react-dropzone@3.13.4 
β”‚ └── attr-accept@1.1.0 
β”œβ”€β”¬ react-error-overlay@1.0.10 
β”‚ β”œβ”€β”¬ babel-code-frame@6.22.0 
β”‚ β”‚ └─┬ chalk@1.1.3 
β”‚ β”‚   β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚   └── supports-color@2.0.0 
β”‚ β”œβ”€β”¬ babel-runtime@6.23.0 
β”‚ β”‚ └── regenerator-runtime@0.10.5 
β”‚ β”œβ”€β”€ settle-promise@1.0.0 
β”‚ └── source-map@0.5.6 
β”œβ”€β”¬ react-intl@2.4.0 
β”‚ β”œβ”€β”€ intl-format-cache@2.1.0 
β”‚ β”œβ”€β”¬ intl-messageformat@2.2.0 
β”‚ β”‚ └── intl-messageformat-parser@1.4.0 
β”‚ └── intl-relativeformat@2.1.0 
β”œβ”€β”¬ react-router@3.2.0 
β”‚ β”œβ”€β”¬ history@3.3.0 
β”‚ β”‚ └─┬ query-string@4.3.4 
β”‚ β”‚   └── strict-uri-encode@1.1.0 
β”‚ β”œβ”€β”€ hoist-non-react-statics@1.2.0 
β”‚ └── warning@3.0.0 
β”œβ”€β”¬ react-transition-group@2.2.1 
β”‚ β”œβ”€β”€ chain-function@1.0.0 
β”‚ └── dom-helpers@3.2.1 
β”œβ”€β”€ reset-css@2.2.1 
β”œβ”€β”€ ress@1.2.2 
β”œβ”€β”€ rimraf@2.6.2 
β”œβ”€β”€ run-series@1.1.4 
β”œβ”€β”¬ sass-loader@6.0.6 
β”‚ β”œβ”€β”¬ clone-deep@0.3.0 
β”‚ β”‚ β”œβ”€β”¬ for-own@1.0.0 
β”‚ β”‚ β”‚ └── for-in@1.0.2 
β”‚ β”‚ β”œβ”€β”¬ is-plain-object@2.0.4 
β”‚ β”‚ β”‚ └── isobject@3.0.1 
β”‚ β”‚ β”œβ”€β”€ kind-of@3.2.2 
β”‚ β”‚ └─┬ shallow-clone@0.1.2 
β”‚ β”‚   β”œβ”€β”€ is-extendable@0.1.1 
β”‚ β”‚   β”œβ”€β”€ kind-of@2.0.1 
β”‚ β”‚   β”œβ”€β”€ lazy-cache@0.2.7 
β”‚ β”‚   └─┬ mixin-object@2.0.1 
β”‚ β”‚     └── for-in@0.1.8 
β”‚ β”œβ”€β”€ lodash.tail@4.1.1 
β”‚ └── pify@3.0.0 
β”œβ”€β”¬ source-map-loader@0.2.3 
β”‚ β”œβ”€β”€ loader-utils@0.2.17 
β”‚ └── source-map@0.6.1 
β”œβ”€β”¬ spdy@3.4.7 
β”‚ β”œβ”€β”€ handle-thing@1.2.5 
β”‚ β”œβ”€β”€ http-deceiver@1.2.7 
β”‚ β”œβ”€β”€ select-hose@2.0.0 
β”‚ └─┬ spdy-transport@2.0.20 
β”‚   β”œβ”€β”€ detect-node@2.0.3 
β”‚   β”œβ”€β”€ hpack.js@2.1.6 
β”‚   β”œβ”€β”€ obuf@1.1.1 
β”‚   └─┬ wbuf@1.7.2 
β”‚     └── minimalistic-assert@1.0.0 
β”œβ”€β”€ style-loader@0.18.2 
β”œβ”€β”¬ tar-stream@1.5.5 
β”‚ β”œβ”€β”€ bl@1.2.1 
β”‚ β”œβ”€β”€ end-of-stream@1.4.0 
β”‚ └─┬ readable-stream@2.3.3 
β”‚   β”œβ”€β”€ core-util-is@1.0.2 
β”‚   β”œβ”€β”€ process-nextick-args@1.0.7 
β”‚   β”œβ”€β”€ string_decoder@1.0.3 
β”‚   └── util-deprecate@1.0.2 
β”œβ”€β”€ transform-loader@0.2.4 
β”œβ”€β”¬ url-loader@0.5.9 
β”‚ └── mime@1.3.6 
β”œβ”€β”¬ webpack@3.8.1 
β”‚ β”œβ”€β”€ acorn@5.2.1 
β”‚ β”œβ”€β”¬ acorn-dynamic-import@2.0.2 
β”‚ β”‚ └── acorn@4.0.13 
β”‚ β”œβ”€β”¬ ajv@5.5.0 
β”‚ β”‚ β”œβ”€β”€ co@4.6.0 
β”‚ β”‚ β”œβ”€β”€ fast-deep-equal@1.0.0 
β”‚ β”‚ β”œβ”€β”€ fast-json-stable-stringify@2.0.0 
β”‚ β”‚ └── json-schema-traverse@0.3.1 
β”‚ β”œβ”€β”€ ajv-keywords@2.1.1 
β”‚ β”œβ”€β”€ enhanced-resolve@3.4.1 
β”‚ β”œβ”€β”€ interpret@1.1.0 
β”‚ β”œβ”€β”€ json-loader@0.5.7 
β”‚ β”œβ”€β”€ loader-runner@2.3.0 
β”‚ β”œβ”€β”¬ memory-fs@0.4.1 
β”‚ β”‚ └─┬ errno@0.1.4 
β”‚ β”‚   └── prr@0.0.0 
β”‚ β”œβ”€β”¬ node-libs-browser@2.1.0 
β”‚ β”‚ β”œβ”€β”€ assert@1.4.1 
β”‚ β”‚ β”œβ”€β”¬ browserify-zlib@0.2.0 
β”‚ β”‚ β”‚ └── pako@1.0.6 
β”‚ β”‚ β”œβ”€β”¬ buffer@4.9.1 
β”‚ β”‚ β”‚ β”œβ”€β”€ base64-js@1.2.1 
β”‚ β”‚ β”‚ └── ieee754@1.1.8 
β”‚ β”‚ β”œβ”€β”¬ console-browserify@1.1.0 
β”‚ β”‚ β”‚ └── date-now@0.1.4 
β”‚ β”‚ β”œβ”€β”€ constants-browserify@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ crypto-browserify@3.12.0 
β”‚ β”‚ β”‚ β”œβ”€β”¬ browserify-cipher@1.0.0 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ browserify-aes@1.1.1 
β”‚ β”‚ β”‚ β”‚ β”‚ └── buffer-xor@1.0.3 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ browserify-des@1.0.0 
β”‚ β”‚ β”‚ β”‚ β”‚ └── des.js@1.0.0 
β”‚ β”‚ β”‚ β”‚ └─┬ evp_bytestokey@1.0.3 
β”‚ β”‚ β”‚ β”‚   └─┬ md5.js@1.3.4 
β”‚ β”‚ β”‚ β”‚     └── hash-base@3.0.4 
β”‚ β”‚ β”‚ β”œβ”€β”¬ 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.3 
β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ hmac-drbg@1.0.1 
β”‚ β”‚ β”‚ β”‚ β”‚ └── minimalistic-crypto-utils@1.0.1 
β”‚ β”‚ β”‚ β”‚ └─┬ parse-asn1@5.1.0 
β”‚ β”‚ β”‚ β”‚   └── asn1.js@4.9.2 
β”‚ β”‚ β”‚ β”œβ”€β”€ create-ecdh@4.0.0 
β”‚ β”‚ β”‚ β”œβ”€β”¬ create-hash@1.1.3 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ cipher-base@1.0.4 
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”¬ ripemd160@2.0.1 
β”‚ β”‚ β”‚ β”‚ β”‚ └── hash-base@2.0.2 
β”‚ β”‚ β”‚ β”‚ └── sha.js@2.4.9 
β”‚ β”‚ β”‚ β”œβ”€β”€ create-hmac@1.1.6 
β”‚ β”‚ β”‚ β”œβ”€β”¬ diffie-hellman@5.0.2 
β”‚ β”‚ β”‚ β”‚ └── miller-rabin@4.0.1 
β”‚ β”‚ β”‚ β”œβ”€β”€ pbkdf2@3.0.14 
β”‚ β”‚ β”‚ β”œβ”€β”€ public-encrypt@4.0.0 
β”‚ β”‚ β”‚ β”œβ”€β”€ randombytes@2.0.5 
β”‚ β”‚ β”‚ └── randomfill@1.0.3 
β”‚ β”‚ β”œβ”€β”€ domain-browser@1.1.7 
β”‚ β”‚ β”œβ”€β”€ 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 
β”‚ β”‚ β”œβ”€β”€ stream-browserify@2.0.1 
β”‚ β”‚ β”œβ”€β”¬ stream-http@2.7.2 
β”‚ β”‚ β”‚ β”œβ”€β”€ builtin-status-codes@3.0.0 
β”‚ β”‚ β”‚ └── to-arraybuffer@1.0.1 
β”‚ β”‚ β”œβ”€β”€ timers-browserify@2.0.4 
β”‚ β”‚ β”œβ”€β”€ tty-browserify@0.0.0 
β”‚ β”‚ β”œβ”€β”¬ url@0.11.0 
β”‚ β”‚ β”‚ β”œβ”€β”€ punycode@1.3.2 
β”‚ β”‚ β”‚ └── querystring@0.2.0 
β”‚ β”‚ β”œβ”€β”¬ util@0.10.3 
β”‚ β”‚ β”‚ └── inherits@2.0.1 
β”‚ β”‚ └─┬ vm-browserify@0.0.4 
β”‚ β”‚   └── indexof@0.0.1 
β”‚ β”œβ”€β”€ source-map@0.5.7 
β”‚ β”œβ”€β”€ tapable@0.2.8 
β”‚ β”œβ”€β”¬ uglifyjs-webpack-plugin@0.4.6 
β”‚ β”‚ β”œβ”€β”€ source-map@0.5.7 
β”‚ β”‚ └─┬ uglify-js@2.8.29 
β”‚ β”‚   └─┬ yargs@3.10.0 
β”‚ β”‚     β”œβ”€β”€ camelcase@1.2.1 
β”‚ β”‚     └── cliui@2.1.0 
β”‚ β”œβ”€β”€ watchpack@1.4.0 
β”‚ └─┬ yargs@8.0.2 
β”‚   β”œβ”€β”€ camelcase@4.1.0 
β”‚   β”œβ”€β”¬ cliui@3.2.0 
β”‚   β”‚ └── wrap-ansi@2.1.0 
β”‚   β”œβ”€β”€ get-caller-file@1.0.2 
β”‚   β”œβ”€β”¬ os-locale@2.1.0 
β”‚   β”‚ β”œβ”€β”¬ execa@0.7.0 
β”‚   β”‚ β”‚ β”œβ”€β”€ cross-spawn@5.1.0 
β”‚   β”‚ β”‚ β”œβ”€β”€ get-stream@3.0.0 
β”‚   β”‚ β”‚ β”œβ”€β”¬ npm-run-path@2.0.2 
β”‚   β”‚ β”‚ β”‚ └── path-key@2.0.1 
β”‚   β”‚ β”‚ β”œβ”€β”€ p-finally@1.0.0 
β”‚   β”‚ β”‚ └── strip-eof@1.0.0 
β”‚   β”‚ β”œβ”€β”¬ lcid@1.0.0 
β”‚   β”‚ β”‚ └── invert-kv@1.0.0 
β”‚   β”‚ └─┬ mem@1.1.0 
β”‚   β”‚   └── mimic-fn@1.1.0 
β”‚   β”œβ”€β”¬ read-pkg-up@2.0.0 
β”‚   β”‚ └─┬ read-pkg@2.0.0 
β”‚   β”‚   β”œβ”€β”¬ load-json-file@2.0.0 
β”‚   β”‚   β”‚ β”œβ”€β”€ pify@2.3.0 
β”‚   β”‚   β”‚ └── strip-bom@3.0.0 
β”‚   β”‚   └── path-type@2.0.0 
β”‚   β”œβ”€β”€ require-directory@2.1.1 
β”‚   β”œβ”€β”€ require-main-filename@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 
β”‚   β”œβ”€β”€ which-module@2.0.0 
β”‚   β”œβ”€β”€ y18n@3.2.1 
β”‚   └── yargs-parser@7.0.0 
β”œβ”€β”¬ webpack-bundle-analyzer@2.9.1 
β”‚ β”œβ”€β”¬ chalk@1.1.3 
β”‚ β”‚ β”œβ”€β”€ ansi-styles@2.2.1 
β”‚ β”‚ └── supports-color@2.0.0 
β”‚ β”œβ”€β”€ commander@2.12.2 
β”‚ β”œβ”€β”€ ejs@2.5.7 
β”‚ β”œβ”€β”€ opener@1.4.3 
β”‚ └─┬ ws@3.3.2 
β”‚   β”œβ”€β”€ async-limiter@1.0.0 
β”‚   └── ultron@1.1.1 
β”œβ”€β”¬ webpack-dev-server@2.9.5 
β”‚ β”œβ”€β”€ ansi-html@0.0.7 
β”‚ β”œβ”€β”¬ bonjour@3.5.0 
β”‚ β”‚ β”œβ”€β”€ array-flatten@2.1.1 
β”‚ β”‚ β”œβ”€β”€ dns-equal@1.0.0 
β”‚ β”‚ β”œβ”€β”¬ dns-txt@2.0.2 
β”‚ β”‚ β”‚ └── buffer-indexof@1.1.1 
β”‚ β”‚ β”œβ”€β”¬ multicast-dns@6.2.1 
β”‚ β”‚ β”‚ β”œβ”€β”€ dns-packet@1.2.2 
β”‚ β”‚ β”‚ └── thunky@0.1.0 
β”‚ β”‚ └── multicast-dns-service-types@1.1.0 
β”‚ β”œβ”€β”€ connect-history-api-fallback@1.5.0 
β”‚ β”œβ”€β”€ debug@3.1.0 
β”‚ β”œβ”€β”¬ del@3.0.0 
β”‚ β”‚ β”œβ”€β”¬ globby@6.1.0 
β”‚ β”‚ β”‚ β”œβ”€β”¬ array-union@1.0.2 
β”‚ β”‚ β”‚ β”‚ └── array-uniq@1.0.3 
β”‚ β”‚ β”‚ └── pify@2.3.0 
β”‚ β”‚ β”œβ”€β”€ is-path-cwd@1.0.0 
β”‚ β”‚ β”œβ”€β”€ is-path-in-cwd@1.0.0 
β”‚ β”‚ └── p-map@1.2.0 
β”‚ β”œβ”€β”¬ http-proxy-middleware@0.17.4 
β”‚ β”‚ β”œβ”€β”¬ http-proxy@1.16.2 
β”‚ β”‚ β”‚ └── eventemitter3@1.2.0 
β”‚ β”‚ └─┬ is-glob@3.1.0 
β”‚ β”‚   └── is-extglob@2.1.1 
β”‚ β”œβ”€β”¬ import-local@0.1.1 
β”‚ β”‚ └─┬ resolve-cwd@2.0.0 
β”‚ β”‚   └── resolve-from@3.0.0 
β”‚ β”œβ”€β”€ internal-ip@1.2.0 
β”‚ β”œβ”€β”€ ip@1.1.5 
β”‚ β”œβ”€β”€ killable@1.0.0 
β”‚ β”œβ”€β”€ loglevel@1.6.0 
β”‚ β”œβ”€β”¬ portfinder@1.0.13 
β”‚ β”‚ └── async@1.5.2 
β”‚ β”œβ”€β”¬ selfsigned@1.10.1 
β”‚ β”‚ └── node-forge@0.6.33 
β”‚ β”œβ”€β”¬ serve-index@1.9.1 
β”‚ β”‚ └── batch@0.6.1 
β”‚ β”œβ”€β”¬ sockjs@0.3.18 
β”‚ β”‚ β”œβ”€β”€ faye-websocket@0.10.0 
β”‚ β”‚ └── uuid@2.0.3 
β”‚ β”œβ”€β”¬ webpack-dev-middleware@1.12.2 
β”‚ β”‚ β”œβ”€β”€ mime@1.6.0 
β”‚ β”‚ └── time-stamp@2.0.0 
β”‚ └─┬ yargs@6.6.0 
β”‚   β”œβ”€β”€ camelcase@3.0.0 
β”‚   β”œβ”€β”€ os-locale@1.4.0 
β”‚   β”œβ”€β”€ which-module@1.0.0 
β”‚   └── yargs-parser@4.2.1 
β”œβ”€β”¬ webpack-manifest-plugin@1.3.2 
β”‚ └─┬ fs-extra@0.30.0 
β”‚   β”œβ”€β”€ jsonfile@2.4.0 
β”‚   └── klaw@1.3.1 
└─┬ xmlrpc@1.3.2 
  β”œβ”€β”€ sax@1.2.4 
  └── xmlbuilder@8.2.2 

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})
npm ERR! Linux 4.9.35-v7+
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "--unsafe-perm"
npm ERR! node v7.10.1
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 1

npm ERR! argon2@0.16.2 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the argon2@0.16.2 install script 'node-gyp rebuild'.
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 argon2 package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs argon2
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls argon2
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /root/.npm/_logs/2017-11-28T14_30_05_918Z-debug.log
/opt/flood $ 
ranisalt commented 6 years ago

Please try the latest commit. I have followed what the issue you linked suggested.

barbequesauce commented 6 years ago

Thanks. Still not working,... reading through it, it's pointing at the node-gyp rebuild as the issue. As a newcomer to node, Im struggling to understand why we're rebuilding it when it is already built - and if there is a reason that I'm not getting, why the rebuild isn't global?

--

/opt $ sudo npm install -g node-gyp
/usr/bin/node-gyp -> /usr/lib/node_modules/node-gyp/bin/node-gyp.js
/usr/lib
└── node-gyp@3.6.2 

/opt $ sudo git clone https://github.com/jfurrow/flood
Cloning into 'flood'...
remote: Counting objects: 11485, done.
remote: Compressing objects: 100% (87/87), done.
remote: Total 11485 (delta 39), reused 81 (delta 27), pack-reused 11371
Receiving objects: 100% (11485/11485), 21.28 MiB | 2.29 MiB/s, done.
Resolving deltas: 100% (7412/7412), done.
Checking connectivity... done.
/opt $ cd flood
/opt/flood $ sudo cp config.template.js config.js
/opt/flood $ sudo vi config.js
/opt/flood $ sudo npm install --unsafe-perm
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! 
npm WARN prefer global node-gyp@3.6.2 should be installed with -g

> argon2@0.16.2 install /opt/flood/node_modules/argon2
> node-gyp rebuild

make: Entering directory '/opt/flood/node_modules/argon2/build'
  CC(target) Release/obj.target/libargon2/argon2/src/ref.o
*** Error in `cc': double free or corruption (top): 0x004aa1f8 ***
libargon2.target.mk:105: recipe for target 'Release/obj.target/libargon2/argon2/src/ref.o' failed
make: *** [Release/obj.target/libargon2/argon2/src/ref.o] Aborted
make: Leaving directory '/opt/flood/node_modules/argon2/build'
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:276:23)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:194:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Linux 4.9.35-v7+
gyp ERR! command "/usr/bin/nodejs" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /opt/flood/node_modules/argon2
gyp ERR! node -v v7.10.1
gyp ERR! node-gyp -v v3.5.0
gyp ERR! not ok 
thekashifmalik commented 6 years ago

I hit the same issue trying to build flood in docker on my raspberry pi.

https://github.com/jfurrow/flood/issues/559#issuecomment-350306935

ranisalt commented 6 years ago

It seems to be an RPi issue. I couldn't reproduce it with a qemu machine.

I see that you are using Raspbian, I'll check the issue tracker.

ranisalt commented 6 years ago

Should be fixed with recent commits, try building from master and if that works I'll publish to npm.

gitschneider commented 6 years ago

Still not working, now I'm getting a different error, apparently there is a make rule missing: *** No rule to make target 'Release/obj.target/libargon2/argon2/src/ref.o', needed by 'Release/obj.target/argon2.a'.

Full output:

➜  node-argon2 git:(master) βœ— npm install

> argon2@0.16.2 install /home/osmc/git/node-argon2
> node-gyp rebuild

make: Entering directory '/home/osmc/git/node-argon2/build'
make: *** No rule to make target 'Release/obj.target/libargon2/argon2/src/ref.o', needed by 'Release/obj.target/argon2.a'.  Schluss.
make: Leaving directory '/home/osmc/git/node-argon2/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/osmc/.nvm/versions/node/v8.9.4/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.9.29-10-osmc
gyp ERR! command "/home/osmc/.nvm/versions/node/v8.9.4/bin/node" "/home/osmc/.nvm/versions/node/v8.9.4/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/osmc/git/node-argon2
gyp ERR! node -v v8.9.4
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! argon2@0.16.2 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the argon2@0.16.2 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/osmc/.npm/_logs/2018-01-13T09_57_50_625Z-debug.log
ranisalt commented 6 years ago

I guess you forgot to clone recursively (like the OP first) :P git submodule update --init --recursive

gitschneider commented 6 years ago

Sorry, indeed I forgot it... But now another error pops up:

➜  node-argon2 git:(master) βœ— npm install -g

> argon2@0.16.2 install /home/osmc/.nvm/versions/node/v8.9.4/lib/node_modules/argon2
> node-gyp rebuild

make: Entering directory '/home/osmc/git/node-argon2/build'
  CC(target) Release/obj.target/libargon2/argon2/src/ref.o
  CC(target) Release/obj.target/libargon2/argon2/src/argon2.o
  CC(target) Release/obj.target/libargon2/argon2/src/core.o
  CC(target) Release/obj.target/libargon2/argon2/src/blake2/blake2b.o
  CC(target) Release/obj.target/libargon2/argon2/src/thread.o
  CC(target) Release/obj.target/libargon2/argon2/src/encoding.o
  AR(target) Release/obj.target/argon2.a
  COPY Release/argon2.a
  CXX(target) Release/obj.target/argon2/src/argon2_node.o
../src/argon2_node.cpp: In constructor β€˜NodeArgon2::HashWorker::HashWorker(std::string, NodeArgon2::Options)’:
../src/argon2_node.cpp:85:31: error: could not convert β€˜std::move<NodeArgon2::Options&>((* & options))’ from β€˜std::remove_reference<NodeArgon2::Options&>::type {aka NodeArgon2::Options
}’ to β€˜std::string {aka std::basic_string<char>}’
     options{std::move(options)}
                               ^
../src/argon2_node.cpp:85:31: warning: missing initializer for member β€˜NodeArgon2::Options::hash_length’ [-Wmissing-field-initializers]
../src/argon2_node.cpp:85:31: warning: missing initializer for member β€˜NodeArgon2::Options::time_cost’ [-Wmissing-field-initializers]
../src/argon2_node.cpp:85:31: warning: missing initializer for member β€˜NodeArgon2::Options::memory_cost’ [-Wmissing-field-initializers]
../src/argon2_node.cpp:85:31: warning: missing initializer for member β€˜NodeArgon2::Options::parallelism’ [-Wmissing-field-initializers]
../src/argon2_node.cpp:85:31: warning: missing initializer for member β€˜NodeArgon2::Options::type’ [-Wmissing-field-initializers]
../src/argon2_node.cpp: In constructor β€˜NodeArgon2::VerifyWorker::VerifyWorker(std::string, std::string, NodeArgon2::Options)’:
../src/argon2_node.cpp:157:31: error: could not convert β€˜std::move<NodeArgon2::Options&>((* & options))’ from β€˜std::remove_reference<NodeArgon2::Options&>::type {aka NodeArgon2::Option
s}’ to β€˜std::string {aka std::basic_string<char>}’
     options{std::move(options)}
                               ^
../src/argon2_node.cpp:157:31: warning: missing initializer for member β€˜NodeArgon2::Options::hash_length’ [-Wmissing-field-initializers]
../src/argon2_node.cpp:157:31: warning: missing initializer for member β€˜NodeArgon2::Options::time_cost’ [-Wmissing-field-initializers]
../src/argon2_node.cpp:157:31: warning: missing initializer for member β€˜NodeArgon2::Options::memory_cost’ [-Wmissing-field-initializers]
../src/argon2_node.cpp:157:31: warning: missing initializer for member β€˜NodeArgon2::Options::parallelism’ [-Wmissing-field-initializers]
../src/argon2_node.cpp:157:31: warning: missing initializer for member β€˜NodeArgon2::Options::type’ [-Wmissing-field-initializers]
make: *** [Release/obj.target/argon2/src/argon2_node.o] Error 1
argon2.target.mk:104: recipe for target 'Release/obj.target/argon2/src/argon2_node.o' failed
make: Leaving directory '/home/osmc/git/node-argon2/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/osmc/.nvm/versions/node/v8.9.4/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.9.29-10-osmc
gyp ERR! command "/home/osmc/.nvm/versions/node/v8.9.4/bin/node" "/home/osmc/.nvm/versions/node/v8.9.4/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/osmc/git/node-argon2
gyp ERR! node -v v8.9.4
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! argon2@0.16.2 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the argon2@0.16.2 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/osmc/.npm/_logs/2018-01-13T16_57_19_059Z-debug.log

Building argon2 on it's own does work, so I would guess, there is something wrong with the gyp or so.

ranisalt commented 6 years ago

Nah, it's an error with C++ bindings. For some reason GCC tries to use structural initialization (initialize every member of a struct, in order) instead of move constructor, even though that's explicitly what I wrote.

I'm studying the best way to fix it without too much boilerplate, but it has been long fixed in current versions of GCC that I don't have access anymore.

At least the compiler corruption issue seems to be gone :D

jannisch commented 6 years ago

I just ran into this issue as well on an Amazon EC2 virtual server, maybe this can help you for reproducing. The OS was Amazon Linux AMI 2017.09.1 (HVM) and I installed the standard gcc/ gcc-c++ which is 4.8.5.

EDIT: building with the gcc72/gcc72-c++ works

hinell commented 6 years ago

I also ran into the issue. At first npm installing just hanged on. I restarted it again and then it just failed with the following error:

Project "E:\pr\realty\node_modules\argon2\build\binding.sln" on node 1 (default targets).
ValidateSolutionConfiguration:
  Building solution configuration "Release|x64".
Project "E:\pr\realty\node_modules\argon2\build\binding.sln" (1) is building "E:\pr\realty\node_modules\argon2\build\argon2.vcxproj.metap roj" (2) on node 1 (default targets).
Project "E:\pr\realty\node_modules\argon2\build\argon2.vcxproj.metaproj" (2) is building "E:\pr\realty\node_modules\argon2\build\libargon 2.vcxproj" (3) on node 1 (default targets).
E:\pr\realty\node_modules\argon2\build\libargon2.vcxproj(20,3): error MSB4019: The imported project "E:\Microsoft.Cpp.Default.props" was
not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
Done Building Project "E:\pr\realty\node_modules\argon2\build\libargon2.vcxproj" (default targets) -- FAILED.

Done Building Project "E:\pr\realty\node_modules\argon2\build\argon2.vcxproj.metaproj" (default targets) -- FAILED.

Done Building Project "E:\pr\realty\node_modules\argon2\build\binding.sln" (default targets) -- FAILED.

Build FAILED.

"E:\pr\realty\node_modules\argon2\build\binding.sln" (default target) (1) ->
"E:\pr\realty\node_modules\argon2\build\argon2.vcxproj.metaproj" (default target) (2) ->
"E:\pr\realty\node_modules\argon2\build\libargon2.vcxproj" (default target) (3) ->
  E:\pr\realty\node_modules\argon2\build\libargon2.vcxproj(20,3): error MSB4019: The imported project "E:\Microsoft.Cpp.Default.props" wa s not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.92

Steps to reproduce

1) have the Windows 10 2) run npm i -S argon2 3) .... hangs on, kill the process 4) run again second command 5) .... FAIL

ranisalt commented 6 years ago

EDIT: building with the gcc72/gcc72-c++ works

Yep, that error is an issue with how g++ 4.8 handles move initialization, and is fixed with recent versions (I'm on 7.2) and clang has never had this issue AFAIK. People should use gcc 5.3 or above, using 4.8 means you are probably on an outdated LTS distro.

ranisalt commented 6 years ago

I also ran into the issue.

Can you open another issue? Your problem doesn't seem to have the same roots.

hinell commented 6 years ago

@ranisalt Done: #109

ranisalt commented 6 years ago

Moving discussion to #117

LeonYanghaha commented 6 years ago

I've tried many ways, but it doesn't work.

DipakRai commented 5 years ago

doesn't work for me too