npm: Upgrade to 1.1.43
authorisaacs <i@izs.me>
Tue, 17 Jul 2012 18:37:39 +0000 (11:37 -0700)
committerisaacs <i@izs.me>
Tue, 17 Jul 2012 18:37:39 +0000 (11:37 -0700)
182 files changed:
deps/npm/.gitignore [deleted file]
deps/npm/AUTHORS
deps/npm/doc/cli/config.md
deps/npm/html/api/bin.html
deps/npm/html/api/bugs.html
deps/npm/html/api/commands.html
deps/npm/html/api/config.html
deps/npm/html/api/deprecate.html
deps/npm/html/api/docs.html
deps/npm/html/api/edit.html
deps/npm/html/api/explore.html
deps/npm/html/api/help-search.html
deps/npm/html/api/init.html
deps/npm/html/api/install.html
deps/npm/html/api/link.html
deps/npm/html/api/load.html
deps/npm/html/api/ls.html
deps/npm/html/api/npm.html
deps/npm/html/api/outdated.html
deps/npm/html/api/owner.html
deps/npm/html/api/pack.html
deps/npm/html/api/prefix.html
deps/npm/html/api/prune.html
deps/npm/html/api/publish.html
deps/npm/html/api/rebuild.html
deps/npm/html/api/restart.html
deps/npm/html/api/root.html
deps/npm/html/api/run-script.html
deps/npm/html/api/search.html
deps/npm/html/api/shrinkwrap.html
deps/npm/html/api/start.html
deps/npm/html/api/stop.html
deps/npm/html/api/submodule.html
deps/npm/html/api/tag.html
deps/npm/html/api/test.html
deps/npm/html/api/uninstall.html
deps/npm/html/api/unpublish.html
deps/npm/html/api/update.html
deps/npm/html/api/version.html
deps/npm/html/api/view.html
deps/npm/html/api/whoami.html
deps/npm/html/doc/README.html
deps/npm/html/doc/adduser.html
deps/npm/html/doc/bin.html
deps/npm/html/doc/bugs.html
deps/npm/html/doc/build.html
deps/npm/html/doc/bundle.html
deps/npm/html/doc/cache.html
deps/npm/html/doc/changelog.html
deps/npm/html/doc/coding-style.html
deps/npm/html/doc/completion.html
deps/npm/html/doc/config.html
deps/npm/html/doc/deprecate.html
deps/npm/html/doc/developers.html
deps/npm/html/doc/disputes.html
deps/npm/html/doc/docs.html
deps/npm/html/doc/edit.html
deps/npm/html/doc/explore.html
deps/npm/html/doc/faq.html
deps/npm/html/doc/folders.html
deps/npm/html/doc/help-search.html
deps/npm/html/doc/help.html
deps/npm/html/doc/index.html
deps/npm/html/doc/init.html
deps/npm/html/doc/install.html
deps/npm/html/doc/json.html
deps/npm/html/doc/link.html
deps/npm/html/doc/list.html
deps/npm/html/doc/npm.html
deps/npm/html/doc/outdated.html
deps/npm/html/doc/owner.html
deps/npm/html/doc/pack.html
deps/npm/html/doc/prefix.html
deps/npm/html/doc/prune.html
deps/npm/html/doc/publish.html
deps/npm/html/doc/rebuild.html
deps/npm/html/doc/registry.html
deps/npm/html/doc/removing-npm.html
deps/npm/html/doc/restart.html
deps/npm/html/doc/root.html
deps/npm/html/doc/run-script.html
deps/npm/html/doc/scripts.html
deps/npm/html/doc/search.html
deps/npm/html/doc/semver.html
deps/npm/html/doc/shrinkwrap.html
deps/npm/html/doc/star.html
deps/npm/html/doc/start.html
deps/npm/html/doc/stop.html
deps/npm/html/doc/submodule.html
deps/npm/html/doc/tag.html
deps/npm/html/doc/test.html
deps/npm/html/doc/uninstall.html
deps/npm/html/doc/unpublish.html
deps/npm/html/doc/update.html
deps/npm/html/doc/version.html
deps/npm/html/doc/view.html
deps/npm/html/doc/whoami.html
deps/npm/html/n-64.png [deleted file]
deps/npm/html/n-large.png [deleted file]
deps/npm/html/npm-16.png [deleted file]
deps/npm/html/npm-256-square.png [deleted file]
deps/npm/html/npm-256w.png [deleted file]
deps/npm/html/npm-64-square.png [deleted file]
deps/npm/html/npm-fin.png [deleted file]
deps/npm/html/npm-large-trans.png [deleted file]
deps/npm/html/npm-large.png [deleted file]
deps/npm/html/npm-logo-white-trans.png [deleted file]
deps/npm/html/npm.png [deleted file]
deps/npm/lib/bin.js
deps/npm/lib/build.js
deps/npm/lib/cache.js
deps/npm/lib/completion.js
deps/npm/lib/config.js
deps/npm/lib/help-search.js
deps/npm/lib/help.js
deps/npm/lib/install.js
deps/npm/lib/link.js
deps/npm/lib/ls.js
deps/npm/lib/npm.js
deps/npm/lib/outdated.js
deps/npm/lib/owner.js
deps/npm/lib/pack.js
deps/npm/lib/prefix.js
deps/npm/lib/publish.js
deps/npm/lib/rebuild.js
deps/npm/lib/root.js
deps/npm/lib/search.js
deps/npm/lib/shrinkwrap.js
deps/npm/lib/star.js
deps/npm/lib/submodule.js
deps/npm/lib/unpublish.js
deps/npm/lib/utils/config-defs.js
deps/npm/lib/utils/lifecycle.js
deps/npm/lib/utils/output.js [deleted file]
deps/npm/lib/view.js
deps/npm/lib/whoami.js
deps/npm/man/man1/config.1
deps/npm/man/man1/list.1
deps/npm/man/man1/npm.1
deps/npm/man/man3/npm.3
deps/npm/node_modules/block-stream/LICENCE [new file with mode: 0644]
deps/npm/node_modules/block-stream/bench/block-stream-pause.js [new file with mode: 0644]
deps/npm/node_modules/block-stream/bench/block-stream.js [new file with mode: 0644]
deps/npm/node_modules/block-stream/bench/dropper-pause.js [new file with mode: 0644]
deps/npm/node_modules/block-stream/bench/dropper.js [new file with mode: 0644]
deps/npm/node_modules/block-stream/package.json
deps/npm/node_modules/block-stream/test/basic.js [new file with mode: 0644]
deps/npm/node_modules/block-stream/test/nopad-thorough.js [new file with mode: 0644]
deps/npm/node_modules/block-stream/test/nopad.js [new file with mode: 0644]
deps/npm/node_modules/block-stream/test/pause-resume.js [new file with mode: 0644]
deps/npm/node_modules/block-stream/test/thorough.js [new file with mode: 0644]
deps/npm/node_modules/block-stream/test/two-stream.js [new file with mode: 0644]
deps/npm/node_modules/npm-registry-client/lib/request.js
deps/npm/node_modules/npm-registry-client/package.json
deps/npm/node_modules/slide/nodejs-controlling-flow.pdf [deleted file]
deps/npm/package.json
deps/npm/test/packages/npm-test-array-bin/README [new file with mode: 0644]
deps/npm/test/packages/npm-test-blerg/README [new file with mode: 0644]
deps/npm/test/packages/npm-test-bundled-git/README [new file with mode: 0644]
deps/npm/test/packages/npm-test-dir-bin/README [new file with mode: 0644]
deps/npm/test/packages/npm-test-env-reader/README [new file with mode: 0644]
deps/npm/test/packages/npm-test-files/ignore3 [deleted file]
deps/npm/test/packages/npm-test-files/ignoredir1/a [deleted file]
deps/npm/test/packages/npm-test-files/ignoredir2/a [deleted file]
deps/npm/test/packages/npm-test-files/sub/ignore1 [deleted file]
deps/npm/test/packages/npm-test-files/sub/ignore3 [deleted file]
deps/npm/test/packages/npm-test-ignore-nested-nm/README [new file with mode: 0644]
deps/npm/test/packages/npm-test-ignore/README [new file with mode: 0644]
deps/npm/test/packages/npm-test-ignore/ignore3 [deleted file]
deps/npm/test/packages/npm-test-ignore/ignoredir1/a [deleted file]
deps/npm/test/packages/npm-test-ignore/ignoredir2/a [deleted file]
deps/npm/test/packages/npm-test-ignore/sub/ignore1 [deleted file]
deps/npm/test/packages/npm-test-ignore/sub/ignore3 [deleted file]
deps/npm/test/packages/npm-test-ignore/test.sh
deps/npm/test/packages/npm-test-missing-bindir/README [new file with mode: 0644]
deps/npm/test/packages/npm-test-optional-deps/README [new file with mode: 0644]
deps/npm/test/packages/npm-test-platform-all/README [new file with mode: 0644]
deps/npm/test/packages/npm-test-platform/README [new file with mode: 0644]
deps/npm/test/packages/npm-test-private/README [new file with mode: 0644]
deps/npm/test/packages/npm-test-shrinkwrap/README [new file with mode: 0644]
deps/npm/test/packages/npm-test-test-package/README [new file with mode: 0644]
deps/npm/test/packages/npm-test-url-dep/README [new file with mode: 0644]

diff --git a/deps/npm/.gitignore b/deps/npm/.gitignore
deleted file mode 100644 (file)
index 842fca9..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-*.swp
-npm-debug.log
-/test/bin
-/test/output.log
-/test/*/*/node_modules
-/test/packages/npm-test-depends-on-spark/which-spark.log
-/test/packages/test-package/random-data.txt
-/test/root
-/node_modules/ronn
-/node_modules/tap
-/node_modules/.bin
-/html/api/
-/html/doc/
-/man/
-/doc/*/index.md
-/npmrc
-/release/
index b2adf34..32f5abc 100644 (file)
@@ -71,3 +71,4 @@ Domenic Denicola <domenic@domenicdenicola.com>
 James Halliday <mail@substack.net>
 Jeremy Cantrell <jmcantrell@gmail.com>
 Ribettes <patlogan29@gmail.com>
+Don Park <donpark@docuverse.com>
index 7bd46cd..feac9b3 100644 (file)
@@ -501,6 +501,9 @@ 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.
 
+If the `color` config is set to true, then this stream will receive
+colored output if it is a TTY.
+
 ### long
 
 * Default: false
index 1053a36..c206445 100644 (file)
@@ -19,7 +19,7 @@
 <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.41</p>
+<p id="footer">bin &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index ac67604..ede029d 100644 (file)
@@ -25,7 +25,7 @@ optional version number.</p>
 <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.41</p>
+<p id="footer">bugs &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index fcc5252..18a3bdc 100644 (file)
@@ -28,7 +28,7 @@ usage, or <code>man 3 npm-&lt;command&gt;</code> for programmatic usage.</p>
 
 <ul><li><a href="../doc/index.html">index(1)</a></li></ul>
 </div>
-<p id="footer">commands &mdash; npm@1.1.41</p>
+<p id="footer">commands &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index aecd3cc..6b3796c 100644 (file)
@@ -33,7 +33,7 @@ functions instead.</p>
 
 <ul><li><a href="../api/npm.html">npm(3)</a></li></ul>
 </div>
-<p id="footer">config &mdash; npm@1.1.41</p>
+<p id="footer">config &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index f6d2630..5b1b17c 100644 (file)
@@ -30,7 +30,7 @@ install the package.</p></li></ul>
 
 <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.41</p>
+<p id="footer">deprecate &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 9cae642..4ceba8b 100644 (file)
@@ -25,7 +25,7 @@ optional version number.</p>
 <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.41</p>
+<p id="footer">docs &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 271ab22..e005614 100644 (file)
@@ -30,7 +30,7 @@ to open. The package can optionally have a version number attached.</p>
 <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.41</p>
+<p id="footer">edit &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index c20f1a8..858b3a4 100644 (file)
@@ -24,7 +24,7 @@ sure to use <code>npm rebuild &lt;pkg&gt;</code> if you make any changes.</p>
 
 <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.41</p>
+<p id="footer">explore &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 69dfb97..6d624fc 100644 (file)
@@ -32,7 +32,7 @@ Name of the file that matched</li></ul>
 
 <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.41</p>
+<p id="footer">help-search &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 0e3402b..115d1c0 100644 (file)
@@ -35,7 +35,7 @@ then go ahead and use this programmatically.</p>
 
 <p><a href="../doc/json.html">json(1)</a></p>
 </div>
-<p id="footer">init &mdash; npm@1.1.41</p>
+<p id="footer">init &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 1d91817..8b58031 100644 (file)
@@ -25,7 +25,7 @@ the name of a package to be installed.</p>
 <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.41</p>
+<p id="footer">install &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 3d74392..02a2851 100644 (file)
@@ -39,7 +39,7 @@ npm.commands.link('redis', cb)  # link-install the package</code></pre>
 <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.41</p>
+<p id="footer">link &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 619c4b9..2b73c1f 100644 (file)
@@ -32,7 +32,7 @@ config object.</p>
 
 <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.41</p>
+<p id="footer">load &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index aec3a6a..a1e6825 100644 (file)
@@ -59,7 +59,7 @@ project.</p>
 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.41</p>
+<p id="footer">ls &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 238a621..e1eb17f 100644 (file)
@@ -24,7 +24,7 @@ npm.load(configObject, function (er, npm) {
 
 <h2 id="VERSION">VERSION</h2>
 
-<p>1.1.41</p>
+<p>1.1.43</p>
 
 <h2 id="DESCRIPTION">DESCRIPTION</h2>
 
@@ -91,7 +91,7 @@ method names.  Use the <code>npm.deref</code> method to find the real name.</p>
 
 <pre><code>var cmd = npm.deref("unp") // cmd === "unpublish"</code></pre>
 </div>
-<p id="footer">npm &mdash; npm@1.1.41</p>
+<p id="footer">npm &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 0533155..78afe87 100644 (file)
@@ -19,7 +19,7 @@ currently outdated.</p>
 
 <p>If the 'packages' parameter is left out, npm will check all packages.</p>
 </div>
-<p id="footer">outdated &mdash; npm@1.1.41</p>
+<p id="footer">outdated &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 792ed77..1b702c2 100644 (file)
@@ -34,7 +34,7 @@ that is not implemented at this time.</p>
 
 <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.41</p>
+<p id="footer">owner &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 5fd48be..68284df 100644 (file)
@@ -25,7 +25,7 @@ overwritten the second time.</p>
 
 <p>If no arguments are supplied, then npm packs the current package folder.</p>
 </div>
-<p id="footer">pack &mdash; npm@1.1.41</p>
+<p id="footer">pack &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index f6bd522..ecab612 100644 (file)
@@ -21,7 +21,7 @@
 
 <p>This function is not useful programmatically</p>
 </div>
-<p id="footer">prefix &mdash; npm@1.1.41</p>
+<p id="footer">prefix &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b219008..1b9286d 100644 (file)
@@ -23,7 +23,7 @@
 <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.41</p>
+<p id="footer">prune &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b96ce81..75610b7 100644 (file)
@@ -32,7 +32,7 @@ the registry.  Overwrites when the "force" environment variable is set.</p>
 
 <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.41</p>
+<p id="footer">publish &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index f84a95d..5687545 100644 (file)
@@ -22,7 +22,7 @@ the new binary. If no 'packages' parameter is specify, every package will be reb
 
 <p>See <code>npm help build</code></p>
 </div>
-<p id="footer">rebuild &mdash; npm@1.1.41</p>
+<p id="footer">rebuild &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 7da404d..805004b 100644 (file)
@@ -27,7 +27,7 @@ in the <code>packages</code> parameter.</p>
 
 <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.41</p>
+<p id="footer">restart &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 3c38de8..619053e 100644 (file)
@@ -21,7 +21,7 @@
 
 <p>This function is not useful programmatically.</p>
 </div>
-<p id="footer">root &mdash; npm@1.1.41</p>
+<p id="footer">root &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 53a65af..42f62f7 100644 (file)
@@ -29,7 +29,7 @@ assumed to be the command to run. All other elements are ignored.</p>
 
 <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.41</p>
+<p id="footer">run-script &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 76d13c2..0271279 100644 (file)
@@ -32,7 +32,7 @@ excluded term (the "searchexclude" config). The search is case insensitive
 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.41</p>
+<p id="footer">search &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b989e41..e4b2032 100644 (file)
@@ -26,7 +26,7 @@ but the shrinkwrap file will still be written.</p>
 <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.41</p>
+<p id="footer">shrinkwrap &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 8e4bae7..b4da32b 100644 (file)
@@ -19,7 +19,7 @@
 <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.41</p>
+<p id="footer">start &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index aab27f3..3ad666a 100644 (file)
@@ -19,7 +19,7 @@
 <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.41</p>
+<p id="footer">stop &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 2a0a6db..d16aefb 100644 (file)
@@ -33,7 +33,7 @@ dependencies into the submodule folder.</p>
 
 <ul><li>npm help json</li><li>git help submodule</li></ul>
 </div>
-<p id="footer">submodule &mdash; npm@1.1.41</p>
+<p id="footer">submodule &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index bfa536f..3331534 100644 (file)
@@ -29,7 +29,7 @@ parameter is missing or falsey (empty), the default froom the config will be
 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.41</p>
+<p id="footer">tag &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b922933..bd974af 100644 (file)
@@ -22,7 +22,7 @@ true.</p>
 <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.41</p>
+<p id="footer">test &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 03ca456..6063b9a 100644 (file)
@@ -22,7 +22,7 @@ the name of a package to be uninstalled.</p>
 <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.41</p>
+<p id="footer">uninstall &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index e5de916..82990e5 100644 (file)
@@ -26,7 +26,7 @@ is what is meant.</p>
 <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.41</p>
+<p id="footer">unpublish &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 0b2d8af..b10cd96 100644 (file)
@@ -18,7 +18,7 @@
 
 <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.41</p>
+<p id="footer">update &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index cadf2cf..4a25f9b 100644 (file)
@@ -24,7 +24,7 @@ fail if the repo is not clean.</p>
 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.41</p>
+<p id="footer">version &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index a5b00c4..e935546 100644 (file)
@@ -99,7 +99,7 @@ the field name.</p>
 
 <p>corresponding to the list of fields selected.</p>
 </div>
-<p id="footer">view &mdash; npm@1.1.41</p>
+<p id="footer">view &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 756f200..2014969 100644 (file)
@@ -21,7 +21,7 @@
 
 <p>This function is not useful programmatically</p>
 </div>
-<p id="footer">whoami &mdash; npm@1.1.41</p>
+<p id="footer">whoami &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 555fb35..2f65e6a 100644 (file)
@@ -261,7 +261,7 @@ will no doubt tell you to put the output in a gist or email.</p>
 
 <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.41</p>
+<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 92d177b..7528fef 100644 (file)
@@ -39,7 +39,7 @@ authorize on a new machine.</p>
 
 <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.41</p>
+<p id="footer">adduser &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index c803ed5..84f5e12 100644 (file)
@@ -20,7 +20,7 @@
 
 <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.41</p>
+<p id="footer">bin &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 0b3f390..6fc6d1f 100644 (file)
@@ -36,7 +36,7 @@ config param.</p>
 
 <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.41</p>
+<p id="footer">bugs &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b1ebb38..490159b 100644 (file)
@@ -25,7 +25,7 @@ A folder containing a <code>package.json</code> file in its root.</li></ul>
 
 <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.41</p>
+<p id="footer">build &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index bef8a62..7e46c47 100644 (file)
@@ -20,7 +20,7 @@ install packages into the local space.</p>
 
 <ul><li><a href="../doc/install.html">install(1)</a></li></ul>
 </div>
-<p id="footer">bundle &mdash; npm@1.1.41</p>
+<p id="footer">bundle &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 78f5a38..01f7ae8 100644 (file)
@@ -66,7 +66,7 @@ they do not make an HTTP request to the registry.</p>
 
 <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.41</p>
+<p id="footer">cache &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 6470a78..bc970dc 100644 (file)
@@ -65,7 +65,7 @@
 
 <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.41</p>
+<p id="footer">changelog &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index d033ccc..10e016e 100644 (file)
@@ -180,7 +180,7 @@ set to anything."</p>
 
 <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.41</p>
+<p id="footer">coding-style &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index bdc35b9..f14651e 100644 (file)
@@ -33,7 +33,7 @@ completions based on the arguments.</p>
 
 <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.41</p>
+<p id="footer">completion &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index e9ae4c2..7a58183 100644 (file)
@@ -441,6 +441,9 @@ The default is "http", which shows http, warn, and error output.</p>
 programmatically, you may wish to send logs to somewhere other than
 stderr.</p>
 
+<p>If the <code>color</code> config is set to true, then this stream will receive
+colored output if it is a TTY.</p>
+
 <h3 id="long">long</h3>
 
 <ul><li>Default: false</li><li>Type: Boolean</li></ul>
@@ -745,7 +748,7 @@ then answer "no" to any prompt.</p>
 
 <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.41</p>
+<p id="footer">config &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 7924aa8..592228c 100644 (file)
@@ -29,7 +29,7 @@ something like this:</p>
 
 <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.41</p>
+<p id="footer">deprecate &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 50ff828..311e120 100644 (file)
@@ -160,7 +160,7 @@ from a fresh checkout.</p>
 
 <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.41</p>
+<p id="footer">developers &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 0e6dc4d..afaec76 100644 (file)
@@ -80,7 +80,7 @@ license statement)</li><li>Illegal content.</li></ol>
 
 <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.41</p>
+<p id="footer">disputes &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 32a65ec..ac462e5 100644 (file)
@@ -37,7 +37,7 @@ config param.</p>
 
 <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.41</p>
+<p id="footer">docs &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 5fcc2d4..3ddc18c 100644 (file)
@@ -37,7 +37,7 @@ or <code>"notepad"</code> on Windows.</li><li>Type: path</li></ul>
 
 <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.41</p>
+<p id="footer">edit &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index dc8d903..f5df792 100644 (file)
@@ -40,7 +40,7 @@ Windows</li><li>Type: path</li></ul>
 
 <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.41</p>
+<p id="footer">explore &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 21ce261..aee492e 100644 (file)
@@ -241,7 +241,7 @@ We'll have someone kick it or something.</p>
 
 <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.41</p>
+<p id="footer">faq &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index c93a3e6..d9fe84d 100644 (file)
@@ -205,7 +205,7 @@ cannot be found elsewhere.  See <code><a href="../doc/json.html">json(1)</a></co
 
 <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.41</p>
+<p id="footer">folders &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index ab8ecf8..5a5de50 100644 (file)
@@ -38,7 +38,7 @@ where the terms were found in the documentation.</p>
 
 <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.41</p>
+<p id="footer">help-search &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 5f93bbc..7366361 100644 (file)
@@ -36,7 +36,7 @@ matches are equivalent to specifying a topic name.</p>
 
 <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.41</p>
+<p id="footer">help &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b17f59a..b8fde9c 100644 (file)
 
 <p> Display npm username</p>
 </div>
-<p id="footer">index &mdash; npm@1.1.41</p>
+<p id="footer">index &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 872bf23..6e6d0ba 100644 (file)
@@ -29,7 +29,7 @@ without a really good reason to do so.</p>
 
 <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.41</p>
+<p id="footer">init &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 2fbd63b..5e62c6c 100644 (file)
@@ -133,7 +133,7 @@ affects a real use-case, it will be investigated.</p>
 
 <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.41</p>
+<p id="footer">install &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 5c86e4c..a59f544 100644 (file)
@@ -524,7 +524,7 @@ overridden.</p>
 
 <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.41</p>
+<p id="footer">json &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index c4f75e2..4072e74 100644 (file)
@@ -58,7 +58,7 @@ installation target into your project's <code>node_modules</code> folder.</p>
 
 <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.41</p>
+<p id="footer">link &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 1045602..59aef2d 100644 (file)
@@ -25,7 +25,7 @@ limit the results to only the paths to the packages named.  Note that
 nested packages will <em>also</em> show the paths to the specified packages.
 For example, running <code>npm ls promzard</code> in npm's source tree will show:</p>
 
-<pre><code>npm@1.1.41 /path/to/npm
+<pre><code>npm@1.1.43 /path/to/npm
 â””─┬ init-package-json@0.0.4
   â””── promzard@0.1.5</code></pre>
 
@@ -64,7 +64,7 @@ project.</p>
 
 <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.41</p>
+<p id="footer">list &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 0904f73..f32787b 100644 (file)
@@ -14,7 +14,7 @@
 
 <h2 id="VERSION">VERSION</h2>
 
-<p>1.1.41</p>
+<p>1.1.43</p>
 
 <h2 id="DESCRIPTION">DESCRIPTION</h2>
 
@@ -135,7 +135,7 @@ will no doubt tell you to put the output in a gist or email.</p>
 
 <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.41</p>
+<p id="footer">npm &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index dbb9d95..d8de35a 100644 (file)
@@ -21,7 +21,7 @@ packages are currently outdated.</p>
 
 <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.41</p>
+<p id="footer">outdated &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 243bcbf..218b8d8 100644 (file)
@@ -34,7 +34,7 @@ that is not implemented at this time.</p>
 
 <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.41</p>
+<p id="footer">owner &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 748f109..b193a95 100644 (file)
@@ -29,7 +29,7 @@ overwritten the second time.</p>
 
 <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.41</p>
+<p id="footer">pack &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index ab048e7..eb592c9 100644 (file)
@@ -20,7 +20,7 @@
 
 <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.41</p>
+<p id="footer">prefix &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 7e1f1cd..ca5fdfd 100644 (file)
@@ -25,7 +25,7 @@ package's dependencies list.</p>
 
 <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.41</p>
+<p id="footer">prune &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 014fa4d..a42b6be 100644 (file)
@@ -29,7 +29,7 @@ the registry.  Overwrites when the "--force" flag is set.</p>
 
 <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.41</p>
+<p id="footer">publish &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 9602a2c..ea633a2 100644 (file)
@@ -25,7 +25,7 @@ the new binary.</p>
 
 <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.41</p>
+<p id="footer">rebuild &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 3662e22..a00ac75 100644 (file)
@@ -97,7 +97,7 @@ ask for help on the <a href="mailto:npm-@googlegroups.com">npm-@googlegroups.com
 
 <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.41</p>
+<p id="footer">registry &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 99193eb..a3c9a83 100644 (file)
@@ -58,7 +58,7 @@ modules.  To track those down, you can do the following:</p>
 
 <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.41</p>
+<p id="footer">removing-npm &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index ffab7a6..93c64ce 100644 (file)
@@ -24,7 +24,7 @@ the "start" script.</p>
 
 <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.41</p>
+<p id="footer">restart &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 9d006c3..2a8da02 100644 (file)
@@ -20,7 +20,7 @@
 
 <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.41</p>
+<p id="footer">root &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 13bb1b0..ec6adca 100644 (file)
@@ -23,7 +23,7 @@ called directly, as well.</p>
 
 <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.41</p>
+<p id="footer">run-script &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index f659e7d..f932e03 100644 (file)
@@ -177,7 +177,7 @@ will sudo the npm command in question.</li></ul>
 
 <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.41</p>
+<p id="footer">scripts &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 07c38ef..9790c78 100644 (file)
@@ -24,7 +24,7 @@ expression characters must be escaped or quoted in most shells.)</p>
 
 <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.41</p>
+<p id="footer">search &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index a5054ad..0357b2d 100644 (file)
@@ -104,7 +104,7 @@ that satisfies the range, or null if none of them do.</li></ul>
 
 <ul><li><a href="../doc/json.html">json(1)</a></li></ul>
 </div>
-<p id="footer">semver &mdash; npm@1.1.41</p>
+<p id="footer">semver &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index c5a18db..6d5b7dd 100644 (file)
@@ -169,7 +169,7 @@ versions.</p>
 
 <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.41</p>
+<p id="footer">shrinkwrap &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index cef44a3..bcea0f6 100644 (file)
@@ -26,7 +26,7 @@ a vaguely positive way to show that you care.</p>
 
 <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.41</p>
+<p id="footer">star &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 4f6c639..89cf19d 100644 (file)
@@ -20,7 +20,7 @@
 
 <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.41</p>
+<p id="footer">start &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 153d531..9f2756c 100644 (file)
@@ -20,7 +20,7 @@
 
 <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.41</p>
+<p id="footer">stop &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 254e401..ce7ea4f 100644 (file)
@@ -33,7 +33,7 @@ dependencies into the submodule folder.</p>
 
 <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.41</p>
+<p id="footer">submodule &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index be8b162..d75c394 100644 (file)
@@ -21,7 +21,7 @@
 
 <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.41</p>
+<p id="footer">tag &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 1f8fa63..dd572e8 100644 (file)
@@ -23,7 +23,7 @@ true.</p>
 
 <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.41</p>
+<p id="footer">test &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 268482a..bd4c8c5 100644 (file)
@@ -22,7 +22,7 @@ on its behalf.</p>
 
 <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.41</p>
+<p id="footer">uninstall &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index bb8e574..4df93f6 100644 (file)
@@ -34,7 +34,7 @@ the root package entry is removed from the registry entirely.</p>
 
 <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.41</p>
+<p id="footer">unpublish &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 88c27ce..dd59357 100644 (file)
@@ -23,7 +23,7 @@
 
 <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.41</p>
+<p id="footer">update &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index cc6f53f..4ffbf2b 100644 (file)
@@ -40,7 +40,7 @@ in your git config for this to work properly.</p>
 
 <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.41</p>
+<p id="footer">version &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 97e208b..41a273a 100644 (file)
@@ -88,7 +88,7 @@ the field name.</p>
 
 <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.41</p>
+<p id="footer">view &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index dd15587..6bb7809 100644 (file)
@@ -20,7 +20,7 @@
 
 <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.41</p>
+<p id="footer">whoami &mdash; npm@1.1.43</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/n-64.png b/deps/npm/html/n-64.png
deleted file mode 100644 (file)
index d4145ef..0000000
Binary files a/deps/npm/html/n-64.png and /dev/null differ
diff --git a/deps/npm/html/n-large.png b/deps/npm/html/n-large.png
deleted file mode 100644 (file)
index 9e1525f..0000000
Binary files a/deps/npm/html/n-large.png and /dev/null differ
diff --git a/deps/npm/html/npm-16.png b/deps/npm/html/npm-16.png
deleted file mode 100644 (file)
index c3c9d05..0000000
Binary files a/deps/npm/html/npm-16.png and /dev/null differ
diff --git a/deps/npm/html/npm-256-square.png b/deps/npm/html/npm-256-square.png
deleted file mode 100644 (file)
index f7f18b5..0000000
Binary files a/deps/npm/html/npm-256-square.png and /dev/null differ
diff --git a/deps/npm/html/npm-256w.png b/deps/npm/html/npm-256w.png
deleted file mode 100644 (file)
index dac32c8..0000000
Binary files a/deps/npm/html/npm-256w.png and /dev/null differ
diff --git a/deps/npm/html/npm-64-square.png b/deps/npm/html/npm-64-square.png
deleted file mode 100644 (file)
index eef2629..0000000
Binary files a/deps/npm/html/npm-64-square.png and /dev/null differ
diff --git a/deps/npm/html/npm-fin.png b/deps/npm/html/npm-fin.png
deleted file mode 100644 (file)
index 7efbef6..0000000
Binary files a/deps/npm/html/npm-fin.png and /dev/null differ
diff --git a/deps/npm/html/npm-large-trans.png b/deps/npm/html/npm-large-trans.png
deleted file mode 100644 (file)
index 7f6c738..0000000
Binary files a/deps/npm/html/npm-large-trans.png and /dev/null differ
diff --git a/deps/npm/html/npm-large.png b/deps/npm/html/npm-large.png
deleted file mode 100644 (file)
index 27d8317..0000000
Binary files a/deps/npm/html/npm-large.png and /dev/null differ
diff --git a/deps/npm/html/npm-logo-white-trans.png b/deps/npm/html/npm-logo-white-trans.png
deleted file mode 100644 (file)
index 0af8ad7..0000000
Binary files a/deps/npm/html/npm-logo-white-trans.png and /dev/null differ
diff --git a/deps/npm/html/npm.png b/deps/npm/html/npm.png
deleted file mode 100644 (file)
index d78ff53..0000000
Binary files a/deps/npm/html/npm.png and /dev/null differ
index bd82bc9..719e887 100644 (file)
@@ -1,19 +1,18 @@
 module.exports = bin
 
 var npm = require("./npm.js")
-  , output = require("./utils/output.js")
 
 bin.usage = "npm bin\nnpm bin -g\n(just prints the bin folder)"
 
-function bin (args, cb) {
-  var path = require("path")
-    , b = npm.bin
+function bin (args, silent, cb) {
+  if (typeof cb !== "function") cb = silent, silent = false
+  var b = npm.bin
     , PATH = (process.env.PATH || "").split(":")
 
-  output.write(b, function (er) { cb(er, b) })
+  if (!silent) console.log(b)
+  process.nextTick(cb.bind(this, null, b))
 
   if (npm.config.get("global") && PATH.indexOf(b) === -1) {
-    output.write("(not in PATH env variable)"
-                ,npm.config.get("logfd"))
+    npm.config.get("logstream").write("(not in PATH env variable)\n")
   }
 }
index 9d1a991..fd55b9e 100644 (file)
@@ -20,7 +20,6 @@ var npm = require("./npm.js")
   , cmdShim = require("./utils/cmd-shim.js")
   , cmdShimIfExists = cmdShim.ifExists
   , asyncMap = require("slide").asyncMap
-  , output = require("./utils/output.js")
 
 module.exports = build
 build.usage = "npm build <folder>\n(this is plumbing)"
@@ -150,7 +149,8 @@ function linkBins (pkg, folder, parent, gtop, cb) {
           , out = npm.config.get("parseable")
                 ? dest + "::" + src + ":BINFILE"
                 : dest + " -> " + src
-        output.write(out, cb)
+        console.log(out)
+        cb()
       })
     })
   }, cb)
index de7ccad..2ca1215 100644 (file)
@@ -67,7 +67,6 @@ var mkdir = require("mkdirp")
   , registry = npm.registry
   , log = require("npmlog")
   , path = require("path")
-  , output
   , sha = require("./utils/sha.js")
   , asyncMap = require("slide").asyncMap
   , semver = require("semver")
@@ -145,7 +144,6 @@ function read (name, ver, forceBypass, cb) {
 
 // npm cache ls [<path>]
 function ls (args, cb) {
-  output = output || require("./utils/output.js")
   args = args.join("/").split("@").join("/")
   if (args.substr(-1) === "/") args = args.substr(0, args.length - 1)
   var prefix = npm.config.get("cache")
@@ -153,11 +151,10 @@ function ls (args, cb) {
     prefix = "~" + prefix.substr(process.env.HOME.length)
   }
   ls_(args, npm.config.get("depth"), function(er, files) {
-    output.write(files.map(function (f) {
+    console.log(files.map(function (f) {
       return path.join(prefix, f)
-    }).join("\n").trim(), function (er) {
-      return cb(er, files)
-    })
+    }).join("\n").trim())
+    cb(er, files)
   })
 }
 
@@ -386,7 +383,7 @@ function addRemoteGit (u, parsed, name, cb_) {
     var tmp = path.join(npm.tmp, Date.now()+"-"+Math.random())
     mkdir(path.dirname(tmp), function (er) {
       if (er) return cb(er)
-      exec( npm.config.get("git"), ["clone", u, tmp], null, false
+      exec( npm.config.get("git"), ["clone", u, tmp], gitEnv(), false
           , function (er, code, stdout, stderr) {
         stdout = (stdout + "\n" + stderr).trim()
         if (er) {
@@ -394,7 +391,7 @@ function addRemoteGit (u, parsed, name, cb_) {
           return cb(er)
         }
         log.verbose("git clone "+u, stdout)
-        exec( npm.config.get("git"), ["checkout", co], null, false, tmp
+        exec( npm.config.get("git"), ["checkout", co], gitEnv(), false, tmp
             , function (er, code, stdout, stderr) {
           stdout = (stdout + "\n" + stderr).trim()
           if (er) {
@@ -410,6 +407,20 @@ function addRemoteGit (u, parsed, name, cb_) {
 }
 
 
+var gitEnv_
+function gitEnv () {
+  // git responds to env vars in some weird ways in post-receive hooks
+  // so don't carry those along.
+  if (gitEnv_) return gitEnv_
+  gitEnv_ = {}
+  for (var k in process.env) {
+    if (k.match(/^GIT/)) continue
+    gitEnv_[k] = process.env[k]
+  }
+  return gitEnv_
+}
+
+
 // only have one request in flight for a given
 // name@blah thing.
 var inFlightNames = {}
index ebee003..697f2d1 100644 (file)
@@ -5,8 +5,7 @@ completion.usage = "npm completion >> ~/.bashrc\n"
                  + "npm completion >> ~/.zshrc\n"
                  + "source <(npm completion)"
 
-var output = require("./utils/output.js")
-  , configDefs = require("./utils/config-defs.js")
+var configDefs = require("./utils/config-defs.js")
   , configTypes = configDefs.types
   , shorthands = configDefs.shorthands
   , nopt = require("nopt")
@@ -200,7 +199,9 @@ function wrapCb (cb, opts) { return function (er, compls) {
   })
   console.error([er && er.stack, compls, opts.partialWord])
   if (er || compls.length === 0) return cb(er)
-  output.write(compls.join("\n"), 1, false, cb)
+
+  console.log(compls.join("\n"))
+  cb()
 }}
 
 // the current word has a dash.  Return the config names,
index 67f2b35..870f05f 100644 (file)
@@ -15,7 +15,6 @@ var ini = require("./utils/ini.js")
   , exec = require("./utils/exec.js")
   , fs = require("graceful-fs")
   , dc
-  , output = require("./utils/output.js")
   , types = require("./utils/config-defs.js").types
 
 config.completion = function (opts, cb) {
@@ -140,7 +139,8 @@ function get (key, cb) {
   if (key.charAt(0) === "_") {
     return cb(new Error("---sekretz---"))
   }
-  output.write(npm.config.get(key), cb)
+  console.log(npm.config.get(key))
+  cb()
 }
 
 function sort (a, b) {
@@ -273,7 +273,8 @@ function list (cb) {
          + "; HOME = " + process.env.HOME + eol
          + "; 'npm config ls -l' to show all defaults." + eol
 
-    return output.write(msg, cb)
+    console.log(msg)
+    cb()
   }
 
   var defaults = ini.defaultConfig
@@ -290,7 +291,8 @@ function list (cb) {
   })
   msg += eol
 
-  return output.write(msg, cb)
+  console.log(msg)
+  cb()
 }
 
 function unknown (action, cb) {
index 6f1f117..b0b15ba 100644 (file)
@@ -2,7 +2,6 @@
 module.exports = helpSearch
 
 var fs = require("graceful-fs")
-  , output = require("./utils/output.js")
   , path = require("path")
   , asyncMap = require("slide").asyncMap
   , cliDocsPath = path.join(__dirname, "..", "doc", "cli")
@@ -118,8 +117,8 @@ function helpSearch (args, silent, cb) {
       }
 
       if (results.length === 0) {
-        return output.write("No results for "
-                           + args.map(JSON.stringify).join(" "), cb)
+        console.log("No results for " + args.map(JSON.stringify).join(" "))
+        return cb()
       }
 
       // sort results by number of results found, then by number of hits
@@ -164,8 +163,15 @@ function helpSearch (args, silent, cb) {
             })
             out = newOut.join("")
           }
-          out = out.split("\1").join("\033[31;40m")
-                   .split("\2").join("\033[0m")
+          if (npm.color) {
+            var color = "\033[31;40m"
+              , reset = "\033[0m"
+          } else {
+            var color = ""
+              , reset = ""
+          }
+          out = out.split("\1").join(color)
+                   .split("\2").join(reset)
           return out
         }).join("\n").trim()
         return out
@@ -179,7 +185,8 @@ function helpSearch (args, silent, cb) {
             + "(run with -l or --long to see more context)"
       }
 
-      output.write(out.trim(), function (er) { cb(er, results) })
+      console.log(out.trim())
+      cb(null, results)
     })
 
   })
index 998d904..495db83 100644 (file)
@@ -12,7 +12,6 @@ var fs = require("graceful-fs")
   , path = require("path")
   , exec = require("./utils/exec.js")
   , npm = require("./npm.js")
-  , output = require("./utils/output.js")
   , log = require("npmlog")
 
 function help (args, cb) {
@@ -35,7 +34,8 @@ function help (args, cb) {
     ) {
       npm.config.set("loglevel", "silent")
       log.level = "silent"
-      return output.write(npm.commands[section].usage, cb)
+      console.log(npm.commands[section].usage)
+      return cb()
     }
 
     var sectionPath = path.join( __dirname, "..", "man", "man" + num
@@ -67,7 +67,8 @@ function help (args, cb) {
               if (!b) {
                 return cb(new Error("viewer=browser and no browser set."))
               }
-              output.write("Opening HTML in default browser...", cb)
+              console.log("Opening HTML in default browser...")
+              process.nextTick(cb)
               // windows is SO weird.
               if (process.platform === "win32") {
                 exec("cmd", ["/c", htmlPath], env, false, function () {})
@@ -85,7 +86,7 @@ function help (args, cb) {
     if (er) return cb(er)
     npm.config.set("loglevel", "silent")
     log.level = "silent"
-    output.write
+    console.log
       ( ["\nUsage: npm <command>"
         , ""
         , "where <command> is one of:"
@@ -104,7 +105,8 @@ function help (args, cb) {
         , "Config info can be viewed via: npm help config"
         , ""
         , "npm@" + npm.version + " " + path.dirname(__dirname)
-        ].join("\n"), function () { cb(er) })
+        ].join("\n"))
+    cb(er)
   })
 }
 
index e64766b..28a04dd 100644 (file)
@@ -64,7 +64,6 @@ var npm = require("./npm.js")
   , cache = require("./cache.js")
   , asyncMap = require("slide").asyncMap
   , chain = require("slide").chain
-  , output
   , url = require("url")
   , mkdir = require("mkdirp")
   , lifecycle = require("./utils/lifecycle.js")
@@ -75,18 +74,12 @@ function install (args, cb_) {
   function cb (er, installed) {
     if (er) return cb_(er)
 
-    output = output || require("./utils/output.js")
-
     var tree = treeify(installed)
       , pretty = prettify(tree, installed).trim()
 
-    if (pretty) output.write(pretty, afterWrite)
-    else afterWrite()
-
-    function afterWrite (er) {
-      if (er) return cb_(er)
-      save(where, installed, tree, pretty, cb_)
-    }
+    if (pretty) console.log(pretty)
+    if (er) return cb_(er)
+    save(where, installed, tree, pretty, cb_)
   }
 
   // the /path/to/node_modules/..
index 1e99974..e912796 100644 (file)
@@ -9,7 +9,6 @@ var npm = require("./npm.js")
   , chain = require("slide").chain
   , path = require("path")
   , rm = require("rimraf")
-  , output = require("./utils/output.js")
   , build = require("./build.js")
 
 module.exports = link
@@ -153,8 +152,8 @@ function resultPrinter (pkg, src, dest, rp, cb) {
     return parseableOutput(dest, rp || src, cb)
   }
   if (rp === src) rp = null
-  output.write(where+" -> " + src
-              +(rp ? " -> " + rp: ""), cb)
+  console.log(where + " -> " + src + (rp ? " -> " + rp: ""))
+  cb()
 }
 
 function parseableOutput (dest, rp, cb) {
@@ -165,5 +164,6 @@ function parseableOutput (dest, rp, cb) {
   // *just* print the target folder.
   // However, we don't actually ever read the version number, so
   // the second field is always blank.
-  output.write(dest + "::" + rp, cb)
+  console.log(dest + "::" + rp)
+  cb()
 }
index 2b45ca3..3c649f2 100644 (file)
@@ -9,7 +9,6 @@ module.exports = exports = ls
 
 var npm = require("./npm.js")
   , readInstalled = require("read-installed")
-  , output = require("./utils/output.js")
   , log = require("npmlog")
   , path = require("path")
   , archy = require("archy")
@@ -58,7 +57,8 @@ function ls (args, silent, cb) {
     } else if (data) {
       out = makeArchy(bfs, long, dir)
     }
-    output.write(out, function (er) { cb(er, data, lite) })
+    console.log(out)
+    cb(null, data, lite)
   })
 }
 
@@ -205,12 +205,17 @@ function makeArchy (data, long, dir) {
 }
 
 function makeArchy_ (data, long, dir, depth, parent, d) {
+  var color = npm.color
   if (typeof data === "string") {
     if (depth < npm.config.get("depth")) {
       // just missing
       var p = parent.link || parent.path
       log.warn("unmet dependency", "%s in %s", d+" "+data, p)
-      data = "\033[31;40mUNMET DEPENDENCY\033[0m " + d + " " + data
+      var unmet = "UNMET DEPENDENCY"
+      if (color) {
+        unmet = "\033[31;40m" + unmet + "\033[0m"
+      }
+      data = unmet + " " + d + " " + data
     } else {
       data = d+"@"+ data +" (max depth reached)"
     }
@@ -221,17 +226,23 @@ function makeArchy_ (data, long, dir, depth, parent, d) {
   // the top level is a bit special.
   out.label = data._id || ""
   if (data._found === true && data._id) {
-    out.label = "\033[33;40m" + out.label.trim() + "\033[m "
+    var pre = color ? "\033[33;40m" : ""
+      , post = color ? "\033[m" : ""
+    out.label = pre + out.label.trim() + post + " "
   }
   if (data.link) out.label += " -> " + data.link
 
   if (data.invalid) {
     if (data.realName !== data.name) out.label += " ("+data.realName+")"
-    out.label += " \033[31;40minvalid\033[0m"
+    out.label += " " + (color ? "\033[31;40m" : "")
+              + "invalid"
+              + (color ? "\033[0m" : "")
   }
 
   if (data.extraneous && data.path !== dir) {
-    out.label += " \033[32;40mextraneous\033[0m"
+    out.label += " " + (color ? "\033[32;40m" : "")
+              + "extraneous"
+              + (color ? "\033[0m" : "")
   }
 
   if (long) {
index dd85b83..a6a72ff 100644 (file)
@@ -262,10 +262,12 @@ function load (npm, conf, cb) {
     //console.error("about to look up configs")
 
     ini.resolveConfigs(conf, function (er) {
+      var color = npm.config.get("color")
+
       log.level = npm.config.get("loglevel")
       log.heading = "npm"
       log.stream = npm.config.get("logstream")
-      switch (npm.config.get("color")) {
+      switch (color) {
         case "always": log.enableColor(); break
         case false: log.disableColor(); break
       }
@@ -273,6 +275,23 @@ function load (npm, conf, cb) {
 
       if (er) return cb(er)
 
+      // see if we need to color normal output
+      switch (color) {
+        case "always":
+          npm.color = true
+          break
+        case false:
+          npm.color = false
+          break
+        default:
+          var tty = require("tty")
+          if (process.stdout.isTTY) npm.color = true
+          else if (!tty.isatty) npm.color = true
+          else if (tty.isatty(1)) npm.color = true
+          else npm.color = false
+          break
+      }
+
       // at this point the configs are all set.
       // go ahead and spin up the registry client.
       var token
index 15cea82..0c9c669 100644 (file)
@@ -30,12 +30,10 @@ function outdated (args, silent, cb) {
   if (typeof cb !== "function") cb = silent, silent = false
   var dir = path.resolve(npm.dir, "..")
   outdated_(args, dir, {}, function (er, list) {
-    function cb_ (er) { cb(er, list) }
-
-    if (er || silent) return cb_(er)
+    if (er || silent) return cb(er)
     var outList = list.map(makePretty)
-    require("./utils/output.js").write(outList.join("\n"))
-    cb_()
+    console.log(outList.join("\n"))
+    cb(null, list)
   })
 }
 
index a7cc5bd..16008b5 100644 (file)
@@ -67,7 +67,6 @@ owner.completion = function (opts, cb) {
 var npm = require("./npm.js")
   , registry = npm.registry
   , log = require("npmlog")
-  , output
   , readJson = require("read-package-json")
 
 function owner (args, cb) {
@@ -91,8 +90,8 @@ function ls (pkg, cb) {
     var owners = data.maintainers
     if (!owners || !owners.length) msg = "admin party!"
     else msg = owners.map(function (o) { return o.name +" <"+o.email+">" }).join("\n")
-    output = output || require("./utils/output.js")
-    output.write(msg, function (er) { cb(er, owners) })
+    console.log(msg)
+    cb(er, owners)
   })
 }
 
index 1e3bd0c..302aa81 100644 (file)
@@ -7,7 +7,6 @@ module.exports = pack
 var npm = require("./npm.js")
   , install = require("./install.js")
   , cache = require("./cache.js")
-  , output = require("./utils/output.js")
   , fs = require("graceful-fs")
   , chain = require("slide").chain
   , path = require("path")
@@ -35,7 +34,8 @@ function printFiles (files, cb) {
   files = files.map(function (file) {
     return path.relative(cwd, file)
   })
-  output.write(files.join("\n"), cb)
+  console.log(files.join("\n"))
+  cb()
 }
 
 // add to cache, then cp to the cwd
index f37aacf..e002ede 100644 (file)
@@ -1,10 +1,11 @@
 module.exports = prefix
 
 var npm = require("./npm.js")
-  , output = require("./utils/output.js")
 
 prefix.usage = "npm prefix\nnpm prefix -g\n(just prints the prefix folder)"
 
-function prefix (args, cb) {
-  output.write(npm.prefix, function (er) { cb(er, npm.prefix) })
+function prefix (args, silent, cb) {
+  if (typeof cb !== "function") cb = silent, silent = false
+  if (!silent) console.log(npm.prefix)
+  process.nextTick(cb.bind(this, null, npm.prefix))
 }
index 348862d..fd22b8e 100644 (file)
@@ -10,7 +10,6 @@ var npm = require("./npm.js")
   , fs = require("graceful-fs")
   , lifecycle = require("./utils/lifecycle.js")
   , chain = require("slide").chain
-  , output = require("./utils/output.js")
 
 publish.usage = "npm publish <tarball>"
               + "\nnpm publish <folder>"
@@ -98,7 +97,8 @@ function regPublish (data, isRetry, arg, cachedir, cb) {
         })
       }
       if (er) return cb(er)
-      output.write("+ " + data._id, cb)
+      console.log("+ " + data._id)
+      cb()
     })
   })
 }
index c9f623d..16451fb 100644 (file)
@@ -6,7 +6,6 @@ var readInstalled = require("read-installed")
   , log = require("npmlog")
   , path = require("path")
   , npm = require("./npm.js")
-  , output = require("./utils/output.js")
   , asyncMap = require("slide").asyncMap
   , fs = require("graceful-fs")
   , exec = require("./utils/exec.js")
@@ -51,9 +50,10 @@ function cleanBuild (folders, set, cb) {
     if (er) return cb(er)
     npm.commands.build(folders, function (er) {
       if (er) return cb(er)
-      output.write(folders.map(function (f) {
+      console.log(folders.map(function (f) {
         return set[f] + " " + f
-      }).join("\n"), cb)
+      }).join("\n"))
+      cb()
     })
   })
 }
index 59ccc0b..409b20b 100644 (file)
@@ -1,10 +1,11 @@
 module.exports = root
 
 var npm = require("./npm.js")
-  , output = require("./utils/output.js")
 
 root.usage = "npm root\nnpm root -g\n(just prints the root folder)"
 
-function root (args, cb) {
-  output.write(npm.dir, function (er) { cb(er, npm.dir) })
+function root (args, silent, cb) {
+  if (typeof cb !== "function") cb = silent, silent = false
+  if (!silent) console.log(npm.dir)
+  process.nextTic(cb.bind(this, null, npm.dir))
 }
index 9ed712b..8a7238c 100644 (file)
@@ -4,7 +4,6 @@ module.exports = exports = search
 var npm = require("./npm.js")
   , registry = npm.registry
   , semver = require("semver")
-  , output
 
 search.usage = "npm search [some search terms ...]"
 
@@ -30,9 +29,9 @@ search.completion = function (opts, cb) {
   })
 }
 
-function search (args, silent, staleness, cb_) {
-  if (typeof cb_ !== "function") cb_ = staleness, staleness = 600
-  if (typeof cb_ !== "function") cb_ = silent, silent = false
+function search (args, silent, staleness, cb) {
+  if (typeof cb !== "function") cb = staleness, staleness = 600
+  if (typeof cb !== "function") cb = silent, silent = false
 
   var searchopts = npm.config.get("searchopts")
     , searchexclude = npm.config.get("searchexclude")
@@ -51,10 +50,9 @@ function search (args, silent, staleness, cb_) {
     // now data is the list of data that we want to show.
     // prettify and print it, and then provide the raw
     // data to the cb.
-    if (er || silent) return cb_(er, data)
-    function cb (er) { return cb_(er, data) }
-    output = output || require("./utils/output.js")
-    output.write(prettify(data, args), cb)
+    if (er || silent) return cb(er, data)
+    console.log(prettify(data, args))
+    cb(null, data)
   })
 }
 
@@ -255,7 +253,9 @@ function addColorMarker (str, arg, i) {
 function colorize (line) {
   for (var i = 0; i < cl; i ++) {
     var m = i + 1
-    line = line.split(String.fromCharCode(m)).join("\033["+colors[i]+"m")
+    var color = npm.color ? "\033["+colors[i]+"m" : ""
+    line = line.split(String.fromCharCode(m)).join(color)
   }
-  return line.split("\u0000").join("\033[0m")
+  var uncolor = npm.color ? "\033[0m" : ""
+  return line.split("\u0000").join(uncolor)
 }
index cdad89a..e41f8cf 100644 (file)
@@ -4,7 +4,6 @@
 module.exports = exports = shrinkwrap
 
 var npm = require("./npm.js")
-  , output = require("./utils/output.js")
   , log = require("npmlog")
   , fs = require("fs")
   , path = require("path")
@@ -42,8 +41,7 @@ function shrinkwrap_ (pkginfo, silent, cb) {
   fs.writeFile(file, swdata, function (er) {
     if (er) return cb(er)
     if (silent) return cb(null, pkginfo)
-    output.write("wrote npm-shrinkwrap.json", function (er) {
-      cb(er, pkginfo)
-    })
+    console.log("wrote npm-shrinkwrap.json")
+    cb(null, pkginfo)
   })
 }
index fc4fb96..33b1247 100644 (file)
@@ -5,7 +5,6 @@ var npm = require("./npm.js")
   , registry = npm.registry
   , log = require("npmlog")
   , asyncMap = require("slide").asyncMap
-  , output = require("./utils/output.js")
 
 star.usage = "npm star <package> [pkg, pkg, ...]\n"
            + "npm unstar <package> [pkg, pkg, ...]"
@@ -25,7 +24,7 @@ function star (args, cb) {
   asyncMap(args, function (pkg, cb) {
     registry.star(pkg, using, function (er, data, raw, req) {
       if (!er) {
-        output.write(s + " "+pkg, npm.config.get("outfd"))
+        console.log(s + " "+pkg)
         log.verbose("star", data)
       }
       cb(er, data, raw, req)
index a0d2159..c152398 100644 (file)
@@ -6,7 +6,6 @@ module.exports = submodule
 
 var npm = require("./npm.js")
   , exec = require("./utils/exec.js")
-  , output = require("./utils/output.js")
   , cache = require("./cache.js")
   , asyncMap = require("slide").asyncMap
   , chain = require("slide").chain
index 9d0c955..def3085 100644 (file)
@@ -6,7 +6,6 @@ var log = require("npmlog")
   , registry = npm.registry
   , readJson = require("read-package-json")
   , path = require("path")
-  , output = require("./utils/output.js")
 
 unpublish.usage = "npm unpublish <project>[@<version>]"
 
@@ -67,7 +66,8 @@ function unpublish (args, cb) {
 function gotProject (project, version, cb_) {
   function cb (er) {
     if (er) return cb_(er)
-    output.write("- " + project + (version ? "@" + version : ""), cb_)
+    console.log("- " + project + (version ? "@" + version : ""))
+    cb_()
   }
 
   // remove from the cache first
index 4237ae6..763f5b7 100644 (file)
@@ -168,7 +168,6 @@ Object.defineProperty(exports, "defaults", {get: function () {
     , npaturl : "http://npat.npmjs.org/"
     , npat : false
     , "onload-script" : false
-    , outfd : 1
     , parseable : false
     , pre: false
     , prefix : globalPrefix
@@ -259,7 +258,6 @@ exports.types =
   , npaturl : url
   , npat : Boolean
   , "onload-script" : [null, String]
-  , outfd : [Number, Stream]
   , parseable : Boolean
   , pre: Boolean
   , prefix: path
index 90b5002..7fc9008 100644 (file)
@@ -9,7 +9,6 @@ var log = require("npmlog")
   , fs = require("graceful-fs")
   , chain = require("slide").chain
   , constants = require("constants")
-  , output = require("./output.js")
   , Stream = require("stream").Stream
   , PATH = "PATH"
 
@@ -149,32 +148,29 @@ function runPackageLifecycle (pkg, env, wd, unsafe, cb) {
   var note = "\n> " + pkg._id + " " + stage + " " + wd
            + "\n> " + cmd + "\n"
 
-  output.write(note, function (er) {
-    if (er) return cb(er)
-
-    exec( sh, [shFlag, cmd], env, true, wd
-        , user, group
-        , function (er, code, stdout, stderr) {
-      if (er && !npm.ROLLBACK) {
-        log.info(pkg._id, "Failed to exec "+stage+" script")
-        er.message = pkg._id + " "
-                   + stage + ": `" + env.npm_lifecycle_script+"`\n"
-                   + er.message
-        if (er.code !== "EPERM") {
-          er.code = "ELIFECYCLE"
-        }
-        er.pkgid = pkg._id
-        er.stage = stage
-        er.script = env.npm_lifecycle_script
-        er.pkgname = pkg.name
-        return cb(er)
-      } else if (er) {
-        log.error(pkg._id+"."+stage, er)
-        log.error(pkg._id+"."+stage, "continuing anyway")
-        return cb()
+  console.log(note)
+  exec( sh, [shFlag, cmd], env, true, wd
+      , user, group
+      , function (er, code, stdout, stderr) {
+    if (er && !npm.ROLLBACK) {
+      log.info(pkg._id, "Failed to exec "+stage+" script")
+      er.message = pkg._id + " "
+                 + stage + ": `" + env.npm_lifecycle_script+"`\n"
+                 + er.message
+      if (er.code !== "EPERM") {
+        er.code = "ELIFECYCLE"
       }
-      cb(er)
-    })
+      er.pkgid = pkg._id
+      er.stage = stage
+      er.script = env.npm_lifecycle_script
+      er.pkgname = pkg.name
+      return cb(er)
+    } else if (er) {
+      log.error(pkg._id+"."+stage, er)
+      log.error(pkg._id+"."+stage, "continuing anyway")
+      return cb()
+    }
+    cb(er)
   })
 }
 
diff --git a/deps/npm/lib/utils/output.js b/deps/npm/lib/utils/output.js
deleted file mode 100644 (file)
index b705153..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-
-// centralized stdout writer.
-
-exports.doColor = doColor
-exports.write = write
-
-var npm = require("../npm.js")
-  , tty = require("tty")
-  , streams = {}
-  , ttys = {}
-  , net = require("net")
-  , util = require("util")
-  , deadStreams = {}
-
-function doColor (stream) {
-  var conf = npm.config.get("color")
-  return (!conf) ? false
-       : (conf === "always") ? true
-       : isatty(stream)
-}
-function isatty (stream) {
-  // console.error("isatty?", stream)
-  if (!tty.isatty) return true
-  if (!stream) return false
-  if (stream.isTTY) return true
-  if (stream && (typeof stream.fd === "number")) {
-    stream.isTTY = tty.isatty(stream.fd)
-  }
-  return stream.isTTY
-}
-
-function write (args, stream, lf, cb) {
-  // console.error("write", [args, stream, lf, cb])
-  if (typeof cb !== "function" && typeof lf === "function") {
-    cb = lf
-    lf = null
-  }
-  if (typeof cb !== "function" && typeof stream === "function") {
-    cb = stream
-    stream = npm.config.get("outfd")
-  }
-
-  stream = getStream(stream)
-  // console.error("gotStream", stream)
-  if (lf == null) lf = isatty(stream)
-  if (!stream) return cb && cb(), false
-  if (!Array.isArray(args)) args = [args]
-
-  // console.error("write", args)
-
-  var msg = ""
-    , colored = doColor(stream)
-  msg = args.map(function (arg) {
-    if (typeof arg !== "string") {
-      return util.inspect(arg, false, 5, colored) + "\n"
-    }
-    if (!colored) arg = arg.replace(/\033\[[0-9;]*m/g, '')
-    if (!npm.config.get("unicode")) {
-      arg = arg.replace(/â””/g, "`")
-               .replace(/─/g, "-")
-               .replace(/│/g, "|")
-               .replace(/├/g, "+")
-               .replace(/┬/g, "-")
-    }
-    return arg
-  }).join(" ")
-
-  // listen to the "output" event to cancel/modify/redirect
-  npm.output = {stream:stream, message:msg}
-  npm.emit("output", npm.output)
-  if (!npm.output) return cb && cb(), false // cancelled
-  stream = npm.output.stream
-  msg = npm.output.message
-
-  // EPIPE errors just mean that the stream is not listening
-  // any more.  Mark the stream as dead, and return.
-  if (deadStreams[stream.fd]) {
-    return cb && cb(), false
-  }
-  if (!deadStreams.hasOwnProperty(stream.fd)) {
-    deadStreams[stream.fd] = false
-    stream.on("error", function (er) {
-      if (er.code === "EPIPE") {
-        deadStreams[stream.fd] = true
-        return cb && cb()
-      }
-      if (stream.listeners("error").length === 1) {
-        throw er
-      }
-    })
-  }
-
-  // use the \r\n in case we're in raw mode.
-  msg = msg.split(/\r?\n/).concat("").join(lf ? "\r\n" : "\n")
-  // output to stderr should be synchronous
-  if (stream === process.stderr || stream.fd === 2) {
-    process.stderr.write(msg)
-    if (cb) cb()
-    return true
-  }
-  // console.error("writing ", msg)
-  var flushed = stream.write(msg)
-  if (flushed && cb) {
-    process.nextTick(cb)
-  } else if (cb) {
-    stream.once("drain", cb)
-  }
-  return flushed
-}
-
-var hadError = false
-function getStream (fd) {
-  if (hadError) return
-
-  var stream
-  if (!fd && fd !== 0) return
-  if (typeof fd === "string") fd = +fd
-
-  // console.error("getStream", fd, hadError)
-
-  if (fd && typeof fd === "object") {
-    stream = fd
-    fd = fd.fd
-  } else if (streams[fd]) {
-    stream = streams[fd]
-  } else {
-    switch (fd) {
-      case 1:
-        stream = process.stdout
-        stream.fd = fd
-        stream.writable = true
-        break
-      case 2:
-        stream = process.stderr
-        stream.fd = fd
-        stream.writable = true
-        break
-      default:
-        try {
-          stream = new net.Stream(fd)
-          if (!stream || !stream.writable) {
-            throw new Error("Stream not writable")
-          }
-        } catch (ex) {
-          // if this fails, then regular logging is most likely broken.
-          var er = new Error("cannot output to fd "+fd + ": "+
-                             (ex.stack || ex.message).substr(7) + "\n")
-          console.error(er.stack)
-          hadError = true
-          process.exit(1)
-        }
-    }
-  }
-
-  if (!stream || !stream.writable) return
-  return streams[fd] = stream
-}
index e291031..9b34df3 100644 (file)
@@ -44,7 +44,6 @@ var npm = require("./npm.js")
   , ini = require("ini")
   , log = require("npmlog")
   , util = require("util")
-  , output
   , semver = require("semver")
 
 function view (args, silent, cb) {
@@ -184,7 +183,6 @@ function printData (data, name, cb) {
     , msg = ""
     , showVersions = versions.length > 1
     , showFields
-  function cb_ (er) { return cb(er, data) }
 
   versions.forEach(function (v, i) {
     var fields = Object.keys(data[v])
@@ -200,8 +198,9 @@ function printData (data, name, cb) {
            + (showFields ? f : "") + d + "\n"
     })
   })
-  output = output || require("./utils/output.js")
-  output.write(msg, cb_)
+
+  console.log(msg)
+  cb(null, data)
 }
 function cleanup (data) {
   if (Array.isArray(data)) {
index b6e4952..664cbdb 100644 (file)
@@ -1,12 +1,13 @@
 module.exports = whoami
 
 var npm = require("./npm.js")
-  , output = require("./utils/output.js")
 
 whoami.usage = "npm whoami\n(just prints the 'username' config)"
 
-function whoami (args, cb) {
+function whoami (args, silent, cb) {
+  if (typeof cb !== "function") cb = silent, silent = false
   var me = npm.config.get("username")
-  if (!me) me = "Not authed.  Run 'npm adduser'"
-  output.write(me, cb)
+  msg = me ? me : "Not authed.  Run 'npm adduser'"
+  if (!silent) console.log(msg)
+  process.nextTick(cb.bind(this, null, me))
 }
index a67e5ac..f5e594b 100644 (file)
@@ -861,6 +861,10 @@ 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
+If the \fBcolor\fR config is set to true, then this stream will receive
+colored output if it is a TTY\.
+.
 .SS "long"
 .
 .IP "\(bu" 4
index 7d26e62..8b55e8d 100644 (file)
@@ -29,7 +29,7 @@ For example, running \fBnpm ls promzard\fR in npm\'s source tree will show:
 .IP "" 4
 .
 .nf
-npm@1.1.41 /path/to/npm
+npm@1.1.43 /path/to/npm
 â””─┬ init\-package\-json@0\.0\.4
   â””── promzard@0\.1\.5
 .
index fd3eb00..57559c8 100644 (file)
@@ -14,7 +14,7 @@ npm <command> [args]
 .fi
 .
 .SH "VERSION"
-1.1.41
+1.1.43
 .
 .SH "DESCRIPTION"
 npm is the package manager for the Node JavaScript platform\.  It puts
index 71ba61d..7a322c3 100644 (file)
@@ -21,7 +21,7 @@ npm\.load(configObject, function (er, npm) {
 .fi
 .
 .SH "VERSION"
-1.1.41
+1.1.43
 .
 .SH "DESCRIPTION"
 This is the API documentation for npm\.
diff --git a/deps/npm/node_modules/block-stream/LICENCE b/deps/npm/node_modules/block-stream/LICENCE
new file mode 100644 (file)
index 0000000..74489e2
--- /dev/null
@@ -0,0 +1,25 @@
+Copyright (c) Isaac Z. Schlueter
+All rights reserved.
+
+The BSD License
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
diff --git a/deps/npm/node_modules/block-stream/bench/block-stream-pause.js b/deps/npm/node_modules/block-stream/bench/block-stream-pause.js
new file mode 100644 (file)
index 0000000..9328844
--- /dev/null
@@ -0,0 +1,70 @@
+var BlockStream = require("../block-stream.js")
+
+var blockSizes = [16, 25, 1024]
+  , writeSizes = [4, 8, 15, 16, 17, 64, 100]
+  , writeCounts = [1, 10, 100]
+  , tap = require("tap")
+
+writeCounts.forEach(function (writeCount) {
+blockSizes.forEach(function (blockSize) {
+writeSizes.forEach(function (writeSize) {
+  tap.test("writeSize=" + writeSize +
+           " blockSize="+blockSize +
+           " writeCount="+writeCount, function (t) {
+    var f = new BlockStream(blockSize, {nopad: true })
+
+    var actualChunks = 0
+    var actualBytes = 0
+    var timeouts = 0
+
+    f.on("data", function (c) {
+      timeouts ++
+
+      actualChunks ++
+      actualBytes += c.length
+
+      // make sure that no data gets corrupted, and basic sanity
+      var before = c.toString()
+      // simulate a slow write operation
+      f.pause()
+      setTimeout(function () {
+        timeouts --
+
+        var after = c.toString()
+        t.equal(after, before, "should not change data")
+
+        // now corrupt it, to find leaks.
+        for (var i = 0; i < c.length; i ++) {
+          c[i] = "x".charCodeAt(0)
+        }
+        f.resume()
+      }, 100)
+    })
+
+    f.on("end", function () {
+      // round up to the nearest block size
+      var expectChunks = Math.ceil(writeSize * writeCount  * 2 / blockSize)
+      var expectBytes = writeSize * writeCount * 2
+      t.equal(actualBytes, expectBytes,
+              "bytes=" + expectBytes + " writeSize=" + writeSize)
+      t.equal(actualChunks, expectChunks,
+              "chunks=" + expectChunks + " writeSize=" + writeSize)
+
+      // wait for all the timeout checks to finish, then end the test
+      setTimeout(function WAIT () {
+        if (timeouts > 0) return setTimeout(WAIT)
+        t.end()
+      }, 100)
+    })
+
+    for (var i = 0; i < writeCount; i ++) {
+      var a = new Buffer(writeSize);
+      for (var j = 0; j < writeSize; j ++) a[j] = "a".charCodeAt(0)
+      var b = new Buffer(writeSize);
+      for (var j = 0; j < writeSize; j ++) b[j] = "b".charCodeAt(0)
+      f.write(a)
+      f.write(b)
+    }
+    f.end()
+  })
+}) }) })
diff --git a/deps/npm/node_modules/block-stream/bench/block-stream.js b/deps/npm/node_modules/block-stream/bench/block-stream.js
new file mode 100644 (file)
index 0000000..1141f3a
--- /dev/null
@@ -0,0 +1,68 @@
+var BlockStream = require("../block-stream.js")
+
+var blockSizes = [16, 25, 1024]
+  , writeSizes = [4, 8, 15, 16, 17, 64, 100]
+  , writeCounts = [1, 10, 100]
+  , tap = require("tap")
+
+writeCounts.forEach(function (writeCount) {
+blockSizes.forEach(function (blockSize) {
+writeSizes.forEach(function (writeSize) {
+  tap.test("writeSize=" + writeSize +
+           " blockSize="+blockSize +
+           " writeCount="+writeCount, function (t) {
+    var f = new BlockStream(blockSize, {nopad: true })
+
+    var actualChunks = 0
+    var actualBytes = 0
+    var timeouts = 0
+
+    f.on("data", function (c) {
+      timeouts ++
+
+      actualChunks ++
+      actualBytes += c.length
+
+      // make sure that no data gets corrupted, and basic sanity
+      var before = c.toString()
+      // simulate a slow write operation
+      setTimeout(function () {
+        timeouts --
+
+        var after = c.toString()
+        t.equal(after, before, "should not change data")
+
+        // now corrupt it, to find leaks.
+        for (var i = 0; i < c.length; i ++) {
+          c[i] = "x".charCodeAt(0)
+        }
+      }, 100)
+    })
+
+    f.on("end", function () {
+      // round up to the nearest block size
+      var expectChunks = Math.ceil(writeSize * writeCount  * 2 / blockSize)
+      var expectBytes = writeSize * writeCount * 2
+      t.equal(actualBytes, expectBytes,
+              "bytes=" + expectBytes + " writeSize=" + writeSize)
+      t.equal(actualChunks, expectChunks,
+              "chunks=" + expectChunks + " writeSize=" + writeSize)
+
+      // wait for all the timeout checks to finish, then end the test
+      setTimeout(function WAIT () {
+        if (timeouts > 0) return setTimeout(WAIT)
+        t.end()
+      }, 100)
+    })
+
+    for (var i = 0; i < writeCount; i ++) {
+      var a = new Buffer(writeSize);
+      for (var j = 0; j < writeSize; j ++) a[j] = "a".charCodeAt(0)
+      var b = new Buffer(writeSize);
+      for (var j = 0; j < writeSize; j ++) b[j] = "b".charCodeAt(0)
+      f.write(a)
+      f.write(b)
+    }
+    f.end()
+  })
+}) }) })
diff --git a/deps/npm/node_modules/block-stream/bench/dropper-pause.js b/deps/npm/node_modules/block-stream/bench/dropper-pause.js
new file mode 100644 (file)
index 0000000..93e4068
--- /dev/null
@@ -0,0 +1,70 @@
+var BlockStream = require("dropper")
+
+var blockSizes = [16, 25, 1024]
+  , writeSizes = [4, 8, 15, 16, 17, 64, 100]
+  , writeCounts = [1, 10, 100]
+  , tap = require("tap")
+
+writeCounts.forEach(function (writeCount) {
+blockSizes.forEach(function (blockSize) {
+writeSizes.forEach(function (writeSize) {
+  tap.test("writeSize=" + writeSize +
+           " blockSize="+blockSize +
+           " writeCount="+writeCount, function (t) {
+    var f = new BlockStream(blockSize, {nopad: true })
+
+    var actualChunks = 0
+    var actualBytes = 0
+    var timeouts = 0
+
+    f.on("data", function (c) {
+      timeouts ++
+
+      actualChunks ++
+      actualBytes += c.length
+
+      // make sure that no data gets corrupted, and basic sanity
+      var before = c.toString()
+      // simulate a slow write operation
+      f.pause()
+      setTimeout(function () {
+        timeouts --
+
+        var after = c.toString()
+        t.equal(after, before, "should not change data")
+
+        // now corrupt it, to find leaks.
+        for (var i = 0; i < c.length; i ++) {
+          c[i] = "x".charCodeAt(0)
+        }
+        f.resume()
+      }, 100)
+    })
+
+    f.on("end", function () {
+      // round up to the nearest block size
+      var expectChunks = Math.ceil(writeSize * writeCount  * 2 / blockSize)
+      var expectBytes = writeSize * writeCount * 2
+      t.equal(actualBytes, expectBytes,
+              "bytes=" + expectBytes + " writeSize=" + writeSize)
+      t.equal(actualChunks, expectChunks,
+              "chunks=" + expectChunks + " writeSize=" + writeSize)
+
+      // wait for all the timeout checks to finish, then end the test
+      setTimeout(function WAIT () {
+        if (timeouts > 0) return setTimeout(WAIT)
+        t.end()
+      }, 100)
+    })
+
+    for (var i = 0; i < writeCount; i ++) {
+      var a = new Buffer(writeSize);
+      for (var j = 0; j < writeSize; j ++) a[j] = "a".charCodeAt(0)
+      var b = new Buffer(writeSize);
+      for (var j = 0; j < writeSize; j ++) b[j] = "b".charCodeAt(0)
+      f.write(a)
+      f.write(b)
+    }
+    f.end()
+  })
+}) }) })
diff --git a/deps/npm/node_modules/block-stream/bench/dropper.js b/deps/npm/node_modules/block-stream/bench/dropper.js
new file mode 100644 (file)
index 0000000..55fa133
--- /dev/null
@@ -0,0 +1,68 @@
+var BlockStream = require("dropper")
+
+var blockSizes = [16, 25, 1024]
+  , writeSizes = [4, 8, 15, 16, 17, 64, 100]
+  , writeCounts = [1, 10, 100]
+  , tap = require("tap")
+
+writeCounts.forEach(function (writeCount) {
+blockSizes.forEach(function (blockSize) {
+writeSizes.forEach(function (writeSize) {
+  tap.test("writeSize=" + writeSize +
+           " blockSize="+blockSize +
+           " writeCount="+writeCount, function (t) {
+    var f = new BlockStream(blockSize, {nopad: true })
+
+    var actualChunks = 0
+    var actualBytes = 0
+    var timeouts = 0
+
+    f.on("data", function (c) {
+      timeouts ++
+
+      actualChunks ++
+      actualBytes += c.length
+
+      // make sure that no data gets corrupted, and basic sanity
+      var before = c.toString()
+      // simulate a slow write operation
+      setTimeout(function () {
+        timeouts --
+
+        var after = c.toString()
+        t.equal(after, before, "should not change data")
+
+        // now corrupt it, to find leaks.
+        for (var i = 0; i < c.length; i ++) {
+          c[i] = "x".charCodeAt(0)
+        }
+      }, 100)
+    })
+
+    f.on("end", function () {
+      // round up to the nearest block size
+      var expectChunks = Math.ceil(writeSize * writeCount  * 2 / blockSize)
+      var expectBytes = writeSize * writeCount * 2
+      t.equal(actualBytes, expectBytes,
+              "bytes=" + expectBytes + " writeSize=" + writeSize)
+      t.equal(actualChunks, expectChunks,
+              "chunks=" + expectChunks + " writeSize=" + writeSize)
+
+      // wait for all the timeout checks to finish, then end the test
+      setTimeout(function WAIT () {
+        if (timeouts > 0) return setTimeout(WAIT)
+        t.end()
+      }, 100)
+    })
+
+    for (var i = 0; i < writeCount; i ++) {
+      var a = new Buffer(writeSize);
+      for (var j = 0; j < writeSize; j ++) a[j] = "a".charCodeAt(0)
+      var b = new Buffer(writeSize);
+      for (var j = 0; j < writeSize; j ++) b[j] = "b".charCodeAt(0)
+      f.write(a)
+      f.write(b)
+    }
+    f.end()
+  })
+}) }) })
index 1080b6b..273b1dc 100644 (file)
@@ -1,14 +1,18 @@
 {
-  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
+  "author": {
+    "name": "Isaac Z. Schlueter",
+    "email": "i@izs.me",
+    "url": "http://blog.izs.me/"
+  },
   "name": "block-stream",
   "description": "a stream of blocks",
-  "version": "0.0.5",
+  "version": "0.0.6",
   "repository": {
     "type": "git",
     "url": "git://github.com/isaacs/block-stream.git"
   },
   "engines": {
-    "node": "0.4 || ~0.5.8 || 0.6 || 0.7"
+    "node": "0.4 || >=0.5.8"
   },
   "main": "block-stream.js",
   "dependencies": {
@@ -19,5 +23,9 @@
   },
   "scripts": {
     "test": "tap test/"
-  }
+  },
+  "license": "BSD",
+  "readme": "# block-stream\n\nA stream of blocks.\n\nWrite data into it, and it'll output data in buffer blocks the size you\nspecify, padding with zeroes if necessary.\n\n```javascript\nvar block = new BlockStream(512)\nfs.createReadStream(\"some-file\").pipe(block)\nblock.pipe(fs.createWriteStream(\"block-file\"))\n```\n\nWhen `.end()` or `.flush()` is called, it'll pad the block with zeroes.\n",
+  "_id": "block-stream@0.0.6",
+  "_from": "block-stream@*"
 }
diff --git a/deps/npm/node_modules/block-stream/test/basic.js b/deps/npm/node_modules/block-stream/test/basic.js
new file mode 100644 (file)
index 0000000..b4b9305
--- /dev/null
@@ -0,0 +1,27 @@
+var tap = require("tap")
+  , BlockStream = require("../block-stream.js")
+
+tap.test("basic test", function (t) {
+  var b = new BlockStream(16)
+  var fs = require("fs")
+  var fstr = fs.createReadStream(__filename, {encoding: "utf8"})
+  fstr.pipe(b)
+
+  var stat
+  t.doesNotThrow(function () {
+    stat = fs.statSync(__filename)
+  }, "stat should not throw")
+
+  var totalBytes = 0
+  b.on("data", function (c) {
+    t.equal(c.length, 16, "chunks should be 16 bytes long")
+    t.type(c, Buffer, "chunks should be buffer objects")
+    totalBytes += c.length
+  })
+  b.on("end", function () {
+    var expectedBytes = stat.size + (16 - stat.size % 16)
+    t.equal(totalBytes, expectedBytes, "Should be multiple of 16")
+    t.end()
+  })
+
+})
diff --git a/deps/npm/node_modules/block-stream/test/nopad-thorough.js b/deps/npm/node_modules/block-stream/test/nopad-thorough.js
new file mode 100644 (file)
index 0000000..7a8de88
--- /dev/null
@@ -0,0 +1,68 @@
+var BlockStream = require("../block-stream.js")
+
+var blockSizes = [16]//, 25]//, 1024]
+  , writeSizes = [4, 15, 16, 17, 64 ]//, 64, 100]
+  , writeCounts = [1, 10]//, 100]
+  , tap = require("tap")
+
+writeCounts.forEach(function (writeCount) {
+blockSizes.forEach(function (blockSize) {
+writeSizes.forEach(function (writeSize) {
+  tap.test("writeSize=" + writeSize +
+           " blockSize="+blockSize +
+           " writeCount="+writeCount, function (t) {
+    var f = new BlockStream(blockSize, {nopad: true })
+
+    var actualChunks = 0
+    var actualBytes = 0
+    var timeouts = 0
+
+    f.on("data", function (c) {
+      timeouts ++
+
+      actualChunks ++
+      actualBytes += c.length
+
+      // make sure that no data gets corrupted, and basic sanity
+      var before = c.toString()
+      // simulate a slow write operation
+      setTimeout(function () {
+        timeouts --
+
+        var after = c.toString()
+        t.equal(after, before, "should not change data")
+
+        // now corrupt it, to find leaks.
+        for (var i = 0; i < c.length; i ++) {
+          c[i] = "x".charCodeAt(0)
+        }
+      }, 100)
+    })
+
+    f.on("end", function () {
+      // round up to the nearest block size
+      var expectChunks = Math.ceil(writeSize * writeCount  * 2 / blockSize)
+      var expectBytes = writeSize * writeCount * 2
+      t.equal(actualBytes, expectBytes,
+              "bytes=" + expectBytes + " writeSize=" + writeSize)
+      t.equal(actualChunks, expectChunks,
+              "chunks=" + expectChunks + " writeSize=" + writeSize)
+
+      // wait for all the timeout checks to finish, then end the test
+      setTimeout(function WAIT () {
+        if (timeouts > 0) return setTimeout(WAIT)
+        t.end()
+      }, 100)
+    })
+
+    for (var i = 0; i < writeCount; i ++) {
+      var a = new Buffer(writeSize);
+      for (var j = 0; j < writeSize; j ++) a[j] = "a".charCodeAt(0)
+      var b = new Buffer(writeSize);
+      for (var j = 0; j < writeSize; j ++) b[j] = "b".charCodeAt(0)
+      f.write(a)
+      f.write(b)
+    }
+    f.end()
+  })
+}) }) })
diff --git a/deps/npm/node_modules/block-stream/test/nopad.js b/deps/npm/node_modules/block-stream/test/nopad.js
new file mode 100644 (file)
index 0000000..6d38429
--- /dev/null
@@ -0,0 +1,57 @@
+var BlockStream = require("../")
+var tap = require("tap")
+
+
+tap.test("don't pad, small writes", function (t) {
+  var f = new BlockStream(16, { nopad: true })
+  t.plan(1)
+
+  f.on("data", function (c) {
+    t.equal(c.toString(), "abc", "should get 'abc'")
+  })
+
+  f.on("end", function () { t.end() })
+
+  f.write(new Buffer("a"))
+  f.write(new Buffer("b"))
+  f.write(new Buffer("c"))
+  f.end()
+})
+
+tap.test("don't pad, exact write", function (t) {
+  var f = new BlockStream(16, { nopad: true })
+  t.plan(1)
+
+  var first = true
+  f.on("data", function (c) {
+    if (first) {
+      first = false
+      t.equal(c.toString(), "abcdefghijklmnop", "first chunk")
+    } else {
+      t.fail("should only get one")
+    }
+  })
+
+  f.on("end", function () { t.end() })
+
+  f.end(new Buffer("abcdefghijklmnop"))
+})
+
+tap.test("don't pad, big write", function (t) {
+  var f = new BlockStream(16, { nopad: true })
+  t.plan(2)
+
+  var first = true
+  f.on("data", function (c) {
+    if (first) {
+      first = false
+      t.equal(c.toString(), "abcdefghijklmnop", "first chunk")
+    } else {
+      t.equal(c.toString(), "q")
+    }
+  })
+
+  f.on("end", function () { t.end() })
+
+  f.end(new Buffer("abcdefghijklmnopq"))
+})
diff --git a/deps/npm/node_modules/block-stream/test/pause-resume.js b/deps/npm/node_modules/block-stream/test/pause-resume.js
new file mode 100644 (file)
index 0000000..64d0d09
--- /dev/null
@@ -0,0 +1,73 @@
+var BlockStream = require("../block-stream.js")
+
+var blockSizes = [16]
+  , writeSizes = [15, 16, 17]
+  , writeCounts = [1, 10]//, 100]
+  , tap = require("tap")
+
+writeCounts.forEach(function (writeCount) {
+blockSizes.forEach(function (blockSize) {
+writeSizes.forEach(function (writeSize) {
+  tap.test("writeSize=" + writeSize +
+           " blockSize="+blockSize +
+           " writeCount="+writeCount, function (t) {
+    var f = new BlockStream(blockSize)
+
+    var actualChunks = 0
+    var actualBytes = 0
+    var timeouts = 0
+    var paused = false
+
+    f.on("data", function (c) {
+      timeouts ++
+      t.notOk(paused, "should not be paused when emitting data")
+
+      actualChunks ++
+      actualBytes += c.length
+
+      // make sure that no data gets corrupted, and basic sanity
+      var before = c.toString()
+      // simulate a slow write operation
+      paused = true
+      f.pause()
+      process.nextTick(function () {
+        var after = c.toString()
+        t.equal(after, before, "should not change data")
+
+        // now corrupt it, to find leaks.
+        for (var i = 0; i < c.length; i ++) {
+          c[i] = "x".charCodeAt(0)
+        }
+        paused = false
+        f.resume()
+        timeouts --
+      })
+    })
+
+    f.on("end", function () {
+      // round up to the nearest block size
+      var expectChunks = Math.ceil(writeSize * writeCount  * 2 / blockSize)
+      var expectBytes = expectChunks * blockSize
+      t.equal(actualBytes, expectBytes,
+              "bytes=" + expectBytes + " writeSize=" + writeSize)
+      t.equal(actualChunks, expectChunks,
+              "chunks=" + expectChunks + " writeSize=" + writeSize)
+
+      // wait for all the timeout checks to finish, then end the test
+      setTimeout(function WAIT () {
+        if (timeouts > 0) return setTimeout(WAIT)
+        t.end()
+      }, 200)
+    })
+
+    for (var i = 0; i < writeCount; i ++) {
+      var a = new Buffer(writeSize);
+      for (var j = 0; j < writeSize; j ++) a[j] = "a".charCodeAt(0)
+      var b = new Buffer(writeSize);
+      for (var j = 0; j < writeSize; j ++) b[j] = "b".charCodeAt(0)
+      f.write(a)
+      f.write(b)
+    }
+    f.end()
+  })
+}) }) })
diff --git a/deps/npm/node_modules/block-stream/test/thorough.js b/deps/npm/node_modules/block-stream/test/thorough.js
new file mode 100644 (file)
index 0000000..1cc9ea0
--- /dev/null
@@ -0,0 +1,68 @@
+var BlockStream = require("../block-stream.js")
+
+var blockSizes = [16]//, 25]//, 1024]
+  , writeSizes = [4, 15, 16, 17, 64 ]//, 64, 100]
+  , writeCounts = [1, 10]//, 100]
+  , tap = require("tap")
+
+writeCounts.forEach(function (writeCount) {
+blockSizes.forEach(function (blockSize) {
+writeSizes.forEach(function (writeSize) {
+  tap.test("writeSize=" + writeSize +
+           " blockSize="+blockSize +
+           " writeCount="+writeCount, function (t) {
+    var f = new BlockStream(blockSize)
+
+    var actualChunks = 0
+    var actualBytes = 0
+    var timeouts = 0
+
+    f.on("data", function (c) {
+      timeouts ++
+
+      actualChunks ++
+      actualBytes += c.length
+
+      // make sure that no data gets corrupted, and basic sanity
+      var before = c.toString()
+      // simulate a slow write operation
+      setTimeout(function () {
+        timeouts --
+
+        var after = c.toString()
+        t.equal(after, before, "should not change data")
+
+        // now corrupt it, to find leaks.
+        for (var i = 0; i < c.length; i ++) {
+          c[i] = "x".charCodeAt(0)
+        }
+      }, 100)
+    })
+
+    f.on("end", function () {
+      // round up to the nearest block size
+      var expectChunks = Math.ceil(writeSize * writeCount  * 2 / blockSize)
+      var expectBytes = expectChunks * blockSize
+      t.equal(actualBytes, expectBytes,
+              "bytes=" + expectBytes + " writeSize=" + writeSize)
+      t.equal(actualChunks, expectChunks,
+              "chunks=" + expectChunks + " writeSize=" + writeSize)
+
+      // wait for all the timeout checks to finish, then end the test
+      setTimeout(function WAIT () {
+        if (timeouts > 0) return setTimeout(WAIT)
+        t.end()
+      }, 100)
+    })
+
+    for (var i = 0; i < writeCount; i ++) {
+      var a = new Buffer(writeSize);
+      for (var j = 0; j < writeSize; j ++) a[j] = "a".charCodeAt(0)
+      var b = new Buffer(writeSize);
+      for (var j = 0; j < writeSize; j ++) b[j] = "b".charCodeAt(0)
+      f.write(a)
+      f.write(b)
+    }
+    f.end()
+  })
+}) }) })
diff --git a/deps/npm/node_modules/block-stream/test/two-stream.js b/deps/npm/node_modules/block-stream/test/two-stream.js
new file mode 100644 (file)
index 0000000..c6db79a
--- /dev/null
@@ -0,0 +1,59 @@
+var log = console.log,
+    assert = require( 'assert' ),
+    BlockStream = require("../block-stream.js"),
+    isize = 0, tsize = 0, fsize = 0, psize = 0, i = 0,
+    filter = null, paper = null, stack = null,
+
+// a source data buffer
+tsize = 1 * 1024; // <- 1K
+stack = new Buffer( tsize );
+for ( ; i < tsize; i++) stack[i] = "x".charCodeAt(0);
+
+isize = 1 * 1024; // <- initial packet size with 4K no bug!
+fsize = 2 * 1024 ; // <- first block-stream size 
+psize = Math.ceil( isize / 6 ); // <- second block-stream size
+
+fexpected = Math.ceil( tsize / fsize ); // <- packets expected for first 
+pexpected = Math.ceil( tsize / psize ); // <- packets expected for second
+
+
+filter = new BlockStream( fsize, { nopad : true } );
+paper = new BlockStream( psize, { nopad : true } );
+
+
+var fcounter = 0;
+filter.on( 'data', function (c) {
+  // verify that they're not null-padded
+  for (var i = 0; i < c.length; i ++) {
+    assert.strictEqual(c[i], "x".charCodeAt(0))
+  }
+    ++fcounter;
+} );
+
+var pcounter = 0;
+paper.on( 'data', function (c) {
+  // verify that they're not null-padded
+  for (var i = 0; i < c.length; i ++) {
+    assert.strictEqual(c[i], "x".charCodeAt(0))
+  }
+    ++pcounter;
+} );
+
+filter.pipe( paper );
+
+filter.on( 'end', function () {
+  log("fcounter: %s === %s", fcounter, fexpected)
+    assert.strictEqual( fcounter, fexpected );
+} );
+
+paper.on( 'end', function () {
+  log("pcounter: %s === %s", pcounter, pexpected);
+    assert.strictEqual( pcounter, pexpected );
+} );
+
+
+for ( i = 0, j = isize; j <= tsize; j += isize ) {
+    filter.write( stack.slice( j - isize, j ) );
+}
+
+filter.end();
index 384b0d8..486226a 100644 (file)
@@ -114,14 +114,22 @@ function regRequest (method, where, what, etag, nofollow, cb_) {
                      , function (er, parsed, raw, response) {
       // Only retry on 408, 5xx or no `response`.
       var statusCode = response && response.statusCode
-      var statusRetry = !statusCode || (statusCode === 408 || statusCode >= 500)
+      var reauth = statusCode === 401
+      var timeout = statusCode === 408
+      var serverError = statusCode >= 500
+      var statusRetry = !statusCode || timeout || serverError
+      if (reauth && this.auth && this.token) {
+        this.token = null
+        this.couchLogin.token = null
+        return regRequest.call(this, method, where, what, etag, nofollow, cb_)
+      }
       if (er && statusRetry && operation.retry(er)) {
         self.log.info("retry", "will retry, error on last attempt: " + er)
         return
       }
       cb.apply(null, arguments)
-    })
-  })
+    }.bind(this))
+  }.bind(this))
 }
 
 function makeRequest (method, remote, where, what, etag, nofollow, tok, cb_) {
index 47b6dc4..ff9e6c3 100644 (file)
@@ -6,7 +6,7 @@
   },
   "name": "npm-registry-client",
   "description": "Client for the npm registry",
-  "version": "0.0.10",
+  "version": "0.0.11",
   "repository": {
     "url": "git://github.com/isaacs/npm-registry-client"
   },
@@ -35,6 +35,6 @@
   },
   "license": "BSD",
   "readme": "# npm-registry-client\n\nThe code that npm uses to talk to the registry.\n\nIt handles all the caching and HTTP calls.\n\n## Usage\n\n```javascript\nvar RegClient = require('npm-registry-client')\nvar client = new RegClient(options)\n\nclient.get(\"npm\", \"latest\", 1000, function (er, data, raw, res) {\n  // error is an error if there was a problem.\n  // data is the parsed data object\n  // raw is the json string\n  // res is the response from couch\n})\n```\n\n# Options\n\n* `registry` **Required** {String} URL to the registry\n* `cache` **Required** {String} Path to the cache folder\n* `alwaysAuth` {Boolean} Auth even for GET requests.\n* `auth` {String} A base64-encoded `username:password`\n* `email` {String} User's email address\n* `tag` {String} The default tag to use when publishing new packages.\n  Default = `\"latest\"`\n* `ca` {String} Cerficate signing authority certificates to trust.\n* `strictSSL` {Boolean} Whether or not to be strict with SSL\n  certificates.  Default = `true`\n* `userAgent` {String} User agent header to send.  Default =\n  `\"node/{process.version}\"`\n* `log` {Object} The logger to use.  Defaults to `require(\"npmlog\")` if\n  that works, otherwise logs are disabled.\n* `retries` {Number} Number of times to retry on GET failures.\n  Default=2\n* `retryFactor` {Number} `factor` setting for `node-retry`. Default=10\n* `retryMinTimeout` {Number} `minTimeout` setting for `node-retry`.\n  Default=10000 (10 seconds)\n* `retryMaxTimeout` {Number} `maxTimeout` setting for `node-retry`.\n  Default=60000 (60 seconds)\n\n# client.request(method, where, [what], [etag], [nofollow], cb)\n\n* `method` {String} HTTP method\n* `where` {String} Path to request on the server\n* `what` {Stream | Buffer | String | Object} The request body.  Objects\n  that are not Buffers or Streams are encoded as JSON.\n* `etag` {String} The cached ETag\n* `nofollow` {Boolean} Prevent following 302/301 responses\n* `cb` {Function}\n  * `error` {Error | null}\n  * `data` {Object} the parsed data object\n  * `raw` {String} the json\n  * `res` {Response Object} response from couch\n\nMake a request to the registry.  All the other methods are wrappers\naround this. one.\n\n# client.adduser(username, password, email, cb)\n\n* `username` {String}\n* `password` {String}\n* `email` {String}\n* `cb` {Function}\n\nAdd a user account to the registry, or verify the credentials.\n\n# client.get(url, [timeout], [nofollow], [staleOk], cb)\n\n* `url` {String} The url path to fetch\n* `timeout` {Number} Number of seconds old that a cached copy must be\n  before a new request will be made.\n* `nofollow` {Boolean} Do not follow 301/302 responses\n* `staleOk` {Boolean} If there's cached data available, then return that\n  to the callback quickly, and update the cache the background.\n\nFetches data from the registry via a GET request, saving it in\nthe cache folder with the ETag.\n\n# client.publish(data, tarball, [readme], cb)\n\n* `data` {Object} Package data\n* `tarball` {String | Stream} Filename or stream of the package tarball\n* `readme` {String} Contents of the README markdown file\n* `cb` {Function}\n\nPublish a package to the registry.\n\nNote that this does not create the tarball from a folder.  However, it\ncan accept a gzipped tar stream or a filename to a tarball.\n\n# client.star(package, starred, cb)\n\n* `package` {String} Name of the package to star\n* `starred` {Boolean} True to star the package, false to unstar it.\n* `cb` {Function}\n\nStar or unstar a package.\n\nNote that the user does not have to be the package owner to star or\nunstar a package, though other writes do require that the user be the\npackage owner.\n\n# client.tag(project, version, tag, cb)\n\n* `project` {String} Project name\n* `version` {String} Version to tag\n* `tag` {String} Tag name to apply\n* `cb` {Function}\n\nMark a version in the `dist-tags` hash, so that `pkg@tag`\nwill fetch the specified version.\n\n# client.unpublish(name, [ver], cb)\n\n* `name` {String} package name\n* `ver` {String} version to unpublish. Leave blank to unpublish all\n  versions.\n* `cb` {Function}\n\nRemove a version of a package (or all versions) from the registry.  When\nthe last version us unpublished, the entire document is removed from the\ndatabase.\n\n# client.upload(where, file, [etag], [nofollow], cb)\n\n* `where` {String} URL path to upload to\n* `file` {String | Stream} Either the filename or a readable stream\n* `etag` {String} Cache ETag\n* `nofollow` {Boolean} Do not follow 301/302 responses\n* `cb` {Function}\n\nUpload an attachment.  Mostly used by `client.publish()`.\n",
-  "_id": "npm-registry-client@0.0.10",
+  "_id": "npm-registry-client@0.0.11",
   "_from": "npm-registry-client@0"
 }
diff --git a/deps/npm/node_modules/slide/nodejs-controlling-flow.pdf b/deps/npm/node_modules/slide/nodejs-controlling-flow.pdf
deleted file mode 100644 (file)
index ca12d60..0000000
Binary files a/deps/npm/node_modules/slide/nodejs-controlling-flow.pdf and /dev/null differ
index 024807f..8175565 100644 (file)
@@ -1,5 +1,5 @@
 {
-  "version": "1.1.41",
+  "version": "1.1.43",
   "name": "npm",
   "publishConfig": {
     "proprietary-attribs": false
diff --git a/deps/npm/test/packages/npm-test-array-bin/README b/deps/npm/test/packages/npm-test-array-bin/README
new file mode 100644 (file)
index 0000000..8848f07
--- /dev/null
@@ -0,0 +1 @@
+just an npm test
diff --git a/deps/npm/test/packages/npm-test-blerg/README b/deps/npm/test/packages/npm-test-blerg/README
new file mode 100644 (file)
index 0000000..8848f07
--- /dev/null
@@ -0,0 +1 @@
+just an npm test
diff --git a/deps/npm/test/packages/npm-test-bundled-git/README b/deps/npm/test/packages/npm-test-bundled-git/README
new file mode 100644 (file)
index 0000000..8848f07
--- /dev/null
@@ -0,0 +1 @@
+just an npm test
diff --git a/deps/npm/test/packages/npm-test-dir-bin/README b/deps/npm/test/packages/npm-test-dir-bin/README
new file mode 100644 (file)
index 0000000..8848f07
--- /dev/null
@@ -0,0 +1 @@
+just an npm test
diff --git a/deps/npm/test/packages/npm-test-env-reader/README b/deps/npm/test/packages/npm-test-env-reader/README
new file mode 100644 (file)
index 0000000..8848f07
--- /dev/null
@@ -0,0 +1 @@
+just an npm test
diff --git a/deps/npm/test/packages/npm-test-files/ignore3 b/deps/npm/test/packages/npm-test-files/ignore3
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/deps/npm/test/packages/npm-test-files/ignoredir1/a b/deps/npm/test/packages/npm-test-files/ignoredir1/a
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/deps/npm/test/packages/npm-test-files/ignoredir2/a b/deps/npm/test/packages/npm-test-files/ignoredir2/a
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/deps/npm/test/packages/npm-test-files/sub/ignore1 b/deps/npm/test/packages/npm-test-files/sub/ignore1
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/deps/npm/test/packages/npm-test-files/sub/ignore3 b/deps/npm/test/packages/npm-test-files/sub/ignore3
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/deps/npm/test/packages/npm-test-ignore-nested-nm/README b/deps/npm/test/packages/npm-test-ignore-nested-nm/README
new file mode 100644 (file)
index 0000000..8848f07
--- /dev/null
@@ -0,0 +1 @@
+just an npm test
diff --git a/deps/npm/test/packages/npm-test-ignore/README b/deps/npm/test/packages/npm-test-ignore/README
new file mode 100644 (file)
index 0000000..8848f07
--- /dev/null
@@ -0,0 +1 @@
+just an npm test
diff --git a/deps/npm/test/packages/npm-test-ignore/ignore3 b/deps/npm/test/packages/npm-test-ignore/ignore3
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/deps/npm/test/packages/npm-test-ignore/ignoredir1/a b/deps/npm/test/packages/npm-test-ignore/ignoredir1/a
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/deps/npm/test/packages/npm-test-ignore/ignoredir2/a b/deps/npm/test/packages/npm-test-ignore/ignoredir2/a
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/deps/npm/test/packages/npm-test-ignore/sub/ignore1 b/deps/npm/test/packages/npm-test-ignore/sub/ignore1
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/deps/npm/test/packages/npm-test-ignore/sub/ignore3 b/deps/npm/test/packages/npm-test-ignore/sub/ignore3
deleted file mode 100644 (file)
index e69de29..0000000
index cdf47f2..05fbaf1 100644 (file)
@@ -8,11 +8,13 @@ x=`find . | grep -v ignore | sort`
 y=".
 ./include4
 ./package.json
+./README
 ./sub
 ./sub/include
 ./sub/include2
 ./sub/include4
 ./test.sh"
+y="`echo "$y" | sort`"
 if [ "$x" != "$y" ]; then
   echo "missing included files"
   echo "got:"
diff --git a/deps/npm/test/packages/npm-test-missing-bindir/README b/deps/npm/test/packages/npm-test-missing-bindir/README
new file mode 100644 (file)
index 0000000..8848f07
--- /dev/null
@@ -0,0 +1 @@
+just an npm test
diff --git a/deps/npm/test/packages/npm-test-optional-deps/README b/deps/npm/test/packages/npm-test-optional-deps/README
new file mode 100644 (file)
index 0000000..8848f07
--- /dev/null
@@ -0,0 +1 @@
+just an npm test
diff --git a/deps/npm/test/packages/npm-test-platform-all/README b/deps/npm/test/packages/npm-test-platform-all/README
new file mode 100644 (file)
index 0000000..8848f07
--- /dev/null
@@ -0,0 +1 @@
+just an npm test
diff --git a/deps/npm/test/packages/npm-test-platform/README b/deps/npm/test/packages/npm-test-platform/README
new file mode 100644 (file)
index 0000000..8848f07
--- /dev/null
@@ -0,0 +1 @@
+just an npm test
diff --git a/deps/npm/test/packages/npm-test-private/README b/deps/npm/test/packages/npm-test-private/README
new file mode 100644 (file)
index 0000000..8848f07
--- /dev/null
@@ -0,0 +1 @@
+just an npm test
diff --git a/deps/npm/test/packages/npm-test-shrinkwrap/README b/deps/npm/test/packages/npm-test-shrinkwrap/README
new file mode 100644 (file)
index 0000000..8848f07
--- /dev/null
@@ -0,0 +1 @@
+just an npm test
diff --git a/deps/npm/test/packages/npm-test-test-package/README b/deps/npm/test/packages/npm-test-test-package/README
new file mode 100644 (file)
index 0000000..8848f07
--- /dev/null
@@ -0,0 +1 @@
+just an npm test
diff --git a/deps/npm/test/packages/npm-test-url-dep/README b/deps/npm/test/packages/npm-test-url-dep/README
new file mode 100644 (file)
index 0000000..8848f07
--- /dev/null
@@ -0,0 +1 @@
+just an npm test