Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

npm: Upgrade to 1.1.29

  • Loading branch information...
commit edb62dd9023e0660bcb2d1939c709024f1fa15ca 1 parent 10fa526
@isaacs isaacs authored
Showing with 623 additions and 271 deletions.
  1. +2 −0  deps/npm/AUTHORS
  2. +10 −3 deps/npm/bin/npm
  3. +34 −26 deps/npm/doc/cli/config.md
  4. +1 −1  deps/npm/html/api/bin.html
  5. +1 −1  deps/npm/html/api/bugs.html
  6. +1 −1  deps/npm/html/api/commands.html
  7. +1 −1  deps/npm/html/api/config.html
  8. +1 −1  deps/npm/html/api/deprecate.html
  9. +1 −1  deps/npm/html/api/docs.html
  10. +1 −1  deps/npm/html/api/edit.html
  11. +1 −1  deps/npm/html/api/explore.html
  12. +1 −1  deps/npm/html/api/help-search.html
  13. +1 −1  deps/npm/html/api/init.html
  14. +1 −1  deps/npm/html/api/install.html
  15. +1 −1  deps/npm/html/api/link.html
  16. +1 −1  deps/npm/html/api/load.html
  17. +1 −1  deps/npm/html/api/ls.html
  18. +2 −2 deps/npm/html/api/npm.html
  19. +1 −1  deps/npm/html/api/outdated.html
  20. +1 −1  deps/npm/html/api/owner.html
  21. +1 −1  deps/npm/html/api/pack.html
  22. +1 −1  deps/npm/html/api/prefix.html
  23. +1 −1  deps/npm/html/api/prune.html
  24. +1 −1  deps/npm/html/api/publish.html
  25. +1 −1  deps/npm/html/api/rebuild.html
  26. +1 −1  deps/npm/html/api/restart.html
  27. +1 −1  deps/npm/html/api/root.html
  28. +1 −1  deps/npm/html/api/run-script.html
  29. +1 −1  deps/npm/html/api/search.html
  30. +1 −1  deps/npm/html/api/shrinkwrap.html
  31. +1 −1  deps/npm/html/api/start.html
  32. +1 −1  deps/npm/html/api/stop.html
  33. +1 −1  deps/npm/html/api/submodule.html
  34. +1 −1  deps/npm/html/api/tag.html
  35. +1 −1  deps/npm/html/api/test.html
  36. +1 −1  deps/npm/html/api/uninstall.html
  37. +1 −1  deps/npm/html/api/unpublish.html
  38. +1 −1  deps/npm/html/api/update.html
  39. +1 −1  deps/npm/html/api/version.html
  40. +1 −1  deps/npm/html/api/view.html
  41. +1 −1  deps/npm/html/api/whoami.html
  42. +1 −1  deps/npm/html/doc/README.html
  43. +1 −1  deps/npm/html/doc/adduser.html
  44. +1 −1  deps/npm/html/doc/bin.html
  45. +1 −1  deps/npm/html/doc/bugs.html
  46. +1 −1  deps/npm/html/doc/build.html
  47. +1 −1  deps/npm/html/doc/bundle.html
  48. +1 −1  deps/npm/html/doc/cache.html
  49. +1 −1  deps/npm/html/doc/changelog.html
  50. +1 −1  deps/npm/html/doc/coding-style.html
  51. +1 −1  deps/npm/html/doc/completion.html
  52. +33 −26 deps/npm/html/doc/config.html
  53. +1 −1  deps/npm/html/doc/deprecate.html
  54. +1 −1  deps/npm/html/doc/developers.html
  55. +1 −1  deps/npm/html/doc/disputes.html
  56. +1 −1  deps/npm/html/doc/docs.html
  57. +1 −1  deps/npm/html/doc/edit.html
  58. +1 −1  deps/npm/html/doc/explore.html
  59. +1 −1  deps/npm/html/doc/faq.html
  60. +1 −1  deps/npm/html/doc/folders.html
  61. +1 −1  deps/npm/html/doc/help-search.html
  62. +1 −1  deps/npm/html/doc/help.html
  63. +1 −1  deps/npm/html/doc/index.html
  64. +1 −1  deps/npm/html/doc/init.html
  65. +1 −1  deps/npm/html/doc/install.html
  66. +1 −1  deps/npm/html/doc/json.html
  67. +1 −1  deps/npm/html/doc/link.html
  68. +1 −1  deps/npm/html/doc/list.html
  69. +2 −2 deps/npm/html/doc/npm.html
  70. +1 −1  deps/npm/html/doc/outdated.html
  71. +1 −1  deps/npm/html/doc/owner.html
  72. +1 −1  deps/npm/html/doc/pack.html
  73. +1 −1  deps/npm/html/doc/prefix.html
  74. +1 −1  deps/npm/html/doc/prune.html
  75. +1 −1  deps/npm/html/doc/publish.html
  76. +1 −1  deps/npm/html/doc/rebuild.html
  77. +1 −1  deps/npm/html/doc/registry.html
  78. +1 −1  deps/npm/html/doc/removing-npm.html
  79. +1 −1  deps/npm/html/doc/restart.html
  80. +1 −1  deps/npm/html/doc/root.html
  81. +1 −1  deps/npm/html/doc/run-script.html
  82. +1 −1  deps/npm/html/doc/scripts.html
  83. +1 −1  deps/npm/html/doc/search.html
  84. +1 −1  deps/npm/html/doc/semver.html
  85. +1 −1  deps/npm/html/doc/shrinkwrap.html
  86. +1 −1  deps/npm/html/doc/star.html
  87. +1 −1  deps/npm/html/doc/start.html
  88. +1 −1  deps/npm/html/doc/stop.html
  89. +1 −1  deps/npm/html/doc/submodule.html
  90. +1 −1  deps/npm/html/doc/tag.html
  91. +1 −1  deps/npm/html/doc/test.html
  92. +1 −1  deps/npm/html/doc/uninstall.html
  93. +1 −1  deps/npm/html/doc/unpublish.html
  94. +1 −1  deps/npm/html/doc/update.html
  95. +1 −1  deps/npm/html/doc/version.html
  96. +1 −1  deps/npm/html/doc/view.html
  97. +1 −1  deps/npm/html/doc/whoami.html
  98. +0 −9 deps/npm/lib/cache.js
  99. +14 −0 deps/npm/lib/install.js
  100. +1 −0  deps/npm/lib/npm.js
  101. +67 −0 deps/npm/lib/uninstall.js
  102. +24 −6 deps/npm/lib/utils/cmd-shim.js
  103. +22 −36 deps/npm/lib/utils/config-defs.js
  104. +2 −0  deps/npm/lib/utils/lifecycle.js
  105. +50 −39 deps/npm/man/man1/config.1
  106. +1 −1  deps/npm/man/man1/npm.1
  107. +1 −1  deps/npm/man/man3/npm.3
  108. +3 −0  deps/npm/node_modules/init-package-json/default-input.js
  109. +1 −1  deps/npm/node_modules/init-package-json/node_modules/promzard/package.json
  110. +4 −4 deps/npm/node_modules/init-package-json/package.json
  111. +1 −1  deps/npm/node_modules/npm-registry-client/lib/get.js
  112. +3 −3 deps/npm/node_modules/npm-registry-client/package.json
  113. +25 −0 deps/npm/node_modules/osenv/LICENSE
  114. +63 −0 deps/npm/node_modules/osenv/README.md
  115. +80 −0 deps/npm/node_modules/osenv/osenv.js
  116. +38 −0 deps/npm/node_modules/osenv/package.json
  117. +4 −4 deps/npm/node_modules/read-package-json/package.json
  118. +17 −13 deps/npm/node_modules/read-package-json/read-json.js
  119. +5 −3 deps/npm/package.json
  120. +2 −0  deps/npm/test/packages/npm-test-array-bin/bin/array-bin
  121. +4 −0 deps/npm/test/packages/npm-test-array-bin/package.json
  122. +6 −0 deps/npm/test/packages/npm-test-array-bin/test.js
  123. +2 −0  deps/npm/test/packages/npm-test-dir-bin/bin/dir-bin
  124. +4 −0 deps/npm/test/packages/npm-test-dir-bin/package.json
  125. +5 −0 deps/npm/test/packages/npm-test-dir-bin/test.js
View
2  deps/npm/AUTHORS
@@ -66,3 +66,5 @@ Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>
Dalmais Maxence <github@maxired.fr>
Marcus Ekwall <marcus.ekwall@gmail.com>
Aaron Stacy <aaron.r.stacy@gmail.com>
+Phillip Howell <phowell@cothm.org>
+Domenic Denicola <domenic@domenicdenicola.com>
View
13 deps/npm/bin/npm
@@ -1,6 +1,13 @@
#!/bin/sh
-if [ -x "`dirname "$0"`/node.exe" ]; then
- "`dirname "$0"`/node.exe" "`dirname "$0"`/node_modules/npm/bin/npm-cli.js" "$@"
+
+basedir=`dirname "$0"`
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node.exe" ]; then
+ "$basedir/node.exe" "$basedir/node_modules/npm/bin/npm-cli.js" "$@"
else
- node "`dirname "$0"`/node_modules/npm/bin/npm-cli.js" "$@"
+ node "$basedir/node_modules/npm/bin/npm-cli.js" "$@"
fi
View
60 deps/npm/doc/cli/config.md
@@ -117,6 +117,7 @@ The following shorthands are parsed on the command-line:
* `-S`: `--save`
* `-D`: `--save-dev`
* `-O`: `--save-optional`
+* `-B`: `--save-bundle`
* `-y`: `--yes`
* `-n`: `--yes false`
* `ll` and `la` commands: `ls --long`
@@ -167,32 +168,6 @@ then the user could change the behavior by doing:
Force npm to always require authentication when accessing the registry,
even for `GET` requests.
-### bin-publish
-
-* Default: false
-* Type: Boolean
-
-If set to true, then binary packages will be created on publish.
-
-This is the way to opt into the "bindist" behavior described below.
-
-### bindist
-
-* Default: Unstable node versions, `null`, otherwise
- `"<node version>-<platform>-<os release>"`
-* Type: String or `null`
-
-Experimental: on stable versions of node, binary distributions will be
-created with this tag. If a user then installs that package, and their
-`bindist` tag is found in the list of binary distributions, they will
-get that prebuilt version.
-
-Pre-build node packages have their preinstall, install, and postinstall
-scripts stripped (since they are run prior to publishing), and do not
-have their `build` directories automatically ignored.
-
-It's yet to be seen if this is a good idea.
-
### browser
* Default: OS X: `"open"`, others: `"google-chrome"`
@@ -452,6 +427,18 @@ What level of logs to report. On failure, *all* logs are written to
Any logs of a higher level than the setting are shown.
The default is "http", which shows http, warn, and error output.
+### logstream
+
+* Default: process.stderr
+* Type: Stream
+
+This is the stream that is passed to the
+[npmlog](https://github.com/isaacs/npmlog) module at run time.
+
+It cannot be set from the command line, but if you are using npm
+programmatically, you may wish to send logs to somewhere other than
+stderr.
+
### long
* Default: false
@@ -572,8 +559,23 @@ Remove failed installs.
Save installed packages to a package.json file as dependencies.
+When used with the `npm rm` command, it removes it from the dependencies
+hash.
+
Only works if there is already a package.json file present.
+### save-bundle
+
+* Default: false
+* Type: Boolean
+
+If a package would be saved at install time by the use of `--save`,
+`--save-dev`, or `--save-optional`, then also put it in the
+`bundleDependencies` list.
+
+When used with the `npm rm` command, it removes it from the
+bundledDependencies list.
+
### save-dev
* Default: false
@@ -581,6 +583,9 @@ Only works if there is already a package.json file present.
Save installed packages to a package.json file as devDependencies.
+When used with the `npm rm` command, it removes it from the devDependencies
+hash.
+
Only works if there is already a package.json file present.
### save-optional
@@ -590,6 +595,9 @@ Only works if there is already a package.json file present.
Save installed packages to a package.json file as optionalDependencies.
+When used with the `npm rm` command, it removes it from the devDependencies
+hash.
+
Only works if there is already a package.json file present.
### searchopts
View
2  deps/npm/html/api/bin.html
@@ -19,7 +19,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This function should not be used programmatically. Instead, just refer
to the <code>npm.bin</code> member.</p>
</div>
-<p id="footer">bin &mdash; npm@1.1.27</p>
+<p id="footer">bin &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/bugs.html
@@ -25,7 +25,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command will launch a browser, so this command may not be the most
friendly for programmatic use.</p>
</div>
-<p id="footer">bugs &mdash; npm@1.1.27</p>
+<p id="footer">bugs &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/commands.html
@@ -28,7 +28,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
-<p id="footer">commands &mdash; npm@1.1.27</p>
+<p id="footer">commands &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/config.html
@@ -33,7 +33,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../api/npm.html">npm(3)</a></li></ul>
</div>
-<p id="footer">config &mdash; npm@1.1.27</p>
+<p id="footer">config &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/deprecate.html
@@ -30,7 +30,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../api/unpublish.html">unpublish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">deprecate &mdash; npm@1.1.27</p>
+<p id="footer">deprecate &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/docs.html
@@ -25,7 +25,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command will launch a browser, so this command may not be the most
friendly for programmatic use.</p>
</div>
-<p id="footer">docs &mdash; npm@1.1.27</p>
+<p id="footer">docs &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/edit.html
@@ -30,7 +30,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Since this command opens an editor in a new process, be careful about where
and how this is used.</p>
</div>
-<p id="footer">edit &mdash; npm@1.1.27</p>
+<p id="footer">edit &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/explore.html
@@ -24,7 +24,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>The first element in the 'args' parameter must be a package name. After that is the optional command, which can be any number of strings. All of the strings will be combined into one, space-delimited command.</p>
</div>
-<p id="footer">explore &mdash; npm@1.1.27</p>
+<p id="footer">explore &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/help-search.html
@@ -32,7 +32,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>The silent parameter is not neccessary not used, but it may in the future.</p>
</div>
-<p id="footer">help-search &mdash; npm@1.1.27</p>
+<p id="footer">help-search &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/init.html
@@ -35,7 +35,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<p><a href="../doc/json.html">json(1)</a></p>
</div>
-<p id="footer">init &mdash; npm@1.1.27</p>
+<p id="footer">init &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/install.html
@@ -25,7 +25,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Finally, 'callback' is a function that will be called when all packages have been
installed or when an error has been encountered.</p>
</div>
-<p id="footer">install &mdash; npm@1.1.27</p>
+<p id="footer">install &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/link.html
@@ -39,7 +39,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Now, any changes to the redis package will be reflected in
the package in the current working directory</p>
</div>
-<p id="footer">link &mdash; npm@1.1.27</p>
+<p id="footer">link &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/load.html
@@ -32,7 +32,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>For a list of all the available command-line configs, see <code>npm help config</code></p>
</div>
-<p id="footer">load &mdash; npm@1.1.27</p>
+<p id="footer">load &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/ls.html
@@ -59,7 +59,7 @@ <h3 id="global">global</h3>
This means that if a submodule a same dependency as a parent module, then the
dependency will only be output once.</p>
</div>
-<p id="footer">ls &mdash; npm@1.1.27</p>
+<p id="footer">ls &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
4 deps/npm/html/api/npm.html
@@ -24,7 +24,7 @@ <h2 id="SYNOPSIS">SYNOPSIS</h2>
<h2 id="VERSION">VERSION</h2>
-<p>1.1.27</p>
+<p>1.1.29</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@@ -91,7 +91,7 @@ <h2 id="ABBREVS">ABBREVS</h2>
<pre><code>var cmd = npm.deref("unp") // cmd === "unpublish"</code></pre>
</div>
-<p id="footer">npm &mdash; npm@1.1.27</p>
+<p id="footer">npm &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/outdated.html
@@ -19,7 +19,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>If the 'packages' parameter is left out, npm will check all packages.</p>
</div>
-<p id="footer">outdated &mdash; npm@1.1.27</p>
+<p id="footer">outdated &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/owner.html
@@ -34,7 +34,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">owner &mdash; npm@1.1.27</p>
+<p id="footer">owner &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/pack.html
@@ -25,7 +25,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>If no arguments are supplied, then npm packs the current package folder.</p>
</div>
-<p id="footer">pack &mdash; npm@1.1.27</p>
+<p id="footer">pack &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/prefix.html
@@ -21,7 +21,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This function is not useful programmatically</p>
</div>
-<p id="footer">prefix &mdash; npm@1.1.27</p>
+<p id="footer">prefix &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/prune.html
@@ -23,7 +23,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Extraneous packages are packages that are not listed on the parent
package's dependencies list.</p>
</div>
-<p id="footer">prune &mdash; npm@1.1.27</p>
+<p id="footer">prune &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/publish.html
@@ -32,7 +32,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../api/owner.html">owner(3)</a></li></ul>
</div>
-<p id="footer">publish &mdash; npm@1.1.27</p>
+<p id="footer">publish &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/rebuild.html
@@ -22,7 +22,7 @@ <h2 id="CONFIGURATION">CONFIGURATION</h2>
<p>See <code>npm help build</code></p>
</div>
-<p id="footer">rebuild &mdash; npm@1.1.27</p>
+<p id="footer">rebuild &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/restart.html
@@ -27,7 +27,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
</div>
-<p id="footer">restart &mdash; npm@1.1.27</p>
+<p id="footer">restart &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/root.html
@@ -21,7 +21,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This function is not useful programmatically.</p>
</div>
-<p id="footer">root &mdash; npm@1.1.27</p>
+<p id="footer">root &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/run-script.html
@@ -29,7 +29,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../api/test.html">test(3)</a></li><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/restart.html">restart(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
</div>
-<p id="footer">run-script &mdash; npm@1.1.27</p>
+<p id="footer">run-script &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/search.html
@@ -32,7 +32,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
and doesn't try to read your mind (it doesn't do any verb tense matching or the
like).</p>
</div>
-<p id="footer">search &mdash; npm@1.1.27</p>
+<p id="footer">search &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/shrinkwrap.html
@@ -26,7 +26,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Finally, 'callback' is a function that will be called when the shrinkwrap has
been saved.</p>
</div>
-<p id="footer">shrinkwrap &mdash; npm@1.1.27</p>
+<p id="footer">shrinkwrap &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/start.html
@@ -19,7 +19,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm can run tests on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
-<p id="footer">start &mdash; npm@1.1.27</p>
+<p id="footer">start &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/stop.html
@@ -19,7 +19,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm can run stop on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
-<p id="footer">stop &mdash; npm@1.1.27</p>
+<p id="footer">stop &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/submodule.html
@@ -33,7 +33,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li>npm help json</li><li>git help submodule</li></ul>
</div>
-<p id="footer">submodule &mdash; npm@1.1.27</p>
+<p id="footer">submodule &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/tag.html
@@ -29,7 +29,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
used. For more information about how to set this config, check
<code>man 3 npm-config</code> for programmatic usage or <code>man npm-config</code> for cli usage.</p>
</div>
-<p id="footer">tag &mdash; npm@1.1.27</p>
+<p id="footer">tag &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/test.html
@@ -22,7 +22,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm can run tests on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
-<p id="footer">test &mdash; npm@1.1.27</p>
+<p id="footer">test &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/uninstall.html
@@ -22,7 +22,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Finally, 'callback' is a function that will be called when all packages have been
uninstalled or when an error has been encountered.</p>
</div>
-<p id="footer">uninstall &mdash; npm@1.1.27</p>
+<p id="footer">uninstall &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/unpublish.html
@@ -26,7 +26,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>If no version is specified, or if all versions are removed then
the root package entry is removed from the registry entirely.</p>
</div>
-<p id="footer">unpublish &mdash; npm@1.1.27</p>
+<p id="footer">unpublish &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/update.html
@@ -18,7 +18,7 @@ <h2 id="SYNOPSIS">SYNOPSIS</h2>
<p>The 'packages' argument is an array of packages to update. The 'callback' parameter will be called when done or when an error occurs.</p>
</div>
-<p id="footer">update &mdash; npm@1.1.27</p>
+<p id="footer">update &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/version.html
@@ -24,7 +24,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
parameter. The difference, however, is this function will fail if it does
not have exactly one element. The only element should be a version number.</p>
</div>
-<p id="footer">version &mdash; npm@1.1.27</p>
+<p id="footer">version &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/view.html
@@ -99,7 +99,7 @@ <h2 id="RETURN-VALUE">RETURN VALUE</h2>
<p>corresponding to the list of fields selected.</p>
</div>
-<p id="footer">view &mdash; npm@1.1.27</p>
+<p id="footer">view &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/whoami.html
@@ -21,7 +21,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This function is not useful programmatically</p>
</div>
-<p id="footer">whoami &mdash; npm@1.1.27</p>
+<p id="footer">whoami &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/README.html
@@ -261,7 +261,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
-<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.27</p>
+<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/adduser.html
@@ -39,7 +39,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li></ul>
</div>
-<p id="footer">adduser &mdash; npm@1.1.27</p>
+<p id="footer">adduser &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/bin.html
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">bin &mdash; npm@1.1.27</p>
+<p id="footer">bin &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/bugs.html
@@ -36,7 +36,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/docs.html">docs(1)</a></li><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">bugs &mdash; npm@1.1.27</p>
+<p id="footer">bugs &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/build.html
@@ -25,7 +25,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">build &mdash; npm@1.1.27</p>
+<p id="footer">build &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/bundle.html
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">bundle &mdash; npm@1.1.27</p>
+<p id="footer">bundle &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/cache.html
@@ -66,7 +66,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li></ul>
</div>
-<p id="footer">cache &mdash; npm@1.1.27</p>
+<p id="footer">cache &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/changelog.html
@@ -65,7 +65,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li></ul>
</div>
-<p id="footer">changelog &mdash; npm@1.1.27</p>
+<p id="footer">changelog &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/coding-style.html
@@ -180,7 +180,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
-<p id="footer">coding-style &mdash; npm@1.1.27</p>
+<p id="footer">coding-style &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/completion.html
@@ -33,7 +33,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
-<p id="footer">completion &mdash; npm@1.1.27</p>
+<p id="footer">completion &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
59 deps/npm/html/doc/config.html
@@ -105,7 +105,7 @@ <h2 id="Shorthands-and-Other-CLI-Niceties">Shorthands and Other CLI Niceties</h2
<p>The following shorthands are parsed on the command-line:</p>
-<ul><li><code>-v</code>: <code>--version</code></li><li><code>-h</code>, <code>-?</code>, <code>--help</code>, <code>-H</code>: <code>--usage</code></li><li><code>-s</code>, <code>--silent</code>: <code>--loglevel silent</code></li><li><code>-q</code>, <code>--quiet</code>: <code>--loglevel warn</code></li><li><code>-d</code>: <code>--loglevel info</code></li><li><code>-dd</code>, <code>--verbose</code>: <code>--loglevel verbose</code></li><li><code>-ddd</code>: <code>--loglevel silly</code></li><li><code>-g</code>: <code>--global</code></li><li><code>-l</code>: <code>--long</code></li><li><code>-m</code>: <code>--message</code></li><li><code>-p</code>, <code>--porcelain</code>: <code>--parseable</code></li><li><code>-reg</code>: <code>--registry</code></li><li><code>-v</code>: <code>--version</code></li><li><code>-f</code>: <code>--force</code></li><li><code>-l</code>: <code>--long</code></li><li><code>-desc</code>: <code>--description</code></li><li><code>-S</code>: <code>--save</code></li><li><code>-D</code>: <code>--save-dev</code></li><li><code>-O</code>: <code>--save-optional</code></li><li><code>-y</code>: <code>--yes</code></li><li><code>-n</code>: <code>--yes false</code></li><li><code>ll</code> and <code>la</code> commands: <code>ls --long</code></li></ul>
+<ul><li><code>-v</code>: <code>--version</code></li><li><code>-h</code>, <code>-?</code>, <code>--help</code>, <code>-H</code>: <code>--usage</code></li><li><code>-s</code>, <code>--silent</code>: <code>--loglevel silent</code></li><li><code>-q</code>, <code>--quiet</code>: <code>--loglevel warn</code></li><li><code>-d</code>: <code>--loglevel info</code></li><li><code>-dd</code>, <code>--verbose</code>: <code>--loglevel verbose</code></li><li><code>-ddd</code>: <code>--loglevel silly</code></li><li><code>-g</code>: <code>--global</code></li><li><code>-l</code>: <code>--long</code></li><li><code>-m</code>: <code>--message</code></li><li><code>-p</code>, <code>--porcelain</code>: <code>--parseable</code></li><li><code>-reg</code>: <code>--registry</code></li><li><code>-v</code>: <code>--version</code></li><li><code>-f</code>: <code>--force</code></li><li><code>-l</code>: <code>--long</code></li><li><code>-desc</code>: <code>--description</code></li><li><code>-S</code>: <code>--save</code></li><li><code>-D</code>: <code>--save-dev</code></li><li><code>-O</code>: <code>--save-optional</code></li><li><code>-B</code>: <code>--save-bundle</code></li><li><code>-y</code>: <code>--yes</code></li><li><code>-n</code>: <code>--yes false</code></li><li><code>ll</code> and <code>la</code> commands: <code>ls --long</code></li></ul>
<p>If the specified configuration param resolves unambiguously to a known
configuration parameter, then it is expanded to that configuration
@@ -152,30 +152,6 @@ <h3 id="always-auth">always-auth</h3>
<p>Force npm to always require authentication when accessing the registry,
even for <code>GET</code> requests.</p>
-<h3 id="bin-publish">bin-publish</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>If set to true, then binary packages will be created on publish.</p>
-
-<p>This is the way to opt into the "bindist" behavior described below.</p>
-
-<h3 id="bindist">bindist</h3>
-
-<ul><li>Default: Unstable node versions, <code>null</code>, otherwise
-<code>"&lt;node version&gt;-&lt;platform&gt;-&lt;os release&gt;"</code></li><li>Type: String or <code>null</code></li></ul>
-
-<p>Experimental: on stable versions of node, binary distributions will be
-created with this tag. If a user then installs that package, and their
-<code>bindist</code> tag is found in the list of binary distributions, they will
-get that prebuilt version.</p>
-
-<p>Pre-build node packages have their preinstall, install, and postinstall
-scripts stripped (since they are run prior to publishing), and do not
-have their <code>build</code> directories automatically ignored.</p>
-
-<p>It's yet to be seen if this is a good idea.</p>
-
<h3 id="browser">browser</h3>
<ul><li>Default: OS X: <code>"open"</code>, others: <code>"google-chrome"</code></li><li>Type: String</li></ul>
@@ -400,6 +376,17 @@ <h3 id="loglevel">loglevel</h3>
<p>Any logs of a higher level than the setting are shown.
The default is "http", which shows http, warn, and error output.</p>
+<h3 id="logstream">logstream</h3>
+
+<ul><li>Default: process.stderr</li><li>Type: Stream</li></ul>
+
+<p>This is the stream that is passed to the
+<a href="https://github.com/isaacs/npmlog">npmlog</a> module at run time.</p>
+
+<p>It cannot be set from the command line, but if you are using npm
+programmatically, you may wish to send logs to somewhere other than
+stderr.</p>
+
<h3 id="long">long</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
@@ -504,14 +491,31 @@ <h3 id="save">save</h3>
<p>Save installed packages to a package.json file as dependencies.</p>
+<p>When used with the <code>npm rm</code> command, it removes it from the dependencies
+hash.</p>
+
<p>Only works if there is already a package.json file present.</p>
+<h3 id="save-bundle">save-bundle</h3>
+
+<ul><li>Default: false</li><li>Type: Boolean</li></ul>
+
+<p>If a package would be saved at install time by the use of <code>--save</code>,
+<code>--save-dev</code>, or <code>--save-optional</code>, then also put it in the
+<code>bundleDependencies</code> list.</p>
+
+<p>When used with the <code>npm rm</code> command, it removes it from the
+bundledDependencies list.</p>
+
<h3 id="save-dev">save-dev</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Save installed packages to a package.json file as devDependencies.</p>
+<p>When used with the <code>npm rm</code> command, it removes it from the devDependencies
+hash.</p>
+
<p>Only works if there is already a package.json file present.</p>
<h3 id="save-optional">save-optional</h3>
@@ -520,6 +524,9 @@ <h3 id="save-optional">save-optional</h3>
<p>Save installed packages to a package.json file as optionalDependencies.</p>
+<p>When used with the <code>npm rm</code> command, it removes it from the devDependencies
+hash.</p>
+
<p>Only works if there is already a package.json file present.</p>
<h3 id="searchopts">searchopts</h3>
@@ -674,7 +681,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
-<p id="footer">config &mdash; npm@1.1.27</p>
+<p id="footer">config &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/deprecate.html
@@ -29,7 +29,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">deprecate &mdash; npm@1.1.27</p>
+<p id="footer">deprecate &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/developers.html
@@ -160,7 +160,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">developers &mdash; npm@1.1.27</p>
+<p id="footer">developers &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/disputes.html
@@ -80,7 +80,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li></ul>
</div>
-<p id="footer">disputes &mdash; npm@1.1.27</p>
+<p id="footer">disputes &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/docs.html
@@ -37,7 +37,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">docs &mdash; npm@1.1.27</p>
+<p id="footer">docs &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/edit.html
@@ -37,7 +37,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/explore.html">explore(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">edit &mdash; npm@1.1.27</p>
+<p id="footer">edit &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/explore.html
@@ -40,7 +40,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/submodule.html">submodule(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/edit.html">edit(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">explore &mdash; npm@1.1.27</p>
+<p id="footer">explore &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/faq.html
@@ -241,7 +241,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
</div>
-<p id="footer">faq &mdash; npm@1.1.27</p>
+<p id="footer">faq &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/folders.html
@@ -205,7 +205,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li></ul>
</div>
-<p id="footer">folders &mdash; npm@1.1.27</p>
+<p id="footer">folders &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/help-search.html
@@ -38,7 +38,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li></ul>
</div>
-<p id="footer">help-search &mdash; npm@1.1.27</p>
+<p id="footer">help-search &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/help.html
@@ -36,7 +36,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/help-search.html">help-search(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
-<p id="footer">help &mdash; npm@1.1.27</p>
+<p id="footer">help &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/index.html
@@ -384,7 +384,7 @@ <h2 id="npm-whoami-3"><a href="../api/whoami.html">whoami(3)</a></h2>
<p> Display npm username</p>
</div>
-<p id="footer">index &mdash; npm@1.1.27</p>
+<p id="footer">index &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/init.html
@@ -29,7 +29,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="https://github.com/isaacs/init-package-json">https://github.com/isaacs/init-package-json</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/version.html">version(1)</a></li></ul>
</div>
-<p id="footer">init &mdash; npm@1.1.27</p>
+<p id="footer">init &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/install.html
@@ -133,7 +133,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/shrinkwrap.html">shrinkwrap(1)</a></li></ul>
</div>
-<p id="footer">install &mdash; npm@1.1.27</p>
+<p id="footer">install &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/json.html
@@ -509,7 +509,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/semver.html">semver(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/version.html">version(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/rm.html">rm(1)</a></li></ul>
</div>
-<p id="footer">json &mdash; npm@1.1.27</p>
+<p id="footer">json &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/link.html
@@ -58,7 +58,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">link &mdash; npm@1.1.27</p>
+<p id="footer">link &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/list.html
@@ -58,7 +58,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/update.html">update(1)</a></li></ul>
</div>
-<p id="footer">list &mdash; npm@1.1.27</p>
+<p id="footer">list &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
4 deps/npm/html/doc/npm.html
@@ -14,7 +14,7 @@ <h2 id="SYNOPSIS">SYNOPSIS</h2>
<h2 id="VERSION">VERSION</h2>
-<p>1.1.27</p>
+<p>1.1.29</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@@ -135,7 +135,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/index.html">index(1)</a></li><li><a href="../api/npm.html">npm(3)</a></li></ul>
</div>
-<p id="footer">npm &mdash; npm@1.1.27</p>
+<p id="footer">npm &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/outdated.html
@@ -21,7 +21,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
</div>
-<p id="footer">outdated &mdash; npm@1.1.27</p>
+<p id="footer">outdated &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/owner.html
@@ -34,7 +34,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/disputes.html">disputes(1)</a></li></ul>
</div>
-<p id="footer">owner &mdash; npm@1.1.27</p>
+<p id="footer">owner &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/pack.html
@@ -29,7 +29,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">pack &mdash; npm@1.1.27</p>
+<p id="footer">pack &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/prefix.html
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/bin.html">bin(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">prefix &mdash; npm@1.1.27</p>
+<p id="footer">prefix &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/prune.html
@@ -25,7 +25,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
-<p id="footer">prune &mdash; npm@1.1.27</p>
+<p id="footer">prune &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/publish.html
@@ -29,7 +29,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/deprecate.html">deprecate(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li></ul>
</div>
-<p id="footer">publish &mdash; npm@1.1.27</p>
+<p id="footer">publish &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/rebuild.html
@@ -25,7 +25,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">rebuild &mdash; npm@1.1.27</p>
+<p id="footer">rebuild &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/registry.html
@@ -97,7 +97,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/disputes.html">disputes(1)</a></li></ul>
</div>
-<p id="footer">registry &mdash; npm@1.1.27</p>
+<p id="footer">registry &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/removing-npm.html
@@ -58,7 +58,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/README.html">README</a></li><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li></ul>
</div>
-<p id="footer">removing-npm &mdash; npm@1.1.27</p>
+<p id="footer">removing-npm &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/restart.html
@@ -24,7 +24,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">restart &mdash; npm@1.1.27</p>
+<p id="footer">restart &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/root.html
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/bin.html">bin(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">root &mdash; npm@1.1.27</p>
+<p id="footer">root &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/run-script.html
@@ -23,7 +23,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">run-script &mdash; npm@1.1.27</p>
+<p id="footer">run-script &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/scripts.html
@@ -177,7 +177,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">scripts &mdash; npm@1.1.27</p>
+<p id="footer">scripts &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/search.html
@@ -24,7 +24,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/view.html">view(1)</a></li></ul>
</div>
-<p id="footer">search &mdash; npm@1.1.27</p>
+<p id="footer">search &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/semver.html
@@ -104,7 +104,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">semver &mdash; npm@1.1.27</p>
+<p id="footer">semver &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/shrinkwrap.html
@@ -169,7 +169,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
-<p id="footer">shrinkwrap &mdash; npm@1.1.27</p>
+<p id="footer">shrinkwrap &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/star.html
@@ -26,7 +26,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
</div>
-<p id="footer">star &mdash; npm@1.1.27</p>
+<p id="footer">star &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/start.html
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">start &mdash; npm@1.1.27</p>
+<p id="footer">start &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/stop.html
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li></ul>
</div>
-<p id="footer">stop &mdash; npm@1.1.27</p>
+<p id="footer">stop &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/submodule.html
@@ -33,7 +33,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/json.html">json(1)</a></li><li>git help submodule</li></ul>
</div>
-<p id="footer">submodule &mdash; npm@1.1.27</p>
+<p id="footer">submodule &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/tag.html
@@ -21,7 +21,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">tag &mdash; npm@1.1.27</p>
+<p id="footer">tag &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/test.html
@@ -23,7 +23,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">test &mdash; npm@1.1.27</p>
+<p id="footer">test &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/uninstall.html
@@ -22,7 +22,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">uninstall &mdash; npm@1.1.27</p>
+<p id="footer">uninstall &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/unpublish.html
@@ -34,7 +34,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/deprecate.html">deprecate(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li></ul>
</div>
-<p id="footer">unpublish &mdash; npm@1.1.27</p>
+<p id="footer">unpublish &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/update.html
@@ -23,7 +23,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
-<p id="footer">update &mdash; npm@1.1.27</p>
+<p id="footer">update &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/version.html
@@ -31,7 +31,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/semver.html">semver(1)</a></li></ul>
</div>
-<p id="footer">version &mdash; npm@1.1.27</p>
+<p id="footer">version &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/view.html
@@ -88,7 +88,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/search.html">search(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/docs.html">docs(1)</a></li></ul>
</div>
-<p id="footer">view &mdash; npm@1.1.27</p>
+<p id="footer">view &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/whoami.html
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
</div>
-<p id="footer">whoami &mdash; npm@1.1.27</p>
+<p id="footer">whoami &mdash; npm@1.1.29</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
9 deps/npm/lib/cache.js
@@ -532,15 +532,6 @@ function addNameVersion (name, ver, data, cb) {
if (!dist) return cb(new Error("No dist in "+data._id+" package"))
- var bd = npm.config.get("bindist")
- , b = dist.bin && bd && dist.bin[bd]
- log.verbose("bin dist", [bd, dist])
- if (b && b.tarball && b.shasum) {
- log.info("prebuilt", data._id)
- log.verbose("prebuilt", data._id, b)
- dist = b
- }
-
if (!dist.tarball) return cb(new Error(
"No dist.tarball in " + data._id + " package"))
View
14 deps/npm/lib/install.js
@@ -239,6 +239,8 @@ function save (where, installed, tree, pretty, cb) {
return cb(null, installed, tree, pretty)
}
+ var saveBundle = npm.config.get('save-bundle')
+
// each item in the tree is a top-level thing that should be saved
// to the package.json file.
// The relevant tree shape is { <folder>: {what:<pkg>} }
@@ -276,10 +278,22 @@ function save (where, installed, tree, pretty, cb) {
: npm.config.get("save-dev") ? "devDependencies"
: "dependencies"
+ if (saveBundle) {
+ var bundle = data.bundleDependencies || data.bundledDependencies
+ delete data.bundledDependencies
+ if (!Array.isArray(bundle)) bundle = []
+ data.bundleDependencies = bundle
+ }
+
data[deps] = data[deps] || {}
Object.keys(things).forEach(function (t) {
data[deps][t] = things[t]
+ if (saveBundle) {
+ var i = bundle.indexOf(t)
+ if (i === -1) bundle.push(t)
+ }
})
+
data = JSON.stringify(data, null, 2) + "\n"
fs.writeFile(saveTarget, data, function (er) {
cb(er, installed, tree, pretty)
View
1  deps/npm/lib/npm.js
@@ -263,6 +263,7 @@ function load (npm, conf, cb) {
ini.resolveConfigs(conf, function (er) {
log.level = npm.config.get("loglevel")
log.heading = "npm"
+ log.stream = npm.config.get("logstream")
switch (npm.config.get("color")) {
case "always": log.enableColor(); break
case false: log.disableColor(); break
View
67 deps/npm/lib/uninstall.js
@@ -39,6 +39,15 @@ function uninstall (args, cb) {
}
function uninstall_ (args, nm, cb) {
+ // if we've been asked to --save or --save-dev or --save-optional,
+ // then also remove it from the associated dependencies hash.
+ var s = npm.config.get('save')
+ , d = npm.config.get('save-dev')
+ , o = npm.config.get('save-optional')
+ if (s || d || o) {
+ cb = saver(args, nm, cb)
+ }
+
asyncMap(args, function (arg, cb) {
// uninstall .. should not delete /usr/local/lib/node_modules/..
var p = path.join(path.resolve(nm), path.join("/", arg))
@@ -58,3 +67,61 @@ function uninstall_ (args, nm, cb) {
asyncMap(folders, npm.commands.unbuild, cb)
})
}
+
+function saver (args, nm, cb_) {
+ return cb
+ function cb (er, data) {
+ var s = npm.config.get('save')
+ , d = npm.config.get('save-dev')
+ , o = npm.config.get('save-optional')
+ if (er || !(s || d || o)) return cb_(er, data)
+ var pj = path.resolve(nm, '..', 'package.json')
+ // don't use readJson here, because we don't want all the defaults
+ // filled in, for mans and other bs.
+ fs.readFile(pj, 'utf8', function (er, json) {
+ try {
+ var pkg = JSON.parse(json)
+ } catch (_) {}
+ if (!pkg) return cb_(null, data)
+
+ var bundle
+ if (npm.config.get('save-bundle')) {
+ var bundle = pkg.bundleDependencies || pkg.bundledDependencies
+ if (!Array.isArray(bundle)) bundle = undefined
+ }
+
+ var changed = false
+ args.forEach(function (a) {
+ ; [ [s, 'dependencies']
+ , [o, 'optionalDependencies']
+ , [d, 'devDependencies'] ].forEach(function (f) {
+ var flag = f[0]
+ , field = f[1]
+ if (!flag || !pkg[field] || !pkg[field].hasOwnProperty(a)) return
+ changed = true
+
+ if (bundle) {
+ var i = bundle.indexOf(a)
+ if (i !== -1) bundle.splice(i, 1)
+ }
+
+ delete pkg[field][a]
+ })
+ })
+ if (!changed) return cb_(null, data)
+
+ if (bundle) {
+ delete pkg.bundledDependencies
+ if (bundle.length) {
+ pkg.bundleDependencies = bundle
+ } else {
+ delete pkg.bundleDependencies
+ }
+ }
+
+ fs.writeFile(pj, JSON.stringify(pkg, null, 2) + "\n", function (er) {
+ return cb_(er, data)
+ })
+ })
+ }
+}
View
30 deps/npm/lib/utils/cmd-shim.js
@@ -67,15 +67,15 @@ function writeShim_ (from, to, prog, args, cb) {
args = args || ""
if (!prog) {
prog = "\"%~dp0\\" + target + "\""
- shProg = "\"`dirname \"$0\"`/" + shTarget + "\""
+ shProg = "\"$basedir/" + shTarget + "\""
args = ""
target = ""
shTarget = ""
} else {
longProg = "\"%~dp0\\" + prog + ".exe\""
- shLongProg = "\"`dirname \"$0\"`/" + prog + "\""
+ shLongProg = "\"$basedir/" + prog + "\""
target = "\"%~dp0\\" + target + "\""
- shTarget = "\"`dirname \"$0\"`/" + shTarget + "\""
+ shTarget = "\"$basedir/" + shTarget + "\""
}
// @IF EXIST "%~dp0\node.exe" (
@@ -97,15 +97,33 @@ function writeShim_ (from, to, prog, args, cb) {
cmd = ":: Created by npm, please don't edit manually.\r\n" + cmd
// #!/bin/sh
- // if [ -x "`dirname "$0"`/node.exe" ]; then
- // "`dirname "$0"`/node.exe" "`dirname "$0"`/node_modules/npm/bin/npm-cli.js" "$@"
+ // basedir=`dirname "$0"`
+ //
+ // case `uname` in
+ // *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+ // esac
+ //
+ // if [ -x "$basedir/node.exe" ]; then
+ // "$basedir/node.exe" "$basedir/node_modules/npm/bin/npm-cli.js" "$@"
+ // ret=$?
// else
- // node "`dirname "$0"`/node_modules/npm/bin/npm-cli.js" "$@"
+ // node "$basedir/node_modules/npm/bin/npm-cli.js" "$@"
+ // ret=$?
// fi
+ // exit $ret
+
var sh = "#!/bin/sh\n"
if (shLongProg) {
sh = sh
+ + "basedir=`dirname \"$0\"`\n"
+ + "\n"
+ + "case `uname` in\n"
+ + " *CYGWIN*) basedir=`cygpath -w \"$basedir\"`;;\n"
+ + "esac\n"
+ + "\n"
+
+ sh = sh
+ "if [ -x "+shLongProg+" ]; then\n"
+ " " + shLongProg + " " + args + " " + shTarget + " \"$@\"\n"
+ " ret=$?\n"
View
58 deps/npm/lib/utils/config-defs.js
@@ -6,10 +6,10 @@ var path = require("path")
, Stream = require("stream").Stream
, semver = require("semver")
, stableFamily = semver.parse(process.version)
- , os = require("os")
, nopt = require("nopt")
, log = require("npmlog")
, npm = require("../npm.js")
+ , osenv = require("osenv")
function Octal () {}
function validateOctal (data, k, val) {
@@ -28,8 +28,14 @@ function validateSemver (data, k, val) {
data[k] = semver.valid(val)
}
+function validateStream (data, k, val) {
+ if (!(val instanceof Stream)) return false
+ data[k] = val
+}
+
nopt.typeDefs.semver = { type: semver, validate: validateSemver }
nopt.typeDefs.Octal = { type: Octal, validate: validateOctal }
+nopt.typeDefs.Stream = { type: Stream, validate: validateStream }
nopt.invalidHandler = function (k, val, type, data) {
log.warn("invalid config", k + "=" + JSON.stringify(val))
@@ -52,6 +58,9 @@ nopt.invalidHandler = function (k, val, type, data) {
case Number:
log.warn("invalid config", "Must be a numeric value")
break
+ case Stream:
+ log.warn("invalid config", "Must be an instance of the Stream class")
+ break
}
}
@@ -60,16 +69,8 @@ else stableFamily = stableFamily[1] + "." + stableFamily[2]
var defaults
-var temp = process.env.TMPDIR
- || process.env.TMP
- || process.env.TEMP
- || ( process.platform === "win32"
- ? "c:\\windows\\temp"
- : "/tmp" )
-
-var home = ( process.platform === "win32"
- ? process.env.USERPROFILE
- : process.env.HOME )
+var temp = osenv.tmpdir()
+var home = osenv.home()
if (home) process.env.HOME = home
else home = temp
@@ -82,35 +83,20 @@ Object.defineProperty(exports, "defaults", {get: function () {
globalPrefix = process.env.PREFIX
} else if (process.platform === "win32") {
// c:\node\node.exe --> prefix=c:\node\
- globalPrefix = path.join(process.execPath, "..")
+ globalPrefix = path.dirname(process.execPath)
} else {
// /usr/local/bin/node --> prefix=/usr/local
- globalPrefix = path.join(process.execPath, "..", "..")
+ globalPrefix = path.dirname(path.dirname(process.execPath))
// destdir only is respected on Unix
if (process.env.DESTDIR) {
- globalPrefix = process.env.DESTDIR + "/" + globalPrefix
+ globalPrefix = path.join(process.env.DESTDIR, globalPrefix)
}
}
return defaults =
{ "always-auth" : false
- // Disable bindist publishing for now. Too problematic.
- // Revisit when we have a less crappy approach, or just make
- // bindist be a thing that only dedicated build-farms will enable.
- , "bin-publish" : false
-
- , bindist : stableFamily
- && ( stableFamily + "-"
- + "ares" + process.versions.ares + "-"
- + "ev" + process.versions.ev + "-"
- + "openssl" + process.versions.openssl + "-"
- + "v8" + process.versions.v8 + "-"
- + process.platform + "-"
- + (process.arch ? process.arch + "-" : "")
- + os.release() )
-
// are there others?
, browser : process.platform === "darwin" ? "open"
: process.platform === "win32" ? "start"
@@ -145,8 +131,7 @@ Object.defineProperty(exports, "defaults", {get: function () {
, depth: Infinity
, description : true
, dev : false
- , editor : process.env.EDITOR ||
- ( process.platform === "win32" ? "notepad" : "vi" )
+ , editor : osenv.editor()