Browse Source

Remove npm's .gitignore, add generated docs

v0.7.4-release
isaacs 13 years ago
parent
commit
e85a95dfa3
  1. 15
      deps/npm/.gitignore
  2. 365
      deps/npm/doc/cli/index.md
  3. 69
      deps/npm/html/api/author.html
  4. 54
      deps/npm/html/api/bin.html
  5. 60
      deps/npm/html/api/bugs.html
  6. 63
      deps/npm/html/api/commands.html
  7. 68
      deps/npm/html/api/config.html
  8. 65
      deps/npm/html/api/deprecate.html
  9. 60
      deps/npm/html/api/docs.html
  10. 65
      deps/npm/html/api/edit.html
  11. 59
      deps/npm/html/api/explore.html
  12. 88
      deps/npm/html/api/find.html
  13. 68
      deps/npm/html/api/get.html
  14. 67
      deps/npm/html/api/help-search.html
  15. 60
      deps/npm/html/api/home.html
  16. 70
      deps/npm/html/api/init.html
  17. 60
      deps/npm/html/api/install.html
  18. 74
      deps/npm/html/api/link.html
  19. 88
      deps/npm/html/api/list.html
  20. 74
      deps/npm/html/api/ln.html
  21. 67
      deps/npm/html/api/load.html
  22. 88
      deps/npm/html/api/ls.html
  23. 126
      deps/npm/html/api/npm.html
  24. 54
      deps/npm/html/api/outdated.html
  25. 69
      deps/npm/html/api/owner.html
  26. 60
      deps/npm/html/api/pack.html
  27. 56
      deps/npm/html/api/prefix.html
  28. 58
      deps/npm/html/api/prune.html
  29. 67
      deps/npm/html/api/publish.html
  30. 57
      deps/npm/html/api/rebuild.html
  31. 62
      deps/npm/html/api/restart.html
  32. 57
      deps/npm/html/api/rm.html
  33. 56
      deps/npm/html/api/root.html
  34. 64
      deps/npm/html/api/run-script.html
  35. 67
      deps/npm/html/api/search.html
  36. 68
      deps/npm/html/api/set.html
  37. 54
      deps/npm/html/api/start.html
  38. 54
      deps/npm/html/api/stop.html
  39. 68
      deps/npm/html/api/submodule.html
  40. 64
      deps/npm/html/api/tag.html
  41. 57
      deps/npm/html/api/test.html
  42. 57
      deps/npm/html/api/uninstall.html
  43. 61
      deps/npm/html/api/unpublish.html
  44. 53
      deps/npm/html/api/update.html
  45. 59
      deps/npm/html/api/version.html
  46. 134
      deps/npm/html/api/view.html
  47. 56
      deps/npm/html/api/whoami.html
  48. 311
      deps/npm/html/doc/README.html
  49. 74
      deps/npm/html/doc/adduser.html
  50. 69
      deps/npm/html/doc/author.html
  51. 55
      deps/npm/html/doc/bin.html
  52. 71
      deps/npm/html/doc/bugs.html
  53. 60
      deps/npm/html/doc/build.html
  54. 55
      deps/npm/html/doc/bundle.html
  55. 101
      deps/npm/html/doc/cache.html
  56. 69
      deps/npm/html/doc/changelog.html
  57. 226
      deps/npm/html/doc/coding-style.html
  58. 68
      deps/npm/html/doc/completion.html
  59. 621
      deps/npm/html/doc/config.html
  60. 64
      deps/npm/html/doc/deprecate.html
  61. 185
      deps/npm/html/doc/developers.html
  62. 72
      deps/npm/html/doc/docs.html
  63. 72
      deps/npm/html/doc/edit.html
  64. 75
      deps/npm/html/doc/explore.html
  65. 250
      deps/npm/html/doc/faq.html
  66. 75
      deps/npm/html/doc/find.html
  67. 240
      deps/npm/html/doc/folders.html
  68. 621
      deps/npm/html/doc/get.html
  69. 240
      deps/npm/html/doc/global.html
  70. 73
      deps/npm/html/doc/help-search.html
  71. 71
      deps/npm/html/doc/help.html
  72. 72
      deps/npm/html/doc/home.html
  73. 407
      deps/npm/html/doc/index.html
  74. 64
      deps/npm/html/doc/init.html
  75. 169
      deps/npm/html/doc/install.html
  76. 471
      deps/npm/html/doc/json.html
  77. 93
      deps/npm/html/doc/link.html
  78. 87
      deps/npm/html/doc/list.html
  79. 93
      deps/npm/html/doc/ln.html
  80. 87
      deps/npm/html/doc/ls.html
  81. 170
      deps/npm/html/doc/npm.html
  82. 56
      deps/npm/html/doc/outdated.html
  83. 69
      deps/npm/html/doc/owner.html
  84. 64
      deps/npm/html/doc/pack.html
  85. 55
      deps/npm/html/doc/prefix.html
  86. 60
      deps/npm/html/doc/prune.html
  87. 64
      deps/npm/html/doc/publish.html
  88. 60
      deps/npm/html/doc/rebuild.html
  89. 132
      deps/npm/html/doc/registry.html
  90. 93
      deps/npm/html/doc/removing-npm.html
  91. 59
      deps/npm/html/doc/restart.html
  92. 57
      deps/npm/html/doc/rm.html
  93. 55
      deps/npm/html/doc/root.html
  94. 58
      deps/npm/html/doc/run-script.html
  95. 199
      deps/npm/html/doc/scripts.html
  96. 75
      deps/npm/html/doc/search.html
  97. 139
      deps/npm/html/doc/semver.html
  98. 621
      deps/npm/html/doc/set.html
  99. 61
      deps/npm/html/doc/star.html
  100. 55
      deps/npm/html/doc/start.html

15
deps/npm/.gitignore

@ -1,15 +0,0 @@
*.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
html/api/*.html
html/doc/*.html
man/
doc/*/index.md
./npmrc

365
deps/npm/doc/cli/index.md

@ -0,0 +1,365 @@
npm-index(1) -- Index of all npm documentation
==============================================
## npm-README(1)
node package manager
# Command Line Documentation
## npm-adduser(1)
Add a registry user account
## npm-bin(1)
Display npm bin folder
## npm-bugs(1)
Bugs for a package in a web browser maybe
## npm-build(1)
Build a package
## npm-bundle(1)
REMOVED
## npm-cache(1)
Manipulates packages cache
## npm-changelog(1)
Changes
## npm-coding-style(1)
npm's "funny" coding style
## npm-completion(1)
Tab Completion for npm
## npm-config(1)
Manage the npm configuration file
## npm-deprecate(1)
Deprecate a version of a package
## npm-developers(1)
Developer Guide
## npm-docs(1)
Docs for a package in a web browser maybe
## npm-edit(1)
Edit an installed package
## npm-explore(1)
Browse an installed package
## npm-faq(1)
Frequently Asked Questions
## npm-folders(1)
Folder Structures Used by npm
## npm-help-search(1)
Search npm help documentation
## npm-help(1)
Get help on npm
## npm-init(1)
Interactively create a package.json file
## npm-install(1)
Install a package
## npm-json(1)
Specifics of npm's package.json handling
## npm-link(1)
Symlink a package folder
## npm-list(1)
List installed packages
## npm-npm(1)
node package manager
## npm-outdated(1)
Check for outdated packages
## npm-owner(1)
Manage package owners
## npm-pack(1)
Create a tarball from a package
## npm-prefix(1)
Display prefix
## npm-prune(1)
Remove extraneous packages
## npm-publish(1)
Publish a package
## npm-rebuild(1)
Rebuild a package
## npm-registry(1)
The JavaScript Package Registry
## npm-removing-npm(1)
Cleaning the Slate
## npm-restart(1)
Start a package
## npm-root(1)
Display npm root
## npm-run-script(1)
Run arbitrary package scripts
## npm-scripts(1)
How npm handles the "scripts" field
## npm-search(1)
Search for packages
## npm-semver(1)
The semantic versioner for npm
## npm-star(1)
Mark your favorite packages
## npm-start(1)
Start a package
## npm-stop(1)
Stop a package
## npm-submodule(1)
Add a package as a git submodule
## npm-tag(1)
Tag a published version
## npm-test(1)
Test a package
## npm-uninstall(1)
Remove a package
## npm-unpublish(1)
Remove a package from the registry
## npm-update(1)
Update a package
## npm-version(1)
Bump a package version
## npm-view(1)
View registry info
## npm-whoami(1)
Display npm username
# API Documentation
## npm-bin(3)
Display npm bin folder
## npm-bugs(3)
Bugs for a package in a web browser maybe
## npm-commands(3)
npm commands
## npm-config(3)
Manage the npm configuration files
## npm-deprecate(3)
Deprecate a version of a package
## npm-docs(3)
Docs for a package in a web browser maybe
## npm-edit(3)
Edit an installed package
## npm-explore(3)
Browse an installed package
## npm-help-search(3)
Search the help pages
## npm-init(3)
Interactively create a package.json file
## npm-install(3)
install a package programmatically
## npm-link(3)
Symlink a package folder
## npm-load(3)
Load config settings
## npm-ls(3)
List installed packages
## npm-npm(3)
node package manager
## npm-outdated(3)
Check for outdated packages
## npm-owner(3)
Manage package owners
## npm-pack(3)
Create a tarball from a package
## npm-prefix(3)
Display prefix
## npm-prune(3)
Remove extraneous packages
## npm-publish(3)
Publish a package
## npm-rebuild(3)
Rebuild a package
## npm-restart(3)
Start a package
## npm-root(3)
Display npm root
## npm-run-script(3)
Run arbitrary package scripts
## npm-search(3)
Search for packages
## npm-start(3)
Start a package
## npm-stop(3)
Stop a package
## npm-submodule(3)
Add a package as a git submodule
## npm-tag(3)
Tag a published version
## npm-test(3)
Test a package
## npm-uninstall(3)
uninstall a package programmatically
## npm-unpublish(3)
Remove a package from the registry
## npm-update(3)
Update a package
## npm-version(3)
Bump a package version
## npm-view(3)
View registry info
## npm-whoami(3)
Display npm username

69
deps/npm/html/api/author.html

@ -0,0 +1,69 @@
<!doctype html>
<html>
<title>author</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/owner.html">owner</a></h1> <p>Manage package owners</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.owner(args, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>The first element of the 'args' parameter defines what to do, and the subsequent
elements depend on the action. Possible values for the action are (order of
parameters are given in parenthesis):</p>
<ul><li>ls (package):
List all the users who have access to modify a package and push new versions.
Handy when you need to know who to bug for help.</li><li>add (user, package):
Add a new user as a maintainer of a package. This user is enabled to modify
metadata, publish new versions, and add other owners.</li><li>rm (user, package):
Remove a user from the package owner list. This immediately revokes their
privileges.</li></ul>
<p>Note that there is only one level of access. Either you can modify a package,
or you can't. Future versions may contain more fine-grained access levels, but
that is not implemented at this time.</p>
<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">author &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

54
deps/npm/html/api/bin.html

@ -0,0 +1,54 @@
<!doctype html>
<html>
<title>bin</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/bin.html">bin</a></h1> <p>Display npm bin folder</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.bin(args, cb)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Print the folder where npm will install executables.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

60
deps/npm/html/api/bugs.html

@ -0,0 +1,60 @@
<!doctype html>
<html>
<title>bugs</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/bugs.html">bugs</a></h1> <p>Bugs for a package in a web browser maybe</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.bugs(package, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command tries to guess at the likely location of a package's
bug tracker URL, and then tries to open it using the <code>--browser</code>
config param.</p>
<p>Like other commands, the first parameter is an array. This command only
uses the first element, which is expected to be a package name with an
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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

63
deps/npm/html/api/commands.html

@ -0,0 +1,63 @@
<!doctype html>
<html>
<title>commands</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/commands.html">commands</a></h1> <p>npm commands</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands[&lt;command&gt;](args, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm comes with a full set of commands, and each of the commands takes a
similar set of arguments.</p>
<p>In general, all commands on the command object take an <strong>array</strong> of positional
argument <strong>strings</strong>. The last argument to any function is a callback. Some
commands are special and take other optional arguments.</p>
<p>All commands have their own man page. See <code>man npm-&lt;command&gt;</code> for command-line
usage, or <code>man 3 npm-&lt;command&gt;</code> for programmatic usage.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

68
deps/npm/html/api/config.html

@ -0,0 +1,68 @@
<!doctype html>
<html>
<title>config</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/config.html">config</a></h1> <p>Manage the npm configuration files</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.config(args, callback)
var val = npm.config.get(key)
npm.config.set(key, val)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This function acts much the same way as the command-line version. The first
element in the array tells config what to do. Possible values are:</p>
<ul><li><p><code>set</code></p><p>Sets a config parameter. The second element in <code>args</code> is interpreted as the
key, and the third element is interpreted as the value.</p></li><li><p><code>get</code></p><p>Gets the value of a config parameter. The second element in <code>args</code> is the
key to get the value of.</p></li><li><p><code>delete</code> (<code>rm</code> or <code>del</code>)</p><p>Deletes a parameter from the config. The second element in <code>args</code> is the
key to delete.</p></li><li><p><code>list</code> (<code>ls</code>)</p><p>Show all configs that aren't secret. No parameters necessary.</p></li><li><p><code>edit</code>:</p><p>Opens the config file in the default editor. This command isn't very useful
programmatically, but it is made available.</p></li></ul>
<p>To programmatically access npm configuration settings, or set them for
the duration of a program, use the <code>npm.config.set</code> and <code>npm.config.get</code>
functions instead.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

65
deps/npm/html/api/deprecate.html

@ -0,0 +1,65 @@
<!doctype html>
<html>
<title>deprecate</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/deprecate.html">deprecate</a></h1> <p>Deprecate a version of a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.deprecate(args, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command will update the npm registry entry for a package, providing
a deprecation warning to all who attempt to install it.</p>
<p>The 'args' parameter must have exactly two elements:</p>
<ul><li><p><code>package[@version]</code></p><p>The <code>version</code> portion is optional, and may be either a range, or a
specific version, or a tag.</p></li><li><p><code>message</code></p><p>The warning message that will be printed whenever a user attempts to
install the package.</p></li></ul>
<p>Note that you must be the package owner to deprecate something. See the
<code>owner</code> and <code>adduser</code> help topics.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

60
deps/npm/html/api/docs.html

@ -0,0 +1,60 @@
<!doctype html>
<html>
<title>docs</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/docs.html">docs</a></h1> <p>Docs for a package in a web browser maybe</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.docs(package, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command tries to guess at the likely location of a package's
documentation URL, and then tries to open it using the <code>--browser</code>
config param.</p>
<p>Like other commands, the first parameter is an array. This command only
uses the first element, which is expected to be a package name with an
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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

65
deps/npm/html/api/edit.html

@ -0,0 +1,65 @@
<!doctype html>
<html>
<title>edit</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/edit.html">edit</a></h1> <p>Edit an installed package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.edit(package, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Opens the package folder in the default editor (or whatever you've
configured as the npm <code>editor</code> config -- see <code>npm help config</code>.)</p>
<p>After it has been edited, the package is rebuilt so as to pick up any
changes in compiled packages.</p>
<p>For instance, you can do <code>npm install connect</code> to install connect
into your package, and then <code>npm.commands.edit(["connect"], callback)</code>
to make a few changes to your locally installed copy.</p>
<p>The first parameter is a string array with a single element, the package
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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

59
deps/npm/html/api/explore.html

@ -0,0 +1,59 @@
<!doctype html>
<html>
<title>explore</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/explore.html">explore</a></h1> <p>Browse an installed package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.explore(args, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Spawn a subshell in the directory of the installed package specified.</p>
<p>If a command is specified, then it is run in the subshell, which then
immediately terminates.</p>
<p>Note that the package is <em>not</em> automatically rebuilt afterwards, so be
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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

88
deps/npm/html/api/find.html

@ -0,0 +1,88 @@
<!doctype html>
<html>
<title>find</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/ls.html">ls</a></h1> <p>List installed packages</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.ls(args, [silent,] callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command will print to stdout all the versions of packages that are
installed, as well as their dependencies, in a tree-structure. It will also
return that data using the callback.</p>
<p>This command does not take any arguments, but args must be defined.
Beyond that, if any arguments are passed in, npm will politely warn that it
does not take positional arguments, though you may set config flags
like with any other command, such as <code>global</code> to list global packages.</p>
<p>It will print out extraneous, missing, and invalid packages.</p>
<p>If the silent parameter is set to true, nothing will be output to the screen,
but the data will still be returned.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<h3 id="long">long</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Show extended information.</p>
<h3 id="parseable">parseable</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Show parseable output instead of tree view.</p>
<h3 id="global">global</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>List packages in the global install prefix instead of in the current
project.</p>
<p>Note, if parseable is set or long isn't set, then duplicates will be trimmed.
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">find &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

68
deps/npm/html/api/get.html

@ -0,0 +1,68 @@
<!doctype html>
<html>
<title>get</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/config.html">config</a></h1> <p>Manage the npm configuration files</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.config(args, callback)
var val = npm.config.get(key)
npm.config.set(key, val)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This function acts much the same way as the command-line version. The first
element in the array tells config what to do. Possible values are:</p>
<ul><li><p><code>set</code></p><p>Sets a config parameter. The second element in <code>args</code> is interpreted as the
key, and the third element is interpreted as the value.</p></li><li><p><code>get</code></p><p>Gets the value of a config parameter. The second element in <code>args</code> is the
key to get the value of.</p></li><li><p><code>delete</code> (<code>rm</code> or <code>del</code>)</p><p>Deletes a parameter from the config. The second element in <code>args</code> is the
key to delete.</p></li><li><p><code>list</code> (<code>ls</code>)</p><p>Show all configs that aren't secret. No parameters necessary.</p></li><li><p><code>edit</code>:</p><p>Opens the config file in the default editor. This command isn't very useful
programmatically, but it is made available.</p></li></ul>
<p>To programmatically access npm configuration settings, or set them for
the duration of a program, use the <code>npm.config.set</code> and <code>npm.config.get</code>
functions instead.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../api/npm.html">npm(3)</a></li></ul>
</div>
<p id="footer">get &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

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

@ -0,0 +1,67 @@
<!doctype html>
<html>
<title>help-search</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/help-search.html">help-search</a></h1> <p>Search the help pages</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.helpSearch(args, [silent,] callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command is rarely useful, but it exists in the rare case that it is.</p>
<p>This command takes an array of search terms and returns the help pages that
match in order of best match.</p>
<p>If there is only one match, then npm displays that help section. If there
are multiple results, the results are printed to the screen formatted and the
array of results is returned. Each result is an object with these properties:</p>
<ul><li>hits:
A map of args to number of hits on that arg. For example, {"npm": 3}</li><li>found:
Total number of unique args that matched.</li><li>totalHits:
Total number of hits.</li><li>lines:
An array of all matching lines (and some adjacent lines).</li><li>file:
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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

60
deps/npm/html/api/home.html

@ -0,0 +1,60 @@
<!doctype html>
<html>
<title>home</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/docs.html">docs</a></h1> <p>Docs for a package in a web browser maybe</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.docs(package, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command tries to guess at the likely location of a package's
documentation URL, and then tries to open it using the <code>--browser</code>
config param.</p>
<p>Like other commands, the first parameter is an array. This command only
uses the first element, which is expected to be a package name with an
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">home &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

70
deps/npm/html/api/init.html

@ -0,0 +1,70 @@
<!doctype html>
<html>
<title>init</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1>npm init(3)</h1> <p>Interactively create a package.json file</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.init(args, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This will ask you a bunch of questions, and then write a package.json for you.</p>
<p>It attempts to make reasonable guesses about what you want things to be set to,
and then writes a package.json file with the options you've selected.</p>
<p>If you already have a package.json file, it'll read that first, and default to
the options in there.</p>
<p>It is strictly additive, so it does not delete options from your package.json
without a really good reason to do so.</p>
<p>Since this function expects to be run on the command-line, it doesn't work very
well as a programmatically. The best option is to roll your own, and since
JavaScript makes it stupid simple to output formatted JSON, that is the
preferred method. If you're sure you want to handle command-line prompting,
then go ahead and use this programmatically.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

60
deps/npm/html/api/install.html

@ -0,0 +1,60 @@
<!doctype html>
<html>
<title>install</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/install.html">install</a></h1> <p>install a package programmatically</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.install([where,] packages, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This acts much the same ways as installing on the command-line.</p>
<p>The 'where' parameter is optional and only used internally, and it specifies
where the packages should be installed to.</p>
<p>The 'packages' parameter is an array of strings. Each element in the array is
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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

74
deps/npm/html/api/link.html

@ -0,0 +1,74 @@
<!doctype html>
<html>
<title>link</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/link.html">link</a></h1> <p>Symlink a package folder</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.command.link(callback)
npm.command.link(packages, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Package linking is a two-step process.</p>
<p>Without parameters, link will create a globally-installed
symbolic link from <code>prefix/package-name</code> to the current folder.</p>
<p>With a parameters, link will create a symlink from the local <code>node_modules</code>
folder to the global symlink.</p>
<p>When creating tarballs for <code>npm publish</code>, the linked packages are
"snapshotted" to their current state by resolving the symbolic links.</p>
<p>This is
handy for installing your own stuff, so that you can work on it and test it
iteratively without having to continually rebuild.</p>
<p>For example:</p>
<pre><code>npm.commands.link(cb) # creates global link from the cwd
# (say redis package)
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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

88
deps/npm/html/api/list.html

@ -0,0 +1,88 @@
<!doctype html>
<html>
<title>list</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/ls.html">ls</a></h1> <p>List installed packages</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.ls(args, [silent,] callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command will print to stdout all the versions of packages that are
installed, as well as their dependencies, in a tree-structure. It will also
return that data using the callback.</p>
<p>This command does not take any arguments, but args must be defined.
Beyond that, if any arguments are passed in, npm will politely warn that it
does not take positional arguments, though you may set config flags
like with any other command, such as <code>global</code> to list global packages.</p>
<p>It will print out extraneous, missing, and invalid packages.</p>
<p>If the silent parameter is set to true, nothing will be output to the screen,
but the data will still be returned.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<h3 id="long">long</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Show extended information.</p>
<h3 id="parseable">parseable</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Show parseable output instead of tree view.</p>
<h3 id="global">global</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>List packages in the global install prefix instead of in the current
project.</p>
<p>Note, if parseable is set or long isn't set, then duplicates will be trimmed.
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">list &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

74
deps/npm/html/api/ln.html

@ -0,0 +1,74 @@
<!doctype html>
<html>
<title>ln</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/link.html">link</a></h1> <p>Symlink a package folder</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.command.link(callback)
npm.command.link(packages, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Package linking is a two-step process.</p>
<p>Without parameters, link will create a globally-installed
symbolic link from <code>prefix/package-name</code> to the current folder.</p>
<p>With a parameters, link will create a symlink from the local <code>node_modules</code>
folder to the global symlink.</p>
<p>When creating tarballs for <code>npm publish</code>, the linked packages are
"snapshotted" to their current state by resolving the symbolic links.</p>
<p>This is
handy for installing your own stuff, so that you can work on it and test it
iteratively without having to continually rebuild.</p>
<p>For example:</p>
<pre><code>npm.commands.link(cb) # creates global link from the cwd
# (say redis package)
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">ln &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

67
deps/npm/html/api/load.html

@ -0,0 +1,67 @@
<!doctype html>
<html>
<title>load</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/load.html">load</a></h1> <p>Load config settings</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.load(conf, cb)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm.load() must be called before any other function call. Both parameters are
optional, but the second is recommended.</p>
<p>The first parameter is an object hash of command-line config params, and the
second parameter is a callback that will be called when npm is loaded and
ready to serve.</p>
<p>The first parameter should follow a similar structure as the package.json
config object.</p>
<p>For example, to emulate the --dev flag, pass an object that looks like this:</p>
<pre><code>{
"dev": true
}</code></pre>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

88
deps/npm/html/api/ls.html

@ -0,0 +1,88 @@
<!doctype html>
<html>
<title>ls</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/ls.html">ls</a></h1> <p>List installed packages</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.ls(args, [silent,] callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command will print to stdout all the versions of packages that are
installed, as well as their dependencies, in a tree-structure. It will also
return that data using the callback.</p>
<p>This command does not take any arguments, but args must be defined.
Beyond that, if any arguments are passed in, npm will politely warn that it
does not take positional arguments, though you may set config flags
like with any other command, such as <code>global</code> to list global packages.</p>
<p>It will print out extraneous, missing, and invalid packages.</p>
<p>If the silent parameter is set to true, nothing will be output to the screen,
but the data will still be returned.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<h3 id="long">long</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Show extended information.</p>
<h3 id="parseable">parseable</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Show parseable output instead of tree view.</p>
<h3 id="global">global</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>List packages in the global install prefix instead of in the current
project.</p>
<p>Note, if parseable is set or long isn't set, then duplicates will be trimmed.
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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

126
deps/npm/html/api/npm.html

@ -0,0 +1,126 @@
<!doctype html>
<html>
<title>npm</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/npm.html">npm</a></h1> <p>node package manager</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>var npm = require("npm")
npm.load(configObject, function (er, npm) {
// use the npm object, now that it's loaded.
npm.config.set(key, val)
val = npm.config.get(key)
console.log("prefix = %s", npm.prefix)
npm.commands.install(["package"], cb)
})</code></pre>
<h2 id="VERSION">VERSION</h2>
<p>1.1.0-alpha-2</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This is the API documentation for npm.
To find documentation of the command line
client, see <code><a href="../doc/npm.html">npm(1)</a></code>.</p>
<p>Prior to using npm's commands,
<code>npm.load()</code> must be called with an object hash of
top-level configs. In the npm command line client,
this set of configs is parsed from the command line options. Additional
configuration params are loaded from two configuration files. See
<code><a href="../doc/config.html">config(1)</a></code> for more information.</p>
<p>After that, each of the functions are accessible in the
commands object: <code>npm.commands.&lt;cmd&gt;</code>. See <code><a href="../doc/index.html">index(1)</a></code> for a list of
all possible commands.</p>
<p>All commands on the command object take an <strong>array</strong> of positional argument
<strong>strings</strong>. The last argument to any function is a callback. Some
commands take other optional arguments.</p>
<p>Configs cannot currently be set on a per function basis, as each call to
npm.config.set will change the value for <em>all</em> npm commands in that process.</p>
<p>To find API documentation for a specific command, run the <code>npm apihelp</code>
command.</p>
<h2 id="METHODS-AND-PROPERTIES">METHODS AND PROPERTIES</h2>
<ul><li><p><code>npm.load(configs, cb)</code></p><p>Load the configuration params, and call the <code>cb</code> function once the
globalconfig and userconfig files have been loaded as well, or on
nextTick if they've already been loaded.</p></li><li><p><code>npm.config</code></p><p>An object for accessing npm configuration parameters.</p><ul><li><p><code>npm.config.get(key)</code></p></li><li><code>npm.config.set(key, val)</code></li><li><p><code>npm.config.del(key)</code></p></li></ul></li><li><p><code>npm.dir</code> or <code>npm.root</code></p><p>The <code>node_modules</code> directory where npm will operate.</p></li><li><p><code>npm.prefix</code></p><p>The prefix where npm is operating. (Most often the current working
directory.)</p></li><li><p><code>npm.cache</code></p><p>The place where npm keeps JSON and tarballs it fetches from the
registry (or uploads to the registry).</p></li><li><p><code>npm.tmp</code></p><p>npm's temporary working directory.</p></li><li><p><code>npm.deref</code></p><p>Get the "real" name for a command that has either an alias or
abbreviation.</p></li></ul>
<h2 id="MAGIC">MAGIC</h2>
<p>For each of the methods in the <code>npm.commands</code> hash, a method is added to
the npm object, which takes a set of positional string arguments rather
than an array and a callback.</p>
<p>If the last argument is a callback, then it will use the supplied
callback. However, if no callback is provided, then it will print out
the error or results.</p>
<p>For example, this would work in a node repl:</p>
<pre><code>&gt; npm = require("npm")
&gt; npm.load() // wait a sec...
&gt; npm.install("dnode", "express")</code></pre>
<p>Note that that <em>won't</em> work in a node program, since the <code>install</code>
method will get called before the configuration load is completed.</p>
<h2 id="ABBREVS">ABBREVS</h2>
<p>In order to support <code>npm ins foo</code> instead of <code>npm install foo</code>, the
<code>npm.commands</code> object has a set of abbreviations as well as the full
method names. Use the <code>npm.deref</code> method to find the real name.</p>
<p>For example:</p>
<pre><code>var cmd = npm.deref("unp") // cmd === "unpublish"</code></pre>
</div>
<p id="footer">npm &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

54
deps/npm/html/api/outdated.html

@ -0,0 +1,54 @@
<!doctype html>
<html>
<title>outdated</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/outdated.html">outdated</a></h1> <p>Check for outdated packages</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.outdated([packages,] callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command will check the registry to see if the specified packages are
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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

69
deps/npm/html/api/owner.html

@ -0,0 +1,69 @@
<!doctype html>
<html>
<title>owner</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/owner.html">owner</a></h1> <p>Manage package owners</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.owner(args, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>The first element of the 'args' parameter defines what to do, and the subsequent
elements depend on the action. Possible values for the action are (order of
parameters are given in parenthesis):</p>
<ul><li>ls (package):
List all the users who have access to modify a package and push new versions.
Handy when you need to know who to bug for help.</li><li>add (user, package):
Add a new user as a maintainer of a package. This user is enabled to modify
metadata, publish new versions, and add other owners.</li><li>rm (user, package):
Remove a user from the package owner list. This immediately revokes their
privileges.</li></ul>
<p>Note that there is only one level of access. Either you can modify a package,
or you can't. Future versions may contain more fine-grained access levels, but
that is not implemented at this time.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

60
deps/npm/html/api/pack.html

@ -0,0 +1,60 @@
<!doctype html>
<html>
<title>pack</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/pack.html">pack</a></h1> <p>Create a tarball from a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.pack([packages,] callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>For anything that's installable (that is, a package folder, tarball,
tarball url, name@tag, name@version, or name), this command will fetch
it to the cache, and then copy the tarball to the current working
directory as <code>&lt;name&gt;-&lt;version&gt;.tgz</code>, and then write the filenames out to
stdout.</p>
<p>If the same package is specified multiple times, then the file will be
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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

56
deps/npm/html/api/prefix.html

@ -0,0 +1,56 @@
<!doctype html>
<html>
<title>prefix</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/prefix.html">prefix</a></h1> <p>Display prefix</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.prefix(args, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Print the prefix to standard out.</p>
<p>'args' is never used and callback is never called with data.
'args' must be present or things will break.</p>
<p>This function is not useful programmatically</p>
</div>
<p id="footer">prefix &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

58
deps/npm/html/api/prune.html

@ -0,0 +1,58 @@
<!doctype html>
<html>
<title>prune</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/prune.html">prune</a></h1> <p>Remove extraneous packages</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.prune([packages,] callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command removes "extraneous" packages.</p>
<p>The first parameter is optional, and it specifies packages to be removed.</p>
<p>No packages are specified, then all packages will be checked.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

67
deps/npm/html/api/publish.html

@ -0,0 +1,67 @@
<!doctype html>
<html>
<title>publish</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/publish.html">publish</a></h1> <p>Publish a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.publish([packages,] callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Publishes a package to the registry so that it can be installed by name.
Possible values in the 'packages' array are:</p>
<ul><li><p><code>&lt;folder&gt;</code>:
A folder containing a package.json file</p></li><li><p><code>&lt;tarball&gt;</code>:
A url or file path to a gzipped tar archive containing a single folder
with a package.json file inside.</p></li></ul>
<p>If the package array is empty, npm will try to publish something in the
current working directory.</p>
<p>This command could fails if one of the packages specified already exists in
the registry. Overwrites when the "force" environment variable is set.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

57
deps/npm/html/api/rebuild.html

@ -0,0 +1,57 @@
<!doctype html>
<html>
<title>rebuild</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/rebuild.html">rebuild</a></h1> <p>Rebuild a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.rebuild([packages,] callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command runs the <code>npm build</code> command on each of the matched packages. This is useful
when you install a new version of node, and must recompile all your C++ addons with
the new binary. If no 'packages' parameter is specify, every package will be rebuilt.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<p>See <code>npm help build</code></p>
</div>
<p id="footer">rebuild &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

62
deps/npm/html/api/restart.html

@ -0,0 +1,62 @@
<!doctype html>
<html>
<title>restart</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/restart.html">restart</a></h1> <p>Start a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.restart(packages, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This runs a package's "restart" script, if one was provided.
Otherwise it runs package's "stop" script, if one was provided, and then
the "start" script.</p>
<p>If no version is specified, then it restarts the "active" version.</p>
<p>npm can run tests on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

57
deps/npm/html/api/rm.html

@ -0,0 +1,57 @@
<!doctype html>
<html>
<title>rm</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/uninstall.html">uninstall</a></h1> <p>uninstall a package programmatically</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.uninstall(packages, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This acts much the same ways as uninstalling on the command-line.</p>
<p>The 'packages' parameter is an array of strings. Each element in the array is
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">rm &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

56
deps/npm/html/api/root.html

@ -0,0 +1,56 @@
<!doctype html>
<html>
<title>root</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/root.html">root</a></h1> <p>Display npm root</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.root(args, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Print the effective <code>node_modules</code> folder to standard out.</p>
<p>'args' is never used and callback is never called with data.
'args' must be present or things will break.</p>
<p>This function is not useful programmatically.</p>
</div>
<p id="footer">root &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

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

@ -0,0 +1,64 @@
<!doctype html>
<html>
<title>run-script</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/run-script.html">run-script</a></h1> <p>Run arbitrary package scripts</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.run-script(args, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This runs an arbitrary command from a package's "scripts" object.</p>
<p>It is used by the test, start, restart, and stop commands, but can be
called directly, as well.</p>
<p>The 'args' parameter is an array of strings. Behavior depends on the number
of elements. If there is only one element, npm assumes that the element
represents a command to be run on the local repository. If there is more than
one element, then the first is assumed to be the package and the second is
assumed to be the command to run. All other elements are ignored.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

67
deps/npm/html/api/search.html

@ -0,0 +1,67 @@
<!doctype html>
<html>
<title>search</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/search.html">search</a></h1> <p>Search for packages</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.search(searchTerms, [silent,] [staleness,] callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Search the registry for packages matching the search terms. The available parameters are:</p>
<ul><li>searchTerms:
Array of search terms. These terms are case-insensitive.</li><li>silent:
If true, npm will not log anything to the console.</li><li>staleness:
This is the threshold for stale packages. "Fresh" packages are not refreshed
from the registry. This value is measured in seconds.</li><li><p>callback:
Returns an object where each key is the name of a package, and the value
is information about that package along with a 'words' property, which is
a space-delimited string of all of the interesting words in that package.
The only properties included are those that are searched, which generally include:</p><ul><li>name</li><li>description</li><li>maintainers</li><li>url</li><li>keywords</li></ul></li></ul>
<p>A search on the registry excludes any result that does not match all of the
search terms. It also removes any items from the results that contain an
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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

68
deps/npm/html/api/set.html

@ -0,0 +1,68 @@
<!doctype html>
<html>
<title>set</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/config.html">config</a></h1> <p>Manage the npm configuration files</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.config(args, callback)
var val = npm.config.get(key)
npm.config.set(key, val)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This function acts much the same way as the command-line version. The first
element in the array tells config what to do. Possible values are:</p>
<ul><li><p><code>set</code></p><p>Sets a config parameter. The second element in <code>args</code> is interpreted as the
key, and the third element is interpreted as the value.</p></li><li><p><code>get</code></p><p>Gets the value of a config parameter. The second element in <code>args</code> is the
key to get the value of.</p></li><li><p><code>delete</code> (<code>rm</code> or <code>del</code>)</p><p>Deletes a parameter from the config. The second element in <code>args</code> is the
key to delete.</p></li><li><p><code>list</code> (<code>ls</code>)</p><p>Show all configs that aren't secret. No parameters necessary.</p></li><li><p><code>edit</code>:</p><p>Opens the config file in the default editor. This command isn't very useful
programmatically, but it is made available.</p></li></ul>
<p>To programmatically access npm configuration settings, or set them for
the duration of a program, use the <code>npm.config.set</code> and <code>npm.config.get</code>
functions instead.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../api/npm.html">npm(3)</a></li></ul>
</div>
<p id="footer">set &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

54
deps/npm/html/api/start.html

@ -0,0 +1,54 @@
<!doctype html>
<html>
<title>start</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/start.html">start</a></h1> <p>Start a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.start(packages, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This runs a package's "start" script, if one was provided.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

54
deps/npm/html/api/stop.html

@ -0,0 +1,54 @@
<!doctype html>
<html>
<title>stop</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/stop.html">stop</a></h1> <p>Stop a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.stop(packages, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This runs a package's "stop" script, if one was provided.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

68
deps/npm/html/api/submodule.html

@ -0,0 +1,68 @@
<!doctype html>
<html>
<title>submodule</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/submodule.html">submodule</a></h1> <p>Add a package as a git submodule</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.submodule(packages, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>For each package specified, npm will check if it has a git repository url
in its package.json description then add it as a git submodule at
<code>node_modules/&lt;pkg name&gt;</code>.</p>
<p>This is a convenience only. From then on, it's up to you to manage
updates by using the appropriate git commands. npm will stubbornly
refuse to update, modify, or remove anything with a <code>.git</code> subfolder
in it.</p>
<p>This command also does not install missing dependencies, if the package
does not include them in its git repository. If <code>npm ls</code> reports that
things are missing, you can either install, link, or submodule them yourself,
or you can do <code>npm explore &lt;pkgname&gt; -- npm install</code> to install the
dependencies into the submodule folder.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

64
deps/npm/html/api/tag.html

@ -0,0 +1,64 @@
<!doctype html>
<html>
<title>tag</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/tag.html">tag</a></h1> <p>Tag a published version</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.tag(package@version, tag, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Tags the specified version of the package with the specified tag, or the
<code>--tag</code> config if not specified.</p>
<p>The 'package@version' is an array of strings, but only the first two elements are
currently used.</p>
<p>The first element must be in the form package@version, where package
is the package name and version is the version number (much like installing a
specific version).</p>
<p>The second element is the name of the tag to tag this version with. If this
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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

57
deps/npm/html/api/test.html

@ -0,0 +1,57 @@
<!doctype html>
<html>
<title>test</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/test.html">test</a></h1> <p>Test a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code> npm.commands.test(packages, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This runs a package's "test" script, if one was provided.</p>
<p>To run tests as a condition of installation, set the <code>npat</code> config to
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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

57
deps/npm/html/api/uninstall.html

@ -0,0 +1,57 @@
<!doctype html>
<html>
<title>uninstall</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/uninstall.html">uninstall</a></h1> <p>uninstall a package programmatically</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.uninstall(packages, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This acts much the same ways as uninstalling on the command-line.</p>
<p>The 'packages' parameter is an array of strings. Each element in the array is
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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

61
deps/npm/html/api/unpublish.html

@ -0,0 +1,61 @@
<!doctype html>
<html>
<title>unpublish</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/unpublish.html">unpublish</a></h1> <p>Remove a package from the registry</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.unpublish(package, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This removes a package version from the registry, deleting its
entry and removing the tarball.</p>
<p>The package parameter must be defined.</p>
<p>Only the first element in the package parameter is used. If there is no first
element, then npm assumes that the package at the current working directory
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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

53
deps/npm/html/api/update.html

@ -0,0 +1,53 @@
<!doctype html>
<html>
<title>update</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/update.html">update</a></h1> <p>Update a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.update(packages, callback)</code></pre>
<h1>DESCRIPTION</h1>
<p>Updates a package, upgrading it to the latest version. It also installs any missing packages.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

59
deps/npm/html/api/version.html

@ -0,0 +1,59 @@
<!doctype html>
<html>
<title>version</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/version.html">version</a></h1> <p>Bump a package version</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.version(newversion, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Run this in a package directory to bump the version and write the new
data back to the package.json file.</p>
<p>If run in a git repo, it will also create a version commit and tag, and
fail if the repo is not clean.</p>
<p>Like all other commands, this function takes a string array as its first
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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

134
deps/npm/html/api/view.html

@ -0,0 +1,134 @@
<!doctype html>
<html>
<title>view</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/view.html">view</a></h1> <p>View registry info</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.view(args, [silent,] callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command shows data about a package and prints it to the stream
referenced by the <code>outfd</code> config, which defaults to stdout.</p>
<p>The "args" parameter is an ordered list that closely resembles the command-line
usage. The elements should be ordered such that the first element is
the package and version (package@version). The version is optional. After that,
the rest of the parameters are fields with optional subfields ("field.subfield")
which can be used to get only the information desired from the registry.</p>
<p>The callback will be passed all of the data returned by the query.</p>
<p>For example, to get the package registry entry for the <code>connect</code> package,
you can do this:</p>
<pre><code>npm.commands.view(["connect"], callback)</code></pre>
<p>If no version is specified, "latest" is assumed.</p>
<p>Field names can be specified after the package descriptor.
For example, to show the dependencies of the <code>ronn</code> package at version
0.3.5, you could do the following:</p>
<pre><code>npm.commands.view(["ronn@0.3.5", "dependencies"], callback)</code></pre>
<p>You can view child field by separating them with a period.
To view the git repository URL for the latest version of npm, you could
do this:</p>
<pre><code>npm.commands.view(["npm", "repository.url"], callback)</code></pre>
<p>For fields that are arrays, requesting a non-numeric field will return
all of the values from the objects in the list. For example, to get all
the contributor names for the "express" project, you can do this:</p>
<pre><code>npm.commands.view(["express", "contributors.email"], callback)</code></pre>
<p>You may also use numeric indices in square braces to specifically select
an item in an array field. To just get the email address of the first
contributor in the list, you can do this:</p>
<pre><code>npm.commands.view(["express", "contributors[0].email"], callback)</code></pre>
<p>Multiple fields may be specified, and will be printed one after another.
For exampls, to get all the contributor names and email addresses, you
can do this:</p>
<pre><code>npm.commands.view(["express", "contributors.name", "contributors.email"], callback)</code></pre>
<p>"Person" fields are shown as a string if they would be shown as an
object. So, for example, this will show the list of npm contributors in
the shortened string format. (See <code>npm help json</code> for more on this.)</p>
<pre><code>npm.commands.view(["npm", "contributors"], callback)</code></pre>
<p>If a version range is provided, then data will be printed for every
matching version of the package. This will show which version of jsdom
was required by each matching version of yui3:</p>
<pre><code>npm.commands.view(["yui3@'&gt;0.5.4'", "dependencies.jsdom"], callback)</code></pre>
<h2 id="OUTPUT">OUTPUT</h2>
<p>If only a single string field for a single version is output, then it
will not be colorized or quoted, so as to enable piping the output to
another command.</p>
<p>If the version range matches multiple versions, than each printed value
will be prefixed with the version it applies to.</p>
<p>If multiple fields are requested, than each of them are prefixed with
the field name.</p>
<p>Console output can be disabled by setting the 'silent' parameter to true.</p>
<h2 id="RETURN-VALUE">RETURN VALUE</h2>
<p>The data returned will be an object in this formation:</p>
<pre><code>{ &lt;version&gt;:
{ &lt;field&gt;: &lt;value&gt;
, ... }
, ... }</code></pre>
<p>corresponding to the list of fields selected.</p>
</div>
<p id="footer">view &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

56
deps/npm/html/api/whoami.html

@ -0,0 +1,56 @@
<!doctype html>
<html>
<title>whoami</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../api/whoami.html">whoami</a></h1> <p>Display npm username</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm.commands.whoami(args, callback)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Print the <code>username</code> config to standard output.</p>
<p>'args' is never used and callback is never called with data.
'args' must be present or things will break.</p>
<p>This function is not useful programmatically</p>
</div>
<p id="footer">whoami &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

311
deps/npm/html/doc/README.html

@ -0,0 +1,311 @@
<!doctype html>
<html>
<title>README</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/npm.html">npm</a></h1> <p>node package manager</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p>This is just enough info to get you up and running.</p>
<p>Much more info available via <code>npm help</code> once it's installed.</p>
<h2 id="IMPORTANT">IMPORTANT</h2>
<p><strong>You need node v0.4 or higher to run this program.</strong></p>
<p>To install an old <strong>and unsupported</strong> version of npm that works on node 0.3
and prior, clone the git repo and dig through the old tags and branches.</p>
<h2 id="Simple-Install-Unix-only-sorry">Simple Install (Unix only, sorry)</h2>
<p>To install npm with one command, do this:</p>
<pre><code>curl http://npmjs.org/install.sh | sh</code></pre>
<p>To skip the npm 0.x cleanup, do this:</p>
<pre><code>curl http://npmjs.org/install.sh | clean=no sh</code></pre>
<p>To say "yes" to the 0.x cleanup, but skip the prompt:</p>
<pre><code>curl http://npmjs.org/install.sh | clean=yes sh</code></pre>
<p>If you get permission errors, see the section below, entitled
"Permission Errors on Installation".</p>
<h2 id="Installing-on-Windows-Experimental">Installing on Windows -- Experimental</h2>
<p>Yes, this sucks. A convenient one-liner is coming soon.</p>
<h3 id="Step-1-Drop-the-node-exe-somewhere">Step 1: Drop the node.exe somewhere</h3>
<p>You will probably need the latest version of node, <strong>at least</strong> version
<code>0.5.8</code> or higher. You can get it from
<a href="http://nodejs.org/dist/v0.5.8/node.exe">http://nodejs.org/dist/v0.5.8/node.exe</a>.</p>
<h3 id="Step-2-optional-Update-the-PATH-environment-variable">Step 2 (optional): Update the %PATH% environment variable</h3>
<p>Update your <code>%PATH%</code> environment variable in System Properties:
Advanced: Environment, so that it includes the <code>bin</code> folder you chose.
The entries are separated by semicolons.</p>
<p>You <em>may</em> be able to do this from the command line using <code>set</code> and
<code>setx</code>. <code>cd</code> into the <code>bin</code> folder you created in step 1, and do this:</p>
<pre><code>set path=%PATH%;%CD%
setx path "%PATH%"</code></pre>
<p>This will have the added advantage that you'll be able to simply type
<code>npm</code> or <code>node</code> in any project folder to access those commands.</p>
<p>If you decide not to update the PATH, and put the node.exe file in
<code>C:\node\node.exe</code>, then the npm executable will end up <code>C:\node\npm.cmd</code>,
and you'll have to type <code>C:\node\npm &lt;command&gt;</code> to use it.</p>
<h3 id="Step-3-Install-git">Step 3: Install git</h3>
<p>If you don't already have git,
<a href="https://git.wiki.kernel.org/index.php/MSysGit:InstallMSysGit">install it</a>.</p>
<p>Run <code>git --version</code> to make sure that it's at least version 1.7.6.</p>
<h3 id="Step-4-install-npm">Step 4: install npm</h3>
<p>Lastly, <strong>after</strong> node.exe, git, and your %PATH% have <em>all</em> been set up
properly, install npm itself:</p>
<pre><code>git config --system http.sslcainfo /bin/curl-ca-bundle.crt
git clone --recursive git://github.com/isaacs/npm.git
cd npm
node cli.js install npm -gf</code></pre>
<h2 id="Permission-Errors-EACCES-or-EACCESS-on-Installation">Permission Errors (`EACCES` or `EACCESS`) on Installation</h2>
<p>On Windows, you may need to run the command prompt in elevated
permission mode. (Right-click on cmd.exe, Run as Administrator.)</p>
<p>On Unix, you may need to run as root, or use <code>sudo</code>.</p>
<p><strong>Note</strong>: You would need to <code>sudo</code> the <code>sh</code>, <strong>not</strong> the <code>curl</code>. Fetching
stuff from the internet typically doesn't require elevated permissions.
Running it might.</p>
<p>I highly recommend that you first download the file, and make sure that
it is what you expect, and <em>then</em> run it.</p>
<pre><code>curl -O http://npmjs.org/install.sh
# inspect file..
sudo sh install.sh</code></pre>
<h2 id="Installing-on-Cygwin">Installing on Cygwin</h2>
<p>No.</p>
<h2 id="Dev-Install">Dev Install</h2>
<p>To install the latest <strong>unstable</strong> development version from git:</p>
<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>
<p>and npm will install itself.</p>
<p>If you don't have make, and don't have curl or git, and ALL you have is
this code and node, you can probably do this:</p>
<pre><code>git submodule update --init --recursive
sudo node ./cli.js install -g</code></pre>
<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>
<ul><li>Use <code>sudo</code> for greater safety. Or don't, if you prefer not to.</li><li>npm will downgrade permissions if it's root before running any build
scripts that package authors specified.</li></ul>
<h3 id="More-details">More details...</h3>
<p>As of version 0.3, it is recommended to run npm as root.
This allows npm to change the user identifier to the <code>nobody</code> user prior
to running any package build or test commands.</p>
<p>If you are not the root user, or if you are on a platform that does not
support uid switching, then npm will not attempt to change the userid.</p>
<p>If you would like to ensure that npm <strong>always</strong> runs scripts as the
"nobody" user, and have it fail if it cannot downgrade permissions, then
set the following configuration param:</p>
<pre><code>npm config set unsafe-perm false</code></pre>
<p>This will prevent running in unsafe mode, even as non-root users.</p>
<h2 id="Uninstalling">Uninstalling</h2>
<p>So sad to see you go.</p>
<pre><code>sudo npm uninstall npm -g</code></pre>
<p>Or, if that fails,</p>
<pre><code>sudo make uninstall</code></pre>
<h2 id="More-Severe-Uninstalling">More Severe Uninstalling</h2>
<p>Usually, the above instructions are sufficient. That will remove
npm, but leave behind anything you've installed.</p>
<p>If you would like to remove all the packages that you have installed,
then you can use the <code>npm ls</code> command to find them, and then <code>npm rm</code> to
remove them.</p>
<p>To remove cruft left behind by npm 0.x, you can use the included
<code>clean-old.sh</code> script file. You can run it conveniently like this:</p>
<pre><code>npm explore npm -g -- sh scripts/clean-old.sh</code></pre>
<p>npm uses two configuration files, one for per-user configs, and another
for global (every-user) configs. You can view them by doing:</p>
<pre><code>npm config get userconfig # defaults to ~/.npmrc
npm config get globalconfig # defaults to /usr/local/etc/npmrc</code></pre>
<p>Uninstalling npm does not remove configuration files by default. You
must remove them yourself manually if you want them gone. Note that
this means that future npm installs will not remember the settings that
you have chosen.</p>
<h2 id="Using-npm-Programmatically">Using npm Programmatically</h2>
<p>If you would like to use npm programmatically, you can do that.
It's not very well documented, but it <em>is</em> rather simple.</p>
<pre><code>var npm = require("npm")
npm.load(myConfigObject, function (er) {
if (er) return handlError(er)
npm.commands.install(["some", "args"], function (er, data) {
if (er) return commandFailed(er)
// command succeeded, and data might have some info
})
npm.on("log", function (message) { .... })
})</code></pre>
<p>The <code>load</code> function takes an object hash of the command-line configs.
The various <code>npm.commands.&lt;cmd&gt;</code> functions take an <strong>array</strong> of
positional argument <strong>strings</strong>. The last argument to any
<code>npm.commands.&lt;cmd&gt;</code> function is a callback. Some commands take other
optional arguments. Read the source.</p>
<p>You cannot set configs individually for any single npm function at this
time. Since <code>npm</code> is a singleton, any call to <code>npm.config.set</code> will
change the value for <em>all</em> npm commands in that process.</p>
<p>See <code>./bin/npm-cli.js</code> for an example of pulling config values off of the
command line arguments using nopt. You may also want to check out <code>npm
help config</code> to learn about all the options you can set there.</p>
<h2 id="More-Docs">More Docs</h2>
<p>Check out the <a href="http://npmjs.org/doc/">docs</a>,
especially the
<a href="http://npmjs.org/doc/faq.html">faq</a>.</p>
<p>You can use the <code>npm help</code> command to read any of them.</p>
<p>If you're a developer, and you want to use npm to publish your program,
you should
<a href="http://npmjs.org/doc/developers.html">read this</a></p>
<h2 id="Legal-Stuff">Legal Stuff</h2>
<p>"npm" and "the npm registry" are owned by Isaac Z. Schlueter. All
rights not explicitly granted in the MIT license are reserved. See the
included LICENSE file for more details.</p>
<p>"Node.js" and "node" are trademarks owned by Joyent, Inc. npm is not
officially part of the Node.js project, and is neither owned by nor
officially affiliated with Joyent, Inc.</p>
<p>The packages in the npm registry are not part of npm itself, and are the
sole property of their respective maintainers. While every effort is
made to ensure accountability, there is absolutely no guarantee,
warrantee, or assertion made as to the quality, fitness for a specific
purpose, or lack of malice in any given npm package. Modules
published on the npm registry are not affiliated with or endorsed by
Joyent, Inc., Isaac Z. Schlueter, Ryan Dahl, or the Node.js project.</p>
<p>If you have a complaint about a package in the npm registry, and cannot
resolve it with the package owner, please express your concerns to
Isaac Z. Schlueter at <a href="mailto:i@izs.me">i@izs.me</a>.</p>
<h3 id="In-plain-english">In plain english</h3>
<p>This is mine; not my employer's, not Node's, not Joyent's, not Ryan
Dahl's.</p>
<p>If you publish something, it's yours, and you are solely accountable
for it. Not me, not Node, not Joyent, not Ryan Dahl.</p>
<p>If other people publish something, it's theirs. Not mine, not Node's,
not Joyent's, not Ryan Dahl's.</p>
<p>Yes, you can publish something evil. It will be removed promptly if
reported, and we'll lose respect for you. But there is no vetting
process for published modules.</p>
<p>If this concerns you, inspect the source before using packages.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

74
deps/npm/html/doc/adduser.html

@ -0,0 +1,74 @@
<!doctype html>
<html>
<title>adduser</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/adduser.html">adduser</a></h1> <p>Add a registry user account</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm adduser</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Create or verify a user named <code>&lt;username&gt;</code> in the npm registry, and
save the credentials to the <code>.npmrc</code> file.</p>
<p>The username, password, and email are read in from prompts.</p>
<p>You may use this command to change your email address, but not username
or password.</p>
<p>To reset your password, go to <a href="http://admin.npmjs.org/">http://admin.npmjs.org/</a></p>
<p>You may use this command multiple times with the same user account to
authorize on a new machine.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<h3 id="registry">registry</h3>
<p>Default: http://registry.npmjs.org/</p>
<p>The base URL of the npm package registry.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

69
deps/npm/html/doc/author.html

@ -0,0 +1,69 @@
<!doctype html>
<html>
<title>author</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/owner.html">owner</a></h1> <p>Manage package owners</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm owner ls &lt;package name&gt;
npm owner add &lt;user&gt; &lt;package name&gt;
npm owner rm &lt;user&gt; &lt;package name&gt;</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Manage ownership of published packages.</p>
<ul><li>ls:
List all the users who have access to modify a package and push new versions.
Handy when you need to know who to bug for help.</li><li>add:
Add a new user as a maintainer of a package. This user is enabled to modify
metadata, publish new versions, and add other owners.</li><li>rm:
Remove a user from the package owner list. This immediately revokes their
privileges.</li></ul>
<p>Note that there is only one level of access. Either you can modify a package,
or you can't. Future versions may contain more fine-grained access levels, but
that is not implemented at this time.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
</div>
<p id="footer">author &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

55
deps/npm/html/doc/bin.html

@ -0,0 +1,55 @@
<!doctype html>
<html>
<title>bin</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/bin.html">bin</a></h1> <p>Display npm bin folder</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm bin</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Print the folder where npm will install executables.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

71
deps/npm/html/doc/bugs.html

@ -0,0 +1,71 @@
<!doctype html>
<html>
<title>bugs</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/bugs.html">bugs</a></h1> <p>Bugs for a package in a web browser maybe</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm bugs &lt;pkgname&gt;</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command tries to guess at the likely location of a package's
bug tracker URL, and then tries to open it using the <code>--browser</code>
config param.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<h3 id="browser">browser</h3>
<ul><li>Default: OS X: <code>"open"</code>, others: <code>"google-chrome"</code></li><li>Type: String</li></ul>
<p>The browser that is called by the <code>npm bugs</code> command to open websites.</p>
<h3 id="registry">registry</h3>
<ul><li>Default: https://registry.npmjs.org/</li><li>Type: url</li></ul>
<p>The base URL of the npm package registry.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

60
deps/npm/html/doc/build.html

@ -0,0 +1,60 @@
<!doctype html>
<html>
<title>build</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/build.html">build</a></h1> <p>Build a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm build &lt;package-folder&gt;</code></pre>
<ul><li><code>&lt;package-folder&gt;</code>:
A folder containing a <code>package.json</code> file in its root.</li></ul>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This is the plumbing command called by <code>npm link</code> and <code>npm install</code>.</p>
<p>It should generally not be called directly.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

55
deps/npm/html/doc/bundle.html

@ -0,0 +1,55 @@
<!doctype html>
<html>
<title>bundle</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/bundle.html">bundle</a></h1> <p>REMOVED</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>The <code>npm bundle</code> command has been removed in 1.0, for the simple reason
that it is no longer necessary, as the default behavior is now to
install packages into the local space.</p>
<p>Just use <code>npm install</code> now to do what <code>npm bundle</code> used to do.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

101
deps/npm/html/doc/cache.html

@ -0,0 +1,101 @@
<!doctype html>
<html>
<title>cache</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/cache.html">cache</a></h1> <p>Manipulates packages cache</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm cache add &lt;tarball file&gt;
npm cache add &lt;folder&gt;
npm cache add &lt;tarball url&gt;
npm cache add &lt;name&gt;@&lt;version&gt;
npm cache ls [&lt;path&gt;]
npm cache clean [&lt;path&gt;]</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Used to add, list, or clear the npm cache folder.</p>
<ul><li><p>add:
Add the specified package to the local cache. This command is primarily
intended to be used internally by npm, but it can provide a way to
add data to the local installation cache explicitly.</p></li><li><p>ls:
Show the data in the cache. Argument is a path to show in the cache
folder. Works a bit like the <code>find</code> program, but limited by the
<code>depth</code> config.</p></li><li><p>clean:
Delete data out of the cache folder. If an argument is provided, then
it specifies a subpath to delete. If no argument is provided, then
the entire cache is cleared.</p></li></ul>
<h2 id="DETAILS">DETAILS</h2>
<p>npm stores cache data in <code>$HOME/.npm</code>. For each package that is added
to the cache, three pieces of information are stored in
<code>{cache}/{name}/{version}</code>:</p>
<ul><li>.../package/:
A folder containing the package contents as they appear in the tarball.</li><li>.../package.json:
The package.json file, as npm sees it, with overlays applied and a _id attribute.</li><li>.../package.tgz:
The tarball for that version.</li></ul>
<p>Additionally, whenever a registry request is made, a <code>.cache.json</code> file
is placed at the corresponding URI, to store the ETag and the requested
data.</p>
<p>Commands that make non-essential registry requests (such as <code>search</code> and
<code>view</code>, or the completion scripts) generally specify a minimum timeout.
If the <code>.cache.json</code> file is younger than the specified timeout, then
they do not make an HTTP request to the registry.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<h3 id="cache">cache</h3>
<p>Default: <code>$HOME/.npm</code> on Posix, or <code>$HOME/npm-cache</code> on Windows.</p>
<p>The root cache folder.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

69
deps/npm/html/doc/changelog.html

@ -0,0 +1,69 @@
<!doctype html>
<html>
<title>changelog</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/changelog.html">changelog</a></h1> <p>Changes</p>
<h2 id="HISTORY">HISTORY</h2>
<h3 id="1-0">1.0</h3>
<ul><li>Greatly simplified folder structure </li><li>Install locally (bundle by default) </li><li>Drastic rearchitecture</li></ul>
<h3 id="0-3">0.3</h3>
<ul><li>More correct permission/uid handling when running as root </li><li>Require node 0.4.0 </li><li>Reduce featureset </li><li>Packages without "main" modules don't export modules</li><li>Remove support for invalid JSON (since node doesn't support it)</li></ul>
<h3 id="0-2">0.2</h3>
<ul><li>First allegedly "stable" release</li><li>Most functionality implemented </li><li>Used shim files and <code>name@version</code> symlinks</li><li>Feature explosion</li><li>Kind of a mess</li></ul>
<h3 id="0-1">0.1</h3>
<ul><li>push to beta, and announce </li><li>Solaris and Cygwin support</li></ul>
<h3 id="0-0">0.0</h3>
<ul><li>Lots of sketches and false starts; abandoned a few times</li><li>Core functionality established</li></ul>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

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

@ -0,0 +1,226 @@
<!doctype html>
<html>
<title>coding-style</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/coding-style.html">coding-style</a></h1> <p>npm's "funny" coding style</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm's coding style is a bit unconventional. It is not different for
difference's sake, but rather a carefully crafted style that is
designed to reduce visual clutter and make bugs more apparent.</p>
<p>If you want to contribute to npm (which is very encouraged), you should
make your code conform to npm's style.</p>
<h2 id="Line-Length">Line Length</h2>
<p>Keep lines shorter than 80 characters. It's better for lines to be
too short than to be too long. Break up long lists, objects, and other
statements onto multiple lines.</p>
<h2 id="Indentation">Indentation</h2>
<p>Two-spaces. Tabs are better, but they look like hell in web browsers
(and on github), and node uses 2 spaces, so that's that.</p>
<p>Configure your editor appropriately.</p>
<h2 id="Curly-braces">Curly braces</h2>
<p>Curly braces belong on the same line as the thing that necessitates them.</p>
<p>Bad:</p>
<pre><code>function ()
{</code></pre>
<p>Good:</p>
<pre><code>function () {</code></pre>
<p>If a block needs to wrap to the next line, use a curly brace. Don't
use it if it doesn't.</p>
<p>Bad:</p>
<pre><code>if (foo) { bar() }
while (foo)
bar()</code></pre>
<p>Good:</p>
<pre><code>if (foo) bar()
while (foo) {
bar()
}</code></pre>
<h2 id="Semicolons">Semicolons</h2>
<p>Don't use them except in four situations:</p>
<ul><li><code>for (;;)</code> loops. They're actually required.</li><li>null loops like: <code>while (something) ;</code> (But you'd better have a good
reason for doing that.)</li><li>case "foo": doSomething(); break</li><li>In front of a leading ( or [ at the start of the line.
This prevents the expression from being interpreted
as a function call or property access, respectively.</li></ul>
<p>Some examples of good semicolon usage:</p>
<pre><code>;(x || y).doSomething()
;[a, b, c].forEach(doSomething)
for (var i = 0; i &lt; 10; i ++) {
switch (state) {
case "begin": start(); continue
case "end": finish(); break
default: throw new Error("unknown state")
}
end()
}</code></pre>
<p>Note that starting lines with <code>-</code> and <code>+</code> also should be prefixed
with a semicolon, but this is much less common.</p>
<h2 id="Comma-First">Comma First</h2>
<p>If there is a list of things separated by commas, and it wraps
across multiple lines, put the comma at the start of the next
line, directly below the token that starts the list. Put the
final token in the list on a line by itself. For example:</p>
<pre><code>var magicWords = [ "abracadabra"
, "gesundheit"
, "ventrilo"
]
, spells = { "fireball" : function () { setOnFire() }
, "water" : function () { putOut() }
}
, a = 1
, b = "abc"
, etc
, somethingElse</code></pre>
<h2 id="Whitespace">Whitespace</h2>
<p>Put a single space in front of ( for anything other than a function call.
Also use a single space wherever it makes things more readable.</p>
<p>Don't leave trailing whitespace at the end of lines. Don't indent empty
lines. Don't use more spaces than are helpful.</p>
<h2 id="Functions">Functions</h2>
<p>Use named functions. They make stack traces a lot easier to read.</p>
<h2 id="Callbacks-Sync-async-Style">Callbacks, Sync/async Style</h2>
<p>Use the asynchronous/non-blocking versions of things as much as possible.
It might make more sense for npm to use the synchronous fs APIs, but this
way, the fs and http and child process stuff all uses the same callback-passing
methodology.</p>
<p>The callback should always be the last argument in the list. Its first
argument is the Error or null.</p>
<p>Be very careful never to ever ever throw anything. It's worse than useless.
Just send the error message back as the first argument to the callback.</p>
<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>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>
<h2 id="Case-naming-etc">Case, naming, etc.</h2>
<p>Use <code>lowerCamelCase</code> for multiword identifiers when they refer to objects,
functions, methods, members, or anything not specified in this section.</p>
<p>Use <code>UpperCamelCase</code> for class names (things that you'd pass to "new").</p>
<p>Use <code>all-lower-hyphen-css-case</code> for multiword filenames and config keys.</p>
<p>Use named functions. They make stack traces easier to follow.</p>
<p>Use <code>CAPS_SNAKE_CASE</code> for constants, things that should never change
and are rarely used.</p>
<p>Use a single uppercase letter for function names where the function
would normally be anonymous, but needs to call itself recursively. It
makes it clear that it's a "throwaway" function.</p>
<h2 id="null-undefined-false-0">null, undefined, false, 0</h2>
<p>Boolean variables and functions should always be either <code>true</code> or
<code>false</code>. Don't set it to 0 unless it's supposed to be a number.</p>
<p>When something is intentionally missing or removed, set it to <code>null</code>.</p>
<p>Don't set things to <code>undefined</code>. Reserve that value to mean "not yet
set to anything."</p>
<p>Boolean objects are verboten.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

68
deps/npm/html/doc/completion.html

@ -0,0 +1,68 @@
<!doctype html>
<html>
<title>completion</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/completion.html">completion</a></h1> <p>Tab Completion for npm</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>. &lt;(npm completion)</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Enables tab-completion in all npm commands.</p>
<p>The synopsis above
loads the completions into your current shell. Adding it to
your ~/.bashrc or ~/.zshrc will make the completions available
everywhere.</p>
<p>You may of course also pipe the output of npm completion to a file
such as <code>/usr/local/etc/bash_completion.d/npm</code> if you have a system
that will read that file for you.</p>
<p>When <code>COMP_CWORD</code>, <code>COMP_LINE</code>, and <code>COMP_POINT</code> are defined in the
environment, <code>npm completion</code> acts in "plumbing mode", and outputs
completions based on the arguments.</p>
<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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

621
deps/npm/html/doc/config.html

@ -0,0 +1,621 @@
<!doctype html>
<html>
<title>config</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/config.html">config</a></h1> <p>Manage the npm configuration file</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm config set &lt;key&gt; &lt;value&gt; [--global]
npm config get &lt;key&gt;
npm config delete &lt;key&gt;
npm config list
npm config edit
npm get &lt;key&gt;
npm set &lt;key&gt; &lt;value&gt; [--global]</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm gets its configuration values from 6 sources, in this priority:</p>
<h3 id="Command-Line-Flags">Command Line Flags</h3>
<p>Putting <code>--foo bar</code> on the command line sets the
<code>foo</code> configuration parameter to <code>"bar"</code>. A <code>--</code> argument tells the cli
parser to stop reading flags. A <code>--flag</code> parameter that is at the <em>end</em> of
the command will be given the value of <code>true</code>.</p>
<h3 id="Environment-Variables">Environment Variables</h3>
<p>Any environment variables that start with <code>npm_config_</code> will be interpreted
as a configuration parameter. For example, putting <code>npm_config_foo=bar</code> in
your environment will set the <code>foo</code> configuration parameter to <code>bar</code>. Any
environment configurations that are not given a value will be given the value
of <code>true</code>. Config values are case-insensitive, so <code>NPM_CONFIG_FOO=bar</code> will
work the same.</p>
<h3 id="Per-user-config-file">Per-user config file</h3>
<p><code>$HOME/.npmrc</code> (or the <code>userconfig</code> param, if set above)</p>
<p>This file is an ini-file formatted list of <code>key = value</code> parameters.</p>
<h3 id="Global-config-file">Global config file</h3>
<p><code>$PREFIX/etc/npmrc</code> (or the <code>globalconfig</code> param, if set above):
This file is an ini-file formatted list of <code>key = value</code> parameters</p>
<h3 id="Built-in-config-file">Built-in config file</h3>
<p><code>path/to/npm/itself/npmrc</code></p>
<p>This is an unchangeable "builtin"
configuration file that npm keeps consistent across updates. Set
fields in here using the <code>./configure</code> script that comes with npm.
This is primarily for distribution maintainers to override default
configs in a standard and consistent manner.</p>
<h3 id="Default-Configs">Default Configs</h3>
<p>A set of configuration parameters that are internal to npm, and are
defaults if nothing else is specified.</p>
<h2 id="Sub-commands">Sub-commands</h2>
<p>Config supports the following sub-commands:</p>
<h3 id="set">set</h3>
<pre><code>npm config set key value</code></pre>
<p>Sets the config key to the value.</p>
<p>If value is omitted, then it sets it to "true".</p>
<h3 id="get">get</h3>
<pre><code>npm config get key</code></pre>
<p>Echo the config value to stdout.</p>
<h3 id="list">list</h3>
<pre><code>npm config list</code></pre>
<p>Show all the config settings.</p>
<h3 id="delete">delete</h3>
<pre><code>npm config delete key</code></pre>
<p>Deletes the key from all configuration files.</p>
<h3 id="edit">edit</h3>
<pre><code>npm config edit</code></pre>
<p>Opens the config file in an editor. Use the <code>--global</code> flag to edit the
global config.</p>
<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>-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>-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
parameter. For example:</p>
<pre><code>npm ls --par
# same as:
npm ls --parseable</code></pre>
<p>If multiple single-character shorthands are strung together, and the
resulting combination is unambiguously not some other configuration
param, then it is expanded to its various component pieces. For
example:</p>
<pre><code>npm ls -gpld
# same as:
npm ls --global --parseable --long --loglevel info</code></pre>
<h2 id="Per-Package-Config-Settings">Per-Package Config Settings</h2>
<p>When running scripts (see <code><a href="../doc/scripts.html">scripts(1)</a></code>)
the package.json "config" keys are overwritten in the environment if
there is a config param of <code>&lt;name&gt;[@&lt;version&gt;]:&lt;key&gt;</code>. For example, if
the package.json has this:</p>
<pre><code>{ "name" : "foo"
, "config" : { "port" : "8080" }
, "scripts" : { "start" : "node server.js" } }</code></pre>
<p>and the server.js is this:</p>
<pre><code>http.createServer(...).listen(process.env.npm_package_config_port)</code></pre>
<p>then the user could change the behavior by doing:</p>
<pre><code>npm config set foo:port 80</code></pre>
<h2 id="Config-Settings">Config Settings</h2>
<h3 id="always-auth">always-auth</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<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>
<p>The browser that is called by the <code>npm docs</code> command to open websites.</p>
<h3 id="ca">ca</h3>
<ul><li>Default: The npm CA certificate</li><li>Type: String or null</li></ul>
<p>The Certificate Authority signing certificate that is trusted for SSL
connections to the registry.</p>
<p>Set to <code>null</code> to only allow "known" registrars, or to a specific CA cert
to trust only that specific signing authority.</p>
<p>See also the <code>strict-ssl</code> config.</p>
<h3 id="cache">cache</h3>
<ul><li>Default: Windows: <code>~/npm-cache</code>, Posix: <code>~/.npm</code></li><li>Type: path</li></ul>
<p>The location of npm's cache directory. See <code><a href="../doc/cache.html">cache(1)</a></code></p>
<h3 id="color">color</h3>
<ul><li>Default: true on Posix, false on Windows</li><li>Type: Boolean or <code>"always"</code></li></ul>
<p>If false, never shows colors. If <code>"always"</code> then always shows colors.
If true, then only prints color codes for tty file descriptors.</p>
<h3 id="depth">depth</h3>
<ul><li>Default: Infinity</li><li>Type: Number</li></ul>
<p>The depth to go when recursing directories for <code>npm ls</code> and
<code>npm cache ls</code>.</p>
<h3 id="description">description</h3>
<ul><li>Default: true</li><li>Type: Boolean</li></ul>
<p>Show the description in <code>npm search</code></p>
<h3 id="dev">dev</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Install <code>dev-dependencies</code> along with packages.</p>
<p>Note that <code>dev-dependencies</code> are also installed if the <code>npat</code> flag is
set.</p>
<h3 id="editor">editor</h3>
<ul><li>Default: <code>EDITOR</code> environment variable if set, or <code>"vi"</code> on Posix,
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="force">force</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Makes various commands more forceful.</p>
<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="global">global</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Operates in "global" mode, so that packages are installed into the
<code>prefix</code> folder instead of the current working directory. See
<code><a href="../doc/folders.html">folders(1)</a></code> for more on the differences in behavior.</p>
<ul><li>packages are installed into the <code>prefix/node_modules</code> folder, instead of the
current working directory.</li><li>bin files are linked to <code>prefix/bin</code></li><li>man pages are linked to <code>prefix/share/man</code></li></ul>
<h3 id="globalconfig">globalconfig</h3>
<ul><li>Default: {prefix}/etc/npmrc</li><li>Type: path</li></ul>
<p>The config file to read for global config options.</p>
<h3 id="globalignorefile">globalignorefile</h3>
<ul><li>Default: {prefix}/etc/npmignore</li><li>Type: path</li></ul>
<p>The config file to read for global ignore patterns to apply to all users
and all projects.</p>
<p>If not found, but there is a "gitignore" file in the
same directory, then that will be used instead.</p>
<h3 id="group">group</h3>
<ul><li>Default: GID of the current process</li><li>Type: String or Number</li></ul>
<p>The group to use when running package scripts in global mode as the root
user.</p>
<h3 id="https-proxy">https-proxy</h3>
<ul><li>Default: the <code>HTTPS_PROXY</code> or <code>https_proxy</code> or <code>HTTP_PROXY</code> or
<code>http_proxy</code> environment variables.</li><li>Type: url</li></ul>
<p>A proxy to use for outgoing https requests.</p>
<h3 id="ignore">ignore</h3>
<ul><li>Default: ""</li><li>Type: string</li></ul>
<p>A white-space separated list of glob patterns of files to always exclude
from packages when building tarballs.</p>
<h3 id="init-version">init.version</h3>
<ul><li>Default: "0.0.0"</li><li>Type: semver</li></ul>
<p>The value <code>npm init</code> should use by default for the package version.</p>
<h3 id="init-author-name">init.author.name</h3>
<ul><li>Default: "0.0.0"</li><li>Type: String</li></ul>
<p>The value <code>npm init</code> should use by default for the package author's name.</p>
<h3 id="init-author-email">init.author.email</h3>
<ul><li>Default: ""</li><li>Type: String</li></ul>
<p>The value <code>npm init</code> should use by default for the package author's email.</p>
<h3 id="init-author-url">init.author.url</h3>
<ul><li>Default: ""</li><li>Type: String</li></ul>
<p>The value <code>npm init</code> should use by default for the package author's homepage.</p>
<h3 id="link">link</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>If true, then local installs will link if there is a suitable globally
installed package.</p>
<p>Note that this means that local installs can cause things to be
installed into the global space at the same time. The link is only done
if one of the two conditions are met:</p>
<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: "warn"</li><li>Type: String</li><li>Values: "silent", "win", "error", "warn", "info", "verbose", "silly"</li></ul>
<p>What level of logs to report. On failure, <em>all</em> logs are written to
<code>npm-debug.log</code> in the current working directory.</p>
<h3 id="logprefix">logprefix</h3>
<ul><li>Default: true on Posix, false on Windows</li><li>Type: Boolean</li></ul>
<p>Whether or not to prefix log messages with "npm" and the log level. See
also "color" and "loglevel".</p>
<h3 id="long">long</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Show extended information in <code>npm ls</code></p>
<h3 id="message">message</h3>
<ul><li>Default: "%s"</li><li>Type: String</li></ul>
<p>Commit message which is used by <code>npm version</code> when creating version commit.</p>
<p>Any "%s" in the message will be replaced with the version number.</p>
<h3 id="node-version">node-version</h3>
<ul><li>Default: process.version</li><li>Type: semver or false</li></ul>
<p>The node version to use when checking package's "engines" hash.</p>
<h3 id="npat">npat</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Run tests on installation and report results to the
<code>npaturl</code>.</p>
<h3 id="npaturl">npaturl</h3>
<ul><li>Default: Not yet implemented</li><li>Type: url</li></ul>
<p>The url to report npat test results.</p>
<h3 id="onload-script">onload-script</h3>
<ul><li>Default: false</li><li>Type: path</li></ul>
<p>A node module to <code>require()</code> when npm loads. Useful for programmatic
usage.</p>
<h3 id="outfd">outfd</h3>
<ul><li>Default: standard output file descriptor</li><li>Type: Number or Stream</li></ul>
<p>Where to write "normal" output. This has no effect on log output.</p>
<h3 id="parseable">parseable</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Output parseable results from commands that write to
standard output.</p>
<h3 id="prefix">prefix</h3>
<ul><li>Default: node's process.installPrefix</li><li>Type: path</li></ul>
<p>The location to install global items. If set on the command line, then
it forces non-global commands to run in the specified folder.</p>
<h3 id="production">production</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Set to true to run in "production" mode.</p>
<ol><li>devDependencies are not installed at the topmost level when running
local <code>npm install</code> without any arguments.</li><li>Set the NODE_ENV="production" for lifecycle scripts.</li></ol>
<h3 id="proxy">proxy</h3>
<ul><li>Default: <code>HTTP_PROXY</code> or <code>http_proxy</code> environment variable, or null</li><li>Type: url</li></ul>
<p>A proxy to use for outgoing http requests.</p>
<h3 id="rebuild-bundle">rebuild-bundle</h3>
<ul><li>Default: true</li><li>Type: Boolean</li></ul>
<p>Rebuild bundled dependencies after installation.</p>
<h3 id="registry">registry</h3>
<ul><li>Default: https://registry.npmjs.org/</li><li>Type: url</li></ul>
<p>The base URL of the npm package registry.</p>
<h3 id="rollback">rollback</h3>
<ul><li>Default: true</li><li>Type: Boolean</li></ul>
<p>Remove failed installs.</p>
<h3 id="save">save</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Save installed packages to a package.json file as dependencies.</p>
<p>Only works if there is already a package.json file present.</p>
<h3 id="searchopts">searchopts</h3>
<ul><li>Default: ""</li><li>Type: String</li></ul>
<p>Space-separated options that are always passed to search.</p>
<h3 id="searchexclude">searchexclude</h3>
<ul><li>Default: ""</li><li>Type: String</li></ul>
<p>Space-separated options that limit the results from search.</p>
<h3 id="shell">shell</h3>
<ul><li>Default: SHELL environment variable, or "bash" on Posix, or "cmd" on
Windows</li><li>Type: path</li></ul>
<p>The shell to run for the <code>npm explore</code> command.</p>
<h3 id="strict-ssl">strict-ssl</h3>
<ul><li>Default: true</li><li>Type: Boolean</li></ul>
<p>Whether or not to do SSL key validation when making requests to the
registry via https.</p>
<p>See also the <code>ca</code> config.</p>
<h3 id="tag">tag</h3>
<ul><li>Default: latest</li><li>Type: String</li></ul>
<p>If you ask npm to install a package and don't tell it a specific version, then
it will install the specified tag.</p>
<p>Also the tag that is added to the package@version specified by the <code>npm
tag</code> command, if no explicit tag is given.</p>
<h3 id="tmp">tmp</h3>
<ul><li>Default: TMPDIR environment variable, or "/tmp"</li><li>Type: path</li></ul>
<p>Where to store temporary files and folders. All temp files are deleted
on success, but left behind on failure for forensic purposes.</p>
<h3 id="unicode">unicode</h3>
<ul><li>Default: true</li><li>Type: Boolean</li></ul>
<p>When set to true, npm uses unicode characters in the tree output. When
false, it uses ascii characters to draw trees.</p>
<h3 id="unsafe-perm">unsafe-perm</h3>
<ul><li>Default: false if running as root, true otherwise</li><li>Type: Boolean</li></ul>
<p>Set to true to suppress the UID/GID switching when running package
scripts. If set explicitly to false, then installing as a non-root user
will fail.</p>
<h3 id="usage">usage</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Set to show short usage output (like the -H output)
instead of complete help when doing <code><a href="../doc/help.html">help(1)</a></code>.</p>
<h3 id="user">user</h3>
<ul><li>Default: "nobody"</li><li>Type: String or Number</li></ul>
<p>The UID to set to when running package scripts as root.</p>
<h3 id="username">username</h3>
<ul><li>Default: null</li><li>Type: String</li></ul>
<p>The username on the npm registry. Set with <code>npm adduser</code></p>
<h3 id="userconfig">userconfig</h3>
<ul><li>Default: ~/.npmrc</li><li>Type: path</li></ul>
<p>The location of user-level configuration settings.</p>
<h3 id="userignorefile">userignorefile</h3>
<ul><li>Default: ~/.npmignore</li><li>Type: path</li></ul>
<p>The location of a user-level ignore file to apply to all packages.</p>
<p>If not found, but there is a .gitignore file in the same directory, then
that will be used instead.</p>
<h3 id="umask">umask</h3>
<ul><li>Default: 022</li><li>Type: Octal numeric string</li></ul>
<p>The "umask" value to use when setting the file creation mode on files
and folders.</p>
<p>Folders and executables are given a mode which is <code>0777</code> masked against
this value. Other files are given a mode which is <code>0666</code> masked against
this value. Thus, the defaults are <code>0755</code> and <code>0644</code> respectively.</p>
<h3 id="version">version</h3>
<ul><li>Default: false</li><li>Type: boolean</li></ul>
<p>If true, output the npm version and exit successfully.</p>
<p>Only relevant when specified explicitly on the command line.</p>
<h3 id="viewer">viewer</h3>
<ul><li>Default: "man" on Posix, "browser" on Windows</li><li>Type: path</li></ul>
<p>The program to use to view help content.</p>
<p>Set to <code>"browser"</code> to view html help content in the default web browser.</p>
<h3 id="yes">yes</h3>
<ul><li>Default: null</li><li>Type: Boolean or null</li></ul>
<p>If set to <code>null</code>, then prompt the user for responses in some
circumstances.</p>
<p>If set to <code>true</code>, then answer "yes" to any prompt. If set to <code>false</code>
then answer "no" to any prompt.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
<p id="footer">config &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

64
deps/npm/html/doc/deprecate.html

@ -0,0 +1,64 @@
<!doctype html>
<html>
<title>deprecate</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/deprecate.html">deprecate</a></h1> <p>Deprecate a version of a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm deprecate &lt;name&gt;[@&lt;version&gt;] &lt;message&gt;</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command will update the npm registry entry for a package, providing
a deprecation warning to all who attempt to install it.</p>
<p>It works on version ranges as well as specific versions, so you can do
something like this:</p>
<pre><code>npm deprecate my-thing@"&lt; 0.2.3" "critical bug fixed in v0.2.3"</code></pre>
<p>Note that you must be the package owner to deprecate something. See the
<code>owner</code> and <code>adduser</code> help topics.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
<p id="footer">deprecate &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

185
deps/npm/html/doc/developers.html

@ -0,0 +1,185 @@
<!doctype html>
<html>
<title>developers</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/developers.html">developers</a></h1> <p>Developer Guide</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>So, you've decided to use npm to develop (and maybe publish/deploy)
your project.</p>
<p>Fantastic!</p>
<p>There are a few things that you need to do above the simple steps
that your users will do to install your program.</p>
<h2 id="About-These-Documents">About These Documents</h2>
<p>These are man pages. If you install npm, you should be able to
then do <code>man npm-thing</code> to get the documentation on a particular
topic, or <code>npm help thing</code> to see the same information.</p>
<h2 id="What-is-a-package">What is a `package`</h2>
<p>A package is:</p>
<ul><li>a) a folder containing a program described by a package.json file</li><li>b) a gzipped tarball containing (a)</li><li>c) a url that resolves to (b)</li><li>d) a <code>&lt;name&gt;@&lt;version&gt;</code> that is published on the registry with (c)</li><li>e) a <code>&lt;name&gt;@&lt;tag&gt;</code> that points to (d)</li><li>f) a <code>&lt;name&gt;</code> that has a "latest" tag satisfying (e)</li></ul>
<p>Even if you never publish your package, you can still get a lot of
benefits of using npm if you just want to write a node program (a), and
perhaps if you also want to be able to easily install it elsewhere
after packing it up into a tarball (b).</p>
<h2 id="The-package-json-File">The package.json File</h2>
<p>You need to have a <code>package.json</code> file in the root of your project to do
much of anything with npm. That is basically the whole interface.</p>
<p>See <code><a href="../doc/json.html">json(1)</a></code> for details about what goes in that file. At the very
least, you need:</p>
<ul><li><p>name:
This should be a string that identifies your project. Please do not
use the name to specify that it runs on node, or is in JavaScript.
You can use the "engines" field to explicitly state the versions of
node (or whatever else) that your program requires, and it's pretty
well assumed that it's javascript.</p><p>It does not necessarily need to match your github repository name.</p><p>So, <code>node-foo</code> and <code>bar-js</code> are bad names. <code>foo</code> or <code>bar</code> are better.</p></li><li><p>version:
A semver-compatible version.</p></li><li><p>engines:
Specify the versions of node (or whatever else) that your program
runs on. The node API changes a lot, and there may be bugs or new
functionality that you depend on. Be explicit.</p></li><li><p>author:
Take some credit.</p></li><li><p>scripts:
If you have a special compilation or installation script, then you
should put it in the <code>scripts</code> hash. You should definitely have at
least a basic smoke-test command as the "scripts.test" field.
See <a href="../doc/scripts.html">scripts(1)</a>.</p></li><li><p>main:
If you have a single module that serves as the entry point to your
program (like what the "foo" package gives you at require("foo")),
then you need to specify that in the "main" field.</p></li><li><p>directories:
This is a hash of folders. The best ones to include are "lib" and
"doc", but if you specify a folder full of man pages in "man", then
they'll get installed just like these ones.</p></li></ul>
<p>You can use <code>npm init</code> in the root of your package in order to get you
started with a pretty basic package.json file. See <code><a href="../doc/init.html">init(1)</a></code> for
more info.</p>
<h2 id="Keeping-files-out-of-your-package">Keeping files *out* of your package</h2>
<p>Use a <code>.npmignore</code> file to keep stuff out of your package. If there's
no .npmignore file, but there <em>is</em> a .gitignore file, then npm will
ignore the stuff matched by the .gitignore file. If you <em>want</em> to
include something that is excluded by your .gitignore file, you can
create an empty .npmignore file to override it.</p>
<h2 id="Link-Packages">Link Packages</h2>
<p><code>npm link</code> is designed to install a development package and see the
changes in real time without having to keep re-installing it. (You do
need to either re-link or <code>npm rebuild -g</code> to update compiled packages,
of course.)</p>
<p>More info at <code><a href="../doc/link.html">link(1)</a></code>.</p>
<h2 id="Before-Publishing-Make-Sure-Your-Package-Installs-and-Works">Before Publishing: Make Sure Your Package Installs and Works</h2>
<p><strong>This is important.</strong></p>
<p>If you can not install it locally, you'll have
problems trying to publish it. Or, worse yet, you'll be able to
publish it, but you'll be publishing a broken or pointless package.
So don't do that.</p>
<p>In the root of your package, do this:</p>
<pre><code>npm install . -g</code></pre>
<p>That'll show you that it's working. If you'd rather just create a symlink
package that points to your working directory, then do this:</p>
<pre><code>npm link</code></pre>
<p>Use <code>npm ls -g</code> to see if it's there.</p>
<p>To test a local install, go into some other folder, and then do:</p>
<pre><code>cd ../some-other-folder
npm install ../my-package</code></pre>
<p>to install it locally into the node_modules folder in that other place.</p>
<p>Then go into the node-repl, and try using require("my-thing") to
bring in your module's main module.</p>
<h2 id="Create-a-User-Account">Create a User Account</h2>
<p>Create a user with the adduser command. It works like this:</p>
<pre><code>npm adduser</code></pre>
<p>and then follow the prompts.</p>
<p>This is documented better in <a href="../doc/adduser.html">adduser(1)</a>.</p>
<h2 id="Publish-your-package">Publish your package</h2>
<p>This part's easy. IN the root of your folder, do this:</p>
<pre><code>npm publish</code></pre>
<p>You can give publish a url to a tarball, or a filename of a tarball,
or a path to a folder.</p>
<p>Note that pretty much <strong>everything in that folder will be exposed</strong>
by default. So, if you have secret stuff in there, use a <code>.npminclude</code>
or <code>.npmignore</code> file to list out the globs to include/ignore, or publish
from a fresh checkout.</p>
<h2 id="Brag-about-it">Brag about it</h2>
<p>Send emails, write blogs, blab in IRC.</p>
<p>Tell the world how easy it is to install your program!</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
<p id="footer">developers &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

72
deps/npm/html/doc/docs.html

@ -0,0 +1,72 @@
<!doctype html>
<html>
<title>docs</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/docs.html">docs</a></h1> <p>Docs for a package in a web browser maybe</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm docs &lt;pkgname&gt;
npm home &lt;pkgname&gt;</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command tries to guess at the likely location of a package's
documentation URL, and then tries to open it using the <code>--browser</code>
config param.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<h3 id="browser">browser</h3>
<ul><li>Default: OS X: <code>"open"</code>, others: <code>"google-chrome"</code></li><li>Type: String</li></ul>
<p>The browser that is called by the <code>npm docs</code> command to open websites.</p>
<h3 id="registry">registry</h3>
<ul><li>Default: https://registry.npmjs.org/</li><li>Type: url</li></ul>
<p>The base URL of the npm package registry.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
<p id="footer">docs &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

72
deps/npm/html/doc/edit.html

@ -0,0 +1,72 @@
<!doctype html>
<html>
<title>edit</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/edit.html">edit</a></h1> <p>Edit an installed package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm edit &lt;name&gt;[@&lt;version&gt;]</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Opens the package folder in the default editor (or whatever you've
configured as the npm <code>editor</code> config -- see <code><a href="../doc/config.html">config(1)</a></code>.)</p>
<p>After it has been edited, the package is rebuilt so as to pick up any
changes in compiled packages.</p>
<p>For instance, you can do <code>npm install connect</code> to install connect
into your package, and then <code>npm edit connect</code> to make a few
changes to your locally installed copy.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<h3 id="editor">editor</h3>
<ul><li>Default: <code>EDITOR</code> environment variable if set, or <code>"vi"</code> on Posix,
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>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/explore.html">explore(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">edit &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

75
deps/npm/html/doc/explore.html

@ -0,0 +1,75 @@
<!doctype html>
<html>
<title>explore</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/explore.html">explore</a></h1> <p>Browse an installed package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm explore &lt;name&gt;[@&lt;version&gt;] [ -- &lt;cmd&gt;]</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Spawn a subshell in the directory of the installed package specified.</p>
<p>If a command is specified, then it is run in the subshell, which then
immediately terminates.</p>
<p>This is particularly handy in the case of git submodules in the
<code>node_modules</code> folder:</p>
<pre><code>npm explore some-dependency -- git pull origin master</code></pre>
<p>Note that the package is <em>not</em> automatically rebuilt afterwards, so be
sure to use <code>npm rebuild &lt;pkg&gt;</code> if you make any changes.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<h3 id="shell">shell</h3>
<ul><li>Default: SHELL environment variable, or "bash" on Posix, or "cmd" on
Windows</li><li>Type: path</li></ul>
<p>The shell to run for the <code>npm explore</code> command.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/submodule.html">submodule(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/edit.html">edit(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
<p id="footer">explore &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

250
deps/npm/html/doc/faq.html

@ -0,0 +1,250 @@
<!doctype html>
<html>
<title>faq</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/faq.html">faq</a></h1> <p>Frequently Asked Questions</p>
<h2 id="Where-can-I-find-these-docs-in-HTML">Where can I find these docs in HTML?</h2>
<p><a href="http://npmjs.org/doc/">http://npmjs.org/doc/</a>, or run:</p>
<pre><code>npm config set viewer browser</code></pre>
<p>to open these documents in your default web browser rather than <code>man</code>.</p>
<h2 id="It-didn-t-work">It didn't work.</h2>
<p>That's not really a question.</p>
<h2 id="Why-didn-t-it-work">Why didn't it work?</h2>
<p>I don't know yet.</p>
<p>Read the error output, and if you can't figure out what it means,
do what it says and post a bug with all the information it asks for.</p>
<h2 id="Where-does-npm-put-stuff">Where does npm put stuff?</h2>
<p>See <code><a href="../doc/folders.html">folders(1)</a></code></p>
<p>tl;dr:</p>
<ul><li>Use the <code>npm root</code> command to see where modules go, and the <code>npm bin</code>
command to see where executables go</li><li>Global installs are different from local installs. If you install
something with the <code>-g</code> flag, then its executables go in <code>npm bin -g</code>
and its modules go in <code>npm root -g</code>.</li></ul>
<h2 id="How-do-I-install-something-everywhere">How do I install something everywhere?</h2>
<p>Install it globally by tacking <code>-g</code> or <code>--global</code> to the command.</p>
<h2 id="I-installed-something-globally-but-I-can-t-require-it">I installed something globally, but I can't `require()` it</h2>
<p>Install it locally.</p>
<h2 id="I-don-t-wanna">I don't wanna.</h2>
<p>Check out <code>npm link</code>. You might like it.</p>
<h2 id="No-I-really-want-0-x-style-everything-global-style">No, I really want 0.x style 'everything global' style.</h2>
<p>Ok, fine. Do this:</p>
<pre><code>echo 'export NODE_PATH="'$(npm root -g)'"' &gt;&gt; ~/.bashrc
. ~/.bashrc
npm config set global true</code></pre>
<p>This is not recommended.</p>
<p>Many things <strong>will not work</strong> if you do this. Make sure you read and
understand <code><a href="../doc/config.html">config(1)</a></code> and <code><a href="../doc/global.html">global(1)</a></code> before you complain
about things being broken.</p>
<p>When you realize what a mistake it was, do this to switch back:</p>
<pre><code>npm config delete global --local</code></pre>
<h2 id="If-npm-is-an-acronym-why-is-it-never-capitalized">If 'npm' is an acronym, why is it never capitalized?</h2>
<p>Contrary to the belief of many, "npm" is not in fact an abbreviation for
"Node Package Manager". It is a recursive bacronymic abbreviation for
"npm is not an acronym". (If it was "ninaa", then it would be an
acronym, and thus incorrectly named.)</p>
<p>"NPM", however, <em>is</em> an acronym (more precisely, a capitonym) for the
National Association of Pastoral Musicians. You can learn more
about them at <a href="http://npm.org/">http://npm.org/</a>.</p>
<p>In software, "NPM" is a non-parametric mapping utility written by
Chris Rorden. You can analyze pictures of brains with it. Learn more
about the (capitalized) NPM program at <a href="http://www.cabiatl.com/mricro/npm/">http://www.cabiatl.com/mricro/npm/</a>.</p>
<p>The first seed that eventually grew into this flower was a bash utility
named "pm", which was a shortened descendent of "pkgmakeinst", a
bash function that was used to install various different things on different
platforms, most often using Yahoo's <code>yinst</code>. If <code>npm</code> was ever an
acronym for anything, it was <code>node pm</code> or maybe <code>new pm</code>.</p>
<p>So, in all seriousness, the "npm" project is named after its command-line
utility, which was organically selected to be easily typed by a right-handed
programmer using a US QWERTY keyboard layout, ending with the
right-ring-finger in a postition to type the <code>-</code> key for flags and
other command-line arguments. That command-line utility is always
lower-case, though it starts most sentences it is a part of.</p>
<h2 id="How-do-I-list-installed-packages">How do I list installed packages?</h2>
<p><code>npm ls</code></p>
<h2 id="How-do-I-search-for-packages">How do I search for packages?</h2>
<p><code>npm search</code></p>
<p>Arguments are greps. <code>npm search jsdom</code> shows jsdom packages.</p>
<h2 id="How-do-I-update-npm">How do I update npm?</h2>
<pre><code>npm update npm -g</code></pre>
<p>You can also update all outdated local packages by doing <code>npm update</code> without
any arguments, or global packages by doing <code>npm update -g</code>.</p>
<p>Occasionally, the version of npm will progress such that the current
version cannot be properly installed with the version that you have
installed already. (Consider, if there is ever a bug in the <code>update</code>
command.)</p>
<p>In those cases, you can do this:</p>
<pre><code>curl http://npmjs.org/install.sh | sh</code></pre>
<h2 id="What-is-a-package">What is a `package`?</h2>
<p>A package is:</p>
<ul><li>a) a folder containing a program described by a package.json file</li><li>b) a gzipped tarball containing (a)</li><li>c) a url that resolves to (b)</li><li>d) a <code>&lt;name&gt;@&lt;version&gt;</code> that is published on the registry with (c)</li><li>e) a <code>&lt;name&gt;@&lt;tag&gt;</code> that points to (d)</li><li>f) a <code>&lt;name&gt;</code> that has a "latest" tag satisfying (e)</li><li>g) a <code>git</code> url that, when cloned, results in (a).</li></ul>
<p>Even if you never publish your package, you can still get a lot of
benefits of using npm if you just want to write a node program (a), and
perhaps if you also want to be able to easily install it elsewhere
after packing it up into a tarball (b).</p>
<p>Git urls can be of the form:</p>
<pre><code>git://github.com/user/project.git#commit-ish
git+ssh://user@hostname:project.git#commit-ish
git+http://user@hostname/project/blah.git#commit-ish
git+https://user@hostname/project/blah.git#commit-ish</code></pre>
<p>The <code>commit-ish</code> can be any tag, sha, or branch which can be supplied as
an argument to <code>git checkout</code>. The default is <code>master</code>.</p>
<h2 id="How-do-I-install-node-with-npm">How do I install node with npm?</h2>
<p>You don't. Try one of these:</p>
<ul><li><a href="http://github.com/isaacs/nave">http://github.com/isaacs/nave</a></li><li><a href="http://github.com/visionmedia/n">http://github.com/visionmedia/n</a></li><li><a href="http://github.com/creationix/nvm">http://github.com/creationix/nvm</a></li></ul>
<h2 id="How-can-I-use-npm-for-development">How can I use npm for development?</h2>
<p>See <code><a href="../doc/developers.html">developers(1)</a></code> and <code><a href="../doc/json.html">json(1)</a></code>.</p>
<p>You'll most likely want to <code>npm link</code> your development folder. That's
awesomely handy.</p>
<p>To set up your own private registry, check out <code><a href="../doc/registry.html">registry(1)</a></code>.</p>
<h2 id="Can-I-list-a-url-as-a-dependency">Can I list a url as a dependency?</h2>
<p>Yes. It should be a url to a gzipped tarball containing a single folder
that has a package.json in its root, or a git url.
(See "what is a package?" above.)</p>
<h2 id="How-do-I-symlink-to-a-dev-folder-so-I-don-t-have-to-keep-re-installing">How do I symlink to a dev folder so I don't have to keep re-installing?</h2>
<p>See <code><a href="../doc/link.html">link(1)</a></code></p>
<h2 id="The-package-registry-website-What-is-that-exactly">The package registry website. What is that exactly?</h2>
<p>See <code><a href="../doc/registry.html">registry(1)</a></code>.</p>
<h2 id="What-s-up-with-the-insecure-channel-warnings">What's up with the insecure channel warnings?</h2>
<p>Until node 0.4.10, there were problems sending big files over HTTPS. That
means that publishes go over HTTP by default in those versions of node.</p>
<h2 id="I-forgot-my-password-and-can-t-publish-How-do-I-reset-it">I forgot my password, and can't publish. How do I reset it?</h2>
<p>Go to <a href="http://admin.npmjs.org/reset">http://admin.npmjs.org/reset</a>.</p>
<h2 id="I-get-ECONNREFUSED-a-lot-What-s-up">I get ECONNREFUSED a lot. What's up?</h2>
<p>Either the registry is down, or node's DNS isn't able to reach out.
This happens a lot if you don't follow <em>all</em> the steps in the Cygwin
setup doc.</p>
<p>To check if the registry is down, open up
<a href="http://registry.npmjs.org/-/short">http://registry.npmjs.org/-/short</a>
in a web browser. This will also tell you if you are just unable to
access the internet for some reason.</p>
<p>If the registry IS down, let me know by emailing or posting an issue.
We'll have someone kick it or something.</p>
<h2 id="Who-does-npm">Who does npm?</h2>
<p><code>npm view npm author</code></p>
<p><code>npm view npm contributors</code></p>
<h2 id="I-have-a-question-or-request-not-addressed-here-Where-should-I-put-it">I have a question or request not addressed here. Where should I put it?</h2>
<p>Discuss it on the mailing list, or post an issue.</p>
<ul><li><a href="mailto:npm-@googlegroups.com">npm-@googlegroups.com</a></li><li><a href="http://github.com/isaacs/npm/issues">http://github.com/isaacs/npm/issues</a></li></ul>
<h2 id="Why-does-npm-hate-me">Why does npm hate me?</h2>
<p>npm is not capable of hatred. It loves everyone, especially you.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
</div>
<p id="footer">faq &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

75
deps/npm/html/doc/find.html

@ -0,0 +1,75 @@
<!doctype html>
<html>
<title>find</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/search.html">search</a></h1> <p>Search for packages</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm search [search terms ...]</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Search the registry for packages matching the search terms.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<h3 id="description">description</h3>
<ul><li>Default: true</li><li>Type: Boolean</li></ul>
<p>Show the description in <code>npm search</code></p>
<h3 id="searchopts">searchopts</h3>
<ul><li>Default: ""</li><li>Type: String</li></ul>
<p>Space-separated options that are always passed to search.</p>
<h3 id="searchexclude">searchexclude</h3>
<ul><li>Default: ""</li><li>Type: String</li></ul>
<p>Space-separated options that limit the results from search.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/view.html">view(1)</a></li></ul>
</div>
<p id="footer">find &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

240
deps/npm/html/doc/folders.html

@ -0,0 +1,240 @@
<!doctype html>
<html>
<title>folders</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/folders.html">folders</a></h1> <p>Folder Structures Used by npm</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm puts various things on your computer. That's its job.</p>
<p>This document will tell you what it puts where.</p>
<h3 id="tl-dr">tl;dr</h3>
<ul><li>Local install (default): puts stuff in <code>./node_modules</code> of the current
package root.</li><li>Global install (with <code>-g</code>): puts stuff in /usr/local or wherever node
is installed.</li><li>Install it <strong>locally</strong> if you're going to <code>require()</code> it.</li><li>Install it <strong>globally</strong> if you're going to run it on the command line.</li><li>If you need both, then install it in both places, or use <code>npm link</code>.</li></ul>
<h3 id="prefix-Configuration">prefix Configuration</h3>
<p>The <code>prefix</code> config defaults to the location where node is installed.
On most systems, this is <code>/usr/local</code>, and most of the time is the same
as node's <code>process.installPrefix</code>.</p>
<p>On windows, this is the exact location of the node.exe binary. On Unix
systems, it's one level up, since node is typically installed at
<code>{prefix}/bin/node</code> rather than <code>{prefix}/node.exe</code>.</p>
<p>When the <code>global</code> flag is set, npm installs things into this prefix.
When it is not set, it uses the root of the current package, or the
current working directory if not in a package already.</p>
<h3 id="Node-Modules">Node Modules</h3>
<p>Packages are dropped into the <code>node_modules</code> folder under the <code>prefix</code>.
When installing locally, this means that you can
<code>require("packagename")</code> to load its main module, or
<code>require("packagename/lib/path/to/sub/module")</code> to load other modules.</p>
<p>Global installs on Unix systems go to <code>{prefix}/lib/node_modules</code>.
Global installs on Windows go to <code>{prefix}/node_modules</code> (that is, no
<code>lib</code> folder.)</p>
<p>If you wish to <code>require()</code> a package, then install it locally.</p>
<h3 id="Executables">Executables</h3>
<p>When in global mode, executables are linked into <code>{prefix}/bin</code> on Unix,
or directly into <code>{prefix}</code> on Windows.</p>
<p>When in local mode, executables are linked into
<code>./node_modules/.bin</code> so that they can be made available to scripts run
through npm. (For example, so that a test runner will be in the path
when you run <code>npm test</code>.)</p>
<h3 id="Man-Pages">Man Pages</h3>
<p>When in global mode, man pages are linked into <code>{prefix}/share/man</code>.</p>
<p>When in local mode, man pages are not installed.</p>
<p>Man pages are not installed on Windows systems.</p>
<h3 id="Cache">Cache</h3>
<p>See <code><a href="../doc/cache.html">cache(1)</a></code>. Cache files are stored in <code>~/.npm</code> on Posix, or
<code>~/npm-cache</code> on Windows.</p>
<p>This is controlled by the <code>cache</code> configuration param.</p>
<h3 id="Temp-Files">Temp Files</h3>
<p>Temporary files are stored by default in the folder specified by the
<code>tmp</code> config, which defaults to the TMPDIR, TMP, or TEMP environment
variables, or <code>/tmp</code> on Unix and <code>c:\windows\temp</code> on Windows.</p>
<p>Temp files are given a unique folder under this root for each run of the
program, and are deleted upon successful exit.</p>
<h2 id="More-Information">More Information</h2>
<p>When installing locally, npm first tries to find an appropriate
<code>prefix</code> folder. This is so that <code>npm install foo@1.2.3</code> will install
to the sensible root of your package, even if you happen to have <code>cd</code>ed
into some other folder.</p>
<p>Starting at the $PWD, npm will walk up the folder tree checking for a
folder that contains either a <code>package.json</code> file, or a <code>node_modules</code>
folder. If such a thing is found, then that is treated as the effective
"current directory" for the purpose of running npm commands. (This
behavior is inspired by and similar to git's .git-folder seeking
logic when running git commands in a working dir.)</p>
<p>If no package root is found, then the current folder is used.</p>
<p>When you run <code>npm install foo@1.2.3</code>, then the package is loaded into
the cache, and then unpacked into <code>./node_modules/foo</code>. Then, any of
foo's dependencies are similarly unpacked into
<code>./node_modules/foo/node_modules/...</code>.</p>
<p>Any bin files are symlinked to <code>./node_modules/.bin/</code>, so that they may
be found by npm scripts when necessary.</p>
<h3 id="Global-Installation">Global Installation</h3>
<p>If the <code>global</code> configuration is set to true, then npm will
install packages "globally".</p>
<p>For global installation, packages are installed roughly the same way,
but using the folders described above.</p>
<h3 id="Cycles-Conflicts-and-Folder-Parsimony">Cycles, Conflicts, and Folder Parsimony</h3>
<p>Cycles are handled using the property of node's module system that it
walks up the directories looking for <code>node_modules</code> folders. So, at every
stage, if a package is already installed in an ancestor <code>node_modules</code>
folder, then it is not installed at the current location.</p>
<p>Consider the case above, where <code>foo -&gt; bar -&gt; baz</code>. Imagine if, in
addition to that, baz depended on bar, so you'd have:
<code>foo -&gt; bar -&gt; baz -&gt; bar -&gt; baz ...</code>. However, since the folder
structure is: <code>foo/node_modules/bar/node_modules/baz</code>, there's no need to
put another copy of bar into <code>.../baz/node_modules</code>, since when it calls
require("bar"), it will get the copy that is installed in
<code>foo/node_modules/bar</code>.</p>
<p>This shortcut is only used if the exact same
version would be installed in multiple nested <code>node_modules</code> folders. It
is still possible to have <code>a/node_modules/b/node_modules/a</code> if the two
"a" packages are different versions. However, without repeating the
exact same package multiple times, an infinite regress will always be
prevented.</p>
<p>Another optimization can be made by installing dependencies at the
highest level possible, below the localized "target" folder.</p>
<h4 id="Example">Example</h4>
<p>Consider this dependency graph:</p>
<pre><code>foo
+-- blerg@1.2.5
+-- bar@1.2.3
| +-- blerg@1.x (latest=1.3.7)
| +-- baz@2.x
| | `-- quux@3.x
| | `-- bar@1.2.3 (cycle)
| `-- asdf@*
`-- baz@1.2.3
`-- quux@3.x
`-- bar</code></pre>
<p>In this case, we might expect a folder structure like this:</p>
<pre><code>foo
+-- node_modules
+-- blerg (1.2.5) &lt;---[A]
+-- bar (1.2.3) &lt;---[B]
| +-- node_modules
| | `-- baz (2.0.2) &lt;---[C]
| | `-- node_modules
| | `-- quux (3.2.0)
| `-- asdf (2.3.4)
`-- baz (1.2.3) &lt;---[D]
`-- node_modules
`-- quux (3.2.0) &lt;---[E]</code></pre>
<p>Since foo depends directly on bar@1.2.3 and baz@1.2.3, those are
installed in foo's <code>node_modules</code> folder.</p>
<p>Even though the latest copy of blerg is 1.3.7, foo has a specific
dependency on version 1.2.5. So, that gets installed at [A]. Since the
parent installation of blerg satisfie's bar's dependency on blerg@1.x,
it does not install another copy under [B].</p>
<p>Bar [B] also has dependencies on baz and asdf, so those are installed in
bar's <code>node_modules</code> folder. Because it depends on <code>baz@2.x</code>, it cannot
re-use the <code>baz@1.2.3</code> installed in the parent <code>node_modules</code> folder [D],
and must install its own copy [C].</p>
<p>Underneath bar, the <code>baz-&gt;quux-&gt;bar</code> dependency creates a cycle.
However, because <code>bar</code> is already in <code>quux</code>'s ancestry [B], it does not
unpack another copy of bar into that folder.</p>
<p>Underneath <code>foo-&gt;baz</code> [D], quux's [E] folder tree is empty, because its
dependency on bar is satisfied by the parent folder copy installed at [B].</p>
<p>For a graphical breakdown of what is installed where, use <code>npm ls</code>.</p>
<h3 id="Publishing">Publishing</h3>
<p>Upon publishing, npm will look in the <code>node_modules</code> folder. If any of
the items there are not in the <code>bundledDependencies</code> array, then they will
not be included in the package tarball.</p>
<p>This allows a package maintainer to install all of their dependencies
(and dev dependencies) locally, but only re-publish those items that
cannot be found elsewhere. See <code><a href="../doc/json.html">json(1)</a></code> for more information.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li></ul>
</div>
<p id="footer">folders &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

621
deps/npm/html/doc/get.html

@ -0,0 +1,621 @@
<!doctype html>
<html>
<title>get</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/config.html">config</a></h1> <p>Manage the npm configuration file</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm config set &lt;key&gt; &lt;value&gt; [--global]
npm config get &lt;key&gt;
npm config delete &lt;key&gt;
npm config list
npm config edit
npm get &lt;key&gt;
npm set &lt;key&gt; &lt;value&gt; [--global]</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm gets its configuration values from 6 sources, in this priority:</p>
<h3 id="Command-Line-Flags">Command Line Flags</h3>
<p>Putting <code>--foo bar</code> on the command line sets the
<code>foo</code> configuration parameter to <code>"bar"</code>. A <code>--</code> argument tells the cli
parser to stop reading flags. A <code>--flag</code> parameter that is at the <em>end</em> of
the command will be given the value of <code>true</code>.</p>
<h3 id="Environment-Variables">Environment Variables</h3>
<p>Any environment variables that start with <code>npm_config_</code> will be interpreted
as a configuration parameter. For example, putting <code>npm_config_foo=bar</code> in
your environment will set the <code>foo</code> configuration parameter to <code>bar</code>. Any
environment configurations that are not given a value will be given the value
of <code>true</code>. Config values are case-insensitive, so <code>NPM_CONFIG_FOO=bar</code> will
work the same.</p>
<h3 id="Per-user-config-file">Per-user config file</h3>
<p><code>$HOME/.npmrc</code> (or the <code>userconfig</code> param, if set above)</p>
<p>This file is an ini-file formatted list of <code>key = value</code> parameters.</p>
<h3 id="Global-config-file">Global config file</h3>
<p><code>$PREFIX/etc/npmrc</code> (or the <code>globalconfig</code> param, if set above):
This file is an ini-file formatted list of <code>key = value</code> parameters</p>
<h3 id="Built-in-config-file">Built-in config file</h3>
<p><code>path/to/npm/itself/npmrc</code></p>
<p>This is an unchangeable "builtin"
configuration file that npm keeps consistent across updates. Set
fields in here using the <code>./configure</code> script that comes with npm.
This is primarily for distribution maintainers to override default
configs in a standard and consistent manner.</p>
<h3 id="Default-Configs">Default Configs</h3>
<p>A set of configuration parameters that are internal to npm, and are
defaults if nothing else is specified.</p>
<h2 id="Sub-commands">Sub-commands</h2>
<p>Config supports the following sub-commands:</p>
<h3 id="set">set</h3>
<pre><code>npm config set key value</code></pre>
<p>Sets the config key to the value.</p>
<p>If value is omitted, then it sets it to "true".</p>
<h3 id="get">get</h3>
<pre><code>npm config get key</code></pre>
<p>Echo the config value to stdout.</p>
<h3 id="list">list</h3>
<pre><code>npm config list</code></pre>
<p>Show all the config settings.</p>
<h3 id="delete">delete</h3>
<pre><code>npm config delete key</code></pre>
<p>Deletes the key from all configuration files.</p>
<h3 id="edit">edit</h3>
<pre><code>npm config edit</code></pre>
<p>Opens the config file in an editor. Use the <code>--global</code> flag to edit the
global config.</p>
<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>-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>-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
parameter. For example:</p>
<pre><code>npm ls --par
# same as:
npm ls --parseable</code></pre>
<p>If multiple single-character shorthands are strung together, and the
resulting combination is unambiguously not some other configuration
param, then it is expanded to its various component pieces. For
example:</p>
<pre><code>npm ls -gpld
# same as:
npm ls --global --parseable --long --loglevel info</code></pre>
<h2 id="Per-Package-Config-Settings">Per-Package Config Settings</h2>
<p>When running scripts (see <code><a href="../doc/scripts.html">scripts(1)</a></code>)
the package.json "config" keys are overwritten in the environment if
there is a config param of <code>&lt;name&gt;[@&lt;version&gt;]:&lt;key&gt;</code>. For example, if
the package.json has this:</p>
<pre><code>{ "name" : "foo"
, "config" : { "port" : "8080" }
, "scripts" : { "start" : "node server.js" } }</code></pre>
<p>and the server.js is this:</p>
<pre><code>http.createServer(...).listen(process.env.npm_package_config_port)</code></pre>
<p>then the user could change the behavior by doing:</p>
<pre><code>npm config set foo:port 80</code></pre>
<h2 id="Config-Settings">Config Settings</h2>
<h3 id="always-auth">always-auth</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<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>
<p>The browser that is called by the <code>npm docs</code> command to open websites.</p>
<h3 id="ca">ca</h3>
<ul><li>Default: The npm CA certificate</li><li>Type: String or null</li></ul>
<p>The Certificate Authority signing certificate that is trusted for SSL
connections to the registry.</p>
<p>Set to <code>null</code> to only allow "known" registrars, or to a specific CA cert
to trust only that specific signing authority.</p>
<p>See also the <code>strict-ssl</code> config.</p>
<h3 id="cache">cache</h3>
<ul><li>Default: Windows: <code>~/npm-cache</code>, Posix: <code>~/.npm</code></li><li>Type: path</li></ul>
<p>The location of npm's cache directory. See <code><a href="../doc/cache.html">cache(1)</a></code></p>
<h3 id="color">color</h3>
<ul><li>Default: true on Posix, false on Windows</li><li>Type: Boolean or <code>"always"</code></li></ul>
<p>If false, never shows colors. If <code>"always"</code> then always shows colors.
If true, then only prints color codes for tty file descriptors.</p>
<h3 id="depth">depth</h3>
<ul><li>Default: Infinity</li><li>Type: Number</li></ul>
<p>The depth to go when recursing directories for <code>npm ls</code> and
<code>npm cache ls</code>.</p>
<h3 id="description">description</h3>
<ul><li>Default: true</li><li>Type: Boolean</li></ul>
<p>Show the description in <code>npm search</code></p>
<h3 id="dev">dev</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Install <code>dev-dependencies</code> along with packages.</p>
<p>Note that <code>dev-dependencies</code> are also installed if the <code>npat</code> flag is
set.</p>
<h3 id="editor">editor</h3>
<ul><li>Default: <code>EDITOR</code> environment variable if set, or <code>"vi"</code> on Posix,
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="force">force</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Makes various commands more forceful.</p>
<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="global">global</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Operates in "global" mode, so that packages are installed into the
<code>prefix</code> folder instead of the current working directory. See
<code><a href="../doc/folders.html">folders(1)</a></code> for more on the differences in behavior.</p>
<ul><li>packages are installed into the <code>prefix/node_modules</code> folder, instead of the
current working directory.</li><li>bin files are linked to <code>prefix/bin</code></li><li>man pages are linked to <code>prefix/share/man</code></li></ul>
<h3 id="globalconfig">globalconfig</h3>
<ul><li>Default: {prefix}/etc/npmrc</li><li>Type: path</li></ul>
<p>The config file to read for global config options.</p>
<h3 id="globalignorefile">globalignorefile</h3>
<ul><li>Default: {prefix}/etc/npmignore</li><li>Type: path</li></ul>
<p>The config file to read for global ignore patterns to apply to all users
and all projects.</p>
<p>If not found, but there is a "gitignore" file in the
same directory, then that will be used instead.</p>
<h3 id="group">group</h3>
<ul><li>Default: GID of the current process</li><li>Type: String or Number</li></ul>
<p>The group to use when running package scripts in global mode as the root
user.</p>
<h3 id="https-proxy">https-proxy</h3>
<ul><li>Default: the <code>HTTPS_PROXY</code> or <code>https_proxy</code> or <code>HTTP_PROXY</code> or
<code>http_proxy</code> environment variables.</li><li>Type: url</li></ul>
<p>A proxy to use for outgoing https requests.</p>
<h3 id="ignore">ignore</h3>
<ul><li>Default: ""</li><li>Type: string</li></ul>
<p>A white-space separated list of glob patterns of files to always exclude
from packages when building tarballs.</p>
<h3 id="init-version">init.version</h3>
<ul><li>Default: "0.0.0"</li><li>Type: semver</li></ul>
<p>The value <code>npm init</code> should use by default for the package version.</p>
<h3 id="init-author-name">init.author.name</h3>
<ul><li>Default: "0.0.0"</li><li>Type: String</li></ul>
<p>The value <code>npm init</code> should use by default for the package author's name.</p>
<h3 id="init-author-email">init.author.email</h3>
<ul><li>Default: ""</li><li>Type: String</li></ul>
<p>The value <code>npm init</code> should use by default for the package author's email.</p>
<h3 id="init-author-url">init.author.url</h3>
<ul><li>Default: ""</li><li>Type: String</li></ul>
<p>The value <code>npm init</code> should use by default for the package author's homepage.</p>
<h3 id="link">link</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>If true, then local installs will link if there is a suitable globally
installed package.</p>
<p>Note that this means that local installs can cause things to be
installed into the global space at the same time. The link is only done
if one of the two conditions are met:</p>
<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: "warn"</li><li>Type: String</li><li>Values: "silent", "win", "error", "warn", "info", "verbose", "silly"</li></ul>
<p>What level of logs to report. On failure, <em>all</em> logs are written to
<code>npm-debug.log</code> in the current working directory.</p>
<h3 id="logprefix">logprefix</h3>
<ul><li>Default: true on Posix, false on Windows</li><li>Type: Boolean</li></ul>
<p>Whether or not to prefix log messages with "npm" and the log level. See
also "color" and "loglevel".</p>
<h3 id="long">long</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Show extended information in <code>npm ls</code></p>
<h3 id="message">message</h3>
<ul><li>Default: "%s"</li><li>Type: String</li></ul>
<p>Commit message which is used by <code>npm version</code> when creating version commit.</p>
<p>Any "%s" in the message will be replaced with the version number.</p>
<h3 id="node-version">node-version</h3>
<ul><li>Default: process.version</li><li>Type: semver or false</li></ul>
<p>The node version to use when checking package's "engines" hash.</p>
<h3 id="npat">npat</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Run tests on installation and report results to the
<code>npaturl</code>.</p>
<h3 id="npaturl">npaturl</h3>
<ul><li>Default: Not yet implemented</li><li>Type: url</li></ul>
<p>The url to report npat test results.</p>
<h3 id="onload-script">onload-script</h3>
<ul><li>Default: false</li><li>Type: path</li></ul>
<p>A node module to <code>require()</code> when npm loads. Useful for programmatic
usage.</p>
<h3 id="outfd">outfd</h3>
<ul><li>Default: standard output file descriptor</li><li>Type: Number or Stream</li></ul>
<p>Where to write "normal" output. This has no effect on log output.</p>
<h3 id="parseable">parseable</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Output parseable results from commands that write to
standard output.</p>
<h3 id="prefix">prefix</h3>
<ul><li>Default: node's process.installPrefix</li><li>Type: path</li></ul>
<p>The location to install global items. If set on the command line, then
it forces non-global commands to run in the specified folder.</p>
<h3 id="production">production</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Set to true to run in "production" mode.</p>
<ol><li>devDependencies are not installed at the topmost level when running
local <code>npm install</code> without any arguments.</li><li>Set the NODE_ENV="production" for lifecycle scripts.</li></ol>
<h3 id="proxy">proxy</h3>
<ul><li>Default: <code>HTTP_PROXY</code> or <code>http_proxy</code> environment variable, or null</li><li>Type: url</li></ul>
<p>A proxy to use for outgoing http requests.</p>
<h3 id="rebuild-bundle">rebuild-bundle</h3>
<ul><li>Default: true</li><li>Type: Boolean</li></ul>
<p>Rebuild bundled dependencies after installation.</p>
<h3 id="registry">registry</h3>
<ul><li>Default: https://registry.npmjs.org/</li><li>Type: url</li></ul>
<p>The base URL of the npm package registry.</p>
<h3 id="rollback">rollback</h3>
<ul><li>Default: true</li><li>Type: Boolean</li></ul>
<p>Remove failed installs.</p>
<h3 id="save">save</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Save installed packages to a package.json file as dependencies.</p>
<p>Only works if there is already a package.json file present.</p>
<h3 id="searchopts">searchopts</h3>
<ul><li>Default: ""</li><li>Type: String</li></ul>
<p>Space-separated options that are always passed to search.</p>
<h3 id="searchexclude">searchexclude</h3>
<ul><li>Default: ""</li><li>Type: String</li></ul>
<p>Space-separated options that limit the results from search.</p>
<h3 id="shell">shell</h3>
<ul><li>Default: SHELL environment variable, or "bash" on Posix, or "cmd" on
Windows</li><li>Type: path</li></ul>
<p>The shell to run for the <code>npm explore</code> command.</p>
<h3 id="strict-ssl">strict-ssl</h3>
<ul><li>Default: true</li><li>Type: Boolean</li></ul>
<p>Whether or not to do SSL key validation when making requests to the
registry via https.</p>
<p>See also the <code>ca</code> config.</p>
<h3 id="tag">tag</h3>
<ul><li>Default: latest</li><li>Type: String</li></ul>
<p>If you ask npm to install a package and don't tell it a specific version, then
it will install the specified tag.</p>
<p>Also the tag that is added to the package@version specified by the <code>npm
tag</code> command, if no explicit tag is given.</p>
<h3 id="tmp">tmp</h3>
<ul><li>Default: TMPDIR environment variable, or "/tmp"</li><li>Type: path</li></ul>
<p>Where to store temporary files and folders. All temp files are deleted
on success, but left behind on failure for forensic purposes.</p>
<h3 id="unicode">unicode</h3>
<ul><li>Default: true</li><li>Type: Boolean</li></ul>
<p>When set to true, npm uses unicode characters in the tree output. When
false, it uses ascii characters to draw trees.</p>
<h3 id="unsafe-perm">unsafe-perm</h3>
<ul><li>Default: false if running as root, true otherwise</li><li>Type: Boolean</li></ul>
<p>Set to true to suppress the UID/GID switching when running package
scripts. If set explicitly to false, then installing as a non-root user
will fail.</p>
<h3 id="usage">usage</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Set to show short usage output (like the -H output)
instead of complete help when doing <code><a href="../doc/help.html">help(1)</a></code>.</p>
<h3 id="user">user</h3>
<ul><li>Default: "nobody"</li><li>Type: String or Number</li></ul>
<p>The UID to set to when running package scripts as root.</p>
<h3 id="username">username</h3>
<ul><li>Default: null</li><li>Type: String</li></ul>
<p>The username on the npm registry. Set with <code>npm adduser</code></p>
<h3 id="userconfig">userconfig</h3>
<ul><li>Default: ~/.npmrc</li><li>Type: path</li></ul>
<p>The location of user-level configuration settings.</p>
<h3 id="userignorefile">userignorefile</h3>
<ul><li>Default: ~/.npmignore</li><li>Type: path</li></ul>
<p>The location of a user-level ignore file to apply to all packages.</p>
<p>If not found, but there is a .gitignore file in the same directory, then
that will be used instead.</p>
<h3 id="umask">umask</h3>
<ul><li>Default: 022</li><li>Type: Octal numeric string</li></ul>
<p>The "umask" value to use when setting the file creation mode on files
and folders.</p>
<p>Folders and executables are given a mode which is <code>0777</code> masked against
this value. Other files are given a mode which is <code>0666</code> masked against
this value. Thus, the defaults are <code>0755</code> and <code>0644</code> respectively.</p>
<h3 id="version">version</h3>
<ul><li>Default: false</li><li>Type: boolean</li></ul>
<p>If true, output the npm version and exit successfully.</p>
<p>Only relevant when specified explicitly on the command line.</p>
<h3 id="viewer">viewer</h3>
<ul><li>Default: "man" on Posix, "browser" on Windows</li><li>Type: path</li></ul>
<p>The program to use to view help content.</p>
<p>Set to <code>"browser"</code> to view html help content in the default web browser.</p>
<h3 id="yes">yes</h3>
<ul><li>Default: null</li><li>Type: Boolean or null</li></ul>
<p>If set to <code>null</code>, then prompt the user for responses in some
circumstances.</p>
<p>If set to <code>true</code>, then answer "yes" to any prompt. If set to <code>false</code>
then answer "no" to any prompt.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
<p id="footer">get &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

240
deps/npm/html/doc/global.html

@ -0,0 +1,240 @@
<!doctype html>
<html>
<title>global</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/folders.html">folders</a></h1> <p>Folder Structures Used by npm</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm puts various things on your computer. That's its job.</p>
<p>This document will tell you what it puts where.</p>
<h3 id="tl-dr">tl;dr</h3>
<ul><li>Local install (default): puts stuff in <code>./node_modules</code> of the current
package root.</li><li>Global install (with <code>-g</code>): puts stuff in /usr/local or wherever node
is installed.</li><li>Install it <strong>locally</strong> if you're going to <code>require()</code> it.</li><li>Install it <strong>globally</strong> if you're going to run it on the command line.</li><li>If you need both, then install it in both places, or use <code>npm link</code>.</li></ul>
<h3 id="prefix-Configuration">prefix Configuration</h3>
<p>The <code>prefix</code> config defaults to the location where node is installed.
On most systems, this is <code>/usr/local</code>, and most of the time is the same
as node's <code>process.installPrefix</code>.</p>
<p>On windows, this is the exact location of the node.exe binary. On Unix
systems, it's one level up, since node is typically installed at
<code>{prefix}/bin/node</code> rather than <code>{prefix}/node.exe</code>.</p>
<p>When the <code>global</code> flag is set, npm installs things into this prefix.
When it is not set, it uses the root of the current package, or the
current working directory if not in a package already.</p>
<h3 id="Node-Modules">Node Modules</h3>
<p>Packages are dropped into the <code>node_modules</code> folder under the <code>prefix</code>.
When installing locally, this means that you can
<code>require("packagename")</code> to load its main module, or
<code>require("packagename/lib/path/to/sub/module")</code> to load other modules.</p>
<p>Global installs on Unix systems go to <code>{prefix}/lib/node_modules</code>.
Global installs on Windows go to <code>{prefix}/node_modules</code> (that is, no
<code>lib</code> folder.)</p>
<p>If you wish to <code>require()</code> a package, then install it locally.</p>
<h3 id="Executables">Executables</h3>
<p>When in global mode, executables are linked into <code>{prefix}/bin</code> on Unix,
or directly into <code>{prefix}</code> on Windows.</p>
<p>When in local mode, executables are linked into
<code>./node_modules/.bin</code> so that they can be made available to scripts run
through npm. (For example, so that a test runner will be in the path
when you run <code>npm test</code>.)</p>
<h3 id="Man-Pages">Man Pages</h3>
<p>When in global mode, man pages are linked into <code>{prefix}/share/man</code>.</p>
<p>When in local mode, man pages are not installed.</p>
<p>Man pages are not installed on Windows systems.</p>
<h3 id="Cache">Cache</h3>
<p>See <code><a href="../doc/cache.html">cache(1)</a></code>. Cache files are stored in <code>~/.npm</code> on Posix, or
<code>~/npm-cache</code> on Windows.</p>
<p>This is controlled by the <code>cache</code> configuration param.</p>
<h3 id="Temp-Files">Temp Files</h3>
<p>Temporary files are stored by default in the folder specified by the
<code>tmp</code> config, which defaults to the TMPDIR, TMP, or TEMP environment
variables, or <code>/tmp</code> on Unix and <code>c:\windows\temp</code> on Windows.</p>
<p>Temp files are given a unique folder under this root for each run of the
program, and are deleted upon successful exit.</p>
<h2 id="More-Information">More Information</h2>
<p>When installing locally, npm first tries to find an appropriate
<code>prefix</code> folder. This is so that <code>npm install foo@1.2.3</code> will install
to the sensible root of your package, even if you happen to have <code>cd</code>ed
into some other folder.</p>
<p>Starting at the $PWD, npm will walk up the folder tree checking for a
folder that contains either a <code>package.json</code> file, or a <code>node_modules</code>
folder. If such a thing is found, then that is treated as the effective
"current directory" for the purpose of running npm commands. (This
behavior is inspired by and similar to git's .git-folder seeking
logic when running git commands in a working dir.)</p>
<p>If no package root is found, then the current folder is used.</p>
<p>When you run <code>npm install foo@1.2.3</code>, then the package is loaded into
the cache, and then unpacked into <code>./node_modules/foo</code>. Then, any of
foo's dependencies are similarly unpacked into
<code>./node_modules/foo/node_modules/...</code>.</p>
<p>Any bin files are symlinked to <code>./node_modules/.bin/</code>, so that they may
be found by npm scripts when necessary.</p>
<h3 id="Global-Installation">Global Installation</h3>
<p>If the <code>global</code> configuration is set to true, then npm will
install packages "globally".</p>
<p>For global installation, packages are installed roughly the same way,
but using the folders described above.</p>
<h3 id="Cycles-Conflicts-and-Folder-Parsimony">Cycles, Conflicts, and Folder Parsimony</h3>
<p>Cycles are handled using the property of node's module system that it
walks up the directories looking for <code>node_modules</code> folders. So, at every
stage, if a package is already installed in an ancestor <code>node_modules</code>
folder, then it is not installed at the current location.</p>
<p>Consider the case above, where <code>foo -&gt; bar -&gt; baz</code>. Imagine if, in
addition to that, baz depended on bar, so you'd have:
<code>foo -&gt; bar -&gt; baz -&gt; bar -&gt; baz ...</code>. However, since the folder
structure is: <code>foo/node_modules/bar/node_modules/baz</code>, there's no need to
put another copy of bar into <code>.../baz/node_modules</code>, since when it calls
require("bar"), it will get the copy that is installed in
<code>foo/node_modules/bar</code>.</p>
<p>This shortcut is only used if the exact same
version would be installed in multiple nested <code>node_modules</code> folders. It
is still possible to have <code>a/node_modules/b/node_modules/a</code> if the two
"a" packages are different versions. However, without repeating the
exact same package multiple times, an infinite regress will always be
prevented.</p>
<p>Another optimization can be made by installing dependencies at the
highest level possible, below the localized "target" folder.</p>
<h4 id="Example">Example</h4>
<p>Consider this dependency graph:</p>
<pre><code>foo
+-- blerg@1.2.5
+-- bar@1.2.3
| +-- blerg@1.x (latest=1.3.7)
| +-- baz@2.x
| | `-- quux@3.x
| | `-- bar@1.2.3 (cycle)
| `-- asdf@*
`-- baz@1.2.3
`-- quux@3.x
`-- bar</code></pre>
<p>In this case, we might expect a folder structure like this:</p>
<pre><code>foo
+-- node_modules
+-- blerg (1.2.5) &lt;---[A]
+-- bar (1.2.3) &lt;---[B]
| +-- node_modules
| | `-- baz (2.0.2) &lt;---[C]
| | `-- node_modules
| | `-- quux (3.2.0)
| `-- asdf (2.3.4)
`-- baz (1.2.3) &lt;---[D]
`-- node_modules
`-- quux (3.2.0) &lt;---[E]</code></pre>
<p>Since foo depends directly on bar@1.2.3 and baz@1.2.3, those are
installed in foo's <code>node_modules</code> folder.</p>
<p>Even though the latest copy of blerg is 1.3.7, foo has a specific
dependency on version 1.2.5. So, that gets installed at [A]. Since the
parent installation of blerg satisfie's bar's dependency on blerg@1.x,
it does not install another copy under [B].</p>
<p>Bar [B] also has dependencies on baz and asdf, so those are installed in
bar's <code>node_modules</code> folder. Because it depends on <code>baz@2.x</code>, it cannot
re-use the <code>baz@1.2.3</code> installed in the parent <code>node_modules</code> folder [D],
and must install its own copy [C].</p>
<p>Underneath bar, the <code>baz-&gt;quux-&gt;bar</code> dependency creates a cycle.
However, because <code>bar</code> is already in <code>quux</code>'s ancestry [B], it does not
unpack another copy of bar into that folder.</p>
<p>Underneath <code>foo-&gt;baz</code> [D], quux's [E] folder tree is empty, because its
dependency on bar is satisfied by the parent folder copy installed at [B].</p>
<p>For a graphical breakdown of what is installed where, use <code>npm ls</code>.</p>
<h3 id="Publishing">Publishing</h3>
<p>Upon publishing, npm will look in the <code>node_modules</code> folder. If any of
the items there are not in the <code>bundledDependencies</code> array, then they will
not be included in the package tarball.</p>
<p>This allows a package maintainer to install all of their dependencies
(and dev dependencies) locally, but only re-publish those items that
cannot be found elsewhere. See <code><a href="../doc/json.html">json(1)</a></code> for more information.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li></ul>
</div>
<p id="footer">global &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

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

@ -0,0 +1,73 @@
<!doctype html>
<html>
<title>help-search</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/help-search.html">help-search</a></h1> <p>Search npm help documentation</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm help-search some search terms</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command will search the npm markdown documentation files for the
terms provided, and then list the results, sorted by relevance.</p>
<p>If only one result is found, then it will show that help topic.</p>
<p>If the argument to <code>npm help</code> is not a known help topic, then it will
call <code>help-search</code>. It is rarely if ever necessary to call this
command directly.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<h3 id="long">long</h3>
<ul><li>Type: Boolean</li><li>Default false</li></ul>
<p>If true, the "long" flag will cause help-search to output context around
where the terms were found in the documentation.</p>
<p>If false, then help-search will just list out the help topics found.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li></ul>
</div>
<p id="footer">help-search &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

71
deps/npm/html/doc/help.html

@ -0,0 +1,71 @@
<!doctype html>
<html>
<title>help</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/help.html">help</a></h1> <p>Get help on npm</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm help &lt;topic&gt;
npm help some search terms</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>If supplied a topic, then show the appropriate documentation page.</p>
<p>If the topic does not exist, or if multiple terms are provided, then run
the <code>help-search</code> command to find a match. Note that, if <code>help-search</code>
finds a single subject, then it will run <code>help</code> on that topic, so unique
matches are equivalent to specifying a topic name.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<h3 id="viewer">viewer</h3>
<ul><li>Default: "man" on Posix, "browser" on Windows</li><li>Type: path</li></ul>
<p>The program to use to view help content.</p>
<p>Set to <code>"browser"</code> to view html help content in the default web browser.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/help-search.html">help-search(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
<p id="footer">help &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

72
deps/npm/html/doc/home.html

@ -0,0 +1,72 @@
<!doctype html>
<html>
<title>home</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/docs.html">docs</a></h1> <p>Docs for a package in a web browser maybe</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm docs &lt;pkgname&gt;
npm home &lt;pkgname&gt;</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command tries to guess at the likely location of a package's
documentation URL, and then tries to open it using the <code>--browser</code>
config param.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<h3 id="browser">browser</h3>
<ul><li>Default: OS X: <code>"open"</code>, others: <code>"google-chrome"</code></li><li>Type: String</li></ul>
<p>The browser that is called by the <code>npm docs</code> command to open websites.</p>
<h3 id="registry">registry</h3>
<ul><li>Default: https://registry.npmjs.org/</li><li>Type: url</li></ul>
<p>The base URL of the npm package registry.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
<p id="footer">home &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

407
deps/npm/html/doc/index.html

@ -0,0 +1,407 @@
<!doctype html>
<html>
<title>index</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/index.html">index</a></h1> <p>Index of all npm documentation</p>
<h2 id="npm-README-1"><a href="../doc/README.html">README</a></h2>
<p> node package manager</p>
<h1>Command Line Documentation</h1>
<h2 id="npm-adduser-1"><a href="../doc/adduser.html">adduser(1)</a></h2>
<p> Add a registry user account</p>
<h2 id="npm-bin-1"><a href="../doc/bin.html">bin(1)</a></h2>
<p> Display npm bin folder</p>
<h2 id="npm-bugs-1"><a href="../doc/bugs.html">bugs(1)</a></h2>
<p> Bugs for a package in a web browser maybe</p>
<h2 id="npm-build-1"><a href="../doc/build.html">build(1)</a></h2>
<p> Build a package</p>
<h2 id="npm-bundle-1"><a href="../doc/bundle.html">bundle(1)</a></h2>
<p> REMOVED</p>
<h2 id="npm-cache-1"><a href="../doc/cache.html">cache(1)</a></h2>
<p> Manipulates packages cache</p>
<h2 id="npm-changelog-1"><a href="../doc/changelog.html">changelog(1)</a></h2>
<p> Changes</p>
<h2 id="npm-coding-style-1"><a href="../doc/coding-style.html">coding-style(1)</a></h2>
<p> npm's "funny" coding style</p>
<h2 id="npm-completion-1"><a href="../doc/completion.html">completion(1)</a></h2>
<p> Tab Completion for npm</p>
<h2 id="npm-config-1"><a href="../doc/config.html">config(1)</a></h2>
<p> Manage the npm configuration file</p>
<h2 id="npm-deprecate-1"><a href="../doc/deprecate.html">deprecate(1)</a></h2>
<p> Deprecate a version of a package</p>
<h2 id="npm-developers-1"><a href="../doc/developers.html">developers(1)</a></h2>
<p> Developer Guide</p>
<h2 id="npm-docs-1"><a href="../doc/docs.html">docs(1)</a></h2>
<p> Docs for a package in a web browser maybe</p>
<h2 id="npm-edit-1"><a href="../doc/edit.html">edit(1)</a></h2>
<p> Edit an installed package</p>
<h2 id="npm-explore-1"><a href="../doc/explore.html">explore(1)</a></h2>
<p> Browse an installed package</p>
<h2 id="npm-faq-1"><a href="../doc/faq.html">faq(1)</a></h2>
<p> Frequently Asked Questions</p>
<h2 id="npm-folders-1"><a href="../doc/folders.html">folders(1)</a></h2>
<p> Folder Structures Used by npm</p>
<h2 id="npm-help-search-1"><a href="../doc/help-search.html">help-search(1)</a></h2>
<p> Search npm help documentation</p>
<h2 id="npm-help-1"><a href="../doc/help.html">help(1)</a></h2>
<p> Get help on npm</p>
<h2 id="npm-init-1"><a href="../doc/init.html">init(1)</a></h2>
<p> Interactively create a package.json file</p>
<h2 id="npm-install-1"><a href="../doc/install.html">install(1)</a></h2>
<p> Install a package</p>
<h2 id="npm-json-1"><a href="../doc/json.html">json(1)</a></h2>
<p> Specifics of npm's package.json handling</p>
<h2 id="npm-link-1"><a href="../doc/link.html">link(1)</a></h2>
<p> Symlink a package folder</p>
<h2 id="npm-list-1"><a href="../doc/list.html">list(1)</a></h2>
<p> List installed packages</p>
<h2 id="npm-1"><a href="../doc/npm.html">npm(1)</a></h2>
<p> node package manager</p>
<h2 id="npm-outdated-1"><a href="../doc/outdated.html">outdated(1)</a></h2>
<p> Check for outdated packages</p>
<h2 id="npm-owner-1"><a href="../doc/owner.html">owner(1)</a></h2>
<p> Manage package owners</p>
<h2 id="npm-pack-1"><a href="../doc/pack.html">pack(1)</a></h2>
<p> Create a tarball from a package</p>
<h2 id="npm-prefix-1"><a href="../doc/prefix.html">prefix(1)</a></h2>
<p> Display prefix</p>
<h2 id="npm-prune-1"><a href="../doc/prune.html">prune(1)</a></h2>
<p> Remove extraneous packages</p>
<h2 id="npm-publish-1"><a href="../doc/publish.html">publish(1)</a></h2>
<p> Publish a package</p>
<h2 id="npm-rebuild-1"><a href="../doc/rebuild.html">rebuild(1)</a></h2>
<p> Rebuild a package</p>
<h2 id="npm-registry-1"><a href="../doc/registry.html">registry(1)</a></h2>
<p> The JavaScript Package Registry</p>
<h2 id="npm-removing-npm-1"><a href="../doc/removing-npm.html">removing-npm(1)</a></h2>
<p> Cleaning the Slate</p>
<h2 id="npm-restart-1"><a href="../doc/restart.html">restart(1)</a></h2>
<p> Start a package</p>
<h2 id="npm-root-1"><a href="../doc/root.html">root(1)</a></h2>
<p> Display npm root</p>
<h2 id="npm-run-script-1"><a href="../doc/run-script.html">run-script(1)</a></h2>
<p> Run arbitrary package scripts</p>
<h2 id="npm-scripts-1"><a href="../doc/scripts.html">scripts(1)</a></h2>
<p> How npm handles the "scripts" field</p>
<h2 id="npm-search-1"><a href="../doc/search.html">search(1)</a></h2>
<p> Search for packages</p>
<h2 id="npm-semver-1"><a href="../doc/semver.html">semver(1)</a></h2>
<p> The semantic versioner for npm</p>
<h2 id="npm-star-1"><a href="../doc/star.html">star(1)</a></h2>
<p> Mark your favorite packages</p>
<h2 id="npm-start-1"><a href="../doc/start.html">start(1)</a></h2>
<p> Start a package</p>
<h2 id="npm-stop-1"><a href="../doc/stop.html">stop(1)</a></h2>
<p> Stop a package</p>
<h2 id="npm-submodule-1"><a href="../doc/submodule.html">submodule(1)</a></h2>
<p> Add a package as a git submodule</p>
<h2 id="npm-tag-1"><a href="../doc/tag.html">tag(1)</a></h2>
<p> Tag a published version</p>
<h2 id="npm-test-1"><a href="../doc/test.html">test(1)</a></h2>
<p> Test a package</p>
<h2 id="npm-uninstall-1"><a href="../doc/uninstall.html">uninstall(1)</a></h2>
<p> Remove a package</p>
<h2 id="npm-unpublish-1"><a href="../doc/unpublish.html">unpublish(1)</a></h2>
<p> Remove a package from the registry</p>
<h2 id="npm-update-1"><a href="../doc/update.html">update(1)</a></h2>
<p> Update a package</p>
<h2 id="npm-version-1"><a href="../doc/version.html">version(1)</a></h2>
<p> Bump a package version</p>
<h2 id="npm-view-1"><a href="../doc/view.html">view(1)</a></h2>
<p> View registry info</p>
<h2 id="npm-whoami-1"><a href="../doc/whoami.html">whoami(1)</a></h2>
<p> Display npm username</p>
<h1>API Documentation</h1>
<h2 id="npm-bin-3"><a href="../api/bin.html">bin(3)</a></h2>
<p> Display npm bin folder</p>
<h2 id="npm-bugs-3"><a href="../api/bugs.html">bugs(3)</a></h2>
<p> Bugs for a package in a web browser maybe</p>
<h2 id="npm-commands-3"><a href="../api/commands.html">commands(3)</a></h2>
<p> npm commands</p>
<h2 id="npm-config-3"><a href="../api/config.html">config(3)</a></h2>
<p> Manage the npm configuration files</p>
<h2 id="npm-deprecate-3"><a href="../api/deprecate.html">deprecate(3)</a></h2>
<p> Deprecate a version of a package</p>
<h2 id="npm-docs-3"><a href="../api/docs.html">docs(3)</a></h2>
<p> Docs for a package in a web browser maybe</p>
<h2 id="npm-edit-3"><a href="../api/edit.html">edit(3)</a></h2>
<p> Edit an installed package</p>
<h2 id="npm-explore-3"><a href="../api/explore.html">explore(3)</a></h2>
<p> Browse an installed package</p>
<h2 id="npm-help-search-3"><a href="../api/help-search.html">help-search(3)</a></h2>
<p> Search the help pages</p>
<h2 id="npm-init-3"><a href="../api/init.html">init(3)</a></h2>
<p> Interactively create a package.json file</p>
<h2 id="npm-install-3"><a href="../api/install.html">install(3)</a></h2>
<p> install a package programmatically</p>
<h2 id="npm-link-3"><a href="../api/link.html">link(3)</a></h2>
<p> Symlink a package folder</p>
<h2 id="npm-load-3"><a href="../api/load.html">load(3)</a></h2>
<p> Load config settings</p>
<h2 id="npm-ls-3"><a href="../api/ls.html">ls(3)</a></h2>
<p> List installed packages</p>
<h2 id="npm-3"><a href="../api/npm.html">npm(3)</a></h2>
<p> node package manager</p>
<h2 id="npm-outdated-3"><a href="../api/outdated.html">outdated(3)</a></h2>
<p> Check for outdated packages</p>
<h2 id="npm-owner-3"><a href="../api/owner.html">owner(3)</a></h2>
<p> Manage package owners</p>
<h2 id="npm-pack-3"><a href="../api/pack.html">pack(3)</a></h2>
<p> Create a tarball from a package</p>
<h2 id="npm-prefix-3"><a href="../api/prefix.html">prefix(3)</a></h2>
<p> Display prefix</p>
<h2 id="npm-prune-3"><a href="../api/prune.html">prune(3)</a></h2>
<p> Remove extraneous packages</p>
<h2 id="npm-publish-3"><a href="../api/publish.html">publish(3)</a></h2>
<p> Publish a package</p>
<h2 id="npm-rebuild-3"><a href="../api/rebuild.html">rebuild(3)</a></h2>
<p> Rebuild a package</p>
<h2 id="npm-restart-3"><a href="../api/restart.html">restart(3)</a></h2>
<p> Start a package</p>
<h2 id="npm-root-3"><a href="../api/root.html">root(3)</a></h2>
<p> Display npm root</p>
<h2 id="npm-run-script-3"><a href="../api/run-script.html">run-script(3)</a></h2>
<p> Run arbitrary package scripts</p>
<h2 id="npm-search-3"><a href="../api/search.html">search(3)</a></h2>
<p> Search for packages</p>
<h2 id="npm-start-3"><a href="../api/start.html">start(3)</a></h2>
<p> Start a package</p>
<h2 id="npm-stop-3"><a href="../api/stop.html">stop(3)</a></h2>
<p> Stop a package</p>
<h2 id="npm-submodule-3"><a href="../api/submodule.html">submodule(3)</a></h2>
<p> Add a package as a git submodule</p>
<h2 id="npm-tag-3"><a href="../api/tag.html">tag(3)</a></h2>
<p> Tag a published version</p>
<h2 id="npm-test-3"><a href="../api/test.html">test(3)</a></h2>
<p> Test a package</p>
<h2 id="npm-uninstall-3"><a href="../api/uninstall.html">uninstall(3)</a></h2>
<p> uninstall a package programmatically</p>
<h2 id="npm-unpublish-3"><a href="../api/unpublish.html">unpublish(3)</a></h2>
<p> Remove a package from the registry</p>
<h2 id="npm-update-3"><a href="../api/update.html">update(3)</a></h2>
<p> Update a package</p>
<h2 id="npm-version-3"><a href="../api/version.html">version(3)</a></h2>
<p> Bump a package version</p>
<h2 id="npm-view-3"><a href="../api/view.html">view(3)</a></h2>
<p> View registry info</p>
<h2 id="npm-whoami-3"><a href="../api/whoami.html">whoami(3)</a></h2>
<p> Display npm username</p>
</div>
<p id="footer">index &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

64
deps/npm/html/doc/init.html

@ -0,0 +1,64 @@
<!doctype html>
<html>
<title>init</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/init.html">init</a></h1> <p>Interactively create a package.json file</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm init</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This will ask you a bunch of questions, and then write a package.json for you.</p>
<p>It attempts to make reasonable guesses about what you want things to be set to,
and then writes a package.json file with the options you've selected.</p>
<p>If you already have a package.json file, it'll read that first, and default to
the options in there.</p>
<p>It is strictly additive, so it does not delete options from your package.json
without a really good reason to do so.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><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.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

169
deps/npm/html/doc/install.html

@ -0,0 +1,169 @@
<!doctype html>
<html>
<title>install</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/install.html">install</a></h1> <p>Install a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm install (with no args in a package dir)
npm install &lt;tarball file&gt;
npm install &lt;tarball url&gt;
npm install &lt;folder&gt;
npm install &lt;name&gt;
npm install &lt;name&gt;@&lt;tag&gt;
npm install &lt;name&gt;@&lt;version&gt;
npm install &lt;name&gt;@&lt;version range&gt;</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command installs a package, and any packages that it depends on.</p>
<p>A <code>package</code> is:</p>
<ul><li>a) a folder containing a program described by a package.json file</li><li>b) a gzipped tarball containing (a)</li><li>c) a url that resolves to (b)</li><li>d) a <code>&lt;name&gt;@&lt;version&gt;</code> that is published on the registry with (c)</li><li>e) a <code>&lt;name&gt;@&lt;tag&gt;</code> that points to (d)</li><li>f) a <code>&lt;name&gt;</code> that has a "latest" tag satisfying (e)</li><li>g) a <code>&lt;git remote url&gt;</code> that resolves to (b)</li></ul>
<p>Even if you never publish your package, you can still get a lot of
benefits of using npm if you just want to write a node program (a), and
perhaps if you also want to be able to easily install it elsewhere
after packing it up into a tarball (b).</p>
<ul><li><p><code>npm install</code> (in package directory, no arguments):
Install the dependencies in the local node_modules folder.</p><p>In global mode (ie, with <code>-g</code> or <code>--global</code> appended to the command),
it installs the current package context (ie, the current working
directory) as a global package.</p></li><li><p><code>npm install &lt;folder&gt;</code>:
Install a package that is sitting in a folder on the filesystem.</p></li><li><p><code>npm install &lt;tarball file&gt;</code>:
Install a package that is sitting on the filesystem. Note: if you just want
to link a dev directory into your npm root, you can do this more easily by
using <code>npm link</code>.</p><p>Example:</p><pre><code>npm install ./package.tgz</code></pre></li><li><p><code>npm install &lt;tarball url&gt;</code>:
Fetch the tarball url, and then install it. In order to distinguish between
this and other options, the argument must start with "http://" or "https://"</p><p>Example:</p><pre><code>npm install https://github.com/indexzero/forever/tarball/v0.5.6</code></pre></li><li><p><code>npm install &lt;name&gt;</code>:
Do a <code>&lt;name&gt;@&lt;tag&gt;</code> install, where <code>&lt;tag&gt;</code> is the "tag" config. (See
<code><a href="../doc/config.html">config(1)</a></code>)</p><p>Example:</p><pre><code>npm install sax</code></pre><p><strong>Note</strong>: If there is a file or folder named <code>&lt;name&gt;</code> in the current
working directory, then it will try to install that, and only try to
fetch the package by name if it is not valid.</p></li><li><p><code>npm install &lt;name&gt;@&lt;tag&gt;</code>:
Install the version of the package that is referenced by the specified tag.
If the tag does not exist in the registry data for that package, then this
will fail.</p><p>Example:</p><pre><code>npm install sax@latest</code></pre></li><li><p><code>npm install &lt;name&gt;@&lt;version&gt;</code>:
Install the specified version of the package. This will fail if the version
has not been published to the registry.</p><p>Example:</p><pre><code>npm install sax@0.1.1</code></pre></li><li><p><code>npm install &lt;name&gt;@&lt;version range&gt;</code>:
Install a version of the package matching the specified version range. This
will follow the same rules for resolving dependencies described in <code><a href="../doc/json.html">json(1)</a></code>.</p><p>Note that most version ranges must be put in quotes so that your shell will
treat it as a single argument.</p><p>Example:</p><pre><code>npm install sax@"&gt;=0.1.0 &lt;0.2.0"</code></pre></li><li><p><code>npm install &lt;git remote url&gt;</code>:</p><p>Install a package by cloning a git remote url. The format of the git
url is:</p><pre><code>&lt;protocol&gt;://[&lt;user&gt;@]&lt;hostname&gt;&lt;separator&gt;&lt;path&gt;[#&lt;commit-ish&gt;]</code></pre><p><code>&lt;protocol&gt;</code> is one of <code>git</code>, <code>git+ssh</code>, <code>git+http</code>, or
<code>git+https</code>. If no <code>&lt;commit-ish&gt;</code> is specified, then <code>master</code> is
used.</p><p>Examples:</p><pre><code>git+ssh://git@github.com:isaacs/npm.git#v1.0.27
git+https://isaacs@github.com/isaacs/npm.git
git://github.com/isaacs/npm.git#v1.0.27</code></pre></li></ul>
<p>You may combine multiple arguments, and even multiple types of arguments.
For example:</p>
<pre><code>npm install sax@"&gt;=0.1.0 &lt;0.2.0" bench supervisor</code></pre>
<p>The <code>--tag</code> argument will apply to all of the specified install targets.</p>
<p>The <code>--force</code> argument will force npm to fetch remote resources even if a
local copy exists on disk.</p>
<pre><code>npm install sax --force</code></pre>
<p>The <code>--global</code> argument will cause npm to install the package globally
rather than locally. See <code><a href="../doc/global.html">global(1)</a></code>.</p>
<p>The <code>--link</code> argument will cause npm to link global installs into the
local space in some cases.</p>
<p>See <code><a href="../doc/config.html">config(1)</a></code>. Many of the configuration params have some
effect on installation, since that's most of what npm does.</p>
<h2 id="ALGORITHM">ALGORITHM</h2>
<p>To install a package, npm uses the following algorithm:</p>
<pre><code>install(where, what, family, ancestors)
fetch what, unpack to &lt;where&gt;/node_modules/&lt;what&gt;
for each dep in what.dependencies
resolve dep to precise version
for each dep@version in what.dependencies
not in &lt;where&gt;/node_modules/&lt;what&gt;/node_modules/*
and not in &lt;family&gt;
add precise version deps to &lt;family&gt;
install(&lt;where&gt;/node_modules/&lt;what&gt;, dep, family)</code></pre>
<p>For this <code>package{dep}</code> structure: <code>A{B,C}, B{C}, C{D}</code>,
this algorithm produces:</p>
<pre><code>A
+-- B
`-- C
`-- D</code></pre>
<p>That is, the dependency from B to C is satisfied by the fact that A
already caused C to be installed at a higher level.</p>
<p>See <a href="../doc/folders.html">folders(1)</a> for a more detailed description of the specific
folder structures that npm creates.</p>
<h3 id="Limitations-of-npm-s-Install-Algorithm">Limitations of npm's Install Algorithm</h3>
<p>There are some very rare and pathological edge-cases where a cycle can
cause npm to try to install a never-ending tree of packages. Here is
the simplest case:</p>
<pre><code>A -&gt; B -&gt; A' -&gt; B' -&gt; A -&gt; B -&gt; A' -&gt; B' -&gt; A -&gt; ...</code></pre>
<p>where <code>A</code> is some version of a package, and <code>A'</code> is a different version
of the same package. Because <code>B</code> depends on a different version of <code>A</code>
than the one that is already in the tree, it must install a separate
copy. The same is true of <code>A'</code>, which must install <code>B'</code>. Because <code>B'</code>
depends on the original version of <code>A</code>, which has been overridden, the
cycle falls into infinite regress.</p>
<p>To avoid this situation, npm flat-out refuses to install any
<code>name@version</code> that is already present anywhere in the tree of package
folder ancestors. A more correct, but more complex, solution would be
to symlink the existing version into the new location. If this ever
affects a real use-case, it will be investigated.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li><li><a href="../doc/rm.html">rm(1)</a></li></ul>
</div>
<p id="footer">install &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

471
deps/npm/html/doc/json.html

@ -0,0 +1,471 @@
<!doctype html>
<html>
<title>json</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/json.html">json</a></h1> <p>Specifics of npm's package.json handling</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This document is all you need to know about what's required in your package.json
file. It must be actual JSON, not just a JavaScript object literal.</p>
<p>A lot of the behavior described in this document is affected by the config
settings described in <code><a href="../doc/config.html">config(1)</a></code>.</p>
<h2 id="DEFAULT-VALUES">DEFAULT VALUES</h2>
<p>npm will default some values based on package contents.</p>
<ul><li><p><code>"scripts": {"start": "node server.js"}</code></p><p>If there is a <code>server.js</code> file in the root of your package, then npm
will default the <code>start</code> command to <code>node server.js</code>.</p></li><li><p><code>"scripts":{"preinstall": "node-waf clean || true; node-waf configure build"}</code></p><p>If there is a <code>wscript</code> file in the root of your package, npm will
default the <code>preinstall</code> command to compile using node-waf.</p></li><li><p><code>"contributors": [...]</code></p><p>If there is an <code>AUTHORS</code> file in the root of your package, npm will
treat each line as a <code>Name &lt;email&gt; (url)</code> format, where email and url
are optional. Lines which start with a <code>#</code> or are blank, will be
ignored.</p></li></ul>
<h2 id="name">name</h2>
<p>The <em>most</em> important things in your package.json are the name and version fields.
Those are actually required, and your package won't install without
them. The name and version together form an identifier that is assumed
to be completely unique. Changes to the package should come along with
changes to the version.</p>
<p>The name is what your thing is called. Some tips:</p>
<ul><li>Don't put "js" or "node" in the name. It's assumed that it's js, since you're
writing a package.json file, and you can specify the engine using the "engines"
field. (See below.)</li><li>The name ends up being part of a URL, an argument on the command line, and a
folder name. Any name with non-url-safe characters will be rejected.
Also, it can't start with a dot or an underscore.</li><li>The name will probably be passed as an argument to require(), so it should
be something short, but also reasonably descriptive.</li><li>You may want to check the npm registry to see if there's something by that name
already, before you get too attached to it. http://registry.npmjs.org/</li></ul>
<h2 id="version">version</h2>
<p>The <em>most</em> important things in your package.json are the name and version fields.
Those are actually required, and your package won't install without
them. The name and version together form an identifier that is assumed
to be completely unique. Changes to the package should come along with
changes to the version.</p>
<p>Version must be parseable by
<a href="https://github.com/isaacs/node-semver">node-semver</a>, which is bundled
with npm as a dependency. (<code>npm install semver</code> to use it yourself.)</p>
<p>Here's how npm's semver implementation deviates from what's on semver.org:</p>
<ul><li>Versions can start with "v"</li><li>A numeric item separated from the main three-number version by a hyphen
will be interpreted as a "build" number, and will <em>increase</em> the version.
But, if the tag is not a number separated by a hyphen, then it's treated
as a pre-release tag, and is <em>less than</em> the version without a tag.
So, <code>0.1.2-7 &gt; 0.1.2-7-beta &gt; 0.1.2-6 &gt; 0.1.2 &gt; 0.1.2beta</code></li></ul>
<p>This is a little bit confusing to explain, but matches what you see in practice
when people create tags in git like "v1.2.3" and then do "git describe" to generate
a patch version.</p>
<h2 id="description">description</h2>
<p>Put a description in it. It's a string. This helps people discover your
package, as it's listed in <code>npm search</code>.</p>
<h2 id="keywords">keywords</h2>
<p>Put keywords in it. It's an array of strings. This helps people
discover your package as it's listed in <code>npm search</code>.</p>
<h2 id="homepage">homepage</h2>
<p>The url to the project homepage.</p>
<p><strong>NOTE</strong>: This is <em>not</em> the same as "url". If you put a "url" field,
then the registry will think it's a redirection to your package that has
been published somewhere else, and spit at you.</p>
<p>Literally. Spit. I'm so not kidding.</p>
<h2 id="bugs">bugs</h2>
<p>The url to your project's issue tracker and / or the email address to which
issues should be reported. These are helpful for people who encounter issues
with your package.</p>
<p>It should look like this:</p>
<pre><code>{ "url" : "http://github.com/owner/project/issues"
, "email" : "project@hostname.com"
}</code></pre>
<p>You can specify either one or both values. If you want to provide only a url,
you can specify the value for "bugs" as a simple string instead of an object.</p>
<p>If a url is provided, it will be used by the <code>npm bugs</code> command.</p>
<h2 id="people-fields-author-contributors">people fields: author, contributors</h2>
<p>The "author" is one person. "contributors" is an array of people. A "person"
is an object with a "name" field and optionally "url" and "email", like this:</p>
<pre><code>{ "name" : "Barney Rubble"
, "email" : "b@rubble.com"
, "url" : "http://barnyrubble.tumblr.com/"
}</code></pre>
<p>Or you can shorten that all into a single string, and npm will parse it for you:</p>
<pre><code>"Barney Rubble &lt;b@rubble.com&gt; (http://barnyrubble.tumblr.com/)</code></pre>
<p>Both email and url are optional either way.</p>
<p>npm also sets a top-level "maintainers" field with your npm user info.</p>
<h2 id="files">files</h2>
<p>The "files" field is an array of files to include in your project. If
you name a folder in the array, then it will also include the files
inside that folder. (Unless they would be ignored by another rule.)</p>
<p>You can also provide a ".npmignore" file in the root of your package,
which will keep files from being included, even if they would be picked
up by the files array. The ".npmignore" file works just like a
".gitignore".</p>
<h2 id="main">main</h2>
<p>The main field is a module ID that is the primary entry point to your program.
That is, if your package is named <code>foo</code>, and a user installs it, and then does
<code>require("foo")</code>, then your main module's exports object will be returned.</p>
<p>This should be a module ID relative to the root of your package folder.</p>
<p>For most modules, it makes the most sense to have a main script and often not
much else.</p>
<h2 id="bin">bin</h2>
<p>A lot of packages have one or more executable files that they'd like to
install into the PATH. npm makes this pretty easy (in fact, it uses this
feature to install the "npm" executable.)</p>
<p>To use this, supply a <code>bin</code> field in your package.json which is a map of
command name to local file name. On install, npm will symlink that file into
<code>prefix/bin</code> for global installs, or <code>./node_modules/.bin/</code> for local
installs.</p>
<p>For example, npm has this:</p>
<pre><code>{ "bin" : { "npm" : "./cli.js" } }</code></pre>
<p>So, when you install npm, it'll create a symlink from the <code>cli.js</code> script to
<code>/usr/local/bin/npm</code>.</p>
<p>If you have a single executable, and its name should be the name
of the package, then you can just supply it as a string. For example:</p>
<pre><code>{ "name": "my-program"
, "version": "1.2.5"
, "bin": "./path/to/program" }</code></pre>
<p>would be the same as this:</p>
<pre><code>{ "name": "my-program"
, "version": "1.2.5"
, "bin" : { "my-program" : "./path/to/program" } }</code></pre>
<h2 id="man">man</h2>
<p>Specify either a single file or an array of filenames to put in place for the
<code>man</code> program to find.</p>
<p>If only a single file is provided, then it's installed such that it is the
result from <code>man &lt;pkgname&gt;</code>, regardless of its actual filename. For example:</p>
<pre><code>{ "name" : "foo"
, "version" : "1.2.3"
, "description" : "A packaged foo fooer for fooing foos"
, "main" : "foo.js"
, "man" : "./man/doc.1"
}</code></pre>
<p>would link the <code>./man/doc.1</code> file in such that it is the target for <code>man foo</code></p>
<p>If the filename doesn't start with the package name, then it's prefixed.
So, this:</p>
<pre><code>{ "name" : "foo"
, "version" : "1.2.3"
, "description" : "A packaged foo fooer for fooing foos"
, "main" : "foo.js"
, "man" : [ "./man/foo.1", "./man/bar.1" ]
}</code></pre>
<p>will create files to do <code>man foo</code> and <code>man foo-bar</code>.</p>
<p>Man files must end with a number, and optionally a <code>.gz</code> suffix if they are
compressed. The number dictates which man section the file is installed into.</p>
<pre><code>{ "name" : "foo"
, "version" : "1.2.3"
, "description" : "A packaged foo fooer for fooing foos"
, "main" : "foo.js"
, "man" : [ "./man/foo.1", "./man/foo.2" ]
}</code></pre>
<p>will create entries for <code>man foo</code> and <code>man 2 foo</code></p>
<h2 id="directories">directories</h2>
<p>The CommonJS <a href="http://wiki.commonjs.org/wiki/Packages/1.0">Packages</a> spec details a
few ways that you can indicate the structure of your package using a <code>directories</code>
hash. If you look at <a href="http://registry.npmjs.org/npm/latest">npm's package.json</a>,
you'll see that it has directories for doc, lib, and man.</p>
<p>In the future, this information may be used in other creative ways.</p>
<h3 id="directories-lib">directories.lib</h3>
<p>Tell people where the bulk of your library is. Nothing special is done
with the lib folder in any way, but it's useful meta info.</p>
<h3 id="directories-bin">directories.bin</h3>
<p>If you specify a "bin" directory, then all the files in that folder will
be used as the "bin" hash.</p>
<p>If you have a "bin" hash already, then this has no effect.</p>
<h3 id="directories-man">directories.man</h3>
<p>A folder that is full of man pages. Sugar to generate a "man" array by
walking the folder.</p>
<h3 id="directories-doc">directories.doc</h3>
<p>Put markdown files in here. Eventually, these will be displayed nicely,
maybe, someday.</p>
<h3 id="directories-example">directories.example</h3>
<p>Put example scripts in here. Someday, it might be exposed in some clever way.</p>
<h2 id="repository">repository</h2>
<p>Specify the place where your code lives. This is helpful for people who
want to contribute. If the git repo is on github, then the <code>npm docs</code>
command will be able to find you.</p>
<p>Do it like this:</p>
<pre><code>"repository" :
{ "type" : "git"
, "url" : "http://github.com/isaacs/npm.git"
}
"repository" :
{ "type" : "svn"
, "url" : "http://v8.googlecode.com/svn/trunk/"
}</code></pre>
<p>The URL should be a publicly available (perhaps read-only) url that can be handed
directly to a VCS program without any modification. It should not be a url to an
html project page that you put in your browser. It's for computers.</p>
<h2 id="scripts">scripts</h2>
<p>The "scripts" member is an object hash of script commands that are run
at various times in the lifecycle of your package. The key is the lifecycle
event, and the value is the command to run at that point.</p>
<p>See <code><a href="../doc/scripts.html">scripts(1)</a></code> to find out more about writing package scripts.</p>
<h2 id="config">config</h2>
<p>A "config" hash can be used to set configuration
parameters used in package scripts that persist across upgrades. For
instance, if a package had the following:</p>
<pre><code>{ "name" : "foo"
, "config" : { "port" : "8080" } }</code></pre>
<p>and then had a "start" command that then referenced the
<code>npm_package_config_port</code> environment variable, then the user could
override that by doing <code>npm config set foo:port 8001</code>.</p>
<p>See <code><a href="../doc/config.html">config(1)</a></code> and <code><a href="../doc/scripts.html">scripts(1)</a></code> for more on package
configs.</p>
<h2 id="dependencies">dependencies</h2>
<p>Dependencies are specified with a simple hash of package name to version
range. The version range is EITHER a string which has one or more
space-separated descriptors, OR a range like "fromVersion - toVersion"</p>
<p><strong>Please do not put test harnesses in your <code>dependencies</code> hash.</strong> See
<code>devDependencies</code>, below.</p>
<p>Version range descriptors may be any of the following styles, where "version"
is a semver compatible version identifier.</p>
<ul><li><code>version</code> Must match <code>version</code> exactly</li><li><code>=version</code> Same as just <code>version</code></li><li><code>&gt;version</code> Must be greater than <code>version</code></li><li><code>&gt;=version</code> etc</li><li><code>&lt;version</code></li><li><code>&lt;=version</code></li><li><code>~version</code> See 'Tilde Version Ranges' below</li><li><code>1.2.x</code> See 'X Version Ranges' below</li><li><code>http://...</code> See 'URLs as Dependencies' below</li><li><code>*</code> Matches any version</li><li><code>""</code> (just an empty string) Same as <code>*</code></li><li><code>version1 - version2</code> Same as <code>&gt;=version1 &lt;=version2</code>.</li><li><code>range1 || range2</code> Passes if either range1 or range2 are satisfied.</li></ul>
<p>For example, these are all valid:</p>
<pre><code>{ "dependencies" :
{ "foo" : "1.0.0 - 2.9999.9999"
, "bar" : "&gt;=1.0.2 &lt;2.1.2"
, "baz" : "&gt;1.0.2 &lt;=2.3.4"
, "boo" : "2.0.1"
, "qux" : "&lt;1.0.0 || &gt;=2.3.1 &lt;2.4.5 || &gt;=2.5.2 &lt;3.0.0"
, "asd" : "http://asdf.com/asdf.tar.gz"
, "til" : "~1.2"
, "elf" : "~1.2.3"
, "two" : "2.x"
, "thr" : "3.3.x"
}
}</code></pre>
<h3 id="Tilde-Version-Ranges">Tilde Version Ranges</h3>
<p>A range specifier starting with a tilde <code>~</code> character is matched against
a version in the following fashion.</p>
<ul><li>The version must be at least as high as the range.</li><li>The version must be less than the next major revision above the range.</li></ul>
<p>For example, the following are equivalent:</p>
<ul><li><code>"~1.2.3" = "&gt;=1.2.3 &lt;1.3.0"</code></li><li><code>"~1.2" = "&gt;=1.2.0 &lt;2.0.0"</code></li><li><code>"~1" = "&gt;=1.0.0 &lt;2.0.0"</code></li></ul>
<h3 id="X-Version-Ranges">X Version Ranges</h3>
<p>An "x" in a version range specifies that the version number must start
with the supplied digits, but any digit may be used in place of the x.</p>
<p>The following are equivalent:</p>
<ul><li><code>"1.2.x" = "&gt;=1.2.0 &lt;1.3.0"</code></li><li><code>"1.x.x" = "&gt;=1.0.0 &lt;2.0.0"</code></li><li><code>"1.2" = "1.2.x"</code></li><li><code>"1.x" = "1.x.x"</code></li><li><code>"1" = "1.x.x"</code></li></ul>
<p>You may not supply a comparator with a version containing an x. Any
digits after the first "x" are ignored.</p>
<h3 id="URLs-as-Dependencies">URLs as Dependencies</h3>
<p>Starting with npm version 0.2.14, you may specify a tarball URL in place
of a version range.</p>
<p>This tarball will be downloaded and installed locally to your package at
install time.</p>
<h2 id="devDependencies">devDependencies</h2>
<p>If someone is planning on downloading and using your module in their
program, then they probably don't want or need to download and build
the external test or documentation framework that you use.</p>
<p>In this case, it's best to list these additional items in a
<code>devDependencies</code> hash.</p>
<p>These things will be installed whenever the <code>--dev</code> configuration flag
is set. This flag is set automatically when doing <code>npm link</code>, and can
be managed like any other npm configuration param. See <code><a href="../doc/config.html">config(1)</a></code>
for more on the topic.</p>
<h2 id="bundledDependencies">bundledDependencies</h2>
<p>Array of package names that will be bundled when publishing the package.</p>
<p>If this is spelled <code>"bundleDependencies"</code>, then that is also honorable.</p>
<h2 id="engines">engines</h2>
<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>
<p>And, like with dependencies, if you don't specify the version (or if you
specify "*" as the version), then any version of node will do.</p>
<p>If you specify an "engines" field, then npm will require that "node" be
somewhere on that list. If "engines" is omitted, then npm will just assume
that it works on node.</p>
<p>You can also use the "engines" field to specify which versions of npm
are capable of properly installing your program. For example:</p>
<pre><code>{ "engines" : { "npm" : "~1.0.20" } }</code></pre>
<h2 id="preferGlobal">preferGlobal</h2>
<p>If your package is primarily a command-line application that should be
installed globally, then set this value to <code>true</code> to provide a warning
if it is installed locally.</p>
<p>It doesn't actually prevent users from installing it locally, but it
does help prevent some confusion if it doesn't work as expected.</p>
<h2 id="private">private</h2>
<p>If you set <code>"private": true</code> in your package.json, then npm will refuse
to publish it.</p>
<p>This is a way to prevent accidental publication of private repositories.
If you would like to ensure that a given package is only ever published
to a speciic registry (for example, an internal registry),
then use the <code>publishConfig</code> hash described below
to override the <code>registry</code> config param at publish-time.</p>
<h2 id="publishConfig">publishConfig</h2>
<p>This is a set of config values that will be used at publish-time. It's
especially handy if you want to set the tag or registry, so that you can
ensure that a given package is not tagged with "latest" or published to
the global public registry by default.</p>
<p>Any config values can be overridden, but of course only "tag" and
"registry" probably matter for the purposes of publishing.</p>
<p>See <code><a href="../doc/config.html">config(1)</a></code> to see the list of config options that can be
overridden.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/semver.html">semver(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/version.html">version(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/rm.html">rm(1)</a></li></ul>
</div>
<p id="footer">json &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

93
deps/npm/html/doc/link.html

@ -0,0 +1,93 @@
<!doctype html>
<html>
<title>link</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/link.html">link</a></h1> <p>Symlink a package folder</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm link (in package folder)
npm link &lt;pkgname&gt;</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Package linking is a two-step process.</p>
<p>First, <code>npm link</code> in a package folder will create a globally-installed
symbolic link from <code>prefix/package-name</code> to the current folder.</p>
<p>Next, in some other location, <code>npm link package-name</code> will create a
symlink from the local <code>node_modules</code> folder to the global symlink.</p>
<p>When creating tarballs for <code>npm publish</code>, the linked packages are
"snapshotted" to their current state by resolving the symbolic links.</p>
<p>This is
handy for installing your own stuff, so that you can work on it and test it
iteratively without having to continually rebuild.</p>
<p>For example:</p>
<pre><code>cd ~/projects/node-redis # go into the package directory
npm link # creates global link
cd ~/projects/node-bloggy # go into some other package directory.
npm link redis # link-install the package</code></pre>
<p>Now, any changes to ~/projects/node-redis will be reflected in
~/projects/node-bloggy/node_modules/redis/</p>
<p>You may also shortcut the two steps in one. For example, to do the
above use-case in a shorter way:</p>
<pre><code>cd ~/projects/node-bloggy # go into the dir of your main project
npm link ../node-redis # link the dir of your dependency</code></pre>
<p>The second line is the equivalent of doing:</p>
<pre><code>(cd ../node-redis; npm link)
npm link redis</code></pre>
<p>That is, it first creates a global link, and then links the global
installation target into your project's <code>node_modules</code> folder.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">link &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

87
deps/npm/html/doc/list.html

@ -0,0 +1,87 @@
<!doctype html>
<html>
<title>list</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/ls.html">ls</a></h1> <p>List installed packages</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm list
npm ls
npm la
npm ll</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command will print to stdout all the versions of packages that are
installed, as well as their dependencies, in a tree-structure.</p>
<p>It does not take positional arguments, though you may set config flags
like with any other command, such as <code>-g</code> to list global packages.</p>
<p>It will print out extraneous, missing, and invalid packages.</p>
<p>When run as <code>ll</code> or <code>la</code>, it shows extended information by default.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<h3 id="long">long</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Show extended information.</p>
<h3 id="parseable">parseable</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Show parseable output instead of tree view.</p>
<h3 id="global">global</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>List packages in the global install prefix instead of in the current
project.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/update.html">update(1)</a></li></ul>
</div>
<p id="footer">list &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

93
deps/npm/html/doc/ln.html

@ -0,0 +1,93 @@
<!doctype html>
<html>
<title>ln</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/link.html">link</a></h1> <p>Symlink a package folder</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm link (in package folder)
npm link &lt;pkgname&gt;</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Package linking is a two-step process.</p>
<p>First, <code>npm link</code> in a package folder will create a globally-installed
symbolic link from <code>prefix/package-name</code> to the current folder.</p>
<p>Next, in some other location, <code>npm link package-name</code> will create a
symlink from the local <code>node_modules</code> folder to the global symlink.</p>
<p>When creating tarballs for <code>npm publish</code>, the linked packages are
"snapshotted" to their current state by resolving the symbolic links.</p>
<p>This is
handy for installing your own stuff, so that you can work on it and test it
iteratively without having to continually rebuild.</p>
<p>For example:</p>
<pre><code>cd ~/projects/node-redis # go into the package directory
npm link # creates global link
cd ~/projects/node-bloggy # go into some other package directory.
npm link redis # link-install the package</code></pre>
<p>Now, any changes to ~/projects/node-redis will be reflected in
~/projects/node-bloggy/node_modules/redis/</p>
<p>You may also shortcut the two steps in one. For example, to do the
above use-case in a shorter way:</p>
<pre><code>cd ~/projects/node-bloggy # go into the dir of your main project
npm link ../node-redis # link the dir of your dependency</code></pre>
<p>The second line is the equivalent of doing:</p>
<pre><code>(cd ../node-redis; npm link)
npm link redis</code></pre>
<p>That is, it first creates a global link, and then links the global
installation target into your project's <code>node_modules</code> folder.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">ln &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

87
deps/npm/html/doc/ls.html

@ -0,0 +1,87 @@
<!doctype html>
<html>
<title>ls</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/ls.html">ls</a></h1> <p>List installed packages</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm list
npm ls
npm la
npm ll</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command will print to stdout all the versions of packages that are
installed, as well as their dependencies, in a tree-structure.</p>
<p>It does not take positional arguments, though you may set config flags
like with any other command, such as <code>-g</code> to list global packages.</p>
<p>It will print out extraneous, missing, and invalid packages.</p>
<p>When run as <code>ll</code> or <code>la</code>, it shows extended information by default.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<h3 id="long">long</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Show extended information.</p>
<h3 id="parseable">parseable</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Show parseable output instead of tree view.</p>
<h3 id="global">global</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>List packages in the global install prefix instead of in the current
project.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/update.html">update(1)</a></li></ul>
</div>
<p id="footer">ls &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

170
deps/npm/html/doc/npm.html

@ -0,0 +1,170 @@
<!doctype html>
<html>
<title>npm</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/npm.html">npm</a></h1> <p>node package manager</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm &lt;command&gt; [args]</code></pre>
<h2 id="VERSION">VERSION</h2>
<p>1.1.0-alpha-2</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm is the package manager for the Node JavaScript platform. It puts
modules in place so that node can find them, and manages dependency
conflicts intelligently.</p>
<p>It is extremely configurable to support a wide variety of use cases.
Most commonly, it is used to publish, discover, install, and develop node
programs.</p>
<p>Run <code>npm help</code> to get a list of available commands.</p>
<h2 id="INTRODUCTION">INTRODUCTION</h2>
<p>You probably got npm because you want to install stuff.</p>
<p>Use <code>npm install blerg</code> to install the latest version of "blerg". Check out
<code><a href="../doc/install.html">install(1)</a></code> for more info. It can do a lot of stuff.</p>
<p>Use the <code>npm search</code> command to show everything that's available.
Use <code>npm ls</code> to show everything you've installed.</p>
<h2 id="DIRECTORIES">DIRECTORIES</h2>
<p>See <code><a href="../doc/folders.html">folders(1)</a></code> to learn about where npm puts stuff.</p>
<p>In particular, npm has two modes of operation:</p>
<ul><li>global mode:<br />npm installs packages into the install prefix at
<code>prefix/lib/node_modules</code> and bins are installed in <code>prefix/bin</code>.</li><li>local mode:<br />npm installs packages into the current project directory, which
defaults to the current working directory. Packages are installed to
<code>./node_modules</code>, and bins are installed to <code>./node_modules/.bin</code>.</li></ul>
<p>Local mode is the default. Use <code>--global</code> or <code>-g</code> on any command to
operate in global mode instead.</p>
<h2 id="DEVELOPER-USAGE">DEVELOPER USAGE</h2>
<p>If you're using npm to develop and publish your code, check out the
following help topics:</p>
<ul><li>json:
Make a package.json file. See <code><a href="../doc/json.html">json(1)</a></code>.</li><li>link:
For linking your current working code into Node's path, so that you
don't have to reinstall every time you make a change. Use
<code>npm link</code> to do this.</li><li>install:
It's a good idea to install things if you don't need the symbolic link.
Especially, installing other peoples code from the registry is done via
<code>npm install</code></li><li>adduser:
Create an account or log in. Creditials are stored in the
user config file.</li><li>publish:
Use the <code>npm publish</code> command to upload your code to the registry.</li></ul>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<p>npm is extremely configurable. It reads its configuration options from
5 places.</p>
<ul><li>Command line switches:<br />Set a config with <code>--key val</code>. All keys take a value, even if they
are booleans (the config parser doesn't know what the options are at
the time of parsing.) If no value is provided, then the option is set
to boolean <code>true</code>.</li><li>Environment Variables:<br />Set any config by prefixing the name in an environment variable with
<code>npm_config_</code>. For example, <code>export npm_config_key=val</code>.</li><li>User Configs:<br />The file at $HOME/.npmrc is an ini-formatted list of configs. If
present, it is parsed. If the <code>userconfig</code> option is set in the cli
or env, then that will be used instead.</li><li>Global Configs:<br />The file found at ../etc/npmrc (from the node executable, by default
this resolves to /usr/local/etc/npmrc) will be parsed if it is found.
If the <code>globalconfig</code> option is set in the cli, env, or user config,
then that file is parsed instead.</li><li>Defaults:<br />npm's default configuration options are defined in
lib/utils/config-defs.js. These must not be changed.</li></ul>
<p>See <code><a href="../doc/config.html">config(1)</a></code> for much much more information.</p>
<h2 id="CONTRIBUTIONS">CONTRIBUTIONS</h2>
<p>Patches welcome!</p>
<ul><li>code:
Read through <code><a href="../doc/coding-style.html">coding-style(1)</a></code> if you plan to submit code.
You don't have to agree with it, but you do have to follow it.</li><li>docs:
If you find an error in the documentation, edit the appropriate markdown
file in the "doc" folder. (Don't worry about generating the man page.)</li></ul>
<p>Contributors are listed in npm's <code>package.json</code> file. You can view them
easily by doing <code>npm view npm contributors</code>.</p>
<p>If you would like to contribute, but don't know what to work on, check
the issues list or ask on the mailing list.</p>
<ul><li><a href="http://github.com/isaacs/npm/issues">http://github.com/isaacs/npm/issues</a></li><li><a href="mailto:npm-@googlegroups.com">npm-@googlegroups.com</a></li></ul>
<h2 id="BUGS">BUGS</h2>
<p>When you find issues, please report them:</p>
<ul><li>web:
<a href="http://github.com/isaacs/npm/issues">http://github.com/isaacs/npm/issues</a></li><li>email:
<a href="mailto:npm-@googlegroups.com">npm-@googlegroups.com</a></li></ul>
<p>Be sure to include <em>all</em> of the output from the npm command that didn't work
as expected. The <code>npm-debug.log</code> file is also helpful to provide.</p>
<p>You can also look for isaacs in #node.js on irc://irc.freenode.net. He
will no doubt tell you to put the output in a gist or email.</p>
<h2 id="HISTORY">HISTORY</h2>
<p>See <a href="../doc/changelog.html">changelog(1)</a></p>
<h2 id="AUTHOR">AUTHOR</h2>
<p><a href="http://blog.izs.me/">Isaac Z. Schlueter</a> ::
<a href="https://github.com/isaacs/">isaacs</a> ::
<a href="http://twitter.com/izs">@izs</a> ::
<a href="mailto:i@izs.me">i@izs.me</a></p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/index.html">index(1)</a></li><li><a href="../api/npm.html">npm(3)</a></li></ul>
</div>
<p id="footer">npm &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

56
deps/npm/html/doc/outdated.html

@ -0,0 +1,56 @@
<!doctype html>
<html>
<title>outdated</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/outdated.html">outdated</a></h1> <p>Check for outdated packages</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm outdated [&lt;name&gt; [&lt;name&gt; ...]]</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command will check the registry to see if any (or, specific) installed
packages are currently outdated.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
</div>
<p id="footer">outdated &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

69
deps/npm/html/doc/owner.html

@ -0,0 +1,69 @@
<!doctype html>
<html>
<title>owner</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/owner.html">owner</a></h1> <p>Manage package owners</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm owner ls &lt;package name&gt;
npm owner add &lt;user&gt; &lt;package name&gt;
npm owner rm &lt;user&gt; &lt;package name&gt;</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Manage ownership of published packages.</p>
<ul><li>ls:
List all the users who have access to modify a package and push new versions.
Handy when you need to know who to bug for help.</li><li>add:
Add a new user as a maintainer of a package. This user is enabled to modify
metadata, publish new versions, and add other owners.</li><li>rm:
Remove a user from the package owner list. This immediately revokes their
privileges.</li></ul>
<p>Note that there is only one level of access. Either you can modify a package,
or you can't. Future versions may contain more fine-grained access levels, but
that is not implemented at this time.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
</div>
<p id="footer">owner &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

64
deps/npm/html/doc/pack.html

@ -0,0 +1,64 @@
<!doctype html>
<html>
<title>pack</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/pack.html">pack</a></h1> <p>Create a tarball from a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm pack [&lt;pkg&gt; [&lt;pkg&gt; ...]]</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>For anything that's installable (that is, a package folder, tarball,
tarball url, name@tag, name@version, or name), this command will fetch
it to the cache, and then copy the tarball to the current working
directory as <code>&lt;name&gt;-&lt;version&gt;.tgz</code>, and then write the filenames out to
stdout.</p>
<p>If the same package is specified multiple times, then the file will be
overwritten the second time.</p>
<p>If no arguments are supplied, then npm packs the current package folder.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">pack &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

55
deps/npm/html/doc/prefix.html

@ -0,0 +1,55 @@
<!doctype html>
<html>
<title>prefix</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/prefix.html">prefix</a></h1> <p>Display prefix</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm prefix</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Print the prefix to standard out.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/bin.html">bin(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">prefix &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

60
deps/npm/html/doc/prune.html

@ -0,0 +1,60 @@
<!doctype html>
<html>
<title>prune</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/prune.html">prune</a></h1> <p>Remove extraneous packages</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm prune [&lt;name&gt; [&lt;name ...]]</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command removes "extraneous" packages. If a package name is
provided, then only packages matching one of the supplied names are
removed.</p>
<p>Extraneous packages are packages that are not listed on the parent
package's dependencies list.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
<p id="footer">prune &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

64
deps/npm/html/doc/publish.html

@ -0,0 +1,64 @@
<!doctype html>
<html>
<title>publish</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/publish.html">publish</a></h1> <p>Publish a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm publish &lt;tarball&gt;
npm publish &lt;folder&gt;</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Publishes a package to the registry so that it can be installed by name.</p>
<ul><li><p><code>&lt;folder&gt;</code>:
A folder containing a package.json file</p></li><li><p><code>&lt;tarball&gt;</code>:
A url or file path to a gzipped tar archive containing a single folder
with a package.json file inside.</p></li></ul>
<p>Fails if the package name and version combination already exists in
the registry. Overwrites when the "--force" flag is set.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/deprecate.html">deprecate(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li></ul>
</div>
<p id="footer">publish &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

60
deps/npm/html/doc/rebuild.html

@ -0,0 +1,60 @@
<!doctype html>
<html>
<title>rebuild</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/rebuild.html">rebuild</a></h1> <p>Rebuild a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm rebuild [&lt;name&gt; [&lt;name&gt; ...]]</code></pre>
<ul><li><code>&lt;name&gt;</code>:
The package to rebuild</li></ul>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This command runs the <code>npm build</code> command on the matched folders. This is useful
when you install a new version of node, and must recompile all your C++ addons with
the new binary.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
<p id="footer">rebuild &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

132
deps/npm/html/doc/registry.html

@ -0,0 +1,132 @@
<!doctype html>
<html>
<title>registry</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/registry.html">registry</a></h1> <p>The JavaScript Package Registry</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>To resolve packages by name and version, npm talks to a registry website
that implements the CommonJS Package Registry specification for reading
package info.</p>
<p>Additionally, npm's package registry implementation supports several
write APIs as well, to allow for publishing packages and managing user
account information.</p>
<p>The official public npm registry is at <a href="http://registry.npmjs.org/">http://registry.npmjs.org/</a>. It
is powered by a CouchDB database at
<a href="http://isaacs.couchone.com/registry">http://isaacs.couchone.com/registry</a>. The code for the couchapp is
available at <a href="http://github.com/isaacs/npmjs.org">http://github.com/isaacs/npmjs.org</a>. npm user accounts
are CouchDB users, stored in the <a href="http://isaacs.couchone.com/_users">http://isaacs.couchone.com/_users</a>
database.</p>
<p>The registry URL is supplied by the <code>registry</code> config parameter. See
<code><a href="../doc/config.html">config(1)</a></code> for more on managing npm's configuration.</p>
<h2 id="Can-I-run-my-own-private-registry">Can I run my own private registry?</h2>
<p>Yes!</p>
<p>The easiest way is to replicate the couch database, and use the same (or
similar) design doc to implement the APIs.</p>
<p>If you set up continuous replication from the official CouchDB, and then
set your internal CouchDB as the registry config, then you'll be able
to read any published packages, in addition to your private ones, and by
default will only publish internally. If you then want to publish a
package for the whole world to see, you can simply override the
<code>--registry</code> config for that command.</p>
<h2 id="I-don-t-want-my-package-published-in-the-official-registry-It-s-private">I don't want my package published in the official registry. It's private.</h2>
<p>Set <code>"private": true</code> in your package.json to prevent it from being
published at all, or
<code>"publishConfig":{"registry":"http://my-internal-registry.local"}</code>
to force it to be published only to your internal registry.</p>
<p>See <code><a href="../doc/json.html">json(1)</a></code> for more info on what goes in the package.json file.</p>
<h2 id="Will-you-replicate-from-my-registry-into-the-public-one">Will you replicate from my registry into the public one?</h2>
<p>No. If you want things to be public, then publish them into the public
registry using npm. What little security there is would be for nought
otherwise.</p>
<h2 id="Do-I-have-to-use-couchdb-to-build-a-registry-that-npm-can-talk-to">Do I have to use couchdb to build a registry that npm can talk to?</h2>
<p>No, but it's way easier.</p>
<h2 id="I-published-something-elsewhere-and-want-to-tell-the-npm-registry-about-it">I published something elsewhere, and want to tell the npm registry about it.</h2>
<p>That is supported, but not using the npm client. You'll have to get
your hands dirty and do some HTTP. The request looks something like
this:</p>
<pre><code>PUT /my-foreign-package
content-type:application/json
accept:application/json
authorization:Basic $base_64_encoded
{ "name":"my-foreign-package"
, "maintainers":["owner","usernames"]
, "description":"A package that is hosted elsewhere"
, "keywords":["nih","my cheese smells the best"]
, "url":"http://my-different-registry.com/blerg/my-local-package"
}</code></pre>
<p>(Keywords and description are optional, but recommended. Name,
maintainers, and url are required.)</p>
<p>Then, when a user tries to install "my-foreign-package", it'll redirect
to your registry. If that doesn't resolve to a valid package entry,
then it'll fail, so please make sure that you understand the spec, and
ask for help on the <a href="mailto:npm-@googlegroups.com">npm-@googlegroups.com</a> mailing list.</p>
<h2 id="Is-there-a-website-or-something-to-see-package-docs-and-such">Is there a website or something to see package docs and such?</h2>
<p>No, but such a thing is planned, and a tiny bit developed.</p>
<p>Stay tuned!</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li></ul>
</div>
<p id="footer">registry &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

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

@ -0,0 +1,93 @@
<!doctype html>
<html>
<title>removing-npm</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/removal.html">removal</a></h1> <p>Cleaning the Slate</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p>So sad to see you go.</p>
<pre><code>sudo npm uninstall npm -g</code></pre>
<p>Or, if that fails, get the npm source code, and do:</p>
<pre><code>sudo make uninstall</code></pre>
<h2 id="More-Severe-Uninstalling">More Severe Uninstalling</h2>
<p>Usually, the above instructions are sufficient. That will remove
npm, but leave behind anything you've installed.</p>
<p>If that doesn't work, or if you require more drastic measures,
continue reading.</p>
<p>Note that this is only necessary for globally-installed packages. Local
installs are completely contained within a project's <code>node_modules</code>
folder. Delete that folder, and everything is gone (unless a package's
install script is particularly ill-behaved).</p>
<p>This assumes that you installed node and npm in the default place. If
you configured node with a different <code>--prefix</code>, or installed npm with a
different prefix setting, then adjust the paths accordingly, replacing
<code>/usr/local</code> with your install prefix.</p>
<p>To remove everything npm-related manually:</p>
<pre><code>rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/npm*</code></pre>
<p>If you installed things <em>with</em> npm, then your best bet is to uninstall
them with npm first, and then install them again once you have a
proper install. This can help find any symlinks that are lying
around:</p>
<pre><code>ls -laF /usr/local/{lib/node{,/.npm},bin,share/man} | grep npm</code></pre>
<p>Prior to version 0.3, npm used shim files for executables and node
modules. To track those down, you can do the following:</p>
<pre><code>find /usr/local/{lib/node,bin} -exec grep -l npm \{\} \; ;</code></pre>
<p>(This is also in the <a href="../doc/README.html">README</a> file.)</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/README.html">README</a></li><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li></ul>
</div>
<p id="footer">removing-npm &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

59
deps/npm/html/doc/restart.html

@ -0,0 +1,59 @@
<!doctype html>
<html>
<title>restart</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/restart.html">restart</a></h1> <p>Start a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm restart &lt;name&gt;</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This runs a package's "restart" script, if one was provided.
Otherwise it runs package's "stop" script, if one was provided, and then
the "start" script.</p>
<p>If no version is specified, then it restarts the "active" version.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
<p id="footer">restart &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

57
deps/npm/html/doc/rm.html

@ -0,0 +1,57 @@
<!doctype html>
<html>
<title>rm</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/rm.html">rm</a></h1> <p>Remove a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm rm &lt;name&gt;
npm uninstall &lt;name&gt;</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This uninstalls a package, completely removing everything npm installed
on its behalf.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">rm &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

55
deps/npm/html/doc/root.html

@ -0,0 +1,55 @@
<!doctype html>
<html>
<title>root</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/root.html">root</a></h1> <p>Display npm root</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm root</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Print the effective <code>node_modules</code> folder to standard out.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/bin.html">bin(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">root &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

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

@ -0,0 +1,58 @@
<!doctype html>
<html>
<title>run-script</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/run-script.html">run-script</a></h1> <p>Run arbitrary package scripts</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm run-script &lt;script&gt; &lt;name&gt;</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This runs an arbitrary command from a package's "scripts" object.</p>
<p>It is used by the test, start, restart, and stop commands, but can be
called directly, as well.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
<p id="footer">run-script &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

199
deps/npm/html/doc/scripts.html

@ -0,0 +1,199 @@
<!doctype html>
<html>
<title>scripts</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/scripts.html">scripts</a></h1> <p>How npm handles the "scripts" field</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm supports the "scripts" member of the package.json script, for the
following scripts:</p>
<ul><li>preinstall:
Run BEFORE the package is installed</li><li>install, postinstall:
Run AFTER the package is installed.</li><li>preuninstall, uninstall:
Run BEFORE the package is uninstalled.</li><li>postuninstall:
Run AFTER the package is uninstalled.</li><li>preupdate:
Run BEFORE the package is updated with the update command.</li><li>update, postupdate:
Run AFTER the package is updated with the update command.</li><li>prepublish:
Run BEFORE the package is published.</li><li>publish, postpublish:
Run AFTER the package is published.</li><li>pretest, test, posttest:
Run by the <code>npm test</code> command.</li><li>prestop, stop, poststop:
Run by the <code>npm stop</code> command.</li><li>prestart, start, poststart:
Run by the <code>npm start</code> command.</li><li>prerestart, restart, postrestart:
Run by the <code>npm restart</code> command. Note: <code>npm restart</code> will run the
stop and start scripts if no <code>restart</code> script is provided.</li></ul>
<p>Additionally, arbitrary scrips can be run by doing
<code>npm run-script &lt;stage&gt; &lt;pkg&gt;</code>.</p>
<h2 id="DEFAULT-VALUES">DEFAULT VALUES</h2>
<p>npm will default some script values based on package contents.</p>
<ul><li><p><code>"start": "node server.js"</code>:</p><p>If there is a <code>server.js</code> file in the root of your package, then npm
will default the <code>start</code> command to <code>node server.js</code>.</p></li><li><p><code>"preinstall": "node-waf clean || true; node-waf configure build"</code>:</p><p>If there is a <code>wscript</code> file in the root of your package, npm will
default the <code>preinstall</code> command to compile using node-waf.</p></li></ul>
<h2 id="USER">USER</h2>
<p>If npm was invoked with root privileges, then it will change the uid to
the user account or uid specified by the <code>user</code> config, which defaults
to <code>nobody</code>. Set the <code>unsafe-perm</code> flag to run scripts with root
privileges.</p>
<h2 id="ENVIRONMENT">ENVIRONMENT</h2>
<p>Package scripts run in an environment where many pieces of information are
made available regarding the setup of npm and the current state of the
process.</p>
<h3 id="package-json-vars">package.json vars</h3>
<p>The package.json fields are tacked onto the <code>npm_package_</code> prefix. So, for
instance, if you had <code>{"name":"foo", "version":"1.2.5"}</code> in your package.json
file, then your package scripts would have the <code>npm_package_name</code> environment
variable set to "foo", and the <code>npm_package_version</code> set to "1.2.5"</p>
<h3 id="configuration">configuration</h3>
<p>Configuration parameters are put in the environment with the <code>npm_config_</code>
prefix. For instance, you can view the effective <code>root</code> config by checking the
<code>npm_config_root</code> environment variable.</p>
<h3 id="Special-package-json-config-hash">Special: package.json "config" hash</h3>
<p>The package.json "config" keys are overwritten in the environment if
there is a config param of <code>&lt;name&gt;[@&lt;version&gt;]:&lt;key&gt;</code>. For example, if
the package.json has this:</p>
<pre><code>{ "name" : "foo"
, "config" : { "port" : "8080" }
, "scripts" : { "start" : "node server.js" } }</code></pre>
<p>and the server.js is this:</p>
<pre><code>http.createServer(...).listen(process.env.npm_package_config_port)</code></pre>
<p>then the user could change the behavior by doing:</p>
<pre><code>npm config set foo:port 80</code></pre>
<h3 id="current-lifecycle-event">current lifecycle event</h3>
<p>Lastly, the <code>npm_lifecycle_event</code> environment variable is set to whichever
stage of the cycle is being executed. So, you could have a single script used
for different parts of the process which switches based on what's currently
happening.</p>
<p>Objects are flattened following this format, so if you had
<code>{"scripts":{"install":"foo.js"}}</code> in your package.json, then you'd see this
in the script:</p>
<pre><code>process.env.npm_package_scripts_install === "foo.js"</code></pre>
<h2 id="EXAMPLES">EXAMPLES</h2>
<p>For example, if your package.json contains this:</p>
<pre><code>{ "scripts" :
{ "install" : "scripts/install.js"
, "postinstall" : "scripts/install.js"
, "uninstall" : "scripts/uninstall.js"
}
}</code></pre>
<p>then the <code>scripts/install.js</code> will be called for the install, post-install,
stages of the lifecycle, and the <code>scripts/uninstall.js</code> would be
called when the package is uninstalled. Since <code>scripts/install.js</code> is running
for three different phases, it would be wise in this case to look at the
<code>npm_lifecycle_event</code> environment variable.</p>
<p>If you want to run a make command, you can do so. This works just fine:</p>
<pre><code>{ "scripts" :
{ "preinstall" : "./configure"
, "install" : "make &amp;&amp; make install"
, "test" : "make test"
}
}</code></pre>
<h2 id="EXITING">EXITING</h2>
<p>Scripts are run by passing the line as a script argument to <code>sh</code>.</p>
<p>If the script exits with a code other than 0, then this will abort the
process.</p>
<p>Note that these script files don't have to be nodejs or even javascript
programs. They just have to be some kind of executable file.</p>
<h2 id="HOOK-SCRIPTS">HOOK SCRIPTS</h2>
<p>If you want to run a specific script at a specific lifecycle event for ALL
packages, then you can use a hook script.</p>
<p>Place an executable file at <code>node_modules/.hooks/{eventname}</code>, and it'll get
run for all packages when they are going through that point in the package
lifecycle for any packages installed in that root.</p>
<p>Hook scripts are run exactly the same way as package.json scripts. That is,
they are in a separate child process, with the env described above.</p>
<h2 id="BEST-PRACTICES">BEST PRACTICES</h2>
<ul><li>Don't exit with a non-zero error code unless you <em>really</em> mean it.
Except for uninstall scripts, this will cause the npm action
to fail, and potentially be rolled back. If the failure is minor or
only will prevent some optional features, then it's better to just
print a warning and exit successfully.</li><li>Try not to use scripts to do what npm can do for you. Read through
<code><a href="../doc/json.html">json(1)</a></code> to see all the things that you can specify and enable
by simply describing your package appropriately. In general, this will
lead to a more robust and consistent state.</li><li>Inspect the env to determine where to put things. For instance, if
the <code>npm_config_binroot</code> environ is set to <code>/home/user/bin</code>, then don't
try to install executables into <code>/usr/local/bin</code>. The user probably
set it up that way for a reason.</li><li>Don't prefix your script commands with "sudo". If root permissions are
required for some reason, then it'll fail with that error, and the user
will sudo the npm command in question.</li></ul>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
<p id="footer">scripts &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

75
deps/npm/html/doc/search.html

@ -0,0 +1,75 @@
<!doctype html>
<html>
<title>search</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/search.html">search</a></h1> <p>Search for packages</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm search [search terms ...]</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Search the registry for packages matching the search terms.</p>
<h2 id="CONFIGURATION">CONFIGURATION</h2>
<h3 id="description">description</h3>
<ul><li>Default: true</li><li>Type: Boolean</li></ul>
<p>Show the description in <code>npm search</code></p>
<h3 id="searchopts">searchopts</h3>
<ul><li>Default: ""</li><li>Type: String</li></ul>
<p>Space-separated options that are always passed to search.</p>
<h3 id="searchexclude">searchexclude</h3>
<ul><li>Default: ""</li><li>Type: String</li></ul>
<p>Space-separated options that limit the results from search.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/view.html">view(1)</a></li></ul>
</div>
<p id="footer">search &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

139
deps/npm/html/doc/semver.html

@ -0,0 +1,139 @@
<!doctype html>
<html>
<title>semver</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/semver.html">semver</a></h1> <p>The semantic versioner for npm</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p>The npm semantic versioning utility.</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>As a node module:</p>
<pre><code>$ npm install semver
semver.valid('1.2.3') // true
semver.valid('a.b.c') // false
semver.clean(' =v1.2.3 ') // '1.2.3'
semver.satisfies('1.2.3', '1.x || &gt;=2.5.0 || 5.0.0 - 7.2.3') // true
semver.gt('1.2.3', '9.8.7') // false
semver.lt('1.2.3', '9.8.7') // true</code></pre>
<p>As a command-line utility:</p>
<pre><code>$ npm install semver -g
$ semver -h
Usage: semver -v &lt;version&gt; [-r &lt;range&gt;]
Test if version(s) satisfy the supplied range(s),
and sort them.
Multiple versions or ranges may be supplied.
Program exits successfully if any valid version satisfies
all supplied ranges, and prints all satisfying versions.
If no versions are valid, or ranges are not satisfied,
then exits failure.
Versions are printed in ascending order, so supplying
multiple versions to the utility will just sort them.</code></pre>
<h2 id="Versions">Versions</h2>
<p>A version is the following things, in this order:</p>
<ul><li>a number (Major)</li><li>a period</li><li>a number (minor)</li><li>a period</li><li>a number (patch)</li><li>OPTIONAL: a hyphen, followed by a number (build)</li><li>OPTIONAL: a collection of pretty much any non-whitespace characters
(tag)</li></ul>
<p>A leading <code>"="</code> or <code>"v"</code> character is stripped off and ignored.</p>
<h2 id="Comparisons">Comparisons</h2>
<p>The ordering of versions is done using the following algorithm, given
two versions and asked to find the greater of the two:</p>
<ul><li>If the majors are numerically different, then take the one
with a bigger major number. <code>2.3.4 &gt; 1.3.4</code></li><li>If the minors are numerically different, then take the one
with the bigger minor number. <code>2.3.4 &gt; 2.2.4</code></li><li>If the patches are numerically different, then take the one with the
bigger patch number. <code>2.3.4 &gt; 2.3.3</code></li><li>If only one of them has a build number, then take the one with the
build number. <code>2.3.4-0 &gt; 2.3.4</code></li><li>If they both have build numbers, and the build numbers are numerically
different, then take the one with the bigger build number.
<code>2.3.4-10 &gt; 2.3.4-9</code></li><li>If only one of them has a tag, then take the one without the tag.
<code>2.3.4 &gt; 2.3.4-beta</code></li><li>If they both have tags, then take the one with the lexicographically
larger tag. <code>2.3.4-beta &gt; 2.3.4-alpha</code></li><li>At this point, they're equal.</li></ul>
<h2 id="Ranges">Ranges</h2>
<p>The following range styles are supported:</p>
<ul><li><code>&gt;1.2.3</code> Greater than a specific version.</li><li><code>&lt;1.2.3</code> Less than</li><li><code>1.2.3 - 2.3.4</code> := <code>&gt;=1.2.3 &lt;=2.3.4</code></li><li><code>~1.2.3</code> := <code>&gt;=1.2.3 &lt;1.3.0</code></li><li><code>~1.2</code> := <code>&gt;=1.2.0 &lt;2.0.0</code></li><li><code>~1</code> := <code>&gt;=1.0.0 &lt;2.0.0</code></li><li><code>1.2.x</code> := <code>&gt;=1.2.0 &lt;1.3.0</code></li><li><code>1.x</code> := <code>&gt;=1.0.0 &lt;2.0.0</code></li></ul>
<p>Ranges can be joined with either a space (which implies "and") or a
<code>||</code> (which implies "or").</p>
<h2 id="Functions">Functions</h2>
<ul><li>valid(v): Return the parsed version, or null if it's not valid.</li><li>inc(v, release): Return the version incremented by the release type
(major, minor, patch, or build), or null if it's not valid.</li></ul>
<h3 id="Comparison">Comparison</h3>
<ul><li>gt(v1, v2): <code>v1 &gt; v2</code></li><li>gte(v1, v2): <code>v1 &gt;= v2</code></li><li>lt(v1, v2): <code>v1 &lt; v2</code></li><li>lte(v1, v2): <code>v1 &lt;= v2</code></li><li>eq(v1, v2): <code>v1 == v2</code> This is true if they're logically equivalent,
even if they're not the exact same string. You already know how to
compare strings.</li><li>neq(v1, v2): <code>v1 != v2</code> The opposite of eq.</li><li>cmp(v1, comparator, v2): Pass in a comparison string, and it'll call
the corresponding function above. <code>"==="</code> and <code>"!=="</code> do simple
string comparison, but are included for completeness. Throws if an
invalid comparison string is provided.</li><li>compare(v1, v2): Return 0 if v1 == v2, or 1 if v1 is greater, or -1 if
v2 is greater. Sorts in ascending order if passed to Array.sort().</li><li>rcompare(v1, v2): The reverse of compare. Sorts an array of versions
in descending order when passed to Array.sort().</li></ul>
<h3 id="Ranges">Ranges</h3>
<ul><li>validRange(range): Return the valid range or null if it's not valid</li><li>satisfies(version, range): Return true if the version satisfies the
range.</li><li>maxSatisfying(versions, range): Return the highest version in the list
that satisfies the range, or null if none of them do.</li></ul>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
<p id="footer">semver &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

621
deps/npm/html/doc/set.html

@ -0,0 +1,621 @@
<!doctype html>
<html>
<title>set</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/config.html">config</a></h1> <p>Manage the npm configuration file</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm config set &lt;key&gt; &lt;value&gt; [--global]
npm config get &lt;key&gt;
npm config delete &lt;key&gt;
npm config list
npm config edit
npm get &lt;key&gt;
npm set &lt;key&gt; &lt;value&gt; [--global]</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm gets its configuration values from 6 sources, in this priority:</p>
<h3 id="Command-Line-Flags">Command Line Flags</h3>
<p>Putting <code>--foo bar</code> on the command line sets the
<code>foo</code> configuration parameter to <code>"bar"</code>. A <code>--</code> argument tells the cli
parser to stop reading flags. A <code>--flag</code> parameter that is at the <em>end</em> of
the command will be given the value of <code>true</code>.</p>
<h3 id="Environment-Variables">Environment Variables</h3>
<p>Any environment variables that start with <code>npm_config_</code> will be interpreted
as a configuration parameter. For example, putting <code>npm_config_foo=bar</code> in
your environment will set the <code>foo</code> configuration parameter to <code>bar</code>. Any
environment configurations that are not given a value will be given the value
of <code>true</code>. Config values are case-insensitive, so <code>NPM_CONFIG_FOO=bar</code> will
work the same.</p>
<h3 id="Per-user-config-file">Per-user config file</h3>
<p><code>$HOME/.npmrc</code> (or the <code>userconfig</code> param, if set above)</p>
<p>This file is an ini-file formatted list of <code>key = value</code> parameters.</p>
<h3 id="Global-config-file">Global config file</h3>
<p><code>$PREFIX/etc/npmrc</code> (or the <code>globalconfig</code> param, if set above):
This file is an ini-file formatted list of <code>key = value</code> parameters</p>
<h3 id="Built-in-config-file">Built-in config file</h3>
<p><code>path/to/npm/itself/npmrc</code></p>
<p>This is an unchangeable "builtin"
configuration file that npm keeps consistent across updates. Set
fields in here using the <code>./configure</code> script that comes with npm.
This is primarily for distribution maintainers to override default
configs in a standard and consistent manner.</p>
<h3 id="Default-Configs">Default Configs</h3>
<p>A set of configuration parameters that are internal to npm, and are
defaults if nothing else is specified.</p>
<h2 id="Sub-commands">Sub-commands</h2>
<p>Config supports the following sub-commands:</p>
<h3 id="set">set</h3>
<pre><code>npm config set key value</code></pre>
<p>Sets the config key to the value.</p>
<p>If value is omitted, then it sets it to "true".</p>
<h3 id="get">get</h3>
<pre><code>npm config get key</code></pre>
<p>Echo the config value to stdout.</p>
<h3 id="list">list</h3>
<pre><code>npm config list</code></pre>
<p>Show all the config settings.</p>
<h3 id="delete">delete</h3>
<pre><code>npm config delete key</code></pre>
<p>Deletes the key from all configuration files.</p>
<h3 id="edit">edit</h3>
<pre><code>npm config edit</code></pre>
<p>Opens the config file in an editor. Use the <code>--global</code> flag to edit the
global config.</p>
<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>-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>-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
parameter. For example:</p>
<pre><code>npm ls --par
# same as:
npm ls --parseable</code></pre>
<p>If multiple single-character shorthands are strung together, and the
resulting combination is unambiguously not some other configuration
param, then it is expanded to its various component pieces. For
example:</p>
<pre><code>npm ls -gpld
# same as:
npm ls --global --parseable --long --loglevel info</code></pre>
<h2 id="Per-Package-Config-Settings">Per-Package Config Settings</h2>
<p>When running scripts (see <code><a href="../doc/scripts.html">scripts(1)</a></code>)
the package.json "config" keys are overwritten in the environment if
there is a config param of <code>&lt;name&gt;[@&lt;version&gt;]:&lt;key&gt;</code>. For example, if
the package.json has this:</p>
<pre><code>{ "name" : "foo"
, "config" : { "port" : "8080" }
, "scripts" : { "start" : "node server.js" } }</code></pre>
<p>and the server.js is this:</p>
<pre><code>http.createServer(...).listen(process.env.npm_package_config_port)</code></pre>
<p>then the user could change the behavior by doing:</p>
<pre><code>npm config set foo:port 80</code></pre>
<h2 id="Config-Settings">Config Settings</h2>
<h3 id="always-auth">always-auth</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<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>
<p>The browser that is called by the <code>npm docs</code> command to open websites.</p>
<h3 id="ca">ca</h3>
<ul><li>Default: The npm CA certificate</li><li>Type: String or null</li></ul>
<p>The Certificate Authority signing certificate that is trusted for SSL
connections to the registry.</p>
<p>Set to <code>null</code> to only allow "known" registrars, or to a specific CA cert
to trust only that specific signing authority.</p>
<p>See also the <code>strict-ssl</code> config.</p>
<h3 id="cache">cache</h3>
<ul><li>Default: Windows: <code>~/npm-cache</code>, Posix: <code>~/.npm</code></li><li>Type: path</li></ul>
<p>The location of npm's cache directory. See <code><a href="../doc/cache.html">cache(1)</a></code></p>
<h3 id="color">color</h3>
<ul><li>Default: true on Posix, false on Windows</li><li>Type: Boolean or <code>"always"</code></li></ul>
<p>If false, never shows colors. If <code>"always"</code> then always shows colors.
If true, then only prints color codes for tty file descriptors.</p>
<h3 id="depth">depth</h3>
<ul><li>Default: Infinity</li><li>Type: Number</li></ul>
<p>The depth to go when recursing directories for <code>npm ls</code> and
<code>npm cache ls</code>.</p>
<h3 id="description">description</h3>
<ul><li>Default: true</li><li>Type: Boolean</li></ul>
<p>Show the description in <code>npm search</code></p>
<h3 id="dev">dev</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Install <code>dev-dependencies</code> along with packages.</p>
<p>Note that <code>dev-dependencies</code> are also installed if the <code>npat</code> flag is
set.</p>
<h3 id="editor">editor</h3>
<ul><li>Default: <code>EDITOR</code> environment variable if set, or <code>"vi"</code> on Posix,
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="force">force</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Makes various commands more forceful.</p>
<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="global">global</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Operates in "global" mode, so that packages are installed into the
<code>prefix</code> folder instead of the current working directory. See
<code><a href="../doc/folders.html">folders(1)</a></code> for more on the differences in behavior.</p>
<ul><li>packages are installed into the <code>prefix/node_modules</code> folder, instead of the
current working directory.</li><li>bin files are linked to <code>prefix/bin</code></li><li>man pages are linked to <code>prefix/share/man</code></li></ul>
<h3 id="globalconfig">globalconfig</h3>
<ul><li>Default: {prefix}/etc/npmrc</li><li>Type: path</li></ul>
<p>The config file to read for global config options.</p>
<h3 id="globalignorefile">globalignorefile</h3>
<ul><li>Default: {prefix}/etc/npmignore</li><li>Type: path</li></ul>
<p>The config file to read for global ignore patterns to apply to all users
and all projects.</p>
<p>If not found, but there is a "gitignore" file in the
same directory, then that will be used instead.</p>
<h3 id="group">group</h3>
<ul><li>Default: GID of the current process</li><li>Type: String or Number</li></ul>
<p>The group to use when running package scripts in global mode as the root
user.</p>
<h3 id="https-proxy">https-proxy</h3>
<ul><li>Default: the <code>HTTPS_PROXY</code> or <code>https_proxy</code> or <code>HTTP_PROXY</code> or
<code>http_proxy</code> environment variables.</li><li>Type: url</li></ul>
<p>A proxy to use for outgoing https requests.</p>
<h3 id="ignore">ignore</h3>
<ul><li>Default: ""</li><li>Type: string</li></ul>
<p>A white-space separated list of glob patterns of files to always exclude
from packages when building tarballs.</p>
<h3 id="init-version">init.version</h3>
<ul><li>Default: "0.0.0"</li><li>Type: semver</li></ul>
<p>The value <code>npm init</code> should use by default for the package version.</p>
<h3 id="init-author-name">init.author.name</h3>
<ul><li>Default: "0.0.0"</li><li>Type: String</li></ul>
<p>The value <code>npm init</code> should use by default for the package author's name.</p>
<h3 id="init-author-email">init.author.email</h3>
<ul><li>Default: ""</li><li>Type: String</li></ul>
<p>The value <code>npm init</code> should use by default for the package author's email.</p>
<h3 id="init-author-url">init.author.url</h3>
<ul><li>Default: ""</li><li>Type: String</li></ul>
<p>The value <code>npm init</code> should use by default for the package author's homepage.</p>
<h3 id="link">link</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>If true, then local installs will link if there is a suitable globally
installed package.</p>
<p>Note that this means that local installs can cause things to be
installed into the global space at the same time. The link is only done
if one of the two conditions are met:</p>
<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: "warn"</li><li>Type: String</li><li>Values: "silent", "win", "error", "warn", "info", "verbose", "silly"</li></ul>
<p>What level of logs to report. On failure, <em>all</em> logs are written to
<code>npm-debug.log</code> in the current working directory.</p>
<h3 id="logprefix">logprefix</h3>
<ul><li>Default: true on Posix, false on Windows</li><li>Type: Boolean</li></ul>
<p>Whether or not to prefix log messages with "npm" and the log level. See
also "color" and "loglevel".</p>
<h3 id="long">long</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Show extended information in <code>npm ls</code></p>
<h3 id="message">message</h3>
<ul><li>Default: "%s"</li><li>Type: String</li></ul>
<p>Commit message which is used by <code>npm version</code> when creating version commit.</p>
<p>Any "%s" in the message will be replaced with the version number.</p>
<h3 id="node-version">node-version</h3>
<ul><li>Default: process.version</li><li>Type: semver or false</li></ul>
<p>The node version to use when checking package's "engines" hash.</p>
<h3 id="npat">npat</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Run tests on installation and report results to the
<code>npaturl</code>.</p>
<h3 id="npaturl">npaturl</h3>
<ul><li>Default: Not yet implemented</li><li>Type: url</li></ul>
<p>The url to report npat test results.</p>
<h3 id="onload-script">onload-script</h3>
<ul><li>Default: false</li><li>Type: path</li></ul>
<p>A node module to <code>require()</code> when npm loads. Useful for programmatic
usage.</p>
<h3 id="outfd">outfd</h3>
<ul><li>Default: standard output file descriptor</li><li>Type: Number or Stream</li></ul>
<p>Where to write "normal" output. This has no effect on log output.</p>
<h3 id="parseable">parseable</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Output parseable results from commands that write to
standard output.</p>
<h3 id="prefix">prefix</h3>
<ul><li>Default: node's process.installPrefix</li><li>Type: path</li></ul>
<p>The location to install global items. If set on the command line, then
it forces non-global commands to run in the specified folder.</p>
<h3 id="production">production</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Set to true to run in "production" mode.</p>
<ol><li>devDependencies are not installed at the topmost level when running
local <code>npm install</code> without any arguments.</li><li>Set the NODE_ENV="production" for lifecycle scripts.</li></ol>
<h3 id="proxy">proxy</h3>
<ul><li>Default: <code>HTTP_PROXY</code> or <code>http_proxy</code> environment variable, or null</li><li>Type: url</li></ul>
<p>A proxy to use for outgoing http requests.</p>
<h3 id="rebuild-bundle">rebuild-bundle</h3>
<ul><li>Default: true</li><li>Type: Boolean</li></ul>
<p>Rebuild bundled dependencies after installation.</p>
<h3 id="registry">registry</h3>
<ul><li>Default: https://registry.npmjs.org/</li><li>Type: url</li></ul>
<p>The base URL of the npm package registry.</p>
<h3 id="rollback">rollback</h3>
<ul><li>Default: true</li><li>Type: Boolean</li></ul>
<p>Remove failed installs.</p>
<h3 id="save">save</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Save installed packages to a package.json file as dependencies.</p>
<p>Only works if there is already a package.json file present.</p>
<h3 id="searchopts">searchopts</h3>
<ul><li>Default: ""</li><li>Type: String</li></ul>
<p>Space-separated options that are always passed to search.</p>
<h3 id="searchexclude">searchexclude</h3>
<ul><li>Default: ""</li><li>Type: String</li></ul>
<p>Space-separated options that limit the results from search.</p>
<h3 id="shell">shell</h3>
<ul><li>Default: SHELL environment variable, or "bash" on Posix, or "cmd" on
Windows</li><li>Type: path</li></ul>
<p>The shell to run for the <code>npm explore</code> command.</p>
<h3 id="strict-ssl">strict-ssl</h3>
<ul><li>Default: true</li><li>Type: Boolean</li></ul>
<p>Whether or not to do SSL key validation when making requests to the
registry via https.</p>
<p>See also the <code>ca</code> config.</p>
<h3 id="tag">tag</h3>
<ul><li>Default: latest</li><li>Type: String</li></ul>
<p>If you ask npm to install a package and don't tell it a specific version, then
it will install the specified tag.</p>
<p>Also the tag that is added to the package@version specified by the <code>npm
tag</code> command, if no explicit tag is given.</p>
<h3 id="tmp">tmp</h3>
<ul><li>Default: TMPDIR environment variable, or "/tmp"</li><li>Type: path</li></ul>
<p>Where to store temporary files and folders. All temp files are deleted
on success, but left behind on failure for forensic purposes.</p>
<h3 id="unicode">unicode</h3>
<ul><li>Default: true</li><li>Type: Boolean</li></ul>
<p>When set to true, npm uses unicode characters in the tree output. When
false, it uses ascii characters to draw trees.</p>
<h3 id="unsafe-perm">unsafe-perm</h3>
<ul><li>Default: false if running as root, true otherwise</li><li>Type: Boolean</li></ul>
<p>Set to true to suppress the UID/GID switching when running package
scripts. If set explicitly to false, then installing as a non-root user
will fail.</p>
<h3 id="usage">usage</h3>
<ul><li>Default: false</li><li>Type: Boolean</li></ul>
<p>Set to show short usage output (like the -H output)
instead of complete help when doing <code><a href="../doc/help.html">help(1)</a></code>.</p>
<h3 id="user">user</h3>
<ul><li>Default: "nobody"</li><li>Type: String or Number</li></ul>
<p>The UID to set to when running package scripts as root.</p>
<h3 id="username">username</h3>
<ul><li>Default: null</li><li>Type: String</li></ul>
<p>The username on the npm registry. Set with <code>npm adduser</code></p>
<h3 id="userconfig">userconfig</h3>
<ul><li>Default: ~/.npmrc</li><li>Type: path</li></ul>
<p>The location of user-level configuration settings.</p>
<h3 id="userignorefile">userignorefile</h3>
<ul><li>Default: ~/.npmignore</li><li>Type: path</li></ul>
<p>The location of a user-level ignore file to apply to all packages.</p>
<p>If not found, but there is a .gitignore file in the same directory, then
that will be used instead.</p>
<h3 id="umask">umask</h3>
<ul><li>Default: 022</li><li>Type: Octal numeric string</li></ul>
<p>The "umask" value to use when setting the file creation mode on files
and folders.</p>
<p>Folders and executables are given a mode which is <code>0777</code> masked against
this value. Other files are given a mode which is <code>0666</code> masked against
this value. Thus, the defaults are <code>0755</code> and <code>0644</code> respectively.</p>
<h3 id="version">version</h3>
<ul><li>Default: false</li><li>Type: boolean</li></ul>
<p>If true, output the npm version and exit successfully.</p>
<p>Only relevant when specified explicitly on the command line.</p>
<h3 id="viewer">viewer</h3>
<ul><li>Default: "man" on Posix, "browser" on Windows</li><li>Type: path</li></ul>
<p>The program to use to view help content.</p>
<p>Set to <code>"browser"</code> to view html help content in the default web browser.</p>
<h3 id="yes">yes</h3>
<ul><li>Default: null</li><li>Type: Boolean or null</li></ul>
<p>If set to <code>null</code>, then prompt the user for responses in some
circumstances.</p>
<p>If set to <code>true</code>, then answer "yes" to any prompt. If set to <code>false</code>
then answer "no" to any prompt.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
<p id="footer">set &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

61
deps/npm/html/doc/star.html

@ -0,0 +1,61 @@
<!doctype html>
<html>
<title>star</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/star.html">star</a></h1> <p>Mark your favorite packages</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm star &lt;pkgname&gt; [&lt;pkg&gt;, ...]
npm unstar &lt;pkgname&gt; [&lt;pkg&gt;, ...]</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>"Starring" a package means that you have some interest in it. It's
a vaguely positive way to show that you care.</p>
<p>"Unstarring" is the same thing, but in reverse.</p>
<p>It's a boolean thing. Starring repeatedly has no additional effect.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
</div>
<p id="footer">star &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

55
deps/npm/html/doc/start.html

@ -0,0 +1,55 @@
<!doctype html>
<html>
<title>start</title>
<meta http-equiv="content-type" value="text/html;utf-8">
<link rel="stylesheet" type="text/css" href="./style.css">
<body>
<div id="wrapper">
<h1><a href="../doc/start.html">start</a></h1> <p>Start a package</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>npm start &lt;name&gt;</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>This runs a package's "start" script, if one was provided.</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
<p id="footer">start &mdash; npm@1.1.0-alpha-2</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
.filter(function (el) {
return el.parentNode === wrapper
&& el.tagName.match(/H[1-6]/)
&& el.id
})
var l = 2
, toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
var i = el.tagName.charAt(1)
, out = ""
while (i > l) {
out += "<ul>"
l ++
}
while (i < l) {
out += "</ul>"
l --
}
out += "<li><a href='#" + el.id + "'>" +
( el.innerText || el.text || el.innerHTML)
+ "</a>"
return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
</body></html>

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

Loading…
Cancel
Save