Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge branch 'v0.8'

Conflicts:
	ChangeLog
	deps/openssl/openssl.gyp
	src/node_version.h
  • Loading branch information...
commit bf16d9280ea7aadce5c5437184c1d80e651a997a 2 parents 4822d78 + 2418434
@piscisaureus piscisaureus authored
Showing with 6,590 additions and 2,029 deletions.
  1. +1 −0  AUTHORS
  2. +26 −1 ChangeLog
  3. +4 −2 common.gypi
  4. +0 −4 deps/npm/.travis.yml
  5. +2 −0  deps/npm/AUTHORS
  6. +9 −0 deps/npm/doc/cli/config.md
  7. +53 −0 deps/npm/doc/cli/dedupe.md
  8. +4 −0 deps/npm/doc/cli/index.md
  9. +1 −1  deps/npm/html/api/bin.html
  10. +1 −1  deps/npm/html/api/bugs.html
  11. +1 −1  deps/npm/html/api/commands.html
  12. +1 −1  deps/npm/html/api/config.html
  13. +1 −1  deps/npm/html/api/deprecate.html
  14. +1 −1  deps/npm/html/api/docs.html
  15. +1 −1  deps/npm/html/api/edit.html
  16. +1 −1  deps/npm/html/api/explore.html
  17. +1 −1  deps/npm/html/api/help-search.html
  18. +1 −1  deps/npm/html/api/init.html
  19. +1 −1  deps/npm/html/api/install.html
  20. +1 −1  deps/npm/html/api/link.html
  21. +1 −1  deps/npm/html/api/load.html
  22. +1 −1  deps/npm/html/api/ls.html
  23. +2 −2 deps/npm/html/api/npm.html
  24. +1 −1  deps/npm/html/api/outdated.html
  25. +1 −1  deps/npm/html/api/owner.html
  26. +1 −1  deps/npm/html/api/pack.html
  27. +1 −1  deps/npm/html/api/prefix.html
  28. +1 −1  deps/npm/html/api/prune.html
  29. +1 −1  deps/npm/html/api/publish.html
  30. +1 −1  deps/npm/html/api/rebuild.html
  31. +1 −1  deps/npm/html/api/restart.html
  32. +1 −1  deps/npm/html/api/root.html
  33. +1 −1  deps/npm/html/api/run-script.html
  34. +1 −1  deps/npm/html/api/search.html
  35. +1 −1  deps/npm/html/api/shrinkwrap.html
  36. +1 −1  deps/npm/html/api/start.html
  37. +1 −1  deps/npm/html/api/stop.html
  38. +1 −1  deps/npm/html/api/submodule.html
  39. +1 −1  deps/npm/html/api/tag.html
  40. +1 −1  deps/npm/html/api/test.html
  41. +1 −1  deps/npm/html/api/uninstall.html
  42. +1 −1  deps/npm/html/api/unpublish.html
  43. +1 −1  deps/npm/html/api/update.html
  44. +1 −1  deps/npm/html/api/version.html
  45. +1 −1  deps/npm/html/api/view.html
  46. +1 −1  deps/npm/html/api/whoami.html
  47. +1 −1  deps/npm/html/doc/README.html
  48. +1 −1  deps/npm/html/doc/adduser.html
  49. +1 −1  deps/npm/html/doc/bin.html
  50. +1 −1  deps/npm/html/doc/bugs.html
  51. +1 −1  deps/npm/html/doc/build.html
  52. +1 −1  deps/npm/html/doc/bundle.html
  53. +1 −1  deps/npm/html/doc/cache.html
  54. +1 −1  deps/npm/html/doc/changelog.html
  55. +1 −1  deps/npm/html/doc/coding-style.html
  56. +1 −1  deps/npm/html/doc/completion.html
  57. +9 −1 deps/npm/html/doc/config.html
  58. +92 −0 deps/npm/html/doc/dedupe.html
  59. +1 −1  deps/npm/html/doc/deprecate.html
  60. +1 −1  deps/npm/html/doc/developers.html
  61. +1 −1  deps/npm/html/doc/disputes.html
  62. +1 −1  deps/npm/html/doc/docs.html
  63. +1 −1  deps/npm/html/doc/edit.html
  64. +1 −1  deps/npm/html/doc/explore.html
  65. +1 −1  deps/npm/html/doc/faq.html
  66. +1 −1  deps/npm/html/doc/folders.html
  67. +1 −1  deps/npm/html/doc/help-search.html
  68. +1 −1  deps/npm/html/doc/help.html
  69. +5 −1 deps/npm/html/doc/index.html
  70. +1 −1  deps/npm/html/doc/init.html
  71. +1 −1  deps/npm/html/doc/install.html
  72. +1 −1  deps/npm/html/doc/json.html
  73. +1 −1  deps/npm/html/doc/link.html
  74. +2 −2 deps/npm/html/doc/list.html
  75. +2 −2 deps/npm/html/doc/npm.html
  76. +1 −1  deps/npm/html/doc/outdated.html
  77. +1 −1  deps/npm/html/doc/owner.html
  78. +1 −1  deps/npm/html/doc/pack.html
  79. +1 −1  deps/npm/html/doc/prefix.html
  80. +1 −1  deps/npm/html/doc/prune.html
  81. +1 −1  deps/npm/html/doc/publish.html
  82. +1 −1  deps/npm/html/doc/rebuild.html
  83. +1 −1  deps/npm/html/doc/registry.html
  84. +1 −1  deps/npm/html/doc/removing-npm.html
  85. +1 −1  deps/npm/html/doc/restart.html
  86. +1 −1  deps/npm/html/doc/root.html
  87. +1 −1  deps/npm/html/doc/run-script.html
  88. +1 −1  deps/npm/html/doc/scripts.html
  89. +1 −1  deps/npm/html/doc/search.html
  90. +1 −1  deps/npm/html/doc/semver.html
  91. +1 −1  deps/npm/html/doc/shrinkwrap.html
  92. +1 −1  deps/npm/html/doc/star.html
  93. +1 −1  deps/npm/html/doc/start.html
  94. +1 −1  deps/npm/html/doc/stop.html
  95. +1 −1  deps/npm/html/doc/submodule.html
  96. +1 −1  deps/npm/html/doc/tag.html
  97. +1 −1  deps/npm/html/doc/test.html
  98. +1 −1  deps/npm/html/doc/uninstall.html
  99. +1 −1  deps/npm/html/doc/unpublish.html
  100. +1 −1  deps/npm/html/doc/update.html
  101. +1 −1  deps/npm/html/doc/version.html
  102. +1 −1  deps/npm/html/doc/view.html
  103. +1 −1  deps/npm/html/doc/whoami.html
  104. +334 −0 deps/npm/lib/dedupe.js
  105. +13 −6 deps/npm/lib/install.js
  106. +15 −32 deps/npm/lib/npm.js
  107. +6 −9 deps/npm/lib/publish.js
  108. +6 −0 deps/npm/lib/utils/error-handler.js
  109. +4 −3 deps/npm/lib/utils/fetch.js
  110. +0 −1  deps/npm/lib/utils/find-prefix.js
  111. +1 −1  deps/npm/lib/view.js
  112. +15 −0 deps/npm/man/man1/config.1
  113. +90 −0 deps/npm/man/man1/dedupe.1
  114. +3 −0  deps/npm/man/man1/index.1
  115. +1 −1  deps/npm/man/man1/list.1
  116. +1 −1  deps/npm/man/man1/npm.1
  117. +1 −1  deps/npm/man/man3/npm.3
  118. +1 −1  deps/npm/node_modules/couch-login/couch-login.js
  119. +3 −3 deps/npm/node_modules/couch-login/package.json
  120. +0 −2  deps/npm/node_modules/mkdirp/.gitignore.orig
  121. +0 −5 deps/npm/node_modules/mkdirp/.gitignore.rej
  122. +0 −6 deps/npm/node_modules/mkdirp/examples/pow.js.orig
  123. +0 −19 deps/npm/node_modules/mkdirp/examples/pow.js.rej
  124. +8 −20 deps/npm/node_modules/mkdirp/index.js
  125. +5 −14 deps/npm/node_modules/mkdirp/package.json
  126. +3 −0  deps/npm/node_modules/node-gyp/addon.gypi
  127. +5 −1 deps/npm/node_modules/node-gyp/lib/build.js
  128. +1 −0  deps/npm/node_modules/node-gyp/lib/node-gyp.js
  129. +2 −2 deps/npm/node_modules/node-gyp/package.json
  130. +0 −2  deps/npm/node_modules/node-uuid/.npmignore
  131. +0 −3  deps/npm/node_modules/node-uuid/LICENSE.md
  132. +0 −199 deps/npm/node_modules/node-uuid/README.md
  133. +0 −14 deps/npm/node_modules/node-uuid/package.json
  134. +0 −249 deps/npm/node_modules/node-uuid/uuid.js
  135. +23 −9 deps/npm/node_modules/npm-registry-client/README.md
  136. +26 −56 deps/npm/node_modules/npm-registry-client/index.js
  137. +20 −26 deps/npm/node_modules/npm-registry-client/lib/adduser.js
  138. +12 −12 deps/npm/node_modules/npm-registry-client/lib/get.js
  139. +12 −6 deps/npm/node_modules/npm-registry-client/lib/publish.js
  140. +31 −24 deps/npm/node_modules/npm-registry-client/lib/request.js
  141. +3 −3 deps/npm/node_modules/npm-registry-client/lib/star.js
  142. +4 −5 deps/npm/node_modules/npm-registry-client/package.json
  143. +3 −3 deps/npm/node_modules/npm-registry-client/test/retries.js
  144. +3 −0  deps/npm/node_modules/npmconf/config-defs.js
  145. +22 −8 deps/npm/node_modules/npmconf/npmconf.js
  146. +5 −3 deps/npm/node_modules/npmconf/package.json
  147. +3 −3 deps/npm/node_modules/read-installed/package.json
  148. +2 −0  deps/npm/node_modules/read-installed/read-installed.js
  149. +3 −3 deps/npm/node_modules/read-package-json/package.json
  150. +1 −1  deps/npm/node_modules/read-package-json/read-json.js
  151. +15 −0 deps/npm/node_modules/read/README.md
  152. +14 −1 deps/npm/node_modules/read/lib/read.js
  153. +15 −0 deps/npm/node_modules/read/node_modules/mute-stream/mute.js
  154. +2 −5 deps/npm/node_modules/read/node_modules/mute-stream/package.json
  155. +12 −0 deps/npm/node_modules/read/node_modules/mute-stream/test/basic.js
  156. +4 −4 deps/npm/node_modules/read/package.json
  157. +6 −1 deps/npm/node_modules/read/test/basic.js
  158. +6 −1 deps/npm/node_modules/read/test/defaults.js
  159. +6 −1 deps/npm/node_modules/read/test/many.js
  160. +1 −1  deps/npm/node_modules/request/README.md
  161. +0 −128 deps/npm/node_modules/request/aws2.js
  162. +129 −19 deps/npm/node_modules/request/main.js
  163. +3 −3 deps/npm/node_modules/request/package.json
  164. +9 −5 deps/npm/node_modules/request/tests/server.js
  165. +38 −1 deps/npm/node_modules/request/tests/test-body.js
  166. +33 −2 deps/npm/node_modules/request/tests/test-defaults.js
  167. +30 −0 deps/npm/node_modules/request/tests/test-follow-all-303.js
  168. +35 −0 deps/npm/node_modules/request/tests/test-follow-all.js
  169. +3 −3 deps/npm/node_modules/request/tests/test-https-strict.js
  170. +3 −3 deps/npm/node_modules/request/tests/test-https.js
  171. +3 −3 deps/npm/node_modules/request/tests/test-params.js
  172. +60 −0 deps/npm/node_modules/request/tests/test-protocol-changing-redirect.js
  173. +0 −13 deps/npm/node_modules/request/tests/test-s3.js
  174. +4 −2 deps/npm/node_modules/request/tests/test-tunnel.js
  175. +1 −0  deps/npm/node_modules/request/tunnel.js
  176. +5 −7 deps/npm/package.json
  177. +41 −0 deps/npm/test/tap/publish-config.js
  178. +10 −7 deps/openssl/config/android/openssl/opensslconf.h
  179. +8 −1 deps/openssl/openssl.gyp
  180. +10 −2 deps/v8/src/code-stubs.cc
  181. +2 −1  deps/v8/src/heap.h
  182. +1 −1  deps/v8/src/version.cc
  183. +36 −0 deps/v8/test/mjsunit/regress/regress-2291.js
  184. +0 −6 doc/about/index.html
  185. +0 −2  doc/api/_toc.markdown
  186. +0 −1  doc/api/all.markdown
  187. +0 −46 doc/api/appendix_1.markdown
  188. +3 −3 doc/api/cluster.markdown
  189. +10 −3 doc/api/https.markdown
  190. +30 −18 doc/api/tls.markdown
  191. +6 −5 doc/api_assets/sh.css
  192. +216 −192 doc/api_assets/style.css
  193. +77 −0 doc/blog/release/v0.8.8.md
  194. +200 −169 doc/community/index.html
  195. +0 −6 doc/download/index.html
  196. +36 −42 doc/index.html
  197. +0 −6 doc/logos/index.html
  198. +297 −261 doc/pipe.css
  199. +6 −5 doc/sh.css
  200. +10 −10 doc/sh_vim-dark.css
  201. +2 −1  lib/child_process.js
  202. +5 −0 lib/https.js
  203. +2 −2 lib/net.js
  204. +4 −1 lib/tls.js
  205. +27 −7 src/node_stat_watcher.cc
  206. +3 −8 src/node_stat_watcher.h
  207. +55 −0 test/simple/test-https-client-get-url.js
  208. +9 −1 tools/gyp/gyptest.py
  209. +21 −7 tools/gyp/pylib/gyp/MSVSSettings.py
  210. +31 −3 tools/gyp/pylib/gyp/MSVSVersion.py
  211. +42 −12 tools/gyp/pylib/gyp/__init__.py
  212. +9 −0 tools/gyp/pylib/gyp/common.py
  213. +13 −4 tools/gyp/pylib/gyp/easy_xml.py
  214. +5 −4 tools/gyp/pylib/gyp/easy_xml_test.py
  215. +1,077 −0 tools/gyp/pylib/gyp/generator/android.py
  216. +4 −2 tools/gyp/pylib/gyp/generator/eclipse.py
  217. +45 −31 tools/gyp/pylib/gyp/generator/make.py
  218. +50 −33 tools/gyp/pylib/gyp/generator/msvs.py
  219. +112 −37 tools/gyp/pylib/gyp/generator/ninja.py
  220. +9 −7 tools/gyp/pylib/gyp/generator/xcode.py
  221. +54 −5 tools/gyp/pylib/gyp/msvs_emulation.py
  222. +1 −3 tools/gyp/pylib/gyp/ninja_syntax.py
  223. +34 −1 tools/gyp/pylib/gyp/win_tool.py
  224. +9 −3 tools/gyp/pylib/gyp/xcode_emulation.py
  225. +4 −6 tools/gyp/pylib/gyp/xcodeproj_file.py
  226. +12 −0 tools/gyp/tools/emacs/README
  227. +54 −0 tools/gyp/tools/emacs/gyp-tests.el
  228. +251 −0 tools/gyp/tools/emacs/gyp.el
  229. +7 −0 tools/gyp/tools/emacs/run-unit-tests.sh
  230. +1,105 −0 tools/gyp/tools/emacs/testdata/media.gyp
  231. +1,107 −0 tools/gyp/tools/emacs/testdata/media.gyp.fontified
View
1  AUTHORS
@@ -356,3 +356,4 @@ Eugen Dueck <eugen@dueck.org>
Gil Pedersen <git@gpost.dk>
Tyler Neylon <tylerneylon@gmail.com>
Golo Roden <webmaster@goloroden.de>
+Ron Korving <rkorving@wizcorp.jp>
View
27 ChangeLog
@@ -21,7 +21,32 @@
* Fix #3521 Make process.env more like a regular Object (isaacs)
-2012.08.15, Version 0.8.7 (Stable)
+2012.08.22, Version 0.8.8 (Stable)
+
+* V8: upgrade to 3.11.10.19
+
+* npm: upgrade to 1.1.59
+
+* windows: fix uninitialized memory access in uv_update_time() (Bert Belder)
+
+* unix, windows: fix memory corruption in fs-poll.c (Ben Noordhuis)
+
+* unix: fix integer overflow in uv_hrtime (Tim Holy)
+
+* sunos: fix uv_cpu_info() on x86_64 (Ben Noordhuis)
+
+* tls: update default cipher list (Ben Noordhuis)
+
+* unix: Fix llvm and older gcc duplicate symbol warnings (Bert Belder)
+
+* fs: fix use after free in stat watcher (Ben Noordhuis)
+
+* build: Fix using manually compiled gcc on OS X (Nathan Rajlich)
+
+* windows: make junctions work again (Bert Belder)
+
+
+2012.08.15, Version 0.8.7 (Stable), f640c5d35cba96634cd8176a525a1d876e361a61
* npm: Upgrade to 1.1.49
View
6 common.gypi
@@ -66,9 +66,12 @@
}, {
'cflags!': [ '-ffunction-sections', '-fdata-sections' ],
}],
- ['clang==1 or gcc_version >= 40', {
+ ['clang == 0 and gcc_version >= 40', {
'cflags': [ '-fno-tree-vrp' ],
}],
+ ['clang == 0 and gcc_version <= 44', {
+ 'cflags': [ '-fno-tree-sink' ],
+ }],
],
}],
['OS=="solaris"', {
@@ -190,7 +193,6 @@
'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings
'GCC_THREADSAFE_STATICS': 'NO', # -fno-threadsafe-statics
'GCC_VERSION': '4.2',
- 'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES', # -Wnewline-eof
'PREBINDING': 'NO', # No -Wl,-prebind
'MACOSX_DEPLOYMENT_TARGET': '10.5', # -mmacosx-version-min=10.5
'USE_HEADERMAP': 'NO',
View
4 deps/npm/.travis.yml
@@ -1,4 +0,0 @@
-language: node_js
-before_install: "make &>out || cat out; rm out"
-node_js:
- - 0.8
View
2  deps/npm/AUTHORS
@@ -75,3 +75,5 @@ Don Park <donpark@docuverse.com>
Kei Son <heyacct@gmail.com>
Nicolas Morel <marsup@gmail.com>
Mark Dube <markisdee@gmail.com>
+Maxim Bogushevich <boga1@mail.ru>
+Justin Beckwith <justbe@microsoft.com>
View
9 deps/npm/doc/cli/config.md
@@ -550,6 +550,15 @@ The url to report npat test results.
A node module to `require()` when npm loads. Useful for programmatic
usage.
+### optional
+
+* Default: true
+* Type: Boolean
+
+Attempt to install packages in the `optionalDependencies` hash. Note
+that if these packages fail to install, the overall installation
+process is not aborted.
+
### parseable
* Default: false
View
53 deps/npm/doc/cli/dedupe.md
@@ -0,0 +1,53 @@
+npm-dedupe(1) -- Reduce duplication
+===================================
+
+## SYNOPSIS
+
+ npm dedupe [package names...]
+
+## DESCRIPTION
+
+Searches the local package tree and attempts to simplify the overall
+structure by moving dependencies further up the tree, where they can
+be more effectively shared by multiple dependent packages.
+
+For example, consider this dependency graph:
+
+ a
+ +-- b <-- depends on c@1.0.x
+ | `-- c@1.0.3
+ `-- d <-- depends on c@~1.0.9
+ `-- c@1.0.10
+
+In this case, `npm-dedupe(1)` will transform the tree to:
+
+ a
+ +-- b
+ +-- d
+ `-- c@1.0.10
+
+Because of the hierarchical nature of node's module lookup, b and d
+will both get their dependency met by the single c package at the root
+level of the tree.
+
+If a suitable version exists at the target location in the tree
+already, then it will be left untouched, but the other duplicates will
+be deleted.
+
+If no suitable version can be found, then a warning is printed, and
+nothing is done.
+
+If any arguments are supplied, then they are filters, and only the
+named packages will be touched.
+
+Note that this operation transforms the dependency tree, and may
+result in packages getting updated versions, perhaps from the npm
+registry.
+
+This feature is experimental, and may change in future versions.
+
+## SEE ALSO
+
+* npm-ls(1)
+* npm-update(1)
+* npm-install(1)
View
4 deps/npm/doc/cli/index.md
@@ -46,6 +46,10 @@ npm-index(1) -- Index of all npm documentation
Manage the npm configuration file
+## npm-dedupe(1)
+
+ Reduce duplication
+
## npm-deprecate(1)
Deprecate a version of a package
View
2  deps/npm/html/api/bin.html
@@ -19,7 +19,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This function should not be used programmatically. Instead, just refer
to the <code>npm.bin</code> member.</p>
</div>
-<p id="footer">bin &mdash; npm@1.1.49</p>
+<p id="footer">bin &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/bugs.html
@@ -25,7 +25,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command will launch a browser, so this command may not be the most
friendly for programmatic use.</p>
</div>
-<p id="footer">bugs &mdash; npm@1.1.49</p>
+<p id="footer">bugs &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/commands.html
@@ -28,7 +28,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
-<p id="footer">commands &mdash; npm@1.1.49</p>
+<p id="footer">commands &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/config.html
@@ -33,7 +33,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../api/npm.html">npm(3)</a></li></ul>
</div>
-<p id="footer">config &mdash; npm@1.1.49</p>
+<p id="footer">config &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/deprecate.html
@@ -30,7 +30,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../api/unpublish.html">unpublish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">deprecate &mdash; npm@1.1.49</p>
+<p id="footer">deprecate &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/docs.html
@@ -25,7 +25,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command will launch a browser, so this command may not be the most
friendly for programmatic use.</p>
</div>
-<p id="footer">docs &mdash; npm@1.1.49</p>
+<p id="footer">docs &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/edit.html
@@ -30,7 +30,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Since this command opens an editor in a new process, be careful about where
and how this is used.</p>
</div>
-<p id="footer">edit &mdash; npm@1.1.49</p>
+<p id="footer">edit &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/explore.html
@@ -24,7 +24,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>The first element in the &#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.49</p>
+<p id="footer">explore &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/help-search.html
@@ -32,7 +32,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>The silent parameter is not neccessary not used, but it may in the future.</p>
</div>
-<p id="footer">help-search &mdash; npm@1.1.49</p>
+<p id="footer">help-search &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/init.html
@@ -35,7 +35,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<p><a href="../doc/json.html">json(1)</a></p>
</div>
-<p id="footer">init &mdash; npm@1.1.49</p>
+<p id="footer">init &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/install.html
@@ -25,7 +25,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Finally, &#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.49</p>
+<p id="footer">install &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/link.html
@@ -39,7 +39,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Now, any changes to the redis package will be reflected in
the package in the current working directory</p>
</div>
-<p id="footer">link &mdash; npm@1.1.49</p>
+<p id="footer">link &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/load.html
@@ -32,7 +32,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>For a list of all the available command-line configs, see <code>npm help config</code></p>
</div>
-<p id="footer">load &mdash; npm@1.1.49</p>
+<p id="footer">load &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/ls.html
@@ -59,7 +59,7 @@ <h3 id="global">global</h3>
This means that if a submodule a same dependency as a parent module, then the
dependency will only be output once.</p>
</div>
-<p id="footer">ls &mdash; npm@1.1.49</p>
+<p id="footer">ls &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
4 deps/npm/html/api/npm.html
@@ -24,7 +24,7 @@ <h2 id="SYNOPSIS">SYNOPSIS</h2>
<h2 id="VERSION">VERSION</h2>
-<p>1.1.49</p>
+<p>1.1.59</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@@ -91,7 +91,7 @@ <h2 id="ABBREVS">ABBREVS</h2>
<pre><code>var cmd = npm.deref(&quot;unp&quot;) // cmd === &quot;unpublish&quot;</code></pre>
</div>
-<p id="footer">npm &mdash; npm@1.1.49</p>
+<p id="footer">npm &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/outdated.html
@@ -19,7 +19,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>If the &#39;packages&#39; parameter is left out, npm will check all packages.</p>
</div>
-<p id="footer">outdated &mdash; npm@1.1.49</p>
+<p id="footer">outdated &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/owner.html
@@ -34,7 +34,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">owner &mdash; npm@1.1.49</p>
+<p id="footer">owner &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/pack.html
@@ -25,7 +25,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>If no arguments are supplied, then npm packs the current package folder.</p>
</div>
-<p id="footer">pack &mdash; npm@1.1.49</p>
+<p id="footer">pack &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/prefix.html
@@ -21,7 +21,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This function is not useful programmatically</p>
</div>
-<p id="footer">prefix &mdash; npm@1.1.49</p>
+<p id="footer">prefix &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/prune.html
@@ -23,7 +23,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Extraneous packages are packages that are not listed on the parent
package&#39;s dependencies list.</p>
</div>
-<p id="footer">prune &mdash; npm@1.1.49</p>
+<p id="footer">prune &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/publish.html
@@ -32,7 +32,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../api/owner.html">owner(3)</a></li></ul>
</div>
-<p id="footer">publish &mdash; npm@1.1.49</p>
+<p id="footer">publish &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/rebuild.html
@@ -22,7 +22,7 @@ <h2 id="CONFIGURATION">CONFIGURATION</h2>
<p>See <code>npm help build</code></p>
</div>
-<p id="footer">rebuild &mdash; npm@1.1.49</p>
+<p id="footer">rebuild &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/restart.html
@@ -27,7 +27,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
</div>
-<p id="footer">restart &mdash; npm@1.1.49</p>
+<p id="footer">restart &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/root.html
@@ -21,7 +21,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This function is not useful programmatically.</p>
</div>
-<p id="footer">root &mdash; npm@1.1.49</p>
+<p id="footer">root &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/run-script.html
@@ -29,7 +29,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../api/test.html">test(3)</a></li><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/restart.html">restart(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
</div>
-<p id="footer">run-script &mdash; npm@1.1.49</p>
+<p id="footer">run-script &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/search.html
@@ -32,7 +32,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
and doesn&#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.49</p>
+<p id="footer">search &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/shrinkwrap.html
@@ -26,7 +26,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Finally, &#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.49</p>
+<p id="footer">shrinkwrap &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/start.html
@@ -19,7 +19,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm can run tests on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
-<p id="footer">start &mdash; npm@1.1.49</p>
+<p id="footer">start &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/stop.html
@@ -19,7 +19,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm can run stop on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
-<p id="footer">stop &mdash; npm@1.1.49</p>
+<p id="footer">stop &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/submodule.html
@@ -33,7 +33,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li>npm help json</li><li>git help submodule</li></ul>
</div>
-<p id="footer">submodule &mdash; npm@1.1.49</p>
+<p id="footer">submodule &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/tag.html
@@ -29,7 +29,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
used. For more information about how to set this config, check
<code>man 3 npm-config</code> for programmatic usage or <code>man npm-config</code> for cli usage.</p>
</div>
-<p id="footer">tag &mdash; npm@1.1.49</p>
+<p id="footer">tag &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/test.html
@@ -22,7 +22,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm can run tests on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
-<p id="footer">test &mdash; npm@1.1.49</p>
+<p id="footer">test &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/uninstall.html
@@ -22,7 +22,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Finally, &#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.49</p>
+<p id="footer">uninstall &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/unpublish.html
@@ -26,7 +26,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>If no version is specified, or if all versions are removed then
the root package entry is removed from the registry entirely.</p>
</div>
-<p id="footer">unpublish &mdash; npm@1.1.49</p>
+<p id="footer">unpublish &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/update.html
@@ -18,7 +18,7 @@ <h2 id="SYNOPSIS">SYNOPSIS</h2>
<p>The &#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.49</p>
+<p id="footer">update &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/version.html
@@ -24,7 +24,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
parameter. The difference, however, is this function will fail if it does
not have exactly one element. The only element should be a version number.</p>
</div>
-<p id="footer">version &mdash; npm@1.1.49</p>
+<p id="footer">version &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/view.html
@@ -99,7 +99,7 @@ <h2 id="RETURN-VALUE">RETURN VALUE</h2>
<p>corresponding to the list of fields selected.</p>
</div>
-<p id="footer">view &mdash; npm@1.1.49</p>
+<p id="footer">view &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/whoami.html
@@ -21,7 +21,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This function is not useful programmatically</p>
</div>
-<p id="footer">whoami &mdash; npm@1.1.49</p>
+<p id="footer">whoami &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/README.html
@@ -240,7 +240,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
-<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.49</p>
+<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/adduser.html
@@ -39,7 +39,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li></ul>
</div>
-<p id="footer">adduser &mdash; npm@1.1.49</p>
+<p id="footer">adduser &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/bin.html
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">bin &mdash; npm@1.1.49</p>
+<p id="footer">bin &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/bugs.html
@@ -36,7 +36,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/docs.html">docs(1)</a></li><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">bugs &mdash; npm@1.1.49</p>
+<p id="footer">bugs &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/build.html
@@ -25,7 +25,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">build &mdash; npm@1.1.49</p>
+<p id="footer">build &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/bundle.html
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">bundle &mdash; npm@1.1.49</p>
+<p id="footer">bundle &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/cache.html
@@ -66,7 +66,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li></ul>
</div>
-<p id="footer">cache &mdash; npm@1.1.49</p>
+<p id="footer">cache &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/changelog.html
@@ -65,7 +65,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li></ul>
</div>
-<p id="footer">changelog &mdash; npm@1.1.49</p>
+<p id="footer">changelog &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/coding-style.html
@@ -180,7 +180,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
-<p id="footer">coding-style &mdash; npm@1.1.49</p>
+<p id="footer">coding-style &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/completion.html
@@ -33,7 +33,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
-<p id="footer">completion &mdash; npm@1.1.49</p>
+<p id="footer">completion &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
10 deps/npm/html/doc/config.html
@@ -484,6 +484,14 @@ <h3 id="onload-script">onload-script</h3>
<p>A node module to <code>require()</code> when npm loads. Useful for programmatic
usage.</p>
+<h3 id="optional">optional</h3>
+
+<ul><li>Default: true</li><li>Type: Boolean</li></ul>
+
+<p>Attempt to install packages in the <code>optionalDependencies</code> hash. Note
+that if these packages fail to install, the overall installation
+process is not aborted.</p>
+
<h3 id="parseable">parseable</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
@@ -748,7 +756,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
-<p id="footer">config &mdash; npm@1.1.49</p>
+<p id="footer">config &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
92 deps/npm/html/doc/dedupe.html
@@ -0,0 +1,92 @@
+<!doctype html>
+<html>
+ <title>dedupe</title>
+ <meta http-equiv="content-type" value="text/html;utf-8">
+ <link rel="stylesheet" type="text/css" href="../static/style.css">
+
+ <body>
+ <div id="wrapper">
+<h1><a href="../doc/dedupe.html">dedupe</a></h1> <p>Reduce duplication</p>
+
+<h2 id="SYNOPSIS">SYNOPSIS</h2>
+
+<pre><code>npm dedupe [package names...]</code></pre>
+
+<h2 id="DESCRIPTION">DESCRIPTION</h2>
+
+<p>Searches the local package tree and attempts to simplify the overall
+structure by moving dependencies further up the tree, where they can
+be more effectively shared by multiple dependent packages.</p>
+
+<p>For example, consider this dependency graph:</p>
+
+<pre><code>a
++-- b &lt;-- depends on c@1.0.x
+| `-- c@1.0.3
+`-- d &lt;-- depends on c@~1.0.9
+ `-- c@1.0.10</code></pre>
+
+<p>In this case, <code><a href="../doc/dedupe.html">dedupe(1)</a></code> will transform the tree to:</p>
+
+<pre><code>a
++-- b
++-- d
+`-- c@1.0.10</code></pre>
+
+<p>Because of the hierarchical nature of node&#39;s module lookup, b and d
+will both get their dependency met by the single c package at the root
+level of the tree.</p>
+
+<p>If a suitable version exists at the target location in the tree
+already, then it will be left untouched, but the other duplicates will
+be deleted.</p>
+
+<p>If no suitable version can be found, then a warning is printed, and
+nothing is done.</p>
+
+<p>If any arguments are supplied, then they are filters, and only the
+named packages will be touched.</p>
+
+<p>Note that this operation transforms the dependency tree, and may
+result in packages getting updated versions, perhaps from the npm
+registry.</p>
+
+<p>This feature is experimental, and may change in future versions.</p>
+
+<h2 id="SEE-ALSO">SEE ALSO</h2>
+
+<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.59</p>
+<script>
+;(function () {
+var wrapper = document.getElementById("wrapper")
+var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
+ .filter(function (el) {
+ return el.parentNode === wrapper
+ && el.tagName.match(/H[1-6]/)
+ && el.id
+ })
+var l = 2
+ , toc = document.createElement("ul")
+toc.innerHTML = els.map(function (el) {
+ var i = el.tagName.charAt(1)
+ , out = ""
+ while (i > l) {
+ out += "<ul>"
+ l ++
+ }
+ while (i < l) {
+ out += "</ul>"
+ l --
+ }
+ out += "<li><a href='#" + el.id + "'>" +
+ ( el.innerText || el.text || el.innerHTML)
+ + "</a>"
+ return out
+}).join("\n")
+toc.id = "toc"
+document.body.appendChild(toc)
+})()
+</script>
+</body></html>
View
2  deps/npm/html/doc/deprecate.html
@@ -29,7 +29,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">deprecate &mdash; npm@1.1.49</p>
+<p id="footer">deprecate &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/developers.html
@@ -160,7 +160,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">developers &mdash; npm@1.1.49</p>
+<p id="footer">developers &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/disputes.html
@@ -80,7 +80,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li></ul>
</div>
-<p id="footer">disputes &mdash; npm@1.1.49</p>
+<p id="footer">disputes &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/docs.html
@@ -37,7 +37,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">docs &mdash; npm@1.1.49</p>
+<p id="footer">docs &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/edit.html
@@ -37,7 +37,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/explore.html">explore(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">edit &mdash; npm@1.1.49</p>
+<p id="footer">edit &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/explore.html
@@ -40,7 +40,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/submodule.html">submodule(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/edit.html">edit(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">explore &mdash; npm@1.1.49</p>
+<p id="footer">explore &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/faq.html
@@ -241,7 +241,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
</div>
-<p id="footer">faq &mdash; npm@1.1.49</p>
+<p id="footer">faq &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/folders.html
@@ -205,7 +205,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li></ul>
</div>
-<p id="footer">folders &mdash; npm@1.1.49</p>
+<p id="footer">folders &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/help-search.html
@@ -38,7 +38,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li></ul>
</div>
-<p id="footer">help-search &mdash; npm@1.1.49</p>
+<p id="footer">help-search &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/help.html
@@ -36,7 +36,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/help-search.html">help-search(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
-<p id="footer">help &mdash; npm@1.1.49</p>
+<p id="footer">help &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
6 deps/npm/html/doc/index.html
@@ -54,6 +54,10 @@ <h2 id="npm-config-1"><a href="../doc/config.html">config(1)</a></h2>
<p> Manage the npm configuration file</p>
+<h2 id="npm-dedupe-1"><a href="../doc/dedupe.html">dedupe(1)</a></h2>
+
+<p> Reduce duplication</p>
+
<h2 id="npm-deprecate-1"><a href="../doc/deprecate.html">deprecate(1)</a></h2>
<p> Deprecate a version of a package</p>
@@ -384,7 +388,7 @@ <h2 id="npm-whoami-3"><a href="../api/whoami.html">whoami(3)</a></h2>
<p> Display npm username</p>
</div>
-<p id="footer">index &mdash; npm@1.1.49</p>
+<p id="footer">index &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/init.html
@@ -29,7 +29,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="https://github.com/isaacs/init-package-json">https://github.com/isaacs/init-package-json</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/version.html">version(1)</a></li></ul>
</div>
-<p id="footer">init &mdash; npm@1.1.49</p>
+<p id="footer">init &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/install.html
@@ -133,7 +133,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/shrinkwrap.html">shrinkwrap(1)</a></li></ul>
</div>
-<p id="footer">install &mdash; npm@1.1.49</p>
+<p id="footer">install &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/json.html
@@ -525,7 +525,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/semver.html">semver(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/version.html">version(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/rm.html">rm(1)</a></li></ul>
</div>
-<p id="footer">json &mdash; npm@1.1.49</p>
+<p id="footer">json &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/link.html
@@ -58,7 +58,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">link &mdash; npm@1.1.49</p>
+<p id="footer">link &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
4 deps/npm/html/doc/list.html
@@ -25,7 +25,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
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.49 /path/to/npm
+<pre><code>npm@1.1.59 /path/to/npm
└─┬ init-package-json@0.0.4
└── promzard@0.1.5</code></pre>
@@ -64,7 +64,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/update.html">update(1)</a></li></ul>
</div>
-<p id="footer">list &mdash; npm@1.1.49</p>
+<p id="footer">list &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
4 deps/npm/html/doc/npm.html
@@ -14,7 +14,7 @@ <h2 id="SYNOPSIS">SYNOPSIS</h2>
<h2 id="VERSION">VERSION</h2>
-<p>1.1.49</p>
+<p>1.1.59</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@@ -135,7 +135,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/index.html">index(1)</a></li><li><a href="../api/npm.html">npm(3)</a></li></ul>
</div>
-<p id="footer">npm &mdash; npm@1.1.49</p>
+<p id="footer">npm &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/outdated.html
@@ -21,7 +21,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
</div>
-<p id="footer">outdated &mdash; npm@1.1.49</p>
+<p id="footer">outdated &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/owner.html
@@ -34,7 +34,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/disputes.html">disputes(1)</a></li></ul>
</div>
-<p id="footer">owner &mdash; npm@1.1.49</p>
+<p id="footer">owner &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/pack.html
@@ -29,7 +29,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">pack &mdash; npm@1.1.49</p>
+<p id="footer">pack &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/prefix.html
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/bin.html">bin(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">prefix &mdash; npm@1.1.49</p>
+<p id="footer">prefix &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/prune.html
@@ -25,7 +25,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
-<p id="footer">prune &mdash; npm@1.1.49</p>
+<p id="footer">prune &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/publish.html
@@ -29,7 +29,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/deprecate.html">deprecate(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li></ul>
</div>
-<p id="footer">publish &mdash; npm@1.1.49</p>
+<p id="footer">publish &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/rebuild.html
@@ -25,7 +25,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">rebuild &mdash; npm@1.1.49</p>
+<p id="footer">rebuild &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/registry.html
@@ -97,7 +97,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/disputes.html">disputes(1)</a></li></ul>
</div>
-<p id="footer">registry &mdash; npm@1.1.49</p>
+<p id="footer">registry &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/removing-npm.html
@@ -58,7 +58,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/README.html">README</a></li><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li></ul>
</div>
-<p id="footer">removing-npm &mdash; npm@1.1.49</p>
+<p id="footer">removing-npm &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/restart.html
@@ -24,7 +24,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">restart &mdash; npm@1.1.49</p>
+<p id="footer">restart &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/root.html
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/bin.html">bin(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">root &mdash; npm@1.1.49</p>
+<p id="footer">root &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/run-script.html
@@ -23,7 +23,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">run-script &mdash; npm@1.1.49</p>
+<p id="footer">run-script &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/scripts.html
@@ -177,7 +177,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">scripts &mdash; npm@1.1.49</p>
+<p id="footer">scripts &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/search.html
@@ -24,7 +24,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/view.html">view(1)</a></li></ul>
</div>
-<p id="footer">search &mdash; npm@1.1.49</p>
+<p id="footer">search &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/semver.html
@@ -104,7 +104,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">semver &mdash; npm@1.1.49</p>
+<p id="footer">semver &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/shrinkwrap.html
@@ -169,7 +169,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
-<p id="footer">shrinkwrap &mdash; npm@1.1.49</p>
+<p id="footer">shrinkwrap &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/star.html
@@ -26,7 +26,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
</div>
-<p id="footer">star &mdash; npm@1.1.49</p>
+<p id="footer">star &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/start.html
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">start &mdash; npm@1.1.49</p>
+<p id="footer">start &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/stop.html
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li></ul>
</div>
-<p id="footer">stop &mdash; npm@1.1.49</p>
+<p id="footer">stop &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/submodule.html
@@ -33,7 +33,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/json.html">json(1)</a></li><li>git help submodule</li></ul>
</div>
-<p id="footer">submodule &mdash; npm@1.1.49</p>
+<p id="footer">submodule &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/tag.html
@@ -21,7 +21,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">tag &mdash; npm@1.1.49</p>
+<p id="footer">tag &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/test.html
@@ -23,7 +23,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">test &mdash; npm@1.1.49</p>
+<p id="footer">test &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/uninstall.html
@@ -22,7 +22,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">uninstall &mdash; npm@1.1.49</p>
+<p id="footer">uninstall &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/unpublish.html
@@ -34,7 +34,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/deprecate.html">deprecate(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li></ul>
</div>
-<p id="footer">unpublish &mdash; npm@1.1.49</p>
+<p id="footer">unpublish &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/update.html
@@ -23,7 +23,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
-<p id="footer">update &mdash; npm@1.1.49</p>
+<p id="footer">update &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/version.html
@@ -40,7 +40,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/semver.html">semver(1)</a></li></ul>
</div>
-<p id="footer">version &mdash; npm@1.1.49</p>
+<p id="footer">version &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/view.html
@@ -88,7 +88,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/search.html">search(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/docs.html">docs(1)</a></li></ul>
</div>
-<p id="footer">view &mdash; npm@1.1.49</p>
+<p id="footer">view &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/doc/whoami.html
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
</div>
-<p id="footer">whoami &mdash; npm@1.1.49</p>
+<p id="footer">whoami &mdash; npm@1.1.59</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
334 deps/npm/lib/dedupe.js
@@ -0,0 +1,334 @@
+// traverse the node_modules/package.json tree
+// looking for duplicates. If any duplicates are found,
+// then move them up to the highest level necessary
+// in order to make them no longer duplicated.
+//
+// This is kind of ugly, and really highlights the need for
+// much better "put pkg X at folder Y" abstraction. Oh well,
+// whatever. Perfect enemy of the good, and all that.
+
+var fs = require("fs")
+var asyncMap = require("slide").asyncMap
+var path = require("path")
+var readJson = require("read-package-json")
+var archy = require("archy")
+var util = require("util")
+var RegClient = require("npm-registry-client")
+var npmconf = require("npmconf")
+var npm = require("npm")
+var semver = require("semver")
+var npm = require("npm")
+var rimraf = require("rimraf")
+var log = require("npmlog")
+var npm = require("./npm.js")
+
+module.exports = dedupe
+
+dedupe.usage = "npm dedupe [pkg pkg...]"
+
+function dedupe (args, silent, cb) {
+ if (typeof silent === "function") cb = silent, silent = false
+ var dryrun = false
+ if (npm.command.match(/^find/)) dryrun = true
+ return dedupe_(npm.prefix, args, {}, dryrun, silent, cb)
+}
+
+function dedupe_ (dir, filter, unavoidable, dryrun, silent, cb) {
+ readInstalled(path.resolve(dir), {}, null, function (er, data, counter) {
+ // find out which things are dupes
+ var dupes = Object.keys(counter).filter(function (k) {
+ if (filter.length && -1 === filter.indexOf(k)) return false
+ return counter[k] > 1 && !unavoidable[k]
+ }).reduce(function (s, k) {
+ s[k] = []
+ return s
+ }, {})
+
+ // any that are unavoidable need to remain as they are. don't even
+ // try to touch them or figure it out. Maybe some day, we can do
+ // something a bit more clever here, but for now, just skip over it,
+ // and all its children.
+ ;(function U (obj) {
+ if (unavoidable[obj.name]) {
+ obj.unavoidable = true
+ }
+ if (obj.parent && obj.parent.unavoidable) {
+ obj.unavoidable = true
+ }
+ Object.keys(obj.children).forEach(function (k) {
+ U(obj.children[k])
+ })
+ })
+
+ // then collect them up and figure out who needs them
+ ;(function C (obj) {
+ if (dupes[obj.name] && !obj.unavoidable) {
+ dupes[obj.name].push(obj)
+ obj.duplicate = true
+ }
+ obj.dependents = whoDepends(obj)
+ Object.keys(obj.children).forEach(function (k) {
+ C(obj.children[k])
+ })
+ })(data)
+
+ if (dryrun) {
+ var k = Object.keys(dupes)
+ if (!k.length) return cb()
+ return npm.commands.ls(k, silent, cb)
+ }
+
+ var summary = Object.keys(dupes).map(function (n) {
+ return [n, dupes[n].filter(function (d) {
+ return d && d.parent && !d.parent.duplicate && !d.unavoidable
+ }).map(function M (d) {
+ return [d.path, d.version, d.dependents.map(function (k) {
+ return [k.path, k.version, k.dependencies[d.name] || ""]
+ })]
+ })]
+ }).map(function (item) {
+ var name = item[0]
+ var set = item[1]
+
+ var ranges = set.map(function (i) {
+ return i[2].map(function (d) {
+ return d[2]
+ })
+ }).reduce(function (l, r) {
+ return l.concat(r)
+ }, []).map(function (v, i, set) {
+ if (set.indexOf(v) !== i) return false
+ return v
+ }).filter(function (v) {
+ return v !== false
+ })
+
+ var locs = set.map(function (i) {
+ return i[0]
+ })
+
+ var versions = set.map(function (i) {
+ return i[1]
+ }).filter(function (v, i, set) {
+ return set.indexOf(v) === i
+ })
+
+ var has = set.map(function (i) {
+ return [i[0], i[1]]
+ }).reduce(function (set, kv) {
+ set[kv[0]] = kv[1]
+ return set
+ }, {})
+
+ var loc = locs.length ? locs.reduce(function (a, b) {
+ // a=/path/to/node_modules/foo/node_modules/bar
+ // b=/path/to/node_modules/elk/node_modules/bar
+ // ==/path/to/node_modules/bar
+ a = a.split(/\/node_modules\//)
+ b = b.split(/\/node_modules\//)
+ var name = a.pop()
+ b.pop()
+ // find the longest chain that both A and B share.
+ // then push the name back on it, and join by /node_modules/
+ var res = []
+ for (var i = 0, al = a.length, bl = b.length; i < al && i < bl && a[i] === b[i]; i++);
+ return a.slice(0, i).concat(name).join("/node_modules/")
+ }) : undefined
+
+ return [item[0], { item: item
+ , ranges: ranges
+ , locs: locs
+ , loc: loc
+ , has: has
+ , versions: versions
+ }]
+ }).filter(function (i) {
+ return i[1].loc
+ })
+
+ findVersions(npm, summary, function (er, set) {
+ if (er) return cb(er)
+ if (!set.length) return cb()
+ installAndRetest(set, filter, dir, unavoidable, silent, cb)
+ })
+ })
+}
+
+function installAndRetest (set, filter, dir, unavoidable, silent, cb) {
+ //return cb(null, set)
+ var remove = []
+
+ asyncMap(set, function (item, cb) {
+ // [name, has, loc, locMatch, regMatch, others]
+ var name = item[0]
+ var has = item[1]
+ var where = item[2]
+ var locMatch = item[3]
+ var regMatch = item[4]
+ var others = item[5]
+
+ // nothing to be done here. oh well. just a conflict.
+ if (!locMatch && !regMatch) {
+ log.warn("unavoidable conflict", item[0], item[1])
+ log.warn("unavoidable conflict", "Not de-duplicating")
+ unavoidable[item[0]] = true
+ return cb()
+ }
+
+ // nothing to do except to clean up the extraneous deps
+ if (locMatch && has[where] === locMatch) {
+ remove.push.apply(remove, others)
+ return cb()
+ }
+
+ if (regMatch) {