Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge commit 'v0.6.21' into openshift

  • Loading branch information...
commit 5be18148bada35865c7b6d13551dc0654ae8bc96 2 parents 00cbcfc + 55ddf54
@piscisaureus piscisaureus authored
Showing with 3,902 additions and 3,196 deletions.
  1. +0 −1  .gitignore
  2. +23 −1 ChangeLog
  3. +2 −2 Makefile
  4. +72 −0 benchmark/fs-readfile.js
  5. +12 −0 benchmark/http.sh
  6. +70 −39 benchmark/http_simple.js
  7. +2 −2 benchmark/io.js
  8. +11 −11 deps/npm/.npmignore
  9. +5 −0 deps/npm/AUTHORS
  10. +5 −0 deps/npm/LICENSE
  11. +0 −6 deps/npm/README.md
  12. +10 −3 deps/npm/bin/npm
  13. +6 −6 deps/npm/bin/npm-cli.js
  14. +1 −1  deps/npm/bin/read-package-json.js
  15. +5 −16 deps/npm/doc/cli/coding-style.md
  16. +103 −45 deps/npm/doc/cli/config.md
  17. +1 −0  deps/npm/doc/cli/init.md
  18. +1 −1  deps/npm/doc/cli/install.md
  19. +17 −2 deps/npm/doc/cli/json.md
  20. +13 −7 deps/npm/doc/cli/list.md
  21. +1 −1  deps/npm/html/api/bin.html
  22. +1 −1  deps/npm/html/api/bugs.html
  23. +1 −1  deps/npm/html/api/commands.html
  24. +1 −1  deps/npm/html/api/config.html
  25. +1 −1  deps/npm/html/api/deprecate.html
  26. +1 −1  deps/npm/html/api/docs.html
  27. +1 −1  deps/npm/html/api/edit.html
  28. +1 −1  deps/npm/html/api/explore.html
  29. +1 −1  deps/npm/html/api/help-search.html
  30. +1 −1  deps/npm/html/api/init.html
  31. +1 −1  deps/npm/html/api/install.html
  32. +1 −1  deps/npm/html/api/link.html
  33. +1 −1  deps/npm/html/api/load.html
  34. +1 −1  deps/npm/html/api/ls.html
  35. +2 −2 deps/npm/html/api/npm.html
  36. +1 −1  deps/npm/html/api/outdated.html
  37. +1 −1  deps/npm/html/api/owner.html
  38. +1 −1  deps/npm/html/api/pack.html
  39. +1 −1  deps/npm/html/api/prefix.html
  40. +1 −1  deps/npm/html/api/prune.html
  41. +1 −1  deps/npm/html/api/publish.html
  42. +1 −1  deps/npm/html/api/rebuild.html
  43. +1 −1  deps/npm/html/api/restart.html
  44. +1 −1  deps/npm/html/api/root.html
  45. +1 −1  deps/npm/html/api/run-script.html
  46. +1 −1  deps/npm/html/api/search.html
  47. +1 −1  deps/npm/html/api/shrinkwrap.html
  48. +1 −1  deps/npm/html/api/start.html
  49. +1 −1  deps/npm/html/api/stop.html
  50. +1 −1  deps/npm/html/api/submodule.html
  51. +1 −1  deps/npm/html/api/tag.html
  52. +1 −1  deps/npm/html/api/test.html
  53. +1 −1  deps/npm/html/api/uninstall.html
  54. +1 −1  deps/npm/html/api/unpublish.html
  55. +1 −1  deps/npm/html/api/update.html
  56. +1 −1  deps/npm/html/api/version.html
  57. +1 −1  deps/npm/html/api/view.html
  58. +1 −1  deps/npm/html/api/whoami.html
  59. +2 −8 deps/npm/html/doc/README.html
  60. +1 −1  deps/npm/html/doc/adduser.html
  61. +1 −1  deps/npm/html/doc/bin.html
  62. +1 −1  deps/npm/html/doc/bugs.html
  63. +1 −1  deps/npm/html/doc/build.html
  64. +1 −1  deps/npm/html/doc/bundle.html
  65. +1 −1  deps/npm/html/doc/cache.html
  66. +1 −1  deps/npm/html/doc/changelog.html
  67. +6 −17 deps/npm/html/doc/coding-style.html
  68. +1 −1  deps/npm/html/doc/completion.html
  69. +93 −42 deps/npm/html/doc/config.html
  70. +1 −1  deps/npm/html/doc/deprecate.html
  71. +1 −1  deps/npm/html/doc/developers.html
  72. +1 −1  deps/npm/html/doc/disputes.html
  73. +1 −1  deps/npm/html/doc/docs.html
  74. +1 −1  deps/npm/html/doc/edit.html
  75. +1 −1  deps/npm/html/doc/explore.html
  76. +1 −1  deps/npm/html/doc/faq.html
  77. +1 −1  deps/npm/html/doc/folders.html
  78. +1 −1  deps/npm/html/doc/help-search.html
  79. +1 −1  deps/npm/html/doc/help.html
  80. +1 −1  deps/npm/html/doc/index.html
  81. +2 −2 deps/npm/html/doc/init.html
  82. +2 −2 deps/npm/html/doc/install.html
  83. +18 −3 deps/npm/html/doc/json.html
  84. +1 −1  deps/npm/html/doc/link.html
  85. +14 −8 deps/npm/html/doc/list.html
  86. +2 −2 deps/npm/html/doc/npm.html
  87. +1 −1  deps/npm/html/doc/outdated.html
  88. +1 −1  deps/npm/html/doc/owner.html
  89. +1 −1  deps/npm/html/doc/pack.html
  90. +1 −1  deps/npm/html/doc/prefix.html
  91. +1 −1  deps/npm/html/doc/prune.html
  92. +1 −1  deps/npm/html/doc/publish.html
  93. +1 −1  deps/npm/html/doc/rebuild.html
  94. +1 −1  deps/npm/html/doc/registry.html
  95. +1 −1  deps/npm/html/doc/removing-npm.html
  96. +1 −1  deps/npm/html/doc/restart.html
  97. +1 −1  deps/npm/html/doc/root.html
  98. +1 −1  deps/npm/html/doc/run-script.html
  99. +1 −1  deps/npm/html/doc/scripts.html
  100. +1 −1  deps/npm/html/doc/search.html
  101. +1 −1  deps/npm/html/doc/semver.html
  102. +1 −1  deps/npm/html/doc/shrinkwrap.html
  103. +1 −1  deps/npm/html/doc/star.html
  104. +1 −1  deps/npm/html/doc/start.html
  105. +1 −1  deps/npm/html/doc/stop.html
  106. +1 −1  deps/npm/html/doc/submodule.html
  107. +1 −1  deps/npm/html/doc/tag.html
  108. +1 −1  deps/npm/html/doc/test.html
  109. +1 −1  deps/npm/html/doc/uninstall.html
  110. +1 −1  deps/npm/html/doc/unpublish.html
  111. +1 −1  deps/npm/html/doc/update.html
  112. +1 −1  deps/npm/html/doc/version.html
  113. +1 −1  deps/npm/html/doc/view.html
  114. +1 −1  deps/npm/html/doc/whoami.html
  115. +11 −18 deps/npm/html/style.css
  116. +62 −27 deps/npm/lib/adduser.js
  117. +8 −8 deps/npm/lib/bugs.js
  118. +10 −10 deps/npm/lib/build.js
  119. +280 −123 deps/npm/lib/cache.js
  120. +9 −2 deps/npm/lib/config.js
  121. +3 −4 deps/npm/lib/deprecate.js
  122. +5 −5 deps/npm/lib/docs.js
  123. +0 −1  deps/npm/lib/edit.js
  124. +5 −2 deps/npm/lib/help-search.js
  125. +3 −1 deps/npm/lib/help.js
  126. +12 −215 deps/npm/lib/init.js
  127. +84 −49 deps/npm/lib/install.js
  128. +22 −15 deps/npm/lib/link.js
  129. +68 −21 deps/npm/lib/ls.js
  130. +59 −21 deps/npm/lib/npm.js
  131. +9 −8 deps/npm/lib/outdated.js
  132. +37 −25 deps/npm/lib/owner.js
  133. +1 −2  deps/npm/lib/pack.js
  134. +2 −2 deps/npm/lib/prune.js
  135. +16 −79 deps/npm/lib/publish.js
  136. +6 −6 deps/npm/lib/rebuild.js
  137. +0 −1  deps/npm/lib/root.js
  138. +3 −5 deps/npm/lib/run-script.js
  139. +2 −3 deps/npm/lib/search.js
  140. +3 −3 deps/npm/lib/shrinkwrap.js
  141. +4 −4 deps/npm/lib/star.js
  142. +0 −1  deps/npm/lib/submodule.js
  143. +12 −2 deps/npm/lib/substack.js
  144. +2 −1  deps/npm/lib/tag.js
  145. +14 −1 deps/npm/lib/test.js
  146. +7 −4 deps/npm/lib/unbuild.js
  147. +71 −4 deps/npm/lib/uninstall.js
  148. +8 −4 deps/npm/lib/unpublish.js
  149. +2 −2 deps/npm/lib/update.js
  150. +30 −12 deps/npm/lib/utils/cmd-shim.js
  151. +13 −2 deps/npm/lib/utils/completion.sh
  152. +8 −11 deps/npm/lib/utils/completion/file-completion.js
  153. +3 −3 deps/npm/lib/utils/completion/installed-deep.js
  154. +1 −1  deps/npm/lib/utils/completion/installed-shallow.js
  155. +3 −2 deps/npm/lib/utils/completion/remote-packages.js
  156. +7 −6 deps/npm/lib/utils/completion/users.js
  157. +52 −52 deps/npm/lib/utils/config-defs.js
  158. +79 −79 deps/npm/lib/utils/error-handler.js
  159. +3 −37 deps/npm/lib/utils/exec.js
  160. +32 −17 deps/npm/lib/utils/fetch.js
  161. +0 −53 deps/npm/lib/utils/find.js
  162. +4 −4 deps/npm/lib/utils/ini.js
  163. +15 −17 deps/npm/lib/utils/lifecycle.js
  164. +12 −3 deps/npm/lib/utils/link.js
  165. +0 −75 deps/npm/lib/utils/load-package-defaults.js
  166. +0 −170 deps/npm/lib/utils/log.js
  167. +0 −100 deps/npm/lib/utils/npm-registry-client/adduser.js
  168. +0 −16 deps/npm/lib/utils/npm-registry-client/index.js
  169. +0 −170 deps/npm/lib/utils/npm-registry-client/publish.js
  170. +0 −245 deps/npm/lib/utils/npm-registry-client/request.js
  171. +0 −32 deps/npm/lib/utils/npm-registry-client/star.js
  172. +0 −8 deps/npm/lib/utils/npm-registry-client/tag.js
  173. +0 −98 deps/npm/lib/utils/npm-registry-client/unpublish.js
  174. +0 −39 deps/npm/lib/utils/promise-chain.js
  175. +0 −580 deps/npm/lib/utils/read-json.js
  176. +0 −81 deps/npm/lib/utils/relativize.js
  177. +10 −7 deps/npm/lib/utils/sha.js
  178. +91 −39 deps/npm/lib/utils/tar.js
  179. +17 −8 deps/npm/lib/version.js
  180. +5 −11 deps/npm/lib/view.js
  181. +0 −1  deps/npm/lib/whoami.js
  182. +5 −3 deps/npm/lib/xmas.js
  183. +1 −8 deps/npm/man/man1/README.1
  184. +1 −1  deps/npm/man/man1/adduser.1
  185. +1 −1  deps/npm/man/man1/bin.1
  186. +1 −1  deps/npm/man/man1/bugs.1
  187. +1 −1  deps/npm/man/man1/build.1
  188. +1 −1  deps/npm/man/man1/bundle.1
  189. +1 −1  deps/npm/man/man1/cache.1
  190. +1 −1  deps/npm/man/man1/changelog.1
  191. +7 −25 deps/npm/man/man1/coding-style.1
  192. +1 −1  deps/npm/man/man1/completion.1
  193. +162 −66 deps/npm/man/man1/config.1
  194. +1 −1  deps/npm/man/man1/deprecate.1
  195. +1 −1  deps/npm/man/man1/developers.1
  196. +1 −1  deps/npm/man/man1/disputes.1
  197. +1 −1  deps/npm/man/man1/docs.1
  198. +1 −1  deps/npm/man/man1/edit.1
  199. +1 −1  deps/npm/man/man1/explore.1
  200. +1 −1  deps/npm/man/man1/faq.1
  201. +1 −1  deps/npm/man/man1/folders.1
  202. +1 −1  deps/npm/man/man1/help-search.1
  203. +1 −1  deps/npm/man/man1/help.1
  204. +1 −1  deps/npm/man/man1/index.1
  205. +4 −1 deps/npm/man/man1/init.1
  206. +2 −2 deps/npm/man/man1/install.1
  207. +19 −3 deps/npm/man/man1/json.1
  208. +1 −1  deps/npm/man/man1/link.1
  209. +21 −8 deps/npm/man/man1/list.1
  210. +2 −2 deps/npm/man/man1/npm.1
  211. +1 −1  deps/npm/man/man1/outdated.1
  212. +1 −1  deps/npm/man/man1/owner.1
  213. +1 −1  deps/npm/man/man1/pack.1
  214. +1 −1  deps/npm/man/man1/prefix.1
  215. +1 −1  deps/npm/man/man1/prune.1
  216. +1 −1  deps/npm/man/man1/publish.1
  217. +1 −1  deps/npm/man/man1/rebuild.1
  218. +1 −1  deps/npm/man/man1/registry.1
  219. +1 −1  deps/npm/man/man1/removing-npm.1
  220. +1 −1  deps/npm/man/man1/restart.1
  221. +1 −1  deps/npm/man/man1/root.1
  222. +1 −1  deps/npm/man/man1/run-script.1
  223. +1 −1  deps/npm/man/man1/scripts.1
  224. +1 −1  deps/npm/man/man1/search.1
  225. +1 −1  deps/npm/man/man1/semver.1
  226. +1 −1  deps/npm/man/man1/shrinkwrap.1
  227. +1 −1  deps/npm/man/man1/star.1
  228. +1 −1  deps/npm/man/man1/start.1
  229. +1 −1  deps/npm/man/man1/stop.1
  230. +1 −1  deps/npm/man/man1/submodule.1
  231. +1 −1  deps/npm/man/man1/tag.1
  232. +1 −1  deps/npm/man/man1/test.1
  233. +1 −1  deps/npm/man/man1/uninstall.1
  234. +1 −1  deps/npm/man/man1/unpublish.1
  235. +1 −1  deps/npm/man/man1/update.1
  236. +1 −1  deps/npm/man/man1/version.1
  237. +1 −1  deps/npm/man/man1/view.1
  238. +1 −1  deps/npm/man/man1/whoami.1
  239. +1 −1  deps/npm/man/man3/bin.3
  240. +1 −1  deps/npm/man/man3/bugs.3
  241. +1 −1  deps/npm/man/man3/commands.3
  242. +1 −1  deps/npm/man/man3/config.3
  243. +1 −1  deps/npm/man/man3/deprecate.3
  244. +1 −1  deps/npm/man/man3/docs.3
  245. +1 −1  deps/npm/man/man3/edit.3
  246. +1 −1  deps/npm/man/man3/explore.3
  247. +1 −1  deps/npm/man/man3/help-search.3
  248. +1 −1  deps/npm/man/man3/init.3
  249. +1 −1  deps/npm/man/man3/install.3
  250. +1 −1  deps/npm/man/man3/link.3
  251. +1 −1  deps/npm/man/man3/load.3
  252. +1 −1  deps/npm/man/man3/ls.3
  253. +2 −2 deps/npm/man/man3/npm.3
  254. +1 −1  deps/npm/man/man3/outdated.3
  255. +1 −1  deps/npm/man/man3/owner.3
  256. +1 −1  deps/npm/man/man3/pack.3
  257. +1 −1  deps/npm/man/man3/prefix.3
  258. +1 −1  deps/npm/man/man3/prune.3
  259. +1 −1  deps/npm/man/man3/publish.3
  260. +1 −1  deps/npm/man/man3/rebuild.3
  261. +1 −1  deps/npm/man/man3/restart.3
  262. +1 −1  deps/npm/man/man3/root.3
  263. +1 −1  deps/npm/man/man3/run-script.3
  264. +1 −1  deps/npm/man/man3/search.3
  265. +1 −1  deps/npm/man/man3/shrinkwrap.3
  266. +1 −1  deps/npm/man/man3/start.3
  267. +1 −1  deps/npm/man/man3/stop.3
  268. +1 −1  deps/npm/man/man3/submodule.3
  269. +1 −1  deps/npm/man/man3/tag.3
  270. +1 −1  deps/npm/man/man3/test.3
  271. +1 −1  deps/npm/man/man3/uninstall.3
  272. +1 −1  deps/npm/man/man3/unpublish.3
  273. +1 −1  deps/npm/man/man3/update.3
  274. +1 −1  deps/npm/man/man3/version.3
  275. +1 −1  deps/npm/man/man3/view.3
  276. +1 −1  deps/npm/man/man3/whoami.3
  277. 0  deps/npm/node_modules/{node-gyp/node_modules → }/ansi/.npmignore
  278. +21 −11 deps/npm/node_modules/{node-gyp/node_modules → }/ansi/README.md
  279. +368 −0 deps/npm/node_modules/ansi/lib/ansi.js
  280. +71 −0 deps/npm/node_modules/ansi/lib/newlines.js
  281. +15 −7 deps/npm/node_modules/{node-gyp/node_modules → }/ansi/package.json
  282. 0  deps/npm/node_modules/{node-gyp/node_modules/glob → chownr}/LICENCE
  283. +241 −0 deps/npm/node_modules/couch-login/README.md
  284. +287 −0 deps/npm/node_modules/couch-login/couch-login.js
  285. +27 −0 deps/npm/node_modules/couch-login/package.json
  286. +25 −0 deps/npm/node_modules/fstream-npm/LICENCE
  287. 0  deps/npm/node_modules/{node-gyp/node_modules → }/glob/.npmignore
  288. 0  deps/npm/node_modules/{node-gyp/node_modules → }/glob/.travis.yml
  289. +25 −0 deps/npm/node_modules/glob/LICENCE
  290. 0  deps/npm/node_modules/{node-gyp/node_modules → }/glob/README.md
  291. +1 −1  deps/npm/node_modules/{node-gyp/node_modules → }/glob/glob.js
  292. +35 −0 deps/npm/node_modules/glob/package.json
  293. +43 −0 deps/npm/node_modules/init-package-json/README.md
  294. +178 −0 deps/npm/node_modules/init-package-json/default-input.js
  295. +104 −0 deps/npm/node_modules/init-package-json/init-package-json.js
  296. +1 −0  deps/npm/node_modules/init-package-json/node_modules/promzard/.npmignore
  297. +130 −0 deps/npm/node_modules/init-package-json/node_modules/promzard/README.md
  298. +11 −0 deps/npm/node_modules/init-package-json/node_modules/promzard/example/index.js
  299. +8 −0 deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/README.md
  300. +191 −0 deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init-input.js
Sorry, we could not display the entire diff because too many files (462) changed.
View
1  .gitignore
@@ -40,4 +40,3 @@ ipch/
email.md
blog.html
deps/v8-*
-node_modules
View
24 ChangeLog
@@ -1,4 +1,26 @@
-2012.06.06 Version 0.6.19 (stable)
+2012.08.03 Version 0.6.21 (maintenance)
+
+* sunos: work around OS bug to prevent fs.watch() from spinning (Bryan Cantrill)
+
+* net: make pause/resume work with connecting sockets (Bert Belder)
+
+
+2012.07.10 Version 0.6.20 (maintenance), 952e513379169ec1b40909d1db056e9bf4294899
+
+* npm: Upgrade to 1.1.37 (isaacs)
+
+* benchmark: Backport improvements made in master (isaacs)
+
+* build: always link with -lz (Trent Mick)
+
+* core: use proper #include directives (Ben Noordhuis)
+
+* cluster: don't silently drop messages when the write queue gets big (Bert Belder)
+
+* windows: don't print error when GetConsoleTitleW returns an empty string (Bert Belder)
+
+
+2012.06.06 Version 0.6.19 (stable), debf552ed2d4a53957446e82ff3c52a8182d5ff4
* npm: upgrade to 1.1.24
View
4 Makefile
@@ -209,9 +209,9 @@ $(PKG):
$(TARBALL): out/doc
git archive --format=tar --prefix=$(TARNAME)/ HEAD | tar xf -
- mkdir -p $(TARNAME)/doc
+ mkdir -p $(TARNAME)/doc/api
cp doc/node.1 $(TARNAME)/doc/node.1
- cp -r out/doc/api $(TARNAME)/doc/api
+ cp -r out/doc/api/* $(TARNAME)/doc/api/
rm -rf $(TARNAME)/deps/v8/test # too big
rm -rf $(TARNAME)/doc/images # too big
tar -cf $(TARNAME).tar $(TARNAME)
View
72 benchmark/fs-readfile.js
@@ -0,0 +1,72 @@
+// Call fs.readFile over and over again really fast.
+// Then see how many times it got called.
+// Yes, this is a silly benchmark. Most benchmarks are silly.
+
+var path = require('path');
+var filename = path.resolve(__dirname, 'http.sh');
+var fs = require('fs');
+var count = 0;
+var go = true;
+var len = -1;
+var assert = require('assert');
+
+var concurrency = 1;
+var encoding = null;
+var time = 10;
+
+for (var i = 2; i < process.argv.length; i++) {
+ var arg = process.argv[i];
+ if (arg.match(/^-e$/)) {
+ encoding = process.argv[++i] || null;
+ } else if (arg.match(/^-c$/)) {
+ concurrency = ~~process.argv[++i];
+ if (concurrency < 1) concurrency = 1;
+ } else if (arg === '-t') {
+ time = ~~process.argv[++i];
+ if (time < 1) time = 1;
+ }
+}
+
+
+setTimeout(function() {
+ go = false;
+}, time * 1000);
+
+function round(n) {
+ return Math.floor(n * 100) / 100;
+}
+
+var start = Date.now();
+while (concurrency--) readFile();
+
+function readFile() {
+ if (!go) {
+ process.stdout.write('\n');
+ console.log('read the file %d times (higher is better)', count);
+ var end = Date.now();
+ var elapsed = (end - start) / 1000;
+ var ns = elapsed * 1E9;
+ var nsper = round(ns / count);
+ console.log('%d ns per read (lower is better)', nsper);
+ var readsper = round(count / (ns / 1E9));
+ console.log('%d reads per sec (higher is better)', readsper);
+ process.exit(0);
+ return;
+ }
+
+ if (!(count % 1000)) {
+ process.stdout.write('.');
+ }
+
+ if (encoding) fs.readFile(filename, encoding, then);
+ else fs.readFile(filename, then);
+
+ function then(er, data) {
+ assert.ifError(er);
+ count++;
+ // basic sanity test: we should get the same number of bytes each time.
+ if (count === 1) len = data.length;
+ else assert(len === data.length);
+ readFile();
+ }
+}
View
12 benchmark/http.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+cd "$(dirname "$(dirname $0)")"
+sudo sysctl -w net.inet.ip.portrange.first=12000
+sudo sysctl -w net.inet.tcp.msl=1000
+sudo sysctl -w kern.maxfiles=1000000 kern.maxfilesperproc=1000000
+ulimit -n 100000
+
+./node benchmark/http_simple.js || exit 1 &
+sleep 1
+
+ab -n 30000 -c 100 http://127.0.0.1:8000/${TYPE:-bytes}/${LENGTH:-1024} | grep Req
+killall node
View
109 benchmark/http_simple.js
@@ -1,75 +1,99 @@
-path = require("path");
-exec = require("child_process").exec;
-http = require("http");
+var path = require('path'),
+ exec = require('child_process').exec,
+ http = require('http');
-port = parseInt(process.env.PORT || 8000);
+var port = parseInt(process.env.PORT || 8000);
console.log('pid ' + process.pid);
-fixed = ""
-for (var i = 0; i < 20*1024; i++) {
- fixed += "C";
+var fixed = makeString(20 * 1024, 'C'),
+ storedBytes = {},
+ storedBuffer = {},
+ storedUnicode = {};
+
+var useDomains = process.env.NODE_USE_DOMAINS;
+
+// set up one global domain.
+if (useDomains) {
+ var domain = require('domain');
+ var gdom = domain.create();
+ gdom.on('error', function(er) {
+ console.log('Error on global domain', er);
+ throw er;
+ });
+ gdom.enter();
}
-stored = {};
-storedBuffer = {};
-
var server = http.createServer(function (req, res) {
- var commands = req.url.split("/");
+ if (useDomains) {
+ var dom = domain.create();
+ dom.add(req);
+ dom.add(res);
+ }
+
+ var commands = req.url.split('/');
var command = commands[1];
- var body = "";
+ var body = '';
var arg = commands[2];
var n_chunks = parseInt(commands[3], 10);
var status = 200;
- if (command == "bytes") {
- var n = parseInt(arg, 10)
+ if (command == 'bytes') {
+ var n = ~~arg;
if (n <= 0)
- throw "bytes called with n <= 0"
- if (stored[n] === undefined) {
- console.log("create stored[n]");
- stored[n] = "";
- for (var i = 0; i < n; i++) {
- stored[n] += "C"
- }
+ throw new Error('bytes called with n <= 0')
+ if (storedBytes[n] === undefined) {
+ console.log('create storedBytes[n]');
+ storedBytes[n] = makeString(n, 'C');
}
- body = stored[n];
+ body = storedBytes[n];
- } else if (command == "buffer") {
- var n = parseInt(arg, 10)
- if (n <= 0) throw new Error("bytes called with n <= 0");
+ } else if (command == 'buffer') {
+ var n = ~~arg;
+ if (n <= 0)
+ throw new Error('buffer called with n <= 0');
if (storedBuffer[n] === undefined) {
- console.log("create storedBuffer[n]");
+ console.log('create storedBuffer[n]');
storedBuffer[n] = new Buffer(n);
for (var i = 0; i < n; i++) {
- storedBuffer[n][i] = "C".charCodeAt(0);
+ storedBuffer[n][i] = 'C'.charCodeAt(0);
}
}
body = storedBuffer[n];
- } else if (command == "quit") {
+ } else if (command == 'unicode') {
+ var n = ~~arg;
+ if (n <= 0)
+ throw new Error('unicode called with n <= 0');
+ if (storedUnicode[n] === undefined) {
+ console.log('create storedUnicode[n]');
+ storedUnicode[n] = makeString(n, '\u263A');
+ }
+ body = storedUnicode[n];
+
+ } else if (command == 'quit') {
res.connection.server.close();
- body = "quitting";
+ body = 'quitting';
- } else if (command == "fixed") {
+ } else if (command == 'fixed') {
body = fixed;
- } else if (command == "echo") {
- res.writeHead(200, { "Content-Type": "text/plain",
- "Transfer-Encoding": "chunked" });
+ } else if (command == 'echo') {
+ res.writeHead(200, { 'Content-Type': 'text/plain',
+ 'Transfer-Encoding': 'chunked' });
req.pipe(res);
return;
} else {
status = 404;
- body = "not found\n";
+ body = 'not found\n';
}
// example: http://localhost:port/bytes/512/4
// sends a 512 byte body in 4 chunks of 128 bytes
if (n_chunks > 0) {
- res.writeHead(status, { "Content-Type": "text/plain",
- "Transfer-Encoding": "chunked" });
+ res.writeHead(status, { 'Content-Type': 'text/plain',
+ 'Transfer-Encoding': 'chunked' });
// send body in chunks
var len = body.length;
var step = ~~(len / n_chunks) || len;
@@ -82,13 +106,20 @@ var server = http.createServer(function (req, res) {
} else {
var content_length = body.length.toString();
- res.writeHead(status, { "Content-Type": "text/plain",
- "Content-Length": content_length });
+ res.writeHead(status, { 'Content-Type': 'text/plain',
+ 'Content-Length': content_length });
res.end(body);
}
-
});
+function makeString(size, c) {
+ var s = '';
+ while (s.length < size) {
+ s += c;
+ }
+ return s;
+}
+
server.listen(port, function () {
console.log('Listening at http://127.0.0.1:'+port+'/');
});
View
4 benchmark/io.js
@@ -62,7 +62,7 @@ function readtest(size, bsize) {
function wt(tsize, bsize, done) {
var start = Date.now();
- s = writetest(tsize, bsizes[0]);
+ s = writetest(tsize, bsize);
s.addListener('close', function() {
var end = Date.now();
var diff = end - start;
@@ -73,7 +73,7 @@ function wt(tsize, bsize, done) {
function rt(tsize, bsize, done) {
var start = Date.now();
- s = readtest(tsize, bsizes[0]);
+ s = readtest(tsize, bsize);
s.addListener('close', function() {
var end = Date.now();
var diff = end - start;
View
22 deps/npm/.npmignore
@@ -1,16 +1,16 @@
*.swp
-test/bin
-test/output.log
-test/packages/*/node_modules
-test/packages/npm-test-depends-on-spark/which-spark.log
-test/packages/test-package/random-data.txt
-test/root
-node_modules/ronn
-node_modules/.bin
npm-debug.log
-./npmrc
-.gitignore
-release/
+/test/bin
+/test/output.log
+/test/packages/*/node_modules
+/test/packages/npm-test-depends-on-spark/which-spark.log
+/test/packages/test-package/random-data.txt
+/test/root
+/node_modules/ronn
+/node_modules/tap
+/node_modules/.bin
+/npmrc
+/release/
# don't need these in the npm package.
html/*.png
View
5 deps/npm/AUTHORS
@@ -66,3 +66,8 @@ Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>
Dalmais Maxence <github@maxired.fr>
Marcus Ekwall <marcus.ekwall@gmail.com>
Aaron Stacy <aaron.r.stacy@gmail.com>
+Phillip Howell <phowell@cothm.org>
+Domenic Denicola <domenic@domenicdenicola.com>
+James Halliday <mail@substack.net>
+Jeremy Cantrell <jmcantrell@gmail.com>
+Ribettes <patlogan29@gmail.com>
View
5 deps/npm/LICENSE
@@ -49,6 +49,11 @@ and are not covered by this license.
"npm Logo" created by Mathias Pettersson and Brian Hammond,
used with permission.
+"Gubblebum Blocky" font
+Copyright (c) 2007 by Tjarda Koster, http://jelloween.deviantart.com
+included for use in the npm website and documentation,
+used with permission.
+
This program uses "node-uuid", Copyright (c) 2010 Robert Kieffer,
according to the terms of the MIT license.
View
6 deps/npm/README.md
@@ -89,21 +89,15 @@ To install the latest **unstable** development version from git:
git clone https://github.com/isaacs/npm.git
cd npm
- git submodule update --init --recursive
sudo make install # (or: `node cli.js install -gf`)
If you're sitting in the code folder reading this document in your
terminal, then you've already got the code. Just do:
- git submodule update --init --recursive
sudo make install
and npm will install itself.
-Note that github tarballs **do not contain submodules**, so
-those won't work. You'll have to also fetch the appropriate submodules
-listed in the .gitmodules file.
-
## Permissions when Using npm to Install Other Stuff
**tl;dr**
View
13 deps/npm/bin/npm
@@ -1,6 +1,13 @@
#!/bin/sh
-if [ -x "`dirname "$0"`/node.exe" ]; then
- "`dirname "$0"`/node.exe" "`dirname "$0"`/node_modules/npm/bin/npm-cli.js" "$@"
+
+basedir=`dirname "$0"`
+
+case `uname` in
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node.exe" ]; then
+ "$basedir/node.exe" "$basedir/node_modules/npm/bin/npm-cli.js" "$@"
else
- node "`dirname "$0"`/node_modules/npm/bin/npm-cli.js" "$@"
+ node "$basedir/node_modules/npm/bin/npm-cli.js" "$@"
fi
View
12 deps/npm/bin/npm-cli.js
@@ -15,9 +15,9 @@ if (typeof WScript !== "undefined") {
process.title = "npm"
-var log = require("../lib/utils/log.js")
-log.waitForConfig()
-log.info("ok", "it worked if it ends with")
+var log = require("npmlog")
+log.pause() // will be unpaused when config is loaded.
+log.info("it worked if it ends with", "ok")
var fs = require("graceful-fs")
, path = require("path")
@@ -36,7 +36,7 @@ if (path.basename(process.argv[1]).slice(-1) === "g") {
process.argv.splice(1, 1, "npm", "-g")
}
-log.verbose(process.argv, "cli")
+log.verbose("cli", process.argv)
var conf = nopt(types, shorthands)
npm.argv = conf.argv.remain
@@ -56,8 +56,8 @@ if (conf.versions) {
return
}
-log.info("npm@"+npm.version, "using")
-log.info("node@"+process.version, "using")
+log.info("using", "npm@%s", npm.version)
+log.info("using", "node@%s", process.version)
// make sure that this version of node works with this version of npm.
var semver = require("semver")
View
2  deps/npm/bin/read-package-json.js
@@ -6,7 +6,7 @@ if (argv.length < 3) {
var fs = require("fs")
, file = argv[2]
- , readJson = require("../lib/utils/read-json")
+ , readJson = require("read-package-json")
readJson(file, function (er, data) {
if (er) throw er
View
21 deps/npm/doc/cli/coding-style.md
@@ -129,29 +129,18 @@ Just send the error message back as the first argument to the callback.
Always create a new Error object with your message. Don't just return a
string message to the callback. Stack traces are handy.
-Use the `require("./utils/log").er` function. It takes a callback and an
-error message, and returns an object that will report the message in the
-event of a failure. It's quite handy.
-
- function myThing (args, cb) {
- getData(args, function (er, data) {
- if (er) return log.er(cb, "Couldn't get data")(er)
- doSomethingElse(data, cb)
- })
- }
- function justHasToWork (cb) {
- doSomething(log.er(cb, "the doSomething failed."))
- }
-
## Logging
+Logging is done using the [npmlog](https://github.com/isaacs/npmlog)
+utility.
+
Please clean up logs when they are no longer helpful. In particular,
logging the same object over and over again is not helpful. Logs should
report what's happening so that it's easier to track down where a fault
occurs.
-Use appropriate log levels. The default log() function logs at the
-"info" level. See `npm-config(1)` and search for "loglevel".
+Use appropriate log levels. See `npm-config(1)` and search for
+"loglevel".
## Case, naming, etc.
View
148 deps/npm/doc/cli/config.md
@@ -117,6 +117,7 @@ The following shorthands are parsed on the command-line:
* `-S`: `--save`
* `-D`: `--save-dev`
* `-O`: `--save-optional`
+* `-B`: `--save-bundle`
* `-y`: `--yes`
* `-n`: `--yes false`
* `ll` and `la` commands: `ls --long`
@@ -167,32 +168,6 @@ then the user could change the behavior by doing:
Force npm to always require authentication when accessing the registry,
even for `GET` requests.
-### bin-publish
-
-* Default: false
-* Type: Boolean
-
-If set to true, then binary packages will be created on publish.
-
-This is the way to opt into the "bindist" behavior described below.
-
-### bindist
-
-* Default: Unstable node versions, `null`, otherwise
- `"<node version>-<platform>-<os release>"`
-* Type: String or `null`
-
-Experimental: on stable versions of node, binary distributions will be
-created with this tag. If a user then installs that package, and their
-`bindist` tag is found in the list of binary distributions, they will
-get that prebuilt version.
-
-Pre-build node packages have their preinstall, install, and postinstall
-scripts stripped (since they are run prior to publishing), and do not
-have their `build` directories automatically ignored.
-
-It's yet to be seen if this is a good idea.
-
### browser
* Default: OS X: `"open"`, others: `"google-chrome"`
@@ -220,6 +195,27 @@ See also the `strict-ssl` config.
The location of npm's cache directory. See `npm-cache(1)`
+### cache-lock-stale
+
+* Default: 60000 (1 minute)
+* Type: Number
+
+The number of ms before cache folder lockfiles are considered stale.
+
+### cache-lock-retries
+
+* Default: 10
+* Type: Number
+
+Number of times to retry to acquire a lock on cache folder lockfiles.
+
+### cache-lock-wait
+
+* Default: 10000 (10 seconds)
+* Type: Number
+
+Number of ms to wait for cache lock files to expire.
+
### cache-max
* Default: Infinity
@@ -291,6 +287,15 @@ set.
The command to run for `npm edit` or `npm config edit`.
+### engine-strict
+
+* Default: false
+* Type: Boolean
+
+If set to true, then npm will stubbornly refuse to install (or even
+consider installing) any package that claims to not be compatible with
+the current Node.js version.
+
### force
* Default: false
@@ -303,6 +308,38 @@ Makes various commands more forceful.
* skips cache when requesting from the registry.
* prevents checks against clobbering non-npm files.
+### fetch-retries
+
+* Default: 2
+* Type: Number
+
+The "retries" config for the `retry` module to use when fetching
+packages from the registry.
+
+### fetch-retry-factor
+
+* Default: 10
+* Type: Number
+
+The "factor" config for the `retry` module to use when fetching
+packages.
+
+### fetch-retry-mintimeout
+
+* Default: 10000 (10 seconds)
+* Type: Number
+
+The "minTimeout" config for the `retry` module to use when fetching
+packages.
+
+### fetch-retry-maxtimeout
+
+* Default: 60000 (1 minute)
+* Type: Number
+
+The "maxTimeout" config for the `retry` module to use when fetching
+packages.
+
### git
* Default: `"git"`
@@ -375,6 +412,16 @@ Sets a User-Agent to the request header
A white-space separated list of glob patterns of files to always exclude
from packages when building tarballs.
+### init-module
+
+* Default: ~/.npm-init.js
+* Type: path
+
+A module that will be loaded by the `npm init` command. See the
+documentation for the
+[init-package-json](https://github.com/isaacs/init-package-json) module
+for more information, or npm-init(1).
+
### init.version
* Default: "0.0.0"
@@ -430,13 +477,6 @@ if one of the two conditions are met:
* the globally installed version is identical to the version that is
being installed locally.
-### logfd
-
-* Default: stderr file descriptor
-* Type: Number or Stream
-
-The location to write log output.
-
### loglevel
* Default: "http"
@@ -449,13 +489,17 @@ What level of logs to report. On failure, *all* logs are written to
Any logs of a higher level than the setting are shown.
The default is "http", which shows http, warn, and error output.
-### logprefix
+### logstream
-* Default: true on Posix, false on Windows
-* Type: Boolean
+* Default: process.stderr
+* Type: Stream
+
+This is the stream that is passed to the
+[npmlog](https://github.com/isaacs/npmlog) module at run time.
-Whether or not to prefix log messages with "npm" and the log level. See
-also "color" and "loglevel".
+It cannot be set from the command line, but if you are using npm
+programmatically, you may wish to send logs to somewhere other than
+stderr.
### long
@@ -503,13 +547,6 @@ The url to report npat test results.
A node module to `require()` when npm loads. Useful for programmatic
usage.
-### outfd
-
-* Default: standard output file descriptor
-* Type: Number or Stream
-
-Where to write "normal" output. This has no effect on log output.
-
### parseable
* Default: false
@@ -584,8 +621,23 @@ Remove failed installs.
Save installed packages to a package.json file as dependencies.
+When used with the `npm rm` command, it removes it from the dependencies
+hash.
+
Only works if there is already a package.json file present.
+### save-bundle
+
+* Default: false
+* Type: Boolean
+
+If a package would be saved at install time by the use of `--save`,
+`--save-dev`, or `--save-optional`, then also put it in the
+`bundleDependencies` list.
+
+When used with the `npm rm` command, it removes it from the
+bundledDependencies list.
+
### save-dev
* Default: false
@@ -593,6 +645,9 @@ Only works if there is already a package.json file present.
Save installed packages to a package.json file as devDependencies.
+When used with the `npm rm` command, it removes it from the devDependencies
+hash.
+
Only works if there is already a package.json file present.
### save-optional
@@ -602,6 +657,9 @@ Only works if there is already a package.json file present.
Save installed packages to a package.json file as optionalDependencies.
+When used with the `npm rm` command, it removes it from the devDependencies
+hash.
+
Only works if there is already a package.json file present.
### searchopts
View
1  deps/npm/doc/cli/init.md
@@ -20,5 +20,6 @@ without a really good reason to do so.
## SEE ALSO
+* <https://github.com/isaacs/init-package-json>
* npm-json(1)
* npm-version(1)
View
2  deps/npm/doc/cli/install.md
@@ -160,7 +160,7 @@ local copy exists on disk.
npm install sax --force
The `--global` argument will cause npm to install the package globally
-rather than locally. See `npm-global(1)`.
+rather than locally. See `npm-folders(1)`.
The `--link` argument will cause npm to link global installs into the
local space in some cases.
View
19 deps/npm/doc/cli/json.md
@@ -453,8 +453,7 @@ Entries in `optionalDependencies` will override entries of the same name in
## engines
-You can specify the version of
-node that your stuff works on:
+You can specify the version of node that your stuff works on:
{ "engines" : { "node" : ">=0.1.27 <0.1.30" } }
@@ -470,6 +469,22 @@ are capable of properly installing your program. For example:
{ "engines" : { "npm" : "~1.0.20" } }
+Note that, unless the user has set the `engine-strict` config flag, this
+field is advisory only.
+
+## engineStrict
+
+If you are sure that your module will *definitely not* run properly on
+versions of Node/npm other than those specified in the `engines` hash,
+then you can set `"engineStrict": true` in your package.json file.
+This will override the user's `engine-strict` config setting.
+
+Please do not do this unless you are really very very sure. If your
+engines hash is something overly restrictive, you can quite easily and
+inadvertently lock yourself into obscurity and prevent your users from
+updating to new versions of Node. Consider this choice carefully. If
+people abuse it, it will be removed in a future version of npm.
+
## os
You can specify which operating systems your
View
20 deps/npm/doc/cli/list.md
@@ -3,20 +3,26 @@ npm-ls(1) -- List installed packages
## SYNOPSIS
- npm list
- npm ls
- npm la
- npm ll
+ npm list [<pkg> ...]
+ npm ls [<pkg> ...]
+ npm la [<pkg> ...]
+ npm ll [<pkg> ...]
## DESCRIPTION
This command will print to stdout all the versions of packages that are
installed, as well as their dependencies, in a tree-structure.
-It does not take positional arguments, though you may set config flags
-like with any other command, such as `-g` to list global packages.
+Positional arguments are `name@version-range` identifiers, which will
+limit the results to only the paths to the packages named. Note that
+nested packages will *also* show the paths to the specified packages.
+For example, running `npm ls promzard` in npm's source tree will show:
-It will print out extraneous, missing, and invalid packages.
+ npm@@VERSION@ /path/to/npm
+ └─┬ init-package-json@0.0.4
+ └── promzard@0.1.5
+
+It will show print out extraneous, missing, and invalid packages.
When run as `ll` or `la`, it shows extended information by default.
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.24</p>
+<p id="footer">bin &mdash; npm@1.1.37</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.24</p>
+<p id="footer">bugs &mdash; npm@1.1.37</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.24</p>
+<p id="footer">commands &mdash; npm@1.1.37</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.24</p>
+<p id="footer">config &mdash; npm@1.1.37</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.24</p>
+<p id="footer">deprecate &mdash; npm@1.1.37</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.24</p>
+<p id="footer">docs &mdash; npm@1.1.37</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.24</p>
+<p id="footer">edit &mdash; npm@1.1.37</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/explore.html
@@ -24,7 +24,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>The first element in the 'args' parameter must be a package name. After that is the optional command, which can be any number of strings. All of the strings will be combined into one, space-delimited command.</p>
</div>
-<p id="footer">explore &mdash; npm@1.1.24</p>
+<p id="footer">explore &mdash; npm@1.1.37</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.24</p>
+<p id="footer">help-search &mdash; npm@1.1.37</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.24</p>
+<p id="footer">init &mdash; npm@1.1.37</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/install.html
@@ -25,7 +25,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Finally, 'callback' is a function that will be called when all packages have been
installed or when an error has been encountered.</p>
</div>
-<p id="footer">install &mdash; npm@1.1.24</p>
+<p id="footer">install &mdash; npm@1.1.37</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.24</p>
+<p id="footer">link &mdash; npm@1.1.37</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.24</p>
+<p id="footer">load &mdash; npm@1.1.37</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.24</p>
+<p id="footer">ls &mdash; npm@1.1.37</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.24</p>
+<p>1.1.37</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@@ -91,7 +91,7 @@ <h2 id="ABBREVS">ABBREVS</h2>
<pre><code>var cmd = npm.deref("unp") // cmd === "unpublish"</code></pre>
</div>
-<p id="footer">npm &mdash; npm@1.1.24</p>
+<p id="footer">npm &mdash; npm@1.1.37</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/outdated.html
@@ -19,7 +19,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>If the 'packages' parameter is left out, npm will check all packages.</p>
</div>
-<p id="footer">outdated &mdash; npm@1.1.24</p>
+<p id="footer">outdated &mdash; npm@1.1.37</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.24</p>
+<p id="footer">owner &mdash; npm@1.1.37</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.24</p>
+<p id="footer">pack &mdash; npm@1.1.37</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.24</p>
+<p id="footer">prefix &mdash; npm@1.1.37</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/prune.html
@@ -23,7 +23,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Extraneous packages are packages that are not listed on the parent
package's dependencies list.</p>
</div>
-<p id="footer">prune &mdash; npm@1.1.24</p>
+<p id="footer">prune &mdash; npm@1.1.37</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.24</p>
+<p id="footer">publish &mdash; npm@1.1.37</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.24</p>
+<p id="footer">rebuild &mdash; npm@1.1.37</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.24</p>
+<p id="footer">restart &mdash; npm@1.1.37</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.24</p>
+<p id="footer">root &mdash; npm@1.1.37</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.24</p>
+<p id="footer">run-script &mdash; npm@1.1.37</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/search.html
@@ -32,7 +32,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
and doesn't try to read your mind (it doesn't do any verb tense matching or the
like).</p>
</div>
-<p id="footer">search &mdash; npm@1.1.24</p>
+<p id="footer">search &mdash; npm@1.1.37</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/shrinkwrap.html
@@ -26,7 +26,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Finally, 'callback' is a function that will be called when the shrinkwrap has
been saved.</p>
</div>
-<p id="footer">shrinkwrap &mdash; npm@1.1.24</p>
+<p id="footer">shrinkwrap &mdash; npm@1.1.37</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.24</p>
+<p id="footer">start &mdash; npm@1.1.37</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.24</p>
+<p id="footer">stop &mdash; npm@1.1.37</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.24</p>
+<p id="footer">submodule &mdash; npm@1.1.37</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.24</p>
+<p id="footer">tag &mdash; npm@1.1.37</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.24</p>
+<p id="footer">test &mdash; npm@1.1.37</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/uninstall.html
@@ -22,7 +22,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Finally, 'callback' is a function that will be called when all packages have been
uninstalled or when an error has been encountered.</p>
</div>
-<p id="footer">uninstall &mdash; npm@1.1.24</p>
+<p id="footer">uninstall &mdash; npm@1.1.37</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.24</p>
+<p id="footer">unpublish &mdash; npm@1.1.37</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
2  deps/npm/html/api/update.html
@@ -18,7 +18,7 @@ <h2 id="SYNOPSIS">SYNOPSIS</h2>
<p>The 'packages' argument is an array of packages to update. The 'callback' parameter will be called when done or when an error occurs.</p>
</div>
-<p id="footer">update &mdash; npm@1.1.24</p>
+<p id="footer">update &mdash; npm@1.1.37</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.24</p>
+<p id="footer">version &mdash; npm@1.1.37</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.24</p>
+<p id="footer">view &mdash; npm@1.1.37</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.24</p>
+<p id="footer">whoami &mdash; npm@1.1.37</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
10 deps/npm/html/doc/README.html
@@ -96,21 +96,15 @@ <h2 id="Dev-Install">Dev Install</h2>
<pre><code>git clone https://github.com/isaacs/npm.git
cd npm
-git submodule update --init --recursive
sudo make install # (or: `node cli.js install -gf`)</code></pre>
<p>If you're sitting in the code folder reading this document in your
terminal, then you've already got the code. Just do:</p>
-<pre><code>git submodule update --init --recursive
-sudo make install</code></pre>
+<pre><code>sudo make install</code></pre>
<p>and npm will install itself.</p>
-<p>Note that github tarballs <strong>do not contain submodules</strong>, so
-those won't work. You'll have to also fetch the appropriate submodules
-listed in the .gitmodules file.</p>
-
<h2 id="Permissions-when-Using-npm-to-Install-Other-Stuff">Permissions when Using npm to Install Other Stuff</h2>
<p><strong>tl;dr</strong></p>
@@ -267,7 +261,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
-<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.24</p>
+<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.37</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.24</p>
+<p id="footer">adduser &mdash; npm@1.1.37</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.24</p>
+<p id="footer">bin &mdash; npm@1.1.37</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.24</p>
+<p id="footer">bugs &mdash; npm@1.1.37</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.24</p>
+<p id="footer">build &mdash; npm@1.1.37</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.24</p>
+<p id="footer">bundle &mdash; npm@1.1.37</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.24</p>
+<p id="footer">cache &mdash; npm@1.1.37</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.24</p>
+<p id="footer">changelog &mdash; npm@1.1.37</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
23 deps/npm/html/doc/coding-style.html
@@ -133,29 +133,18 @@ <h2 id="Errors">Errors</h2>
<p>Always create a new Error object with your message. Don't just return a
string message to the callback. Stack traces are handy.</p>
-<p>Use the <code>require("./utils/log").er</code> function. It takes a callback and an
-error message, and returns an object that will report the message in the
-event of a failure. It's quite handy.</p>
-
-<pre><code>function myThing (args, cb) {
- getData(args, function (er, data) {
- if (er) return log.er(cb, "Couldn't get data")(er)
- doSomethingElse(data, cb)
- })
-}
-function justHasToWork (cb) {
- doSomething(log.er(cb, "the doSomething failed."))
-}</code></pre>
-
<h2 id="Logging">Logging</h2>
+<p>Logging is done using the <a href="https://github.com/isaacs/npmlog">npmlog</a>
+utility.</p>
+
<p>Please clean up logs when they are no longer helpful. In particular,
logging the same object over and over again is not helpful. Logs should
report what's happening so that it's easier to track down where a fault
occurs.</p>
-<p>Use appropriate log levels. The default log() function logs at the
-"info" level. See <code><a href="../doc/config.html">config(1)</a></code> and search for "loglevel".</p>
+<p>Use appropriate log levels. See <code><a href="../doc/config.html">config(1)</a></code> and search for
+"loglevel".</p>
<h2 id="Case-naming-etc">Case, naming, etc.</h2>
@@ -191,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.24</p>
+<p id="footer">coding-style &mdash; npm@1.1.37</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.24</p>
+<p id="footer">completion &mdash; npm@1.1.37</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
View
135 deps/npm/html/doc/config.html
@@ -105,7 +105,7 @@ <h2 id="Shorthands-and-Other-CLI-Niceties">Shorthands and Other CLI Niceties</h2
<p>The following shorthands are parsed on the command-line:</p>
-<ul><li><code>-v</code>: <code>--version</code></li><li><code>-h</code>, <code>-?</code>, <code>--help</code>, <code>-H</code>: <code>--usage</code></li><li><code>-s</code>, <code>--silent</code>: <code>--loglevel silent</code></li><li><code>-q</code>, <code>--quiet</code>: <code>--loglevel warn</code></li><li><code>-d</code>: <code>--loglevel info</code></li><li><code>-dd</code>, <code>--verbose</code>: <code>--loglevel verbose</code></li><li><code>-ddd</code>: <code>--loglevel silly</code></li><li><code>-g</code>: <code>--global</code></li><li><code>-l</code>: <code>--long</code></li><li><code>-m</code>: <code>--message</code></li><li><code>-p</code>, <code>--porcelain</code>: <code>--parseable</code></li><li><code>-reg</code>: <code>--registry</code></li><li><code>-v</code>: <code>--version</code></li><li><code>-f</code>: <code>--force</code></li><li><code>-l</code>: <code>--long</code></li><li><code>-desc</code>: <code>--description</code></li><li><code>-S</code>: <code>--save</code></li><li><code>-D</code>: <code>--save-dev</code></li><li><code>-O</code>: <code>--save-optional</code></li><li><code>-y</code>: <code>--yes</code></li><li><code>-n</code>: <code>--yes false</code></li><li><code>ll</code> and <code>la</code> commands: <code>ls --long</code></li></ul>
+<ul><li><code>-v</code>: <code>--version</code></li><li><code>-h</code>, <code>-?</code>, <code>--help</code>, <code>-H</code>: <code>--usage</code></li><li><code>-s</code>, <code>--silent</code>: <code>--loglevel silent</code></li><li><code>-q</code>, <code>--quiet</code>: <code>--loglevel warn</code></li><li><code>-d</code>: <code>--loglevel info</code></li><li><code>-dd</code>, <code>--verbose</code>: <code>--loglevel verbose</code></li><li><code>-ddd</code>: <code>--loglevel silly</code></li><li><code>-g</code>: <code>--global</code></li><li><code>-l</code>: <code>--long</code></li><li><code>-m</code>: <code>--message</code></li><li><code>-p</code>, <code>--porcelain</code>: <code>--parseable</code></li><li><code>-reg</code>: <code>--registry</code></li><li><code>-v</code>: <code>--version</code></li><li><code>-f</code>: <code>--force</code></li><li><code>-l</code>: <code>--long</code></li><li><code>-desc</code>: <code>--description</code></li><li><code>-S</code>: <code>--save</code></li><li><code>-D</code>: <code>--save-dev</code></li><li><code>-O</code>: <code>--save-optional</code></li><li><code>-B</code>: <code>--save-bundle</code></li><li><code>-y</code>: <code>--yes</code></li><li><code>-n</code>: <code>--yes false</code></li><li><code>ll</code> and <code>la</code> commands: <code>ls --long</code></li></ul>
<p>If the specified configuration param resolves unambiguously to a known
configuration parameter, then it is expanded to that configuration
@@ -152,30 +152,6 @@ <h3 id="always-auth">always-auth</h3>
<p>Force npm to always require authentication when accessing the registry,
even for <code>GET</code> requests.</p>
-<h3 id="bin-publish">bin-publish</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>If set to true, then binary packages will be created on publish.</p>
-
-<p>This is the way to opt into the "bindist" behavior described below.</p>
-
-<h3 id="bindist">bindist</h3>
-
-<ul><li>Default: Unstable node versions, <code>null</code>, otherwise
-<code>"&lt;node version&gt;-&lt;platform&gt;-&lt;os release&gt;"</code></li><li>Type: String or <code>null</code></li></ul>
-
-<p>Experimental: on stable versions of node, binary distributions will be
-created with this tag. If a user then installs that package, and their
-<code>bindist</code> tag is found in the list of binary distributions, they will
-get that prebuilt version.</p>
-
-<p>Pre-build node packages have their preinstall, install, and postinstall
-scripts stripped (since they are run prior to publishing), and do not
-have their <code>build</code> directories automatically ignored.</p>
-
-<p>It's yet to be seen if this is a good idea.</p>
-
<h3 id="browser">browser</h3>
<ul><li>Default: OS X: <code>"open"</code>, others: <code>"google-chrome"</code></li><li>Type: String</li></ul>
@@ -200,6 +176,24 @@ <h3 id="cache">cache</h3>
<p>The location of npm's cache directory. See <code><a href="../doc/cache.html">cache(1)</a></code></p>
+<h3 id="cache-lock-stale">cache-lock-stale</h3>
+
+<ul><li>Default: 60000 (1 minute)</li><li>Type: Number</li></ul>
+
+<p>The number of ms before cache folder lockfiles are considered stale.</p>
+
+<h3 id="cache-lock-retries">cache-lock-retries</h3>
+
+<ul><li>Default: 10</li><li>Type: Number</li></ul>
+
+<p>Number of times to retry to acquire a lock on cache folder lockfiles.</p>
+
+<h3 id="cache-lock-wait">cache-lock-wait</h3>
+
+<ul><li>Default: 10000 (10 seconds)</li><li>Type: Number</li></ul>
+
+<p>Number of ms to wait for cache lock files to expire.</p>
+
<h3 id="cache-max">cache-max</h3>
<ul><li>Default: Infinity</li><li>Type: Number</li></ul>
@@ -263,6 +257,14 @@ <h3 id="editor">editor</h3>
<p>The command to run for <code>npm edit</code> or <code>npm config edit</code>.</p>
+<h3 id="engine-strict">engine-strict</h3>
+
+<ul><li>Default: false</li><li>Type: Boolean</li></ul>
+
+<p>If set to true, then npm will stubbornly refuse to install (or even
+consider installing) any package that claims to not be compatible with
+the current Node.js version.</p>
+
<h3 id="force">force</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
@@ -271,6 +273,34 @@ <h3 id="force">force</h3>
<ul><li>lifecycle script failure does not block progress.</li><li>publishing clobbers previously published versions.</li><li>skips cache when requesting from the registry.</li><li>prevents checks against clobbering non-npm files.</li></ul>
+<h3 id="fetch-retries">fetch-retries</h3>
+
+<ul><li>Default: 2</li><li>Type: Number</li></ul>
+
+<p>The "retries" config for the <code>retry</code> module to use when fetching
+packages from the registry.</p>
+
+<h3 id="fetch-retry-factor">fetch-retry-factor</h3>
+
+<ul><li>Default: 10</li><li>Type: Number</li></ul>
+
+<p>The "factor" config for the <code>retry</code> module to use when fetching
+packages.</p>
+
+<h3 id="fetch-retry-mintimeout">fetch-retry-mintimeout</h3>
+
+<ul><li>Default: 10000 (10 seconds)</li><li>Type: Number</li></ul>
+
+<p>The "minTimeout" config for the <code>retry</code> module to use when fetching
+packages.</p>
+
+<h3 id="fetch-retry-maxtimeout">fetch-retry-maxtimeout</h3>
+
+<ul><li>Default: 60000 (1 minute)</li><li>Type: Number</li></ul>
+
+<p>The "maxTimeout" config for the <code>retry</code> module to use when fetching
+packages.</p>
+
<h3 id="git">git</h3>
<ul><li>Default: <code>"git"</code></li><li>Type: String</li></ul>
@@ -333,6 +363,15 @@ <h3 id="ignore">ignore</h3>
<p>A white-space separated list of glob patterns of files to always exclude
from packages when building tarballs.</p>
+<h3 id="init-module">init-module</h3>
+
+<ul><li>Default: ~/.npm-init.js</li><li>Type: path</li></ul>
+
+<p>A module that will be loaded by the <code>npm init</code> command. See the
+documentation for the
+<a href="https://github.com/isaacs/init-package-json">init-package-json</a> module
+for more information, or <a href="../doc/init.html">init(1)</a>.</p>
+
<h3 id="init-version">init.version</h3>
<ul><li>Default: "0.0.0"</li><li>Type: semver</li></ul>
@@ -381,12 +420,6 @@ <h3 id="link">link</h3>
<ul><li>The package is not already installed globally, or</li><li>the globally installed version is identical to the version that is
being installed locally.</li></ul>
-<h3 id="logfd">logfd</h3>
-
-<ul><li>Default: stderr file descriptor</li><li>Type: Number or Stream</li></ul>
-
-<p>The location to write log output.</p>
-
<h3 id="loglevel">loglevel</h3>
<ul><li>Default: "http"</li><li>Type: String</li><li>Values: "silent", "win", "error", "warn", "http", "info", "verbose", "silly"</li></ul>
@@ -397,12 +430,16 @@ <h3 id="loglevel">loglevel</h3>
<p>Any logs of a higher level than the setting are shown.
The default is "http", which shows http, warn, and error output.</p>
-<h3 id="logprefix">logprefix</h3>
+<h3 id="logstream&