Giter Club home page Giter Club logo

shrinkpack's Introduction

shrinkpack

Fast, resilient, reproducible builds with npm install.

NPM version NPM downloads Follow JamieMason on GitHub Follow fold_left on Twitter

What

shrinkpack points your package-lock.json at npm tarballs checked into your project's source control, so you can install while offline, during a registry outage, or during the next left-pad incident.

How

  1. Read package-lock.json or npm-shrinkwrap.json.
  2. Download the exact same .tgz files that npm install fetches from registry.npmjs.org.
  3. Decompress the .tgz files into .tar files. This avoids storing binary files in Git and removes the cost of decompression during npm install.
  4. Store the .tar files in your project at node_shrinkpack/*.tar.
  5. Rewrite package-lock.json to point at those instead of the registry.

Now your project can be installed while completely offline:

- npm install
+ npm ci --offline

The rest of the npm installation process is exactly the same. The only difference is that no network activity is necessary when installing and building your project. The node_shrinkpack directory can be ignored in your editor (much like is done with the node_modules directory), but is instead checked into source control.

Why

For context, please see the target problem and justification sections of this README.

Installation

Requires npm@7 or higher.

npm install --global shrinkpack

Usage

Run shrinkpack every time you have modified and installed your dependencies to produce a new package-lock.json.

Usage: shrinkpack [options] [directory]

Options:
  -V, --version  output the version number
  -h, --help     display help for command

Icons:
  + Added
  - Removed
  i Information
  12:34 Time Taken

History

  1. Feb 2015: shrinkpack was created.
  2. Mar 2016: The left-pad incident happened (shrinkpack users were unaffected!).
  3. Jun 2016: yarn added "offline mirror" support.
  4. May 2017: npm@5 added package-lock.json but npm@5 broke support for installing local files from a lockfile. Subsequent fixes were released for npm, but the issue was not resolved.
  5. Apr 2018: npm announced plans to integrate shrinkpack functionality into npm.
  6. May 2018: Work on shrinkpack is abandoned after the regression in npm@5 is still not fixed after a year.
  7. Dec 2021: Jack Franklin wrote why you should check-in your node dependencies and I'm reminded of why I wrote shrinkpack in the first place.
  8. Dec 2021: Work resumes on shrinkpack and support is added for npm >= 7.

Target Problem

Back in 2015 I was working at skysports.com. Each time we pushed code, our continuous integration environment created a clean workspace, installed, configured, and built the latest version of the project, then ran various tests and tasks.

We were happy with this process and the convenience of npm in particular, but the phase of our builds where npm install listed a huge amount of network traffic would always raise the same concerns:

  • This seems slow, wasteful, and inefficient.
  • We really depend on registry.npmjs.org, what do we do if it goes down?

The first suggestion was always to check in the node_modules directory, but the idea of large and chatty commits whenever we chose to upgrade or change a dependency put us off.

Other teams felt they could live with that and decided to proceed, only to find that packages such as phantomjs and node-sass will helpfully install the appropriate binary depending on which operating system you're running.

This meant that if Chris added phantomjs or node-sass to the project on his Mac and checked it into the repository, Helen wouldn't be able to use it on her Windows Machine.

The remaining alternatives were caching proxies or self-hosted registry mirrors, and caches-of-sorts. None of which appealed to us and, grudgingly, we continued as we were until later creating shrinkpack.

Justification

Note: This section was first written in 2015, before lockfiles were the default in npm, pnpm, and yarn. You had to opt-in to using a lockfile by running npm shrinkwrap to generate an npm-shrinkwrap.json file.

This text has been updated to reflect the situation today, where the need for lockfiles is more widely understood.

Whenever we add, remove, or update an npm dependency — we should test our application for regressions before locking down our dependencies with a lockfile. A tagged release should be a locked-down, frozen snapshot of the codebase which has been tested sufficiently enough that it is approved and trusted. When fed into a repeatable, automated deployment process it should always result in the same output.

  • Without a lockfile your dependency graph will mutate on a regular basis.
  • Checking in node_modules fixes this, but there are some issues which we discussed earlier.
  • You can be reasonably sure your dependency graph will remain consistent with a lockfile.
  • You can be completely sure with a lockfile and an offline cache.

A lockfile is something I would recommend you use anyway, even if you don't decide to use shrinkpack. It increases (but doesn't guarantee) certainty and confidence over exactly what versions of every nested dependency you've tested against and approved.

Without a lockfile and an offline cache, that's not guaranteed.

Consider this snippet from the package.json of a nested dependency in your project as an example. It's not even a package you directly control, it's a dependency of a dependency of a dependency:

"dependencies": {
  "lolwut": ">=0.1.0"
}

If [email protected] contains a regression and you're not using a lockfile, your project will contain that regression the next time you install it.

shrinkpack

With you hopefully convinced of the merits of lockfiles, shrinkpack will hopefully be seen as a small and complementary addition.

shrinkpack takes the tarballs of the specific dependency graph described by your lockfile and stores them within your project.

This means;

  • No need for repeated requests to registry.npmjs.org.
  • Each package/version pair can be checked in as a single tarball, avoiding commits with all kinds of noisy diffs.
  • Packages can be checked in, while still being installed by members of the team on different operating systems.

Suitability to your project

shrinkpack is best suited to a project which is the root consumer of dependencies and not a dependency itself. If your project is intended to be installed as a dependency of another project using npm install, let those downstream projects make their own decisions on bundling.

That said, if you're developing an npm package and want to use shrinkpack to speed up and harden your development and CI environments, adding package-lock.json and node_shrinkpack to your .npmignore file will allow you to do that, without publishing your shrinkpacked dependencies to the registry.

It's not recommended to publish a project with bundled or shrinkpacked dependencies to the registry, which would become bloated with duplicate copies of packages, bundled amongst various other ones.

Getting Help

shrinkpack's People

Contributors

divergentdave avatar dylanpiercey avatar fanatid avatar gitter-badger avatar jamiemason avatar lime avatar markerikson avatar zlatanvasovic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

shrinkpack's Issues

API and responsibilities

I looked at this tool and the README and became pretty excited!

I ran shrinkpack -h and it immediately did rm -rf node_modules; rm npm-shrinkwrap.json; npm install. I was surprised and a bit sad as I forgot to git add .

I would like to propose that this program does not run .clean(). Deleting all of these files is going to generate a lot of churn and also take a lot of time.

Furthermore running .rebuild() is also not a good idea. The application developer should drive npm install and shrinkwrap itself. I have an npm-shrinkwrap module ( https://github.com/uber/npm-shrinkwrap ) that I use as a better shrinkwrap and I want to use this module as well.

I would like to propose that this program only does the .save() path.

I'd be willing to open a pull request (with tests!!) to implement this if the feature is welcome.

I would also implement a -h and --help output.

npm install not working

Expected behaviour

I can install dependencies using npm i

Actual behaviour

I can't install dependencies

Steps to reproduce

npm i

Software versions used

OS         :  10.10.5
node.js    :  5.7.0
npm        :  3.9.2
shrinkpack :0.12.3

Log output when running shrinkpack

npm ERR! addLocal Could not install /Users/alejandro/Code/projects/test1/node_modules/dom-serializer/node_shrinkwrap/domelementtype-1.1.3.tgz
npm ERR! addLocal Could not install /Users/alejandro/Code/projects/test1/node_modules/esrecurse/node_shrinkwrap/estraverse-4.1.1.tgz
....
....
npm ERR! enoent ENOENT: no such file or directory, open '/Users/alejandro/Code/projects/test1/node_modules/dom-serializer/node_shrinkwrap/domelementtype-1.1.3.tgz'
npm ERR! enoent ENOENT: no such file or directory, open '/Users/alejandro/Code/projects/test1/node_modules/dom-serializer/node_shrinkwrap/domelementtype-1.1.3.tgz'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent

Contents of your npm-shrinkwrap.json or package.json

SHRINKPACK

{
  "name": "react-slingshot",
  "version": "4.0.0",
  "dependencies": {
    "abab": {
      "version": "1.0.3",
      "from": "abab@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/abab-1.0.3.tgz"
    },
    "abbrev": {
      "version": "1.0.7",
      "from": "abbrev@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/abbrev-1.0.7.tgz"
    },
    "accepts": {
      "version": "1.2.13",
      "from": "accepts@>=1.2.13 <1.3.0",
      "resolved": "./node_shrinkwrap/accepts-1.2.13.tgz"
    },
    "acorn": {
      "version": "2.7.0",
      "from": "acorn@>=2.4.0 <3.0.0",
      "resolved": "./node_shrinkwrap/acorn-2.7.0.tgz"
    },
    "acorn-globals": {
      "version": "1.0.9",
      "from": "acorn-globals@>=1.0.4 <2.0.0",
      "resolved": "./node_shrinkwrap/acorn-globals-1.0.9.tgz"
    },
    "acorn-jsx": {
      "version": "3.0.1",
      "from": "acorn-jsx@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/acorn-jsx-3.0.1.tgz",
      "dependencies": {
        "acorn": {
          "version": "3.1.0",
          "from": "acorn@>=3.0.4 <4.0.0",
          "resolved": "./node_shrinkwrap/acorn-3.1.0.tgz"
        }
      }
    },
    "after": {
      "version": "0.8.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/after-0.8.1.tgz"
    },
    "align-text": {
      "version": "0.1.4",
      "from": "align-text@>=0.1.3 <0.2.0",
      "resolved": "./node_shrinkwrap/align-text-0.1.4.tgz"
    },
    "alphanum-sort": {
      "version": "1.0.2",
      "from": "alphanum-sort@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/alphanum-sort-1.0.2.tgz"
    },
    "amdefine": {
      "version": "1.0.0",
      "from": "amdefine@>=0.0.4",
      "resolved": "./node_shrinkwrap/amdefine-1.0.0.tgz"
    },
    "ansi": {
      "version": "0.3.1",
      "from": "ansi@>=0.3.1 <0.4.0",
      "resolved": "./node_shrinkwrap/ansi-0.3.1.tgz"
    },
    "ansi-escapes": {
      "version": "1.4.0",
      "from": "ansi-escapes@>=1.1.0 <2.0.0",
      "resolved": "./node_shrinkwrap/ansi-escapes-1.4.0.tgz"
    },
    "ansi-html": {
      "version": "0.0.5",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/ansi-html-0.0.5.tgz"
    },
    "ansi-regex": {
      "version": "2.0.0",
      "from": "ansi-regex@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/ansi-regex-2.0.0.tgz"
    },
    "ansi-styles": {
      "version": "2.2.1",
      "from": "ansi-styles@>=2.2.1 <3.0.0",
      "resolved": "./node_shrinkwrap/ansi-styles-2.2.1.tgz"
    },
    "anymatch": {
      "version": "1.3.0",
      "from": "anymatch@>=1.3.0 <2.0.0",
      "resolved": "./node_shrinkwrap/anymatch-1.3.0.tgz"
    },
    "are-we-there-yet": {
      "version": "1.1.2",
      "from": "are-we-there-yet@>=1.1.2 <1.2.0",
      "resolved": "./node_shrinkwrap/are-we-there-yet-1.1.2.tgz"
    },
    "argparse": {
      "version": "0.1.16",
      "from": "argparse@>=0.1.11 <0.2.0",
      "resolved": "./node_shrinkwrap/argparse-0.1.16.tgz"
    },
    "arr-diff": {
      "version": "2.0.0",
      "from": "arr-diff@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/arr-diff-2.0.0.tgz"
    },
    "arr-flatten": {
      "version": "1.0.1",
      "from": "arr-flatten@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/arr-flatten-1.0.1.tgz"
    },
    "array-filter": {
      "version": "0.0.1",
      "from": "array-filter@>=0.0.0 <0.1.0",
      "resolved": "./node_shrinkwrap/array-filter-0.0.1.tgz"
    },
    "array-find-index": {
      "version": "1.0.1",
      "from": "array-find-index@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/array-find-index-1.0.1.tgz"
    },
    "array-index": {
      "version": "1.0.0",
      "from": "array-index@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/array-index-1.0.0.tgz"
    },
    "array-map": {
      "version": "0.0.0",
      "from": "array-map@>=0.0.0 <0.1.0",
      "resolved": "./node_shrinkwrap/array-map-0.0.0.tgz"
    },
    "array-reduce": {
      "version": "0.0.0",
      "from": "array-reduce@>=0.0.0 <0.1.0",
      "resolved": "./node_shrinkwrap/array-reduce-0.0.0.tgz"
    },
    "array-union": {
      "version": "1.0.1",
      "from": "array-union@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/array-union-1.0.1.tgz"
    },
    "array-uniq": {
      "version": "1.0.2",
      "from": "array-uniq@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/array-uniq-1.0.2.tgz"
    },
    "array-unique": {
      "version": "0.2.1",
      "from": "array-unique@>=0.2.1 <0.3.0",
      "resolved": "./node_shrinkwrap/array-unique-0.2.1.tgz"
    },
    "arraybuffer.slice": {
      "version": "0.0.6",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/arraybuffer.slice-0.0.6.tgz"
    },
    "arrify": {
      "version": "1.0.1",
      "from": "arrify@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/arrify-1.0.1.tgz"
    },
    "asap": {
      "version": "2.0.4",
      "from": "asap@>=2.0.3 <2.1.0",
      "resolved": "./node_shrinkwrap/asap-2.0.4.tgz"
    },
    "asn1": {
      "version": "0.2.3",
      "from": "asn1@>=0.2.3 <0.3.0",
      "resolved": "./node_shrinkwrap/asn1-0.2.3.tgz"
    },
    "assert": {
      "version": "1.4.0",
      "from": "assert@>=1.1.1 <2.0.0",
      "resolved": "./node_shrinkwrap/assert-1.4.0.tgz"
    },
    "assert-plus": {
      "version": "0.2.0",
      "from": "assert-plus@>=0.2.0 <0.3.0",
      "resolved": "./node_shrinkwrap/assert-plus-0.2.0.tgz"
    },
    "assertion-error": {
      "version": "1.0.1",
      "from": "assertion-error@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/assertion-error-1.0.1.tgz"
    },
    "async": {
      "version": "1.5.2",
      "from": "async@>=1.5.2 <2.0.0",
      "resolved": "./node_shrinkwrap/async-1.5.2.tgz"
    },
    "async-each": {
      "version": "1.0.0",
      "from": "async-each@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/async-each-1.0.0.tgz"
    },
    "async-each-series": {
      "version": "0.1.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/async-each-series-0.1.1.tgz"
    },
    "async-foreach": {
      "version": "0.1.3",
      "from": "async-foreach@>=0.1.3 <0.2.0",
      "resolved": "./node_shrinkwrap/async-foreach-0.1.3.tgz"
    },
    "autoprefixer": {
      "version": "6.3.6",
      "from": "autoprefixer@>=6.3.1 <7.0.0",
      "resolved": "./node_shrinkwrap/autoprefixer-6.3.6.tgz"
    },
    "aws-sign2": {
      "version": "0.6.0",
      "from": "aws-sign2@>=0.6.0 <0.7.0",
      "resolved": "./node_shrinkwrap/aws-sign2-0.6.0.tgz"
    },
    "aws4": {
      "version": "1.4.1",
      "from": "aws4@>=1.2.1 <2.0.0",
      "resolved": "./node_shrinkwrap/aws4-1.4.1.tgz"
    },
    "babel-cli": {
      "version": "6.8.0",
      "from": "babel-cli@>=6.8.0 <6.9.0",
      "resolved": "./node_shrinkwrap/babel-cli-6.8.0.tgz",
      "dependencies": {
        "chalk": {
          "version": "1.1.1",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/chalk-1.1.1.tgz"
        },
        "lodash": {
          "version": "3.10.1",
          "from": "lodash@>=3.2.0 <4.0.0",
          "resolved": "./node_shrinkwrap/lodash-3.10.1.tgz"
        }
      }
    },
    "babel-code-frame": {
      "version": "6.8.0",
      "from": "babel-code-frame@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-code-frame-6.8.0.tgz"
    },
    "babel-core": {
      "version": "6.8.0",
      "from": "babel-core@>=6.8.0 <6.9.0",
      "resolved": "./node_shrinkwrap/babel-core-6.8.0.tgz",
      "dependencies": {
        "lodash": {
          "version": "3.10.1",
          "from": "lodash@>=3.10.0 <4.0.0",
          "resolved": "./node_shrinkwrap/lodash-3.10.1.tgz"
        }
      }
    },
    "babel-generator": {
      "version": "6.9.0",
      "from": "babel-generator@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-generator-6.9.0.tgz"
    },
    "babel-helper-bindify-decorators": {
      "version": "6.8.0",
      "from": "babel-helper-bindify-decorators@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-helper-bindify-decorators-6.8.0.tgz"
    },
    "babel-helper-builder-binary-assignment-operator-visitor": {
      "version": "6.8.0",
      "from": "babel-helper-builder-binary-assignment-operator-visitor@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-helper-builder-binary-assignment-operator-visitor-6.8.0.tgz"
    },
    "babel-helper-builder-react-jsx": {
      "version": "6.9.0",
      "from": "babel-helper-builder-react-jsx@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-helper-builder-react-jsx-6.9.0.tgz"
    },
    "babel-helper-call-delegate": {
      "version": "6.8.0",
      "from": "babel-helper-call-delegate@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-helper-call-delegate-6.8.0.tgz"
    },
    "babel-helper-define-map": {
      "version": "6.9.0",
      "from": "babel-helper-define-map@>=6.9.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-helper-define-map-6.9.0.tgz"
    },
    "babel-helper-explode-assignable-expression": {
      "version": "6.8.0",
      "from": "babel-helper-explode-assignable-expression@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-helper-explode-assignable-expression-6.8.0.tgz"
    },
    "babel-helper-explode-class": {
      "version": "6.8.0",
      "from": "babel-helper-explode-class@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-helper-explode-class-6.8.0.tgz"
    },
    "babel-helper-function-name": {
      "version": "6.8.0",
      "from": "babel-helper-function-name@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-helper-function-name-6.8.0.tgz"
    },
    "babel-helper-get-function-arity": {
      "version": "6.8.0",
      "from": "babel-helper-get-function-arity@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-helper-get-function-arity-6.8.0.tgz"
    },
    "babel-helper-hoist-variables": {
      "version": "6.8.0",
      "from": "babel-helper-hoist-variables@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-helper-hoist-variables-6.8.0.tgz"
    },
    "babel-helper-optimise-call-expression": {
      "version": "6.8.0",
      "from": "babel-helper-optimise-call-expression@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-helper-optimise-call-expression-6.8.0.tgz"
    },
    "babel-helper-regex": {
      "version": "6.9.0",
      "from": "babel-helper-regex@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-helper-regex-6.9.0.tgz"
    },
    "babel-helper-remap-async-to-generator": {
      "version": "6.8.0",
      "from": "babel-helper-remap-async-to-generator@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-helper-remap-async-to-generator-6.8.0.tgz"
    },
    "babel-helper-replace-supers": {
      "version": "6.8.0",
      "from": "babel-helper-replace-supers@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-helper-replace-supers-6.8.0.tgz"
    },
    "babel-helpers": {
      "version": "6.8.0",
      "from": "babel-helpers@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-helpers-6.8.0.tgz"
    },
    "babel-loader": {
      "version": "6.2.4",
      "from": "babel-loader@>=6.2.4 <6.3.0",
      "resolved": "./node_shrinkwrap/babel-loader-6.2.4.tgz"
    },
    "babel-messages": {
      "version": "6.8.0",
      "from": "babel-messages@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-messages-6.8.0.tgz"
    },
    "babel-plugin-check-es2015-constants": {
      "version": "6.8.0",
      "from": "babel-plugin-check-es2015-constants@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-check-es2015-constants-6.8.0.tgz"
    },
    "babel-plugin-react-display-name": {
      "version": "2.0.0",
      "from": "babel-plugin-react-display-name@>=2.0.0 <2.1.0",
      "resolved": "./node_shrinkwrap/babel-plugin-react-display-name-2.0.0.tgz"
    },
    "babel-plugin-react-transform": {
      "version": "2.0.2",
      "from": "babel-plugin-react-transform@>=2.0.2 <3.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-react-transform-2.0.2.tgz"
    },
    "babel-plugin-syntax-async-functions": {
      "version": "6.8.0",
      "from": "babel-plugin-syntax-async-functions@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-syntax-async-functions-6.8.0.tgz"
    },
    "babel-plugin-syntax-class-constructor-call": {
      "version": "6.8.0",
      "from": "babel-plugin-syntax-class-constructor-call@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-syntax-class-constructor-call-6.8.0.tgz"
    },
    "babel-plugin-syntax-class-properties": {
      "version": "6.8.0",
      "from": "babel-plugin-syntax-class-properties@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-syntax-class-properties-6.8.0.tgz"
    },
    "babel-plugin-syntax-decorators": {
      "version": "6.8.0",
      "from": "babel-plugin-syntax-decorators@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-syntax-decorators-6.8.0.tgz"
    },
    "babel-plugin-syntax-exponentiation-operator": {
      "version": "6.8.0",
      "from": "babel-plugin-syntax-exponentiation-operator@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-syntax-exponentiation-operator-6.8.0.tgz"
    },
    "babel-plugin-syntax-export-extensions": {
      "version": "6.8.0",
      "from": "babel-plugin-syntax-export-extensions@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-syntax-export-extensions-6.8.0.tgz"
    },
    "babel-plugin-syntax-flow": {
      "version": "6.8.0",
      "from": "babel-plugin-syntax-flow@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-syntax-flow-6.8.0.tgz"
    },
    "babel-plugin-syntax-jsx": {
      "version": "6.8.0",
      "from": "babel-plugin-syntax-jsx@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-syntax-jsx-6.8.0.tgz"
    },
    "babel-plugin-syntax-object-rest-spread": {
      "version": "6.8.0",
      "from": "babel-plugin-syntax-object-rest-spread@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-syntax-object-rest-spread-6.8.0.tgz"
    },
    "babel-plugin-syntax-trailing-function-commas": {
      "version": "6.8.0",
      "from": "babel-plugin-syntax-trailing-function-commas@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-syntax-trailing-function-commas-6.8.0.tgz"
    },
    "babel-plugin-transform-async-to-generator": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-async-to-generator@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-async-to-generator-6.8.0.tgz"
    },
    "babel-plugin-transform-class-constructor-call": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-class-constructor-call@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-class-constructor-call-6.8.0.tgz"
    },
    "babel-plugin-transform-class-properties": {
      "version": "6.9.0",
      "from": "babel-plugin-transform-class-properties@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-class-properties-6.9.0.tgz"
    },
    "babel-plugin-transform-decorators": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-decorators@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-decorators-6.8.0.tgz"
    },
    "babel-plugin-transform-es2015-arrow-functions": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-es2015-arrow-functions@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-arrow-functions-6.8.0.tgz"
    },
    "babel-plugin-transform-es2015-block-scoped-functions": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-es2015-block-scoped-functions@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-block-scoped-functions-6.8.0.tgz"
    },
    "babel-plugin-transform-es2015-block-scoping": {
      "version": "6.9.0",
      "from": "babel-plugin-transform-es2015-block-scoping@>=6.6.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-block-scoping-6.9.0.tgz"
    },
    "babel-plugin-transform-es2015-classes": {
      "version": "6.9.0",
      "from": "babel-plugin-transform-es2015-classes@>=6.6.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-classes-6.9.0.tgz"
    },
    "babel-plugin-transform-es2015-computed-properties": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-es2015-computed-properties@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-computed-properties-6.8.0.tgz"
    },
    "babel-plugin-transform-es2015-destructuring": {
      "version": "6.9.0",
      "from": "babel-plugin-transform-es2015-destructuring@>=6.6.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-destructuring-6.9.0.tgz"
    },
    "babel-plugin-transform-es2015-duplicate-keys": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-es2015-duplicate-keys@>=6.6.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz"
    },
    "babel-plugin-transform-es2015-for-of": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-es2015-for-of@>=6.6.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-for-of-6.8.0.tgz"
    },
    "babel-plugin-transform-es2015-function-name": {
      "version": "6.9.0",
      "from": "babel-plugin-transform-es2015-function-name@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-function-name-6.9.0.tgz"
    },
    "babel-plugin-transform-es2015-literals": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-es2015-literals@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-literals-6.8.0.tgz"
    },
    "babel-plugin-transform-es2015-modules-commonjs": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-es2015-modules-commonjs@>=6.6.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-modules-commonjs-6.8.0.tgz"
    },
    "babel-plugin-transform-es2015-object-super": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-es2015-object-super@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-object-super-6.8.0.tgz"
    },
    "babel-plugin-transform-es2015-parameters": {
      "version": "6.9.0",
      "from": "babel-plugin-transform-es2015-parameters@>=6.6.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-parameters-6.9.0.tgz"
    },
    "babel-plugin-transform-es2015-shorthand-properties": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-es2015-shorthand-properties@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-shorthand-properties-6.8.0.tgz"
    },
    "babel-plugin-transform-es2015-spread": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-es2015-spread@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-spread-6.8.0.tgz"
    },
    "babel-plugin-transform-es2015-sticky-regex": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-es2015-sticky-regex@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-sticky-regex-6.8.0.tgz"
    },
    "babel-plugin-transform-es2015-template-literals": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-es2015-template-literals@>=6.6.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-template-literals-6.8.0.tgz"
    },
    "babel-plugin-transform-es2015-typeof-symbol": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-es2015-typeof-symbol@>=6.6.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-typeof-symbol-6.8.0.tgz"
    },
    "babel-plugin-transform-es2015-unicode-regex": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-es2015-unicode-regex@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-es2015-unicode-regex-6.8.0.tgz"
    },
    "babel-plugin-transform-exponentiation-operator": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-exponentiation-operator@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-exponentiation-operator-6.8.0.tgz"
    },
    "babel-plugin-transform-export-extensions": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-export-extensions@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-export-extensions-6.8.0.tgz"
    },
    "babel-plugin-transform-flow-strip-types": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-flow-strip-types@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-flow-strip-types-6.8.0.tgz"
    },
    "babel-plugin-transform-object-rest-spread": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-object-rest-spread@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-object-rest-spread-6.8.0.tgz"
    },
    "babel-plugin-transform-react-display-name": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-react-display-name@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-react-display-name-6.8.0.tgz"
    },
    "babel-plugin-transform-react-jsx": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-react-jsx@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-react-jsx-6.8.0.tgz"
    },
    "babel-plugin-transform-react-jsx-source": {
      "version": "6.9.0",
      "from": "babel-plugin-transform-react-jsx-source@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-react-jsx-source-6.9.0.tgz"
    },
    "babel-plugin-transform-regenerator": {
      "version": "6.9.0",
      "from": "babel-plugin-transform-regenerator@>=6.6.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-regenerator-6.9.0.tgz",
      "dependencies": {
        "babel-core": {
          "version": "6.9.0",
          "from": "babel-core@>=6.9.0 <7.0.0",
          "resolved": "./node_shrinkwrap/babel-core-6.9.0.tgz"
        },
        "babel-register": {
          "version": "6.9.0",
          "from": "babel-register@>=6.9.0 <7.0.0",
          "resolved": "./node_shrinkwrap/babel-register-6.9.0.tgz"
        },
        "core-js": {
          "version": "2.4.0",
          "from": "core-js@>=2.4.0 <3.0.0",
          "resolved": "./node_shrinkwrap/core-js-2.4.0.tgz"
        }
      }
    },
    "babel-plugin-transform-strict-mode": {
      "version": "6.8.0",
      "from": "babel-plugin-transform-strict-mode@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-plugin-transform-strict-mode-6.8.0.tgz"
    },
    "babel-polyfill": {
      "version": "6.9.0",
      "from": "babel-polyfill@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-polyfill-6.9.0.tgz",
      "dependencies": {
        "core-js": {
          "version": "2.4.0",
          "from": "core-js@>=2.4.0 <3.0.0",
          "resolved": "./node_shrinkwrap/core-js-2.4.0.tgz"
        }
      }
    },
    "babel-preset-es2015": {
      "version": "6.6.0",
      "from": "babel-preset-es2015@>=6.6.0 <6.7.0",
      "resolved": "./node_shrinkwrap/babel-preset-es2015-6.6.0.tgz"
    },
    "babel-preset-react": {
      "version": "6.5.0",
      "from": "babel-preset-react@>=6.5.0 <6.6.0",
      "resolved": "./node_shrinkwrap/babel-preset-react-6.5.0.tgz"
    },
    "babel-preset-react-hmre": {
      "version": "1.1.1",
      "from": "babel-preset-react-hmre@>=1.1.1 <1.2.0",
      "resolved": "./node_shrinkwrap/babel-preset-react-hmre-1.1.1.tgz"
    },
    "babel-preset-stage-1": {
      "version": "6.5.0",
      "from": "babel-preset-stage-1@>=6.5.0 <6.6.0",
      "resolved": "./node_shrinkwrap/babel-preset-stage-1-6.5.0.tgz"
    },
    "babel-preset-stage-2": {
      "version": "6.5.0",
      "from": "babel-preset-stage-2@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-preset-stage-2-6.5.0.tgz"
    },
    "babel-preset-stage-3": {
      "version": "6.5.0",
      "from": "babel-preset-stage-3@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-preset-stage-3-6.5.0.tgz"
    },
    "babel-regenerator-runtime": {
      "version": "6.5.0",
      "from": "babel-regenerator-runtime@>=6.3.13 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-regenerator-runtime-6.5.0.tgz"
    },
    "babel-register": {
      "version": "6.8.0",
      "from": "babel-register@>=6.8.0 <6.9.0",
      "resolved": "./node_shrinkwrap/babel-register-6.8.0.tgz",
      "dependencies": {
        "core-js": {
          "version": "2.4.0",
          "from": "core-js@>=2.1.0 <3.0.0",
          "resolved": "./node_shrinkwrap/core-js-2.4.0.tgz"
        },
        "lodash": {
          "version": "3.10.1",
          "from": "lodash@>=3.10.0 <4.0.0",
          "resolved": "./node_shrinkwrap/lodash-3.10.1.tgz"
        }
      }
    },
    "babel-runtime": {
      "version": "6.9.0",
      "from": "babel-runtime@>=6.0.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-runtime-6.9.0.tgz",
      "dependencies": {
        "core-js": {
          "version": "2.4.0",
          "from": "core-js@>=2.4.0 <3.0.0",
          "resolved": "./node_shrinkwrap/core-js-2.4.0.tgz"
        }
      }
    },
    "babel-template": {
      "version": "6.9.0",
      "from": "babel-template@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-template-6.9.0.tgz"
    },
    "babel-traverse": {
      "version": "6.9.0",
      "from": "babel-traverse@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-traverse-6.9.0.tgz"
    },
    "babel-types": {
      "version": "6.9.0",
      "from": "babel-types@>=6.8.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babel-types-6.9.0.tgz"
    },
    "babylon": {
      "version": "6.8.0",
      "from": "babylon@>=6.7.0 <7.0.0",
      "resolved": "./node_shrinkwrap/babylon-6.8.0.tgz"
    },
    "backo2": {
      "version": "1.0.2",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/backo2-1.0.2.tgz"
    },
    "balanced-match": {
      "version": "0.4.1",
      "from": "balanced-match@>=0.4.1 <0.5.0",
      "resolved": "./node_shrinkwrap/balanced-match-0.4.1.tgz"
    },
    "Base64": {
      "version": "0.2.1",
      "from": "Base64@>=0.2.0 <0.3.0",
      "resolved": "./node_shrinkwrap/Base64-0.2.1.tgz"
    },
    "base64-arraybuffer": {
      "version": "0.1.2",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/base64-arraybuffer-0.1.2.tgz"
    },
    "base64-js": {
      "version": "0.0.8",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/base64-js-0.0.8.tgz"
    },
    "base64id": {
      "version": "0.1.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/base64id-0.1.0.tgz"
    },
    "batch": {
      "version": "0.5.3",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/batch-0.5.3.tgz"
    },
    "benchmark": {
      "version": "1.0.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/benchmark-1.0.0.tgz"
    },
    "better-assert": {
      "version": "1.0.2",
      "from": "better-assert@>=1.0.0 <1.1.0",
      "resolved": "./node_shrinkwrap/better-assert-1.0.2.tgz"
    },
    "big.js": {
      "version": "3.1.3",
      "from": "big.js@>=3.1.3 <4.0.0",
      "resolved": "./node_shrinkwrap/big.js-3.1.3.tgz"
    },
    "bin-version": {
      "version": "1.0.4",
      "from": "bin-version@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/bin-version-1.0.4.tgz"
    },
    "bin-version-check": {
      "version": "2.1.0",
      "from": "bin-version-check@>=2.1.0 <3.0.0",
      "resolved": "./node_shrinkwrap/bin-version-check-2.1.0.tgz"
    },
    "binary-extensions": {
      "version": "1.4.1",
      "from": "binary-extensions@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/binary-extensions-1.4.1.tgz"
    },
    "bl": {
      "version": "1.1.2",
      "from": "bl@>=1.1.2 <1.2.0",
      "resolved": "./node_shrinkwrap/bl-1.1.2.tgz",
      "dependencies": {
        "readable-stream": {
          "version": "2.0.6",
          "from": "readable-stream@>=2.0.5 <2.1.0",
          "resolved": "./node_shrinkwrap/readable-stream-2.0.6.tgz"
        }
      }
    },
    "blob": {
      "version": "0.0.4",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/blob-0.0.4.tgz"
    },
    "block-stream": {
      "version": "0.0.9",
      "from": "block-stream@*",
      "resolved": "./node_shrinkwrap/block-stream-0.0.9.tgz"
    },
    "bluebird": {
      "version": "3.4.0",
      "from": "bluebird@>=3.1.1 <4.0.0",
      "resolved": "./node_shrinkwrap/bluebird-3.4.0.tgz"
    },
    "boolbase": {
      "version": "1.0.0",
      "from": "boolbase@>=1.0.0 <1.1.0",
      "resolved": "./node_shrinkwrap/boolbase-1.0.0.tgz"
    },
    "boom": {
      "version": "2.10.1",
      "from": "boom@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/boom-2.10.1.tgz"
    },
    "brace-expansion": {
      "version": "1.1.4",
      "from": "brace-expansion@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/brace-expansion-1.1.4.tgz"
    },
    "braces": {
      "version": "1.8.5",
      "from": "braces@>=1.8.2 <2.0.0",
      "resolved": "./node_shrinkwrap/braces-1.8.5.tgz"
    },
    "browser-sync": {
      "version": "2.12.8",
      "from": "browser-sync@>=2.12.5 <2.13.0",
      "resolved": "./node_shrinkwrap/browser-sync-2.12.8.tgz",
      "dependencies": {
        "chokidar": {
          "version": "1.4.3",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/chokidar-1.4.3.tgz"
        },
        "immutable": {
          "version": "3.7.6",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/immutable-3.7.6.tgz"
        },
        "lodash": {
          "version": "4.10.0",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/lodash-4.10.0.tgz"
        },
        "micromatch": {
          "version": "2.3.7",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/micromatch-2.3.7.tgz"
        }
      }
    },
    "browser-sync-client": {
      "version": "2.4.2",
      "from": "browser-sync-client@>=2.3.3 <3.0.0",
      "resolved": "./node_shrinkwrap/browser-sync-client-2.4.2.tgz"
    },
    "browser-sync-ui": {
      "version": "0.5.19",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/browser-sync-ui-0.5.19.tgz"
    },
    "browserify-zlib": {
      "version": "0.1.4",
      "from": "browserify-zlib@>=0.1.4 <0.2.0",
      "resolved": "./node_shrinkwrap/browserify-zlib-0.1.4.tgz"
    },
    "browserslist": {
      "version": "1.3.1",
      "from": "browserslist@>=1.3.1 <1.4.0",
      "resolved": "./node_shrinkwrap/browserslist-1.3.1.tgz"
    },
    "bs-recipes": {
      "version": "1.2.2",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/bs-recipes-1.2.2.tgz"
    },
    "buffer": {
      "version": "3.6.0",
      "from": "buffer@>=3.0.3 <4.0.0",
      "resolved": "./node_shrinkwrap/buffer-3.6.0.tgz"
    },
    "buffer-shims": {
      "version": "1.0.0",
      "from": "buffer-shims@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/buffer-shims-1.0.0.tgz"
    },
    "builtin-modules": {
      "version": "1.1.1",
      "from": "builtin-modules@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/builtin-modules-1.1.1.tgz"
    },
    "caller-path": {
      "version": "0.1.0",
      "from": "caller-path@>=0.1.0 <0.2.0",
      "resolved": "./node_shrinkwrap/caller-path-0.1.0.tgz"
    },
    "callsite": {
      "version": "1.0.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/callsite-1.0.0.tgz"
    },
    "callsites": {
      "version": "0.2.0",
      "from": "callsites@>=0.2.0 <0.3.0",
      "resolved": "./node_shrinkwrap/callsites-0.2.0.tgz"
    },
    "camelcase": {
      "version": "2.1.1",
      "from": "camelcase@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/camelcase-2.1.1.tgz"
    },
    "camelcase-keys": {
      "version": "2.1.0",
      "from": "camelcase-keys@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/camelcase-keys-2.1.0.tgz"
    },
    "caniuse-db": {
      "version": "1.0.30000470",
      "from": "caniuse-db@>=1.0.30000444 <2.0.0",
      "resolved": "./node_shrinkwrap/caniuse-db-1.0.30000470.tgz"
    },
    "caseless": {
      "version": "0.11.0",
      "from": "caseless@>=0.11.0 <0.12.0",
      "resolved": "./node_shrinkwrap/caseless-0.11.0.tgz"
    },
    "center-align": {
      "version": "0.1.3",
      "from": "center-align@>=0.1.1 <0.2.0",
      "resolved": "./node_shrinkwrap/center-align-0.1.3.tgz"
    },
    "chai": {
      "version": "3.5.0",
      "from": "chai@>=3.5.0 <3.6.0",
      "resolved": "./node_shrinkwrap/chai-3.5.0.tgz"
    },
    "chalk": {
      "version": "1.1.3",
      "from": "chalk@>=1.1.3 <1.2.0",
      "resolved": "./node_shrinkwrap/chalk-1.1.3.tgz"
    },
    "cheerio": {
      "version": "0.20.0",
      "from": "cheerio@>=0.20.0 <0.21.0",
      "resolved": "./node_shrinkwrap/cheerio-0.20.0.tgz"
    },
    "chokidar": {
      "version": "1.5.1",
      "from": "chokidar@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/chokidar-1.5.1.tgz"
    },
    "clap": {
      "version": "1.1.1",
      "from": "clap@>=1.0.9 <2.0.0",
      "resolved": "./node_shrinkwrap/clap-1.1.1.tgz"
    },
    "cli-cursor": {
      "version": "1.0.2",
      "from": "cli-cursor@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/cli-cursor-1.0.2.tgz"
    },
    "cli-width": {
      "version": "2.1.0",
      "from": "cli-width@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/cli-width-2.1.0.tgz"
    },
    "cliui": {
      "version": "3.2.0",
      "from": "cliui@>=3.0.3 <4.0.0",
      "resolved": "./node_shrinkwrap/cliui-3.2.0.tgz"
    },
    "clone": {
      "version": "1.0.2",
      "from": "clone@>=1.0.2 <2.0.0",
      "resolved": "./node_shrinkwrap/clone-1.0.2.tgz"
    },
    "coa": {
      "version": "1.0.1",
      "from": "coa@>=1.0.1 <1.1.0",
      "resolved": "./node_shrinkwrap/coa-1.0.1.tgz"
    },
    "code-point-at": {
      "version": "1.0.0",
      "from": "code-point-at@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/code-point-at-1.0.0.tgz"
    },
    "color": {
      "version": "0.11.1",
      "from": "color@>=0.11.0 <0.12.0",
      "resolved": "./node_shrinkwrap/color-0.11.1.tgz"
    },
    "color-convert": {
      "version": "0.5.3",
      "from": "color-convert@>=0.5.3 <0.6.0",
      "resolved": "./node_shrinkwrap/color-convert-0.5.3.tgz"
    },
    "color-name": {
      "version": "1.1.1",
      "from": "color-name@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/color-name-1.1.1.tgz"
    },
    "color-string": {
      "version": "0.3.0",
      "from": "color-string@>=0.3.0 <0.4.0",
      "resolved": "./node_shrinkwrap/color-string-0.3.0.tgz"
    },
    "colormin": {
      "version": "1.1.0",
      "from": "colormin@>=1.0.5 <2.0.0",
      "resolved": "./node_shrinkwrap/colormin-1.1.0.tgz"
    },
    "colors": {
      "version": "1.1.2",
      "from": "colors@>=1.1.2 <1.2.0",
      "resolved": "./node_shrinkwrap/colors-1.1.2.tgz"
    },
    "combined-stream": {
      "version": "1.0.5",
      "from": "combined-stream@>=1.0.5 <1.1.0",
      "resolved": "./node_shrinkwrap/combined-stream-1.0.5.tgz"
    },
    "commander": {
      "version": "2.9.0",
      "from": "commander@>=2.8.1 <3.0.0",
      "resolved": "./node_shrinkwrap/commander-2.9.0.tgz"
    },
    "component-bind": {
      "version": "1.0.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/component-bind-1.0.0.tgz"
    },
    "component-emitter": {
      "version": "1.1.2",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/component-emitter-1.1.2.tgz"
    },
    "component-inherit": {
      "version": "0.0.3",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/component-inherit-0.0.3.tgz"
    },
    "concat-map": {
      "version": "0.0.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/concat-map-0.0.1.tgz"
    },
    "concat-stream": {
      "version": "1.5.1",
      "from": "concat-stream@>=1.4.6 <2.0.0",
      "resolved": "./node_shrinkwrap/concat-stream-1.5.1.tgz",
      "dependencies": {
        "readable-stream": {
          "version": "2.0.6",
          "from": "readable-stream@>=2.0.0 <2.1.0",
          "resolved": "./node_shrinkwrap/readable-stream-2.0.6.tgz"
        }
      }
    },
    "connect": {
      "version": "3.4.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/connect-3.4.1.tgz"
    },
    "connect-history-api-fallback": {
      "version": "1.2.0",
      "from": "connect-history-api-fallback@>=1.2.0 <1.3.0",
      "resolved": "./node_shrinkwrap/connect-history-api-fallback-1.2.0.tgz"
    },
    "console-browserify": {
      "version": "1.1.0",
      "from": "console-browserify@>=1.1.0 <2.0.0",
      "resolved": "./node_shrinkwrap/console-browserify-1.1.0.tgz"
    },
    "constants-browserify": {
      "version": "0.0.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/constants-browserify-0.0.1.tgz"
    },
    "convert-source-map": {
      "version": "1.2.0",
      "from": "convert-source-map@>=1.1.0 <2.0.0",
      "resolved": "./node_shrinkwrap/convert-source-map-1.2.0.tgz"
    },
    "core-js": {
      "version": "1.2.6",
      "from": "core-js@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/core-js-1.2.6.tgz"
    },
    "core-util-is": {
      "version": "1.0.2",
      "from": "core-util-is@>=1.0.0 <1.1.0",
      "resolved": "./node_shrinkwrap/core-util-is-1.0.2.tgz"
    },
    "coveralls": {
      "version": "2.11.9",
      "from": "coveralls@>=2.11.9 <2.12.0",
      "resolved": "./node_shrinkwrap/coveralls-2.11.9.tgz",
      "dependencies": {
        "bl": {
          "version": "1.0.3",
          "from": "bl@>=1.0.0 <1.1.0",
          "resolved": "./node_shrinkwrap/bl-1.0.3.tgz"
        },
        "qs": {
          "version": "5.2.0",
          "from": "qs@>=5.2.0 <5.3.0",
          "resolved": "./node_shrinkwrap/qs-5.2.0.tgz"
        },
        "readable-stream": {
          "version": "2.0.6",
          "from": "readable-stream@>=2.0.5 <2.1.0",
          "resolved": "./node_shrinkwrap/readable-stream-2.0.6.tgz"
        },
        "request": {
          "version": "2.67.0",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/request-2.67.0.tgz"
        }
      }
    },
    "cross-env": {
      "version": "1.0.8",
      "from": "cross-env@>=1.0.7 <1.1.0",
      "resolved": "./node_shrinkwrap/cross-env-1.0.8.tgz",
      "dependencies": {
        "lodash.assign": {
          "version": "3.2.0",
          "from": "lodash.assign@>=3.2.0 <4.0.0",
          "resolved": "./node_shrinkwrap/lodash.assign-3.2.0.tgz"
        },
        "lodash.keys": {
          "version": "3.1.2",
          "from": "lodash.keys@>=3.0.0 <4.0.0",
          "resolved": "./node_shrinkwrap/lodash.keys-3.1.2.tgz"
        }
      }
    },
    "cross-spawn": {
      "version": "3.0.1",
      "from": "cross-spawn@>=3.0.1 <4.0.0",
      "resolved": "./node_shrinkwrap/cross-spawn-3.0.1.tgz"
    },
    "cross-spawn-async": {
      "version": "2.2.4",
      "from": "cross-spawn-async@>=2.1.9 <3.0.0",
      "resolved": "./node_shrinkwrap/cross-spawn-async-2.2.4.tgz"
    },
    "cryptiles": {
      "version": "2.0.5",
      "from": "cryptiles@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/cryptiles-2.0.5.tgz"
    },
    "crypto-browserify": {
      "version": "3.2.8",
      "from": "crypto-browserify@>=3.2.6 <3.3.0",
      "resolved": "./node_shrinkwrap/crypto-browserify-3.2.8.tgz"
    },
    "css-color-names": {
      "version": "0.0.3",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/css-color-names-0.0.3.tgz"
    },
    "css-loader": {
      "version": "0.23.1",
      "from": "css-loader@>=0.23.1 <0.24.0",
      "resolved": "./node_shrinkwrap/css-loader-0.23.1.tgz"
    },
    "css-select": {
      "version": "1.2.0",
      "from": "css-select@>=1.2.0 <1.3.0",
      "resolved": "./node_shrinkwrap/css-select-1.2.0.tgz"
    },
    "css-selector-tokenizer": {
      "version": "0.5.4",
      "from": "css-selector-tokenizer@>=0.5.1 <0.6.0",
      "resolved": "./node_shrinkwrap/css-selector-tokenizer-0.5.4.tgz"
    },
    "css-what": {
      "version": "2.1.0",
      "from": "css-what@>=2.1.0 <2.2.0",
      "resolved": "./node_shrinkwrap/css-what-2.1.0.tgz"
    },
    "cssesc": {
      "version": "0.1.0",
      "from": "cssesc@>=0.1.0 <0.2.0",
      "resolved": "./node_shrinkwrap/cssesc-0.1.0.tgz"
    },
    "cssnano": {
      "version": "3.6.2",
      "from": "cssnano@>=2.6.1 <4.0.0",
      "resolved": "./node_shrinkwrap/cssnano-3.6.2.tgz"
    },
    "csso": {
      "version": "2.0.0",
      "from": "csso@>=2.0.0 <2.1.0",
      "resolved": "./node_shrinkwrap/csso-2.0.0.tgz"
    },
    "cssom": {
      "version": "0.3.1",
      "from": "cssom@>=0.3.0 <0.4.0",
      "resolved": "./node_shrinkwrap/cssom-0.3.1.tgz"
    },
    "cssstyle": {
      "version": "0.2.36",
      "from": "cssstyle@>=0.2.29 <0.3.0",
      "resolved": "./node_shrinkwrap/cssstyle-0.2.36.tgz"
    },
    "ctype": {
      "version": "0.5.3",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/ctype-0.5.3.tgz"
    },
    "d": {
      "version": "0.1.1",
      "from": "d@>=0.1.1 <0.2.0",
      "resolved": "./node_shrinkwrap/d-0.1.1.tgz"
    },
    "dashdash": {
      "version": "1.13.1",
      "from": "dashdash@>=1.12.0 <2.0.0",
      "resolved": "./node_shrinkwrap/dashdash-1.13.1.tgz",
      "dependencies": {
        "assert-plus": {
          "version": "1.0.0",
          "from": "assert-plus@>=1.0.0 <2.0.0",
          "resolved": "./node_shrinkwrap/assert-plus-1.0.0.tgz"
        }
      }
    },
    "date-now": {
      "version": "0.1.4",
      "from": "date-now@>=0.1.4 <0.2.0",
      "resolved": "./node_shrinkwrap/date-now-0.1.4.tgz"
    },
    "debug": {
      "version": "2.2.0",
      "from": "debug@>=2.1.1 <3.0.0",
      "resolved": "./node_shrinkwrap/debug-2.2.0.tgz"
    },
    "decamelize": {
      "version": "1.2.0",
      "from": "decamelize@>=1.1.2 <2.0.0",
      "resolved": "./node_shrinkwrap/decamelize-1.2.0.tgz"
    },
    "deep-eql": {
      "version": "0.1.3",
      "from": "deep-eql@>=0.1.3 <0.2.0",
      "resolved": "./node_shrinkwrap/deep-eql-0.1.3.tgz",
      "dependencies": {
        "type-detect": {
          "version": "0.1.1",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/type-detect-0.1.1.tgz"
        }
      }
    },
    "deep-equal": {
      "version": "1.0.1",
      "from": "deep-equal@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/deep-equal-1.0.1.tgz"
    },
    "deep-is": {
      "version": "0.1.3",
      "from": "deep-is@>=0.1.3 <0.2.0",
      "resolved": "./node_shrinkwrap/deep-is-0.1.3.tgz"
    },
    "define-properties": {
      "version": "1.1.2",
      "from": "define-properties@>=1.1.2 <2.0.0",
      "resolved": "./node_shrinkwrap/define-properties-1.1.2.tgz"
    },
    "defined": {
      "version": "1.0.0",
      "from": "defined@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/defined-1.0.0.tgz"
    },
    "del": {
      "version": "2.2.0",
      "from": "del@>=2.0.2 <3.0.0",
      "resolved": "./node_shrinkwrap/del-2.2.0.tgz"
    },
    "delayed-stream": {
      "version": "1.0.0",
      "from": "delayed-stream@>=1.0.0 <1.1.0",
      "resolved": "./node_shrinkwrap/delayed-stream-1.0.0.tgz"
    },
    "delegates": {
      "version": "1.0.0",
      "from": "delegates@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/delegates-1.0.0.tgz"
    },
    "depd": {
      "version": "1.1.0",
      "from": "depd@>=1.1.0 <1.2.0",
      "resolved": "./node_shrinkwrap/depd-1.1.0.tgz"
    },
    "destroy": {
      "version": "1.0.4",
      "from": "destroy@>=1.0.4 <1.1.0",
      "resolved": "./node_shrinkwrap/destroy-1.0.4.tgz"
    },
    "detect-indent": {
      "version": "3.0.1",
      "from": "detect-indent@>=3.0.1 <4.0.0",
      "resolved": "./node_shrinkwrap/detect-indent-3.0.1.tgz"
    },
    "dev-ip": {
      "version": "1.0.1",
      "from": "dev-ip@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/dev-ip-1.0.1.tgz"
    },
    "diff": {
      "version": "1.4.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/diff-1.4.0.tgz"
    },
    "doctrine": {
      "version": "1.2.2",
      "from": "doctrine@>=1.2.1 <2.0.0",
      "resolved": "./node_shrinkwrap/doctrine-1.2.2.tgz",
      "dependencies": {
        "esutils": {
          "version": "1.1.6",
          "from": "esutils@>=1.1.6 <2.0.0",
          "resolved": "./node_shrinkwrap/esutils-1.1.6.tgz"
        }
      }
    },
    "dom-serializer": {
      "version": "0.1.0",
      "from": "dom-serializer@>=0.1.0 <0.2.0",
      "resolved": "./node_shrinkwrap/dom-serializer-0.1.0.tgz",
      "dependencies": {
        "domelementtype": {
          "version": "1.1.3",
          "from": "domelementtype@>=1.1.1 <1.2.0",
          "resolved": "./node_shrinkwrap/domelementtype-1.1.3.tgz"
        }
      }
    },
    "dom-walk": {
      "version": "0.1.1",
      "from": "dom-walk@>=0.1.0 <0.2.0",
      "resolved": "./node_shrinkwrap/dom-walk-0.1.1.tgz"
    },
    "domain-browser": {
      "version": "1.1.7",
      "from": "domain-browser@>=1.1.1 <2.0.0",
      "resolved": "./node_shrinkwrap/domain-browser-1.1.7.tgz"
    },
    "domelementtype": {
      "version": "1.3.0",
      "from": "domelementtype@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/domelementtype-1.3.0.tgz"
    },
    "domhandler": {
      "version": "2.3.0",
      "from": "domhandler@>=2.3.0 <2.4.0",
      "resolved": "./node_shrinkwrap/domhandler-2.3.0.tgz"
    },
    "domutils": {
      "version": "1.5.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/domutils-1.5.1.tgz"
    },
    "duplexer": {
      "version": "0.1.1",
      "from": "duplexer@>=0.1.1 <0.2.0",
      "resolved": "./node_shrinkwrap/duplexer-0.1.1.tgz"
    },
    "easy-extender": {
      "version": "2.3.2",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/easy-extender-2.3.2.tgz",
      "dependencies": {
        "lodash": {
          "version": "3.10.1",
          "from": "lodash@>=3.10.1 <4.0.0",
          "resolved": "./node_shrinkwrap/lodash-3.10.1.tgz"
        }
      }
    },
    "eazy-logger": {
      "version": "2.1.3",
      "from": "eazy-logger@>=2.1.2 <3.0.0",
      "resolved": "./node_shrinkwrap/eazy-logger-2.1.3.tgz"
    },
    "ecc-jsbn": {
      "version": "0.1.1",
      "from": "ecc-jsbn@>=0.1.1 <0.2.0",
      "resolved": "./node_shrinkwrap/ecc-jsbn-0.1.1.tgz"
    },
    "ee-first": {
      "version": "1.1.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/ee-first-1.1.1.tgz"
    },
    "emitter-steward": {
      "version": "1.0.0",
      "from": "emitter-steward@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/emitter-steward-1.0.0.tgz"
    },
    "emojis-list": {
      "version": "2.0.1",
      "from": "emojis-list@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/emojis-list-2.0.1.tgz"
    },
    "encoding": {
      "version": "0.1.12",
      "from": "encoding@>=0.1.11 <0.2.0",
      "resolved": "./node_shrinkwrap/encoding-0.1.12.tgz"
    },
    "engine.io": {
      "version": "1.6.8",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/engine.io-1.6.8.tgz",
      "dependencies": {
        "accepts": {
          "version": "1.1.4",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/accepts-1.1.4.tgz"
        },
        "mime-db": {
          "version": "1.12.0",
          "from": "mime-db@>=1.12.0 <1.13.0",
          "resolved": "./node_shrinkwrap/mime-db-1.12.0.tgz"
        },
        "mime-types": {
          "version": "2.0.14",
          "from": "mime-types@>=2.0.4 <2.1.0",
          "resolved": "./node_shrinkwrap/mime-types-2.0.14.tgz"
        },
        "negotiator": {
          "version": "0.4.9",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/negotiator-0.4.9.tgz"
        }
      }
    },
    "engine.io-client": {
      "version": "1.6.8",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/engine.io-client-1.6.8.tgz"
    },
    "engine.io-parser": {
      "version": "1.2.4",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/engine.io-parser-1.2.4.tgz",
      "dependencies": {
        "has-binary": {
          "version": "0.1.6",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/has-binary-0.1.6.tgz"
        },
        "isarray": {
          "version": "0.0.1",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/isarray-0.0.1.tgz"
        }
      }
    },
    "enhanced-resolve": {
      "version": "0.9.1",
      "from": "enhanced-resolve@>=0.9.0 <0.10.0",
      "resolved": "./node_shrinkwrap/enhanced-resolve-0.9.1.tgz",
      "dependencies": {
        "memory-fs": {
          "version": "0.2.0",
          "from": "memory-fs@>=0.2.0 <0.3.0",
          "resolved": "./node_shrinkwrap/memory-fs-0.2.0.tgz"
        }
      }
    },
    "entities": {
      "version": "1.1.1",
      "from": "entities@>=1.1.1 <1.2.0",
      "resolved": "./node_shrinkwrap/entities-1.1.1.tgz"
    },
    "enzyme": {
      "version": "2.2.0",
      "from": "enzyme@>=2.2.0 <2.3.0",
      "resolved": "./node_shrinkwrap/enzyme-2.2.0.tgz"
    },
    "errno": {
      "version": "0.1.4",
      "from": "errno@>=0.1.3 <0.2.0",
      "resolved": "./node_shrinkwrap/errno-0.1.4.tgz"
    },
    "error-ex": {
      "version": "1.3.0",
      "from": "error-ex@>=1.2.0 <2.0.0",
      "resolved": "./node_shrinkwrap/error-ex-1.3.0.tgz"
    },
    "error-stack-parser": {
      "version": "1.3.6",
      "from": "error-stack-parser@>=1.3.6 <2.0.0",
      "resolved": "./node_shrinkwrap/error-stack-parser-1.3.6.tgz"
    },
    "es-abstract": {
      "version": "1.5.0",
      "from": "es-abstract@>=1.3.2 <2.0.0",
      "resolved": "./node_shrinkwrap/es-abstract-1.5.0.tgz"
    },
    "es-to-primitive": {
      "version": "1.1.1",
      "from": "es-to-primitive@>=1.1.0 <2.0.0",
      "resolved": "./node_shrinkwrap/es-to-primitive-1.1.1.tgz"
    },
    "es5-ext": {
      "version": "0.10.11",
      "from": "es5-ext@>=0.10.8 <0.11.0",
      "resolved": "./node_shrinkwrap/es5-ext-0.10.11.tgz"
    },
    "es6-iterator": {
      "version": "2.0.0",
      "from": "es6-iterator@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/es6-iterator-2.0.0.tgz"
    },
    "es6-map": {
      "version": "0.1.3",
      "from": "es6-map@>=0.1.3 <0.2.0",
      "resolved": "./node_shrinkwrap/es6-map-0.1.3.tgz"
    },
    "es6-set": {
      "version": "0.1.4",
      "from": "es6-set@>=0.1.3 <0.2.0",
      "resolved": "./node_shrinkwrap/es6-set-0.1.4.tgz"
    },
    "es6-symbol": {
      "version": "3.0.2",
      "from": "es6-symbol@>=3.0.1 <3.1.0",
      "resolved": "./node_shrinkwrap/es6-symbol-3.0.2.tgz"
    },
    "es6-weak-map": {
      "version": "2.0.1",
      "from": "es6-weak-map@>=2.0.1 <3.0.0",
      "resolved": "./node_shrinkwrap/es6-weak-map-2.0.1.tgz"
    },
    "escape-html": {
      "version": "1.0.3",
      "from": "escape-html@>=1.0.3 <1.1.0",
      "resolved": "./node_shrinkwrap/escape-html-1.0.3.tgz"
    },
    "escape-string-regexp": {
      "version": "1.0.5",
      "from": "escape-string-regexp@>=1.0.2 <2.0.0",
      "resolved": "./node_shrinkwrap/escape-string-regexp-1.0.5.tgz"
    },
    "escodegen": {
      "version": "1.8.0",
      "from": "escodegen@>=1.6.1 <2.0.0",
      "resolved": "./node_shrinkwrap/escodegen-1.8.0.tgz",
      "dependencies": {
        "source-map": {
          "version": "0.2.0",
          "from": "source-map@>=0.2.0 <0.3.0",
          "resolved": "./node_shrinkwrap/source-map-0.2.0.tgz"
        }
      }
    },
    "escope": {
      "version": "3.6.0",
      "from": "escope@>=3.6.0 <4.0.0",
      "resolved": "./node_shrinkwrap/escope-3.6.0.tgz",
      "dependencies": {
        "estraverse": {
          "version": "4.2.0",
          "from": "estraverse@>=4.1.1 <5.0.0",
          "resolved": "./node_shrinkwrap/estraverse-4.2.0.tgz"
        }
      }
    },
    "eslint": {
      "version": "2.9.0",
      "from": "eslint@>=2.9.0 <2.10.0",
      "resolved": "./node_shrinkwrap/eslint-2.9.0.tgz",
      "dependencies": {
        "argparse": {
          "version": "1.0.7",
          "from": "argparse@>=1.0.7 <2.0.0",
          "resolved": "./node_shrinkwrap/argparse-1.0.7.tgz"
        },
        "estraverse": {
          "version": "4.2.0",
          "from": "estraverse@>=4.2.0 <5.0.0",
          "resolved": "./node_shrinkwrap/estraverse-4.2.0.tgz"
        },
        "glob": {
          "version": "7.0.3",
          "from": "glob@>=7.0.3 <8.0.0",
          "resolved": "./node_shrinkwrap/glob-7.0.3.tgz"
        },
        "globals": {
          "version": "9.7.0",
          "from": "globals@>=9.2.0 <10.0.0",
          "resolved": "./node_shrinkwrap/globals-9.7.0.tgz"
        },
        "js-yaml": {
          "version": "3.6.1",
          "from": "js-yaml@>=3.5.1 <4.0.0",
          "resolved": "./node_shrinkwrap/js-yaml-3.6.1.tgz"
        },
        "user-home": {
          "version": "2.0.0",
          "from": "user-home@>=2.0.0 <3.0.0",
          "resolved": "./node_shrinkwrap/user-home-2.0.0.tgz"
        }
      }
    },
    "eslint-config-airbnb": {
      "version": "8.0.0",
      "from": "eslint-config-airbnb@>=8.0.0 <8.1.0",
      "resolved": "./node_shrinkwrap/eslint-config-airbnb-8.0.0.tgz"
    },
    "eslint-config-airbnb-base": {
      "version": "1.0.4",
      "from": "eslint-config-airbnb-base@>=1.0.2 <2.0.0",
      "resolved": "./node_shrinkwrap/eslint-config-airbnb-base-1.0.4.tgz"
    },
    "eslint-import-resolver-node": {
      "version": "0.2.0",
      "from": "eslint-import-resolver-node@>=0.2.0 <0.3.0",
      "resolved": "./node_shrinkwrap/eslint-import-resolver-node-0.2.0.tgz"
    },
    "eslint-plugin-import": {
      "version": "1.6.1",
      "from": "eslint-plugin-import@>=1.6.1 <1.7.0",
      "resolved": "./node_shrinkwrap/eslint-plugin-import-1.6.1.tgz"
    },
    "eslint-plugin-jsx-a11y": {
      "version": "1.0.4",
      "from": "eslint-plugin-jsx-a11y@>=1.0.4 <1.1.0",
      "resolved": "./node_shrinkwrap/eslint-plugin-jsx-a11y-1.0.4.tgz"
    },
    "eslint-plugin-react": {
      "version": "5.0.1",
      "from": "eslint-plugin-react@>=5.0.1 <5.1.0",
      "resolved": "./node_shrinkwrap/eslint-plugin-react-5.0.1.tgz"
    },
    "eslint-watch": {
      "version": "2.1.11",
      "from": "eslint-watch@>=2.1.11 <2.2.0",
      "resolved": "./node_shrinkwrap/eslint-watch-2.1.11.tgz",
      "dependencies": {
        "lodash": {
          "version": "3.10.1",
          "from": "lodash@>=3.10.1 <4.0.0",
          "resolved": "./node_shrinkwrap/lodash-3.10.1.tgz"
        }
      }
    },
    "espree": {
      "version": "3.1.4",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/espree-3.1.4.tgz",
      "dependencies": {
        "acorn": {
          "version": "3.1.0",
          "from": "acorn@>=3.1.0 <4.0.0",
          "resolved": "./node_shrinkwrap/acorn-3.1.0.tgz"
        }
      }
    },
    "esprima": {
      "version": "2.7.2",
      "from": "esprima@>=2.7.1 <3.0.0",
      "resolved": "./node_shrinkwrap/esprima-2.7.2.tgz"
    },
    "esrecurse": {
      "version": "4.1.0",
      "from": "esrecurse@>=4.1.0 <5.0.0",
      "resolved": "./node_shrinkwrap/esrecurse-4.1.0.tgz",
      "dependencies": {
        "estraverse": {
          "version": "4.1.1",
          "from": "estraverse@>=4.1.0 <4.2.0",
          "resolved": "./node_shrinkwrap/estraverse-4.1.1.tgz"
        }
      }
    },
    "estraverse": {
      "version": "1.9.3",
      "from": "estraverse@>=1.9.1 <2.0.0",
      "resolved": "./node_shrinkwrap/estraverse-1.9.3.tgz"
    },
    "esutils": {
      "version": "2.0.2",
      "from": "esutils@>=2.0.2 <3.0.0",
      "resolved": "./node_shrinkwrap/esutils-2.0.2.tgz"
    },
    "etag": {
      "version": "1.7.0",
      "from": "etag@>=1.7.0 <2.0.0",
      "resolved": "./node_shrinkwrap/etag-1.7.0.tgz"
    },
    "event-emitter": {
      "version": "0.3.4",
      "from": "event-emitter@>=0.3.4 <0.4.0",
      "resolved": "./node_shrinkwrap/event-emitter-0.3.4.tgz"
    },
    "event-stream": {
      "version": "3.3.2",
      "from": "event-stream@>=3.3.0 <3.4.0",
      "resolved": "./node_shrinkwrap/event-stream-3.3.2.tgz"
    },
    "eventemitter3": {
      "version": "1.2.0",
      "from": "eventemitter3@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/eventemitter3-1.2.0.tgz"
    },
    "events": {
      "version": "1.1.0",
      "from": "events@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/events-1.1.0.tgz"
    },
    "exit-hook": {
      "version": "1.1.1",
      "from": "exit-hook@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/exit-hook-1.1.1.tgz"
    },
    "expand-brackets": {
      "version": "0.1.5",
      "from": "expand-brackets@>=0.1.4 <0.2.0",
      "resolved": "./node_shrinkwrap/expand-brackets-0.1.5.tgz"
    },
    "expand-range": {
      "version": "1.8.2",
      "from": "expand-range@>=1.8.1 <2.0.0",
      "resolved": "./node_shrinkwrap/expand-range-1.8.2.tgz"
    },
    "express": {
      "version": "2.5.11",
      "from": "express@>=2.5.0 <2.6.0",
      "resolved": "./node_shrinkwrap/express-2.5.11.tgz",
      "dependencies": {
        "connect": {
          "version": "1.9.2",
          "from": "connect@>=1.0.0 <2.0.0",
          "resolved": "./node_shrinkwrap/connect-1.9.2.tgz"
        },
        "mkdirp": {
          "version": "0.3.0",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/mkdirp-0.3.0.tgz"
        },
        "qs": {
          "version": "0.4.2",
          "from": "qs@>=0.4.0 <0.5.0",
          "resolved": "./node_shrinkwrap/qs-0.4.2.tgz"
        }
      }
    },
    "extend": {
      "version": "3.0.0",
      "from": "extend@>=3.0.0 <3.1.0",
      "resolved": "./node_shrinkwrap/extend-3.0.0.tgz"
    },
    "extglob": {
      "version": "0.3.2",
      "from": "extglob@>=0.3.1 <0.4.0",
      "resolved": "./node_shrinkwrap/extglob-0.3.2.tgz"
    },
    "extract-text-webpack-plugin": {
      "version": "1.0.1",
      "from": "extract-text-webpack-plugin@>=1.0.1 <1.1.0",
      "resolved": "./node_shrinkwrap/extract-text-webpack-plugin-1.0.1.tgz"
    },
    "extsprintf": {
      "version": "1.0.2",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/extsprintf-1.0.2.tgz"
    },
    "fast-levenshtein": {
      "version": "1.1.3",
      "from": "fast-levenshtein@>=1.1.0 <2.0.0",
      "resolved": "./node_shrinkwrap/fast-levenshtein-1.1.3.tgz"
    },
    "fastparse": {
      "version": "1.1.1",
      "from": "fastparse@>=1.1.1 <2.0.0",
      "resolved": "./node_shrinkwrap/fastparse-1.1.1.tgz"
    },
    "fbjs": {
      "version": "0.8.3",
      "from": "fbjs@>=0.8.0 <0.9.0",
      "resolved": "./node_shrinkwrap/fbjs-0.8.3.tgz"
    },
    "figures": {
      "version": "1.7.0",
      "from": "figures@>=1.3.5 <2.0.0",
      "resolved": "./node_shrinkwrap/figures-1.7.0.tgz"
    },
    "file-entry-cache": {
      "version": "1.2.4",
      "from": "file-entry-cache@>=1.1.1 <2.0.0",
      "resolved": "./node_shrinkwrap/file-entry-cache-1.2.4.tgz"
    },
    "file-loader": {
      "version": "0.8.5",
      "from": "file-loader@>=0.8.5 <0.9.0",
      "resolved": "./node_shrinkwrap/file-loader-0.8.5.tgz"
    },
    "filename-regex": {
      "version": "2.0.0",
      "from": "filename-regex@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/filename-regex-2.0.0.tgz"
    },
    "fileset": {
      "version": "0.2.1",
      "from": "fileset@>=0.2.0 <0.3.0",
      "resolved": "./node_shrinkwrap/fileset-0.2.1.tgz"
    },
    "fill-range": {
      "version": "2.2.3",
      "from": "fill-range@>=2.1.0 <3.0.0",
      "resolved": "./node_shrinkwrap/fill-range-2.2.3.tgz"
    },
    "finalhandler": {
      "version": "0.4.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/finalhandler-0.4.1.tgz"
    },
    "find-up": {
      "version": "1.1.2",
      "from": "find-up@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/find-up-1.1.2.tgz",
      "dependencies": {
        "path-exists": {
          "version": "2.1.0",
          "from": "path-exists@>=2.0.0 <3.0.0",
          "resolved": "./node_shrinkwrap/path-exists-2.1.0.tgz"
        }
      }
    },
    "find-versions": {
      "version": "1.2.1",
      "from": "find-versions@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/find-versions-1.2.1.tgz"
    },
    "flat-cache": {
      "version": "1.0.10",
      "from": "flat-cache@>=1.0.9 <2.0.0",
      "resolved": "./node_shrinkwrap/flat-cache-1.0.10.tgz"
    },
    "flatten": {
      "version": "1.0.2",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/flatten-1.0.2.tgz"
    },
    "for-in": {
      "version": "0.1.5",
      "from": "for-in@>=0.1.5 <0.2.0",
      "resolved": "./node_shrinkwrap/for-in-0.1.5.tgz"
    },
    "for-own": {
      "version": "0.1.4",
      "from": "for-own@>=0.1.3 <0.2.0",
      "resolved": "./node_shrinkwrap/for-own-0.1.4.tgz"
    },
    "foreach": {
      "version": "2.0.5",
      "from": "foreach@>=2.0.5 <3.0.0",
      "resolved": "./node_shrinkwrap/foreach-2.0.5.tgz"
    },
    "forever-agent": {
      "version": "0.6.1",
      "from": "forever-agent@>=0.6.1 <0.7.0",
      "resolved": "./node_shrinkwrap/forever-agent-0.6.1.tgz"
    },
    "form-data": {
      "version": "1.0.0-rc4",
      "from": "form-data@>=1.0.0-rc3 <1.1.0",
      "resolved": "./node_shrinkwrap/form-data-1.0.0-rc4.tgz"
    },
    "formatio": {
      "version": "1.1.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/formatio-1.1.1.tgz"
    },
    "formidable": {
      "version": "1.0.17",
      "from": "formidable@>=1.0.0 <1.1.0",
      "resolved": "./node_shrinkwrap/formidable-1.0.17.tgz"
    },
    "fresh": {
      "version": "0.3.0",
      "from": "fresh@>=0.3.0 <0.4.0",
      "resolved": "./node_shrinkwrap/fresh-0.3.0.tgz"
    },
    "from": {
      "version": "0.1.3",
      "from": "from@>=0.0.0 <1.0.0",
      "resolved": "./node_shrinkwrap/from-0.1.3.tgz"
    },
    "fs-extra": {
      "version": "0.26.7",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/fs-extra-0.26.7.tgz"
    },
    "fs-readdir-recursive": {
      "version": "0.1.2",
      "from": "fs-readdir-recursive@>=0.1.0 <0.2.0",
      "resolved": "./node_shrinkwrap/fs-readdir-recursive-0.1.2.tgz"
    },
    "fsevents": {
      "version": "1.0.12",
      "from": "fsevents@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/fsevents-1.0.12.tgz",
      "dependencies": {
        "ansi": {
          "version": "0.3.1",
          "from": "ansi@~0.3.1",
          "resolved": "./node_shrinkwrap/ansi-0.3.1.tgz"
        },
        "ansi-regex": {
          "version": "2.0.0",
          "from": "ansi-regex@^2.0.0",
          "resolved": "./node_shrinkwrap/ansi-regex-2.0.0.tgz"
        },
        "ansi-styles": {
          "version": "2.2.1",
          "from": "ansi-styles@^2.2.1",
          "resolved": "./node_shrinkwrap/ansi-styles-2.2.1.tgz"
        },
        "are-we-there-yet": {
          "version": "1.1.2",
          "from": "are-we-there-yet@~1.1.2",
          "resolved": "./node_shrinkwrap/are-we-there-yet-1.1.2.tgz"
        },
        "asn1": {
          "version": "0.2.3",
          "from": "asn1@>=0.2.3 <0.3.0",
          "resolved": "./node_shrinkwrap/asn1-0.2.3.tgz"
        },
        "assert-plus": {
          "version": "0.2.0",
          "from": "assert-plus@^0.2.0",
          "resolved": "./node_shrinkwrap/assert-plus-0.2.0.tgz"
        },
        "async": {
          "version": "1.5.2",
          "from": "async@^1.5.2",
          "resolved": "./node_shrinkwrap/async-1.5.2.tgz"
        },
        "aws-sign2": {
          "version": "0.6.0",
          "from": "aws-sign2@~0.6.0",
          "resolved": "./node_shrinkwrap/aws-sign2-0.6.0.tgz"
        },
        "aws4": {
          "version": "1.3.2",
          "from": "aws4@^1.2.1",
          "resolved": "./node_shrinkwrap/aws4-1.3.2.tgz",
          "dependencies": {
            "lru-cache": {
              "version": "4.0.1",
              "from": "lru-cache@^4.0.0",
              "resolved": "./node_shrinkwrap/lru-cache-4.0.1.tgz",
              "dependencies": {
                "pseudomap": {
                  "version": "1.0.2",
                  "from": "pseudomap@^1.0.1",
                  "resolved": "./node_shrinkwrap/pseudomap-1.0.2.tgz"
                },
                "yallist": {
                  "version": "2.0.0",
                  "from": "yallist@^2.0.0",
                  "resolved": "./node_shrinkwrap/yallist-2.0.0.tgz"
                }
              }
            }
          }
        },
        "bl": {
          "version": "1.0.3",
          "from": "bl@~1.0.0",
          "resolved": "./node_shrinkwrap/bl-1.0.3.tgz"
        },
        "block-stream": {
          "version": "0.0.8",
          "from": "block-stream@*",
          "resolved": "./node_shrinkwrap/block-stream-0.0.8.tgz"
        },
        "boom": {
          "version": "2.10.1",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/boom-2.10.1.tgz"
        },
        "caseless": {
          "version": "0.11.0",
          "from": "caseless@~0.11.0",
          "resolved": "./node_shrinkwrap/caseless-0.11.0.tgz"
        },
        "chalk": {
          "version": "1.1.3",
          "from": "chalk@^1.1.1",
          "resolved": "./node_shrinkwrap/chalk-1.1.3.tgz"
        },
        "combined-stream": {
          "version": "1.0.5",
          "from": "combined-stream@~1.0.5",
          "resolved": "./node_shrinkwrap/combined-stream-1.0.5.tgz"
        },
        "commander": {
          "version": "2.9.0",
          "from": "commander@^2.9.0",
          "resolved": "./node_shrinkwrap/commander-2.9.0.tgz"
        },
        "core-util-is": {
          "version": "1.0.2",
          "from": "core-util-is@~1.0.0",
          "resolved": "./node_shrinkwrap/core-util-is-1.0.2.tgz"
        },
        "cryptiles": {
          "version": "2.0.5",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/cryptiles-2.0.5.tgz"
        },
        "dashdash": {
          "version": "1.13.0",
          "from": "dashdash@>=1.10.1 <2.0.0",
          "resolved": "./node_shrinkwrap/dashdash-1.13.0.tgz",
          "dependencies": {
            "assert-plus": {
              "version": "1.0.0",
              "from": "assert-plus@^1.0.0",
              "resolved": "./node_shrinkwrap/assert-plus-1.0.0.tgz"
            }
          }
        },
        "debug": {
          "version": "2.2.0",
          "from": "debug@~2.2.0",
          "resolved": "./node_shrinkwrap/debug-2.2.0.tgz"
        },
        "deep-extend": {
          "version": "0.4.1",
          "from": "deep-extend@~0.4.0",
          "resolved": "./node_shrinkwrap/deep-extend-0.4.1.tgz"
        },
        "delayed-stream": {
          "version": "1.0.0",
          "from": "delayed-stream@~1.0.0",
          "resolved": "./node_shrinkwrap/delayed-stream-1.0.0.tgz"
        },
        "delegates": {
          "version": "1.0.0",
          "from": "delegates@^1.0.0",
          "resolved": "./node_shrinkwrap/delegates-1.0.0.tgz"
        },
        "ecc-jsbn": {
          "version": "0.1.1",
          "from": "ecc-jsbn@>=0.0.1 <1.0.0",
          "resolved": "./node_shrinkwrap/ecc-jsbn-0.1.1.tgz"
        },
        "escape-string-regexp": {
          "version": "1.0.5",
          "from": "escape-string-regexp@^1.0.2",
          "resolved": "./node_shrinkwrap/escape-string-regexp-1.0.5.tgz"
        },
        "extend": {
          "version": "3.0.0",
          "from": "extend@~3.0.0",
          "resolved": "./node_shrinkwrap/extend-3.0.0.tgz"
        },
        "extsprintf": {
          "version": "1.0.2",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/extsprintf-1.0.2.tgz"
        },
        "forever-agent": {
          "version": "0.6.1",
          "from": "forever-agent@~0.6.1",
          "resolved": "./node_shrinkwrap/forever-agent-0.6.1.tgz"
        },
        "form-data": {
          "version": "1.0.0-rc4",
          "from": "form-data@~1.0.0-rc3",
          "resolved": "./node_shrinkwrap/form-data-1.0.0-rc4.tgz"
        },
        "fstream": {
          "version": "1.0.8",
          "from": "fstream@^1.0.2",
          "resolved": "./node_shrinkwrap/fstream-1.0.8.tgz"
        },
        "fstream-ignore": {
          "version": "1.0.3",
          "from": "fstream-ignore@~1.0.3",
          "resolved": "./node_shrinkwrap/fstream-ignore-1.0.3.tgz",
          "dependencies": {
            "minimatch": {
              "version": "3.0.0",
              "from": "minimatch@^3.0.0",
              "resolved": "./node_shrinkwrap/minimatch-3.0.0.tgz",
              "dependencies": {
                "brace-expansion": {
                  "version": "1.1.3",
                  "from": "brace-expansion@^1.0.0",
                  "resolved": "./node_shrinkwrap/brace-expansion-1.1.3.tgz",
                  "dependencies": {
                    "balanced-match": {
                      "version": "0.3.0",
                      "from": "balanced-match@^0.3.0",
                      "resolved": "./node_shrinkwrap/balanced-match-0.3.0.tgz"
                    },
                    "concat-map": {
                      "version": "0.0.1",
                      "from": "[email protected]",
                      "resolved": "./node_shrinkwrap/concat-map-0.0.1.tgz"
                    }
                  }
                }
              }
            }
          }
        },
        "gauge": {
          "version": "1.2.7",
          "from": "gauge@~1.2.5",
          "resolved": "./node_shrinkwrap/gauge-1.2.7.tgz"
        },
        "generate-function": {
          "version": "2.0.0",
          "from": "generate-function@^2.0.0",
          "resolved": "./node_shrinkwrap/generate-function-2.0.0.tgz"
        },
        "generate-object-property": {
          "version": "1.2.0",
          "from": "generate-object-property@^1.1.0",
          "resolved": "./node_shrinkwrap/generate-object-property-1.2.0.tgz"
        },
        "graceful-fs": {
          "version": "4.1.3",
          "from": "graceful-fs@^4.1.2",
          "resolved": "./node_shrinkwrap/graceful-fs-4.1.3.tgz"
        },
        "graceful-readlink": {
          "version": "1.0.1",
          "from": "graceful-readlink@>= 1.0.0",
          "resolved": "./node_shrinkwrap/graceful-readlink-1.0.1.tgz"
        },
        "har-validator": {
          "version": "2.0.6",
          "from": "har-validator@~2.0.6",
          "resolved": "./node_shrinkwrap/har-validator-2.0.6.tgz"
        },
        "has-ansi": {
          "version": "2.0.0",
          "from": "has-ansi@^2.0.0",
          "resolved": "./node_shrinkwrap/has-ansi-2.0.0.tgz"
        },
        "has-unicode": {
          "version": "2.0.0",
          "from": "has-unicode@^2.0.0",
          "resolved": "./node_shrinkwrap/has-unicode-2.0.0.tgz"
        },
        "hawk": {
          "version": "3.1.3",
          "from": "hawk@~3.1.0",
          "resolved": "./node_shrinkwrap/hawk-3.1.3.tgz"
        },
        "hoek": {
          "version": "2.16.3",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/hoek-2.16.3.tgz"
        },
        "http-signature": {
          "version": "1.1.1",
          "from": "http-signature@~1.1.0",
          "resolved": "./node_shrinkwrap/http-signature-1.1.1.tgz"
        },
        "inherits": {
          "version": "2.0.1",
          "from": "inherits@*",
          "resolved": "./node_shrinkwrap/inherits-2.0.1.tgz"
        },
        "ini": {
          "version": "1.3.4",
          "from": "ini@~1.3.0",
          "resolved": "./node_shrinkwrap/ini-1.3.4.tgz"
        },
        "is-my-json-valid": {
          "version": "2.13.1",
          "from": "is-my-json-valid@^2.12.4",
          "resolved": "./node_shrinkwrap/is-my-json-valid-2.13.1.tgz"
        },
        "is-property": {
          "version": "1.0.2",
          "from": "is-property@^1.0.0",
          "resolved": "./node_shrinkwrap/is-property-1.0.2.tgz"
        },
        "is-typedarray": {
          "version": "1.0.0",
          "from": "is-typedarray@~1.0.0",
          "resolved": "./node_shrinkwrap/is-typedarray-1.0.0.tgz"
        },
        "isarray": {
          "version": "1.0.0",
          "from": "isarray@~1.0.0",
          "resolved": "./node_shrinkwrap/isarray-1.0.0.tgz"
        },
        "isstream": {
          "version": "0.1.2",
          "from": "isstream@~0.1.2",
          "resolved": "./node_shrinkwrap/isstream-0.1.2.tgz"
        },
        "jodid25519": {
          "version": "1.0.2",
          "from": "jodid25519@>=1.0.0 <2.0.0",
          "resolved": "./node_shrinkwrap/jodid25519-1.0.2.tgz"
        },
        "jsbn": {
          "version": "0.1.0",
          "from": "jsbn@>=0.1.0 <0.2.0",
          "resolved": "./node_shrinkwrap/jsbn-0.1.0.tgz"
        },
        "json-schema": {
          "version": "0.2.2",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/json-schema-0.2.2.tgz"
        },
        "json-stringify-safe": {
          "version": "5.0.1",
          "from": "json-stringify-safe@~5.0.1",
          "resolved": "./node_shrinkwrap/json-stringify-safe-5.0.1.tgz"
        },
        "jsonpointer": {
          "version": "2.0.0",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/jsonpointer-2.0.0.tgz"
        },
        "jsprim": {
          "version": "1.2.2",
          "from": "jsprim@^1.2.2",
          "resolved": "./node_shrinkwrap/jsprim-1.2.2.tgz"
        },
        "lodash.pad": {
          "version": "4.1.0",
          "from": "lodash.pad@^4.1.0",
          "resolved": "./node_shrinkwrap/lodash.pad-4.1.0.tgz"
        },
        "lodash.padend": {
          "version": "4.2.0",
          "from": "lodash.padend@^4.1.0",
          "resolved": "./node_shrinkwrap/lodash.padend-4.2.0.tgz"
        },
        "lodash.padstart": {
          "version": "4.2.0",
          "from": "lodash.padstart@^4.1.0",
          "resolved": "./node_shrinkwrap/lodash.padstart-4.2.0.tgz"
        },
        "lodash.repeat": {
          "version": "4.0.0",
          "from": "lodash.repeat@^4.0.0",
          "resolved": "./node_shrinkwrap/lodash.repeat-4.0.0.tgz"
        },
        "lodash.tostring": {
          "version": "4.1.2",
          "from": "lodash.tostring@^4.0.0",
          "resolved": "./node_shrinkwrap/lodash.tostring-4.1.2.tgz"
        },
        "mime-db": {
          "version": "1.22.0",
          "from": "mime-db@~1.22.0",
          "resolved": "./node_shrinkwrap/mime-db-1.22.0.tgz"
        },
        "mime-types": {
          "version": "2.1.10",
          "from": "mime-types@~2.1.7",
          "resolved": "./node_shrinkwrap/mime-types-2.1.10.tgz"
        },
        "minimist": {
          "version": "0.0.8",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/minimist-0.0.8.tgz"
        },
        "mkdirp": {
          "version": "0.5.1",
          "from": "mkdirp@>=0.3.0 <0.4.0||>=0.4.0 <0.5.0||>=0.5.0 <0.6.0",
          "resolved": "./node_shrinkwrap/mkdirp-0.5.1.tgz"
        },
        "ms": {
          "version": "0.7.1",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/ms-0.7.1.tgz"
        },
        "node-pre-gyp": {
          "version": "0.6.25",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/node-pre-gyp-0.6.25.tgz",
          "dependencies": {
            "nopt": {
              "version": "3.0.6",
              "from": "nopt@~3.0.1",
              "resolved": "./node_shrinkwrap/nopt-3.0.6.tgz",
              "dependencies": {
                "abbrev": {
                  "version": "1.0.7",
                  "from": "abbrev@1",
                  "resolved": "./node_shrinkwrap/abbrev-1.0.7.tgz"
                }
              }
            }
          }
        },
        "node-uuid": {
          "version": "1.4.7",
          "from": "node-uuid@~1.4.7",
          "resolved": "./node_shrinkwrap/node-uuid-1.4.7.tgz"
        },
        "npmlog": {
          "version": "2.0.3",
          "from": "npmlog@~2.0.0",
          "resolved": "./node_shrinkwrap/npmlog-2.0.3.tgz"
        },
        "oauth-sign": {
          "version": "0.8.1",
          "from": "oauth-sign@~0.8.0",
          "resolved": "./node_shrinkwrap/oauth-sign-0.8.1.tgz"
        },
        "once": {
          "version": "1.3.3",
          "from": "once@~1.3.3",
          "resolved": "./node_shrinkwrap/once-1.3.3.tgz"
        },
        "pinkie": {
          "version": "2.0.4",
          "from": "pinkie@^2.0.0",
          "resolved": "./node_shrinkwrap/pinkie-2.0.4.tgz"
        },
        "pinkie-promise": {
          "version": "2.0.0",
          "from": "pinkie-promise@^2.0.0",
          "resolved": "./node_shrinkwrap/pinkie-promise-2.0.0.tgz"
        },
        "process-nextick-args": {
          "version": "1.0.6",
          "from": "process-nextick-args@~1.0.6",
          "resolved": "./node_shrinkwrap/process-nextick-args-1.0.6.tgz"
        },
        "qs": {
          "version": "6.0.2",
          "from": "qs@~6.0.2",
          "resolved": "./node_shrinkwrap/qs-6.0.2.tgz"
        },
        "rc": {
          "version": "1.1.6",
          "from": "rc@~1.1.0",
          "resolved": "./node_shrinkwrap/rc-1.1.6.tgz",
          "dependencies": {
            "minimist": {
              "version": "1.2.0",
              "from": "minimist@^1.2.0",
              "resolved": "./node_shrinkwrap/minimist-1.2.0.tgz"
            }
          }
        },
        "readable-stream": {
          "version": "2.0.6",
          "from": "readable-stream@^2.0.0 || ^1.1.13",
          "resolved": "./node_shrinkwrap/readable-stream-2.0.6.tgz"
        },
        "request": {
          "version": "2.69.0",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/request-2.69.0.tgz"
        },
        "rimraf": {
          "version": "2.5.2",
          "from": "rimraf@~2.5.0",
          "resolved": "./node_shrinkwrap/rimraf-2.5.2.tgz",
          "dependencies": {
            "glob": {
              "version": "7.0.3",
              "from": "glob@^7.0.0",
              "resolved": "./node_shrinkwrap/glob-7.0.3.tgz",
              "dependencies": {
                "inflight": {
                  "version": "1.0.4",
                  "from": "inflight@^1.0.4",
                  "resolved": "./node_shrinkwrap/inflight-1.0.4.tgz",
                  "dependencies": {
                    "wrappy": {
                      "version": "1.0.1",
                      "from": "wrappy@1",
                      "resolved": "./node_shrinkwrap/wrappy-1.0.1.tgz"
                    }
                  }
                },
                "inherits": {
                  "version": "2.0.1",
                  "from": "inherits@2",
                  "resolved": "./node_shrinkwrap/inherits-2.0.1.tgz"
                },
                "minimatch": {
                  "version": "3.0.0",
                  "from": "minimatch@2 || 3",
                  "resolved": "./node_shrinkwrap/minimatch-3.0.0.tgz",
                  "dependencies": {
                    "brace-expansion": {
                      "version": "1.1.3",
                      "from": "brace-expansion@^1.0.0",
                      "resolved": "./node_shrinkwrap/brace-expansion-1.1.3.tgz",
                      "dependencies": {
                        "balanced-match": {
                          "version": "0.3.0",
                          "from": "balanced-match@^0.3.0",
                          "resolved": "./node_shrinkwrap/balanced-match-0.3.0.tgz"
                        },
                        "concat-map": {
                          "version": "0.0.1",
                          "from": "[email protected]",
                          "resolved": "./node_shrinkwrap/concat-map-0.0.1.tgz"
                        }
                      }
                    }
                  }
                },
                "once": {
                  "version": "1.3.3",
                  "from": "once@^1.3.0",
                  "resolved": "./node_shrinkwrap/once-1.3.3.tgz",
                  "dependencies": {
                    "wrappy": {
                      "version": "1.0.1",
                      "from": "wrappy@1",
                      "resolved": "./node_shrinkwrap/wrappy-1.0.1.tgz"
                    }
                  }
                },
                "path-is-absolute": {
                  "version": "1.0.0",
                  "from": "path-is-absolute@^1.0.0",
                  "resolved": "./node_shrinkwrap/path-is-absolute-1.0.0.tgz"
                }
              }
            }
          }
        },
        "semver": {
          "version": "5.1.0",
          "from": "semver@~5.1.0",
          "resolved": "./node_shrinkwrap/semver-5.1.0.tgz"
        },
        "sntp": {
          "version": "1.0.9",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/sntp-1.0.9.tgz"
        },
        "sshpk": {
          "version": "1.7.4",
          "from": "sshpk@^1.7.0",
          "resolved": "./node_shrinkwrap/sshpk-1.7.4.tgz"
        },
        "string_decoder": {
          "version": "0.10.31",
          "from": "string_decoder@~0.10.x",
          "resolved": "./node_shrinkwrap/string_decoder-0.10.31.tgz"
        },
        "stringstream": {
          "version": "0.0.5",
          "from": "stringstream@~0.0.4",
          "resolved": "./node_shrinkwrap/stringstream-0.0.5.tgz"
        },
        "strip-ansi": {
          "version": "3.0.1",
          "from": "strip-ansi@^3.0.0",
          "resolved": "./node_shrinkwrap/strip-ansi-3.0.1.tgz"
        },
        "strip-json-comments": {
          "version": "1.0.4",
          "from": "strip-json-comments@~1.0.4",
          "resolved": "./node_shrinkwrap/strip-json-comments-1.0.4.tgz"
        },
        "supports-color": {
          "version": "2.0.0",
          "from": "supports-color@^2.0.0",
          "resolved": "./node_shrinkwrap/supports-color-2.0.0.tgz"
        },
        "tar": {
          "version": "2.2.1",
          "from": "tar@~2.2.0",
          "resolved": "./node_shrinkwrap/tar-2.2.1.tgz"
        },
        "tar-pack": {
          "version": "3.1.3",
          "from": "tar-pack@~3.1.0",
          "resolved": "./node_shrinkwrap/tar-pack-3.1.3.tgz"
        },
        "tough-cookie": {
          "version": "2.2.2",
          "from": "tough-cookie@~2.2.0",
          "resolved": "./node_shrinkwrap/tough-cookie-2.2.2.tgz"
        },
        "tunnel-agent": {
          "version": "0.4.2",
          "from": "tunnel-agent@~0.4.1",
          "resolved": "./node_shrinkwrap/tunnel-agent-0.4.2.tgz"
        },
        "tweetnacl": {
          "version": "0.14.3",
          "from": "tweetnacl@>=0.13.0 <1.0.0",
          "resolved": "./node_shrinkwrap/tweetnacl-0.14.3.tgz"
        },
        "uid-number": {
          "version": "0.0.6",
          "from": "uid-number@~0.0.6",
          "resolved": "./node_shrinkwrap/uid-number-0.0.6.tgz"
        },
        "util-deprecate": {
          "version": "1.0.2",
          "from": "util-deprecate@~1.0.1",
          "resolved": "./node_shrinkwrap/util-deprecate-1.0.2.tgz"
        },
        "verror": {
          "version": "1.3.6",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/verror-1.3.6.tgz"
        },
        "wrappy": {
          "version": "1.0.1",
          "from": "wrappy@1",
          "resolved": "./node_shrinkwrap/wrappy-1.0.1.tgz"
        },
        "xtend": {
          "version": "4.0.1",
          "from": "xtend@^4.0.0",
          "resolved": "./node_shrinkwrap/xtend-4.0.1.tgz"
        }
      }
    },
    "fstream": {
      "version": "1.0.9",
      "from": "fstream@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/fstream-1.0.9.tgz"
    },
    "function-bind": {
      "version": "1.1.0",
      "from": "function-bind@>=1.0.2 <2.0.0",
      "resolved": "./node_shrinkwrap/function-bind-1.1.0.tgz"
    },
    "gauge": {
      "version": "1.2.7",
      "from": "gauge@>=1.2.5 <1.3.0",
      "resolved": "./node_shrinkwrap/gauge-1.2.7.tgz"
    },
    "gaze": {
      "version": "1.0.0",
      "from": "gaze@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/gaze-1.0.0.tgz"
    },
    "generate-function": {
      "version": "2.0.0",
      "from": "generate-function@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/generate-function-2.0.0.tgz"
    },
    "generate-object-property": {
      "version": "1.2.0",
      "from": "generate-object-property@>=1.1.0 <2.0.0",
      "resolved": "./node_shrinkwrap/generate-object-property-1.2.0.tgz"
    },
    "get-stdin": {
      "version": "4.0.1",
      "from": "get-stdin@>=4.0.1 <5.0.0",
      "resolved": "./node_shrinkwrap/get-stdin-4.0.1.tgz"
    },
    "getpass": {
      "version": "0.1.6",
      "from": "getpass@>=0.1.1 <0.2.0",
      "resolved": "./node_shrinkwrap/getpass-0.1.6.tgz",
      "dependencies": {
        "assert-plus": {
          "version": "1.0.0",
          "from": "assert-plus@>=1.0.0 <2.0.0",
          "resolved": "./node_shrinkwrap/assert-plus-1.0.0.tgz"
        }
      }
    },
    "glob": {
      "version": "5.0.15",
      "from": "glob@>=5.0.5 <6.0.0",
      "resolved": "./node_shrinkwrap/glob-5.0.15.tgz"
    },
    "glob-base": {
      "version": "0.3.0",
      "from": "glob-base@>=0.3.0 <0.4.0",
      "resolved": "./node_shrinkwrap/glob-base-0.3.0.tgz"
    },
    "glob-parent": {
      "version": "2.0.0",
      "from": "glob-parent@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/glob-parent-2.0.0.tgz"
    },
    "global": {
      "version": "4.3.0",
      "from": "global@>=4.3.0 <5.0.0",
      "resolved": "./node_shrinkwrap/global-4.3.0.tgz"
    },
    "globals": {
      "version": "8.18.0",
      "from": "globals@>=8.3.0 <9.0.0",
      "resolved": "./node_shrinkwrap/globals-8.18.0.tgz"
    },
    "globby": {
      "version": "4.1.0",
      "from": "globby@>=4.0.0 <5.0.0",
      "resolved": "./node_shrinkwrap/globby-4.1.0.tgz",
      "dependencies": {
        "glob": {
          "version": "6.0.4",
          "from": "glob@>=6.0.1 <7.0.0",
          "resolved": "./node_shrinkwrap/glob-6.0.4.tgz"
        }
      }
    },
    "globule": {
      "version": "0.2.0",
      "from": "globule@>=0.2.0 <0.3.0",
      "resolved": "./node_shrinkwrap/globule-0.2.0.tgz",
      "dependencies": {
        "glob": {
          "version": "3.2.11",
          "from": "glob@>=3.2.7 <3.3.0",
          "resolved": "./node_shrinkwrap/glob-3.2.11.tgz",
          "dependencies": {
            "minimatch": {
              "version": "0.3.0",
              "from": "minimatch@>=0.3.0 <0.4.0",
              "resolved": "./node_shrinkwrap/minimatch-0.3.0.tgz"
            }
          }
        },
        "lodash": {
          "version": "2.4.2",
          "from": "lodash@>=2.4.1 <2.5.0",
          "resolved": "./node_shrinkwrap/lodash-2.4.2.tgz"
        },
        "lru-cache": {
          "version": "2.7.3",
          "from": "lru-cache@>=2.0.0 <3.0.0",
          "resolved": "./node_shrinkwrap/lru-cache-2.7.3.tgz"
        },
        "minimatch": {
          "version": "0.2.14",
          "from": "minimatch@>=0.2.11 <0.3.0",
          "resolved": "./node_shrinkwrap/minimatch-0.2.14.tgz"
        }
      }
    },
    "graceful-fs": {
      "version": "4.1.4",
      "from": "graceful-fs@>=4.1.2 <5.0.0",
      "resolved": "./node_shrinkwrap/graceful-fs-4.1.4.tgz"
    },
    "graceful-readlink": {
      "version": "1.0.1",
      "from": "graceful-readlink@>=1.0.0",
      "resolved": "./node_shrinkwrap/graceful-readlink-1.0.1.tgz"
    },
    "growl": {
      "version": "1.8.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/growl-1.8.1.tgz"
    },
    "handlebars": {
      "version": "4.0.5",
      "from": "handlebars@>=4.0.1 <5.0.0",
      "resolved": "./node_shrinkwrap/handlebars-4.0.5.tgz",
      "dependencies": {
        "source-map": {
          "version": "0.4.4",
          "from": "source-map@>=0.4.4 <0.5.0",
          "resolved": "./node_shrinkwrap/source-map-0.4.4.tgz"
        }
      }
    },
    "har-validator": {
      "version": "2.0.6",
      "from": "har-validator@>=2.0.6 <2.1.0",
      "resolved": "./node_shrinkwrap/har-validator-2.0.6.tgz"
    },
    "has": {
      "version": "1.0.1",
      "from": "has@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/has-1.0.1.tgz"
    },
    "has-ansi": {
      "version": "2.0.0",
      "from": "has-ansi@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/has-ansi-2.0.0.tgz"
    },
    "has-binary": {
      "version": "0.1.7",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/has-binary-0.1.7.tgz",
      "dependencies": {
        "isarray": {
          "version": "0.0.1",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/isarray-0.0.1.tgz"
        }
      }
    },
    "has-color": {
      "version": "0.1.7",
      "from": "has-color@>=0.1.0 <0.2.0",
      "resolved": "./node_shrinkwrap/has-color-0.1.7.tgz"
    },
    "has-cors": {
      "version": "1.1.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/has-cors-1.1.0.tgz"
    },
    "has-flag": {
      "version": "1.0.0",
      "from": "has-flag@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/has-flag-1.0.0.tgz"
    },
    "has-own": {
      "version": "1.0.0",
      "from": "has-own@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/has-own-1.0.0.tgz"
    },
    "has-unicode": {
      "version": "2.0.0",
      "from": "has-unicode@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/has-unicode-2.0.0.tgz"
    },
    "hawk": {
      "version": "3.1.3",
      "from": "hawk@>=3.1.3 <3.2.0",
      "resolved": "./node_shrinkwrap/hawk-3.1.3.tgz"
    },
    "history": {
      "version": "2.1.2",
      "from": "history@>=2.0.1 <3.0.0",
      "resolved": "./node_shrinkwrap/history-2.1.2.tgz"
    },
    "hoek": {
      "version": "2.16.3",
      "from": "hoek@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/hoek-2.16.3.tgz"
    },
    "hoist-non-react-statics": {
      "version": "1.0.6",
      "from": "hoist-non-react-statics@>=1.0.3 <2.0.0",
      "resolved": "./node_shrinkwrap/hoist-non-react-statics-1.0.6.tgz"
    },
    "home-or-tmp": {
      "version": "1.0.0",
      "from": "home-or-tmp@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/home-or-tmp-1.0.0.tgz"
    },
    "hosted-git-info": {
      "version": "2.1.5",
      "from": "hosted-git-info@>=2.1.4 <3.0.0",
      "resolved": "./node_shrinkwrap/hosted-git-info-2.1.5.tgz"
    },
    "html-comment-regex": {
      "version": "1.1.0",
      "from": "html-comment-regex@>=1.1.0 <2.0.0",
      "resolved": "./node_shrinkwrap/html-comment-regex-1.1.0.tgz"
    },
    "html-entities": {
      "version": "1.2.0",
      "from": "html-entities@>=1.2.0 <2.0.0",
      "resolved": "./node_shrinkwrap/html-entities-1.2.0.tgz"
    },
    "htmlparser2": {
      "version": "3.8.3",
      "from": "htmlparser2@>=3.8.1 <3.9.0",
      "resolved": "./node_shrinkwrap/htmlparser2-3.8.3.tgz",
      "dependencies": {
        "entities": {
          "version": "1.0.0",
          "from": "entities@>=1.0.0 <1.1.0",
          "resolved": "./node_shrinkwrap/entities-1.0.0.tgz"
        },
        "isarray": {
          "version": "0.0.1",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/isarray-0.0.1.tgz"
        },
        "readable-stream": {
          "version": "1.1.14",
          "from": "readable-stream@>=1.1.0 <1.2.0",
          "resolved": "./node_shrinkwrap/readable-stream-1.1.14.tgz"
        }
      }
    },
    "http-browserify": {
      "version": "1.7.0",
      "from": "http-browserify@>=1.3.2 <2.0.0",
      "resolved": "./node_shrinkwrap/http-browserify-1.7.0.tgz"
    },
    "http-errors": {
      "version": "1.3.1",
      "from": "http-errors@>=1.3.1 <1.4.0",
      "resolved": "./node_shrinkwrap/http-errors-1.3.1.tgz"
    },
    "http-proxy": {
      "version": "1.13.2",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/http-proxy-1.13.2.tgz"
    },
    "http-signature": {
      "version": "1.1.1",
      "from": "http-signature@>=1.1.0 <1.2.0",
      "resolved": "./node_shrinkwrap/http-signature-1.1.1.tgz"
    },
    "https-browserify": {
      "version": "0.0.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/https-browserify-0.0.0.tgz"
    },
    "iconv-lite": {
      "version": "0.4.13",
      "from": "iconv-lite@>=0.4.13 <0.5.0",
      "resolved": "./node_shrinkwrap/iconv-lite-0.4.13.tgz"
    },
    "icss-replace-symbols": {
      "version": "1.0.2",
      "from": "icss-replace-symbols@>=1.0.2 <2.0.0",
      "resolved": "./node_shrinkwrap/icss-replace-symbols-1.0.2.tgz"
    },
    "ieee754": {
      "version": "1.1.6",
      "from": "ieee754@>=1.1.4 <2.0.0",
      "resolved": "./node_shrinkwrap/ieee754-1.1.6.tgz"
    },
    "ignore": {
      "version": "3.1.2",
      "from": "ignore@>=3.1.2 <4.0.0",
      "resolved": "./node_shrinkwrap/ignore-3.1.2.tgz"
    },
    "immutable": {
      "version": "3.8.1",
      "from": "immutable@>=3.7.6 <4.0.0",
      "resolved": "./node_shrinkwrap/immutable-3.8.1.tgz"
    },
    "imurmurhash": {
      "version": "0.1.4",
      "from": "imurmurhash@>=0.1.4 <0.2.0",
      "resolved": "./node_shrinkwrap/imurmurhash-0.1.4.tgz"
    },
    "in-publish": {
      "version": "2.0.0",
      "from": "in-publish@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/in-publish-2.0.0.tgz"
    },
    "indent-string": {
      "version": "2.1.0",
      "from": "indent-string@>=2.1.0 <3.0.0",
      "resolved": "./node_shrinkwrap/indent-string-2.1.0.tgz",
      "dependencies": {
        "repeating": {
          "version": "2.0.1",
          "from": "repeating@>=2.0.0 <3.0.0",
          "resolved": "./node_shrinkwrap/repeating-2.0.1.tgz"
        }
      }
    },
    "indexes-of": {
      "version": "1.0.1",
      "from": "indexes-of@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/indexes-of-1.0.1.tgz"
    },
    "indexof": {
      "version": "0.0.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/indexof-0.0.1.tgz"
    },
    "inflight": {
      "version": "1.0.5",
      "from": "inflight@>=1.0.4 <2.0.0",
      "resolved": "./node_shrinkwrap/inflight-1.0.5.tgz"
    },
    "inherits": {
      "version": "2.0.1",
      "from": "inherits@>=2.0.1 <3.0.0",
      "resolved": "./node_shrinkwrap/inherits-2.0.1.tgz"
    },
    "inquirer": {
      "version": "0.12.0",
      "from": "inquirer@>=0.12.0 <0.13.0",
      "resolved": "./node_shrinkwrap/inquirer-0.12.0.tgz"
    },
    "interpret": {
      "version": "0.6.6",
      "from": "interpret@>=0.6.4 <0.7.0",
      "resolved": "./node_shrinkwrap/interpret-0.6.6.tgz"
    },
    "invariant": {
      "version": "2.2.1",
      "from": "invariant@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/invariant-2.2.1.tgz"
    },
    "invert-kv": {
      "version": "1.0.0",
      "from": "invert-kv@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/invert-kv-1.0.0.tgz"
    },
    "is-absolute-url": {
      "version": "2.0.0",
      "from": "is-absolute-url@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/is-absolute-url-2.0.0.tgz"
    },
    "is-arrayish": {
      "version": "0.2.1",
      "from": "is-arrayish@>=0.2.1 <0.3.0",
      "resolved": "./node_shrinkwrap/is-arrayish-0.2.1.tgz"
    },
    "is-binary-path": {
      "version": "1.0.1",
      "from": "is-binary-path@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/is-binary-path-1.0.1.tgz"
    },
    "is-buffer": {
      "version": "1.1.3",
      "from": "is-buffer@>=1.0.2 <2.0.0",
      "resolved": "./node_shrinkwrap/is-buffer-1.1.3.tgz"
    },
    "is-builtin-module": {
      "version": "1.0.0",
      "from": "is-builtin-module@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/is-builtin-module-1.0.0.tgz"
    },
    "is-callable": {
      "version": "1.1.3",
      "from": "is-callable@>=1.1.1 <2.0.0",
      "resolved": "./node_shrinkwrap/is-callable-1.1.3.tgz"
    },
    "is-date-object": {
      "version": "1.0.1",
      "from": "is-date-object@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/is-date-object-1.0.1.tgz"
    },
    "is-dotfile": {
      "version": "1.0.2",
      "from": "is-dotfile@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/is-dotfile-1.0.2.tgz"
    },
    "is-equal-shallow": {
      "version": "0.1.3",
      "from": "is-equal-shallow@>=0.1.3 <0.2.0",
      "resolved": "./node_shrinkwrap/is-equal-shallow-0.1.3.tgz"
    },
    "is-extendable": {
      "version": "0.1.1",
      "from": "is-extendable@>=0.1.1 <0.2.0",
      "resolved": "./node_shrinkwrap/is-extendable-0.1.1.tgz"
    },
    "is-extglob": {
      "version": "1.0.0",
      "from": "is-extglob@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/is-extglob-1.0.0.tgz"
    },
    "is-finite": {
      "version": "1.0.1",
      "from": "is-finite@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/is-finite-1.0.1.tgz"
    },
    "is-fullwidth-code-point": {
      "version": "1.0.0",
      "from": "is-fullwidth-code-point@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/is-fullwidth-code-point-1.0.0.tgz"
    },
    "is-glob": {
      "version": "2.0.1",
      "from": "is-glob@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/is-glob-2.0.1.tgz"
    },
    "is-my-json-valid": {
      "version": "2.13.1",
      "from": "is-my-json-valid@>=2.12.4 <3.0.0",
      "resolved": "./node_shrinkwrap/is-my-json-valid-2.13.1.tgz"
    },
    "is-number": {
      "version": "2.1.0",
      "from": "is-number@>=2.1.0 <3.0.0",
      "resolved": "./node_shrinkwrap/is-number-2.1.0.tgz"
    },
    "is-path-cwd": {
      "version": "1.0.0",
      "from": "is-path-cwd@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/is-path-cwd-1.0.0.tgz"
    },
    "is-path-in-cwd": {
      "version": "1.0.0",
      "from": "is-path-in-cwd@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/is-path-in-cwd-1.0.0.tgz"
    },
    "is-path-inside": {
      "version": "1.0.0",
      "from": "is-path-inside@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/is-path-inside-1.0.0.tgz"
    },
    "is-plain-obj": {
      "version": "1.1.0",
      "from": "is-plain-obj@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/is-plain-obj-1.1.0.tgz"
    },
    "is-posix-bracket": {
      "version": "0.1.1",
      "from": "is-posix-bracket@>=0.1.0 <0.2.0",
      "resolved": "./node_shrinkwrap/is-posix-bracket-0.1.1.tgz"
    },
    "is-primitive": {
      "version": "2.0.0",
      "from": "is-primitive@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/is-primitive-2.0.0.tgz"
    },
    "is-property": {
      "version": "1.0.2",
      "from": "is-property@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/is-property-1.0.2.tgz"
    },
    "is-regex": {
      "version": "1.0.3",
      "from": "is-regex@>=1.0.3 <2.0.0",
      "resolved": "./node_shrinkwrap/is-regex-1.0.3.tgz"
    },
    "is-resolvable": {
      "version": "1.0.0",
      "from": "is-resolvable@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/is-resolvable-1.0.0.tgz"
    },
    "is-stream": {
      "version": "1.1.0",
      "from": "is-stream@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/is-stream-1.1.0.tgz"
    },
    "is-subset": {
      "version": "0.1.1",
      "from": "is-subset@>=0.1.1 <0.2.0",
      "resolved": "./node_shrinkwrap/is-subset-0.1.1.tgz"
    },
    "is-svg": {
      "version": "2.0.1",
      "from": "is-svg@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/is-svg-2.0.1.tgz"
    },
    "is-symbol": {
      "version": "1.0.1",
      "from": "is-symbol@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/is-symbol-1.0.1.tgz"
    },
    "is-typedarray": {
      "version": "1.0.0",
      "from": "is-typedarray@>=1.0.0 <1.1.0",
      "resolved": "./node_shrinkwrap/is-typedarray-1.0.0.tgz"
    },
    "is-utf8": {
      "version": "0.2.1",
      "from": "is-utf8@>=0.2.0 <0.3.0",
      "resolved": "./node_shrinkwrap/is-utf8-0.2.1.tgz"
    },
    "isarray": {
      "version": "1.0.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/isarray-1.0.0.tgz"
    },
    "isexe": {
      "version": "1.1.2",
      "from": "isexe@>=1.1.1 <2.0.0",
      "resolved": "./node_shrinkwrap/isexe-1.1.2.tgz"
    },
    "isobject": {
      "version": "2.1.0",
      "from": "isobject@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/isobject-2.1.0.tgz"
    },
    "isomorphic-fetch": {
      "version": "2.2.1",
      "from": "isomorphic-fetch@>=2.1.1 <3.0.0",
      "resolved": "./node_shrinkwrap/isomorphic-fetch-2.2.1.tgz"
    },
    "isparta": {
      "version": "4.0.0",
      "from": "isparta@>=4.0.0 <4.1.0",
      "resolved": "./node_shrinkwrap/isparta-4.0.0.tgz"
    },
    "isstream": {
      "version": "0.1.2",
      "from": "isstream@>=0.1.2 <0.2.0",
      "resolved": "./node_shrinkwrap/isstream-0.1.2.tgz"
    },
    "istanbul": {
      "version": "0.4.3",
      "from": "istanbul@>=0.4.0 <0.5.0",
      "resolved": "./node_shrinkwrap/istanbul-0.4.3.tgz",
      "dependencies": {
        "supports-color": {
          "version": "3.1.2",
          "from": "supports-color@>=3.1.0 <4.0.0",
          "resolved": "./node_shrinkwrap/supports-color-3.1.2.tgz"
        }
      }
    },
    "jade": {
      "version": "0.26.3",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/jade-0.26.3.tgz",
      "dependencies": {
        "commander": {
          "version": "0.6.1",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/commander-0.6.1.tgz"
        },
        "mkdirp": {
          "version": "0.3.0",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/mkdirp-0.3.0.tgz"
        }
      }
    },
    "jodid25519": {
      "version": "1.0.2",
      "from": "jodid25519@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/jodid25519-1.0.2.tgz"
    },
    "js-base64": {
      "version": "2.1.9",
      "from": "js-base64@>=2.1.9 <3.0.0",
      "resolved": "./node_shrinkwrap/js-base64-2.1.9.tgz"
    },
    "js-tokens": {
      "version": "1.0.3",
      "from": "js-tokens@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/js-tokens-1.0.3.tgz"
    },
    "js-yaml": {
      "version": "3.0.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/js-yaml-3.0.1.tgz",
      "dependencies": {
        "esprima": {
          "version": "1.0.4",
          "from": "esprima@>=1.0.2 <1.1.0",
          "resolved": "./node_shrinkwrap/esprima-1.0.4.tgz"
        }
      }
    },
    "jsbn": {
      "version": "0.1.0",
      "from": "jsbn@>=0.1.0 <0.2.0",
      "resolved": "./node_shrinkwrap/jsbn-0.1.0.tgz"
    },
    "jsdom": {
      "version": "7.2.2",
      "from": "jsdom@>=7.0.2 <8.0.0",
      "resolved": "./node_shrinkwrap/jsdom-7.2.2.tgz"
    },
    "jsesc": {
      "version": "0.5.0",
      "from": "jsesc@>=0.5.0 <0.6.0",
      "resolved": "./node_shrinkwrap/jsesc-0.5.0.tgz"
    },
    "json-schema": {
      "version": "0.2.2",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/json-schema-0.2.2.tgz"
    },
    "json-stable-stringify": {
      "version": "1.0.1",
      "from": "json-stable-stringify@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/json-stable-stringify-1.0.1.tgz"
    },
    "json-stringify-safe": {
      "version": "5.0.1",
      "from": "json-stringify-safe@>=5.0.1 <5.1.0",
      "resolved": "./node_shrinkwrap/json-stringify-safe-5.0.1.tgz"
    },
    "json3": {
      "version": "3.2.6",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/json3-3.2.6.tgz"
    },
    "json5": {
      "version": "0.4.0",
      "from": "json5@>=0.4.0 <0.5.0",
      "resolved": "./node_shrinkwrap/json5-0.4.0.tgz"
    },
    "jsonfile": {
      "version": "2.3.1",
      "from": "jsonfile@>=2.1.0 <3.0.0",
      "resolved": "./node_shrinkwrap/jsonfile-2.3.1.tgz"
    },
    "jsonify": {
      "version": "0.0.0",
      "from": "jsonify@>=0.0.0 <0.1.0",
      "resolved": "./node_shrinkwrap/jsonify-0.0.0.tgz"
    },
    "jsonpointer": {
      "version": "2.0.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/jsonpointer-2.0.0.tgz"
    },
    "jsprim": {
      "version": "1.2.2",
      "from": "jsprim@>=1.2.2 <2.0.0",
      "resolved": "./node_shrinkwrap/jsprim-1.2.2.tgz"
    },
    "keypress": {
      "version": "0.2.1",
      "from": "keypress@>=0.2.1 <0.3.0",
      "resolved": "./node_shrinkwrap/keypress-0.2.1.tgz"
    },
    "kind-of": {
      "version": "3.0.3",
      "from": "kind-of@>=3.0.2 <4.0.0",
      "resolved": "./node_shrinkwrap/kind-of-3.0.3.tgz"
    },
    "klaw": {
      "version": "1.2.0",
      "from": "klaw@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/klaw-1.2.0.tgz"
    },
    "lazy-cache": {
      "version": "1.0.4",
      "from": "lazy-cache@>=1.0.3 <2.0.0",
      "resolved": "./node_shrinkwrap/lazy-cache-1.0.4.tgz"
    },
    "lcid": {
      "version": "1.0.0",
      "from": "lcid@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/lcid-1.0.0.tgz"
    },
    "lcov-parse": {
      "version": "0.0.6",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/lcov-parse-0.0.6.tgz"
    },
    "levn": {
      "version": "0.3.0",
      "from": "levn@>=0.3.0 <0.4.0",
      "resolved": "./node_shrinkwrap/levn-0.3.0.tgz"
    },
    "limiter": {
      "version": "1.1.0",
      "from": "limiter@>=1.0.5 <2.0.0",
      "resolved": "./node_shrinkwrap/limiter-1.1.0.tgz"
    },
    "load-json-file": {
      "version": "1.1.0",
      "from": "load-json-file@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/load-json-file-1.1.0.tgz"
    },
    "loader-utils": {
      "version": "0.2.15",
      "from": "loader-utils@>=0.2.11 <0.3.0",
      "resolved": "./node_shrinkwrap/loader-utils-0.2.15.tgz",
      "dependencies": {
        "json5": {
          "version": "0.5.0",
          "from": "json5@>=0.5.0 <0.6.0",
          "resolved": "./node_shrinkwrap/json5-0.5.0.tgz"
        }
      }
    },
    "localtunnel": {
      "version": "1.8.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/localtunnel-1.8.1.tgz",
      "dependencies": {
        "asn1": {
          "version": "0.1.11",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/asn1-0.1.11.tgz"
        },
        "assert-plus": {
          "version": "0.1.5",
          "from": "assert-plus@>=0.1.5 <0.2.0",
          "resolved": "./node_shrinkwrap/assert-plus-0.1.5.tgz"
        },
        "bl": {
          "version": "1.0.3",
          "from": "bl@>=1.0.0 <1.1.0",
          "resolved": "./node_shrinkwrap/bl-1.0.3.tgz"
        },
        "camelcase": {
          "version": "1.2.1",
          "from": "camelcase@>=1.2.1 <2.0.0",
          "resolved": "./node_shrinkwrap/camelcase-1.2.1.tgz"
        },
        "http-signature": {
          "version": "0.11.0",
          "from": "http-signature@>=0.11.0 <0.12.0",
          "resolved": "./node_shrinkwrap/http-signature-0.11.0.tgz"
        },
        "qs": {
          "version": "5.2.0",
          "from": "qs@>=5.2.0 <5.3.0",
          "resolved": "./node_shrinkwrap/qs-5.2.0.tgz"
        },
        "readable-stream": {
          "version": "2.0.6",
          "from": "readable-stream@>=2.0.5 <2.1.0",
          "resolved": "./node_shrinkwrap/readable-stream-2.0.6.tgz"
        },
        "request": {
          "version": "2.65.0",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/request-2.65.0.tgz"
        },
        "yargs": {
          "version": "3.29.0",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/yargs-3.29.0.tgz"
        }
      }
    },
    "lodash": {
      "version": "4.13.1",
      "from": "lodash@>=4.2.0 <5.0.0",
      "resolved": "./node_shrinkwrap/lodash-4.13.1.tgz"
    },
    "lodash-es": {
      "version": "4.13.1",
      "from": "lodash-es@>=4.2.1 <5.0.0",
      "resolved": "./node_shrinkwrap/lodash-es-4.13.1.tgz"
    },
    "lodash._baseassign": {
      "version": "3.2.0",
      "from": "lodash._baseassign@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/lodash._baseassign-3.2.0.tgz",
      "dependencies": {
        "lodash.keys": {
          "version": "3.1.2",
          "from": "lodash.keys@>=3.0.0 <4.0.0",
          "resolved": "./node_shrinkwrap/lodash.keys-3.1.2.tgz"
        }
      }
    },
    "lodash._baseclone": {
      "version": "4.5.7",
      "from": "lodash._baseclone@>=4.0.0 <5.0.0",
      "resolved": "./node_shrinkwrap/lodash._baseclone-4.5.7.tgz"
    },
    "lodash._basecopy": {
      "version": "3.0.1",
      "from": "lodash._basecopy@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/lodash._basecopy-3.0.1.tgz"
    },
    "lodash._baseeach": {
      "version": "4.1.3",
      "from": "lodash._baseeach@>=4.1.0 <4.2.0",
      "resolved": "./node_shrinkwrap/lodash._baseeach-4.1.3.tgz"
    },
    "lodash._basefind": {
      "version": "3.0.0",
      "from": "lodash._basefind@>=3.0.0 <3.1.0",
      "resolved": "./node_shrinkwrap/lodash._basefind-3.0.0.tgz"
    },
    "lodash._basefindindex": {
      "version": "3.6.0",
      "from": "lodash._basefindindex@>=3.6.0 <3.7.0",
      "resolved": "./node_shrinkwrap/lodash._basefindindex-3.6.0.tgz"
    },
    "lodash._baseiteratee": {
      "version": "4.7.0",
      "from": "lodash._baseiteratee@>=4.7.0 <4.8.0",
      "resolved": "./node_shrinkwrap/lodash._baseiteratee-4.7.0.tgz"
    },
    "lodash._baseslice": {
      "version": "4.0.0",
      "from": "lodash._baseslice@>=4.0.0 <4.1.0",
      "resolved": "./node_shrinkwrap/lodash._baseslice-4.0.0.tgz"
    },
    "lodash._basetostring": {
      "version": "4.12.0",
      "from": "lodash._basetostring@>=4.12.0 <4.13.0",
      "resolved": "./node_shrinkwrap/lodash._basetostring-4.12.0.tgz"
    },
    "lodash._bindcallback": {
      "version": "3.0.1",
      "from": "lodash._bindcallback@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/lodash._bindcallback-3.0.1.tgz"
    },
    "lodash._createassigner": {
      "version": "3.1.1",
      "from": "lodash._createassigner@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/lodash._createassigner-3.1.1.tgz"
    },
    "lodash._createcompounder": {
      "version": "3.0.0",
      "from": "lodash._createcompounder@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/lodash._createcompounder-3.0.0.tgz"
    },
    "lodash._getnative": {
      "version": "3.9.1",
      "from": "lodash._getnative@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/lodash._getnative-3.9.1.tgz"
    },
    "lodash._isiterateecall": {
      "version": "3.0.9",
      "from": "lodash._isiterateecall@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/lodash._isiterateecall-3.0.9.tgz"
    },
    "lodash._root": {
      "version": "3.0.1",
      "from": "lodash._root@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/lodash._root-3.0.1.tgz"
    },
    "lodash._stringtopath": {
      "version": "4.8.0",
      "from": "lodash._stringtopath@>=4.8.0 <4.9.0",
      "resolved": "./node_shrinkwrap/lodash._stringtopath-4.8.0.tgz"
    },
    "lodash.assign": {
      "version": "4.0.9",
      "from": "lodash.assign@>=4.0.3 <5.0.0",
      "resolved": "./node_shrinkwrap/lodash.assign-4.0.9.tgz"
    },
    "lodash.camelcase": {
      "version": "3.0.1",
      "from": "lodash.camelcase@>=3.0.1 <4.0.0",
      "resolved": "./node_shrinkwrap/lodash.camelcase-3.0.1.tgz"
    },
    "lodash.clonedeep": {
      "version": "4.3.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/lodash.clonedeep-4.3.1.tgz"
    },
    "lodash.cond": {
      "version": "4.4.0",
      "from": "lodash.cond@>=4.3.0 <5.0.0",
      "resolved": "./node_shrinkwrap/lodash.cond-4.4.0.tgz"
    },
    "lodash.deburr": {
      "version": "3.2.0",
      "from": "lodash.deburr@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/lodash.deburr-3.2.0.tgz"
    },
    "lodash.endswith": {
      "version": "4.1.0",
      "from": "lodash.endswith@>=4.0.1 <5.0.0",
      "resolved": "./node_shrinkwrap/lodash.endswith-4.1.0.tgz"
    },
    "lodash.find": {
      "version": "4.4.0",
      "from": "lodash.find@>=4.3.0 <5.0.0",
      "resolved": "./node_shrinkwrap/lodash.find-4.4.0.tgz"
    },
    "lodash.isarguments": {
      "version": "3.0.8",
      "from": "lodash.isarguments@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/lodash.isarguments-3.0.8.tgz"
    },
    "lodash.isarray": {
      "version": "3.0.4",
      "from": "lodash.isarray@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/lodash.isarray-3.0.4.tgz"
    },
    "lodash.keys": {
      "version": "4.0.7",
      "from": "lodash.keys@>=4.0.0 <5.0.0",
      "resolved": "./node_shrinkwrap/lodash.keys-4.0.7.tgz"
    },
    "lodash.pad": {
      "version": "4.4.0",
      "from": "lodash.pad@>=4.1.0 <5.0.0",
      "resolved": "./node_shrinkwrap/lodash.pad-4.4.0.tgz"
    },
    "lodash.padend": {
      "version": "4.5.0",
      "from": "lodash.padend@>=4.1.0 <5.0.0",
      "resolved": "./node_shrinkwrap/lodash.padend-4.5.0.tgz"
    },
    "lodash.padstart": {
      "version": "4.5.0",
      "from": "lodash.padstart@>=4.1.0 <5.0.0",
      "resolved": "./node_shrinkwrap/lodash.padstart-4.5.0.tgz"
    },
    "lodash.rest": {
      "version": "4.0.3",
      "from": "lodash.rest@>=4.0.0 <5.0.0",
      "resolved": "./node_shrinkwrap/lodash.rest-4.0.3.tgz"
    },
    "lodash.restparam": {
      "version": "3.6.1",
      "from": "lodash.restparam@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/lodash.restparam-3.6.1.tgz"
    },
    "lodash.tostring": {
      "version": "4.1.3",
      "from": "lodash.tostring@>=4.0.0 <5.0.0",
      "resolved": "./node_shrinkwrap/lodash.tostring-4.1.3.tgz"
    },
    "lodash.words": {
      "version": "3.2.0",
      "from": "lodash.words@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/lodash.words-3.2.0.tgz"
    },
    "log-driver": {
      "version": "1.2.4",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/log-driver-1.2.4.tgz"
    },
    "log-symbols": {
      "version": "1.0.2",
      "from": "log-symbols@>=1.0.2 <2.0.0",
      "resolved": "./node_shrinkwrap/log-symbols-1.0.2.tgz"
    },
    "lolex": {
      "version": "1.3.2",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/lolex-1.3.2.tgz"
    },
    "longest": {
      "version": "1.0.1",
      "from": "longest@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/longest-1.0.1.tgz"
    },
    "loose-envify": {
      "version": "1.2.0",
      "from": "loose-envify@>=1.1.0 <2.0.0",
      "resolved": "./node_shrinkwrap/loose-envify-1.2.0.tgz"
    },
    "loud-rejection": {
      "version": "1.3.0",
      "from": "loud-rejection@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/loud-rejection-1.3.0.tgz"
    },
    "lru-cache": {
      "version": "4.0.1",
      "from": "lru-cache@>=4.0.1 <5.0.0",
      "resolved": "./node_shrinkwrap/lru-cache-4.0.1.tgz"
    },
    "map-obj": {
      "version": "1.0.1",
      "from": "map-obj@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/map-obj-1.0.1.tgz"
    },
    "map-stream": {
      "version": "0.1.0",
      "from": "map-stream@>=0.1.0 <0.2.0",
      "resolved": "./node_shrinkwrap/map-stream-0.1.0.tgz"
    },
    "memory-fs": {
      "version": "0.3.0",
      "from": "memory-fs@>=0.3.0 <0.4.0",
      "resolved": "./node_shrinkwrap/memory-fs-0.3.0.tgz"
    },
    "meow": {
      "version": "3.7.0",
      "from": "meow@>=3.5.0 <4.0.0",
      "resolved": "./node_shrinkwrap/meow-3.7.0.tgz"
    },
    "micromatch": {
      "version": "2.3.8",
      "from": "micromatch@>=2.1.5 <3.0.0",
      "resolved": "./node_shrinkwrap/micromatch-2.3.8.tgz"
    },
    "mime": {
      "version": "1.2.4",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/mime-1.2.4.tgz"
    },
    "mime-db": {
      "version": "1.23.0",
      "from": "mime-db@>=1.23.0 <1.24.0",
      "resolved": "./node_shrinkwrap/mime-db-1.23.0.tgz"
    },
    "mime-types": {
      "version": "2.1.11",
      "from": "mime-types@>=2.1.7 <2.2.0",
      "resolved": "./node_shrinkwrap/mime-types-2.1.11.tgz"
    },
    "min-document": {
      "version": "2.18.0",
      "from": "min-document@>=2.6.1 <3.0.0",
      "resolved": "./node_shrinkwrap/min-document-2.18.0.tgz"
    },
    "minimatch": {
      "version": "2.0.10",
      "from": "minimatch@>=2.0.3 <3.0.0",
      "resolved": "./node_shrinkwrap/minimatch-2.0.10.tgz"
    },
    "minimist": {
      "version": "1.2.0",
      "from": "minimist@>=1.1.0 <2.0.0",
      "resolved": "./node_shrinkwrap/minimist-1.2.0.tgz"
    },
    "mkdirp": {
      "version": "0.5.1",
      "from": "mkdirp@>=0.5.1 <0.6.0",
      "resolved": "./node_shrinkwrap/mkdirp-0.5.1.tgz",
      "dependencies": {
        "minimist": {
          "version": "0.0.8",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/minimist-0.0.8.tgz"
        }
      }
    },
    "mocha": {
      "version": "2.4.5",
      "from": "mocha@>=2.4.5 <2.5.0",
      "resolved": "./node_shrinkwrap/mocha-2.4.5.tgz",
      "dependencies": {
        "commander": {
          "version": "2.3.0",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/commander-2.3.0.tgz"
        },
        "escape-string-regexp": {
          "version": "1.0.2",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/escape-string-regexp-1.0.2.tgz"
        },
        "glob": {
          "version": "3.2.3",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/glob-3.2.3.tgz"
        },
        "graceful-fs": {
          "version": "2.0.3",
          "from": "graceful-fs@>=2.0.0 <2.1.0",
          "resolved": "./node_shrinkwrap/graceful-fs-2.0.3.tgz"
        },
        "lru-cache": {
          "version": "2.7.3",
          "from": "lru-cache@>=2.0.0 <3.0.0",
          "resolved": "./node_shrinkwrap/lru-cache-2.7.3.tgz"
        },
        "minimatch": {
          "version": "0.2.14",
          "from": "minimatch@>=0.2.11 <0.3.0",
          "resolved": "./node_shrinkwrap/minimatch-0.2.14.tgz"
        },
        "supports-color": {
          "version": "1.2.0",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/supports-color-1.2.0.tgz"
        }
      }
    },
    "ms": {
      "version": "0.7.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/ms-0.7.1.tgz"
    },
    "mute-stream": {
      "version": "0.0.5",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/mute-stream-0.0.5.tgz"
    },
    "nan": {
      "version": "2.3.3",
      "from": "nan@>=2.3.0 <3.0.0",
      "resolved": "./node_shrinkwrap/nan-2.3.3.tgz"
    },
    "negotiator": {
      "version": "0.5.3",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/negotiator-0.5.3.tgz"
    },
    "node-fetch": {
      "version": "1.5.3",
      "from": "node-fetch@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/node-fetch-1.5.3.tgz"
    },
    "node-gyp": {
      "version": "3.3.1",
      "from": "node-gyp@>=3.3.1 <4.0.0",
      "resolved": "./node_shrinkwrap/node-gyp-3.3.1.tgz",
      "dependencies": {
        "glob": {
          "version": "4.5.3",
          "from": "glob@>=3.0.0 <4.0.0||>=4.0.0 <5.0.0",
          "resolved": "./node_shrinkwrap/glob-4.5.3.tgz",
          "dependencies": {
            "minimatch": {
              "version": "2.0.10",
              "from": "minimatch@^2.0.1",
              "resolved": "./node_shrinkwrap/minimatch-2.0.10.tgz"
            }
          }
        },
        "lru-cache": {
          "version": "2.7.3",
          "from": "lru-cache@>=2.0.0 <3.0.0",
          "resolved": "./node_shrinkwrap/lru-cache-2.7.3.tgz"
        },
        "minimatch": {
          "version": "1.0.0",
          "from": "minimatch@>=1.0.0 <2.0.0",
          "resolved": "./node_shrinkwrap/minimatch-1.0.0.tgz"
        }
      }
    },
    "node-libs-browser": {
      "version": "0.5.3",
      "from": "node-libs-browser@>=0.4.0 <=0.6.0",
      "resolved": "./node_shrinkwrap/node-libs-browser-0.5.3.tgz",
      "dependencies": {
        "isarray": {
          "version": "0.0.1",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/isarray-0.0.1.tgz"
        },
        "process": {
          "version": "0.11.3",
          "from": "process@>=0.11.0 <0.12.0",
          "resolved": "./node_shrinkwrap/process-0.11.3.tgz"
        },
        "readable-stream": {
          "version": "1.1.14",
          "from": "readable-stream@>=1.1.13 <2.0.0",
          "resolved": "./node_shrinkwrap/readable-stream-1.1.14.tgz"
        }
      }
    },
    "node-sass": {
      "version": "3.7.0",
      "from": "node-sass@>=3.7.0 <3.8.0",
      "resolved": "./node_shrinkwrap/node-sass-3.7.0.tgz",
      "dependencies": {
        "glob": {
          "version": "7.0.3",
          "from": "glob@>=7.0.3 <8.0.0",
          "resolved": "./node_shrinkwrap/glob-7.0.3.tgz"
        }
      }
    },
    "node-uuid": {
      "version": "1.4.7",
      "from": "node-uuid@>=1.4.7 <1.5.0",
      "resolved": "./node_shrinkwrap/node-uuid-1.4.7.tgz"
    },
    "nomnomnomnom": {
      "version": "2.0.1",
      "from": "nomnomnomnom@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/nomnomnomnom-2.0.1.tgz",
      "dependencies": {
        "ansi-styles": {
          "version": "1.0.0",
          "from": "ansi-styles@>=1.0.0 <1.1.0",
          "resolved": "./node_shrinkwrap/ansi-styles-1.0.0.tgz"
        },
        "chalk": {
          "version": "0.4.0",
          "from": "chalk@>=0.4.0 <0.5.0",
          "resolved": "./node_shrinkwrap/chalk-0.4.0.tgz"
        },
        "strip-ansi": {
          "version": "0.1.1",
          "from": "strip-ansi@>=0.1.0 <0.2.0",
          "resolved": "./node_shrinkwrap/strip-ansi-0.1.1.tgz"
        },
        "underscore": {
          "version": "1.6.0",
          "from": "underscore@>=1.6.0 <1.7.0",
          "resolved": "./node_shrinkwrap/underscore-1.6.0.tgz"
        }
      }
    },
    "nopt": {
      "version": "3.0.6",
      "from": "nopt@>=3.0.0 <3.1.0",
      "resolved": "./node_shrinkwrap/nopt-3.0.6.tgz"
    },
    "normalize-package-data": {
      "version": "2.3.5",
      "from": "normalize-package-data@>=2.3.4 <3.0.0",
      "resolved": "./node_shrinkwrap/normalize-package-data-2.3.5.tgz"
    },
    "normalize-path": {
      "version": "2.0.1",
      "from": "normalize-path@>=2.0.1 <3.0.0",
      "resolved": "./node_shrinkwrap/normalize-path-2.0.1.tgz"
    },
    "normalize-range": {
      "version": "0.1.2",
      "from": "normalize-range@>=0.1.2 <0.2.0",
      "resolved": "./node_shrinkwrap/normalize-range-0.1.2.tgz"
    },
    "normalize-url": {
      "version": "1.5.2",
      "from": "normalize-url@>=1.4.0 <2.0.0",
      "resolved": "./node_shrinkwrap/normalize-url-1.5.2.tgz",
      "dependencies": {
        "query-string": {
          "version": "4.1.0",
          "from": "query-string@>=4.1.0 <5.0.0",
          "resolved": "./node_shrinkwrap/query-string-4.1.0.tgz"
        }
      }
    },
    "npm-run-all": {
      "version": "1.8.0",
      "from": "npm-run-all@>=1.8.0 <1.9.0",
      "resolved": "./node_shrinkwrap/npm-run-all-1.8.0.tgz",
      "dependencies": {
        "minimatch": {
          "version": "3.0.0",
          "from": "minimatch@>=3.0.0 <4.0.0",
          "resolved": "./node_shrinkwrap/minimatch-3.0.0.tgz"
        }
      }
    },
    "npmlog": {
      "version": "2.0.4",
      "from": "npmlog@>=0.0.0 <1.0.0||>=1.0.0 <2.0.0||>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/npmlog-2.0.4.tgz"
    },
    "nth-check": {
      "version": "1.0.1",
      "from": "nth-check@>=1.0.1 <1.1.0",
      "resolved": "./node_shrinkwrap/nth-check-1.0.1.tgz"
    },
    "num2fraction": {
      "version": "1.2.2",
      "from": "num2fraction@>=1.2.2 <2.0.0",
      "resolved": "./node_shrinkwrap/num2fraction-1.2.2.tgz"
    },
    "number-is-nan": {
      "version": "1.0.0",
      "from": "number-is-nan@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/number-is-nan-1.0.0.tgz"
    },
    "nwmatcher": {
      "version": "1.3.7",
      "from": "nwmatcher@>=1.3.7 <2.0.0",
      "resolved": "./node_shrinkwrap/nwmatcher-1.3.7.tgz"
    },
    "oauth-sign": {
      "version": "0.8.2",
      "from": "oauth-sign@>=0.8.1 <0.9.0",
      "resolved": "./node_shrinkwrap/oauth-sign-0.8.2.tgz"
    },
    "object-assign": {
      "version": "4.1.0",
      "from": "object-assign@>=4.1.0 <4.2.0",
      "resolved": "./node_shrinkwrap/object-assign-4.1.0.tgz"
    },
    "object-component": {
      "version": "0.0.3",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/object-component-0.0.3.tgz"
    },
    "object-keys": {
      "version": "1.0.9",
      "from": "object-keys@>=1.0.9 <2.0.0",
      "resolved": "./node_shrinkwrap/object-keys-1.0.9.tgz"
    },
    "object-path": {
      "version": "0.9.2",
      "from": "object-path@>=0.9.0 <0.10.0",
      "resolved": "./node_shrinkwrap/object-path-0.9.2.tgz"
    },
    "object.assign": {
      "version": "4.0.3",
      "from": "object.assign@>=4.0.3 <5.0.0",
      "resolved": "./node_shrinkwrap/object.assign-4.0.3.tgz"
    },
    "object.omit": {
      "version": "2.0.0",
      "from": "object.omit@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/object.omit-2.0.0.tgz"
    },
    "object.values": {
      "version": "1.0.3",
      "from": "object.values@>=1.0.3 <2.0.0",
      "resolved": "./node_shrinkwrap/object.values-1.0.3.tgz"
    },
    "on-finished": {
      "version": "2.3.0",
      "from": "on-finished@>=2.3.0 <2.4.0",
      "resolved": "./node_shrinkwrap/on-finished-2.3.0.tgz"
    },
    "once": {
      "version": "1.3.3",
      "from": "once@>=1.3.0 <2.0.0",
      "resolved": "./node_shrinkwrap/once-1.3.3.tgz"
    },
    "onetime": {
      "version": "1.1.0",
      "from": "onetime@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/onetime-1.1.0.tgz"
    },
    "openurl": {
      "version": "1.1.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/openurl-1.1.0.tgz"
    },
    "opn": {
      "version": "3.0.3",
      "from": "opn@>=3.0.2 <4.0.0",
      "resolved": "./node_shrinkwrap/opn-3.0.3.tgz"
    },
    "opt-merger": {
      "version": "1.1.1",
      "from": "opt-merger@>=1.1.0 <2.0.0",
      "resolved": "./node_shrinkwrap/opt-merger-1.1.1.tgz",
      "dependencies": {
        "lodash": {
          "version": "3.10.1",
          "from": "lodash@>=3.10.1 <4.0.0",
          "resolved": "./node_shrinkwrap/lodash-3.10.1.tgz"
        }
      }
    },
    "optimist": {
      "version": "0.6.1",
      "from": "optimist@>=0.6.1 <0.7.0",
      "resolved": "./node_shrinkwrap/optimist-0.6.1.tgz",
      "dependencies": {
        "minimist": {
          "version": "0.0.10",
          "from": "minimist@>=0.0.1 <0.1.0",
          "resolved": "./node_shrinkwrap/minimist-0.0.10.tgz"
        },
        "wordwrap": {
          "version": "0.0.3",
          "from": "wordwrap@>=0.0.2 <0.1.0",
          "resolved": "./node_shrinkwrap/wordwrap-0.0.3.tgz"
        }
      }
    },
    "optionator": {
      "version": "0.8.1",
      "from": "optionator@>=0.8.1 <0.9.0",
      "resolved": "./node_shrinkwrap/optionator-0.8.1.tgz"
    },
    "options": {
      "version": "0.0.6",
      "from": "options@>=0.0.5",
      "resolved": "./node_shrinkwrap/options-0.0.6.tgz"
    },
    "os-browserify": {
      "version": "0.1.2",
      "from": "os-browserify@>=0.1.2 <0.2.0",
      "resolved": "./node_shrinkwrap/os-browserify-0.1.2.tgz"
    },
    "os-homedir": {
      "version": "1.0.1",
      "from": "os-homedir@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/os-homedir-1.0.1.tgz"
    },
    "os-locale": {
      "version": "1.4.0",
      "from": "os-locale@>=1.4.0 <2.0.0",
      "resolved": "./node_shrinkwrap/os-locale-1.4.0.tgz"
    },
    "os-tmpdir": {
      "version": "1.0.1",
      "from": "os-tmpdir@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/os-tmpdir-1.0.1.tgz"
    },
    "osenv": {
      "version": "0.1.3",
      "from": "osenv@>=0.0.0 <1.0.0",
      "resolved": "./node_shrinkwrap/osenv-0.1.3.tgz"
    },
    "output-file-sync": {
      "version": "1.1.1",
      "from": "output-file-sync@>=1.1.0 <2.0.0",
      "resolved": "./node_shrinkwrap/output-file-sync-1.1.1.tgz"
    },
    "pako": {
      "version": "0.2.8",
      "from": "pako@>=0.2.0 <0.3.0",
      "resolved": "./node_shrinkwrap/pako-0.2.8.tgz"
    },
    "parse-glob": {
      "version": "3.0.4",
      "from": "parse-glob@>=3.0.4 <4.0.0",
      "resolved": "./node_shrinkwrap/parse-glob-3.0.4.tgz"
    },
    "parse-json": {
      "version": "2.2.0",
      "from": "parse-json@>=2.2.0 <3.0.0",
      "resolved": "./node_shrinkwrap/parse-json-2.2.0.tgz"
    },
    "parse5": {
      "version": "1.5.1",
      "from": "parse5@>=1.5.1 <2.0.0",
      "resolved": "./node_shrinkwrap/parse5-1.5.1.tgz"
    },
    "parsejson": {
      "version": "0.0.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/parsejson-0.0.1.tgz"
    },
    "parseqs": {
      "version": "0.0.2",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/parseqs-0.0.2.tgz"
    },
    "parseuri": {
      "version": "0.0.4",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/parseuri-0.0.4.tgz"
    },
    "parseurl": {
      "version": "1.3.1",
      "from": "parseurl@>=1.3.1 <1.4.0",
      "resolved": "./node_shrinkwrap/parseurl-1.3.1.tgz"
    },
    "path-array": {
      "version": "1.0.1",
      "from": "path-array@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/path-array-1.0.1.tgz"
    },
    "path-browserify": {
      "version": "0.0.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/path-browserify-0.0.0.tgz"
    },
    "path-exists": {
      "version": "1.0.0",
      "from": "path-exists@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/path-exists-1.0.0.tgz"
    },
    "path-is-absolute": {
      "version": "1.0.0",
      "from": "path-is-absolute@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/path-is-absolute-1.0.0.tgz"
    },
    "path-is-inside": {
      "version": "1.0.1",
      "from": "path-is-inside@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/path-is-inside-1.0.1.tgz"
    },
    "path-type": {
      "version": "1.1.0",
      "from": "path-type@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/path-type-1.1.0.tgz"
    },
    "pause-stream": {
      "version": "0.0.11",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/pause-stream-0.0.11.tgz"
    },
    "pbkdf2-compat": {
      "version": "2.0.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/pbkdf2-compat-2.0.1.tgz"
    },
    "pify": {
      "version": "2.3.0",
      "from": "pify@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/pify-2.3.0.tgz"
    },
    "pinkie": {
      "version": "2.0.4",
      "from": "pinkie@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/pinkie-2.0.4.tgz"
    },
    "pinkie-promise": {
      "version": "2.0.1",
      "from": "pinkie-promise@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/pinkie-promise-2.0.1.tgz"
    },
    "pkg-conf": {
      "version": "1.1.3",
      "from": "pkg-conf@>=1.1.2 <2.0.0",
      "resolved": "./node_shrinkwrap/pkg-conf-1.1.3.tgz"
    },
    "pkg-up": {
      "version": "1.0.0",
      "from": "pkg-up@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/pkg-up-1.0.0.tgz"
    },
    "pluralize": {
      "version": "1.2.1",
      "from": "pluralize@>=1.2.1 <2.0.0",
      "resolved": "./node_shrinkwrap/pluralize-1.2.1.tgz"
    },
    "portscanner": {
      "version": "1.0.0",
      "from": "portscanner@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/portscanner-1.0.0.tgz",
      "dependencies": {
        "async": {
          "version": "0.1.15",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/async-0.1.15.tgz"
        }
      }
    },
    "postcss": {
      "version": "5.0.21",
      "from": "postcss@>=5.0.6 <6.0.0",
      "resolved": "./node_shrinkwrap/postcss-5.0.21.tgz",
      "dependencies": {
        "supports-color": {
          "version": "3.1.2",
          "from": "supports-color@>=3.1.2 <4.0.0",
          "resolved": "./node_shrinkwrap/supports-color-3.1.2.tgz"
        }
      }
    },
    "postcss-calc": {
      "version": "5.2.1",
      "from": "postcss-calc@>=5.2.0 <6.0.0",
      "resolved": "./node_shrinkwrap/postcss-calc-5.2.1.tgz"
    },
    "postcss-colormin": {
      "version": "2.2.0",
      "from": "postcss-colormin@>=2.1.8 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-colormin-2.2.0.tgz"
    },
    "postcss-convert-values": {
      "version": "2.3.4",
      "from": "postcss-convert-values@>=2.3.4 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-convert-values-2.3.4.tgz"
    },
    "postcss-discard-comments": {
      "version": "2.0.4",
      "from": "postcss-discard-comments@>=2.0.4 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-discard-comments-2.0.4.tgz"
    },
    "postcss-discard-duplicates": {
      "version": "2.0.1",
      "from": "postcss-discard-duplicates@>=2.0.1 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-discard-duplicates-2.0.1.tgz"
    },
    "postcss-discard-empty": {
      "version": "2.1.0",
      "from": "postcss-discard-empty@>=2.0.1 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-discard-empty-2.1.0.tgz"
    },
    "postcss-discard-overridden": {
      "version": "0.1.1",
      "from": "postcss-discard-overridden@>=0.1.1 <0.2.0",
      "resolved": "./node_shrinkwrap/postcss-discard-overridden-0.1.1.tgz"
    },
    "postcss-discard-unused": {
      "version": "2.2.1",
      "from": "postcss-discard-unused@>=2.2.1 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-discard-unused-2.2.1.tgz"
    },
    "postcss-filter-plugins": {
      "version": "2.0.0",
      "from": "postcss-filter-plugins@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-filter-plugins-2.0.0.tgz"
    },
    "postcss-merge-idents": {
      "version": "2.1.6",
      "from": "postcss-merge-idents@>=2.1.5 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-merge-idents-2.1.6.tgz"
    },
    "postcss-merge-longhand": {
      "version": "2.0.1",
      "from": "postcss-merge-longhand@>=2.0.1 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-merge-longhand-2.0.1.tgz"
    },
    "postcss-merge-rules": {
      "version": "2.0.9",
      "from": "postcss-merge-rules@>=2.0.3 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-merge-rules-2.0.9.tgz"
    },
    "postcss-message-helpers": {
      "version": "2.0.0",
      "from": "postcss-message-helpers@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-message-helpers-2.0.0.tgz"
    },
    "postcss-minify-font-values": {
      "version": "1.0.5",
      "from": "postcss-minify-font-values@>=1.0.2 <2.0.0",
      "resolved": "./node_shrinkwrap/postcss-minify-font-values-1.0.5.tgz"
    },
    "postcss-minify-gradients": {
      "version": "1.0.2",
      "from": "postcss-minify-gradients@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/postcss-minify-gradients-1.0.2.tgz"
    },
    "postcss-minify-params": {
      "version": "1.0.4",
      "from": "postcss-minify-params@>=1.0.4 <2.0.0",
      "resolved": "./node_shrinkwrap/postcss-minify-params-1.0.4.tgz"
    },
    "postcss-minify-selectors": {
      "version": "2.0.5",
      "from": "postcss-minify-selectors@>=2.0.4 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-minify-selectors-2.0.5.tgz"
    },
    "postcss-modules-extract-imports": {
      "version": "1.0.1",
      "from": "postcss-modules-extract-imports@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/postcss-modules-extract-imports-1.0.1.tgz"
    },
    "postcss-modules-local-by-default": {
      "version": "1.0.1",
      "from": "postcss-modules-local-by-default@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/postcss-modules-local-by-default-1.0.1.tgz"
    },
    "postcss-modules-scope": {
      "version": "1.0.1",
      "from": "postcss-modules-scope@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/postcss-modules-scope-1.0.1.tgz"
    },
    "postcss-modules-values": {
      "version": "1.1.3",
      "from": "postcss-modules-values@>=1.1.0 <2.0.0",
      "resolved": "./node_shrinkwrap/postcss-modules-values-1.1.3.tgz"
    },
    "postcss-normalize-charset": {
      "version": "1.1.0",
      "from": "postcss-normalize-charset@>=1.1.0 <2.0.0",
      "resolved": "./node_shrinkwrap/postcss-normalize-charset-1.1.0.tgz"
    },
    "postcss-normalize-url": {
      "version": "3.0.7",
      "from": "postcss-normalize-url@>=3.0.7 <4.0.0",
      "resolved": "./node_shrinkwrap/postcss-normalize-url-3.0.7.tgz"
    },
    "postcss-ordered-values": {
      "version": "2.2.1",
      "from": "postcss-ordered-values@>=2.1.0 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-ordered-values-2.2.1.tgz"
    },
    "postcss-reduce-idents": {
      "version": "2.3.0",
      "from": "postcss-reduce-idents@>=2.2.2 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-reduce-idents-2.3.0.tgz"
    },
    "postcss-reduce-transforms": {
      "version": "1.0.3",
      "from": "postcss-reduce-transforms@>=1.0.3 <2.0.0",
      "resolved": "./node_shrinkwrap/postcss-reduce-transforms-1.0.3.tgz"
    },
    "postcss-selector-parser": {
      "version": "2.0.0",
      "from": "postcss-selector-parser@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-selector-parser-2.0.0.tgz"
    },
    "postcss-svgo": {
      "version": "2.1.3",
      "from": "postcss-svgo@>=2.1.1 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-svgo-2.1.3.tgz"
    },
    "postcss-unique-selectors": {
      "version": "2.0.2",
      "from": "postcss-unique-selectors@>=2.0.2 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-unique-selectors-2.0.2.tgz"
    },
    "postcss-value-parser": {
      "version": "3.3.0",
      "from": "postcss-value-parser@>=3.2.3 <4.0.0",
      "resolved": "./node_shrinkwrap/postcss-value-parser-3.3.0.tgz"
    },
    "postcss-zindex": {
      "version": "2.1.1",
      "from": "postcss-zindex@>=2.0.1 <3.0.0",
      "resolved": "./node_shrinkwrap/postcss-zindex-2.1.1.tgz"
    },
    "prelude-ls": {
      "version": "1.1.2",
      "from": "prelude-ls@>=1.1.2 <1.2.0",
      "resolved": "./node_shrinkwrap/prelude-ls-1.1.2.tgz"
    },
    "prepend-http": {
      "version": "1.0.4",
      "from": "prepend-http@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/prepend-http-1.0.4.tgz"
    },
    "preserve": {
      "version": "0.2.0",
      "from": "preserve@>=0.2.0 <0.3.0",
      "resolved": "./node_shrinkwrap/preserve-0.2.0.tgz"
    },
    "private": {
      "version": "0.1.6",
      "from": "private@>=0.1.6 <0.2.0",
      "resolved": "./node_shrinkwrap/private-0.1.6.tgz"
    },
    "process": {
      "version": "0.5.2",
      "from": "process@>=0.5.1 <0.6.0",
      "resolved": "./node_shrinkwrap/process-0.5.2.tgz"
    },
    "process-nextick-args": {
      "version": "1.0.7",
      "from": "process-nextick-args@>=1.0.6 <1.1.0",
      "resolved": "./node_shrinkwrap/process-nextick-args-1.0.7.tgz"
    },
    "progress": {
      "version": "1.1.8",
      "from": "progress@>=1.1.8 <2.0.0",
      "resolved": "./node_shrinkwrap/progress-1.1.8.tgz"
    },
    "promise": {
      "version": "7.1.1",
      "from": "promise@>=7.1.1 <8.0.0",
      "resolved": "./node_shrinkwrap/promise-7.1.1.tgz"
    },
    "prr": {
      "version": "0.0.0",
      "from": "prr@>=0.0.0 <0.1.0",
      "resolved": "./node_shrinkwrap/prr-0.0.0.tgz"
    },
    "ps-tree": {
      "version": "1.0.1",
      "from": "ps-tree@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/ps-tree-1.0.1.tgz"
    },
    "pseudomap": {
      "version": "1.0.2",
      "from": "pseudomap@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/pseudomap-1.0.2.tgz"
    },
    "punycode": {
      "version": "1.4.1",
      "from": "punycode@>=1.2.4 <2.0.0",
      "resolved": "./node_shrinkwrap/punycode-1.4.1.tgz"
    },
    "q": {
      "version": "1.4.1",
      "from": "q@>=1.1.2 <2.0.0",
      "resolved": "./node_shrinkwrap/q-1.4.1.tgz"
    },
    "qs": {
      "version": "6.1.0",
      "from": "qs@>=6.1.0 <6.2.0",
      "resolved": "./node_shrinkwrap/qs-6.1.0.tgz"
    },
    "query-string": {
      "version": "3.0.3",
      "from": "query-string@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/query-string-3.0.3.tgz"
    },
    "querystring": {
      "version": "0.2.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/querystring-0.2.0.tgz"
    },
    "querystring-es3": {
      "version": "0.2.1",
      "from": "querystring-es3@>=0.2.0 <0.3.0",
      "resolved": "./node_shrinkwrap/querystring-es3-0.2.1.tgz"
    },
    "randomatic": {
      "version": "1.1.5",
      "from": "randomatic@>=1.1.3 <2.0.0",
      "resolved": "./node_shrinkwrap/randomatic-1.1.5.tgz"
    },
    "range-parser": {
      "version": "1.0.3",
      "from": "range-parser@>=1.0.3 <1.1.0",
      "resolved": "./node_shrinkwrap/range-parser-1.0.3.tgz"
    },
    "react": {
      "version": "15.0.2",
      "from": "react@>=15.0.2 <15.1.0",
      "resolved": "./node_shrinkwrap/react-15.0.2.tgz"
    },
    "react-addons-test-utils": {
      "version": "15.0.2",
      "from": "react-addons-test-utils@>=15.0.2 <15.1.0",
      "resolved": "./node_shrinkwrap/react-addons-test-utils-15.0.2.tgz"
    },
    "react-deep-force-update": {
      "version": "1.0.1",
      "from": "react-deep-force-update@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/react-deep-force-update-1.0.1.tgz"
    },
    "react-dom": {
      "version": "15.0.2",
      "from": "react-dom@>=15.0.2 <15.1.0",
      "resolved": "./node_shrinkwrap/react-dom-15.0.2.tgz"
    },
    "react-proxy": {
      "version": "1.1.8",
      "from": "react-proxy@>=1.1.7 <2.0.0",
      "resolved": "./node_shrinkwrap/react-proxy-1.1.8.tgz"
    },
    "react-redux": {
      "version": "4.4.5",
      "from": "react-redux@>=4.4.5 <4.5.0",
      "resolved": "./node_shrinkwrap/react-redux-4.4.5.tgz"
    },
    "react-router": {
      "version": "2.4.1",
      "from": "react-router@>=2.4.0 <2.5.0",
      "resolved": "./node_shrinkwrap/react-router-2.4.1.tgz"
    },
    "react-transform-catch-errors": {
      "version": "1.0.2",
      "from": "react-transform-catch-errors@>=1.0.2 <2.0.0",
      "resolved": "./node_shrinkwrap/react-transform-catch-errors-1.0.2.tgz"
    },
    "react-transform-hmr": {
      "version": "1.0.4",
      "from": "react-transform-hmr@>=1.0.3 <2.0.0",
      "resolved": "./node_shrinkwrap/react-transform-hmr-1.0.4.tgz"
    },
    "read-json-sync": {
      "version": "1.1.1",
      "from": "read-json-sync@>=1.1.0 <2.0.0",
      "resolved": "./node_shrinkwrap/read-json-sync-1.1.1.tgz"
    },
    "read-pkg": {
      "version": "1.1.0",
      "from": "read-pkg@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/read-pkg-1.1.0.tgz"
    },
    "read-pkg-up": {
      "version": "1.0.1",
      "from": "read-pkg-up@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/read-pkg-up-1.0.1.tgz"
    },
    "readable-stream": {
      "version": "2.1.4",
      "from": "readable-stream@>=2.0.2 <3.0.0",
      "resolved": "./node_shrinkwrap/readable-stream-2.1.4.tgz"
    },
    "readdirp": {
      "version": "2.0.0",
      "from": "readdirp@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/readdirp-2.0.0.tgz"
    },
    "readline2": {
      "version": "1.0.1",
      "from": "readline2@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/readline2-1.0.1.tgz"
    },
    "redbox-react": {
      "version": "1.2.6",
      "from": "redbox-react@>=1.2.2 <2.0.0",
      "resolved": "./node_shrinkwrap/redbox-react-1.2.6.tgz"
    },
    "redent": {
      "version": "1.0.0",
      "from": "redent@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/redent-1.0.0.tgz"
    },
    "reduce-css-calc": {
      "version": "1.2.3",
      "from": "reduce-css-calc@>=1.2.0 <2.0.0",
      "resolved": "./node_shrinkwrap/reduce-css-calc-1.2.3.tgz",
      "dependencies": {
        "balanced-match": {
          "version": "0.1.0",
          "from": "balanced-match@>=0.1.0 <0.2.0",
          "resolved": "./node_shrinkwrap/balanced-match-0.1.0.tgz"
        }
      }
    },
    "reduce-function-call": {
      "version": "1.0.1",
      "from": "reduce-function-call@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/reduce-function-call-1.0.1.tgz",
      "dependencies": {
        "balanced-match": {
          "version": "0.1.0",
          "from": "balanced-match@>=0.1.0 <0.2.0",
          "resolved": "./node_shrinkwrap/balanced-match-0.1.0.tgz"
        }
      }
    },
    "redux": {
      "version": "3.5.2",
      "from": "redux@>=3.5.2 <3.6.0",
      "resolved": "./node_shrinkwrap/redux-3.5.2.tgz"
    },
    "redux-immutable-state-invariant": {
      "version": "1.2.3",
      "from": "redux-immutable-state-invariant@>=1.2.3 <1.3.0",
      "resolved": "./node_shrinkwrap/redux-immutable-state-invariant-1.2.3.tgz"
    },
    "regenerate": {
      "version": "1.3.0",
      "from": "regenerate@>=1.2.1 <2.0.0",
      "resolved": "./node_shrinkwrap/regenerate-1.3.0.tgz"
    },
    "regex-cache": {
      "version": "0.4.3",
      "from": "regex-cache@>=0.4.2 <0.5.0",
      "resolved": "./node_shrinkwrap/regex-cache-0.4.3.tgz"
    },
    "regexpu-core": {
      "version": "1.0.0",
      "from": "regexpu-core@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/regexpu-core-1.0.0.tgz"
    },
    "regjsgen": {
      "version": "0.2.0",
      "from": "regjsgen@>=0.2.0 <0.3.0",
      "resolved": "./node_shrinkwrap/regjsgen-0.2.0.tgz"
    },
    "regjsparser": {
      "version": "0.1.5",
      "from": "regjsparser@>=0.1.4 <0.2.0",
      "resolved": "./node_shrinkwrap/regjsparser-0.1.5.tgz"
    },
    "repeat-element": {
      "version": "1.1.2",
      "from": "repeat-element@>=1.1.2 <2.0.0",
      "resolved": "./node_shrinkwrap/repeat-element-1.1.2.tgz"
    },
    "repeat-string": {
      "version": "1.5.4",
      "from": "repeat-string@>=1.5.2 <2.0.0",
      "resolved": "./node_shrinkwrap/repeat-string-1.5.4.tgz"
    },
    "repeating": {
      "version": "1.1.3",
      "from": "repeating@>=1.1.0 <2.0.0",
      "resolved": "./node_shrinkwrap/repeating-1.1.3.tgz"
    },
    "request": {
      "version": "2.72.0",
      "from": "request@>=2.65.0 <3.0.0",
      "resolved": "./node_shrinkwrap/request-2.72.0.tgz"
    },
    "require-main-filename": {
      "version": "1.0.1",
      "from": "require-main-filename@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/require-main-filename-1.0.1.tgz"
    },
    "require-uncached": {
      "version": "1.0.2",
      "from": "require-uncached@>=1.0.2 <2.0.0",
      "resolved": "./node_shrinkwrap/require-uncached-1.0.2.tgz"
    },
    "requires-port": {
      "version": "1.0.0",
      "from": "requires-port@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/requires-port-1.0.0.tgz"
    },
    "resolve": {
      "version": "1.1.7",
      "from": "resolve@>=1.1.6 <2.0.0",
      "resolved": "./node_shrinkwrap/resolve-1.1.7.tgz"
    },
    "resolve-from": {
      "version": "1.0.1",
      "from": "resolve-from@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/resolve-from-1.0.1.tgz"
    },
    "resp-modifier": {
      "version": "6.0.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/resp-modifier-6.0.1.tgz"
    },
    "restore-cursor": {
      "version": "1.0.1",
      "from": "restore-cursor@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/restore-cursor-1.0.1.tgz"
    },
    "right-align": {
      "version": "0.1.3",
      "from": "right-align@>=0.1.1 <0.2.0",
      "resolved": "./node_shrinkwrap/right-align-0.1.3.tgz"
    },
    "rimraf": {
      "version": "2.5.2",
      "from": "rimraf@>=2.5.2 <2.6.0",
      "resolved": "./node_shrinkwrap/rimraf-2.5.2.tgz",
      "dependencies": {
        "glob": {
          "version": "7.0.3",
          "from": "glob@>=7.0.0 <8.0.0",
          "resolved": "./node_shrinkwrap/glob-7.0.3.tgz"
        }
      }
    },
    "ripemd160": {
      "version": "0.2.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/ripemd160-0.2.0.tgz"
    },
    "run-async": {
      "version": "0.1.0",
      "from": "run-async@>=0.1.0 <0.2.0",
      "resolved": "./node_shrinkwrap/run-async-0.1.0.tgz"
    },
    "rx-lite": {
      "version": "3.1.2",
      "from": "rx-lite@>=3.1.2 <4.0.0",
      "resolved": "./node_shrinkwrap/rx-lite-3.1.2.tgz"
    },
    "samsam": {
      "version": "1.1.2",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/samsam-1.1.2.tgz"
    },
    "sass-graph": {
      "version": "2.1.1",
      "from": "sass-graph@>=2.1.1 <3.0.0",
      "resolved": "./node_shrinkwrap/sass-graph-2.1.1.tgz",
      "dependencies": {
        "glob": {
          "version": "6.0.4",
          "from": "glob@>=6.0.4 <7.0.0",
          "resolved": "./node_shrinkwrap/glob-6.0.4.tgz"
        },
        "yargs": {
          "version": "3.32.0",
          "from": "yargs@>=3.8.0 <4.0.0",
          "resolved": "./node_shrinkwrap/yargs-3.32.0.tgz"
        }
      }
    },
    "sass-loader": {
      "version": "3.2.0",
      "from": "sass-loader@>=3.2.0 <3.3.0",
      "resolved": "./node_shrinkwrap/sass-loader-3.2.0.tgz"
    },
    "sax": {
      "version": "1.2.1",
      "from": "sax@>=1.1.4 <2.0.0",
      "resolved": "./node_shrinkwrap/sax-1.2.1.tgz"
    },
    "semver": {
      "version": "4.3.6",
      "from": "semver@>=4.0.3 <5.0.0",
      "resolved": "./node_shrinkwrap/semver-4.3.6.tgz"
    },
    "semver-regex": {
      "version": "1.0.0",
      "from": "semver-regex@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/semver-regex-1.0.0.tgz"
    },
    "semver-truncate": {
      "version": "1.1.0",
      "from": "semver-truncate@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/semver-truncate-1.1.0.tgz",
      "dependencies": {
        "semver": {
          "version": "5.1.0",
          "from": "semver@>=5.0.3 <6.0.0",
          "resolved": "./node_shrinkwrap/semver-5.1.0.tgz"
        }
      }
    },
    "send": {
      "version": "0.13.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/send-0.13.1.tgz",
      "dependencies": {
        "mime": {
          "version": "1.3.4",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/mime-1.3.4.tgz"
        },
        "statuses": {
          "version": "1.2.1",
          "from": "statuses@>=1.2.1 <1.3.0",
          "resolved": "./node_shrinkwrap/statuses-1.2.1.tgz"
        }
      }
    },
    "serve-index": {
      "version": "1.7.3",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/serve-index-1.7.3.tgz"
    },
    "serve-static": {
      "version": "1.10.2",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/serve-static-1.10.2.tgz"
    },
    "sha.js": {
      "version": "2.2.6",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/sha.js-2.2.6.tgz"
    },
    "shebang-regex": {
      "version": "1.0.0",
      "from": "shebang-regex@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/shebang-regex-1.0.0.tgz"
    },
    "shell-quote": {
      "version": "1.6.0",
      "from": "shell-quote@>=1.4.3 <2.0.0",
      "resolved": "./node_shrinkwrap/shell-quote-1.6.0.tgz"
    },
    "shelljs": {
      "version": "0.6.0",
      "from": "shelljs@>=0.6.0 <0.7.0",
      "resolved": "./node_shrinkwrap/shelljs-0.6.0.tgz"
    },
    "sigmund": {
      "version": "1.0.1",
      "from": "sigmund@>=1.0.0 <1.1.0",
      "resolved": "./node_shrinkwrap/sigmund-1.0.1.tgz"
    },
    "signal-exit": {
      "version": "2.1.2",
      "from": "signal-exit@>=2.1.2 <3.0.0",
      "resolved": "./node_shrinkwrap/signal-exit-2.1.2.tgz"
    },
    "sinon": {
      "version": "1.17.4",
      "from": "sinon@>=1.17.4 <1.18.0",
      "resolved": "./node_shrinkwrap/sinon-1.17.4.tgz"
    },
    "sinon-chai": {
      "version": "2.8.0",
      "from": "sinon-chai@>=2.8.0 <2.9.0",
      "resolved": "./node_shrinkwrap/sinon-chai-2.8.0.tgz"
    },
    "slash": {
      "version": "1.0.0",
      "from": "slash@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/slash-1.0.0.tgz"
    },
    "slice-ansi": {
      "version": "0.0.4",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/slice-ansi-0.0.4.tgz"
    },
    "sntp": {
      "version": "1.0.9",
      "from": "sntp@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/sntp-1.0.9.tgz"
    },
    "socket.io": {
      "version": "1.4.5",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/socket.io-1.4.5.tgz"
    },
    "socket.io-adapter": {
      "version": "0.4.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/socket.io-adapter-0.4.0.tgz",
      "dependencies": {
        "isarray": {
          "version": "0.0.1",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/isarray-0.0.1.tgz"
        },
        "socket.io-parser": {
          "version": "2.2.2",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/socket.io-parser-2.2.2.tgz",
          "dependencies": {
            "debug": {
              "version": "0.7.4",
              "from": "[email protected]",
              "resolved": "./node_shrinkwrap/debug-0.7.4.tgz"
            }
          }
        }
      }
    },
    "socket.io-client": {
      "version": "1.4.5",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/socket.io-client-1.4.5.tgz",
      "dependencies": {
        "component-emitter": {
          "version": "1.2.0",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/component-emitter-1.2.0.tgz"
        }
      }
    },
    "socket.io-parser": {
      "version": "2.2.6",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/socket.io-parser-2.2.6.tgz",
      "dependencies": {
        "isarray": {
          "version": "0.0.1",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/isarray-0.0.1.tgz"
        },
        "json3": {
          "version": "3.3.2",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/json3-3.3.2.tgz"
        }
      }
    },
    "sort-keys": {
      "version": "1.1.2",
      "from": "sort-keys@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/sort-keys-1.1.2.tgz"
    },
    "source-list-map": {
      "version": "0.1.6",
      "from": "source-list-map@>=0.1.4 <0.2.0",
      "resolved": "./node_shrinkwrap/source-list-map-0.1.6.tgz"
    },
    "source-map": {
      "version": "0.5.6",
      "from": "source-map@>=0.5.0 <0.6.0",
      "resolved": "./node_shrinkwrap/source-map-0.5.6.tgz"
    },
    "source-map-support": {
      "version": "0.2.10",
      "from": "source-map-support@>=0.2.10 <0.3.0",
      "resolved": "./node_shrinkwrap/source-map-support-0.2.10.tgz",
      "dependencies": {
        "source-map": {
          "version": "0.1.32",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/source-map-0.1.32.tgz"
        }
      }
    },
    "spdx-correct": {
      "version": "1.0.2",
      "from": "spdx-correct@>=1.0.0 <1.1.0",
      "resolved": "./node_shrinkwrap/spdx-correct-1.0.2.tgz"
    },
    "spdx-exceptions": {
      "version": "1.0.4",
      "from": "spdx-exceptions@>=1.0.4 <2.0.0",
      "resolved": "./node_shrinkwrap/spdx-exceptions-1.0.4.tgz"
    },
    "spdx-expression-parse": {
      "version": "1.0.2",
      "from": "spdx-expression-parse@>=1.0.0 <1.1.0",
      "resolved": "./node_shrinkwrap/spdx-expression-parse-1.0.2.tgz"
    },
    "spdx-license-ids": {
      "version": "1.2.1",
      "from": "spdx-license-ids@>=1.0.2 <2.0.0",
      "resolved": "./node_shrinkwrap/spdx-license-ids-1.2.1.tgz"
    },
    "split": {
      "version": "0.3.3",
      "from": "split@>=0.3.0 <0.4.0",
      "resolved": "./node_shrinkwrap/split-0.3.3.tgz"
    },
    "sprintf-js": {
      "version": "1.0.3",
      "from": "sprintf-js@>=1.0.2 <1.1.0",
      "resolved": "./node_shrinkwrap/sprintf-js-1.0.3.tgz"
    },
    "sshpk": {
      "version": "1.8.3",
      "from": "sshpk@>=1.7.0 <2.0.0",
      "resolved": "./node_shrinkwrap/sshpk-1.8.3.tgz",
      "dependencies": {
        "assert-plus": {
          "version": "1.0.0",
          "from": "assert-plus@>=1.0.0 <2.0.0",
          "resolved": "./node_shrinkwrap/assert-plus-1.0.0.tgz"
        }
      }
    },
    "stackframe": {
      "version": "0.3.1",
      "from": "stackframe@>=0.3.1 <0.4.0",
      "resolved": "./node_shrinkwrap/stackframe-0.3.1.tgz"
    },
    "statuses": {
      "version": "1.3.0",
      "from": "statuses@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/statuses-1.3.0.tgz"
    },
    "stream-browserify": {
      "version": "1.0.0",
      "from": "stream-browserify@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/stream-browserify-1.0.0.tgz",
      "dependencies": {
        "isarray": {
          "version": "0.0.1",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/isarray-0.0.1.tgz"
        },
        "readable-stream": {
          "version": "1.1.14",
          "from": "readable-stream@>=1.0.27-1 <2.0.0",
          "resolved": "./node_shrinkwrap/readable-stream-1.1.14.tgz"
        }
      }
    },
    "stream-combiner": {
      "version": "0.0.4",
      "from": "stream-combiner@>=0.0.4 <0.1.0",
      "resolved": "./node_shrinkwrap/stream-combiner-0.0.4.tgz"
    },
    "stream-throttle": {
      "version": "0.1.3",
      "from": "stream-throttle@>=0.1.3 <0.2.0",
      "resolved": "./node_shrinkwrap/stream-throttle-0.1.3.tgz"
    },
    "strict-uri-encode": {
      "version": "1.1.0",
      "from": "strict-uri-encode@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/strict-uri-encode-1.1.0.tgz"
    },
    "string_decoder": {
      "version": "0.10.31",
      "from": "string_decoder@>=0.10.0 <0.11.0",
      "resolved": "./node_shrinkwrap/string_decoder-0.10.31.tgz"
    },
    "string-width": {
      "version": "1.0.1",
      "from": "string-width@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/string-width-1.0.1.tgz"
    },
    "string.prototype.padend": {
      "version": "3.0.0",
      "from": "string.prototype.padend@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/string.prototype.padend-3.0.0.tgz"
    },
    "stringstream": {
      "version": "0.0.5",
      "from": "stringstream@>=0.0.4 <0.1.0",
      "resolved": "./node_shrinkwrap/stringstream-0.0.5.tgz"
    },
    "strip-ansi": {
      "version": "3.0.1",
      "from": "strip-ansi@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/strip-ansi-3.0.1.tgz"
    },
    "strip-bom": {
      "version": "2.0.0",
      "from": "strip-bom@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/strip-bom-2.0.0.tgz"
    },
    "strip-indent": {
      "version": "1.0.1",
      "from": "strip-indent@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/strip-indent-1.0.1.tgz"
    },
    "strip-json-comments": {
      "version": "1.0.4",
      "from": "strip-json-comments@>=1.0.1 <1.1.0",
      "resolved": "./node_shrinkwrap/strip-json-comments-1.0.4.tgz"
    },
    "style-loader": {
      "version": "0.13.1",
      "from": "style-loader@>=0.13.1 <0.14.0",
      "resolved": "./node_shrinkwrap/style-loader-0.13.1.tgz"
    },
    "supports-color": {
      "version": "2.0.0",
      "from": "supports-color@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/supports-color-2.0.0.tgz"
    },
    "svgo": {
      "version": "0.6.6",
      "from": "svgo@>=0.6.1 <0.7.0",
      "resolved": "./node_shrinkwrap/svgo-0.6.6.tgz",
      "dependencies": {
        "argparse": {
          "version": "1.0.7",
          "from": "argparse@>=1.0.7 <2.0.0",
          "resolved": "./node_shrinkwrap/argparse-1.0.7.tgz"
        },
        "js-yaml": {
          "version": "3.6.1",
          "from": "js-yaml@>=3.6.0 <3.7.0",
          "resolved": "./node_shrinkwrap/js-yaml-3.6.1.tgz"
        }
      }
    },
    "symbol": {
      "version": "0.2.3",
      "from": "symbol@>=0.2.1 <0.3.0",
      "resolved": "./node_shrinkwrap/symbol-0.2.3.tgz"
    },
    "symbol-observable": {
      "version": "0.2.4",
      "from": "symbol-observable@>=0.2.3 <0.3.0",
      "resolved": "./node_shrinkwrap/symbol-observable-0.2.4.tgz"
    },
    "symbol-tree": {
      "version": "3.1.4",
      "from": "symbol-tree@>=3.1.0 <4.0.0",
      "resolved": "./node_shrinkwrap/symbol-tree-3.1.4.tgz"
    },
    "table": {
      "version": "3.7.8",
      "from": "table@>=3.7.8 <4.0.0",
      "resolved": "./node_shrinkwrap/table-3.7.8.tgz"
    },
    "tapable": {
      "version": "0.1.10",
      "from": "tapable@>=0.1.8 <0.2.0",
      "resolved": "./node_shrinkwrap/tapable-0.1.10.tgz"
    },
    "tar": {
      "version": "2.2.1",
      "from": "tar@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/tar-2.2.1.tgz"
    },
    "text-table": {
      "version": "0.2.0",
      "from": "text-table@>=0.2.0 <0.3.0",
      "resolved": "./node_shrinkwrap/text-table-0.2.0.tgz"
    },
    "tfunk": {
      "version": "3.0.2",
      "from": "tfunk@>=3.0.1 <4.0.0",
      "resolved": "./node_shrinkwrap/tfunk-3.0.2.tgz"
    },
    "through": {
      "version": "2.3.8",
      "from": "through@>=2.3.6 <3.0.0",
      "resolved": "./node_shrinkwrap/through-2.3.8.tgz"
    },
    "timers-browserify": {
      "version": "1.4.2",
      "from": "timers-browserify@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/timers-browserify-1.4.2.tgz",
      "dependencies": {
        "process": {
          "version": "0.11.3",
          "from": "process@>=0.11.0 <0.12.0",
          "resolved": "./node_shrinkwrap/process-0.11.3.tgz"
        }
      }
    },
    "to-array": {
      "version": "0.1.4",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/to-array-0.1.4.tgz"
    },
    "to-fast-properties": {
      "version": "1.0.2",
      "from": "to-fast-properties@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/to-fast-properties-1.0.2.tgz"
    },
    "tough-cookie": {
      "version": "2.2.2",
      "from": "tough-cookie@>=2.2.0 <2.3.0",
      "resolved": "./node_shrinkwrap/tough-cookie-2.2.2.tgz"
    },
    "tr46": {
      "version": "0.0.3",
      "from": "tr46@>=0.0.1 <0.1.0",
      "resolved": "./node_shrinkwrap/tr46-0.0.3.tgz"
    },
    "trim-newlines": {
      "version": "1.0.0",
      "from": "trim-newlines@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/trim-newlines-1.0.0.tgz"
    },
    "tryit": {
      "version": "1.0.2",
      "from": "tryit@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/tryit-1.0.2.tgz"
    },
    "tty-browserify": {
      "version": "0.0.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/tty-browserify-0.0.0.tgz"
    },
    "tunnel-agent": {
      "version": "0.4.3",
      "from": "tunnel-agent@>=0.4.1 <0.5.0",
      "resolved": "./node_shrinkwrap/tunnel-agent-0.4.3.tgz"
    },
    "tv4": {
      "version": "1.2.7",
      "from": "tv4@>=1.2.7 <2.0.0",
      "resolved": "./node_shrinkwrap/tv4-1.2.7.tgz"
    },
    "tweetnacl": {
      "version": "0.13.3",
      "from": "tweetnacl@>=0.13.0 <0.14.0",
      "resolved": "./node_shrinkwrap/tweetnacl-0.13.3.tgz"
    },
    "type-check": {
      "version": "0.3.2",
      "from": "type-check@>=0.3.2 <0.4.0",
      "resolved": "./node_shrinkwrap/type-check-0.3.2.tgz"
    },
    "type-detect": {
      "version": "1.0.0",
      "from": "type-detect@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/type-detect-1.0.0.tgz"
    },
    "typedarray": {
      "version": "0.0.6",
      "from": "typedarray@>=0.0.5 <0.1.0",
      "resolved": "./node_shrinkwrap/typedarray-0.0.6.tgz"
    },
    "ua-parser-js": {
      "version": "0.7.10",
      "from": "ua-parser-js@>=0.7.9 <0.8.0",
      "resolved": "./node_shrinkwrap/ua-parser-js-0.7.10.tgz"
    },
    "ucfirst": {
      "version": "1.0.0",
      "from": "ucfirst@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/ucfirst-1.0.0.tgz"
    },
    "uglify-js": {
      "version": "2.6.2",
      "from": "uglify-js@>=2.6.0 <3.0.0",
      "resolved": "./node_shrinkwrap/uglify-js-2.6.2.tgz",
      "dependencies": {
        "async": {
          "version": "0.2.10",
          "from": "async@>=0.2.6 <0.3.0",
          "resolved": "./node_shrinkwrap/async-0.2.10.tgz"
        },
        "camelcase": {
          "version": "1.2.1",
          "from": "camelcase@>=1.0.2 <2.0.0",
          "resolved": "./node_shrinkwrap/camelcase-1.2.1.tgz"
        },
        "cliui": {
          "version": "2.1.0",
          "from": "cliui@>=2.1.0 <3.0.0",
          "resolved": "./node_shrinkwrap/cliui-2.1.0.tgz"
        },
        "window-size": {
          "version": "0.1.0",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/window-size-0.1.0.tgz"
        },
        "wordwrap": {
          "version": "0.0.2",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/wordwrap-0.0.2.tgz"
        },
        "yargs": {
          "version": "3.10.0",
          "from": "yargs@>=3.10.0 <3.11.0",
          "resolved": "./node_shrinkwrap/yargs-3.10.0.tgz"
        }
      }
    },
    "uglify-to-browserify": {
      "version": "1.0.2",
      "from": "uglify-to-browserify@>=1.0.0 <1.1.0",
      "resolved": "./node_shrinkwrap/uglify-to-browserify-1.0.2.tgz"
    },
    "ultron": {
      "version": "1.0.2",
      "from": "ultron@>=1.0.0 <1.1.0",
      "resolved": "./node_shrinkwrap/ultron-1.0.2.tgz"
    },
    "underscore": {
      "version": "1.7.0",
      "from": "underscore@>=1.7.0 <1.8.0",
      "resolved": "./node_shrinkwrap/underscore-1.7.0.tgz"
    },
    "underscore.string": {
      "version": "2.4.0",
      "from": "underscore.string@>=2.4.0 <2.5.0",
      "resolved": "./node_shrinkwrap/underscore.string-2.4.0.tgz"
    },
    "uniq": {
      "version": "1.0.1",
      "from": "uniq@>=1.0.1 <2.0.0",
      "resolved": "./node_shrinkwrap/uniq-1.0.1.tgz"
    },
    "uniqid": {
      "version": "1.0.0",
      "from": "uniqid@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/uniqid-1.0.0.tgz"
    },
    "uniqs": {
      "version": "2.0.0",
      "from": "uniqs@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/uniqs-2.0.0.tgz"
    },
    "unpipe": {
      "version": "1.0.0",
      "from": "unpipe@>=1.0.0 <1.1.0",
      "resolved": "./node_shrinkwrap/unpipe-1.0.0.tgz"
    },
    "url": {
      "version": "0.10.3",
      "from": "url@>=0.10.1 <0.11.0",
      "resolved": "./node_shrinkwrap/url-0.10.3.tgz",
      "dependencies": {
        "punycode": {
          "version": "1.3.2",
          "from": "[email protected]",
          "resolved": "./node_shrinkwrap/punycode-1.3.2.tgz"
        }
      }
    },
    "user-home": {
      "version": "1.1.1",
      "from": "user-home@>=1.1.1 <2.0.0",
      "resolved": "./node_shrinkwrap/user-home-1.1.1.tgz"
    },
    "utf8": {
      "version": "2.1.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/utf8-2.1.0.tgz"
    },
    "util": {
      "version": "0.10.3",
      "from": "util@>=0.10.3 <1.0.0",
      "resolved": "./node_shrinkwrap/util-0.10.3.tgz"
    },
    "util-deprecate": {
      "version": "1.0.2",
      "from": "util-deprecate@>=1.0.1 <1.1.0",
      "resolved": "./node_shrinkwrap/util-deprecate-1.0.2.tgz"
    },
    "utils-merge": {
      "version": "1.0.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/utils-merge-1.0.0.tgz"
    },
    "v8flags": {
      "version": "2.0.11",
      "from": "v8flags@>=2.0.10 <3.0.0",
      "resolved": "./node_shrinkwrap/v8flags-2.0.11.tgz"
    },
    "validate-npm-package-license": {
      "version": "3.0.1",
      "from": "validate-npm-package-license@>=3.0.1 <4.0.0",
      "resolved": "./node_shrinkwrap/validate-npm-package-license-3.0.1.tgz"
    },
    "verror": {
      "version": "1.3.6",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/verror-1.3.6.tgz"
    },
    "vm-browserify": {
      "version": "0.0.4",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/vm-browserify-0.0.4.tgz"
    },
    "warning": {
      "version": "2.1.0",
      "from": "warning@>=2.1.0 <3.0.0",
      "resolved": "./node_shrinkwrap/warning-2.1.0.tgz"
    },
    "watchpack": {
      "version": "0.2.9",
      "from": "watchpack@>=0.2.1 <0.3.0",
      "resolved": "./node_shrinkwrap/watchpack-0.2.9.tgz",
      "dependencies": {
        "async": {
          "version": "0.9.2",
          "from": "async@>=0.9.0 <0.10.0",
          "resolved": "./node_shrinkwrap/async-0.9.2.tgz"
        }
      }
    },
    "webidl-conversions": {
      "version": "2.0.1",
      "from": "webidl-conversions@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/webidl-conversions-2.0.1.tgz"
    },
    "webpack": {
      "version": "1.13.1",
      "from": "webpack@>=1.13.0 <1.14.0",
      "resolved": "./node_shrinkwrap/webpack-1.13.1.tgz",
      "dependencies": {
        "acorn": {
          "version": "3.1.0",
          "from": "acorn@>=3.0.0 <4.0.0",
          "resolved": "./node_shrinkwrap/acorn-3.1.0.tgz"
        },
        "supports-color": {
          "version": "3.1.2",
          "from": "supports-color@>=3.1.0 <4.0.0",
          "resolved": "./node_shrinkwrap/supports-color-3.1.2.tgz"
        }
      }
    },
    "webpack-core": {
      "version": "0.6.8",
      "from": "webpack-core@>=0.6.0 <0.7.0",
      "resolved": "./node_shrinkwrap/webpack-core-0.6.8.tgz",
      "dependencies": {
        "source-map": {
          "version": "0.4.4",
          "from": "source-map@>=0.4.1 <0.5.0",
          "resolved": "./node_shrinkwrap/source-map-0.4.4.tgz"
        }
      }
    },
    "webpack-dev-middleware": {
      "version": "1.6.1",
      "from": "webpack-dev-middleware@>=1.6.1 <1.7.0",
      "resolved": "./node_shrinkwrap/webpack-dev-middleware-1.6.1.tgz",
      "dependencies": {
        "mime": {
          "version": "1.3.4",
          "from": "mime@>=1.3.4 <2.0.0",
          "resolved": "./node_shrinkwrap/mime-1.3.4.tgz"
        }
      }
    },
    "webpack-hot-middleware": {
      "version": "2.10.0",
      "from": "webpack-hot-middleware@>=2.10.0 <2.11.0",
      "resolved": "./node_shrinkwrap/webpack-hot-middleware-2.10.0.tgz"
    },
    "webpack-sources": {
      "version": "0.1.2",
      "from": "webpack-sources@>=0.1.0 <0.2.0",
      "resolved": "./node_shrinkwrap/webpack-sources-0.1.2.tgz"
    },
    "weinre": {
      "version": "2.0.0-pre-I0Z7U9OV",
      "from": "weinre@>=2.0.0-pre-I0Z7U9OV <3.0.0",
      "resolved": "./node_shrinkwrap/weinre-2.0.0-pre-I0Z7U9OV.tgz"
    },
    "whatwg-fetch": {
      "version": "1.0.0",
      "from": "whatwg-fetch@>=0.10.0",
      "resolved": "./node_shrinkwrap/whatwg-fetch-1.0.0.tgz"
    },
    "whatwg-url-compat": {
      "version": "0.6.5",
      "from": "whatwg-url-compat@>=0.6.5 <0.7.0",
      "resolved": "./node_shrinkwrap/whatwg-url-compat-0.6.5.tgz"
    },
    "whet.extend": {
      "version": "0.9.9",
      "from": "whet.extend@>=0.9.9 <0.10.0",
      "resolved": "./node_shrinkwrap/whet.extend-0.9.9.tgz"
    },
    "which": {
      "version": "1.2.9",
      "from": "which@>=1.2.9 <2.0.0",
      "resolved": "./node_shrinkwrap/which-1.2.9.tgz"
    },
    "window-size": {
      "version": "0.1.4",
      "from": "window-size@>=0.1.2 <0.2.0",
      "resolved": "./node_shrinkwrap/window-size-0.1.4.tgz"
    },
    "wordwrap": {
      "version": "1.0.0",
      "from": "wordwrap@>=1.0.0 <1.1.0",
      "resolved": "./node_shrinkwrap/wordwrap-1.0.0.tgz"
    },
    "wrap-ansi": {
      "version": "2.0.0",
      "from": "wrap-ansi@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/wrap-ansi-2.0.0.tgz"
    },
    "wrappy": {
      "version": "1.0.2",
      "from": "wrappy@>=1.0.0 <2.0.0",
      "resolved": "./node_shrinkwrap/wrappy-1.0.2.tgz"
    },
    "write": {
      "version": "0.2.1",
      "from": "write@>=0.2.1 <0.3.0",
      "resolved": "./node_shrinkwrap/write-0.2.1.tgz"
    },
    "ws": {
      "version": "1.0.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/ws-1.0.1.tgz"
    },
    "xml-name-validator": {
      "version": "2.0.1",
      "from": "xml-name-validator@>=2.0.1 <3.0.0",
      "resolved": "./node_shrinkwrap/xml-name-validator-2.0.1.tgz"
    },
    "xmlhttprequest-ssl": {
      "version": "1.5.1",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/xmlhttprequest-ssl-1.5.1.tgz"
    },
    "xregexp": {
      "version": "3.1.1",
      "from": "xregexp@>=3.0.0 <4.0.0",
      "resolved": "./node_shrinkwrap/xregexp-3.1.1.tgz"
    },
    "xtend": {
      "version": "4.0.1",
      "from": "xtend@>=4.0.0 <5.0.0",
      "resolved": "./node_shrinkwrap/xtend-4.0.1.tgz"
    },
    "y18n": {
      "version": "3.2.1",
      "from": "y18n@>=3.2.0 <4.0.0",
      "resolved": "./node_shrinkwrap/y18n-3.2.1.tgz"
    },
    "yallist": {
      "version": "2.0.0",
      "from": "yallist@>=2.0.0 <3.0.0",
      "resolved": "./node_shrinkwrap/yallist-2.0.0.tgz"
    },
    "yargs": {
      "version": "4.4.0",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/yargs-4.4.0.tgz",
      "dependencies": {
        "window-size": {
          "version": "0.2.0",
          "from": "window-size@>=0.2.0 <0.3.0",
          "resolved": "./node_shrinkwrap/window-size-0.2.0.tgz"
        }
      }
    },
    "yargs-parser": {
      "version": "2.4.0",
      "from": "yargs-parser@>=2.2.0 <3.0.0",
      "resolved": "./node_shrinkwrap/yargs-parser-2.4.0.tgz"
    },
    "yeast": {
      "version": "0.1.2",
      "from": "[email protected]",
      "resolved": "./node_shrinkwrap/yeast-0.1.2.tgz"
    }
  }
}

PACKAGE.json

"dependencies": {
        "object-assign": "~4.1.0",
        "react": "~15.0.2",
        "react-dom": "~15.0.2",
        "react-redux": "~4.4.5",
        "react-router": "~2.4.0",
        "redux": "~3.5.2"
    },
    "devDependencies": {
        "babel-cli": "~6.8.0",
        "babel-core": "~6.8.0",
        "babel-loader": "~6.2.4",
        "babel-plugin-react-display-name": "~2.0.0",
        "babel-preset-es2015": "~6.6.0",
        "babel-preset-react": "~6.5.0",
        "babel-preset-react-hmre": "~1.1.1",
        "babel-preset-stage-1": "~6.5.0",
        "babel-register": "~6.8.0",
        "browser-sync": "~2.12.5",
        "chai": "~3.5.0",
        "chalk": "~1.1.3",
        "cheerio": "~0.20.0",
        "connect-history-api-fallback": "~1.2.0",
        "coveralls": "~2.11.9",
        "cross-env": "~1.0.7",
        "css-loader": "~0.23.1",
        "enzyme": "~2.2.0",
        "eslint": "~2.9.0",
        "eslint-config-airbnb": "~8.0.0",
        "eslint-plugin-import": "~1.6.1",
        "eslint-plugin-jsx-a11y": "~1.0.4",
        "eslint-plugin-react": "~5.0.1",
        "eslint-watch": "~2.1.11",
        "extract-text-webpack-plugin": "~1.0.1",
        "file-loader": "~0.8.5",
        "isparta": "~4.0.0",
        "mocha": "~2.4.5",
        "node-sass": "~3.7.0",
        "npm-run-all": "~1.8.0",
        "react-addons-test-utils": "~15.0.2",
        "redux-immutable-state-invariant": "~1.2.3",
        "rimraf": "~2.5.2",
        "sass-loader": "~3.2.0",
        "sinon": "~1.17.4",
        "sinon-chai": "~2.8.0",
        "style-loader": "~0.13.1",
        "webpack": "~1.13.0",
        "webpack-dev-middleware": "~1.6.1",
        "webpack-hot-middleware": "~2.10.0"
    },

Local package resolution is very slow

Expected behaviour

Running "shrinkpack" and having unresolved packages should be able to resolve almost all the packages very quickly, since Shrinkpack just needs to open up the correct package.json for each unresolved dependency.

Actual behaviour

Running Shrinkpack on an npm-shrinkwrap.json with roughly 250 unresolved dependencies takes at least 10-15 minutes to execute, with Node pegging a CPU core the entire time.

Steps to reproduce

See "actual behavior"

Software versions used

OS : Windows 7
node.js : 5.1
npm : 3.7.2
shrinkpack : 0.10.0

Log output when running shrinkpack

i 825 dependencies in npm-shrinkwrap.json
i 248 have a missing "resolved" property
i 0 need removing from ./node_shrinkwrap
i 247 need adding to ./node_shrinkwrap
i 247 are in your npm cache
i 0 need downloading
√ set missing "resolved" property for [email protected] to http://registry.npmjs.org/alter/-/alter-0.2.0.tgz
√ set missing "resolved" property for [email protected] to http://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz
√ set missing "resolved" property for [email protected] to http://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz
[ snipped]

Notes

I noted that the slowdown seems to be due to the use of glob.sync(), per this snippet:

function getPkgPath (dep) {
  return glob.sync('node_modules/**/' + dep.name + '/package.json', {
    realpath: true
  })[0] || '';
}

I was able to implement at least a partial fix by replacing the use of glob.sync() with fs.accessSync, (per http://stackoverflow.com/questions/4482686/check-synchronously-if-file-directory-exists-in-node-js ), and just constructing the path to package.json directly:

function getPkgPath (dep) {
  var depPackagePath = "node_modules/" + dep.name + "/package.json";
  var result = '';
  try {
    fs.accessSync(depPackagePath, fs.F_OK);
    result = fs.realpathSync(depPackagePath);
  } 
  catch (e) {
    // It isn't accessible
  }

  return result;
}

This approach resulted in vastly faster resolution times, and the entire operation, including resolving all 250 entries, finished in somewhere under 30 seconds.

I was about to submit this as a PR when I realized that while this works great under NPM3, it probably won't work all the time under NPM2, which I'm guessing is why you were doing the glob check first.

Perhaps the two approaches could be combined - assume the package exists at the top-level of node_modules and do the fast direct lookup first, and only do a glob check if that fails.

In fact, now that I think about it, that seems like a good compromise. I'll go ahead and submit a PR to that effect now.

Cannot read property 'shrinkpack' of undefined

Just updated to the latest version of shrinkpack, and I get this error:

    TypeError: Cannot read property 'shrinkpack' of undefined
        at removeDep (/home/ryan/.nvm/versions/node/v4.3.1/lib/node_modules/shrinkpack/task/removeFromBundle.js:16:32)
        at Array.map (native)
        at Object.removeFromBundle (/home/ryan/.nvm/versions/node/v4.3.1/lib/node_modules/shrinkpack/task/removeFromBundle.js:12:27)
        at removeFromBundle (/home/ryan/.nvm/versions/node/v4.3.1/lib/node_modules/shrinkpack/index.js:48:15)
        at process._tickCallback (node.js:364:9)

Here is the full output from my terminal:

i 1332 dependencies in npm-shrinkwrap.json
i 10 have a missing "resolved" property
i 20 need removing from ./node_shrinkwrap
i 0 need adding to ./node_shrinkwrap
i 0 are in your npm cache
i 0 need downloading
✓ set missing "resolved" property for [email protected] to https://registry.npmjs.org/datt/-/datt-0.4.2.tgz
✓ set missing "resolved" property for [email protected] to https://registry.npmjs.org/fullnode/-/fullnode-0.13.13.tgz
✓ set missing "resolved" property for [email protected] to https://registry.npmjs.org/injecter/-/injecter-1.0.0.tgz
✓ set missing "resolved" property for [email protected] to https://registry.npmjs.org/esprima/-/esprima-2.7.2.tgz
✓ set missing "resolved" property for [email protected] to https://registry.npmjs.org/fullnode/-/fullnode-0.13.13.tgz
✓ set missing "resolved" property for [email protected] to https://registry.npmjs.org/injecter/-/injecter-1.0.0.tgz
✓ set missing "resolved" property for [email protected] to https://registry.npmjs.org/injecter/-/injecter-1.0.0.tgz
✓ set missing "resolved" property for [email protected] to http://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz
✓ set missing "resolved" property for [email protected] to http://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz
? [email protected] has no "dist.tarball" in package.json, trying npm registry...
✓ set missing "resolved" property for [email protected] to https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.25.tgz
! Please raise an issue at https://github.com/JamieMason/shrinkpack/issues

    TypeError: Cannot read property 'shrinkpack' of undefined
        at removeDep (/home/ryan/.nvm/versions/node/v4.3.1/lib/node_modules/shrinkpack/task/removeFromBundle.js:16:32)
        at Array.map (native)
        at Object.removeFromBundle (/home/ryan/.nvm/versions/node/v4.3.1/lib/node_modules/shrinkpack/task/removeFromBundle.js:12:27)
        at removeFromBundle (/home/ryan/.nvm/versions/node/v4.3.1/lib/node_modules/shrinkpack/index.js:48:15)
        at process._tickCallback (node.js:364:9)

Uninstall but still present ?

Expected behaviour

After uninstalling shrinkpack, I'd except my npm-shrinkwrap.json not to refer to file:node_shrinkwrap

Actual behaviour

npm-shrinkwrap.json still contains references to node_shrinkwrap/

Steps to reproduce

npm uninstall -g shrinkpack
npm shrinkwrap

Software versions used

OS : OS X 10.11.5
node.js : v6.2.2
npm : 3.10.4

Log output when running shrinkpack

zsh: command not found: shrinkpack

Contents of your npm-shrinkwrap.json or package.json

    "yargs-parser": {
      "version": "2.4.0",
      "from": "yargs-parser@>=2.4.0 <3.0.0",
      "resolved": "file:node_shrinkwrap/yargs-parser-2.4.0.tgz"
    },

shrinkpack command error failed to download @angular/[email protected]

If reporting a bug, please use the following template.

Expected behaviour

shrinkpack should get the files from the node_modules folder and put them under the node_shrinkwrap folder

Actual behaviour

gives the following error:
! failed to download @angular/[email protected]                       
! Please raise an issue at https://github.com/JamieMason/shrinkpack/issues      

    Error: Command failed: C:\Windows\system32\cmd.exe /s /c "npm cache --scope=
@angular add file:node_shrinkwrap\@angular-platform-browser-2.0.0-rc.4.tgz"     
    npm ERR! addLocal Could not install C:\angular2-webpack\node_shr
inkwrap\@angular-platform-browser-2.0.0-rc.4.tgz                                
    npm ERR! Windows_NT 6.1.7601                                                
    npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\USERNAME\\A
ppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js" "cache" "--scope=@angu
lar" "add" "file:node_shrinkwrap\\@angular-platform-browser-2.0.0-rc.4.tgz"     
    npm ERR! node v4.2.1                                                        
    npm ERR! npm  v3.8.6                                                        
    npm ERR! path C:\angular2-webpack\node_shrinkwrap\@angular-platf
orm-browser-2.0.0-rc.4.tgz                                                      
    npm ERR! code ENOENT                                                        
    npm ERR! errno -4058                                                        
    npm ERR! syscall open                                                       

    npm ERR! enoent ENOENT: no such file or directory, open 'C:\angu
lar2-webpack\node_shrinkwrap\@angular-platform-browser-2.0.0-rc.4.tgz'          
    npm ERR! enoent ENOENT: no such file or directory, open 'C:\angu
lar2-webpack\node_shrinkwrap\@angular-platform-browser-2.0.0-rc.4.tgz'          
    npm ERR! enoent This is most likely not a problem with npm itself           
    npm ERR! enoent and is related to npm not being able to find a file.        
    npm ERR! enoent                                                             

    npm ERR! Please include the following file with any support request:        
    npm ERR!     C:\angular2-webpack\npm-debug.log                  

        at ChildProcess.exithandler (child_process.js:203:12)                   
        at emitTwo (events.js:87:13)                                            
        at ChildProcess.emit (events.js:172:7)                                  
        at maybeClose (internal/child_process.js:818:16)                        
        at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)

Steps to reproduce

git clone the https://github.com/preboot/angular2-webpack
npm install
npm run shrinkwrap
shrinkpack

Software versions used

OS         : Windows 7
node.js    : v4.2.1
npm        : 3.8.6
shrinkpack : 0.13.1

Log output when running shrinkpack

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Users\\iiakovlev\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'cache',
1 verbose cli   '--scope=@angular',
1 verbose cli   'add',
1 verbose cli   'file:node_shrinkwrap\\@angular-platform-browser-2.0.0-rc.4.tgz' ]
2 info using [email protected]
3 info using [email protected]
4 silly cache add args [ 'file:node_shrinkwrap\\@angular-platform-browser-2.0.0-rc.4.tgz' ]
5 verbose cache add spec file:node_shrinkwrap\@angular-platform-browser-2.0.0-rc.4.tgz
6 silly cache add parsed spec Result {
6 silly cache add   raw: 'file:node_shrinkwrap\\@angular-platform-browser-2.0.0-rc.4.tgz',
6 silly cache add   scope: null,
6 silly cache add   name: null,
6 silly cache add   rawSpec: 'file:node_shrinkwrap\\@angular-platform-browser-2.0.0-rc.4.tgz',
6 silly cache add   spec: 'C:\\Programming\\angular2-webpack\\node_shrinkwrap\\@angular-platform-browser-2.0.0-rc.4.tgz',
6 silly cache add   type: 'local' }
7 error addLocal Could not install C:\Programming\angular2-webpack\node_shrinkwrap\@angular-platform-browser-2.0.0-rc.4.tgz
8 verbose stack Error: ENOENT: no such file or directory, open 'C:\Programming\angular2-webpack\node_shrinkwrap\@angular-platform-browser-2.0.0-rc.4.tgz'
8 verbose stack     at Error (native)
9 verbose cwd C:\Programming\angular2-webpack
10 error Windows_NT 6.1.7601
11 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\iiakovlev\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js" "cache" "--scope=@angular" "add" "file:node_shrinkwrap\\@angular-platform-browser-2.0.0-rc.4.tgz"
12 error node v4.2.1
13 error npm  v3.8.6
14 error path C:\Programming\angular2-webpack\node_shrinkwrap\@angular-platform-browser-2.0.0-rc.4.tgz
15 error code ENOENT
16 error errno -4058
17 error syscall open
18 error enoent ENOENT: no such file or directory, open 'C:\Programming\angular2-webpack\node_shrinkwrap\@angular-platform-browser-2.0.0-rc.4.tgz'
19 error enoent ENOENT: no such file or directory, open 'C:\Programming\angular2-webpack\node_shrinkwrap\@angular-platform-browser-2.0.0-rc.4.tgz'
19 error enoent This is most likely not a problem with npm itself
19 error enoent and is related to npm not being able to find a file.
20 verbose exit [ -4058, true ]

Contents of your npm-shrinkwrap.json or package.json

yaroslavya-shrinkwrap.json.txt

Use a local npm cache instead of copying?

Currently shrinkpack

  1. Populates the cache located at npm config get cache.
  2. Copies the tarballs to ./node_shrinkwrap.
  3. Rewrites npm-shrinkwrap.json to point at eg file:node_shrinkwrap/lodash.isarray-3.0.4.tgz.

This issue proposes that instead shrinkpack;

  1. Set cache=node_shrinkwrap in .npmrc.
  2. Rewrites npm-shrinkwrap.json to point at eg file:node_shrinkwrap/lodash.isarray/3.0.4/package.tgz.
Positives
  1. 👍 Should be much more efficient as the copying step is no longer needed.
  2. 👍 Should make the codebase simpler.
  3. 👍 Should address #31.
Negatives/Considerations
  1. 👎 It will probably be a breaking change migrating from file:node_shrinkwrap/lodash.isarray-3.0.4.tgz to file:node_shrinkwrap/lodash.isarray/3.0.4/package.tgz.
  2. 👎 If committed, the package.json files in the npm cache will make commit diffs noisy (avoiding noisy diffs is one of the main benefits of shrinkpack) however;
    • 👍 They can be deleted (find node_cache -iname "*.json" -delete) and npm install works fine.
    • 👍 When deleting the package.json files, npm appears to restore them from the package.tgz without hitting the network.
    • 👍 You could ignore the .json files with .gitignore.
    • 👎 Struggling to find a pattern to ignore everything in node_cache except .tgz files.

Regression in upstream sinopia Docker container

Created a new issue to track the following.

Hoping you could help me out @5id, I'm trying to set the tests up on Travis but am running into some trouble with what I think might be the sinopia stuff.

I have a failing build output here https://travis-ci.org/JamieMason/shrinkpack/builds/147702971 – could you take a look for me please?

Thanks.

– JamieMason #47 (comment)


The changes are in fe6a652

– JamieMason #47 (comment)


It's not Travis actually, I'm having the same issues locally where the sinopia server can't be hit;

npm info attempt registry request try #1 at 3:45:46 PM
npm http request PUT http://secure_registry:4873/-/user/org.couchdb.user:shrinkpack
npm info retry will retry, error on last attempt: Error: getaddrinfo ENOTFOUND secure_registry secure_registry:4873

I'm using these versions of docker;

$ docker -v
Docker version 1.12.0, build 8eab29e

$ docker-compose -v
docker-compose version 1.8.0, build f3628c7

Could it be that something has changed in how the compose file should be written in these newer versions of docker? Any pointers would be a huge help @5id, thanks.
@5id

– JamieMason #47 (comment)


@JamieMason it looks like there was a change in the latest Sinopia Dockerfile that we were using. In docker-compose.yml, we should change image: rnbwd/sinopia to be image: rnbwd/sinopia:stable. I'm seeing another test issue arise after fixing this that I'll look in to tomorrow.

For your own future reference, if you run docker-compose up in the package directory, it will start and show you the output for both npm & test containers (which is where I saw the NPM server exiting straight away).

– 5id #47 (comment)


"@latest" in npm-shrinkwrap.json skips shrinkpack

Expected behaviour

npm install --loglevel http should report no network activity when installing a shrinkpacked project.

Actual behaviour

Network activity is reported in some circumstances (see below).

npm http request GET http://registry.npmjs.org/options
npm http 304 http://registry.npmjs.org/options

Steps to reproduce

Have a dependency in npm-shrinkwrap.json which has a from containing @latest such as;

"options": {
  "version": "0.0.6",
  "from": "options@latest",
  "resolved": "file:node_shrinkwrap/options-0.0.6.tgz"
}

Software versions used

OS         : osx mavericks 
node.js    : 6.2.2
npm        : 3.10.4
shrinkpack : 0.12.5

"The system cannot find the path specified." issue when running on Windows 7

When I installed this on windows I couldn't get it to work (I did manage to after a few work arounds).

When running shrinkpack I get the error;

"The system cannot find the path specified."

To get it to work I had to do the following;

  • Change the shrinkpack.cmd file to run shrinkpack.js by copying and editing the cmd file gulp creates.
  • Everywhere that "process.env.PWD" is referenced change it to "process.env.PWD || process.cwd()"
  • In tarball.js change 'USERPROFILE' to 'APPDATA'

I also needed to change npm shrinkwrap to npm shrinkwrap --dev because we needed dev dependencies to be shrinked.

I've forked this and tested a change that works on windows, but haven't tested this on any other OS - https://github.com/JasonHewison/shrinkpack

Cannot run NPM install

If reporting a bug, please use the following template.

Expected behaviour

First I have several errors when running SHRINKPACK ... but when it passes I'm trying to run an npm install on my computer or another one that has pulled the projet and I get errors like :

npm WARN package.json [email protected] No repository field.
npm ERR! tar.unpack error reading C:_projects\cri-planprojet\node_shrinkwrap\etag-1.7.0.tgz
npm ERR! addLocal Could not install C:_projects\cri-planprojet\node_shrinkwrap\etag-1.7.0.tgz
npm ERR! tar.unpack error reading C:_projects\cri-planprojet\node_shrinkwrap\gulp-util-3.0.7.tgz
npm ERR! addLocal Could not install C:_projects\cri-planprojet\node_shrinkwrap\gulp-util-3.0.7.tgz
npm ERR! tar.unpack error reading C:_projects\cri-planprojet\node_shrinkwrap\parseurl-1.3.1.tgz
npm ERR! addLocal Could not install C:_projects\cri-planprojet\node_shrinkwrap\parseurl-1.3.1.tgz
npm ERR! tar.unpack error reading C:_projects\cri-planprojet\node_shrinkwrap\xtend-4.0.1.tgz
npm ERR! addLocal Could not install C:_projects\cri-planprojet\node_shrinkwrap\xtend-4.0.1.tgz
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "install"
npm ERR! node v4.2.4
npm ERR! npm v2.14.12

npm ERR! 0-byte tarball
npm ERR! Please run npm cache clean
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! https://github.com/npm/npm/issues

npm ERR! Please include the following file with any support request:
npm ERR! C:_projects\cri-planprojet\npm-debug.log
...

OS : win 7
node.js : 4.2.4
npm : 2.14.12
shrinkpack :


#### Contents of your npm-shrinkwrap.json or package.json
{
  "name": "critemplate",
  "version": "0.0.3",
  "description": "cri template",
  "license": "MIT",
  "dependencies": {
    "beepbeep": "^1.2.0",
    "browser-sync": "^2.11.1",
    "gulp": "^3.9.1",
    "gulp-autoprefixer": "^2.3.1",
    "gulp-bower": "0.0.10",
    "gulp-clean": "^0.3.1",
    "gulp-concat": "^2.5.2",
    "gulp-connect": "^2.2.0",
    "gulp-imagemin": "^2.2.1",
    "gulp-livereload": "^3.8.0",
    "gulp-clean-css": "^2.0.4",
    "gulp-newer": "^0.5.0",
    "gulp-notify": "^2.2.0",
    "gulp-plumber": "^1.0.1",
    "gulp-sass": "^2.0.3",
    "gulp-sourcemaps": "^1.6.0",
    "gulp-uglify": "^1.2.0",
    "gulp-util": "^3.0.4",
    "imagemin-pngquant": "^4.1.0",
    "browser-sync": "^2.11.1"
  }
}

...

Shrinkpack fails to download from private registries that require authentication

Expected behaviour

Shrinkpack can download packages from a private registry, where the registry has already been authenticated against using npm login.

Actual behaviour

Downloads fail with a 401 (Unauthorized) error.

Steps to reproduce

  • Have a private NPM registry
  • Have a package from your private NPM registry in your package.json / npm-shrinkwrap.json
  • Run shrinkpack.

Software versions used

OS         : OS X 10.11.5
node.js    :  4.4.4
npm        :  3.10.2
shrinkpack : 0.12.5

Log output when running shrinkpack

i 1 dependencies in npm-shrinkwrap.json
i 0 need removing from ./node_shrinkwrap
i 1 need adding to ./node_shrinkwrap
i 0 are in your npm cache
i 1 need downloading
i 0 have a missing "resolved" property
↓ @atlassian/[email protected] from https://npm-private.atlassian.io/@atlassian%2ffunctional/-/@atlassian%2ffunctional-0.3.0.tgz
! failed to download @atlassian/[email protected]
! Please raise an issue at https://github.com/JamieMason/shrinkpack/issues

    Error: Command failed: /bin/sh -c npm cache add https://npm-private.atlassian.io/@atlassian%2ffunctional/-/@atlassian%2ffunctional-0.3.0.tgz
    npm ERR! fetch failed https://npm-private.atlassian.io/@atlassian%2ffunctional/-/@atlassian%2ffunctional-0.3.0.tgz
    npm WARN retry will retry, error on last attempt: Error: fetch failed with status code 401
    npm ERR! fetch failed https://npm-private.atlassian.io/@atlassian%2ffunctional/-/@atlassian%2ffunctional-0.3.0.tgz
    npm WARN retry will retry, error on last attempt: Error: fetch failed with status code 401
    npm ERR! fetch failed https://npm-private.atlassian.io/@atlassian%2ffunctional/-/@atlassian%2ffunctional-0.3.0.tgz
    npm ERR! Darwin 15.5.0
    npm ERR! argv "/Users/mszczepanski/.nvm/versions/node/v4.4.4/bin/node" "/Users/mszczepanski/.nvm/versions/node/v4.4.4/bin/npm" "cache" "add" "https://npm-private.atlassian.io/@atlassian%2ffunctional/-/@atlassian%2ffunctional-0.3.0.tgz"
    npm ERR! node v4.4.4
    npm ERR! npm  v3.10.2

    npm ERR! fetch failed with status code 401
    npm ERR!
    npm ERR! If you need help, you may report this error at:
    npm ERR!     <https://github.com/npm/npm/issues>

    npm ERR! Please include the following file with any support request:
    npm ERR!     /private/tmp/repro/npm-debug.log

        at ChildProcess.exithandler (child_process.js:213:12)
        at emitTwo (events.js:87:13)
        at ChildProcess.emit (events.js:172:7)
        at maybeClose (internal/child_process.js:827:16)
        at Socket.<anonymous> (internal/child_process.js:319:11)
        at emitOne (events.js:77:13)
        at Socket.emit (events.js:169:7)
        at Pipe._onclose (net.js:477:12)

Contents of your npm-shrinkwrap.json or package.json

{
  "name": "shrinkpack-private-test",
  "version": "1.0.0",
  "dependencies": {
    "@atlassian/functional": "^0.3.0"
  }
}
{
  "name": "shrinkpack-private-test",
  "version": "1.0.0",
  "dependencies": {
    "@atlassian/functional": {
      "version": "0.3.0",
      "from": "@atlassian/functional@latest",
      "resolved": "https://npm-private.atlassian.io/@atlassian%2ffunctional/-/@atlassian%2ffunctional-0.3.0.tgz"
    }
  }
}

Consider supporting npm package development

First, lets start that in theory it works great:

wget http://registry.npmjs.org/canonical/-/canonical-2.7.9.tgz
tar -xvzf canonical-2.7.9.tgz
cd ./package
npm install

However, it breaks if I try to use it via npm install, e.g.

mkdir test
cd ./test
npm init
npm install [email protected] --loglevel=verbose

The resulting error is:

npm info it worked if it ends with ok
npm verb cli [ '/Users/gajus/.nvm/versions/node/v5.3.0/bin/node',
npm verb cli   '/Users/gajus/.nvm/versions/node/v5.3.0/bin/npm',
npm verb cli   'install',
npm verb cli   '[email protected]',
npm verb cli   '--loglevel=verbose' ]
npm info using [email protected]
npm info using [email protected]
npm verb request uri http://registry.npmjs.org/canonical
npm verb request no auth needed
npm info attempt registry request try #1 at 11:34:23 AM
npm verb request using bearer token for auth
npm http request GET http://registry.npmjs.org/canonical
npm http 200 http://registry.npmjs.org/canonical
npm verb headers { server: 'CouchDB/1.5.0 (Erlang OTP/R16B03)',
npm verb headers   etag: '"86DJAEHZ5FKITKRDC115I71K7"',
npm verb headers   'content-type': 'application/json',
npm verb headers   'cache-control': 'max-age=300',
npm verb headers   'content-length': '97869',
npm verb headers   'accept-ranges': 'bytes',
npm verb headers   date: 'Tue, 05 Jan 2016 11:34:24 GMT',
npm verb headers   via: '1.1 varnish',
npm verb headers   'x-served-by': 'cache-lhr6321-LHR',
npm verb headers   'x-cache': 'MISS',
npm verb headers   'x-cache-hits': '0',
npm verb headers   'x-timer': 'S1451993663.385677,VS0,VE900',
npm verb headers   vary: 'Accept',
npm verb headers   connection: 'keep-alive' }
npm verb get saving canonical to /Users/gajus/.npm/registry.npmjs.org/canonical/.cache.json
npm verb makeDirectory /Users/gajus/.npm creation not in flight; initializing
npm verb cache add spec [email protected]
npm verb addNamed "2.7.9" is a plain semver version for canonical
npm verb addNameVersion registry:http://registry.npmjs.org/canonical not in flight; fetching
npm verb get http://registry.npmjs.org/canonical not expired, no request
npm verb addRemoteTarball http://registry.npmjs.org/canonical/-/canonical-2.7.9.tgz not in flight; adding
npm verb addRemoteTarball [ 'http://registry.npmjs.org/canonical/-/canonical-2.7.9.tgz',
npm verb addRemoteTarball   'fc37a796983f518fdc295d2dd7f956b07dd74ec1' ]
npm info retry fetch attempt 1 at 11:34:25 AM
npm info attempt registry request try #1 at 11:34:25 AM
npm http fetch GET http://registry.npmjs.org/canonical/-/canonical-2.7.9.tgz
npm verb request using bearer token for auth
npm http fetch 200 http://registry.npmjs.org/canonical/-/canonical-2.7.9.tgz
npm verb addTmpTarball /var/folders/hb/x0fq96d50311j4zf3_tdtwzw0000gn/T/npm-33402-d533dd36/registry.npmjs.org/canonical/-/canonical-2.7.9.tgz not in flight; adding
npm verb addTmpTarball already have metadata; skipping unpack for [email protected]
npm verb afterAdd /Users/gajus/.npm/canonical/2.7.9/package/package.json not in flight; writing
npm verb afterAdd /Users/gajus/.npm/canonical/2.7.9/package/package.json written
npm verb addBundled extract /Users/gajus/.npm/canonical/2.7.9/package.tgz
npm verb tar unpack /Users/gajus/.npm/canonical/2.7.9/package.tgz
npm verb tar unpacking to /var/folders/hb/x0fq96d50311j4zf3_tdtwzw0000gn/T/npm-33402-d533dd36/unpack-04c4704d4deffd0b328a3ca7b3b57bd4
npm verb gentlyRm don't care about contents; nuking /var/folders/hb/x0fq96d50311j4zf3_tdtwzw0000gn/T/npm-33402-d533dd36/unpack-04c4704d4deffd0b328a3ca7b3b57bd4
npm verb cache add spec abbrev@./node_shrinkwrap/abbrev-1.0.7.tgz
npm verb cache add spec acorn@./node_shrinkwrap/acorn-2.7.0.tgz
npm verb cache add spec acorn-globals@./node_shrinkwrap/acorn-globals-1.0.9.tgz
npm verb cache add spec alter@./node_shrinkwrap/alter-0.2.0.tgz
npm verb cache add spec ansi@./node_shrinkwrap/ansi-0.3.0.tgz
npm verb cache add spec ansi-green@./node_shrinkwrap/ansi-green-0.1.1.tgz
npm verb cache add spec ansi-slice@./node_shrinkwrap/ansi-slice-1.2.0.tgz
npm verb cache add spec ansi-wrap@./node_shrinkwrap/ansi-wrap-0.1.0.tgz
npm verb cache add spec ansicolors@./node_shrinkwrap/ansicolors-0.3.2.tgz
npm verb cache add spec ansistyles@./node_shrinkwrap/ansistyles-0.1.3.tgz
npm verb cache add spec anymatch@./node_shrinkwrap/anymatch-1.3.0.tgz
npm verb cache add spec archy@./node_shrinkwrap/archy-1.0.0.tgz
npm verb cache add spec are-we-there-yet@./node_shrinkwrap/are-we-there-yet-1.0.5.tgz
npm verb cache add spec arr-diff@./node_shrinkwrap/arr-diff-2.0.0.tgz
npm verb cache add spec arr-flatten@./node_shrinkwrap/arr-flatten-1.0.1.tgz
npm verb cache add spec array-index@./node_shrinkwrap/array-index-0.1.1.tgz
npm verb cache add spec array-unique@./node_shrinkwrap/array-unique-0.2.1.tgz
npm verb cache add spec asap@./node_shrinkwrap/asap-2.0.3.tgz
npm verb cache add spec asn1@./node_shrinkwrap/asn1-0.2.3.tgz
npm verb cache add spec assert-plus@./node_shrinkwrap/assert-plus-0.1.5.tgz
npm verb cache add spec assertion-error@./node_shrinkwrap/assertion-error-1.0.1.tgz
npm verb cache add spec ast-traverse@./node_shrinkwrap/ast-traverse-0.1.1.tgz
npm verb cache add spec ast-types@./node_shrinkwrap/ast-types-0.8.12.tgz
npm verb cache add spec async-each@./node_shrinkwrap/async-each-0.1.6.tgz
npm verb cache add spec async-some@./node_shrinkwrap/async-some-1.0.2.tgz
npm verb cache add spec aws-sign2@./node_shrinkwrap/aws-sign2-0.6.0.tgz
npm verb cache add spec babel@./node_shrinkwrap/babel-5.8.34.tgz
npm verb cache add spec babel-core@./node_shrinkwrap/babel-core-5.8.34.tgz
npm verb cache add spec babel-plugin-constant-folding@./node_shrinkwrap/babel-plugin-constant-folding-1.0.1.tgz
npm verb cache add spec babel-plugin-dead-code-elimination@./node_shrinkwrap/babel-plugin-dead-code-elimination-1.0.2.tgz
npm verb cache add spec babel-plugin-eval@./node_shrinkwrap/babel-plugin-eval-1.0.1.tgz
npm verb cache add spec babel-plugin-inline-environment-variables@./node_shrinkwrap/babel-plugin-inline-environment-variables-1.0.1.tgz
npm verb cache add spec babel-plugin-jscript@./node_shrinkwrap/babel-plugin-jscript-1.0.4.tgz
npm verb cache add spec babel-plugin-member-expression-literals@./node_shrinkwrap/babel-plugin-member-expression-literals-1.0.1.tgz
npm verb cache add spec babel-plugin-property-literals@./node_shrinkwrap/babel-plugin-property-literals-1.0.1.tgz
npm verb cache add spec babel-plugin-proto-to-assign@./node_shrinkwrap/babel-plugin-proto-to-assign-1.0.4.tgz
npm verb cache add spec babel-plugin-react-constant-elements@./node_shrinkwrap/babel-plugin-react-constant-elements-1.0.3.tgz
npm verb cache add spec babel-plugin-react-display-name@./node_shrinkwrap/babel-plugin-react-display-name-1.0.3.tgz
npm verb cache add spec babel-plugin-remove-console@./node_shrinkwrap/babel-plugin-remove-console-1.0.1.tgz
npm verb cache add spec babel-plugin-remove-debugger@./node_shrinkwrap/babel-plugin-remove-debugger-1.0.1.tgz
npm verb cache add spec babel-plugin-runtime@./node_shrinkwrap/babel-plugin-runtime-1.0.7.tgz
npm verb cache add spec babel-plugin-undeclared-variables-check@./node_shrinkwrap/babel-plugin-undeclared-variables-check-1.0.2.tgz
npm verb cache add spec babel-plugin-undefined-to-void@./node_shrinkwrap/babel-plugin-undefined-to-void-1.1.6.tgz
npm verb cache add spec binary-extensions@./node_shrinkwrap/binary-extensions-1.4.0.tgz
npm verb cache add spec bl@./node_shrinkwrap/bl-1.0.0.tgz
npm verb cache add spec block-stream@./node_shrinkwrap/block-stream-0.0.8.tgz
npm verb cache add spec bluebird@./node_shrinkwrap/bluebird-3.1.1.tgz
npm verb cache add spec boom@./node_shrinkwrap/boom-2.10.1.tgz
npm verb cache add spec braces@./node_shrinkwrap/braces-1.8.3.tgz
npm verb cache add spec breakable@./node_shrinkwrap/breakable-1.0.0.tgz
npm verb cache add spec browser-request@./node_shrinkwrap/browser-request-0.3.3.tgz
npm verb cache add spec builtin-modules@./node_shrinkwrap/builtin-modules-1.1.1.tgz
npm verb cache add spec builtins@./node_shrinkwrap/builtins-0.0.7.tgz
npm verb cache add spec bundle-dependencies@./node_shrinkwrap/bundle-dependencies-0.0.22.tgz
npm verb cache add spec caseless@./node_shrinkwrap/caseless-0.11.0.tgz
npm verb cache add spec chai@./node_shrinkwrap/chai-3.4.1.tgz
npm verb cache add spec char-spinner@./node_shrinkwrap/char-spinner-1.0.1.tgz
npm verb cache add spec chmodr@./node_shrinkwrap/chmodr-1.0.2.tgz
npm verb cache add spec chokidar@./node_shrinkwrap/chokidar-1.4.2.tgz
npm verb cache add spec chownr@./node_shrinkwrap/chownr-1.0.1.tgz
npm verb cache add spec clone@./node_shrinkwrap/clone-1.0.2.tgz
npm verb cache add spec cmd-shim@./node_shrinkwrap/cmd-shim-2.0.1.tgz
npm verb cache add spec columnify@./node_shrinkwrap/columnify-1.5.2.tgz
npm verb cache add spec combined-stream@./node_shrinkwrap/combined-stream-1.0.5.tgz
npm verb cache add spec commoner@./node_shrinkwrap/commoner-0.10.4.tgz
npm verb cache add spec config-chain@./node_shrinkwrap/config-chain-1.1.9.tgz
npm verb cache add spec contents@./node_shrinkwrap/contents-4.0.2.tgz
npm verb cache add spec convert-source-map@./node_shrinkwrap/convert-source-map-1.1.3.tgz
npm verb cache add spec cryptiles@./node_shrinkwrap/cryptiles-2.0.5.tgz
npm verb cache add spec cssom@./node_shrinkwrap/cssom-0.3.0.tgz
npm verb cache add spec cssstyle@./node_shrinkwrap/cssstyle-0.2.30.tgz
npm verb cache add spec dashdash@./node_shrinkwrap/dashdash-1.11.0.tgz
npm verb cache add spec deadlink@./node_shrinkwrap/deadlink-1.1.3.tgz
npm verb cache add spec debuglog@./node_shrinkwrap/debuglog-1.0.1.tgz
npm verb cache add spec deep-eql@./node_shrinkwrap/deep-eql-0.1.3.tgz
npm verb cache add spec deep-extend@./node_shrinkwrap/deep-extend-0.4.0.tgz
npm verb cache add spec defaults@./node_shrinkwrap/defaults-1.0.3.tgz
npm verb cache add spec defined@./node_shrinkwrap/defined-1.0.0.tgz
npm verb cache add spec defs@./node_shrinkwrap/defs-1.1.1.tgz
npm verb cache add spec delayed-stream@./node_shrinkwrap/delayed-stream-1.0.0.tgz
npm verb cache add spec delegates@./node_shrinkwrap/delegates-0.1.0.tgz
npm verb cache add spec detect-indent@./node_shrinkwrap/detect-indent-3.0.1.tgz
npm verb cache add spec detective@./node_shrinkwrap/detective-4.3.1.tgz
npm verb cache add spec dezalgo@./node_shrinkwrap/dezalgo-1.0.3.tgz
npm verb cache add spec dom-serializer@./node_shrinkwrap/dom-serializer-0.1.0.tgz
npm verb cache add spec domelementtype@./node_shrinkwrap/domelementtype-1.3.0.tgz
npm verb cache add spec domhandler@./node_shrinkwrap/domhandler-2.3.0.tgz
npm verb cache add spec domutils@./node_shrinkwrap/domutils-1.5.1.tgz
npm verb cache add spec ecc-jsbn@./node_shrinkwrap/ecc-jsbn-0.1.1.tgz
npm verb cache add spec editor@./node_shrinkwrap/editor-1.0.0.tgz
npm verb cache add spec end-of-stream@./node_shrinkwrap/end-of-stream-1.1.0.tgz
npm verb cache add spec entities@./node_shrinkwrap/entities-1.1.1.tgz
npm verb cache add spec escodegen@./node_shrinkwrap/escodegen-1.8.0.tgz
npm verb cache add spec expand-brackets@./node_shrinkwrap/expand-brackets-0.1.4.tgz
npm verb cache add spec expand-range@./node_shrinkwrap/expand-range-1.8.1.tgz
npm verb cache add spec extend@./node_shrinkwrap/extend-3.0.0.tgz
npm verb cache add spec extglob@./node_shrinkwrap/extglob-0.3.1.tgz
npm verb cache add spec extsprintf@./node_shrinkwrap/extsprintf-1.0.2.tgz
npm verb cache add spec filename-regex@./node_shrinkwrap/filename-regex-2.0.0.tgz
npm verb cache add spec filesize@./node_shrinkwrap/filesize-3.1.5.tgz
npm verb cache add spec fill-range@./node_shrinkwrap/fill-range-2.2.3.tgz
npm verb cache add spec for-in@./node_shrinkwrap/for-in-0.1.4.tgz
npm verb cache add spec for-own@./node_shrinkwrap/for-own-0.1.3.tgz
npm verb cache add spec forever-agent@./node_shrinkwrap/forever-agent-0.6.1.tgz
npm verb cache add spec form-data@./node_shrinkwrap/form-data-1.0.0-rc3.tgz
npm verb cache add spec fs-readdir-recursive@./node_shrinkwrap/fs-readdir-recursive-0.1.2.tgz
npm verb cache add spec fs-vacuum@./node_shrinkwrap/fs-vacuum-1.2.7.tgz
npm verb cache add spec fs-write-stream-atomic@./node_shrinkwrap/fs-write-stream-atomic-1.0.8.tgz
npm verb cache add spec fsevents@./node_shrinkwrap/fsevents-1.0.6.tgz
npm verb cache add spec fstream@./node_shrinkwrap/fstream-1.0.8.tgz
npm verb cache add spec fstream-ignore@./node_shrinkwrap/fstream-ignore-1.0.3.tgz
npm verb cache add spec fstream-npm@./node_shrinkwrap/fstream-npm-1.0.7.tgz
npm verb cache add spec gauge@./node_shrinkwrap/gauge-1.2.2.tgz
npm verb cache add spec get-stdin@./node_shrinkwrap/get-stdin-5.0.1.tgz
npm verb cache add spec gitdown@./node_shrinkwrap/gitdown-2.4.0.tgz
npm verb cache add spec github-url-from-git@./node_shrinkwrap/github-url-from-git-1.4.0.tgz
npm verb cache add spec github-url-from-username-repo@./node_shrinkwrap/github-url-from-username-repo-1.0.2.tgz
npm verb cache add spec gitinfo@./node_shrinkwrap/gitinfo-1.2.2.tgz
npm verb cache add spec glob-base@./node_shrinkwrap/glob-base-0.3.0.tgz
npm verb cache add spec glob-parent@./node_shrinkwrap/glob-parent-2.0.0.tgz
npm verb cache add spec har-validator@./node_shrinkwrap/har-validator-2.0.3.tgz
npm verb cache add spec has-unicode@./node_shrinkwrap/has-unicode-1.0.1.tgz
npm verb cache add spec hawk@./node_shrinkwrap/hawk-3.1.2.tgz
npm verb cache add spec hoek@./node_shrinkwrap/hoek-2.16.3.tgz
npm verb cache add spec home-or-tmp@./node_shrinkwrap/home-or-tmp-1.0.0.tgz
npm verb cache add spec hosted-git-info@./node_shrinkwrap/hosted-git-info-2.1.4.tgz
npm verb cache add spec htmlparser2@./node_shrinkwrap/htmlparser2-3.9.0.tgz
npm verb cache add spec http-signature@./node_shrinkwrap/http-signature-1.1.0.tgz
npm verb cache add spec iconv-lite@./node_shrinkwrap/iconv-lite-0.4.13.tgz
npm verb cache add spec iferr@./node_shrinkwrap/iferr-0.1.5.tgz
npm verb cache add spec imurmurhash@./node_shrinkwrap/imurmurhash-0.1.4.tgz
npm verb cache add spec ini@./node_shrinkwrap/ini-1.3.4.tgz
npm verb cache add spec init-package-json@./node_shrinkwrap/init-package-json-1.9.1.tgz
npm verb cache add spec invert-kv@./node_shrinkwrap/invert-kv-1.0.0.tgz
npm verb cache add spec is@./node_shrinkwrap/is-3.1.0.tgz
npm verb cache add spec is-absolute@./node_shrinkwrap/is-absolute-0.1.7.tgz
npm verb cache add spec is-binary-path@./node_shrinkwrap/is-binary-path-1.0.1.tgz
npm verb cache add spec is-builtin-module@./node_shrinkwrap/is-builtin-module-1.0.0.tgz
npm verb cache add spec is-dotfile@./node_shrinkwrap/is-dotfile-1.0.2.tgz
npm verb cache add spec is-equal-shallow@./node_shrinkwrap/is-equal-shallow-0.1.3.tgz
npm verb cache add spec is-extendable@./node_shrinkwrap/is-extendable-0.1.1.tgz
npm verb cache add spec is-extglob@./node_shrinkwrap/is-extglob-1.0.0.tgz
npm verb cache add spec is-glob@./node_shrinkwrap/is-glob-2.0.1.tgz
npm verb cache add spec is-integer@./node_shrinkwrap/is-integer-1.0.6.tgz
npm verb cache add spec is-number@./node_shrinkwrap/is-number-2.1.0.tgz
npm verb cache add spec is-primitive@./node_shrinkwrap/is-primitive-2.0.0.tgz
npm verb cache add spec is-relative@./node_shrinkwrap/is-relative-0.1.3.tgz
npm verb cache add spec is-typedarray@./node_shrinkwrap/is-typedarray-1.0.0.tgz
npm verb cache add spec isobject@./node_shrinkwrap/isobject-2.0.0.tgz
npm verb cache add spec isstream@./node_shrinkwrap/isstream-0.1.2.tgz
npm verb cache add spec jju@./node_shrinkwrap/jju-1.2.1.tgz
npm verb cache add spec jodid25519@./node_shrinkwrap/jodid25519-1.0.2.tgz
npm verb cache add spec jsbn@./node_shrinkwrap/jsbn-0.1.0.tgz
npm verb cache add spec jsdom@./node_shrinkwrap/jsdom-6.5.1.tgz
npm verb cache add spec jsesc@./node_shrinkwrap/jsesc-0.5.0.tgz
npm verb cache add spec json-parse-helpfulerror@./node_shrinkwrap/json-parse-helpfulerror-1.0.3.tgz
npm verb cache add spec json-schema@./node_shrinkwrap/json-schema-0.2.2.tgz
npm verb cache add spec json-stringify-safe@./node_shrinkwrap/json-stringify-safe-5.0.1.tgz
npm verb cache add spec json5@./node_shrinkwrap/json5-0.4.0.tgz
npm verb cache add spec jsprim@./node_shrinkwrap/jsprim-1.2.2.tgz
npm verb cache add spec klaw@./node_shrinkwrap/klaw-1.1.3.tgz
npm verb cache add spec lcid@./node_shrinkwrap/lcid-1.0.0.tgz
npm verb cache add spec leven@./node_shrinkwrap/leven-1.0.2.tgz
npm verb cache add spec lockfile@./node_shrinkwrap/lockfile-1.0.1.tgz
npm verb cache add spec lodash._createpadding@./node_shrinkwrap/lodash._createpadding-3.6.1.tgz
npm verb cache add spec lodash.pad@./node_shrinkwrap/lodash.pad-3.1.1.tgz
npm verb cache add spec lodash.padleft@./node_shrinkwrap/lodash.padleft-3.1.1.tgz
npm verb cache add spec lodash.padright@./node_shrinkwrap/lodash.padright-3.1.1.tgz
npm verb cache add spec lodash.repeat@./node_shrinkwrap/lodash.repeat-3.0.1.tgz
npm verb cache add spec lru-cache@./node_shrinkwrap/lru-cache-2.7.3.tgz
npm verb cache add spec markdown-contents@./node_shrinkwrap/markdown-contents-1.0.8.tgz
npm verb cache add spec marked@./node_shrinkwrap/marked-0.3.5.tgz
npm verb cache add spec micromatch@./node_shrinkwrap/micromatch-2.3.7.tgz
npm verb cache add spec mime-db@./node_shrinkwrap/mime-db-1.20.0.tgz
npm verb cache add spec mime-types@./node_shrinkwrap/mime-types-2.1.8.tgz
npm verb cache add spec moment@./node_shrinkwrap/moment-2.11.0.tgz
npm verb cache add spec nan@./node_shrinkwrap/nan-2.1.0.tgz
npm verb cache add spec node-gyp@./node_shrinkwrap/node-gyp-3.0.3.tgz
npm verb cache add spec node-pre-gyp@./node_shrinkwrap/node-pre-gyp-0.6.18.tgz
npm verb cache add spec node-uuid@./node_shrinkwrap/node-uuid-1.4.7.tgz
npm verb cache add spec nopt@./node_shrinkwrap/nopt-3.0.6.tgz
npm verb cache add spec normalize-git-url@./node_shrinkwrap/normalize-git-url-3.0.1.tgz
npm verb cache add spec normalize-package-data@./node_shrinkwrap/normalize-package-data-2.3.5.tgz
npm verb cache add spec normalize-path@./node_shrinkwrap/normalize-path-2.0.1.tgz
npm verb cache add spec npm@./node_shrinkwrap/npm-2.14.8.tgz
npm verb cache add spec npm-cache-filename@./node_shrinkwrap/npm-cache-filename-1.0.2.tgz
npm verb cache add spec npm-install-checks@./node_shrinkwrap/npm-install-checks-1.0.6.tgz
npm verb cache add spec npm-package-arg@./node_shrinkwrap/npm-package-arg-4.0.2.tgz
npm verb cache add spec npm-registry-client@./node_shrinkwrap/npm-registry-client-7.0.9.tgz
npm verb cache add spec npm-user-validate@./node_shrinkwrap/npm-user-validate-0.1.2.tgz
npm verb cache add spec npmlog@./node_shrinkwrap/npmlog-1.2.1.tgz
npm verb cache add spec nwmatcher@./node_shrinkwrap/nwmatcher-1.3.7.tgz
npm verb cache add spec oauth-sign@./node_shrinkwrap/oauth-sign-0.8.0.tgz
npm verb cache add spec object.omit@./node_shrinkwrap/object.omit-2.0.0.tgz
npm verb cache add spec opener@./node_shrinkwrap/opener-1.4.1.tgz
npm verb cache add spec os-locale@./node_shrinkwrap/os-locale-1.4.0.tgz
npm verb cache add spec os-tmpdir@./node_shrinkwrap/os-tmpdir-1.0.1.tgz
npm verb cache add spec osenv@./node_shrinkwrap/osenv-0.1.3.tgz
npm verb cache add spec output-file-sync@./node_shrinkwrap/output-file-sync-1.1.1.tgz
npm verb cache add spec parse-glob@./node_shrinkwrap/parse-glob-3.0.4.tgz
npm verb cache add spec parse5@./node_shrinkwrap/parse5-1.5.1.tgz
npm verb cache add spec path-array@./node_shrinkwrap/path-array-1.0.0.tgz
npm verb cache add spec path-exists@./node_shrinkwrap/path-exists-1.0.0.tgz
npm verb cache add spec pluralize@./node_shrinkwrap/pluralize-1.2.1.tgz
npm verb cache add spec preserve@./node_shrinkwrap/preserve-0.2.0.tgz
npm verb cache add spec private@./node_shrinkwrap/private-0.1.6.tgz
npm verb cache add spec promzard@./node_shrinkwrap/promzard-0.3.0.tgz
npm verb cache add spec proto-list@./node_shrinkwrap/proto-list-1.2.4.tgz
npm verb cache add spec pump@./node_shrinkwrap/pump-1.0.1.tgz
npm verb cache add spec q@./node_shrinkwrap/q-1.4.1.tgz
npm verb cache add spec qs@./node_shrinkwrap/qs-5.2.0.tgz
npm verb cache add spec randomatic@./node_shrinkwrap/randomatic-1.1.5.tgz
npm verb cache add spec rc@./node_shrinkwrap/rc-1.1.6.tgz
npm verb cache add spec read@./node_shrinkwrap/read-1.0.7.tgz
npm verb cache add spec read-installed@./node_shrinkwrap/read-installed-4.0.3.tgz
npm verb cache add spec read-package-json@./node_shrinkwrap/read-package-json-2.0.2.tgz
npm verb cache add spec readdir-scoped-modules@./node_shrinkwrap/readdir-scoped-modules-1.0.2.tgz
npm verb cache add spec readdirp@./node_shrinkwrap/readdirp-2.0.0.tgz
npm verb cache add spec realize-package-specifier@./node_shrinkwrap/realize-package-specifier-3.0.1.tgz
npm verb cache add spec recast@./node_shrinkwrap/recast-0.10.33.tgz
npm verb cache add spec regenerate@./node_shrinkwrap/regenerate-1.2.1.tgz
npm verb cache add spec regenerator@./node_shrinkwrap/regenerator-0.8.40.tgz
npm verb cache add spec regex-cache@./node_shrinkwrap/regex-cache-0.4.2.tgz
npm verb cache add spec regexpu@./node_shrinkwrap/regexpu-1.3.0.tgz
npm verb cache add spec regjsgen@./node_shrinkwrap/regjsgen-0.2.0.tgz
npm verb cache add spec regjsparser@./node_shrinkwrap/regjsparser-0.1.5.tgz
npm verb cache add spec repeat-element@./node_shrinkwrap/repeat-element-1.1.2.tgz
npm verb cache add spec request@./node_shrinkwrap/request-2.67.0.tgz
npm verb cache add spec retry@./node_shrinkwrap/retry-0.8.0.tgz
npm verb cache add spec semver@./node_shrinkwrap/semver-5.1.0.tgz
npm verb cache add spec sha@./node_shrinkwrap/sha-2.0.1.tgz
npm verb cache add spec shebang-regex@./node_shrinkwrap/shebang-regex-1.0.0.tgz
npm verb cache add spec shrinkpack@./node_shrinkwrap/shrinkpack-0.4.1.tgz
npm verb cache add spec sigmund@./node_shrinkwrap/sigmund-1.0.1.tgz
npm verb cache add spec simple-fmt@./node_shrinkwrap/simple-fmt-0.1.0.tgz
npm verb cache add spec simple-is@./node_shrinkwrap/simple-is-0.2.0.tgz
npm verb cache add spec sister@./node_shrinkwrap/sister-3.0.0.tgz
npm verb cache add spec slash@./node_shrinkwrap/slash-1.0.0.tgz
npm verb cache add spec slide@./node_shrinkwrap/slide-1.1.6.tgz
npm verb cache add spec sntp@./node_shrinkwrap/sntp-1.0.9.tgz
npm verb cache add spec sorted-object@./node_shrinkwrap/sorted-object-1.0.0.tgz
npm verb cache add spec source-map-support@./node_shrinkwrap/source-map-support-0.2.10.tgz
npm verb cache add spec spdx@./node_shrinkwrap/spdx-0.4.3.tgz
npm verb cache add spec spdx-correct@./node_shrinkwrap/spdx-correct-1.0.2.tgz
npm verb cache add spec spdx-exceptions@./node_shrinkwrap/spdx-exceptions-1.0.4.tgz
npm verb cache add spec spdx-expression-parse@./node_shrinkwrap/spdx-expression-parse-1.0.2.tgz
npm verb cache add spec spdx-license-ids@./node_shrinkwrap/spdx-license-ids-1.1.0.tgz
npm verb cache add spec splice-string@./node_shrinkwrap/splice-string-1.0.0.tgz
npm verb cache add spec sshpk@./node_shrinkwrap/sshpk-1.7.1.tgz
npm verb cache add spec stable@./node_shrinkwrap/stable-0.1.5.tgz
npm verb cache add spec stack-trace@./node_shrinkwrap/stack-trace-0.0.9.tgz
npm verb cache add spec string-width@./node_shrinkwrap/string-width-1.0.1.tgz
npm verb cache add spec stringmap@./node_shrinkwrap/stringmap-0.2.2.tgz
npm verb cache add spec stringset@./node_shrinkwrap/stringset-0.2.1.tgz
npm verb cache add spec stringstream@./node_shrinkwrap/stringstream-0.0.5.tgz
npm verb cache add spec success-symbol@./node_shrinkwrap/success-symbol-0.1.0.tgz
npm verb cache add spec symbol-tree@./node_shrinkwrap/symbol-tree-3.1.4.tgz
npm verb cache add spec table@./node_shrinkwrap/table-3.7.4.tgz
npm verb cache add spec tar@./node_shrinkwrap/tar-2.2.1.tgz
npm verb cache add spec tar-fs@./node_shrinkwrap/tar-fs-1.9.0.tgz
npm verb cache add spec tar-pack@./node_shrinkwrap/tar-pack-3.1.2.tgz
npm verb cache add spec tar-stream@./node_shrinkwrap/tar-stream-1.3.1.tgz
npm verb cache add spec tough-cookie@./node_shrinkwrap/tough-cookie-2.2.1.tgz
npm verb cache add spec tr46@./node_shrinkwrap/tr46-0.0.2.tgz
npm verb cache add spec trim-right@./node_shrinkwrap/trim-right-1.0.1.tgz
npm verb cache add spec try-resolve@./node_shrinkwrap/try-resolve-1.0.1.tgz
npm verb cache add spec tryor@./node_shrinkwrap/tryor-0.1.2.tgz
npm verb cache add spec tunnel-agent@./node_shrinkwrap/tunnel-agent-0.4.2.tgz
npm verb cache add spec tv4@./node_shrinkwrap/tv4-1.2.7.tgz
npm verb cache add spec tweetnacl@./node_shrinkwrap/tweetnacl-0.13.2.tgz
npm verb cache add spec type-detect@./node_shrinkwrap/type-detect-1.0.0.tgz
npm verb cache add spec uid-number@./node_shrinkwrap/uid-number-0.0.3.tgz
npm verb cache add spec umask@./node_shrinkwrap/umask-1.1.0.tgz
npm verb cache add spec url-extractor@./node_shrinkwrap/url-extractor-1.0.1.tgz
npm verb cache add spec url-regexp@./node_shrinkwrap/url-regexp-1.0.2.tgz
npm verb cache add spec util-extend@./node_shrinkwrap/util-extend-1.0.1.tgz
npm verb cache add spec validate-npm-package-license@./node_shrinkwrap/validate-npm-package-license-3.0.1.tgz
npm verb cache add spec validate-npm-package-name@./node_shrinkwrap/validate-npm-package-name-2.2.2.tgz
npm verb cache add spec verror@./node_shrinkwrap/verror-1.3.6.tgz
npm verb cache add spec wcwidth@./node_shrinkwrap/wcwidth-1.0.0.tgz
npm verb cache add spec whatwg-url-compat@./node_shrinkwrap/whatwg-url-compat-0.6.5.tgz
npm verb cache add spec when@./node_shrinkwrap/when-3.7.3.tgz
npm verb cache add spec which@./node_shrinkwrap/which-1.1.2.tgz
npm verb cache add spec wrap-ansi@./node_shrinkwrap/wrap-ansi-1.0.0.tgz
npm verb cache add spec write-file-atomic@./node_shrinkwrap/write-file-atomic-1.1.4.tgz
npm verb cache add spec xml-name-validator@./node_shrinkwrap/xml-name-validator-2.0.1.tgz
npm verb cache add spec xmlbuilder@./node_shrinkwrap/xmlbuilder-4.2.0.tgz
npm verb cache add spec xmlhttprequest@./node_shrinkwrap/xmlhttprequest-1.8.0.tgz
npm verb cache add spec xregexp@./node_shrinkwrap/xregexp-3.0.0.tgz
npm verb cache add spec y18n@./node_shrinkwrap/y18n-3.2.0.tgz
npm verb cache add spec yargs@./node_shrinkwrap/yargs-3.31.0.tgz
npm verb request uri http://registry.npmjs.org/pragmatist
npm verb request no auth needed
npm info attempt registry request try #1 at 11:36:34 AM
npm verb request using bearer token for auth
npm http request GET http://registry.npmjs.org/pragmatist
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/abbrev-1.0.7.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/acorn-2.7.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/acorn-globals-1.0.9.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/alter-0.2.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/ansi-0.3.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/ansi-green-0.1.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/ansi-slice-1.2.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/ansi-wrap-0.1.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/ansicolors-0.3.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/ansistyles-0.1.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/anymatch-1.3.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/archy-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/are-we-there-yet-1.0.5.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/arr-diff-2.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/arr-flatten-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/array-index-0.1.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/array-unique-0.2.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/asap-2.0.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/asn1-0.2.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/assert-plus-0.1.5.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/assertion-error-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/ast-traverse-0.1.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/ast-types-0.8.12.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/async-each-0.1.6.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/async-some-1.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/aws-sign2-0.6.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/babel-5.8.34.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/babel-core-5.8.34.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/babel-plugin-constant-folding-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/babel-plugin-dead-code-elimination-1.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/babel-plugin-eval-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/babel-plugin-inline-environment-variables-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/babel-plugin-jscript-1.0.4.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/babel-plugin-member-expression-literals-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/babel-plugin-property-literals-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/babel-plugin-proto-to-assign-1.0.4.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/babel-plugin-react-constant-elements-1.0.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/babel-plugin-react-display-name-1.0.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/babel-plugin-remove-console-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/babel-plugin-remove-debugger-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/babel-plugin-runtime-1.0.7.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/babel-plugin-undeclared-variables-check-1.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/babel-plugin-undefined-to-void-1.1.6.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/binary-extensions-1.4.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/bl-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/block-stream-0.0.8.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/bluebird-3.1.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/boom-2.10.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/braces-1.8.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/breakable-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/browser-request-0.3.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/builtin-modules-1.1.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/builtins-0.0.7.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/bundle-dependencies-0.0.22.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/caseless-0.11.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/chai-3.4.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/char-spinner-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/chmodr-1.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/chokidar-1.4.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/chownr-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/clone-1.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/cmd-shim-2.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/columnify-1.5.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/combined-stream-1.0.5.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/commoner-0.10.4.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/config-chain-1.1.9.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/contents-4.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/convert-source-map-1.1.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/cryptiles-2.0.5.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/cssom-0.3.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/cssstyle-0.2.30.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/dashdash-1.11.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/deadlink-1.1.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/debuglog-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/deep-eql-0.1.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/deep-extend-0.4.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/defaults-1.0.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/defined-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/defs-1.1.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/delayed-stream-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/delegates-0.1.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/detect-indent-3.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/detective-4.3.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/dezalgo-1.0.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/dom-serializer-0.1.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/domelementtype-1.3.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/domhandler-2.3.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/domutils-1.5.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/ecc-jsbn-0.1.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/editor-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/end-of-stream-1.1.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/entities-1.1.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/escodegen-1.8.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/expand-brackets-0.1.4.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/expand-range-1.8.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/extend-3.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/extglob-0.3.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/extsprintf-1.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/filename-regex-2.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/filesize-3.1.5.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/fill-range-2.2.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/for-in-0.1.4.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/for-own-0.1.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/forever-agent-0.6.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/form-data-1.0.0-rc3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/fs-readdir-recursive-0.1.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/fs-vacuum-1.2.7.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/fs-write-stream-atomic-1.0.8.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/fsevents-1.0.6.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/fstream-1.0.8.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/fstream-ignore-1.0.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/fstream-npm-1.0.7.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/gauge-1.2.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/get-stdin-5.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/gitdown-2.4.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/github-url-from-git-1.4.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/github-url-from-username-repo-1.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/gitinfo-1.2.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/glob-base-0.3.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/glob-parent-2.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/har-validator-2.0.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/has-unicode-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/hawk-3.1.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/hoek-2.16.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/home-or-tmp-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/hosted-git-info-2.1.4.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/htmlparser2-3.9.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/http-signature-1.1.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/iconv-lite-0.4.13.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/iferr-0.1.5.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/imurmurhash-0.1.4.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/ini-1.3.4.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/init-package-json-1.9.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/invert-kv-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/is-3.1.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/is-absolute-0.1.7.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/is-binary-path-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/is-builtin-module-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/is-dotfile-1.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/is-equal-shallow-0.1.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/is-extendable-0.1.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/is-extglob-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/is-glob-2.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/is-integer-1.0.6.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/is-number-2.1.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/is-primitive-2.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/is-relative-0.1.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/is-typedarray-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/isobject-2.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/isstream-0.1.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/jju-1.2.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/jodid25519-1.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/jsbn-0.1.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/jsdom-6.5.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/jsesc-0.5.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/json-parse-helpfulerror-1.0.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/json-schema-0.2.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/json-stringify-safe-5.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/json5-0.4.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/jsprim-1.2.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/klaw-1.1.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/lcid-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/leven-1.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/lockfile-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/lodash._createpadding-3.6.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/lodash.pad-3.1.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/lodash.padleft-3.1.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/lodash.padright-3.1.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/lodash.repeat-3.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/lru-cache-2.7.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/markdown-contents-1.0.8.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/marked-0.3.5.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/micromatch-2.3.7.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/mime-db-1.20.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/mime-types-2.1.8.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/moment-2.11.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/nan-2.1.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/node-gyp-3.0.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/node-pre-gyp-0.6.18.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/node-uuid-1.4.7.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/nopt-3.0.6.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/normalize-git-url-3.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/normalize-package-data-2.3.5.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/normalize-path-2.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/npm-2.14.8.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/npm-cache-filename-1.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/npm-install-checks-1.0.6.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/npm-package-arg-4.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/npm-registry-client-7.0.9.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/npm-user-validate-0.1.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/npmlog-1.2.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/nwmatcher-1.3.7.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/oauth-sign-0.8.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/object.omit-2.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/opener-1.4.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/os-locale-1.4.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/os-tmpdir-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/osenv-0.1.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/output-file-sync-1.1.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/parse-glob-3.0.4.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/parse5-1.5.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/path-array-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/path-exists-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/pluralize-1.2.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/preserve-0.2.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/private-0.1.6.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/promzard-0.3.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/proto-list-1.2.4.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/pump-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/q-1.4.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/qs-5.2.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/randomatic-1.1.5.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/rc-1.1.6.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/read-1.0.7.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/read-installed-4.0.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/read-package-json-2.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/readdir-scoped-modules-1.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/readdirp-2.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/realize-package-specifier-3.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/recast-0.10.33.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/regenerate-1.2.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/regenerator-0.8.40.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/regex-cache-0.4.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/regexpu-1.3.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/regjsgen-0.2.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/regjsparser-0.1.5.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/repeat-element-1.1.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/request-2.67.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/retry-0.8.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/semver-5.1.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/sha-2.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/shebang-regex-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/shrinkpack-0.4.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/sigmund-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/simple-fmt-0.1.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/simple-is-0.2.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/sister-3.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/slash-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/slide-1.1.6.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/sntp-1.0.9.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/sorted-object-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/source-map-support-0.2.10.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/spdx-0.4.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/spdx-correct-1.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/spdx-exceptions-1.0.4.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/spdx-expression-parse-1.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/spdx-license-ids-1.1.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/splice-string-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/sshpk-1.7.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/stable-0.1.5.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/stack-trace-0.0.9.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/string-width-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/stringmap-0.2.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/stringset-0.2.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/stringstream-0.0.5.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/success-symbol-0.1.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/symbol-tree-3.1.4.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/table-3.7.4.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/tar-2.2.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/tar-fs-1.9.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/tar-pack-3.1.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/tar-stream-1.3.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/tough-cookie-2.2.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/tr46-0.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/trim-right-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/try-resolve-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/tryor-0.1.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/tunnel-agent-0.4.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/tv4-1.2.7.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/tweetnacl-0.13.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/type-detect-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/uid-number-0.0.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/umask-1.1.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/url-extractor-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/url-regexp-1.0.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/util-extend-1.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/validate-npm-package-license-3.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/validate-npm-package-name-2.2.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/verror-1.3.6.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/wcwidth-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/whatwg-url-compat-0.6.5.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/when-3.7.3.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/which-1.1.2.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/wrap-ansi-1.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/write-file-atomic-1.1.4.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/xml-name-validator-2.0.1.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/xmlbuilder-4.2.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/xmlhttprequest-1.8.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/xregexp-3.0.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/y18n-3.2.0.tgz
npm ERR! addLocal Could not install /Users/gajus/Desktop/test/node_shrinkwrap/yargs-3.31.0.tgz
npm http 200 http://registry.npmjs.org/pragmatist
npm verb headers { server: 'CouchDB/1.5.0 (Erlang OTP/R16B03)',
npm verb headers   etag: '"C655SN6AN99MVY8PU2I0QTF3T"',
npm verb headers   'content-type': 'application/json',
npm verb headers   'cache-control': 'max-age=300',
npm verb headers   'content-length': '158420',
npm verb headers   'accept-ranges': 'bytes',
npm verb headers   date: 'Tue, 05 Jan 2016 11:36:35 GMT',
npm verb headers   via: '1.1 varnish',
npm verb headers   'x-served-by': 'cache-lhr6321-LHR',
npm verb headers   'x-cache': 'MISS',
npm verb headers   'x-cache-hits': '0',
npm verb headers   'x-timer': 'S1451993795.543921,VS0,VE350',
npm verb headers   vary: 'Accept',
npm verb headers   connection: 'keep-alive' }
npm verb get saving pragmatist to /Users/gajus/.npm/registry.npmjs.org/pragmatist/.cache.json
npm verb cache add spec [email protected]
npm verb addNamed "2.3.64" is a plain semver version for pragmatist
npm verb addNameVersion registry:http://registry.npmjs.org/pragmatist not in flight; fetching
npm verb get http://registry.npmjs.org/pragmatist not expired, no request
npm verb addRemoteTarball http://registry.npmjs.org/pragmatist/-/pragmatist-2.3.64.tgz not in flight; adding
npm verb addRemoteTarball [ 'http://registry.npmjs.org/pragmatist/-/pragmatist-2.3.64.tgz',
npm verb addRemoteTarball   'ed16889c9714e96d05d2c1935573c24f4c92e572' ]
npm info retry fetch attempt 1 at 11:36:37 AM
npm info attempt registry request try #1 at 11:36:37 AM
npm http fetch GET http://registry.npmjs.org/pragmatist/-/pragmatist-2.3.64.tgz
npm verb request using bearer token for auth
npm http fetch 200 http://registry.npmjs.org/pragmatist/-/pragmatist-2.3.64.tgz
npm verb addTmpTarball /var/folders/hb/x0fq96d50311j4zf3_tdtwzw0000gn/T/npm-33402-d533dd36/registry.npmjs.org/pragmatist/-/pragmatist-2.3.64.tgz not in flight; adding
npm verb addTmpTarball already have metadata; skipping unpack for [email protected]
npm verb afterAdd /Users/gajus/.npm/pragmatist/2.3.64/package/package.json not in flight; writing
npm verb afterAdd /Users/gajus/.npm/pragmatist/2.3.64/package/package.json written
npm verb stack Error: ENOENT: no such file or directory, open '/Users/gajus/Desktop/test/node_shrinkwrap/abbrev-1.0.7.tgz'
npm verb stack     at Error (native)
npm verb cwd /Users/gajus/Desktop/test
npm ERR! Darwin 15.0.0
npm ERR! argv "/Users/gajus/.nvm/versions/node/v5.3.0/bin/node" "/Users/gajus/.nvm/versions/node/v5.3.0/bin/npm" "install" "[email protected]" "--loglevel=verbose"
npm ERR! node v5.3.0
npm ERR! npm  v3.3.12
npm ERR! path /Users/gajus/Desktop/test/node_shrinkwrap/abbrev-1.0.7.tgz
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open

npm ERR! enoent ENOENT: no such file or directory, open '/Users/gajus/Desktop/test/node_shrinkwrap/abbrev-1.0.7.tgz'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent
npm verb exit [ -2, true ]

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/gajus/Desktop/test/npm-debug.log

Incorrect header check in 0.16.1

Hello,

since the last update (0.16.1) and the change to the compression I get a lot of errors when running shrinkpack:

↓ @types/[email protected] from https://registry.npmjs.org/@types/core-js/-/core-js-0.9.29.tgz
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: incorrect header check
    at Zlib._handle.onerror (zlib.js:370:17)
↓ @types/[email protected] from https://registry.npmjs.org/@types/jasmine/-/jasmine-2.2.31.tgz
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: incorrect header check
    at Zlib._handle.onerror (zlib.js:370:17)

Some packages are fine, but a lot of them fail (maybe 1/10th)...

I cleaned up my node_modules and npm cache, removed the npm-shrinkwrap.json file, reinstalled the node modules and tried again, same problem...

I tried the --compress option and everything runs fine, which means that it's definitely the problem here

I'm on windows 10 x64, using node 6.3.0 and npm 3.10.6

edit: I'm wondering if it has to do with the namespace npm modules like @types/... or @angular/...

npm shrinkwrap complaints about extraneous and missing packages

I am trying to test shrinkpack, but I fail at the shrinkwrap step. Looking for help understanding this issue and how to fix it.

Steps to reproduce.

git clone https://github.com/gajus/canonical.git
cd ./canonical
npm install
npm prune
npm dedupe
npm shrinkwrap --dev

The error:

npm ERR! Darwin 15.0.0
npm ERR! argv "/Users/gajus/.nvm/versions/node/v5.3.0/bin/node" "/Users/gajus/.nvm/versions/node/v5.3.0/bin/npm" "shrinkwrap" "--dev"
npm ERR! node v5.3.0
npm ERR! npm  v3.3.12

npm ERR! Problems were encountered
npm ERR! Please correct and try again.
npm ERR! extraneous: [email protected] /Users/gajus/Documents/dev/canonical-code-style/canonical/node_modules/fsevents/node_modules/async
npm ERR! extraneous: [email protected] /Users/gajus/Documents/dev/canonical-code-style/canonical/node_modules/fsevents/node_modules/debug
npm ERR! extraneous: [email protected] /Users/gajus/Documents/dev/canonical-code-style/canonical/node_modules/fsevents/node_modules/escape-string-regexp
npm ERR! extraneous: [email protected] /Users/gajus/Documents/dev/canonical-code-style/canonical/node_modules/fsevents/node_modules/mime-types
npm ERR! extraneous: [email protected] /Users/gajus/Documents/dev/canonical-code-style/canonical/node_modules/fsevents/node_modules/once
npm ERR! extraneous: [email protected] /Users/gajus/Documents/dev/canonical-code-style/canonical/node_modules/fsevents/node_modules/readable-stream
npm ERR! extraneous: [email protected] /Users/gajus/Documents/dev/canonical-code-style/canonical/node_modules/fsevents/node_modules/rimraf
npm ERR! extraneous: [email protected] /Users/gajus/Documents/dev/canonical-code-style/canonical/node_modules/fsevents/node_modules/sshpk
npm ERR! extraneous: [email protected] /Users/gajus/Documents/dev/canonical-code-style/canonical/node_modules/fsevents/node_modules/tunnel-agent
npm ERR! missing: npmlog@0 || 1, required by [email protected]
npm ERR! missing: rimraf@~2.4.0, required by [email protected]
npm ERR! missing: debug@~0.7.2, required by [email protected]
npm ERR! missing: once@~1.1.1, required by [email protected]
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/gajus/Documents/dev/canonical-code-style/canonical/npm-debug.log

False positive for cached package version

shrinkpack tried to read [email protected] from the cache...

! failed to read file /Users/jmason/.npm/object-assign/3.0.0/package.tgz
! failed to shrinkpack [email protected]
! Please raise an issue at https://github.com/JamieMason/shrinkpack/issues

    Error: ENOENT: no such file or directory, open '/Users/jmason/.npm/object-assign/3.0.0/package.tgz'
        at Error (native)

but it was not there, although other versions were.

$ npm cache ls | grep object-assign
~/.npm/object-assign/
~/.npm/object-assign/2.1.1/
~/.npm/object-assign/2.1.1/package.tgz
~/.npm/object-assign/2.1.1/package/
~/.npm/object-assign/2.1.1/package/package.json
~/.npm/object-assign/4.0.1/
~/.npm/object-assign/4.0.1/package.tgz
~/.npm/object-assign/4.0.1/package/
~/.npm/object-assign/4.0.1/package/package.json

Shrinkpack as solution to NPM-Left-Pad-Gate?

It seems to me that Shrinkpack solves many of the issues involved with the whole transitive dependencies problem, by ensuring that you have local copies rather than always pulling down files from NPM's servers. I've found myself posting links to this tool in a number of discussion threads, sort of trying to raise awareness a bit.

Maybe worth making a concerted effort to try to advertise Shrinkpack? I'm still very surprised more people haven't started using this tool.

Support npm install <tarball>

When you use socket.io you run into following issue:

"xmlhttprequest": {
    "version": "1.5.0",
    "from": "https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz",
    "resolved": "https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz"
},,

will be resolved to npm cache add [email protected] and that is not the same package as "from" describes.
With the effect, that socket.io crashes after installing with the packages from node_shrinkwrap.

Solution:
change line 110 in index.js to:

          .exec('../npm cache add "' + value.from + '"')

Reinstate resolving tarball URLs using a local package.json

src/resolveTarball/resolveLocally/index.js was removed in eb59448 due to the complexity involved in trying to locate package.json and the differences in how this can be done in npm v2 and v3.

Windows users in particular seem to be affected by missing resolved properties in their npm-shrinkwrap.json files. Contacting the registry to find that information adds a lot of delay to shrinkpack.

One idea is to have a node.js file containing eg. require.resolve('[email protected]') which we run as if it were part of the host project – that way npm/node should resolve the dependency location for us, whatever the version.

Getting hold of the package.json should just be a case of a child_process.exec call to node path/to/our/hijack-resolve.js with the cwd set to the path to the project.

Speed up Dockerised tests

I'm really new to Docker so excuse me if any of the following is plain wrong, help or contributions welcome.

I think a lot of gains can be made by making better use of the Dockerfile, by moving things we wait for during the run phase into the build phase.

Notes/Ideas

  • Where we currently have FROM node:4.2.4, reference a base image which sets up the shrinkpack test environment.

    In the Dockerfile for that base image;

    • Prime the npm cache by running npm cache add [email protected] for every version of npm we're interested in.
    • Start some kind of caching proxy (maybe sinopia).
    • Prime the npm cache and populate the caching proxy by running npm install against the test/package.json.
  • When switching npm versions, npm rebuild might be needed.

  • Will likely need to change the config cache-min to be something high so npm doesn't try to refetch

See also: #47 (comment) from @5id.

drop node 0.10 / 0.12

Why not drop support for node 0.10? and even 0.12?
Promises are available from 0.12, arrow functions (awesome feature!) available from node 4.

Change made in npm 3.8.8 breaks shrinkpacked projects

We are not able to run npm install with recent npm versions

Expected behaviour

npm install with success on all (at least recent npm versions)

For now, we'll just keep on using a compatible npm version, but at some point, this is going to be an issue.
...

Actual behaviour

Did not try for all npm versions, but with 3.8.3 it is working fine, while with 3.8.9 or 3.9.2 (currently latest) npm install no longer finds the files.

From the error logs, the issue is pretty clear, the meaning of './' changed in a version between 3.8.3 and 3.8.9 and now, for dependencies, npm is building the path starting from the node_modules/package repertory instead of the working directory
...

Steps to reproduce

on a shrinkwrapped project
npm install -g [email protected]
rm -rf node_modules
npm install
=> all good

npm install -g [email protected]
rm -rf node_modules
npm install
=> all dependencies are failing
...

Software versions used

OS         :  Ubuntu 14.04
node.js    :  5.10.1
npm        : 3.8.3 => ok, 3.8.9 or 3.9.2 => not ok
shrinkpack : 0.12.3

Log output when running shrinkpack

$ rm -rf node_modules
$ npm install
Running node v5.10.1
npm ERR! addLocal Could not install /.../node_modules/dom-serializer/node_shrinkwrap/domelementtype-1.1.3.tgz
npm ERR! addLocal Could not install /.../node_modules/dom-serializer/node_shrinkwrap/entities-1.1.1.tgz
npm ERR! addLocal Could not install /.../node_modules/readline2/node_shrinkwrap/ansi-regex-1.1.1.tgz
npm ERR! addLocal Could not install /.../node_modules/readline2/node_shrinkwrap/mute-stream-0.0.4.tgz
npm ERR! addLocal Could not install /.../node_modules/readline2/node_shrinkwrap/strip-ansi-2.0.1.tgz
npm ERR! addLocal Could not install /.../node_modules/camelcase-keys/node_shrinkwrap/camelcase-2.1.0.tgz
npm ERR! addLocal Could not install /.../node_modules/indent-string/node_shrinkwrap/repeating-2.0.0.tgz
...

Add a contributors.md

It would be great to have a contributors.md file to make getting set up and familiarising with the project easy

Off the top of my head probably the main things would be:

  • Code style (semi-standard)
  • Format for creating issues, e.g. feat(shrinkpack): description
  • How to install / test the package
  • What tests should be included

Github has a link to guidelines here, with links to example: https://github.com/blog/1184-contributing-guidelines

Just so it doesn't get lost, as per your comments in #48, it would be good to see if that section of the dependencies.md to not be generated.

Remove optional dependencies.

  1. Install nodemon on mac
    (mac only dependency fsevents will be installed)
  2. run shrinkwrap and shrinkpack
  3. pull down on a linux machine and run npm install
  4. Get the following error:
npm ERR! code EBADPLATFORM
npm ERR! notsup Unsupported
npm ERR! notsup Not compatible with your operating system or architecture: [email protected]
npm ERR! notsup Valid OS:    darwin
npm ERR! notsup Valid Arch:  any
npm ERR! notsup Actual OS:   linux
npm ERR! notsup Actual Arch: x64

Have you run into this sort of thing before? Is it even possible to fix such a thing?

TypeError: Cannot read property 'npm' of undefined

Hi, with version 0.6.0 I run into a following issue:

[SyntaxError: Unexpected end of input]
Please raise an issue at https://github.com/JamieMason/shrinkpack/issues

    TypeError: Cannot read property 'npm' of undefined
        at Object.addPackage (C:\dev\images\node_modules\shrinkpack\src\shrinkpack.js:24:31)
        at addToShrinkpack (C:\dev\images\node_modules\shrinkpack\index.js:115:23)
        at tryCatchReject (C:\dev\images\node_modules\when\lib\makePromise.js:845:30)
        at runContinuation1 (C:\dev\images\node_modules\when\lib\makePromise.js:804:4)
        at Fulfilled.when (C:\dev\images\node_modules\when\lib\makePromise.js:592:4)
        at Pending.run (C:\dev\images\node_modules\when\lib\makePromise.js:483:13)
        at Scheduler._drain (C:\dev\images\node_modules\when\lib\Scheduler.js:62:19)
        at Scheduler.drain (C:\dev\images\node_modules\when\lib\Scheduler.js:27:9)
        at doNTCallback0 (node.js:407:9)
        at process._tickCallback (node.js:336:13)

package.json:
package.json.txt

Repeated "No compatible version found" error calling npm i after shrinkpack

Seems to be a different module that fails each time, no specific version

E.g.
234 error notarget No compatible version found: assemble-less@'./node_shrinkwrap/assemble-less-0.7.0.tgz'
419 error notarget No compatible version found: grunt@'./node_shrinkwrap/grunt-0.4.5.tgz'
420 error notarget No compatible version found: grunt-contrib-concat@'./node_shrinkwrap/grunt-contrib-concat-1.0.0.tgz'

If I call npm i a few different times I get a different message. There doesn't seem to be anything wrong with the versions, the tarball version matches the ones in the error message.

Not sure if it is due to the size of the package.json/number of dependencies, or if I am simply doing this wrong :)

Diff does not contain packages if npm-shrinkwrap.json is missing "resolved" fields

I just had my first package update sequence go badly for me. As usual, I had done an npm install --save-dev (in this case, the "sinon-chai" package), confirmed the package was working as I wanted, and then run npm shrinkwrap --dev followed by shrinkpack. However, despite my package.json having been updated by the install, shrinkpack didn't list any diff'd packages. I went back and forth on this for a while, and finally figured out what was going on.

I already knew that Shrinkpack relies on rewriting the "resolved" field in npm-shrinkpack.json to point to the local files under./node_shrinkwrap. However, it appears that on occasion, npm shrinkwrap does not actually write out a "resolved" field for some packages. In my case, the relevant shrinkwrap entry was:

    "sinon-chai": {
      "version": "2.8.0",
      "from": "sinon-chai@latest"
    }

Because shrinkwrap didn't supply a "resolved" field, Shrinkpack didn't see anything that needed to be included.

I tried a few times to get shrinkwrap to actually write out that field. There were a couple vaguely-related NPM issues, such as npm/npm#3581 , which suggest this is a sorta-known issue with no real obvious solution. One suggestion was to run npm clear cache, which I did but didn't help.

Ultimately, I tried running npm view sinon-chai to see the actual tarball URL, then manually added that as a "resolved" field to npm-shrinkwrap.json. When I reran Shrinkpack, it correctly indicated:

+ [email protected]
shrinkpack +1 -0

Now, obviously Shrinkpack can't do anything to force NPM install to write out npm-shrinkwrap.json properly. However, could it maybe do a little extra work to try to track down a valid resolution URL or something? For example, I note that if I look at my /node_modules/sinon-chai/package.json, it has a "dist" field with the same correct tarball URL. Maybe if npm-shrinkwrap.json doesn't have a "resolved" field for a package, Shrinkpack could look for the "dist" field in the installed package's package.json?

I'm actually looking at Shrinkpack's shrinkwrap.js, and I see that line 58 has if (is.string(object.resolved)), but I don't actually see it using "resolved" anywhere. A bit confused on that.

Shrinkpack crashes when updating dependencies

Expected behaviour

shrinkpack command produces an updated npm-shrinkwrap.json and an updated node_shrinkwrap folder when a new package has been installed and npm shrinkwrap --dev has been executed.

Actual behaviour

Shrinkpack gets a type error and crashes.

Steps to reproduce

  1. Create a new folder
  2. Run npm init -y
  3. Install shrinkpack globally npm install shrinkpack --global
  4. Run npm install [email protected] --save-dev
  5. Run npm shrinkwrap --dev
  6. Run `shrinkpack``
    1. npm-shrinkwrap.json is updated with relative file paths
    2. node_shrinkwrap folder is created
  7. Run npm intall [email protected] --save-dev
  8. Run npm shrinkwrap --dev
  9. Run shrinkpack

Software versions used

OS         : Windows 10
node.js    : 5.10.1
npm        : 3.3.6
shrinkpack : 0.10.0

Log output when running shrinkpack

! Please raise an issue at https://github.com/JamieMason/shrinkpack/issues

    TypeError: Cannot read property 'shrinkpack' of undefined
        at removeDep (C:\Users\objerke\AppData\Roaming\npm\node_modules\shrinkpack\task\removeFromBundle.js:16:32)
        at Array.map (native)
        at Object.removeFromBundle (C:\Users\objerke\AppData\Roaming\npm\node_modules\shrinkpack\task\removeFromBundle.js:12:27)
        at removeFromBundle (C:\Users\objerke\AppData\Roaming\npm\node_modules\shrinkpack\index.js:48:15)
        at process._tickCallback (internal/process/next_tick.js:103:7)

Contents of your npm-shrinkwrap.json or package.json

I've created a zip file containing the files in different versions. One for each step.
shrinkpack-demo.zip

Running 'npm pack' after using shrinkpack produces an unusable tarball

Steps to Reproduce

Follow the shrinkpack-demo from the main page.

After the last step where the "co-worker" has run npm install, follow these steps in the "co-worker's" directory.

npm pack

This will produce a file called shrinkpack-demo-1.0.0.tgz.

Move this shrinkpack-demo-1.0.0.tgz to a clean directory and then run:

npm install shrinkpack-demo-1.0.0.tgz

You will see the following error:

npm install shrinkpack-demo-1.0.0.tgz
npm WARN package.json [email protected] No description
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No README data
npm ERR! addLocal Could not install C:\source\sandbox\shrinkpack-bug-demo\clone\shrinkpack-bug-demo\tarball\nod
e_shrinkwrap\async-2.0.1.tar
npm ERR! addLocal Could not install C:\source\sandbox\shrinkpack-bug-demo\clone\shrinkpack-bug-demo\tarball\nod
e_shrinkwrap\commander-2.7.1.tar
npm ERR! addLocal Could not install C:\source\sandbox\shrinkpack-bug-demo\clone\shrinkpack-bug-demo\tarball\nod
e_shrinkwrap\express-4.14.0.tar
npm ERR! addLocal Could not install C:\source\sandbox\shrinkpack-bug-demo\clone\shrinkpack-bug-demo\tarball\nod
e_shrinkwrap\lodash-4.15.0.tar
npm ERR! addLocal Could not install C:\source\sandbox\shrinkpack-bug-demo\clone\shrinkpack-bug-demo\tarball\nod
e_shrinkwrap\request-2.74.0.tar
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files (x86)\\nodejs\\node.exe" "C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\
bin\\npm-cli.js" "install" "shrinkpack-demo-1.0.0.tgz"
npm ERR! node v4.4.0
npm ERR! npm  v2.14.20
npm ERR! path C:\source\sandbox\shrinkpack-bug-demo\clone\shrinkpack-bug-demo\tarball\node_shrinkwrap\async-2.0
.1.tar
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall open

npm ERR! enoent ENOENT: no such file or directory, open 'C:\source\sandbox\shrinkpack-bug-demo\clone\shrinkpack
-bug-demo\tarball\node_shrinkwrap\async-2.0.1.tar'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! Please include the following file with any support request:
npm ERR!     C:\source\sandbox\shrinkpack-bug-demo\clone\shrinkpack-bug-demo\tarball\npm-debug.log

The problem appears to be that it is expecting to find the node_shrinkwrap folder in the current directory as in the directory npm is run from. When install a tarball created using npm however the directory that it is installed to will be more like node_modules/shrinkpack-demo/node_shrinkwrap

Expecting: ./node_shrinkwrap/
Actual: ./node_modules/shrinkpack-demo/node_shrinkwrap

Node Version: 4.4.0
NPM Version: 2.14.20

npm-debug.log attached.
npm-debug-log.txt

Updating shrinkpacked dependencies

In the README, you mention:

I've chosen an older version of commander so that we can go through how to update a shrinkpacked project later.

But, I don't see anywhere else in the README where updating a dependency is actually covered. I think that would be very useful information (that I'm figuring out for myself currently).

Thanks for the awesome tool!

Support (or at least non-fatal handling) for git dependencies?

Git dependencies are causing fatal errors on my system.

My npm-shrinkwrap.json contains this github dependency entry:

"techan": {
  "version": "0.6.0",
  "from": "techan@git://github.com/andredumas/techan.js#f7d1489b61a2dd951036f9dc207d1c91339b00f9",
  "resolved": "git://github.com/andredumas/techan.js#f7d1489b61a2dd951036f9dc207d1c91339b00f9"
},

This derives from my package.json entry: "techan": "andredumas/techan.js#0.6.0"

Shrinkpack (or maybe it's npm's cache API) doesn't seem to know how to respond:

error adding [email protected] to npm cache: Error: Registry returned 404 for GET on https://registry.npmjs.org/techan
Please raise an issue at https://github.com/JamieMason/shrinkpack/issues

    TypeError: Cannot read property 'npm' of undefined
        at Object.addPackage (D:\dev\apps\GeonomicsCarbonSim\deploy\WebRoot\node_modules\shrinkpack\src\shrinkpack.js:24:33)
        at addToShrinkpack (D:\dev\apps\GeonomicsCarbonSim\deploy\WebRoot\node_modules\shrinkpack\index.js:117:27)
        at tryCatchReject (D:\dev\apps\GeonomicsCarbonSim\deploy\WebRoot\node_modules\shrinkpack\node_modules\when\lib\makePromise.js:845:30)
        at runContinuation1 (D:\dev\apps\GeonomicsCarbonSim\deploy\WebRoot\node_modules\shrinkpack\node_modules\when\lib\makePromise.js:804:4)
        at Fulfilled.when (D:\dev\apps\GeonomicsCarbonSim\deploy\WebRoot\node_modules\shrinkpack\node_modules\when\lib\makePromise.js:592:4)
        at Pending.run (D:\dev\apps\GeonomicsCarbonSim\deploy\WebRoot\node_modules\shrinkpack\node_modules\when\lib\makePromise.js:483:13)
        at Scheduler._drain (D:\dev\apps\GeonomicsCarbonSim\deploy\WebRoot\node_modules\shrinkpack\node_modules\when\lib\Scheduler.js:62:19)
        at Scheduler.drain (D:\dev\apps\GeonomicsCarbonSim\deploy\WebRoot\node_modules\shrinkpack\node_modules\when\lib\Scheduler.js:27:9)
        at process._tickCallback (node.js:419:13)

Error handling issues obscuring points of error (in v0.6.0)

in src/exec.js:

      } else if (stderr) {
        reject(err);

Problems are a bit tricky to trace due to some error handling issues:

  1. The reject() is passing out err instead of stderr, which is null so it blows up the .toString() in npmCache.js:42.

Recommendation: substitute those, use String() rather than .toString().

  1. And when addToNpmCache() catches and returns errors, addMissingDep() is proceeding to addToShrinkpack with the error as its dep argument. Because that argument is missing all the usual properties, it usually ends with: TypeError: Cannot read property 'npm' of undefined

Recommendation: move the addToNpmCache() catch to the end of addToNpmCache()'s promise chain, so that it doesn't try to proceed with addToShrinkpack(), but can continue to process other deps.

Inspect package.json for tarball path before network

would it be possible to have Shrinkpack check /node_modules/some_installed_package/package.json for the "dist" field, which should contain the tarball path? Seems like that might cut down on some of the need to query NPM for the metadata every time. Fewer child processes and network requests.
#18 (comment)

Running npm install against a shrinkpacked project pushes the local file resolution into the npm cache.

Expected behaviour

It should be possible to rerun shrinkpack if new dependencies have been added to an npm-shrinkwrap file.
...

Actual behaviour

shrinkpack detects that some of the dependencies resolve to tarballs in npm_shrinkwrap/ and exits explaining that it has nothing to do.

I think this is the commit containing the faulty logic: 409062c
...

Steps to reproduce

shrinkpack a project
add a new dependency
try to shrinkpack it again
...

Software versions used

OS         :  Linux
node.js    :  v4.2.4
npm        :  v3.8.6
shrinkpack : 0.10.0

Log output when running shrinkpack

! npm-shrinkwrap.json is already shrinkpacked, update it using npm shrinkwrap --dev then try again

Contents of your npm-shrinkwrap.json or package.json

N/A

Shrinkpack fixes some missing `resolved` properties it doesn't need to

Expected behaviour

when a package needs shrinkpacking
  when it's tarball is not in the npm cache
    when it has a missing "resolved" property
      should resolve the tarball url for that package and set it's `resolved` property

Actual behaviour

when one or more packages have a missing "resolved" property
  resolves the tarball url for every package with a missing `resolved` property and fixes it

Software versions used

shrinkpack : 0.12.1

Verify shrinkpack-ed packages are the same as remote

Interested on your thoughts about having the ability to run something like shrinkpack --verify, which would attempt to redownload the original package tgz found in the npm-shrinkwrap.json file (rather than using the local), and compare the checksums against the files in node_shrinkpack.

This would give us confidence that what is stored in the repository, matches the packages remotely. My concern arises from when people are raising PR's to check in the node_shrinkpack files, there's no way to tell if they're safe or not without manually checking the checksums yourself.

Ideally once npm-shrinkwrap.json supports checksums this could all go away, and shrinkpack would continue working fine.

npm install some-shrinkpacked-package

Expected behaviour

Installing shrinkpacked module as dev dependency
...

Actual behaviour

Throws erros like: ENOENT: no such file or directory, open '/Users/anmaciur/Projects/kkk/node_modules/style-guide/node_shrinkwrap/abbrev-1.0.9.tgz'
...

Steps to reproduce

Hi I have a project https://github.com/brainly/style-guide/tree/v44.0.1
that I want to install as dependency. Running command:
npm i git+https://github.com/brainly/style-guide.git#v44.0.1
throws erros like:
ENOENT: no such file or directory, open '/Users/anmaciur/Projects/kkk/node_modules/style-guide/node_shrinkwrap/abbrev-1.0.9.tgz'
...

Software versions used

OS         :  OSX
node.js    :  6.2.2
npm        : 3.10.4 (I tried on older versions as well 3.8.0)
shrinkpack : 0.13.1

Contents of your npm-shrinkwrap.json or package.json

https://github.com/brainly/style-guide/blob/v44.0.1/package.json
https://github.com/brainly/style-guide/blob/v44.0.1/npm-shrinkwrap.json

Document that shrinkpack has a Node.js API

Add to the README that it is possible to call shrinkpack from within node.

1. Node API

Shrinkpack works in 2 phases;

  1. Analyse the project and gather all the diffing information between the file system and the shrinkwrap.
  2. Use the diffing information to bring the file system in sync with the shrinkwrap.
var shrinkpack = require('shrinkpack');

shrinkpack.analyse({
  compress: false,
  directory: process.cwd(),
  keepOptional: false
}).then(function (data) {
  shrinkpack.update(data);
});

2. Internal API for the CLI

TODO expose cli.run() as shrinkpack.cli() in ./index.js.

This approach does the same as the above, but also writes out all the additional logging that you see when using shrinkpack normally.

var cli = require('shrinkpack/src/cli');

cli.run({
  compress: false,
  directory: process.cwd(),
  keepOptional: false
});

exec.js aborts on benign stderr messages from npm (in v0.6.0)

At exec.js line 11, stderr is checked and if non-empty, the command is considered to have failed.

But on my system (admittedly with an old npm), npm outputs a couple of benign lines to stderr whenever it refreshes its cache:

>npm view [email protected] --json > nul
npm http GET https://registry.npmjs.org/babel-plugin-proto-to-assign
npm http 304 https://registry.npmjs.org/babel-plugin-proto-to-assign

>npm view [email protected] --json > nul

The second time it is silent, but the first time worked fine too and should not be classified as having failed. If npm didn't return an error code, and you got valid json out of it, you probably don't need to worry about the contents of stderr for this command.

The error doesn't surface due to issues identified in #25 , and the process terminates with this message:

Please raise an issue at https://github.com/JamieMason/shrinkpack/issues

    TypeError: Cannot read property 'npm' of undefined
        at Object.addPackage (node_modules\shrinkpack\src\shrinkpack.js:25:31)
        at addToShrinkpack (node_modules\shrinkpack\index.js:119:23)
        at tryCatchReject (node_modules\shrinkpack\node_modules\when\lib\makePromise.js:845:30)
        at runContinuation1 (node_modules\shrinkpack\node_modules\when\lib\makePromise.js:804:4)
        at Fulfilled.when (node_modules\shrinkpack\node_modules\when\lib\makePromise.js:592:4)
        at Pending.run (node_modules\shrinkpack\node_modules\when\lib\makePromise.js:483:13)
        at Scheduler._drain (node_modules\shrinkpack\node_modules\when\lib\Scheduler.js:62:19)
        at Scheduler.drain (node_modules\shrinkpack\node_modules\when\lib\Scheduler.js:27:9)
        at process._tickCallback (node.js:419:13)

Handle scoped packages

Examples such as the following from [email protected].

"xmlhttprequest": {
  "version": "1.5.0",
  "from": "xmlhttprequest@https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz",
  "resolved": "./node_shrinkwrap/a6b6f2.tar.gz"
}

npm cache add does not seem to cache this format.

Convert npm's compressed tarballs to uncompressed.

Just discovered this project today through a comment on Reddit. Interesting project!

One thing that came to mind is that source control systems may not handle compressed tarballs very well, as every update to a package would result in a new copy of the entire file in the repo, which can make the repo very large. Perhaps uncompressed tarballs (ie. .tar files, not .tar.gz or .tgz) would be better since they can actually be diffed? I'm not sure if Git still treats tars as binary though, in which case it might not actually add any value. Just a thought :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.