webrtc-web-call
VOIP call and conference Webrtc communication component , plugable to any third party site
Get started
Purge the existing of older node versions
sudo apt-get purge nodejs npm
Install node and npm ( use 5.0.0 for thsi project )
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs
Self Sign Keys
-- tbd --
Start server
node webrtcserver.js
Access Webpage
https://localhost:8084
( give advanced permission to keys if SSL is self signed and not by public a CA)
Node modules
npm install
npm list should look like
├─┬ apidoc@0.17.6
│ ├─┬ apidoc-core@0.8.3
│ │ ├─┬ glob@7.1.2
│ │ │ ├── fs.realpath@1.0.0
│ │ │ ├── inflight@1.0.6
│ │ │ └── path-is-absolute@1.0.1
│ │ ├── iconv-lite@0.4.19
│ │ ├── klaw-sync@2.1.0
│ │ └── semver@5.3.0
│ ├─┬ fs-extra@3.0.1
│ │ ├── graceful-fs@4.1.11
│ │ ├── jsonfile@3.0.1
│ │ └── universalify@0.1.1
│ ├── lodash@4.17.5
│ ├─┬ markdown-it@8.4.1
│ │ ├─┬ argparse@1.0.10
│ │ │ └── sprintf-js@1.0.3
│ │ ├── entities@1.1.1
│ │ ├── linkify-it@2.0.3
│ │ ├── mdurl@1.0.1
│ │ └── uc.micro@1.0.5
│ ├─┬ nomnom@1.8.1
│ │ ├─┬ chalk@0.4.0
│ │ │ ├── ansi-styles@1.0.0
│ │ │ └── strip-ansi@0.1.1
│ │ └── underscore@1.6.0
│ └─┬ winston@2.3.1
│ ├── async@1.0.0
│ ├── colors@1.0.3
│ ├── cycle@1.0.3
│ ├── eyes@0.1.8
│ ├── isstream@0.1.2
│ └── stack-trace@0.0.10
├─┬ express@4.16.3
│ ├─┬ accepts@1.3.5
│ │ └─┬ mime-types@2.1.18
│ │ └── mime-db@1.33.0
│ ├── array-flatten@1.1.1
│ ├─┬ body-parser@1.18.2
│ │ ├── bytes@3.0.0
│ │ ├── http-errors@1.6.3
│ │ └─┬ raw-body@2.3.2
│ │ └─┬ http-errors@1.6.2
│ │ ├── depd@1.1.1
│ │ └── setprototypeof@1.0.3
│ ├── content-disposition@0.5.2
│ ├── content-type@1.0.4
│ ├── cookie@0.3.1
│ ├── cookie-signature@1.0.6
│ ├─┬ debug@2.6.9
│ │ └── ms@2.0.0
│ ├── depd@1.1.2
│ ├── encodeurl@1.0.2
│ ├── escape-html@1.0.3
│ ├── etag@1.8.1
│ ├─┬ finalhandler@1.1.1
│ │ └── unpipe@1.0.0
│ ├── fresh@0.5.2
│ ├── merge-descriptors@1.0.1
│ ├── methods@1.1.2
│ ├─┬ on-finished@2.3.0
│ │ └── ee-first@1.1.1
│ ├── parseurl@1.3.2
│ ├── path-to-regexp@0.1.7
│ ├─┬ proxy-addr@2.0.3
│ │ ├── forwarded@0.1.2
│ │ └── ipaddr.js@1.6.0
│ ├── qs@6.5.1
│ ├── range-parser@1.2.0
│ ├── safe-buffer@5.1.1
│ ├─┬ send@0.16.2
│ │ ├── destroy@1.0.4
│ │ └── mime@1.4.1
│ ├── serve-static@1.13.2
│ ├── setprototypeof@1.1.0
│ ├── statuses@1.4.0
│ ├─┬ type-is@1.6.16
│ │ └── media-typer@0.3.0
│ ├── utils-merge@1.0.1
│ └── vary@1.1.2
├─┬ googleapis@3.1.0
│ ├── async@1.5.2
│ ├─┬ gapitoken@0.1.5
│ │ └─┬ jws@3.0.0
│ │ ├─┬ base64url@1.0.6
│ │ │ └─┬ meow@2.0.0
│ │ │ ├─┬ camelcase-keys@1.0.0
│ │ │ │ └── camelcase@1.2.1
│ │ │ ├─┬ indent-string@1.2.2
│ │ │ │ ├── minimist@1.2.0
│ │ │ │ └─┬ repeating@1.1.3
│ │ │ │ └─┬ is-finite@1.0.2
│ │ │ │ └── number-is-nan@1.0.1
│ │ │ ├── minimist@1.2.0
│ │ │ └── object-assign@1.0.0
│ │ └─┬ jwa@1.0.2
│ │ ├── base64url@0.0.6
│ │ ├── buffer-equal-constant-time@1.0.1
│ │ └─┬ ecdsa-sig-formatter@1.0.9
│ │ └── base64url@2.0.0
│ ├─┬ google-auth-library@0.9.10
│ │ ├── async@1.4.2
│ │ ├─┬ gtoken@1.2.3
│ │ │ ├─┬ google-p12-pem@0.1.2
│ │ │ │ └── node-forge@0.7.5
│ │ │ └─┬ request@2.85.0
│ │ │ ├── aws-sign2@0.7.0
│ │ │ ├── caseless@0.12.0
│ │ │ ├── form-data@2.3.2
│ │ │ ├─┬ 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
│ │ │ ├── performance-now@2.1.0
│ │ │ ├── tough-cookie@2.3.4
│ │ │ └── tunnel-agent@0.6.0
│ │ ├── lodash.noop@3.0.1
│ │ ├─┬ request@2.74.0
│ │ │ ├─┬ bl@1.1.2
│ │ │ │ └─┬ readable-stream@2.0.6
│ │ │ │ ├── process-nextick-args@1.0.7
│ │ │ │ └── string_decoder@0.10.31
│ │ │ ├─┬ http-signature@1.1.1
│ │ │ │ └── assert-plus@0.2.0
│ │ │ ├── node-uuid@1.4.8
│ │ │ ├── qs@6.2.3
│ │ │ └── tough-cookie@2.3.4
│ │ └── string-template@0.2.1
│ ├─┬ request@2.69.0
│ │ ├── aws-sign2@0.6.0
│ │ ├── aws4@1.7.0
│ │ ├─┬ bl@1.0.3
│ │ │ └─┬ readable-stream@2.0.6
│ │ │ ├── process-nextick-args@1.0.7
│ │ │ └── string_decoder@0.10.31
│ │ ├── caseless@0.11.0
│ │ ├─┬ combined-stream@1.0.6
│ │ │ └── delayed-stream@1.0.0
│ │ ├── extend@3.0.1
│ │ ├── forever-agent@0.6.1
│ │ ├─┬ form-data@1.0.1
│ │ │ └── async@2.6.0
│ │ ├─┬ har-validator@2.0.6
│ │ │ ├─┬ is-my-json-valid@2.17.2
│ │ │ │ ├── generate-function@2.0.0
│ │ │ │ ├─┬ generate-object-property@1.2.0
│ │ │ │ │ └── is-property@1.0.2
│ │ │ │ ├── is-my-ip-valid@1.0.0
│ │ │ │ └── jsonpointer@4.0.1
│ │ │ └─┬ 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
│ │ ├── is-typedarray@1.0.0
│ │ ├── json-stringify-safe@5.0.1
│ │ ├── node-uuid@1.4.8
│ │ ├── oauth-sign@0.8.2
│ │ ├── qs@6.0.4
│ │ ├── stringstream@0.0.5
│ │ ├── tough-cookie@2.2.2
│ │ └── tunnel-agent@0.4.3
│ └── string-template@1.0.0
├─┬ grunt@0.4.5
│ ├── async@0.1.22
│ ├── coffee-script@1.3.3
│ ├── colors@0.6.2
│ ├── dateformat@1.0.2-1.2.3
│ ├── eventemitter2@0.4.14
│ ├── exit@0.1.2
│ ├─┬ findup-sync@0.1.3
│ │ ├─┬ glob@3.2.11
│ │ │ └─┬ minimatch@0.3.0
│ │ │ └── lru-cache@2.7.3
│ │ └── lodash@2.4.2
│ ├── getobject@0.1.0
│ ├─┬ glob@3.1.21
│ │ ├── graceful-fs@1.2.3
│ │ └── inherits@1.0.2
│ ├─┬ grunt-legacy-log@0.1.3
│ │ ├── colors@0.6.2
│ │ ├─┬ grunt-legacy-log-utils@0.1.1
│ │ │ ├── colors@0.6.2
│ │ │ ├── lodash@2.4.2
│ │ │ └── underscore.string@2.3.3
│ │ ├── lodash@2.4.2
│ │ └── underscore.string@2.3.3
│ ├─┬ grunt-legacy-util@0.2.0
│ │ ├── async@0.1.22
│ │ └── lodash@0.9.2
│ ├── hooker@0.2.3
│ ├── iconv-lite@0.2.11
│ ├─┬ js-yaml@2.0.5
│ │ ├─┬ argparse@0.1.16
│ │ │ ├── underscore@1.7.0
│ │ │ └── underscore.string@2.4.0
│ │ └── esprima@1.0.4
│ ├── lodash@0.9.2
│ ├─┬ minimatch@0.2.14
│ │ ├── lru-cache@2.7.3
│ │ └── sigmund@1.0.1
│ ├─┬ nopt@1.0.10
│ │ └── abbrev@1.1.1
│ ├── rimraf@2.2.8
│ ├── underscore.string@2.2.1
│ └── which@1.0.9
├── grunt-apidoc@0.11.0
├─┬ grunt-contrib-jshint@1.1.0
│ └─┬ chalk@1.1.3
│ ├── ansi-styles@2.2.1
│ ├── escape-string-regexp@1.0.5
│ ├─┬ has-ansi@2.0.0
│ │ └── ansi-regex@2.1.1
│ ├── strip-ansi@3.0.1
│ └── supports-color@2.0.0
├─┬ grunt-contrib-nodeunit@1.0.0
│ └─┬ nodeunit@0.9.5
│ └─┬ tap@7.1.2
│ ├── bluebird@3.5.1
│ ├── clean-yaml-object@0.1.0
│ ├── color-support@1.1.3
│ ├─┬ coveralls@2.13.3
│ │ ├─┬ js-yaml@3.6.1
│ │ │ └── esprima@2.7.3
│ │ ├── lcov-parse@0.0.10
│ │ ├── log-driver@1.2.5
│ │ ├── minimist@1.2.0
│ │ └─┬ request@2.79.0
│ │ ├── form-data@2.1.4
│ │ ├─┬ http-signature@1.1.1
│ │ │ └── assert-plus@0.2.0
│ │ ├── qs@6.3.2
│ │ └── tough-cookie@2.3.4
│ ├── deeper@2.1.0
│ ├─┬ foreground-child@1.5.6
│ │ └─┬ cross-spawn@4.0.2
│ │ └─┬ which@1.3.0
│ │ └── isexe@2.0.0
│ ├── glob@7.1.2
│ ├── isexe@1.1.2
│ ├─┬ js-yaml@3.11.0
│ │ └── esprima@4.0.0
│ ├─┬ nyc@7.1.0
│ │ ├── arrify@1.0.1
│ │ ├─┬ caching-transform@1.0.1
│ │ │ └─┬ write-file-atomic@1.1.4
│ │ │ ├── graceful-fs@4.1.4
│ │ │ ├── imurmurhash@0.1.4
│ │ │ └── slide@1.1.6
│ │ ├── convert-source-map@1.3.0
│ │ ├─┬ default-require-extensions@1.0.0
│ │ │ └─┬ strip-bom@2.0.0
│ │ │ └── is-utf8@0.2.1
│ │ ├─┬ find-cache-dir@0.1.1
│ │ │ ├── commondir@1.0.1
│ │ │ └── pkg-dir@1.0.0
│ │ ├─┬ find-up@1.1.2
│ │ │ ├── path-exists@2.1.0
│ │ │ └─┬ pinkie-promise@2.0.1
│ │ │ └── pinkie@2.0.4
│ │ ├─┬ foreground-child@1.5.3
│ │ │ └─┬ cross-spawn@4.0.0
│ │ │ └─┬ lru-cache@4.0.1
│ │ │ ├── pseudomap@1.0.2
│ │ │ └── yallist@2.0.0
│ │ ├─┬ glob@7.0.5
│ │ │ ├── fs.realpath@1.0.0
│ │ │ ├─┬ inflight@1.0.5
│ │ │ │ └── wrappy@1.0.2
│ │ │ ├── inherits@2.0.1
│ │ │ ├─┬ minimatch@3.0.2
│ │ │ │ └─┬ brace-expansion@1.1.6
│ │ │ │ ├── balanced-match@0.4.2
│ │ │ │ └── concat-map@0.0.1
│ │ │ ├── once@1.3.3
│ │ │ └── path-is-absolute@1.0.0
│ │ ├── istanbul-lib-coverage@1.0.0-alpha.4
│ │ ├─┬ istanbul-lib-hook@1.0.0-alpha.4
│ │ │ └── append-transform@0.3.0
│ │ ├─┬ istanbul-lib-instrument@1.1.0-alpha.4
│ │ │ ├─┬ babel-generator@6.11.4
│ │ │ │ ├── babel-messages@6.8.0
│ │ │ │ ├─┬ babel-runtime@6.9.2
│ │ │ │ │ ├── core-js@2.4.1
│ │ │ │ │ └── regenerator-runtime@0.9.5
│ │ │ │ ├─┬ detect-indent@3.0.1
│ │ │ │ │ ├── get-stdin@4.0.1
│ │ │ │ │ ├── minimist@1.2.0
│ │ │ │ │ └─┬ repeating@1.1.3
│ │ │ │ │ └── is-finite@1.0.1
│ │ │ │ └── lodash@4.13.1
│ │ │ ├── babel-template@6.9.0
│ │ │ ├─┬ babel-traverse@6.11.4
│ │ │ │ ├─┬ babel-code-frame@6.11.0
│ │ │ │ │ ├─┬ chalk@1.1.3
│ │ │ │ │ │ ├── ansi-styles@2.2.1
│ │ │ │ │ │ ├── escape-string-regexp@1.0.5
│ │ │ │ │ │ ├── has-ansi@2.0.0
│ │ │ │ │ │ └── supports-color@2.0.0
│ │ │ │ │ └── js-tokens@2.0.0
│ │ │ │ ├─┬ debug@2.2.0
│ │ │ │ │ └── ms@0.7.1
│ │ │ │ ├── globals@8.18.0
│ │ │ │ └─┬ invariant@2.2.1
│ │ │ │ └─┬ loose-envify@1.2.0
│ │ │ │ └── js-tokens@1.0.3
│ │ │ ├─┬ babel-types@6.11.1
│ │ │ │ ├── esutils@2.0.2
│ │ │ │ └── to-fast-properties@1.0.2
│ │ │ └── babylon@6.8.4
│ │ ├─┬ istanbul-lib-report@1.0.0-alpha.3
│ │ │ ├── async@1.5.2
│ │ │ ├── path-parse@1.0.5
│ │ │ └─┬ supports-color@3.1.2
│ │ │ └── has-flag@1.0.0
│ │ ├─┬ istanbul-lib-source-maps@1.0.0-alpha.10
│ │ │ └── source-map@0.5.6
│ │ ├─┬ istanbul-reports@1.0.0-alpha.8
│ │ │ └─┬ handlebars@4.0.5
│ │ │ ├─┬ optimist@0.6.1
│ │ │ │ └── wordwrap@0.0.3
│ │ │ ├─┬ source-map@0.4.4
│ │ │ │ └── amdefine@1.0.0
│ │ │ └─┬ uglify-js@2.7.0
│ │ │ ├── async@0.2.10
│ │ │ ├── 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
│ │ ├─┬ md5-hex@1.3.0
│ │ │ └── md5-o-matic@0.1.1
│ │ ├─┬ micromatch@2.3.11
│ │ │ ├─┬ arr-diff@2.0.0
│ │ │ │ └── arr-flatten@1.0.1
│ │ │ ├── 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
│ │ │ │ │ │ └── isarray@1.0.0
│ │ │ │ │ ├── randomatic@1.1.5
│ │ │ │ │ └── repeat-string@1.5.4
│ │ │ │ ├── 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.0
│ │ │ ├── is-extglob@1.0.0
│ │ │ ├── is-glob@2.0.1
│ │ │ ├─┬ kind-of@3.0.3
│ │ │ │ └── is-buffer@1.1.3
│ │ │ ├── normalize-path@2.0.1
│ │ │ ├─┬ object.omit@2.0.0
│ │ │ │ ├─┬ for-own@0.1.4
│ │ │ │ │ └── for-in@0.1.5
│ │ │ │ └── is-extendable@0.1.1
│ │ │ ├─┬ parse-glob@3.0.4
│ │ │ │ ├─┬ glob-base@0.3.0
│ │ │ │ │ └── glob-parent@2.0.0
│ │ │ │ └── is-dotfile@1.0.2
│ │ │ └─┬ regex-cache@0.4.3
│ │ │ ├── is-equal-shallow@0.1.3
│ │ │ └── is-primitive@2.0.0
│ │ ├─┬ mkdirp@0.5.1
│ │ │ └── minimist@0.0.8
│ │ ├── pkg-up@1.0.0
│ │ ├── resolve-from@2.0.0
│ │ ├── rimraf@2.5.4
│ │ ├── signal-exit@3.0.0
│ │ ├─┬ spawn-wrap@1.2.4
│ │ │ ├── os-homedir@1.0.1
│ │ │ ├── signal-exit@2.1.2
│ │ │ └─┬ which@1.2.10
│ │ │ └── isexe@1.1.2
│ │ ├─┬ test-exclude@1.1.0
│ │ │ ├─┬ lodash.assign@4.0.9
│ │ │ │ ├── lodash.keys@4.0.7
│ │ │ │ └── lodash.rest@4.0.3
│ │ │ ├─┬ read-pkg-up@1.0.1
│ │ │ │ └─┬ read-pkg@1.1.0
│ │ │ │ ├─┬ load-json-file@1.1.0
│ │ │ │ │ ├─┬ parse-json@2.2.0
│ │ │ │ │ │ └─┬ error-ex@1.3.0
│ │ │ │ │ │ └── is-arrayish@0.2.1
│ │ │ │ │ └── pify@2.3.0
│ │ │ │ ├─┬ normalize-package-data@2.3.5
│ │ │ │ │ ├── hosted-git-info@2.1.5
│ │ │ │ │ ├─┬ is-builtin-module@1.0.0
│ │ │ │ │ │ └── builtin-modules@1.1.1
│ │ │ │ │ ├── semver@5.3.0
│ │ │ │ │ └─┬ validate-npm-package-license@3.0.1
│ │ │ │ │ ├─┬ spdx-correct@1.0.2
│ │ │ │ │ │ └── spdx-license-ids@1.2.1
│ │ │ │ │ └─┬ spdx-expression-parse@1.0.2
│ │ │ │ │ └── spdx-exceptions@1.0.5
│ │ │ │ └── path-type@1.1.0
│ │ │ └── require-main-filename@1.0.1
│ │ ├─┬ yargs@4.8.1
│ │ │ ├─┬ cliui@3.2.0
│ │ │ │ └── wrap-ansi@2.0.0
│ │ │ ├── decamelize@1.2.0
│ │ │ ├── get-caller-file@1.0.1
│ │ │ ├─┬ os-locale@1.4.0
│ │ │ │ └─┬ lcid@1.0.0
│ │ │ │ └── invert-kv@1.0.0
│ │ │ ├── require-directory@2.1.1
│ │ │ ├── set-blocking@2.0.0
│ │ │ ├─┬ string-width@1.0.1
│ │ │ │ ├─┬ code-point-at@1.0.0
│ │ │ │ │ └── number-is-nan@1.0.0
│ │ │ │ ├── is-fullwidth-code-point@1.0.0
│ │ │ │ └─┬ strip-ansi@3.0.1
│ │ │ │ └── ansi-regex@2.0.0
│ │ │ ├── which-module@1.0.0
│ │ │ ├── window-size@0.2.0
│ │ │ └── y18n@3.2.1
│ │ └─┬ yargs-parser@2.4.1
│ │ └── camelcase@3.0.0
│ ├── only-shallow@1.2.0
│ ├── opener@1.4.3
│ ├── signal-exit@3.0.2
│ ├── stack-utils@0.4.0
│ ├─┬ tap-mocha-reporter@2.0.1
│ │ ├── diff@1.4.0
│ │ ├── glob@7.1.2
│ │ ├─┬ js-yaml@3.11.0
│ │ │ └── esprima@4.0.0
│ │ └── unicode-length@1.0.3
│ ├─┬ tap-parser@2.2.3
│ │ ├── events-to-array@1.1.2
│ │ └─┬ js-yaml@3.11.0
│ │ └── esprima@4.0.0
│ └── tmatch@2.0.1
├─┬ grunt-contrib-uglify@3.3.0
│ ├─┬ maxmin@1.1.0
│ │ ├─┬ figures@1.7.0
│ │ │ └── object-assign@4.1.1
│ │ ├─┬ gzip-size@1.0.0
│ │ │ ├─┬ browserify-zlib@0.1.4
│ │ │ │ └── pako@0.2.9
│ │ │ └─┬ concat-stream@1.4.11
│ │ │ ├─┬ readable-stream@1.1.14
│ │ │ │ ├── isarray@0.0.1
│ │ │ │ └── string_decoder@0.10.31
│ │ │ └── typedarray@0.0.6
│ │ └─┬ pretty-bytes@1.0.4
│ │ ├── get-stdin@4.0.1
│ │ └─┬ meow@3.7.0
│ │ ├─┬ camelcase-keys@2.1.0
│ │ │ └── camelcase@2.1.1
│ │ ├── decamelize@1.2.0
│ │ ├─┬ 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
│ │ ├─┬ normalize-package-data@2.4.0
│ │ │ ├── hosted-git-info@2.6.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
│ │ ├── object-assign@4.1.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
│ │ │ │ ├─┬ parse-json@2.2.0
│ │ │ │ │ └─┬ error-ex@1.3.1
│ │ │ │ │ └── is-arrayish@0.2.1
│ │ │ │ ├── pify@2.3.0
│ │ │ │ └── strip-bom@2.0.0
│ │ │ └── path-type@1.1.0
│ │ ├─┬ redent@1.0.0
│ │ │ ├─┬ indent-string@2.1.0
│ │ │ │ └── repeating@2.0.1
│ │ │ └── strip-indent@1.0.1
│ │ └── trim-newlines@1.0.0
│ ├─┬ uglify-js@3.3.20
│ │ ├── commander@2.15.1
│ │ └── source-map@0.6.1
│ └── uri-path@1.0.0
├─┬ grunt-contrib-watch@1.0.0
│ ├─┬ gaze@1.1.2
│ │ └─┬ globule@1.2.0
│ │ └── glob@7.1.2
│ ├── lodash@3.10.1
│ └─┬ tiny-lr@0.2.1
│ ├─┬ body-parser@1.14.2
│ │ ├── bytes@2.2.0
│ │ ├── http-errors@1.3.1
│ │ ├── iconv-lite@0.4.13
│ │ ├── qs@5.2.0
│ │ └─┬ raw-body@2.1.7
│ │ └── bytes@2.4.0
│ ├─┬ debug@2.2.0
│ │ └── ms@0.7.1
│ ├─┬ faye-websocket@0.10.0
│ │ └─┬ websocket-driver@0.7.0
│ │ ├── http-parser-js@0.4.11
│ │ └── websocket-extensions@0.1.3
│ ├── livereload-js@2.3.0
│ └── qs@5.1.0
├─┬ grunt-ec2@0.9.2
│ ├── async@0.2.10
│ ├─┬ aws-sdk@2.0.31
│ │ ├─┬ xml2js@0.2.6
│ │ │ └── sax@0.4.2
│ │ └── xmlbuilder@0.4.2
│ ├─┬ chalk@0.4.0
│ │ ├── ansi-styles@1.0.0
│ │ ├── has-color@0.1.7
│ │ └── strip-ansi@0.1.1
│ ├─┬ fs-extra@0.8.1
│ │ ├── jsonfile@1.1.1
│ │ ├── ncp@0.4.2
│ │ └── rimraf@2.2.8
│ ├── lodash@2.4.2
│ ├── mkdirp@0.3.5
│ ├── moment@2.5.1
│ ├── mustache@0.8.2
│ └─┬ ssh2@0.2.25
│ ├── asn1@0.1.11
│ └── streamsearch@0.1.2
├── grunt-git-deploy@0.3.1
├─┬ grunt-rsync@2.0.1
│ └─┬ rsyncwrapper@2.0.1
│ └── lodash@4.15.0
├─┬ gulp@3.9.1
│ ├── archy@1.0.0
│ ├── deprecated@0.0.1
│ ├─┬ gulp-util@3.0.8
│ │ ├── array-differ@1.0.0
│ │ ├── array-uniq@1.0.3
│ │ ├── beeper@1.1.1
│ │ ├── dateformat@2.2.0
│ │ ├─┬ fancy-log@1.3.2
│ │ │ ├─┬ ansi-gray@0.1.1
│ │ │ │ └── ansi-wrap@0.1.0
│ │ │ └── time-stamp@1.1.0
│ │ ├── lodash._reescape@3.0.0
│ │ ├── lodash._reevaluate@3.0.0
│ │ ├── lodash._reinterpolate@3.0.0
│ │ ├─┬ lodash.template@3.6.2
│ │ │ ├── lodash._basecopy@3.0.1
│ │ │ ├── lodash._basetostring@3.0.1
│ │ │ ├── lodash._basevalues@3.0.0
│ │ │ ├── lodash._isiterateecall@3.0.9
│ │ │ ├─┬ lodash.escape@3.2.0
│ │ │ │ └── lodash._root@3.0.1
│ │ │ ├─┬ 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
│ │ │ └── lodash.templatesettings@3.1.1
│ │ ├── minimist@1.2.0
│ │ ├─┬ multipipe@0.1.2
│ │ │ └─┬ duplexer2@0.0.2
│ │ │ └─┬ readable-stream@1.1.14
│ │ │ ├── isarray@0.0.1
│ │ │ └── string_decoder@0.10.31
│ │ ├── object-assign@3.0.0
│ │ ├── replace-ext@0.0.1
│ │ └─┬ vinyl@0.5.3
│ │ └── clone-stats@0.0.1
│ ├── interpret@1.1.0
│ ├─┬ liftoff@2.5.0
│ │ ├─┬ findup-sync@2.0.0
│ │ │ ├── detect-file@1.0.0
│ │ │ ├─┬ is-glob@3.1.0
│ │ │ │ └── is-extglob@2.1.1
│ │ │ ├─┬ 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
│ │ │ │ │ ├── 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
│ │ │ │ ├─┬ 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
│ │ │ │ │ │ ├── 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
│ │ │ │ ├── kind-of@6.0.2
│ │ │ │ ├─┬ nanomatch@1.2.9
│ │ │ │ │ └─┬ is-odd@2.0.0
│ │ │ │ │ └── is-number@4.0.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
│ │ │ │ │ │ ├─┬ 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
│ │ │ │ │ │ │ └── is-extendable@1.0.1
│ │ │ │ │ │ └── pascalcase@0.1.1
│ │ │ │ │ ├─┬ 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@0.5.7
│ │ │ │ │ ├─┬ source-map-resolve@0.5.1
│ │ │ │ │ │ ├── atob@2.1.0
│ │ │ │ │ │ ├── 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
│ │ │ └─┬ resolve-dir@1.0.1
│ │ │ └─┬ global-modules@1.0.0
│ │ │ └─┬ global-prefix@1.0.2
│ │ │ ├── ini@1.3.5
│ │ │ └─┬ which@1.3.0
│ │ │ └── isexe@2.0.0
│ │ ├─┬ fined@1.1.0
│ │ │ ├─┬ expand-tilde@2.0.2
│ │ │ │ └─┬ homedir-polyfill@1.0.1
│ │ │ │ └── parse-passwd@1.0.0
│ │ │ ├─┬ object.defaults@1.1.0
│ │ │ │ ├── array-each@1.0.1
│ │ │ │ └── array-slice@1.1.0
│ │ │ ├── object.pick@1.3.0
│ │ │ └─┬ parse-filepath@1.0.2
│ │ │ ├─┬ is-absolute@1.0.0
│ │ │ │ ├─┬ is-relative@1.0.0
│ │ │ │ │ └─┬ is-unc-path@1.0.0
│ │ │ │ │ └── unc-path-regex@0.1.2
│ │ │ │ └── is-windows@1.0.2
│ │ │ ├── map-cache@0.2.2
│ │ │ └─┬ path-root@0.1.1
│ │ │ └── path-root-regex@0.1.2
│ │ ├── flagged-respawn@1.0.0
│ │ ├─┬ is-plain-object@2.0.4
│ │ │ └── isobject@3.0.1
│ │ ├─┬ object.map@1.0.1
│ │ │ ├─┬ for-own@1.0.0
│ │ │ │ └── for-in@1.0.2
│ │ │ └── make-iterator@1.0.1
│ │ ├── rechoir@0.6.2
│ │ └─┬ resolve@1.7.0
│ │ └── path-parse@1.0.5
│ ├── minimist@1.2.0
│ ├─┬ orchestrator@0.3.8
│ │ ├─┬ end-of-stream@0.1.5
│ │ │ └── once@1.3.3
│ │ ├── sequencify@0.0.7
│ │ └── stream-consume@0.1.1
│ ├── pretty-hrtime@1.0.3
│ ├── semver@4.3.6
│ ├─┬ tildify@1.2.0
│ │ └── os-homedir@1.0.1
│ ├─┬ v8flags@2.1.1
│ │ └── user-home@1.1.1
│ └─┬ vinyl-fs@0.3.14
│ ├── defaults@1.0.3
│ ├─┬ glob-stream@3.1.18
│ │ ├── glob@4.5.3
│ │ ├─┬ glob2base@0.0.12
│ │ │ └── find-index@0.1.1
│ │ ├── minimatch@2.0.10
│ │ ├── ordered-read-streams@0.1.0
│ │ ├─┬ through2@0.6.5
│ │ │ └─┬ readable-stream@1.0.34
│ │ │ ├── isarray@0.0.1
│ │ │ └── string_decoder@0.10.31
│ │ └── unique-stream@1.0.0
│ ├─┬ glob-watcher@0.0.6
│ │ └─┬ gaze@0.5.2
│ │ └─┬ globule@0.1.0
│ │ ├─┬ glob@3.1.21
│ │ │ ├── graceful-fs@1.2.3
│ │ │ └── inherits@1.0.2
│ │ ├── lodash@1.0.2
│ │ └─┬ minimatch@0.2.14
│ │ └── lru-cache@2.7.3
│ ├─┬ graceful-fs@3.0.11
│ │ └── natives@1.1.3
│ ├── mkdirp@0.5.1
│ ├─┬ strip-bom@1.0.0
│ │ ├── first-chunk-stream@1.0.0
│ │ └── is-utf8@0.2.1
│ ├─┬ through2@0.6.5
│ │ └─┬ readable-stream@1.0.34
│ │ ├── isarray@0.0.1
│ │ └── string_decoder@0.10.31
│ └─┬ vinyl@0.4.6
│ └── clone@0.2.0
├─┬ gulp-add-src@0.2.0
│ ├─┬ event-stream@3.1.7
│ │ ├── duplexer@0.1.1
│ │ ├── from@0.1.7
│ │ ├── map-stream@0.1.0
│ │ ├── pause-stream@0.0.11
│ │ ├── split@0.2.10
│ │ ├── stream-combiner@0.0.4
│ │ └── through@2.3.8
│ ├─┬ streamqueue@0.1.3
│ │ └─┬ readable-stream@1.0.34
│ │ ├── isarray@0.0.1
│ │ └── string_decoder@0.10.31
│ └─┬ through2@0.4.2
│ ├─┬ readable-stream@1.0.34
│ │ ├── isarray@0.0.1
│ │ └── string_decoder@0.10.31
│ └─┬ xtend@2.1.2
│ └── object-keys@0.4.0
├─┬ gulp-base64@0.1.3
│ ├── async@0.2.10
│ ├── buffers@0.1.1
│ ├── extend@1.2.1
│ ├── mime@1.2.11
│ ├─┬ request@2.33.0
│ │ ├── aws-sign2@0.5.0
│ │ ├── forever-agent@0.5.2
│ │ ├─┬ form-data@0.1.4
│ │ │ ├── async@0.9.2
│ │ │ └─┬ combined-stream@0.0.7
│ │ │ └── delayed-stream@0.0.5
│ │ ├─┬ hawk@1.0.0
│ │ │ ├── boom@0.4.2
│ │ │ ├── cryptiles@0.2.2
│ │ │ ├── hoek@0.9.1
│ │ │ └── sntp@0.2.4
│ │ ├─┬ http-signature@0.10.1
│ │ │ ├── asn1@0.1.11
│ │ │ ├── assert-plus@0.1.5
│ │ │ └── ctype@0.5.3
│ │ ├── node-uuid@1.4.8
│ │ ├── oauth-sign@0.3.0
│ │ ├── qs@0.6.6
│ │ └── tunnel-agent@0.3.0
│ └─┬ through2@0.4.2
│ ├─┬ readable-stream@1.0.34
│ │ ├── isarray@0.0.1
│ │ └── string_decoder@0.10.31
│ └── xtend@2.1.2
├── gulp-cat@0.3.3
├─┬ gulp-concat@2.6.1
│ ├── concat-with-sourcemaps@1.0.5
│ ├─┬ through2@2.0.3
│ │ └── xtend@4.0.1
│ └─┬ vinyl@2.1.0
│ ├── clone@2.1.2
│ ├── clone-buffer@1.0.0
│ ├── clone-stats@1.0.0
│ ├── cloneable-readable@1.1.2
│ ├── remove-trailing-separator@1.1.0
│ └── replace-ext@1.0.0
├─┬ gulp-minify-css@1.2.4
│ ├─┬ clean-css@3.4.28
│ │ ├─┬ commander@2.8.1
│ │ │ └── graceful-readlink@1.0.1
│ │ └─┬ source-map@0.4.4
│ │ └── amdefine@1.0.1
│ ├── object-assign@4.1.1
│ ├─┬ readable-stream@2.3.6
│ │ ├── core-util-is@1.0.2
│ │ ├── inherits@2.0.3
│ │ ├── isarray@1.0.0
│ │ ├── process-nextick-args@2.0.0
│ │ ├── string_decoder@1.1.1
│ │ └── util-deprecate@1.0.2
│ ├─┬ vinyl-bufferstream@1.0.1
│ │ └─┬ bufferstreams@1.0.1
│ │ └─┬ readable-stream@1.1.14
│ │ ├── isarray@0.0.1
│ │ └── string_decoder@0.10.31
│ └─┬ vinyl-sourcemaps-apply@0.2.1
│ └── source-map@0.5.7
├─┬ gulp-remote-src@0.4.3
│ ├─┬ event-stream@3.3.4
│ │ └── split@0.3.3
│ ├─┬ node.extend@1.1.6
│ │ └── is@3.2.1
│ ├─┬ request@2.79.0
│ │ ├─┬ form-data@2.1.4
│ │ │ └── asynckit@0.4.0
│ │ ├─┬ http-signature@1.1.1
│ │ │ └── assert-plus@0.2.0
│ │ ├── qs@6.3.2
│ │ └─┬ tough-cookie@2.3.4
│ │ └── punycode@1.4.1
│ └─┬ vinyl@2.0.2
│ ├── clone@1.0.4
│ ├── clone-stats@1.0.0
│ ├── is-stream@1.1.0
│ └── replace-ext@1.0.0
├─┬ gulp-sequence@1.0.0
│ └── thunks@4.9.2
├─┬ gulp-uglify@3.0.0
│ ├─┬ gulplog@1.0.0
│ │ └── glogg@1.0.1
│ ├─┬ has-gulplog@0.1.0
│ │ └── sparkles@1.0.0
│ └─┬ make-error-cause@1.2.2
│ └── make-error@1.3.4
├─┬ jshint@2.9.5
│ ├─┬ cli@1.0.1
│ │ └── glob@7.1.2
│ ├─┬ console-browserify@1.1.0
│ │ └── date-now@0.1.4
│ ├─┬ htmlparser2@3.8.3
│ │ ├── domelementtype@1.3.0
│ │ ├── domhandler@2.3.0
│ │ ├─┬ domutils@1.5.1
│ │ │ └─┬ dom-serializer@0.1.0
│ │ │ └── domelementtype@1.1.3
│ │ ├── entities@1.0.0
│ │ └─┬ readable-stream@1.1.14
│ │ ├── isarray@0.0.1
│ │ └── string_decoder@0.10.31
│ ├── lodash@3.7.0
│ ├─┬ minimatch@3.0.4
│ │ └─┬ brace-expansion@1.1.11
│ │ ├── balanced-match@1.0.0
│ │ └── concat-map@0.0.1
│ ├── shelljs@0.3.0
│ └── strip-json-comments@1.0.4
├── log@1.4.0 extraneous
├─┬ node-static@0.7.10
│ ├── colors@1.2.1
│ ├── mime@1.6.0
│ └─┬ optimist@0.6.1
│ ├── minimist@0.0.8
│ └── wordwrap@0.0.3
├─┬ restify@7.1.0
│ ├── assert-plus@1.0.0
│ ├─┬ bunyan@1.8.12
│ │ ├── moment@2.22.0
│ │ ├─┬ mv@2.1.1
│ │ │ ├── ncp@2.0.0
│ │ │ └─┬ rimraf@2.4.5
│ │ │ └── glob@6.0.4
│ │ └── safe-json-stringify@1.1.0
│ ├─┬ csv@1.2.1
│ │ ├── csv-generate@1.1.2
│ │ ├── csv-parse@1.3.3
│ │ ├─┬ csv-stringify@1.1.2
│ │ │ └── lodash.get@4.4.2
│ │ └── stream-transform@0.2.2
│ ├─┬ dtrace-provider@0.8.6
│ │ └── nan@2.10.0
│ ├── escape-regexp-component@1.0.2
│ ├── ewma@2.0.1
│ ├─┬ find-my-way@1.11.1
│ │ └── fast-decode-uri-component@1.0.0
│ ├── formidable@1.2.1
│ ├─┬ http-signature@1.2.0
│ │ ├─┬ jsprim@1.4.1
│ │ │ └── json-schema@0.2.3
│ │ └─┬ 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
│ ├─┬ lru-cache@4.1.2
│ │ ├── pseudomap@1.0.2
│ │ └── yallist@2.1.2
│ ├── negotiator@0.6.1
│ ├─┬ once@1.4.0
│ │ └── wrappy@1.0.2
│ ├── pidusage@1.2.0
│ ├── restify-errors@5.0.0
│ ├── semver@5.5.0
│ ├─┬ spdy@3.4.7
│ │ ├── handle-thing@1.2.5
│ │ ├── http-deceiver@1.2.7
│ │ ├── select-hose@2.0.0
│ │ └─┬ spdy-transport@2.1.0
│ │ ├── detect-node@2.0.3
│ │ ├── hpack.js@2.1.6
│ │ ├── obuf@1.1.2
│ │ └─┬ wbuf@1.7.3
│ │ └── minimalistic-assert@1.0.0
│ ├── uuid@3.2.1
│ ├─┬ vasync@1.6.4
│ │ └─┬ verror@1.6.0
│ │ └── extsprintf@1.2.0
│ └─┬ verror@1.10.0
│ └── extsprintf@1.3.0
├─┬ socket.io@2.1.0
│ ├── debug@3.1.0
│ ├─┬ engine.io@3.2.0
│ │ ├── base64id@1.0.0
│ │ ├── debug@3.1.0
│ │ ├─┬ engine.io-parser@2.1.2
│ │ │ ├── after@0.8.2
│ │ │ ├── arraybuffer.slice@0.0.7
│ │ │ └── blob@0.0.4
│ │ └─┬ ws@3.3.3
│ │ ├── async-limiter@1.0.0
│ │ └── ultron@1.1.1
│ ├─┬ has-binary2@1.0.2
│ │ └── isarray@2.0.1
│ ├── socket.io-adapter@1.1.1
│ ├─┬ socket.io-client@2.1.0
│ │ ├── backo2@1.0.2
│ │ ├── base64-arraybuffer@0.1.5
│ │ ├── component-bind@1.0.0
│ │ ├── component-emitter@1.2.1
│ │ ├── debug@3.1.0
│ │ ├─┬ engine.io-client@3.2.1
│ │ │ ├── component-inherit@0.0.3
│ │ │ ├── debug@3.1.0
│ │ │ ├── xmlhttprequest-ssl@1.5.5
│ │ │ └── yeast@0.1.2
│ │ ├── has-cors@1.1.0
│ │ ├── indexof@0.0.1
│ │ ├── object-component@0.0.3
│ │ ├─┬ parseqs@0.0.5
│ │ │ └─┬ better-assert@1.0.2
│ │ │ └── callsite@1.0.0
│ │ ├── parseuri@0.0.5
│ │ └── to-array@0.1.4
│ └─┬ socket.io-parser@3.2.0
│ ├── debug@3.1.0
│ └── isarray@2.0.1
├── supervisor@0.10.0
└── webrtcdevelopment@1.6.449
##Debug Tip
socket.io trasnport problems
{
"code": 0,
"message": "Transport unknown"
}
solution : npm uninstall socket.io
npm install socket.io@0.9