aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2013-01-11 10:18:07 -0800
committerisaacs <i@izs.me>2013-01-11 10:18:07 -0800
commit97db62b4d9f7de385ccbcddb70ae048b050f5c24 (patch)
treeb229a05031c68d0b2f087d6bccebf65d85b80f1d
parent6a91eab0970a87431743c79ecb8e3efaed1796d9 (diff)
parent4fa3fd1cc0eb5a63d8b3644af5b4dc2d6cc0cc86 (diff)
downloadandroid-node-v8-97db62b4d9f7de385ccbcddb70ae048b050f5c24.tar.gz
android-node-v8-97db62b4d9f7de385ccbcddb70ae048b050f5c24.tar.bz2
android-node-v8-97db62b4d9f7de385ccbcddb70ae048b050f5c24.zip
Merge remote-tracking branch 'ry/v0.8' into master
Conflicts: AUTHORS ChangeLog Makefile src/node_version.h
-rw-r--r--AUTHORS4
-rw-r--r--ChangeLog17
-rw-r--r--Makefile2
-rw-r--r--deps/npm/doc/cli/json.md4
-rw-r--r--deps/npm/doc/cli/scripts.md53
-rw-r--r--deps/npm/doc/cli/semver.md6
-rw-r--r--deps/npm/html/api/bin.html2
-rw-r--r--deps/npm/html/api/bugs.html2
-rw-r--r--deps/npm/html/api/commands.html2
-rw-r--r--deps/npm/html/api/config.html2
-rw-r--r--deps/npm/html/api/deprecate.html2
-rw-r--r--deps/npm/html/api/docs.html2
-rw-r--r--deps/npm/html/api/edit.html2
-rw-r--r--deps/npm/html/api/explore.html2
-rw-r--r--deps/npm/html/api/help-search.html2
-rw-r--r--deps/npm/html/api/init.html2
-rw-r--r--deps/npm/html/api/install.html2
-rw-r--r--deps/npm/html/api/link.html2
-rw-r--r--deps/npm/html/api/load.html2
-rw-r--r--deps/npm/html/api/ls.html2
-rw-r--r--deps/npm/html/api/npm.html4
-rw-r--r--deps/npm/html/api/outdated.html2
-rw-r--r--deps/npm/html/api/owner.html2
-rw-r--r--deps/npm/html/api/pack.html2
-rw-r--r--deps/npm/html/api/prefix.html2
-rw-r--r--deps/npm/html/api/prune.html2
-rw-r--r--deps/npm/html/api/publish.html2
-rw-r--r--deps/npm/html/api/rebuild.html2
-rw-r--r--deps/npm/html/api/restart.html2
-rw-r--r--deps/npm/html/api/root.html2
-rw-r--r--deps/npm/html/api/run-script.html2
-rw-r--r--deps/npm/html/api/search.html2
-rw-r--r--deps/npm/html/api/shrinkwrap.html2
-rw-r--r--deps/npm/html/api/start.html2
-rw-r--r--deps/npm/html/api/stop.html2
-rw-r--r--deps/npm/html/api/submodule.html2
-rw-r--r--deps/npm/html/api/tag.html2
-rw-r--r--deps/npm/html/api/test.html2
-rw-r--r--deps/npm/html/api/uninstall.html2
-rw-r--r--deps/npm/html/api/unpublish.html2
-rw-r--r--deps/npm/html/api/update.html2
-rw-r--r--deps/npm/html/api/version.html2
-rw-r--r--deps/npm/html/api/view.html2
-rw-r--r--deps/npm/html/api/whoami.html2
-rw-r--r--deps/npm/html/doc/README.html2
-rw-r--r--deps/npm/html/doc/adduser.html2
-rw-r--r--deps/npm/html/doc/bin.html2
-rw-r--r--deps/npm/html/doc/bugs.html2
-rw-r--r--deps/npm/html/doc/build.html2
-rw-r--r--deps/npm/html/doc/bundle.html2
-rw-r--r--deps/npm/html/doc/cache.html2
-rw-r--r--deps/npm/html/doc/changelog.html2
-rw-r--r--deps/npm/html/doc/coding-style.html2
-rw-r--r--deps/npm/html/doc/completion.html2
-rw-r--r--deps/npm/html/doc/config.html2
-rw-r--r--deps/npm/html/doc/dedupe.html2
-rw-r--r--deps/npm/html/doc/deprecate.html2
-rw-r--r--deps/npm/html/doc/developers.html2
-rw-r--r--deps/npm/html/doc/disputes.html2
-rw-r--r--deps/npm/html/doc/docs.html2
-rw-r--r--deps/npm/html/doc/edit.html2
-rw-r--r--deps/npm/html/doc/explore.html2
-rw-r--r--deps/npm/html/doc/faq.html2
-rw-r--r--deps/npm/html/doc/folders.html2
-rw-r--r--deps/npm/html/doc/help-search.html2
-rw-r--r--deps/npm/html/doc/help.html2
-rw-r--r--deps/npm/html/doc/index.html2
-rw-r--r--deps/npm/html/doc/init.html2
-rw-r--r--deps/npm/html/doc/install.html2
-rw-r--r--deps/npm/html/doc/json.html4
-rw-r--r--deps/npm/html/doc/link.html2
-rw-r--r--deps/npm/html/doc/ls.html4
-rw-r--r--deps/npm/html/doc/npm.html4
-rw-r--r--deps/npm/html/doc/outdated.html2
-rw-r--r--deps/npm/html/doc/owner.html2
-rw-r--r--deps/npm/html/doc/pack.html2
-rw-r--r--deps/npm/html/doc/prefix.html2
-rw-r--r--deps/npm/html/doc/prune.html2
-rw-r--r--deps/npm/html/doc/publish.html2
-rw-r--r--deps/npm/html/doc/rebuild.html2
-rw-r--r--deps/npm/html/doc/registry.html2
-rw-r--r--deps/npm/html/doc/removing-npm.html2
-rw-r--r--deps/npm/html/doc/restart.html2
-rw-r--r--deps/npm/html/doc/root.html2
-rw-r--r--deps/npm/html/doc/run-script.html2
-rw-r--r--deps/npm/html/doc/scripts.html51
-rw-r--r--deps/npm/html/doc/search.html2
-rw-r--r--deps/npm/html/doc/semver.html8
-rw-r--r--deps/npm/html/doc/shrinkwrap.html2
-rw-r--r--deps/npm/html/doc/star.html2
-rw-r--r--deps/npm/html/doc/start.html2
-rw-r--r--deps/npm/html/doc/stop.html2
-rw-r--r--deps/npm/html/doc/submodule.html2
-rw-r--r--deps/npm/html/doc/tag.html2
-rw-r--r--deps/npm/html/doc/test.html2
-rw-r--r--deps/npm/html/doc/uninstall.html2
-rw-r--r--deps/npm/html/doc/unpublish.html2
-rw-r--r--deps/npm/html/doc/update.html2
-rw-r--r--deps/npm/html/doc/version.html2
-rw-r--r--deps/npm/html/doc/view.html2
-rw-r--r--deps/npm/html/doc/whoami.html2
-rw-r--r--deps/npm/lib/cache.js14
-rw-r--r--deps/npm/lib/dedupe.js1
-rw-r--r--deps/npm/lib/deprecate.js2
-rw-r--r--deps/npm/lib/install.js108
-rw-r--r--deps/npm/lib/ls.js17
-rw-r--r--deps/npm/lib/outdated.js2
-rw-r--r--deps/npm/lib/publish.js1
-rw-r--r--deps/npm/lib/run-script.js3
-rw-r--r--deps/npm/lib/uninstall.js1
-rw-r--r--deps/npm/lib/unpublish.js1
-rw-r--r--deps/npm/lib/utils/lifecycle.js1
-rw-r--r--deps/npm/man/man1/README.12
-rw-r--r--deps/npm/man/man1/adduser.12
-rw-r--r--deps/npm/man/man1/bin.12
-rw-r--r--deps/npm/man/man1/bugs.12
-rw-r--r--deps/npm/man/man1/build.12
-rw-r--r--deps/npm/man/man1/bundle.12
-rw-r--r--deps/npm/man/man1/cache.12
-rw-r--r--deps/npm/man/man1/changelog.12
-rw-r--r--deps/npm/man/man1/coding-style.12
-rw-r--r--deps/npm/man/man1/completion.12
-rw-r--r--deps/npm/man/man1/config.12
-rw-r--r--deps/npm/man/man1/dedupe.12
-rw-r--r--deps/npm/man/man1/deprecate.12
-rw-r--r--deps/npm/man/man1/developers.12
-rw-r--r--deps/npm/man/man1/disputes.12
-rw-r--r--deps/npm/man/man1/docs.12
-rw-r--r--deps/npm/man/man1/edit.12
-rw-r--r--deps/npm/man/man1/explore.12
-rw-r--r--deps/npm/man/man1/faq.12
-rw-r--r--deps/npm/man/man1/folders.12
-rw-r--r--deps/npm/man/man1/help-search.12
-rw-r--r--deps/npm/man/man1/help.12
-rw-r--r--deps/npm/man/man1/index.12
-rw-r--r--deps/npm/man/man1/init.12
-rw-r--r--deps/npm/man/man1/install.12
-rw-r--r--deps/npm/man/man1/json.16
-rw-r--r--deps/npm/man/man1/link.12
-rw-r--r--deps/npm/man/man1/ls.14
-rw-r--r--deps/npm/man/man1/npm.14
-rw-r--r--deps/npm/man/man1/outdated.12
-rw-r--r--deps/npm/man/man1/owner.12
-rw-r--r--deps/npm/man/man1/pack.12
-rw-r--r--deps/npm/man/man1/prefix.12
-rw-r--r--deps/npm/man/man1/prune.12
-rw-r--r--deps/npm/man/man1/publish.12
-rw-r--r--deps/npm/man/man1/rebuild.12
-rw-r--r--deps/npm/man/man1/registry.12
-rw-r--r--deps/npm/man/man1/removing-npm.12
-rw-r--r--deps/npm/man/man1/restart.12
-rw-r--r--deps/npm/man/man1/root.12
-rw-r--r--deps/npm/man/man1/run-script.12
-rw-r--r--deps/npm/man/man1/scripts.177
-rw-r--r--deps/npm/man/man1/search.12
-rw-r--r--deps/npm/man/man1/semver.18
-rw-r--r--deps/npm/man/man1/shrinkwrap.12
-rw-r--r--deps/npm/man/man1/star.12
-rw-r--r--deps/npm/man/man1/start.12
-rw-r--r--deps/npm/man/man1/stop.12
-rw-r--r--deps/npm/man/man1/submodule.12
-rw-r--r--deps/npm/man/man1/tag.12
-rw-r--r--deps/npm/man/man1/test.12
-rw-r--r--deps/npm/man/man1/uninstall.12
-rw-r--r--deps/npm/man/man1/unpublish.12
-rw-r--r--deps/npm/man/man1/update.12
-rw-r--r--deps/npm/man/man1/version.12
-rw-r--r--deps/npm/man/man1/view.12
-rw-r--r--deps/npm/man/man1/whoami.12
-rw-r--r--deps/npm/man/man3/bin.32
-rw-r--r--deps/npm/man/man3/bugs.32
-rw-r--r--deps/npm/man/man3/commands.32
-rw-r--r--deps/npm/man/man3/config.32
-rw-r--r--deps/npm/man/man3/deprecate.32
-rw-r--r--deps/npm/man/man3/docs.32
-rw-r--r--deps/npm/man/man3/edit.32
-rw-r--r--deps/npm/man/man3/explore.32
-rw-r--r--deps/npm/man/man3/help-search.32
-rw-r--r--deps/npm/man/man3/init.32
-rw-r--r--deps/npm/man/man3/install.32
-rw-r--r--deps/npm/man/man3/link.32
-rw-r--r--deps/npm/man/man3/load.32
-rw-r--r--deps/npm/man/man3/ls.32
-rw-r--r--deps/npm/man/man3/npm.34
-rw-r--r--deps/npm/man/man3/outdated.32
-rw-r--r--deps/npm/man/man3/owner.32
-rw-r--r--deps/npm/man/man3/pack.32
-rw-r--r--deps/npm/man/man3/prefix.32
-rw-r--r--deps/npm/man/man3/prune.32
-rw-r--r--deps/npm/man/man3/publish.32
-rw-r--r--deps/npm/man/man3/rebuild.32
-rw-r--r--deps/npm/man/man3/restart.32
-rw-r--r--deps/npm/man/man3/root.32
-rw-r--r--deps/npm/man/man3/run-script.32
-rw-r--r--deps/npm/man/man3/search.32
-rw-r--r--deps/npm/man/man3/shrinkwrap.32
-rw-r--r--deps/npm/man/man3/start.32
-rw-r--r--deps/npm/man/man3/stop.32
-rw-r--r--deps/npm/man/man3/submodule.32
-rw-r--r--deps/npm/man/man3/tag.32
-rw-r--r--deps/npm/man/man3/test.32
-rw-r--r--deps/npm/man/man3/uninstall.32
-rw-r--r--deps/npm/man/man3/unpublish.32
-rw-r--r--deps/npm/man/man3/update.32
-rw-r--r--deps/npm/man/man3/version.32
-rw-r--r--deps/npm/man/man3/view.32
-rw-r--r--deps/npm/man/man3/whoami.32
-rw-r--r--deps/npm/node_modules/fstream/lib/file-writer.js5
-rw-r--r--deps/npm/node_modules/fstream/lib/proxy-writer.js4
-rw-r--r--deps/npm/node_modules/fstream/package.json6
-rw-r--r--deps/npm/node_modules/node-gyp/lib/build.js57
-rw-r--r--deps/npm/node_modules/node-gyp/lib/configure.js4
-rw-r--r--deps/npm/node_modules/node-gyp/lib/install.js2
-rw-r--r--deps/npm/node_modules/node-gyp/package.json9
-rw-r--r--deps/npm/node_modules/semver/README.md2
-rw-r--r--deps/npm/node_modules/semver/package.json8
-rw-r--r--deps/npm/package.json4
-rw-r--r--deps/npm/test/packages/npm-test-peer-deps-invalid/README1
-rw-r--r--deps/npm/test/packages/npm-test-peer-deps-invalid/npm-ls.json22
-rw-r--r--deps/npm/test/packages/npm-test-peer-deps-invalid/package.json12
-rw-r--r--deps/npm/test/packages/npm-test-peer-deps-invalid/test.js31
-rw-r--r--deps/npm/test/packages/npm-test-peer-deps/README1
-rw-r--r--deps/npm/test/packages/npm-test-peer-deps/npm-ls.json18
-rw-r--r--deps/npm/test/packages/npm-test-peer-deps/package.json11
-rw-r--r--deps/npm/test/packages/npm-test-peer-deps/test.js20
-rw-r--r--doc/api/process.markdown9
-rw-r--r--doc/blog/release/v0.8.17.md80
-rw-r--r--lib/dgram.js3
-rw-r--r--src/v8_typed_array.cc19
-rw-r--r--test/simple/test-dgram-regress-4496.js32
-rw-r--r--test/simple/test-typed-arrays.js10
-rw-r--r--tools/changelog-head.sh3
232 files changed, 830 insertions, 314 deletions
diff --git a/AUTHORS b/AUTHORS
index 8c19b8198a..c2d23b9c2b 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -382,6 +382,9 @@ Olivier Lalonde <olalonde@gmail.com>
Francois Marier <francois@mozilla.com>
Trevor Norris <trev.norris@gmail.com>
Kai Sasaki Lewuathe <sasaki_kai@lewuathe.sakura.ne.jp>
+Nicolas Chambrier <naholyr@gmail.com>
+Tim Bradshaw <tfb@cley.com>
+Johannes Ewald <mail@johannesewald.de>
Brandon Philips <brandon.philips@rackspace.com>
Frederico Silva <frederico.silva@gmail.com>
Jan Wynholds <jan@rootmusic.com>
@@ -392,7 +395,6 @@ Sergey Kholodilov <serghol@gmail.com>
Tim Kuijsten <tim@netsend.nl>
Michael Axiak <mike@axiak.net>
Chad Rhyner <chadrhyner@gmail.com>
-Nicolas Chambrier <naholyr@gmail.com>
Ben Taber <ben.taber@gmail.com>
Luke Arduini <luke.arduini@me.com>
Luke Bayes <lbayes@patternpark.com>
diff --git a/ChangeLog b/ChangeLog
index da9978bae4..33076aa9e1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,3 @@
-2012.12.30, Version 0.9.5 (Unstable)
* assert: improve support for new execution contexts (lukebayes)
@@ -240,6 +239,22 @@
* Fix #3521 Make process.env more like a regular Object (isaacs)
+2013.01.09, Version 0.8.17 (Stable), c50c33e9397d7a0a8717e8ce7530572907c054ad
+
+* npm: Upgrade to v1.2.0
+ - peerDependencies (Domenic Denicola)
+ - node-gyp v0.8.2 (Nathan Rajlich)
+ - Faster installs from github user/project shorthands (Nathan Zadoks)
+
+* typed arrays: fix 32 bit size/index overflow (Ben Noordhuis)
+
+* http: Improve performance of single-packet responses (Ben Noordhuis)
+
+* install: fix openbsd man page location (Ben Noordhuis)
+
+* http: bubble up parser errors to ClientRequest (Brian White)
+
+
2012.12.13, Version 0.8.16 (Stable), 1c9c6277d5cfcaaac8569c0c8f7daa64292048a9
* npm: Upgrade to 1.1.69
diff --git a/Makefile b/Makefile
index 0dde96c9a0..779547bbcb 100644
--- a/Makefile
+++ b/Makefile
@@ -295,7 +295,7 @@ tar: $(TARBALL)
$(BINARYTAR): release-only
rm -rf $(BINARYNAME)
rm -rf out/deps out/Release
- $(PYTHON) ./configure --prefix=/ --without-snapshot --dest-cpu=$(DESTCPU)
+ $(PYTHON) ./configure --prefix=/ --without-snapshot --dest-cpu=$(DESTCPU) $(CONFIG_FLAGS)
$(MAKE) install DESTDIR=$(BINARYNAME) V=$(V) PORTABLE=1
cp README.md $(BINARYNAME)
cp LICENSE $(BINARYNAME)
diff --git a/deps/npm/doc/cli/json.md b/deps/npm/doc/cli/json.md
index 46df441895..c6cedaaaf3 100644
--- a/deps/npm/doc/cli/json.md
+++ b/deps/npm/doc/cli/json.md
@@ -366,8 +366,8 @@ a version in the following fashion.
For example, the following are equivalent:
* `"~1.2.3" = ">=1.2.3 <1.3.0"`
-* `"~1.2" = ">=1.2.0 <2.0.0"`
-* `"~1" = ">=1.0.0 <2.0.0"`
+* `"~1.2" = ">=1.2.0 <1.3.0"`
+* `"~1" = ">=1.0.0 <1.1.0"`
### X Version Ranges
diff --git a/deps/npm/doc/cli/scripts.md b/deps/npm/doc/cli/scripts.md
index 3d33a83919..0eba5f7b12 100644
--- a/deps/npm/doc/cli/scripts.md
+++ b/deps/npm/doc/cli/scripts.md
@@ -6,6 +6,11 @@ npm-scripts(1) -- How npm handles the "scripts" field
npm supports the "scripts" member of the package.json script, for the
following scripts:
+* prepublish:
+ Run BEFORE the package is published. (Also run on local `npm
+ install` without any arguments.)
+* publish, postpublish:
+ Run AFTER the package is published.
* preinstall:
Run BEFORE the package is installed
* install, postinstall:
@@ -18,10 +23,6 @@ following scripts:
Run BEFORE the package is updated with the update command.
* update, postupdate:
Run AFTER the package is updated with the update command.
-* prepublish:
- Run BEFORE the package is published.
-* publish, postpublish:
- Run AFTER the package is published.
* pretest, test, posttest:
Run by the `npm test` command.
* prestop, stop, poststop:
@@ -35,6 +36,50 @@ following scripts:
Additionally, arbitrary scrips can be run by doing
`npm run-script <stage> <pkg>`.
+## NOTE: INSTALL SCRIPTS ARE AN ANTIPATTERN
+
+**tl;dr** Don't use `install`. Use a `.gyp` file for compilation, and
+`prepublish` for anything else.
+
+You should almost never have to explicitly set a `preinstall` or
+`install` script. If you are doing this, please consider if there is
+another option.
+
+The only valid use of `install` or `preinstall` scripts is for
+compilation which must be done on the target architecture. In early
+versions of node, this was often done using the `node-waf` scripts, or
+a standalone `Makefile`, and early versions of npm required that it be
+explicitly set in package.json. This was not portable, and harder to
+do properly.
+
+In the current version of node, the standard way to do this is using a
+`.gyp` file. If you have a file with a `.gyp` extension in the root
+of your package, then npm will run the appropriate `node-gyp` commands
+automatically at install time. This is the only officially supported
+method for compiling binary addons, and does not require that you add
+anything to your package.json file.
+
+If you have to do other things before your package is used, in a way
+that is not dependent on the operating system or architecture of the
+target system, then use a `prepublish` script instead. This includes
+tasks such as:
+
+* Compile CoffeeScript source code into JavaScript.
+* Create minified versions of JavaScript source code.
+* Fetching remote resources that your package will use.
+
+The advantage of doing these things at `prepublish` time instead of
+`preinstall` or `install` time is that they can be done once, in a
+single place, and thus greatly reduce complexity and variability.
+Additionally, this means that:
+
+* You can depend on `coffee-script` as a `devDependency`, and thus
+ your users don't need to have it installed.
+* You don't need to include the minifiers in your package, reducing
+ the size for your users.
+* You don't need to rely on your users having `curl` or `wget` or
+ other system tools on the target machines.
+
## DEFAULT VALUES
npm will default some script values based on package contents.
diff --git a/deps/npm/doc/cli/semver.md b/deps/npm/doc/cli/semver.md
index 7eb2240639..493dd7a1ef 100644
--- a/deps/npm/doc/cli/semver.md
+++ b/deps/npm/doc/cli/semver.md
@@ -11,8 +11,8 @@ As a node module:
$ npm install semver
- semver.valid('1.2.3') // true
- semver.valid('a.b.c') // false
+ semver.valid('1.2.3') // '1.2.3'
+ semver.valid('a.b.c') // null
semver.clean(' =v1.2.3 ') // '1.2.3'
semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true
semver.gt('1.2.3', '9.8.7') // false
@@ -83,7 +83,7 @@ The following range styles are supported:
* `<1.2.3` Less than
* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4`
* `~1.2.3` := `>=1.2.3 <1.3.0`
-* `~1.2` := `>=1.2.0 <2.0.0`
+* `~1.2` := `>=1.2.0 <1.3.0`
* `~1` := `>=1.0.0 <2.0.0`
* `1.2.x` := `>=1.2.0 <1.3.0`
* `1.x` := `>=1.0.0 <2.0.0`
diff --git a/deps/npm/html/api/bin.html b/deps/npm/html/api/bin.html
index 05b588cfe0..73eb5c169b 100644
--- a/deps/npm/html/api/bin.html
+++ b/deps/npm/html/api/bin.html
@@ -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.70</p>
+<p id="footer">bin &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/bugs.html b/deps/npm/html/api/bugs.html
index 384644ede0..6c69e531c7 100644
--- a/deps/npm/html/api/bugs.html
+++ b/deps/npm/html/api/bugs.html
@@ -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.70</p>
+<p id="footer">bugs &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/commands.html b/deps/npm/html/api/commands.html
index 34d6280c95..14d9dccf99 100644
--- a/deps/npm/html/api/commands.html
+++ b/deps/npm/html/api/commands.html
@@ -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.70</p>
+<p id="footer">commands &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/config.html b/deps/npm/html/api/config.html
index 07abff133a..115815643f 100644
--- a/deps/npm/html/api/config.html
+++ b/deps/npm/html/api/config.html
@@ -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.70</p>
+<p id="footer">config &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/deprecate.html b/deps/npm/html/api/deprecate.html
index bf4993766d..80bd8f0fbf 100644
--- a/deps/npm/html/api/deprecate.html
+++ b/deps/npm/html/api/deprecate.html
@@ -32,7 +32,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.70</p>
+<p id="footer">deprecate &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/docs.html b/deps/npm/html/api/docs.html
index b59b1d3893..b0f92039f7 100644
--- a/deps/npm/html/api/docs.html
+++ b/deps/npm/html/api/docs.html
@@ -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.70</p>
+<p id="footer">docs &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/edit.html b/deps/npm/html/api/edit.html
index e610fffb5a..eaf876cc1a 100644
--- a/deps/npm/html/api/edit.html
+++ b/deps/npm/html/api/edit.html
@@ -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.70</p>
+<p id="footer">edit &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/explore.html b/deps/npm/html/api/explore.html
index 139d8d1563..d96d021dee 100644
--- a/deps/npm/html/api/explore.html
+++ b/deps/npm/html/api/explore.html
@@ -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 &#39;args&#39; 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.70</p>
+<p id="footer">explore &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/help-search.html b/deps/npm/html/api/help-search.html
index 7b9d0e7586..f363d0b414 100644
--- a/deps/npm/html/api/help-search.html
+++ b/deps/npm/html/api/help-search.html
@@ -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.70</p>
+<p id="footer">help-search &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/init.html b/deps/npm/html/api/init.html
index 51246b3cd5..8e3ee9a253 100644
--- a/deps/npm/html/api/init.html
+++ b/deps/npm/html/api/init.html
@@ -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.70</p>
+<p id="footer">init &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/install.html b/deps/npm/html/api/install.html
index a0dcd1f1ac..88faffdd1d 100644
--- a/deps/npm/html/api/install.html
+++ b/deps/npm/html/api/install.html
@@ -25,7 +25,7 @@ the name of a package to be installed.</p>
<p>Finally, &#39;callback&#39; 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.70</p>
+<p id="footer">install &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/link.html b/deps/npm/html/api/link.html
index c4362e5db8..744b7a0cb7 100644
--- a/deps/npm/html/api/link.html
+++ b/deps/npm/html/api/link.html
@@ -39,7 +39,7 @@ npm.commands.link(&#39;redis&#39;, 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.70</p>
+<p id="footer">link &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/load.html b/deps/npm/html/api/load.html
index e2e3974ded..4ed5d1b5b8 100644
--- a/deps/npm/html/api/load.html
+++ b/deps/npm/html/api/load.html
@@ -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.70</p>
+<p id="footer">load &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/ls.html b/deps/npm/html/api/ls.html
index 548619a847..58b7e77fcf 100644
--- a/deps/npm/html/api/ls.html
+++ b/deps/npm/html/api/ls.html
@@ -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.70</p>
+<p id="footer">ls &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/npm.html b/deps/npm/html/api/npm.html
index a752f4a5cc..ca4482c362 100644
--- a/deps/npm/html/api/npm.html
+++ b/deps/npm/html/api/npm.html
@@ -24,7 +24,7 @@ npm.load(configObject, function (er, npm) {
<h2 id="VERSION">VERSION</h2>
-<p>1.1.70</p>
+<p>1.2.0</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(&quot;unp&quot;) // cmd === &quot;unpublish&quot;</code></pre>
</div>
-<p id="footer">npm &mdash; npm@1.1.70</p>
+<p id="footer">npm &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/outdated.html b/deps/npm/html/api/outdated.html
index cd0043478c..3c8427ace7 100644
--- a/deps/npm/html/api/outdated.html
+++ b/deps/npm/html/api/outdated.html
@@ -19,7 +19,7 @@ currently outdated.</p>
<p>If the &#39;packages&#39; parameter is left out, npm will check all packages.</p>
</div>
-<p id="footer">outdated &mdash; npm@1.1.70</p>
+<p id="footer">outdated &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/owner.html b/deps/npm/html/api/owner.html
index a9e85e1d93..f92a60be45 100644
--- a/deps/npm/html/api/owner.html
+++ b/deps/npm/html/api/owner.html
@@ -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.70</p>
+<p id="footer">owner &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/pack.html b/deps/npm/html/api/pack.html
index 1c861f204c..ec3cea805c 100644
--- a/deps/npm/html/api/pack.html
+++ b/deps/npm/html/api/pack.html
@@ -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.70</p>
+<p id="footer">pack &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/prefix.html b/deps/npm/html/api/prefix.html
index c38ccf7f4c..98563637e9 100644
--- a/deps/npm/html/api/prefix.html
+++ b/deps/npm/html/api/prefix.html
@@ -21,7 +21,7 @@
<p>This function is not useful programmatically</p>
</div>
-<p id="footer">prefix &mdash; npm@1.1.70</p>
+<p id="footer">prefix &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/prune.html b/deps/npm/html/api/prune.html
index 53fe82a217..82faeeb555 100644
--- a/deps/npm/html/api/prune.html
+++ b/deps/npm/html/api/prune.html
@@ -23,7 +23,7 @@
<p>Extraneous packages are packages that are not listed on the parent
package&#39;s dependencies list.</p>
</div>
-<p id="footer">prune &mdash; npm@1.1.70</p>
+<p id="footer">prune &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/publish.html b/deps/npm/html/api/publish.html
index 698f8698f4..cbda587815 100644
--- a/deps/npm/html/api/publish.html
+++ b/deps/npm/html/api/publish.html
@@ -32,7 +32,7 @@ the registry. Overwrites when the &quot;force&quot; environment variable is set
<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.70</p>
+<p id="footer">publish &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/rebuild.html b/deps/npm/html/api/rebuild.html
index ab4136380a..6ff81e6330 100644
--- a/deps/npm/html/api/rebuild.html
+++ b/deps/npm/html/api/rebuild.html
@@ -22,7 +22,7 @@ the new binary. If no &#39;packages&#39; parameter is specify, every package wil
<p>See <code>npm help build</code></p>
</div>
-<p id="footer">rebuild &mdash; npm@1.1.70</p>
+<p id="footer">rebuild &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/restart.html b/deps/npm/html/api/restart.html
index b2283e4c0c..c244dd6454 100644
--- a/deps/npm/html/api/restart.html
+++ b/deps/npm/html/api/restart.html
@@ -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.70</p>
+<p id="footer">restart &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/root.html b/deps/npm/html/api/root.html
index 2c24434a78..08a978e011 100644
--- a/deps/npm/html/api/root.html
+++ b/deps/npm/html/api/root.html
@@ -21,7 +21,7 @@
<p>This function is not useful programmatically.</p>
</div>
-<p id="footer">root &mdash; npm@1.1.70</p>
+<p id="footer">root &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/run-script.html b/deps/npm/html/api/run-script.html
index 11592a18ce..772f5fb3e7 100644
--- a/deps/npm/html/api/run-script.html
+++ b/deps/npm/html/api/run-script.html
@@ -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.70</p>
+<p id="footer">run-script &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/search.html b/deps/npm/html/api/search.html
index 5f29099947..f50f0eeba6 100644
--- a/deps/npm/html/api/search.html
+++ b/deps/npm/html/api/search.html
@@ -32,7 +32,7 @@ excluded term (the &quot;searchexclude&quot; config). The search is case insensi
and doesn&#39;t try to read your mind (it doesn&#39;t do any verb tense matching or the
like).</p>
</div>
-<p id="footer">search &mdash; npm@1.1.70</p>
+<p id="footer">search &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/shrinkwrap.html b/deps/npm/html/api/shrinkwrap.html
index 2c17413f96..da628cd911 100644
--- a/deps/npm/html/api/shrinkwrap.html
+++ b/deps/npm/html/api/shrinkwrap.html
@@ -26,7 +26,7 @@ but the shrinkwrap file will still be written.</p>
<p>Finally, &#39;callback&#39; is a function that will be called when the shrinkwrap has
been saved.</p>
</div>
-<p id="footer">shrinkwrap &mdash; npm@1.1.70</p>
+<p id="footer">shrinkwrap &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/start.html b/deps/npm/html/api/start.html
index 0428424031..e98032b1b8 100644
--- a/deps/npm/html/api/start.html
+++ b/deps/npm/html/api/start.html
@@ -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.70</p>
+<p id="footer">start &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/stop.html b/deps/npm/html/api/stop.html
index cba9249202..5f3841be80 100644
--- a/deps/npm/html/api/stop.html
+++ b/deps/npm/html/api/stop.html
@@ -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.70</p>
+<p id="footer">stop &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/submodule.html b/deps/npm/html/api/submodule.html
index 8e1100cef3..ab64b5c7d1 100644
--- a/deps/npm/html/api/submodule.html
+++ b/deps/npm/html/api/submodule.html
@@ -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.70</p>
+<p id="footer">submodule &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/tag.html b/deps/npm/html/api/tag.html
index 48fb32ba28..84748d8a82 100644
--- a/deps/npm/html/api/tag.html
+++ b/deps/npm/html/api/tag.html
@@ -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.70</p>
+<p id="footer">tag &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/test.html b/deps/npm/html/api/test.html
index f62cabc1db..49add1ee86 100644
--- a/deps/npm/html/api/test.html
+++ b/deps/npm/html/api/test.html
@@ -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.70</p>
+<p id="footer">test &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/uninstall.html b/deps/npm/html/api/uninstall.html
index a937504e0a..ef8cf4a1d8 100644
--- a/deps/npm/html/api/uninstall.html
+++ b/deps/npm/html/api/uninstall.html
@@ -22,7 +22,7 @@ the name of a package to be uninstalled.</p>
<p>Finally, &#39;callback&#39; 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.70</p>
+<p id="footer">uninstall &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/unpublish.html b/deps/npm/html/api/unpublish.html
index 4008cb6b05..0f3c11f4d3 100644
--- a/deps/npm/html/api/unpublish.html
+++ b/deps/npm/html/api/unpublish.html
@@ -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.70</p>
+<p id="footer">unpublish &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/update.html b/deps/npm/html/api/update.html
index 660234fa01..52a48303c4 100644
--- a/deps/npm/html/api/update.html
+++ b/deps/npm/html/api/update.html
@@ -18,7 +18,7 @@
<p>The &#39;packages&#39; argument is an array of packages to update. The &#39;callback&#39; parameter will be called when done or when an error occurs.</p>
</div>
-<p id="footer">update &mdash; npm@1.1.70</p>
+<p id="footer">update &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/version.html b/deps/npm/html/api/version.html
index 9c57f589c0..2ff314a72e 100644
--- a/deps/npm/html/api/version.html
+++ b/deps/npm/html/api/version.html
@@ -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.70</p>
+<p id="footer">version &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/view.html b/deps/npm/html/api/view.html
index cd8b86d166..d76d31bb2f 100644
--- a/deps/npm/html/api/view.html
+++ b/deps/npm/html/api/view.html
@@ -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.70</p>
+<p id="footer">view &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/api/whoami.html b/deps/npm/html/api/whoami.html
index 4ed432d196..09ec779703 100644
--- a/deps/npm/html/api/whoami.html
+++ b/deps/npm/html/api/whoami.html
@@ -21,7 +21,7 @@
<p>This function is not useful programmatically</p>
</div>
-<p id="footer">whoami &mdash; npm@1.1.70</p>
+<p id="footer">whoami &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/README.html b/deps/npm/html/doc/README.html
index 3bd8334ccf..c3378e8454 100644
--- a/deps/npm/html/doc/README.html
+++ b/deps/npm/html/doc/README.html
@@ -240,7 +240,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.70</p>
+<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/adduser.html b/deps/npm/html/doc/adduser.html
index 1c00ca7d8d..28e31d368d 100644
--- a/deps/npm/html/doc/adduser.html
+++ b/deps/npm/html/doc/adduser.html
@@ -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.70</p>
+<p id="footer">adduser &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/bin.html b/deps/npm/html/doc/bin.html
index 0bc8f04847..dd507cbb53 100644
--- a/deps/npm/html/doc/bin.html
+++ b/deps/npm/html/doc/bin.html
@@ -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.70</p>
+<p id="footer">bin &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/bugs.html b/deps/npm/html/doc/bugs.html
index dbd38334a9..e12e004375 100644
--- a/deps/npm/html/doc/bugs.html
+++ b/deps/npm/html/doc/bugs.html
@@ -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.70</p>
+<p id="footer">bugs &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/build.html b/deps/npm/html/doc/build.html
index e7de5a40d3..4f5af87fef 100644
--- a/deps/npm/html/doc/build.html
+++ b/deps/npm/html/doc/build.html
@@ -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.70</p>
+<p id="footer">build &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/bundle.html b/deps/npm/html/doc/bundle.html
index 860795c4c9..61163b28c0 100644
--- a/deps/npm/html/doc/bundle.html
+++ b/deps/npm/html/doc/bundle.html
@@ -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.70</p>
+<p id="footer">bundle &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/cache.html b/deps/npm/html/doc/cache.html
index d045cea852..fc9a1c0d4d 100644
--- a/deps/npm/html/doc/cache.html
+++ b/deps/npm/html/doc/cache.html
@@ -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.70</p>
+<p id="footer">cache &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/changelog.html b/deps/npm/html/doc/changelog.html
index 22b49905c5..a55851fa2d 100644
--- a/deps/npm/html/doc/changelog.html
+++ b/deps/npm/html/doc/changelog.html
@@ -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.70</p>
+<p id="footer">changelog &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/coding-style.html b/deps/npm/html/doc/coding-style.html
index 53aaa752b9..171820312d 100644
--- a/deps/npm/html/doc/coding-style.html
+++ b/deps/npm/html/doc/coding-style.html
@@ -182,7 +182,7 @@ set to anything.&quot;</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.70</p>
+<p id="footer">coding-style &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/completion.html b/deps/npm/html/doc/completion.html
index a9e4a28cc0..a2ae76b918 100644
--- a/deps/npm/html/doc/completion.html
+++ b/deps/npm/html/doc/completion.html
@@ -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.70</p>
+<p id="footer">completion &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/config.html b/deps/npm/html/doc/config.html
index 5bbfae9050..8442267698 100644
--- a/deps/npm/html/doc/config.html
+++ b/deps/npm/html/doc/config.html
@@ -756,7 +756,7 @@ then answer &quot;no&quot; 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.70</p>
+<p id="footer">config &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/dedupe.html b/deps/npm/html/doc/dedupe.html
index ce743d423f..8acbf61971 100644
--- a/deps/npm/html/doc/dedupe.html
+++ b/deps/npm/html/doc/dedupe.html
@@ -57,7 +57,7 @@ registry.</p>
<ul><li><a href="../doc/ls.html">ls(1)</a></li><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">dedupe &mdash; npm@1.1.70</p>
+<p id="footer">dedupe &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/deprecate.html b/deps/npm/html/doc/deprecate.html
index 2555bd4732..9fcb58b3ef 100644
--- a/deps/npm/html/doc/deprecate.html
+++ b/deps/npm/html/doc/deprecate.html
@@ -31,7 +31,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.70</p>
+<p id="footer">deprecate &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/developers.html b/deps/npm/html/doc/developers.html
index 3240964283..aaae81be09 100644
--- a/deps/npm/html/doc/developers.html
+++ b/deps/npm/html/doc/developers.html
@@ -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.70</p>
+<p id="footer">developers &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/disputes.html b/deps/npm/html/doc/disputes.html
index bbd13a447d..d5c8bb27ef 100644
--- a/deps/npm/html/doc/disputes.html
+++ b/deps/npm/html/doc/disputes.html
@@ -86,7 +86,7 @@ an empty tarball, you&#39;re going to be evicted.</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.70</p>
+<p id="footer">disputes &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/docs.html b/deps/npm/html/doc/docs.html
index b09a6ce7f0..ad7e8a70ab 100644
--- a/deps/npm/html/doc/docs.html
+++ b/deps/npm/html/doc/docs.html
@@ -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.70</p>
+<p id="footer">docs &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/edit.html b/deps/npm/html/doc/edit.html
index 3a4e86eb0e..a2c6120629 100644
--- a/deps/npm/html/doc/edit.html
+++ b/deps/npm/html/doc/edit.html
@@ -37,7 +37,7 @@ or <code>&quot;notepad&quot;</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.70</p>
+<p id="footer">edit &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/explore.html b/deps/npm/html/doc/explore.html
index ebd1fedcaa..836690992b 100644
--- a/deps/npm/html/doc/explore.html
+++ b/deps/npm/html/doc/explore.html
@@ -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.70</p>
+<p id="footer">explore &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/faq.html b/deps/npm/html/doc/faq.html
index 8d084cad5b..d991025328 100644
--- a/deps/npm/html/doc/faq.html
+++ b/deps/npm/html/doc/faq.html
@@ -250,7 +250,7 @@ There is not sufficient need to impose namespace rules on everyone.</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.70</p>
+<p id="footer">faq &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/folders.html b/deps/npm/html/doc/folders.html
index 4d899ca082..03ee379471 100644
--- a/deps/npm/html/doc/folders.html
+++ b/deps/npm/html/doc/folders.html
@@ -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.70</p>
+<p id="footer">folders &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/help-search.html b/deps/npm/html/doc/help-search.html
index 8be5376404..5d991e4944 100644
--- a/deps/npm/html/doc/help-search.html
+++ b/deps/npm/html/doc/help-search.html
@@ -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.70</p>
+<p id="footer">help-search &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/help.html b/deps/npm/html/doc/help.html
index 000df6c838..291b82b660 100644
--- a/deps/npm/html/doc/help.html
+++ b/deps/npm/html/doc/help.html
@@ -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.70</p>
+<p id="footer">help &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/index.html b/deps/npm/html/doc/index.html
index 6aa984ae24..cb3f9eeda5 100644
--- a/deps/npm/html/doc/index.html
+++ b/deps/npm/html/doc/index.html
@@ -388,7 +388,7 @@
<p> Display npm username</p>
</div>
-<p id="footer">index &mdash; npm@1.1.70</p>
+<p id="footer">index &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/init.html b/deps/npm/html/doc/init.html
index 3831a3589f..39979b585a 100644
--- a/deps/npm/html/doc/init.html
+++ b/deps/npm/html/doc/init.html
@@ -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.70</p>
+<p id="footer">init &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/install.html b/deps/npm/html/doc/install.html
index d5f4821e25..5e196c421d 100644
--- a/deps/npm/html/doc/install.html
+++ b/deps/npm/html/doc/install.html
@@ -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.70</p>
+<p id="footer">install &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/json.html b/deps/npm/html/doc/json.html
index fd3fd38a4a..eaac0200fe 100644
--- a/deps/npm/html/doc/json.html
+++ b/deps/npm/html/doc/json.html
@@ -339,7 +339,7 @@ a version in the following fashion.</p>
<p>For example, the following are equivalent:</p>
-<ul><li><code>&quot;~1.2.3&quot; = &quot;&gt;=1.2.3 &lt;1.3.0&quot;</code></li><li><code>&quot;~1.2&quot; = &quot;&gt;=1.2.0 &lt;2.0.0&quot;</code></li><li><code>&quot;~1&quot; = &quot;&gt;=1.0.0 &lt;2.0.0&quot;</code></li></ul>
+<ul><li><code>&quot;~1.2.3&quot; = &quot;&gt;=1.2.3 &lt;1.3.0&quot;</code></li><li><code>&quot;~1.2&quot; = &quot;&gt;=1.2.0 &lt;1.3.0&quot;</code></li><li><code>&quot;~1&quot; = &quot;&gt;=1.0.0 &lt;1.1.0&quot;</code></li></ul>
<h3 id="X-Version-Ranges">X Version Ranges</h3>
@@ -525,7 +525,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.70</p>
+<p id="footer">json &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/link.html b/deps/npm/html/doc/link.html
index 5fb81506f7..ba73fc7cee 100644
--- a/deps/npm/html/doc/link.html
+++ b/deps/npm/html/doc/link.html
@@ -58,7 +58,7 @@ installation target into your project&#39;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.70</p>
+<p id="footer">link &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/ls.html b/deps/npm/html/doc/ls.html
index 31b58cbd6c..38ea227023 100644
--- a/deps/npm/html/doc/ls.html
+++ b/deps/npm/html/doc/ls.html
@@ -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&#39;s source tree will show:</p>
-<pre><code>npm@1.1.70 /path/to/npm
+<pre><code>npm@1.2.0 /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">ls &mdash; npm@1.1.70</p>
+<p id="footer">ls &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/npm.html b/deps/npm/html/doc/npm.html
index e1e6fee9db..5855f36e38 100644
--- a/deps/npm/html/doc/npm.html
+++ b/deps/npm/html/doc/npm.html
@@ -14,7 +14,7 @@
<h2 id="VERSION">VERSION</h2>
-<p>1.1.70</p>
+<p>1.2.0</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.70</p>
+<p id="footer">npm &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/outdated.html b/deps/npm/html/doc/outdated.html
index fab7338c9e..139afe35a7 100644
--- a/deps/npm/html/doc/outdated.html
+++ b/deps/npm/html/doc/outdated.html
@@ -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.70</p>
+<p id="footer">outdated &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/owner.html b/deps/npm/html/doc/owner.html
index 287c55b005..0ac94e8c9e 100644
--- a/deps/npm/html/doc/owner.html
+++ b/deps/npm/html/doc/owner.html
@@ -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.70</p>
+<p id="footer">owner &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/pack.html b/deps/npm/html/doc/pack.html
index 0183cf3c6c..ddebcc2507 100644
--- a/deps/npm/html/doc/pack.html
+++ b/deps/npm/html/doc/pack.html
@@ -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.70</p>
+<p id="footer">pack &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/prefix.html b/deps/npm/html/doc/prefix.html
index 9fdc466dad..af3da4c6ff 100644
--- a/deps/npm/html/doc/prefix.html
+++ b/deps/npm/html/doc/prefix.html
@@ -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.70</p>
+<p id="footer">prefix &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/prune.html b/deps/npm/html/doc/prune.html
index 19defa08d9..2411551fd3 100644
--- a/deps/npm/html/doc/prune.html
+++ b/deps/npm/html/doc/prune.html
@@ -25,7 +25,7 @@ package&#39;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.70</p>
+<p id="footer">prune &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/publish.html b/deps/npm/html/doc/publish.html
index 1ac3faf016..a73e074d99 100644
--- a/deps/npm/html/doc/publish.html
+++ b/deps/npm/html/doc/publish.html
@@ -29,7 +29,7 @@ the registry. Overwrites when the &quot;--force&quot; 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.70</p>
+<p id="footer">publish &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/rebuild.html b/deps/npm/html/doc/rebuild.html
index b8b7185a82..3f2b6ec79d 100644
--- a/deps/npm/html/doc/rebuild.html
+++ b/deps/npm/html/doc/rebuild.html
@@ -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.70</p>
+<p id="footer">rebuild &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/registry.html b/deps/npm/html/doc/registry.html
index 10947a8b00..bf54497df6 100644
--- a/deps/npm/html/doc/registry.html
+++ b/deps/npm/html/doc/registry.html
@@ -95,7 +95,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.70</p>
+<p id="footer">registry &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/removing-npm.html b/deps/npm/html/doc/removing-npm.html
index f9af1b5d30..246f4dec00 100644
--- a/deps/npm/html/doc/removing-npm.html
+++ b/deps/npm/html/doc/removing-npm.html
@@ -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.70</p>
+<p id="footer">removing-npm &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/restart.html b/deps/npm/html/doc/restart.html
index 752a51eee5..37e3124142 100644
--- a/deps/npm/html/doc/restart.html
+++ b/deps/npm/html/doc/restart.html
@@ -24,7 +24,7 @@ the &quot;start&quot; 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.70</p>
+<p id="footer">restart &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/root.html b/deps/npm/html/doc/root.html
index 22f6e14f22..2124ad2cce 100644
--- a/deps/npm/html/doc/root.html
+++ b/deps/npm/html/doc/root.html
@@ -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.70</p>
+<p id="footer">root &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/run-script.html b/deps/npm/html/doc/run-script.html
index 4333b40aea..90c6809387 100644
--- a/deps/npm/html/doc/run-script.html
+++ b/deps/npm/html/doc/run-script.html
@@ -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.70</p>
+<p id="footer">run-script &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/scripts.html b/deps/npm/html/doc/scripts.html
index 78902907e2..24913f39c3 100644
--- a/deps/npm/html/doc/scripts.html
+++ b/deps/npm/html/doc/scripts.html
@@ -13,15 +13,16 @@
<p>npm supports the &quot;scripts&quot; member of the package.json script, for the
following scripts:</p>
-<ul><li>preinstall:
+<ul><li>prepublish:
+Run BEFORE the package is published. (Also run on local <code>npm
+install</code> without any arguments.)</li><li>publish, postpublish:
+Run AFTER the package is published.</li><li>preinstall:
Run BEFORE the package is installed</li><li>install, postinstall:
Run AFTER the package is installed.</li><li>preuninstall, uninstall:
Run BEFORE the package is uninstalled.</li><li>postuninstall:
Run AFTER the package is uninstalled.</li><li>preupdate:
Run BEFORE the package is updated with the update command.</li><li>update, postupdate:
-Run AFTER the package is updated with the update command.</li><li>prepublish:
-Run BEFORE the package is published.</li><li>publish, postpublish:
-Run AFTER the package is published.</li><li>pretest, test, posttest:
+Run AFTER the package is updated with the update command.</li><li>pretest, test, posttest:
Run by the <code>npm test</code> command.</li><li>prestop, stop, poststop:
Run by the <code>npm stop</code> command.</li><li>prestart, start, poststart:
Run by the <code>npm start</code> command.</li><li>prerestart, restart, postrestart:
@@ -31,6 +32,46 @@ stop and start scripts if no <code>restart</code> script is provided.</li></ul>
<p>Additionally, arbitrary scrips can be run by doing
<code>npm run-script &lt;stage&gt; &lt;pkg&gt;</code>.</p>
+<h2 id="NOTE-INSTALL-SCRIPTS-ARE-AN-ANTIPATTERN">NOTE: INSTALL SCRIPTS ARE AN ANTIPATTERN</h2>
+
+<p><strong>tl;dr</strong> Don&#39;t use <code>install</code>. Use a <code>.gyp</code> file for compilation, and
+<code>prepublish</code> for anything else.</p>
+
+<p>You should almost never have to explicitly set a <code>preinstall</code> or
+<code>install</code> script. If you are doing this, please consider if there is
+another option.</p>
+
+<p>The only valid use of <code>install</code> or <code>preinstall</code> scripts is for
+compilation which must be done on the target architecture. In early
+versions of node, this was often done using the <code>node-waf</code> scripts, or
+a standalone <code>Makefile</code>, and early versions of npm required that it be
+explicitly set in package.json. This was not portable, and harder to
+do properly.</p>
+
+<p>In the current version of node, the standard way to do this is using a
+<code>.gyp</code> file. If you have a file with a <code>.gyp</code> extension in the root
+of your package, then npm will run the appropriate <code>node-gyp</code> commands
+automatically at install time. This is the only officially supported
+method for compiling binary addons, and does not require that you add
+anything to your package.json file.</p>
+
+<p>If you have to do other things before your package is used, in a way
+that is not dependent on the operating system or architecture of the
+target system, then use a <code>prepublish</code> script instead. This includes
+tasks such as:</p>
+
+<ul><li>Compile CoffeeScript source code into JavaScript.</li><li>Create minified versions of JavaScript source code.</li><li>Fetching remote resources that your package will use.</li></ul>
+
+<p>The advantage of doing these things at <code>prepublish</code> time instead of
+<code>preinstall</code> or <code>install</code> time is that they can be done once, in a
+single place, and thus greatly reduce complexity and variability.
+Additionally, this means that:</p>
+
+<ul><li>You can depend on <code>coffee-script</code> as a <code>devDependency</code>, and thus
+your users don&#39;t need to have it installed.</li><li>You don&#39;t need to include the minifiers in your package, reducing
+the size for your users.</li><li>You don&#39;t need to rely on your users having <code>curl</code> or <code>wget</code> or
+other system tools on the target machines.</li></ul>
+
<h2 id="DEFAULT-VALUES">DEFAULT VALUES</h2>
<p>npm will default some script values based on package contents.</p>
@@ -177,7 +218,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.70</p>
+<p id="footer">scripts &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/search.html b/deps/npm/html/doc/search.html
index b4f65ba29f..e072a015f0 100644
--- a/deps/npm/html/doc/search.html
+++ b/deps/npm/html/doc/search.html
@@ -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.70</p>
+<p id="footer">search &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/semver.html b/deps/npm/html/doc/semver.html
index e4c825ca9a..9dddfc572e 100644
--- a/deps/npm/html/doc/semver.html
+++ b/deps/npm/html/doc/semver.html
@@ -18,8 +18,8 @@
<pre><code>$ npm install semver
-semver.valid(&#39;1.2.3&#39;) // true
-semver.valid(&#39;a.b.c&#39;) // false
+semver.valid(&#39;1.2.3&#39;) // &#39;1.2.3&#39;
+semver.valid(&#39;a.b.c&#39;) // null
semver.clean(&#39; =v1.2.3 &#39;) // &#39;1.2.3&#39;
semver.satisfies(&#39;1.2.3&#39;, &#39;1.x || &gt;=2.5.0 || 5.0.0 - 7.2.3&#39;) // true
semver.gt(&#39;1.2.3&#39;, &#39;9.8.7&#39;) // false
@@ -73,7 +73,7 @@ larger tag. <code>2.3.4-beta &gt; 2.3.4-alpha</code></li><li>At this point, the
<p>The following range styles are supported:</p>
-<ul><li><code>&gt;1.2.3</code> Greater than a specific version.</li><li><code>&lt;1.2.3</code> Less than</li><li><code>1.2.3 - 2.3.4</code> := <code>&gt;=1.2.3 &lt;=2.3.4</code></li><li><code>~1.2.3</code> := <code>&gt;=1.2.3 &lt;1.3.0</code></li><li><code>~1.2</code> := <code>&gt;=1.2.0 &lt;2.0.0</code></li><li><code>~1</code> := <code>&gt;=1.0.0 &lt;2.0.0</code></li><li><code>1.2.x</code> := <code>&gt;=1.2.0 &lt;1.3.0</code></li><li><code>1.x</code> := <code>&gt;=1.0.0 &lt;2.0.0</code></li></ul>
+<ul><li><code>&gt;1.2.3</code> Greater than a specific version.</li><li><code>&lt;1.2.3</code> Less than</li><li><code>1.2.3 - 2.3.4</code> := <code>&gt;=1.2.3 &lt;=2.3.4</code></li><li><code>~1.2.3</code> := <code>&gt;=1.2.3 &lt;1.3.0</code></li><li><code>~1.2</code> := <code>&gt;=1.2.0 &lt;1.3.0</code></li><li><code>~1</code> := <code>&gt;=1.0.0 &lt;2.0.0</code></li><li><code>1.2.x</code> := <code>&gt;=1.2.0 &lt;1.3.0</code></li><li><code>1.x</code> := <code>&gt;=1.0.0 &lt;2.0.0</code></li></ul>
<p>Ranges can be joined with either a space (which implies &quot;and&quot;) or a
<code>||</code> (which implies &quot;or&quot;).</p>
@@ -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.70</p>
+<p id="footer">semver &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/shrinkwrap.html b/deps/npm/html/doc/shrinkwrap.html
index 2c2bffe48f..99b10e9263 100644
--- a/deps/npm/html/doc/shrinkwrap.html
+++ b/deps/npm/html/doc/shrinkwrap.html
@@ -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.70</p>
+<p id="footer">shrinkwrap &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/star.html b/deps/npm/html/doc/star.html
index fb4bb53c2c..df1736fb2f 100644
--- a/deps/npm/html/doc/star.html
+++ b/deps/npm/html/doc/star.html
@@ -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.70</p>
+<p id="footer">star &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/start.html b/deps/npm/html/doc/start.html
index 7907c9b30d..52bfefeea6 100644
--- a/deps/npm/html/doc/start.html
+++ b/deps/npm/html/doc/start.html
@@ -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.70</p>
+<p id="footer">start &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/stop.html b/deps/npm/html/doc/stop.html
index a47c13fa1c..77001af0d9 100644
--- a/deps/npm/html/doc/stop.html
+++ b/deps/npm/html/doc/stop.html
@@ -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.70</p>
+<p id="footer">stop &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/submodule.html b/deps/npm/html/doc/submodule.html
index 941c12e9be..3b9411cac7 100644
--- a/deps/npm/html/doc/submodule.html
+++ b/deps/npm/html/doc/submodule.html
@@ -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.70</p>
+<p id="footer">submodule &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/tag.html b/deps/npm/html/doc/tag.html
index 29371bcb0a..0247e512ee 100644
--- a/deps/npm/html/doc/tag.html
+++ b/deps/npm/html/doc/tag.html
@@ -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.70</p>
+<p id="footer">tag &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/test.html b/deps/npm/html/doc/test.html
index d4f031c244..d16aad635b 100644
--- a/deps/npm/html/doc/test.html
+++ b/deps/npm/html/doc/test.html
@@ -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.70</p>
+<p id="footer">test &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/uninstall.html b/deps/npm/html/doc/uninstall.html
index 2a4a2d73d0..25bd0b421a 100644
--- a/deps/npm/html/doc/uninstall.html
+++ b/deps/npm/html/doc/uninstall.html
@@ -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.70</p>
+<p id="footer">uninstall &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/unpublish.html b/deps/npm/html/doc/unpublish.html
index dfeedf2f1c..f2c38c07a2 100644
--- a/deps/npm/html/doc/unpublish.html
+++ b/deps/npm/html/doc/unpublish.html
@@ -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.70</p>
+<p id="footer">unpublish &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/update.html b/deps/npm/html/doc/update.html
index 6ebd0d7413..65daa90ad3 100644
--- a/deps/npm/html/doc/update.html
+++ b/deps/npm/html/doc/update.html
@@ -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.70</p>
+<p id="footer">update &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/version.html b/deps/npm/html/doc/version.html
index fe2bd4b21c..1712c2cd84 100644
--- a/deps/npm/html/doc/version.html
+++ b/deps/npm/html/doc/version.html
@@ -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.70</p>
+<p id="footer">version &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/view.html b/deps/npm/html/doc/view.html
index 6ea1902150..2b988f32a8 100644
--- a/deps/npm/html/doc/view.html
+++ b/deps/npm/html/doc/view.html
@@ -90,7 +90,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.70</p>
+<p id="footer">view &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/html/doc/whoami.html b/deps/npm/html/doc/whoami.html
index f092fc2930..33a3ca9760 100644
--- a/deps/npm/html/doc/whoami.html
+++ b/deps/npm/html/doc/whoami.html
@@ -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.70</p>
+<p id="footer">whoami &mdash; npm@1.2.0</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
diff --git a/deps/npm/lib/cache.js b/deps/npm/lib/cache.js
index c2f870bf18..07f4d3ed73 100644
--- a/deps/npm/lib/cache.js
+++ b/deps/npm/lib/cache.js
@@ -136,6 +136,7 @@ function read (name, ver, forceBypass, cb) {
}
readJson(jsonFile, function (er, data) {
+ if (er && er.code !== "ENOENT") return cb(er)
if (er) return addNamed(name, ver, c)
deprCheck(data)
c(er, data)
@@ -414,7 +415,7 @@ function gitEnv () {
if (gitEnv_) return gitEnv_
gitEnv_ = {}
for (var k in process.env) {
- if (!~['GIT_PROXY_COMMAND'].indexOf(k) && k.match(/^GIT/)) continue
+ if (!~['GIT_PROXY_COMMAND','GIT_SSH'].indexOf(k) && k.match(/^GIT/)) continue
gitEnv_[k] = process.env[k]
}
return gitEnv_
@@ -601,6 +602,7 @@ function addNameVersion (name, ver, data, cb) {
if (!er) readJson( path.join( npm.cache, name, ver
, "package", "package.json" )
, function (er, data) {
+ if (er && er.code !== "ENOENT") return cb(er)
if (er) return fetchit()
return cb(null, data)
})
@@ -664,10 +666,16 @@ function addLocal (p, name, cb_) {
}
function maybeGithub (p, name, er, cb) {
- var u = "git://github.com/" + p
+ var u = "https://github.com/" + p
, up = url.parse(u)
+ if (up.hash && up.hash[0] === "#")
+ up.hash = up.hash.slice(1)
+
+ var ref = encodeURIComponent(up.hash || "master")
+ up.pathname = path.join(up.pathname, "tarball", ref).replace(/\\/g, "/")
+ u = url.format(up)
log.info("maybeGithub", "Attempting to fetch %s from %s", p, u)
- return addRemoteGit(u, up, name, function (er2, data) {
+ return addRemoteTarball(u, null, name, function (er2, data) {
if (er2) return cb(er)
return cb(null, data)
})
diff --git a/deps/npm/lib/dedupe.js b/deps/npm/lib/dedupe.js
index 67481c6dbb..51c6fca90f 100644
--- a/deps/npm/lib/dedupe.js
+++ b/deps/npm/lib/dedupe.js
@@ -265,6 +265,7 @@ function readInstalled (dir, counter, parent, cb) {
})
readJson(path.resolve(dir, "package.json"), function (er, data) {
+ if (er && er.code !== "ENOENT") return cb(er)
if (er) return cb() // not a package, probably.
counter[data.name] = counter[data.name] || 0
counter[data.name]++
diff --git a/deps/npm/lib/deprecate.js b/deps/npm/lib/deprecate.js
index c9e724e69d..1ba4305cd7 100644
--- a/deps/npm/lib/deprecate.js
+++ b/deps/npm/lib/deprecate.js
@@ -25,7 +25,7 @@ var semver = require("semver")
function deprecate (args, cb) {
var pkg = args[0]
, msg = args[1]
- if (msg === undefined) return cb(new Error(deprecate.usage))
+ if (msg === undefined) return cb("Usage: " + deprecate.usage)
// fetch the data and make sure it exists.
pkg = pkg.split(/@/)
var name = pkg.shift()
diff --git a/deps/npm/lib/install.js b/deps/npm/lib/install.js
index ecb5d0d76d..4741c34c7b 100644
--- a/deps/npm/lib/install.js
+++ b/deps/npm/lib/install.js
@@ -13,13 +13,16 @@
module.exports = install
-install.usage = "npm install <tarball file>"
- + "\nnpm install <tarball url>"
- + "\nnpm install <folder>"
+install.usage = "npm install"
+ "\nnpm install <pkg>"
+ "\nnpm install <pkg>@<tag>"
+ "\nnpm install <pkg>@<version>"
+ "\nnpm install <pkg>@<version range>"
+ + "\nnpm install <folder>"
+ + "\nnpm install <tarball file>"
+ + "\nnpm install <tarball url>"
+ + "\nnpm install <git:// url>"
+ + "\nnpm install <github username>/<github project>"
+ "\n\nCan specify one or more: npm install ./foo.tgz bar@stable /some/folder"
+ "\nIf no argument is supplied and ./npm-shrinkwrap.json is "
+ "\npresent, installs dependencies specified in the shrinkwrap."
@@ -133,13 +136,19 @@ function install (args, cb_) {
, parsed = url.parse(target.replace(/^git\+/, "git"))
target = dep + "@" + target
return target
- }), where, context, cb)
+ }), where, context, function(er, results) {
+ if (er) return cb(er, results)
+ lifecycle(data, "prepublish", where, function(er) {
+ return cb(er, results)
+ })
+ })
})
}
// initial "family" is the name:version of the root, if it's got
// a package.json file.
readJson(path.resolve(where, "package.json"), function (er, data) {
+ if (er && er.code !== "ENOENT") return cb(er)
if (er) data = null
var context = { family: {}
, ancestors: {}
@@ -276,9 +285,9 @@ function save (where, installed, tree, pretty, cb) {
} catch (ex) {
er = ex
}
+
if (er) {
return cb(null, installed, tree, pretty)
-
}
var deps = npm.config.get("save-optional") ? "optionalDependencies"
@@ -442,10 +451,13 @@ function installManyTop_ (what, where, context, cb) {
return path.resolve(nm, p, "package.json")
}), function (jsonfile, cb) {
readJson(jsonfile, function (er, data) {
+ if (er && er.code !== "ENOENT") return cb(er)
if (er) return cb(null, [])
return cb(null, [[data.name, data.version]])
})
}, function (er, packages) {
+ // if there's nothing in node_modules, then don't freak out.
+ if (er) packages = []
// add all the existing packages to the family list.
// however, do not add to the ancestors list.
packages.forEach(function (p) {
@@ -521,6 +533,7 @@ function targetResolver (where, context, deps) {
if (er) return alreadyInstalledManually = []
asyncMap(inst, function (pkg, cb) {
readJson(path.resolve(nm, pkg, "package.json"), function (er, d) {
+ if (er && er.code !== "ENOENT") return cb(er)
// error means it's not a package, most likely.
if (er) return cb(null, [])
@@ -640,6 +653,7 @@ function localLink (target, where, context, cb) {
, parent = context.parent
readJson(jsonFile, function (er, data) {
+ if (er && er.code !== "ENOENT") return cb(er)
if (er || data._id === target._id) {
if (er) {
install( path.resolve(npm.globalDir, "..")
@@ -896,39 +910,65 @@ function write (target, targetFolder, context, cb_) {
// before continuing to installing dependencies, check for a shrinkwrap.
var opt = { dev: npm.config.get("dev") }
readDependencies(context, targetFolder, opt, function (er, data, wrap) {
- var deps = Object.keys(data.dependencies || {})
-
- // don't install bundleDependencies, unless they're missing.
- if (data.bundleDependencies) {
- deps = deps.filter(function (d) {
- return data.bundleDependencies.indexOf(d) === -1 ||
- bundled.indexOf(d) === -1
- })
- }
-
- var newcontext = { family: family
+ var deps = prepareForInstallMany(data, "dependencies", bundled, wrap,
+ family)
+ var depsTargetFolder = targetFolder
+ var depsContext = { family: family
, ancestors: context.ancestors
, parent: target
, explicit: false
, wrap: wrap }
- installMany(deps.filter(function (d) {
- // prefer to not install things that are satisfied by
- // something in the "family" list, unless we're installing
- // from a shrinkwrap.
- return wrap || !semver.satisfies(family[d], data.dependencies[d])
- }).map(function (d) {
- var t = data.dependencies[d]
- , parsed = url.parse(t.replace(/^git\+/, "git"))
- t = d + "@" + t
- return t
- }), targetFolder, newcontext, function (er, d) {
- log.verbose("about to build", targetFolder)
- if (er) return cb(er)
- npm.commands.build( [targetFolder]
- , npm.config.get("global")
- , true
- , function (er) { return cb(er, d) })
- })
+
+ var peerDeps = prepareForInstallMany(data, "peerDependencies", bundled,
+ wrap, family)
+ var pdTargetFolder = path.resolve(targetFolder, "..", "..")
+ var pdContext = context
+
+ var actions =
+ [ [ installManyAndBuild, deps, depsTargetFolder, depsContext ] ]
+
+ if (peerDeps.length > 0) {
+ actions.push(
+ [ installManyAndBuild, peerDeps, pdTargetFolder, pdContext ]
+ )
+ }
+
+ chain(actions, cb)
})
})
}
+
+function installManyAndBuild (deps, targetFolder, context, cb) {
+ installMany(deps, targetFolder, context, function (er, d) {
+ log.verbose("about to build", targetFolder)
+ if (er) return cb(er)
+ npm.commands.build( [targetFolder]
+ , npm.config.get("global")
+ , true
+ , function (er) { return cb(er, d) })
+ })
+}
+
+function prepareForInstallMany (packageData, depsKey, bundled, wrap, family) {
+ var deps = Object.keys(packageData[depsKey] || {})
+
+ // don't install bundleDependencies, unless they're missing.
+ if (packageData.bundleDependencies) {
+ deps = deps.filter(function (d) {
+ return packageData.bundleDependencies.indexOf(d) === -1 ||
+ bundled.indexOf(d) === -1
+ })
+ }
+
+ return deps.filter(function (d) {
+ // prefer to not install things that are satisfied by
+ // something in the "family" list, unless we're installing
+ // from a shrinkwrap.
+ return wrap || !semver.satisfies(family[d], packageData[depsKey][d])
+ }).map(function (d) {
+ var t = packageData[depsKey][d]
+ , parsed = url.parse(t.replace(/^git\+/, "git"))
+ t = d + "@" + t
+ return t
+ })
+}
diff --git a/deps/npm/lib/ls.js b/deps/npm/lib/ls.js
index 8a4d6277f2..637064eab6 100644
--- a/deps/npm/lib/ls.js
+++ b/deps/npm/lib/ls.js
@@ -68,7 +68,7 @@ function ls (args, silent, cb) {
})
}
-// only include
+// only include
function filter (data, args) {
}
@@ -112,6 +112,14 @@ function getLite (data, noname) {
+ " " + (data.path || "") )
}
+ if (data.peerInvalid) {
+ lite.peerInvalid = true
+ lite.problems = lite.problems || []
+ lite.problems.push( "peer invalid: "
+ + data.name + "@" + data.version
+ + " " + (data.path || "") )
+ }
+
if (data.dependencies) {
var deps = Object.keys(data.dependencies)
if (deps.length) lite.dependencies = deps.map(function (d) {
@@ -244,6 +252,12 @@ function makeArchy_ (data, long, dir, depth, parent, d) {
+ (color ? "\033[0m" : "")
}
+ if (data.peerInvalid) {
+ out.label += " " + (color ? "\033[31;40m" : "")
+ + "peer invalid"
+ + (color ? "\033[0m" : "")
+ }
+
if (data.extraneous && data.path !== dir) {
out.label += " " + (color ? "\033[32;40m" : "")
+ "extraneous"
@@ -331,4 +345,5 @@ function makeParseable_ (data, long, dir, depth, parent, d) {
+ ":" + (data.realPath !== data.path ? data.realPath : "")
+ (data.extraneous ? ":EXTRANEOUS" : "")
+ (data.invalid ? ":INVALID" : "")
+ + (data.peerInvalid ? ":PEERINVALID" : "")
}
diff --git a/deps/npm/lib/outdated.js b/deps/npm/lib/outdated.js
index 33c182c997..bb9f93eadf 100644
--- a/deps/npm/lib/outdated.js
+++ b/deps/npm/lib/outdated.js
@@ -76,6 +76,7 @@ function outdated_ (args, dir, parentHas, cb) {
var deps = null
readJson(path.resolve(dir, "package.json"), function (er, d) {
+ if (er && er.code !== "ENOENT") return cb(er)
deps = (er) ? true : (d.dependencies || {})
return next()
})
@@ -89,6 +90,7 @@ function outdated_ (args, dir, parentHas, cb) {
asyncMap(pkgs, function (pkg, cb) {
var jsonFile = path.resolve(dir, "node_modules", pkg, "package.json")
readJson(jsonFile, function (er, d) {
+ if (er && er.code !== "ENOENT") return cb(er)
cb(null, er ? [] : [[d.name, d.version]])
})
}, function (er, pvs) {
diff --git a/deps/npm/lib/publish.js b/deps/npm/lib/publish.js
index bb6a4cede0..027ea59553 100644
--- a/deps/npm/lib/publish.js
+++ b/deps/npm/lib/publish.js
@@ -32,6 +32,7 @@ function publish (args, isRetry, cb) {
var arg = args[0]
// if it's a local folder, then run the prepublish there, first.
readJson(path.resolve(arg, "package.json"), function (er, data) {
+ if (er && er.code !== "ENOENT") return cb(er)
// error is ok. could be publishing a url or tarball
// however, that means that we will not have automatically run
// the prepublish script, since that gets run when adding a folder
diff --git a/deps/npm/lib/run-script.js b/deps/npm/lib/run-script.js
index 4af74eefde..d509cc86e0 100644
--- a/deps/npm/lib/run-script.js
+++ b/deps/npm/lib/run-script.js
@@ -25,6 +25,7 @@ runScript.completion = function (opts, cb) {
// or a package, in which case, complete against its scripts
var json = path.join(npm.prefix, "package.json")
return readJson(json, function (er, d) {
+ if (er && er.code !== "ENOENT") return cb(er)
if (er) d = {}
var scripts = Object.keys(d.scripts || {})
console.error("local scripts", scripts)
@@ -35,6 +36,7 @@ runScript.completion = function (opts, cb) {
var pkgDir = path.resolve( pref, "node_modules"
, argv[2], "package.json" )
readJson(pkgDir, function (er, d) {
+ if (er && er.code !== "ENOENT") return cb(er)
if (er) d = {}
var scripts = Object.keys(d.scripts || {})
return cb(null, scripts)
@@ -55,6 +57,7 @@ runScript.completion = function (opts, cb) {
if (npm.config.get("global")) scripts = [], next()
else readJson(path.join(npm.prefix, "package.json"), function (er, d) {
+ if (er && er.code !== "ENOENT") return cb(er)
d = d || {}
scripts = Object.keys(d.scripts || {})
next()
diff --git a/deps/npm/lib/uninstall.js b/deps/npm/lib/uninstall.js
index b4dbd1de08..275088ef70 100644
--- a/deps/npm/lib/uninstall.js
+++ b/deps/npm/lib/uninstall.js
@@ -30,6 +30,7 @@ function uninstall (args, cb) {
// remove this package from the global space, if it's installed there
if (npm.config.get("global")) return cb(uninstall.usage)
readJson(path.resolve(npm.prefix, "package.json"), function (er, pkg) {
+ if (er && er.code !== "ENOENT") return cb(er)
if (er) return cb(uninstall.usage)
uninstall_( [pkg.name]
, npm.dir
diff --git a/deps/npm/lib/unpublish.js b/deps/npm/lib/unpublish.js
index def308525c..c0056e7768 100644
--- a/deps/npm/lib/unpublish.js
+++ b/deps/npm/lib/unpublish.js
@@ -56,6 +56,7 @@ function unpublish (args, cb) {
// read the package name and version out of that.
var cwdJson = path.join(process.cwd(), "package.json")
return readJson(cwdJson, function (er, data) {
+ if (er && er.code !== "ENOENT") return cb(er)
if (er) return cb("Usage:\n"+unpublish.usage)
gotProject(data.name, data.version, cb)
})
diff --git a/deps/npm/lib/utils/lifecycle.js b/deps/npm/lib/utils/lifecycle.js
index 97adb96585..825edc9b98 100644
--- a/deps/npm/lib/utils/lifecycle.js
+++ b/deps/npm/lib/utils/lifecycle.js
@@ -49,6 +49,7 @@ function lifecycle (pkg, stage, wd, unsafe, failOk, cb) {
var env = makeEnv(pkg)
env.npm_lifecycle_event = stage
env.npm_node_execpath = env.NODE = env.NODE || process.execPath
+ env.npm_execpath = require.main.filename
// "nobody" typically doesn't have permission to write to /tmp
// even if it's never used, sh freaks out.
diff --git a/deps/npm/man/man1/README.1 b/deps/npm/man/man1/README.1
index 0a927d35d2..bb9254d01c 100644
--- a/deps/npm/man/man1/README.1
+++ b/deps/npm/man/man1/README.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM" "1" "December 2012" "" ""
+.TH "NPM" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm\fR \-\- node package manager
diff --git a/deps/npm/man/man1/adduser.1 b/deps/npm/man/man1/adduser.1
index df8f52f109..63a2d322cc 100644
--- a/deps/npm/man/man1/adduser.1
+++ b/deps/npm/man/man1/adduser.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-ADDUSER" "1" "December 2012" "" ""
+.TH "NPM\-ADDUSER" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-adduser\fR \-\- Add a registry user account
diff --git a/deps/npm/man/man1/bin.1 b/deps/npm/man/man1/bin.1
index 338309cd24..9495dfabe5 100644
--- a/deps/npm/man/man1/bin.1
+++ b/deps/npm/man/man1/bin.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BIN" "1" "December 2012" "" ""
+.TH "NPM\-BIN" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-bin\fR \-\- Display npm bin folder
diff --git a/deps/npm/man/man1/bugs.1 b/deps/npm/man/man1/bugs.1
index 02c2183598..8156f39581 100644
--- a/deps/npm/man/man1/bugs.1
+++ b/deps/npm/man/man1/bugs.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BUGS" "1" "December 2012" "" ""
+.TH "NPM\-BUGS" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-bugs\fR \-\- Bugs for a package in a web browser maybe
diff --git a/deps/npm/man/man1/build.1 b/deps/npm/man/man1/build.1
index 59d45d1395..67ccb0b63d 100644
--- a/deps/npm/man/man1/build.1
+++ b/deps/npm/man/man1/build.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BUILD" "1" "December 2012" "" ""
+.TH "NPM\-BUILD" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-build\fR \-\- Build a package
diff --git a/deps/npm/man/man1/bundle.1 b/deps/npm/man/man1/bundle.1
index 2d5f333eb1..976fcd4ae8 100644
--- a/deps/npm/man/man1/bundle.1
+++ b/deps/npm/man/man1/bundle.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BUNDLE" "1" "December 2012" "" ""
+.TH "NPM\-BUNDLE" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-bundle\fR \-\- REMOVED
diff --git a/deps/npm/man/man1/cache.1 b/deps/npm/man/man1/cache.1
index 45454d6af5..43234d5f7f 100644
--- a/deps/npm/man/man1/cache.1
+++ b/deps/npm/man/man1/cache.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-CACHE" "1" "December 2012" "" ""
+.TH "NPM\-CACHE" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-cache\fR \-\- Manipulates packages cache
diff --git a/deps/npm/man/man1/changelog.1 b/deps/npm/man/man1/changelog.1
index ae61098b38..3584b872f7 100644
--- a/deps/npm/man/man1/changelog.1
+++ b/deps/npm/man/man1/changelog.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-CHANGELOG" "1" "December 2012" "" ""
+.TH "NPM\-CHANGELOG" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-changelog\fR \-\- Changes
diff --git a/deps/npm/man/man1/coding-style.1 b/deps/npm/man/man1/coding-style.1
index 8328e615ad..add053c119 100644
--- a/deps/npm/man/man1/coding-style.1
+++ b/deps/npm/man/man1/coding-style.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-CODING\-STYLE" "1" "December 2012" "" ""
+.TH "NPM\-CODING\-STYLE" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-coding-style\fR \-\- npm\'s "funny" coding style
diff --git a/deps/npm/man/man1/completion.1 b/deps/npm/man/man1/completion.1
index 3367ff9b3d..ff8af5f84b 100644
--- a/deps/npm/man/man1/completion.1
+++ b/deps/npm/man/man1/completion.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-COMPLETION" "1" "December 2012" "" ""
+.TH "NPM\-COMPLETION" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-completion\fR \-\- Tab Completion for npm
diff --git a/deps/npm/man/man1/config.1 b/deps/npm/man/man1/config.1
index 15685c6e0c..8041285612 100644
--- a/deps/npm/man/man1/config.1
+++ b/deps/npm/man/man1/config.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-CONFIG" "1" "December 2012" "" ""
+.TH "NPM\-CONFIG" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-config\fR \-\- Manage the npm configuration file
diff --git a/deps/npm/man/man1/dedupe.1 b/deps/npm/man/man1/dedupe.1
index 73de1f48e4..1a3a5419db 100644
--- a/deps/npm/man/man1/dedupe.1
+++ b/deps/npm/man/man1/dedupe.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DEDUPE" "1" "December 2012" "" ""
+.TH "NPM\-DEDUPE" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-dedupe\fR \-\- Reduce duplication
diff --git a/deps/npm/man/man1/deprecate.1 b/deps/npm/man/man1/deprecate.1
index bbefd7f3f0..0b4868b255 100644
--- a/deps/npm/man/man1/deprecate.1
+++ b/deps/npm/man/man1/deprecate.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DEPRECATE" "1" "December 2012" "" ""
+.TH "NPM\-DEPRECATE" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-deprecate\fR \-\- Deprecate a version of a package
diff --git a/deps/npm/man/man1/developers.1 b/deps/npm/man/man1/developers.1
index ab5e557694..a7e9e7cad2 100644
--- a/deps/npm/man/man1/developers.1
+++ b/deps/npm/man/man1/developers.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DEVELOPERS" "1" "December 2012" "" ""
+.TH "NPM\-DEVELOPERS" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-developers\fR \-\- Developer Guide
diff --git a/deps/npm/man/man1/disputes.1 b/deps/npm/man/man1/disputes.1
index 042b2ef537..d8b110fd11 100644
--- a/deps/npm/man/man1/disputes.1
+++ b/deps/npm/man/man1/disputes.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DISPUTES" "1" "December 2012" "" ""
+.TH "NPM\-DISPUTES" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-disputes\fR \-\- Handling Module Name Disputes
diff --git a/deps/npm/man/man1/docs.1 b/deps/npm/man/man1/docs.1
index e1028b89b3..96d85c9959 100644
--- a/deps/npm/man/man1/docs.1
+++ b/deps/npm/man/man1/docs.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DOCS" "1" "December 2012" "" ""
+.TH "NPM\-DOCS" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-docs\fR \-\- Docs for a package in a web browser maybe
diff --git a/deps/npm/man/man1/edit.1 b/deps/npm/man/man1/edit.1
index f727c2b99c..35db1fb73c 100644
--- a/deps/npm/man/man1/edit.1
+++ b/deps/npm/man/man1/edit.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-EDIT" "1" "December 2012" "" ""
+.TH "NPM\-EDIT" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-edit\fR \-\- Edit an installed package
diff --git a/deps/npm/man/man1/explore.1 b/deps/npm/man/man1/explore.1
index 7c8f95a301..f5fa96d5e9 100644
--- a/deps/npm/man/man1/explore.1
+++ b/deps/npm/man/man1/explore.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-EXPLORE" "1" "December 2012" "" ""
+.TH "NPM\-EXPLORE" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-explore\fR \-\- Browse an installed package
diff --git a/deps/npm/man/man1/faq.1 b/deps/npm/man/man1/faq.1
index bc72dea835..b85b3cfcf1 100644
--- a/deps/npm/man/man1/faq.1
+++ b/deps/npm/man/man1/faq.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-FAQ" "1" "December 2012" "" ""
+.TH "NPM\-FAQ" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-faq\fR \-\- Frequently Asked Questions
diff --git a/deps/npm/man/man1/folders.1 b/deps/npm/man/man1/folders.1
index 02a7c613fd..abef276199 100644
--- a/deps/npm/man/man1/folders.1
+++ b/deps/npm/man/man1/folders.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-FOLDERS" "1" "December 2012" "" ""
+.TH "NPM\-FOLDERS" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-folders\fR \-\- Folder Structures Used by npm
diff --git a/deps/npm/man/man1/help-search.1 b/deps/npm/man/man1/help-search.1
index 95ea44f42f..926e34061a 100644
--- a/deps/npm/man/man1/help-search.1
+++ b/deps/npm/man/man1/help-search.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-HELP\-SEARCH" "1" "December 2012" "" ""
+.TH "NPM\-HELP\-SEARCH" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-help-search\fR \-\- Search npm help documentation
diff --git a/deps/npm/man/man1/help.1 b/deps/npm/man/man1/help.1
index 8b01719d6e..0de263853b 100644
--- a/deps/npm/man/man1/help.1
+++ b/deps/npm/man/man1/help.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-HELP" "1" "December 2012" "" ""
+.TH "NPM\-HELP" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-help\fR \-\- Get help on npm
diff --git a/deps/npm/man/man1/index.1 b/deps/npm/man/man1/index.1
index d2b7e8197f..0065d78119 100644
--- a/deps/npm/man/man1/index.1
+++ b/deps/npm/man/man1/index.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-INDEX" "1" "December 2012" "" ""
+.TH "NPM\-INDEX" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-index\fR \-\- Index of all npm documentation
diff --git a/deps/npm/man/man1/init.1 b/deps/npm/man/man1/init.1
index 597e68caf7..41bf011e1f 100644
--- a/deps/npm/man/man1/init.1
+++ b/deps/npm/man/man1/init.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-INIT" "1" "December 2012" "" ""
+.TH "NPM\-INIT" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-init\fR \-\- Interactively create a package\.json file
diff --git a/deps/npm/man/man1/install.1 b/deps/npm/man/man1/install.1
index 9de9fe0ecd..dfb2c2955d 100644
--- a/deps/npm/man/man1/install.1
+++ b/deps/npm/man/man1/install.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-INSTALL" "1" "December 2012" "" ""
+.TH "NPM\-INSTALL" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-install\fR \-\- Install a package
diff --git a/deps/npm/man/man1/json.1 b/deps/npm/man/man1/json.1
index 517da10be2..6d3d384dfe 100644
--- a/deps/npm/man/man1/json.1
+++ b/deps/npm/man/man1/json.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-JSON" "1" "December 2012" "" ""
+.TH "NPM\-JSON" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-json\fR \-\- Specifics of npm\'s package\.json handling
@@ -521,10 +521,10 @@ For example, the following are equivalent:
\fB"~1\.2\.3" = ">=1\.2\.3 <1\.3\.0"\fR
.
.IP "\(bu" 4
-\fB"~1\.2" = ">=1\.2\.0 <2\.0\.0"\fR
+\fB"~1\.2" = ">=1\.2\.0 <1\.3\.0"\fR
.
.IP "\(bu" 4
-\fB"~1" = ">=1\.0\.0 <2\.0\.0"\fR
+\fB"~1" = ">=1\.0\.0 <1\.1\.0"\fR
.
.IP "" 0
.
diff --git a/deps/npm/man/man1/link.1 b/deps/npm/man/man1/link.1
index 30bc4e7ce9..505fcf3708 100644
--- a/deps/npm/man/man1/link.1
+++ b/deps/npm/man/man1/link.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-LINK" "1" "December 2012" "" ""
+.TH "NPM\-LINK" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-link\fR \-\- Symlink a package folder
diff --git a/deps/npm/man/man1/ls.1 b/deps/npm/man/man1/ls.1
index ddeaac7b6d..0b3aeb62f6 100644
--- a/deps/npm/man/man1/ls.1
+++ b/deps/npm/man/man1/ls.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-LS" "1" "December 2012" "" ""
+.TH "NPM\-LS" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-ls\fR \-\- List installed packages
@@ -29,7 +29,7 @@ For example, running \fBnpm ls promzard\fR in npm\'s source tree will show:
.IP "" 4
.
.nf
-npm@1.1.70 /path/to/npm
+npm@1.2.0 /path/to/npm
└─┬ init\-package\-json@0\.0\.4
└── promzard@0\.1\.5
.
diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1
index 4b50686b4b..a1525849fb 100644
--- a/deps/npm/man/man1/npm.1
+++ b/deps/npm/man/man1/npm.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM" "1" "December 2012" "" ""
+.TH "NPM" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm\fR \-\- node package manager
@@ -14,7 +14,7 @@ npm <command> [args]
.fi
.
.SH "VERSION"
-1.1.70
+1.2.0
.
.SH "DESCRIPTION"
npm is the package manager for the Node JavaScript platform\. It puts
diff --git a/deps/npm/man/man1/outdated.1 b/deps/npm/man/man1/outdated.1
index 03912064e3..2b8a56983e 100644
--- a/deps/npm/man/man1/outdated.1
+++ b/deps/npm/man/man1/outdated.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-OUTDATED" "1" "December 2012" "" ""
+.TH "NPM\-OUTDATED" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-outdated\fR \-\- Check for outdated packages
diff --git a/deps/npm/man/man1/owner.1 b/deps/npm/man/man1/owner.1
index 82adc69f38..7418f0ae35 100644
--- a/deps/npm/man/man1/owner.1
+++ b/deps/npm/man/man1/owner.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-OWNER" "1" "December 2012" "" ""
+.TH "NPM\-OWNER" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-owner\fR \-\- Manage package owners
diff --git a/deps/npm/man/man1/pack.1 b/deps/npm/man/man1/pack.1
index 12588fbfcf..afe332d098 100644
--- a/deps/npm/man/man1/pack.1
+++ b/deps/npm/man/man1/pack.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PACK" "1" "December 2012" "" ""
+.TH "NPM\-PACK" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-pack\fR \-\- Create a tarball from a package
diff --git a/deps/npm/man/man1/prefix.1 b/deps/npm/man/man1/prefix.1
index 5a6cac9631..7b4bbfc8f4 100644
--- a/deps/npm/man/man1/prefix.1
+++ b/deps/npm/man/man1/prefix.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PREFIX" "1" "December 2012" "" ""
+.TH "NPM\-PREFIX" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-prefix\fR \-\- Display prefix
diff --git a/deps/npm/man/man1/prune.1 b/deps/npm/man/man1/prune.1
index dfed0f86c6..0aecb54330 100644
--- a/deps/npm/man/man1/prune.1
+++ b/deps/npm/man/man1/prune.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PRUNE" "1" "December 2012" "" ""
+.TH "NPM\-PRUNE" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-prune\fR \-\- Remove extraneous packages
diff --git a/deps/npm/man/man1/publish.1 b/deps/npm/man/man1/publish.1
index 08b2478120..f915e3022e 100644
--- a/deps/npm/man/man1/publish.1
+++ b/deps/npm/man/man1/publish.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PUBLISH" "1" "December 2012" "" ""
+.TH "NPM\-PUBLISH" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-publish\fR \-\- Publish a package
diff --git a/deps/npm/man/man1/rebuild.1 b/deps/npm/man/man1/rebuild.1
index e6c5ee5dd2..8559907456 100644
--- a/deps/npm/man/man1/rebuild.1
+++ b/deps/npm/man/man1/rebuild.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-REBUILD" "1" "December 2012" "" ""
+.TH "NPM\-REBUILD" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-rebuild\fR \-\- Rebuild a package
diff --git a/deps/npm/man/man1/registry.1 b/deps/npm/man/man1/registry.1
index a4a096c158..003e89c0f8 100644
--- a/deps/npm/man/man1/registry.1
+++ b/deps/npm/man/man1/registry.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-REGISTRY" "1" "December 2012" "" ""
+.TH "NPM\-REGISTRY" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-registry\fR \-\- The JavaScript Package Registry
diff --git a/deps/npm/man/man1/removing-npm.1 b/deps/npm/man/man1/removing-npm.1
index 4a381c1ac1..2c2118ca01 100644
--- a/deps/npm/man/man1/removing-npm.1
+++ b/deps/npm/man/man1/removing-npm.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-REMOVAL" "1" "December 2012" "" ""
+.TH "NPM\-REMOVAL" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-removal\fR \-\- Cleaning the Slate
diff --git a/deps/npm/man/man1/restart.1 b/deps/npm/man/man1/restart.1
index a9d5789f8b..a5969b83d6 100644
--- a/deps/npm/man/man1/restart.1
+++ b/deps/npm/man/man1/restart.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-RESTART" "1" "December 2012" "" ""
+.TH "NPM\-RESTART" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-restart\fR \-\- Start a package
diff --git a/deps/npm/man/man1/root.1 b/deps/npm/man/man1/root.1
index b4cbfa78c3..04ec0361ed 100644
--- a/deps/npm/man/man1/root.1
+++ b/deps/npm/man/man1/root.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-ROOT" "1" "December 2012" "" ""
+.TH "NPM\-ROOT" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-root\fR \-\- Display npm root
diff --git a/deps/npm/man/man1/run-script.1 b/deps/npm/man/man1/run-script.1
index 53a5c30859..479a3ffa4d 100644
--- a/deps/npm/man/man1/run-script.1
+++ b/deps/npm/man/man1/run-script.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-RUN\-SCRIPT" "1" "December 2012" "" ""
+.TH "NPM\-RUN\-SCRIPT" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-run-script\fR \-\- Run arbitrary package scripts
diff --git a/deps/npm/man/man1/scripts.1 b/deps/npm/man/man1/scripts.1
index 263afa8784..11f6b8a7e6 100644
--- a/deps/npm/man/man1/scripts.1
+++ b/deps/npm/man/man1/scripts.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SCRIPTS" "1" "December 2012" "" ""
+.TH "NPM\-SCRIPTS" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-scripts\fR \-\- How npm handles the "scripts" field
@@ -11,6 +11,15 @@ npm supports the "scripts" member of the package\.json script, for the
following scripts:
.
.IP "\(bu" 4
+prepublish:
+Run BEFORE the package is published\. (Also run on local \fBnpm
+install\fR without any arguments\.)
+.
+.IP "\(bu" 4
+publish, postpublish:
+Run AFTER the package is published\.
+.
+.IP "\(bu" 4
preinstall:
Run BEFORE the package is installed
.
@@ -35,14 +44,6 @@ update, postupdate:
Run AFTER the package is updated with the update command\.
.
.IP "\(bu" 4
-prepublish:
-Run BEFORE the package is published\.
-.
-.IP "\(bu" 4
-publish, postpublish:
-Run AFTER the package is published\.
-.
-.IP "\(bu" 4
pretest, test, posttest:
Run by the \fBnpm test\fR command\.
.
@@ -64,6 +65,64 @@ stop and start scripts if no \fBrestart\fR script is provided\.
.P
Additionally, arbitrary scrips can be run by doing \fBnpm run\-script <stage> <pkg>\fR\|\.
.
+.SH "NOTE: INSTALL SCRIPTS ARE AN ANTIPATTERN"
+\fBtl;dr\fR Don\'t use \fBinstall\fR\|\. Use a \fB\|\.gyp\fR file for compilation, and \fBprepublish\fR for anything else\.
+.
+.P
+You should almost never have to explicitly set a \fBpreinstall\fR or \fBinstall\fR script\. If you are doing this, please consider if there is
+another option\.
+.
+.P
+The only valid use of \fBinstall\fR or \fBpreinstall\fR scripts is for
+compilation which must be done on the target architecture\. In early
+versions of node, this was often done using the \fBnode\-waf\fR scripts, or
+a standalone \fBMakefile\fR, and early versions of npm required that it be
+explicitly set in package\.json\. This was not portable, and harder to
+do properly\.
+.
+.P
+In the current version of node, the standard way to do this is using a \fB\|\.gyp\fR file\. If you have a file with a \fB\|\.gyp\fR extension in the root
+of your package, then npm will run the appropriate \fBnode\-gyp\fR commands
+automatically at install time\. This is the only officially supported
+method for compiling binary addons, and does not require that you add
+anything to your package\.json file\.
+.
+.P
+If you have to do other things before your package is used, in a way
+that is not dependent on the operating system or architecture of the
+target system, then use a \fBprepublish\fR script instead\. This includes
+tasks such as:
+.
+.IP "\(bu" 4
+Compile CoffeeScript source code into JavaScript\.
+.
+.IP "\(bu" 4
+Create minified versions of JavaScript source code\.
+.
+.IP "\(bu" 4
+Fetching remote resources that your package will use\.
+.
+.IP "" 0
+.
+.P
+The advantage of doing these things at \fBprepublish\fR time instead of \fBpreinstall\fR or \fBinstall\fR time is that they can be done once, in a
+single place, and thus greatly reduce complexity and variability\.
+Additionally, this means that:
+.
+.IP "\(bu" 4
+You can depend on \fBcoffee\-script\fR as a \fBdevDependency\fR, and thus
+your users don\'t need to have it installed\.
+.
+.IP "\(bu" 4
+You don\'t need to include the minifiers in your package, reducing
+the size for your users\.
+.
+.IP "\(bu" 4
+You don\'t need to rely on your users having \fBcurl\fR or \fBwget\fR or
+other system tools on the target machines\.
+.
+.IP "" 0
+.
.SH "DEFAULT VALUES"
npm will default some script values based on package contents\.
.
diff --git a/deps/npm/man/man1/search.1 b/deps/npm/man/man1/search.1
index 005664ead7..17de3fdf70 100644
--- a/deps/npm/man/man1/search.1
+++ b/deps/npm/man/man1/search.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SEARCH" "1" "December 2012" "" ""
+.TH "NPM\-SEARCH" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-search\fR \-\- Search for packages
diff --git a/deps/npm/man/man1/semver.1 b/deps/npm/man/man1/semver.1
index 29d5c1bf6e..8ecdd02fda 100644
--- a/deps/npm/man/man1/semver.1
+++ b/deps/npm/man/man1/semver.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SEMVER" "1" "December 2012" "" ""
+.TH "NPM\-SEMVER" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-semver\fR \-\- The semantic versioner for npm
@@ -16,8 +16,8 @@ As a node module:
.
.nf
$ npm install semver
-semver\.valid(\'1\.2\.3\') // true
-semver\.valid(\'a\.b\.c\') // false
+semver\.valid(\'1\.2\.3\') // \'1\.2\.3\'
+semver\.valid(\'a\.b\.c\') // null
semver\.clean(\' =v1\.2\.3 \') // \'1\.2\.3\'
semver\.satisfies(\'1\.2\.3\', \'1\.x || >=2\.5\.0 || 5\.0\.0 \- 7\.2\.3\') // true
semver\.gt(\'1\.2\.3\', \'9\.8\.7\') // false
@@ -132,7 +132,7 @@ The following range styles are supported:
\fB~1\.2\.3\fR := \fB>=1\.2\.3 <1\.3\.0\fR
.
.IP "\(bu" 4
-\fB~1\.2\fR := \fB>=1\.2\.0 <2\.0\.0\fR
+\fB~1\.2\fR := \fB>=1\.2\.0 <1\.3\.0\fR
.
.IP "\(bu" 4
\fB~1\fR := \fB>=1\.0\.0 <2\.0\.0\fR
diff --git a/deps/npm/man/man1/shrinkwrap.1 b/deps/npm/man/man1/shrinkwrap.1
index 3d84502246..a2b354d3e3 100644
--- a/deps/npm/man/man1/shrinkwrap.1
+++ b/deps/npm/man/man1/shrinkwrap.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SHRINKWRAP" "1" "December 2012" "" ""
+.TH "NPM\-SHRINKWRAP" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-shrinkwrap\fR \-\- Lock down dependency versions
diff --git a/deps/npm/man/man1/star.1 b/deps/npm/man/man1/star.1
index 31db483de1..b9dc3f38ab 100644
--- a/deps/npm/man/man1/star.1
+++ b/deps/npm/man/man1/star.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-STAR" "1" "December 2012" "" ""
+.TH "NPM\-STAR" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-star\fR \-\- Mark your favorite packages
diff --git a/deps/npm/man/man1/start.1 b/deps/npm/man/man1/start.1
index e79a48d7a2..29347d31e4 100644
--- a/deps/npm/man/man1/start.1
+++ b/deps/npm/man/man1/start.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-START" "1" "December 2012" "" ""
+.TH "NPM\-START" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-start\fR \-\- Start a package
diff --git a/deps/npm/man/man1/stop.1 b/deps/npm/man/man1/stop.1
index 5a7856bb3d..240e3b0040 100644
--- a/deps/npm/man/man1/stop.1
+++ b/deps/npm/man/man1/stop.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-STOP" "1" "December 2012" "" ""
+.TH "NPM\-STOP" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-stop\fR \-\- Stop a package
diff --git a/deps/npm/man/man1/submodule.1 b/deps/npm/man/man1/submodule.1
index 39bd1ad301..c06af3486c 100644
--- a/deps/npm/man/man1/submodule.1
+++ b/deps/npm/man/man1/submodule.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SUBMODULE" "1" "December 2012" "" ""
+.TH "NPM\-SUBMODULE" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-submodule\fR \-\- Add a package as a git submodule
diff --git a/deps/npm/man/man1/tag.1 b/deps/npm/man/man1/tag.1
index 3832cdc808..74c65a3356 100644
--- a/deps/npm/man/man1/tag.1
+++ b/deps/npm/man/man1/tag.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-TAG" "1" "December 2012" "" ""
+.TH "NPM\-TAG" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-tag\fR \-\- Tag a published version
diff --git a/deps/npm/man/man1/test.1 b/deps/npm/man/man1/test.1
index 988b6947f1..51c8ad7864 100644
--- a/deps/npm/man/man1/test.1
+++ b/deps/npm/man/man1/test.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-TEST" "1" "December 2012" "" ""
+.TH "NPM\-TEST" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-test\fR \-\- Test a package
diff --git a/deps/npm/man/man1/uninstall.1 b/deps/npm/man/man1/uninstall.1
index 79d01e2c37..7c188fc677 100644
--- a/deps/npm/man/man1/uninstall.1
+++ b/deps/npm/man/man1/uninstall.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-RM" "1" "December 2012" "" ""
+.TH "NPM\-RM" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-rm\fR \-\- Remove a package
diff --git a/deps/npm/man/man1/unpublish.1 b/deps/npm/man/man1/unpublish.1
index 694386a588..818885286a 100644
--- a/deps/npm/man/man1/unpublish.1
+++ b/deps/npm/man/man1/unpublish.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-UNPUBLISH" "1" "December 2012" "" ""
+.TH "NPM\-UNPUBLISH" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-unpublish\fR \-\- Remove a package from the registry
diff --git a/deps/npm/man/man1/update.1 b/deps/npm/man/man1/update.1
index 09575c0e36..214ab23001 100644
--- a/deps/npm/man/man1/update.1
+++ b/deps/npm/man/man1/update.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-UPDATE" "1" "December 2012" "" ""
+.TH "NPM\-UPDATE" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-update\fR \-\- Update a package
diff --git a/deps/npm/man/man1/version.1 b/deps/npm/man/man1/version.1
index fc9b7ac1c7..d2d521930d 100644
--- a/deps/npm/man/man1/version.1
+++ b/deps/npm/man/man1/version.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-VERSION" "1" "December 2012" "" ""
+.TH "NPM\-VERSION" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-version\fR \-\- Bump a package version
diff --git a/deps/npm/man/man1/view.1 b/deps/npm/man/man1/view.1
index 2b4a2f4bde..afe2b775db 100644
--- a/deps/npm/man/man1/view.1
+++ b/deps/npm/man/man1/view.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-VIEW" "1" "December 2012" "" ""
+.TH "NPM\-VIEW" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-view\fR \-\- View registry info
diff --git a/deps/npm/man/man1/whoami.1 b/deps/npm/man/man1/whoami.1
index 46df8f6102..4222bfe5b2 100644
--- a/deps/npm/man/man1/whoami.1
+++ b/deps/npm/man/man1/whoami.1
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-WHOAMI" "1" "December 2012" "" ""
+.TH "NPM\-WHOAMI" "1" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-whoami\fR \-\- Display npm username
diff --git a/deps/npm/man/man3/bin.3 b/deps/npm/man/man3/bin.3
index 54f935fd4f..1047557ea8 100644
--- a/deps/npm/man/man3/bin.3
+++ b/deps/npm/man/man3/bin.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BIN" "3" "December 2012" "" ""
+.TH "NPM\-BIN" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-bin\fR \-\- Display npm bin folder
diff --git a/deps/npm/man/man3/bugs.3 b/deps/npm/man/man3/bugs.3
index 1a8e95389d..7997c174f3 100644
--- a/deps/npm/man/man3/bugs.3
+++ b/deps/npm/man/man3/bugs.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BUGS" "3" "December 2012" "" ""
+.TH "NPM\-BUGS" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-bugs\fR \-\- Bugs for a package in a web browser maybe
diff --git a/deps/npm/man/man3/commands.3 b/deps/npm/man/man3/commands.3
index 9d3103f1d4..5aafad672b 100644
--- a/deps/npm/man/man3/commands.3
+++ b/deps/npm/man/man3/commands.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-COMMANDS" "3" "December 2012" "" ""
+.TH "NPM\-COMMANDS" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-commands\fR \-\- npm commands
diff --git a/deps/npm/man/man3/config.3 b/deps/npm/man/man3/config.3
index 600472fbcc..5a43889c72 100644
--- a/deps/npm/man/man3/config.3
+++ b/deps/npm/man/man3/config.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-CONFIG" "3" "December 2012" "" ""
+.TH "NPM\-CONFIG" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-config\fR \-\- Manage the npm configuration files
diff --git a/deps/npm/man/man3/deprecate.3 b/deps/npm/man/man3/deprecate.3
index 3f83bf2804..c9a7ecb79a 100644
--- a/deps/npm/man/man3/deprecate.3
+++ b/deps/npm/man/man3/deprecate.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DEPRECATE" "3" "December 2012" "" ""
+.TH "NPM\-DEPRECATE" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-deprecate\fR \-\- Deprecate a version of a package
diff --git a/deps/npm/man/man3/docs.3 b/deps/npm/man/man3/docs.3
index ea9dbb027f..6e9913cd25 100644
--- a/deps/npm/man/man3/docs.3
+++ b/deps/npm/man/man3/docs.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DOCS" "3" "December 2012" "" ""
+.TH "NPM\-DOCS" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-docs\fR \-\- Docs for a package in a web browser maybe
diff --git a/deps/npm/man/man3/edit.3 b/deps/npm/man/man3/edit.3
index 5abc36f86f..938e3cc278 100644
--- a/deps/npm/man/man3/edit.3
+++ b/deps/npm/man/man3/edit.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-EDIT" "3" "December 2012" "" ""
+.TH "NPM\-EDIT" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-edit\fR \-\- Edit an installed package
diff --git a/deps/npm/man/man3/explore.3 b/deps/npm/man/man3/explore.3
index 1d55e3ba7f..c0cc6c07d5 100644
--- a/deps/npm/man/man3/explore.3
+++ b/deps/npm/man/man3/explore.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-EXPLORE" "3" "December 2012" "" ""
+.TH "NPM\-EXPLORE" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-explore\fR \-\- Browse an installed package
diff --git a/deps/npm/man/man3/help-search.3 b/deps/npm/man/man3/help-search.3
index b44525edf9..802e9122c2 100644
--- a/deps/npm/man/man3/help-search.3
+++ b/deps/npm/man/man3/help-search.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-HELP\-SEARCH" "3" "December 2012" "" ""
+.TH "NPM\-HELP\-SEARCH" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-help-search\fR \-\- Search the help pages
diff --git a/deps/npm/man/man3/init.3 b/deps/npm/man/man3/init.3
index 26765c3cf3..53db5166ef 100644
--- a/deps/npm/man/man3/init.3
+++ b/deps/npm/man/man3/init.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "INIT" "3" "December 2012" "" ""
+.TH "INIT" "3" "January 2013" "" ""
.
.SH "NAME"
\fBinit\fR \-\- Interactively create a package\.json file
diff --git a/deps/npm/man/man3/install.3 b/deps/npm/man/man3/install.3
index aed53d2944..67e871f383 100644
--- a/deps/npm/man/man3/install.3
+++ b/deps/npm/man/man3/install.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-INSTALL" "3" "December 2012" "" ""
+.TH "NPM\-INSTALL" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-install\fR \-\- install a package programmatically
diff --git a/deps/npm/man/man3/link.3 b/deps/npm/man/man3/link.3
index 0c57b7f132..1fbf67e2a3 100644
--- a/deps/npm/man/man3/link.3
+++ b/deps/npm/man/man3/link.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-LINK" "3" "December 2012" "" ""
+.TH "NPM\-LINK" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-link\fR \-\- Symlink a package folder
diff --git a/deps/npm/man/man3/load.3 b/deps/npm/man/man3/load.3
index c2cf7315be..94cf49da6f 100644
--- a/deps/npm/man/man3/load.3
+++ b/deps/npm/man/man3/load.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-LOAD" "3" "December 2012" "" ""
+.TH "NPM\-LOAD" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-load\fR \-\- Load config settings
diff --git a/deps/npm/man/man3/ls.3 b/deps/npm/man/man3/ls.3
index 4694bc52bf..163e58b073 100644
--- a/deps/npm/man/man3/ls.3
+++ b/deps/npm/man/man3/ls.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-LS" "3" "December 2012" "" ""
+.TH "NPM\-LS" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-ls\fR \-\- List installed packages
diff --git a/deps/npm/man/man3/npm.3 b/deps/npm/man/man3/npm.3
index 532d133cb1..69a7507219 100644
--- a/deps/npm/man/man3/npm.3
+++ b/deps/npm/man/man3/npm.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM" "3" "December 2012" "" ""
+.TH "NPM" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm\fR \-\- node package manager
@@ -21,7 +21,7 @@ npm\.load(configObject, function (er, npm) {
.fi
.
.SH "VERSION"
-1.1.70
+1.2.0
.
.SH "DESCRIPTION"
This is the API documentation for npm\.
diff --git a/deps/npm/man/man3/outdated.3 b/deps/npm/man/man3/outdated.3
index 0a3f7c1c3f..1247068ea2 100644
--- a/deps/npm/man/man3/outdated.3
+++ b/deps/npm/man/man3/outdated.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-OUTDATED" "3" "December 2012" "" ""
+.TH "NPM\-OUTDATED" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-outdated\fR \-\- Check for outdated packages
diff --git a/deps/npm/man/man3/owner.3 b/deps/npm/man/man3/owner.3
index c6fc84c164..2e706eddc4 100644
--- a/deps/npm/man/man3/owner.3
+++ b/deps/npm/man/man3/owner.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-OWNER" "3" "December 2012" "" ""
+.TH "NPM\-OWNER" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-owner\fR \-\- Manage package owners
diff --git a/deps/npm/man/man3/pack.3 b/deps/npm/man/man3/pack.3
index e98efbb5f5..4a7596a0f4 100644
--- a/deps/npm/man/man3/pack.3
+++ b/deps/npm/man/man3/pack.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PACK" "3" "December 2012" "" ""
+.TH "NPM\-PACK" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-pack\fR \-\- Create a tarball from a package
diff --git a/deps/npm/man/man3/prefix.3 b/deps/npm/man/man3/prefix.3
index 13e8935d1a..67b9a84853 100644
--- a/deps/npm/man/man3/prefix.3
+++ b/deps/npm/man/man3/prefix.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PREFIX" "3" "December 2012" "" ""
+.TH "NPM\-PREFIX" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-prefix\fR \-\- Display prefix
diff --git a/deps/npm/man/man3/prune.3 b/deps/npm/man/man3/prune.3
index 34e345c0fd..1302dd72a8 100644
--- a/deps/npm/man/man3/prune.3
+++ b/deps/npm/man/man3/prune.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PRUNE" "3" "December 2012" "" ""
+.TH "NPM\-PRUNE" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-prune\fR \-\- Remove extraneous packages
diff --git a/deps/npm/man/man3/publish.3 b/deps/npm/man/man3/publish.3
index 965c926927..cbc618f612 100644
--- a/deps/npm/man/man3/publish.3
+++ b/deps/npm/man/man3/publish.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PUBLISH" "3" "December 2012" "" ""
+.TH "NPM\-PUBLISH" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-publish\fR \-\- Publish a package
diff --git a/deps/npm/man/man3/rebuild.3 b/deps/npm/man/man3/rebuild.3
index 198921f19e..ff3804ca79 100644
--- a/deps/npm/man/man3/rebuild.3
+++ b/deps/npm/man/man3/rebuild.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-REBUILD" "3" "December 2012" "" ""
+.TH "NPM\-REBUILD" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-rebuild\fR \-\- Rebuild a package
diff --git a/deps/npm/man/man3/restart.3 b/deps/npm/man/man3/restart.3
index d99d649317..20c73f65be 100644
--- a/deps/npm/man/man3/restart.3
+++ b/deps/npm/man/man3/restart.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-RESTART" "3" "December 2012" "" ""
+.TH "NPM\-RESTART" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-restart\fR \-\- Start a package
diff --git a/deps/npm/man/man3/root.3 b/deps/npm/man/man3/root.3
index cadd360da9..b863e859d7 100644
--- a/deps/npm/man/man3/root.3
+++ b/deps/npm/man/man3/root.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-ROOT" "3" "December 2012" "" ""
+.TH "NPM\-ROOT" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-root\fR \-\- Display npm root
diff --git a/deps/npm/man/man3/run-script.3 b/deps/npm/man/man3/run-script.3
index ccfac9f0cf..237f11bb70 100644
--- a/deps/npm/man/man3/run-script.3
+++ b/deps/npm/man/man3/run-script.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-RUN\-SCRIPT" "3" "December 2012" "" ""
+.TH "NPM\-RUN\-SCRIPT" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-run-script\fR \-\- Run arbitrary package scripts
diff --git a/deps/npm/man/man3/search.3 b/deps/npm/man/man3/search.3
index d77173c8e2..79218c5794 100644
--- a/deps/npm/man/man3/search.3
+++ b/deps/npm/man/man3/search.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SEARCH" "3" "December 2012" "" ""
+.TH "NPM\-SEARCH" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-search\fR \-\- Search for packages
diff --git a/deps/npm/man/man3/shrinkwrap.3 b/deps/npm/man/man3/shrinkwrap.3
index fb1bb7b165..8e2ea94152 100644
--- a/deps/npm/man/man3/shrinkwrap.3
+++ b/deps/npm/man/man3/shrinkwrap.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SHRINKWRAP" "3" "December 2012" "" ""
+.TH "NPM\-SHRINKWRAP" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-shrinkwrap\fR \-\- programmatically generate package shrinkwrap file
diff --git a/deps/npm/man/man3/start.3 b/deps/npm/man/man3/start.3
index 1e47f087e7..172f928835 100644
--- a/deps/npm/man/man3/start.3
+++ b/deps/npm/man/man3/start.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-START" "3" "December 2012" "" ""
+.TH "NPM\-START" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-start\fR \-\- Start a package
diff --git a/deps/npm/man/man3/stop.3 b/deps/npm/man/man3/stop.3
index 5a7f2a8444..943f43972c 100644
--- a/deps/npm/man/man3/stop.3
+++ b/deps/npm/man/man3/stop.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-STOP" "3" "December 2012" "" ""
+.TH "NPM\-STOP" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-stop\fR \-\- Stop a package
diff --git a/deps/npm/man/man3/submodule.3 b/deps/npm/man/man3/submodule.3
index 1e2273a15a..22d95ff7aa 100644
--- a/deps/npm/man/man3/submodule.3
+++ b/deps/npm/man/man3/submodule.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SUBMODULE" "3" "December 2012" "" ""
+.TH "NPM\-SUBMODULE" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-submodule\fR \-\- Add a package as a git submodule
diff --git a/deps/npm/man/man3/tag.3 b/deps/npm/man/man3/tag.3
index 0ec1eb07b6..5b5a13b15b 100644
--- a/deps/npm/man/man3/tag.3
+++ b/deps/npm/man/man3/tag.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-TAG" "3" "December 2012" "" ""
+.TH "NPM\-TAG" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-tag\fR \-\- Tag a published version
diff --git a/deps/npm/man/man3/test.3 b/deps/npm/man/man3/test.3
index 030f934745..590de2a7d1 100644
--- a/deps/npm/man/man3/test.3
+++ b/deps/npm/man/man3/test.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-TEST" "3" "December 2012" "" ""
+.TH "NPM\-TEST" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-test\fR \-\- Test a package
diff --git a/deps/npm/man/man3/uninstall.3 b/deps/npm/man/man3/uninstall.3
index 8d3284c4ce..cb51cc188d 100644
--- a/deps/npm/man/man3/uninstall.3
+++ b/deps/npm/man/man3/uninstall.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-UNINSTALL" "3" "December 2012" "" ""
+.TH "NPM\-UNINSTALL" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-uninstall\fR \-\- uninstall a package programmatically
diff --git a/deps/npm/man/man3/unpublish.3 b/deps/npm/man/man3/unpublish.3
index a907be332d..c2a868b581 100644
--- a/deps/npm/man/man3/unpublish.3
+++ b/deps/npm/man/man3/unpublish.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-UNPUBLISH" "3" "December 2012" "" ""
+.TH "NPM\-UNPUBLISH" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-unpublish\fR \-\- Remove a package from the registry
diff --git a/deps/npm/man/man3/update.3 b/deps/npm/man/man3/update.3
index 5c5638079f..96885b7f69 100644
--- a/deps/npm/man/man3/update.3
+++ b/deps/npm/man/man3/update.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-UPDATE" "3" "December 2012" "" ""
+.TH "NPM\-UPDATE" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-update\fR \-\- Update a package
diff --git a/deps/npm/man/man3/version.3 b/deps/npm/man/man3/version.3
index d72f64ab9e..06d46cb443 100644
--- a/deps/npm/man/man3/version.3
+++ b/deps/npm/man/man3/version.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-VERSION" "3" "December 2012" "" ""
+.TH "NPM\-VERSION" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-version\fR \-\- Bump a package version
diff --git a/deps/npm/man/man3/view.3 b/deps/npm/man/man3/view.3
index 23e8906216..dc70c520e5 100644
--- a/deps/npm/man/man3/view.3
+++ b/deps/npm/man/man3/view.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-VIEW" "3" "December 2012" "" ""
+.TH "NPM\-VIEW" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-view\fR \-\- View registry info
diff --git a/deps/npm/man/man3/whoami.3 b/deps/npm/man/man3/whoami.3
index 99f4d5a8ab..07c89b68fa 100644
--- a/deps/npm/man/man3/whoami.3
+++ b/deps/npm/man/man3/whoami.3
@@ -1,7 +1,7 @@
.\" Generated with Ronnjs 0.3.8
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-WHOAMI" "3" "December 2012" "" ""
+.TH "NPM\-WHOAMI" "3" "January 2013" "" ""
.
.SH "NAME"
\fBnpm-whoami\fR \-\- Display npm username
diff --git a/deps/npm/node_modules/fstream/lib/file-writer.js b/deps/npm/node_modules/fstream/lib/file-writer.js
index 4ed0c9c6ca..681146258d 100644
--- a/deps/npm/node_modules/fstream/lib/file-writer.js
+++ b/deps/npm/node_modules/fstream/lib/file-writer.js
@@ -36,12 +36,15 @@ FileWriter.prototype._create = function () {
me._stream = fs.createWriteStream(me._path, so)
me._stream.on("open", function (fd) {
+ // console.error("FW open", me._buffer, me._path)
me.ready = true
me._buffer.forEach(function (c) {
if (c === EOF) me._stream.end()
else me._stream.write(c)
})
me.emit("ready")
+ // give this a kick just in case it needs it.
+ me.emit("drain")
})
me._stream.on("drain", function () { me.emit("drain") })
@@ -58,6 +61,8 @@ FileWriter.prototype.write = function (c) {
me._bytesWritten += c.length
if (!me.ready) {
+ if (!Buffer.isBuffer(c) && typeof c !== 'string')
+ throw new Error('invalid write data')
me._buffer.push(c)
return false
}
diff --git a/deps/npm/node_modules/fstream/lib/proxy-writer.js b/deps/npm/node_modules/fstream/lib/proxy-writer.js
index 2c78fc6736..b0476633a3 100644
--- a/deps/npm/node_modules/fstream/lib/proxy-writer.js
+++ b/deps/npm/node_modules/fstream/lib/proxy-writer.js
@@ -71,7 +71,7 @@ ProxyWriter.prototype._addProxy = function (proxy) {
var calls = me._buffer
calls.forEach(function (c) {
// console.error("~~ ~~ proxy buffered call", c[0], c[1])
- proxy[c[0]].call(proxy, c[1])
+ proxy[c[0]].apply(proxy, c[1])
})
me._buffer.length = 0
if (me._needsDrain) me.emit("drain")
@@ -102,7 +102,7 @@ ProxyWriter.prototype.write = function (c) {
ProxyWriter.prototype.end = function (c) {
// console.error("~~ proxy end")
if (!this._proxy) {
- this._buffer.push(["end", c])
+ this._buffer.push(["end", [c]])
return false
}
return this._proxy.end(c)
diff --git a/deps/npm/node_modules/fstream/package.json b/deps/npm/node_modules/fstream/package.json
index e15551ba9a..1d3faaff14 100644
--- a/deps/npm/node_modules/fstream/package.json
+++ b/deps/npm/node_modules/fstream/package.json
@@ -6,7 +6,7 @@
},
"name": "fstream",
"description": "Advanced file system stream things",
- "version": "0.1.20",
+ "version": "0.1.21",
"repository": {
"type": "git",
"url": "git://github.com/isaacs/fstream.git"
@@ -30,6 +30,6 @@
"license": "BSD",
"readme": "Like FS streams, but with stat on them, and supporting directories and\nsymbolic links, as well as normal files. Also, you can use this to set\nthe stats on a file, even if you don't change its contents, or to create\na symlink, etc.\n\nSo, for example, you can \"write\" a directory, and it'll call `mkdir`. You\ncan specify a uid and gid, and it'll call `chown`. You can specify a\n`mtime` and `atime`, and it'll call `utimes`. You can call it a symlink\nand provide a `linkpath` and it'll call `symlink`.\n\nNote that it won't automatically resolve symbolic links. So, if you\ncall `fstream.Reader('/some/symlink')` then you'll get an object\nthat stats and then ends immediately (since it has no data). To follow\nsymbolic links, do this: `fstream.Reader({path:'/some/symlink', follow:\ntrue })`.\n\nThere are various checks to make sure that the bytes emitted are the\nsame as the intended size, if the size is set.\n\n## Examples\n\n```javascript\nfstream\n .Writer({ path: \"path/to/file\"\n , mode: 0755\n , size: 6\n })\n .write(\"hello\\n\")\n .end()\n```\n\nThis will create the directories if they're missing, and then write\n`hello\\n` into the file, chmod it to 0755, and assert that 6 bytes have\nbeen written when it's done.\n\n```javascript\nfstream\n .Writer({ path: \"path/to/file\"\n , mode: 0755\n , size: 6\n , flags: \"a\"\n })\n .write(\"hello\\n\")\n .end()\n```\n\nYou can pass flags in, if you want to append to a file.\n\n```javascript\nfstream\n .Writer({ path: \"path/to/symlink\"\n , linkpath: \"./file\"\n , SymbolicLink: true\n , mode: \"0755\" // octal strings supported\n })\n .end()\n```\n\nIf isSymbolicLink is a function, it'll be called, and if it returns\ntrue, then it'll treat it as a symlink. If it's not a function, then\nany truish value will make a symlink, or you can set `type:\n'SymbolicLink'`, which does the same thing.\n\nNote that the linkpath is relative to the symbolic link location, not\nthe parent dir or cwd.\n\n```javascript\nfstream\n .Reader(\"path/to/dir\")\n .pipe(fstream.Writer(\"path/to/other/dir\"))\n```\n\nThis will do like `cp -Rp path/to/dir path/to/other/dir`. If the other\ndir exists and isn't a directory, then it'll emit an error. It'll also\nset the uid, gid, mode, etc. to be identical. In this way, it's more\nlike `rsync -a` than simply a copy.\n",
"readmeFilename": "README.md",
- "_id": "fstream@0.1.20",
- "_from": "fstream@~0.1.17"
+ "_id": "fstream@0.1.21",
+ "_from": "fstream@latest"
}
diff --git a/deps/npm/node_modules/node-gyp/lib/build.js b/deps/npm/node_modules/node-gyp/lib/build.js
index 9e4c2bbad0..8f049b4853 100644
--- a/deps/npm/node_modules/node-gyp/lib/build.js
+++ b/deps/npm/node_modules/node-gyp/lib/build.js
@@ -12,6 +12,7 @@ var fs = require('graceful-fs')
, log = require('npmlog')
, which = require('which')
, mkdirp = require('mkdirp')
+ , exec = require('child_process').exec
, win = process.platform == 'win32'
exports.usage = 'Invokes `' + (win ? 'msbuild' : 'make') + '` and builds the module'
@@ -99,7 +100,7 @@ function build (gyp, argv, callback) {
if (err) {
if (win && /not found/.test(err.message)) {
// On windows and no 'msbuild' found. Let's guess where it is
- guessMsbuild()
+ findMsbuild()
} else {
// Some other error or 'make' not found on Unix, report that to the user
callback(err)
@@ -112,28 +113,50 @@ function build (gyp, argv, callback) {
}
/**
- * Guess the location of the "msbuild.exe" file on Windows.
+ * Search for the location of "msbuild.exe" file on Windows.
*/
- function guessMsbuild () {
+ function findMsbuild () {
log.verbose('could not find "msbuild.exe". guessing location')
- // This is basically just hard-coded. If this causes problems
- // then we'll think of something more clever.
- var windir = process.env.WINDIR || process.env.SYSTEMROOT || 'C:\\WINDOWS'
- , frameworkDir = path.resolve(windir, 'Microsoft.NET', 'Framework')
- , versionDir = path.resolve(frameworkDir, 'v4.0.30319') // This is probably the most brittle part...
- , msbuild = path.resolve(versionDir, 'msbuild.exe')
- fs.stat(msbuild, function (err, stat) {
+ var notfoundErr = new Error('Can\'t find "msbuild.exe". Do you have Microsoft Visual Studio C++ 2008+ installed?')
+ exec('reg query HKLM\\Software\\Microsoft\\MSBuild\\ToolsVersions /s /f MSBuildToolsPath /e /t REG_SZ', function (err, stdout, stderr) {
+ var reVers = /Software\\Microsoft\\MSBuild\\ToolsVersions\\([^\r]+)\r\n\s+MSBuildToolsPath\s+REG_SZ\s+([^\r]+)/gi
+ , msbuilds = []
+ , r
+ , msbuildPath
if (err) {
- if (err.code == 'ENOENT') {
- callback(new Error('Can\'t find "msbuild.exe". Do you have Microsoft Visual Studio C++ 2010 installed?'))
- } else {
- callback(err)
+ return callback(notfoundErr)
+ }
+ while (r = reVers.exec(stdout)) {
+ if (parseFloat(r[1], 10) >= 3.5) {
+ msbuilds.push({
+ version: parseFloat(r[1], 10),
+ path: r[2]
+ })
}
- return
}
- command = msbuild
- copyNodeLib()
+ msbuilds.sort(function (x, y) {
+ return (x.version < y.version ? -1 : 1)
+ })
+ ;(function verifyMsbuild () {
+ msbuildPath = path.resolve(msbuilds.pop().path, 'msbuild.exe')
+ fs.stat(msbuildPath, function (err, stat) {
+ if (err) {
+ if (err.code == 'ENOENT') {
+ if (msbuilds.length) {
+ return verifyMsbuild()
+ } else {
+ callback(notfoundErr)
+ }
+ } else {
+ callback(err)
+ }
+ return
+ }
+ command = msbuildPath
+ copyNodeLib()
+ })
+ })()
})
}
diff --git a/deps/npm/node_modules/node-gyp/lib/configure.js b/deps/npm/node_modules/node-gyp/lib/configure.js
index 08b69026b3..82de1e6ce0 100644
--- a/deps/npm/node_modules/node-gyp/lib/configure.js
+++ b/deps/npm/node_modules/node-gyp/lib/configure.js
@@ -91,11 +91,11 @@ function configure (gyp, argv, callback) {
}
function checkPythonVersion () {
- execFile(python, ['-c', 'import platform; print platform.python_version();'], function (err, stdout) {
+ execFile(python, ['-c', 'import platform; print(platform.python_version());'], function (err, stdout) {
if (err) {
return callback(err)
}
- log.verbose('check python version', '`%s -c "import platform; print platform.python_version();"` returned: %j', python, stdout)
+ log.verbose('check python version', '`%s -c "import platform; print(platform.python_version());"` returned: %j', python, stdout)
var version = stdout.trim()
if (~version.indexOf('+')) {
log.silly('stripping "+" sign(s) from version')
diff --git a/deps/npm/node_modules/node-gyp/lib/install.js b/deps/npm/node_modules/node-gyp/lib/install.js
index d7b3b7eb39..ffa6076c6f 100644
--- a/deps/npm/node_modules/node-gyp/lib/install.js
+++ b/deps/npm/node_modules/node-gyp/lib/install.js
@@ -60,7 +60,7 @@ function install (gyp, argv, callback) {
}
// 0.x.y-pre versions are not published yet and cannot be installed. Bail.
- if (version[5] === '-pre') {
+ if (version[5] && version[5].match(/\-pre$/)) {
log.verbose('detected "pre" node version', versionStr)
if (gyp.opts.nodedir) {
log.verbose('--nodedir flag was passed; skipping install', gyp.opts.nodedir)
diff --git a/deps/npm/node_modules/node-gyp/package.json b/deps/npm/node_modules/node-gyp/package.json
index b5cb0e51df..811a533619 100644
--- a/deps/npm/node_modules/node-gyp/package.json
+++ b/deps/npm/node_modules/node-gyp/package.json
@@ -10,7 +10,7 @@
"bindings",
"gyp"
],
- "version": "0.8.1",
+ "version": "0.8.2",
"installVersion": 9,
"author": {
"name": "Nathan Rajlich",
@@ -46,6 +46,9 @@
},
"readme": "node-gyp\n=========\n### Node.js native addon build tool\n\n`node-gyp` is a cross-platform command-line tool written in Node.js for compiling\nnative addon modules for Node.js, which takes away the pain of dealing with the\nvarious differences in build platforms. It is the replacement to the `node-waf`\nprogram which is removed for node `v0.8`. If you have a native addon for node that\nstill has a `wscript` file, then you should definitely add a `binding.gyp` file\nto support the latest versions of node.\n\nMultiple target versions of node are supported (i.e. `0.6`, `0.7`,..., `1.0`,\netc.), regardless of what version of node is actually installed on your system\n(`node-gyp` downloads the necessary development files for the target version).\n\n#### Features:\n\n * Easy to use, consistent interface\n * Same commands to build your module on every platform\n * Supports multiple target versions of Node\n\n\nInstallation\n------------\n\nYou can install with `npm`:\n\n``` bash\n$ npm install -g node-gyp\n```\n\nYou will also need to install:\n\n * On Unix:\n * `python`\n * `make`\n * A proper C/C++ compiler toolchain, like GCC\n * On Windows:\n * [Python][windows-python] ([`v2.7.3`][windows-python-v2.7.3] recommended, `v3.x.x` is __*not*__ supported)\n * Windows XP/Vista/7:\n * Microsoft Visual Studio C++ 2010 ([Express][msvc2010] version works well)\n * For 64-bit builds of node and native modules you will _**also**_ need the [Windows 7 64-bit SDK][win7sdk]\n * If you get errors that the 64-bit compilers are not installed you may also need the [compiler update for the Windows SDK 7.1]\n * Windows 8:\n * Microsoft Visual Studio C++ 2012 for Windows Desktop ([Express][msvc2012] version works well)\n\nHow to Use\n----------\n\nTo compile your native addon, first go to its root directory:\n\n``` bash\n$ cd my_node_addon\n```\n\nThe next step is to generate the appropriate project build files for the current\nplatform. Use `configure` for that:\n\n``` bash\n$ node-gyp configure\n```\n\n__Note__: The `configure` step looks for the `binding.gyp` file in the current\ndirectory to processs. See below for instructions on creating the `binding.gyp` file.\n\nNow you will have either a `Makefile` (on Unix platforms) or a `vcxproj` file\n(on Windows) in the `build/` directory. Next invoke the `build` command:\n\n``` bash\n$ node-gyp build\n```\n\nNow you have your compiled `.node` bindings file! The compiled bindings end up\nin `build/Debug/` or `build/Release/`, depending on the build mode. At this point\nyou can require the `.node` file with Node and run your tests!\n\n__Note:__ To create a _Debug_ build of the bindings file, pass the `--debug` (or\n`-d`) switch when running the either `configure` or `build` command.\n\n\nThe \"binding.gyp\" file\n----------------------\n\nPreviously when node had `node-waf` you had to write a `wscript` file. The\nreplacement for that is the `binding.gyp` file, which describes the configuration\nto build your module in a JSON-like format. This file gets placed in the root of\nyour package, alongside the `package.json` file.\n\nA barebones `gyp` file appropriate for building a node addon looks like:\n\n``` json\n{\n \"targets\": [\n {\n \"target_name\": \"binding\",\n \"sources\": [ \"src/binding.cc\" ]\n }\n ]\n}\n```\n\nSome additional resources for writing `gyp` files:\n\n * [\"Hello World\" node addon example](https://github.com/joyent/node/tree/master/test/addons/hello-world)\n * [gyp user documentation](http://code.google.com/p/gyp/wiki/GypUserDocumentation)\n * [gyp input format reference](http://code.google.com/p/gyp/wiki/InputFormatReference)\n * [*\"binding.gyp\" files out in the wild* wiki page](https://github.com/TooTallNate/node-gyp/wiki/%22binding.gyp%22-files-out-in-the-wild)\n\n\nCommands\n--------\n\n`node-gyp` responds to the following commands:\n\n| **Command** | **Description**\n|:--------------|:---------------------------------------------------------------\n| `build` | Invokes `make`/`msbuild.exe` and builds the native addon\n| `clean` | Removes any the `build` dir if it exists\n| `configure` | Generates project build files for the current platform\n| `rebuild` | Runs \"clean\", \"configure\" and \"build\" all in a row\n| `install` | Installs node development header files for the given version\n| `list` | Lists the currently installed node development file versions\n| `remove` | Removes the node development header files for the given version\n\n\nLicense\n-------\n\n(The MIT License)\n\nCopyright (c) 2012 Nathan Rajlich &lt;nathan@tootallnate.net&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n[windows-python]: http://www.python.org/getit/windows\n[windows-python-v2.7.3]: http://www.python.org/download/releases/2.7.3#download\n[msvc2010]: http://go.microsoft.com/?linkid=9709949\n[msvc2012]: http://go.microsoft.com/?linkid=9816758\n[win7sdk]: http://www.microsoft.com/en-us/download/details.aspx?id=8279\n[compiler update for the Windows SDK 7.1]: http://www.microsoft.com/en-us/download/details.aspx?id=4422\n",
"readmeFilename": "README.md",
- "_id": "node-gyp@0.8.1",
- "_from": "node-gyp@latest"
+ "_id": "node-gyp@0.8.2",
+ "dist": {
+ "shasum": "d1a72a944a16a97b91ed3ea2f2ec6e7c0826c294"
+ },
+ "_from": "node-gyp@~0.8.1"
}
diff --git a/deps/npm/node_modules/semver/README.md b/deps/npm/node_modules/semver/README.md
index a964c4faaf..2193009685 100644
--- a/deps/npm/node_modules/semver/README.md
+++ b/deps/npm/node_modules/semver/README.md
@@ -76,7 +76,7 @@ The following range styles are supported:
* `<1.2.3` Less than
* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4`
* `~1.2.3` := `>=1.2.3 <1.3.0`
-* `~1.2` := `>=1.2.0 <2.0.0`
+* `~1.2` := `>=1.2.0 <1.3.0`
* `~1` := `>=1.0.0 <2.0.0`
* `1.2.x` := `>=1.2.0 <1.3.0`
* `1.x` := `>=1.0.0 <2.0.0`
diff --git a/deps/npm/node_modules/semver/package.json b/deps/npm/node_modules/semver/package.json
index f8abc45aaa..7056071e2a 100644
--- a/deps/npm/node_modules/semver/package.json
+++ b/deps/npm/node_modules/semver/package.json
@@ -1,6 +1,6 @@
{
"name": "semver",
- "version": "1.1.1",
+ "version": "1.1.2",
"description": "The semantic version parser used by npm.",
"main": "semver.js",
"scripts": {
@@ -20,8 +20,8 @@
"bin": {
"semver": "./bin/semver"
},
- "readme": "semver(1) -- The semantic versioner for npm\n===========================================\n\n## Usage\n\n $ npm install semver\n\n semver.valid('1.2.3') // '1.2.3'\n semver.valid('a.b.c') // null\n semver.clean(' =v1.2.3 ') // '1.2.3'\n semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true\n semver.gt('1.2.3', '9.8.7') // false\n semver.lt('1.2.3', '9.8.7') // true\n\nAs a command-line utility:\n\n $ semver -h\n\n Usage: semver -v <version> [-r <range>]\n Test if version(s) satisfy the supplied range(s),\n and sort them.\n\n Multiple versions or ranges may be supplied.\n\n Program exits successfully if any valid version satisfies\n all supplied ranges, and prints all satisfying versions.\n\n If no versions are valid, or ranges are not satisfied,\n then exits failure.\n\n Versions are printed in ascending order, so supplying\n multiple versions to the utility will just sort them.\n\n## Versions\n\nA version is the following things, in this order:\n\n* a number (Major)\n* a period\n* a number (minor)\n* a period\n* a number (patch)\n* OPTIONAL: a hyphen, followed by a number (build)\n* OPTIONAL: a collection of pretty much any non-whitespace characters\n (tag)\n\nA leading `\"=\"` or `\"v\"` character is stripped off and ignored.\n\n## Comparisons\n\nThe ordering of versions is done using the following algorithm, given\ntwo versions and asked to find the greater of the two:\n\n* If the majors are numerically different, then take the one\n with a bigger major number. `2.3.4 > 1.3.4`\n* If the minors are numerically different, then take the one\n with the bigger minor number. `2.3.4 > 2.2.4`\n* If the patches are numerically different, then take the one with the\n bigger patch number. `2.3.4 > 2.3.3`\n* If only one of them has a build number, then take the one with the\n build number. `2.3.4-0 > 2.3.4`\n* If they both have build numbers, and the build numbers are numerically\n different, then take the one with the bigger build number.\n `2.3.4-10 > 2.3.4-9`\n* If only one of them has a tag, then take the one without the tag.\n `2.3.4 > 2.3.4-beta`\n* If they both have tags, then take the one with the lexicographically\n larger tag. `2.3.4-beta > 2.3.4-alpha`\n* At this point, they're equal.\n\n## Ranges\n\nThe following range styles are supported:\n\n* `>1.2.3` Greater than a specific version.\n* `<1.2.3` Less than\n* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4`\n* `~1.2.3` := `>=1.2.3 <1.3.0`\n* `~1.2` := `>=1.2.0 <2.0.0`\n* `~1` := `>=1.0.0 <2.0.0`\n* `1.2.x` := `>=1.2.0 <1.3.0`\n* `1.x` := `>=1.0.0 <2.0.0`\n\nRanges can be joined with either a space (which implies \"and\") or a\n`||` (which implies \"or\").\n\n## Functions\n\n* valid(v): Return the parsed version, or null if it's not valid.\n* inc(v, release): Return the version incremented by the release type\n (major, minor, patch, or build), or null if it's not valid.\n\n### Comparison\n\n* gt(v1, v2): `v1 > v2`\n* gte(v1, v2): `v1 >= v2`\n* lt(v1, v2): `v1 < v2`\n* lte(v1, v2): `v1 <= v2`\n* eq(v1, v2): `v1 == v2` This is true if they're logically equivalent,\n even if they're not the exact same string. You already know how to\n compare strings.\n* neq(v1, v2): `v1 != v2` The opposite of eq.\n* cmp(v1, comparator, v2): Pass in a comparison string, and it'll call\n the corresponding function above. `\"===\"` and `\"!==\"` do simple\n string comparison, but are included for completeness. Throws if an\n invalid comparison string is provided.\n* compare(v1, v2): Return 0 if v1 == v2, or 1 if v1 is greater, or -1 if\n v2 is greater. Sorts in ascending order if passed to Array.sort().\n* rcompare(v1, v2): The reverse of compare. Sorts an array of versions\n in descending order when passed to Array.sort().\n\n\n### Ranges\n\n* validRange(range): Return the valid range or null if it's not valid\n* satisfies(version, range): Return true if the version satisfies the\n range.\n* maxSatisfying(versions, range): Return the highest version in the list\n that satisfies the range, or null if none of them do.\n",
+ "readme": "semver(1) -- The semantic versioner for npm\n===========================================\n\n## Usage\n\n $ npm install semver\n\n semver.valid('1.2.3') // '1.2.3'\n semver.valid('a.b.c') // null\n semver.clean(' =v1.2.3 ') // '1.2.3'\n semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true\n semver.gt('1.2.3', '9.8.7') // false\n semver.lt('1.2.3', '9.8.7') // true\n\nAs a command-line utility:\n\n $ semver -h\n\n Usage: semver -v <version> [-r <range>]\n Test if version(s) satisfy the supplied range(s),\n and sort them.\n\n Multiple versions or ranges may be supplied.\n\n Program exits successfully if any valid version satisfies\n all supplied ranges, and prints all satisfying versions.\n\n If no versions are valid, or ranges are not satisfied,\n then exits failure.\n\n Versions are printed in ascending order, so supplying\n multiple versions to the utility will just sort them.\n\n## Versions\n\nA version is the following things, in this order:\n\n* a number (Major)\n* a period\n* a number (minor)\n* a period\n* a number (patch)\n* OPTIONAL: a hyphen, followed by a number (build)\n* OPTIONAL: a collection of pretty much any non-whitespace characters\n (tag)\n\nA leading `\"=\"` or `\"v\"` character is stripped off and ignored.\n\n## Comparisons\n\nThe ordering of versions is done using the following algorithm, given\ntwo versions and asked to find the greater of the two:\n\n* If the majors are numerically different, then take the one\n with a bigger major number. `2.3.4 > 1.3.4`\n* If the minors are numerically different, then take the one\n with the bigger minor number. `2.3.4 > 2.2.4`\n* If the patches are numerically different, then take the one with the\n bigger patch number. `2.3.4 > 2.3.3`\n* If only one of them has a build number, then take the one with the\n build number. `2.3.4-0 > 2.3.4`\n* If they both have build numbers, and the build numbers are numerically\n different, then take the one with the bigger build number.\n `2.3.4-10 > 2.3.4-9`\n* If only one of them has a tag, then take the one without the tag.\n `2.3.4 > 2.3.4-beta`\n* If they both have tags, then take the one with the lexicographically\n larger tag. `2.3.4-beta > 2.3.4-alpha`\n* At this point, they're equal.\n\n## Ranges\n\nThe following range styles are supported:\n\n* `>1.2.3` Greater than a specific version.\n* `<1.2.3` Less than\n* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4`\n* `~1.2.3` := `>=1.2.3 <1.3.0`\n* `~1.2` := `>=1.2.0 <1.3.0`\n* `~1` := `>=1.0.0 <2.0.0`\n* `1.2.x` := `>=1.2.0 <1.3.0`\n* `1.x` := `>=1.0.0 <2.0.0`\n\nRanges can be joined with either a space (which implies \"and\") or a\n`||` (which implies \"or\").\n\n## Functions\n\n* valid(v): Return the parsed version, or null if it's not valid.\n* inc(v, release): Return the version incremented by the release type\n (major, minor, patch, or build), or null if it's not valid.\n\n### Comparison\n\n* gt(v1, v2): `v1 > v2`\n* gte(v1, v2): `v1 >= v2`\n* lt(v1, v2): `v1 < v2`\n* lte(v1, v2): `v1 <= v2`\n* eq(v1, v2): `v1 == v2` This is true if they're logically equivalent,\n even if they're not the exact same string. You already know how to\n compare strings.\n* neq(v1, v2): `v1 != v2` The opposite of eq.\n* cmp(v1, comparator, v2): Pass in a comparison string, and it'll call\n the corresponding function above. `\"===\"` and `\"!==\"` do simple\n string comparison, but are included for completeness. Throws if an\n invalid comparison string is provided.\n* compare(v1, v2): Return 0 if v1 == v2, or 1 if v1 is greater, or -1 if\n v2 is greater. Sorts in ascending order if passed to Array.sort().\n* rcompare(v1, v2): The reverse of compare. Sorts an array of versions\n in descending order when passed to Array.sort().\n\n\n### Ranges\n\n* validRange(range): Return the valid range or null if it's not valid\n* satisfies(version, range): Return true if the version satisfies the\n range.\n* maxSatisfying(versions, range): Return the highest version in the list\n that satisfies the range, or null if none of them do.\n",
"readmeFilename": "README.md",
- "_id": "semver@1.1.1",
- "_from": "semver@~1.1.0"
+ "_id": "semver@1.1.2",
+ "_from": "semver@latest"
}
diff --git a/deps/npm/package.json b/deps/npm/package.json
index a0a144e2c5..a645da5dcb 100644
--- a/deps/npm/package.json
+++ b/deps/npm/package.json
@@ -1,5 +1,5 @@
{
- "version": "1.1.70",
+ "version": "1.2.0",
"name": "npm",
"publishConfig": {
"proprietary-attribs": false
@@ -34,7 +34,7 @@
"main": "./lib/npm.js",
"bin": "./bin/npm-cli.js",
"dependencies": {
- "semver": "~1.1.0",
+ "semver": "~1.1.2",
"ini": "~1.0.5",
"slide": "1",
"abbrev": "1",
diff --git a/deps/npm/test/packages/npm-test-peer-deps-invalid/README b/deps/npm/test/packages/npm-test-peer-deps-invalid/README
new file mode 100644
index 0000000000..8848f07868
--- /dev/null
+++ b/deps/npm/test/packages/npm-test-peer-deps-invalid/README
@@ -0,0 +1 @@
+just an npm test
diff --git a/deps/npm/test/packages/npm-test-peer-deps-invalid/npm-ls.json b/deps/npm/test/packages/npm-test-peer-deps-invalid/npm-ls.json
new file mode 100644
index 0000000000..6b113ad54d
--- /dev/null
+++ b/deps/npm/test/packages/npm-test-peer-deps-invalid/npm-ls.json
@@ -0,0 +1,22 @@
+{
+ "name": "npm-test-peer-deps-invalid",
+ "version": "0.0.0",
+ "dependencies": {
+ "npm-test-peer-deps-file": {
+ "version": "1.2.3",
+ "from": "https://raw.github.com/gist/3971128/3f6aa37b4fa1186c2f47da9b77dcc4ec496e3483/index.js",
+ "dependencies": {
+ "opener": {
+ "version": "1.3.0"
+ }
+ }
+ },
+ "npm-test-peer-deps-file-invalid": {
+ "version": "1.2.3",
+ "from": "https://gist.github.com/raw/4303335/861f8d3213061826ab31591840c3cb0ac737f4fc/index.js"
+ },
+ "dict": {
+ "peerInvalid": true
+ }
+ }
+}
diff --git a/deps/npm/test/packages/npm-test-peer-deps-invalid/package.json b/deps/npm/test/packages/npm-test-peer-deps-invalid/package.json
new file mode 100644
index 0000000000..2fd61047a4
--- /dev/null
+++ b/deps/npm/test/packages/npm-test-peer-deps-invalid/package.json
@@ -0,0 +1,12 @@
+{
+ "author": "Domenic Denicola <domenic@domenicdenicola.com> (http://domenicdenicola.com/)",
+ "name": "npm-test-peer-deps-invalid",
+ "version": "0.0.0",
+ "dependencies": {
+ "npm-test-peer-deps-file": "https://raw.github.com/gist/3971128/3f6aa37b4fa1186c2f47da9b77dcc4ec496e3483/index.js",
+ "npm-test-peer-deps-file-invalid": "https://gist.github.com/raw/4303335/861f8d3213061826ab31591840c3cb0ac737f4fc/index.js"
+ },
+ "scripts": {
+ "test": "node test.js"
+ }
+}
diff --git a/deps/npm/test/packages/npm-test-peer-deps-invalid/test.js b/deps/npm/test/packages/npm-test-peer-deps-invalid/test.js
new file mode 100644
index 0000000000..e4521141c9
--- /dev/null
+++ b/deps/npm/test/packages/npm-test-peer-deps-invalid/test.js
@@ -0,0 +1,31 @@
+var path = require("path")
+var assert = require("assert")
+
+process.env.npm_config_prefix = process.cwd()
+delete process.env.npm_config_global
+delete process.env.npm_config_depth
+
+var npm = process.env.npm_execpath
+
+require("child_process").exec(npm + " ls --json", {
+ env: process.env, cwd: process.cwd() },
+ function (err, stdout, stderr) {
+
+ var actual = JSON.parse(stdout).dependencies
+ var expected = require("./npm-ls.json").dependencies
+
+ // Delete the "problems" entry because it contains system-specific path info,
+ // so we can't compare it accurately and thus have deleted it from
+ // ./npm-ls.json.
+ delete actual.dict.problems
+
+ // It's undefined which peerDependency will get installed first, so
+ // this will be either version 1.1.0 or version 1.0.0
+ var dictVer = actual.dict.version
+ delete actual.dict.version
+ assert(dictVer === "1.1.0" || dictVer === "1.0.0")
+ assert.deepEqual(actual, expected)
+
+ assert.ok(err)
+ assert(/peer invalid/.test(err.message))
+})
diff --git a/deps/npm/test/packages/npm-test-peer-deps/README b/deps/npm/test/packages/npm-test-peer-deps/README
new file mode 100644
index 0000000000..8848f07868
--- /dev/null
+++ b/deps/npm/test/packages/npm-test-peer-deps/README
@@ -0,0 +1 @@
+just an npm test
diff --git a/deps/npm/test/packages/npm-test-peer-deps/npm-ls.json b/deps/npm/test/packages/npm-test-peer-deps/npm-ls.json
new file mode 100644
index 0000000000..05dda41633
--- /dev/null
+++ b/deps/npm/test/packages/npm-test-peer-deps/npm-ls.json
@@ -0,0 +1,18 @@
+{
+ "name": "npm-test-peer-deps",
+ "version": "0.0.0",
+ "dependencies": {
+ "npm-test-peer-deps-file": {
+ "version": "1.2.3",
+ "from": "https://raw.github.com/gist/3971128/3f6aa37b4fa1186c2f47da9b77dcc4ec496e3483/index.js",
+ "dependencies": {
+ "opener": {
+ "version": "1.3.0"
+ }
+ }
+ },
+ "dict": {
+ "version": "1.1.0"
+ }
+ }
+}
diff --git a/deps/npm/test/packages/npm-test-peer-deps/package.json b/deps/npm/test/packages/npm-test-peer-deps/package.json
new file mode 100644
index 0000000000..a132fe1b27
--- /dev/null
+++ b/deps/npm/test/packages/npm-test-peer-deps/package.json
@@ -0,0 +1,11 @@
+{
+ "author": "Domenic Denicola <domenic@domenicdenicola.com> (http://domenicdenicola.com/)",
+ "name": "npm-test-peer-deps",
+ "version": "0.0.0",
+ "dependencies": {
+ "npm-test-peer-deps-file": "https://raw.github.com/gist/3971128/3f6aa37b4fa1186c2f47da9b77dcc4ec496e3483/index.js"
+ },
+ "scripts": {
+ "test": "node test.js"
+ }
+}
diff --git a/deps/npm/test/packages/npm-test-peer-deps/test.js b/deps/npm/test/packages/npm-test-peer-deps/test.js
new file mode 100644
index 0000000000..9b316f2c4d
--- /dev/null
+++ b/deps/npm/test/packages/npm-test-peer-deps/test.js
@@ -0,0 +1,20 @@
+var path = require("path")
+var assert = require("assert")
+
+process.env.npm_config_prefix = process.cwd()
+delete process.env.npm_config_global
+delete process.env.npm_config_depth
+
+var npm = process.env.npm_execpath
+
+require("child_process").exec(npm + " ls --json", {
+ env: process.env, cwd: process.cwd() },
+ function (err, stdout, stderr) {
+
+ if (err) throw err
+
+ var actual = JSON.parse(stdout).dependencies
+ var expected = require("./npm-ls.json").dependencies
+
+ assert.deepEqual(actual, expected)
+})
diff --git a/doc/api/process.markdown b/doc/api/process.markdown
index 6a2f4a752a..a6f160d945 100644
--- a/doc/api/process.markdown
+++ b/doc/api/process.markdown
@@ -530,15 +530,14 @@ You may pass in the result of a previous call to `process.hrtime()` to get
a diff reading, useful for benchmarks and measuring intervals:
var time = process.hrtime();
- // [ 1800216, 927643717 ]
+ // [ 1800216, 25 ]
setTimeout(function() {
var diff = process.hrtime(time);
- // [ 1, 6962306 ]
+ // [ 1, 552 ]
- console.log('benchmark took %d seconds and %d nanoseconds',
- diff[0], diff[1]);
- // benchmark took 1 seconds and 6962306 nanoseconds
+ console.log('benchmark took %d nanoseconds', diff[0] * 1e9 + diff[1]);
+ // benchmark took 1000000527 nanoseconds
}, 1000);
[EventEmitter]: events.html#events_class_events_eventemitter
diff --git a/doc/blog/release/v0.8.17.md b/doc/blog/release/v0.8.17.md
new file mode 100644
index 0000000000..be1e692138
--- /dev/null
+++ b/doc/blog/release/v0.8.17.md
@@ -0,0 +1,80 @@
+date: Wed Jan 9 17:06:36 PST 2013
+title: Node v0.8.17 (Stable)
+slug: node-v0-8-17-stable
+category: release
+version: 0.8.17
+
+This release addresses a potential security vulnerability.
+
+If you do not use TypedArrays, then you're fine (but should still
+upgrade for other reasons, like better performance and npm
+peerDependencies.)
+
+If you use TypedArrays, you should upgrade to v0.8.17 as soon as
+possible. If user input can affect the size parameter in a
+TypedArray, an integer overflow vulnerability could allow an attacker
+to write to areas of memory outside the intended buffer. Please
+upgrade ASAP.
+
+2013.01.09, Version 0.8.17 (Stable)
+
+* npm: Upgrade to v1.2.0
+ - peerDependencies (Domenic Denicola)
+ - node-gyp v0.8.2 (Nathan Rajlich)
+ - Faster installs from github user/project shorthands (Nathan Zadoks)
+
+* typed arrays: fix 32 bit size/index overflow (Ben Noordhuis)
+
+* http: Improve performance of single-packet responses (Ben Noordhuis)
+
+* install: fix openbsd man page location (Ben Noordhuis)
+
+* http: bubble up parser errors to ClientRequest (Brian White)
+
+
+Source Code: http://nodejs.org/dist/v0.8.17/node-v0.8.17.tar.gz
+
+Macintosh Installer (Universal): http://nodejs.org/dist/v0.8.17/node-v0.8.17.pkg
+
+Windows Installer: http://nodejs.org/dist/v0.8.17/node-v0.8.17-x86.msi
+
+Windows x64 Installer: http://nodejs.org/dist/v0.8.17/x64/node-v0.8.17-x64.msi
+
+Windows x64 Files: http://nodejs.org/dist/v0.8.17/x64/
+
+Linux 32-bit Binary: http://nodejs.org/dist/v0.8.17/node-v0.8.17-linux-x86.tar.gz
+
+Linux 64-bit Binary: http://nodejs.org/dist/v0.8.17/node-v0.8.17-linux-x64.tar.gz
+
+Solaris 32-bit Binary: http://nodejs.org/dist/v0.8.17/node-v0.8.17-sunos-x86.tar.gz
+
+Solaris 64-bit Binary: http://nodejs.org/dist/v0.8.17/node-v0.8.17-sunos-x64.tar.gz
+
+Other release files: http://nodejs.org/dist/v0.8.17/
+
+Website: http://nodejs.org/docs/v0.8.17/
+
+Documentation: http://nodejs.org/docs/v0.8.17/api/
+
+Shasums:
+
+```
+1efb55f154e6079c7f2a8991ed73b5069307576a node-v0.8.17-darwin-x64.tar.gz
+d9e3f502b9121b14743fedc7d48ed15cbda3a3da node-v0.8.17-darwin-x86.tar.gz
+de5d5d32ef97081b57b652289e097a332e9cc8af node-v0.8.17-linux-x64.tar.gz
+44824481dbb3ed278e613f805f597e8d14f68d11 node-v0.8.17-linux-x86.tar.gz
+6f3ee5e3a3515f79478c18ad61666bdaf73f8485 node-v0.8.17-sunos-x64.tar.gz
+3bcd62169201e8c6223eeef09633998901692da1 node-v0.8.17-sunos-x86.tar.gz
+befea571ebdf67fa47ef84826334599feb3ed7a3 node-v0.8.17-x86.msi
+71b598cd3a418b8ce78a2158d8ae29a6c7e66be6 node-v0.8.17.pkg
+65d22e4e183cee8888c797300d8fdbb5c530c740 node-v0.8.17.tar.gz
+8bf4e9699d41bcc0fcf822af095c2a944aea3e95 node.exe
+2b659a6864682d6613a94a8c187618a3893401bc node.exp
+082995b6fc667af51aae11b612390800c8e9636c node.lib
+bbbab14038a29fa67dfcabfd27802c39428e8f8e node.pdb
+a220542df0610d848ead007673e19cb24c1e0ac5 x64/node-v0.8.17-x64.msi
+636ab1f211624588d3c5073232f30aa5f93eed10 x64/node.exe
+8540c7b6cfb62b51b52c72813ca30d42b936e656 x64/node.exp
+1e0d70fcf5efa6e4c23c1d8ec768c5a8e6c36874 x64/node.lib
+2b13ba57dbdd942b3198b441fea936f8b8154c29 x64/node.pdb
+```
diff --git a/lib/dgram.js b/lib/dgram.js
index 8130bace80..65e080f81a 100644
--- a/lib/dgram.js
+++ b/lib/dgram.js
@@ -173,6 +173,9 @@ Socket.prototype.send = function(buffer,
callback) {
var self = this;
+ if (!Buffer.isBuffer(buffer))
+ throw new TypeError('First argument must be a buffer object.');
+
if (offset >= buffer.length)
throw new Error('Offset into buffer too large');
diff --git a/src/v8_typed_array.cc b/src/v8_typed_array.cc
index 1d2ffc4af7..be9f480da2 100644
--- a/src/v8_typed_array.cc
+++ b/src/v8_typed_array.cc
@@ -21,6 +21,7 @@
#include <stdlib.h> // calloc, etc
#include <string.h> // memmove
+#include <stdint.h>
#include "v8_typed_array.h"
#include "v8_typed_array_bswap.h"
@@ -676,11 +677,14 @@ class DataView {
// TODO(deanm): All of these things should be cacheable.
int element_size = v8_typed_array::SizeOfArrayElementForType(
args.This()->GetIndexedPropertiesExternalArrayDataType());
- int size = args.This()->GetIndexedPropertiesExternalArrayDataLength() *
- element_size;
+ assert(element_size > 0);
+ int size = args.This()->GetIndexedPropertiesExternalArrayDataLength();
+ assert(size >= 0);
- if (index + sizeof(T) > (unsigned)size) // TODO(deanm): integer overflow.
+ if (static_cast<uint64_t>(index) + sizeof(T) >
+ static_cast<uint64_t>(size) * element_size) {
return ThrowError("Index out of range.");
+ }
void* ptr = reinterpret_cast<char*>(
args.This()->GetIndexedPropertiesExternalArrayData()) + index;
@@ -708,11 +712,14 @@ class DataView {
// TODO(deanm): All of these things should be cacheable.
int element_size = v8_typed_array::SizeOfArrayElementForType(
args.This()->GetIndexedPropertiesExternalArrayDataType());
- int size = args.This()->GetIndexedPropertiesExternalArrayDataLength() *
- element_size;
+ assert(element_size > 0);
+ int size = args.This()->GetIndexedPropertiesExternalArrayDataLength();
+ assert(size >= 0);
- if (index + sizeof(T) > (unsigned)size) // TODO(deanm): integer overflow.
+ if (static_cast<uint64_t>(index) + sizeof(T) >
+ static_cast<uint64_t>(size) * element_size) {
return ThrowError("Index out of range.");
+ }
void* ptr = reinterpret_cast<char*>(
args.This()->GetIndexedPropertiesExternalArrayData()) + index;
diff --git a/test/simple/test-dgram-regress-4496.js b/test/simple/test-dgram-regress-4496.js
new file mode 100644
index 0000000000..33b12847f4
--- /dev/null
+++ b/test/simple/test-dgram-regress-4496.js
@@ -0,0 +1,32 @@
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+// Remove this test once we support sending strings.
+
+var common = require('../common');
+var assert = require('assert');
+var dgram = require('dgram');
+
+// Should throw but not crash.
+var socket = dgram.createSocket('udp4');
+assert.throws(function() { socket.send('BAM', 0, 1, 1, 'host') }, TypeError);
+assert.throws(function() { socket.sendto('BAM', 0, 1, 1, 'host') }, TypeError);
+socket.close();
diff --git a/test/simple/test-typed-arrays.js b/test/simple/test-typed-arrays.js
index 00bf613543..cf6b760075 100644
--- a/test/simple/test-typed-arrays.js
+++ b/test/simple/test-typed-arrays.js
@@ -182,3 +182,13 @@ assert.equal(uint8c[1], 255);
var view = new DataView(array.buffer);
for (var i = 128; i <= 255; ++i) assert.equal(view.getInt8(i - 128), i - 256);
})();
+
+assert.throws(function() {
+ var buf = new DataView(new ArrayBuffer(8));
+ buf.getFloat64(0xffffffff, true);
+}, /Index out of range/);
+
+assert.throws(function() {
+ var buf = new DataView(new ArrayBuffer(8));
+ buf.setFloat64(0xffffffff, 0.0, true);
+}, /Index out of range/);
diff --git a/tools/changelog-head.sh b/tools/changelog-head.sh
index e0cec16638..94821e107f 100644
--- a/tools/changelog-head.sh
+++ b/tools/changelog-head.sh
@@ -2,6 +2,9 @@
cat ChangeLog | {
s=-1
while read line; do
+ if [ "${line:0:1}" == "-" ]; then
+ line=" $line"
+ fi
if [ "${line:0:1}" == "2" ]; then
let "++s"
fi