npm: Upgrade to v1.1.69
authorisaacs <i@izs.me>
Wed, 12 Dec 2012 22:41:28 +0000 (14:41 -0800)
committerisaacs <i@izs.me>
Wed, 12 Dec 2012 22:41:28 +0000 (14:41 -0800)
239 files changed:
deps/npm/Makefile
deps/npm/html/api/bin.html
deps/npm/html/api/bugs.html
deps/npm/html/api/commands.html
deps/npm/html/api/config.html
deps/npm/html/api/deprecate.html
deps/npm/html/api/docs.html
deps/npm/html/api/edit.html
deps/npm/html/api/explore.html
deps/npm/html/api/help-search.html
deps/npm/html/api/init.html
deps/npm/html/api/install.html
deps/npm/html/api/link.html
deps/npm/html/api/load.html
deps/npm/html/api/ls.html
deps/npm/html/api/npm.html
deps/npm/html/api/outdated.html
deps/npm/html/api/owner.html
deps/npm/html/api/pack.html
deps/npm/html/api/prefix.html
deps/npm/html/api/prune.html
deps/npm/html/api/publish.html
deps/npm/html/api/rebuild.html
deps/npm/html/api/restart.html
deps/npm/html/api/root.html
deps/npm/html/api/run-script.html
deps/npm/html/api/search.html
deps/npm/html/api/shrinkwrap.html
deps/npm/html/api/start.html
deps/npm/html/api/stop.html
deps/npm/html/api/submodule.html
deps/npm/html/api/tag.html
deps/npm/html/api/test.html
deps/npm/html/api/uninstall.html
deps/npm/html/api/unpublish.html
deps/npm/html/api/update.html
deps/npm/html/api/version.html
deps/npm/html/api/view.html
deps/npm/html/api/whoami.html
deps/npm/html/doc/README.html
deps/npm/html/doc/adduser.html
deps/npm/html/doc/bin.html
deps/npm/html/doc/bugs.html
deps/npm/html/doc/build.html
deps/npm/html/doc/bundle.html
deps/npm/html/doc/cache.html
deps/npm/html/doc/changelog.html
deps/npm/html/doc/coding-style.html
deps/npm/html/doc/completion.html
deps/npm/html/doc/config.html
deps/npm/html/doc/dedupe.html
deps/npm/html/doc/deprecate.html
deps/npm/html/doc/developers.html
deps/npm/html/doc/disputes.html
deps/npm/html/doc/docs.html
deps/npm/html/doc/edit.html
deps/npm/html/doc/explore.html
deps/npm/html/doc/faq.html
deps/npm/html/doc/folders.html
deps/npm/html/doc/help-search.html
deps/npm/html/doc/help.html
deps/npm/html/doc/index.html
deps/npm/html/doc/init.html
deps/npm/html/doc/install.html
deps/npm/html/doc/json.html
deps/npm/html/doc/link.html
deps/npm/html/doc/ls.html
deps/npm/html/doc/npm.html
deps/npm/html/doc/outdated.html
deps/npm/html/doc/owner.html
deps/npm/html/doc/pack.html
deps/npm/html/doc/prefix.html
deps/npm/html/doc/prune.html
deps/npm/html/doc/publish.html
deps/npm/html/doc/rebuild.html
deps/npm/html/doc/registry.html
deps/npm/html/doc/removing-npm.html
deps/npm/html/doc/restart.html
deps/npm/html/doc/root.html
deps/npm/html/doc/run-script.html
deps/npm/html/doc/scripts.html
deps/npm/html/doc/search.html
deps/npm/html/doc/semver.html
deps/npm/html/doc/shrinkwrap.html
deps/npm/html/doc/star.html
deps/npm/html/doc/start.html
deps/npm/html/doc/stop.html
deps/npm/html/doc/submodule.html
deps/npm/html/doc/tag.html
deps/npm/html/doc/test.html
deps/npm/html/doc/uninstall.html
deps/npm/html/doc/unpublish.html
deps/npm/html/doc/update.html
deps/npm/html/doc/version.html
deps/npm/html/doc/view.html
deps/npm/html/doc/whoami.html
deps/npm/man/man1/README.1
deps/npm/man/man1/adduser.1
deps/npm/man/man1/bin.1
deps/npm/man/man1/bugs.1
deps/npm/man/man1/build.1
deps/npm/man/man1/bundle.1
deps/npm/man/man1/cache.1
deps/npm/man/man1/changelog.1
deps/npm/man/man1/coding-style.1
deps/npm/man/man1/completion.1
deps/npm/man/man1/config.1
deps/npm/man/man1/dedupe.1
deps/npm/man/man1/deprecate.1
deps/npm/man/man1/developers.1
deps/npm/man/man1/disputes.1
deps/npm/man/man1/docs.1
deps/npm/man/man1/edit.1
deps/npm/man/man1/explore.1
deps/npm/man/man1/faq.1
deps/npm/man/man1/folders.1
deps/npm/man/man1/help-search.1
deps/npm/man/man1/help.1
deps/npm/man/man1/index.1
deps/npm/man/man1/init.1
deps/npm/man/man1/install.1
deps/npm/man/man1/json.1
deps/npm/man/man1/link.1
deps/npm/man/man1/ls.1
deps/npm/man/man1/npm.1
deps/npm/man/man1/outdated.1
deps/npm/man/man1/owner.1
deps/npm/man/man1/pack.1
deps/npm/man/man1/prefix.1
deps/npm/man/man1/prune.1
deps/npm/man/man1/publish.1
deps/npm/man/man1/rebuild.1
deps/npm/man/man1/registry.1
deps/npm/man/man1/removing-npm.1
deps/npm/man/man1/restart.1
deps/npm/man/man1/root.1
deps/npm/man/man1/run-script.1
deps/npm/man/man1/scripts.1
deps/npm/man/man1/search.1
deps/npm/man/man1/semver.1
deps/npm/man/man1/shrinkwrap.1
deps/npm/man/man1/star.1
deps/npm/man/man1/start.1
deps/npm/man/man1/stop.1
deps/npm/man/man1/submodule.1
deps/npm/man/man1/tag.1
deps/npm/man/man1/test.1
deps/npm/man/man1/uninstall.1
deps/npm/man/man1/unpublish.1
deps/npm/man/man1/update.1
deps/npm/man/man1/version.1
deps/npm/man/man1/view.1
deps/npm/man/man1/whoami.1
deps/npm/man/man3/bin.3
deps/npm/man/man3/bugs.3
deps/npm/man/man3/commands.3
deps/npm/man/man3/config.3
deps/npm/man/man3/deprecate.3
deps/npm/man/man3/docs.3
deps/npm/man/man3/edit.3
deps/npm/man/man3/explore.3
deps/npm/man/man3/help-search.3
deps/npm/man/man3/init.3
deps/npm/man/man3/install.3
deps/npm/man/man3/link.3
deps/npm/man/man3/load.3
deps/npm/man/man3/ls.3
deps/npm/man/man3/npm.3
deps/npm/man/man3/outdated.3
deps/npm/man/man3/owner.3
deps/npm/man/man3/pack.3
deps/npm/man/man3/prefix.3
deps/npm/man/man3/prune.3
deps/npm/man/man3/publish.3
deps/npm/man/man3/rebuild.3
deps/npm/man/man3/restart.3
deps/npm/man/man3/root.3
deps/npm/man/man3/run-script.3
deps/npm/man/man3/search.3
deps/npm/man/man3/shrinkwrap.3
deps/npm/man/man3/start.3
deps/npm/man/man3/stop.3
deps/npm/man/man3/submodule.3
deps/npm/man/man3/tag.3
deps/npm/man/man3/test.3
deps/npm/man/man3/uninstall.3
deps/npm/man/man3/unpublish.3
deps/npm/man/man3/update.3
deps/npm/man/man3/version.3
deps/npm/man/man3/view.3
deps/npm/man/man3/whoami.3
deps/npm/node_modules/minimatch/minimatch.js
deps/npm/node_modules/minimatch/node_modules/sigmund/LICENSE [new file with mode: 0644]
deps/npm/node_modules/minimatch/node_modules/sigmund/README.md [new file with mode: 0644]
deps/npm/node_modules/minimatch/node_modules/sigmund/bench.js [new file with mode: 0644]
deps/npm/node_modules/minimatch/node_modules/sigmund/package.json [new file with mode: 0644]
deps/npm/node_modules/minimatch/node_modules/sigmund/sigmund.js [new file with mode: 0644]
deps/npm/node_modules/minimatch/node_modules/sigmund/test/basic.js [new file with mode: 0644]
deps/npm/node_modules/minimatch/package.json
deps/npm/node_modules/node-gyp/.jshintrc [new file with mode: 0644]
deps/npm/node_modules/node-gyp/README.md
deps/npm/node_modules/node-gyp/addon.gypi
deps/npm/node_modules/node-gyp/lib/build.js
deps/npm/node_modules/node-gyp/lib/configure.js
deps/npm/node_modules/node-gyp/package.json
deps/npm/node_modules/npmconf/node_modules/config-chain/index.js
deps/npm/node_modules/npmconf/node_modules/config-chain/node_modules/proto-list/package.json
deps/npm/node_modules/npmconf/node_modules/config-chain/package.json
deps/npm/node_modules/npmconf/package.json
deps/npm/node_modules/read-package-json/package.json
deps/npm/node_modules/read-package-json/read-json.js
deps/npm/node_modules/read-package-json/test/basic.js
deps/npm/node_modules/read-package-json/test/bom.js [new file with mode: 0644]
deps/npm/node_modules/read-package-json/test/fixtures/bom.json [new file with mode: 0644]
deps/npm/node_modules/read-package-json/test/fixtures/nobom.json [new file with mode: 0644]
deps/npm/node_modules/semver/README.md
deps/npm/node_modules/semver/bin/semver
deps/npm/node_modules/semver/package.json
deps/npm/node_modules/tar/LICENCE [new file with mode: 0644]
deps/npm/node_modules/tar/examples/extracter.js [new file with mode: 0644]
deps/npm/node_modules/tar/examples/reader.js [new file with mode: 0644]
deps/npm/node_modules/tar/lib/entry.js
deps/npm/node_modules/tar/lib/pack.js
deps/npm/node_modules/tar/package.json
deps/npm/node_modules/tar/test/00-setup-fixtures.js [new file with mode: 0644]
deps/npm/node_modules/tar/test/extract.js [new file with mode: 0644]
deps/npm/node_modules/tar/test/fixtures.tgz [new file with mode: 0644]
deps/npm/node_modules/tar/test/header.js [new file with mode: 0644]
deps/npm/node_modules/tar/test/pack-no-proprietary.js [new file with mode: 0644]
deps/npm/node_modules/tar/test/pack.js [new file with mode: 0644]
deps/npm/node_modules/tar/test/parse.js [new file with mode: 0644]
deps/npm/node_modules/tar/test/zz-cleanup.js [new file with mode: 0644]
deps/npm/package.json
deps/npm/test/packages/npm-test-array-bin/test.js
deps/npm/test/packages/npm-test-dir-bin/test.js
deps/npm/test/packages/npm-test-shrinkwrap/package.json
deps/npm/test/packages/npm-test-shrinkwrap/test.js [new file with mode: 0644]
deps/npm/test/packages/npm-test-shrinkwrap/test.sh [deleted file]
deps/npm/test/run.js

index 6ee80d57b12b51352d9c03e46b3e8c8604fb8435..82fa8b65e8f44e6086c4777628a07e92af799e00 100644 (file)
@@ -92,7 +92,7 @@ doc/cli/index.md: $(markdowns) scripts/index-build.js scripts/doc-build.sh packa
        node scripts/index-build.js > $@
 
 node_modules/.bin/ronn:
-       node cli.js install
+       node cli.js install ronn
 
 doc: man
 
index bc54780246c85c3cc4d0a3c5af477a4068949372..e93f83b6301a2a231780836f8f87e9ab39914368 100644 (file)
@@ -19,7 +19,7 @@
 <p>This function should not be used programmatically.  Instead, just refer
 to the <code>npm.bin</code> member.</p>
 </div>
-<p id="footer">bin &mdash; npm@1.1.66</p>
+<p id="footer">bin &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 11277ec83d064dc5b07b12f6a7dfe8ab8476ccf6..5fb29a84e43094dc3cce8b95ba3e775e94bb0300 100644 (file)
@@ -25,7 +25,7 @@ optional version number.</p>
 <p>This command will launch a browser, so this command may not be the most
 friendly for programmatic use.</p>
 </div>
-<p id="footer">bugs &mdash; npm@1.1.66</p>
+<p id="footer">bugs &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index d8b2304d092f042a55aa7a7c013068850c9c213f..b766f0165429761a944195b18d7942b6a5049085 100644 (file)
@@ -28,7 +28,7 @@ usage, or <code>man 3 npm-&lt;command&gt;</code> for programmatic usage.</p>
 
 <ul><li><a href="../doc/index.html">index(1)</a></li></ul>
 </div>
-<p id="footer">commands &mdash; npm@1.1.66</p>
+<p id="footer">commands &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index fae49dd1ac9d9f5b7c07cf22c7f0fe3e058a8314..eab4659ee5df4813bca65fb102c9d94a24071fff 100644 (file)
@@ -33,7 +33,7 @@ functions instead.</p>
 
 <ul><li><a href="../api/npm.html">npm(3)</a></li></ul>
 </div>
-<p id="footer">config &mdash; npm@1.1.66</p>
+<p id="footer">config &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b6d7919bee0422f4199bb4b45c6757d32f33bc94..0fa8977e2f9b886065ff47e6faa509d347b9e0e3 100644 (file)
@@ -30,7 +30,7 @@ install the package.</p></li></ul>
 
 <ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../api/unpublish.html">unpublish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
 </div>
-<p id="footer">deprecate &mdash; npm@1.1.66</p>
+<p id="footer">deprecate &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 0e57015548ce4cb628dbd13a595616f51367e90d..40addd3cfdb76ce682b6feddb7b5386b05639d4c 100644 (file)
@@ -25,7 +25,7 @@ optional version number.</p>
 <p>This command will launch a browser, so this command may not be the most
 friendly for programmatic use.</p>
 </div>
-<p id="footer">docs &mdash; npm@1.1.66</p>
+<p id="footer">docs &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 85a5cf57f1934d518aba066a28c1516be67e417a..f00db7e414ecf1db40767f7f6da3ac63d3e673f5 100644 (file)
@@ -30,7 +30,7 @@ to open. The package can optionally have a version number attached.</p>
 <p>Since this command opens an editor in a new process, be careful about where
 and how this is used.</p>
 </div>
-<p id="footer">edit &mdash; npm@1.1.66</p>
+<p id="footer">edit &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 32e7f0cac791b5196e42b2f223d58eb48fe3ea93..fe509e10aad9c4b681bdd72fe57b20f54ab1f218 100644 (file)
@@ -24,7 +24,7 @@ sure to use <code>npm rebuild &lt;pkg&gt;</code> if you make any changes.</p>
 
 <p>The first element in the &#39;args&#39; parameter must be a package name.  After that is the optional command, which can be any number of strings. All of the strings will be combined into one, space-delimited command.</p>
 </div>
-<p id="footer">explore &mdash; npm@1.1.66</p>
+<p id="footer">explore &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 6c878421e9e0860d8baf13b04eaf85364da9718a..a19ff700554356bde19401cf70566705c7a35a6b 100644 (file)
@@ -32,7 +32,7 @@ Name of the file that matched</li></ul>
 
 <p>The silent parameter is not neccessary not used, but it may in the future.</p>
 </div>
-<p id="footer">help-search &mdash; npm@1.1.66</p>
+<p id="footer">help-search &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 3b2ed6b4545e9790bff97897fb7d4a0e618ae39a..0c658cf16408dcd0583efec84e016b37f0a8b1bc 100644 (file)
@@ -35,7 +35,7 @@ then go ahead and use this programmatically.</p>
 
 <p><a href="../doc/json.html">json(1)</a></p>
 </div>
-<p id="footer">init &mdash; npm@1.1.66</p>
+<p id="footer">init &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index ea0cc6f4d86f946fec1d2ea440c06ccd605af4c7..de69580c2de3ff8412623b6ffd8f6f70ef99850b 100644 (file)
@@ -25,7 +25,7 @@ the name of a package to be installed.</p>
 <p>Finally, &#39;callback&#39; is a function that will be called when all packages have been
 installed or when an error has been encountered.</p>
 </div>
-<p id="footer">install &mdash; npm@1.1.66</p>
+<p id="footer">install &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 8610a16db086226bc928fcee023507d852da6f8f..6cfa958ae89e95931ca567ff2f67e1e9d759d142 100644 (file)
@@ -39,7 +39,7 @@ npm.commands.link(&#39;redis&#39;, cb)  # link-install the package</code></pre>
 <p>Now, any changes to the redis package will be reflected in
 the package in the current working directory</p>
 </div>
-<p id="footer">link &mdash; npm@1.1.66</p>
+<p id="footer">link &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 04c48c7d21b2c5c702597e70ee4066a98896fced..7652cd430219ec98d4b77bc866da8972a7990fed 100644 (file)
@@ -32,7 +32,7 @@ config object.</p>
 
 <p>For a list of all the available command-line configs, see <code>npm help config</code></p>
 </div>
-<p id="footer">load &mdash; npm@1.1.66</p>
+<p id="footer">load &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index d7a426485ceeaa1a8be1f1a4a39021399f0dec16..1331b55ecbe597c53e02ed6162a153486b1bbce0 100644 (file)
@@ -59,7 +59,7 @@ project.</p>
 This means that if a submodule a same dependency as a parent module, then the
 dependency will only be output once.</p>
 </div>
-<p id="footer">ls &mdash; npm@1.1.66</p>
+<p id="footer">ls &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 7db359ab9aaaa86b6da94f99afd3b8672861bea4..1db5a2470b44784786a18d2643ad5925cf5068be 100644 (file)
@@ -24,7 +24,7 @@ npm.load(configObject, function (er, npm) {
 
 <h2 id="VERSION">VERSION</h2>
 
-<p>1.1.66</p>
+<p>1.1.69</p>
 
 <h2 id="DESCRIPTION">DESCRIPTION</h2>
 
@@ -91,7 +91,7 @@ method names.  Use the <code>npm.deref</code> method to find the real name.</p>
 
 <pre><code>var cmd = npm.deref(&quot;unp&quot;) // cmd === &quot;unpublish&quot;</code></pre>
 </div>
-<p id="footer">npm &mdash; npm@1.1.66</p>
+<p id="footer">npm &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index be4671d306d4cf9698b756bc2dbc86881ae2fa68..8a192cfda681af28212957a642fe7c225b90f942 100644 (file)
@@ -19,7 +19,7 @@ currently outdated.</p>
 
 <p>If the &#39;packages&#39; parameter is left out, npm will check all packages.</p>
 </div>
-<p id="footer">outdated &mdash; npm@1.1.66</p>
+<p id="footer">outdated &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 13ef95c851eacf022aa41c29f1ecb0c19bc4546a..3ce6e06a9e048e250a0cd7dceba4f63d23f21387 100644 (file)
@@ -34,7 +34,7 @@ that is not implemented at this time.</p>
 
 <ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
 </div>
-<p id="footer">owner &mdash; npm@1.1.66</p>
+<p id="footer">owner &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 1d0b79bed561dde86da055f1cba9da3b5d8b5fe6..4a2ddb6ec36d0c33431c55653f738db0deb1596c 100644 (file)
@@ -25,7 +25,7 @@ overwritten the second time.</p>
 
 <p>If no arguments are supplied, then npm packs the current package folder.</p>
 </div>
-<p id="footer">pack &mdash; npm@1.1.66</p>
+<p id="footer">pack &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 1e0ed2fcc82946cb4de759b31c2bdbcc63f75349..f5d28b3aa560ba5aa16993d6c899e0b552588587 100644 (file)
@@ -21,7 +21,7 @@
 
 <p>This function is not useful programmatically</p>
 </div>
-<p id="footer">prefix &mdash; npm@1.1.66</p>
+<p id="footer">prefix &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 1fee556739735d21d63e1d73fbfefd0ecc48f3d5..a68ac6f7c50c28073c067ee45528b59dc6696f9d 100644 (file)
@@ -23,7 +23,7 @@
 <p>Extraneous packages are packages that are not listed on the parent
 package&#39;s dependencies list.</p>
 </div>
-<p id="footer">prune &mdash; npm@1.1.66</p>
+<p id="footer">prune &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b7df962965d2fd7b5605da7b5e43f29862b092d4..53d948d301dd1aa587af997681235ff728407970 100644 (file)
@@ -32,7 +32,7 @@ the registry.  Overwrites when the &quot;force&quot; environment variable is set
 
 <ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../api/owner.html">owner(3)</a></li></ul>
 </div>
-<p id="footer">publish &mdash; npm@1.1.66</p>
+<p id="footer">publish &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 2cd29fdf9f304892edc2af5f813f09c06c96f2af..56cf9763c85307cdd20089879023f8317f64ca90 100644 (file)
@@ -22,7 +22,7 @@ the new binary. If no &#39;packages&#39; parameter is specify, every package wil
 
 <p>See <code>npm help build</code></p>
 </div>
-<p id="footer">rebuild &mdash; npm@1.1.66</p>
+<p id="footer">rebuild &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 0ca30dc84c2d7b45ac59646f64b5c5b9a8d14ffa..3a59b34cb192a6c5286a386025b6074470ea9130 100644 (file)
@@ -27,7 +27,7 @@ in the <code>packages</code> parameter.</p>
 
 <ul><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
 </div>
-<p id="footer">restart &mdash; npm@1.1.66</p>
+<p id="footer">restart &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 0373679e39725fdea7e72d01e783873e6d20ce90..0615ae2873bf3c482394752a91ea54a99c7e68af 100644 (file)
@@ -21,7 +21,7 @@
 
 <p>This function is not useful programmatically.</p>
 </div>
-<p id="footer">root &mdash; npm@1.1.66</p>
+<p id="footer">root &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 68f3c9ad1534e4469f73dbc6ead90d0e2881924b..14c26c9a9ede8e3e2ee887d7121bf1b0e7216415 100644 (file)
@@ -29,7 +29,7 @@ assumed to be the command to run. All other elements are ignored.</p>
 
 <ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../api/test.html">test(3)</a></li><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/restart.html">restart(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
 </div>
-<p id="footer">run-script &mdash; npm@1.1.66</p>
+<p id="footer">run-script &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 428d5f8cefc6000567edf51b441038a144df7369..4bab2e6f36920abb102d5ffac1028011f72bdd72 100644 (file)
@@ -32,7 +32,7 @@ excluded term (the &quot;searchexclude&quot; config). The search is case insensi
 and doesn&#39;t try to read your mind (it doesn&#39;t do any verb tense matching or the
 like).</p>
 </div>
-<p id="footer">search &mdash; npm@1.1.66</p>
+<p id="footer">search &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index a6a54c73117d63ddc31f262b46d09178ed1d1c60..51314d18520f0adc16e9645e18cd8d287faa1f62 100644 (file)
@@ -26,7 +26,7 @@ but the shrinkwrap file will still be written.</p>
 <p>Finally, &#39;callback&#39; is a function that will be called when the shrinkwrap has
 been saved.</p>
 </div>
-<p id="footer">shrinkwrap &mdash; npm@1.1.66</p>
+<p id="footer">shrinkwrap &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 9375d07d892239b31a026dd41f139783b29205a3..8631100802409804c4dd1fff34b3720415b72a15 100644 (file)
@@ -19,7 +19,7 @@
 <p>npm can run tests on multiple packages. Just specify multiple packages
 in the <code>packages</code> parameter.</p>
 </div>
-<p id="footer">start &mdash; npm@1.1.66</p>
+<p id="footer">start &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index d32ae1cfb5edd1443b7ca82ed150eb8db56f14c1..1106047a8fed7cf2ae5b4a181f02acd59dc50119 100644 (file)
@@ -19,7 +19,7 @@
 <p>npm can run stop on multiple packages. Just specify multiple packages
 in the <code>packages</code> parameter.</p>
 </div>
-<p id="footer">stop &mdash; npm@1.1.66</p>
+<p id="footer">stop &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 79633e63887c69597fa7e6b7a44ae5f178683a16..f84ad4ce049d91e411e4c981578d2885b54ab14d 100644 (file)
@@ -33,7 +33,7 @@ dependencies into the submodule folder.</p>
 
 <ul><li>npm help json</li><li>git help submodule</li></ul>
 </div>
-<p id="footer">submodule &mdash; npm@1.1.66</p>
+<p id="footer">submodule &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index d3d73ba33f8cbdc5a40d238bcc791fdd4d8e9b01..d441d55a73d6e75bf44492123b59e91d7d616847 100644 (file)
@@ -29,7 +29,7 @@ parameter is missing or falsey (empty), the default froom the config will be
 used. For more information about how to set this config, check
 <code>man 3 npm-config</code> for programmatic usage or <code>man npm-config</code> for cli usage.</p>
 </div>
-<p id="footer">tag &mdash; npm@1.1.66</p>
+<p id="footer">tag &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 2104c49e198806f9dfb602b9b9496fc83eb8e667..9b65480111f20f5c56c55da334c18f4b88f0a082 100644 (file)
@@ -22,7 +22,7 @@ true.</p>
 <p>npm can run tests on multiple packages. Just specify multiple packages
 in the <code>packages</code> parameter.</p>
 </div>
-<p id="footer">test &mdash; npm@1.1.66</p>
+<p id="footer">test &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 12f361917e695140662aa95eb04affdf33ee8c7f..6c2ac5e7be643f0db18787cb26a2130169ce3cef 100644 (file)
@@ -22,7 +22,7 @@ the name of a package to be uninstalled.</p>
 <p>Finally, &#39;callback&#39; is a function that will be called when all packages have been
 uninstalled or when an error has been encountered.</p>
 </div>
-<p id="footer">uninstall &mdash; npm@1.1.66</p>
+<p id="footer">uninstall &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 0cd78214d4ed2eec9a9218df26bb66c1c2394618..9a884f9412375707065e81df7e03b959a436c169 100644 (file)
@@ -26,7 +26,7 @@ is what is meant.</p>
 <p>If no version is specified, or if all versions are removed then
 the root package entry is removed from the registry entirely.</p>
 </div>
-<p id="footer">unpublish &mdash; npm@1.1.66</p>
+<p id="footer">unpublish &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 75125ba8388ff40b39dc6f24fd8c7f5ff3eb464d..54066151d97e5ab3ae793321f2581d9345fcec23 100644 (file)
@@ -18,7 +18,7 @@
 
 <p>The &#39;packages&#39; argument is an array of packages to update. The &#39;callback&#39; parameter will be called when done or when an error occurs.</p>
 </div>
-<p id="footer">update &mdash; npm@1.1.66</p>
+<p id="footer">update &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 31a6d777f02b0e7122ae1ff1e8833bf77a4d237a..8877d40c78d3afc7803fb03ac2de7ed2402054ea 100644 (file)
@@ -24,7 +24,7 @@ fail if the repo is not clean.</p>
 parameter. The difference, however, is this function will fail if it does
 not have exactly one element. The only element should be a version number.</p>
 </div>
-<p id="footer">version &mdash; npm@1.1.66</p>
+<p id="footer">version &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index e77d4e8fb0c93e1f00bdb5431f63ec7c0377ac3c..9e7ee82062a20493bff81f070f665cd456e77e8e 100644 (file)
@@ -99,7 +99,7 @@ the field name.</p>
 
 <p>corresponding to the list of fields selected.</p>
 </div>
-<p id="footer">view &mdash; npm@1.1.66</p>
+<p id="footer">view &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 12a27ed8477044cca0cd336c2a3ed0da1721a34a..0bba68177966868ba4279bda081e7ed8e6c60ce0 100644 (file)
@@ -21,7 +21,7 @@
 
 <p>This function is not useful programmatically</p>
 </div>
-<p id="footer">whoami &mdash; npm@1.1.66</p>
+<p id="footer">whoami &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 7436f88990de2392f63b7030645831db13e10349..0aeef48f3a5db26f12afe4bc33508a4bb8acfc7d 100644 (file)
@@ -240,7 +240,7 @@ will no doubt tell you to put the output in a gist or email.</p>
 
 <ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
 </div>
-<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.66</p>
+<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 7128ded5d561c460852e7f952a0e6ddca871a561..e5a87835f1573afcdb3b8cee160a465bc9b92eb6 100644 (file)
@@ -39,7 +39,7 @@ authorize on a new machine.</p>
 
 <ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li></ul>
 </div>
-<p id="footer">adduser &mdash; npm@1.1.66</p>
+<p id="footer">adduser &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index f245ae2f1c9388b4e926466ad1747bbc36c7c02f..f86d47555a8f722781c19726c9c0aa26ac2260ae 100644 (file)
@@ -20,7 +20,7 @@
 
 <ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
 </div>
-<p id="footer">bin &mdash; npm@1.1.66</p>
+<p id="footer">bin &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 12fd9e2c2866621548d7599161835609d9c0c77a..246edd02660ba08831bf827ba3eb1bd9cb5434a9 100644 (file)
@@ -36,7 +36,7 @@ config param.</p>
 
 <ul><li><a href="../doc/docs.html">docs(1)</a></li><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
 </div>
-<p id="footer">bugs &mdash; npm@1.1.66</p>
+<p id="footer">bugs &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 82ebde08fea530971fd4b9b51609e98231c7ea50..a6d6c014c8bb5c5fe1ae3b61163e264efe608170 100644 (file)
@@ -25,7 +25,7 @@ A folder containing a <code>package.json</code> file in its root.</li></ul>
 
 <ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
 </div>
-<p id="footer">build &mdash; npm@1.1.66</p>
+<p id="footer">build &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index df6e6ef3ee8a2d26736f3acff4d204050a01a333..5bcfab572e3ec34b7dc1f3783b449e955974614b 100644 (file)
@@ -20,7 +20,7 @@ install packages into the local space.</p>
 
 <ul><li><a href="../doc/install.html">install(1)</a></li></ul>
 </div>
-<p id="footer">bundle &mdash; npm@1.1.66</p>
+<p id="footer">bundle &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 0f6c44ca4f550f5e2bde28b5a658118442b84881..aecb28bf87495e072ae7b398bee12ab832e95379 100644 (file)
@@ -66,7 +66,7 @@ they do not make an HTTP request to the registry.</p>
 
 <ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li></ul>
 </div>
-<p id="footer">cache &mdash; npm@1.1.66</p>
+<p id="footer">cache &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index d49908a4aafb1229c287ad12459205eca8541eb3..9e27d2b9b8b458ba479b152da80bb96210fd48fc 100644 (file)
@@ -65,7 +65,7 @@
 
 <ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li></ul>
 </div>
-<p id="footer">changelog &mdash; npm@1.1.66</p>
+<p id="footer">changelog &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 1d9cc2fadce29603b04ecfbd3f1e42d2c735e0fb..1c0a6be48e56be0e775d5a211a72cdb2d949617d 100644 (file)
@@ -182,7 +182,7 @@ set to anything.&quot;</p>
 
 <ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
 </div>
-<p id="footer">coding-style &mdash; npm@1.1.66</p>
+<p id="footer">coding-style &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 0847bb3bea3944cc56978a0d8efa8070478fd920..c069973758d08dabafd9dfbead0fad5f9e0932d5 100644 (file)
@@ -33,7 +33,7 @@ completions based on the arguments.</p>
 
 <ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
 </div>
-<p id="footer">completion &mdash; npm@1.1.66</p>
+<p id="footer">completion &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index d9a9a4fc0c233d1c7b2f505567928d366dd99e27..5b7dfb59b95bf8aa6cd6f6765338752b2614dd3c 100644 (file)
@@ -756,7 +756,7 @@ then answer &quot;no&quot; to any prompt.</p>
 
 <ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
 </div>
-<p id="footer">config &mdash; npm@1.1.66</p>
+<p id="footer">config &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 360aed7dec1af02d4d395613ac6eb1d39a72437b..450a7aff2012bbdfe84ec952011a4ee98ad59d7b 100644 (file)
@@ -57,7 +57,7 @@ registry.</p>
 
 <ul><li><a href="../doc/ls.html">ls(1)</a></li><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
 </div>
-<p id="footer">dedupe &mdash; npm@1.1.66</p>
+<p id="footer">dedupe &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index cf66e92894148fdc5473d2b945c10383138dd138..58dd608da35f851678066578ee828f40ae6c1e2f 100644 (file)
@@ -29,7 +29,7 @@ something like this:</p>
 
 <ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
 </div>
-<p id="footer">deprecate &mdash; npm@1.1.66</p>
+<p id="footer">deprecate &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 8f8a4a9e6706ee6c408d9138c4a93750dd7e9015..8c3d6ca423f02a7134b1bb943ae5b74edae349c7 100644 (file)
@@ -160,7 +160,7 @@ from a fresh checkout.</p>
 
 <ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
 </div>
-<p id="footer">developers &mdash; npm@1.1.66</p>
+<p id="footer">developers &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 391baa2508757aa5bda95b2650e4c4519f2f2b92..63e8a2682145bf644065662372d944376ff4b7b1 100644 (file)
@@ -80,7 +80,7 @@ license statement)</li><li>Illegal content.</li></ol>
 
 <ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li></ul>
 </div>
-<p id="footer">disputes &mdash; npm@1.1.66</p>
+<p id="footer">disputes &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 6640b5a415b5eaf1997ba6feccd769a42c029042..4c28024e8669ade54f5ea902f07fe5722894fcc0 100644 (file)
@@ -37,7 +37,7 @@ config param.</p>
 
 <ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
 </div>
-<p id="footer">docs &mdash; npm@1.1.66</p>
+<p id="footer">docs &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 101ab837c190b1b324a6198ffff8382d1420f517..85fa1bcbe1a0df1a35d163f66784b207005eac9b 100644 (file)
@@ -37,7 +37,7 @@ or <code>&quot;notepad&quot;</code> on Windows.</li><li>Type: path</li></ul>
 
 <ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/explore.html">explore(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
 </div>
-<p id="footer">edit &mdash; npm@1.1.66</p>
+<p id="footer">edit &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index e095bcf95a0f98e5f0010bf3fa0f622538a8f281..c96e67a9c17ffe4cc499d35ce8c9d081a9ee9805 100644 (file)
@@ -40,7 +40,7 @@ Windows</li><li>Type: path</li></ul>
 
 <ul><li><a href="../doc/submodule.html">submodule(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/edit.html">edit(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
 </div>
-<p id="footer">explore &mdash; npm@1.1.66</p>
+<p id="footer">explore &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 332b393393e260a8569f0ee7b4b7fcb026a54f92..fa00cba1f9c0519131fefb8b052f821c9fc09036 100644 (file)
@@ -250,7 +250,7 @@ There is not sufficient need to impose namespace rules on everyone.</p>
 
 <ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
 </div>
-<p id="footer">faq &mdash; npm@1.1.66</p>
+<p id="footer">faq &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b85ebc5e0c2331cfdfe93d95ea80444abab0342a..43b88508588339bfa562ad1d4dfd7f0e2d78b933 100644 (file)
@@ -205,7 +205,7 @@ cannot be found elsewhere.  See <code><a href="../doc/json.html">json(1)</a></co
 
 <ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li></ul>
 </div>
-<p id="footer">folders &mdash; npm@1.1.66</p>
+<p id="footer">folders &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 2b822643a80ab88f4a75917e90aa4476ac880239..1bd013f5d02617cb0a40fd7ab953fdb1f397c912 100644 (file)
@@ -38,7 +38,7 @@ where the terms were found in the documentation.</p>
 
 <ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li></ul>
 </div>
-<p id="footer">help-search &mdash; npm@1.1.66</p>
+<p id="footer">help-search &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 6252f3b1c0ee3d24f327a002f1991b11a7223da0..8e6f3ed56ed49d2274802704e7b6c0808546c0c0 100644 (file)
@@ -36,7 +36,7 @@ matches are equivalent to specifying a topic name.</p>
 
 <ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/help-search.html">help-search(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
 </div>
-<p id="footer">help &mdash; npm@1.1.66</p>
+<p id="footer">help &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 9f33d5b4369da3e6b275b93bf28eb5fc85429fec..72dda28635294ae510041e2d01ffc2f4505536bf 100644 (file)
 
 <p> Display npm username</p>
 </div>
-<p id="footer">index &mdash; npm@1.1.66</p>
+<p id="footer">index &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b9728434aaedf32f7757510b919529f003d684b7..04a6c86c630cda29074c400acd1d961a74b2cfd2 100644 (file)
@@ -29,7 +29,7 @@ without a really good reason to do so.</p>
 
 <ul><li><a href="https://github.com/isaacs/init-package-json">https://github.com/isaacs/init-package-json</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/version.html">version(1)</a></li></ul>
 </div>
-<p id="footer">init &mdash; npm@1.1.66</p>
+<p id="footer">init &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index d99522b11b6a7ad6a55bd7678d8394927b434688..0999692cb90d50cbbaea97caec4f5a2b6001421a 100644 (file)
@@ -133,7 +133,7 @@ affects a real use-case, it will be investigated.</p>
 
 <ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/shrinkwrap.html">shrinkwrap(1)</a></li></ul>
 </div>
-<p id="footer">install &mdash; npm@1.1.66</p>
+<p id="footer">install &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 524ffe772e9cf6021d95b7b0049a1e84f064c2c3..169d775a62fb21b84d73cb26a73216465908222a 100644 (file)
@@ -525,7 +525,7 @@ overridden.</p>
 
 <ul><li><a href="../doc/semver.html">semver(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/version.html">version(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/rm.html">rm(1)</a></li></ul>
 </div>
-<p id="footer">json &mdash; npm@1.1.66</p>
+<p id="footer">json &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 7b5d030ea299ac94162bce96073e45f485bb2149..82961bdaf79947ebfe0c8f97c3b02b92c2c666c3 100644 (file)
@@ -58,7 +58,7 @@ installation target into your project&#39;s <code>node_modules</code> folder.</p
 
 <ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
 </div>
-<p id="footer">link &mdash; npm@1.1.66</p>
+<p id="footer">link &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 85bb03087c5d8ad59b58bec73d111de9fe5621ac..cd16d7f601cce77b3f0063b27f9c6a7b73189db1 100644 (file)
@@ -25,7 +25,7 @@ limit the results to only the paths to the packages named.  Note that
 nested packages will <em>also</em> show the paths to the specified packages.
 For example, running <code>npm ls promzard</code> in npm&#39;s source tree will show:</p>
 
-<pre><code>npm@1.1.66 /path/to/npm
+<pre><code>npm@1.1.69 /path/to/npm
 └─┬ init-package-json@0.0.4
   └── promzard@0.1.5</code></pre>
 
@@ -64,7 +64,7 @@ project.</p>
 
 <ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/update.html">update(1)</a></li></ul>
 </div>
-<p id="footer">ls &mdash; npm@1.1.66</p>
+<p id="footer">ls &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 26292c50eb232e80e206c95cc089765291b5e699..91de69a7e7fb99d8789ea739013e4c197e2eb82b 100644 (file)
@@ -14,7 +14,7 @@
 
 <h2 id="VERSION">VERSION</h2>
 
-<p>1.1.66</p>
+<p>1.1.69</p>
 
 <h2 id="DESCRIPTION">DESCRIPTION</h2>
 
@@ -135,7 +135,7 @@ will no doubt tell you to put the output in a gist or email.</p>
 
 <ul><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/index.html">index(1)</a></li><li><a href="../api/npm.html">npm(3)</a></li></ul>
 </div>
-<p id="footer">npm &mdash; npm@1.1.66</p>
+<p id="footer">npm &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b496f7224f9eeda5b92bb2f32841445ac00c76f1..f012d44370a3ef44c66f2b863b8c627db593c708 100644 (file)
@@ -21,7 +21,7 @@ packages are currently outdated.</p>
 
 <ul><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
 </div>
-<p id="footer">outdated &mdash; npm@1.1.66</p>
+<p id="footer">outdated &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 2368a314dcd844e9677aa50db9ee2f89da06ec06..e0b21d3fe4dc2fc70c11048a7296ec62f96eb749 100644 (file)
@@ -34,7 +34,7 @@ that is not implemented at this time.</p>
 
 <ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/disputes.html">disputes(1)</a></li></ul>
 </div>
-<p id="footer">owner &mdash; npm@1.1.66</p>
+<p id="footer">owner &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index eb16b8f831417175eabf2b1fbd6297f49cad5d37..c592d8bee4bbfda9ddb7a5803a648ecba22f8fc8 100644 (file)
@@ -29,7 +29,7 @@ overwritten the second time.</p>
 
 <ul><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
 </div>
-<p id="footer">pack &mdash; npm@1.1.66</p>
+<p id="footer">pack &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index a500e534376d77213caf0b22e701c66639b229db..dd8c5d8dd263fa117655f5c449a2f5ce6b35f767 100644 (file)
@@ -20,7 +20,7 @@
 
 <ul><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/bin.html">bin(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
 </div>
-<p id="footer">prefix &mdash; npm@1.1.66</p>
+<p id="footer">prefix &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 0a03454dea775255c3c4b4854da05abf2dc13a7e..6f7b76cb13c47d29c314307b135ef473015dec51 100644 (file)
@@ -25,7 +25,7 @@ package&#39;s dependencies list.</p>
 
 <ul><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
 </div>
-<p id="footer">prune &mdash; npm@1.1.66</p>
+<p id="footer">prune &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 6eb473a4c3cfc847119380d23f8cf75a35ea887f..c867f6027867d5791f0908d460a6f3fa2f7c7859 100644 (file)
@@ -29,7 +29,7 @@ the registry.  Overwrites when the &quot;--force&quot; flag is set.</p>
 
 <ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/deprecate.html">deprecate(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li></ul>
 </div>
-<p id="footer">publish &mdash; npm@1.1.66</p>
+<p id="footer">publish &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index e6e1f1e2d9bf438a50d307c469b32977e9c3e8fb..2a339f27e6e95f5b7de18143a365e37986383288 100644 (file)
@@ -25,7 +25,7 @@ the new binary.</p>
 
 <ul><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
 </div>
-<p id="footer">rebuild &mdash; npm@1.1.66</p>
+<p id="footer">rebuild &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index d595c8ff68c122e82a9f0a69e46c222b6d2598ee..a08df9c1d5dd74a811dca9783f4e00fb5ec1561c 100644 (file)
@@ -97,7 +97,7 @@ ask for help on the <a href="mailto:npm-@googlegroups.com">npm-@googlegroups.com
 
 <ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/disputes.html">disputes(1)</a></li></ul>
 </div>
-<p id="footer">registry &mdash; npm@1.1.66</p>
+<p id="footer">registry &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index ef22830fce9df30075bf4f7cff0ab117b1187ad0..757a9aea8cd52c51b5fb1970835511c2934c3237 100644 (file)
@@ -58,7 +58,7 @@ modules.  To track those down, you can do the following:</p>
 
 <ul><li><a href="../doc/README.html">README</a></li><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li></ul>
 </div>
-<p id="footer">removing-npm &mdash; npm@1.1.66</p>
+<p id="footer">removing-npm &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index cbd7970ce81a42a583f69b875953f0584b7d7dc2..5f71f95de1da90ac9bbb9f340b12764b83ec8694 100644 (file)
@@ -24,7 +24,7 @@ the &quot;start&quot; script.</p>
 
 <ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
 </div>
-<p id="footer">restart &mdash; npm@1.1.66</p>
+<p id="footer">restart &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index fa5dd112701506eed518f4684357179c774b6f6f..2091d937ae9ec46b24d2ca2a984f1718cc2607c2 100644 (file)
@@ -20,7 +20,7 @@
 
 <ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/bin.html">bin(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
 </div>
-<p id="footer">root &mdash; npm@1.1.66</p>
+<p id="footer">root &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index d4ac4b01f88e78c00643996186b07f8326e9bead..0a77c18a94de3f89ade5bad91df42b946e782999 100644 (file)
@@ -23,7 +23,7 @@ called directly, as well.</p>
 
 <ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
 </div>
-<p id="footer">run-script &mdash; npm@1.1.66</p>
+<p id="footer">run-script &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 2186fffa1718a62dc05b6b5262a0f3b07713cdf2..11734c2a946273077632ce9694c6716b1ae67dc4 100644 (file)
@@ -177,7 +177,7 @@ will sudo the npm command in question.</li></ul>
 
 <ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
 </div>
-<p id="footer">scripts &mdash; npm@1.1.66</p>
+<p id="footer">scripts &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 47047e7dfb35ce6e0d461bdcbbf4944615b00b23..bfe6040150cd4263f43ce1dcae402a6091821880 100644 (file)
@@ -24,7 +24,7 @@ expression characters must be escaped or quoted in most shells.)</p>
 
 <ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/view.html">view(1)</a></li></ul>
 </div>
-<p id="footer">search &mdash; npm@1.1.66</p>
+<p id="footer">search &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index c2d32aa18427507897e65cc53f9db79b7c0a2265..d72af01105a4a89f19ccd675a72fdf4154ed5834 100644 (file)
@@ -104,7 +104,7 @@ that satisfies the range, or null if none of them do.</li></ul>
 
 <ul><li><a href="../doc/json.html">json(1)</a></li></ul>
 </div>
-<p id="footer">semver &mdash; npm@1.1.66</p>
+<p id="footer">semver &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index d99e5ad6fc7bf971c2545159b6721580b39f86f8..5c97efb6c81bb1c31f2d6e330ea13a7e96c882de 100644 (file)
@@ -169,7 +169,7 @@ versions.</p>
 
 <ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
 </div>
-<p id="footer">shrinkwrap &mdash; npm@1.1.66</p>
+<p id="footer">shrinkwrap &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 8e7d323652b219ff2088f7250591e175f5468e13..76d50737a91b30d0c73b60724f8a67bb32b36e42 100644 (file)
@@ -26,7 +26,7 @@ a vaguely positive way to show that you care.</p>
 
 <ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
 </div>
-<p id="footer">star &mdash; npm@1.1.66</p>
+<p id="footer">star &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b3d7d67563ccb4f99f1d52b06942645c2b4faec8..e6f3830db47a1c6defe6d460f8f2716b42ed834f 100644 (file)
@@ -20,7 +20,7 @@
 
 <ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
 </div>
-<p id="footer">start &mdash; npm@1.1.66</p>
+<p id="footer">start &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index f7ebb17869789db0cd5528fc3f654ff89c73b4e1..16dd5454973caf6720b404b45d8a8d8e440643dc 100644 (file)
@@ -20,7 +20,7 @@
 
 <ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li></ul>
 </div>
-<p id="footer">stop &mdash; npm@1.1.66</p>
+<p id="footer">stop &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 02b22e80dc9d05c1005fb3f9dfa0f1eecd03a349..8efe845d332397c4b8b25bd12b60f26cfdd3ea1c 100644 (file)
@@ -33,7 +33,7 @@ dependencies into the submodule folder.</p>
 
 <ul><li><a href="../doc/json.html">json(1)</a></li><li>git help submodule</li></ul>
 </div>
-<p id="footer">submodule &mdash; npm@1.1.66</p>
+<p id="footer">submodule &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 4a5c3c86067ff2af78bb85e52f183ca9c09da112..555eca9a7c87c2c78f67b8db9df69432907545ff 100644 (file)
@@ -21,7 +21,7 @@
 
 <ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
 </div>
-<p id="footer">tag &mdash; npm@1.1.66</p>
+<p id="footer">tag &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 79217ddb585e092095314a24b62095f620318a07..5b7d2f00573d07745d2908c1044c4d5c85917b9b 100644 (file)
@@ -23,7 +23,7 @@ true.</p>
 
 <ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
 </div>
-<p id="footer">test &mdash; npm@1.1.66</p>
+<p id="footer">test &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index cf7d2d30dfc69a72ae2e396967bbc6e6f0e56596..b8bb49d81e9aa72e249c67c2222dad0f0a3a87e0 100644 (file)
@@ -22,7 +22,7 @@ on its behalf.</p>
 
 <ul><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
 </div>
-<p id="footer">uninstall &mdash; npm@1.1.66</p>
+<p id="footer">uninstall &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 8b641fcc17e10b74989c182d4b765030e211111d..7ca57fe4d564ce8f758182d5571fd19bcb2dd5cc 100644 (file)
@@ -34,7 +34,7 @@ the root package entry is removed from the registry entirely.</p>
 
 <ul><li><a href="../doc/deprecate.html">deprecate(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li></ul>
 </div>
-<p id="footer">unpublish &mdash; npm@1.1.66</p>
+<p id="footer">unpublish &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 0d3248444e140d4e67eb34adfbb319d67ba1cff7..130ac845fdf5234be5035698b5fac6d1fe69eff7 100644 (file)
@@ -23,7 +23,7 @@
 
 <ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
 </div>
-<p id="footer">update &mdash; npm@1.1.66</p>
+<p id="footer">update &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index e5f7d6a7824b93c65be962b7445f9c7d52bea78f..f871fa62259a208c0ef94566d237b24042062065 100644 (file)
@@ -40,7 +40,7 @@ in your git config for this to work properly.</p>
 
 <ul><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/semver.html">semver(1)</a></li></ul>
 </div>
-<p id="footer">version &mdash; npm@1.1.66</p>
+<p id="footer">version &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 29ca5c642f35003e925a11d10c43e3c073ae7876..3a49962d8af1795fc64fb41e2a5fa797d80e45d6 100644 (file)
@@ -88,7 +88,7 @@ the field name.</p>
 
 <ul><li><a href="../doc/search.html">search(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/docs.html">docs(1)</a></li></ul>
 </div>
-<p id="footer">view &mdash; npm@1.1.66</p>
+<p id="footer">view &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 68915b0e474dec6d827ca1aa91bd3bdc760046fb..e50ec16f2eedbfd1289ce8b3d3cc52d40f859d14 100644 (file)
@@ -20,7 +20,7 @@
 
 <ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
 </div>
-<p id="footer">whoami &mdash; npm@1.1.66</p>
+<p id="footer">whoami &mdash; npm@1.1.69</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 6863f0483308b943822e35d5634d6e95bb771ce5..0a927d35d243636db30da0a6e5b945aeca064866 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM" "1" "November 2012" "" ""
+.TH "NPM" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm\fR \-\- node package manager
index 47bde5bdf94e3e2c0ac56e53d1a3996f4a41256a..df8f52f1093a633f27fb8ab3b961c67492540a81 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-ADDUSER" "1" "November 2012" "" ""
+.TH "NPM\-ADDUSER" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-adduser\fR \-\- Add a registry user account
index 9681735dc57f5f5e8471d9e87560ce362cc0f963..338309cd248167ef6de48f56608527145ac84a89 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-BIN" "1" "November 2012" "" ""
+.TH "NPM\-BIN" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-bin\fR \-\- Display npm bin folder
index cf4d956b686395fe6945b8a894891ab53869f299..02c21835986e9ae0fb4840d9bf389bb63e54c6b1 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-BUGS" "1" "November 2012" "" ""
+.TH "NPM\-BUGS" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-bugs\fR \-\- Bugs for a package in a web browser maybe
index ce4c78e9c4f07b6ed2e9e9e12caa2d8ed4888bdd..59d45d13955f415b6a4d01062762d1a90a9618ec 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-BUILD" "1" "November 2012" "" ""
+.TH "NPM\-BUILD" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-build\fR \-\- Build a package
index 144f1320fcd140bd893961421e7892b1279eda53..2d5f333eb1d05df930b8864e75483aa66cc16163 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-BUNDLE" "1" "November 2012" "" ""
+.TH "NPM\-BUNDLE" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-bundle\fR \-\- REMOVED
index 3ecff267f53dbb717a6692bb91b652c16292b144..45454d6af5df4ff59509522636a65c9ed4183fe0 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-CACHE" "1" "November 2012" "" ""
+.TH "NPM\-CACHE" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-cache\fR \-\- Manipulates packages cache
index 95de36f978b5137eab8b79890717ac9970c405c6..ae61098b38aef1879f5c884480dbe4b758cb3e9b 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-CHANGELOG" "1" "November 2012" "" ""
+.TH "NPM\-CHANGELOG" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-changelog\fR \-\- Changes
index da2548cf50e1afe263817758183e9f0e64b1dbc4..8328e615adb42fb13386078a355498787a8e3c9e 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-CODING\-STYLE" "1" "November 2012" "" ""
+.TH "NPM\-CODING\-STYLE" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-coding-style\fR \-\- npm\'s "funny" coding style
index 77671666aa513e24c46f629e7dd27444dd513034..3367ff9b3d223487e573d1aacc2f84d34a9f7f81 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-COMPLETION" "1" "November 2012" "" ""
+.TH "NPM\-COMPLETION" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-completion\fR \-\- Tab Completion for npm
index 13e04cb4dc34351aeddb3f876596193df978f973..15685c6e0c4140809da7d5cecd0c69dadb85a1fb 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-CONFIG" "1" "November 2012" "" ""
+.TH "NPM\-CONFIG" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-config\fR \-\- Manage the npm configuration file
index e716a4828d49480794edafb3d60ecd907d0b8f51..73de1f48e46a406fc0783f71db71735a3fa4a294 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-DEDUPE" "1" "November 2012" "" ""
+.TH "NPM\-DEDUPE" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-dedupe\fR \-\- Reduce duplication
index 1b79a02f4a5d18c717ea794ce31238b936ad85e9..74ea57760d9349fd4462533d0f3e07fd2ece6863 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-DEPRECATE" "1" "November 2012" "" ""
+.TH "NPM\-DEPRECATE" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-deprecate\fR \-\- Deprecate a version of a package
index 25da3709de130054214ce804ea671277c81d0643..ab5e557694e6a32da9957a86cd630cd75c36cdd1 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-DEVELOPERS" "1" "November 2012" "" ""
+.TH "NPM\-DEVELOPERS" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-developers\fR \-\- Developer Guide
index 23001fcaf09f13fcc34b21987bfe7dd3fcb63053..63420b84b6a4cbd50888a1b100a8b6bdc36527e0 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-DISPUTES" "1" "November 2012" "" ""
+.TH "NPM\-DISPUTES" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-disputes\fR \-\- Handling Module Name Disputes
index 2360e37d6cf879b21a23b846f88de5e1dfe60edb..e1028b89b315bd89fac598bcc5872286287b3636 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-DOCS" "1" "November 2012" "" ""
+.TH "NPM\-DOCS" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-docs\fR \-\- Docs for a package in a web browser maybe
index fb10868b04c3829e1ee300c68c7fa30142d7648f..f727c2b99cead3895105ad9921d998d7c2874520 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-EDIT" "1" "November 2012" "" ""
+.TH "NPM\-EDIT" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-edit\fR \-\- Edit an installed package
index 0fa11c1ac1fdc2c899844ff52759c2db7da8da81..7c8f95a30155b5d46b97941995f802572d67aafc 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-EXPLORE" "1" "November 2012" "" ""
+.TH "NPM\-EXPLORE" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-explore\fR \-\- Browse an installed package
index ad3d64fc43f0ad9579ce4d16019e09d6e57cdbb7..bc72dea83534803d0905648638e676d8f47b7776 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-FAQ" "1" "November 2012" "" ""
+.TH "NPM\-FAQ" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-faq\fR \-\- Frequently Asked Questions
index 1dbae5c366717c00a8d9bf75bd724ba230b446ac..02a7c613fd0e0f1e80080dbad1d51666827eb253 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-FOLDERS" "1" "November 2012" "" ""
+.TH "NPM\-FOLDERS" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-folders\fR \-\- Folder Structures Used by npm
index 3caba92b0ecb1fe7a170f3b91f0a10afd90e64b5..95ea44f42f134925c926bb989e46a12fced5b51d 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-HELP\-SEARCH" "1" "November 2012" "" ""
+.TH "NPM\-HELP\-SEARCH" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-help-search\fR \-\- Search npm help documentation
index de6a5e4fa8b2f528cc3aad10a08238394262857d..8b01719d6e91144e591bd9e6a36a8bc847e0f789 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-HELP" "1" "November 2012" "" ""
+.TH "NPM\-HELP" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-help\fR \-\- Get help on npm
index 6e1caa48523c9f0303bc64ea7e11788bad6aa440..d2b7e8197f06e78230ac21895dd39bd808abc1f1 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-INDEX" "1" "November 2012" "" ""
+.TH "NPM\-INDEX" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-index\fR \-\- Index of all npm documentation
index 4be55fdebe0a44792de991c357b3a511d4b6e2d7..597e68caf7aed1f4a3093914e39723be7109f87e 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-INIT" "1" "November 2012" "" ""
+.TH "NPM\-INIT" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-init\fR \-\- Interactively create a package\.json file
index cd9232ebcfdd878cb46b939ffd92c265cb9c2ae0..9de9fe0ecda1ed88314896217a8e45678cd89e7e 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-INSTALL" "1" "November 2012" "" ""
+.TH "NPM\-INSTALL" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-install\fR \-\- Install a package
index ca38542a29b05f805298438dd4f2882a8fe03940..517da10be2365c18d3fbaff9554b2374dc4f915c 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-JSON" "1" "November 2012" "" ""
+.TH "NPM\-JSON" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-json\fR \-\- Specifics of npm\'s package\.json handling
index 3ebf00352bca13cbeb36e01a2b6a5a045461797d..30bc4e7ce9ea5d768c2432477ff982af8a72c49a 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-LINK" "1" "November 2012" "" ""
+.TH "NPM\-LINK" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-link\fR \-\- Symlink a package folder
index c620deed92a0317fb15d7292ea05d25d416a9df4..13c18a9dbfab2ea9b9aff3927d4536e7eee41a55 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-LS" "1" "November 2012" "" ""
+.TH "NPM\-LS" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-ls\fR \-\- List installed packages
@@ -29,7 +29,7 @@ For example, running \fBnpm ls promzard\fR in npm\'s source tree will show:
 .IP "" 4
 .
 .nf
-npm@1.1.66 /path/to/npm
+npm@1.1.69 /path/to/npm
 └─┬ init\-package\-json@0\.0\.4
   └── promzard@0\.1\.5
 .
index 8f04e7c6629a4494f3ee1a3fe5104cc5cc163552..eefdaf057bc89725c49747bc38c329a9166092f2 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM" "1" "November 2012" "" ""
+.TH "NPM" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm\fR \-\- node package manager
@@ -14,7 +14,7 @@ npm <command> [args]
 .fi
 .
 .SH "VERSION"
-1.1.66
+1.1.69
 .
 .SH "DESCRIPTION"
 npm is the package manager for the Node JavaScript platform\.  It puts
index 9f936b64cca9d1de8cf3dfebe0e8138b494d8c39..03912064e37ef50ff7d541e5d77257f518aef9da 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-OUTDATED" "1" "November 2012" "" ""
+.TH "NPM\-OUTDATED" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-outdated\fR \-\- Check for outdated packages
index cd9df7d72efb3a74a013e293b490a0b19f441e45..82adc69f389c293d2960982a125866216ba1a657 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-OWNER" "1" "November 2012" "" ""
+.TH "NPM\-OWNER" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-owner\fR \-\- Manage package owners
index a9129b5487f0389d8c6a0b78d9383b18408c1a8c..12588fbfcf7bfd79581ba62e55c5e05751286996 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-PACK" "1" "November 2012" "" ""
+.TH "NPM\-PACK" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-pack\fR \-\- Create a tarball from a package
index d8f28764c0d5dadbc8d411b67b5d4f3425b8c38a..5a6cac9631ee62660f2c34d2fb1bc754f609ad58 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-PREFIX" "1" "November 2012" "" ""
+.TH "NPM\-PREFIX" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-prefix\fR \-\- Display prefix
index 6526a91edf2a828a9e4387c0f91cf6accae93e86..dfed0f86c6cee3c2fdd8317dcaeeed6d0368422c 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-PRUNE" "1" "November 2012" "" ""
+.TH "NPM\-PRUNE" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-prune\fR \-\- Remove extraneous packages
index 57fe1df1bf0fb0e4c00c1c1c0f4f6dadbf785811..08b2478120687b0a8f634dfed509a4f757ba6be3 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-PUBLISH" "1" "November 2012" "" ""
+.TH "NPM\-PUBLISH" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-publish\fR \-\- Publish a package
index 7bc56b92dd95b987dc54fbe8ae56dc733301200c..e6c5ee5dd2f0c93eb4e2ded35dfa04f9b91c1282 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-REBUILD" "1" "November 2012" "" ""
+.TH "NPM\-REBUILD" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-rebuild\fR \-\- Rebuild a package
index d166f9af1a0f9e48233c6b28d413a74fe96f86f3..308bf8dc33816c8a2fef0c54590287781a358a77 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-REGISTRY" "1" "November 2012" "" ""
+.TH "NPM\-REGISTRY" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-registry\fR \-\- The JavaScript Package Registry
index 0a8d8c867392733bb426a24d57799f571aa36c5c..4a381c1ac143b5d3a960899a7603791cbfac144e 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-REMOVAL" "1" "November 2012" "" ""
+.TH "NPM\-REMOVAL" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-removal\fR \-\- Cleaning the Slate
index e2a5ec9ef37e4eba6120451f4845da576572b55d..a9d5789f8b85290111775db8795fa4a273fd416d 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-RESTART" "1" "November 2012" "" ""
+.TH "NPM\-RESTART" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-restart\fR \-\- Start a package
index e5e18c9116c93a2b4b286ef2430cf18c63c6918d..b4cbfa78c3977b3298702d58775c5d9081b283e2 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-ROOT" "1" "November 2012" "" ""
+.TH "NPM\-ROOT" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-root\fR \-\- Display npm root
index 9e50dd094729efd9b63468736281112dd24af6f0..53a5c30859f47402a580a6d434469a73ec39c1f6 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-RUN\-SCRIPT" "1" "November 2012" "" ""
+.TH "NPM\-RUN\-SCRIPT" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-run-script\fR \-\- Run arbitrary package scripts
index b5099e0b5393c0603093537525749ffd941f6b89..263afa87844b77cf54663b6f8bd9b91378c7b7f2 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-SCRIPTS" "1" "November 2012" "" ""
+.TH "NPM\-SCRIPTS" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-scripts\fR \-\- How npm handles the "scripts" field
index aba6b7fdc40b1575fb681d14aa8131f2ea8cc726..005664ead7be817eafeba4e61e6a1ab54a889494 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-SEARCH" "1" "November 2012" "" ""
+.TH "NPM\-SEARCH" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-search\fR \-\- Search for packages
index a77d744cf0f8223656dbfde3b71062f58bb1ad46..29d5c1bf6e9c3d7446e829c45dbbc56cccd7adcc 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-SEMVER" "1" "November 2012" "" ""
+.TH "NPM\-SEMVER" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-semver\fR \-\- The semantic versioner for npm
index 813f7b419843e08bf02dfbac5fb9168baf64b786..3d845022469ae63db00da1b684c33f8951131712 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-SHRINKWRAP" "1" "November 2012" "" ""
+.TH "NPM\-SHRINKWRAP" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-shrinkwrap\fR \-\- Lock down dependency versions
index c9620d026e98523ecf5903029bd7ae438795f650..31db483de1e7798bb732492749b15d23e1be559f 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-STAR" "1" "November 2012" "" ""
+.TH "NPM\-STAR" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-star\fR \-\- Mark your favorite packages
index 066de0e3d4d5b2baf7abdeb2ecc9af9265dab24c..e79a48d7a2f1db0ed2cf540eabdb40db6b26bfaa 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-START" "1" "November 2012" "" ""
+.TH "NPM\-START" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-start\fR \-\- Start a package
index b8d7ec5510784c0660b32164e79f3f354347a23d..5a7856bb3d287b0ddaa4ff9b642763a0daa7247a 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-STOP" "1" "November 2012" "" ""
+.TH "NPM\-STOP" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-stop\fR \-\- Stop a package
index 7d889581fa98fd3cc87800ecfb0c0d1c835a41d5..39bd1ad301fa63178e7603f3c25f13fecea4d134 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-SUBMODULE" "1" "November 2012" "" ""
+.TH "NPM\-SUBMODULE" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-submodule\fR \-\- Add a package as a git submodule
index 03dfd6e2df885dd43d9585ca0e7ce2ba6cb6cb0d..3832cdc8087c1214aee586b59f89f296ad869b91 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-TAG" "1" "November 2012" "" ""
+.TH "NPM\-TAG" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-tag\fR \-\- Tag a published version
index b7ba61f4fbd35d42456ce578dc2d1f61c1d07cba..988b6947f1dce517eb69cff534cde33df0c68db5 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-TEST" "1" "November 2012" "" ""
+.TH "NPM\-TEST" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-test\fR \-\- Test a package
index 6bbb883d7df7bfc1ea04c49798a1a549c754e233..79d01e2c3740d9abed26d94426d6a612ac30615d 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-RM" "1" "November 2012" "" ""
+.TH "NPM\-RM" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-rm\fR \-\- Remove a package
index 57db2b81a76e878a485a0469dc23bc9755064d0d..694386a588bef5ce4036770e59a77d047790ca7b 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-UNPUBLISH" "1" "November 2012" "" ""
+.TH "NPM\-UNPUBLISH" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-unpublish\fR \-\- Remove a package from the registry
index f5dcd4d95ea118faece53ab218f70c18dea745f1..09575c0e363058e1df1e3e5b258c85a9f34a7019 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-UPDATE" "1" "November 2012" "" ""
+.TH "NPM\-UPDATE" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-update\fR \-\- Update a package
index 3f4eb0e3550051a27e795fc3867fbd2a5cf51284..fc9b7ac1c7d45f7d218cbe75cb96c948dad8a46c 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-VERSION" "1" "November 2012" "" ""
+.TH "NPM\-VERSION" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-version\fR \-\- Bump a package version
index 8ca1c366b88573238c7bf166ee5b5256c8b45a1d..a30b6ab4f403c6195c2adc878623d5b90184b1f8 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-VIEW" "1" "November 2012" "" ""
+.TH "NPM\-VIEW" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-view\fR \-\- View registry info
index f78473a02a27db44f176c514cf59f3322f0ac0f8..46df8f6102a2b51adbdafb567f2a6a8c74237977 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-WHOAMI" "1" "November 2012" "" ""
+.TH "NPM\-WHOAMI" "1" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-whoami\fR \-\- Display npm username
index 8a825512ee247f3515659936d6ef061334c059e0..54f935fd4f577b76f653c4470981cae3e4c2d0a9 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-BIN" "3" "November 2012" "" ""
+.TH "NPM\-BIN" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-bin\fR \-\- Display npm bin folder
index 6f0a692d55a318d33b9287619f7be589117741d4..1a8e95389d98745daeffed40535fbe5b631c1cad 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-BUGS" "3" "November 2012" "" ""
+.TH "NPM\-BUGS" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-bugs\fR \-\- Bugs for a package in a web browser maybe
index b66f9e6a4bbbbd12e149b6672b73d654943f0181..9d3103f1d465d829d070ef83508bc03b90e9c21a 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-COMMANDS" "3" "November 2012" "" ""
+.TH "NPM\-COMMANDS" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-commands\fR \-\- npm commands
index 15c61fb79615ade46f356241619aecb249b5a218..600472fbcc19303a2599fc67ededffc1e3a34ac6 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-CONFIG" "3" "November 2012" "" ""
+.TH "NPM\-CONFIG" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-config\fR \-\- Manage the npm configuration files
index 577105e029a6f791106237c1e66bc105632e17dc..4a42fe913c3d08482c148539f02cd5d85409ef42 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-DEPRECATE" "3" "November 2012" "" ""
+.TH "NPM\-DEPRECATE" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-deprecate\fR \-\- Deprecate a version of a package
index a992a79eee9c7b0c5afa9a4a15c5f94dd4e246c9..ea9dbb027f91a2b7f8a0c08dd07fc694fc3d0d3d 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-DOCS" "3" "November 2012" "" ""
+.TH "NPM\-DOCS" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-docs\fR \-\- Docs for a package in a web browser maybe
index b4ad35eda77426ea87cce6ca64c2798b27eba5a2..5abc36f86ff6bc48f80631f0d1d7f68b21d934e2 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-EDIT" "3" "November 2012" "" ""
+.TH "NPM\-EDIT" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-edit\fR \-\- Edit an installed package
index 5743357929788dccb5e5b23c19f30b4c7f04bb73..1d55e3ba7f093972ca5c4e5eb3e995ab0e5e8ff2 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-EXPLORE" "3" "November 2012" "" ""
+.TH "NPM\-EXPLORE" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-explore\fR \-\- Browse an installed package
index 2054fa03d0b32e6ccb5943e9fd55c065f75337c8..b44525edf935544f894955ae0b68e2aaa64dc098 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-HELP\-SEARCH" "3" "November 2012" "" ""
+.TH "NPM\-HELP\-SEARCH" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-help-search\fR \-\- Search the help pages
index 050e6211e1aa089f26095efe27aeec6eb9cc4ff0..26765c3cf31c0fae984e5ca4249796db916b8f2b 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "INIT" "3" "November 2012" "" ""
+.TH "INIT" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBinit\fR \-\- Interactively create a package\.json file
index 118920e6d8c60baf4c886cbda89167d11cf21e30..aed53d29445b8b13515f55d0d540efa8bb9f7f3f 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-INSTALL" "3" "November 2012" "" ""
+.TH "NPM\-INSTALL" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-install\fR \-\- install a package programmatically
index e9830da7fc49ab27f2cf6d5338d6eaacca006634..0c57b7f132aaead2db675b4020e106af329582e3 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-LINK" "3" "November 2012" "" ""
+.TH "NPM\-LINK" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-link\fR \-\- Symlink a package folder
index 88260d87789ac23c20bc19e1474e13c3d186292a..c2cf7315be86db99bc2796aca59ea96ce643287f 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-LOAD" "3" "November 2012" "" ""
+.TH "NPM\-LOAD" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-load\fR \-\- Load config settings
index 322479f7155182e2f0da88f83bc1d2c69672c2a7..4694bc52bfa0e31a6eebda10e01729f45845b21f 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-LS" "3" "November 2012" "" ""
+.TH "NPM\-LS" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-ls\fR \-\- List installed packages
index 239ad1da964778c92421ec7b2df9b504a4068aa4..1cb69a87d944ff1a5a07692e39d6e2781e6e1a8c 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM" "3" "November 2012" "" ""
+.TH "NPM" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm\fR \-\- node package manager
@@ -21,7 +21,7 @@ npm\.load(configObject, function (er, npm) {
 .fi
 .
 .SH "VERSION"
-1.1.66
+1.1.69
 .
 .SH "DESCRIPTION"
 This is the API documentation for npm\.
index d68ffe7f292d31226ef39aeb799170b06492a415..0a3f7c1c3f156802b1119288c42caefe552af5b6 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-OUTDATED" "3" "November 2012" "" ""
+.TH "NPM\-OUTDATED" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-outdated\fR \-\- Check for outdated packages
index 92f0d31bfb22e6b00512412abcbaee9e5d074728..c6fc84c164822faa79c984b704009a96c7785a11 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-OWNER" "3" "November 2012" "" ""
+.TH "NPM\-OWNER" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-owner\fR \-\- Manage package owners
index c746b1a291cf141c658ba8256e0b6471f0dd6d07..e98efbb5f59a07f75fd3880b811122c83c00a978 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-PACK" "3" "November 2012" "" ""
+.TH "NPM\-PACK" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-pack\fR \-\- Create a tarball from a package
index c3701d64c2e55d0e9b43bcb434cbcfdaeed593e1..13e8935d1aa1dc6e2fc327fae11638de0ae66c0e 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-PREFIX" "3" "November 2012" "" ""
+.TH "NPM\-PREFIX" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-prefix\fR \-\- Display prefix
index 29b586b56df715451d032719b96535cc90c7c9ab..34e345c0fd06c150fa91c6de9041910320a77749 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-PRUNE" "3" "November 2012" "" ""
+.TH "NPM\-PRUNE" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-prune\fR \-\- Remove extraneous packages
index 4005e930f1354585938dad04ec72d70524c5ba5a..965c92692767d1987c55abc45ad74f167fe6ddff 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-PUBLISH" "3" "November 2012" "" ""
+.TH "NPM\-PUBLISH" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-publish\fR \-\- Publish a package
index 7bc57a544ec9e5d3cb80deaced4751031d3fccbc..198921f19e660e2705023a3879f3433b0d6bfb10 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-REBUILD" "3" "November 2012" "" ""
+.TH "NPM\-REBUILD" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-rebuild\fR \-\- Rebuild a package
index 569a889c18f4b10e4540541139abd478a38e5e15..d99d649317c1dc8da3cbd2886c56cdb2b8a62c89 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-RESTART" "3" "November 2012" "" ""
+.TH "NPM\-RESTART" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-restart\fR \-\- Start a package
index e3eff5e5a1e81733c2678e4eb49afc8267d43b00..cadd360da9b3528c985b62b5d993e50b1f80a6af 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-ROOT" "3" "November 2012" "" ""
+.TH "NPM\-ROOT" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-root\fR \-\- Display npm root
index 600d37c0774266d573b24f72e2173d4538dfac61..ccfac9f0cf90f487fb1501e95fa61b4e928f6c1d 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-RUN\-SCRIPT" "3" "November 2012" "" ""
+.TH "NPM\-RUN\-SCRIPT" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-run-script\fR \-\- Run arbitrary package scripts
index e00db22c66d8225fcfa3858398a0d0f3d0b2a640..d77173c8e2e8a4b5d6c52d8d06e21357ad423b6c 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-SEARCH" "3" "November 2012" "" ""
+.TH "NPM\-SEARCH" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-search\fR \-\- Search for packages
index 604f4e6a4ab81f6889d2e5ff5a84bea11e9544ad..fb1bb7b165d79b675a8b3ec69235258f53704dc7 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-SHRINKWRAP" "3" "November 2012" "" ""
+.TH "NPM\-SHRINKWRAP" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-shrinkwrap\fR \-\- programmatically generate package shrinkwrap file
index 7aa44086d93656ac70adae7832571a11f51101a5..1e47f087e7647000bee8823d6c6c0fe7b8458a5b 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-START" "3" "November 2012" "" ""
+.TH "NPM\-START" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-start\fR \-\- Start a package
index ea46d09e218a6bdc4c3feadf4e582af85958b891..5a7f2a84442d4e0877adb46e3a00c683be6eac7b 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-STOP" "3" "November 2012" "" ""
+.TH "NPM\-STOP" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-stop\fR \-\- Stop a package
index 4bfaba483aadc3c3600f72aaef7f587d059d885f..1e2273a15aae1f7c7924f6a9591aabe098d16285 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-SUBMODULE" "3" "November 2012" "" ""
+.TH "NPM\-SUBMODULE" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-submodule\fR \-\- Add a package as a git submodule
index 05f47dbb656fe668f131cee108f6c16a05566414..0ec1eb07b653c7ba83532f9109291977f5e85de0 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-TAG" "3" "November 2012" "" ""
+.TH "NPM\-TAG" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-tag\fR \-\- Tag a published version
index c2c72767057883bddf51e789343214e5f9b819e0..030f934745dda00ff12747ee56c93a8431fa26b9 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-TEST" "3" "November 2012" "" ""
+.TH "NPM\-TEST" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-test\fR \-\- Test a package
index f845f48c5115d3fedc9e563df02e3a333b163e6f..8d3284c4cee85c088e2d65c8420289ab01d3162b 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-UNINSTALL" "3" "November 2012" "" ""
+.TH "NPM\-UNINSTALL" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-uninstall\fR \-\- uninstall a package programmatically
index 01361112c652afaffaeae1bd17bdcfcc443eaa5c..a907be332d85239722ff85cd5b63b79df306e3be 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-UNPUBLISH" "3" "November 2012" "" ""
+.TH "NPM\-UNPUBLISH" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-unpublish\fR \-\- Remove a package from the registry
index eeb4cbac7950f9b54180de17b905459c04586895..5c5638079fbbd7b4439b48db5ca2dee314fecdd3 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-UPDATE" "3" "November 2012" "" ""
+.TH "NPM\-UPDATE" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-update\fR \-\- Update a package
index 693084f70c1ceff004982b3f636409c7852ca12d..d72f64ab9edc3cfdf80a7d7bc3deebcb5b992072 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-VERSION" "3" "November 2012" "" ""
+.TH "NPM\-VERSION" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-version\fR \-\- Bump a package version
index 3a76b10af332d91ac0ee2a62835ed24594c932c2..23e89062161db470151a22f9346ae0cdb62bc9e1 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-VIEW" "3" "November 2012" "" ""
+.TH "NPM\-VIEW" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-view\fR \-\- View registry info
index 61f22a2cceb0d0d07c32d883755998f9b660f13b..99f4d5a8abc5155ee81d6ba06c993e4364300b40 100644 (file)
@@ -1,7 +1,7 @@
 .\" Generated with Ronnjs 0.3.8
 .\" http://github.com/kapouer/ronnjs/
 .
-.TH "NPM\-WHOAMI" "3" "November 2012" "" ""
+.TH "NPM\-WHOAMI" "3" "December 2012" "" ""
 .
 .SH "NAME"
 \fBnpm-whoami\fR \-\- Display npm username
index 9b942e4be6268a8d697169cab077a4b07fd8a481..5841be137d9e93d157b8875623cd8cb79a8f3a19 100644 (file)
@@ -6,6 +6,9 @@ else exports.minimatch = minimatch
 if (!require) {
   require = function (id) {
     switch (id) {
+      case "sigmund": return function sigmund (obj) {
+        return JSON.stringify(obj)
+      }
       case "path": return { basename: function (f) {
         f = f.split(/[\/\\]/)
         var e = f.pop()
@@ -32,6 +35,7 @@ minimatch.Minimatch = Minimatch
 var LRU = require("lru-cache")
   , cache = minimatch.cache = new LRU({max: 100})
   , GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
+  , sigmund = require("sigmund")
 
 var path = require("path")
   // any single thing other than /
@@ -157,9 +161,7 @@ function Minimatch (pattern, options) {
   // lru storage.
   // these things aren't particularly big, but walking down the string
   // and turning it into a regexp can get pretty costly.
-  var cacheKey = pattern + "\n" + Object.keys(options).filter(function (k) {
-    return options[k]
-  }).join(":")
+  var cacheKey = pattern + "\n" + sigmund(options)
   var cached = minimatch.cache.get(cacheKey)
   if (cached) return cached
   minimatch.cache.set(cacheKey, this)
diff --git a/deps/npm/node_modules/minimatch/node_modules/sigmund/LICENSE b/deps/npm/node_modules/minimatch/node_modules/sigmund/LICENSE
new file mode 100644 (file)
index 0000000..0c44ae7
--- /dev/null
@@ -0,0 +1,27 @@
+Copyright (c) Isaac Z. Schlueter ("Author")
+All rights reserved.
+
+The BSD License
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/deps/npm/node_modules/minimatch/node_modules/sigmund/README.md b/deps/npm/node_modules/minimatch/node_modules/sigmund/README.md
new file mode 100644 (file)
index 0000000..7e36512
--- /dev/null
@@ -0,0 +1,53 @@
+# sigmund
+
+Quick and dirty signatures for Objects.
+
+This is like a much faster `deepEquals` comparison, which returns a
+string key suitable for caches and the like.
+
+## Usage
+
+```javascript
+function doSomething (someObj) {
+  var key = sigmund(someObj, maxDepth) // max depth defaults to 10
+  var cached = cache.get(key)
+  if (cached) return cached)
+
+  var result = expensiveCalculation(someObj)
+  cache.set(key, result)
+  return result
+}
+```
+
+The resulting key will be as unique and reproducible as calling
+`JSON.stringify` or `util.inspect` on the object, but is much faster.
+In order to achieve this speed, some differences are glossed over.
+For example, the object `{0:'foo'}` will be treated identically to the
+array `['foo']`.
+
+Also, just as there is no way to summon the soul from the scribblings
+of a cocain-addled psychoanalyst, there is no way to revive the object
+from the signature string that sigmund gives you.  In fact, it's
+barely even readable.
+
+As with `sys.inspect` and `JSON.stringify`, larger objects will
+produce larger signature strings.
+
+Because sigmund is a bit less strict than the more thorough
+alternatives, the strings will be shorter, and also there is a
+slightly higher chance for collisions.  For example, these objects
+have the same signature:
+
+    var obj1 = {a:'b',c:/def/,g:['h','i',{j:'',k:'l'}]}
+    var obj2 = {a:'b',c:'/def/',g:['h','i','{jkl']}
+
+Like a good Freudian, sigmund is most effective when you already have
+some understanding of what you're looking for.  It can help you help
+yourself, but you must be willing to do some work as well.
+
+Cycles are handled, and cyclical objects are silently omitted (though
+the key is included in the signature output.)
+
+The second argument is the maximum depth, which defaults to 10,
+because that is the maximum object traversal depth covered by most
+insurance carriers.
diff --git a/deps/npm/node_modules/minimatch/node_modules/sigmund/bench.js b/deps/npm/node_modules/minimatch/node_modules/sigmund/bench.js
new file mode 100644 (file)
index 0000000..5acfd6d
--- /dev/null
@@ -0,0 +1,283 @@
+// different ways to id objects
+// use a req/res pair, since it's crazy deep and cyclical
+
+// sparseFE10 and sigmund are usually pretty close, which is to be expected,
+// since they are essentially the same algorithm, except that sigmund handles
+// regular expression objects properly.
+
+
+var http = require('http')
+var util = require('util')
+var sigmund = require('./sigmund.js')
+var sreq, sres, creq, cres, test
+
+http.createServer(function (q, s) {
+  sreq = q
+  sres = s
+  sres.end('ok')
+  this.close(function () { setTimeout(function () {
+    start()
+  }, 200) })
+}).listen(1337, function () {
+  creq = http.get({ port: 1337 })
+  creq.on('response', function (s) { cres = s })
+})
+
+function start () {
+  test = [sreq, sres, creq, cres]
+  // test = sreq
+  // sreq.sres = sres
+  // sreq.creq = creq
+  // sreq.cres = cres
+
+  for (var i in exports.compare) {
+    console.log(i)
+    var hash = exports.compare[i]()
+    console.log(hash)
+    console.log(hash.length)
+    console.log('')
+  }
+
+  require('bench').runMain()
+}
+
+function customWs (obj, md, d) {
+  d = d || 0
+  var to = typeof obj
+  if (to === 'undefined' || to === 'function' || to === null) return ''
+  if (d > md || !obj || to !== 'object') return ('' + obj).replace(/[\n ]+/g, '')
+
+  if (Array.isArray(obj)) {
+    return obj.map(function (i, _, __) {
+      return customWs(i, md, d + 1)
+    }).reduce(function (a, b) { return a + b }, '')
+  }
+
+  var keys = Object.keys(obj)
+  return keys.map(function (k, _, __) {
+    return k + ':' + customWs(obj[k], md, d + 1)
+  }).reduce(function (a, b) { return a + b }, '')
+}
+
+function custom (obj, md, d) {
+  d = d || 0
+  var to = typeof obj
+  if (to === 'undefined' || to === 'function' || to === null) return ''
+  if (d > md || !obj || to !== 'object') return '' + obj
+
+  if (Array.isArray(obj)) {
+    return obj.map(function (i, _, __) {
+      return custom(i, md, d + 1)
+    }).reduce(function (a, b) { return a + b }, '')
+  }
+
+  var keys = Object.keys(obj)
+  return keys.map(function (k, _, __) {
+    return k + ':' + custom(obj[k], md, d + 1)
+  }).reduce(function (a, b) { return a + b }, '')
+}
+
+function sparseFE2 (obj, maxDepth) {
+  var seen = []
+  var soFar = ''
+  function ch (v, depth) {
+    if (depth > maxDepth) return
+    if (typeof v === 'function' || typeof v === 'undefined') return
+    if (typeof v !== 'object' || !v) {
+      soFar += v
+      return
+    }
+    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
+    seen.push(v)
+    soFar += '{'
+    Object.keys(v).forEach(function (k, _, __) {
+      // pseudo-private values.  skip those.
+      if (k.charAt(0) === '_') return
+      var to = typeof v[k]
+      if (to === 'function' || to === 'undefined') return
+      soFar += k + ':'
+      ch(v[k], depth + 1)
+    })
+    soFar += '}'
+  }
+  ch(obj, 0)
+  return soFar
+}
+
+function sparseFE (obj, maxDepth) {
+  var seen = []
+  var soFar = ''
+  function ch (v, depth) {
+    if (depth > maxDepth) return
+    if (typeof v === 'function' || typeof v === 'undefined') return
+    if (typeof v !== 'object' || !v) {
+      soFar += v
+      return
+    }
+    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
+    seen.push(v)
+    soFar += '{'
+    Object.keys(v).forEach(function (k, _, __) {
+      // pseudo-private values.  skip those.
+      if (k.charAt(0) === '_') return
+      var to = typeof v[k]
+      if (to === 'function' || to === 'undefined') return
+      soFar += k
+      ch(v[k], depth + 1)
+    })
+  }
+  ch(obj, 0)
+  return soFar
+}
+
+function sparse (obj, maxDepth) {
+  var seen = []
+  var soFar = ''
+  function ch (v, depth) {
+    if (depth > maxDepth) return
+    if (typeof v === 'function' || typeof v === 'undefined') return
+    if (typeof v !== 'object' || !v) {
+      soFar += v
+      return
+    }
+    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
+    seen.push(v)
+    soFar += '{'
+    for (var k in v) {
+      // pseudo-private values.  skip those.
+      if (k.charAt(0) === '_') continue
+      var to = typeof v[k]
+      if (to === 'function' || to === 'undefined') continue
+      soFar += k
+      ch(v[k], depth + 1)
+    }
+  }
+  ch(obj, 0)
+  return soFar
+}
+
+function noCommas (obj, maxDepth) {
+  var seen = []
+  var soFar = ''
+  function ch (v, depth) {
+    if (depth > maxDepth) return
+    if (typeof v === 'function' || typeof v === 'undefined') return
+    if (typeof v !== 'object' || !v) {
+      soFar += v
+      return
+    }
+    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
+    seen.push(v)
+    soFar += '{'
+    for (var k in v) {
+      // pseudo-private values.  skip those.
+      if (k.charAt(0) === '_') continue
+      var to = typeof v[k]
+      if (to === 'function' || to === 'undefined') continue
+      soFar += k + ':'
+      ch(v[k], depth + 1)
+    }
+    soFar += '}'
+  }
+  ch(obj, 0)
+  return soFar
+}
+
+
+function flatten (obj, maxDepth) {
+  var seen = []
+  var soFar = ''
+  function ch (v, depth) {
+    if (depth > maxDepth) return
+    if (typeof v === 'function' || typeof v === 'undefined') return
+    if (typeof v !== 'object' || !v) {
+      soFar += v
+      return
+    }
+    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
+    seen.push(v)
+    soFar += '{'
+    for (var k in v) {
+      // pseudo-private values.  skip those.
+      if (k.charAt(0) === '_') continue
+      var to = typeof v[k]
+      if (to === 'function' || to === 'undefined') continue
+      soFar += k + ':'
+      ch(v[k], depth + 1)
+      soFar += ','
+    }
+    soFar += '}'
+  }
+  ch(obj, 0)
+  return soFar
+}
+
+exports.compare =
+{
+  // 'custom 2': function () {
+  //   return custom(test, 2, 0)
+  // },
+  // 'customWs 2': function () {
+  //   return customWs(test, 2, 0)
+  // },
+  'JSON.stringify (guarded)': function () {
+    var seen = []
+    return JSON.stringify(test, function (k, v) {
+      if (typeof v !== 'object' || !v) return v
+      if (seen.indexOf(v) !== -1) return undefined
+      seen.push(v)
+      return v
+    })
+  },
+
+  'flatten 10': function () {
+    return flatten(test, 10)
+  },
+
+  // 'flattenFE 10': function () {
+  //   return flattenFE(test, 10)
+  // },
+
+  'noCommas 10': function () {
+    return noCommas(test, 10)
+  },
+
+  'sparse 10': function () {
+    return sparse(test, 10)
+  },
+
+  'sparseFE 10': function () {
+    return sparseFE(test, 10)
+  },
+
+  'sparseFE2 10': function () {
+    return sparseFE2(test, 10)
+  },
+
+  sigmund: function() {
+    return sigmund(test, 10)
+  },
+
+
+  // 'util.inspect 1': function () {
+  //   return util.inspect(test, false, 1, false)
+  // },
+  // 'util.inspect undefined': function () {
+  //   util.inspect(test)
+  // },
+  // 'util.inspect 2': function () {
+  //   util.inspect(test, false, 2, false)
+  // },
+  // 'util.inspect 3': function () {
+  //   util.inspect(test, false, 3, false)
+  // },
+  // 'util.inspect 4': function () {
+  //   util.inspect(test, false, 4, false)
+  // },
+  // 'util.inspect Infinity': function () {
+  //   util.inspect(test, false, Infinity, false)
+  // }
+}
+
+/** results
+**/
diff --git a/deps/npm/node_modules/minimatch/node_modules/sigmund/package.json b/deps/npm/node_modules/minimatch/node_modules/sigmund/package.json
new file mode 100644 (file)
index 0000000..92a63e9
--- /dev/null
@@ -0,0 +1,38 @@
+{
+  "name": "sigmund",
+  "version": "1.0.0",
+  "description": "Quick and dirty signatures for Objects.",
+  "main": "sigmund.js",
+  "directories": {
+    "test": "test"
+  },
+  "dependencies": {},
+  "devDependencies": {
+    "tap": "~0.3.0"
+  },
+  "scripts": {
+    "test": "tap test/*.js",
+    "bench": "node bench.js"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/isaacs/sigmund"
+  },
+  "keywords": [
+    "object",
+    "signature",
+    "key",
+    "data",
+    "psychoanalysis"
+  ],
+  "author": {
+    "name": "Isaac Z. Schlueter",
+    "email": "i@izs.me",
+    "url": "http://blog.izs.me/"
+  },
+  "license": "BSD",
+  "readme": "# sigmund\n\nQuick and dirty signatures for Objects.\n\nThis is like a much faster `deepEquals` comparison, which returns a\nstring key suitable for caches and the like.\n\n## Usage\n\n```javascript\nfunction doSomething (someObj) {\n  var key = sigmund(someObj, maxDepth) // max depth defaults to 10\n  var cached = cache.get(key)\n  if (cached) return cached)\n\n  var result = expensiveCalculation(someObj)\n  cache.set(key, result)\n  return result\n}\n```\n\nThe resulting key will be as unique and reproducible as calling\n`JSON.stringify` or `util.inspect` on the object, but is much faster.\nIn order to achieve this speed, some differences are glossed over.\nFor example, the object `{0:'foo'}` will be treated identically to the\narray `['foo']`.\n\nAlso, just as there is no way to summon the soul from the scribblings\nof a cocain-addled psychoanalyst, there is no way to revive the object\nfrom the signature string that sigmund gives you.  In fact, it's\nbarely even readable.\n\nAs with `sys.inspect` and `JSON.stringify`, larger objects will\nproduce larger signature strings.\n\nBecause sigmund is a bit less strict than the more thorough\nalternatives, the strings will be shorter, and also there is a\nslightly higher chance for collisions.  For example, these objects\nhave the same signature:\n\n    var obj1 = {a:'b',c:/def/,g:['h','i',{j:'',k:'l'}]}\n    var obj2 = {a:'b',c:'/def/',g:['h','i','{jkl']}\n\nLike a good Freudian, sigmund is most effective when you already have\nsome understanding of what you're looking for.  It can help you help\nyourself, but you must be willing to do some work as well.\n\nCycles are handled, and cyclical objects are silently omitted (though\nthe key is included in the signature output.)\n\nThe second argument is the maximum depth, which defaults to 10,\nbecause that is the maximum object traversal depth covered by most\ninsurance carriers.\n",
+  "readmeFilename": "README.md",
+  "_id": "sigmund@1.0.0",
+  "_from": "sigmund@~1.0.0"
+}
diff --git a/deps/npm/node_modules/minimatch/node_modules/sigmund/sigmund.js b/deps/npm/node_modules/minimatch/node_modules/sigmund/sigmund.js
new file mode 100644 (file)
index 0000000..82c7ab8
--- /dev/null
@@ -0,0 +1,39 @@
+module.exports = sigmund
+function sigmund (subject, maxSessions) {
+    maxSessions = maxSessions || 10;
+    var notes = [];
+    var analysis = '';
+    var RE = RegExp;
+
+    function psychoAnalyze (subject, session) {
+        if (session > maxSessions) return;
+
+        if (typeof subject === 'function' ||
+            typeof subject === 'undefined') {
+            return;
+        }
+
+        if (typeof subject !== 'object' || !subject ||
+            (subject instanceof RE)) {
+            analysis += subject;
+            return;
+        }
+
+        if (notes.indexOf(subject) !== -1 || session === maxSessions) return;
+
+        notes.push(subject);
+        analysis += '{';
+        Object.keys(subject).forEach(function (issue, _, __) {
+            // pseudo-private values.  skip those.
+            if (issue.charAt(0) === '_') return;
+            var to = typeof subject[issue];
+            if (to === 'function' || to === 'undefined') return;
+            analysis += issue;
+            psychoAnalyze(subject[issue], session + 1);
+        });
+    }
+    psychoAnalyze(subject, 0);
+    return analysis;
+}
+
+// vim: set softtabstop=4 shiftwidth=4:
diff --git a/deps/npm/node_modules/minimatch/node_modules/sigmund/test/basic.js b/deps/npm/node_modules/minimatch/node_modules/sigmund/test/basic.js
new file mode 100644 (file)
index 0000000..50c53a1
--- /dev/null
@@ -0,0 +1,24 @@
+var test = require('tap').test
+var sigmund = require('../sigmund.js')
+
+
+// occasionally there are duplicates
+// that's an acceptable edge-case.  JSON.stringify and util.inspect
+// have some collision potential as well, though less, and collision
+// detection is expensive.
+var hash = '{abc/def/g{0h1i2{jkl'
+var obj1 = {a:'b',c:/def/,g:['h','i',{j:'',k:'l'}]}
+var obj2 = {a:'b',c:'/def/',g:['h','i','{jkl']}
+
+var obj3 = JSON.parse(JSON.stringify(obj1))
+obj3.c = /def/
+obj3.g[2].cycle = obj3
+var cycleHash = '{abc/def/g{0h1i2{jklcycle'
+
+test('basic', function (t) {
+    t.equal(sigmund(obj1), hash)
+    t.equal(sigmund(obj2), hash)
+    t.equal(sigmund(obj3), cycleHash)
+    t.end()
+})
+
index e654786e72eb6f1cc907c9be95e6093a1684a510..f6a214e32e5306cc1d303c488ad04f3dfe73845f 100644 (file)
@@ -6,7 +6,7 @@
   },
   "name": "minimatch",
   "description": "a glob matcher in javascript",
-  "version": "0.2.8",
+  "version": "0.2.9",
   "repository": {
     "type": "git",
     "url": "git://github.com/isaacs/minimatch.git"
@@ -19,7 +19,8 @@
     "node": "*"
   },
   "dependencies": {
-    "lru-cache": "~2.0.0"
+    "lru-cache": "~2.0.0",
+    "sigmund": "~1.0.0"
   },
   "devDependencies": {
     "tap": ""
@@ -30,6 +31,6 @@
   },
   "readme": "# minimatch\n\nA minimal matching utility.\n\n[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)\n\n\nThis is the matching library used internally by npm.\n\nEventually, it will replace the C binding in node-glob.\n\nIt works by converting glob expressions into JavaScript `RegExp`\nobjects.\n\n## Usage\n\n```javascript\nvar minimatch = require(\"minimatch\")\n\nminimatch(\"bar.foo\", \"*.foo\") // true!\nminimatch(\"bar.foo\", \"*.bar\") // false!\n```\n\n## Features\n\nSupports these glob features:\n\n* Brace Expansion\n* Extended glob matching\n* \"Globstar\" `**` matching\n\nSee:\n\n* `man sh`\n* `man bash`\n* `man 3 fnmatch`\n* `man 5 gitignore`\n\n### Comparisons to other fnmatch/glob implementations\n\nWhile strict compliance with the existing standards is a worthwhile\ngoal, some discrepancies exist between minimatch and other\nimplementations, and are intentional.\n\nIf the pattern starts with a `!` character, then it is negated.  Set the\n`nonegate` flag to suppress this behavior, and treat leading `!`\ncharacters normally.  This is perhaps relevant if you wish to start the\npattern with a negative extglob pattern like `!(a|B)`.  Multiple `!`\ncharacters at the start of a pattern will negate the pattern multiple\ntimes.\n\nIf a pattern starts with `#`, then it is treated as a comment, and\nwill not match anything.  Use `\\#` to match a literal `#` at the\nstart of a line, or set the `nocomment` flag to suppress this behavior.\n\nThe double-star character `**` is supported by default, unless the\n`noglobstar` flag is set.  This is supported in the manner of bsdglob\nand bash 4.1, where `**` only has special significance if it is the only\nthing in a path part.  That is, `a/**/b` will match `a/x/y/b`, but\n`a/**b` will not.  **Note that this is different from the way that `**` is\nhandled by ruby's `Dir` class.**\n\nIf an escaped pattern has no matches, and the `nonull` flag is set,\nthen minimatch.match returns the pattern as-provided, rather than\ninterpreting the character escapes.  For example,\n`minimatch.match([], \"\\\\*a\\\\?\")` will return `\"\\\\*a\\\\?\"` rather than\n`\"*a?\"`.  This is akin to setting the `nullglob` option in bash, except\nthat it does not resolve escaped pattern characters.\n\nIf brace expansion is not disabled, then it is performed before any\nother interpretation of the glob pattern.  Thus, a pattern like\n`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded\n**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are\nchecked for validity.  Since those two are valid, matching proceeds.\n\n\n## Minimatch Class\n\nCreate a minimatch object by instanting the `minimatch.Minimatch` class.\n\n```javascript\nvar Minimatch = require(\"minimatch\").Minimatch\nvar mm = new Minimatch(pattern, options)\n```\n\n### Properties\n\n* `pattern` The original pattern the minimatch object represents.\n* `options` The options supplied to the constructor.\n* `set` A 2-dimensional array of regexp or string expressions.\n  Each row in the\n  array corresponds to a brace-expanded pattern.  Each item in the row\n  corresponds to a single path-part.  For example, the pattern\n  `{a,b/c}/d` would expand to a set of patterns like:\n\n        [ [ a, d ]\n        , [ b, c, d ] ]\n\n    If a portion of the pattern doesn't have any \"magic\" in it\n    (that is, it's something like `\"foo\"` rather than `fo*o?`), then it\n    will be left as a string rather than converted to a regular\n    expression.\n\n* `regexp` Created by the `makeRe` method.  A single regular expression\n  expressing the entire pattern.  This is useful in cases where you wish\n  to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.\n* `negate` True if the pattern is negated.\n* `comment` True if the pattern is a comment.\n* `empty` True if the pattern is `\"\"`.\n\n### Methods\n\n* `makeRe` Generate the `regexp` member if necessary, and return it.\n  Will return `false` if the pattern is invalid.\n* `match(fname)` Return true if the filename matches the pattern, or\n  false otherwise.\n* `matchOne(fileArray, patternArray, partial)` Take a `/`-split\n  filename, and match it against a single row in the `regExpSet`.  This\n  method is mainly for internal use, but is exposed so that it can be\n  used by a glob-walker that needs to avoid excessive filesystem calls.\n\nAll other methods are internal, and will be called as necessary.\n\n## Functions\n\nThe top-level exported function has a `cache` property, which is an LRU\ncache set to store 100 items.  So, calling these methods repeatedly\nwith the same pattern and options will use the same Minimatch object,\nsaving the cost of parsing it multiple times.\n\n### minimatch(path, pattern, options)\n\nMain export.  Tests a path against the pattern using the options.\n\n```javascript\nvar isJS = minimatch(file, \"*.js\", { matchBase: true })\n```\n\n### minimatch.filter(pattern, options)\n\nReturns a function that tests its\nsupplied argument, suitable for use with `Array.filter`.  Example:\n\n```javascript\nvar javascripts = fileList.filter(minimatch.filter(\"*.js\", {matchBase: true}))\n```\n\n### minimatch.match(list, pattern, options)\n\nMatch against the list of\nfiles, in the style of fnmatch or glob.  If nothing is matched, and\noptions.nonull is set, then return a list containing the pattern itself.\n\n```javascript\nvar javascripts = minimatch.match(fileList, \"*.js\", {matchBase: true}))\n```\n\n### minimatch.makeRe(pattern, options)\n\nMake a regular expression object from the pattern.\n\n## Options\n\nAll options are `false` by default.\n\n### debug\n\nDump a ton of stuff to stderr.\n\n### nobrace\n\nDo not expand `{a,b}` and `{1..3}` brace sets.\n\n### noglobstar\n\nDisable `**` matching against multiple folder names.\n\n### dot\n\nAllow patterns to match filenames starting with a period, even if\nthe pattern does not explicitly have a period in that spot.\n\nNote that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`\nis set.\n\n### noext\n\nDisable \"extglob\" style patterns like `+(a|b)`.\n\n### nocase\n\nPerform a case-insensitive match.\n\n### nonull\n\nWhen a match is not found by `minimatch.match`, return a list containing\nthe pattern itself.  When set, an empty list is returned if there are\nno matches.\n\n### matchBase\n\nIf set, then patterns without slashes will be matched\nagainst the basename of the path if it contains slashes.  For example,\n`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.\n\n### nocomment\n\nSuppress the behavior of treating `#` at the start of a pattern as a\ncomment.\n\n### nonegate\n\nSuppress the behavior of treating a leading `!` character as negation.\n\n### flipNegate\n\nReturns from negate expressions the same as if they were not negated.\n(Ie, true on a hit, false on a miss.)\n",
   "readmeFilename": "README.md",
-  "_id": "minimatch@0.2.8",
+  "_id": "minimatch@0.2.9",
   "_from": "minimatch@~0.2.8"
 }
diff --git a/deps/npm/node_modules/node-gyp/.jshintrc b/deps/npm/node_modules/node-gyp/.jshintrc
new file mode 100644 (file)
index 0000000..dcbfbcc
--- /dev/null
@@ -0,0 +1,6 @@
+{
+  "asi": true,
+  "laxcomma": true,
+  "node": true,
+  "strict": false
+}
index 4185d1121a4e804a986235ca614320b7d2eac24b..9862728ba16712624711c97c98ae935a827f62fe 100644 (file)
@@ -38,7 +38,8 @@ You will also need to install:
   * On Windows:
     * [Python][windows-python] ([`v2.7.3`][windows-python-v2.7.3] recommended, `v3.x.x` is not supported)
     * Microsoft Visual C++ ([Express][msvc] version works well)
-      * For 64-bit builds of node and native modules you will _also_ need the [Windows 7 64-bit SDK][win7sdk]
+      * For 64-bit builds of node and native modules you will _**also**_ need the [Windows 7 64-bit SDK][win7sdk]
+      * If you get errors that the 64 bit compilers are not installed you may also need the [compiler update for the Windows SDK 7.1]
 
 How to Use
 ----------
@@ -150,3 +151,4 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 [windows-python-v2.7.3]: http://www.python.org/download/releases/2.7.3#download
 [msvc]: http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express
 [win7sdk]: http://www.microsoft.com/download/en/details.aspx?displayLang=en&id=8279
+[compiler update for the Windows SDK 7.1]: http://www.microsoft.com/en-us/download/details.aspx?id=4422
index 826c15d9a28aa28bf8e3cb5746c2b5ed337e865c..662188cc320a461f98e6d211895676ec1f431788 100644 (file)
@@ -11,6 +11,7 @@
     'target_conditions': [
       ['_type=="loadable_module"', {
         'product_extension': 'node',
+        'defines': [ 'BUILDING_NODE_EXTENSION' ],
       }]
     ],
 
index 26f5c4b991252ed6359fe57b94926b0b26183818..9e4c2bbad05434ac73be023be03330aa0066bc5d 100644 (file)
@@ -180,10 +180,6 @@ function build (gyp, argv, callback) {
     if (win) {
       // Turn off the Microsoft logo on Windows
       argv.push('/nologo')
-
-      // Fix "warning MSB8012: TargetExt(.dll) does not match
-      // the Linker's OutputFile property value (.node)"
-      argv.push('/property:TargetExt=.node')
     }
 
     // Specify the build type, Release by default
index 33906fabce356da4c0765854846c2a483a0c4bfd..44611dcd0bdbea33a8df987f0891c7afbcaa78d2 100644 (file)
@@ -26,14 +26,17 @@ function configure (gyp, argv, callback) {
   var python = gyp.opts.python || process.env.PYTHON || 'python'
     , buildDir = path.resolve('build')
     , hasVCExpress = false
+    , hasVC2012Express = false
     , hasWin71SDK = false
+    , hasWin8SDK = false
     , configPath
     , nodeDir
 
+
   if (win) {
     checkVCExpress(function () {
-      if (hasVCExpress) {
-        checkWin71SDK(function () {
+      if (hasVCExpress || hasVC2012Express) {
+        checkWinSDK(function () {
           checkPython()
         })
       } else {
@@ -106,14 +109,20 @@ function configure (gyp, argv, callback) {
   }
 
   function failNoPython () {
-    callback(new Error('Can\'t find Python executable "' + python
-          '", you can set the PYTHON env variable.'))
+    callback(new Error('Can\'t find Python executable "' + python +
+          '", you can set the PYTHON env variable.'))
   }
 
   function failPythonVersion (badVersion) {
-    callback(new Error('Python executable "' + python
-          + '" is v' + badVersion + ', which is not supported by gyp.\n'
-          + 'You can pass the --python switch to point to Python >= v2.5.0 & < 3.0.0.'))
+    callback(new Error('Python executable "' + python +
+          '" is v' + badVersion + ', which is not supported by gyp.\n' +
+          'You can pass the --python switch to point to Python >= v2.5.0 & < 3.0.0.'))
+  }
+
+  function checkWinSDK(cb) {
+    checkWin71SDK(function() {
+      checkWin8SDK(cb);
+    })
   }
 
   function checkWin71SDK(cb) {
@@ -124,11 +133,43 @@ function configure (gyp, argv, callback) {
          })
   }
 
+  function checkWin8SDK(cb) {
+    var cp = spawn('reg', ['query', 'HKLM\\Software\\Microsoft\\Windows Kits\\Installed Products', '/f', 'Windows Software Development Kit x86', '/reg:32'])
+    cp.on('exit', function (code) {
+      hasWin8SDK = (code === 0)
+      cb()
+    })
+  }
+
+  function checkVC2012Express64(cb) {
+    var cp = spawn('reg', ['query', 'HKLM\\SOFTWARE\\Wow6432Node\\Microsoft\\VCExpress\\11.0\\Setup\\VC', '/v', 'ProductDir'])
+    cp.on('exit', function (code) {
+      hasVC2012Express = (code === 0)
+      cb()
+    })
+  }
+
+  function checkVC2012Express(cb) {
+    var cp = spawn('reg', ['query', 'HKLM\\SOFTWARE\\Microsoft\\VCExpress\\11.0\\Setup\\VC', '/v', 'ProductDir'])
+    cp.on('exit', function (code) {
+      hasVC2012Express = (code === 0)
+      if (code !== 0) {
+        checkVC2012Express64(cb)
+      } else {
+        cb()
+      }
+    })
+  }
+
   function checkVCExpress64(cb) {
     var cp = spawn('cmd', ['/C', '%WINDIR%\\SysWOW64\\reg', 'query', 'HKLM\\Software\\Microsoft\\VCExpress\\10.0\\Setup\\VC', '/v', 'ProductDir'])
     cp.on('exit', function (code) {
       hasVCExpress = (code === 0)
-      cb()
+      if (code !== 0) {
+        checkVC2012Express(cb)
+      } else {
+        cb()
+      }
     })
   }
 
@@ -238,9 +279,13 @@ function configure (gyp, argv, callback) {
     // set the target_arch variable
     variables.target_arch = gyp.opts.arch || process.arch || 'ia32'
 
-    // set the toolset for 64-bit VCExpress users
-    if (win && variables.target_arch === 'x64' && hasVCExpress && hasWin71SDK) {
-      defaults.msbuild_toolset = 'Windows7.1SDK'
+    // set the toolset for VCExpress users
+    if (win) {
+      if (hasVC2012Express && hasWin8SDK) {
+        defaults.msbuild_toolset = 'v110'
+      } else if (hasVCExpress && hasWin71SDK) {
+        defaults.msbuild_toolset = 'Windows7.1SDK'
+      }
     }
 
     // set the node development directory
@@ -300,7 +345,7 @@ function configure (gyp, argv, callback) {
       if ('msvs_version' in gyp.opts) {
         argv.push('-G', 'msvs_version=' + gyp.opts.msvs_version)
       } else {
-        argv.push('-G', 'msvs_version=2010')
+        argv.push('-G', 'msvs_version=auto')
       }
     }
 
index a36b7a90dbda13f9e3aa97d14852ccdb325fdbf0..ad5ce87e4e598d055a89ac23236dd5aa0eee24c3 100644 (file)
@@ -10,7 +10,7 @@
     "bindings",
     "gyp"
   ],
-  "version": "0.7.1",
+  "version": "0.7.3",
   "installVersion": 9,
   "author": {
     "name": "Nathan Rajlich",
   "engines": {
     "node": ">= 0.6.0"
   },
-  "readme": "node-gyp\n=========\n### Node.js native addon build tool\n\n`node-gyp` is a cross-platform command-line tool written in Node.js for compiling\nnative addon modules for Node.js, which takes away the pain of dealing with the\nvarious differences in build platforms. It is the replacement to the `node-waf`\nprogram which is removed for node `v0.8`. If you have a native addon for node that\nstill has a `wscript` file, then you should definitely add a `binding.gyp` file\nto support the latest versions of node.\n\nMultiple target versions of node are supported (i.e. `0.6`, `0.7`,..., `1.0`,\netc.), regardless of what version of node is actually installed on your system\n(`node-gyp` downloads the necessary development files for the target version).\n\n#### Features:\n\n * Easy to use, consistent interface\n * Same commands to build your module on every platform\n * Supports multiple target versions of Node\n\n\nInstallation\n------------\n\nYou can install with `npm`:\n\n``` bash\n$ npm install -g node-gyp\n```\n\nYou will also need to install:\n\n  * On Unix:\n    * `python`\n    * `make`\n    * A proper C/C++ compiler toolchain, like GCC\n  * On Windows:\n    * [Python][windows-python] ([`v2.7.3`][windows-python-v2.7.3] recommended, `v3.x.x` is not supported)\n    * Microsoft Visual C++ ([Express][msvc] version works well)\n      * For 64-bit builds of node and native modules you will _also_ need the [Windows 7 64-bit SDK][win7sdk]\n\nHow to Use\n----------\n\nTo compile your native addon, first go to its root directory:\n\n``` bash\n$ cd my_node_addon\n```\n\nThe next step is to generate the appropriate project build files for the current\nplatform. Use `configure` for that:\n\n``` bash\n$ node-gyp configure\n```\n\n__Note__: The `configure` step looks for the `binding.gyp` file in the current\ndirectory to processs. See below for instructions on creating the `binding.gyp` file.\n\nNow you will have either a `Makefile` (on Unix platforms) or a `vcxproj` file\n(on Windows) in the `build/` directory. Next invoke the `build` command:\n\n``` bash\n$ node-gyp build\n```\n\nNow you have your compiled `.node` bindings file! The compiled bindings end up\nin `build/Debug/` or `build/Release/`, depending on the build mode. At this point\nyou can require the `.node` file with Node and run your tests!\n\n__Note:__ To create a _Debug_ build of the bindings file, pass the `--debug` (or\n`-d`) switch when running the either `configure` or `build` command.\n\n\nThe \"binding.gyp\" file\n----------------------\n\nPreviously when node had `node-waf` you had to write a `wscript` file. The\nreplacement for that is the `binding.gyp` file, which describes the configuration\nto build your module in a JSON-like format. This file gets placed in the root of\nyour package, alongside the `package.json` file.\n\nA barebones `gyp` file appropriate for building a node addon looks like:\n\n``` json\n{\n  \"targets\": [\n    {\n      \"target_name\": \"binding\",\n      \"sources\": [ \"src/binding.cc\" ]\n    }\n  ]\n}\n```\n\nSome additional resources for writing `gyp` files:\n\n * [\"Hello World\" node addon example](https://github.com/joyent/node/tree/master/test/addons/hello-world)\n * [gyp user documentation](http://code.google.com/p/gyp/wiki/GypUserDocumentation)\n * [gyp input format reference](http://code.google.com/p/gyp/wiki/InputFormatReference)\n * [*\"binding.gyp\" files out in the wild* wiki page](https://github.com/TooTallNate/node-gyp/wiki/%22binding.gyp%22-files-out-in-the-wild)\n\n\nCommands\n--------\n\n`node-gyp` responds to the following commands:\n\n| **Command**   | **Description**\n|:--------------|:---------------------------------------------------------------\n| `build`       | Invokes `make`/`msbuild.exe` and builds the native addon\n| `clean`       | Removes any the `build` dir if it exists\n| `configure`   | Generates project build files for the current platform\n| `rebuild`     | Runs \"clean\", \"configure\" and \"build\" all in a row\n| `install`     | Installs node development header files for the given version\n| `list`        | Lists the currently installed node development file versions\n| `remove`      | Removes the node development header files for the given version\n\n\nLicense\n-------\n\n(The MIT License)\n\nCopyright (c) 2012 Nathan Rajlich &lt;nathan@tootallnate.net&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n[windows-python]: http://www.python.org/getit/windows\n[windows-python-v2.7.3]: http://www.python.org/download/releases/2.7.3#download\n[msvc]: http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express\n[win7sdk]: http://www.microsoft.com/download/en/details.aspx?displayLang=en&id=8279\n",
+  "readme": "node-gyp\n=========\n### Node.js native addon build tool\n\n`node-gyp` is a cross-platform command-line tool written in Node.js for compiling\nnative addon modules for Node.js, which takes away the pain of dealing with the\nvarious differences in build platforms. It is the replacement to the `node-waf`\nprogram which is removed for node `v0.8`. If you have a native addon for node that\nstill has a `wscript` file, then you should definitely add a `binding.gyp` file\nto support the latest versions of node.\n\nMultiple target versions of node are supported (i.e. `0.6`, `0.7`,..., `1.0`,\netc.), regardless of what version of node is actually installed on your system\n(`node-gyp` downloads the necessary development files for the target version).\n\n#### Features:\n\n * Easy to use, consistent interface\n * Same commands to build your module on every platform\n * Supports multiple target versions of Node\n\n\nInstallation\n------------\n\nYou can install with `npm`:\n\n``` bash\n$ npm install -g node-gyp\n```\n\nYou will also need to install:\n\n  * On Unix:\n    * `python`\n    * `make`\n    * A proper C/C++ compiler toolchain, like GCC\n  * On Windows:\n    * [Python][windows-python] ([`v2.7.3`][windows-python-v2.7.3] recommended, `v3.x.x` is not supported)\n    * Microsoft Visual C++ ([Express][msvc] version works well)\n      * For 64-bit builds of node and native modules you will _**also**_ need the [Windows 7 64-bit SDK][win7sdk]\n      * If you get errors that the 64 bit compilers are not installed you may also need the [compiler update for the Windows SDK 7.1]\n\nHow to Use\n----------\n\nTo compile your native addon, first go to its root directory:\n\n``` bash\n$ cd my_node_addon\n```\n\nThe next step is to generate the appropriate project build files for the current\nplatform. Use `configure` for that:\n\n``` bash\n$ node-gyp configure\n```\n\n__Note__: The `configure` step looks for the `binding.gyp` file in the current\ndirectory to processs. See below for instructions on creating the `binding.gyp` file.\n\nNow you will have either a `Makefile` (on Unix platforms) or a `vcxproj` file\n(on Windows) in the `build/` directory. Next invoke the `build` command:\n\n``` bash\n$ node-gyp build\n```\n\nNow you have your compiled `.node` bindings file! The compiled bindings end up\nin `build/Debug/` or `build/Release/`, depending on the build mode. At this point\nyou can require the `.node` file with Node and run your tests!\n\n__Note:__ To create a _Debug_ build of the bindings file, pass the `--debug` (or\n`-d`) switch when running the either `configure` or `build` command.\n\n\nThe \"binding.gyp\" file\n----------------------\n\nPreviously when node had `node-waf` you had to write a `wscript` file. The\nreplacement for that is the `binding.gyp` file, which describes the configuration\nto build your module in a JSON-like format. This file gets placed in the root of\nyour package, alongside the `package.json` file.\n\nA barebones `gyp` file appropriate for building a node addon looks like:\n\n``` json\n{\n  \"targets\": [\n    {\n      \"target_name\": \"binding\",\n      \"sources\": [ \"src/binding.cc\" ]\n    }\n  ]\n}\n```\n\nSome additional resources for writing `gyp` files:\n\n * [\"Hello World\" node addon example](https://github.com/joyent/node/tree/master/test/addons/hello-world)\n * [gyp user documentation](http://code.google.com/p/gyp/wiki/GypUserDocumentation)\n * [gyp input format reference](http://code.google.com/p/gyp/wiki/InputFormatReference)\n * [*\"binding.gyp\" files out in the wild* wiki page](https://github.com/TooTallNate/node-gyp/wiki/%22binding.gyp%22-files-out-in-the-wild)\n\n\nCommands\n--------\n\n`node-gyp` responds to the following commands:\n\n| **Command**   | **Description**\n|:--------------|:---------------------------------------------------------------\n| `build`       | Invokes `make`/`msbuild.exe` and builds the native addon\n| `clean`       | Removes any the `build` dir if it exists\n| `configure`   | Generates project build files for the current platform\n| `rebuild`     | Runs \"clean\", \"configure\" and \"build\" all in a row\n| `install`     | Installs node development header files for the given version\n| `list`        | Lists the currently installed node development file versions\n| `remove`      | Removes the node development header files for the given version\n\n\nLicense\n-------\n\n(The MIT License)\n\nCopyright (c) 2012 Nathan Rajlich &lt;nathan@tootallnate.net&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n[windows-python]: http://www.python.org/getit/windows\n[windows-python-v2.7.3]: http://www.python.org/download/releases/2.7.3#download\n[msvc]: http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express\n[win7sdk]: http://www.microsoft.com/download/en/details.aspx?displayLang=en&id=8279\n[compiler update for the Windows SDK 7.1]: http://www.microsoft.com/en-us/download/details.aspx?id=4422\n",
   "readmeFilename": "README.md",
-  "_id": "node-gyp@0.7.1",
-  "dist": {
-    "shasum": "2c4c7f711c94bddbc801df5d43698cf0ceb33020"
-  },
-  "_from": "node-gyp@0.7.1"
+  "_id": "node-gyp@0.7.3",
+  "_from": "node-gyp@~0.7.1"
 }
index 60931bb712823d2d3ac4cfd8b6ae9fc75a0e2a8f..84815ca645fe2919356b0346838a6526a86277d9 100755 (executable)
@@ -33,7 +33,7 @@ var find = exports.find = function () {
       fs.statSync(file)
       return file
     } catch (err) {
-      if(start != '/')
+      if(path.dirname(start) !== start) // root
         return find(path.dirname(start), rel)
     }
   }
index 6ee30e7d292aa649ff11bdc5ef1b43ad2c44fa2a..c024863c96d391c106d598f361ff006aca292f75 100644 (file)
@@ -23,9 +23,7 @@
     "tap": "0"
   },
   "readme": "A list of objects, bound by their prototype chain.\n\nUsed in npm's config stuff.\n",
+  "readmeFilename": "README.md",
   "_id": "proto-list@1.2.2",
-  "dist": {
-    "shasum": "48b88798261ec2c4a785720cdfec6200d57d3326"
-  },
   "_from": "proto-list@~1.2.1"
 }
index df49b8da0cd600ef0f720c3dbb5ddff076c3d445..10e7227128e17977f4f2c588996c7e6d09b146e0 100644 (file)
@@ -1,6 +1,6 @@
 {
   "name": "config-chain",
-  "version": "1.1.2",
+  "version": "1.1.3",
   "description": "HANDLE CONFIGURATION ONCE AND FOR ALL",
   "homepage": "http://github.com/dominictarr/config-chain",
   "repository": {
@@ -23,9 +23,7 @@
     "test": "tap test/"
   },
   "readme": "#config-chain\n\nUSE THIS MODULE TO LOAD ALL YOUR CONFIGURATIONS\n\n``` js\n\n  //npm install config-chain\n\n  var cc = require('config-chain')\n    , opts = require('optimist').argv //ALWAYS USE OPTIMIST FOR COMMAND LINE OPTIONS.\n    , env = opts.env || process.env.YOUR_APP_ENV || 'dev' //SET YOUR ENV LIKE THIS.\n\n  // EACH ARG TO CONFIGURATOR IS LOADED INTO CONFIGURATION CHAIN\n  // EARLIER ITEMS OVERIDE LATER ITEMS\n  // PUTS COMMAND LINE OPTS FIRST, AND DEFAULTS LAST!\n\n  //strings are interpereted as filenames.\n  //will be loaded synchronously\n\n  var conf =\n  cc(\n    //OVERRIDE SETTINGS WITH COMMAND LINE OPTS\n    opts,\n\n    //ENV VARS IF PREFIXED WITH 'myApp_'\n\n    cc.env('myApp_'), //myApp_foo = 'like this'\n\n    //FILE NAMED BY ENV\n    path.join(__dirname,  'config.' + env + '.json'),\n\n    //IF `env` is PRODUCTION\n    env === 'prod'\n      ? path.join(__dirname, 'special.json') //load a special file\n      : null //NULL IS IGNORED!\n\n    //SUBDIR FOR ENV CONFIG\n    path.join(__dirname,  'config', env, 'config.json'),\n\n    //SEARCH PARENT DIRECTORIES FROM CURRENT DIR FOR FILE\n    cc.find('config.json'),\n\n    //PUT DEFAULTS LAST\n    {\n      host: 'localhost'\n      port: 8000\n    })\n\n  var host = conf.get('host')\n\n  // or\n\n  var host = conf.store.host\n\n```\n\nFINALLY, EASY FLEXIBLE CONFIGURATIONS!\n\n##see also: [proto-list](https://github.com/isaacs/proto-list/)\n\nWHATS THAT YOU SAY?\n\nYOU WANT A \"CLASS\" SO THAT YOU CAN DO CRAYCRAY JQUERY CRAPS?\n\nEXTEND WITH YOUR OWN FUNCTIONALTY!?\n\n## CONFIGCHAIN LIVES TO SERVE ONLY YOU!\n\n```javascript\nvar cc = require('config-chain')\n\n// all the stuff you did before\nvar config = cc({\n      some: 'object'\n    },\n    cc.find('config.json'),\n    cc.env('myApp_')\n  )\n  // CONFIGS AS A SERVICE, aka \"CaaS\", aka EVERY DEVOPS DREAM OMG!\n  .addUrl('http://configurator:1234/my-configs')\n  // ASYNC FTW!\n  .addFile('/path/to/file.json')\n\n  // OBJECTS ARE OK TOO, they're SYNC but they still ORDER RIGHT\n  // BECAUSE PROMISES ARE USED BUT NO, NOT *THOSE* PROMISES, JUST\n  // ACTUAL PROMISES LIKE YOU MAKE TO YOUR MOM, KEPT OUT OF LOVE\n  .add({ another: 'object' })\n\n  // DIE A THOUSAND DEATHS IF THIS EVER HAPPENS!!\n  .on('error', function (er) {\n    // IF ONLY THERE WAS SOMETHIGN HARDER THAN THROW\n    // MY SORROW COULD BE ADEQUATELY EXPRESSED.  /o\\\n    throw er\n  })\n\n  // THROW A PARTY IN YOUR FACE WHEN ITS ALL LOADED!!\n  .on('load', function (config) {\n    console.awesome('HOLY SHIT!')\n  })\n```\n\n# BORING API DOCS\n\n## cc(...args)\n\nMAKE A CHAIN AND ADD ALL THE ARGS.\n\nIf the arg is a STRING, then it shall be a JSON FILENAME.\n\nSYNC I/O!\n\nRETURN THE CHAIN!\n\n## cc.json(...args)\n\nJoin the args INTO A JSON FILENAME!\n\nSYNC I/O!\n\n## cc.find(relativePath)\n\nSEEK the RELATIVE PATH by climbing the TREE OF DIRECTORIES.\n\nRETURN THE FOUND PATH!\n\nSYNC I/O!\n\n## cc.parse(content, file, type)\n\nParse the content string, and guess the type from either the\nspecified type or the filename.\n\nRETURN THE RESULTING OBJECT!\n\nNO I/O!\n\n## cc.env(prefix, env=process.env)\n\nGet all the keys on the provided env object (or process.env) which are\nprefixed by the specified prefix, and put the values on a new object.\n\nRETURN THE RESULTING OBJECT!\n\nNO I/O!\n\n## cc.ConfigChain()\n\nThe ConfigChain class for CRAY CRAY JQUERY STYLE METHOD CHAINING!\n\nOne of these is returned by the main exported function, as well.\n\nIt inherits (prototypically) from\n[ProtoList](https://github.com/isaacs/proto-list/), and also inherits\n(parasitically) from\n[EventEmitter](http://nodejs.org/api/events.html#events_class_events_eventemitter)\n\nIt has all the methods from both, and except where noted, they are\nunchanged.\n\n### LET IT BE KNOWN THAT chain IS AN INSTANCE OF ConfigChain.\n\n## chain.sources\n\nA list of all the places where it got stuff.  The keys are the names\npassed to addFile or addUrl etc, and the value is an object with some\ninfo about the data source.\n\n## chain.addFile(filename, type, [name=filename])\n\nFilename is the name of the file.  Name is an arbitrary string to be\nused later if you desire.  Type is either 'ini' or 'json', and will\ntry to guess intelligently if omitted.\n\nLoaded files can be saved later.\n\n## chain.addUrl(url, type, [name=url])\n\nSame as the filename thing, but with a url.\n\nCan't be saved later.\n\n## chain.addEnv(prefix, env, [name='env'])\n\nAdd all the keys from the env object that start with the prefix.\n\n## chain.addString(data, file, type, [name])\n\nParse the string and add it to the set.  (Mainly used internally.)\n\n## chain.add(object, [name])\n\nAdd the object to the set.\n\n## chain.root {Object}\n\nThe root from which all the other config objects in the set descend\nprototypically.\n\nPut your defaults here.\n\n## chain.set(key, value, name)\n\nSet the key to the value on the named config object.  If name is\nunset, then set it on the first config object in the set.  (That is,\nthe one with the highest priority, which was added first.)\n\n## chain.get(key, [name])\n\nGet the key from the named config object explicitly, or from the\nresolved configs if not specified.\n\n## chain.save(name, type)\n\nWrite the named config object back to its origin.\n\nCurrently only supported for env and file config types.\n\nFor files, encode the data according to the type.\n\n## chain.on('save', function () {})\n\nWhen one or more files are saved, emits `save` event when they're all\nsaved.\n\n## chain.on('load', function (chain) {})\n\nWhen the config chain has loaded all the specified files and urls and\nsuch, the 'load' event fires.\n",
-  "_id": "config-chain@1.1.2",
-  "dist": {
-    "shasum": "7c82ca863fcf5d16ff3c62bd8b79400722d48671"
-  },
+  "readmeFilename": "readme.markdown",
+  "_id": "config-chain@1.1.3",
   "_from": "config-chain@~1.1.1"
 }
index 8d7bd42b6bb6f3ecfb83ce70186b1ca939bcf935..8a0e4d5f0b21327833d2057314ae9cdbc3979fe0 100644 (file)
@@ -36,6 +36,7 @@
   },
   "license": "BSD",
   "readme": "# npmconf\n\nThe config thing npm uses\n\nIf you are interested in interacting with the config settings that npm\nuses, then use this module.\n\nHowever, if you are writing a new Node.js program, and want\nconfiguration functionality similar to what npm has, but for your\nown thing, then I'd recommend using [rc](https://github.com/dominictarr/rc),\nwhich is probably what you want.\n\nIf I were to do it all over again, that's what I'd do for npm.  But,\nalas, there are many systems depending on many of the particulars of\nnpm's configuration setup, so it's not worth the cost of changing.\n\n## USAGE\n\n```javascript\nvar npmconf = require('npmconf')\n\n// pass in the cli options that you read from the cli\n// or whatever top-level configs you want npm to use for now.\nnpmconf.load({some:'configs'}, function (er, conf) {\n  // do stuff with conf\n  conf.get('some', 'cli') // 'configs'\n  conf.get('username') // 'joebobwhatevers'\n  conf.set('foo', 'bar', 'user')\n  conf.save('user', function (er) {\n    // foo = bar is now saved to ~/.npmrc or wherever\n  })\n})\n```\n",
+  "readmeFilename": "README.md",
   "_id": "npmconf@0.0.16",
-  "_from": "npmconf@latest"
+  "_from": "npmconf@0"
 }
index e723edbbe6288a0d8901ea016f0e8de8b8cb3faf..955b3108506eed5e2e42df106a78436ee61ed122 100644 (file)
@@ -1,6 +1,6 @@
 {
   "name": "read-package-json",
-  "version": "0.1.8",
+  "version": "0.1.11",
   "author": {
     "name": "Isaac Z. Schlueter",
     "email": "i@izs.me",
@@ -31,6 +31,7 @@
     "graceful-fs": "~1.1.8"
   },
   "readme": "# read-package-json\n\nThis is the thing that npm uses to read package.json files.  It\nvalidates some stuff, and loads some default things.\n\nIt keeps a cache of the files you've read, so that you don't end\nup reading the same package.json file multiple times.\n\nNote that if you just want to see what's literally in the package.json\nfile, you can usually do `var data = require('some-module/package.json')`.\n\nThis module is basically only needed by npm, but it's handy to see what\nnpm will see when it looks at your package.\n\n## Usage\n\n```javascript\nvar readJson = require('read-package-json')\n\nreadJson('/path/to/package.json', function (er, data) {\n  if (er) {\n    console.error(\"There was an error reading the file\")\n    return\n  }\n\n  console.error('the package data is', data)\n}\n```\n\n## readJson(file, cb)\n\n* `file` {String} The path to the package.json file\n* `cb` {Function}\n\nReads the JSON file and does the things.\n\n## `package.json` Fields\n\nSee `man 5 package.json` or `npm help json`.\n\n## readJson.log\n\nBy default this is a reference to the `npmlog` module.  But if that\nmodule can't be found, then it'll be set to just a dummy thing that does\nnothing.\n\nReplace with your own `{log,warn,error}` object for fun loggy time.\n\n## readJson.extras(file, data, cb)\n\nRun all the extra stuff relative to the file, with the parsed data.\n\nModifies the data as it does stuff.  Calls the cb when it's done.\n\n## readJson.extraSet = [fn, fn, ...]\n\nArray of functions that are called by `extras`.  Each one receives the\narguments `fn(file, data, cb)` and is expected to call `cb(er, data)`\nwhen done or when an error occurs.\n\nOrder is indeterminate, so each function should be completely\nindependent.\n\nMix and match!\n\n## readJson.cache\n\nThe `lru-cache` object that readJson uses to not read the same file over\nand over again.  See\n[lru-cache](https://github.com/isaacs/node-lru-cache) for details.\n\n## Other Relevant Files Besides `package.json`\n\nSome other files have an effect on the resulting data object, in the\nfollowing ways:\n\n### `README?(.*)`\n\nIf there is a `README` or `README.*` file present, then npm will attach\na `readme` field to the data with the contents of this file.\n\nOwing to the fact that roughly 100% of existing node modules have\nMarkdown README files, it will generally be assumed to be Markdown,\nregardless of the extension.  Please plan accordingly.\n\n### `server.js`\n\nIf there is a `server.js` file, and there is not already a\n`scripts.start` field, then `scripts.start` will be set to `node\nserver.js`.\n\n### `AUTHORS`\n\nIf there is not already a `contributors` field, then the `contributors`\nfield will be set to the contents of the `AUTHORS` file, split by lines,\nand parsed.\n\n### `bindings.gyp`\n\nIf a bindings.gyp file exists, and there is not already a\n`scripts.install` field, then the `scripts.install` field will be set to\n`node-gyp rebuild`.\n\n### `wscript`\n\nIf a wscript file exists, and there is not already a `scripts.install`\nfield, then the `scripts.install` field will be set to `node-waf clean ;\nnode-waf configure build`.\n\nNote that the `bindings.gyp` file supercedes this, since node-waf has\nbeen deprecated in favor of node-gyp.\n\n### `index.js`\n\nIf the json file does not exist, but there is a `index.js` file\npresent instead, and that file has a package comment, then it will try\nto parse the package comment, and use that as the data instead.\n\nA package comment looks like this:\n\n```javascript\n/**package\n * { \"name\": \"my-bare-module\"\n * , \"version\": \"1.2.3\"\n * , \"description\": \"etc....\" }\n **/\n\n// or...\n\n/**package\n{ \"name\": \"my-bare-module\"\n, \"version\": \"1.2.3\"\n, \"description\": \"etc....\" }\n**/\n```\n\nThe important thing is that it starts with `/**package`, and ends with\n`**/`.  If the package.json file exists, then the index.js is not\nparsed.\n\n### `{directories.man}/*.[0-9]`\n\nIf there is not already a `man` field defined as an array of files or a\nsingle file, and\nthere is a `directories.man` field defined, then that directory will\nbe searched for manpages.\n\nAny valid manpages found in that directory will be assigned to the `man`\narray, and installed in the appropriate man directory at package install\ntime, when installed globally on a Unix system.\n\n### `{directories.bin}/*`\n\nIf there is not already a `bin` field defined as a string filename or a\nhash of `<name> : <filename>` pairs, then the `directories.bin`\ndirectory will be searched and all the files within it will be linked as\nexecutables at install time.\n\nWhen installing locally, npm links bins into `node_modules/.bin`, which\nis in the `PATH` environ when npm runs scripts.  When\ninstalling globally, they are linked into `{prefix}/bin`, which is\npresumably in the `PATH` environment variable.\n",
-  "_id": "read-package-json@0.1.8",
-  "_from": "read-package-json@~0.1.7"
+  "readmeFilename": "README.md",
+  "_id": "read-package-json@0.1.11",
+  "_from": "read-package-json@~0.1.8"
 }
index b916d757579a2d3e7d12df6436961ddae9af8c08..9639acf43b31c6feea80eee309a447ea05b21592 100644 (file)
@@ -29,7 +29,16 @@ var asyncMap = slide.asyncMap
 var semver = require("semver")
 
 // put more stuff on here to customize.
-readJson.extraSet = [gypfile, wscript, serverjs, authors, readme, mans, bins]
+readJson.extraSet = [
+                gypfile,
+                wscript,
+                serverjs,
+                authors,
+                readme,
+                mans,
+                bins,
+                githead
+]
 
 var typoWarned = {}
 // http://registry.npmjs.org/-/fields
@@ -80,6 +89,18 @@ function readJson_ (file, cb) {
                 })
 }
 
+
+function stripBOM(content) {
+                // Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
+                // because the buffer-to-string conversion in `fs.readFileSync()`
+                // translates it to FEFF, the UTF-16 BOM.
+                if (content.charCodeAt(0) === 0xFEFF) {
+                                content = content.slice(1);
+                }
+                return content;
+}
+
+
 function parseJson (file, er, d, cb) {
                 if (er && er.code === "ENOENT") {
                                 indexjs(file, er, cb)
@@ -87,7 +108,7 @@ function parseJson (file, er, d, cb) {
                 }
                 if (er) return cb(er);
                 try {
-                                d = JSON.parse(d)
+                                d = JSON.parse(stripBOM(d))
                 } catch (er) {
                                 d = parseIndex(d)
                                 if (!d) return cb(parseError(er, file));
@@ -291,6 +312,29 @@ function bins_ (file, data, bins, cb) {
                 return cb(null, data)
 }
 
+function githead (file, data, cb) {
+                if (data.gitHead) return cb(null, data);
+                var dir = path.dirname(file)
+                var head = path.resolve(dir, '.git/HEAD')
+                fs.readFile(head, 'utf8', function (er, head) {
+                                if (er) return cb(null, data);
+                                githead_(file, data, dir, head, cb)
+                })
+}
+function githead_ (file, data, dir, head, cb) {
+                if (!head.match(/^ref: /)) {
+                                data.gitHead = head.trim()
+                                return cb(null, data)
+                }
+                var headFile = head.replace(/^ref: /, '').trim()
+                headFile = path.resolve(dir, '.git', headFile)
+                fs.readFile(headFile, 'utf8', function (er, head) {
+                                head = head.replace(/^ref: /, '').trim()
+                                data.gitHead = head
+                                return cb(null, data)
+                })
+}
+
 function final (file, data, cb) {
                 var ret = validName(file, data)
                 if (ret !== true) return cb(ret);
index 977faaa7a22d0917ff8b1cae485ce622a02e7599..8590f23c07a1d1b907e8b3279b4e6f02ccf82b30 100644 (file)
@@ -5,6 +5,13 @@ var path = require("path")
 var fs = require("fs")
 var readme = fs.readFileSync(path.resolve(__dirname, "../README.md"), "utf8")
 var package = require("../package.json")
+var isGit
+try {
+                fs.readFileSync(path.resolve(__dirname, '../.git/HEAD'));
+                isGit = true
+} catch (e) {
+                isGit = false
+}
 
 console.error("basic test")
 tap.test("basic test", function (t) {
@@ -25,6 +32,8 @@ function basic_ (t, data) {
                 t.equal(data.main, package.main)
                 t.equal(data.readmeFilename, 'README.md')
 
+                if (isGit) t.similar(data.gitHead, /^[a-f0-9]{40}$/);
+
                 // optional deps are folded in.
                 t.deepEqual(data.optionalDependencies,
                             package.optionalDependencies)
diff --git a/deps/npm/node_modules/read-package-json/test/bom.js b/deps/npm/node_modules/read-package-json/test/bom.js
new file mode 100644 (file)
index 0000000..33c4f4a
--- /dev/null
@@ -0,0 +1,19 @@
+// vim: set softtabstop=16 shiftwidth=16:
+var tap = require("tap")
+var readJson = require("../")
+var path = require("path")
+var fs = require("fs")
+
+console.error("BOM test")
+tap.test("BOM test", function (t) {
+                var p = path.resolve(__dirname, "fixtures/bom.json")
+                readJson(p, function (er, data) {
+                                if (er) throw er;
+                                p = path.resolve(__dirname, "fixtures/nobom.json")
+                                readJson(p, function (er, data2) {
+                                                if (er) throw er;
+                                                t.deepEqual(data, data2)
+                                                t.end()
+                                })
+                })
+})
diff --git a/deps/npm/node_modules/read-package-json/test/fixtures/bom.json b/deps/npm/node_modules/read-package-json/test/fixtures/bom.json
new file mode 100644 (file)
index 0000000..1beddca
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "name": "this",
+    "description": "file",
+    "author": "has <filename>",
+    "version" : "0.0.1"
+}
\ No newline at end of file
diff --git a/deps/npm/node_modules/read-package-json/test/fixtures/nobom.json b/deps/npm/node_modules/read-package-json/test/fixtures/nobom.json
new file mode 100644 (file)
index 0000000..f0ea897
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "name": "this",
+    "description": "file",
+    "author": "has <filename>",
+    "version" : "0.0.1"
+}
\ No newline at end of file
index 6fa37a3d89c5c53629b88366da918267fb6daa0a..a964c4faafda0ce1472a97d07668d0840bb60c4e 100644 (file)
@@ -5,8 +5,8 @@ semver(1) -- The semantic versioner for npm
 
     $ npm install semver
 
-    semver.valid('1.2.3') // true
-    semver.valid('a.b.c') // false
+    semver.valid('1.2.3') // '1.2.3'
+    semver.valid('a.b.c') // null
     semver.clean('  =v1.2.3   ') // '1.2.3'
     semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true
     semver.gt('1.2.3', '9.8.7') // false
index 3e6afb40d8af8fa7282baf21dd91bb843e4aa49d..d4e637e698d914dc778dbf0b344a915e365bbcac 100755 (executable)
@@ -33,6 +33,7 @@ function main () {
   }
 
   versions = versions.filter(semver.valid)
+  if (!versions.length) return fail()
   for (var i = 0, l = range.length; i < l ; i ++) {
     versions = versions.filter(function (v) {
       return semver.satisfies(v, range[i])
index da4f78b2ce9303625109c819c61dec546d47e233..f8abc45aaab2bb2c9329cc6c184a4b32c0d26371 100644 (file)
@@ -1,6 +1,6 @@
 {
   "name": "semver",
-  "version": "1.1.0",
+  "version": "1.1.1",
   "description": "The semantic version parser used by npm.",
   "main": "semver.js",
   "scripts": {
@@ -20,7 +20,8 @@
   "bin": {
     "semver": "./bin/semver"
   },
-  "readme": "semver(1) -- The semantic versioner for npm\n===========================================\n\n## Usage\n\n    $ npm install semver\n\n    semver.valid('1.2.3') // true\n    semver.valid('a.b.c') // false\n    semver.clean('  =v1.2.3   ') // '1.2.3'\n    semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true\n    semver.gt('1.2.3', '9.8.7') // false\n    semver.lt('1.2.3', '9.8.7') // true\n\nAs a command-line utility:\n\n    $ semver -h\n\n    Usage: semver -v <version> [-r <range>]\n    Test if version(s) satisfy the supplied range(s),\n    and sort them.\n\n    Multiple versions or ranges may be supplied.\n\n    Program exits successfully if any valid version satisfies\n    all supplied ranges, and prints all satisfying versions.\n\n    If no versions are valid, or ranges are not satisfied,\n    then exits failure.\n\n    Versions are printed in ascending order, so supplying\n    multiple versions to the utility will just sort them.\n\n## Versions\n\nA version is the following things, in this order:\n\n* a number (Major)\n* a period\n* a number (minor)\n* a period\n* a number (patch)\n* OPTIONAL: a hyphen, followed by a number (build)\n* OPTIONAL: a collection of pretty much any non-whitespace characters\n  (tag)\n\nA leading `\"=\"` or `\"v\"` character is stripped off and ignored.\n\n## Comparisons\n\nThe ordering of versions is done using the following algorithm, given\ntwo versions and asked to find the greater of the two:\n\n* If the majors are numerically different, then take the one\n  with a bigger major number. `2.3.4 > 1.3.4`\n* If the minors are numerically different, then take the one\n  with the bigger minor number. `2.3.4 > 2.2.4`\n* If the patches are numerically different, then take the one with the\n  bigger patch number. `2.3.4 > 2.3.3`\n* If only one of them has a build number, then take the one with the\n  build number.  `2.3.4-0 > 2.3.4`\n* If they both have build numbers, and the build numbers are numerically\n  different, then take the one with the bigger build number.\n  `2.3.4-10 > 2.3.4-9`\n* If only one of them has a tag, then take the one without the tag.\n  `2.3.4 > 2.3.4-beta`\n* If they both have tags, then take the one with the lexicographically\n  larger tag.  `2.3.4-beta > 2.3.4-alpha`\n* At this point, they're equal.\n\n## Ranges\n\nThe following range styles are supported:\n\n* `>1.2.3` Greater than a specific version.\n* `<1.2.3` Less than\n* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4`\n* `~1.2.3` := `>=1.2.3 <1.3.0`\n* `~1.2` := `>=1.2.0 <2.0.0`\n* `~1` := `>=1.0.0 <2.0.0`\n* `1.2.x` := `>=1.2.0 <1.3.0`\n* `1.x` := `>=1.0.0 <2.0.0`\n\nRanges can be joined with either a space (which implies \"and\") or a\n`||` (which implies \"or\").\n\n## Functions\n\n* valid(v): Return the parsed version, or null if it's not valid.\n* inc(v, release): Return the version incremented by the release type\n  (major, minor, patch, or build), or null if it's not valid.\n\n### Comparison\n\n* gt(v1, v2): `v1 > v2`\n* gte(v1, v2): `v1 >= v2`\n* lt(v1, v2): `v1 < v2`\n* lte(v1, v2): `v1 <= v2`\n* eq(v1, v2): `v1 == v2` This is true if they're logically equivalent,\n  even if they're not the exact same string.  You already know how to\n  compare strings.\n* neq(v1, v2): `v1 != v2` The opposite of eq.\n* cmp(v1, comparator, v2): Pass in a comparison string, and it'll call\n  the corresponding function above.  `\"===\"` and `\"!==\"` do simple\n  string comparison, but are included for completeness.  Throws if an\n  invalid comparison string is provided.\n* compare(v1, v2): Return 0 if v1 == v2, or 1 if v1 is greater, or -1 if\n  v2 is greater.  Sorts in ascending order if passed to Array.sort().\n* rcompare(v1, v2): The reverse of compare.  Sorts an array of versions\n  in descending order when passed to Array.sort().\n\n\n### Ranges\n\n* validRange(range): Return the valid range or null if it's not valid\n* satisfies(version, range): Return true if the version satisfies the\n  range.\n* maxSatisfying(versions, range): Return the highest version in the list\n  that satisfies the range, or null if none of them do.\n",
-  "_id": "semver@1.1.0",
-  "_from": "semver@latest"
+  "readme": "semver(1) -- The semantic versioner for npm\n===========================================\n\n## Usage\n\n    $ npm install semver\n\n    semver.valid('1.2.3') // '1.2.3'\n    semver.valid('a.b.c') // null\n    semver.clean('  =v1.2.3   ') // '1.2.3'\n    semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true\n    semver.gt('1.2.3', '9.8.7') // false\n    semver.lt('1.2.3', '9.8.7') // true\n\nAs a command-line utility:\n\n    $ semver -h\n\n    Usage: semver -v <version> [-r <range>]\n    Test if version(s) satisfy the supplied range(s),\n    and sort them.\n\n    Multiple versions or ranges may be supplied.\n\n    Program exits successfully if any valid version satisfies\n    all supplied ranges, and prints all satisfying versions.\n\n    If no versions are valid, or ranges are not satisfied,\n    then exits failure.\n\n    Versions are printed in ascending order, so supplying\n    multiple versions to the utility will just sort them.\n\n## Versions\n\nA version is the following things, in this order:\n\n* a number (Major)\n* a period\n* a number (minor)\n* a period\n* a number (patch)\n* OPTIONAL: a hyphen, followed by a number (build)\n* OPTIONAL: a collection of pretty much any non-whitespace characters\n  (tag)\n\nA leading `\"=\"` or `\"v\"` character is stripped off and ignored.\n\n## Comparisons\n\nThe ordering of versions is done using the following algorithm, given\ntwo versions and asked to find the greater of the two:\n\n* If the majors are numerically different, then take the one\n  with a bigger major number. `2.3.4 > 1.3.4`\n* If the minors are numerically different, then take the one\n  with the bigger minor number. `2.3.4 > 2.2.4`\n* If the patches are numerically different, then take the one with the\n  bigger patch number. `2.3.4 > 2.3.3`\n* If only one of them has a build number, then take the one with the\n  build number.  `2.3.4-0 > 2.3.4`\n* If they both have build numbers, and the build numbers are numerically\n  different, then take the one with the bigger build number.\n  `2.3.4-10 > 2.3.4-9`\n* If only one of them has a tag, then take the one without the tag.\n  `2.3.4 > 2.3.4-beta`\n* If they both have tags, then take the one with the lexicographically\n  larger tag.  `2.3.4-beta > 2.3.4-alpha`\n* At this point, they're equal.\n\n## Ranges\n\nThe following range styles are supported:\n\n* `>1.2.3` Greater than a specific version.\n* `<1.2.3` Less than\n* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4`\n* `~1.2.3` := `>=1.2.3 <1.3.0`\n* `~1.2` := `>=1.2.0 <2.0.0`\n* `~1` := `>=1.0.0 <2.0.0`\n* `1.2.x` := `>=1.2.0 <1.3.0`\n* `1.x` := `>=1.0.0 <2.0.0`\n\nRanges can be joined with either a space (which implies \"and\") or a\n`||` (which implies \"or\").\n\n## Functions\n\n* valid(v): Return the parsed version, or null if it's not valid.\n* inc(v, release): Return the version incremented by the release type\n  (major, minor, patch, or build), or null if it's not valid.\n\n### Comparison\n\n* gt(v1, v2): `v1 > v2`\n* gte(v1, v2): `v1 >= v2`\n* lt(v1, v2): `v1 < v2`\n* lte(v1, v2): `v1 <= v2`\n* eq(v1, v2): `v1 == v2` This is true if they're logically equivalent,\n  even if they're not the exact same string.  You already know how to\n  compare strings.\n* neq(v1, v2): `v1 != v2` The opposite of eq.\n* cmp(v1, comparator, v2): Pass in a comparison string, and it'll call\n  the corresponding function above.  `\"===\"` and `\"!==\"` do simple\n  string comparison, but are included for completeness.  Throws if an\n  invalid comparison string is provided.\n* compare(v1, v2): Return 0 if v1 == v2, or 1 if v1 is greater, or -1 if\n  v2 is greater.  Sorts in ascending order if passed to Array.sort().\n* rcompare(v1, v2): The reverse of compare.  Sorts an array of versions\n  in descending order when passed to Array.sort().\n\n\n### Ranges\n\n* validRange(range): Return the valid range or null if it's not valid\n* satisfies(version, range): Return true if the version satisfies the\n  range.\n* maxSatisfying(versions, range): Return the highest version in the list\n  that satisfies the range, or null if none of them do.\n",
+  "readmeFilename": "README.md",
+  "_id": "semver@1.1.1",
+  "_from": "semver@~1.1.0"
 }
diff --git a/deps/npm/node_modules/tar/LICENCE b/deps/npm/node_modules/tar/LICENCE
new file mode 100644 (file)
index 0000000..74489e2
--- /dev/null
@@ -0,0 +1,25 @@
+Copyright (c) Isaac Z. Schlueter
+All rights reserved.
+
+The BSD License
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
diff --git a/deps/npm/node_modules/tar/examples/extracter.js b/deps/npm/node_modules/tar/examples/extracter.js
new file mode 100644 (file)
index 0000000..e150abf
--- /dev/null
@@ -0,0 +1,11 @@
+var tar = require("../tar.js")
+  , fs = require("fs")
+
+fs.createReadStream(__dirname + "/../test/fixtures/c.tar")
+  .pipe(tar.Extract({ path: __dirname + "/extract" }))
+  .on("error", function (er) {
+    console.error("error here")
+  })
+  .on("end", function () {
+    console.error("done")
+  })
diff --git a/deps/npm/node_modules/tar/examples/reader.js b/deps/npm/node_modules/tar/examples/reader.js
new file mode 100644 (file)
index 0000000..39f3f08
--- /dev/null
@@ -0,0 +1,36 @@
+var tar = require("../tar.js")
+  , fs = require("fs")
+
+fs.createReadStream(__dirname + "/../test/fixtures/c.tar")
+  .pipe(tar.Parse())
+  .on("extendedHeader", function (e) {
+    console.error("extended pax header", e.props)
+    e.on("end", function () {
+      console.error("extended pax fields:", e.fields)
+    })
+  })
+  .on("ignoredEntry", function (e) {
+    console.error("ignoredEntry?!?", e.props)
+  })
+  .on("longLinkpath", function (e) {
+    console.error("longLinkpath entry", e.props)
+    e.on("end", function () {
+      console.error("value=%j", e.body.toString())
+    })
+  })
+  .on("longPath", function (e) {
+    console.error("longPath entry", e.props)
+    e.on("end", function () {
+      console.error("value=%j", e.body.toString())
+    })
+  })
+  .on("entry", function (e) {
+    console.error("entry", e.props)
+    e.on("data", function (c) {
+      console.error("  >>>" + c.toString().replace(/\n/g, "\\n"))
+    })
+    e.on("end", function () {
+      console.error("  <<<EOF")
+    })
+  })
+
index 4fc331eb9422b12e1f52109764cae423ae2b45a3..df72313bca09cefdf91b1b96ee0d099aa6e737aa 100644 (file)
@@ -105,7 +105,7 @@ inherits(Entry, Stream,
     this._reading = true
 
     // have any data to emit?
-    if (this._index < this._queueLen) {
+    while (this._index < this._queueLen && !this._paused) {
       var chunk = this._queue[this._index ++]
       this.emit("data", chunk)
     }
index ed44686c851c2c74d89ab0ea2e89a9584c869e9f..3ff14dd695100e40b8686f072ab8139bd096df54 100644 (file)
@@ -134,19 +134,22 @@ Pack.prototype._process = function () {
   var root = path.dirname((entry.root || entry).path)
   var wprops = {}
 
-  Object.keys(entry.props).forEach(function (k) {
+  Object.keys(entry.props || {}).forEach(function (k) {
     wprops[k] = entry.props[k]
   })
 
   if (me._noProprietary) wprops.noProprietary = true
 
-  wprops.path = path.relative(root, entry.path)
+  wprops.path = path.relative(root, entry.path || '')
 
   // actually not a matter of opinion or taste.
   if (process.platform === "win32") {
     wprops.path = wprops.path.replace(/\\/g, "/")
   }
 
+  if (!wprops.type)
+    wprops.type = 'Directory'
+
   switch (wprops.type) {
     // sockets not supported
     case "Socket":
@@ -156,11 +159,13 @@ Pack.prototype._process = function () {
       wprops.path += "/"
       wprops.size = 0
       break
+
     case "Link":
       var lp = path.resolve(path.dirname(entry.path), entry.linkpath)
       wprops.linkpath = path.relative(root, lp) || "."
       wprops.size = 0
       break
+
     case "SymbolicLink":
       var lp = path.resolve(path.dirname(entry.path), entry.linkpath)
       wprops.linkpath = path.relative(path.dirname(entry.path), lp) || "."
index 849d0d69180bc189ea9f8a221846d6d24a3eb4f6..702192c043d32cad2d39e8f8ae92c19d02f94622 100644 (file)
@@ -6,7 +6,7 @@
   },
   "name": "tar",
   "description": "tar for node",
-  "version": "0.1.13",
+  "version": "0.1.14",
   "repository": {
     "type": "git",
     "url": "git://github.com/isaacs/node-tar.git"
     "tap": "0.x",
     "rimraf": "1.x"
   },
-  "_npmUser": {
-    "name": "isaacs",
-    "email": "i@izs.me"
-  },
-  "_id": "tar@0.1.13",
-  "optionalDependencies": {},
-  "_engineSupported": true,
-  "_npmVersion": "1.1.4",
-  "_nodeVersion": "v0.7.6-pre",
-  "_defaultsLoaded": true,
-  "dist": {
-    "shasum": "804bdaaacaab928ec1c9bbd8b848a042c3adacb2"
-  },
-  "_from": "tar@0.1.13"
+  "license": "BSD",
+  "readme": "# node-tar\n\nTar for Node.js.\n\n## Goals of this project\n\n1. Be able to parse and reasonably extract the contents of any tar file\n   created by any program that creates tar files, period.\n\n    At least, this includes every version of:\n\n    * bsdtar\n    * gnutar\n    * solaris posix tar\n    * Joerg Schilling's star (\"Schilly tar\")\n\n2. Create tar files that can be extracted by any of the following tar\n   programs:\n\n    * bsdtar/libarchive version 2.6.2\n    * gnutar 1.15 and above\n    * SunOS Posix tar\n    * Joerg Schilling's star (\"Schilly tar\")\n\n3. 100% test coverage.  Speed is important.  Correctness is slightly\n   more important.\n\n4. Create the kind of tar interface that Node users would want to use.\n\n5. Satisfy npm's needs for a portable tar implementation with a\n   JavaScript interface.\n\n6. No excuses.  No complaining.  No tolerance for failure.\n\n## But isn't there already a tar.js?\n\nYes, there are a few.  This one is going to be better, and it will be\nfanatically maintained, because npm will depend on it.\n\nThat's why I need to write it from scratch.  Creating and extracting\ntarballs is such a large part of what npm does, I simply can't have it\nbe a black box any longer.\n\n## Didn't you have something already?  Where'd it go?\n\nIt's in the \"old\" folder.  It's not functional.  Don't use it.\n\nIt was a useful exploration to learn the issues involved, but like most\nsoftware of any reasonable complexity, node-tar won't be useful until\nit's been written at least 3 times.\n",
+  "readmeFilename": "README.md",
+  "_id": "tar@0.1.14",
+  "_from": "tar@~0.1.12"
 }
diff --git a/deps/npm/node_modules/tar/test/00-setup-fixtures.js b/deps/npm/node_modules/tar/test/00-setup-fixtures.js
new file mode 100644 (file)
index 0000000..1524ff7
--- /dev/null
@@ -0,0 +1,53 @@
+// the fixtures have some weird stuff that is painful
+// to include directly in the repo for various reasons.
+//
+// So, unpack the fixtures with the system tar first.
+//
+// This means, of course, that it'll only work if you
+// already have a tar implementation, and some of them
+// will not properly unpack the fixtures anyway.
+//
+// But, since usually those tests will fail on Windows
+// and other systems with less capable filesystems anyway,
+// at least this way we don't cause inconveniences by
+// merely cloning the repo or installing the package.
+
+var tap = require("tap")
+, child_process = require("child_process")
+, rimraf = require("rimraf")
+, test = tap.test
+, path = require("path")
+
+test("clean fixtures", function (t) {
+  rimraf(path.resolve(__dirname, "fixtures"), function (er) {
+    t.ifError(er, "rimraf ./fixtures/")
+    t.end()
+  })
+})
+
+test("clean tmp", function (t) {
+  rimraf(path.resolve(__dirname, "tmp"), function (er) {
+    t.ifError(er, "rimraf ./tmp/")
+    t.end()
+  })
+})
+
+test("extract fixtures", function (t) {
+  var c = child_process.spawn("tar"
+                             ,["xzvf", "fixtures.tgz"]
+                             ,{ cwd: __dirname })
+
+  c.stdout.on("data", errwrite)
+  c.stderr.on("data", errwrite)
+  function errwrite (chunk) {
+    process.stderr.write(chunk)
+  }
+
+  c.on("exit", function (code) {
+    t.equal(code, 0, "extract fixtures should exit with 0")
+    if (code) {
+      t.comment("Note, all tests from here on out will fail because of this.")
+    }
+    t.end()
+  })
+})
diff --git a/deps/npm/node_modules/tar/test/extract.js b/deps/npm/node_modules/tar/test/extract.js
new file mode 100644 (file)
index 0000000..fff4818
--- /dev/null
@@ -0,0 +1,358 @@
+var tap = require("tap")
+  , tar = require("../tar.js")
+  , fs = require("fs")
+  , path = require("path")
+  , file = path.resolve(__dirname, "fixtures/c.tar")
+  , target = path.resolve(__dirname, "tmp/extract-test")
+  , index = 0
+  , fstream = require("fstream")
+
+  , ee = 0
+  , expectEntries =
+[ { path: 'c.txt',
+    mode: '644',
+    type: '0',
+    depth: undefined,
+    size: 513,
+    linkpath: '',
+    nlink: undefined,
+    dev: undefined,
+    ino: undefined },
+  { path: 'cc.txt',
+    mode: '644',
+    type: '0',
+    depth: undefined,
+    size: 513,
+    linkpath: '',
+    nlink: undefined,
+    dev: undefined,
+    ino: undefined },
+  { path: 'r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+    mode: '644',
+    type: '0',
+    depth: undefined,
+    size: 100,
+    linkpath: '',
+    nlink: undefined,
+    dev: undefined,
+    ino: undefined },
+  { path: 'Ω.txt',
+    mode: '644',
+    type: '0',
+    depth: undefined,
+    size: 2,
+    linkpath: '',
+    nlink: undefined,
+    dev: undefined,
+    ino: undefined },
+  { path: 'Ω.txt',
+    mode: '644',
+    type: '0',
+    depth: undefined,
+    size: 2,
+    linkpath: '',
+    nlink: 1,
+    dev: 234881026,
+    ino: 51693379 },
+  { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+    mode: '644',
+    type: '0',
+    depth: undefined,
+    size: 200,
+    linkpath: '',
+    nlink: 1,
+    dev: 234881026,
+    ino: 51681874 },
+  { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+    mode: '644',
+    type: '0',
+    depth: undefined,
+    size: 201,
+    linkpath: '',
+    nlink: undefined,
+    dev: undefined,
+    ino: undefined },
+  { path: '200LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL',
+    mode: '777',
+    type: '2',
+    depth: undefined,
+    size: 0,
+    linkpath: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+    nlink: undefined,
+    dev: undefined,
+    ino: undefined },
+  { path: '200-hard',
+    mode: '644',
+    type: '0',
+    depth: undefined,
+    size: 200,
+    linkpath: '',
+    nlink: 2,
+    dev: 234881026,
+    ino: 51681874 },
+  { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+    mode: '644',
+    type: '1',
+    depth: undefined,
+    size: 0,
+    linkpath: path.resolve(target, '200-hard'),
+    nlink: 2,
+    dev: 234881026,
+    ino: 51681874 } ]
+
+  , ef = 0
+  , expectFiles =
+[ { path: '',
+    mode: '40755',
+    type: 'Directory',
+    depth: 0,
+    linkpath: undefined },
+  { path: '/200-hard',
+    mode: '100644',
+    type: 'File',
+    depth: 1,
+    size: 200,
+    linkpath: undefined,
+    nlink: 2 },
+  { path: '/200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+    mode: '100644',
+    type: 'Link',
+    depth: 1,
+    size: 200,
+    linkpath: path.join(target, '200-hard'),
+    nlink: 2 },
+  { path: '/200LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL',
+    mode: '120777',
+    type: 'SymbolicLink',
+    depth: 1,
+    size: 200,
+    linkpath: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+    nlink: 1 },
+  { path: '/c.txt',
+    mode: '100644',
+    type: 'File',
+    depth: 1,
+    size: 513,
+    linkpath: undefined,
+    nlink: 1 },
+  { path: '/cc.txt',
+    mode: '100644',
+    type: 'File',
+    depth: 1,
+    size: 513,
+    linkpath: undefined,
+    nlink: 1 },
+  { path: '/r',
+    mode: '40755',
+    type: 'Directory',
+    depth: 1,
+    linkpath: undefined },
+  { path: '/r/e',
+    mode: '40755',
+    type: 'Directory',
+    depth: 2,
+    linkpath: undefined },
+  { path: '/r/e/a',
+    mode: '40755',
+    type: 'Directory',
+    depth: 3,
+    linkpath: undefined },
+  { path: '/r/e/a/l',
+    mode: '40755',
+    type: 'Directory',
+    depth: 4,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l',
+    mode: '40755',
+    type: 'Directory',
+    depth: 5,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y',
+    mode: '40755',
+    type: 'Directory',
+    depth: 6,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-',
+    mode: '40755',
+    type: 'Directory',
+    depth: 7,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-/d',
+    mode: '40755',
+    type: 'Directory',
+    depth: 8,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-/d/e',
+    mode: '40755',
+    type: 'Directory',
+    depth: 9,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-/d/e/e',
+    mode: '40755',
+    type: 'Directory',
+    depth: 10,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-/d/e/e/p',
+    mode: '40755',
+    type: 'Directory',
+    depth: 11,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-/d/e/e/p/-',
+    mode: '40755',
+    type: 'Directory',
+    depth: 12,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f',
+    mode: '40755',
+    type: 'Directory',
+    depth: 13,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o',
+    mode: '40755',
+    type: 'Directory',
+    depth: 14,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l',
+    mode: '40755',
+    type: 'Directory',
+    depth: 15,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d',
+    mode: '40755',
+    type: 'Directory',
+    depth: 16,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e',
+    mode: '40755',
+    type: 'Directory',
+    depth: 17,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r',
+    mode: '40755',
+    type: 'Directory',
+    depth: 18,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-',
+    mode: '40755',
+    type: 'Directory',
+    depth: 19,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p',
+    mode: '40755',
+    type: 'Directory',
+    depth: 20,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a',
+    mode: '40755',
+    type: 'Directory',
+    depth: 21,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t',
+    mode: '40755',
+    type: 'Directory',
+    depth: 22,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h',
+    mode: '40755',
+    type: 'Directory',
+    depth: 23,
+    linkpath: undefined },
+  { path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+    mode: '100644',
+    type: 'File',
+    depth: 24,
+    size: 100,
+    linkpath: undefined,
+    nlink: 1 },
+  { path: '/Ω.txt',
+    mode: '100644',
+    type: 'File',
+    depth: 1,
+    size: 2,
+    linkpath: undefined,
+    nlink: 1 } ]
+
+
+
+// The extract class basically just pipes the input
+// to a Reader, and then to a fstream.DirWriter
+
+// So, this is as much a test of fstream.Reader and fstream.Writer
+// as it is of tar.Extract, but it sort of makes sense.
+
+tap.test("extract test", function (t) {
+  var extract = tar.Extract(target)
+  var inp = fs.createReadStream(file)
+
+  // give it a weird buffer size to try to break in odd places
+  inp.bufferSize = 1234
+
+  inp.pipe(extract)
+
+  extract.on("end", function () {
+    t.equal(ee, expectEntries.length, "should see "+ee+" entries")
+
+    // should get no more entries after end
+    extract.removeAllListeners("entry")
+    extract.on("entry", function (e) {
+      t.fail("Should not get entries after end!")
+    })
+
+    next()
+  })
+
+  extract.on("entry", function (entry) {
+    var found =
+      { path: entry.path
+      , mode: entry.props.mode.toString(8)
+      , type: entry.props.type
+      , depth: entry.props.depth
+      , size: entry.props.size
+      , linkpath: entry.props.linkpath
+      , nlink: entry.props.nlink
+      , dev: entry.props.dev
+      , ino: entry.props.ino
+      }
+
+    var wanted = expectEntries[ee ++]
+
+    t.equivalent(found, wanted, "tar entry " + ee + " " + wanted.path)
+  })
+
+  function next () {
+    var r = fstream.Reader({ path: target
+                           , type: "Directory"
+                           // this is just to encourage consistency
+                           , sort: "alpha" })
+
+    r.on("ready", function () {
+      foundEntry(r)
+    })
+
+    r.on("end", finish)
+
+    function foundEntry (entry) {
+      var p = entry.path.substr(target.length)
+      var found =
+        { path: p
+        , mode: entry.props.mode.toString(8)
+        , type: entry.props.type
+        , depth: entry.props.depth
+        , size: entry.props.size
+        , linkpath: entry.props.linkpath
+        , nlink: entry.props.nlink
+        }
+
+      var wanted = expectFiles[ef ++]
+
+      t.has(found, wanted, "unpacked file " + ef + " " + wanted.path)
+
+      entry.on("entry", foundEntry)
+    }
+
+    function finish () {
+      t.equal(ef, expectFiles.length, "should have "+ef+" items")
+      t.end()
+    }
+  }
+})
diff --git a/deps/npm/node_modules/tar/test/fixtures.tgz b/deps/npm/node_modules/tar/test/fixtures.tgz
new file mode 100644 (file)
index 0000000..4501bcf
Binary files /dev/null and b/deps/npm/node_modules/tar/test/fixtures.tgz differ
diff --git a/deps/npm/node_modules/tar/test/header.js b/deps/npm/node_modules/tar/test/header.js
new file mode 100644 (file)
index 0000000..8ea6f79
--- /dev/null
@@ -0,0 +1,183 @@
+var tap = require("tap")
+var TarHeader = require("../lib/header.js")
+var tar = require("../tar.js")
+var fs = require("fs")
+
+
+var headers =
+  { "a.txt file header":
+    [ "612e747874000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030303036343420003035373736312000303030303234200030303030303030303430312031313635313336303333332030313234353100203000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000757374617200303069736161637300000000000000000000000000000000000000000000000000007374616666000000000000000000000000000000000000000000000000000000303030303030200030303030303020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    , { cksumValid: true
+      , path: 'a.txt'
+      , mode: 420
+      , uid: 24561
+      , gid: 20
+      , size: 257
+      , mtime: 1319493851
+      , cksum: 5417
+      , type: '0'
+      , linkpath: ''
+      , ustar: 'ustar\0'
+      , ustarver: '00'
+      , uname: 'isaacs'
+      , gname: 'staff'
+      , devmaj: 0
+      , devmin: 0
+      , fill: '' }
+    ]
+
+  , "omega pax": // the extended header from omega tar.
+    [ "5061784865616465722fcea92e74787400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030303036343420003035373736312000303030303234200030303030303030303137302031313534333731303631312030313530353100207800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000757374617200303069736161637300000000000000000000000000000000000000000000000000007374616666000000000000000000000000000000000000000000000000000000303030303030200030303030303020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    , { cksumValid: true
+      , path: 'PaxHeader/Ω.txt'
+      , mode: 420
+      , uid: 24561
+      , gid: 20
+      , size: 120
+      , mtime: 1301254537
+      , cksum: 6697
+      , type: 'x'
+      , linkpath: ''
+      , ustar: 'ustar\0'
+      , ustarver: '00'
+      , uname: 'isaacs'
+      , gname: 'staff'
+      , devmaj: 0
+      , devmin: 0
+      , fill: '' } ]
+
+  , "omega file header":
+    [ "cea92e7478740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030303036343420003035373736312000303030303234200030303030303030303030322031313534333731303631312030313330373200203000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000757374617200303069736161637300000000000000000000000000000000000000000000000000007374616666000000000000000000000000000000000000000000000000000000303030303030200030303030303020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    , { cksumValid: true
+      , path: 'Ω.txt'
+      , mode: 420
+      , uid: 24561
+      , gid: 20
+      , size: 2
+      , mtime: 1301254537
+      , cksum: 5690
+      , type: '0'
+      , linkpath: ''
+      , ustar: 'ustar\0'
+      , ustarver: '00'
+      , uname: 'isaacs'
+      , gname: 'staff'
+      , devmaj: 0
+      , devmin: 0
+      , fill: '' } ]
+
+  , "foo.js file header":
+    [ "666f6f2e6a730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030303036343420003035373736312000303030303234200030303030303030303030342031313534333637303734312030313236313700203000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000757374617200303069736161637300000000000000000000000000000000000000000000000000007374616666000000000000000000000000000000000000000000000000000000303030303030200030303030303020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    , { cksumValid: true
+      , path: 'foo.js'
+      , mode: 420
+      , uid: 24561
+      , gid: 20
+      , size: 4
+      , mtime: 1301246433
+      , cksum: 5519
+      , type: '0'
+      , linkpath: ''
+      , ustar: 'ustar\0'
+      , ustarver: '00'
+      , uname: 'isaacs'
+      , gname: 'staff'
+      , devmaj: 0
+      , devmin: 0
+      , fill: '' }
+    ]
+
+  , "b.txt file header":
+    [ "622e747874000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030303036343420003035373736312000303030303234200030303030303030313030302031313635313336303637372030313234363100203000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000757374617200303069736161637300000000000000000000000000000000000000000000000000007374616666000000000000000000000000000000000000000000000000000000303030303030200030303030303020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    , { cksumValid: true
+      , path: 'b.txt'
+      , mode: 420
+      , uid: 24561
+      , gid: 20
+      , size: 512
+      , mtime: 1319494079
+      , cksum: 5425
+      , type: '0'
+      , linkpath: ''
+      , ustar: 'ustar\0'
+      , ustarver: '00'
+      , uname: 'isaacs'
+      , gname: 'staff'
+      , devmaj: 0
+      , devmin: 0
+      , fill: '' }
+    ]
+
+  , "deep nested file":
+    [ "636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363633030303634342000303537373631200030303030323420003030303030303030313434203131363532313531353333203034333331340020300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075737461720030306973616163730000000000000000000000000000000000000000000000000000737461666600000000000000000000000000000000000000000000000000000030303030303020003030303030302000722f652f612f6c2f6c2f792f2d2f642f652f652f702f2d2f662f6f2f6c2f642f652f722f2d2f702f612f742f680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    , { cksumValid: true,
+        path: 'r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc'
+      , mode: 420
+      , uid: 24561
+      , gid: 20
+      , size: 100
+      , mtime: 1319687003
+      , cksum: 18124
+      , type: '0'
+      , linkpath: ''
+      , ustar: 'ustar\0'
+      , ustarver: '00'
+      , uname: 'isaacs'
+      , gname: 'staff'
+      , devmaj: 0
+      , devmin: 0
+      , fill: '' }
+    ]
+  }
+
+tap.test("parsing", function (t) {
+  Object.keys(headers).forEach(function (name) {
+    var h = headers[name]
+      , header = new Buffer(h[0], "hex")
+      , expect = h[1]
+      , parsed = new TarHeader(header)
+
+    // console.error(parsed)
+    t.has(parsed, expect, "parse " + name)
+  })
+  t.end()
+})
+
+tap.test("encoding", function (t) {
+  Object.keys(headers).forEach(function (name) {
+    var h = headers[name]
+      , expect = new Buffer(h[0], "hex")
+      , encoded = TarHeader.encode(h[1])
+
+    // might have slightly different bytes, since the standard
+    // isn't very strict, but should have the same semantics
+    // checkSum will be different, but cksumValid will be true
+
+    var th = new TarHeader(encoded)
+    delete h[1].block
+    delete h[1].needExtended
+    delete h[1].cksum
+    t.has(th, h[1], "fields "+name)
+  })
+  t.end()
+})
+
+// test these manually.  they're a bit rare to find in the wild
+tap.test("parseNumeric tests", function (t) {
+  var parseNumeric = TarHeader.parseNumeric
+    , numbers =
+      { "303737373737373700": 2097151
+      , "30373737373737373737373700": 8589934591
+      , "303030303036343400": 420
+      , "800000ffffffffffff": 281474976710655
+      , "ffffff000000000001": -281474976710654
+      , "ffffff000000000000": -281474976710655
+      , "800000000000200000": 2097152
+      , "8000000000001544c5": 1393861
+      , "ffffffffffff1544c5": -15383354 }
+  Object.keys(numbers).forEach(function (n) {
+    var b = new Buffer(n, "hex")
+    t.equal(parseNumeric(b), numbers[n], n + " === " + numbers[n])
+  })
+  t.end()
+})
diff --git a/deps/npm/node_modules/tar/test/pack-no-proprietary.js b/deps/npm/node_modules/tar/test/pack-no-proprietary.js
new file mode 100644 (file)
index 0000000..5bf0e54
--- /dev/null
@@ -0,0 +1,854 @@
+// This is exactly like test/pack.js, except that it's excluding
+// any proprietary headers.
+//
+// This loses some information about the filesystem, but creates
+// tarballs that are supported by more versions of tar, especially
+// old non-spec-compliant copies of gnutar.
+
+// the symlink file is excluded from git, because it makes
+// windows freak the hell out.
+var fs = require("fs")
+  , path = require("path")
+  , symlink = path.resolve(__dirname, "fixtures/symlink")
+try { fs.unlinkSync(symlink) } catch (e) {}
+fs.symlinkSync("./hardlink-1", symlink)
+process.on("exit", function () {
+  fs.unlinkSync(symlink)
+})
+
+var tap = require("tap")
+  , tar = require("../tar.js")
+  , pkg = require("../package.json")
+  , Pack = tar.Pack
+  , fstream = require("fstream")
+  , Reader = fstream.Reader
+  , Writer = fstream.Writer
+  , input = path.resolve(__dirname, "fixtures/")
+  , target = path.resolve(__dirname, "tmp/pack.tar")
+  , uid = process.getuid ? process.getuid() : 0
+  , gid = process.getgid ? process.getgid() : 0
+
+  , entries =
+
+    // the global header and root fixtures/ dir are going to get
+    // a different date each time, so omit that bit.
+    // Also, dev/ino values differ across machines, so that's not
+    // included.
+    [ [ 'entry',
+      { path: 'fixtures/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'extendedHeader',
+      { path: 'PaxHeader/fixtures/200cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        type: 'x',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' },
+      { path: 'fixtures/200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+        uid: uid,
+        gid: gid,
+        size: 200 } ]
+
+    , [ 'entry',
+      { path: 'fixtures/200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 200,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/a.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 257,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/b.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 512,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/c.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 513,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/cc.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 513,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/foo.js',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 4,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/hardlink-1',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 200,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/hardlink-2',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '1',
+        linkpath: 'fixtures/hardlink-1',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/omega.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 2,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/packtest/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/packtest/omega.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 2,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/packtest/star.4.html',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 54081,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'extendedHeader',
+      { path: 'PaxHeader/fixtures/packtest/Ω.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        type: 'x',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' },
+      { path: 'fixtures/packtest/Ω.txt',
+        uid: uid,
+        gid: gid,
+        size: 2 } ]
+
+    , [ 'entry',
+      { path: 'fixtures/packtest/Ω.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 2,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 100,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/symlink',
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '2',
+        linkpath: 'hardlink-1',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'extendedHeader',
+      { path: 'PaxHeader/fixtures/Ω.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        type: 'x',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' },
+      { path: "fixtures/Ω.txt"
+      , uid: uid
+      , gid: gid
+      , size: 2 } ]
+
+    , [ 'entry',
+      { path: 'fixtures/Ω.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 2,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+    ]
+
+
+// first, make sure that the hardlinks are actually hardlinks, or this
+// won't work.  Git has a way of replacing them with a copy.
+var hard1 = path.resolve(__dirname, "fixtures/hardlink-1")
+  , hard2 = path.resolve(__dirname, "fixtures/hardlink-2")
+  , fs = require("fs")
+
+try { fs.unlinkSync(hard2) } catch (e) {}
+fs.linkSync(hard1, hard2)
+
+tap.test("with global header", { timeout: 10000 }, function (t) {
+  runTest(t, true)
+})
+
+tap.test("without global header", { timeout: 10000 }, function (t) {
+  runTest(t, false)
+})
+
+function alphasort (a, b) {
+  return a === b ? 0
+       : a.toLowerCase() > b.toLowerCase() ? 1
+       : a.toLowerCase() < b.toLowerCase() ? -1
+       : a > b ? 1
+       : -1
+}
+
+
+function runTest (t, doGH) {
+  var reader = Reader({ path: input
+                      , filter: function () {
+                          return !this.path.match(/\.(tar|hex)$/)
+                        }
+                      , sort: alphasort
+                      })
+
+  var props = doGH ? pkg : {}
+  props.noProprietary = true
+  var pack = Pack(props)
+  var writer = Writer(target)
+
+  // global header should be skipped regardless, since it has no content.
+  var entry = 0
+
+  t.ok(reader, "reader ok")
+  t.ok(pack, "pack ok")
+  t.ok(writer, "writer ok")
+
+  pack.pipe(writer)
+
+  var parse = tar.Parse()
+  t.ok(parse, "parser should be ok")
+
+  pack.on("data", function (c) {
+    // console.error("PACK DATA")
+    if (c.length !== 512) {
+      // this one is too noisy, only assert if it'll be relevant
+      t.equal(c.length, 512, "parser should emit data in 512byte blocks")
+    }
+    parse.write(c)
+  })
+
+  pack.on("end", function () {
+    // console.error("PACK END")
+    t.pass("parser ends")
+    parse.end()
+  })
+
+  pack.on("error", function (er) {
+    t.fail("pack error", er)
+  })
+
+  parse.on("error", function (er) {
+    t.fail("parse error", er)
+  })
+
+  writer.on("error", function (er) {
+    t.fail("writer error", er)
+  })
+
+  reader.on("error", function (er) {
+    t.fail("reader error", er)
+  })
+
+  parse.on("*", function (ev, e) {
+    var wanted = entries[entry++]
+    if (!wanted) {
+      t.fail("unexpected event: "+ev)
+      return
+    }
+    t.equal(ev, wanted[0], "event type should be "+wanted[0])
+
+    if (ev !== wanted[0] || e.path !== wanted[1].path) {
+      console.error(wanted)
+      console.error([ev, e.props])
+      e.on("end", function () {
+        console.error(e.fields)
+        throw "break"
+      })
+    }
+
+    t.has(e.props, wanted[1], "properties "+wanted[1].path)
+    if (wanted[2]) {
+      e.on("end", function () {
+        if (!e.fields) {
+          t.ok(e.fields, "should get fields")
+        } else {
+          t.has(e.fields, wanted[2], "should get expected fields")
+        }
+      })
+    }
+  })
+
+  reader.pipe(pack)
+
+  writer.on("close", function () {
+    t.equal(entry, entries.length, "should get all expected entries")
+    t.pass("it finished")
+    t.end()
+  })
+
+}
diff --git a/deps/npm/node_modules/tar/test/pack.js b/deps/npm/node_modules/tar/test/pack.js
new file mode 100644 (file)
index 0000000..8be4178
--- /dev/null
@@ -0,0 +1,898 @@
+
+// the symlink file is excluded from git, because it makes
+// windows freak the hell out.
+var fs = require("fs")
+  , path = require("path")
+  , symlink = path.resolve(__dirname, "fixtures/symlink")
+try { fs.unlinkSync(symlink) } catch (e) {}
+fs.symlinkSync("./hardlink-1", symlink)
+process.on("exit", function () {
+  fs.unlinkSync(symlink)
+})
+
+
+var tap = require("tap")
+  , tar = require("../tar.js")
+  , pkg = require("../package.json")
+  , Pack = tar.Pack
+  , fstream = require("fstream")
+  , Reader = fstream.Reader
+  , Writer = fstream.Writer
+  , input = path.resolve(__dirname, "fixtures/")
+  , target = path.resolve(__dirname, "tmp/pack.tar")
+  , uid = process.getuid ? process.getuid() : 0
+  , gid = process.getgid ? process.getgid() : 0
+
+  , entries =
+
+    // the global header and root fixtures/ dir are going to get
+    // a different date each time, so omit that bit.
+    // Also, dev/ino values differ across machines, so that's not
+    // included.
+    [ [ 'globalExtendedHeader',
+      { path: 'PaxHeader/',
+        mode: 438,
+        uid: 0,
+        gid: 0,
+        type: 'g',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' },
+      { "NODETAR.author": pkg.author,
+        "NODETAR.name": pkg.name,
+        "NODETAR.description": pkg.description,
+        "NODETAR.version": pkg.version,
+        "NODETAR.repository.type": pkg.repository.type,
+        "NODETAR.repository.url": pkg.repository.url,
+        "NODETAR.main": pkg.main,
+        "NODETAR.scripts.test": pkg.scripts.test,
+        "NODETAR.engines.node": pkg.engines.node } ]
+
+    , [ 'entry',
+      { path: 'fixtures/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'extendedHeader',
+      { path: 'PaxHeader/fixtures/200cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        type: 'x',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' },
+      { path: 'fixtures/200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+        'NODETAR.depth': '1',
+        'NODETAR.type': 'File',
+        nlink: 1,
+        uid: uid,
+        gid: gid,
+        size: 200,
+        'NODETAR.blksize': '4096',
+        'NODETAR.blocks': '8' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 200,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '',
+        'NODETAR.depth': '1',
+        'NODETAR.type': 'File',
+        nlink: 1,
+        'NODETAR.blksize': '4096',
+        'NODETAR.blocks': '8' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/a.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 257,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/b.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 512,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/c.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 513,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/cc.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 513,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/foo.js',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 4,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/hardlink-1',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 200,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/hardlink-2',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '1',
+        linkpath: 'fixtures/hardlink-1',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/omega.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 2,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/packtest/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/packtest/omega.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 2,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/packtest/star.4.html',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 54081,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'extendedHeader',
+      { path: 'PaxHeader/fixtures/packtest/Ω.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        type: 'x',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' },
+      { path: 'fixtures/packtest/Ω.txt',
+        'NODETAR.depth': '2',
+        'NODETAR.type': 'File',
+        nlink: 1,
+        uid: uid,
+        gid: gid,
+        size: 2,
+        'NODETAR.blksize': '4096',
+        'NODETAR.blocks': '8' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/packtest/Ω.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 2,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '',
+        'NODETAR.depth': '2',
+        'NODETAR.type': 'File',
+        nlink: 1,
+        'NODETAR.blksize': '4096',
+        'NODETAR.blocks': '8' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/',
+        mode: 493,
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '5',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 100,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'entry',
+      { path: 'fixtures/symlink',
+        uid: uid,
+        gid: gid,
+        size: 0,
+        type: '2',
+        linkpath: 'hardlink-1',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' } ]
+
+    , [ 'extendedHeader',
+      { path: 'PaxHeader/fixtures/Ω.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        type: 'x',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '' },
+      { path: "fixtures/Ω.txt"
+      , "NODETAR.depth": "1"
+      , "NODETAR.type": "File"
+      , nlink: 1
+      , uid: uid
+      , gid: gid
+      , size: 2
+      , "NODETAR.blksize": "4096"
+      , "NODETAR.blocks": "8" } ]
+
+    , [ 'entry',
+      { path: 'fixtures/Ω.txt',
+        mode: 420,
+        uid: uid,
+        gid: gid,
+        size: 2,
+        type: '0',
+        linkpath: '',
+        ustar: 'ustar\u0000',
+        ustarver: '00',
+        uname: '',
+        gname: '',
+        devmaj: 0,
+        devmin: 0,
+        fill: '',
+        'NODETAR.depth': '1',
+        'NODETAR.type': 'File',
+        nlink: 1,
+        'NODETAR.blksize': '4096',
+        'NODETAR.blocks': '8' } ]
+    ]
+
+
+// first, make sure that the hardlinks are actually hardlinks, or this
+// won't work.  Git has a way of replacing them with a copy.
+var hard1 = path.resolve(__dirname, "fixtures/hardlink-1")
+  , hard2 = path.resolve(__dirname, "fixtures/hardlink-2")
+  , fs = require("fs")
+
+try { fs.unlinkSync(hard2) } catch (e) {}
+fs.linkSync(hard1, hard2)
+
+tap.test("with global header", { timeout: 10000 }, function (t) {
+  runTest(t, true)
+})
+
+tap.test("without global header", { timeout: 10000 }, function (t) {
+  runTest(t, false)
+})
+
+function alphasort (a, b) {
+  return a === b ? 0
+       : a.toLowerCase() > b.toLowerCase() ? 1
+       : a.toLowerCase() < b.toLowerCase() ? -1
+       : a > b ? 1
+       : -1
+}
+
+
+function runTest (t, doGH) {
+  var reader = Reader({ path: input
+                      , filter: function () {
+                          return !this.path.match(/\.(tar|hex)$/)
+                        }
+                      , sort: alphasort
+                      })
+
+  var pack = Pack(doGH ? pkg : null)
+  var writer = Writer(target)
+
+  // skip the global header if we're not doing that.
+  var entry = doGH ? 0 : 1
+
+  t.ok(reader, "reader ok")
+  t.ok(pack, "pack ok")
+  t.ok(writer, "writer ok")
+
+  pack.pipe(writer)
+
+  var parse = tar.Parse()
+  t.ok(parse, "parser should be ok")
+
+  pack.on("data", function (c) {
+    // console.error("PACK DATA")
+    if (c.length !== 512) {
+      // this one is too noisy, only assert if it'll be relevant
+      t.equal(c.length, 512, "parser should emit data in 512byte blocks")
+    }
+    parse.write(c)
+  })
+
+  pack.on("end", function () {
+    // console.error("PACK END")
+    t.pass("parser ends")
+    parse.end()
+  })
+
+  pack.on("error", function (er) {
+    t.fail("pack error", er)
+  })
+
+  parse.on("error", function (er) {
+    t.fail("parse error", er)
+  })
+
+  writer.on("error", function (er) {
+    t.fail("writer error", er)
+  })
+
+  reader.on("error", function (er) {
+    t.fail("reader error", er)
+  })
+
+  parse.on("*", function (ev, e) {
+    var wanted = entries[entry++]
+    if (!wanted) {
+      t.fail("unexpected event: "+ev)
+      return
+    }
+    t.equal(ev, wanted[0], "event type should be "+wanted[0])
+
+    // if (ev !== wanted[0] || e.path !== wanted[1].path) {
+    //   console.error(wanted)
+    //   console.error([ev, e.props])
+    //   throw "break"
+    // }
+
+    t.has(e.props, wanted[1], "properties "+wanted[1].path)
+    if (wanted[2]) {
+      e.on("end", function () {
+        if (!e.fields) {
+          t.ok(e.fields, "should get fields")
+        } else {
+          t.has(e.fields, wanted[2], "should get expected fields")
+        }
+      })
+    }
+  })
+
+  reader.pipe(pack)
+
+  writer.on("close", function () {
+    t.equal(entry, entries.length, "should get all expected entries")
+    t.pass("it finished")
+    t.end()
+  })
+
+}
diff --git a/deps/npm/node_modules/tar/test/parse.js b/deps/npm/node_modules/tar/test/parse.js
new file mode 100644 (file)
index 0000000..f765a50
--- /dev/null
@@ -0,0 +1,359 @@
+var tap = require("tap")
+  , tar = require("../tar.js")
+  , fs = require("fs")
+  , path = require("path")
+  , file = path.resolve(__dirname, "fixtures/c.tar")
+  , index = 0
+
+  , expect =
+[ [ 'entry',
+    { path: 'c.txt',
+      mode: 420,
+      uid: 24561,
+      gid: 20,
+      size: 513,
+      mtime: new Date('Wed, 26 Oct 2011 01:10:58 GMT'),
+      cksum: 5422,
+      type: '0',
+      linkpath: '',
+      ustar: 'ustar\0',
+      ustarver: '00',
+      uname: 'isaacs',
+      gname: 'staff',
+      devmaj: 0,
+      devmin: 0,
+      fill: '' },
+    undefined ],
+  [ 'entry',
+    { path: 'cc.txt',
+      mode: 420,
+      uid: 24561,
+      gid: 20,
+      size: 513,
+      mtime: new Date('Wed, 26 Oct 2011 01:11:02 GMT'),
+      cksum: 5525,
+      type: '0',
+      linkpath: '',
+      ustar: 'ustar\0',
+      ustarver: '00',
+      uname: 'isaacs',
+      gname: 'staff',
+      devmaj: 0,
+      devmin: 0,
+      fill: '' },
+    undefined ],
+  [ 'entry',
+    { path: 'r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+      mode: 420,
+      uid: 24561,
+      gid: 20,
+      size: 100,
+      mtime: new Date('Thu, 27 Oct 2011 03:43:23 GMT'),
+      cksum: 18124,
+      type: '0',
+      linkpath: '',
+      ustar: 'ustar\0',
+      ustarver: '00',
+      uname: 'isaacs',
+      gname: 'staff',
+      devmaj: 0,
+      devmin: 0,
+      fill: '' },
+    undefined ],
+  [ 'entry',
+    { path: 'Ω.txt',
+      mode: 420,
+      uid: 24561,
+      gid: 20,
+      size: 2,
+      mtime: new Date('Thu, 27 Oct 2011 17:51:49 GMT'),
+      cksum: 5695,
+      type: '0',
+      linkpath: '',
+      ustar: 'ustar\0',
+      ustarver: '00',
+      uname: 'isaacs',
+      gname: 'staff',
+      devmaj: 0,
+      devmin: 0,
+      fill: '' },
+    undefined ],
+  [ 'extendedHeader',
+    { path: 'PaxHeader/Ω.txt',
+      mode: 420,
+      uid: 24561,
+      gid: 20,
+      size: 120,
+      mtime: new Date('Thu, 27 Oct 2011 17:51:49 GMT'),
+      cksum: 6702,
+      type: 'x',
+      linkpath: '',
+      ustar: 'ustar\0',
+      ustarver: '00',
+      uname: 'isaacs',
+      gname: 'staff',
+      devmaj: 0,
+      devmin: 0,
+      fill: '' },
+    { path: 'Ω.txt',
+      ctime: 1319737909,
+      atime: 1319739061,
+      dev: 234881026,
+      ino: 51693379,
+      nlink: 1 } ],
+  [ 'entry',
+    { path: 'Ω.txt',
+      mode: 420,
+      uid: 24561,
+      gid: 20,
+      size: 2,
+      mtime: new Date('Thu, 27 Oct 2011 17:51:49 GMT'),
+      cksum: 5695,
+      type: '0',
+      linkpath: '',
+      ustar: 'ustar\0',
+      ustarver: '00',
+      uname: 'isaacs',
+      gname: 'staff',
+      devmaj: 0,
+      devmin: 0,
+      fill: '',
+      ctime: new Date('Thu, 27 Oct 2011 17:51:49 GMT'),
+      atime: new Date('Thu, 27 Oct 2011 18:11:01 GMT'),
+      dev: 234881026,
+      ino: 51693379,
+      nlink: 1 },
+    undefined ],
+  [ 'extendedHeader',
+    { path: 'PaxHeader/200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+      mode: 420,
+      uid: 24561,
+      gid: 20,
+      size: 353,
+      mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'),
+      cksum: 14488,
+      type: 'x',
+      linkpath: '',
+      ustar: 'ustar\0',
+      ustarver: '00',
+      uname: 'isaacs',
+      gname: 'staff',
+      devmaj: 0,
+      devmin: 0,
+      fill: '' },
+    { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+      ctime: 1319686868,
+      atime: 1319741254,
+      'LIBARCHIVE.creationtime': '1319686852',
+      dev: 234881026,
+      ino: 51681874,
+      nlink: 1 } ],
+  [ 'entry',
+    { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+      mode: 420,
+      uid: 24561,
+      gid: 20,
+      size: 200,
+      mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'),
+      cksum: 14570,
+      type: '0',
+      linkpath: '',
+      ustar: 'ustar\0',
+      ustarver: '00',
+      uname: 'isaacs',
+      gname: 'staff',
+      devmaj: 0,
+      devmin: 0,
+      fill: '',
+      ctime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'),
+      atime: new Date('Thu, 27 Oct 2011 18:47:34 GMT'),
+      'LIBARCHIVE.creationtime': '1319686852',
+      dev: 234881026,
+      ino: 51681874,
+      nlink: 1 },
+    undefined ],
+  [ 'longPath',
+    { path: '././@LongLink',
+      mode: 0,
+      uid: 0,
+      gid: 0,
+      size: 201,
+      mtime: new Date('Thu, 01 Jan 1970 00:00:00 GMT'),
+      cksum: 4976,
+      type: 'L',
+      linkpath: '',
+      ustar: false },
+    '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' ],
+  [ 'entry',
+    { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+      mode: 420,
+      uid: 1000,
+      gid: 1000,
+      size: 201,
+      mtime: new Date('Thu, 27 Oct 2011 22:21:50 GMT'),
+      cksum: 14086,
+      type: '0',
+      linkpath: '',
+      ustar: false },
+    undefined ],
+  [ 'longLinkpath',
+    { path: '././@LongLink',
+      mode: 0,
+      uid: 0,
+      gid: 0,
+      size: 201,
+      mtime: new Date('Thu, 01 Jan 1970 00:00:00 GMT'),
+      cksum: 4975,
+      type: 'K',
+      linkpath: '',
+      ustar: false },
+    '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' ],
+  [ 'longPath',
+    { path: '././@LongLink',
+      mode: 0,
+      uid: 0,
+      gid: 0,
+      size: 201,
+      mtime: new Date('Thu, 01 Jan 1970 00:00:00 GMT'),
+      cksum: 4976,
+      type: 'L',
+      linkpath: '',
+      ustar: false },
+    '200LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL' ],
+  [ 'entry',
+    { path: '200LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL',
+      mode: 511,
+      uid: 1000,
+      gid: 1000,
+      size: 0,
+      mtime: new Date('Fri, 28 Oct 2011 23:05:17 GMT'),
+      cksum: 21603,
+      type: '2',
+      linkpath: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+      ustar: false },
+    undefined ],
+  [ 'extendedHeader',
+    { path: 'PaxHeader/200-hard',
+      mode: 420,
+      uid: 24561,
+      gid: 20,
+      size: 143,
+      mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'),
+      cksum: 6533,
+      type: 'x',
+      linkpath: '',
+      ustar: 'ustar\0',
+      ustarver: '00',
+      uname: 'isaacs',
+      gname: 'staff',
+      devmaj: 0,
+      devmin: 0,
+      fill: '' },
+    { ctime: 1320617144,
+      atime: 1320617232,
+      'LIBARCHIVE.creationtime': '1319686852',
+      dev: 234881026,
+      ino: 51681874,
+      nlink: 2 } ],
+  [ 'entry',
+    { path: '200-hard',
+      mode: 420,
+      uid: 24561,
+      gid: 20,
+      size: 200,
+      mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'),
+      cksum: 5526,
+      type: '0',
+      linkpath: '',
+      ustar: 'ustar\0',
+      ustarver: '00',
+      uname: 'isaacs',
+      gname: 'staff',
+      devmaj: 0,
+      devmin: 0,
+      fill: '',
+      ctime: new Date('Sun, 06 Nov 2011 22:05:44 GMT'),
+      atime: new Date('Sun, 06 Nov 2011 22:07:12 GMT'),
+      'LIBARCHIVE.creationtime': '1319686852',
+      dev: 234881026,
+      ino: 51681874,
+      nlink: 2 },
+    undefined ],
+  [ 'extendedHeader',
+    { path: 'PaxHeader/200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+      mode: 420,
+      uid: 24561,
+      gid: 20,
+      size: 353,
+      mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'),
+      cksum: 14488,
+      type: 'x',
+      linkpath: '',
+      ustar: 'ustar\0',
+      ustarver: '00',
+      uname: 'isaacs',
+      gname: 'staff',
+      devmaj: 0,
+      devmin: 0,
+      fill: '' },
+    { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+      ctime: 1320617144,
+      atime: 1320617406,
+      'LIBARCHIVE.creationtime': '1319686852',
+      dev: 234881026,
+      ino: 51681874,
+      nlink: 2 } ],
+  [ 'entry',
+    { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
+      mode: 420,
+      uid: 24561,
+      gid: 20,
+      size: 0,
+      mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'),
+      cksum: 15173,
+      type: '1',
+      linkpath: '200-hard',
+      ustar: 'ustar\0',
+      ustarver: '00',
+      uname: 'isaacs',
+      gname: 'staff',
+      devmaj: 0,
+      devmin: 0,
+      fill: '',
+      ctime: new Date('Sun, 06 Nov 2011 22:05:44 GMT'),
+      atime: new Date('Sun, 06 Nov 2011 22:10:06 GMT'),
+      'LIBARCHIVE.creationtime': '1319686852',
+      dev: 234881026,
+      ino: 51681874,
+      nlink: 2 },
+    undefined ] ]
+
+
+tap.test("parser test", function (t) {
+  var parser = tar.Parse()
+
+  parser.on("end", function () {
+    t.equal(index, expect.length, "saw all expected events")
+    t.end()
+  })
+
+  fs.createReadStream(file)
+    .pipe(parser)
+    .on("*", function (ev, entry) {
+      var wanted = expect[index]
+      if (!wanted) {
+        return t.fail("Unexpected event: " + ev)
+      }
+      var result = [ev, entry.props]
+      entry.on("end", function () {
+        result.push(entry.fields || entry.body)
+
+        t.equal(ev, wanted[0], index + " event type")
+        t.equivalent(entry.props, wanted[1], wanted[1].path + " entry properties")
+        if (wanted[2]) {
+          t.equivalent(result[2], wanted[2], "metadata values")
+        }
+        index ++
+      })
+    })
+})
diff --git a/deps/npm/node_modules/tar/test/zz-cleanup.js b/deps/npm/node_modules/tar/test/zz-cleanup.js
new file mode 100644 (file)
index 0000000..a00ff7f
--- /dev/null
@@ -0,0 +1,20 @@
+// clean up the fixtures
+
+var tap = require("tap")
+, rimraf = require("rimraf")
+, test = tap.test
+, path = require("path")
+
+test("clean fixtures", function (t) {
+  rimraf(path.resolve(__dirname, "fixtures"), function (er) {
+    t.ifError(er, "rimraf ./fixtures/")
+    t.end()
+  })
+})
+
+test("clean tmp", function (t) {
+  rimraf(path.resolve(__dirname, "tmp"), function (er) {
+    t.ifError(er, "rimraf ./tmp/")
+    t.end()
+  })
+})
index 980f268dfeb4c4caa2ee71ba9213ca40e1f5b3c5..660a276df5d616af0d834922ea518ad0375be071 100644 (file)
@@ -1,5 +1,5 @@
 {
-  "version": "1.1.66",
+  "version": "1.1.69",
   "name": "npm",
   "publishConfig": {
     "proprietary-attribs": false
   },
   "scripts": {
     "test": "node ./test/run.js && tap test/tap/*.js",
-    "prepublish": "npm prune ; rm -rf test/*/*/node_modules ; make -j4 doc",
+    "prepublish": "node bin/npm-cli.js prune ; rm -rf test/*/*/node_modules ; make -j4 doc",
     "dumpconf": "env | grep npm | sort | uniq",
     "echo": "node bin/npm-cli.js"
   },
index b779e3a22abe23d8adaa278a5666e4a38e25c4a8..984bedb47f43061fb959b8b60167cb6b9ff36551 100644 (file)
@@ -1,6 +1,4 @@
-var c = require('child_process').spawn('array-bin', [], {
-    env: process.env }).on('close', function (code) {
-  if (code) throw new Error('exited badly with code = ' + code)
+require('child_process').exec('array-bin', { env: process.env },
+    function (err) {
+  if (err && err.code) throw new Error('exited badly with code = ' + err.code)
 })
-c.stdout.pipe(process.stdout)
-c.stderr.pipe(process.stderr)
index e4ee83f9eaf5d769507b788234c404186bbd9d9e..c59ec92da702eef7cd4b1130478fa195193acff6 100644 (file)
@@ -1,5 +1,4 @@
-require('child_process').spawn('dir-bin', [], {
-    env: process.env }).on('exit', function (code) {
-  if (code) throw new Error('exited badly with code = ' + code)
+require('child_process').exec('dir-bin', { stdio: 'pipe',
+    env: process.env }, function (err) {
+  if (err && err.code) throw new Error('exited badly with code = ' + err.code)
 })
-
index b2684a123384c037bb2d89bfcf43311f24118158..bbabe89db99ee33860c793690e472426842e9638 100644 (file)
@@ -8,6 +8,6 @@
     "minimatch": "~0.1.0"
   },
   "scripts": {
-    "test": "bash test.sh"
+    "test": "node test.js"
   }
 }
diff --git a/deps/npm/test/packages/npm-test-shrinkwrap/test.js b/deps/npm/test/packages/npm-test-shrinkwrap/test.js
new file mode 100644 (file)
index 0000000..4dc4b2b
--- /dev/null
@@ -0,0 +1,21 @@
+var path = require("path")
+var assert = require("assert")
+
+process.env.npm_config_prefix = process.cwd()
+delete process.env.npm_config_global
+delete process.env.npm_config_depth
+
+var npm = process.platform === "win32"
+        ? path.resolve(process.env.npm_config_prefix, "../../npm")
+        : path.resolve(process.env.npm_config_prefix, "../../../bin/npm")
+
+require("child_process").exec(npm + " ls --json", {
+    stdio: "pipe", env: process.env, cwd: process.cwd() },
+    function (err, stdout, stderr) {
+  if (err) throw err
+
+  var actual = JSON.parse(stdout).dependencies
+  var expected = require("./npm-shrinkwrap.json").dependencies
+
+  assert.deepEqual(actual, expected)
+})
diff --git a/deps/npm/test/packages/npm-test-shrinkwrap/test.sh b/deps/npm/test/packages/npm-test-shrinkwrap/test.sh
deleted file mode 100644 (file)
index f756f5b..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-
-# ensure that we get the npm being tested, not some global thing.
-npmbin=$npm_config_prefix/bin/npm
-npm () {
-  node $npmbin "$@"
-}
-
-# work around the weird env we're in, as part of npm's test
-export npm_config_prefix=$PWD
-unset npm_config_global
-unset npm_config_depth
-
-out=$(diff <(npm ls --json) npm-shrinkwrap.json)
-if [ "$out" != "" ]; then
-  echo "Didn't get expected packages" >&2
-  echo "$out" >&2
-  exit 1
-fi
-echo "ok"
index c864450abdf9147c60097856957c7e7d10b8bcad..697d33980f1b08f8736f734218c72db69c344ff3 100644 (file)
@@ -72,8 +72,14 @@ function exec (cmd, shouldFail, cb) {
   // special: replace 'node' with the current execPath,
   // and 'npm' with the thing we installed.
   var cmdShow = cmd
-  cmd = cmd.replace(/^npm /, path.resolve(npmPath, "npm") + " ")
-  cmd = cmd.replace(/^node /, process.execPath + " ")
+  var npmReplace = path.resolve(npmPath, "npm")
+  var nodeReplace = process.execPath
+  if (process.platform === "win32") {
+    npmReplace = '"' + npmReplace + '"'
+    nodeReplace = '"' + nodeReplace + '"'
+  }
+  cmd = cmd.replace(/^npm /, npmReplace + " ")
+  cmd = cmd.replace(/^node /, nodeReplace + " ")
 
   child_process.exec(cmd, {env: env}, function (er, stdout, stderr) {
     if (stdout) {
@@ -138,6 +144,12 @@ function main (cb) {
   installAllThenTestAll()
 
   function installAllThenTestAll () {
+    var packagesToRm = packages.slice(0)
+    if (process.platform !== "win32") {
+      // Windows can't handle npm rm npm due to file-in-use issues.
+      packagesToRm.push("npm")
+    }
+
     chain
       ( [ setup
         , [ exec, "npm install "+npmpkg ]
@@ -147,7 +159,7 @@ function main (cb) {
         , [ execChain, packages.map(function (p) {
               return "npm test "+p
             }) ]
-        , [ execChain, packages.concat("npm").map(function (p) {
+        , [ execChain, packagesToRm.map(function (p) {
               return "npm rm " + p
             }) ]
         , installAndTestEach
@@ -157,16 +169,21 @@ function main (cb) {
   }
 
   function installAndTestEach (cb) {
-    chain
-      ( [ setup
+    var thingsToChain = [
+        setup
         , [ execChain, packages.map(function (p) {
               return [ "npm install packages/"+p
                      , "npm test "+p
                      , "npm rm "+p ]
             }) ]
-        , [exec, "npm rm npm"]
-        , publishTest
-        ], cb )
+      ]
+    if (process.platform !== "win32") {
+      // Windows can't handle npm rm npm due to file-in-use issues.
+      thingsToChain.push([exec, "npm rm npm"])
+    }
+    thingsToChain.push(publishTest)
+
+    chain(thingsToChain, cb)
   }
 
   function publishTest (cb) {