Upgrade npm to 1.1.12
authorisaacs <i@izs.me>
Thu, 22 Mar 2012 23:38:58 +0000 (16:38 -0700)
committerisaacs <i@izs.me>
Thu, 22 Mar 2012 23:38:58 +0000 (16:38 -0700)
126 files changed:
deps/npm/.npmignore
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/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/list.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/lib/cache.js
deps/npm/lib/install.js
deps/npm/lib/uninstall.js
deps/npm/lib/utils/excludes.js
deps/npm/lib/utils/read-json.js
deps/npm/lib/utils/tar.js
deps/npm/man/man1/npm.1
deps/npm/man/man3/npm.3
deps/npm/node_modules/fstream/.npmignore
deps/npm/node_modules/fstream/LICENCE [new file with mode: 0644]
deps/npm/node_modules/fstream/lib/dir-writer.js
deps/npm/node_modules/fstream/lib/proxy-reader.js
deps/npm/node_modules/fstream/lib/writer.js
deps/npm/node_modules/fstream/package.json
deps/npm/node_modules/graceful-fs/graceful-fs.js
deps/npm/node_modules/graceful-fs/package.json
deps/npm/node_modules/inherits/LICENSE
deps/npm/node_modules/inherits/package.json
deps/npm/node_modules/node-gyp/lib/build.js
deps/npm/node_modules/node-gyp/lib/configure.js
deps/npm/node_modules/node-gyp/lib/install.js
deps/npm/node_modules/node-gyp/node_modules/ansi/package.json
deps/npm/node_modules/node-gyp/node_modules/glob/LICENCE [new file with mode: 0644]
deps/npm/node_modules/node-gyp/node_modules/glob/glob.js
deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/README.md
deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/minimatch.js
deps/npm/node_modules/node-gyp/node_modules/glob/node_modules/minimatch/package.json
deps/npm/node_modules/node-gyp/node_modules/glob/package.json
deps/npm/node_modules/node-gyp/package.json
deps/npm/package.json
deps/npm/test/packages/npm-test-files/package.json

index 6ab1868..5ddef35 100644 (file)
@@ -11,3 +11,7 @@ npm-debug.log
 ./npmrc
 .gitignore
 release/
+
+# don't ignore .npmignore files
+# these are used in some tests.
+!.npmignore
index 4e32ea1..b8937d7 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.9</p>
+<p id="footer">bin &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 9036d08..b45fe7c 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.9</p>
+<p id="footer">bugs &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b53fa4f..c47f09a 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.9</p>
+<p id="footer">commands &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 951048d..4b46824 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.9</p>
+<p id="footer">config &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 2012bb2..8e040d3 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.9</p>
+<p id="footer">deprecate &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 520d288..8f6f4dc 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.9</p>
+<p id="footer">docs &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index af7d257..63657d3 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.9</p>
+<p id="footer">edit &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 7b36e64..5755e6f 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 'args' parameter must be a package name.  After that is the optional command, which can be any number of strings. All of the strings will be combined into one, space-delimited command.</p>
 </div>
-<p id="footer">explore &mdash; npm@1.1.9</p>
+<p id="footer">explore &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index c718253..9726af6 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.9</p>
+<p id="footer">help-search &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index e81be57..ab94cfa 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.9</p>
+<p id="footer">init &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index f4e8d7a..bf50d70 100644 (file)
@@ -25,7 +25,7 @@ the name of a package to be installed.</p>
 <p>Finally, 'callback' is a function that will be called when all packages have been
 installed or when an error has been encountered.</p>
 </div>
-<p id="footer">install &mdash; npm@1.1.9</p>
+<p id="footer">install &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index baa1cae..27fb67a 100644 (file)
@@ -39,7 +39,7 @@ npm.commands.link('redis', cb)  # link-install the package</code></pre>
 <p>Now, any changes to the redis package will be reflected in
 the package in the current working directory</p>
 </div>
-<p id="footer">link &mdash; npm@1.1.9</p>
+<p id="footer">link &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 4f0089f..2e69c98 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.9</p>
+<p id="footer">load &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 1bef570..3ab93ef 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.9</p>
+<p id="footer">ls &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 3931c41..de961ca 100644 (file)
@@ -24,7 +24,7 @@ npm.load(configObject, function (er, npm) {
 
 <h2 id="VERSION">VERSION</h2>
 
-<p>1.1.9</p>
+<p>1.1.12</p>
 
 <h2 id="DESCRIPTION">DESCRIPTION</h2>
 
@@ -91,7 +91,7 @@ method names.  Use the <code>npm.deref</code> method to find the real name.</p>
 
 <pre><code>var cmd = npm.deref("unp") // cmd === "unpublish"</code></pre>
 </div>
-<p id="footer">npm &mdash; npm@1.1.9</p>
+<p id="footer">npm &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index aa5e92b..bb58058 100644 (file)
@@ -19,7 +19,7 @@ currently outdated.</p>
 
 <p>If the 'packages' parameter is left out, npm will check all packages.</p>
 </div>
-<p id="footer">outdated &mdash; npm@1.1.9</p>
+<p id="footer">outdated &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index d903456..0ccb7c7 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.9</p>
+<p id="footer">owner &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 5e54a59..e2befcb 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.9</p>
+<p id="footer">pack &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 6af256a..b15691a 100644 (file)
@@ -21,7 +21,7 @@
 
 <p>This function is not useful programmatically</p>
 </div>
-<p id="footer">prefix &mdash; npm@1.1.9</p>
+<p id="footer">prefix &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index e47e405..cd32708 100644 (file)
@@ -23,7 +23,7 @@
 <p>Extraneous packages are packages that are not listed on the parent
 package's dependencies list.</p>
 </div>
-<p id="footer">prune &mdash; npm@1.1.9</p>
+<p id="footer">prune &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index ae4fd41..5949910 100644 (file)
@@ -32,7 +32,7 @@ the registry.  Overwrites when the "force" environment variable is set.</p>
 
 <ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../api/owner.html">owner(3)</a></li></ul>
 </div>
-<p id="footer">publish &mdash; npm@1.1.9</p>
+<p id="footer">publish &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index a076f35..eddee5d 100644 (file)
@@ -22,7 +22,7 @@ the new binary. If no 'packages' parameter is specify, every package will be reb
 
 <p>See <code>npm help build</code></p>
 </div>
-<p id="footer">rebuild &mdash; npm@1.1.9</p>
+<p id="footer">rebuild &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 2c34c6d..0fed5e8 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.9</p>
+<p id="footer">restart &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 50d40e9..6cda777 100644 (file)
@@ -21,7 +21,7 @@
 
 <p>This function is not useful programmatically.</p>
 </div>
-<p id="footer">root &mdash; npm@1.1.9</p>
+<p id="footer">root &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index fed227d..54f2b80 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.9</p>
+<p id="footer">run-script &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 994c2bc..9b66c9e 100644 (file)
@@ -32,7 +32,7 @@ excluded term (the "searchexclude" config). The search is case insensitive
 and doesn't try to read your mind (it doesn't do any verb tense matching or the
 like).</p>
 </div>
-<p id="footer">search &mdash; npm@1.1.9</p>
+<p id="footer">search &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index c9de18d..631f2ca 100644 (file)
@@ -26,7 +26,7 @@ but the shrinkwrap file will still be written.</p>
 <p>Finally, 'callback' is a function that will be called when the shrinkwrap has
 been saved.</p>
 </div>
-<p id="footer">shrinkwrap &mdash; npm@1.1.9</p>
+<p id="footer">shrinkwrap &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 1b47c98..6d3bc8b 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.9</p>
+<p id="footer">start &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 0d07035..69d005a 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.9</p>
+<p id="footer">stop &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 114879f..4a4d01c 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.9</p>
+<p id="footer">submodule &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index bfc8d4c..3dfb012 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.9</p>
+<p id="footer">tag &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 3e90a1e..efce995 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.9</p>
+<p id="footer">test &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index cbc9ab6..6dc721e 100644 (file)
@@ -22,7 +22,7 @@ the name of a package to be uninstalled.</p>
 <p>Finally, 'callback' is a function that will be called when all packages have been
 uninstalled or when an error has been encountered.</p>
 </div>
-<p id="footer">uninstall &mdash; npm@1.1.9</p>
+<p id="footer">uninstall &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 680b5c0..2a2558f 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.9</p>
+<p id="footer">unpublish &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index a2126f1..d994b90 100644 (file)
@@ -18,7 +18,7 @@
 
 <p>The 'packages' argument is an array of packages to update. The 'callback' parameter will be called when done or when an error occurs.</p>
 </div>
-<p id="footer">update &mdash; npm@1.1.9</p>
+<p id="footer">update &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index fb2ec9e..1193aff 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.9</p>
+<p id="footer">version &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 4f7268d..1ea983b 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.9</p>
+<p id="footer">view &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 8e23ce2..4d6cf50 100644 (file)
@@ -21,7 +21,7 @@
 
 <p>This function is not useful programmatically</p>
 </div>
-<p id="footer">whoami &mdash; npm@1.1.9</p>
+<p id="footer">whoami &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index bc0df1e..570c378 100644 (file)
@@ -267,7 +267,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.9</p>
+<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index edb4eaa..1ff19bf 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.9</p>
+<p id="footer">adduser &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 5eef5ce..bad7f34 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.9</p>
+<p id="footer">bin &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 8c03332..4f0a0cb 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.9</p>
+<p id="footer">bugs &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 559b87b..0998316 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.9</p>
+<p id="footer">build &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b9ec1ed..8c1741a 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.9</p>
+<p id="footer">bundle &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index da7abee..fc234a5 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.9</p>
+<p id="footer">cache &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 1565c5d..10ca5e0 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.9</p>
+<p id="footer">changelog &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index e51d8a4..8da29d3 100644 (file)
@@ -191,7 +191,7 @@ set to anything."</p>
 
 <ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
 </div>
-<p id="footer">coding-style &mdash; npm@1.1.9</p>
+<p id="footer">coding-style &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 78a2d6c..cc05c02 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.9</p>
+<p id="footer">completion &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index bad25be..f7d4c0b 100644 (file)
@@ -662,7 +662,7 @@ then answer "no" to any prompt.</p>
 
 <ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
 </div>
-<p id="footer">config &mdash; npm@1.1.9</p>
+<p id="footer">config &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index ae19876..71e5a61 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.9</p>
+<p id="footer">deprecate &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 66a06a8..9a77cf9 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.9</p>
+<p id="footer">developers &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 5fa3018..00dcee6 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.9</p>
+<p id="footer">disputes &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 928d053..a8344d6 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.9</p>
+<p id="footer">docs &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 7390fd3..243efb2 100644 (file)
@@ -37,7 +37,7 @@ or <code>"notepad"</code> on Windows.</li><li>Type: path</li></ul>
 
 <ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/explore.html">explore(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
 </div>
-<p id="footer">edit &mdash; npm@1.1.9</p>
+<p id="footer">edit &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index ec0a80e..dd9f9e3 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.9</p>
+<p id="footer">explore &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 2956d67..75eacd2 100644 (file)
@@ -241,7 +241,7 @@ We'll have someone kick it or something.</p>
 
 <ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
 </div>
-<p id="footer">faq &mdash; npm@1.1.9</p>
+<p id="footer">faq &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 8493394..f942afd 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.9</p>
+<p id="footer">folders &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b57d20d..5b3a598 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.9</p>
+<p id="footer">help-search &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 1dd7cfd..dba7169 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.9</p>
+<p id="footer">help &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 782c80e..0befbcf 100644 (file)
 
 <p> Display npm username</p>
 </div>
-<p id="footer">index &mdash; npm@1.1.9</p>
+<p id="footer">index &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index ff1ce22..2ac8177 100644 (file)
@@ -29,7 +29,7 @@ without a really good reason to do so.</p>
 
 <ul><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/version.html">version(1)</a></li></ul>
 </div>
-<p id="footer">init &mdash; npm@1.1.9</p>
+<p id="footer">init &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 51cf1c1..426f5b1 100644 (file)
@@ -136,7 +136,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.9</p>
+<p id="footer">install &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index da03f98..a8ef8c0 100644 (file)
@@ -478,7 +478,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.9</p>
+<p id="footer">json &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 5af82ab..8ae0d1e 100644 (file)
@@ -58,7 +58,7 @@ installation target into your project's <code>node_modules</code> folder.</p>
 
 <ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
 </div>
-<p id="footer">link &mdash; npm@1.1.9</p>
+<p id="footer">link &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 25b0821..fdcaa6f 100644 (file)
@@ -58,7 +58,7 @@ project.</p>
 
 <ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/update.html">update(1)</a></li></ul>
 </div>
-<p id="footer">list &mdash; npm@1.1.9</p>
+<p id="footer">list &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b5954dc..5854a47 100644 (file)
@@ -14,7 +14,7 @@
 
 <h2 id="VERSION">VERSION</h2>
 
-<p>1.1.9</p>
+<p>1.1.12</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.9</p>
+<p id="footer">npm &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 32a976f..0c9d434 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.9</p>
+<p id="footer">outdated &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index f423524..78773a1 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.9</p>
+<p id="footer">owner &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 00c4145..829f3f1 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.9</p>
+<p id="footer">pack &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 88c7a03..cd5273d 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.9</p>
+<p id="footer">prefix &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index a05d605..31a860b 100644 (file)
@@ -25,7 +25,7 @@ package's dependencies list.</p>
 
 <ul><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
 </div>
-<p id="footer">prune &mdash; npm@1.1.9</p>
+<p id="footer">prune &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b74f702..0d64e53 100644 (file)
@@ -29,7 +29,7 @@ the registry.  Overwrites when the "--force" flag is set.</p>
 
 <ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/deprecate.html">deprecate(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li></ul>
 </div>
-<p id="footer">publish &mdash; npm@1.1.9</p>
+<p id="footer">publish &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index ff3386c..5ee54b5 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.9</p>
+<p id="footer">rebuild &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 4612812..2aa1635 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.9</p>
+<p id="footer">registry &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index dd43e1e..f32b402 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.9</p>
+<p id="footer">removing-npm &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index ad52ddc..d7864c0 100644 (file)
@@ -24,7 +24,7 @@ the "start" script.</p>
 
 <ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
 </div>
-<p id="footer">restart &mdash; npm@1.1.9</p>
+<p id="footer">restart &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index b0841c2..93cfa5b 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.9</p>
+<p id="footer">root &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 9056567..7dfa853 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.9</p>
+<p id="footer">run-script &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 4d9b0ca..c04dd91 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.9</p>
+<p id="footer">scripts &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 419eb49..589f5c9 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.9</p>
+<p id="footer">search &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index a731464..43aa640 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.9</p>
+<p id="footer">semver &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 0b611cb..bd1eee7 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.9</p>
+<p id="footer">shrinkwrap &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 59d344a..4e8081b 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.9</p>
+<p id="footer">star &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index f09f84c..775f251 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.9</p>
+<p id="footer">start &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 69fadfc..c4eec89 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.9</p>
+<p id="footer">stop &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 2217b84..32cc4f6 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.9</p>
+<p id="footer">submodule &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 7316e4b..e8ce657 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.9</p>
+<p id="footer">tag &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 6ea4a9c..2eb22df 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.9</p>
+<p id="footer">test &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 02652ee..023e7f0 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.9</p>
+<p id="footer">uninstall &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 7afe0c8..b00e694 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.9</p>
+<p id="footer">unpublish &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 17abfb3..f97efed 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.9</p>
+<p id="footer">update &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 17b4ffa..cba5881 100644 (file)
@@ -31,7 +31,7 @@ will use it as a commit message when creating a version commit.</p>
 
 <ul><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/semver.html">semver(1)</a></li></ul>
 </div>
-<p id="footer">version &mdash; npm@1.1.9</p>
+<p id="footer">version &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 58b729e..af7dbb1 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.9</p>
+<p id="footer">view &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index 45be8e7..e0f33e8 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.9</p>
+<p id="footer">whoami &mdash; npm@1.1.12</p>
 <script>
 ;(function () {
 var wrapper = document.getElementById("wrapper")
index e8aac5d..e0a72ed 100644 (file)
@@ -95,12 +95,10 @@ function cache (args, cb) {
 // if the pkg and ver are in the cache, then
 // just do a readJson and return.
 // if they're not, then fetch them from the registry.
-var cacheSeen = {}
 function read (name, ver, forceBypass, cb) {
   if (typeof cb !== "function") cb = forceBypass, forceBypass = true
   var jsonFile = path.join(npm.cache, name, ver, "package", "package.json")
   function c (er, data) {
-    if (!er) cacheSeen[data._id] = data
     if (data) deprCheck(data)
     return cb(er, data)
   }
@@ -110,10 +108,6 @@ function read (name, ver, forceBypass, cb) {
     return addNamed(name, ver, c)
   }
 
-  if (name+"@"+ver in cacheSeen) {
-    return cb(null, cacheSeen[name+"@"+ver])
-  }
-
   readJson(jsonFile, function (er, data) {
     if (er) return addNamed(name, ver, c)
     deprCheck(data)
@@ -126,9 +120,13 @@ function ls (args, cb) {
   output = output || require("./utils/output.js")
   args = args.join("/").split("@").join("/")
   if (args.substr(-1) === "/") args = args.substr(0, args.length - 1)
+  var prefix = npm.config.get("cache")
+  if (0 === prefix.indexOf(process.env.HOME)) {
+    prefix = "~" + prefix.substr(process.env.HOME.length)
+  }
   ls_(args, npm.config.get("depth"), function(er, files) {
     output.write(files.map(function (f) {
-      return path.join("~/.npm", f)
+      return path.join(prefix, f)
     }).join("\n").trim(), function (er) {
       return cb(er, files)
     })
@@ -212,7 +210,7 @@ function add (args, cb) {
 
   // see if the spec is a url
   // otherwise, treat as name@version
-  var p = url.parse(spec.replace(/^git\+/, "git")) || {}
+  var p = url.parse(spec) || {}
   log.verbose(p, "parsed url")
 
   // it could be that we got name@http://blah
@@ -230,11 +228,11 @@ function add (args, cb) {
     case "https:":
       return addRemoteTarball(spec, null, name, cb)
     case "git:":
-    case "githttp:":
-    case "githttps:":
-    case "gitrsync:":
-    case "gitftp:":
-    case "gitssh:":
+    case "git+http:":
+    case "git+https:":
+    case "git+rsync:":
+    case "git+ftp:":
+    case "git+ssh:":
       //p.protocol = p.protocol.replace(/^git([^:])/, "$1")
       return addRemoteGit(spec, p, name, cb)
     default:
index ae10965..3288d43 100644 (file)
@@ -506,6 +506,15 @@ function targetResolver (where, context, deps) {
       }
     }
 
+    // if it's identical to its parent, then it's probably someone
+    // doing `npm install foo` inside of the foo project.  Print
+    // a warning, and skip it.
+    if (parent && parent.name === what && !npm.config.get("force")) {
+      log.warn("Refusing to install "+what+" as a dependency of itself"
+              ,"install")
+      return cb(null, [])
+    }
+
     if (wrap) {
       name = what.split(/@/).shift()
       if (wrap[name]) {
@@ -723,8 +732,16 @@ function checkCycle (target, ancestors, cb) {
   // A more correct, but more complex, solution would be to symlink
   // the deeper thing into the new location.
   // Will do that if anyone whines about this irl.
-
-  var p = Object.getPrototypeOf(ancestors)
+  //
+  // Note: `npm install foo` inside of the `foo` package will abort
+  // earlier if `--force` is not set.  However, if it IS set, then
+  // we need to still fail here, but just skip the first level. Of
+  // course, it'll still fail eventually if it's a true cycle, and
+  // leave things in an undefined state, but that's what is to be
+  // expected when `--force` is used.  That is why getPrototypeOf
+  // is used *twice* here: to skip the first level of repetition.
+
+  var p = Object.getPrototypeOf(Object.getPrototypeOf(ancestors))
     , name = target.name
     , version = target.version
   while (p && p !== Object.prototype && p[name] !== version) {
index 1b43607..655e5eb 100644 (file)
@@ -40,7 +40,12 @@ function uninstall (args, cb) {
 
 function uninstall_ (args, nm, cb) {
   asyncMap(args, function (arg, cb) {
-    var p = path.resolve(nm, arg)
+    // uninstall .. should not delete /usr/local/lib/node_modules/..
+    var p = path.join(path.resolve(nm), path.join("/", arg))
+    if (path.resolve(p) === nm) {
+      log.warn(arg, "uninstall: invalid argument")
+      return cb(null, [])
+    }
     fs.lstat(p, function (er) {
       if (er) {
         log.warn(arg, "Not installed in "+nm)
index 75fe41c..83935ee 100644 (file)
@@ -92,6 +92,7 @@ function test (file, excludeList) {
   // log.warn(excludeList, "test list")
   var incRe = /^\!(\!\!)*/
     , excluded = false
+    , mmconf = { matchBase: true, dot: true }
   for (var i = 0, l = excludeList.length; i < l; i ++) {
     var excludes = excludeList[i]
       , dir = excludes.dir
@@ -121,12 +122,12 @@ function test (file, excludeList) {
       if (inc && !excluded) continue
 
       // if it matches the pattern, then it should be excluded.
-      excluded = !!minimatch(rf, ex, { matchBase: true })
+      excluded = !!minimatch(rf, ex, mmconf)
       // log.error([rf, ex, excluded], "rf, ex, excluded")
 
       // if you include foo, then it also includes foo/bar.js
       if (inc && excluded && ex.slice(-3) !== "/**") {
-        excluded = minimatch(rf, ex + "/**", { matchBase: true })
+        excluded = minimatch(rf, ex + "/**", mmconf)
         // log.warn([rf, ex + "/**", inc, excluded], "dir without /")
       }
 
@@ -141,6 +142,7 @@ function test (file, excludeList) {
         ll ++
       }
     }
+
     // log.warn([rf, excluded, excludes], "rf, excluded, excludes")
   }
   // true if it *should* be included
index 20461e4..9d76a16 100644 (file)
@@ -262,11 +262,12 @@ function typoWarn (json) {
                   }
 
   if (typeof json.bugs === "object") {
+    // just go ahead and correct these.
     Object.keys(bugsTypos).forEach(function (d) {
       if (json.bugs.hasOwnProperty(d)) {
-        log.warn( "package.json: bugs['" + d + "'] should probably be "
-                + "bugs['" + bugsTypos[d] + "']", json._id)
-        }
+        json.bugs[ bugsTypos[d] ] = json.bugs[d]
+        delete json.bugs[d]
+      }
     })
   }
 
index 9a97ee2..906913f 100644 (file)
@@ -98,6 +98,14 @@ function packFiles (targetTarball, parent, files, pkg, cb_) {
                      this.props.mode = this.props.mode | 0200
                      var inc = -1 !== files.indexOf(this.path)
 
+                     // symbolic links are not allowed in packages.
+                     if (this.type.match(/^.*Link$/)) {
+                       log.warn( this.path.substr(parent.length + 1)
+                               + ' -> ' + this.linkpath
+                               , "excluding symbolic link")
+                       return false
+                     }
+
                      // WARNING! Hackety hack!
                      // XXX Fix this in a better way.
                      // Rename .gitignore to .npmignore if there is not a
@@ -111,6 +119,7 @@ function packFiles (targetTarball, parent, files, pkg, cb_) {
                        this.basename = ".npmignore"
                        this.path = path.join(d, ".npmignore")
                      }
+
                      return inc
                    }
                  })
@@ -172,23 +181,6 @@ function unpack_ ( tarball, unpackTarget, dMode, fMode, uid, gid, cb ) {
   })
 }
 
-// on Windows, A/V software can lock the directory, causing this
-// to fail with an EACCES.  Try again on failure, for up to 1 second.
-// XXX Fix this by not unpacking into a temp directory, instead just
-// renaming things on the way out of the tarball.
-function moveIntoPlace (folder, unpackTarget, cb) {
-  var start = Date.now()
-  fs.rename(folder, unpackTarget, function CB (er) {
-    if (er
-        && process.platform === "win32"
-        && er.code === "EACCES"
-        && Date.now() - start < 1000) {
-      return fs.rename(folder, unpackTarget, CB)
-    }
-    cb(er)
-  })
-}
-
 
 function gunzTarPerm (tarball, target, dMode, fMode, uid, gid, cb_) {
   if (!dMode) dMode = npm.modes.exec
@@ -233,6 +225,18 @@ function gunzTarPerm (tarball, target, dMode, fMode, uid, gid, cb_) {
 
   var extractOpts = { type: "Directory", path: target, strip: 1 }
 
+  extractOpts.filter = function () {
+    // symbolic links are not allowed in packages.
+    if (this.type.match(/^.*Link$/)) {
+      log.warn( this.path.substr(target.length + 1)
+              + ' -> ' + this.linkpath
+              , "excluding symbolic link")
+      return false
+    }
+    return true
+  }
+
+
   fst.on("error", log.er(cb, "error reading "+tarball))
   fst.on("data", function OD (c) {
     // detect what it is.
index 6d6275a..f3718f4 100644 (file)
@@ -14,7 +14,7 @@ npm <command> [args]
 .fi
 .
 .SH "VERSION"
-1.1.9
+1.1.12
 .
 .SH "DESCRIPTION"
 npm is the package manager for the Node JavaScript platform\.  It puts
index c5567e6..257b876 100644 (file)
@@ -21,7 +21,7 @@ npm\.load(configObject, function (er, npm) {
 .fi
 .
 .SH "VERSION"
-1.1.9
+1.1.12
 .
 .SH "DESCRIPTION"
 This is the API documentation for npm\.
index 66880db..494272a 100644 (file)
@@ -1,3 +1,5 @@
 .*.swp
-examples/deep-copy
 node_modules/
+examples/deep-copy/
+examples/path/
+examples/filter-copy/
diff --git a/deps/npm/node_modules/fstream/LICENCE b/deps/npm/node_modules/fstream/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.
index 11b6654..26338bd 100644 (file)
@@ -123,6 +123,9 @@ DirWriter.prototype._process = function () {
   // get rid of any ../../ shenanigans
   props.path = path.join(me.path, path.join("/", p))
 
+  // if i have a filter, the child should inherit it.
+  props.filter = me.filter
+
   // all the rest of the stuff, copy over from the source.
   Object.keys(entry.props).forEach(function (k) {
     if (!props.hasOwnProperty(k)) {
index f99b28f..f5ddfc3 100644 (file)
@@ -59,6 +59,9 @@ ProxyReader.prototype._addProxy = function (proxy) {
     , "close"
     , "linkpath"
     , "entry"
+    , "entryEnd"
+    , "child"
+    , "childEnd"
     , "warn"
     ].forEach(function (ev) {
       // console.error("~~ proxy event", ev, me.path)
index dde29fd..b7cd261 100644 (file)
@@ -98,6 +98,8 @@ function Writer (props, current) {
   me._buffer = []
   me.ready = false
 
+  me.filter = typeof props.filter === "function" ? props.filter: null
+
   // start the ball rolling.
   // this checks what's there already, and then calls
   // me._create() to call the impl-specific creation stuff.
@@ -126,6 +128,13 @@ Writer.prototype._stat = function (current) {
   else fs[stat](me._path, statCb)
 
   function statCb (er, current) {
+    if (me.filter && !me.filter.call(me._proxy || me, current)) {
+      me._aborted = true
+      me.emit("end")
+      me.emit("close")
+      return
+    }
+
     // if it's not there, great.  We'll just create it.
     // if it is there, then we'll need to change whatever differs
     if (er || !current) {
index ee1378e..2ad0c6c 100644 (file)
@@ -6,14 +6,14 @@
   },
   "name": "fstream",
   "description": "Advanced file system stream things",
-  "version": "0.1.13",
+  "version": "0.1.14",
   "repository": {
     "type": "git",
     "url": "git://github.com/isaacs/fstream.git"
   },
   "main": "fstream.js",
   "engines": {
-    "node": "0.5 || 0.6 || 0.7"
+    "node": ">=0.6"
   },
   "dependencies": {
     "rimraf": "2",
     "inherits": "~1.0.0"
   },
   "devDependencies": {
-    "tap": "0.1"
+    "tap": ""
   },
   "scripts": {
     "test": "tap examples/*.js"
   },
+  "license": "BSD",
   "_npmUser": {
     "name": "isaacs",
     "email": "i@izs.me"
   },
-  "_id": "fstream@0.1.13",
+  "_id": "fstream@0.1.14",
   "optionalDependencies": {},
   "_engineSupported": true,
-  "_npmVersion": "1.1.4",
-  "_nodeVersion": "v0.7.6-pre",
+  "_npmVersion": "1.1.10",
+  "_nodeVersion": "v0.7.7-pre",
   "_defaultsLoaded": true,
-  "_from": "fstream@~0.1.5"
+  "_from": "fstream@~0.1.13"
 }
index 8081047..ecbda31 100644 (file)
@@ -6,8 +6,7 @@ var fs = require("fs")
 // there is such a thing as TOO graceful.
 if (fs.open === gracefulOpen) return
 
-var FastList = require("fast-list")
-  , queue = new FastList()
+var queue = []
   , curOpen = 0
   , constants = require("constants")
 
@@ -254,3 +253,23 @@ function chownErOk (er) {
   if (!er || (!process.getuid || process.getuid() !== 0)
       && (er.code === "EINVAL" || er.code === "EPERM")) return true
 }
+
+
+
+// on Windows, A/V software can lock the directory, causing this
+// to fail with an EACCES or EPERM if the directory contains newly
+// created files.  Try again on failure, for up to 1 second.
+if (process.platform === "win32") {
+  var rename_ = fs.rename
+  fs.rename = function rename (from, to, cb) {
+    var start = Date.now()
+    rename_(from, to, function CB (er) {
+      if (er
+          && (er.code === "EACCES" || er.code === "EPERM")
+          && Date.now() - start < 1000) {
+        return rename_(from, to, CB)
+      }
+      cb(er)
+    })
+  }
+}
index 98fc779..757d301 100644 (file)
@@ -1,8 +1,12 @@
 {
-  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)",
+  "author": {
+    "name": "Isaac Z. Schlueter",
+    "email": "i@izs.me",
+    "url": "http://blog.izs.me"
+  },
   "name": "graceful-fs",
   "description": "fs monkey-patching to avoid EMFILE and other problems",
-  "version": "1.1.5",
+  "version": "1.1.8",
   "repository": {
     "type": "git",
     "url": "git://github.com/isaacs/node-graceful-fs.git"
   "engines": {
     "node": ">=0.4.0"
   },
-  "dependencies": {
-    "fast-list": "1"
+  "devDependencies": {},
+  "_npmUser": {
+    "name": "isaacs",
+    "email": "i@izs.me"
   },
-  "devDependencies": {}
+  "_id": "graceful-fs@1.1.8",
+  "dependencies": {},
+  "optionalDependencies": {},
+  "_engineSupported": true,
+  "_npmVersion": "1.1.10",
+  "_nodeVersion": "v0.7.7-pre",
+  "_defaultsLoaded": true,
+  "_from": "graceful-fs@~1.1.1"
 }
index c78c4f6..5a8e332 100644 (file)
@@ -1,26 +1,14 @@
-Copyright 2011 Isaac Z. Schlueter (the "Author")
-All rights reserved.
+            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+                    Version 2, December 2004
 
-General Public Obviousness License
+ Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
 
-The Author asserts that this software and associated documentation
-files (the "Software"), while the Author's original creation, is
-nonetheless obvious, trivial, unpatentable, and implied by the
-context in which the software was created.  If you sat down and
-thought about the problem for an hour or less, you'd probably
-come up with exactly this solution.
+ Everyone is permitted to copy and distribute verbatim or modified
+ copies of this license document, and changing it is allowed as long
+ as the name is changed.
 
-Permission is granted to use this software in any way
-whatsoever, with the following restriction:
+            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
-You may not release the Software under a more restrictive license
-than this one.
+  0. You just DO WHAT THE FUCK YOU WANT TO.
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
index 7dc3277..b5499c1 100644 (file)
@@ -1,8 +1,44 @@
-{ "name" : "inherits"
-, "description": "A tiny simple way to do classic inheritance in js"
-, "version" : "1.0.0"
-, "keywords" : ["inheritance", "class", "klass", "oop", "object-oriented"]
-, "main" : "./inherits.js"
-, "repository" : "https://github.com/isaacs/inherits"
-, "license": { "type": "GPOL", "url": "https://raw.github.com/isaacs/inherits/master/LICENSE" }
-, "author" : "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)" }
+{
+  "name": "inherits",
+  "description": "A tiny simple way to do classic inheritance in js",
+  "version": "1.0.0",
+  "keywords": [
+    "inheritance",
+    "class",
+    "klass",
+    "oop",
+    "object-oriented"
+  ],
+  "main": "./inherits.js",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/isaacs/inherits.git"
+  },
+  "license": {
+    "type": "WTFPL2"
+  },
+  "author": {
+    "name": "Isaac Z. Schlueter",
+    "email": "i@izs.me",
+    "url": "http://blog.izs.me/"
+  },
+  "_npmUser": {
+    "name": "isaacs",
+    "email": "i@izs.me"
+  },
+  "_id": "inherits@1.0.0",
+  "dependencies": {},
+  "devDependencies": {},
+  "optionalDependencies": {},
+  "engines": {
+    "node": "*"
+  },
+  "_engineSupported": true,
+  "_npmVersion": "1.1.10",
+  "_nodeVersion": "v0.7.7-pre",
+  "_defaultsLoaded": true,
+  "dist": {
+    "shasum": "12dbc03c9f7c203289234b214a7d05a311d71450"
+  },
+  "_from": "git://github.com/isaacs/inherits"
+}
index f6c63a6..3ffc4c7 100644 (file)
@@ -36,7 +36,14 @@ function build (gyp, argv, callback) {
 
   function loadConfigGypi () {
     fs.readFile(configPath, 'utf8', function (err, data) {
-      if (err) return callback(err)
+      if (err) {
+        if (err.code == 'ENOENT') {
+          callback(new Error('You must run `node-gyp configure` first!'))
+        } else {
+          callback(err)
+        }
+        return
+      }
       config = JSON.parse(data.replace(/\#.+\n/, ''))
       if (win) {
         findSolutionFile()
@@ -112,7 +119,7 @@ function build (gyp, argv, callback) {
 
   function build () {
     var buildType = config.target_defaults.default_configuration
-      , platform = config.target_arch == 'x64' ? '64' : '32'
+      , platform = config.variables.target_arch == 'x64' ? '64' : '32'
 
     if (gyp.opts.debug) {
       buildType = 'Debug'
index ac204b1..c1c99e7 100644 (file)
@@ -92,13 +92,16 @@ function configure (gyp, argv, callback) {
     if (!version) {
       return callback(new Error('Invalid version number: ' + versionStr))
     }
-    version = version.slice(1, 4).join('.')
     gyp.opts.ensure = true
-    gyp.commands.install([ version ], createBuildDir)
+    gyp.commands.install([ versionStr ], function (err, _version) {
+      if (err) return callback(err)
+      version = _version
+      gyp.verbose('setting target version to:', version)
+      createBuildDir()
+    })
   }
 
-  function createBuildDir (err) {
-    if (err) return callback(err)
+  function createBuildDir () {
     gyp.verbose('attempting to create "build" dir', buildDir)
     mkdirp(buildDir, function (err, isNew) {
       if (err) return callback(err)
index e064fbc..e9328a9 100644 (file)
@@ -33,7 +33,7 @@ function install (gyp, argv, callback) {
         callback(err)
       })
     } else {
-      callback.apply(null, arguments)
+      callback(null, version)
     }
   }
 
@@ -60,6 +60,7 @@ function install (gyp, argv, callback) {
   if (version[5] === '-pre') {
     version[3] = +version[3] - 1
     version[5] = null
+    gyp.verbose('-pre version detected, adjusting patch version')
   }
 
   // flatten version into String
@@ -80,7 +81,7 @@ function install (gyp, argv, callback) {
           gyp.verbose('version not already installed, continuing with install', version)
           go()
         } else {
-          callback(err)
+          cb(err)
         }
         return
       }
@@ -88,7 +89,7 @@ function install (gyp, argv, callback) {
       var installVersionFile = path.resolve(devDir, 'installVersion')
       fs.readFile(installVersionFile, 'ascii', function (err, ver) {
         if (err && err.code != 'ENOENT') {
-          return callback(err)
+          return cb(err)
         }
         var installVersion = parseInt(ver, 10) || 0
         gyp.verbose('got "installVersion":', installVersion)
@@ -98,7 +99,7 @@ function install (gyp, argv, callback) {
           go()
         } else {
           gyp.verbose('version is good')
-          callback()
+          cb()
         }
       })
     })
@@ -106,6 +107,18 @@ function install (gyp, argv, callback) {
     go()
   }
 
+  function download(url,onError) {
+    gyp.info('downloading:', url)
+    requestOpts = { uri: url }
+
+    // basic support for a proxy server
+    var proxyUrl = gyp.opts.proxy || process.env.http_proxy || process.env.HTTP_PROXY
+    if (proxyUrl) {
+      gyp.verbose('using proxy:', proxyUrl)
+      requestOpts.proxy = proxyUrl
+    }
+    return request(requestOpts, onError)
+  }
 
   function go () {
 
@@ -120,22 +133,35 @@ function install (gyp, argv, callback) {
     var tarballUrl = distUrl + '/v' + version + '/node-v' + version + '.tar.gz'
       , badDownload = false
       , extractCount = 0
-      , parser = tar.Parse()
-
-    gyp.info('downloading:', tarballUrl)
-
-    var requestOpts = { uri: tarballUrl }
-    var proxyUrl = gyp.opts.proxy || process.env.http_proxy || process.env.HTTP_PROXY
-    if (proxyUrl) {
-      gyp.verbose('using proxy:', proxyUrl)
-      requestOpts.proxy = proxyUrl
+      , gunzip = zlib.createGunzip()
+      , extracter = tar.Extract({ path: devDir, strip: 1, filter: isValid })
+
+    // checks if a file to be extracted from the tarball is valid.
+    // only .h header files and the gyp files get extracted
+    function isValid () {
+      var name = this.path.substring(devDir.length + 1)
+        , _valid = valid(name)
+      if (name === '' && this.type === 'Directory') {
+        // the first directory entry is ok
+        return true
+      }
+      if (_valid) {
+        gyp.verbose('extracted file from tarball', name)
+        extractCount++
+      } else {
+        // invalid
+      }
+      return _valid
     }
 
-    request(requestOpts, downloadError)
-      .pipe(zlib.createGunzip())
-      .pipe(parser)
-    parser.on('entry', onEntry)
-    parser.on('end', afterTarball)
+    gunzip.on('error', cb)
+    extracter.on('error', cb)
+    extracter.on('end', afterTarball)
+
+    // download the tarball, gunzip and extract!
+    var req = download(tarballUrl, downloadError)
+      .pipe(gunzip)
+      .pipe(extracter)
 
     // something went wrong downloading the tarball?
     function downloadError (err, res) {
@@ -145,53 +171,11 @@ function install (gyp, argv, callback) {
       }
     }
 
-    // handle a file from the tarball
-    function onEntry (entry) {
-      extractCount++
-
-      var filename = entry.props.path
-        , trimmed = install.trim(filename)
-
-      if (!valid(trimmed)) {
-        // skip
-        return
-      }
-
-      var dir = path.dirname(trimmed)
-        , devFileDir = path.resolve(devDir, dir)
-        , devFile = path.resolve(devDir, trimmed)
-
-      if (dir !== '.') {
-        // TODO: async
-        // TODO: keep track of the dirs that have been created/checked so far
-        //console.error(devFileDir)
-        mkdir.sync(devFileDir)
-      }
-      // TODO: better "File" detection or use `fstream`
-      if (entry.props.type !== '0') {
-        return
-      }
-      //console.error(trimmed, entry.props)
-
-      // Finally save the file to the filesystem
-      // TODO: Figure out why pipe() hangs here or use `fstream`
-      var ws = fs.createWriteStream(devFile, {
-          mode: entry.props.mode
-      })
-      entry.on('data', function (b) {
-        ws.write(b)
-      })
-      entry.on('end', function () {
-        ws.end()
-        gyp.verbose('saved file', devFile)
-      })
-
-    }
-
+    // invoked after the tarball has finished being extracted
     function afterTarball () {
       if (badDownload) return
       if (extractCount === 0) {
-        return cb(new Error('There was a fatal problem while downloading the tarball'))
+        return cb(new Error('There was a fatal problem while downloading/extracting the tarball'))
       }
       gyp.verbose('done parsing tarball')
       var async = 0
@@ -265,10 +249,9 @@ function install (gyp, argv, callback) {
         if (err) return done(err)
         mkdir(debugDir, function (err) {
           if (err) return done(err)
-          gyp.info('downloading `node.lib`', nodeLibUrl)
           // TODO: clean this mess up, written in a hastemode-9000
           var badDownload = false
-          var res = request(nodeLibUrl, function (err, res) {
+          var res = download(nodeLibUrl, function (err, res) {
             if (err || res.statusCode != 200) {
               badDownload = true
               done(err || new Error(res.statusCode + ' status code downloading node.lib'))
index a729894..b6dfe6f 100644 (file)
   "dependencies": {},
   "optionalDependencies": {},
   "_engineSupported": true,
-  "_npmVersion": "1.1.8",
+  "_npmVersion": "1.1.11",
   "_nodeVersion": "v0.7.7-pre",
   "_defaultsLoaded": true,
+  "dist": {
+    "shasum": "926ed94f0865d5732789819999b432c57bbed0ec"
+  },
   "_from": "ansi@0.0.x"
 }
diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/LICENCE b/deps/npm/node_modules/node-gyp/node_modules/glob/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.
index 48262b5..aba4ef6 100644 (file)
@@ -44,6 +44,7 @@ var fs = require("graceful-fs")
 , path = require("path")
 , isDir = {}
 , assert = require("assert").ok
+, EOF = {}
 
 function glob (pattern, options, cb) {
   if (typeof options === "function") cb = options, options = {}
@@ -157,7 +158,7 @@ function Glob (pattern, options, cb) {
     this._process(pattern, 0, i, function (er) {
       if (er) this.emit("error", er)
       if (-- n <= 0) this._finish()
-    }.bind(this))
+    })
   }
 }
 
@@ -210,8 +211,8 @@ Glob.prototype._finish = function () {
 
   if (this.debug) console.error("emitting end", all)
 
-  this.found = all
-  this.emit("end", all)
+  EOF = this.found = all
+  this.emitMatch(EOF)
 }
 
 function alphasorti (a, b) {
@@ -229,10 +230,67 @@ Glob.prototype.abort = function () {
   this.emit("abort")
 }
 
+Glob.prototype.pause = function () {
+  if (this.paused) return
+  if (this.sync)
+    this.emit("error", new Error("Can't pause/resume sync glob"))
+  this.paused = true
+  this.emit("pause")
+}
+
+Glob.prototype.resume = function () {
+  if (!this.paused) return
+  if (this.sync)
+    this.emit("error", new Error("Can't pause/resume sync glob"))
+  this.paused = false
+  this.emit("resume")
+}
+
+
+Glob.prototype.emitMatch = function (m) {
+  if (!this.paused) {
+    this.emit(m === EOF ? "end" : "match", m)
+    return
+  }
+
+  if (!this._emitQueue) {
+    this._emitQueue = []
+    this.once("resume", function () {
+      var q = this._emitQueue
+      this._emitQueue = null
+      q.forEach(function (m) {
+        this.emitMatch(m)
+      }, this)
+    })
+  }
+
+  this._emitQueue.push(m)
+
+  //this.once("resume", this.emitMatch.bind(this, m))
+}
+
+
 
-Glob.prototype._process = function (pattern, depth, index, cb) {
+Glob.prototype._process = function (pattern, depth, index, cb_) {
   assert(this instanceof Glob)
-  cb = cb.bind(this)
+
+  var cb = function cb (er, res) {
+    assert(this instanceof Glob)
+    if (this.paused) {
+      if (!this._processQueue) {
+        this._processQueue = []
+        this.once("resume", function () {
+          var q = this._processQueue
+          this._processQueue = null
+          q.forEach(function (cb) { cb() })
+        })
+      }
+      this._processQueue.push(cb_.bind(this, er, res))
+    } else {
+      cb_.call(this, er, res)
+    }
+  }.bind(this)
+
   if (this.aborted) return cb()
 
   if (depth > this.maxDepth) return cb()
@@ -259,7 +317,7 @@ Glob.prototype._process = function (pattern, depth, index, cb) {
           }
           this.matches[index] = this.matches[index] || {}
           this.matches[index][prefix] = true
-          this.emit("match", prefix)
+          this.emitMatch(prefix)
         }
         return cb()
       })
@@ -358,7 +416,7 @@ Glob.prototype._process = function (pattern, depth, index, cb) {
 
         this.matches[index] = this.matches[index] || {}
         this.matches[index][e] = true
-        this.emit("match", e)
+        this.emitMatch(e)
       }, this)
       return cb.call(this)
     }
@@ -375,7 +433,7 @@ Glob.prototype._process = function (pattern, depth, index, cb) {
         if (errState) return
         if (er) return cb(errState = er)
         if (--l === 0) return cb.call(this)
-      }.bind(this))
+      })
     }, this)
   })
 
@@ -418,6 +476,7 @@ Glob.prototype._stat = function (f, cb) {
 }
 
 Glob.prototype._afterStat = function (f, abs, cb, er, stat) {
+  var exists
   assert(this instanceof Glob)
   if (er || !stat) {
     exists = false
index d5f9723..6fd07d2 100644 (file)
@@ -60,11 +60,12 @@ thing in a path part.  That is, `a/**/b` will match `a/x/y/b`, but
 `a/**b` will not.  **Note that this is different from the way that `**` is
 handled by ruby's `Dir` class.**
 
-If an escaped pattern has no matches, and the `null` flag is not set,
+If an escaped pattern has no matches, and the `nonull` flag is set,
 then minimatch.match returns the pattern as-provided, rather than
 interpreting the character escapes.  For example,
 `minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`.
+`"*a?"`.  This is akin to setting the `nullglob` option in bash, except
+that it does not resolve escaped pattern characters.
 
 If brace expansion is not disabled, then it is performed before any
 other interpretation of the glob pattern.  Thus, a pattern like
@@ -147,8 +148,8 @@ var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))
 ### minimatch.match(list, pattern, options)
 
 Match against the list of
-files, in the style of fnmatch or glob.  If nothing is matched, then
-return the pattern (unless `{ null: true }` in the options.)
+files, in the style of fnmatch or glob.  If nothing is matched, and
+options.nonull is set, then return a list containing the pattern itself.
 
 ```javascript
 var javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))
@@ -210,3 +211,8 @@ comment.
 ### nonegate
 
 Suppress the behavior of treating a leading `!` character as negation.
+
+### flipNegate
+
+Returns from negate expressions the same as if they were not negated.
+(Ie, true on a hit, false on a miss.)
index 737c82e..1ca0810 100644 (file)
@@ -4,7 +4,6 @@ minimatch.Minimatch = Minimatch
 var LRU = require("lru-cache")
   , cache = minimatch.cache = new LRU(100)
   , GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
-  , pathSplit = process.platform === "win32" ? /\\|\// : "/"
 
 var path = require("path")
   // any single thing other than /
@@ -519,7 +518,8 @@ function parse (pattern, isSub) {
         patternListStack.push({ type: plType
                               , start: i - 1
                               , reStart: re.length })
-        re += stateChar === "!" ? "(?!" : "(?:"
+        // negation is (?:(?!js)[^/]*)
+        re += stateChar === "!" ? "(?:(?!" : "(?:"
         stateChar = false
         continue
 
@@ -532,11 +532,15 @@ function parse (pattern, isSub) {
         hasMagic = true
         re += ")"
         plType = patternListStack.pop().type
+        // negation is (?:(?!js)[^/]*)
+        // The others are (?:<pattern>)<type>
         switch (plType) {
+          case "!":
+            re += "[^/]*?)"
+            break
           case "?":
           case "+":
           case "*": re += plType
-          case "!": // already handled by the start
           case "@": break // the default anyway
         }
         continue
@@ -791,12 +795,14 @@ function match (f, partial) {
     var pattern = set[i]
     var hit = this.matchOne(f, pattern, partial)
     if (hit) {
+      if (options.flipNegate) return true
       return !this.negate
     }
   }
 
   // didn't get any hits.  this is success if it's a negative
   // pattern, failure otherwise.
+  if (options.flipNegate) return false
   return this.negate
 }
 
index 198273e..7ca0e02 100644 (file)
@@ -6,7 +6,7 @@
   },
   "name": "minimatch",
   "description": "a glob matcher in javascript",
-  "version": "0.2.0",
+  "version": "0.2.2",
   "repository": {
     "type": "git",
     "url": "git://github.com/isaacs/minimatch.git"
@@ -22,7 +22,7 @@
     "lru-cache": "~1.0.5"
   },
   "devDependencies": {
-    "tap": "~0.1.3"
+    "tap": ""
   },
   "licenses": [
     {
     "name": "isaacs",
     "email": "i@izs.me"
   },
-  "_id": "minimatch@0.2.0",
+  "_id": "minimatch@0.2.2",
   "optionalDependencies": {},
   "_engineSupported": true,
-  "_npmVersion": "1.1.8",
+  "_npmVersion": "1.1.11",
   "_nodeVersion": "v0.7.7-pre",
   "_defaultsLoaded": true,
   "_from": "minimatch@0.2"
index 708953f..5d8266d 100644 (file)
@@ -6,7 +6,7 @@
   },
   "name": "glob",
   "description": "a little globber",
-  "version": "3.1.6",
+  "version": "3.1.9",
   "repository": {
     "type": "git",
     "url": "git://github.com/isaacs/node-glob.git"
   "scripts": {
     "test": "tap test/*.js"
   },
+  "license": "BSD",
   "_npmUser": {
     "name": "isaacs",
     "email": "i@izs.me"
   },
-  "_id": "glob@3.1.6",
+  "_id": "glob@3.1.9",
   "optionalDependencies": {},
   "_engineSupported": true,
-  "_npmVersion": "1.1.8",
+  "_npmVersion": "1.1.11",
   "_nodeVersion": "v0.7.7-pre",
   "_defaultsLoaded": true,
   "_from": "glob@3"
index 2713313..956d38d 100644 (file)
@@ -10,7 +10,7 @@
     "bindings",
     "gyp"
   ],
-  "version": "0.3.5",
+  "version": "0.3.7",
   "installVersion": 5,
   "author": {
     "name": "Nathan Rajlich",
@@ -29,6 +29,7 @@
   "dependencies": {
     "ansi": "0.0.x",
     "glob": "3",
+    "graceful-fs": "1",
     "fstream": "~0.1.13",
     "minimatch": "~0.1.4",
     "mkdirp": "0.3.0",
     "name": "isaacs",
     "email": "i@izs.me"
   },
-  "_id": "node-gyp@0.3.5",
+  "_id": "node-gyp@0.3.7",
   "devDependencies": {},
   "optionalDependencies": {},
   "_engineSupported": true,
-  "_npmVersion": "1.1.8",
+  "_npmVersion": "1.1.11",
   "_nodeVersion": "v0.7.7-pre",
   "_defaultsLoaded": true,
+  "dist": {
+    "shasum": "0a83feb32683c828537eacd6deeae066d1dc01f1"
+  },
   "_from": "node-gyp@~0.3.4"
 }
index 5843c14..e619575 100644 (file)
@@ -10,7 +10,7 @@
     "install",
     "package.json"
   ],
-  "version": "1.1.9",
+  "version": "1.1.12",
   "preferGlobal": true,
   "config": {
     "publishtest": false
@@ -51,7 +51,6 @@
     "block-stream": "*",
     "inherits": "1",
     "mkdirp": "0.3",
-    "fast-list": "~1.0.1",
     "read": "0",
     "lru-cache": "1",
     "node-gyp": "~0.3.4"
index 7c06782..2afa12d 100644 (file)
@@ -5,5 +5,6 @@
   , "sub/include"
   , "sub/include2"
   , "sub/include4"
-  , "test.sh" ]
+  , "test.sh"
+  , ".npmignore" ]
 , "scripts":{"test":"bash test.sh"}}