Skip to content
Browse files

create test & output dirs if they don't already exist

  • Loading branch information...
1 parent 4d62409 commit 74cd01702abc973a4f74a26d600b22a04e9c82d3 @zzo committed Nov 9, 2011
Showing with 9,815 additions and 0 deletions.
  1. +10 −0 backend/nodejute/jute/configure.js
  2. +1 −0 backend/nodejute/node_modules/.bin/forever
  3. +1 −0 backend/nodejute/node_modules/.bin/npm
  4. +1 −0 backend/nodejute/node_modules/.bin/npm-g
  5. +1 −0 backend/nodejute/node_modules/.bin/npm_g
  6. +81 −0 backend/nodejute/node_modules/connect/lib/cache.js
  7. +175 −0 backend/nodejute/node_modules/connect/lib/middleware/staticCache.js
  8. +10 −0 backend/nodejute/node_modules/npm/.gitignore
  9. +33 −0 backend/nodejute/node_modules/npm/.gitmodules
  10. +42 −0 backend/nodejute/node_modules/npm/AUTHORS
  11. +1 −0 backend/nodejute/node_modules/npm/CHANGES
  12. +35 −0 backend/nodejute/node_modules/npm/LICENSE
  13. +64 −0 backend/nodejute/node_modules/npm/Makefile
  14. +219 −0 backend/nodejute/node_modules/npm/README.md
  15. +16 −0 backend/nodejute/node_modules/npm/bin/npm-get-uid-gid.js
  16. +62 −0 backend/nodejute/node_modules/npm/bin/npm.js
  17. +22 −0 backend/nodejute/node_modules/npm/bin/read-package-json.js
  18. +2 −0 backend/nodejute/node_modules/npm/cli.js
  19. +39 −0 backend/nodejute/node_modules/npm/configure
  20. +29 −0 backend/nodejute/node_modules/npm/doc/adduser.md
  21. +1 −0 backend/nodejute/node_modules/npm/doc/author.md
  22. +10 −0 backend/nodejute/node_modules/npm/doc/bin.md
  23. +22 −0 backend/nodejute/node_modules/npm/doc/build.md
  24. +10 −0 backend/nodejute/node_modules/npm/doc/bundle.md
  25. +60 −0 backend/nodejute/node_modules/npm/doc/cache.md
  26. +31 −0 backend/nodejute/node_modules/npm/doc/changelog.md
  27. +184 −0 backend/nodejute/node_modules/npm/doc/coding-style.md
  28. +21 −0 backend/nodejute/node_modules/npm/doc/completion.md
  29. +587 −0 backend/nodejute/node_modules/npm/doc/config.md
  30. +19 −0 backend/nodejute/node_modules/npm/doc/deprecate.md
  31. +167 −0 backend/nodejute/node_modules/npm/doc/developers.md
  32. +14 −0 backend/nodejute/node_modules/npm/doc/docs.md
  33. +18 −0 backend/nodejute/node_modules/npm/doc/edit.md
  34. +16 −0 backend/nodejute/node_modules/npm/doc/explore.md
  35. +194 −0 backend/nodejute/node_modules/npm/doc/faq.md
  36. +1 −0 backend/nodejute/node_modules/npm/doc/find.md
  37. +185 −0 backend/nodejute/node_modules/npm/doc/folders.md
  38. +1 −0 backend/nodejute/node_modules/npm/doc/get.md
  39. +1 −0 backend/nodejute/node_modules/npm/doc/global.md
  40. +29 −0 backend/nodejute/node_modules/npm/doc/help-search.md
  41. +1 −0 backend/nodejute/node_modules/npm/doc/home.md
  42. +23 −0 backend/nodejute/node_modules/npm/doc/init.md
  43. +129 −0 backend/nodejute/node_modules/npm/doc/install.md
  44. +448 −0 backend/nodejute/node_modules/npm/doc/json.md
  45. +49 −0 backend/nodejute/node_modules/npm/doc/link.md
  46. +45 −0 backend/nodejute/node_modules/npm/doc/list.md
  47. +1 −0 backend/nodejute/node_modules/npm/doc/ln.md
  48. +1 −0 backend/nodejute/node_modules/npm/doc/ls.md
  49. +137 −0 backend/nodejute/node_modules/npm/doc/npm.md
  50. +11 −0 backend/nodejute/node_modules/npm/doc/outdated.md
  51. +29 −0 backend/nodejute/node_modules/npm/doc/owner.md
  52. +19 −0 backend/nodejute/node_modules/npm/doc/pack.md
  53. +10 −0 backend/nodejute/node_modules/npm/doc/prefix.md
  54. +15 −0 backend/nodejute/node_modules/npm/doc/prune.md
  55. +28 −0 backend/nodejute/node_modules/npm/doc/publish.md
  56. +19 −0 backend/nodejute/node_modules/npm/doc/rebuild.md
  57. +87 −0 backend/nodejute/node_modules/npm/doc/registry.md
  58. +41 −0 backend/nodejute/node_modules/npm/doc/removing-npm.md
  59. +19 −0 backend/nodejute/node_modules/npm/doc/restart.md
  60. +1 −0 backend/nodejute/node_modules/npm/doc/rm.md
  61. +10 −0 backend/nodejute/node_modules/npm/doc/root.md
  62. +21 −0 backend/nodejute/node_modules/npm/doc/run-script.md
  63. +169 −0 backend/nodejute/node_modules/npm/doc/scripts.md
  64. +10 −0 backend/nodejute/node_modules/npm/doc/search.md
  65. +122 −0 backend/nodejute/node_modules/npm/doc/semver.md
  66. +1 −0 backend/nodejute/node_modules/npm/doc/set.md
  67. +10 −0 backend/nodejute/node_modules/npm/doc/start.md
  68. +10 −0 backend/nodejute/node_modules/npm/doc/stop.md
  69. +28 −0 backend/nodejute/node_modules/npm/doc/submodule.md
  70. +11 −0 backend/nodejute/node_modules/npm/doc/tag.md
  71. +13 −0 backend/nodejute/node_modules/npm/doc/test.md
  72. +11 −0 backend/nodejute/node_modules/npm/doc/uninstall.md
  73. +14 −0 backend/nodejute/node_modules/npm/doc/unpublish.md
  74. +13 −0 backend/nodejute/node_modules/npm/doc/update.md
  75. +14 −0 backend/nodejute/node_modules/npm/doc/version.md
  76. +78 −0 backend/nodejute/node_modules/npm/doc/view.md
  77. +10 −0 backend/nodejute/node_modules/npm/doc/whoami.md
  78. BIN backend/nodejute/node_modules/npm/html/favicon.ico
  79. +85 −0 backend/nodejute/node_modules/npm/html/index.html
  80. BIN backend/nodejute/node_modules/npm/html/n-64.png
  81. BIN backend/nodejute/node_modules/npm/html/n-large.png
  82. BIN backend/nodejute/node_modules/npm/html/npm-16.png
  83. BIN backend/nodejute/node_modules/npm/html/npm-256-square.png
  84. BIN backend/nodejute/node_modules/npm/html/npm-256w.png
  85. BIN backend/nodejute/node_modules/npm/html/npm-64-square.png
  86. BIN backend/nodejute/node_modules/npm/html/npm-fin.png
  87. BIN backend/nodejute/node_modules/npm/html/npm-large.png
  88. BIN backend/nodejute/node_modules/npm/html/npm.png
  89. +50 −0 backend/nodejute/node_modules/npm/lib/adduser.js
  90. +18 −0 backend/nodejute/node_modules/npm/lib/bin.js
  91. +167 −0 backend/nodejute/node_modules/npm/lib/build.js
  92. +696 −0 backend/nodejute/node_modules/npm/lib/cache.js
  93. +239 −0 backend/nodejute/node_modules/npm/lib/completion.js
  94. +258 −0 backend/nodejute/node_modules/npm/lib/config.js
  95. +48 −0 backend/nodejute/node_modules/npm/lib/deprecate.js
  96. +46 −0 backend/nodejute/node_modules/npm/lib/docs.js
  97. +31 −0 backend/nodejute/node_modules/npm/lib/edit.js
  98. +34 −0 backend/nodejute/node_modules/npm/lib/explore.js
  99. +8 −0 backend/nodejute/node_modules/npm/lib/faq.js
  100. +12 −0 backend/nodejute/node_modules/npm/lib/get.js
  101. +173 −0 backend/nodejute/node_modules/npm/lib/help-search.js
  102. +95 −0 backend/nodejute/node_modules/npm/lib/help.js
  103. +233 −0 backend/nodejute/node_modules/npm/lib/init.js
  104. +690 −0 backend/nodejute/node_modules/npm/lib/install.js
  105. +153 −0 backend/nodejute/node_modules/npm/lib/link.js
  106. +170 −0 backend/nodejute/node_modules/npm/lib/ls.js
  107. +147 −0 backend/nodejute/node_modules/npm/lib/outdated.js
  108. +188 −0 backend/nodejute/node_modules/npm/lib/owner.js
  109. +66 −0 backend/nodejute/node_modules/npm/lib/pack.js
  110. +8 −0 backend/nodejute/node_modules/npm/lib/prefix.js
  111. +40 −0 backend/nodejute/node_modules/npm/lib/prune.js
  112. +143 −0 backend/nodejute/node_modules/npm/lib/publish.js
  113. +68 −0 backend/nodejute/node_modules/npm/lib/rebuild.js
  114. +1 −0 backend/nodejute/node_modules/npm/lib/restart.js
  115. +11 −0 backend/nodejute/node_modules/npm/lib/root.js
  116. +100 −0 backend/nodejute/node_modules/npm/lib/run-script.js
  117. +221 −0 backend/nodejute/node_modules/npm/lib/search.js
  118. +12 −0 backend/nodejute/node_modules/npm/lib/set.js
  119. +1 −0 backend/nodejute/node_modules/npm/lib/start.js
  120. +1 −0 backend/nodejute/node_modules/npm/lib/stop.js
  121. +93 −0 backend/nodejute/node_modules/npm/lib/submodule.js
  122. +17 −0 backend/nodejute/node_modules/npm/lib/tag.js
  123. +1 −0 backend/nodejute/node_modules/npm/lib/test.js
  124. +81 −0 backend/nodejute/node_modules/npm/lib/unbuild.js
  125. +57 −0 backend/nodejute/node_modules/npm/lib/uninstall.js
  126. +63 −0 backend/nodejute/node_modules/npm/lib/unpublish.js
  127. +34 −0 backend/nodejute/node_modules/npm/lib/update.js
  128. +43 −0 backend/nodejute/node_modules/npm/lib/utils/completion.sh
  129. +29 −0 backend/nodejute/node_modules/npm/lib/utils/completion/file-completion.js
  130. +46 −0 backend/nodejute/node_modules/npm/lib/utils/completion/installed-deep.js
  131. +79 −0 backend/nodejute/node_modules/npm/lib/utils/completion/installed-shallow.js
  132. +57 −0 backend/nodejute/node_modules/npm/lib/utils/completion/remote-packages.js
  133. +22 −0 backend/nodejute/node_modules/npm/lib/utils/completion/users.js
  134. +209 −0 backend/nodejute/node_modules/npm/lib/utils/config-defs.js
  135. +197 −0 backend/nodejute/node_modules/npm/lib/utils/error-handler.js
  136. +145 −0 backend/nodejute/node_modules/npm/lib/utils/excludes.js
  137. +105 −0 backend/nodejute/node_modules/npm/lib/utils/exec.js
  138. +151 −0 backend/nodejute/node_modules/npm/lib/utils/fetch.js
  139. +41 −0 backend/nodejute/node_modules/npm/lib/utils/find-prefix.js
  140. +53 −0 backend/nodejute/node_modules/npm/lib/utils/find.js
  141. +6 −0 backend/nodejute/node_modules/npm/lib/utils/get.js
Sorry, we could not display the entire diff because too many files (1,289) changed.
View
10 backend/nodejute/jute/configure.js
@@ -82,9 +82,19 @@ Create: function(hub) {
// Web paths and full paths...
config.outputDirWeb = config.outputDir;
config.outputDir = path.join(config.docRoot, config.outputDir);
+ try {
+ fs.statSync(config.outputDir);
+ } catch(e) {
+ fs.mkdirSync(config.outputDir, 0777)
+ }
config.testDirWeb = config.testDir;
config.testDir = path.join(config.docRoot, config.testDir);
+ try {
+ fs.statSync(config.testDir);
+ } catch(e) {
+ fs.mkdirSync(config.testDir, 0777)
+ }
// Find Java executable
if (process.env.JAVA_HOME) {
View
1 backend/nodejute/node_modules/.bin/forever
View
1 backend/nodejute/node_modules/.bin/npm
View
1 backend/nodejute/node_modules/.bin/npm-g
View
1 backend/nodejute/node_modules/.bin/npm_g
View
81 backend/nodejute/node_modules/connect/lib/cache.js
@@ -0,0 +1,81 @@
+
+/*!
+ * Connect - Cache
+ * Copyright(c) 2011 Sencha Inc.
+ * MIT Licensed
+ */
+
+/**
+ * Expose `Cache`.
+ */
+
+module.exports = Cache;
+
+/**
+ * LRU cache store.
+ *
+ * @param {Number} limit
+ * @api private
+ */
+
+function Cache(limit) {
+ this.store = {};
+ this.keys = [];
+ this.limit = limit;
+}
+
+/**
+ * Touch `key`, promoting the object.
+ *
+ * @param {String} key
+ * @param {Number} i
+ * @api private
+ */
+
+Cache.prototype.touch = function(key, i){
+ this.keys.splice(i,1);
+ this.keys.push(key);
+};
+
+/**
+ * Remove `key`.
+ *
+ * @param {String} key
+ * @api private
+ */
+
+Cache.prototype.remove = function(key){
+ delete this.store[key];
+};
+
+/**
+ * Get the object stored for `key`.
+ *
+ * @param {String} key
+ * @return {Array}
+ * @api private
+ */
+
+Cache.prototype.get = function(key){
+ return this.store[key];
+};
+
+/**
+ * Add a cache `key`.
+ *
+ * @param {String} key
+ * @return {Array}
+ * @api private
+ */
+
+Cache.prototype.add = function(key){
+ // initialize store
+ var len = this.keys.push(key);
+
+ // limit reached, invalid LRU
+ if (len > this.limit) this.remove(this.keys.shift());
+
+ var arr = this.store[key] = [];
+ arr.createdAt = new Date;
+ return arr;
+};
View
175 backend/nodejute/node_modules/connect/lib/middleware/staticCache.js
@@ -0,0 +1,175 @@
+
+/*!
+ * Connect - staticCache
+ * Copyright(c) 2011 Sencha Inc.
+ * MIT Licensed
+ */
+
+/**
+ * Module dependencies.
+ */
+
+var http = require('http')
+ , utils = require('../utils')
+ , Cache = require('../cache')
+ , url = require('url')
+ , fs = require('fs');
+
+/**
+ * Enables a memory cache layer on top of
+ * the `static()` middleware, serving popular
+ * static files.
+ *
+ * By default a maximum of 128 objects are
+ * held in cache, with a max of 256k each,
+ * totalling ~32mb.
+ *
+ * A Least-Recently-Used (LRU) cache algo
+ * is implemented through the `Cache` object,
+ * simply rotating cache objects as they are
+ * hit. This means that increasingly popular
+ * objects maintain their positions while
+ * others get shoved out of the stack and
+ * garbage collected.
+ *
+ * Benchmarks:
+ *
+ * static(): 2700 rps
+ * node-static: 5300 rps
+ * static() + staticCache(): 7500 rps
+ *
+ * Options:
+ *
+ * - `maxObjects` max cache objects [128]
+ * - `maxLength` max cache object length 256kb
+ *
+ * @param {Type} name
+ * @return {Type}
+ * @api public
+ */
+
+module.exports = function staticCache(options){
+ var options = options || {}
+ , cache = new Cache(options.maxObjects || 128)
+ , maxlen = options.maxLength || 1024 * 256;
+
+ return function staticCache(req, res, next){
+ var path = url.parse(req.url).pathname
+ , ranges = req.headers.range
+ , hit = cache.get(path)
+ , hitCC
+ , uaCC
+ , header
+ , age;
+
+ // cache static
+ req.on('static', function(stream){
+ var headers = res._headers
+ , cc = utils.parseCacheControl(headers['cache-control'] || '')
+ , contentLength = headers['content-length']
+ , hit;
+
+ // ignore larger files
+ if (!contentLength || contentLength > maxlen) return;
+
+ // dont cache items we shouldn't be
+ if ( cc['no-cache']
+ || cc['no-store']
+ || cc['private']
+ || cc['must-revalidate']) return;
+
+ // if already in cache then validate
+ if (hit = cache.get(path)){
+ if (headers.etag == hit[0].etag) {
+ hit[0].date = new Date;
+ return;
+ } else {
+ cache.remove(path);
+ }
+ }
+
+ // validation notifiactions don't contain a steam
+ if (null == stream) return;
+
+ // add the cache object
+ var arr = cache.add(path);
+ arr.push(headers);
+
+ // store the chunks
+ stream.on('data', function(chunk){
+ arr.push(chunk);
+ });
+
+ // flag it as complete
+ stream.on('end', function(){
+ arr.complete = true;
+ });
+ });
+
+ // cache hit, doesnt support range requests
+ if (hit && hit.complete && !ranges) {
+ header = utils.merge({}, hit[0]);
+ header.Age = age = (new Date - new Date(header.date)) / 1000 | 0;
+ header.date = new Date().toUTCString();
+
+ // parse cache-controls
+ hitCC = utils.parseCacheControl(header['cache-control'] || '');
+ uaCC = utils.parseCacheControl(req.headers['cache-control'] || '');
+
+ // check if we must revalidate(bypass)
+ if (hitCC['no-cache'] || uaCC['no-cache']) return next();
+
+ // check freshness of entity
+ if (isStale(hitCC, age) || isStale(uaCC, age)) return next();
+
+ // conditional GET support
+ if (utils.conditionalGET(req)) {
+ if (!utils.modified(req, res, header)) {
+ header['content-length'] = 0;
+ res.writeHead(304, header);
+ return res.end();
+ }
+ }
+
+ // HEAD support
+ if ('HEAD' == req.method) {
+ header['content-length'] = 0;
+ res.writeHead(200, header);
+ return res.end();
+ }
+
+ // respond with cache
+ res.writeHead(200, header);
+
+ // backpressure
+ function write(i) {
+ var buf = hit[i];
+ if (!buf) return res.end();
+ if (false === res.write(buf)) {
+ res.once('drain', function(){
+ write(++i);
+ });
+ } else {
+ write(++i);
+ }
+ }
+
+ return write(1);
+ }
+
+ next();
+ }
+};
+
+/**
+ * Check if cache item is stale
+ *
+ * @param {Object} cc
+ * @param {Number} age
+ * @return {Boolean}
+ * @api private
+ */
+
+function isStale(cc, age) {
+ return cc['max-age'] && cc['max-age'] <= age;
+}
View
10 backend/nodejute/node_modules/npm/.gitignore
@@ -0,0 +1,10 @@
+*.swp
+test/bin
+test/output.log
+test/packages/*/node_modules
+test/packages/npm-test-depends-on-spark/which-spark.log
+test/packages/test-package/random-data.txt
+test/root
+node_modules/ronn
+node_modules/.bin
+npm-debug.log
View
33 backend/nodejute/node_modules/npm/.gitmodules
@@ -0,0 +1,33 @@
+[submodule "node_modules/semver"]
+ path = node_modules/semver
+ url = https://github.com/isaacs/node-semver.git
+[submodule "node_modules/abbrev"]
+ path = node_modules/abbrev
+ url = https://github.com/isaacs/abbrev-js.git
+[submodule "node_modules/nopt"]
+ path = node_modules/nopt
+ url = https://github.com/isaacs/nopt.git
+[submodule "node_modules/node-uuid"]
+ path = node_modules/node-uuid
+ url = https://github.com/broofa/node-uuid
+[submodule "node_modules/minimatch"]
+ path = node_modules/minimatch
+ url = https://github.com/isaacs/minimatch.git
+[submodule "node_modules/graceful-fs"]
+ path = node_modules/graceful-fs
+ url = https://github.com/isaacs/node-graceful-fs.git
+[submodule "node_modules/slide"]
+ path = node_modules/slide
+ url = https://github.com/isaacs/slide-flow-control.git
+[submodule "node_modules/rimraf"]
+ path = node_modules/rimraf
+ url = https://github.com/isaacs/rimraf.git
+[submodule "node_modules/proto-list"]
+ path = node_modules/proto-list
+ url = https://github.com/isaacs/proto-list.git
+[submodule "node_modules/ini"]
+ path = node_modules/ini
+ url = https://github.com/isaacs/ini.git
+[submodule "node_modules/which"]
+ path = node_modules/which
+ url = https://github.com/isaacs/node-which.git
View
42 backend/nodejute/node_modules/npm/AUTHORS
@@ -0,0 +1,42 @@
+# Authors sorted by whether or not they're me
+Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)
+Steve Steiner <ssteinerX@gmail.com> (http://websaucesoftware.com/blog/)
+Mikeal Rogers <mikeal.rogers@gmail.com> (http://www.mikealrogers.com/)
+Aaron Blohowiak <aaron.blohowiak@gmail.com> (http://aaronblohowiak.com/)
+Martyn Smith <martyn@dollyfish.net.nz> (http://dollyfish.net.nz/)
+Mathias Pettersson <mape@mape.me> (http://mape.me/)
+Brian Hammond <brian@fictorial.com> (http://fictorial.com/)
+Charlie Robbins <charlie.robbins@gmail.com> (http://www.charlierobbins.com/)
+Francisco Treacy <francisco.treacy@gmail.com> (http://franciscotreacy.com/)
+Cliffano Subagio <cliffano@gmail.com> (http://blog.cliffano.com/)
+Christian Eager <christian.eager@nokia.com> (http://perpenduum.com)
+Dav Glass <davglass@gmail.com> (http://blog.davglass.com)
+Alex K. Wolfe <alexkwolfe@gmail.com>
+James Sanders <jimmyjazz14@gmail.com> (http://james-sanders.com/)
+Reid Burke <me@reidburke.com> (http://reidburke.com/)
+Arlo Breault <arlolra@gmail.com> (http://thoughtherder.com/)
+Timo Derstappen <teemow@gmail.com> (http://teemow.com)
+Bradley Meck <bradley.meck@gmail.com>
+Bart Teeuwisse <bart.teeuwisse@thecodemill.biz> (http://thecodemill.biz/)
+Ben Noordhuis <info@bnoordhuis.nl> (http://bnoordhuis.nl/)
+Tor Valamo <tor.valamo@gmail.com> (http://www.magnimedia.no/)
+Whyme.Lyu <5longluna@gmail.com> (http://whyme.kuantu.com/)
+Olivier Melcher <olivier.melcher@gmail.com>
+Tomaž Muraus <kami@k5-storitve.net> (http://www.tomaz-muraus.info)
+Evan Meagher <evan.meagher@gmail.com> (http://evanmeagher.net/)
+Orlando Vazquez <ovazquez@gmail.com> (http://2wycked.net/)
+George Miroshnykov <gmiroshnykov@lohika.com>
+Geoff Flarity (http://ca.linkedin.com/pub/geoff-flarity/a/536/43a)
+Pete Kruckenberg <pete@kruckenberg.com>
+Laurie Harper <laurie@holoweb.net> (http://laurie.holoweb.net/)
+Chris Wong <chris@chriswongstudio.com>
+Max Goodman <c@chromacode.com> (http://chromacode.com/)
+Scott Bronson <brons_github@rinspin.com>
+Federico Romero <federomero@gmail.com>
+Visnu Pitiyanuvath <visnupx@gmail.com> (http://visnup.com)
+Irakli Gozalishvili <rfobic@gmail.com> (http://jeditoolkit.com/)
+Mark Cahill <mark@tiemonster.info> (http://www.tiemonster.info/)
+Zearin <zearin@gonk.net>
+Iain Sproat <iainsproat@gmail.com>
+Trent Mick <trentm@gmail.com> (http://trentm.com/)
+Felix Geisendörfer <felix@debuggable.com> (http://www.debuggable.com/)
View
1 backend/nodejute/node_modules/npm/CHANGES
View
35 backend/nodejute/node_modules/npm/LICENSE
@@ -0,0 +1,35 @@
+Copyright 2009, 2010, 2011 Isaac Z. Schlueter.
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+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.
+
+
+"Node.js" and "node" trademark Joyent, Inc. npm is not officially
+part of the Node.js project, and is neither owned by nor
+officially affiliated with Joyent, Inc.
+
+Packages published in the npm registry are not part of npm
+itself, and are the sole property of their respective
+maintainers.
+
+"npm Logo" created by Mathias Pettersson and Brian Hammond,
+used with permission.
View
64 backend/nodejute/node_modules/npm/Makefile
@@ -0,0 +1,64 @@
+SHELL = bash
+
+docs = $(shell find doc -name '*.md' \
+ |sed 's|.md|.1|g' \
+ |sed 's|doc/|man1/|g' )
+
+doc_subfolders = $(shell find doc -type d \
+ |sed 's|doc/|man1/|g' )
+
+# This is the default make target.
+# Since 'make' typically does non-installation build stuff,
+# it seems appropriate.
+submodules:
+ ! [ -d .git ] || git submodule update --init --recursive
+
+latest: submodules
+ @echo "Installing latest published npm"
+ @echo "Use 'make install' or 'make link' to install the code"
+ @echo "in this folder that you're looking at right now."
+ node cli.js install -g -f npm
+
+install: submodules
+ node cli.js install -g -f
+
+# backwards compat
+dev: install
+
+link: uninstall
+ node cli.js link -f
+
+clean: uninstall
+ node cli.js cache clean
+
+uninstall: submodules
+ node cli.js rm npm -g -f
+
+man: man1
+
+man1: $(doc_subfolders)
+ [ -d man1 ] || mkdir -p man1
+
+doc: man1 $(docs)
+
+# use `npm install ronn` for this to work.
+man1/%.1: doc/%.md
+ @[ -x ./node_modules/.bin/ronn ] || node cli.js install ronn
+ ./node_modules/.bin/ronn --roff $< > $@
+
+man1/%/: doc/%/
+ @[ -d $@ ] || mkdir -p $@
+
+test: submodules
+ node cli.js test
+
+version: link
+ git add package.json &&\
+ git ci -m v$(shell npm -v)
+
+publish: link
+ git tag -s -m v$(shell npm -v) v$(shell npm -v) &&\
+ git push origin master &&\
+ npm publish
+
+.PHONY: latest install dev link doc clean uninstall test man
View
219 backend/nodejute/node_modules/npm/README.md
@@ -0,0 +1,219 @@
+# npm
+
+This is just enough info to get you up and running.
+
+Much more info available via `npm help` once it's installed.
+
+## IMPORTANT
+
+**You need node v0.4 or higher to run this program.**
+
+To install an old **and unsupported** version of npm that works on node 0.3
+and prior:
+
+```bash
+git clone git://github.com/isaacs/npm.git ./npm
+cd npm
+git checkout origin/0.2
+make dev
+```
+
+## Simple Install
+
+To install npm with one command, do this:
+
+```bash
+curl http://npmjs.org/install.sh | sh
+```
+
+To skip the npm 0.x cleanup, do this:
+
+```bash
+curl http://npmjs.org/install.sh | clean=no sh
+```
+
+To say "yes" to the 0.x cleanup, but skip the prompt:
+
+```bash
+curl http://npmjs.org/install.sh | clean=yes sh
+```
+
+If that fails, try this:
+
+```bash
+git clone http://github.com/isaacs/npm.git
+cd npm
+sudo make install
+```
+
+If you're sitting in the code folder reading this document in your
+terminal, then you've already got the code. Just do:
+
+```bash
+sudo make install
+```
+
+and npm will install itself.
+
+If you don't have make, and don't have curl or git, and ALL you have is
+this code and node, you can probably do this:
+
+```bash
+sudo node ./cli.js install -g
+```
+
+However, note that github tarballs **do not contain submodules**, so
+those won't work. You'll have to also fetch the appropriate submodules
+listed in the .gitmodules file.
+
+## Permissions
+
+**tl;dr**
+
+* Use `sudo` for greater safety. Or don't, if you prefer not to.
+* npm will downgrade permissions if it's root before running any build
+ scripts that package authors specified.
+
+### More details...
+
+As of version 0.3, it is recommended to run npm as root.
+This allows npm to change the user identifier to the `nobody` user prior
+to running any package build or test commands.
+
+If you are not the root user, or if you are on a platform that does not
+support uid switching, then npm will not attempt to change the userid.
+
+If you would like to ensure that npm **always** runs scripts as the
+"nobody" user, and have it fail if it cannot downgrade permissions, then
+set the following configuration param:
+
+```bash
+npm config set unsafe-perm false
+```
+
+This will prevent running in unsafe mode, even as non-root users.
+
+## Uninstalling
+
+So sad to see you go.
+
+```bash
+sudo npm uninstall npm -g
+```
+
+Or, if that fails,
+
+```bash
+sudo make uninstall
+```
+
+## More Severe Uninstalling
+
+Usually, the above instructions are sufficient. That will remove
+npm, but leave behind anything you've installed.
+
+If you would like to remove all the packages that you have installed,
+then you can use the `npm ls` command to find them, and then `npm rm` to
+remove them.
+
+To remove cruft left behind by npm 0.x, you can use the included
+`clean-old.sh` script file. You can run it conveniently like this:
+
+```bash
+npm explore npm -g -- sh scripts/clean-old.sh
+```
+
+npm uses two configuration files, one for per-user configs, and another
+for global (every-user) configs. You can view them by doing:
+
+```bash
+npm config get userconfig # defaults to ~/.npmrc
+npm config get globalconfig # defaults to /usr/local/etc/npmrc
+```
+
+Uninstalling npm does not remove configuration files by default. You
+must remove them yourself manually if you want them gone. Note that
+this means that future npm installs will not remember the settings that
+you have chosen.
+
+## Using npm Programmatically
+
+If you would like to use npm programmatically, you can do that.
+It's not very well documented, but it *is* rather simple.
+
+```javascript
+var npm = require("npm")
+npm.load(myConfigObject, function (er) {
+ if (er) return handlError(er)
+ npm.commands.install(["some", "args"], function (er, data) {
+ if (er) return commandFailed(er)
+ // command succeeded, and data might have some info
+ })
+ npm.on("log", function (message) { .... })
+})
+```
+
+The `load` function takes an object hash of the command-line configs.
+The various `npm.commands.<cmd>` functions take an **array** of
+positional argument **strings**. The last argument to any
+`npm.commands.<cmd>` function is a callback. Some commands take other
+optional arguments. Read the source.
+
+You cannot set configs individually for any single npm function at this
+time. Since `npm` is a singleton, any call to `npm.config.set` will
+change the value for *all* npm commands in that process.
+
+See `./bin/npm.js` for an example of pulling config values off of the
+command line arguments using nopt. You may also want to check out `npm
+help config` to learn about all the options you can set there.
+
+## More Docs
+
+Check out the [docs](http://github.com/isaacs/npm/blob/master/doc/),
+especially the
+[faq](http://github.com/isaacs/npm/blob/master/doc/faq.md#readme).
+
+You can use the `npm help` command to read any of them.
+
+If you're a developer, and you want to use npm to publish your program,
+you should
+[read this](http://github.com/isaacs/npm/blob/master/doc/developers.md#readme)
+
+## Legal Stuff
+
+"npm" and "the npm registry" are owned by Isaac Z. Schlueter. All
+rights not explicitly granted in the MIT license are reserved. See the
+included LICENSE file for more details.
+
+"Node.js" and "node" are trademarks owned by Joyent, Inc. npm is not
+officially part of the Node.js project, and is neither owned by nor
+officially affiliated with Joyent, Inc.
+
+The packages in the npm registry are not part of npm itself, and are the
+sole property of their respective maintainers. While every effort is
+made to ensure accountability, there is absolutely no guarantee,
+warrantee, or assertion made as to the quality, fitness for a specific
+purpose, or lack of malice in any given npm package. Modules
+published on the npm registry are not affiliated with or endorsed by
+Joyent, Inc., Isaac Z. Schlueter, Ryan Dahl, or the Node.js project.
+
+If you have a complaint about a package in the npm registry, and cannot
+resolve it with the package owner, please express your concerns to
+Isaac Z. Schlueter at <i@izs.me>.
+
+### In plain english
+
+This is mine; not my employer's, not Node's, not Joyent's, not Ryan
+Dahl's.
+
+If you publish something, it's yours, and you are solely accountable
+for it. Not me, not Node, not Joyent, not Ryan Dahl.
+
+If other people publish something, it's theirs. Not mine, not Node's,
+not Joyent's, not Ryan Dahl's.
+
+Yes, you can publish something evil. It will be removed promptly if
+reported, and we'll lose respect for you. But there is no vetting
+process for published modules.
+
+If this concerns you, inspect the source before using packages.
View
16 backend/nodejute/node_modules/npm/bin/npm-get-uid-gid.js
@@ -0,0 +1,16 @@
+var argv = process.argv.slice(2)
+ , user = argv[0] || process.getuid()
+ , group = argv[1] || process.getgid()
+
+if (!isNaN(user)) user = +user
+if (!isNaN(group)) group = +group
+
+console.error([user, group])
+
+try {
+ process.setgid(group)
+ process.setuid(user)
+ console.log(JSON.stringify({uid:+process.getuid(), gid:+process.getgid()}))
+} catch (ex) {
+ console.log(JSON.stringify({error:ex.message,errno:ex.errno}))
+}
View
62 backend/nodejute/node_modules/npm/bin/npm.js
@@ -0,0 +1,62 @@
+#!/usr/bin/env node
+;(function () { // wrapper in case we're in module_context mode
+var log = require("../lib/utils/log")
+log.waitForConfig()
+log.info("ok", "it worked if it ends with")
+
+var fs = require("graceful-fs")
+ , path = require("path")
+ , npm = require("../npm")
+ , ini = require("../lib/utils/ini")
+ , errorHandler = require("../lib/utils/error-handler")
+
+ , configDefs = require("../lib/utils/config-defs")
+ , shorthands = configDefs.shorthands
+ , types = configDefs.types
+ , nopt = require("nopt")
+
+// if npm is called as "npmg" or "npm_g", then
+// run in global mode.
+if(path.basename(process.argv[1]).slice(-1) === "g") {
+ process.argv.splice(1, 1, "npm", "-g")
+}
+
+log.verbose(process.argv, "cli")
+
+var conf = nopt(types, shorthands)
+npm.argv = conf.argv.remain
+if (npm.deref(npm.argv[0])) npm.command = npm.argv.shift()
+else conf.usage = true
+
+
+if (conf.version) {
+ console.log(npm.version)
+ return
+} else log("npm@"+npm.version, "using")
+log("node@"+process.version, "using")
+
+// make sure that this version of node works with this version of npm.
+var semver = require("semver")
+ , nodeVer = process.version
+ , reqVer = npm.nodeVersionRequired
+if (reqVer && !semver.satisfies(nodeVer, reqVer)) {
+ return errorHandler(new Error(
+ "npm doesn't work with node " + nodeVer
+ + "\nRequired: node@" + reqVer), true)
+}
+
+process.on("uncaughtException", errorHandler)
+
+if (conf.usage && npm.command !== "help") {
+ npm.argv.unshift(npm.command)
+ npm.command = "help"
+}
+
+// now actually fire up npm and run the command.
+// this is how to use npm programmatically:
+conf._exit = true
+npm.load(conf, function (er) {
+ if (er) return errorHandler(er)
+ npm.commands[npm.command](npm.argv, errorHandler)
+})
+})()
View
22 backend/nodejute/node_modules/npm/bin/read-package-json.js
@@ -0,0 +1,22 @@
+var argv = process.argv
+if (argv.length < 3) {
+ console.error("Usage: read-package.json <file> [<fields> ...]")
+ process.exit(1)
+}
+
+var fs = require("fs")
+ , file = argv[2]
+ , readJson = require("../lib/utils/read-json")
+
+readJson(file, function (er, data) {
+ if (er) throw er
+ if (argv.length === 3) console.log(data)
+ else argv.slice(3).forEach(function (field) {
+ field = field.split(".")
+ var val = data
+ field.forEach(function (f) {
+ val = val[f]
+ })
+ console.log(val)
+ })
+})
View
2 backend/nodejute/node_modules/npm/cli.js
@@ -0,0 +1,2 @@
+#!/usr/bin/env node
+require("./bin/npm.js")
View
39 backend/nodejute/node_modules/npm/configure
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+# this is a wicked hack, but whatever.
+
+CONFIGS=()
+i=0
+
+while [ $# -gt 0 ]; do
+ conf="$1"
+ case $conf in
+ --help)
+ echo "./configure --param=value ..."
+ exit 0
+ ;;
+ --*)
+ CONFIGS[$i]="${conf:2}"
+ ;;
+ *)
+ CONFIGS[$i]="$conf"
+ ;;
+ esac
+ let i++
+ shift
+done
+
+# Pull in submodules, since npm can't work without them.
+if [ -d .git ]; then
+ git submodule update --init --recursive
+fi
+
+for c in "${CONFIGS[@]}"; do
+ echo '+node ./bin/npm.js config set "'"$c"'"'
+ node ./bin/npm.js config set "$c"
+done
+echo
+
+echo +node ./bin/npm.js config ls
+echo
+node ./bin/npm.js config ls
View
29 backend/nodejute/node_modules/npm/doc/adduser.md
@@ -0,0 +1,29 @@
+npm-adduser(1) -- Add a registry user account
+=============================================
+
+## SYNOPSIS
+
+ npm adduser
+
+## DESCRIPTION
+
+Create or verify a user named `<username>` in the npm registry, and
+save the credentials to the `.npmrc` file.
+
+The username, password, and email are read in from prompts.
+
+You may use this command to change your email address, but not username
+or password.
+
+To reset your password, go to <http://admin.npmjs.org/>
+
+You may use this command multiple times with the same user account to
+authorize on a new machine.
+
+## CONFIGURATION
+
+### registry
+
+Default: http://registry.npmjs.org/
+
+The base URL of the npm package registry.
View
1 backend/nodejute/node_modules/npm/doc/author.md
View
10 backend/nodejute/node_modules/npm/doc/bin.md
@@ -0,0 +1,10 @@
+npm-bin(1) -- Display npm bin folder
+====================================
+
+## SYNOPSIS
+
+ npm bin
+
+## DESCRIPTION
+
+Print the folder where npm will install executables.
View
22 backend/nodejute/node_modules/npm/doc/build.md
@@ -0,0 +1,22 @@
+npm-build(1) -- Build a package
+===============================
+
+## SYNOPSIS
+
+ npm build <package-folder>
+
+* `<package-folder>`:
+ A folder containing a `package.json` file in its root.
+
+## DESCRIPTION
+
+This is the plumbing command called by `npm link` and `npm install`.
+
+It should generally not be called directly.
+
+## SEE ALSO
+
+* npm-install(1)
+* npm-link(1)
+* npm-scripts(1)
+* npm-json(1)
View
10 backend/nodejute/node_modules/npm/doc/bundle.md
@@ -0,0 +1,10 @@
+npm-bundle(1) -- REMOVED
+========================
+
+## DESCRIPTION
+
+The `npm bundle` command has been removed in 1.0, for the simple reason
+that it is no longer necessary, as the default behavior is now to
+install packages into the local space.
+
+Just use `npm install` now to do what `npm bundle` used to do.
View
60 backend/nodejute/node_modules/npm/doc/cache.md
@@ -0,0 +1,60 @@
+npm-cache(1) -- install a package
+===================================
+
+## SYNOPSIS
+
+ npm cache add <tarball file>
+ npm cache add <folder>
+ npm cache add <tarball url>
+ npm cache add <name>@<version>
+
+ npm cache ls [<path>]
+
+ npm cache clean [<path>]
+
+## DESCRIPTION
+
+* add:
+ Add the specified package to the local cache. This command is primarily
+ intended to be used internally by npm, but it can provide a way to
+ add data to the local installation cache explicitly.
+
+* ls:
+ Show the data in the cache. Argument is a path to show in the cache
+ folder. Works a bit like the `find` program, but limited by the
+ `depth` config.
+
+* clean:
+ Delete data out of the cache folder. If an argument is provided, then
+ it specifies a subpath to delete. If no argument is provided, then
+ the entire cache is cleared.
+
+## DETAILS
+
+npm stores cache data in `$HOME/.npm`. For each package that is added
+to the cache, three pieces of information are stored in
+`{cache}/{name}/{version}`:
+
+* .../package/:
+ A folder containing the package contents as they appear in the tarball.
+* .../package.json:
+ The package.json file, as npm sees it, with overlays applied and a _id attribute.
+* .../package.tgz:
+ The tarball for that version.
+
+Additionally, whenever a registry request is made, a `.cache.json` file
+is placed at the corresponding URI, to store the ETag and the requested
+data.
+
+Commands that make non-essential registry requests (such as `search` and
+`view`, or the completion scripts) generally specify a minimum timeout.
+If the `.cache.json` file is younger than the specified timeout, then
+they do not make an HTTP request to the registry.
+
+## CONFIGURATION
+
+### cache
+
+Default: `$HOME/.npm` on Posix, or `$HOME/npm-cache` on Windows.
+
+The root cache folder.
View
31 backend/nodejute/node_modules/npm/doc/changelog.md
@@ -0,0 +1,31 @@
+npm-changelog(1) -- Changes
+===========================
+
+## HISTORY
+
+### 1.0
+* Greatly simplified folder structure
+* Install locally (bundle by default)
+* Drastic rearchitecture
+
+### 0.3
+* More correct permission/uid handling when running as root
+* Require node 0.4.0
+* Reduce featureset
+* Packages without "main" modules don't export modules
+* Remove support for invalid JSON (since node doesn't support it)
+
+### 0.2
+* First allegedly "stable" release
+* Most functionality implemented
+* Used shim files and `name@version` symlinks
+* Feature explosion
+* Kind of a mess
+
+### 0.1
+* push to beta, and announce
+* Solaris and Cygwin support
+
+### 0.0
+* Lots of sketches and false starts; abandoned a few times
+* Core functionality established
View
184 backend/nodejute/node_modules/npm/doc/coding-style.md
@@ -0,0 +1,184 @@
+npm-coding-style(1) -- npm's "funny" coding style
+=================================================
+
+## DESCRIPTION
+
+npm's coding style is a bit unconventional. It is not different for
+difference's sake, but rather a carefully crafted style that is
+designed to reduce visual clutter and make bugs more apparent.
+
+If you want to contribute to npm (which is very encouraged), you should
+make your code conform to npm's style.
+
+## Line Length
+
+Keep lines shorter than 80 characters. It's better for lines to be
+too short than to be too long. Break up long lists, objects, and other
+statements onto multiple lines.
+
+## Indentation
+
+Two-spaces. Tabs are better, but they look like hell in web browsers
+(and on github), and node uses 2 spaces, so that's that.
+
+Configure your editor appropriately.
+
+## Curly braces
+
+Curly braces belong on the same line as the thing that necessitates them.
+
+Bad:
+
+ function ()
+ {
+
+Good:
+
+ function () {
+
+If a block needs to wrap to the next line, use a curly brace. Don't
+use it if it doesn't.
+
+Bad:
+
+ if (foo) { bar() }
+ while (foo)
+ bar()
+
+Good:
+
+ if (foo) bar()
+ while (foo) {
+ bar()
+ }
+
+## Semicolons
+
+Don't use them except in four situations:
+
+* `for (;;)` loops. They're actually required.
+* null loops like: `while (something) ;` (But you'd better have a good
+ reason for doing that.)
+* case "foo": doSomething(); break
+* In front of a leading ( or [ at the start of the line.
+ This prevents the expression from being interpreted
+ as a function call or property access, respectively.
+
+Some examples of good semicolon usage:
+
+ ;(x || y).doSomething()
+ ;[a, b, c].forEach(doSomething)
+ for (var i = 0; i < 10; i ++) {
+ switch (state) {
+ case "begin": start(); continue
+ case "end": finish(); break
+ default: throw new Error("unknown state")
+ }
+ end()
+ }
+
+Note that starting lines with `-` and `+` also should be prefixed
+with a semicolon, but this is much less common.
+
+## Comma First
+
+If there is a list of things separated by commas, and it wraps
+across multiple lines, put the comma at the start of the next
+line, directly below the token that starts the list. Put the
+final token in the list on a line by itself. For example:
+
+ var magicWords = [ "abracadabra"
+ , "gesundheit"
+ , "ventrilo"
+ ]
+ , spells = { "fireball" : function () { setOnFire() }
+ , "water" : function () { putOut() }
+ }
+ , a = 1
+ , b = "abc"
+ , etc
+ , somethingElse
+
+## Whitespace
+
+Put a single space in front of ( for anything other than a function call.
+Also use a single space wherever it makes things more readable.
+
+Don't leave trailing whitespace at the end of lines. Don't indent empty
+lines. Don't use more spaces than are helpful.
+
+## Functions
+
+Use named functions. They make stack traces a lot easier to read.
+
+## Callbacks, Sync/async Style
+
+Use the asynchronous/non-blocking versions of things as much as possible.
+It might make more sense for npm to use the synchronous fs APIs, but this
+way, the fs and http and child process stuff all uses the same callback-passing
+methodology.
+
+The callback should always be the last argument in the list. Its first
+argument is the Error or null.
+
+Be very careful never to ever ever throw anything. It's worse than useless.
+Just send the error message back as the first argument to the callback.
+
+## Errors
+
+Always create a new Error object with your message. Don't just return a
+string message to the callback. Stack traces are handy.
+
+Use the `require("./utils/log").er` function. It takes a callback and an
+error message, and returns an object that will report the message in the
+event of a failure. It's quite handy.
+
+ function myThing (args, cb) {
+ getData(args, function (er, data) {
+ if (er) return log.er(cb, "Couldn't get data")(er)
+ doSomethingElse(data, cb)
+ })
+ }
+ function justHasToWork (cb) {
+ doSomething(log.er(cb, "the doSomething failed."))
+ }
+
+## Logging
+
+Please clean up logs when they are no longer helpful. In particular,
+logging the same object over and over again is not helpful. Logs should
+report what's happening so that it's easier to track down where a fault
+occurs.
+
+Use appropriate log levels. The default log() function logs at the
+"info" level. See `npm help config` and search for "loglevel".
+
+## Case, naming, etc.
+
+Use lowerCamelCase for multiword identifiers when they refer to objects,
+functions, methods, members, or anything not specified in this section.
+
+Use UpperCamelCase for class names (things that you'd pass to "new").
+
+Use all-lower-hyphen-css-case for multiword filenames and config keys.
+
+Use named functions. They make stack traces easier to follow.
+
+Use CAPS_SNAKE_CASE for constants, things that should never change
+and are rarely used.
+
+Use a single uppercase letter for function names where the function
+would normally be anonymous, but needs to call itself recursively. It
+makes it clear that it's a "throwaway" function.
+
+## null, undefined, false, 0
+
+Boolean variables and functions should always be either `true` or
+`false`. Don't set it to 0 unless it's supposed to be a number.
+
+When something is intentionally missing or removed, set it to `null`.
+
+Don't set things to `undefined`. Reserve that value to mean "not yet
+set to anything."
+
+Boolean objects are verboten.
View
21 backend/nodejute/node_modules/npm/doc/completion.md
@@ -0,0 +1,21 @@
+npm-completion(1) -- Tab Completion for npm
+===========================================
+
+## SYNOPSIS
+
+ . <(npm completion)
+
+## DESCRIPTION
+
+Enables tab-completion in all npm commands. The synopsis above
+loads the completions into your current shell. Adding it to
+your ~/.bashrc or ~/.zshrc will make the completions available
+everywhere.
+
+You may of course also pipe the output of npm completion to a file
+such as `/usr/local/etc/bash_completion.d/npm` if you have a system
+that will read that file for you.
+
+When `COMP_CWORD`, `COMP_LINE`, and `COMP_POINT` are defined in the
+environment, `npm completion` acts in "plumbing mode", and outputs
+completions based on the arguments.
View
587 backend/nodejute/node_modules/npm/doc/config.md
@@ -0,0 +1,587 @@
+npm-config(1) -- Manage the npm configuration file
+==================================================
+
+## SYNOPSIS
+
+ npm config set <key> <value> [--global]
+ npm config get <key>
+ npm config delete <key>
+ npm config list
+ npm config edit
+ npm get <key>
+ npm set <key> <value> [--global]
+
+## DESCRIPTION
+
+npm gets its configuration values from 5 sources, in this priority:
+
+* cli:
+ The command line flags. Putting `--foo bar` on the command line sets the
+ `foo` configuration parameter to `"bar"`. A `--` argument tells the cli
+ parser to stop reading flags. A `--flag` parameter that is at the *end* of
+ the command will be given the value of `true`.
+* env:
+ Any environment variables that start with `npm_config_` will be interpreted
+ as a configuration parameter. For example, putting `npm_config_foo=bar` in
+ your environment will set the `foo` configuration parameter to `bar`. Any
+ environment configurations that are not given a value will be given the value
+ of `true`. Config values are case-insensitive, so `NPM_CONFIG_FOO=bar` will
+ work the same.
+* $HOME/.npmrc (or the `userconfig` param, if set above):
+ This file is an ini-file formatted list of `key = value` parameters.
+* $PREFIX/etc/npmrc (or the `globalconfig` param, if set above):
+ This file is an ini-file formatted list of `key = value` parameters
+* default configs:
+ This is a set of configuration parameters that are internal to npm, and are
+ defaults if nothing else is specified.
+
+## Sub-commands
+
+Config supports the following sub-commands:
+
+### set
+
+ npm config set key value
+
+Sets the config key to the value.
+
+If value is omitted, then it sets it to "true".
+
+### get
+
+ npm config get key
+
+Echo the config value to stdout.
+
+### list
+
+ npm config list
+
+Show all the config settings.
+
+### delete
+
+ npm config delete key
+
+Deletes the key from all configuration files.
+
+### edit
+
+ npm config edit
+
+Opens the config file in an editor. Use the `--global` flag to edit the
+global config.
+
+## Shorthands and Other CLI Niceties
+
+The following shorthands are parsed on the command-line:
+
+* `-v`: `--version`
+* `-h`, `-?`, `--help`, `-H`: `--usage`
+* `-s`, `--silent`: `--loglevel silent`
+* `-d`: `--loglevel info`
+* `-dd`, `--verbose`: `--loglevel verbose`
+* `-ddd`: `--loglevel silly`
+* `-g`: `--global`
+* `-l`: `--long`
+* `-p`, `--porcelain`: `--parseable`
+* `-reg`: `--registry`
+* `-v`: `--version`
+* `-f`: `--force`
+* `-l`: `--long`
+* `-desc`: `--description`
+* `-S`: `--save`
+* `-y`: `--yes`
+* `-n`: `--yes false`
+* `ll` and `la` commands: `ls --long`
+
+If the specified configuration param resolves unambiguously to a known
+configuration parameter, then it is expanded to that configuration
+parameter. For example:
+
+ npm ls --par
+ # same as:
+ npm ls --parseable
+
+If multiple single-character shorthands are strung together, and the
+resulting combination is unambiguously not some other configuration
+param, then it is expanded to its various component pieces. For
+example:
+
+ npm ls -gpld
+ # same as:
+ npm ls --global --parseable --long --loglevel info
+
+## Per-Package Config Settings
+
+When running scripts (see `npm help scripts`)
+the package.json "config" keys are overwritten in the environment if
+there is a config param of `<name>[@<version>]:<key>`. For example, if
+the package.json has this:
+
+ { "name" : "foo"
+ , "config" : { "port" : "8080" }
+ , "scripts" : { "start" : "node server.js" } }
+
+and the server.js is this:
+
+ http.createServer(...).listen(process.env.npm_package_config_port)
+
+then the user could change the behavior by doing:
+
+ npm config set foo:port 80
+
+## Config Settings
+
+### always-auth
+
+* Default: false
+* Type: Boolean
+
+Force npm to always require authentication when accessing the registry,
+even for `GET` requests.
+
+### bin-publish
+
+* Default: false
+* Type: Boolean
+
+If set to true, then binary packages will be created on publish.
+
+This is the way to opt into the "bindist" behavior described below.
+
+### bindist
+
+* Default: Unstable node versions, `null`, otherwise
+ `"<node version>-<platform>-<os release>"`
+* Type: String or `null`
+
+Experimental: on stable versions of node, binary distributions will be
+created with this tag. If a user then installs that package, and their
+`bindist` tag is found in the list of binary distributions, they will
+get that prebuilt version.
+
+Pre-build node packages have their preinstall, install, and postinstall
+scripts stripped (since they are run prior to publishing), and do not
+have their `build` directories automatically ignored.
+
+It's yet to be seen if this is a good idea.
+
+### browser
+
+* Default: OS X: `"open"`, others: `"google-chrome"`
+* Type: String
+
+The browser that is called by the `npm docs` command to open websites.
+
+### cache
+
+* Default: Windows: `~/npm-cache`, Posix: `~/.npm`
+* Type: path
+
+The location of npm's cache directory. See `npm help cache`
+
+### color
+
+* Default: true
+* Type: Boolean or `"always"`
+
+If false, never shows colors. If `"always"` then always shows colors.
+If true, then only prints color codes for tty file descriptors.
+
+### depth
+
+* Default: Infinity
+* Type: Number
+
+The depth to go when recursing directories for `npm ls` and
+`npm cache ls`.
+
+### description
+
+* Default: true
+* Type: Boolean
+
+Show the description in `npm search`
+
+### dev
+
+* Default: false
+* Type: Boolean
+
+Install `dev-dependencies` along with packages.
+
+Note that `dev-dependencies` are also installed if the `npat` flag is
+set.
+
+### editor
+
+* Default: `EDITOR` environment variable if set, or `"vi"`
+* Type: path
+
+The command to run for `npm edit` or `npm config edit`.
+
+### force
+
+* Default: false
+* Type: Boolean
+
+Makes various commands more forceful.
+
+* lifecycle script failure does not block progress.
+* publishing clobbers previously published versions.
+* skips cache when requesting from the registry.
+* prevents checks against clobbering non-npm files.
+
+### global
+
+* Default: false
+* Type: Boolean
+
+Operates in "global" mode, so that packages are installed into the
+`prefix` folder instead of the current working directory. See
+`npm help folders` for more on the differences in behavior.
+
+* packages are installed into the `prefix/node_modules` folder, instead of the
+ current working directory.
+* bin files are linked to `prefix/bin`
+* man pages are linked to `prefix/share/man`
+
+### globalconfig
+
+* Default: {prefix}/etc/npmrc
+* Type: path
+
+The config file to read for global config options.
+
+### globalignorefile
+
+* Default: {prefix}/etc/npmignore
+* Type: path
+
+The config file to read for global ignore patterns to apply to all users
+and all projects.
+
+If not found, but there is a "gitignore" file in the
+same directory, then that will be used instead.
+
+### group
+
+* Default: GID of the current process
+* Type: String or Number
+
+The group to use when running package scripts in global mode as the root
+user.
+
+### gzipbin
+
+* Default: "gzip"
+* Type: path
+
+The gzip binary
+
+### ignore
+
+* Default: ""
+* Type: string
+
+A white-space separated list of glob patterns of files to always exclude
+from packages when building tarballs.
+
+### init.version
+
+* Default: "0.0.0"
+* Type: semver
+
+The value `npm init` should use by default for the package version.
+
+### init.author.name
+
+* Default: "0.0.0"
+* Type: String
+
+The value `npm init` should use by default for the package author's name.
+
+### init.author.email
+
+* Default: ""
+* Type: String
+
+The value `npm init` should use by default for the package author's email.
+
+### init.author.url
+
+* Default: ""
+* Type: String
+
+The value `npm init` should use by default for the package author's homepage.
+
+### link
+
+* Default: false
+* Type: Boolean
+
+If true, then local installs will link if there is a suitable globally
+installed package.
+
+Note that this means that local installs can cause things to be
+installed into the global space at the same time. The link is only done
+if one of the two conditions are met:
+
+* The package is not already installed globally, or
+* the globally installed version is identical to the version that is
+ being installed locally.
+
+### logfd
+
+* Default: stderr file descriptor
+* Type: Number or Stream
+
+The location to write log output.
+
+### loglevel
+
+* Default: "warn"
+* Type: String
+* Values: "silent", "win", "error", "warn", "info", "verbose", "silly"
+
+What level of logs to report. On failure, *all* logs are written to
+`npm-debug.log` in the current working directory.
+
+### long
+
+* Default: false
+* Type: Boolean
+
+Show extended information in `npm ls`
+
+### node-version
+
+* Default: process.version
+* Type: semver or false
+
+The node version to use when checking package's "engines" hash.
+
+### npat
+
+* Default: false
+* Type: Boolean
+
+Run tests on installation and report results to the
+`npaturl`.
+
+### npaturl
+
+* Default: Not yet implemented
+* Type: url
+
+The url to report npat test results.
+
+### onload-script
+
+* Default: false
+* Type: path
+
+A node module to `require()` when npm loads. Useful for programmatic
+usage.
+
+### outfd
+
+* Default: standard output file descriptor
+* Type: Number or Stream
+
+Where to write "normal" output. This has no effect on log output.
+
+### parseable
+
+* Default: false
+* Type: Boolean
+
+Output parseable results from commands that write to
+standard output.
+
+### prefix
+
+* Default: node's process.installPrefix
+* Type: path
+
+The location to install global items. If set on the command line, then
+it forces non-global commands to run in the specified folder.
+
+### production
+
+* Default: false
+* Type: Boolean
+
+Set to true to run in "production" mode.
+
+1. devDependencies are not installed at the topmost level when running
+ local `npm install` without any arguments.
+2. Set the NODE_ENV="production" for lifecycle scripts.
+
+### proxy
+
+* Default: `HTTP_PROXY` or `http_proxy` environment variable, or null
+* Type: url
+
+A proxy to use for outgoing http requests.
+
+### rebuild-bundle
+
+* Default: true
+* Type: Boolean
+
+Rebuild bundled dependencies after installation.
+
+### registry
+
+* Default: https://registry.npmjs.org/
+* Type: url
+
+The base URL of the npm package registry.
+
+### rollback
+
+* Default: true
+* Type: Boolean
+
+Remove failed installs.
+
+### save
+
+* Default: false
+* Type: Boolean
+
+Save installed packages to a package.json file as dependencies.
+
+Only works if there is already a package.json file present.
+
+### searchopts
+
+* Default: ""
+* Type: String
+
+Space-separated options that are always passed to search.
+
+### searchexclude
+
+* Default: ""
+* Type: String
+
+Space-separated options that limit the results from search.
+
+### shell
+
+* Default: SHELL environment variable, or "bash"
+* Type: path
+
+The shell to run for the `npm explore` command.
+
+### tag
+
+* Default: latest
+* Type: String
+
+If you ask npm to install a package and don't tell it a specific version, then
+it will install the specified tag.
+
+Also the tag that is added to the package@version specified by the `npm
+tag` command, if no explicit tag is given.
+
+### tar
+
+* Default: TAR environment variable, or "tar"
+* Type: path
+
+The tar executable
+
+### tmp
+
+* Default: TMPDIR environment variable, or "/tmp"
+* Type: path
+
+Where to store temporary files and folders. All temp files are deleted
+on success, but left behind on failure for forensic purposes.
+
+### unicode
+
+* Default: true
+* Type: Boolean
+
+When set to true, npm uses unicode characters in the tree output. When
+false, it uses ascii characters to draw trees.
+
+### unsafe-perm
+
+* Default: false if running as root, true otherwise
+* Type: Boolean
+
+Set to true to suppress the UID/GID switching when running package
+scripts. If set explicitly to false, then installing as a non-root user
+will fail.
+
+### usage
+
+* Default: false
+* Type: Boolean
+
+Set to show short usage output (like the -H output)
+instead of complete help when doing `npm help`.
+
+### user
+
+* Default: "nobody"
+* Type: String or Number
+
+The UID to set to when running package scripts as root.
+
+### username
+
+* Default: null
+* Type: String
+
+The username on the npm registry. Set with `npm adduser`
+
+### userconfig
+
+* Default: ~/.npmrc
+* Type: path
+
+The location of user-level configuration settings.
+
+### userignorefile
+
+* Default: ~/.npmignore
+* Type: path
+
+The location of a user-level ignore file to apply to all packages.
+
+If not found, but there is a .gitignore file in the same directory, then
+that will be used instead.
+
+### version
+
+* Default: false
+* Type: boolean
+
+If true, output the npm version and exit successfully.
+
+Only relevant when specified explicitly on the command line.
+
+### viewer
+
+* Default: "man"
+* Type: path
+
+The program to use to view help content.
+
+### yes
+
+* Default: null
+* Type: Boolean or null
+
+If set to `null`, then prompt the user for responses in some
+circumstances.
+
+If set to `true`, then answer "yes" to any prompt. If set to `false`
+then answer "no" to any prompt.
View
19 backend/nodejute/node_modules/npm/doc/deprecate.md
@@ -0,0 +1,19 @@
+npm-deprecate(1) -- Deprecate a version of a package
+====================================================
+
+## SYNOPSIS
+
+ npm deprecate <name>[@<version>] <message>
+
+## DESCRIPTION
+
+This command will update the npm registry entry for a package, providing
+a deprecation warning to all who attempt to install it.
+
+It works on version ranges as well as specific versions, so you can do
+something like this:
+
+ npm deprecate my-thing@"< 0.2.3" "critical bug fixed in v0.2.3"
+
+Note that you must be the package owner to deprecate something. See the
+`owner` and `adduser` help topics.
View
167 backend/nodejute/node_modules/npm/doc/developers.md
@@ -0,0 +1,167 @@
+npm-developers(1) -- Developer Guide
+====================================
+
+## DESCRIPTION
+
+So, you've decided to use npm to develop (and maybe publish/deploy)
+your project.
+
+Fantastic!
+
+There are a few things that you need to do above the simple steps
+that your users will do to install your program.
+
+## About These Documents
+
+These are man pages. If you install npm, you should be able to
+then do `man npm-thing` to get the documentation on a particular
+topic.
+
+Any time you see "see npm-whatever(1)", you can do `man npm-whatever`
+or `npm help whatever` to get at the docs.
+
+## What is a `package`
+
+A package is:
+
+* a) a folder containing a program described by a package.json file
+* b) a gzipped tarball containing (a)
+* c) a url that resolves to (b)
+* d) a `<name>@<version>` that is published on the registry with (c)
+* e) a `<name>@<tag>` that points to (d)
+* f) a `<name>` that has a "latest" tag satisfying (e)
+
+Even if you never publish your package, you can still get a lot of
+benefits of using npm if you just want to write a node program (a), and
+perhaps if you also want to be able to easily install it elsewhere
+after packing it up into a tarball (b).
+
+## The package.json File
+
+You need to have a `package.json` file in the root of your project to do
+much of anything with npm. That is basically the whole interface.
+
+See npm-json(1) for details about what goes in that file. At the very
+least, you need:
+
+* name:
+ This should be a string that identifies your project. Please do not
+ use the name to specify that it runs on node, or is in JavaScript.
+ You can use the "engines" field to explicitly state the versions of
+ node (or whatever else) that your program requires, and it's pretty
+ well assumed that it's javascript.
+
+ It does not necessarily need to match your github repository name.
+
+ So, `node-foo` and `bar-js` are bad names. `foo` or `bar` are better.
+
+* version:
+ A semver-compatible version.
+
+* engines:
+ Specify the versions of node (or whatever else) that your program
+ runs on. The node API changes a lot, and there may be bugs or new
+ functionality that you depend on. Be explicit.
+
+* author:
+ Take some credit.
+
+* scripts:
+ If you have a special compilation or installation script, then you
+ should put it in the `scripts` hash. You should definitely have at
+ least a basic smoke-test command as the "scripts.test" field.
+ See npm-scripts(1).
+
+* main:
+ If you have a single module that serves as the entry point to your
+ program (like what the "foo" package gives you at require("foo")),
+ then you need to specify that in the "main" field.
+
+* directories:
+ This is a hash of folders. The best ones to include are "lib" and
+ "doc", but if you specify a folder full of man pages in "man", then
+ they'll get installed just like these ones.
+
+You can use `npm init` in the root of your package in order to get you
+started with a pretty basic package.json file. See `npm-init(1)` for
+more info.
+
+## Keeping files *out* of your package
+
+Use a `.npmignore` file to keep stuff out of your package. If there's
+no .npmignore file, but there *is* a .gitignore file, then npm will
+ignore the stuff matched by the .gitignore file. If you *want* to
+include something that is excluded by your .gitignore file, you can
+create an empty .npmignore file to override it.
+
+## Link Packages
+
+`npm link` is designed to install a development package and see the
+changes in real time without having to keep re-installing it. (You do
+need to either re-link or `npm rebuild -g` to update compiled packages,
+of course.)
+
+More info at `npm-link(1)`.
+
+## Before Publishing: Make Sure Your Package Installs and Works
+
+**This is important.**
+
+If you can not install it locally, you'll have
+problems trying to publish it. Or, worse yet, you'll be able to
+publish it, but you'll be publishing a broken or pointless package.
+So don't do that.
+
+In the root of your package, do this:
+
+ npm install . -g
+
+That'll show you that it's working. If you'd rather just create a symlink
+package that points to your working directory, then do this:
+
+ npm link
+
+Use `npm ls -g` to see if it's there.
+
+To test a local install, go into some other folder, and then do:
+
+ cd ../some-other-folder
+ npm install ../my-package
+
+to install it locally into the node_modules folder in that other place.
+
+Then go into the node-repl, and try using require("my-thing") to
+bring in your module's main module.
+
+## Create a User Account
+
+Create a user with the adduser command. It works like this:
+
+ npm adduser
+
+and then follow the prompts.
+
+This is documented better in npm-adduser(1). So do this to get the
+details:
+
+ npm help adduser
+
+## Publish your package
+
+This part's easy. IN the root of your folder, do this:
+
+ npm publish
+
+You can give publish a url to a tarball, or a filename of a tarball,
+or a path to a folder.
+
+Note that pretty much **everything in that folder will be exposed**
+by default. So, if you have secret stuff in there, use a `.npminclude`
+or `.npmignore` file to list out the globs to include/ignore, or publish
+from a fresh checkout.
+
+## Brag about it
+
+Send emails, write blogs, blab in IRC.
+
+Tell the world how easy it is to install your program!
View
14 backend/nodejute/node_modules/npm/doc/docs.md
@@ -0,0 +1,14 @@
+npm-docs(1) -- Docs for a package in a web browser maybe
+========================================================
+
+## SYNOPSIS
+
+ npm docs <pkgname>
+ npm home <pkgname>
+
+## DESCRIPTION
+
+This command tries to guess at the likely location of a package's
+documentation URL, and then tries to open it using the `--browser`
+config param.
+
View
18 backend/nodejute/node_modules/npm/doc/edit.md
@@ -0,0 +1,18 @@
+npm-edit(1) -- Edit an installed package
+========================================
+
+## SYNOPSIS
+
+ npm edit <name>[@<version>]
+
+## DESCRIPTION
+
+Opens the package folder in the default editor (or whatever you've
+configured as the npm `editor` config -- see `npm help config`.)
+
+After it has been edited, the package is rebuilt so as to pick up any
+changes in compiled packages.
+
+For instance, you can do `npm install connect` to install connect
+into your package, and then `npm edit connect` to make a few
+changes to your locally installed copy.
View
16 backend/nodejute/node_modules/npm/doc/explore.md
@@ -0,0 +1,16 @@
+npm-explore(1) -- Browse an installed package
+=============================================
+
+## SYNOPSIS
+
+ npm explore <name>[@<version>] [ -- <cmd>]
+
+## DESCRIPTION
+
+Spawn a subshell in the directory of the installed package specified.
+
+If a command is specified, then it is run in the subshell, which then
+immediately terminates.
+
+Note that the package is *not* automatically rebuilt afterwards, so be
+sure to use `npm rebuild <pkg>` if you make any changes.
View
194 backend/nodejute/node_modules/npm/doc/faq.md
@@ -0,0 +1,194 @@
+npm-faq(1) -- Frequently Asked Questions
+========================================
+
+## Where can I find these docs in HTML?
+
+<https://github.com/isaacs/npm/tree/master/doc>
+
+## It didn't work.
+
+That's not really a question.
+
+## Why didn't it work?
+
+I don't know yet.
+
+Read the error output, and if you can't figure out what it means,
+do what it says and post a bug with all the information it asks for.
+
+## Where does npm put stuff?
+
+See `npm help folders`
+
+tl;dr:
+
+* Use the `npm root` command to see where modules go, and the `npm bin`
+ command to see where executables go
+* Global installs are different from local installs. If you install
+ something with the `-g` flag, then its executables go in `npm bin -g`
+ and its modules go in `npm root -g`.
+
+## How do I install something everywhere?
+
+Install it globally by tacking `-g` or `--global` to the command.
+
+## I installed something globally, but I can't `require()` it
+
+Install it locally.
+
+## I don't wanna.
+
+Check out `npm link`. You might like it.
+
+## No, I really want 0.x style 'everything global' style.
+
+Ok, fine. Do this:
+
+ echo 'export NODE_PATH="'$(npm root -g)'"' >> ~/.bashrc
+ . ~/.bashrc
+ npm config set global true
+
+This is not recommended.
+
+Many things **will not work** if you do this. Make sure you read and
+understand `npm help config` and `npm help global` before you complain
+about things being broken.
+
+When you realize what a mistake it was, do this to switch back:
+