Browse Source

npm: Upgrade to 1.1.33

Support for parallel use of the cache folder
Retry on registry timeouts or network failures
Reduce 'engines' failures to a warning
Use new zsh completion if aviailable
v0.8.7-release
isaacs 13 years ago
parent
commit
c721604d25
  1. 22
      deps/npm/.npmignore
  2. 62
      deps/npm/doc/cli/config.md
  3. 19
      deps/npm/doc/cli/json.md
  4. 2
      deps/npm/html/api/bin.html
  5. 2
      deps/npm/html/api/bugs.html
  6. 2
      deps/npm/html/api/commands.html
  7. 2
      deps/npm/html/api/config.html
  8. 2
      deps/npm/html/api/deprecate.html
  9. 2
      deps/npm/html/api/docs.html
  10. 2
      deps/npm/html/api/edit.html
  11. 2
      deps/npm/html/api/explore.html
  12. 2
      deps/npm/html/api/help-search.html
  13. 2
      deps/npm/html/api/init.html
  14. 2
      deps/npm/html/api/install.html
  15. 2
      deps/npm/html/api/link.html
  16. 2
      deps/npm/html/api/load.html
  17. 2
      deps/npm/html/api/ls.html
  18. 4
      deps/npm/html/api/npm.html
  19. 2
      deps/npm/html/api/outdated.html
  20. 2
      deps/npm/html/api/owner.html
  21. 2
      deps/npm/html/api/pack.html
  22. 2
      deps/npm/html/api/prefix.html
  23. 2
      deps/npm/html/api/prune.html
  24. 2
      deps/npm/html/api/publish.html
  25. 2
      deps/npm/html/api/rebuild.html
  26. 2
      deps/npm/html/api/restart.html
  27. 2
      deps/npm/html/api/root.html
  28. 2
      deps/npm/html/api/run-script.html
  29. 2
      deps/npm/html/api/search.html
  30. 2
      deps/npm/html/api/shrinkwrap.html
  31. 2
      deps/npm/html/api/start.html
  32. 2
      deps/npm/html/api/stop.html
  33. 2
      deps/npm/html/api/submodule.html
  34. 2
      deps/npm/html/api/tag.html
  35. 2
      deps/npm/html/api/test.html
  36. 2
      deps/npm/html/api/uninstall.html
  37. 2
      deps/npm/html/api/unpublish.html
  38. 2
      deps/npm/html/api/update.html
  39. 2
      deps/npm/html/api/version.html
  40. 2
      deps/npm/html/api/view.html
  41. 2
      deps/npm/html/api/whoami.html
  42. 2
      deps/npm/html/doc/README.html
  43. 2
      deps/npm/html/doc/adduser.html
  44. 2
      deps/npm/html/doc/bin.html
  45. 2
      deps/npm/html/doc/bugs.html
  46. 2
      deps/npm/html/doc/build.html
  47. 2
      deps/npm/html/doc/bundle.html
  48. 2
      deps/npm/html/doc/cache.html
  49. 2
      deps/npm/html/doc/changelog.html
  50. 2
      deps/npm/html/doc/coding-style.html
  51. 2
      deps/npm/html/doc/completion.html
  52. 56
      deps/npm/html/doc/config.html
  53. 2
      deps/npm/html/doc/deprecate.html
  54. 2
      deps/npm/html/doc/developers.html
  55. 2
      deps/npm/html/doc/disputes.html
  56. 2
      deps/npm/html/doc/docs.html
  57. 2
      deps/npm/html/doc/edit.html
  58. 2
      deps/npm/html/doc/explore.html
  59. 2
      deps/npm/html/doc/faq.html
  60. 2
      deps/npm/html/doc/folders.html
  61. 2
      deps/npm/html/doc/help-search.html
  62. 2
      deps/npm/html/doc/help.html
  63. 2
      deps/npm/html/doc/index.html
  64. 2
      deps/npm/html/doc/init.html
  65. 2
      deps/npm/html/doc/install.html
  66. 21
      deps/npm/html/doc/json.html
  67. 2
      deps/npm/html/doc/link.html
  68. 2
      deps/npm/html/doc/list.html
  69. 4
      deps/npm/html/doc/npm.html
  70. 2
      deps/npm/html/doc/outdated.html
  71. 2
      deps/npm/html/doc/owner.html
  72. 2
      deps/npm/html/doc/pack.html
  73. 2
      deps/npm/html/doc/prefix.html
  74. 2
      deps/npm/html/doc/prune.html
  75. 2
      deps/npm/html/doc/publish.html
  76. 2
      deps/npm/html/doc/rebuild.html
  77. 2
      deps/npm/html/doc/registry.html
  78. 2
      deps/npm/html/doc/removing-npm.html
  79. 2
      deps/npm/html/doc/restart.html
  80. 2
      deps/npm/html/doc/root.html
  81. 2
      deps/npm/html/doc/run-script.html
  82. 2
      deps/npm/html/doc/scripts.html
  83. 2
      deps/npm/html/doc/search.html
  84. 2
      deps/npm/html/doc/semver.html
  85. 2
      deps/npm/html/doc/shrinkwrap.html
  86. 2
      deps/npm/html/doc/star.html
  87. 2
      deps/npm/html/doc/start.html
  88. 2
      deps/npm/html/doc/stop.html
  89. 2
      deps/npm/html/doc/submodule.html
  90. 2
      deps/npm/html/doc/tag.html
  91. 2
      deps/npm/html/doc/test.html
  92. 2
      deps/npm/html/doc/uninstall.html
  93. 2
      deps/npm/html/doc/unpublish.html
  94. 2
      deps/npm/html/doc/update.html
  95. 2
      deps/npm/html/doc/version.html
  96. 2
      deps/npm/html/doc/view.html
  97. 2
      deps/npm/html/doc/whoami.html
  98. 274
      deps/npm/lib/cache.js
  99. 16
      deps/npm/lib/install.js
  100. 21
      deps/npm/lib/npm.js

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

62
deps/npm/doc/cli/config.md

@ -195,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
@ -266,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
@ -278,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"`

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

2
deps/npm/html/api/bin.html

@ -19,7 +19,7 @@
<p>This function should not be used programmatically. Instead, just refer
to the <code>npm.bin</code> member.</p>
</div>
<p id="footer">bin &mdash; npm@1.1.32</p>
<p id="footer">bin &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/bugs.html

@ -25,7 +25,7 @@ optional version number.</p>
<p>This command will launch a browser, so this command may not be the most
friendly for programmatic use.</p>
</div>
<p id="footer">bugs &mdash; npm@1.1.32</p>
<p id="footer">bugs &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/commands.html

@ -28,7 +28,7 @@ usage, or <code>man 3 npm-&lt;command&gt;</code> for programmatic usage.</p>
<ul><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
<p id="footer">commands &mdash; npm@1.1.32</p>
<p id="footer">commands &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/config.html

@ -33,7 +33,7 @@ functions instead.</p>
<ul><li><a href="../api/npm.html">npm(3)</a></li></ul>
</div>
<p id="footer">config &mdash; npm@1.1.32</p>
<p id="footer">config &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/deprecate.html

@ -30,7 +30,7 @@ install the package.</p></li></ul>
<ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../api/unpublish.html">unpublish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
<p id="footer">deprecate &mdash; npm@1.1.32</p>
<p id="footer">deprecate &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/docs.html

@ -25,7 +25,7 @@ optional version number.</p>
<p>This command will launch a browser, so this command may not be the most
friendly for programmatic use.</p>
</div>
<p id="footer">docs &mdash; npm@1.1.32</p>
<p id="footer">docs &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/edit.html

@ -30,7 +30,7 @@ to open. The package can optionally have a version number attached.</p>
<p>Since this command opens an editor in a new process, be careful about where
and how this is used.</p>
</div>
<p id="footer">edit &mdash; npm@1.1.32</p>
<p id="footer">edit &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/explore.html

@ -24,7 +24,7 @@ sure to use <code>npm rebuild &lt;pkg&gt;</code> if you make any changes.</p>
<p>The first element in the '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.32</p>
<p id="footer">explore &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/help-search.html

@ -32,7 +32,7 @@ Name of the file that matched</li></ul>
<p>The silent parameter is not neccessary not used, but it may in the future.</p>
</div>
<p id="footer">help-search &mdash; npm@1.1.32</p>
<p id="footer">help-search &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/init.html

@ -35,7 +35,7 @@ then go ahead and use this programmatically.</p>
<p><a href="../doc/json.html">json(1)</a></p>
</div>
<p id="footer">init &mdash; npm@1.1.32</p>
<p id="footer">init &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/install.html

@ -25,7 +25,7 @@ the name of a package to be installed.</p>
<p>Finally, 'callback' is a function that will be called when all packages have been
installed or when an error has been encountered.</p>
</div>
<p id="footer">install &mdash; npm@1.1.32</p>
<p id="footer">install &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/link.html

@ -39,7 +39,7 @@ npm.commands.link('redis', cb) # link-install the package</code></pre>
<p>Now, any changes to the redis package will be reflected in
the package in the current working directory</p>
</div>
<p id="footer">link &mdash; npm@1.1.32</p>
<p id="footer">link &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/load.html

@ -32,7 +32,7 @@ config object.</p>
<p>For a list of all the available command-line configs, see <code>npm help config</code></p>
</div>
<p id="footer">load &mdash; npm@1.1.32</p>
<p id="footer">load &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/ls.html

@ -59,7 +59,7 @@ project.</p>
This means that if a submodule a same dependency as a parent module, then the
dependency will only be output once.</p>
</div>
<p id="footer">ls &mdash; npm@1.1.32</p>
<p id="footer">ls &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

4
deps/npm/html/api/npm.html

@ -24,7 +24,7 @@ npm.load(configObject, function (er, npm) {
<h2 id="VERSION">VERSION</h2>
<p>1.1.32</p>
<p>1.1.33</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@ -91,7 +91,7 @@ method names. Use the <code>npm.deref</code> method to find the real name.</p>
<pre><code>var cmd = npm.deref("unp") // cmd === "unpublish"</code></pre>
</div>
<p id="footer">npm &mdash; npm@1.1.32</p>
<p id="footer">npm &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/outdated.html

@ -19,7 +19,7 @@ currently outdated.</p>
<p>If the 'packages' parameter is left out, npm will check all packages.</p>
</div>
<p id="footer">outdated &mdash; npm@1.1.32</p>
<p id="footer">outdated &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/owner.html

@ -34,7 +34,7 @@ that is not implemented at this time.</p>
<ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
<p id="footer">owner &mdash; npm@1.1.32</p>
<p id="footer">owner &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/pack.html

@ -25,7 +25,7 @@ overwritten the second time.</p>
<p>If no arguments are supplied, then npm packs the current package folder.</p>
</div>
<p id="footer">pack &mdash; npm@1.1.32</p>
<p id="footer">pack &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/prefix.html

@ -21,7 +21,7 @@
<p>This function is not useful programmatically</p>
</div>
<p id="footer">prefix &mdash; npm@1.1.32</p>
<p id="footer">prefix &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/prune.html

@ -23,7 +23,7 @@
<p>Extraneous packages are packages that are not listed on the parent
package's dependencies list.</p>
</div>
<p id="footer">prune &mdash; npm@1.1.32</p>
<p id="footer">prune &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/publish.html

@ -32,7 +32,7 @@ the registry. Overwrites when the "force" environment variable is set.</p>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../api/owner.html">owner(3)</a></li></ul>
</div>
<p id="footer">publish &mdash; npm@1.1.32</p>
<p id="footer">publish &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/rebuild.html

@ -22,7 +22,7 @@ the new binary. If no 'packages' parameter is specify, every package will be reb
<p>See <code>npm help build</code></p>
</div>
<p id="footer">rebuild &mdash; npm@1.1.32</p>
<p id="footer">rebuild &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/restart.html

@ -27,7 +27,7 @@ in the <code>packages</code> parameter.</p>
<ul><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
</div>
<p id="footer">restart &mdash; npm@1.1.32</p>
<p id="footer">restart &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/root.html

@ -21,7 +21,7 @@
<p>This function is not useful programmatically.</p>
</div>
<p id="footer">root &mdash; npm@1.1.32</p>
<p id="footer">root &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/run-script.html

@ -29,7 +29,7 @@ assumed to be the command to run. All other elements are ignored.</p>
<ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../api/test.html">test(3)</a></li><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/restart.html">restart(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
</div>
<p id="footer">run-script &mdash; npm@1.1.32</p>
<p id="footer">run-script &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/search.html

@ -32,7 +32,7 @@ excluded term (the "searchexclude" config). The search is case insensitive
and doesn't try to read your mind (it doesn't do any verb tense matching or the
like).</p>
</div>
<p id="footer">search &mdash; npm@1.1.32</p>
<p id="footer">search &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/shrinkwrap.html

@ -26,7 +26,7 @@ but the shrinkwrap file will still be written.</p>
<p>Finally, 'callback' is a function that will be called when the shrinkwrap has
been saved.</p>
</div>
<p id="footer">shrinkwrap &mdash; npm@1.1.32</p>
<p id="footer">shrinkwrap &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/start.html

@ -19,7 +19,7 @@
<p>npm can run tests on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
<p id="footer">start &mdash; npm@1.1.32</p>
<p id="footer">start &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/stop.html

@ -19,7 +19,7 @@
<p>npm can run stop on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
<p id="footer">stop &mdash; npm@1.1.32</p>
<p id="footer">stop &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/submodule.html

@ -33,7 +33,7 @@ dependencies into the submodule folder.</p>
<ul><li>npm help json</li><li>git help submodule</li></ul>
</div>
<p id="footer">submodule &mdash; npm@1.1.32</p>
<p id="footer">submodule &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/tag.html

@ -29,7 +29,7 @@ parameter is missing or falsey (empty), the default froom the config will be
used. For more information about how to set this config, check
<code>man 3 npm-config</code> for programmatic usage or <code>man npm-config</code> for cli usage.</p>
</div>
<p id="footer">tag &mdash; npm@1.1.32</p>
<p id="footer">tag &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/test.html

@ -22,7 +22,7 @@ true.</p>
<p>npm can run tests on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
<p id="footer">test &mdash; npm@1.1.32</p>
<p id="footer">test &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/uninstall.html

@ -22,7 +22,7 @@ the name of a package to be uninstalled.</p>
<p>Finally, 'callback' is a function that will be called when all packages have been
uninstalled or when an error has been encountered.</p>
</div>
<p id="footer">uninstall &mdash; npm@1.1.32</p>
<p id="footer">uninstall &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/unpublish.html

@ -26,7 +26,7 @@ is what is meant.</p>
<p>If no version is specified, or if all versions are removed then
the root package entry is removed from the registry entirely.</p>
</div>
<p id="footer">unpublish &mdash; npm@1.1.32</p>
<p id="footer">unpublish &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/update.html

@ -18,7 +18,7 @@
<p>The 'packages' argument is an array of packages to update. The 'callback' parameter will be called when done or when an error occurs.</p>
</div>
<p id="footer">update &mdash; npm@1.1.32</p>
<p id="footer">update &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/version.html

@ -24,7 +24,7 @@ fail if the repo is not clean.</p>
parameter. The difference, however, is this function will fail if it does
not have exactly one element. The only element should be a version number.</p>
</div>
<p id="footer">version &mdash; npm@1.1.32</p>
<p id="footer">version &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/view.html

@ -99,7 +99,7 @@ the field name.</p>
<p>corresponding to the list of fields selected.</p>
</div>
<p id="footer">view &mdash; npm@1.1.32</p>
<p id="footer">view &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/api/whoami.html

@ -21,7 +21,7 @@
<p>This function is not useful programmatically</p>
</div>
<p id="footer">whoami &mdash; npm@1.1.32</p>
<p id="footer">whoami &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/README.html

@ -261,7 +261,7 @@ will no doubt tell you to put the output in a gist or email.</p>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.32</p>
<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/adduser.html

@ -39,7 +39,7 @@ authorize on a new machine.</p>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li></ul>
</div>
<p id="footer">adduser &mdash; npm@1.1.32</p>
<p id="footer">adduser &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/bin.html

@ -20,7 +20,7 @@
<ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">bin &mdash; npm@1.1.32</p>
<p id="footer">bin &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/bugs.html

@ -36,7 +36,7 @@ config param.</p>
<ul><li><a href="../doc/docs.html">docs(1)</a></li><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
<p id="footer">bugs &mdash; npm@1.1.32</p>
<p id="footer">bugs &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/build.html

@ -25,7 +25,7 @@ A folder containing a <code>package.json</code> file in its root.</li></ul>
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
<p id="footer">build &mdash; npm@1.1.32</p>
<p id="footer">build &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/bundle.html

@ -20,7 +20,7 @@ install packages into the local space.</p>
<ul><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
<p id="footer">bundle &mdash; npm@1.1.32</p>
<p id="footer">bundle &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/cache.html

@ -66,7 +66,7 @@ they do not make an HTTP request to the registry.</p>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li></ul>
</div>
<p id="footer">cache &mdash; npm@1.1.32</p>
<p id="footer">cache &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/changelog.html

@ -65,7 +65,7 @@
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li></ul>
</div>
<p id="footer">changelog &mdash; npm@1.1.32</p>
<p id="footer">changelog &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/coding-style.html

@ -180,7 +180,7 @@ set to anything."</p>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
<p id="footer">coding-style &mdash; npm@1.1.32</p>
<p id="footer">coding-style &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/completion.html

@ -33,7 +33,7 @@ completions based on the arguments.</p>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
<p id="footer">completion &mdash; npm@1.1.32</p>
<p id="footer">completion &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

56
deps/npm/html/doc/config.html

@ -176,6 +176,24 @@ to trust only that specific signing authority.</p>
<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>
@ -239,6 +257,14 @@ or <code>"notepad"</code> on Windows.</li><li>Type: path</li></ul>
<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>
@ -247,6 +273,34 @@ or <code>"notepad"</code> on Windows.</li><li>Type: path</li></ul>
<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>
@ -681,7 +735,7 @@ then answer "no" to any prompt.</p>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
<p id="footer">config &mdash; npm@1.1.32</p>
<p id="footer">config &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/deprecate.html

@ -29,7 +29,7 @@ something like this:</p>
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
<p id="footer">deprecate &mdash; npm@1.1.32</p>
<p id="footer">deprecate &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/developers.html

@ -160,7 +160,7 @@ from a fresh checkout.</p>
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
<p id="footer">developers &mdash; npm@1.1.32</p>
<p id="footer">developers &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/disputes.html

@ -80,7 +80,7 @@ license statement)</li><li>Illegal content.</li></ol>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li></ul>
</div>
<p id="footer">disputes &mdash; npm@1.1.32</p>
<p id="footer">disputes &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/docs.html

@ -37,7 +37,7 @@ config param.</p>
<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
<p id="footer">docs &mdash; npm@1.1.32</p>
<p id="footer">docs &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/edit.html

@ -37,7 +37,7 @@ or <code>"notepad"</code> on Windows.</li><li>Type: path</li></ul>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/explore.html">explore(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">edit &mdash; npm@1.1.32</p>
<p id="footer">edit &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/explore.html

@ -40,7 +40,7 @@ Windows</li><li>Type: path</li></ul>
<ul><li><a href="../doc/submodule.html">submodule(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/edit.html">edit(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
<p id="footer">explore &mdash; npm@1.1.32</p>
<p id="footer">explore &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/faq.html

@ -241,7 +241,7 @@ We'll have someone kick it or something.</p>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
</div>
<p id="footer">faq &mdash; npm@1.1.32</p>
<p id="footer">faq &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/folders.html

@ -205,7 +205,7 @@ cannot be found elsewhere. See <code><a href="../doc/json.html">json(1)</a></co
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li></ul>
</div>
<p id="footer">folders &mdash; npm@1.1.32</p>
<p id="footer">folders &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/help-search.html

@ -38,7 +38,7 @@ where the terms were found in the documentation.</p>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li></ul>
</div>
<p id="footer">help-search &mdash; npm@1.1.32</p>
<p id="footer">help-search &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/help.html

@ -36,7 +36,7 @@ matches are equivalent to specifying a topic name.</p>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/help-search.html">help-search(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
<p id="footer">help &mdash; npm@1.1.32</p>
<p id="footer">help &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/index.html

@ -384,7 +384,7 @@
<p> Display npm username</p>
</div>
<p id="footer">index &mdash; npm@1.1.32</p>
<p id="footer">index &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/init.html

@ -29,7 +29,7 @@ without a really good reason to do so.</p>
<ul><li><a href="https://github.com/isaacs/init-package-json">https://github.com/isaacs/init-package-json</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/version.html">version(1)</a></li></ul>
</div>
<p id="footer">init &mdash; npm@1.1.32</p>
<p id="footer">init &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/install.html

@ -133,7 +133,7 @@ affects a real use-case, it will be investigated.</p>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/shrinkwrap.html">shrinkwrap(1)</a></li></ul>
</div>
<p id="footer">install &mdash; npm@1.1.32</p>
<p id="footer">install &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

21
deps/npm/html/doc/json.html

@ -425,8 +425,7 @@ if (foo) {
<h2 id="engines">engines</h2>
<p>You can specify the version of
node that your stuff works on:</p>
<p>You can specify the version of node that your stuff works on:</p>
<pre><code>{ "engines" : { "node" : "&gt;=0.1.27 &lt;0.1.30" } }</code></pre>
@ -442,6 +441,22 @@ are capable of properly installing your program. For example:</p>
<pre><code>{ "engines" : { "npm" : "~1.0.20" } }</code></pre>
<p>Note that, unless the user has set the <code>engine-strict</code> config flag, this
field is advisory only.</p>
<h2 id="engineStrict">engineStrict</h2>
<p>If you are sure that your module will <em>definitely not</em> run properly on
versions of Node/npm other than those specified in the <code>engines</code> hash,
then you can set <code>"engineStrict": true</code> in your package.json file.
This will override the user's <code>engine-strict</code> config setting.</p>
<p>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.</p>
<h2 id="os">os</h2>
<p>You can specify which operating systems your
@ -509,7 +524,7 @@ overridden.</p>
<ul><li><a href="../doc/semver.html">semver(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/version.html">version(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/rm.html">rm(1)</a></li></ul>
</div>
<p id="footer">json &mdash; npm@1.1.32</p>
<p id="footer">json &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/link.html

@ -58,7 +58,7 @@ installation target into your project's <code>node_modules</code> folder.</p>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">link &mdash; npm@1.1.32</p>
<p id="footer">link &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/list.html

@ -58,7 +58,7 @@ project.</p>
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/update.html">update(1)</a></li></ul>
</div>
<p id="footer">list &mdash; npm@1.1.32</p>
<p id="footer">list &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

4
deps/npm/html/doc/npm.html

@ -14,7 +14,7 @@
<h2 id="VERSION">VERSION</h2>
<p>1.1.32</p>
<p>1.1.33</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@ -135,7 +135,7 @@ will no doubt tell you to put the output in a gist or email.</p>
<ul><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/index.html">index(1)</a></li><li><a href="../api/npm.html">npm(3)</a></li></ul>
</div>
<p id="footer">npm &mdash; npm@1.1.32</p>
<p id="footer">npm &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/outdated.html

@ -21,7 +21,7 @@ packages are currently outdated.</p>
<ul><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
</div>
<p id="footer">outdated &mdash; npm@1.1.32</p>
<p id="footer">outdated &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/owner.html

@ -34,7 +34,7 @@ that is not implemented at this time.</p>
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/disputes.html">disputes(1)</a></li></ul>
</div>
<p id="footer">owner &mdash; npm@1.1.32</p>
<p id="footer">owner &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/pack.html

@ -29,7 +29,7 @@ overwritten the second time.</p>
<ul><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">pack &mdash; npm@1.1.32</p>
<p id="footer">pack &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/prefix.html

@ -20,7 +20,7 @@
<ul><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/bin.html">bin(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">prefix &mdash; npm@1.1.32</p>
<p id="footer">prefix &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/prune.html

@ -25,7 +25,7 @@ package's dependencies list.</p>
<ul><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
<p id="footer">prune &mdash; npm@1.1.32</p>
<p id="footer">prune &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/publish.html

@ -29,7 +29,7 @@ the registry. Overwrites when the "--force" flag is set.</p>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/deprecate.html">deprecate(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li></ul>
</div>
<p id="footer">publish &mdash; npm@1.1.32</p>
<p id="footer">publish &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/rebuild.html

@ -25,7 +25,7 @@ the new binary.</p>
<ul><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
<p id="footer">rebuild &mdash; npm@1.1.32</p>
<p id="footer">rebuild &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/registry.html

@ -97,7 +97,7 @@ ask for help on the <a href="mailto:npm-@googlegroups.com">npm-@googlegroups.com
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/disputes.html">disputes(1)</a></li></ul>
</div>
<p id="footer">registry &mdash; npm@1.1.32</p>
<p id="footer">registry &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/removing-npm.html

@ -58,7 +58,7 @@ modules. To track those down, you can do the following:</p>
<ul><li><a href="../doc/README.html">README</a></li><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li></ul>
</div>
<p id="footer">removing-npm &mdash; npm@1.1.32</p>
<p id="footer">removing-npm &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/restart.html

@ -24,7 +24,7 @@ the "start" script.</p>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
<p id="footer">restart &mdash; npm@1.1.32</p>
<p id="footer">restart &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/root.html

@ -20,7 +20,7 @@
<ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/bin.html">bin(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">root &mdash; npm@1.1.32</p>
<p id="footer">root &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/run-script.html

@ -23,7 +23,7 @@ called directly, as well.</p>
<ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
<p id="footer">run-script &mdash; npm@1.1.32</p>
<p id="footer">run-script &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/scripts.html

@ -177,7 +177,7 @@ will sudo the npm command in question.</li></ul>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
<p id="footer">scripts &mdash; npm@1.1.32</p>
<p id="footer">scripts &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/search.html

@ -24,7 +24,7 @@ expression characters must be escaped or quoted in most shells.)</p>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/view.html">view(1)</a></li></ul>
</div>
<p id="footer">search &mdash; npm@1.1.32</p>
<p id="footer">search &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/semver.html

@ -104,7 +104,7 @@ that satisfies the range, or null if none of them do.</li></ul>
<ul><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
<p id="footer">semver &mdash; npm@1.1.32</p>
<p id="footer">semver &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/shrinkwrap.html

@ -169,7 +169,7 @@ versions.</p>
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
<p id="footer">shrinkwrap &mdash; npm@1.1.32</p>
<p id="footer">shrinkwrap &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/star.html

@ -26,7 +26,7 @@ a vaguely positive way to show that you care.</p>
<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
</div>
<p id="footer">star &mdash; npm@1.1.32</p>
<p id="footer">star &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/start.html

@ -20,7 +20,7 @@
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
<p id="footer">start &mdash; npm@1.1.32</p>
<p id="footer">start &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/stop.html

@ -20,7 +20,7 @@
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li></ul>
</div>
<p id="footer">stop &mdash; npm@1.1.32</p>
<p id="footer">stop &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/submodule.html

@ -33,7 +33,7 @@ dependencies into the submodule folder.</p>
<ul><li><a href="../doc/json.html">json(1)</a></li><li>git help submodule</li></ul>
</div>
<p id="footer">submodule &mdash; npm@1.1.32</p>
<p id="footer">submodule &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/tag.html

@ -21,7 +21,7 @@
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">tag &mdash; npm@1.1.32</p>
<p id="footer">tag &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/test.html

@ -23,7 +23,7 @@ true.</p>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
<p id="footer">test &mdash; npm@1.1.32</p>
<p id="footer">test &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/uninstall.html

@ -22,7 +22,7 @@ on its behalf.</p>
<ul><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">uninstall &mdash; npm@1.1.32</p>
<p id="footer">uninstall &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/unpublish.html

@ -34,7 +34,7 @@ the root package entry is removed from the registry entirely.</p>
<ul><li><a href="../doc/deprecate.html">deprecate(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li></ul>
</div>
<p id="footer">unpublish &mdash; npm@1.1.32</p>
<p id="footer">unpublish &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/update.html

@ -23,7 +23,7 @@
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
<p id="footer">update &mdash; npm@1.1.32</p>
<p id="footer">update &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/version.html

@ -31,7 +31,7 @@ will use it as a commit message when creating a version commit.</p>
<ul><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/semver.html">semver(1)</a></li></ul>
</div>
<p id="footer">version &mdash; npm@1.1.32</p>
<p id="footer">version &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/view.html

@ -88,7 +88,7 @@ the field name.</p>
<ul><li><a href="../doc/search.html">search(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/docs.html">docs(1)</a></li></ul>
</div>
<p id="footer">view &mdash; npm@1.1.32</p>
<p id="footer">view &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

2
deps/npm/html/doc/whoami.html

@ -20,7 +20,7 @@
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
</div>
<p id="footer">whoami &mdash; npm@1.1.32</p>
<p id="footer">whoami &mdash; npm@1.1.33</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")

274
deps/npm/lib/cache.js

@ -1,6 +1,30 @@
// XXX lib/utils/tar.js and this file need to be rewritten.
// URL-to-cache folder mapping:
// : -> !
// @ -> _
// http://registry.npmjs.org/foo/version -> cache/http!/...
//
/*
fetching a url:
1. Check for url in inFlightUrls. If present, add cb, and return.
2. create inFlightURL list
3. Acquire lock at {cache}/{sha(url)}.lock
retries = {cache-lock-retries, def=3}
stale = {cache-lock-stale, def=30000}
wait = {cache-lock-wait, def=100}
4. if lock can't be acquired, then fail
5. fetch url, clear lock, call cbs
cache folders:
1. urls: http!/server.com/path/to/thing
2. c:\path\to\thing: file!/c!/path/to/thing
3. /path/to/thing: file!/path/to/thing
4. git@ private: git_github.com!isaacs/npm
5. git://public: git!/github.com/isaacs/npm
6. git+blah:// git-blah!/server.com/foo/bar
adding a folder:
1. tar into tmp/random/package.tgz
2. untar into tmp/random/contents/package, stripping one dir piece
@ -49,6 +73,9 @@ var mkdir = require("mkdirp")
, fileCompletion = require("./utils/completion/file-completion.js")
, url = require("url")
, chownr = require("chownr")
, lockFile = require("lockfile")
, crypto = require("crypto")
, retry = require("retry")
cache.usage = "npm cache add <tarball file>"
+ "\nnpm cache add <folder>"
@ -238,10 +265,26 @@ function add (args, cb) {
default:
// if we have a name and a spec, then try name@spec
// if not, then try just spec (which may try name@"" if not found)
return name ? addNamed(name, spec, cb) : addLocal(spec, cb)
if (name) {
addNamed(name, spec, cb)
} else {
addLocal(spec, cb)
}
}
}
function fetchAndShaCheck (u, tmp, shasum, cb) {
fetch(u, tmp, function (er, response) {
if (er) {
log.error("fetch failed", u)
return cb(er, response)
}
if (!shasum) return cb()
// validate that the url we just downloaded matches the expected shasum.
sha.check(tmp, shasum, cb)
})
}
// Only have a single download action at once for a given url
// additional calls stack the callbacks.
var inFlightURLs = {}
@ -255,29 +298,48 @@ function addRemoteTarball (u, shasum, name, cb_) {
if (iF.length > 1) return
function cb (er, data) {
var c
while (c = iF.shift()) c(er, data)
delete inFlightURLs[u]
unlock(u, function () {
var c
while (c = iF.shift()) c(er, data)
delete inFlightURLs[u]
})
}
log.verbose("addRemoteTarball", [u, shasum])
var tmp = path.join(npm.tmp, Date.now()+"-"+Math.random(), "tmp.tgz")
mkdir(path.dirname(tmp), function (er) {
lock(u, function (er) {
if (er) return cb(er)
fetch(u, tmp, function (er) {
if (er) {
log.error("fetch failed", u)
return cb(er)
}
if (!shasum) return done()
// validate that the url we just downloaded matches the expected shasum.
sha.check(tmp, shasum, done)
log.verbose("addRemoteTarball", [u, shasum])
var tmp = path.join(npm.tmp, Date.now()+"-"+Math.random(), "tmp.tgz")
mkdir(path.dirname(tmp), function (er) {
if (er) return cb(er)
// Tuned to spread 3 attempts over about a minute.
// See formula at <https://github.com/tim-kos/node-retry>.
var operation = retry.operation
( { retries: npm.config.get("fetch-retries")
, factor: npm.config.get("fetch-retry-factor")
, minTimeout: npm.config.get("fetch-retry-mintimeout")
, maxTimeout: npm.config.get("fetch-retry-maxtimeout") })
operation.attempt(function (currentAttempt) {
log.info("retry", "fetch attempt " + currentAttempt
+ " at " + (new Date()).toLocaleTimeString())
fetchAndShaCheck(u, tmp, shasum, function (er, response) {
// Only retry on 408, 5xx or no `response`.
var statusCode = response && response.statusCode
var statusRetry = !statusCode || (statusCode === 408 || statusCode >= 500)
if (er && statusRetry && operation.retry(er)) {
log.info("retry", "will retry, error on last attempt: " + er)
return
}
done(er)
})
})
})
function done (er) {
if (er) return cb(er)
addLocalTarball(tmp, name, cb)
}
})
function done (er) {
if (er) return cb(er)
addLocalTarball(tmp, name, cb)
}
}
// For now, this is kind of dumb. Just basically treat git as
@ -292,48 +354,54 @@ function addRemoteGit (u, parsed, name, cb_) {
if (iF.length > 1) return
function cb (er, data) {
var c
while (c = iF.shift()) c(er, data)
delete inFlightURLs[u]
unlock(u, function () {
var c
while (c = iF.shift()) c(er, data)
delete inFlightURLs[u]
})
}
// figure out what we should check out.
var co = parsed.hash && parsed.hash.substr(1) || "master"
// git is so tricky!
// if the path is like ssh://foo:22/some/path then it works, but
// it needs the ssh://
// If the path is like ssh://foo:some/path then it works, but
// only if you remove the ssh://
u = u.replace(/^git\+/, "")
.replace(/#.*$/, "")
// ssh paths that are scp-style urls don't need the ssh://
if (parsed.pathname.match(/^\/?:/)) {
u = u.replace(/^ssh:\/\//, "")
}
lock(u, function (er) {
if (er) return cb(er)
log.verbose("addRemoteGit", [u, co])
// figure out what we should check out.
var co = parsed.hash && parsed.hash.substr(1) || "master"
// git is so tricky!
// if the path is like ssh://foo:22/some/path then it works, but
// it needs the ssh://
// If the path is like ssh://foo:some/path then it works, but
// only if you remove the ssh://
u = u.replace(/^git\+/, "")
.replace(/#.*$/, "")
// ssh paths that are scp-style urls don't need the ssh://
if (parsed.pathname.match(/^\/?:/)) {
u = u.replace(/^ssh:\/\//, "")
}
var tmp = path.join(npm.tmp, Date.now()+"-"+Math.random())
mkdir(path.dirname(tmp), function (er) {
if (er) return cb(er)
exec( npm.config.get("git"), ["clone", u, tmp], null, false
, function (er, code, stdout, stderr) {
stdout = (stdout + "\n" + stderr).trim()
if (er) {
log.error("git clone " + u, stdout)
return cb(er)
}
log.verbose("git clone "+u, stdout)
exec( npm.config.get("git"), ["checkout", co], null, false, tmp
log.verbose("addRemoteGit", [u, co])
var tmp = path.join(npm.tmp, Date.now()+"-"+Math.random())
mkdir(path.dirname(tmp), function (er) {
if (er) return cb(er)
exec( npm.config.get("git"), ["clone", u, tmp], null, false
, function (er, code, stdout, stderr) {
stdout = (stdout + "\n" + stderr).trim()
if (er) {
log.error("git checkout " + co, stdout)
log.error("git clone " + u, stdout)
return cb(er)
}
log.verbose("git checkout " + co, stdout)
addLocalDirectory(tmp, cb)
log.verbose("git clone "+u, stdout)
exec( npm.config.get("git"), ["checkout", co], null, false, tmp
, function (er, code, stdout, stderr) {
stdout = (stdout + "\n" + stderr).trim()
if (er) {
log.error("git checkout " + co, stdout)
return cb(er)
}
log.verbose("git checkout " + co, stdout)
addLocalDirectory(tmp, cb)
})
})
})
})
@ -343,8 +411,10 @@ function addRemoteGit (u, parsed, name, cb_) {
// only have one request in flight for a given
// name@blah thing.
var inFlightNames = {}
function addNamed (name, x, cb_) {
function addNamed (name, x, data, cb_) {
if (typeof cb_ !== "function") cb_ = data, data = null
log.verbose("addNamed", [name, x])
var k = name + "@" + x
if (!inFlightNames[k]) inFlightNames[k] = []
var iF = inFlightNames[k]
@ -352,19 +422,27 @@ function addNamed (name, x, cb_) {
if (iF.length > 1) return
function cb (er, data) {
var c
while (c = iF.shift()) c(er, data)
delete inFlightNames[k]
unlock(k, function () {
var c
while (c = iF.shift()) c(er, data)
delete inFlightNames[k]
})
}
log.verbose("addNamed", [semver.valid(x), semver.validRange(x)])
return ( null !== semver.valid(x) ? addNameVersion
: null !== semver.validRange(x) ? addNameRange
: addNameTag
)(name, x, cb)
lock(k, function (er, fd) {
if (er) return cb(er)
var fn = ( null !== semver.valid(x) ? addNameVersion
: null !== semver.validRange(x) ? addNameRange
: addNameTag
)
fn(name, x, data, cb)
})
}
function addNameTag (name, tag, cb) {
function addNameTag (name, tag, data, cb) {
if (typeof cb !== "function") cb = data, data = null
log.info("addNameTag", [name, tag])
var explicit = true
if (!tag) {
@ -378,10 +456,10 @@ function addNameTag (name, tag, cb) {
if (data["dist-tags"] && data["dist-tags"][tag]
&& data.versions[data["dist-tags"][tag]]) {
var ver = data["dist-tags"][tag]
return addNameVersion(name, ver, data.versions[ver], cb)
return addNamed(name, ver, data.versions[ver], cb)
}
if (!explicit && Object.keys(data.versions).length) {
return addNameRange(name, "*", data, cb)
return addNamed(name, "*", data, cb)
}
return cb(installTargetsError(tag, data))
})
@ -390,12 +468,14 @@ function addNameTag (name, tag, cb) {
function engineFilter (data) {
var npmv = npm.version
, nodev = npm.config.get("node-version")
, strict = npm.config.get("engine-strict")
if (!nodev || npm.config.get("force")) return data
Object.keys(data.versions || {}).forEach(function (v) {
var eng = data.versions[v].engines
if (!eng) return
if (!strict && !data.versions[v].engineStrict) return
if (eng.node && !semver.satisfies(nodev, eng.node)
|| eng.npm && !semver.satisfies(npmv, eng.npm)) {
delete data.versions[v]
@ -438,12 +518,12 @@ function addNameRange (name, range, data, cb) {
function next_ () {
log.silly("addNameRange", "versions"
, [data.name, Object.keys(data.versions)])
, [data.name, Object.keys(data.versions || {})])
// if the tagged version satisfies, then use that.
var tagged = data["dist-tags"][npm.config.get("tag")]
if (tagged && data.versions[tagged] && semver.satisfies(tagged, range)) {
return addNameVersion(name, tagged, data.versions[tagged], cb)
return addNamed(name, tagged, data.versions[tagged], cb)
}
// find the max satisfying version.
@ -454,7 +534,7 @@ function addNameRange (name, range, data, cb) {
// if we don't have a registry connection, try to see if
// there's a cached copy that will be ok.
addNameVersion(name, ms, data.versions[ms], cb)
addNamed(name, ms, data.versions[ms], cb)
}
}
@ -573,24 +653,29 @@ function addLocal (p, name, cb_) {
if (typeof cb_ !== "function") cb_ = name, name = ""
function cb (er, data) {
if (er) {
// if it doesn't have a / in it, it might be a
// remote thing.
if (p.indexOf("/") === -1 && p.charAt(0) !== "."
&& (process.platform !== "win32" || p.indexOf("\\") === -1)) {
return addNamed(p, "", cb_)
unlock(p, function () {
if (er) {
// if it doesn't have a / in it, it might be a
// remote thing.
if (p.indexOf("/") === -1 && p.charAt(0) !== "."
&& (process.platform !== "win32" || p.indexOf("\\") === -1)) {
return addNamed(p, "", cb_)
}
log.error("addLocal", "Could not install %s", p)
return cb_(er)
}
log.error("addLocal", "Could not install %s", p)
return cb_(er)
}
return cb_(er, data)
return cb_(er, data)
})
}
// figure out if this is a folder or file.
fs.stat(p, function (er, s) {
lock(p, function (er) {
if (er) return cb(er)
if (s.isDirectory()) addLocalDirectory(p, name, cb)
else addLocalTarball(p, name, cb)
// figure out if this is a folder or file.
fs.stat(p, function (er, s) {
if (er) return cb(er)
if (s.isDirectory()) addLocalDirectory(p, name, cb)
else addLocalTarball(p, name, cb)
})
})
}
@ -847,3 +932,32 @@ function deprCheck (data) {
log.warn("deprecated", "%s: %s", data._id, data.deprecated)
}
}
function lockFileName (u) {
var c = u.replace(/[^a-zA-Z0-9]+/g, '-')
, h = crypto.createHash("sha1").update(u).digest("hex")
return path.resolve(npm.config.get("cache"), h + "-" + c + ".lock")
}
var madeCache = false
function lock (u, cb) {
// the cache dir needs to exist already for this.
if (madeCache) then()
else mkdir(npm.config.get("cache"), function (er) {
if (er) return cb(er)
madeCache = true
then()
})
function then () {
var opts = { stale: npm.config.get("cache-lock-stale")
, retries: npm.config.get("cache-lock-retries")
, wait: npm.config.get("cache-lock-wait") }
var lf = lockFileName(u)
log.verbose("lock", u, lf)
lockFile.lock(lf, opts, cb)
}
}
function unlock (u, cb) {
lockFile.unlock(lockFileName(u), cb)
}

16
deps/npm/lib/install.js

@ -710,15 +710,21 @@ function checkEngine (target, cb) {
var npmv = npm.version
, force = npm.config.get("force")
, nodev = force ? null : npm.config.get("node-version")
, strict = npm.config.get("engine-strict") || target.engineStrict
, eng = target.engines
if (!eng) return cb()
if (nodev && eng.node && !semver.satisfies(nodev, eng.node)
|| eng.npm && !semver.satisfies(npmv, eng.npm)) {
var er = new Error("Unsupported")
er.code = "ENOTSUP"
er.required = eng
er.pkgid = target._id
return cb(er)
if (strict) {
var er = new Error("Unsupported")
er.code = "ENOTSUP"
er.required = eng
er.pkgid = target._id
return cb(er)
} else {
log.warn( "engine", "%s: wanted: %j (current: %j)"
, target._id, eng, {node: nodev, npm: npm.version} )
}
}
return cb()
}

21
deps/npm/lib/npm.js

@ -57,13 +57,13 @@ try {
npm.version = j.version
npm.nodeVersionRequired = j.engines.node
if (!semver.satisfies(process.version, j.engines.node)) {
log.error("unsupported version", [""
,"npm requires node version: "+j.engines.node
,"And you have: "+process.version
,"which is not satisfactory."
,""
,"Bad things will likely happen. You have been warned."
,""].join("\n"))
log.warn("unsupported version", [""
,"npm requires node version: "+j.engines.node
,"And you have: "+process.version
,"which is not satisfactory."
,""
,"Bad things will likely happen. You have been warned."
,""].join("\n"))
}
} catch (ex) {
try {
@ -98,6 +98,7 @@ var commandCache = {}
, "apihelp" : "help"
, "login": "adduser"
, "add-user": "adduser"
, "tst": "test"
}
, aliasNames = Object.keys(aliases)
@ -287,6 +288,10 @@ function load (npm, conf, cb) {
, E404: npm.E404
, EPUBLISHCONFLICT: npm.EPUBLISHCONFLICT
, log: log
, retries: npm.config.get("fetch-retries")
, retryFactor: npm.config.get("fetch-retry-factor")
, retryMinTimeout: npm.config.get("fetch-retry-mintimeout")
, retryMaxTimeout: npm.config.get("fetch-retry-maxtimeout")
})
var umask = parseInt(conf.umask, 8)
@ -443,7 +448,7 @@ Object.defineProperty(npm, "cache",
var tmpFolder
Object.defineProperty(npm, "tmp",
{ get : function () {
if (!tmpFolder) tmpFolder = "npm-"+Date.now()
if (!tmpFolder) tmpFolder = "npm-" + process.pid
return path.resolve(npm.config.get("tmp"), tmpFolder)
}
, enumerable : true

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save