* feat: specify linked deps in shrinkwrap.yaml
* feat: node_modules is pruned after linking from external package
* feat: link() and linkFromGlobal() expect arrays as first args
BREAKING CHANGE:
link() expects an array as first arg
BREAKING CHANGE:
linkFromGlobal() expects and array as first arg
* feat: update specifiers field in shrinkwrap.yaml when linking
* fix: prune node_modules after linking
* fix: flatten by alias
* fix: rename field, other fixes
* fix: more bug fixes
* fix: make all tests run, write a (failing) test for pruning
* fix: reflatten after pruning
* fix: do not log installation/removal of hoisted aliases
* fix: follow review comments
* fix: use muteLogs instead of skipLogs
* feat: this is a best attempt at flattening the dependency tree, similar to what npm does
* test: shamefullyFlatten option
* feat: when uninstalling, if shamefully-flatten is true, we need to re-flatten
* fix: use new shrinkwrap, not the old one
* fix: changes suggested in PR
* test: remove test.only
* fix: various bugs in uninstall and general install, added tests
* test: fix test
* test: use project.has and project.hasNot correctly
* test: remove test.only
* test: added tsconfig.json, added lint-test script, lint fixes
* test: use correct message
* fix: check should work on windows too
* feat: upload side effects cache when needed
* feat: add side-effects-cache support
* fix: review suggestions
* fix: rename to cacheByNodeVersion, compute immediately centralLocation
* fix: make cacheByNodeVersion nullable, fix centralLocation, move nodeMajor to the top
* fix: s/nodeVersion/engineName/
* fix: some renames, add verifyStoreIntegrity option
* fix(deps): update
* fix: fix failing tests
* fix: update package-store to v0.15.1
* test: creating side effects cache
* test: using the side effects cache, in readonly mode too
* fix: rename engine to include 'node', test for opts.force
* Change string compare to a path compare
* Add some tests
* Fix problem with slashes
* Allow injecting of path
* Add a simpler test
* fix: remove unused variable
ref #996
* feat: add reflinks option
* feat: packageImportMethod allows us to specify between auto, hardlink, reflink, copy
* refactor: split hardlinkPkg and reflinkPkg, refactor switch, add default method
* fix: add breaks, describe option in the README
* test: test the copy-only import option
* fix: use mkdirp in reflinkPkg too
* fix: run node-gyp rebuild when install is not specified
* feat: after pnpm install --ignore-script, pnpm rebuild is incremental
* refactor: add --pending option to rebuild, only store pending ids
* fix: javascript magic to avoid if statement
* fix: update pendingBuilds also when removing packages
* fix: remove old code, use testDefaults correctly
* test: add test for rebuild --pending
* chore: make my IDE and TSLint happy
* chore: @types/es6-promise makes IntelliJ happy and Travis sad
* fix: use Set, only append to pendingBuilds if ignoreScripts is true
* test: pendingBuilds handled correctly
* test: install and uninstall behavior with pendingBuilds
* fix: saveModules only when needed
* fix: Set has size, not length, add comment about the use of .concat