Created
December 18, 2013 17:36
-
-
Save joelmoss/8026518 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Last login: Wed Dec 18 17:11:36 on ttys004 | |
| ~/dev/applicationcraft/codio/chef-repo ± master ● ssh [email protected] | |
| Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.2.0-54-virtual x86_64) | |
| * Documentation: https://help.ubuntu.com/ | |
| System information as of Wed Dec 18 17:35:40 UTC 2013 | |
| System load: 0.0 Processes: 70 | |
| Usage of /: 25.5% of 7.87GB Users logged in: 1 | |
| Memory usage: 26% IP address for eth0: 10.154.152.225 | |
| Swap usage: 0% | |
| Graph this data and manage this system at https://landscape.canonical.com/ | |
| Get cloud support with Ubuntu Advantage Cloud Guest: | |
| http://www.ubuntu.com/business/services/cloud | |
| Use Juju to deploy your cloud instances and workloads: | |
| https://juju.ubuntu.com/#cloud-precise | |
| Last login: Wed Dec 18 17:27:39 2013 from host-80-47-34-222.as13285.net | |
| sharejs@sharejsX:~$ cat /var/www/sharejs/releases/20131218171 | |
| 20131218171339/ 20131218171509/ | |
| sharejs@sharejsX:~$ cat /var/www/sharejs/releases/20131218171 | |
| 20131218171339/ 20131218171509/ | |
| sharejs@sharejsX:~$ cat /var/www/sharejs/releases/20131218171509/ | |
| bin/ config/ docs/ .gitignore .jshintrc node_modules/ Procfile test/ | |
| Capfile config-examples/ Gemfile gruntfile.coffee lib/ npm-debug.log README.md | |
| codio-options.js CONTRIBUTING.md Gemfile.lock index.js logs/ package.json scripts/ | |
| sharejs@sharejsX:~$ cat /var/www/sharejs/releases/20131218171509/npm-debug.log | |
| 0 info it worked if it ends with ok | |
| 1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'install', '--production' ] | |
| 2 info using [email protected] | |
| 3 info using [email protected] | |
| 4 verbose node symlink /usr/bin/node | |
| 5 verbose readDependencies using package.json deps | |
| 6 verbose install where, deps [ '/var/www/sharejs/releases/20131218171509', | |
| 6 verbose install [ 'connect', | |
| 6 verbose install 'querystring', | |
| 6 verbose install 'amqp', | |
| 6 verbose install 'log4js', | |
| 6 verbose install 'nodetime', | |
| 6 verbose install 'share', | |
| 6 verbose install 'lodash', | |
| 6 verbose install 'newrelic', | |
| 6 verbose install 'commander', | |
| 6 verbose install 'transport-adapters', | |
| 6 verbose install 'redis', | |
| 6 verbose install 'sockjs', | |
| 6 verbose install 'livedb-mongo', | |
| 6 verbose install 'livedb', | |
| 6 verbose install 'express', | |
| 6 verbose install 'rbytes', | |
| 6 verbose install 'isbinaryfile', | |
| 6 verbose install 'ottypes', | |
| 6 verbose install 'async', | |
| 6 verbose install 'node-codio', | |
| 6 verbose install 'thalassa' ] ] | |
| 7 info preinstall [email protected] | |
| 8 verbose readDependencies using package.json deps | |
| 9 verbose cache add [ 'querystring@~0.2.0', null ] | |
| 10 verbose cache add name=undefined spec="querystring@~0.2.0" args=["querystring@~0.2.0",null] | |
| 11 verbose parsed url { protocol: null, | |
| 11 verbose parsed url slashes: null, | |
| 11 verbose parsed url auth: null, | |
| 11 verbose parsed url host: null, | |
| 11 verbose parsed url port: null, | |
| 11 verbose parsed url hostname: null, | |
| 11 verbose parsed url hash: null, | |
| 11 verbose parsed url search: null, | |
| 11 verbose parsed url query: null, | |
| 11 verbose parsed url pathname: 'querystring@~0.2.0', | |
| 11 verbose parsed url path: 'querystring@~0.2.0', | |
| 11 verbose parsed url href: 'querystring@~0.2.0' } | |
| 12 verbose cache add name="querystring" spec="~0.2.0" args=["querystring","~0.2.0"] | |
| 13 verbose parsed url { protocol: null, | |
| 13 verbose parsed url slashes: null, | |
| 13 verbose parsed url auth: null, | |
| 13 verbose parsed url host: null, | |
| 13 verbose parsed url port: null, | |
| 13 verbose parsed url hostname: null, | |
| 13 verbose parsed url hash: null, | |
| 13 verbose parsed url search: null, | |
| 13 verbose parsed url query: null, | |
| 13 verbose parsed url pathname: '~0.2.0', | |
| 13 verbose parsed url path: '~0.2.0', | |
| 13 verbose parsed url href: '~0.2.0' } | |
| 14 verbose addNamed [ 'querystring', '~0.2.0' ] | |
| 15 verbose addNamed [ null, '>=0.2.0-0 <0.3.0-0' ] | |
| 16 silly lockFile 4d77a706-querystring-0-2-0 querystring@~0.2.0 | |
| 17 verbose lock querystring@~0.2.0 /home/sharejs/.npm/4d77a706-querystring-0-2-0.lock | |
| 18 verbose cache add [ '[email protected]', null ] | |
| 19 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null] | |
| 20 verbose parsed url { protocol: null, | |
| 20 verbose parsed url slashes: null, | |
| 20 verbose parsed url auth: null, | |
| 20 verbose parsed url host: null, | |
| 20 verbose parsed url port: null, | |
| 20 verbose parsed url hostname: null, | |
| 20 verbose parsed url hash: null, | |
| 20 verbose parsed url search: null, | |
| 20 verbose parsed url query: null, | |
| 20 verbose parsed url pathname: '[email protected]', | |
| 20 verbose parsed url path: '[email protected]', | |
| 20 verbose parsed url href: '[email protected]' } | |
| 21 verbose cache add name="nodetime" spec="0.8.13" args=["nodetime","0.8.13"] | |
| 22 verbose parsed url { protocol: null, | |
| 22 verbose parsed url slashes: null, | |
| 22 verbose parsed url auth: null, | |
| 22 verbose parsed url host: null, | |
| 22 verbose parsed url port: null, | |
| 22 verbose parsed url hostname: null, | |
| 22 verbose parsed url hash: null, | |
| 22 verbose parsed url search: null, | |
| 22 verbose parsed url query: null, | |
| 22 verbose parsed url pathname: '0.8.13', | |
| 22 verbose parsed url path: '0.8.13', | |
| 22 verbose parsed url href: '0.8.13' } | |
| 23 verbose addNamed [ 'nodetime', '0.8.13' ] | |
| 24 verbose addNamed [ '0.8.13', '0.8.13' ] | |
| 25 silly lockFile d0bab4ef-nodetime-0-8-13 [email protected] | |
| 26 verbose lock [email protected] /home/sharejs/.npm/d0bab4ef-nodetime-0-8-13.lock | |
| 27 verbose cache add [ 'amqp@~0.1.7', null ] | |
| 28 verbose cache add name=undefined spec="amqp@~0.1.7" args=["amqp@~0.1.7",null] | |
| 29 verbose parsed url { protocol: null, | |
| 29 verbose parsed url slashes: null, | |
| 29 verbose parsed url auth: null, | |
| 29 verbose parsed url host: null, | |
| 29 verbose parsed url port: null, | |
| 29 verbose parsed url hostname: null, | |
| 29 verbose parsed url hash: null, | |
| 29 verbose parsed url search: null, | |
| 29 verbose parsed url query: null, | |
| 29 verbose parsed url pathname: 'amqp@~0.1.7', | |
| 29 verbose parsed url path: 'amqp@~0.1.7', | |
| 29 verbose parsed url href: 'amqp@~0.1.7' } | |
| 30 verbose cache add name="amqp" spec="~0.1.7" args=["amqp","~0.1.7"] | |
| 31 verbose parsed url { protocol: null, | |
| 31 verbose parsed url slashes: null, | |
| 31 verbose parsed url auth: null, | |
| 31 verbose parsed url host: null, | |
| 31 verbose parsed url port: null, | |
| 31 verbose parsed url hostname: null, | |
| 31 verbose parsed url hash: null, | |
| 31 verbose parsed url search: null, | |
| 31 verbose parsed url query: null, | |
| 31 verbose parsed url pathname: '~0.1.7', | |
| 31 verbose parsed url path: '~0.1.7', | |
| 31 verbose parsed url href: '~0.1.7' } | |
| 32 verbose addNamed [ 'amqp', '~0.1.7' ] | |
| 33 verbose addNamed [ null, '>=0.1.7-0 <0.2.0-0' ] | |
| 34 silly lockFile 80654d4b-amqp-0-1-7 amqp@~0.1.7 | |
| 35 verbose lock amqp@~0.1.7 /home/sharejs/.npm/80654d4b-amqp-0-1-7.lock | |
| 36 verbose cache add [ 'share@git://github.com/codio/ShareJS#7', null ] | |
| 37 verbose cache add name=undefined spec="share@git://github.com/codio/ShareJS#7" args=["share@git://github.com/codio/ShareJS#7",null] | |
| 38 verbose parsed url { protocol: null, | |
| 38 verbose parsed url slashes: null, | |
| 38 verbose parsed url auth: null, | |
| 38 verbose parsed url host: null, | |
| 38 verbose parsed url port: null, | |
| 38 verbose parsed url hostname: null, | |
| 38 verbose parsed url hash: '#7', | |
| 38 verbose parsed url search: null, | |
| 38 verbose parsed url query: null, | |
| 38 verbose parsed url pathname: 'share@git://github.com/codio/ShareJS', | |
| 38 verbose parsed url path: 'share@git://github.com/codio/ShareJS', | |
| 38 verbose parsed url href: 'share@git://github.com/codio/ShareJS#7' } | |
| 39 verbose cache add name="share" spec="git://github.com/codio/ShareJS#7" args=["share","git://github.com/codio/ShareJS#7"] | |
| 40 verbose parsed url { protocol: 'git:', | |
| 40 verbose parsed url slashes: true, | |
| 40 verbose parsed url auth: null, | |
| 40 verbose parsed url host: 'github.com', | |
| 40 verbose parsed url port: null, | |
| 40 verbose parsed url hostname: 'github.com', | |
| 40 verbose parsed url hash: '#7', | |
| 40 verbose parsed url search: null, | |
| 40 verbose parsed url query: null, | |
| 40 verbose parsed url pathname: '/codio/ShareJS', | |
| 40 verbose parsed url path: '/codio/ShareJS', | |
| 40 verbose parsed url href: 'git://github.com/codio/ShareJS#7' } | |
| 41 silly lockFile effd0fe9-git-github-com-codio-ShareJS-7 git://github.com/codio/ShareJS#7 | |
| 42 verbose lock git://github.com/codio/ShareJS#7 /home/sharejs/.npm/effd0fe9-git-github-com-codio-ShareJS-7.lock | |
| 43 verbose cache add [ 'log4js@~0.6.6', null ] | |
| 44 verbose cache add name=undefined spec="log4js@~0.6.6" args=["log4js@~0.6.6",null] | |
| 45 verbose parsed url { protocol: null, | |
| 45 verbose parsed url slashes: null, | |
| 45 verbose parsed url auth: null, | |
| 45 verbose parsed url host: null, | |
| 45 verbose parsed url port: null, | |
| 45 verbose parsed url hostname: null, | |
| 45 verbose parsed url hash: null, | |
| 45 verbose parsed url search: null, | |
| 45 verbose parsed url query: null, | |
| 45 verbose parsed url pathname: 'log4js@~0.6.6', | |
| 45 verbose parsed url path: 'log4js@~0.6.6', | |
| 45 verbose parsed url href: 'log4js@~0.6.6' } | |
| 46 verbose cache add name="log4js" spec="~0.6.6" args=["log4js","~0.6.6"] | |
| 47 verbose parsed url { protocol: null, | |
| 47 verbose parsed url slashes: null, | |
| 47 verbose parsed url auth: null, | |
| 47 verbose parsed url host: null, | |
| 47 verbose parsed url port: null, | |
| 47 verbose parsed url hostname: null, | |
| 47 verbose parsed url hash: null, | |
| 47 verbose parsed url search: null, | |
| 47 verbose parsed url query: null, | |
| 47 verbose parsed url pathname: '~0.6.6', | |
| 47 verbose parsed url path: '~0.6.6', | |
| 47 verbose parsed url href: '~0.6.6' } | |
| 48 verbose addNamed [ 'log4js', '~0.6.6' ] | |
| 49 verbose addNamed [ null, '>=0.6.6-0 <0.7.0-0' ] | |
| 50 silly lockFile 7066bf70-log4js-0-6-6 log4js@~0.6.6 | |
| 51 verbose lock log4js@~0.6.6 /home/sharejs/.npm/7066bf70-log4js-0-6-6.lock | |
| 52 verbose cache add [ 'lodash@~2.2.1', null ] | |
| 53 verbose cache add name=undefined spec="lodash@~2.2.1" args=["lodash@~2.2.1",null] | |
| 54 verbose parsed url { protocol: null, | |
| 54 verbose parsed url slashes: null, | |
| 54 verbose parsed url auth: null, | |
| 54 verbose parsed url host: null, | |
| 54 verbose parsed url port: null, | |
| 54 verbose parsed url hostname: null, | |
| 54 verbose parsed url hash: null, | |
| 54 verbose parsed url search: null, | |
| 54 verbose parsed url query: null, | |
| 54 verbose parsed url pathname: 'lodash@~2.2.1', | |
| 54 verbose parsed url path: 'lodash@~2.2.1', | |
| 54 verbose parsed url href: 'lodash@~2.2.1' } | |
| 55 verbose cache add name="lodash" spec="~2.2.1" args=["lodash","~2.2.1"] | |
| 56 verbose parsed url { protocol: null, | |
| 56 verbose parsed url slashes: null, | |
| 56 verbose parsed url auth: null, | |
| 56 verbose parsed url host: null, | |
| 56 verbose parsed url port: null, | |
| 56 verbose parsed url hostname: null, | |
| 56 verbose parsed url hash: null, | |
| 56 verbose parsed url search: null, | |
| 56 verbose parsed url query: null, | |
| 56 verbose parsed url pathname: '~2.2.1', | |
| 56 verbose parsed url path: '~2.2.1', | |
| 56 verbose parsed url href: '~2.2.1' } | |
| 57 verbose addNamed [ 'lodash', '~2.2.1' ] | |
| 58 verbose addNamed [ null, '>=2.2.1-0 <2.3.0-0' ] | |
| 59 silly lockFile c46ab6b5-lodash-2-2-1 lodash@~2.2.1 | |
| 60 verbose lock lodash@~2.2.1 /home/sharejs/.npm/c46ab6b5-lodash-2-2-1.lock | |
| 61 verbose cache add [ 'newrelic@~1.0.1', null ] | |
| 62 verbose cache add name=undefined spec="newrelic@~1.0.1" args=["newrelic@~1.0.1",null] | |
| 63 verbose parsed url { protocol: null, | |
| 63 verbose parsed url slashes: null, | |
| 63 verbose parsed url auth: null, | |
| 63 verbose parsed url host: null, | |
| 63 verbose parsed url port: null, | |
| 63 verbose parsed url hostname: null, | |
| 63 verbose parsed url hash: null, | |
| 63 verbose parsed url search: null, | |
| 63 verbose parsed url query: null, | |
| 63 verbose parsed url pathname: 'newrelic@~1.0.1', | |
| 63 verbose parsed url path: 'newrelic@~1.0.1', | |
| 63 verbose parsed url href: 'newrelic@~1.0.1' } | |
| 64 verbose cache add name="newrelic" spec="~1.0.1" args=["newrelic","~1.0.1"] | |
| 65 verbose parsed url { protocol: null, | |
| 65 verbose parsed url slashes: null, | |
| 65 verbose parsed url auth: null, | |
| 65 verbose parsed url host: null, | |
| 65 verbose parsed url port: null, | |
| 65 verbose parsed url hostname: null, | |
| 65 verbose parsed url hash: null, | |
| 65 verbose parsed url search: null, | |
| 65 verbose parsed url query: null, | |
| 65 verbose parsed url pathname: '~1.0.1', | |
| 65 verbose parsed url path: '~1.0.1', | |
| 65 verbose parsed url href: '~1.0.1' } | |
| 66 verbose addNamed [ 'newrelic', '~1.0.1' ] | |
| 67 verbose addNamed [ null, '>=1.0.1-0 <1.1.0-0' ] | |
| 68 silly lockFile 84829e3f-newrelic-1-0-1 newrelic@~1.0.1 | |
| 69 verbose lock newrelic@~1.0.1 /home/sharejs/.npm/84829e3f-newrelic-1-0-1.lock | |
| 70 verbose cache add [ 'commander@~2.0.0', null ] | |
| 71 verbose cache add name=undefined spec="commander@~2.0.0" args=["commander@~2.0.0",null] | |
| 72 verbose parsed url { protocol: null, | |
| 72 verbose parsed url slashes: null, | |
| 72 verbose parsed url auth: null, | |
| 72 verbose parsed url host: null, | |
| 72 verbose parsed url port: null, | |
| 72 verbose parsed url hostname: null, | |
| 72 verbose parsed url hash: null, | |
| 72 verbose parsed url search: null, | |
| 72 verbose parsed url query: null, | |
| 72 verbose parsed url pathname: 'commander@~2.0.0', | |
| 72 verbose parsed url path: 'commander@~2.0.0', | |
| 72 verbose parsed url href: 'commander@~2.0.0' } | |
| 73 verbose cache add name="commander" spec="~2.0.0" args=["commander","~2.0.0"] | |
| 74 verbose parsed url { protocol: null, | |
| 74 verbose parsed url slashes: null, | |
| 74 verbose parsed url auth: null, | |
| 74 verbose parsed url host: null, | |
| 74 verbose parsed url port: null, | |
| 74 verbose parsed url hostname: null, | |
| 74 verbose parsed url hash: null, | |
| 74 verbose parsed url search: null, | |
| 74 verbose parsed url query: null, | |
| 74 verbose parsed url pathname: '~2.0.0', | |
| 74 verbose parsed url path: '~2.0.0', | |
| 74 verbose parsed url href: '~2.0.0' } | |
| 75 verbose addNamed [ 'commander', '~2.0.0' ] | |
| 76 verbose addNamed [ null, '>=2.0.0-0 <2.1.0-0' ] | |
| 77 silly lockFile 00733c5f-commander-2-0-0 commander@~2.0.0 | |
| 78 verbose lock commander@~2.0.0 /home/sharejs/.npm/00733c5f-commander-2-0-0.lock | |
| 79 verbose cache add [ 'transport-adapters@git://github.com/Dignifiedquire/transport-adapters', | |
| 79 verbose cache add null ] | |
| 80 verbose cache add name=undefined spec="transport-adapters@git://github.com/Dignifiedquire/transport-adapters" args=["transport-adapters@git://github.com/Dignifiedquire/transport-adapters",null] | |
| 81 verbose parsed url { protocol: null, | |
| 81 verbose parsed url slashes: null, | |
| 81 verbose parsed url auth: null, | |
| 81 verbose parsed url host: null, | |
| 81 verbose parsed url port: null, | |
| 81 verbose parsed url hostname: null, | |
| 81 verbose parsed url hash: null, | |
| 81 verbose parsed url search: null, | |
| 81 verbose parsed url query: null, | |
| 81 verbose parsed url pathname: 'transport-adapters@git://github.com/Dignifiedquire/transport-adapters', | |
| 81 verbose parsed url path: 'transport-adapters@git://github.com/Dignifiedquire/transport-adapters', | |
| 81 verbose parsed url href: 'transport-adapters@git://github.com/Dignifiedquire/transport-adapters' } | |
| 82 verbose cache add name="transport-adapters" spec="git://github.com/Dignifiedquire/transport-adapters" args=["transport-adapters","git://github.com/Dignifiedquire/transport-adapters"] | |
| 83 verbose parsed url { protocol: 'git:', | |
| 83 verbose parsed url slashes: true, | |
| 83 verbose parsed url auth: null, | |
| 83 verbose parsed url host: 'github.com', | |
| 83 verbose parsed url port: null, | |
| 83 verbose parsed url hostname: 'github.com', | |
| 83 verbose parsed url hash: null, | |
| 83 verbose parsed url search: null, | |
| 83 verbose parsed url query: null, | |
| 83 verbose parsed url pathname: '/Dignifiedquire/transport-adapters', | |
| 83 verbose parsed url path: '/Dignifiedquire/transport-adapters', | |
| 83 verbose parsed url href: 'git://github.com/Dignifiedquire/transport-adapters' } | |
| 84 silly lockFile 97302940-ignifiedquire-transport-adapters git://github.com/Dignifiedquire/transport-adapters | |
| 85 verbose lock git://github.com/Dignifiedquire/transport-adapters /home/sharejs/.npm/97302940-ignifiedquire-transport-adapters.lock | |
| 86 verbose cache add [ 'redis@~0.9.0', null ] | |
| 87 verbose cache add name=undefined spec="redis@~0.9.0" args=["redis@~0.9.0",null] | |
| 88 verbose parsed url { protocol: null, | |
| 88 verbose parsed url slashes: null, | |
| 88 verbose parsed url auth: null, | |
| 88 verbose parsed url host: null, | |
| 88 verbose parsed url port: null, | |
| 88 verbose parsed url hostname: null, | |
| 88 verbose parsed url hash: null, | |
| 88 verbose parsed url search: null, | |
| 88 verbose parsed url query: null, | |
| 88 verbose parsed url pathname: 'redis@~0.9.0', | |
| 88 verbose parsed url path: 'redis@~0.9.0', | |
| 88 verbose parsed url href: 'redis@~0.9.0' } | |
| 89 verbose cache add name="redis" spec="~0.9.0" args=["redis","~0.9.0"] | |
| 90 verbose parsed url { protocol: null, | |
| 90 verbose parsed url slashes: null, | |
| 90 verbose parsed url auth: null, | |
| 90 verbose parsed url host: null, | |
| 90 verbose parsed url port: null, | |
| 90 verbose parsed url hostname: null, | |
| 90 verbose parsed url hash: null, | |
| 90 verbose parsed url search: null, | |
| 90 verbose parsed url query: null, | |
| 90 verbose parsed url pathname: '~0.9.0', | |
| 90 verbose parsed url path: '~0.9.0', | |
| 90 verbose parsed url href: '~0.9.0' } | |
| 91 verbose addNamed [ 'redis', '~0.9.0' ] | |
| 92 verbose addNamed [ null, '>=0.9.0-0 <0.10.0-0' ] | |
| 93 silly lockFile dd751ec6-redis-0-9-0 redis@~0.9.0 | |
| 94 verbose lock redis@~0.9.0 /home/sharejs/.npm/dd751ec6-redis-0-9-0.lock | |
| 95 verbose cache add [ 'sockjs@~0.3.8', null ] | |
| 96 verbose cache add name=undefined spec="sockjs@~0.3.8" args=["sockjs@~0.3.8",null] | |
| 97 verbose parsed url { protocol: null, | |
| 97 verbose parsed url slashes: null, | |
| 97 verbose parsed url auth: null, | |
| 97 verbose parsed url host: null, | |
| 97 verbose parsed url port: null, | |
| 97 verbose parsed url hostname: null, | |
| 97 verbose parsed url hash: null, | |
| 97 verbose parsed url search: null, | |
| 97 verbose parsed url query: null, | |
| 97 verbose parsed url pathname: 'sockjs@~0.3.8', | |
| 97 verbose parsed url path: 'sockjs@~0.3.8', | |
| 97 verbose parsed url href: 'sockjs@~0.3.8' } | |
| 98 verbose cache add name="sockjs" spec="~0.3.8" args=["sockjs","~0.3.8"] | |
| 99 verbose parsed url { protocol: null, | |
| 99 verbose parsed url slashes: null, | |
| 99 verbose parsed url auth: null, | |
| 99 verbose parsed url host: null, | |
| 99 verbose parsed url port: null, | |
| 99 verbose parsed url hostname: null, | |
| 99 verbose parsed url hash: null, | |
| 99 verbose parsed url search: null, | |
| 99 verbose parsed url query: null, | |
| 99 verbose parsed url pathname: '~0.3.8', | |
| 99 verbose parsed url path: '~0.3.8', | |
| 99 verbose parsed url href: '~0.3.8' } | |
| 100 verbose addNamed [ 'sockjs', '~0.3.8' ] | |
| 101 verbose addNamed [ null, '>=0.3.8-0 <0.4.0-0' ] | |
| 102 silly lockFile 8dbbeff0-sockjs-0-3-8 sockjs@~0.3.8 | |
| 103 verbose lock sockjs@~0.3.8 /home/sharejs/.npm/8dbbeff0-sockjs-0-3-8.lock | |
| 104 verbose cache add [ 'livedb-mongo@~0.2.5', null ] | |
| 105 verbose cache add name=undefined spec="livedb-mongo@~0.2.5" args=["livedb-mongo@~0.2.5",null] | |
| 106 verbose parsed url { protocol: null, | |
| 106 verbose parsed url slashes: null, | |
| 106 verbose parsed url auth: null, | |
| 106 verbose parsed url host: null, | |
| 106 verbose parsed url port: null, | |
| 106 verbose parsed url hostname: null, | |
| 106 verbose parsed url hash: null, | |
| 106 verbose parsed url search: null, | |
| 106 verbose parsed url query: null, | |
| 106 verbose parsed url pathname: 'livedb-mongo@~0.2.5', | |
| 106 verbose parsed url path: 'livedb-mongo@~0.2.5', | |
| 106 verbose parsed url href: 'livedb-mongo@~0.2.5' } | |
| 107 verbose cache add name="livedb-mongo" spec="~0.2.5" args=["livedb-mongo","~0.2.5"] | |
| 108 verbose parsed url { protocol: null, | |
| 108 verbose parsed url slashes: null, | |
| 108 verbose parsed url auth: null, | |
| 108 verbose parsed url host: null, | |
| 108 verbose parsed url port: null, | |
| 108 verbose parsed url hostname: null, | |
| 108 verbose parsed url hash: null, | |
| 108 verbose parsed url search: null, | |
| 108 verbose parsed url query: null, | |
| 108 verbose parsed url pathname: '~0.2.5', | |
| 108 verbose parsed url path: '~0.2.5', | |
| 108 verbose parsed url href: '~0.2.5' } | |
| 109 verbose addNamed [ 'livedb-mongo', '~0.2.5' ] | |
| 110 verbose addNamed [ null, '>=0.2.5-0 <0.3.0-0' ] | |
| 111 silly lockFile 0d39849d-livedb-mongo-0-2-5 livedb-mongo@~0.2.5 | |
| 112 verbose lock livedb-mongo@~0.2.5 /home/sharejs/.npm/0d39849d-livedb-mongo-0-2-5.lock | |
| 113 verbose cache add [ 'livedb@git://github.com/Dignifiedquire/livedb#old_snapshot', | |
| 113 verbose cache add null ] | |
| 114 verbose cache add name=undefined spec="livedb@git://github.com/Dignifiedquire/livedb#old_snapshot" args=["livedb@git://github.com/Dignifiedquire/livedb#old_snapshot",null] | |
| 115 verbose parsed url { protocol: null, | |
| 115 verbose parsed url slashes: null, | |
| 115 verbose parsed url auth: null, | |
| 115 verbose parsed url host: null, | |
| 115 verbose parsed url port: null, | |
| 115 verbose parsed url hostname: null, | |
| 115 verbose parsed url hash: '#old_snapshot', | |
| 115 verbose parsed url search: null, | |
| 115 verbose parsed url query: null, | |
| 115 verbose parsed url pathname: 'livedb@git://github.com/Dignifiedquire/livedb', | |
| 115 verbose parsed url path: 'livedb@git://github.com/Dignifiedquire/livedb', | |
| 115 verbose parsed url href: 'livedb@git://github.com/Dignifiedquire/livedb#old_snapshot' } | |
| 116 verbose cache add name="livedb" spec="git://github.com/Dignifiedquire/livedb#old_snapshot" args=["livedb","git://github.com/Dignifiedquire/livedb#old_snapshot"] | |
| 117 verbose parsed url { protocol: 'git:', | |
| 117 verbose parsed url slashes: true, | |
| 117 verbose parsed url auth: null, | |
| 117 verbose parsed url host: 'github.com', | |
| 117 verbose parsed url port: null, | |
| 117 verbose parsed url hostname: 'github.com', | |
| 117 verbose parsed url hash: '#old_snapshot', | |
| 117 verbose parsed url search: null, | |
| 117 verbose parsed url query: null, | |
| 117 verbose parsed url pathname: '/Dignifiedquire/livedb', | |
| 117 verbose parsed url path: '/Dignifiedquire/livedb', | |
| 117 verbose parsed url href: 'git://github.com/Dignifiedquire/livedb#old_snapshot' } | |
| 118 silly lockFile 5f3f3a31-gnifiedquire-livedb-old-snapshot git://github.com/Dignifiedquire/livedb#old_snapshot | |
| 119 verbose lock git://github.com/Dignifiedquire/livedb#old_snapshot /home/sharejs/.npm/5f3f3a31-gnifiedquire-livedb-old-snapshot.lock | |
| 120 verbose cache add [ 'express@~3.4.4', null ] | |
| 121 verbose cache add name=undefined spec="express@~3.4.4" args=["express@~3.4.4",null] | |
| 122 verbose parsed url { protocol: null, | |
| 122 verbose parsed url slashes: null, | |
| 122 verbose parsed url auth: null, | |
| 122 verbose parsed url host: null, | |
| 122 verbose parsed url port: null, | |
| 122 verbose parsed url hostname: null, | |
| 122 verbose parsed url hash: null, | |
| 122 verbose parsed url search: null, | |
| 122 verbose parsed url query: null, | |
| 122 verbose parsed url pathname: 'express@~3.4.4', | |
| 122 verbose parsed url path: 'express@~3.4.4', | |
| 122 verbose parsed url href: 'express@~3.4.4' } | |
| 123 verbose cache add name="express" spec="~3.4.4" args=["express","~3.4.4"] | |
| 124 verbose parsed url { protocol: null, | |
| 124 verbose parsed url slashes: null, | |
| 124 verbose parsed url auth: null, | |
| 124 verbose parsed url host: null, | |
| 124 verbose parsed url port: null, | |
| 124 verbose parsed url hostname: null, | |
| 124 verbose parsed url hash: null, | |
| 124 verbose parsed url search: null, | |
| 124 verbose parsed url query: null, | |
| 124 verbose parsed url pathname: '~3.4.4', | |
| 124 verbose parsed url path: '~3.4.4', | |
| 124 verbose parsed url href: '~3.4.4' } | |
| 125 verbose addNamed [ 'express', '~3.4.4' ] | |
| 126 verbose addNamed [ null, '>=3.4.4-0 <3.5.0-0' ] | |
| 127 silly lockFile c306bdaa-express-3-4-4 express@~3.4.4 | |
| 128 verbose lock express@~3.4.4 /home/sharejs/.npm/c306bdaa-express-3-4-4.lock | |
| 129 verbose cache add [ 'rbytes@~1.0.0', null ] | |
| 130 verbose cache add name=undefined spec="rbytes@~1.0.0" args=["rbytes@~1.0.0",null] | |
| 131 verbose parsed url { protocol: null, | |
| 131 verbose parsed url slashes: null, | |
| 131 verbose parsed url auth: null, | |
| 131 verbose parsed url host: null, | |
| 131 verbose parsed url port: null, | |
| 131 verbose parsed url hostname: null, | |
| 131 verbose parsed url hash: null, | |
| 131 verbose parsed url search: null, | |
| 131 verbose parsed url query: null, | |
| 131 verbose parsed url pathname: 'rbytes@~1.0.0', | |
| 131 verbose parsed url path: 'rbytes@~1.0.0', | |
| 131 verbose parsed url href: 'rbytes@~1.0.0' } | |
| 132 verbose cache add name="rbytes" spec="~1.0.0" args=["rbytes","~1.0.0"] | |
| 133 verbose parsed url { protocol: null, | |
| 133 verbose parsed url slashes: null, | |
| 133 verbose parsed url auth: null, | |
| 133 verbose parsed url host: null, | |
| 133 verbose parsed url port: null, | |
| 133 verbose parsed url hostname: null, | |
| 133 verbose parsed url hash: null, | |
| 133 verbose parsed url search: null, | |
| 133 verbose parsed url query: null, | |
| 133 verbose parsed url pathname: '~1.0.0', | |
| 133 verbose parsed url path: '~1.0.0', | |
| 133 verbose parsed url href: '~1.0.0' } | |
| 134 verbose addNamed [ 'rbytes', '~1.0.0' ] | |
| 135 verbose addNamed [ null, '>=1.0.0-0 <1.1.0-0' ] | |
| 136 silly lockFile 791288aa-rbytes-1-0-0 rbytes@~1.0.0 | |
| 137 verbose lock rbytes@~1.0.0 /home/sharejs/.npm/791288aa-rbytes-1-0-0.lock | |
| 138 silly addNameRange { name: 'querystring', | |
| 138 silly addNameRange range: '>=0.2.0-0 <0.3.0-0', | |
| 138 silly addNameRange hasData: false } | |
| 139 silly addNameRange { name: 'amqp', range: '>=0.1.7-0 <0.2.0-0', hasData: false } | |
| 140 silly addNameRange { name: 'log4js', range: '>=0.6.6-0 <0.7.0-0', hasData: false } | |
| 141 silly addNameRange { name: 'lodash', range: '>=2.2.1-0 <2.3.0-0', hasData: false } | |
| 142 verbose cache add [ 'isbinaryfile@~0.1.9', null ] | |
| 143 verbose cache add name=undefined spec="isbinaryfile@~0.1.9" args=["isbinaryfile@~0.1.9",null] | |
| 144 verbose parsed url { protocol: null, | |
| 144 verbose parsed url slashes: null, | |
| 144 verbose parsed url auth: null, | |
| 144 verbose parsed url host: null, | |
| 144 verbose parsed url port: null, | |
| 144 verbose parsed url hostname: null, | |
| 144 verbose parsed url hash: null, | |
| 144 verbose parsed url search: null, | |
| 144 verbose parsed url query: null, | |
| 144 verbose parsed url pathname: 'isbinaryfile@~0.1.9', | |
| 144 verbose parsed url path: 'isbinaryfile@~0.1.9', | |
| 144 verbose parsed url href: 'isbinaryfile@~0.1.9' } | |
| 145 verbose cache add name="isbinaryfile" spec="~0.1.9" args=["isbinaryfile","~0.1.9"] | |
| 146 verbose parsed url { protocol: null, | |
| 146 verbose parsed url slashes: null, | |
| 146 verbose parsed url auth: null, | |
| 146 verbose parsed url host: null, | |
| 146 verbose parsed url port: null, | |
| 146 verbose parsed url hostname: null, | |
| 146 verbose parsed url hash: null, | |
| 146 verbose parsed url search: null, | |
| 146 verbose parsed url query: null, | |
| 146 verbose parsed url pathname: '~0.1.9', | |
| 146 verbose parsed url path: '~0.1.9', | |
| 146 verbose parsed url href: '~0.1.9' } | |
| 147 verbose addNamed [ 'isbinaryfile', '~0.1.9' ] | |
| 148 verbose addNamed [ null, '>=0.1.9-0 <0.2.0-0' ] | |
| 149 silly lockFile 8b5b2b9d-isbinaryfile-0-1-9 isbinaryfile@~0.1.9 | |
| 150 verbose lock isbinaryfile@~0.1.9 /home/sharejs/.npm/8b5b2b9d-isbinaryfile-0-1-9.lock | |
| 151 verbose cache add [ 'ottypes@~1.0.1', null ] | |
| 152 verbose cache add name=undefined spec="ottypes@~1.0.1" args=["ottypes@~1.0.1",null] | |
| 153 verbose parsed url { protocol: null, | |
| 153 verbose parsed url slashes: null, | |
| 153 verbose parsed url auth: null, | |
| 153 verbose parsed url host: null, | |
| 153 verbose parsed url port: null, | |
| 153 verbose parsed url hostname: null, | |
| 153 verbose parsed url hash: null, | |
| 153 verbose parsed url search: null, | |
| 153 verbose parsed url query: null, | |
| 153 verbose parsed url pathname: 'ottypes@~1.0.1', | |
| 153 verbose parsed url path: 'ottypes@~1.0.1', | |
| 153 verbose parsed url href: 'ottypes@~1.0.1' } | |
| 154 verbose cache add name="ottypes" spec="~1.0.1" args=["ottypes","~1.0.1"] | |
| 155 verbose parsed url { protocol: null, | |
| 155 verbose parsed url slashes: null, | |
| 155 verbose parsed url auth: null, | |
| 155 verbose parsed url host: null, | |
| 155 verbose parsed url port: null, | |
| 155 verbose parsed url hostname: null, | |
| 155 verbose parsed url hash: null, | |
| 155 verbose parsed url search: null, | |
| 155 verbose parsed url query: null, | |
| 155 verbose parsed url pathname: '~1.0.1', | |
| 155 verbose parsed url path: '~1.0.1', | |
| 155 verbose parsed url href: '~1.0.1' } | |
| 156 verbose addNamed [ 'ottypes', '~1.0.1' ] | |
| 157 verbose addNamed [ null, '>=1.0.1-0 <1.1.0-0' ] | |
| 158 silly lockFile 4cbb36db-ottypes-1-0-1 ottypes@~1.0.1 | |
| 159 verbose lock ottypes@~1.0.1 /home/sharejs/.npm/4cbb36db-ottypes-1-0-1.lock | |
| 160 verbose cache add [ 'async@~0.2.9', null ] | |
| 161 verbose cache add name=undefined spec="async@~0.2.9" args=["async@~0.2.9",null] | |
| 162 verbose parsed url { protocol: null, | |
| 162 verbose parsed url slashes: null, | |
| 162 verbose parsed url auth: null, | |
| 162 verbose parsed url host: null, | |
| 162 verbose parsed url port: null, | |
| 162 verbose parsed url hostname: null, | |
| 162 verbose parsed url hash: null, | |
| 162 verbose parsed url search: null, | |
| 162 verbose parsed url query: null, | |
| 162 verbose parsed url pathname: 'async@~0.2.9', | |
| 162 verbose parsed url path: 'async@~0.2.9', | |
| 162 verbose parsed url href: 'async@~0.2.9' } | |
| 163 verbose cache add name="async" spec="~0.2.9" args=["async","~0.2.9"] | |
| 164 verbose parsed url { protocol: null, | |
| 164 verbose parsed url slashes: null, | |
| 164 verbose parsed url auth: null, | |
| 164 verbose parsed url host: null, | |
| 164 verbose parsed url port: null, | |
| 164 verbose parsed url hostname: null, | |
| 164 verbose parsed url hash: null, | |
| 164 verbose parsed url search: null, | |
| 164 verbose parsed url query: null, | |
| 164 verbose parsed url pathname: '~0.2.9', | |
| 164 verbose parsed url path: '~0.2.9', | |
| 164 verbose parsed url href: '~0.2.9' } | |
| 165 verbose addNamed [ 'async', '~0.2.9' ] | |
| 166 verbose addNamed [ null, '>=0.2.9-0 <0.3.0-0' ] | |
| 167 silly lockFile 5d51c871-async-0-2-9 async@~0.2.9 | |
| 168 verbose lock async@~0.2.9 /home/sharejs/.npm/5d51c871-async-0-2-9.lock | |
| 169 verbose cache add [ 'node-codio@git+ssh://git@codio-node_deploy_key:codio/node-codio', | |
| 169 verbose cache add null ] | |
| 170 verbose cache add name=undefined spec="node-codio@git+ssh://git@codio-node_deploy_key:codio/node-codio" args=["node-codio@git+ssh://git@codio-node_deploy_key:codio/node-codio",null] | |
| 171 verbose parsed url { protocol: null, | |
| 171 verbose parsed url slashes: null, | |
| 171 verbose parsed url auth: null, | |
| 171 verbose parsed url host: null, | |
| 171 verbose parsed url port: null, | |
| 171 verbose parsed url hostname: null, | |
| 171 verbose parsed url hash: null, | |
| 171 verbose parsed url search: null, | |
| 171 verbose parsed url query: null, | |
| 171 verbose parsed url pathname: 'node-codio@git+ssh://git@codio-node_deploy_key:codio/node-codio', | |
| 171 verbose parsed url path: 'node-codio@git+ssh://git@codio-node_deploy_key:codio/node-codio', | |
| 171 verbose parsed url href: 'node-codio@git+ssh://git@codio-node_deploy_key:codio/node-codio' } | |
| 172 verbose cache add name="node-codio" spec="git+ssh://git@codio-node_deploy_key:codio/node-codio" args=["node-codio","git+ssh://git@codio-node_deploy_key:codio/node-codio"] | |
| 173 verbose parsed url { protocol: 'git+ssh:', | |
| 173 verbose parsed url slashes: true, | |
| 173 verbose parsed url auth: 'git', | |
| 173 verbose parsed url host: 'codio-node_deploy_key', | |
| 173 verbose parsed url port: null, | |
| 173 verbose parsed url hostname: 'codio-node_deploy_key', | |
| 173 verbose parsed url hash: null, | |
| 173 verbose parsed url search: null, | |
| 173 verbose parsed url query: null, | |
| 173 verbose parsed url pathname: '/:codio/node-codio', | |
| 173 verbose parsed url path: '/:codio/node-codio', | |
| 173 verbose parsed url href: 'git+ssh://git@codio-node_deploy_key/:codio/node-codio' } | |
| 174 silly lockFile 78371dad-node-deploy-key-codio-node-codio git+ssh://git@codio-node_deploy_key:codio/node-codio | |
| 175 verbose lock git+ssh://git@codio-node_deploy_key:codio/node-codio /home/sharejs/.npm/78371dad-node-deploy-key-codio-node-codio.lock | |
| 176 verbose cache add [ 'thalassa@~0.3.2', null ] | |
| 177 verbose cache add name=undefined spec="thalassa@~0.3.2" args=["thalassa@~0.3.2",null] | |
| 178 verbose parsed url { protocol: null, | |
| 178 verbose parsed url slashes: null, | |
| 178 verbose parsed url auth: null, | |
| 178 verbose parsed url host: null, | |
| 178 verbose parsed url port: null, | |
| 178 verbose parsed url hostname: null, | |
| 178 verbose parsed url hash: null, | |
| 178 verbose parsed url search: null, | |
| 178 verbose parsed url query: null, | |
| 178 verbose parsed url pathname: 'thalassa@~0.3.2', | |
| 178 verbose parsed url path: 'thalassa@~0.3.2', | |
| 178 verbose parsed url href: 'thalassa@~0.3.2' } | |
| 179 verbose cache add name="thalassa" spec="~0.3.2" args=["thalassa","~0.3.2"] | |
| 180 verbose parsed url { protocol: null, | |
| 180 verbose parsed url slashes: null, | |
| 180 verbose parsed url auth: null, | |
| 180 verbose parsed url host: null, | |
| 180 verbose parsed url port: null, | |
| 180 verbose parsed url hostname: null, | |
| 180 verbose parsed url hash: null, | |
| 180 verbose parsed url search: null, | |
| 180 verbose parsed url query: null, | |
| 180 verbose parsed url pathname: '~0.3.2', | |
| 180 verbose parsed url path: '~0.3.2', | |
| 180 verbose parsed url href: '~0.3.2' } | |
| 181 verbose addNamed [ 'thalassa', '~0.3.2' ] | |
| 182 verbose addNamed [ null, '>=0.3.2-0 <0.4.0-0' ] | |
| 183 silly lockFile d06bc841-thalassa-0-3-2 thalassa@~0.3.2 | |
| 184 verbose lock thalassa@~0.3.2 /home/sharejs/.npm/d06bc841-thalassa-0-3-2.lock | |
| 185 verbose cache add [ 'connect@~2.7.9', null ] | |
| 186 verbose cache add name=undefined spec="connect@~2.7.9" args=["connect@~2.7.9",null] | |
| 187 verbose parsed url { protocol: null, | |
| 187 verbose parsed url slashes: null, | |
| 187 verbose parsed url auth: null, | |
| 187 verbose parsed url host: null, | |
| 187 verbose parsed url port: null, | |
| 187 verbose parsed url hostname: null, | |
| 187 verbose parsed url hash: null, | |
| 187 verbose parsed url search: null, | |
| 187 verbose parsed url query: null, | |
| 187 verbose parsed url pathname: 'connect@~2.7.9', | |
| 187 verbose parsed url path: 'connect@~2.7.9', | |
| 187 verbose parsed url href: 'connect@~2.7.9' } | |
| 188 verbose cache add name="connect" spec="~2.7.9" args=["connect","~2.7.9"] | |
| 189 verbose parsed url { protocol: null, | |
| 189 verbose parsed url slashes: null, | |
| 189 verbose parsed url auth: null, | |
| 189 verbose parsed url host: null, | |
| 189 verbose parsed url port: null, | |
| 189 verbose parsed url hostname: null, | |
| 189 verbose parsed url hash: null, | |
| 189 verbose parsed url search: null, | |
| 189 verbose parsed url query: null, | |
| 189 verbose parsed url pathname: '~2.7.9', | |
| 189 verbose parsed url path: '~2.7.9', | |
| 189 verbose parsed url href: '~2.7.9' } | |
| 190 verbose addNamed [ 'connect', '~2.7.9' ] | |
| 191 verbose addNamed [ null, '>=2.7.9-0 <2.8.0-0' ] | |
| 192 silly lockFile 4db1e39c-connect-2-7-9 connect@~2.7.9 | |
| 193 verbose lock connect@~2.7.9 /home/sharejs/.npm/4db1e39c-connect-2-7-9.lock | |
| 194 silly addNameRange { name: 'newrelic', range: '>=1.0.1-0 <1.1.0-0', hasData: false } | |
| 195 silly addNameRange { name: 'commander', | |
| 195 silly addNameRange range: '>=2.0.0-0 <2.1.0-0', | |
| 195 silly addNameRange hasData: false } | |
| 196 verbose addRemoteGit [ 'git://github.com/Dignifiedquire/transport-adapters', | |
| 196 verbose addRemoteGit 'master' ] | |
| 197 silly addNameRange { name: 'redis', range: '>=0.9.0-0 <0.10.0-0', hasData: false } | |
| 198 silly addNameRange { name: 'sockjs', range: '>=0.3.8-0 <0.4.0-0', hasData: false } | |
| 199 silly addNameRange { name: 'livedb-mongo', | |
| 199 silly addNameRange range: '>=0.2.5-0 <0.3.0-0', | |
| 199 silly addNameRange hasData: false } | |
| 200 silly addNameRange { name: 'express', range: '>=3.4.4-0 <3.5.0-0', hasData: false } | |
| 201 silly addNameRange { name: 'rbytes', range: '>=1.0.0-0 <1.1.0-0', hasData: false } | |
| 202 silly addNameRange { name: 'isbinaryfile', | |
| 202 silly addNameRange range: '>=0.1.9-0 <0.2.0-0', | |
| 202 silly addNameRange hasData: false } | |
| 203 silly addNameRange { name: 'ottypes', range: '>=1.0.1-0 <1.1.0-0', hasData: false } | |
| 204 silly addNameRange { name: 'async', range: '>=0.2.9-0 <0.3.0-0', hasData: false } | |
| 205 silly addNameRange { name: 'thalassa', range: '>=0.3.2-0 <0.4.0-0', hasData: false } | |
| 206 silly addNameRange { name: 'connect', range: '>=2.7.9-0 <2.8.0-0', hasData: false } | |
| 207 verbose url raw querystring | |
| 208 verbose url resolving [ 'https://registry.npmjs.org/', './querystring' ] | |
| 209 verbose url resolved https://registry.npmjs.org/querystring | |
| 210 info trying registry request attempt 1 at 17:17:46 | |
| 211 verbose etag "52DTTA8J6EE128N5FO1C8FKY8" | |
| 212 http GET https://registry.npmjs.org/querystring | |
| 213 verbose url raw nodetime/0.8.13 | |
| 214 verbose url resolving [ 'https://registry.npmjs.org/', './nodetime/0.8.13' ] | |
| 215 verbose url resolved https://registry.npmjs.org/nodetime/0.8.13 | |
| 216 info trying registry request attempt 1 at 17:17:46 | |
| 217 verbose etag "6S46YJTGZY8ESXEE055RR0NCQ" | |
| 218 http GET https://registry.npmjs.org/nodetime/0.8.13 | |
| 219 verbose url raw amqp | |
| 220 verbose url resolving [ 'https://registry.npmjs.org/', './amqp' ] | |
| 221 verbose url resolved https://registry.npmjs.org/amqp | |
| 222 info trying registry request attempt 1 at 17:17:46 | |
| 223 verbose etag "DP4WLN7HOTLSM8DZZ3FFZS57O" | |
| 224 http GET https://registry.npmjs.org/amqp | |
| 225 verbose url raw log4js | |
| 226 verbose url resolving [ 'https://registry.npmjs.org/', './log4js' ] | |
| 227 verbose url resolved https://registry.npmjs.org/log4js | |
| 228 info trying registry request attempt 1 at 17:17:46 | |
| 229 verbose etag "83RKMBAEAHHQNJ48FCXI1FCO2" | |
| 230 http GET https://registry.npmjs.org/log4js | |
| 231 verbose url raw lodash | |
| 232 verbose url resolving [ 'https://registry.npmjs.org/', './lodash' ] | |
| 233 verbose url resolved https://registry.npmjs.org/lodash | |
| 234 info trying registry request attempt 1 at 17:17:46 | |
| 235 verbose etag "93VVQDOQAAMK99ABRCM1ZYFHK" | |
| 236 http GET https://registry.npmjs.org/lodash | |
| 237 verbose url raw newrelic | |
| 238 verbose url resolving [ 'https://registry.npmjs.org/', './newrelic' ] | |
| 239 verbose url resolved https://registry.npmjs.org/newrelic | |
| 240 info trying registry request attempt 1 at 17:17:46 | |
| 241 verbose etag "214K3EG96PS1XA2DJLL4MWUD8" | |
| 242 http GET https://registry.npmjs.org/newrelic | |
| 243 verbose url raw commander | |
| 244 verbose url resolving [ 'https://registry.npmjs.org/', './commander' ] | |
| 245 verbose url resolved https://registry.npmjs.org/commander | |
| 246 info trying registry request attempt 1 at 17:17:46 | |
| 247 verbose etag "6TUSC25XULV630WAWJ5MJN2W4" | |
| 248 http GET https://registry.npmjs.org/commander | |
| 249 verbose url raw redis | |
| 250 verbose url resolving [ 'https://registry.npmjs.org/', './redis' ] | |
| 251 verbose url resolved https://registry.npmjs.org/redis | |
| 252 info trying registry request attempt 1 at 17:17:46 | |
| 253 verbose etag "E2PPTGX1WHN38SJOPTB8K7PZ1" | |
| 254 http GET https://registry.npmjs.org/redis | |
| 255 verbose url raw sockjs | |
| 256 verbose url resolving [ 'https://registry.npmjs.org/', './sockjs' ] | |
| 257 verbose url resolved https://registry.npmjs.org/sockjs | |
| 258 info trying registry request attempt 1 at 17:17:46 | |
| 259 verbose etag "5PR9D6E6BD7MLJYYRN5VTU64D" | |
| 260 http GET https://registry.npmjs.org/sockjs | |
| 261 verbose url raw livedb-mongo | |
| 262 verbose url resolving [ 'https://registry.npmjs.org/', './livedb-mongo' ] | |
| 263 verbose url resolved https://registry.npmjs.org/livedb-mongo | |
| 264 info trying registry request attempt 1 at 17:17:46 | |
| 265 verbose etag "CGXFGMHG1OARWFBRCU4MMTP7T" | |
| 266 http GET https://registry.npmjs.org/livedb-mongo | |
| 267 verbose url raw express | |
| 268 verbose url resolving [ 'https://registry.npmjs.org/', './express' ] | |
| 269 verbose url resolved https://registry.npmjs.org/express | |
| 270 info trying registry request attempt 1 at 17:17:46 | |
| 271 verbose etag "EIL7AGBEJHIFIWHI9SJNC8S6B" | |
| 272 http GET https://registry.npmjs.org/express | |
| 273 verbose url raw rbytes | |
| 274 verbose url resolving [ 'https://registry.npmjs.org/', './rbytes' ] | |
| 275 verbose url resolved https://registry.npmjs.org/rbytes | |
| 276 info trying registry request attempt 1 at 17:17:46 | |
| 277 verbose etag "APINDLVFJRQX6U7NFYII2ZQ5H" | |
| 278 http GET https://registry.npmjs.org/rbytes | |
| 279 verbose url raw isbinaryfile | |
| 280 verbose url resolving [ 'https://registry.npmjs.org/', './isbinaryfile' ] | |
| 281 verbose url resolved https://registry.npmjs.org/isbinaryfile | |
| 282 info trying registry request attempt 1 at 17:17:47 | |
| 283 verbose etag "47PAUDKAGQZFFT4HO7LMNTZZ" | |
| 284 http GET https://registry.npmjs.org/isbinaryfile | |
| 285 verbose url raw ottypes | |
| 286 verbose url resolving [ 'https://registry.npmjs.org/', './ottypes' ] | |
| 287 verbose url resolved https://registry.npmjs.org/ottypes | |
| 288 info trying registry request attempt 1 at 17:17:47 | |
| 289 verbose etag "3V9UPQXB7JFFF67Z0L0QJJCMQ" | |
| 290 http GET https://registry.npmjs.org/ottypes | |
| 291 verbose url raw async | |
| 292 verbose url resolving [ 'https://registry.npmjs.org/', './async' ] | |
| 293 verbose url resolved https://registry.npmjs.org/async | |
| 294 info trying registry request attempt 1 at 17:17:47 | |
| 295 verbose etag "90GUDIE8G3Q43XFV2EPG6K2JZ" | |
| 296 http GET https://registry.npmjs.org/async | |
| 297 verbose url raw thalassa | |
| 298 verbose url resolving [ 'https://registry.npmjs.org/', './thalassa' ] | |
| 299 verbose url resolved https://registry.npmjs.org/thalassa | |
| 300 info trying registry request attempt 1 at 17:17:47 | |
| 301 verbose etag "C3QLOC89PODR6RJGPV839GFDH" | |
| 302 http GET https://registry.npmjs.org/thalassa | |
| 303 verbose url raw connect | |
| 304 verbose url resolving [ 'https://registry.npmjs.org/', './connect' ] | |
| 305 verbose url resolved https://registry.npmjs.org/connect | |
| 306 info trying registry request attempt 1 at 17:17:47 | |
| 307 verbose etag "1KOME83NOH3JLW3LY0ADM3QLT" | |
| 308 http GET https://registry.npmjs.org/connect | |
| 309 verbose git remote.origin.url git://github.com/Dignifiedquire/transport-adapters | |
| 310 verbose git fetch -a origin (git://github.com/Dignifiedquire/transport-adapters) | |
| 311 verbose git rev-list -n1 master f1c188a6bf42b247c981587e299e6405eb4492e9 | |
| 312 verbose resolved git url git://github.com/Dignifiedquire/transport-adapters#f1c188a6bf42b247c981587e299e6405eb4492e9 | |
| 313 verbose tar unpack /home/sharejs/tmp/npm-7091-_I7pIHma/1387387067184-0.3182910999748856/tmp.tgz | |
| 314 silly lockFile b8bc9667-67184-0-3182910999748856-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387067184-0.3182910999748856/package | |
| 315 verbose lock tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387067184-0.3182910999748856/package /home/sharejs/.npm/b8bc9667-67184-0-3182910999748856-package.lock | |
| 316 silly lockFile 1f95b197-67184-0-3182910999748856-tmp-tgz tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387067184-0.3182910999748856/tmp.tgz | |
| 317 verbose lock tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387067184-0.3182910999748856/tmp.tgz /home/sharejs/.npm/1f95b197-67184-0-3182910999748856-tmp-tgz.lock | |
| 318 silly gunzTarPerm modes [ '755', '644' ] | |
| 319 silly gunzTarPerm extractEntry | |
| 320 silly gunzTarPerm modified mode [ '', 509, 493 ] | |
| 321 silly gunzTarPerm extractEntry .gitignore | |
| 322 silly gunzTarPerm modified mode [ '.gitignore', 436, 420 ] | |
| 323 silly gunzTarPerm extractEntry .travis.yml | |
| 324 silly gunzTarPerm modified mode [ '.travis.yml', 436, 420 ] | |
| 325 silly gunzTarPerm extractEntry README.md | |
| 326 silly gunzTarPerm modified mode [ 'README.md', 436, 420 ] | |
| 327 silly gunzTarPerm extractEntry examples/ | |
| 328 silly gunzTarPerm modified mode [ 'examples/', 509, 493 ] | |
| 329 silly gunzTarPerm extractEntry examples/browserchannel/ | |
| 330 silly gunzTarPerm modified mode [ 'examples/browserchannel/', 509, 493 ] | |
| 331 silly gunzTarPerm extractEntry examples/browserchannel/index.html | |
| 332 silly gunzTarPerm modified mode [ 'examples/browserchannel/index.html', 436, 420 ] | |
| 333 silly gunzTarPerm extractEntry examples/browserchannel/server.coffee | |
| 334 silly gunzTarPerm modified mode [ 'examples/browserchannel/server.coffee', 436, 420 ] | |
| 335 silly gunzTarPerm extractEntry examples/browserchannel/share-textarea.js | |
| 336 silly gunzTarPerm modified mode [ 'examples/browserchannel/share-textarea.js', 436, 420 ] | |
| 337 silly gunzTarPerm extractEntry examples/sockjs/ | |
| 338 silly gunzTarPerm modified mode [ 'examples/sockjs/', 509, 493 ] | |
| 339 silly gunzTarPerm extractEntry examples/sockjs/index.html | |
| 340 silly gunzTarPerm modified mode [ 'examples/sockjs/index.html', 436, 420 ] | |
| 341 silly gunzTarPerm extractEntry examples/sockjs/index.js | |
| 342 silly gunzTarPerm modified mode [ 'examples/sockjs/index.js', 436, 420 ] | |
| 343 silly gunzTarPerm extractEntry examples/sockjs/package.json | |
| 344 silly gunzTarPerm modified mode [ 'examples/sockjs/package.json', 436, 420 ] | |
| 345 silly gunzTarPerm extractEntry examples/sockjs/server.js | |
| 346 silly gunzTarPerm modified mode [ 'examples/sockjs/server.js', 436, 420 ] | |
| 347 silly gunzTarPerm extractEntry examples/sockjs/share-textarea.js | |
| 348 silly gunzTarPerm modified mode [ 'examples/sockjs/share-textarea.js', 436, 420 ] | |
| 349 silly gunzTarPerm extractEntry index.js | |
| 350 silly gunzTarPerm modified mode [ 'index.js', 436, 420 ] | |
| 351 silly gunzTarPerm extractEntry lib/ | |
| 352 silly gunzTarPerm modified mode [ 'lib/', 509, 493 ] | |
| 353 silly gunzTarPerm extractEntry lib/browserchannel.js | |
| 354 silly gunzTarPerm modified mode [ 'lib/browserchannel.js', 436, 420 ] | |
| 355 silly gunzTarPerm extractEntry lib/index.js | |
| 356 silly gunzTarPerm modified mode [ 'lib/index.js', 436, 420 ] | |
| 357 silly gunzTarPerm extractEntry lib/sockjs.js | |
| 358 silly gunzTarPerm modified mode [ 'lib/sockjs.js', 436, 420 ] | |
| 359 silly gunzTarPerm extractEntry package.json | |
| 360 silly gunzTarPerm modified mode [ 'package.json', 436, 420 ] | |
| 361 silly gunzTarPerm extractEntry test/ | |
| 362 silly gunzTarPerm modified mode [ 'test/', 509, 493 ] | |
| 363 silly gunzTarPerm extractEntry test/browserchannel.coffee | |
| 364 silly gunzTarPerm modified mode [ 'test/browserchannel.coffee', 436, 420 ] | |
| 365 silly gunzTarPerm extractEntry test/sockjs.coffee | |
| 366 silly gunzTarPerm modified mode [ 'test/sockjs.coffee', 436, 420 ] | |
| 367 http 304 https://registry.npmjs.org/querystring | |
| 368 silly registry.get cb [ 304, | |
| 368 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 368 silly registry.get etag: '"52DTTA8J6EE128N5FO1C8FKY8"', | |
| 368 silly registry.get date: 'Wed, 18 Dec 2013 17:17:47 GMT', | |
| 368 silly registry.get 'content-length': '0' } ] | |
| 369 verbose etag querystring from cache | |
| 370 http 304 https://registry.npmjs.org/nodetime/0.8.13 | |
| 371 silly registry.get cb [ 304, | |
| 371 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 371 silly registry.get etag: '"6S46YJTGZY8ESXEE055RR0NCQ"', | |
| 371 silly registry.get date: 'Wed, 18 Dec 2013 17:17:47 GMT', | |
| 371 silly registry.get 'content-length': '0' } ] | |
| 372 verbose etag nodetime/0.8.13 from cache | |
| 373 http 304 https://registry.npmjs.org/lodash | |
| 374 silly registry.get cb [ 304, | |
| 374 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 374 silly registry.get etag: '"93VVQDOQAAMK99ABRCM1ZYFHK"', | |
| 374 silly registry.get date: 'Wed, 18 Dec 2013 17:17:47 GMT', | |
| 374 silly registry.get 'content-length': '0' } ] | |
| 375 verbose etag lodash from cache | |
| 376 http 304 https://registry.npmjs.org/amqp | |
| 377 silly registry.get cb [ 304, | |
| 377 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 377 silly registry.get etag: '"DP4WLN7HOTLSM8DZZ3FFZS57O"', | |
| 377 silly registry.get date: 'Wed, 18 Dec 2013 17:17:47 GMT', | |
| 377 silly registry.get 'content-length': '0' } ] | |
| 378 verbose etag amqp from cache | |
| 379 http 304 https://registry.npmjs.org/log4js | |
| 380 silly registry.get cb [ 304, | |
| 380 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 380 silly registry.get etag: '"83RKMBAEAHHQNJ48FCXI1FCO2"', | |
| 380 silly registry.get date: 'Wed, 18 Dec 2013 17:17:47 GMT', | |
| 380 silly registry.get 'content-length': '0' } ] | |
| 381 verbose etag log4js from cache | |
| 382 http 304 https://registry.npmjs.org/newrelic | |
| 383 silly registry.get cb [ 304, | |
| 383 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 383 silly registry.get etag: '"214K3EG96PS1XA2DJLL4MWUD8"', | |
| 383 silly registry.get date: 'Wed, 18 Dec 2013 17:17:47 GMT', | |
| 383 silly registry.get 'content-length': '0' } ] | |
| 384 verbose etag newrelic from cache | |
| 385 silly addNameRange number 2 { name: 'querystring', | |
| 385 silly addNameRange range: '>=0.2.0-0 <0.3.0-0', | |
| 385 silly addNameRange hasData: true } | |
| 386 silly addNameRange versions [ 'querystring', [ '0.0.1', '0.0.4', '0.1.0', '0.2.0' ] ] | |
| 387 verbose addNamed [ 'querystring', '0.2.0' ] | |
| 388 verbose addNamed [ '0.2.0', '0.2.0' ] | |
| 389 silly lockFile 3765abce-querystring-0-2-0 [email protected] | |
| 390 verbose lock [email protected] /home/sharejs/.npm/3765abce-querystring-0-2-0.lock | |
| 391 http 304 https://registry.npmjs.org/commander | |
| 392 silly registry.get cb [ 304, | |
| 392 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 392 silly registry.get etag: '"6TUSC25XULV630WAWJ5MJN2W4"', | |
| 392 silly registry.get date: 'Wed, 18 Dec 2013 17:17:47 GMT', | |
| 392 silly registry.get 'content-length': '0' } ] | |
| 393 verbose etag commander from cache | |
| 394 silly addNameRange number 2 { name: 'lodash', range: '>=2.2.1-0 <2.3.0-0', hasData: true } | |
| 395 silly addNameRange versions [ 'lodash', | |
| 395 silly addNameRange [ '0.1.0', | |
| 395 silly addNameRange '0.2.0', | |
| 395 silly addNameRange '0.2.1', | |
| 395 silly addNameRange '0.2.2', | |
| 395 silly addNameRange '0.3.0', | |
| 395 silly addNameRange '0.3.1', | |
| 395 silly addNameRange '0.3.2', | |
| 395 silly addNameRange '0.4.0', | |
| 395 silly addNameRange '0.4.1', | |
| 395 silly addNameRange '0.4.2', | |
| 395 silly addNameRange '0.5.0-rc.1', | |
| 395 silly addNameRange '0.5.0', | |
| 395 silly addNameRange '0.5.1', | |
| 395 silly addNameRange '0.5.2', | |
| 395 silly addNameRange '0.6.0', | |
| 395 silly addNameRange '0.6.1', | |
| 395 silly addNameRange '0.7.0', | |
| 395 silly addNameRange '0.8.0', | |
| 395 silly addNameRange '0.8.1', | |
| 395 silly addNameRange '0.8.2', | |
| 395 silly addNameRange '0.9.0', | |
| 395 silly addNameRange '0.9.1', | |
| 395 silly addNameRange '0.9.2', | |
| 395 silly addNameRange '0.10.0', | |
| 395 silly addNameRange '1.0.0-rc.1', | |
| 395 silly addNameRange '1.0.0-rc.2', | |
| 395 silly addNameRange '1.0.0-rc.3', | |
| 395 silly addNameRange '1.0.0', | |
| 395 silly addNameRange '1.0.1', | |
| 395 silly addNameRange '1.1.0', | |
| 395 silly addNameRange '1.1.1', | |
| 395 silly addNameRange '1.2.0', | |
| 395 silly addNameRange '1.2.1', | |
| 395 silly addNameRange '1.3.0', | |
| 395 silly addNameRange '1.3.1', | |
| 395 silly addNameRange '2.0.0', | |
| 395 silly addNameRange '2.1.0', | |
| 395 silly addNameRange '2.2.0', | |
| 395 silly addNameRange '2.2.1', | |
| 395 silly addNameRange '2.3.0', | |
| 395 silly addNameRange '2.4.0', | |
| 395 silly addNameRange '2.4.1' ] ] | |
| 396 verbose addNamed [ 'lodash', '2.2.1' ] | |
| 397 verbose addNamed [ '2.2.1', '2.2.1' ] | |
| 398 silly lockFile 065ff042-lodash-2-2-1 [email protected] | |
| 399 verbose lock [email protected] /home/sharejs/.npm/065ff042-lodash-2-2-1.lock | |
| 400 silly addNameRange number 2 { name: 'amqp', range: '>=0.1.7-0 <0.2.0-0', hasData: true } | |
| 401 silly addNameRange versions [ 'amqp', | |
| 401 silly addNameRange [ '0.0.1', | |
| 401 silly addNameRange '0.0.2', | |
| 401 silly addNameRange '0.0.2-squaremo01.184010', | |
| 401 silly addNameRange '0.0.6', | |
| 401 silly addNameRange '0.0.7', | |
| 401 silly addNameRange '0.1.0', | |
| 401 silly addNameRange '0.1.1', | |
| 401 silly addNameRange '0.1.2', | |
| 401 silly addNameRange '0.1.3', | |
| 401 silly addNameRange '0.1.4', | |
| 401 silly addNameRange '0.1.6', | |
| 401 silly addNameRange '0.1.7', | |
| 401 silly addNameRange '0.1.8' ] ] | |
| 402 verbose addNamed [ 'amqp', '0.1.8' ] | |
| 403 verbose addNamed [ '0.1.8', '0.1.8' ] | |
| 404 silly lockFile 7317b97a-amqp-0-1-8 [email protected] | |
| 405 verbose lock [email protected] /home/sharejs/.npm/7317b97a-amqp-0-1-8.lock | |
| 406 http 304 https://registry.npmjs.org/redis | |
| 407 silly registry.get cb [ 304, | |
| 407 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 407 silly registry.get etag: '"E2PPTGX1WHN38SJOPTB8K7PZ1"', | |
| 407 silly registry.get date: 'Wed, 18 Dec 2013 17:17:47 GMT', | |
| 407 silly registry.get 'content-length': '0' } ] | |
| 408 verbose etag redis from cache | |
| 409 http 304 https://registry.npmjs.org/sockjs | |
| 410 silly registry.get cb [ 304, | |
| 410 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 410 silly registry.get etag: '"5PR9D6E6BD7MLJYYRN5VTU64D"', | |
| 410 silly registry.get date: 'Wed, 18 Dec 2013 17:17:47 GMT', | |
| 410 silly registry.get 'content-length': '0' } ] | |
| 411 verbose etag sockjs from cache | |
| 412 silly addNameRange number 2 { name: 'log4js', range: '>=0.6.6-0 <0.7.0-0', hasData: true } | |
| 413 silly addNameRange versions [ 'log4js', | |
| 413 silly addNameRange [ '0.1.0', | |
| 413 silly addNameRange '0.2.0', | |
| 413 silly addNameRange '0.2.2', | |
| 413 silly addNameRange '0.2.3', | |
| 413 silly addNameRange '0.2.4', | |
| 413 silly addNameRange '0.2.5', | |
| 413 silly addNameRange '0.2.6', | |
| 413 silly addNameRange '0.3.0', | |
| 413 silly addNameRange '0.3.1', | |
| 413 silly addNameRange '0.3.2', | |
| 413 silly addNameRange '0.3.3', | |
| 413 silly addNameRange '0.3.4', | |
| 413 silly addNameRange '0.3.5', | |
| 413 silly addNameRange '0.3.6', | |
| 413 silly addNameRange '0.3.7', | |
| 413 silly addNameRange '0.3.8', | |
| 413 silly addNameRange '0.3.9', | |
| 413 silly addNameRange '0.4.0', | |
| 413 silly addNameRange '0.4.1', | |
| 413 silly addNameRange '0.4.2', | |
| 413 silly addNameRange '0.4.3', | |
| 413 silly addNameRange '0.5.0', | |
| 413 silly addNameRange '0.5.1', | |
| 413 silly addNameRange '0.5.2', | |
| 413 silly addNameRange '0.5.3', | |
| 413 silly addNameRange '0.5.4', | |
| 413 silly addNameRange '0.5.5', | |
| 413 silly addNameRange '0.5.6', | |
| 413 silly addNameRange '0.5.7', | |
| 413 silly addNameRange '0.6.0', | |
| 413 silly addNameRange '0.6.1', | |
| 413 silly addNameRange '0.5.8', | |
| 413 silly addNameRange '0.6.2', | |
| 413 silly addNameRange '0.6.3', | |
| 413 silly addNameRange '0.6.4', | |
| 413 silly addNameRange '0.6.5', | |
| 413 silly addNameRange '0.6.6', | |
| 413 silly addNameRange '0.6.7', | |
| 413 silly addNameRange '0.6.8', | |
| 413 silly addNameRange '0.6.9' ] ] | |
| 414 verbose addNamed [ 'log4js', '0.6.9' ] | |
| 415 verbose addNamed [ '0.6.9', '0.6.9' ] | |
| 416 silly lockFile 80af7d90-log4js-0-6-9 [email protected] | |
| 417 verbose lock [email protected] /home/sharejs/.npm/80af7d90-log4js-0-6-9.lock | |
| 418 http 304 https://registry.npmjs.org/livedb-mongo | |
| 419 silly registry.get cb [ 304, | |
| 419 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 419 silly registry.get etag: '"CGXFGMHG1OARWFBRCU4MMTP7T"', | |
| 419 silly registry.get date: 'Wed, 18 Dec 2013 17:17:47 GMT', | |
| 419 silly registry.get 'content-length': '0' } ] | |
| 420 verbose etag livedb-mongo from cache | |
| 421 http 304 https://registry.npmjs.org/rbytes | |
| 422 silly registry.get cb [ 304, | |
| 422 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 422 silly registry.get etag: '"APINDLVFJRQX6U7NFYII2ZQ5H"', | |
| 422 silly registry.get date: 'Wed, 18 Dec 2013 17:17:47 GMT', | |
| 422 silly registry.get 'content-length': '0' } ] | |
| 423 verbose etag rbytes from cache | |
| 424 http 304 https://registry.npmjs.org/express | |
| 425 silly registry.get cb [ 304, | |
| 425 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 425 silly registry.get etag: '"EIL7AGBEJHIFIWHI9SJNC8S6B"', | |
| 425 silly registry.get date: 'Wed, 18 Dec 2013 17:17:47 GMT', | |
| 425 silly registry.get 'content-length': '0' } ] | |
| 426 verbose etag express from cache | |
| 427 silly addNameRange number 2 { name: 'newrelic', range: '>=1.0.1-0 <1.1.0-0', hasData: true } | |
| 428 silly addNameRange versions [ 'newrelic', | |
| 428 silly addNameRange [ '0.0.0-1', | |
| 428 silly addNameRange '0.9.4-61', | |
| 428 silly addNameRange '0.9.4-62', | |
| 428 silly addNameRange '0.9.4-63', | |
| 428 silly addNameRange '0.9.5-65', | |
| 428 silly addNameRange '0.9.6-70', | |
| 428 silly addNameRange '0.9.6-72', | |
| 428 silly addNameRange '0.9.7-75', | |
| 428 silly addNameRange '0.9.9-82', | |
| 428 silly addNameRange '0.9.10-85', | |
| 428 silly addNameRange '0.9.11-88', | |
| 428 silly addNameRange '0.9.12-91', | |
| 428 silly addNameRange '0.9.12-92', | |
| 428 silly addNameRange '0.9.13-101', | |
| 428 silly addNameRange '0.9.14-105', | |
| 428 silly addNameRange '0.9.15-107', | |
| 428 silly addNameRange '0.9.16-121', | |
| 428 silly addNameRange '0.9.17-132', | |
| 428 silly addNameRange '0.9.18-137', | |
| 428 silly addNameRange '0.9.18-138', | |
| 428 silly addNameRange '0.9.19', | |
| 428 silly addNameRange '0.9.20', | |
| 428 silly addNameRange '0.9.21', | |
| 428 silly addNameRange '0.9.22', | |
| 428 silly addNameRange '0.10.0', | |
| 428 silly addNameRange '0.10.1', | |
| 428 silly addNameRange '0.10.2', | |
| 428 silly addNameRange '0.10.3', | |
| 428 silly addNameRange '0.11.0', | |
| 428 silly addNameRange '0.11.1', | |
| 428 silly addNameRange '0.11.2', | |
| 428 silly addNameRange '0.11.3', | |
| 428 silly addNameRange '0.11.4', | |
| 428 silly addNameRange '0.11.5', | |
| 428 silly addNameRange '0.11.6', | |
| 428 silly addNameRange '0.11.7', | |
| 428 silly addNameRange '0.11.8', | |
| 428 silly addNameRange '0.11.9', | |
| 428 silly addNameRange '0.12.0', | |
| 428 silly addNameRange '0.12.1', | |
| 428 silly addNameRange '1.0.0', | |
| 428 silly addNameRange '1.0.1', | |
| 428 silly addNameRange '1.1.0', | |
| 428 silly addNameRange '1.1.1', | |
| 428 silly addNameRange '1.2.0' ] ] | |
| 429 verbose addNamed [ 'newrelic', '1.0.1' ] | |
| 430 verbose addNamed [ '1.0.1', '1.0.1' ] | |
| 431 silly lockFile 4748c617-newrelic-1-0-1 [email protected] | |
| 432 verbose lock [email protected] /home/sharejs/.npm/4748c617-newrelic-1-0-1.lock | |
| 433 silly addNameRange number 2 { name: 'commander', range: '>=2.0.0-0 <2.1.0-0', hasData: true } | |
| 434 silly addNameRange versions [ 'commander', | |
| 434 silly addNameRange [ '0.0.1', | |
| 434 silly addNameRange '0.0.3', | |
| 434 silly addNameRange '0.0.4', | |
| 434 silly addNameRange '0.0.5', | |
| 434 silly addNameRange '0.1.0', | |
| 434 silly addNameRange '0.2.0', | |
| 434 silly addNameRange '0.2.1', | |
| 434 silly addNameRange '0.3.0', | |
| 434 silly addNameRange '0.3.1', | |
| 434 silly addNameRange '0.3.2', | |
| 434 silly addNameRange '0.3.3', | |
| 434 silly addNameRange '0.4.0', | |
| 434 silly addNameRange '0.4.1', | |
| 434 silly addNameRange '0.4.2', | |
| 434 silly addNameRange '0.4.3', | |
| 434 silly addNameRange '0.5.0', | |
| 434 silly addNameRange '0.5.1', | |
| 434 silly addNameRange '0.6.0', | |
| 434 silly addNameRange '0.6.1', | |
| 434 silly addNameRange '0.5.2', | |
| 434 silly addNameRange '1.0.0', | |
| 434 silly addNameRange '1.0.1', | |
| 434 silly addNameRange '1.0.2', | |
| 434 silly addNameRange '1.0.3', | |
| 434 silly addNameRange '1.0.4', | |
| 434 silly addNameRange '1.0.5', | |
| 434 silly addNameRange '1.1.0', | |
| 434 silly addNameRange '1.1.1', | |
| 434 silly addNameRange '1.2.0', | |
| 434 silly addNameRange '1.3.0', | |
| 434 silly addNameRange '1.3.1', | |
| 434 silly addNameRange '1.3.2', | |
| 434 silly addNameRange '2.0.0', | |
| 434 silly addNameRange '2.1.0' ] ] | |
| 435 verbose addNamed [ 'commander', '2.0.0' ] | |
| 436 verbose addNamed [ '2.0.0', '2.0.0' ] | |
| 437 silly lockFile d5315eb7-commander-2-0-0 [email protected] | |
| 438 verbose lock [email protected] /home/sharejs/.npm/d5315eb7-commander-2-0-0.lock | |
| 439 http 304 https://registry.npmjs.org/isbinaryfile | |
| 440 silly registry.get cb [ 304, | |
| 440 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 440 silly registry.get etag: '"47PAUDKAGQZFFT4HO7LMNTZZ"', | |
| 440 silly registry.get date: 'Wed, 18 Dec 2013 17:17:47 GMT', | |
| 440 silly registry.get 'content-length': '0' } ] | |
| 441 verbose etag isbinaryfile from cache | |
| 442 http 304 https://registry.npmjs.org/ottypes | |
| 443 silly registry.get cb [ 304, | |
| 443 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 443 silly registry.get etag: '"3V9UPQXB7JFFF67Z0L0QJJCMQ"', | |
| 443 silly registry.get date: 'Wed, 18 Dec 2013 17:17:47 GMT', | |
| 443 silly registry.get 'content-length': '0' } ] | |
| 444 verbose etag ottypes from cache | |
| 445 http 304 https://registry.npmjs.org/async | |
| 446 silly registry.get cb [ 304, | |
| 446 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 446 silly registry.get etag: '"90GUDIE8G3Q43XFV2EPG6K2JZ"', | |
| 446 silly registry.get date: 'Wed, 18 Dec 2013 17:17:47 GMT', | |
| 446 silly registry.get 'content-length': '0' } ] | |
| 447 verbose etag async from cache | |
| 448 http 304 https://registry.npmjs.org/thalassa | |
| 449 silly registry.get cb [ 304, | |
| 449 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 449 silly registry.get etag: '"C3QLOC89PODR6RJGPV839GFDH"', | |
| 449 silly registry.get date: 'Wed, 18 Dec 2013 17:17:47 GMT', | |
| 449 silly registry.get 'content-length': '0' } ] | |
| 450 verbose etag thalassa from cache | |
| 451 silly addNameRange number 2 { name: 'redis', range: '>=0.9.0-0 <0.10.0-0', hasData: true } | |
| 452 silly addNameRange versions [ 'redis', | |
| 452 silly addNameRange [ '0.0.1', | |
| 452 silly addNameRange '0.0.2', | |
| 452 silly addNameRange '0.0.3', | |
| 452 silly addNameRange '0.0.4', | |
| 452 silly addNameRange '0.0.7', | |
| 452 silly addNameRange '0.0.8', | |
| 452 silly addNameRange '0.1.0', | |
| 452 silly addNameRange '0.1.1', | |
| 452 silly addNameRange '0.1.2', | |
| 452 silly addNameRange '0.2.0', | |
| 452 silly addNameRange '0.2.1', | |
| 452 silly addNameRange '0.2.2', | |
| 452 silly addNameRange '0.2.3', | |
| 452 silly addNameRange '0.2.4', | |
| 452 silly addNameRange '0.2.6', | |
| 452 silly addNameRange '0.3.0', | |
| 452 silly addNameRange '0.3.1', | |
| 452 silly addNameRange '0.3.2', | |
| 452 silly addNameRange '0.3.3', | |
| 452 silly addNameRange '0.3.4', | |
| 452 silly addNameRange '0.3.5', | |
| 452 silly addNameRange '0.3.6', | |
| 452 silly addNameRange '0.3.7', | |
| 452 silly addNameRange '0.3.9', | |
| 452 silly addNameRange '0.4.0', | |
| 452 silly addNameRange '0.4.1', | |
| 452 silly addNameRange '0.4.2', | |
| 452 silly addNameRange '0.5.0', | |
| 452 silly addNameRange '0.5.1', | |
| 452 silly addNameRange '0.5.2', | |
| 452 silly addNameRange '0.5.3', | |
| 452 silly addNameRange '0.5.4', | |
| 452 silly addNameRange '0.5.5', | |
| 452 silly addNameRange '0.5.6', | |
| 452 silly addNameRange '0.5.7', | |
| 452 silly addNameRange '0.5.8', | |
| 452 silly addNameRange '0.5.9', | |
| 452 silly addNameRange '0.5.10', | |
| 452 silly addNameRange '0.5.11', | |
| 452 silly addNameRange '0.6.0', | |
| 452 silly addNameRange '0.6.1', | |
| 452 silly addNameRange '0.6.2', | |
| 452 silly addNameRange '0.6.3', | |
| 452 silly addNameRange '0.6.4', | |
| 452 silly addNameRange '0.6.5', | |
| 452 silly addNameRange '0.6.6', | |
| 452 silly addNameRange '0.6.7', | |
| 452 silly addNameRange '0.7.0', | |
| 452 silly addNameRange '0.7.1', | |
| 452 silly addNameRange '0.7.2', | |
| 452 silly addNameRange '0.7.3', | |
| 452 silly addNameRange '0.8.0', | |
| 452 silly addNameRange '0.8.1', | |
| 452 silly addNameRange '0.8.2', | |
| 452 silly addNameRange '0.8.3', | |
| 452 silly addNameRange '0.8.4', | |
| 452 silly addNameRange '0.8.5', | |
| 452 silly addNameRange '0.8.6', | |
| 452 silly addNameRange '0.9.0', | |
| 452 silly addNameRange '0.9.1', | |
| 452 silly addNameRange '0.9.2' ] ] | |
| 453 verbose addNamed [ 'redis', '0.9.2' ] | |
| 454 verbose addNamed [ '0.9.2', '0.9.2' ] | |
| 455 silly lockFile e9b6ade2-redis-0-9-2 [email protected] | |
| 456 verbose lock [email protected] /home/sharejs/.npm/e9b6ade2-redis-0-9-2.lock | |
| 457 silly addNameRange number 2 { name: 'sockjs', range: '>=0.3.8-0 <0.4.0-0', hasData: true } | |
| 458 silly addNameRange versions [ 'sockjs', | |
| 458 silly addNameRange [ '0.0.0-rc1', | |
| 458 silly addNameRange '0.0.0-rc2', | |
| 458 silly addNameRange '0.0.1', | |
| 458 silly addNameRange '0.0.2', | |
| 458 silly addNameRange '0.0.3', | |
| 458 silly addNameRange '0.0.4', | |
| 458 silly addNameRange '0.0.5', | |
| 458 silly addNameRange '0.1.0', | |
| 458 silly addNameRange '0.1.1', | |
| 458 silly addNameRange '0.1.2', | |
| 458 silly addNameRange '0.2.0', | |
| 458 silly addNameRange '0.2.1', | |
| 458 silly addNameRange '0.3.0', | |
| 458 silly addNameRange '0.3.1', | |
| 458 silly addNameRange '0.3.3', | |
| 458 silly addNameRange '0.3.4', | |
| 458 silly addNameRange '0.3.5', | |
| 458 silly addNameRange '0.3.6', | |
| 458 silly addNameRange '0.3.7', | |
| 458 silly addNameRange '0.3.8' ] ] | |
| 459 verbose addNamed [ 'sockjs', '0.3.8' ] | |
| 460 verbose addNamed [ '0.3.8', '0.3.8' ] | |
| 461 silly lockFile 1847718c-sockjs-0-3-8 [email protected] | |
| 462 verbose lock [email protected] /home/sharejs/.npm/1847718c-sockjs-0-3-8.lock | |
| 463 http 304 https://registry.npmjs.org/connect | |
| 464 silly registry.get cb [ 304, | |
| 464 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 464 silly registry.get etag: '"1KOME83NOH3JLW3LY0ADM3QLT"', | |
| 464 silly registry.get date: 'Wed, 18 Dec 2013 17:17:47 GMT', | |
| 464 silly registry.get 'content-length': '0' } ] | |
| 465 verbose etag connect from cache | |
| 466 silly addNameRange number 2 { name: 'livedb-mongo', | |
| 466 silly addNameRange range: '>=0.2.5-0 <0.3.0-0', | |
| 466 silly addNameRange hasData: true } | |
| 467 silly addNameRange versions [ 'livedb-mongo', | |
| 467 silly addNameRange [ '0.1.0', | |
| 467 silly addNameRange '0.1.2', | |
| 467 silly addNameRange '0.1.3', | |
| 467 silly addNameRange '0.2.0', | |
| 467 silly addNameRange '0.2.1', | |
| 467 silly addNameRange '0.2.2', | |
| 467 silly addNameRange '0.2.3', | |
| 467 silly addNameRange '0.2.4', | |
| 467 silly addNameRange '0.2.5', | |
| 467 silly addNameRange '0.2.6', | |
| 467 silly addNameRange '0.3.0' ] ] | |
| 468 verbose addNamed [ 'livedb-mongo', '0.2.6' ] | |
| 469 verbose addNamed [ '0.2.6', '0.2.6' ] | |
| 470 silly lockFile cfd3d2f4-livedb-mongo-0-2-6 [email protected] | |
| 471 verbose lock [email protected] /home/sharejs/.npm/cfd3d2f4-livedb-mongo-0-2-6.lock | |
| 472 silly lockFile d0bab4ef-nodetime-0-8-13 [email protected] | |
| 473 silly lockFile d0bab4ef-nodetime-0-8-13 [email protected] | |
| 474 silly addNameRange number 2 { name: 'rbytes', range: '>=1.0.0-0 <1.1.0-0', hasData: true } | |
| 475 silly addNameRange versions [ 'rbytes', [ '0.0.1', '0.0.2', '1.0.0' ] ] | |
| 476 verbose addNamed [ 'rbytes', '1.0.0' ] | |
| 477 verbose addNamed [ '1.0.0', '1.0.0' ] | |
| 478 silly lockFile b505cd20-rbytes-1-0-0 [email protected] | |
| 479 verbose lock [email protected] /home/sharejs/.npm/b505cd20-rbytes-1-0-0.lock | |
| 480 silly addNameRange number 2 { name: 'express', range: '>=3.4.4-0 <3.5.0-0', hasData: true } | |
| 481 silly addNameRange versions [ 'express', | |
| 481 silly addNameRange [ '0.14.0', | |
| 481 silly addNameRange '0.14.1', | |
| 481 silly addNameRange '1.0.0', | |
| 481 silly addNameRange '1.0.1', | |
| 481 silly addNameRange '1.0.2', | |
| 481 silly addNameRange '1.0.3', | |
| 481 silly addNameRange '1.0.4', | |
| 481 silly addNameRange '1.0.5', | |
| 481 silly addNameRange '1.0.6', | |
| 481 silly addNameRange '1.0.7', | |
| 481 silly addNameRange '1.0.8', | |
| 481 silly addNameRange '2.0.0', | |
| 481 silly addNameRange '2.1.0', | |
| 481 silly addNameRange '2.1.1', | |
| 481 silly addNameRange '2.2.0', | |
| 481 silly addNameRange '2.2.1', | |
| 481 silly addNameRange '2.2.2', | |
| 481 silly addNameRange '2.3.0', | |
| 481 silly addNameRange '2.3.1', | |
| 481 silly addNameRange '2.3.2', | |
| 481 silly addNameRange '2.3.3', | |
| 481 silly addNameRange '2.3.4', | |
| 481 silly addNameRange '2.3.5', | |
| 481 silly addNameRange '2.3.6', | |
| 481 silly addNameRange '2.3.7', | |
| 481 silly addNameRange '2.3.8', | |
| 481 silly addNameRange '2.3.9', | |
| 481 silly addNameRange '2.3.10', | |
| 481 silly addNameRange '2.3.11', | |
| 481 silly addNameRange '2.3.12', | |
| 481 silly addNameRange '2.4.0', | |
| 481 silly addNameRange '2.4.1', | |
| 481 silly addNameRange '2.4.2', | |
| 481 silly addNameRange '2.4.3', | |
| 481 silly addNameRange '2.4.4', | |
| 481 silly addNameRange '2.4.5', | |
| 481 silly addNameRange '2.4.6', | |
| 481 silly addNameRange '2.4.7', | |
| 481 silly addNameRange '2.5.0', | |
| 481 silly addNameRange '2.5.1', | |
| 481 silly addNameRange '2.5.2', | |
| 481 silly addNameRange '2.5.3', | |
| 481 silly addNameRange '2.5.4', | |
| 481 silly addNameRange '2.5.5', | |
| 481 silly addNameRange '2.5.6', | |
| 481 silly addNameRange '2.5.7', | |
| 481 silly addNameRange '2.5.8', | |
| 481 silly addNameRange '2.5.9', | |
| 481 silly addNameRange '2.5.10', | |
| 481 silly addNameRange '2.5.11', | |
| 481 silly addNameRange '3.0.0', | |
| 481 silly addNameRange '3.0.1', | |
| 481 silly addNameRange '3.0.2', | |
| 481 silly addNameRange '3.0.3', | |
| 481 silly addNameRange '3.0.4', | |
| 481 silly addNameRange '3.0.5', | |
| 481 silly addNameRange '3.0.6', | |
| 481 silly addNameRange '3.1.0', | |
| 481 silly addNameRange '3.1.1', | |
| 481 silly addNameRange '3.1.2', | |
| 481 silly addNameRange '3.2.0', | |
| 481 silly addNameRange '3.2.1', | |
| 481 silly addNameRange '3.2.2', | |
| 481 silly addNameRange '3.2.3', | |
| 481 silly addNameRange '3.2.4', | |
| 481 silly addNameRange '3.2.5', | |
| 481 silly addNameRange '3.2.6', | |
| 481 silly addNameRange '3.3.0', | |
| 481 silly addNameRange '3.3.1', | |
| 481 silly addNameRange '3.3.2', | |
| 481 silly addNameRange '3.3.3', | |
| 481 silly addNameRange '3.3.4', | |
| 481 silly addNameRange '3.3.5', | |
| 481 silly addNameRange '3.3.6', | |
| 481 silly addNameRange '1.0.0-beta', | |
| 481 silly addNameRange '1.0.0-beta2', | |
| 481 silly addNameRange '1.0.0-rc', | |
| 481 silly addNameRange '1.0.0-rc2', | |
| 481 silly addNameRange '1.0.0-rc3', | |
| 481 silly addNameRange '1.0.0-rc4', | |
| 481 silly addNameRange '2.0.0-beta', | |
| 481 silly addNameRange '2.0.0-beta2', | |
| 481 silly addNameRange '2.0.0-beta3', | |
| 481 silly addNameRange '2.0.0-rc', | |
| 481 silly addNameRange '2.0.0-rc2', | |
| 481 silly addNameRange '2.0.0-rc3', | |
| 481 silly addNameRange '3.0.0-alpha1', | |
| 481 silly addNameRange '3.0.0-alpha2', | |
| 481 silly addNameRange '3.0.0-alpha3', | |
| 481 silly addNameRange '3.0.0-alpha4', | |
| 481 silly addNameRange '3.0.0-alpha5', | |
| 481 silly addNameRange '3.0.0-beta1', | |
| 481 silly addNameRange '3.0.0-beta2', | |
| 481 silly addNameRange '3.0.0-beta3', | |
| 481 silly addNameRange '3.0.0-beta4', | |
| 481 silly addNameRange '3.0.0-beta6', | |
| 481 silly addNameRange '3.0.0-beta7', | |
| 481 silly addNameRange '3.0.0-rc1', | |
| 481 silly addNameRange '3.0.0-rc2', | |
| 481 silly addNameRange '3.0.0-rc3', | |
| 481 silly addNameRange '3.0.0-rc4', | |
| 481 silly addNameRange '3.0.0-rc5', | |
| 481 silly addNameRange '3.3.7', | |
| 481 silly addNameRange '3.3.8', | |
| 481 silly addNameRange '3.4.0', | |
| 481 silly addNameRange '3.4.1', | |
| 481 silly addNameRange '3.4.2', | |
| 481 silly addNameRange '3.4.3', | |
| 481 silly addNameRange '3.4.4', | |
| 481 silly addNameRange '3.4.5', | |
| 481 silly addNameRange '3.4.6', | |
| 481 silly addNameRange '3.4.7' ] ] | |
| 482 verbose addNamed [ 'express', '3.4.7' ] | |
| 483 verbose addNamed [ '3.4.7', '3.4.7' ] | |
| 484 silly lockFile fb24baa2-express-3-4-7 [email protected] | |
| 485 verbose lock [email protected] /home/sharejs/.npm/fb24baa2-express-3-4-7.lock | |
| 486 silly lockFile 3765abce-querystring-0-2-0 [email protected] | |
| 487 silly lockFile 3765abce-querystring-0-2-0 [email protected] | |
| 488 silly lockFile 4d77a706-querystring-0-2-0 querystring@~0.2.0 | |
| 489 silly lockFile 4d77a706-querystring-0-2-0 querystring@~0.2.0 | |
| 490 silly lockFile 065ff042-lodash-2-2-1 [email protected] | |
| 491 silly lockFile 065ff042-lodash-2-2-1 [email protected] | |
| 492 silly addNameRange number 2 { name: 'isbinaryfile', | |
| 492 silly addNameRange range: '>=0.1.9-0 <0.2.0-0', | |
| 492 silly addNameRange hasData: true } | |
| 493 silly addNameRange versions [ 'isbinaryfile', | |
| 493 silly addNameRange [ '0.1.0', | |
| 493 silly addNameRange '0.1.1', | |
| 493 silly addNameRange '0.1.2', | |
| 493 silly addNameRange '0.1.3', | |
| 493 silly addNameRange '0.1.4', | |
| 493 silly addNameRange '0.1.5', | |
| 493 silly addNameRange '0.1.6', | |
| 493 silly addNameRange '0.1.7', | |
| 493 silly addNameRange '0.1.8', | |
| 493 silly addNameRange '0.1.9', | |
| 493 silly addNameRange '1.0.0' ] ] | |
| 494 verbose addNamed [ 'isbinaryfile', '0.1.9' ] | |
| 495 verbose addNamed [ '0.1.9', '0.1.9' ] | |
| 496 silly lockFile 3ac6f8ea-isbinaryfile-0-1-9 [email protected] | |
| 497 verbose lock [email protected] /home/sharejs/.npm/3ac6f8ea-isbinaryfile-0-1-9.lock | |
| 498 silly addNameRange number 2 { name: 'ottypes', range: '>=1.0.1-0 <1.1.0-0', hasData: true } | |
| 499 silly addNameRange versions [ 'ottypes', | |
| 499 silly addNameRange [ '0.6.1', '0.6.2', '1.0.0', '1.0.1', '1.0.0-alpha' ] ] | |
| 500 verbose addNamed [ 'ottypes', '1.0.1' ] | |
| 501 verbose addNamed [ '1.0.1', '1.0.1' ] | |
| 502 silly lockFile 2b437525-ottypes-1-0-1 [email protected] | |
| 503 verbose lock [email protected] /home/sharejs/.npm/2b437525-ottypes-1-0-1.lock | |
| 504 silly lockFile c46ab6b5-lodash-2-2-1 lodash@~2.2.1 | |
| 505 silly lockFile c46ab6b5-lodash-2-2-1 lodash@~2.2.1 | |
| 506 silly lockFile 7317b97a-amqp-0-1-8 [email protected] | |
| 507 silly lockFile 7317b97a-amqp-0-1-8 [email protected] | |
| 508 silly addNameRange number 2 { name: 'async', range: '>=0.2.9-0 <0.3.0-0', hasData: true } | |
| 509 silly addNameRange versions [ 'async', | |
| 509 silly addNameRange [ '0.1.0', | |
| 509 silly addNameRange '0.1.1', | |
| 509 silly addNameRange '0.1.2', | |
| 509 silly addNameRange '0.1.3', | |
| 509 silly addNameRange '0.1.4', | |
| 509 silly addNameRange '0.1.5', | |
| 509 silly addNameRange '0.1.6', | |
| 509 silly addNameRange '0.1.7', | |
| 509 silly addNameRange '0.1.8', | |
| 509 silly addNameRange '0.1.9', | |
| 509 silly addNameRange '0.1.10', | |
| 509 silly addNameRange '0.1.11', | |
| 509 silly addNameRange '0.1.12', | |
| 509 silly addNameRange '0.1.13', | |
| 509 silly addNameRange '0.1.14', | |
| 509 silly addNameRange '0.1.15', | |
| 509 silly addNameRange '0.1.16', | |
| 509 silly addNameRange '0.1.17', | |
| 509 silly addNameRange '0.1.18', | |
| 509 silly addNameRange '0.1.19', | |
| 509 silly addNameRange '0.1.20', | |
| 509 silly addNameRange '0.1.21', | |
| 509 silly addNameRange '0.1.22', | |
| 509 silly addNameRange '0.2.0', | |
| 509 silly addNameRange '0.2.1', | |
| 509 silly addNameRange '0.2.2', | |
| 509 silly addNameRange '0.2.3', | |
| 509 silly addNameRange '0.2.4', | |
| 509 silly addNameRange '0.2.5', | |
| 509 silly addNameRange '0.2.6', | |
| 509 silly addNameRange '0.2.7', | |
| 509 silly addNameRange '0.2.8', | |
| 509 silly addNameRange '0.2.9' ] ] | |
| 510 verbose addNamed [ 'async', '0.2.9' ] | |
| 511 verbose addNamed [ '0.2.9', '0.2.9' ] | |
| 512 silly lockFile be62480b-async-0-2-9 [email protected] | |
| 513 verbose lock [email protected] /home/sharejs/.npm/be62480b-async-0-2-9.lock | |
| 514 silly addNameRange number 2 { name: 'thalassa', range: '>=0.3.2-0 <0.4.0-0', hasData: true } | |
| 515 silly addNameRange versions [ 'thalassa', [ '0.1.0', '0.3.2' ] ] | |
| 516 verbose addNamed [ 'thalassa', '0.3.2' ] | |
| 517 verbose addNamed [ '0.3.2', '0.3.2' ] | |
| 518 silly lockFile 19ed8135-thalassa-0-3-2 [email protected] | |
| 519 verbose lock [email protected] /home/sharejs/.npm/19ed8135-thalassa-0-3-2.lock | |
| 520 silly lockFile 80654d4b-amqp-0-1-7 amqp@~0.1.7 | |
| 521 silly lockFile 80654d4b-amqp-0-1-7 amqp@~0.1.7 | |
| 522 silly lockFile 80af7d90-log4js-0-6-9 [email protected] | |
| 523 silly lockFile 80af7d90-log4js-0-6-9 [email protected] | |
| 524 silly addNameRange number 2 { name: 'connect', range: '>=2.7.9-0 <2.8.0-0', hasData: true } | |
| 525 silly addNameRange versions [ 'connect', | |
| 525 silly addNameRange [ '0.0.1', | |
| 525 silly addNameRange '0.0.2', | |
| 525 silly addNameRange '0.0.3', | |
| 525 silly addNameRange '0.0.4', | |
| 525 silly addNameRange '0.0.5', | |
| 525 silly addNameRange '0.0.6', | |
| 525 silly addNameRange '0.1.0', | |
| 525 silly addNameRange '0.2.0', | |
| 525 silly addNameRange '0.2.1', | |
| 525 silly addNameRange '0.2.2', | |
| 525 silly addNameRange '0.2.3', | |
| 525 silly addNameRange '0.2.4', | |
| 525 silly addNameRange '0.2.5', | |
| 525 silly addNameRange '0.2.6', | |
| 525 silly addNameRange '0.2.7', | |
| 525 silly addNameRange '0.3.0', | |
| 525 silly addNameRange '0.4.0', | |
| 525 silly addNameRange '0.5.0', | |
| 525 silly addNameRange '0.5.1', | |
| 525 silly addNameRange '0.5.2', | |
| 525 silly addNameRange '0.5.3', | |
| 525 silly addNameRange '0.5.4', | |
| 525 silly addNameRange '0.5.5', | |
| 525 silly addNameRange '0.5.6', | |
| 525 silly addNameRange '0.5.7', | |
| 525 silly addNameRange '0.5.8', | |
| 525 silly addNameRange '0.5.9', | |
| 525 silly addNameRange '0.5.10', | |
| 525 silly addNameRange '1.0.0', | |
| 525 silly addNameRange '1.0.1', | |
| 525 silly addNameRange '1.0.2', | |
| 525 silly addNameRange '1.0.3', | |
| 525 silly addNameRange '1.0.4', | |
| 525 silly addNameRange '1.0.5', | |
| 525 silly addNameRange '1.0.6', | |
| 525 silly addNameRange '1.1.0', | |
| 525 silly addNameRange '1.1.1', | |
| 525 silly addNameRange '1.1.2', | |
| 525 silly addNameRange '1.1.3', | |
| 525 silly addNameRange '1.1.4', | |
| 525 silly addNameRange '1.1.5', | |
| 525 silly addNameRange '1.2.0', | |
| 525 silly addNameRange '1.2.1', | |
| 525 silly addNameRange '1.2.2', | |
| 525 silly addNameRange '1.2.3', | |
| 525 silly addNameRange '1.3.0', | |
| 525 silly addNameRange '1.4.0', | |
| 525 silly addNameRange '1.4.1', | |
| 525 silly addNameRange '1.4.2', | |
| 525 silly addNameRange '1.4.3', | |
| 525 silly addNameRange '1.4.4', | |
| 525 silly addNameRange '1.4.5', | |
| 525 silly addNameRange '1.4.6', | |
| 525 silly addNameRange '1.5.0', | |
| 525 silly addNameRange '1.5.1', | |
| 525 silly addNameRange '1.5.2', | |
| 525 silly addNameRange '1.6.0', | |
| 525 silly addNameRange '1.6.1', | |
| 525 silly addNameRange '1.6.2', | |
| 525 silly addNameRange '1.6.3', | |
| 525 silly addNameRange '1.6.4', | |
| 525 silly addNameRange '1.7.0', | |
| 525 silly addNameRange '1.7.1', | |
| 525 silly addNameRange '1.7.2', | |
| 525 silly addNameRange '1.7.3', | |
| 525 silly addNameRange '1.8.0', | |
| 525 silly addNameRange '1.8.1', | |
| 525 silly addNameRange '1.8.2', | |
| 525 silly addNameRange '1.8.3', | |
| 525 silly addNameRange '1.8.4', | |
| 525 silly addNameRange '1.8.5', | |
| 525 silly addNameRange '2.0.0', | |
| 525 silly addNameRange '2.0.1', | |
| 525 silly addNameRange '2.0.2', | |
| 525 silly addNameRange '2.0.3', | |
| 525 silly addNameRange '1.8.6', | |
| 525 silly addNameRange '2.1.0', | |
| 525 silly addNameRange '2.1.1', | |
| 525 silly addNameRange '2.1.2', | |
| 525 silly addNameRange '1.8.7', | |
| 525 silly addNameRange '2.1.3', | |
| 525 silly addNameRange '2.2.0', | |
| 525 silly addNameRange '2.2.1', | |
| 525 silly addNameRange '2.2.2', | |
| 525 silly addNameRange '2.3.0', | |
| 525 silly addNameRange '2.3.1', | |
| 525 silly addNameRange '2.3.2', | |
| 525 silly addNameRange '2.3.3', | |
| 525 silly addNameRange '1.9.0', | |
| 525 silly addNameRange '1.9.1', | |
| 525 silly addNameRange '2.3.4', | |
| 525 silly addNameRange '2.3.5', | |
| 525 silly addNameRange '2.3.6', | |
| 525 silly addNameRange '2.3.7', | |
| 525 silly addNameRange '1.9.2', | |
| 525 silly addNameRange '2.3.8', | |
| 525 silly addNameRange '2.3.9', | |
| 525 silly addNameRange '2.4.0', | |
| 525 silly addNameRange '2.4.1', | |
| 525 silly addNameRange '2.4.2', | |
| 525 silly addNameRange '2.4.3', | |
| 525 silly addNameRange '2.4.4', | |
| 525 silly addNameRange '2.4.5', | |
| 525 silly addNameRange '2.4.6', | |
| 525 silly addNameRange '2.5.0', | |
| 525 silly addNameRange '2.6.0', | |
| 525 silly addNameRange '2.6.1', | |
| 525 silly addNameRange '2.6.2', | |
| 525 silly addNameRange '2.7.0', | |
| 525 silly addNameRange '2.7.1', | |
| 525 silly addNameRange '2.7.2', | |
| 525 silly addNameRange '2.7.3', | |
| 525 silly addNameRange '2.7.4', | |
| 525 silly addNameRange '2.7.5', | |
| 525 silly addNameRange '2.7.6', | |
| 525 silly addNameRange '2.7.7', | |
| 525 silly addNameRange '2.7.8', | |
| 525 silly addNameRange '2.7.9', | |
| 525 silly addNameRange '2.7.10', | |
| 525 silly addNameRange '2.7.11', | |
| 525 silly addNameRange '2.8.0', | |
| 525 silly addNameRange '2.8.1', | |
| 525 silly addNameRange '2.8.2', | |
| 525 silly addNameRange '2.8.3', | |
| 525 silly addNameRange '2.8.4', | |
| 525 silly addNameRange '2.8.5', | |
| 525 silly addNameRange '2.8.6', | |
| 525 silly addNameRange '2.8.7', | |
| 525 silly addNameRange '2.8.8', | |
| 525 silly addNameRange '2.9.0', | |
| 525 silly addNameRange '2.9.1', | |
| 525 silly addNameRange '2.9.2', | |
| 525 silly addNameRange '2.10.0', | |
| 525 silly addNameRange '2.10.1', | |
| 525 silly addNameRange '2.11.0', | |
| 525 silly addNameRange '2.11.1', | |
| 525 silly addNameRange '2.11.2', | |
| 525 silly addNameRange '2.12.0' ] ] | |
| 526 verbose addNamed [ 'connect', '2.7.11' ] | |
| 527 verbose addNamed [ '2.7.11', '2.7.11' ] | |
| 528 silly lockFile 4ba73353-connect-2-7-11 [email protected] | |
| 529 verbose lock [email protected] /home/sharejs/.npm/4ba73353-connect-2-7-11.lock | |
| 530 silly lockFile 7066bf70-log4js-0-6-6 log4js@~0.6.6 | |
| 531 silly lockFile 7066bf70-log4js-0-6-6 log4js@~0.6.6 | |
| 532 silly lockFile 4748c617-newrelic-1-0-1 [email protected] | |
| 533 silly lockFile 4748c617-newrelic-1-0-1 [email protected] | |
| 534 silly lockFile 84829e3f-newrelic-1-0-1 newrelic@~1.0.1 | |
| 535 silly lockFile 84829e3f-newrelic-1-0-1 newrelic@~1.0.1 | |
| 536 silly lockFile d5315eb7-commander-2-0-0 [email protected] | |
| 537 silly lockFile d5315eb7-commander-2-0-0 [email protected] | |
| 538 silly lockFile 00733c5f-commander-2-0-0 commander@~2.0.0 | |
| 539 silly lockFile 00733c5f-commander-2-0-0 commander@~2.0.0 | |
| 540 silly lockFile e9b6ade2-redis-0-9-2 [email protected] | |
| 541 silly lockFile e9b6ade2-redis-0-9-2 [email protected] | |
| 542 silly lockFile 1847718c-sockjs-0-3-8 [email protected] | |
| 543 silly lockFile 1847718c-sockjs-0-3-8 [email protected] | |
| 544 silly lockFile b8bc9667-67184-0-3182910999748856-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387067184-0.3182910999748856/package | |
| 545 silly lockFile b8bc9667-67184-0-3182910999748856-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387067184-0.3182910999748856/package | |
| 546 silly lockFile dd751ec6-redis-0-9-0 redis@~0.9.0 | |
| 547 silly lockFile dd751ec6-redis-0-9-0 redis@~0.9.0 | |
| 548 silly lockFile 8dbbeff0-sockjs-0-3-8 sockjs@~0.3.8 | |
| 549 silly lockFile 8dbbeff0-sockjs-0-3-8 sockjs@~0.3.8 | |
| 550 silly lockFile cfd3d2f4-livedb-mongo-0-2-6 [email protected] | |
| 551 silly lockFile cfd3d2f4-livedb-mongo-0-2-6 [email protected] | |
| 552 silly lockFile 1f95b197-67184-0-3182910999748856-tmp-tgz tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387067184-0.3182910999748856/tmp.tgz | |
| 553 silly lockFile 1f95b197-67184-0-3182910999748856-tmp-tgz tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387067184-0.3182910999748856/tmp.tgz | |
| 554 silly lockFile 0d39849d-livedb-mongo-0-2-5 livedb-mongo@~0.2.5 | |
| 555 silly lockFile 0d39849d-livedb-mongo-0-2-5 livedb-mongo@~0.2.5 | |
| 556 silly lockFile b505cd20-rbytes-1-0-0 [email protected] | |
| 557 silly lockFile b505cd20-rbytes-1-0-0 [email protected] | |
| 558 silly lockFile 791288aa-rbytes-1-0-0 rbytes@~1.0.0 | |
| 559 silly lockFile 791288aa-rbytes-1-0-0 rbytes@~1.0.0 | |
| 560 silly lockFile fb24baa2-express-3-4-7 [email protected] | |
| 561 silly lockFile fb24baa2-express-3-4-7 [email protected] | |
| 562 silly lockFile c306bdaa-express-3-4-4 express@~3.4.4 | |
| 563 silly lockFile c306bdaa-express-3-4-4 express@~3.4.4 | |
| 564 verbose tar pack [ '/home/sharejs/.npm/transport-adapters/0.1.0/package.tgz', | |
| 564 verbose tar pack '/home/sharejs/tmp/npm-7091-_I7pIHma/1387387067184-0.3182910999748856/package' ] | |
| 565 verbose tarball /home/sharejs/.npm/transport-adapters/0.1.0/package.tgz | |
| 566 verbose folder /home/sharejs/tmp/npm-7091-_I7pIHma/1387387067184-0.3182910999748856/package | |
| 567 silly lockFile b8bc9667-67184-0-3182910999748856-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387067184-0.3182910999748856/package | |
| 568 verbose lock tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387067184-0.3182910999748856/package /home/sharejs/.npm/b8bc9667-67184-0-3182910999748856-package.lock | |
| 569 silly lockFile 60fc8962-sport-adapters-0-1-0-package-tgz tar:///home/sharejs/.npm/transport-adapters/0.1.0/package.tgz | |
| 570 verbose lock tar:///home/sharejs/.npm/transport-adapters/0.1.0/package.tgz /home/sharejs/.npm/60fc8962-sport-adapters-0-1-0-package-tgz.lock | |
| 571 silly lockFile 3ac6f8ea-isbinaryfile-0-1-9 [email protected] | |
| 572 silly lockFile 3ac6f8ea-isbinaryfile-0-1-9 [email protected] | |
| 573 silly lockFile 2b437525-ottypes-1-0-1 [email protected] | |
| 574 silly lockFile 2b437525-ottypes-1-0-1 [email protected] | |
| 575 silly lockFile 8b5b2b9d-isbinaryfile-0-1-9 isbinaryfile@~0.1.9 | |
| 576 silly lockFile 8b5b2b9d-isbinaryfile-0-1-9 isbinaryfile@~0.1.9 | |
| 577 silly lockFile 4cbb36db-ottypes-1-0-1 ottypes@~1.0.1 | |
| 578 silly lockFile 4cbb36db-ottypes-1-0-1 ottypes@~1.0.1 | |
| 579 silly lockFile be62480b-async-0-2-9 [email protected] | |
| 580 silly lockFile be62480b-async-0-2-9 [email protected] | |
| 581 silly lockFile 19ed8135-thalassa-0-3-2 [email protected] | |
| 582 silly lockFile 19ed8135-thalassa-0-3-2 [email protected] | |
| 583 silly lockFile 5d51c871-async-0-2-9 async@~0.2.9 | |
| 584 silly lockFile 5d51c871-async-0-2-9 async@~0.2.9 | |
| 585 silly lockFile d06bc841-thalassa-0-3-2 thalassa@~0.3.2 | |
| 586 silly lockFile d06bc841-thalassa-0-3-2 thalassa@~0.3.2 | |
| 587 silly lockFile 4ba73353-connect-2-7-11 [email protected] | |
| 588 silly lockFile 4ba73353-connect-2-7-11 [email protected] | |
| 589 silly lockFile 4db1e39c-connect-2-7-9 connect@~2.7.9 | |
| 590 silly lockFile 4db1e39c-connect-2-7-9 connect@~2.7.9 | |
| 591 silly lockFile b8bc9667-67184-0-3182910999748856-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387067184-0.3182910999748856/package | |
| 592 silly lockFile b8bc9667-67184-0-3182910999748856-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387067184-0.3182910999748856/package | |
| 593 silly lockFile 60fc8962-sport-adapters-0-1-0-package-tgz tar:///home/sharejs/.npm/transport-adapters/0.1.0/package.tgz | |
| 594 silly lockFile 60fc8962-sport-adapters-0-1-0-package-tgz tar:///home/sharejs/.npm/transport-adapters/0.1.0/package.tgz | |
| 595 silly lockFile 177111e3-transport-adapters-0-1-0-package /home/sharejs/.npm/transport-adapters/0.1.0/package | |
| 596 verbose lock /home/sharejs/.npm/transport-adapters/0.1.0/package /home/sharejs/.npm/177111e3-transport-adapters-0-1-0-package.lock | |
| 597 silly lockFile 177111e3-transport-adapters-0-1-0-package /home/sharejs/.npm/transport-adapters/0.1.0/package | |
| 598 silly lockFile 177111e3-transport-adapters-0-1-0-package /home/sharejs/.npm/transport-adapters/0.1.0/package | |
| 599 verbose tar unpack /home/sharejs/.npm/transport-adapters/0.1.0/package.tgz | |
| 600 silly lockFile dca92b22-transport-adapters-0-1-0-package tar:///home/sharejs/.npm/transport-adapters/0.1.0/package | |
| 601 verbose lock tar:///home/sharejs/.npm/transport-adapters/0.1.0/package /home/sharejs/.npm/dca92b22-transport-adapters-0-1-0-package.lock | |
| 602 silly lockFile 60fc8962-sport-adapters-0-1-0-package-tgz tar:///home/sharejs/.npm/transport-adapters/0.1.0/package.tgz | |
| 603 verbose lock tar:///home/sharejs/.npm/transport-adapters/0.1.0/package.tgz /home/sharejs/.npm/60fc8962-sport-adapters-0-1-0-package-tgz.lock | |
| 604 silly gunzTarPerm modes [ '755', '644' ] | |
| 605 silly gunzTarPerm extractEntry package.json | |
| 606 silly gunzTarPerm extractEntry .npmignore | |
| 607 silly gunzTarPerm extractEntry README.md | |
| 608 silly gunzTarPerm extractEntry index.js | |
| 609 silly gunzTarPerm extractEntry .travis.yml | |
| 610 silly gunzTarPerm extractEntry examples/browserchannel/share-textarea.js | |
| 611 silly gunzTarPerm extractEntry examples/browserchannel/index.html | |
| 612 silly gunzTarPerm extractEntry examples/browserchannel/server.coffee | |
| 613 silly gunzTarPerm extractEntry examples/sockjs/package.json | |
| 614 silly gunzTarPerm extractEntry examples/sockjs/index.js | |
| 615 silly gunzTarPerm extractEntry examples/sockjs/server.js | |
| 616 silly gunzTarPerm extractEntry examples/sockjs/share-textarea.js | |
| 617 silly gunzTarPerm extractEntry examples/sockjs/index.html | |
| 618 silly gunzTarPerm extractEntry lib/browserchannel.js | |
| 619 silly gunzTarPerm extractEntry lib/index.js | |
| 620 silly gunzTarPerm extractEntry lib/sockjs.js | |
| 621 silly gunzTarPerm extractEntry test/browserchannel.coffee | |
| 622 silly gunzTarPerm extractEntry test/sockjs.coffee | |
| 623 silly lockFile dca92b22-transport-adapters-0-1-0-package tar:///home/sharejs/.npm/transport-adapters/0.1.0/package | |
| 624 silly lockFile dca92b22-transport-adapters-0-1-0-package tar:///home/sharejs/.npm/transport-adapters/0.1.0/package | |
| 625 silly lockFile 60fc8962-sport-adapters-0-1-0-package-tgz tar:///home/sharejs/.npm/transport-adapters/0.1.0/package.tgz | |
| 626 silly lockFile 60fc8962-sport-adapters-0-1-0-package-tgz tar:///home/sharejs/.npm/transport-adapters/0.1.0/package.tgz | |
| 627 verbose chmod /home/sharejs/.npm/transport-adapters/0.1.0/package.tgz 644 | |
| 628 verbose chown /home/sharejs/.npm/transport-adapters/0.1.0/package.tgz [ 1005, 1005 ] | |
| 629 silly lockFile 97302940-ignifiedquire-transport-adapters git://github.com/Dignifiedquire/transport-adapters | |
| 630 silly lockFile 97302940-ignifiedquire-transport-adapters git://github.com/Dignifiedquire/transport-adapters | |
| 631 verbose addRemoteGit [ 'git@codio-node_deploy_key:codio/node-codio', 'master' ] | |
| 632 verbose addRemoteGit [ 'git://github.com/codio/ShareJS', '7' ] | |
| 633 verbose addRemoteGit [ 'git://github.com/Dignifiedquire/livedb', 'old_snapshot' ] | |
| 634 verbose git remote.origin.url git://github.com/codio/ShareJS | |
| 635 verbose git remote.origin.url git@codio-node_deploy_key:codio/node-codio | |
| 636 verbose git remote.origin.url git://github.com/Dignifiedquire/livedb | |
| 637 verbose git fetch -a origin (git://github.com/Dignifiedquire/livedb) | |
| 638 verbose git rev-list -n1 old_snapshot f5646f505131fc398df8098fafac6af2c9aab8a6 | |
| 639 verbose resolved git url git://github.com/Dignifiedquire/livedb#f5646f505131fc398df8098fafac6af2c9aab8a6 | |
| 640 verbose tar unpack /home/sharejs/tmp/npm-7091-_I7pIHma/1387387093445-0.0651844497770071/tmp.tgz | |
| 641 silly lockFile 7f94afd6-93445-0-0651844497770071-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093445-0.0651844497770071/package | |
| 642 verbose lock tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093445-0.0651844497770071/package /home/sharejs/.npm/7f94afd6-93445-0-0651844497770071-package.lock | |
| 643 silly lockFile d60bca5c-93445-0-0651844497770071-tmp-tgz tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093445-0.0651844497770071/tmp.tgz | |
| 644 verbose lock tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093445-0.0651844497770071/tmp.tgz /home/sharejs/.npm/d60bca5c-93445-0-0651844497770071-tmp-tgz.lock | |
| 645 silly gunzTarPerm modes [ '755', '644' ] | |
| 646 silly gunzTarPerm extractEntry | |
| 647 silly gunzTarPerm modified mode [ '', 509, 493 ] | |
| 648 silly gunzTarPerm extractEntry .gitignore | |
| 649 silly gunzTarPerm modified mode [ '.gitignore', 436, 420 ] | |
| 650 silly gunzTarPerm extractEntry .npmignore | |
| 651 silly gunzTarPerm modified mode [ '.npmignore', 436, 420 ] | |
| 652 silly gunzTarPerm extractEntry .travis.yml | |
| 653 silly gunzTarPerm modified mode [ '.travis.yml', 436, 420 ] | |
| 654 silly gunzTarPerm extractEntry LICENSE | |
| 655 silly gunzTarPerm modified mode [ 'LICENSE', 436, 420 ] | |
| 656 silly gunzTarPerm extractEntry README.md | |
| 657 silly gunzTarPerm modified mode [ 'README.md', 436, 420 ] | |
| 658 silly gunzTarPerm extractEntry example-backend.coffee | |
| 659 silly gunzTarPerm modified mode [ 'example-backend.coffee', 436, 420 ] | |
| 660 silly gunzTarPerm extractEntry lib/ | |
| 661 silly gunzTarPerm modified mode [ 'lib/', 509, 493 ] | |
| 662 silly gunzTarPerm extractEntry lib/index.js | |
| 663 silly gunzTarPerm modified mode [ 'lib/index.js', 436, 420 ] | |
| 664 silly gunzTarPerm extractEntry lib/memory.js | |
| 665 silly gunzTarPerm modified mode [ 'lib/memory.js', 436, 420 ] | |
| 666 silly gunzTarPerm extractEntry lib/ot.js | |
| 667 silly gunzTarPerm modified mode [ 'lib/ot.js', 436, 420 ] | |
| 668 silly gunzTarPerm extractEntry lib/ratelimit.js | |
| 669 silly gunzTarPerm modified mode [ 'lib/ratelimit.js', 436, 420 ] | |
| 670 silly gunzTarPerm extractEntry lib/scripts/ | |
| 671 silly gunzTarPerm modified mode [ 'lib/scripts/', 509, 493 ] | |
| 672 silly gunzTarPerm extractEntry lib/scripts/bulkGetOpsSince.lua | |
| 673 silly gunzTarPerm modified mode [ 'lib/scripts/bulkGetOpsSince.lua', 436, 420 ] | |
| 674 silly gunzTarPerm extractEntry lib/scripts/getOps.lua | |
| 675 silly gunzTarPerm modified mode [ 'lib/scripts/getOps.lua', 436, 420 ] | |
| 676 silly gunzTarPerm extractEntry lib/scripts/setExpire.lua | |
| 677 silly gunzTarPerm modified mode [ 'lib/scripts/setExpire.lua', 436, 420 ] | |
| 678 silly gunzTarPerm extractEntry lib/scripts/submit.lua | |
| 679 silly gunzTarPerm modified mode [ 'lib/scripts/submit.lua', 436, 420 ] | |
| 680 silly gunzTarPerm extractEntry package.json | |
| 681 silly gunzTarPerm modified mode [ 'package.json', 436, 420 ] | |
| 682 silly gunzTarPerm extractEntry test/ | |
| 683 silly gunzTarPerm modified mode [ 'test/', 509, 493 ] | |
| 684 silly gunzTarPerm extractEntry test/memory.coffee | |
| 685 silly gunzTarPerm modified mode [ 'test/memory.coffee', 436, 420 ] | |
| 686 silly gunzTarPerm extractEntry test/mocha.opts | |
| 687 silly gunzTarPerm modified mode [ 'test/mocha.opts', 436, 420 ] | |
| 688 silly gunzTarPerm extractEntry test/oplog.coffee | |
| 689 silly gunzTarPerm modified mode [ 'test/oplog.coffee', 436, 420 ] | |
| 690 silly gunzTarPerm extractEntry test/ot.coffee | |
| 691 silly gunzTarPerm modified mode [ 'test/ot.coffee', 436, 420 ] | |
| 692 silly gunzTarPerm extractEntry test/snapshotdb.coffee | |
| 693 silly gunzTarPerm modified mode [ 'test/snapshotdb.coffee', 436, 420 ] | |
| 694 silly gunzTarPerm extractEntry test/test.coffee | |
| 695 silly gunzTarPerm modified mode [ 'test/test.coffee', 436, 420 ] | |
| 696 silly lockFile 7f94afd6-93445-0-0651844497770071-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093445-0.0651844497770071/package | |
| 697 silly lockFile 7f94afd6-93445-0-0651844497770071-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093445-0.0651844497770071/package | |
| 698 silly lockFile d60bca5c-93445-0-0651844497770071-tmp-tgz tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093445-0.0651844497770071/tmp.tgz | |
| 699 silly lockFile d60bca5c-93445-0-0651844497770071-tmp-tgz tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093445-0.0651844497770071/tmp.tgz | |
| 700 verbose tar pack [ '/home/sharejs/.npm/livedb/0.2.8/package.tgz', | |
| 700 verbose tar pack '/home/sharejs/tmp/npm-7091-_I7pIHma/1387387093445-0.0651844497770071/package' ] | |
| 701 verbose tarball /home/sharejs/.npm/livedb/0.2.8/package.tgz | |
| 702 verbose folder /home/sharejs/tmp/npm-7091-_I7pIHma/1387387093445-0.0651844497770071/package | |
| 703 silly lockFile 7f94afd6-93445-0-0651844497770071-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093445-0.0651844497770071/package | |
| 704 verbose lock tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093445-0.0651844497770071/package /home/sharejs/.npm/7f94afd6-93445-0-0651844497770071-package.lock | |
| 705 silly lockFile 4d9255f1-ejs-npm-livedb-0-2-8-package-tgz tar:///home/sharejs/.npm/livedb/0.2.8/package.tgz | |
| 706 verbose lock tar:///home/sharejs/.npm/livedb/0.2.8/package.tgz /home/sharejs/.npm/4d9255f1-ejs-npm-livedb-0-2-8-package-tgz.lock | |
| 707 verbose git fetch -a origin (git@codio-node_deploy_key:codio/node-codio) | |
| 708 verbose git rev-list -n1 master b26ffbb9211ee576556903fcc23f8db2339392cf | |
| 709 verbose resolved git url git+ssh://git@codio-node_deploy_key:codio/node-codio#b26ffbb9211ee576556903fcc23f8db2339392cf | |
| 710 verbose tar unpack /home/sharejs/tmp/npm-7091-_I7pIHma/1387387093728-0.24091318738646805/tmp.tgz | |
| 711 silly lockFile 873c5837-3728-0-24091318738646805-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093728-0.24091318738646805/package | |
| 712 verbose lock tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093728-0.24091318738646805/package /home/sharejs/.npm/873c5837-3728-0-24091318738646805-package.lock | |
| 713 silly lockFile e91a870a-3728-0-24091318738646805-tmp-tgz tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093728-0.24091318738646805/tmp.tgz | |
| 714 verbose lock tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093728-0.24091318738646805/tmp.tgz /home/sharejs/.npm/e91a870a-3728-0-24091318738646805-tmp-tgz.lock | |
| 715 silly gunzTarPerm modes [ '755', '644' ] | |
| 716 silly gunzTarPerm extractEntry | |
| 717 silly gunzTarPerm modified mode [ '', 509, 493 ] | |
| 718 silly gunzTarPerm extractEntry .gitignore | |
| 719 silly gunzTarPerm modified mode [ '.gitignore', 436, 420 ] | |
| 720 silly gunzTarPerm extractEntry .jshintrc | |
| 721 silly gunzTarPerm modified mode [ '.jshintrc', 436, 420 ] | |
| 722 silly gunzTarPerm extractEntry README.md | |
| 723 silly gunzTarPerm modified mode [ 'README.md', 436, 420 ] | |
| 724 silly gunzTarPerm extractEntry gruntfile.coffee | |
| 725 silly gunzTarPerm modified mode [ 'gruntfile.coffee', 436, 420 ] | |
| 726 silly gunzTarPerm extractEntry index.js | |
| 727 silly gunzTarPerm modified mode [ 'index.js', 436, 420 ] | |
| 728 silly gunzTarPerm extractEntry lib/ | |
| 729 silly gunzTarPerm modified mode [ 'lib/', 509, 493 ] | |
| 730 silly gunzTarPerm extractEntry lib/project-manager.js | |
| 731 silly gunzTarPerm modified mode [ 'lib/project-manager.js', 436, 420 ] | |
| 732 silly gunzTarPerm extractEntry lib/project-structure-manager.js | |
| 733 silly gunzTarPerm modified mode [ 'lib/project-structure-manager.js', 436, 420 ] | |
| 734 silly gunzTarPerm extractEntry lib/request.js | |
| 735 silly gunzTarPerm modified mode [ 'lib/request.js', 436, 420 ] | |
| 736 silly gunzTarPerm extractEntry package.json | |
| 737 silly gunzTarPerm modified mode [ 'package.json', 436, 420 ] | |
| 738 silly gunzTarPerm extractEntry test/ | |
| 739 silly gunzTarPerm modified mode [ 'test/', 509, 493 ] | |
| 740 silly gunzTarPerm extractEntry test/index.spec.js | |
| 741 silly gunzTarPerm modified mode [ 'test/index.spec.js', 436, 420 ] | |
| 742 silly gunzTarPerm extractEntry test/mocha-globals.js | |
| 743 silly gunzTarPerm modified mode [ 'test/mocha-globals.js', 436, 420 ] | |
| 744 silly gunzTarPerm extractEntry test/project-manager.spec.js | |
| 745 silly gunzTarPerm modified mode [ 'test/project-manager.spec.js', 436, 420 ] | |
| 746 silly gunzTarPerm extractEntry test/project-structure-manager.spec.js | |
| 747 silly gunzTarPerm modified mode [ 'test/project-structure-manager.spec.js', 436, 420 ] | |
| 748 silly gunzTarPerm extractEntry test/request.spec.js | |
| 749 silly gunzTarPerm modified mode [ 'test/request.spec.js', 436, 420 ] | |
| 750 silly lockFile 7f94afd6-93445-0-0651844497770071-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093445-0.0651844497770071/package | |
| 751 silly lockFile 7f94afd6-93445-0-0651844497770071-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093445-0.0651844497770071/package | |
| 752 silly lockFile 4d9255f1-ejs-npm-livedb-0-2-8-package-tgz tar:///home/sharejs/.npm/livedb/0.2.8/package.tgz | |
| 753 silly lockFile 4d9255f1-ejs-npm-livedb-0-2-8-package-tgz tar:///home/sharejs/.npm/livedb/0.2.8/package.tgz | |
| 754 silly lockFile 549b1f7e-sharejs-npm-livedb-0-2-8-package /home/sharejs/.npm/livedb/0.2.8/package | |
| 755 verbose lock /home/sharejs/.npm/livedb/0.2.8/package /home/sharejs/.npm/549b1f7e-sharejs-npm-livedb-0-2-8-package.lock | |
| 756 silly lockFile 549b1f7e-sharejs-npm-livedb-0-2-8-package /home/sharejs/.npm/livedb/0.2.8/package | |
| 757 silly lockFile 549b1f7e-sharejs-npm-livedb-0-2-8-package /home/sharejs/.npm/livedb/0.2.8/package | |
| 758 verbose tar unpack /home/sharejs/.npm/livedb/0.2.8/package.tgz | |
| 759 silly lockFile f62a7f8c-sharejs-npm-livedb-0-2-8-package tar:///home/sharejs/.npm/livedb/0.2.8/package | |
| 760 verbose lock tar:///home/sharejs/.npm/livedb/0.2.8/package /home/sharejs/.npm/f62a7f8c-sharejs-npm-livedb-0-2-8-package.lock | |
| 761 silly lockFile 4d9255f1-ejs-npm-livedb-0-2-8-package-tgz tar:///home/sharejs/.npm/livedb/0.2.8/package.tgz | |
| 762 verbose lock tar:///home/sharejs/.npm/livedb/0.2.8/package.tgz /home/sharejs/.npm/4d9255f1-ejs-npm-livedb-0-2-8-package-tgz.lock | |
| 763 silly gunzTarPerm modes [ '755', '644' ] | |
| 764 silly gunzTarPerm extractEntry package.json | |
| 765 silly gunzTarPerm extractEntry .npmignore | |
| 766 silly gunzTarPerm extractEntry README.md | |
| 767 silly lockFile 873c5837-3728-0-24091318738646805-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093728-0.24091318738646805/package | |
| 768 silly lockFile 873c5837-3728-0-24091318738646805-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093728-0.24091318738646805/package | |
| 769 silly lockFile e91a870a-3728-0-24091318738646805-tmp-tgz tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093728-0.24091318738646805/tmp.tgz | |
| 770 silly lockFile e91a870a-3728-0-24091318738646805-tmp-tgz tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093728-0.24091318738646805/tmp.tgz | |
| 771 silly gunzTarPerm extractEntry LICENSE | |
| 772 silly gunzTarPerm extractEntry .travis.yml | |
| 773 verbose tar pack [ '/home/sharejs/.npm/node-codio/0.0.1/package.tgz', | |
| 773 verbose tar pack '/home/sharejs/tmp/npm-7091-_I7pIHma/1387387093728-0.24091318738646805/package' ] | |
| 774 verbose tarball /home/sharejs/.npm/node-codio/0.0.1/package.tgz | |
| 775 verbose folder /home/sharejs/tmp/npm-7091-_I7pIHma/1387387093728-0.24091318738646805/package | |
| 776 silly lockFile 873c5837-3728-0-24091318738646805-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093728-0.24091318738646805/package | |
| 777 verbose lock tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093728-0.24091318738646805/package /home/sharejs/.npm/873c5837-3728-0-24091318738646805-package.lock | |
| 778 silly lockFile 99388702-npm-node-codio-0-0-1-package-tgz tar:///home/sharejs/.npm/node-codio/0.0.1/package.tgz | |
| 779 verbose lock tar:///home/sharejs/.npm/node-codio/0.0.1/package.tgz /home/sharejs/.npm/99388702-npm-node-codio-0-0-1-package-tgz.lock | |
| 780 silly gunzTarPerm extractEntry example-backend.coffee | |
| 781 silly gunzTarPerm extractEntry lib/index.js | |
| 782 silly gunzTarPerm extractEntry lib/memory.js | |
| 783 silly gunzTarPerm extractEntry lib/ot.js | |
| 784 silly gunzTarPerm extractEntry lib/ratelimit.js | |
| 785 silly gunzTarPerm extractEntry lib/scripts/bulkGetOpsSince.lua | |
| 786 silly gunzTarPerm extractEntry lib/scripts/getOps.lua | |
| 787 silly gunzTarPerm extractEntry lib/scripts/setExpire.lua | |
| 788 silly gunzTarPerm extractEntry lib/scripts/submit.lua | |
| 789 silly lockFile 873c5837-3728-0-24091318738646805-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093728-0.24091318738646805/package | |
| 790 silly lockFile 873c5837-3728-0-24091318738646805-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387093728-0.24091318738646805/package | |
| 791 silly lockFile 99388702-npm-node-codio-0-0-1-package-tgz tar:///home/sharejs/.npm/node-codio/0.0.1/package.tgz | |
| 792 silly lockFile 99388702-npm-node-codio-0-0-1-package-tgz tar:///home/sharejs/.npm/node-codio/0.0.1/package.tgz | |
| 793 silly lockFile 9aae7159-ejs-npm-node-codio-0-0-1-package /home/sharejs/.npm/node-codio/0.0.1/package | |
| 794 verbose lock /home/sharejs/.npm/node-codio/0.0.1/package /home/sharejs/.npm/9aae7159-ejs-npm-node-codio-0-0-1-package.lock | |
| 795 silly lockFile 9aae7159-ejs-npm-node-codio-0-0-1-package /home/sharejs/.npm/node-codio/0.0.1/package | |
| 796 silly lockFile 9aae7159-ejs-npm-node-codio-0-0-1-package /home/sharejs/.npm/node-codio/0.0.1/package | |
| 797 verbose tar unpack /home/sharejs/.npm/node-codio/0.0.1/package.tgz | |
| 798 silly lockFile 6209bbdd-ejs-npm-node-codio-0-0-1-package tar:///home/sharejs/.npm/node-codio/0.0.1/package | |
| 799 verbose lock tar:///home/sharejs/.npm/node-codio/0.0.1/package /home/sharejs/.npm/6209bbdd-ejs-npm-node-codio-0-0-1-package.lock | |
| 800 silly lockFile 99388702-npm-node-codio-0-0-1-package-tgz tar:///home/sharejs/.npm/node-codio/0.0.1/package.tgz | |
| 801 verbose lock tar:///home/sharejs/.npm/node-codio/0.0.1/package.tgz /home/sharejs/.npm/99388702-npm-node-codio-0-0-1-package-tgz.lock | |
| 802 silly gunzTarPerm modes [ '755', '644' ] | |
| 803 silly gunzTarPerm extractEntry package.json | |
| 804 silly gunzTarPerm extractEntry .npmignore | |
| 805 silly gunzTarPerm extractEntry README.md | |
| 806 silly gunzTarPerm extractEntry index.js | |
| 807 silly gunzTarPerm extractEntry .jshintrc | |
| 808 silly gunzTarPerm extractEntry gruntfile.coffee | |
| 809 silly gunzTarPerm extractEntry lib/project-manager.js | |
| 810 silly gunzTarPerm extractEntry test/memory.coffee | |
| 811 silly gunzTarPerm extractEntry test/mocha.opts | |
| 812 silly gunzTarPerm extractEntry lib/project-structure-manager.js | |
| 813 silly gunzTarPerm extractEntry lib/request.js | |
| 814 silly gunzTarPerm extractEntry test/index.spec.js | |
| 815 silly gunzTarPerm extractEntry test/mocha-globals.js | |
| 816 silly gunzTarPerm extractEntry test/project-manager.spec.js | |
| 817 silly gunzTarPerm extractEntry test/project-structure-manager.spec.js | |
| 818 silly gunzTarPerm extractEntry test/request.spec.js | |
| 819 silly gunzTarPerm extractEntry test/oplog.coffee | |
| 820 silly gunzTarPerm extractEntry test/ot.coffee | |
| 821 silly gunzTarPerm extractEntry test/snapshotdb.coffee | |
| 822 silly gunzTarPerm extractEntry test/test.coffee | |
| 823 silly lockFile 6209bbdd-ejs-npm-node-codio-0-0-1-package tar:///home/sharejs/.npm/node-codio/0.0.1/package | |
| 824 silly lockFile 6209bbdd-ejs-npm-node-codio-0-0-1-package tar:///home/sharejs/.npm/node-codio/0.0.1/package | |
| 825 silly lockFile 99388702-npm-node-codio-0-0-1-package-tgz tar:///home/sharejs/.npm/node-codio/0.0.1/package.tgz | |
| 826 silly lockFile 99388702-npm-node-codio-0-0-1-package-tgz tar:///home/sharejs/.npm/node-codio/0.0.1/package.tgz | |
| 827 verbose chmod /home/sharejs/.npm/node-codio/0.0.1/package.tgz 644 | |
| 828 verbose chown /home/sharejs/.npm/node-codio/0.0.1/package.tgz [ 1005, 1005 ] | |
| 829 silly lockFile 799634bd-node-deploy-key-codio-node-codio git@codio-node_deploy_key:codio/node-codio | |
| 830 silly lockFile f62a7f8c-sharejs-npm-livedb-0-2-8-package tar:///home/sharejs/.npm/livedb/0.2.8/package | |
| 831 silly lockFile f62a7f8c-sharejs-npm-livedb-0-2-8-package tar:///home/sharejs/.npm/livedb/0.2.8/package | |
| 832 silly lockFile 4d9255f1-ejs-npm-livedb-0-2-8-package-tgz tar:///home/sharejs/.npm/livedb/0.2.8/package.tgz | |
| 833 silly lockFile 4d9255f1-ejs-npm-livedb-0-2-8-package-tgz tar:///home/sharejs/.npm/livedb/0.2.8/package.tgz | |
| 834 verbose chmod /home/sharejs/.npm/livedb/0.2.8/package.tgz 644 | |
| 835 verbose chown /home/sharejs/.npm/livedb/0.2.8/package.tgz [ 1005, 1005 ] | |
| 836 silly lockFile 264ecefb-github-com-Dignifiedquire-livedb git://github.com/Dignifiedquire/livedb | |
| 837 verbose git fetch -a origin (git://github.com/codio/ShareJS) | |
| 838 verbose git rev-list -n1 7 0f1ef2a85f75b8344d15c458ccedc9be4a1d7cbe | |
| 839 verbose resolved git url git://github.com/codio/ShareJS#0f1ef2a85f75b8344d15c458ccedc9be4a1d7cbe | |
| 840 verbose tar unpack /home/sharejs/tmp/npm-7091-_I7pIHma/1387387095392-0.7199489949271083/tmp.tgz | |
| 841 silly lockFile 99618df5-95392-0-7199489949271083-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387095392-0.7199489949271083/package | |
| 842 verbose lock tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387095392-0.7199489949271083/package /home/sharejs/.npm/99618df5-95392-0-7199489949271083-package.lock | |
| 843 silly lockFile 65fe85f3-95392-0-7199489949271083-tmp-tgz tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387095392-0.7199489949271083/tmp.tgz | |
| 844 verbose lock tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387095392-0.7199489949271083/tmp.tgz /home/sharejs/.npm/65fe85f3-95392-0-7199489949271083-tmp-tgz.lock | |
| 845 silly gunzTarPerm modes [ '755', '644' ] | |
| 846 silly gunzTarPerm extractEntry | |
| 847 silly gunzTarPerm modified mode [ '', 509, 493 ] | |
| 848 silly gunzTarPerm extractEntry .gitignore | |
| 849 silly gunzTarPerm modified mode [ '.gitignore', 436, 420 ] | |
| 850 silly gunzTarPerm extractEntry .npmignore | |
| 851 silly gunzTarPerm modified mode [ '.npmignore', 436, 420 ] | |
| 852 silly gunzTarPerm extractEntry .travis.yml | |
| 853 silly gunzTarPerm modified mode [ '.travis.yml', 436, 420 ] | |
| 854 silly gunzTarPerm extractEntry LICENSE | |
| 855 silly gunzTarPerm modified mode [ 'LICENSE', 436, 420 ] | |
| 856 silly gunzTarPerm extractEntry Makefile | |
| 857 silly gunzTarPerm modified mode [ 'Makefile', 436, 420 ] | |
| 858 silly gunzTarPerm extractEntry README.md | |
| 859 silly gunzTarPerm modified mode [ 'README.md', 436, 420 ] | |
| 860 silly gunzTarPerm extractEntry bin/ | |
| 861 silly gunzTarPerm modified mode [ 'bin/', 509, 493 ] | |
| 862 silly gunzTarPerm extractEntry bin/options.js | |
| 863 silly gunzTarPerm modified mode [ 'bin/options.js', 436, 420 ] | |
| 864 silly gunzTarPerm extractEntry bin/setup_amazon | |
| 865 silly gunzTarPerm modified mode [ 'bin/setup_amazon', 509, 493 ] | |
| 866 silly gunzTarPerm extractEntry bin/setup_couch | |
| 867 silly gunzTarPerm modified mode [ 'bin/setup_couch', 509, 493 ] | |
| 868 silly gunzTarPerm extractEntry bin/setup_mysql | |
| 869 silly gunzTarPerm modified mode [ 'bin/setup_mysql', 509, 493 ] | |
| 870 silly gunzTarPerm extractEntry bin/setup_pg | |
| 871 silly gunzTarPerm modified mode [ 'bin/setup_pg', 509, 493 ] | |
| 872 silly gunzTarPerm extractEntry bin/sharejs | |
| 873 silly gunzTarPerm modified mode [ 'bin/sharejs', 509, 493 ] | |
| 874 silly gunzTarPerm extractEntry bin/sourceserver | |
| 875 silly gunzTarPerm modified mode [ 'bin/sourceserver', 509, 493 ] | |
| 876 silly gunzTarPerm extractEntry karma.conf.coffee | |
| 877 silly gunzTarPerm modified mode [ 'karma.conf.coffee', 436, 420 ] | |
| 878 silly gunzTarPerm extractEntry lib/ | |
| 879 silly gunzTarPerm modified mode [ 'lib/', 509, 493 ] | |
| 880 silly gunzTarPerm extractEntry lib/client/ | |
| 881 silly gunzTarPerm modified mode [ 'lib/client/', 509, 493 ] | |
| 882 silly gunzTarPerm extractEntry lib/client/connection.js | |
| 883 silly gunzTarPerm modified mode [ 'lib/client/connection.js', 436, 420 ] | |
| 884 silly gunzTarPerm extractEntry lib/client/doc.js | |
| 885 silly gunzTarPerm modified mode [ 'lib/client/doc.js', 436, 420 ] | |
| 886 silly gunzTarPerm extractEntry lib/client/index.js | |
| 887 silly gunzTarPerm modified mode [ 'lib/client/index.js', 436, 420 ] | |
| 888 silly gunzTarPerm extractEntry lib/client/microevent.js | |
| 889 silly gunzTarPerm modified mode [ 'lib/client/microevent.js', 436, 420 ] | |
| 890 silly gunzTarPerm extractEntry lib/client/query.js | |
| 891 silly gunzTarPerm modified mode [ 'lib/client/query.js', 436, 420 ] | |
| 892 silly gunzTarPerm extractEntry lib/client/textarea.js | |
| 893 silly gunzTarPerm modified mode [ 'lib/client/textarea.js', 436, 420 ] | |
| 894 silly gunzTarPerm extractEntry lib/index.js | |
| 895 silly gunzTarPerm modified mode [ 'lib/index.js', 436, 420 ] | |
| 896 silly gunzTarPerm extractEntry lib/server/ | |
| 897 silly gunzTarPerm modified mode [ 'lib/server/', 509, 493 ] | |
| 898 silly gunzTarPerm extractEntry lib/server/index.js | |
| 899 silly gunzTarPerm modified mode [ 'lib/server/index.js', 436, 420 ] | |
| 900 silly gunzTarPerm extractEntry lib/server/rest.js | |
| 901 silly gunzTarPerm modified mode [ 'lib/server/rest.js', 436, 420 ] | |
| 902 silly gunzTarPerm extractEntry lib/server/session.js | |
| 903 silly gunzTarPerm modified mode [ 'lib/server/session.js', 436, 420 ] | |
| 904 silly gunzTarPerm extractEntry lib/server/useragent.js | |
| 905 silly gunzTarPerm modified mode [ 'lib/server/useragent.js', 436, 420 ] | |
| 906 silly gunzTarPerm extractEntry lib/types/ | |
| 907 silly gunzTarPerm modified mode [ 'lib/types/', 509, 493 ] | |
| 908 silly gunzTarPerm extractEntry lib/types/README.md | |
| 909 silly gunzTarPerm modified mode [ 'lib/types/README.md', 436, 420 ] | |
| 910 silly gunzTarPerm extractEntry lib/types/index.js | |
| 911 silly gunzTarPerm modified mode [ 'lib/types/index.js', 436, 420 ] | |
| 912 silly gunzTarPerm extractEntry lib/types/json-api.js | |
| 913 silly gunzTarPerm modified mode [ 'lib/types/json-api.js', 436, 420 ] | |
| 914 silly gunzTarPerm extractEntry lib/types/text-api.js | |
| 915 silly gunzTarPerm modified mode [ 'lib/types/text-api.js', 436, 420 ] | |
| 916 silly gunzTarPerm extractEntry lib/types/text-tp2-api.js | |
| 917 silly gunzTarPerm modified mode [ 'lib/types/text-tp2-api.js', 436, 420 ] | |
| 918 silly gunzTarPerm extractEntry metadata.md | |
| 919 silly gunzTarPerm modified mode [ 'metadata.md', 436, 420 ] | |
| 920 silly gunzTarPerm extractEntry package.json | |
| 921 silly gunzTarPerm modified mode [ 'package.json', 436, 420 ] | |
| 922 silly gunzTarPerm extractEntry prototype/ | |
| 923 silly gunzTarPerm modified mode [ 'prototype/', 509, 493 ] | |
| 924 silly gunzTarPerm extractEntry prototype/clock.coffee | |
| 925 silly gunzTarPerm modified mode [ 'prototype/clock.coffee', 436, 420 ] | |
| 926 silly gunzTarPerm extractEntry prototype/package.json | |
| 927 silly gunzTarPerm modified mode [ 'prototype/package.json', 436, 420 ] | |
| 928 silly gunzTarPerm extractEntry prototype/public/ | |
| 929 silly gunzTarPerm modified mode [ 'prototype/public/', 509, 493 ] | |
| 930 silly gunzTarPerm extractEntry prototype/public/create.html | |
| 931 silly gunzTarPerm modified mode [ 'prototype/public/create.html', 436, 420 ] | |
| 932 silly gunzTarPerm extractEntry prototype/public/img/ | |
| 933 silly gunzTarPerm modified mode [ 'prototype/public/img/', 509, 493 ] | |
| 934 silly gunzTarPerm extractEntry prototype/public/img/jsoneditor-icons.png | |
| 935 silly gunzTarPerm modified mode [ 'prototype/public/img/jsoneditor-icons.png', 436, 420 ] | |
| 936 silly gunzTarPerm extractEntry prototype/public/index.html | |
| 937 silly gunzTarPerm modified mode [ 'prototype/public/index.html', 436, 420 ] | |
| 938 silly gunzTarPerm extractEntry prototype/public/json.html | |
| 939 silly gunzTarPerm modified mode [ 'prototype/public/json.html', 436, 420 ] | |
| 940 silly gunzTarPerm extractEntry prototype/public/json_list.html | |
| 941 silly gunzTarPerm modified mode [ 'prototype/public/json_list.html', 436, 420 ] | |
| 942 silly gunzTarPerm extractEntry prototype/public/jsoneditor-min.css | |
| 943 silly gunzTarPerm modified mode [ 'prototype/public/jsoneditor-min.css', 436, 420 ] | |
| 944 silly gunzTarPerm extractEntry prototype/public/jsoneditor-min.js | |
| 945 silly gunzTarPerm modified mode [ 'prototype/public/jsoneditor-min.js', 436, 420 ] | |
| 946 silly gunzTarPerm extractEntry prototype/public/list.html | |
| 947 silly gunzTarPerm modified mode [ 'prototype/public/list.html', 436, 420 ] | |
| 948 silly gunzTarPerm extractEntry prototype/public/multi.html | |
| 949 silly gunzTarPerm modified mode [ 'prototype/public/multi.html', 436, 420 ] | |
| 950 silly gunzTarPerm extractEntry prototype/server.js | |
| 951 silly gunzTarPerm modified mode [ 'prototype/server.js', 436, 420 ] | |
| 952 silly gunzTarPerm extractEntry scripts/ | |
| 953 silly gunzTarPerm modified mode [ 'scripts/', 509, 493 ] | |
| 954 silly gunzTarPerm extractEntry scripts/apply.csv | |
| 955 silly gunzTarPerm modified mode [ 'scripts/apply.csv', 436, 420 ] | |
| 956 silly gunzTarPerm extractEntry scripts/bench-composable.coffee | |
| 957 silly gunzTarPerm modified mode [ 'scripts/bench-composable.coffee', 436, 420 ] | |
| 958 silly gunzTarPerm extractEntry scripts/bench.coffee | |
| 959 silly gunzTarPerm modified mode [ 'scripts/bench.coffee', 436, 420 ] | |
| 960 silly gunzTarPerm extractEntry scripts/benchmark/ | |
| 961 silly gunzTarPerm modified mode [ 'scripts/benchmark/', 509, 493 ] | |
| 962 silly gunzTarPerm extractEntry scripts/benchmark/benchmark.coffee | |
| 963 silly gunzTarPerm modified mode [ 'scripts/benchmark/benchmark.coffee', 436, 420 ] | |
| 964 silly gunzTarPerm extractEntry scripts/cat.coffee | |
| 965 silly gunzTarPerm modified mode [ 'scripts/cat.coffee', 436, 420 ] | |
| 966 silly gunzTarPerm extractEntry scripts/stats.coffee | |
| 967 silly gunzTarPerm modified mode [ 'scripts/stats.coffee', 436, 420 ] | |
| 968 silly gunzTarPerm extractEntry scripts/talk.coffee | |
| 969 silly gunzTarPerm modified mode [ 'scripts/talk.coffee', 436, 420 ] | |
| 970 silly gunzTarPerm extractEntry test/ | |
| 971 silly gunzTarPerm modified mode [ 'test/', 509, 493 ] | |
| 972 silly gunzTarPerm extractEntry test/browser/ | |
| 973 silly gunzTarPerm modified mode [ 'test/browser/', 509, 493 ] | |
| 974 silly gunzTarPerm extractEntry test/browser/connection.coffee | |
| 975 silly gunzTarPerm modified mode [ 'test/browser/connection.coffee', 436, 420 ] | |
| 976 silly gunzTarPerm extractEntry test/browser/doc.coffee | |
| 977 silly gunzTarPerm modified mode [ 'test/browser/doc.coffee', 436, 420 ] | |
| 978 silly gunzTarPerm extractEntry test/browser/queries.coffee | |
| 979 silly gunzTarPerm modified mode [ 'test/browser/queries.coffee', 436, 420 ] | |
| 980 silly gunzTarPerm extractEntry test/browser/subscribed.coffee | |
| 981 silly gunzTarPerm modified mode [ 'test/browser/subscribed.coffee', 436, 420 ] | |
| 982 silly gunzTarPerm extractEntry test/helpers/ | |
| 983 silly gunzTarPerm modified mode [ 'test/helpers/', 509, 493 ] | |
| 984 silly gunzTarPerm extractEntry test/helpers/fixtures.coffee | |
| 985 silly gunzTarPerm modified mode [ 'test/helpers/fixtures.coffee', 436, 420 ] | |
| 986 silly gunzTarPerm extractEntry test/helpers/index.coffee | |
| 987 silly gunzTarPerm modified mode [ 'test/helpers/index.coffee', 436, 420 ] | |
| 988 silly gunzTarPerm extractEntry test/helpers/mersenne.js | |
| 989 silly gunzTarPerm modified mode [ 'test/helpers/mersenne.js', 436, 420 ] | |
| 990 silly gunzTarPerm extractEntry test/helpers/ot_number.js | |
| 991 silly gunzTarPerm modified mode [ 'test/helpers/ot_number.js', 436, 420 ] | |
| 992 silly gunzTarPerm extractEntry test/helpers/phantom.coffee | |
| 993 silly gunzTarPerm modified mode [ 'test/helpers/phantom.coffee', 436, 420 ] | |
| 994 silly gunzTarPerm extractEntry test/helpers/randomizer.coffee | |
| 995 silly gunzTarPerm modified mode [ 'test/helpers/randomizer.coffee', 436, 420 ] | |
| 996 silly gunzTarPerm extractEntry test/helpers/server.coffee | |
| 997 silly gunzTarPerm modified mode [ 'test/helpers/server.coffee', 436, 420 ] | |
| 998 silly gunzTarPerm extractEntry test/helpers/socket.coffee | |
| 999 silly gunzTarPerm modified mode [ 'test/helpers/socket.coffee', 436, 420 ] | |
| 1000 silly gunzTarPerm extractEntry test/helpers/webclient.coffee | |
| 1001 silly gunzTarPerm modified mode [ 'test/helpers/webclient.coffee', 436, 420 ] | |
| 1002 silly gunzTarPerm extractEntry test/server/ | |
| 1003 silly gunzTarPerm modified mode [ 'test/server/', 509, 493 ] | |
| 1004 silly gunzTarPerm extractEntry test/server/connection.coffee | |
| 1005 silly gunzTarPerm modified mode [ 'test/server/connection.coffee', 436, 420 ] | |
| 1006 silly gunzTarPerm extractEntry test/server/doc.coffee | |
| 1007 silly gunzTarPerm modified mode [ 'test/server/doc.coffee', 436, 420 ] | |
| 1008 silly gunzTarPerm extractEntry test/server/integration.coffee | |
| 1009 silly gunzTarPerm modified mode [ 'test/server/integration.coffee', 436, 420 ] | |
| 1010 silly gunzTarPerm extractEntry test/server/json-api.coffee | |
| 1011 silly gunzTarPerm modified mode [ 'test/server/json-api.coffee', 436, 420 ] | |
| 1012 silly gunzTarPerm extractEntry test/server/microevent.coffee | |
| 1013 silly gunzTarPerm modified mode [ 'test/server/microevent.coffee', 436, 420 ] | |
| 1014 silly gunzTarPerm extractEntry test/server/middleware.coffee | |
| 1015 silly gunzTarPerm modified mode [ 'test/server/middleware.coffee', 436, 420 ] | |
| 1016 silly gunzTarPerm extractEntry test/server/query.coffee | |
| 1017 silly gunzTarPerm modified mode [ 'test/server/query.coffee', 436, 420 ] | |
| 1018 silly gunzTarPerm extractEntry test/server/rest.coffee | |
| 1019 silly gunzTarPerm modified mode [ 'test/server/rest.coffee', 436, 420 ] | |
| 1020 silly gunzTarPerm extractEntry test/server/session.coffee | |
| 1021 silly gunzTarPerm modified mode [ 'test/server/session.coffee', 436, 420 ] | |
| 1022 silly gunzTarPerm extractEntry test/server/testhelpers.coffee | |
| 1023 silly gunzTarPerm modified mode [ 'test/server/testhelpers.coffee', 436, 420 ] | |
| 1024 silly gunzTarPerm extractEntry test/server/text-api.coffee | |
| 1025 silly gunzTarPerm modified mode [ 'test/server/text-api.coffee', 436, 420 ] | |
| 1026 silly gunzTarPerm extractEntry test/server/useragent.coffee | |
| 1027 silly gunzTarPerm modified mode [ 'test/server/useragent.coffee', 436, 420 ] | |
| 1028 silly gunzTarPerm extractEntry test/server/version.coffee | |
| 1029 silly gunzTarPerm modified mode [ 'test/server/version.coffee', 436, 420 ] | |
| 1030 silly lockFile 99618df5-95392-0-7199489949271083-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387095392-0.7199489949271083/package | |
| 1031 silly lockFile 99618df5-95392-0-7199489949271083-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387095392-0.7199489949271083/package | |
| 1032 silly lockFile 65fe85f3-95392-0-7199489949271083-tmp-tgz tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387095392-0.7199489949271083/tmp.tgz | |
| 1033 silly lockFile 65fe85f3-95392-0-7199489949271083-tmp-tgz tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387095392-0.7199489949271083/tmp.tgz | |
| 1034 verbose tar pack [ '/home/sharejs/.npm/share/0.7.0-alpha9/package.tgz', | |
| 1034 verbose tar pack '/home/sharejs/tmp/npm-7091-_I7pIHma/1387387095392-0.7199489949271083/package' ] | |
| 1035 verbose tarball /home/sharejs/.npm/share/0.7.0-alpha9/package.tgz | |
| 1036 verbose folder /home/sharejs/tmp/npm-7091-_I7pIHma/1387387095392-0.7199489949271083/package | |
| 1037 silly lockFile 99618df5-95392-0-7199489949271083-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387095392-0.7199489949271083/package | |
| 1038 verbose lock tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387095392-0.7199489949271083/package /home/sharejs/.npm/99618df5-95392-0-7199489949271083-package.lock | |
| 1039 silly lockFile a733730d-m-share-0-7-0-alpha9-package-tgz tar:///home/sharejs/.npm/share/0.7.0-alpha9/package.tgz | |
| 1040 verbose lock tar:///home/sharejs/.npm/share/0.7.0-alpha9/package.tgz /home/sharejs/.npm/a733730d-m-share-0-7-0-alpha9-package-tgz.lock | |
| 1041 silly lockFile 99618df5-95392-0-7199489949271083-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387095392-0.7199489949271083/package | |
| 1042 silly lockFile 99618df5-95392-0-7199489949271083-package tar:///home/sharejs/tmp/npm-7091-_I7pIHma/1387387095392-0.7199489949271083/package | |
| 1043 silly lockFile a733730d-m-share-0-7-0-alpha9-package-tgz tar:///home/sharejs/.npm/share/0.7.0-alpha9/package.tgz | |
| 1044 silly lockFile a733730d-m-share-0-7-0-alpha9-package-tgz tar:///home/sharejs/.npm/share/0.7.0-alpha9/package.tgz | |
| 1045 silly lockFile 71b87c39-s-npm-share-0-7-0-alpha9-package /home/sharejs/.npm/share/0.7.0-alpha9/package | |
| 1046 verbose lock /home/sharejs/.npm/share/0.7.0-alpha9/package /home/sharejs/.npm/71b87c39-s-npm-share-0-7-0-alpha9-package.lock | |
| 1047 silly lockFile 71b87c39-s-npm-share-0-7-0-alpha9-package /home/sharejs/.npm/share/0.7.0-alpha9/package | |
| 1048 silly lockFile 71b87c39-s-npm-share-0-7-0-alpha9-package /home/sharejs/.npm/share/0.7.0-alpha9/package | |
| 1049 verbose tar unpack /home/sharejs/.npm/share/0.7.0-alpha9/package.tgz | |
| 1050 silly lockFile f64388dd-s-npm-share-0-7-0-alpha9-package tar:///home/sharejs/.npm/share/0.7.0-alpha9/package | |
| 1051 verbose lock tar:///home/sharejs/.npm/share/0.7.0-alpha9/package /home/sharejs/.npm/f64388dd-s-npm-share-0-7-0-alpha9-package.lock | |
| 1052 silly lockFile a733730d-m-share-0-7-0-alpha9-package-tgz tar:///home/sharejs/.npm/share/0.7.0-alpha9/package.tgz | |
| 1053 verbose lock tar:///home/sharejs/.npm/share/0.7.0-alpha9/package.tgz /home/sharejs/.npm/a733730d-m-share-0-7-0-alpha9-package-tgz.lock | |
| 1054 silly gunzTarPerm modes [ '755', '644' ] | |
| 1055 silly gunzTarPerm extractEntry package.json | |
| 1056 silly gunzTarPerm extractEntry .npmignore | |
| 1057 silly gunzTarPerm extractEntry README.md | |
| 1058 silly gunzTarPerm extractEntry LICENSE | |
| 1059 silly gunzTarPerm extractEntry test/browser/connection.coffee | |
| 1060 silly gunzTarPerm extractEntry test/browser/doc.coffee | |
| 1061 silly gunzTarPerm extractEntry test/browser/queries.coffee | |
| 1062 silly gunzTarPerm extractEntry test/browser/subscribed.coffee | |
| 1063 silly gunzTarPerm extractEntry test/helpers/mersenne.js | |
| 1064 silly gunzTarPerm extractEntry test/helpers/ot_number.js | |
| 1065 silly gunzTarPerm extractEntry test/helpers/fixtures.coffee | |
| 1066 silly gunzTarPerm extractEntry test/helpers/index.coffee | |
| 1067 silly gunzTarPerm extractEntry test/helpers/phantom.coffee | |
| 1068 silly gunzTarPerm extractEntry test/helpers/randomizer.coffee | |
| 1069 silly gunzTarPerm extractEntry test/helpers/server.coffee | |
| 1070 silly gunzTarPerm extractEntry test/helpers/socket.coffee | |
| 1071 silly gunzTarPerm extractEntry test/helpers/webclient.coffee | |
| 1072 silly gunzTarPerm extractEntry test/server/query.coffee | |
| 1073 silly gunzTarPerm extractEntry test/server/connection.coffee | |
| 1074 silly gunzTarPerm extractEntry test/server/integration.coffee | |
| 1075 silly gunzTarPerm extractEntry test/server/json-api.coffee | |
| 1076 silly gunzTarPerm extractEntry test/server/microevent.coffee | |
| 1077 silly gunzTarPerm extractEntry test/server/middleware.coffee | |
| 1078 silly gunzTarPerm extractEntry test/server/doc.coffee | |
| 1079 silly gunzTarPerm extractEntry test/server/rest.coffee | |
| 1080 silly gunzTarPerm extractEntry test/server/session.coffee | |
| 1081 silly gunzTarPerm extractEntry test/server/testhelpers.coffee | |
| 1082 silly gunzTarPerm extractEntry test/server/text-api.coffee | |
| 1083 silly gunzTarPerm extractEntry test/server/useragent.coffee | |
| 1084 silly gunzTarPerm extractEntry test/server/version.coffee | |
| 1085 silly gunzTarPerm extractEntry bin/options.js | |
| 1086 silly gunzTarPerm extractEntry bin/setup_amazon | |
| 1087 silly gunzTarPerm extractEntry bin/setup_couch | |
| 1088 silly gunzTarPerm extractEntry bin/setup_mysql | |
| 1089 silly gunzTarPerm extractEntry bin/setup_pg | |
| 1090 silly gunzTarPerm extractEntry bin/sharejs | |
| 1091 silly gunzTarPerm extractEntry bin/sourceserver | |
| 1092 silly gunzTarPerm extractEntry .travis.yml | |
| 1093 silly gunzTarPerm extractEntry lib/index.js | |
| 1094 silly gunzTarPerm extractEntry lib/client/connection.js | |
| 1095 silly gunzTarPerm extractEntry lib/client/doc.js | |
| 1096 silly gunzTarPerm extractEntry lib/client/index.js | |
| 1097 silly gunzTarPerm extractEntry lib/client/microevent.js | |
| 1098 silly gunzTarPerm extractEntry lib/client/query.js | |
| 1099 silly gunzTarPerm extractEntry lib/client/textarea.js | |
| 1100 silly gunzTarPerm extractEntry lib/server/index.js | |
| 1101 silly gunzTarPerm extractEntry lib/server/rest.js | |
| 1102 silly gunzTarPerm extractEntry lib/server/session.js | |
| 1103 silly gunzTarPerm extractEntry lib/server/useragent.js | |
| 1104 silly gunzTarPerm extractEntry lib/types/README.md | |
| 1105 silly gunzTarPerm extractEntry lib/types/index.js | |
| 1106 silly gunzTarPerm extractEntry lib/types/json-api.js | |
| 1107 silly gunzTarPerm extractEntry lib/types/text-api.js | |
| 1108 silly gunzTarPerm extractEntry lib/types/text-tp2-api.js | |
| 1109 silly gunzTarPerm extractEntry metadata.md | |
| 1110 silly gunzTarPerm extractEntry Makefile | |
| 1111 silly gunzTarPerm extractEntry prototype/package.json | |
| 1112 silly gunzTarPerm extractEntry prototype/server.js | |
| 1113 silly gunzTarPerm extractEntry prototype/clock.coffee | |
| 1114 silly gunzTarPerm extractEntry prototype/public/jsoneditor-min.js | |
| 1115 silly gunzTarPerm extractEntry prototype/public/create.html | |
| 1116 silly gunzTarPerm extractEntry prototype/public/img/jsoneditor-icons.png | |
| 1117 silly gunzTarPerm extractEntry prototype/public/index.html | |
| 1118 silly gunzTarPerm extractEntry prototype/public/json.html | |
| 1119 silly gunzTarPerm extractEntry prototype/public/json_list.html | |
| 1120 silly gunzTarPerm extractEntry prototype/public/jsoneditor-min.css | |
| 1121 silly gunzTarPerm extractEntry prototype/public/list.html | |
| 1122 silly gunzTarPerm extractEntry prototype/public/multi.html | |
| 1123 silly gunzTarPerm extractEntry scripts/apply.csv | |
| 1124 silly gunzTarPerm extractEntry scripts/bench-composable.coffee | |
| 1125 silly gunzTarPerm extractEntry scripts/bench.coffee | |
| 1126 silly gunzTarPerm extractEntry scripts/benchmark/benchmark.coffee | |
| 1127 silly gunzTarPerm extractEntry scripts/cat.coffee | |
| 1128 silly gunzTarPerm extractEntry scripts/stats.coffee | |
| 1129 silly gunzTarPerm extractEntry scripts/talk.coffee | |
| 1130 silly gunzTarPerm extractEntry karma.conf.coffee | |
| 1131 silly lockFile f64388dd-s-npm-share-0-7-0-alpha9-package tar:///home/sharejs/.npm/share/0.7.0-alpha9/package | |
| 1132 silly lockFile f64388dd-s-npm-share-0-7-0-alpha9-package tar:///home/sharejs/.npm/share/0.7.0-alpha9/package | |
| 1133 silly lockFile a733730d-m-share-0-7-0-alpha9-package-tgz tar:///home/sharejs/.npm/share/0.7.0-alpha9/package.tgz | |
| 1134 silly lockFile a733730d-m-share-0-7-0-alpha9-package-tgz tar:///home/sharejs/.npm/share/0.7.0-alpha9/package.tgz | |
| 1135 verbose chmod /home/sharejs/.npm/share/0.7.0-alpha9/package.tgz 644 | |
| 1136 verbose chown /home/sharejs/.npm/share/0.7.0-alpha9/package.tgz [ 1005, 1005 ] | |
| 1137 silly lockFile 941feb8a-git-github-com-codio-ShareJS git://github.com/codio/ShareJS | |
| 1138 silly resolved [ { name: 'nodetime', | |
| 1138 silly resolved version: '0.8.13', | |
| 1138 silly resolved description: 'Performance Profiler and Monitor', | |
| 1138 silly resolved author: { name: 'Nodetime', email: '[email protected]' }, | |
| 1138 silly resolved homepage: 'http://nodetime.com', | |
| 1138 silly resolved keywords: | |
| 1138 silly resolved [ 'profiler', | |
| 1138 silly resolved 'profiling', | |
| 1138 silly resolved 'tracing', | |
| 1138 silly resolved 'cpu', | |
| 1138 silly resolved 'heap', | |
| 1138 silly resolved 'performance', | |
| 1138 silly resolved 'instrumentation', | |
| 1138 silly resolved 'response time', | |
| 1138 silly resolved 'performance', | |
| 1138 silly resolved 'bottlenecks', | |
| 1138 silly resolved 'monitoring', | |
| 1138 silly resolved 'analytics', | |
| 1138 silly resolved 'metrics', | |
| 1138 silly resolved 'alerts', | |
| 1138 silly resolved 'dtrace' ], | |
| 1138 silly resolved contributors: [], | |
| 1138 silly resolved main: './index.js', | |
| 1138 silly resolved directories: { lib: './lib' }, | |
| 1138 silly resolved repository: { type: 'git', url: 'git://github.com/nodetime/nodetime.git' }, | |
| 1138 silly resolved dependencies: { 'nodetime-native': '0.1.0' }, | |
| 1138 silly resolved optionalDependencies: { 'nodetime-native': '0.1.0' }, | |
| 1138 silly resolved devDependencies: | |
| 1138 silly resolved { mocha: '*', | |
| 1138 silly resolved memwatch: '*', | |
| 1138 silly resolved async: '*', | |
| 1138 silly resolved express: '*', | |
| 1138 silly resolved 'socket.io': '*', | |
| 1138 silly resolved redis: '*', | |
| 1138 silly resolved mongodb: '*', | |
| 1138 silly resolved mongoose: '*', | |
| 1138 silly resolved mysql: '*', | |
| 1138 silly resolved pg: '*', | |
| 1138 silly resolved memcached: '*', | |
| 1138 silly resolved memcache: '*', | |
| 1138 silly resolved 'cassandra-client': '*', | |
| 1138 silly resolved cassandra: '*' }, | |
| 1138 silly resolved engines: { node: '>=0.6.0' }, | |
| 1138 silly resolved licenses: [ [Object] ], | |
| 1138 silly resolved readme: 'Nodetime - Performance Profiler and Monitor for Node.js Applications\n===========================================\nNodetime reveals response time and other internals of HTTP requests and underlying HTTP, database, file system and other API calls in your Node.js application. Coupled with related process and OS state information, real-time and historical metrics, monitoring as well as CPU and memory profiling it enables tracing performance problems down to the root cause. Nodetime supports multiple APIs including native HTTP client, file system, cluster and sockets, Socket.io, Redis, MongoDB, MySQL, PostgreSQL, Memcached and Cassandra. HTTP based data stores like CouchDB and Riak are supported via HTTP API.\n\nThis repository contains the source code of Nodetime agent. Agent runs within the application and securely sends profiling data and metrics to Nodetime server, where they are made available via web console at nodetime.com.\n\nFull documentation at [nodetime.com](http://nodetime.com) [Docs section](http://nodetime.com/docs).\n\nFor questions or technical issues please contact our [support team](http://support.nodetime.com).\n\n\n', | |
| 1138 silly resolved readmeFilename: 'README.md', | |
| 1138 silly resolved bugs: { url: 'https://github.com/nodetime/nodetime/issues' }, | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved _from: '[email protected]' }, | |
| 1138 silly resolved { name: 'querystring', | |
| 1138 silly resolved id: 'querystring', | |
| 1138 silly resolved version: '0.2.0', | |
| 1138 silly resolved description: 'Node\'s querystring module for all engines.', | |
| 1138 silly resolved keywords: [ 'commonjs', 'query', 'querystring' ], | |
| 1138 silly resolved author: { name: 'Irakli Gozalishvili', email: '[email protected]' }, | |
| 1138 silly resolved repository: | |
| 1138 silly resolved { type: 'git', | |
| 1138 silly resolved url: 'git://github.com/Gozala/querystring.git', | |
| 1138 silly resolved web: 'https://github.com/Gozala/querystring' }, | |
| 1138 silly resolved bugs: { url: 'http://github.com/Gozala/querystring/issues/' }, | |
| 1138 silly resolved devDependencies: | |
| 1138 silly resolved { test: '~0.x.0', | |
| 1138 silly resolved phantomify: '~0.x.0', | |
| 1138 silly resolved retape: '~0.x.0', | |
| 1138 silly resolved tape: '~0.1.5' }, | |
| 1138 silly resolved engines: { node: '>=0.4.x' }, | |
| 1138 silly resolved scripts: | |
| 1138 silly resolved { test: 'npm run test-node && npm run test-browser && npm run test-tap', | |
| 1138 silly resolved 'test-browser': 'node ./node_modules/phantomify/bin/cmd.js ./test/common-index.js', | |
| 1138 silly resolved 'test-node': 'node ./test/common-index.js', | |
| 1138 silly resolved 'test-tap': 'node ./test/tap-index.js' }, | |
| 1138 silly resolved testling: { files: 'test/tap-index.js', browsers: [Object] }, | |
| 1138 silly resolved licenses: [ [Object] ], | |
| 1138 silly resolved readme: '# querystring\n\n[](http://travis-ci.org/Gozala/querystring)\n\n\n[](http://ci.testling.com/Gozala/querystring)\n\n\n\nNode\'s querystring module for all engines.\n\n## Install ##\n\n npm install querystring\n\n', | |
| 1138 silly resolved readmeFilename: 'Readme.md', | |
| 1138 silly resolved homepage: 'https://github.com/Gozala/querystring', | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved _from: 'querystring@~0.2.0' }, | |
| 1138 silly resolved { name: 'lodash', | |
| 1138 silly resolved version: '2.2.1', | |
| 1138 silly resolved description: 'A utility library delivering consistency, customization, performance, & extras.', | |
| 1138 silly resolved homepage: 'http://lodash.com/', | |
| 1138 silly resolved license: 'MIT', | |
| 1138 silly resolved main: 'dist/lodash.js', | |
| 1138 silly resolved keywords: | |
| 1138 silly resolved [ 'amd', | |
| 1138 silly resolved 'browser', | |
| 1138 silly resolved 'client', | |
| 1138 silly resolved 'customize', | |
| 1138 silly resolved 'functional', | |
| 1138 silly resolved 'server', | |
| 1138 silly resolved 'util' ], | |
| 1138 silly resolved author: | |
| 1138 silly resolved { name: 'John-David Dalton', | |
| 1138 silly resolved email: '[email protected]', | |
| 1138 silly resolved url: 'http://allyoucanleet.com/' }, | |
| 1138 silly resolved contributors: [ [Object], [Object], [Object], [Object] ], | |
| 1138 silly resolved bugs: { url: 'https://github.com/lodash/lodash/issues' }, | |
| 1138 silly resolved repository: { type: 'git', url: 'https://github.com/lodash/lodash.git' }, | |
| 1138 silly resolved engines: [ 'node', 'rhino' ], | |
| 1138 silly resolved files: | |
| 1138 silly resolved [ 'LICENSE.txt', | |
| 1138 silly resolved 'lodash.js', | |
| 1138 silly resolved 'dist/lodash.js', | |
| 1138 silly resolved 'dist/lodash.min.js', | |
| 1138 silly resolved 'dist/lodash.compat.js', | |
| 1138 silly resolved 'dist/lodash.compat.min.js', | |
| 1138 silly resolved 'dist/lodash.underscore.js', | |
| 1138 silly resolved 'dist/lodash.underscore.min.js' ], | |
| 1138 silly resolved jam: { main: 'dist/lodash.compat.js', include: [Object] }, | |
| 1138 silly resolved volo: { type: 'directory', ignore: [Object] }, | |
| 1138 silly resolved readme: '# Lo-Dash v2.2.1\nA utility library delivering consistency, [customization](http://lodash.com/custom-builds), [performance](http://lodash.com/benchmarks), & [extras](http://lodash.com/#features).\n\n## Download\n\n* Modern builds perfect for newer browsers/environments:<br>\n[Development](https://raw.github.com/lodash/lodash/2.2.1/dist/lodash.js) &\n[Production](https://raw.github.com/lodash/lodash/2.2.1/dist/lodash.min.js)\n\n* Compatibility builds for older environment support too:<br>\n[Development](https://raw.github.com/lodash/lodash/2.2.1/dist/lodash.compat.js) &\n[Production](https://raw.github.com/lodash/lodash/2.2.1/dist/lodash.compat.min.js)\n\n* Underscore builds to use as a drop-in replacement:<br>\n[Development](https://raw.github.com/lodash/lodash/2.2.1/dist/lodash.underscore.js) &\n[Production](https://raw.github.com/lodash/lodash/2.2.1/dist/lodash.underscore.min.js)\n\nCDN copies are available on [cdnjs](http://cdnjs.com/libraries/lodash.js/) & [jsDelivr](http://www.jsdelivr.com/#!lodash).<br>\nFor smaller file sizes, create [custom builds](http://lodash.com/custom-builds) with only the features needed.<br>\nLove modules? We’ve got you covered with [lodash-amd](https://npmjs.org/package/lodash-amd), [lodash-node](https://npmjs.org/package/lodash-node), & [npm packages](https://npmjs.org/browse/keyword/lodash-modularized) per method.\n\n## Dive in\n\nThere’s plenty of [documentation](http://lodash.com/docs), [unit tests](http://lodash.com/tests), & [benchmarks](http://lodash.com/benchmarks).<br>\nFor a list of upcoming features, check out our [roadmap](https://github.com/lodash/lodash/wiki/Roadmap).<br>\nThe full changelog for this release is available on our [wiki](https://github.com/lodash/lodash/wiki/Changelog).\n\n## Features *not* in Underscore\n\n * AMD loader support ([curl](https://github.com/cujojs/curl), [dojo](http://dojotoolkit.org/), [requirejs](http://requirejs.org/), etc.)\n * [_(…)](http://lodash.com/docs#_) supports intuitive chaining\n * [_.at](http://lodash.com/docs#at) for cherry-picking collection values\n * [_.bindKey](http://lodash.com/docs#bindKey) for binding [*“lazy”*](http://michaux.ca/articles/lazy-function-definition-pattern) defined methods\n * [_.clone](http://lodash.com/docs#clone) supports shallow cloning of `Date` & `RegExp` objects\n * [_.cloneDeep](http://lodash.com/docs#cloneDeep) for deep cloning arrays & objects\n * [_.contains](http://lodash.com/docs#contains) accepts a `fromIndex`\n * [_.createCallback](http://lodash.com/docs#createCallback) for extending callbacks in methods & mixins\n * [_.curry](http://lodash.com/docs#curry) for creating [curried](http://hughfdjackson.com/javascript/2013/07/06/why-curry-helps/) functions\n * [_.debounce](http://lodash.com/docs#debounce) & [_.throttle](http://lodash.com/docs#throttle) accept additional `options` for more control\n * [_.findIndex](http://lodash.com/docs#findIndex) & [_.findKey](http://lodash.com/docs#findKey) for finding indexes & keys\n * [_.forEach](http://lodash.com/docs#forEach) is chainable & supports exiting early\n * [_.forIn](http://lodash.com/docs#forIn) for iterating own & inherited properties\n * [_.forOwn](http://lodash.com/docs#forOwn) for iterating own properties\n * [_.isPlainObject](http://lodash.com/docs#isPlainObject) for checking if values are created by `Object`\n * [_.memoize](http://lodash.com/docs#memoize) exposes the `cache` of memoized functions\n * [_.merge](http://lodash.com/docs#merge) for a deep [_.extend](http://lodash.com/docs#extend)\n * [_.parseInt](http://lodash.com/docs#parseInt) for consistent behavior\n * [_.partialRight](http://lodash.com/docs#partialRight) for [partial application](http://lodash.com/docs#partial) from the right\n * [_.pull](http://lodash.com/docs#pull) & [_.remove](http://lodash.com/docs#remove) for mutating arrays\n * [_.random](http://lodash.com/docs#random) supports returning floating-point numbers\n * [_.runInContext](http://lodash.com/docs#runInContext) for easier mocking\n * [_.support](http://lodash.com/docs#support) for flagging environment features\n * [_.template](http://lodash.com/docs#template) supports [*“imports”*](http://lodash.com/docs#templateSettings_imports) options & [ES6 template delimiters](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-7.8.6)\n * [_.transform](http://lodash.com/docs#transform) as a powerful alternative to [_.reduce](http://lodash.com/docs#reduce) for transforming objects\n * [_.where](http://lodash.com/docs#where) supports deep object comparisons\n * [_.zip](http://lodash.com/docs#zip) is capable of unzipping values\n * [_.omit](http://lodash.com/docs#omit), [_.pick](http://lodash.com/docs#pick), &\n [more](http://lodash.com/docs "_.assign, _.clone, _.cloneDeep, _.first, _.initial, _.isEqual, _.last, _.merge, _.rest") accept callbacks\n * [_.contains](http://lodash.com/docs#contains), [_.toArray](http://lodash.com/docs#toArray), &\n [more](http://lodash.com/docs "_.at, _.countBy, _.every, _.filter, _.find, _.forEach, _.forEachRight, _.groupBy, _.invoke, _.map, _.max, _.min, _.pluck, _.reduce, _.reduceRight, _.reject, _.shuffle, _.size, _.some, _.sortBy, _.where") accept strings\n * [_.filter](http://lodash.com/docs#filter), [_.map](http://lodash.com/docs#map), &\n [more](http://lodash.com/docs "_.countBy, _.every, _.find, _.findKey, _.findLast, _.findLastIndex, _.findLastKey, _.first, _.groupBy, _.initial, _.last, _.max, _.min, _.reject, _.rest, _.some, _.sortBy, _.sortedIndex, _.uniq") support *“_.pluck”* & *“_.where”* shorthands\n * [_.findLast](http://lodash.com/docs#findLast), [_.findLastIndex](http://lodash.com/docs#findLastIndex), &\n [more](http://lodash.com/docs "_.findLastKey, _.forEachRight, _.forInRight, _.forOwnRight") right-associative methods\n\n## Resources\n\n * Posts\n - [Say “Hello” to Lo-Dash](http://kitcambridge.be/blog/say-hello-to-lo-dash/)\n - [Custom builds in Lo-Dash 2.0](http://kitcambridge.be/blog/custom-builds-in-lo-dash-2-dot-0/)\n\n * Videos\n - [Introduction](https://vimeo.com/44154599)\n - [Origins](https://vimeo.com/44154600)\n - [Optimizations & builds](https://vimeo.com/44154601)\n - [Native method use](https://vimeo.com/48576012)\n - [Testing](https://vimeo.com/45865290)\n - [CascadiaJS ’12](http://www.youtube.com/watch?v=dpPy4f_SeEk)\n\n## Support\n\nTested in Chrome 5~29, Firefox 2~24, IE 6-10, Opera 9.25~16, Safari 3-6, Node.js 0.6.8-0.10.20, Narwhal 0.3.2, PhantomJS 1.9.2, RingoJS 0.9, & Rhino 1.7RC5.\n\n## Installation & usage\n\nIn browsers:\n\n```html\n<script src="lodash.js"></script>\n```\n\nUsing [`npm`](http://npmjs.org/):\n\n```bash\nnpm i --save lodash\n\n{sudo} npm i -g lodash\nnpm ln lodash\n```\n\nIn [Node.js](http://nodejs.org/) & [Ringo](http://ringojs.org/):\n\n```js\nvar _ = require(\'lodash\');\n// or as Underscore\nvar _ = require(\'lodash/dist/lodash.underscore\');\n```\n\n**Notes:**\n * Don’t assign values to [special variable](http://nodejs.org/api/repl.html#repl_repl_features) `_` when in the REPL\n * If Lo-Dash is installed globally, run [`npm ln lodash`](http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/) in your project’s root directory *before* requiring it\n * Node.js 0.10.8-0.10.11 [have](https://github.com/joyent/node/issues/5622) [bugs](https://github.com/joyent/node/issues/5688) preventing minified builds\n\nIn [Rhino](http://www.mozilla.org/rhino/):\n\n```js\nload(\'lodash.js\');\n```\n\nIn an AMD loader:\n\n```js\nrequire({\n \'packages\': [\n { \'name\': \'lodash\', \'location\': \'path/to/lodash\', \'main\': \'lodash\' }\n ]\n},\n[\'lodash\'], function(_) {\n console.log(_.VERSION);\n});\n```\n\n## Author\n\n| [](http://twitter.com/jdalton "Follow @jdalton on Twitter") |\n|---|\n| [John-David Dalton](http://allyoucanleet.com/) |\n\n## Contributors\n\n| [](http://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](http://twitter.com/mathias "Follow @mathias on Twitter") |\n|---|---|---|\n| [Blaine Bublitz](http://iceddev.com/) | [Kit Cambridge](http://kitcambridge.github.io/) | [Mathias Bynens](http://mathiasbynens.be/) |\n', | |
| 1138 silly resolved readmeFilename: 'README.md', | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved _from: 'lodash@~2.2.1' }, | |
| 1138 silly resolved { name: 'amqp', | |
| 1138 silly resolved description: 'AMQP driver for node', | |
| 1138 silly resolved keywords: [ 'amqp' ], | |
| 1138 silly resolved version: '0.1.8', | |
| 1138 silly resolved author: { name: 'Ryan Dahl' }, | |
| 1138 silly resolved contributors: | |
| 1138 silly resolved [ [Object], | |
| 1138 silly resolved [Object], | |
| 1138 silly resolved [Object], | |
| 1138 silly resolved [Object], | |
| 1138 silly resolved [Object], | |
| 1138 silly resolved [Object], | |
| 1138 silly resolved [Object], | |
| 1138 silly resolved [Object], | |
| 1138 silly resolved [Object], | |
| 1138 silly resolved [Object], | |
| 1138 silly resolved [Object], | |
| 1138 silly resolved [Object], | |
| 1138 silly resolved [Object], | |
| 1138 silly resolved [Object] ], | |
| 1138 silly resolved repository: { type: 'git', url: 'git://github.com/postwait/node-amqp.git' }, | |
| 1138 silly resolved bugs: { url: 'http://github.com/postwait/node-amqp/issues' }, | |
| 1138 silly resolved main: './amqp', | |
| 1138 silly resolved engines: { node: '0.4 || 0.6 || 0.8 || 0.9 || 0.10' }, | |
| 1138 silly resolved licenses: [ [Object] ], | |
| 1138 silly resolved dependencies: { lodash: '~1.3.1', longjohn: '~0.2.1' }, | |
| 1138 silly resolved devDependencies: { optimist: '~0.6.0' }, | |
| 1138 silly resolved readme: '[](http://travis-ci.org/postwait/node-amqp)\n\n# node-amqp\n\nThis is a client for RabbitMQ (and maybe other servers?). It partially\nimplements the 0.9.1 version of the AMQP protocol.\n\n## Table of Contents \n\n- [Installation](#installation)\n- [Synopsis](#synopsis)\n- [Connection](#connection)\n - [Connection options and URL](#connection-options-and-url)\n - [connection.publish(queueName, body, options, callback)](#connectionpublishqueuename-body-options-callback)\n - [connection.end()](#connectionend)\n- [Queue](#queue)\n - [connection.queue(name, options, openCallback)](#connectionqueuename-options-opencallback)\n - [queue.subscribe([options,] listener)](#queuesubscribeoptions-listener)\n - [queue.subscribeRaw([options,] listener)](#queuesubscriberawoptions-listener)\n - [queue.unsubscribe(consumerTag)](#queueunsubscribeconsumertag)\n - [queue.shift([reject[, requeue]])](#queueshiftreject-requeue)\n - [queue.bind([exchange,] routing)](#queuebindexchange-routing)\n - [queue.unbind([exchange,] routing)](#queueunbindexchange-routing)\n - [queue.bind_headers([exchange,] routing)](#queuebind_headersexchange-routing)\n - [queue.destroy(options)](#queuedestroyoptions)\n- [Exchange](#exchange)\n - [exchange.on(\'open\', callback)](#exchangeon\'open\'-callback)\n - [connection.exchange()](#connectionexchange)\n - [connection.exchange(name, options={}, openCallback)](#connectionexchangename-options={}-opencallback)\n - [exchange.publish(routingKey, message, options, callback)](#exchangepublishroutingkey-message-options-callback)\n - [exchange.destroy(ifUnused = true)](#exchangedestroyifunused-=-true)\n - [exchange.bind(srcExchange, routingKey [, callback])](#exchangebindsrcexchange-routingkey--callback)\n - [exchange.unbind(srcExchange, routingKey [, callback])](#exchangeunbindsrcexchange-routingkey--callback)\n - [exchange.bind_headers(exchange, routing [, bindCallback])](#exchangebind_headersexchange-routing--bindcallback)\n\n## Installation\n\n npm install amqp\n\n## Synopsis\n\nIMPORTANT: This module only works with node v0.4.0 and later.\n\nAn example of connecting to a server and listening on a queue.\n\n```javascript\nvar amqp = require(\'amqp\');\n\nvar connection = amqp.createConnection({ host: \'dev.rabbitmq.com\' });\n\n// Wait for connection to become established.\nconnection.on(\'ready\', function () {\n // Use the default \'amq.topic\' exchange\n connection.queue(\'my-queue\', function(q){\n // Catch all messages\n q.bind(\'#\');\n \n // Receive messages\n q.subscribe(function (message) {\n // Print messages to stdout\n console.log(message);\n });\n });\n});\n```\n\n## Connection\n\n`new amqp.Connection()` Instantiates a new connection. Use\n`connection.connect()` to connect to a server.\n\n`amqp.createConnection()` returns an instance of `amqp.Connection`, which contains\nan instance of `net.Socket` at its `socket` property. All events and methods which work on\n`net.Socket` can also be used on an `amqp.Connection` instance. (e.g., the\nevents `\'connect\'` and `\'close\'`.)\n\n### Connection options and URL\n\n`amqp.createConnection([options, [implOptions]])` takes two options\nobjects as parameters. The first options object has these defaults:\n\n { host: \'localhost\'\n , port: 5672\n , login: \'guest\'\n , password: \'guest\'\n , authMechanism: \'AMQPLAIN\'\n , vhost: \'/\'\n , ssl: { enabled : false\n }\n }\n\nAn example `options` object for creating an SSL connection has these properties:\n\n { host: \'localhost\'\n , port: 5671\n , login: \'guest\'\n , password: \'guest\'\n , authMechanism: \'AMQPLAIN\'\n , vhost: \'/\'\n , ssl: { enabled : true\n , keyFile : \'/path/to/key/file\'\n , certFile : \'/path/to/cert/file\'\n , caFile : \'/path/to/cacert/file\'\n , rejectUnauthorized : true\n }\n }\n\nThe key, certificate, and certificate authority files must be in pem format.\nIf `port` is not specified, the default AMQPS port 5671 is used.\nIf `rejectUnauthorized` is not specified, it defaults to true.\n\nOptions can also be passed in a single URL of the form\n\n amqp[s]://[user:password@]hostname[:port][/vhost]\n\nAMQPLAIN is assumed for the auth mechanism.\n\nNote that the vhost must be URL-encoded and appear as the only segment\nof the path, i.e., the only unencoded slash is that leading; leaving\nthe path entirely empty indicates that the vhost `/`, as\nabove, should be used (it could also be supplied as the path `/%2f`).\n\nThis URL is supplied as the field `url` in the options; for example\n\n```javascript\nvar conn =\n amqp.createConnection({url: "amqp://guest:guest@localhost:5672"});\n\n```\n\n\nOptions provided as individual fields will override values given in\nthe URL.\n\n\nYou can also specify additional client properties for your connection\nby setting the `clientProperties` field on the `options` object.\n\n { clientProperties: { applicationName: \'myApplication\'\n }\n }\n\nBy default the following client properties are set\n\n { product: \'node-amqp\'\n , platform: \'node-\' + process.version\n , version: nodeAMQPVersion\n }\n\n\nThe second options are specific to the node AMQP implementation. It has\nthe default values:\n\n { defaultExchangeName: \'\'\n , reconnect: true\n , reconnectBackoffStrategy: \'linear\'\n , reconnectExponentialLimit: 120000\n , reconnectBackoffTime: 1000\n }\n\nThe defaultExchangeName is the default exchange to which\nconnection.publish will publish. In the past, the default exchange was\n`amq.topic`, which is not ideal. To emulate this behaviour, one can\ncreate a connection like:\n\n```javascript\nvar conn =\n amqp.createConnection({url: "amqp://guest:guest@localhost:5672"},\n {defaultExchangeName: "amq.topic"});\n```\n\n If the `reconnect` option is true, then the driver will attempt to reconnect using the\n configured strategy *any time* the connection becomes unavailable. If this is not\n appropriate for your application, set this option to false.\n\n If you would like this option, you can set parameters controlling how aggressively the\n reconnections will be attempted. Valid strategies are "linear" and "exponential".\n\n Backoff times are in milliseconds. Under the "linear" strategy, the driver will pause\n `reconnectBackoffTime` ms before the first attempt, and between each subsequent attempt.\n Under the "exponential" strategy, the driver will pause `reconnectBackoffTime` ms before\n the first attempt, and will double the previous pause between each subsequent attempt\n until a connection is reestablished.\n\nAfter a connection is established the `\'connect\'` event is fired as it is\nwith any `net.Connection` instance. AMQP requires a 7-way handshake which\nmust be completed before any communication can begin. `net.Connection` does\nthe handshake automatically and emits the `\'ready\'` event when the handshaking\nis complete.\n\nFor backward compatibility, two additional options are available. Older\nversions of this library placed the routingKey and deliveryTag for incoming\nmessages into the JSON payload received. This module was changed to\nleave inbound JSON payloads pristine. Some applications may need the\nold behaviour. If the key `routingKeyInPayload` is set to true in the\nconnection `options`, the messages resulting from a subscribe call will\ninclude a \'routingKey\' key in the JSON payload. If the key\n`deliveryTagInPayload` is set to true in the connection options, the\ndeliveryTag of the incoming message will be placed in the JSON payload.\n\n\n### connection.publish(queueName, body, options, callback)\n\nPublishes a message to the default exchange; if the defaultExchange is\nleft as `\'\'`, this effectively publishes the message to the queue\nnamed.\n\nThis method proxies to the default exchange\'s `publish` method and parameters are passed\nthrough untouched.\n\n### connection.end()\n\n`amqp.Connection` is derived from `net.Stream` and has all the same methods.\nSo use `connection.end()` to terminate a connection gracefully.\n\n\n\n\n## Queue\n\nEvents: A queue will call the callback given to the `connection.queue()`\nmethod once it is usable. For example:\n\n```javascript\nvar q = connection.queue(\'my-queue\', function (queue) {\n console.log(\'Queue \' + queue.name + \' is open\');\n});\n```\n\n\nDeclaring a queue with an empty name will make the server generate a\nrandom name.\n\n### connection.queue(name, options, openCallback)\n\nReturns a reference to a queue. The options are\n\n- `passive`: boolean, default false.\n If set, the server will not create the queue. The client can use\n this to check whether a queue exists without modifying the server\n state.\n- `durable`: boolean, default false.\n Durable queues remain active when a server restarts.\n Non-durable queues (transient queues) are purged if/when a\n server restarts. Note that durable queues do not necessarily\n hold persistent messages, although it does not make sense to\n send persistent messages to a transient queue.\n- `exclusive`: boolean, default false.\n Exclusive queues may only be consumed from by the current connection.\n Setting the \'exclusive\' flag always implies \'autoDelete\'.\n- `autoDelete`: boolean, default true.\n If set, the queue is deleted when all consumers have finished\n using it. Last consumer can be cancelled either explicitly or because\n its channel is closed. If there was no consumer ever on the queue, it\n won\'t be deleted.\n- `noDeclare`: boolean, default false.\n If set, the queue will not be declared, this will allow a queue to be\n deleted if you don\'t know its previous options.\n- `arguments`: a map of additional arguments to pass in when creating a queue.\n- `closeChannelOnUnsubscribe` : a boolean when true the channel will close on \n unsubscrube, default false.\n\n### queue.subscribe([options,] listener)\n\nAn easy subscription command. It works like this\n\n```javascript\nq.subscribe(function (message, headers, deliveryInfo) {\n console.log(\'Got a message with routing key \' + deliveryInfo.routingKey);\n});\n \n```\n\nIt will automatically acknowledge receipt of each message.\n\nThere are several options available. Setting the options argument to\n`{ ack: true }` (which defaults to false) will make it so that the AMQP\nserver only delivers a single message at a time. When you want the next\nmessage, call `q.shift()`. When `ack` is false then you will receive\nmessages as fast as they come in. \n\nYou can also use the prefetchCount option to increase the window of how\nmany messages the server will send you before you need to ack (quality of service).\n`{ ack: true, prefetchCount: 1 }` is the default and will only send you one\nmessage before you ack. Setting prefetchCount to 0 will make that window unlimited.\n\nThe `routingKeyInPayload` and `deliveryKeyInPayload` options determine\nif the reception process will inject the routingKey and deliveryKey,\nrespectively, into the JSON payload received. These default to unset\nthus adopting the parent connection\'s values (which default to false).\nSetting these to true provide backward compatibility for older\napplications.\n\nThe `exclusive` option will subscribe to the queue in exclusive mode. Only one\nsubscriber is allowed at a time, and subsequent attempts to subscribe to the\nsame queue will result in an exception. This option differs from the exclusive\noption passed when creating in a queue in that the queue itself is not exclusive,\nonly the consumers. This means that long lived durable queues can be used\nas exclusive queues.\n\nThis method will emit `\'basicQosOk\'` when ready.\n\n\n### queue.subscribeRaw([options,] listener)\n\nSubscribes to a queue. The `listener` argument should be a function which\nreceives a message. This is a low-level interface - the message that the\nlistener receives will be a stream of binary data. You probably want to use\n`subscribe` instead. For now this low-level interface is left undocumented.\nLook at the source code if you need to do this.\n\nThis method will emit `\'basicConsumeOk\'` when ready.\n\n### queue.unsubscribe(consumerTag)\n\nUnsubscribe from a queue, given the consumer tag. The consumer tag is\nsupplied to the *promise callback* of `Queue.subscribeRaw` or\n`Queue.subscribe`:\n\n```javascript\nconnection.queue(\'foo\', function(queue) {\n var ctag;\n queue.subscribe(function(msg) {...})\n .addCallback(function(ok) { ctag = ok.consumerTag; });\n // ... and in some other callback\n queue.unsubscribe(ctag);\n});\n```\n\nNote that `Queue.unsubscribe` will not requeue messages that have not\nbeen acknowledged. You need to close the queue or connection for that\nto happen. You may also receive messages after calling `unsubscribe`;\nyou will **not** receive messages from the queue after the unsubscribe\npromise callback has been invoked, however.\n\n### queue.shift([reject[, requeue]])\n\nFor use with `subscribe({ack: true}, fn)`. Acknowledges the last\nmessage if no arguments are provided or if `reject` is false. If\n`reject` is true then the message will be rejected and put back onto\nthe queue if `requeue` is true, otherwise it will be discarded.\n\n\n### queue.bind([exchange,] routing)\n\nThis method binds a queue to an exchange. Until a queue is\nbound it will not receive any messages, unless they are sent through\nthe unnamed exchange (see `defaultExchangeName` above).\n\nIf the `exchange` argument is left out `\'amq.topic\'` will be used.\n\nThis method will emit `\'queueBindOk\'` when complete.\n\n\n### queue.unbind([exchange,] routing)\n\nThis method unbinds a queue from an exchange.\n\nIf the exchange argument is left out `\'amq.topic\'` will be used.\n\nThs method will emit `\'queueUnbindOk\'` when complete.\n\n\n### queue.bind_headers([exchange,] routing)\n\nThis method binds a queue to an exchange. Until a queue is\nbound it will not receive any messages.\n\nThis method is to be used on an "headers"-type exchange. The routing\nargument must contain the routing keys and the `x-match` value (`all` or `any`).\n\nIf the `exchange` argument is left out `\'amq.headers\'` will be used.\n\n### queue.destroy(options)\n\nDelete the queue. Without options, the queue will be deleted even if it has\npending messages or attached consumers. If +options.ifUnused+ is true, then\nthe queue will only be deleted if there are no consumers. If\n+options.ifEmpty+ is true, the queue will only be deleted if it has no\nmessages.\n\n\n\n\n## Exchange\n\nEvents: An exchange will call the callback given to the `connection.exchange()`\nmethod once it is usable. For example:\n\n```javascript\nvar exc = connection.exchange(\'my-exchange\', function (exchange) {\n console.log(\'Exchange \' + exchange.name + \' is open\');\n});\n```\n\n### exchange.on(\'open\', callback)\n\nThe open event is emitted when the exchange is declared and ready to\nbe used. This interface is considered deprecated.\n\n\n### connection.exchange()\n### connection.exchange(name, options={}, openCallback)\n\nAn exchange can be created using `connection.exchange()`. The method returns\nan `amqp.Exchange` object.\n\nWithout any arguments, this method returns the default exchange.\nOtherwise a string, `name`, is given as the first argument and an `options`\nobject for the second. The options are\n\n- `type`: the type of exchange `\'direct\'`, `\'fanout\'`, or `\'topic\'` (default).\n- `passive`: boolean, default false.\n If set, the server will not create the exchange. The client can use\n this to check whether an exchange exists without modifying the server\n state.\n- `durable`: boolean, default false.\n If set when creating a new exchange, the exchange will be marked as\n durable. Durable exchanges remain active when a server restarts.\n Non-durable exchanges (transient exchanges) are purged if/when a\n server restarts.\n- `confirm`: boolean, default false.\n If set when connecting to a exchange the channel will send acks \n for publishes. Published tasks will emit \'ack\' when it is acked.\n- `autoDelete`: boolean, default true.\n If set, the exchange is deleted when there are no longer queues\n bound to it.\n- `noDeclare`: boolean, default false.\n If set, the exchange will not be declared, this will allow the exchange\n to be deleted if you dont know its previous options.\n- `confirm`: boolean, default false.\n If set, the exchange will be in confirm mode, and you will get a \n \'ack\'|\'error\' event emitted on a publish, or the callback on the publish\n will be called.\n\nAn exchange will emit the `\'open\'` event when it is finally declared.\n\n\n### exchange.publish(routingKey, message, options, callback)\n\nPublishes a message to the exchange. The `routingKey` argument is a string\nwhich helps routing in `topic` and `direct` exchanges. The `message` can be\neither a Buffer or Object. A Buffer is used for sending raw bytes; an Object\nis converted to JSON.\n\n`options` is an object with any of the following\n\n- `mandatory`: boolean, default false.\n This flag tells the server how to react if the message cannot be\n routed to a queue. If this flag is set, the server will return an\n unroutable message with a Return method. If this flag is false, the\n server silently drops the message.\n- `immediate`: boolean, default false.\n This flag tells the server how to react if the message cannot be\n routed to a queue consumer immediately. If this flag is set, the\n server will return an undeliverable message with a Return method.\n If this flag is false, the server will queue the message, but with\n no guarantee that it will ever be consumed.\n- `contentType`: default `\'application/octet-stream\'`\n- `contentEncoding`: default null.\n- `headers`: default `{}`. Arbitrary application-specific message headers.\n- `deliveryMode`: Non-persistent (1) or persistent (2)\n- `priority`: The message priority, 0 to 9.\n- `correlationId`: default null. Application correlation identifier\n- `replyTo`: Usually used to name a reply queue for a request message.\n- `expiration`: default null. Message expiration specification\n- `messageId`: default null. Application message identifier\n- `timestamp`: default null. Message timestamp\n- `type`: default null. Message type name\n- `userId`: default null. Creating user id\n- `appId`: default null. Creating application id\n\n`callback` is a function that will get called if the exchange is in confirm mode,\nthe value sent will be true or false, this is the presense of a error so true, means\nan error occured and false, means the publish was successfull\n\n### exchange.destroy(ifUnused = true)\n\nDeletes an exchange.\nIf the optional boolean second argument is set, the server will only\ndelete the exchange if it has no queue bindings. If the exchange has queue\nbindings the server does not delete it but raises a channel exception\ninstead.\n\n### exchange.bind(srcExchange, routingKey [, callback])\n\nBinds the exchange (destination) to the given source exchange (srcExchange). \nWhen one exchange is bound to another, the destination (or receiving) exchange \nwill receive all messages published to the source exchange that match the \ngiven routingKey. \n\nThis method will emit `\'exchangeBindOk\'` when complete.\n\nPlease note that Exchange to Exchange Bindings (E2E) are an extension to the \nAMQP spec introduced by RabbitMQ, and that by using this feature, you will be \nreliant on RabbitMQ\'s AMQP implementation. For more information on E2E \nBindings with RabbitMQ see:\n\nhttp://www.rabbitmq.com/e2e.html\n\n### exchange.unbind(srcExchange, routingKey [, callback])\n\nUnbinds the exchange (destination) from the given source exchange (srcExchange). \nThis is the reverse of the exchange.bind method above, and will stop messages \nfrom srcExchange/routingKey from being sent to the destination exchange. \n\nThis method will emit `\'exchangeUnbindOk\'` when complete.\n\n### exchange.bind_headers(exchange, routing [, bindCallback])\n\nThis method is to be used on an "headers"-type exchange. The routing\nargument must contain the routing keys and the `x-match` value (`all` or `any`).\n', | |
| 1138 silly resolved readmeFilename: 'README.md', | |
| 1138 silly resolved homepage: 'https://github.com/postwait/node-amqp', | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved _from: 'amqp@~0.1.7' }, | |
| 1138 silly resolved { name: 'log4js', | |
| 1138 silly resolved version: '0.6.9', | |
| 1138 silly resolved description: 'Port of Log4js to work with node.', | |
| 1138 silly resolved keywords: [ 'logging', 'log', 'log4j', 'node' ], | |
| 1138 silly resolved main: './lib/log4js', | |
| 1138 silly resolved author: { name: 'Gareth Jones', email: '[email protected]' }, | |
| 1138 silly resolved repository: | |
| 1138 silly resolved { type: 'git', | |
| 1138 silly resolved url: 'https://github.com/nomiddlename/log4js-node.git' }, | |
| 1138 silly resolved bugs: { url: 'http://github.com/nomiddlename/log4js-node/issues' }, | |
| 1138 silly resolved engines: { node: '>=0.8' }, | |
| 1138 silly resolved scripts: { test: 'vows' }, | |
| 1138 silly resolved directories: { test: 'test', lib: 'lib' }, | |
| 1138 silly resolved dependencies: | |
| 1138 silly resolved { async: '0.1.15', | |
| 1138 silly resolved semver: '~1.1.4', | |
| 1138 silly resolved 'readable-stream': '~1.0.2' }, | |
| 1138 silly resolved devDependencies: | |
| 1138 silly resolved { vows: '0.7.0', | |
| 1138 silly resolved 'sandboxed-module': '0.1.3', | |
| 1138 silly resolved 'hook.io': '0.8.10', | |
| 1138 silly resolved underscore: '1.2.1' }, | |
| 1138 silly resolved browser: { os: false }, | |
| 1138 silly resolved readme: '# log4js-node [](http://travis-ci.org/nomiddlename/log4js-node)\n\n\nThis is a conversion of the [log4js](http://log4js.berlios.de/index.html)\nframework to work with [node](http://nodejs.org). I\'ve mainly stripped out the browser-specific code and tidied up some of the javascript. \n\nOut of the box it supports the following features:\n\n* coloured console logging\n* replacement of node\'s console.log functions (optional)\n* file appender, with log rolling based on file size\n* SMTP appender\n* GELF appender\n* hook.io appender\n* multiprocess appender (useful when you\'ve got worker processes)\n* a logger for connect/express servers\n* configurable log message layout/patterns\n* different log levels for different log categories (make some parts of your app log as DEBUG, others only ERRORS, etc.)\n\nNOTE: from log4js 0.5 onwards you\'ll need to explicitly enable replacement of node\'s console.log functions. Do this either by calling `log4js.replaceConsole()` or configuring with an object or json file like this:\n\n```javascript\n{\n appenders: [\n { type: "console" }\n ],\n replaceConsole: true\n}\n```\n\n## installation\n\nnpm install log4js\n\n\n## usage\n\nMinimalist version:\n```javascript\nvar log4js = require(\'log4js\');\nvar logger = log4js.getLogger();\nlogger.debug("Some debug messages");\n```\nBy default, log4js outputs to stdout with the coloured layout (thanks to [masylum](http://github.com/masylum)), so for the above you would see:\n```bash\n[2010-01-17 11:43:37.987] [DEBUG] [default] - Some debug messages\n```\nSee example.js for a full example, but here\'s a snippet (also in fromreadme.js):\n```javascript\nvar log4js = require(\'log4js\'); \n//console log is loaded by default, so you won\'t normally need to do this\n//log4js.loadAppender(\'console\');\nlog4js.loadAppender(\'file\');\n//log4js.addAppender(log4js.appenders.console());\nlog4js.addAppender(log4js.appenders.file(\'logs/cheese.log\'), \'cheese\');\n\nvar logger = log4js.getLogger(\'cheese\');\nlogger.setLevel(\'ERROR\');\n\nlogger.trace(\'Entering cheese testing\');\nlogger.debug(\'Got cheese.\');\nlogger.info(\'Cheese is Gouda.\');\nlogger.warn(\'Cheese is quite smelly.\');\nlogger.error(\'Cheese is too ripe!\');\nlogger.fatal(\'Cheese was breeding ground for listeria.\');\n```\nOutput:\n```bash\n[2010-01-17 11:43:37.987] [ERROR] cheese - Cheese is too ripe!\n[2010-01-17 11:43:37.990] [FATAL] cheese - Cheese was breeding ground for listeria.\n``` \nThe first 5 lines of the code above could also be written as:\n```javascript\nvar log4js = require(\'log4js\');\nlog4js.configure({\n appenders: [\n { type: \'console\' },\n { type: \'file\', filename: \'logs/cheese.log\', category: \'cheese\' }\n ]\n});\n```\n\n## configuration\n\nYou can configure the appenders and log levels manually (as above), or provide a\nconfiguration file (`log4js.configure(\'path/to/file.json\')`), or a configuration object. The \nconfiguration file location may also be specified via the environment variable \nLOG4JS_CONFIG (`export LOG4JS_CONFIG=path/to/file.json`). \nAn example file can be found in `test/log4js.json`. An example config file with log rolling is in `test/with-log-rolling.json`.\nBy default, the configuration file is checked for changes every 60 seconds, and if changed, reloaded. This allows changes to logging levels to occur without restarting the application.\n\nTo turn off configuration file change checking, configure with:\n\n```javascript\nvar log4js = require(\'log4js\');\nlog4js.configure(\'my_log4js_configuration.json\', {});\n```\nTo specify a different period:\n\n```javascript\nlog4js.configure(\'file.json\', { reloadSecs: 300 });\n```\nFor FileAppender you can also pass the path to the log directory as an option where all your log files would be stored.\n\n```javascript\nlog4js.configure(\'my_log4js_configuration.json\', { cwd: \'/absolute/path/to/log/dir\' });\n```\nIf you have already defined an absolute path for one of the FileAppenders in the configuration file, you could add a "absolute": true to the particular FileAppender to override the cwd option passed. Here is an example configuration file:\n```json\n#### my_log4js_configuration.json ####\n{\n "appenders": [\n {\n "type": "file",\n "filename": "relative/path/to/log_file.log",\n "maxLogSize": 20480,\n "backups": 3,\n "category": "relative-logger"\n },\n {\n "type": "file",\n "absolute": true,\n "filename": "/absolute/path/to/log_file.log",\n "maxLogSize": 20480,\n "backups": 10,\n "category": "absolute-logger" \n }\n ]\n}\n``` \nDocumentation for most of the core appenders can be found on the [wiki](https://github.com/nomiddlename/log4js-node/wiki/Appenders), otherwise take a look at the tests and the examples.\n\n## Documentation\nSee the [wiki](https://github.com/nomiddlename/log4js-node/wiki). Improve the [wiki](https://github.com/nomiddlename/log4js-node/wiki), please.\n\n## Contributing\nContributions welcome, but take a look at the [rules](https://github.com/nomiddlename/log4js-node/wiki/Contributing) first.\n\n## License\n\nThe original log4js was distributed under the Apache 2.0 License, and so is this. I\'ve tried to\nkeep the original copyright and author credits in place, except in sections that I have rewritten\nextensively.\n', | |
| 1138 silly resolved readmeFilename: 'README.md', | |
| 1138 silly resolved homepage: 'https://github.com/nomiddlename/log4js-node', | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved _from: 'log4js@~0.6.6' }, | |
| 1138 silly resolved { name: 'newrelic', | |
| 1138 silly resolved version: '1.0.1', | |
| 1138 silly resolved author: | |
| 1138 silly resolved { name: 'New Relic Node.js agent team', | |
| 1138 silly resolved email: '[email protected]' }, | |
| 1138 silly resolved licenses: [ [Object] ], | |
| 1138 silly resolved contributors: [ [Object], [Object], [Object] ], | |
| 1138 silly resolved description: 'New Relic agent', | |
| 1138 silly resolved keywords: | |
| 1138 silly resolved [ 'apm', | |
| 1138 silly resolved 'performance', | |
| 1138 silly resolved 'monitoring', | |
| 1138 silly resolved 'instrumentation', | |
| 1138 silly resolved 'debugging', | |
| 1138 silly resolved 'profiling' ], | |
| 1138 silly resolved homepage: 'http://github.com/newrelic/node-newrelic', | |
| 1138 silly resolved engines: { node: '>=0.6.0' }, | |
| 1138 silly resolved directories: { lib: 'lib' }, | |
| 1138 silly resolved scripts: { test: 'make test' }, | |
| 1138 silly resolved dependencies: { bunyan: '0.14.6', 'continuation-local-storage': '2.5.2' }, | |
| 1138 silly resolved devDependencies: | |
| 1138 silly resolved { mocha: '*', | |
| 1138 silly resolved chai: '*', | |
| 1138 silly resolved cover: '*', | |
| 1138 silly resolved request: '*', | |
| 1138 silly resolved sinon: '*', | |
| 1138 silly resolved architect: '*', | |
| 1138 silly resolved wrench: '*', | |
| 1138 silly resolved carrier: '*', | |
| 1138 silly resolved restify: '*', | |
| 1138 silly resolved tap: '*', | |
| 1138 silly resolved memcached: '*', | |
| 1138 silly resolved sequelize: '*', | |
| 1138 silly resolved redis: '*', | |
| 1138 silly resolved q: '*', | |
| 1138 silly resolved qx: '*', | |
| 1138 silly resolved nave: '*', | |
| 1138 silly resolved should: '*', | |
| 1138 silly resolved nock: '*', | |
| 1138 silly resolved split: '*' }, | |
| 1138 silly resolved repository: | |
| 1138 silly resolved { type: 'git', | |
| 1138 silly resolved url: 'https://github.com/newrelic/node-newrelic.git' }, | |
| 1138 silly resolved readme: '[](https://nodei.co/npm/newrelic/)\n\n# New Relic for Node.js\n\nThis package instruments your application for performance monitoring\nwith [New Relic](http://newrelic.com).\n\nThis is a new product. You should try it in your staging or development\nenvironment first to verify it works for you.\n\nMake sure you have a [New Relic account](http://newrelic.com) before\nstarting. To see all the features, such as slow transaction traces, you will\nneed a New Relic Pro subscription (or equivalent).\n\n## Table of contents\n\n* [Getting started](#getting-started)\n* [Transactions and request naming](#transactions-and-request-naming)\n* [Configuration](#configuring-the-agent)\n* [Contributions](#contributions)\n* [Known issues](#known-issues)\n\n## Getting started\n\n1. [Install node](http://nodejs.org/#download). For now, at least 0.8 is\n required. Some features (e.g. error tracing) depend in whole or in\n part on features in 0.10 and above. Development work on the agent is\n being done against the latest released non-development version of Node.\n2. Install this module via `npm install newrelic` for the application you\n want to monitor.\n3. Copy `newrelic.js` from `node_modules/newrelic` into the root directory of\n your application.\n4. Edit `newrelic.js` and replace `license_key`\'s value with the license key\n for your account.\n5. Add `require(\'newrelic\');` as the first line of the app\'s main module.\n\nIf you wish to keep the configuration for the agent separate from your\napplication, the agent will look for newrelic.js in the directory referenced\nby the environment variable `NEW_RELIC_HOME` if it\'s set.\n\nWhen you start your app, the agent should start up with it and start reporting\ndata that will appear within [the New Relic UI](https://rpm.newrelic.com/)\nafter a few minutes. Because the agent minimizes the amount of bandwidth it\nconsumes, it only reports data once a minute, so if you add the agent to tests\nthat take less than a minute to run, the agent won\'t have time to report data\nto New Relic. The agent will write its log to a file named `newrelic_agent.log`\nin the application directory. If the agent doesn\'t send data or crashes your\napp, the log can help New Relic determine what went wrong, so be sure to send\nit along with any bug reports or support requests.\n\n## Transactions and request naming\n\nIn order to get the most value out of the New Relic agent for Node.js, you may\nhave to do a little work to help us figure out how your application is\nstructured. New Relic works on the assumption that it can group requests to\nyour application into transactions, which are defined by giving one or more\nrequest paths a name. These names are used to visualize where your app is\nspending its time (in transaction breakdowns), to identify slow requests, and\nto group scoped metrics, to tell you which portions of your application are,\nfor example, suffering from slow database performance.\n\nIf you\'re using Express or Restify with their default routers and are satisfied\nwith your application being represented by those frameworks\' route names, you\nmay not need to do anything. However, if you want more specific names than are\nprovided by your framework, you may want to use one or more of the tools\ndescribed further on.\n\nThe simplest way to tell that you need to read further in this document is if\nyou feel too many of your requests are being lumped together under the\ncatch-all name `/*`. All requests that aren\'t otherwise named by the agent will\nend up grouped under `/*`.\n\n### Background\n\nIf you\'ve been working with Node for a while, you\'re probably accustomed to\nthinking of your application\'s requests in terms of raw URLs. One of the great\nthings about Node is that it makes it so easy and simple to work with HTTP, and\nthat extends to things like parsing URLs and creating your own strategies for\nnaming and routing requests for services like RESTful APIs. This presents a\nchallenge for us, because we need to keep the number of names we\'re tracking\nsmall enough that we can keep the New Relic user experience snappy, and also so\nwe don\'t overwhelm you with so much data that it\'s difficult for you to see the\nproblem spots in your applications. URLs are not a good fit for how New Relic\nsees performance.\n\nAnother of Node\'s great strengths is that it provides a lot of tools that build\non top of the `http` module to simplify writing web services. Unfortunately,\nthat variety greatly complicates things for us, with our limited resources, and\nso we offer a few different tools to help you give us the information we need\nto provide you useful metrics about your application:\n\n* we can read the route names from the Express and Restify routers, if you\'re\n using them (and as said above, for many of you, this may be all you need)\n* we offer an API for naming the current request, either with simple names or,\n if you prefer, grouped into controllers with actions\n* and we support rules stored in your agent\'s configuration that can mark\n requests to be renamed or ignored based on regular expressions matched\n against the request\'s raw URLs (also available as API calls)\n\nLet\'s go through those tools one at a time.\n\n### Router introspection\n\nExpress is the most popular web framework in use within the Node community, and\na number of important services are also using Restify. Both frameworks map\nroutes to handlers, and both use a similar pattern to do so: they match one or\nmore HTTP methods (e.g. `GET` or the ever-popular `OPTIONS` – let\'s hear it\nfor CORS) along with a potentially parameterized path (e.g. `/user/:id`) or a\nregular expression (e.g. `/^/user/([-0-9a-f]+)$/`). The New Relic agent will\ncapture both those pieces of information in the request name. If you have\nsupport for slow transaction traces and have enabled `capture_params`, the\ntransaction trace will also have the request\'s parameters and their values\nattached to it.\n\nThe only important thing to know about New Relic\'s support for Express and\nRestify is that if you\'re dissatisfied with the names it comes up with, you can\nuse the API calls described below to come up with more descriptive names. Also,\nif you use a different web framework or router and would like to see support\nfor it added, please let us know.\n\n### The request naming API\n\nThe API is what\'s handed back from `require(\'newrelic\')`, so\n\n```javascript\nvar newrelic = require(\'newrelic\');\n```\n\nis all you need. Please note that you still need to ensure that loading the New\nRelic module is the first thing your application does, as it needs to bootstrap\nitself before the rest of your application loads, but you can safely require\nthe module from multiple modules in your application – it will only initialize\nitself once.\n\n#### newrelic.setTransactionName(name)\n\nName the current request. You can call this function anywhere within the\ncontext of an HTTP request handler, at any time after handling of the request\nhas started, but before the request has finished. A good rule of thumb is that\nif the request and response objects are in scope, you can set the name.\n\nExplicitly calling `newrelic.setTransactionName()` will override any names set\nby Express or Restify routes. Calls to `newrelic.setTransactionName()` and\n`newrelic.setControllerName()` will overwrite each other. The last one to run\nbefore the request ends wins.\n\n**VERY IMPORTANT NOTE:** Do not include highly variable information like GUIDs,\nnumerical IDs, or timestamps in the request names you create. If your request\nis slow enough to generate a transaction trace, that trace will contain the\noriginal URL. If you enable parameter capture, the parameters will also be\nattached to the trace. The request names are used to group requests for New\nRelic\'s many charts and tables, and those visualizations\' value drops as the\nnumber of different request names increases. If you have 50 or so different\ntransaction names, you\'re probably pushing it. If you have more than a couple\nhundred, you need to rethink your naming strategy.\n\n#### newrelic.setControllerName(name, [action])\n\nName the current request using a controller-style pattern, optionally including\nthe current controller action. If the action is omitted, New Relic will include\nthe HTTP method (e.g. `GET`, `POST`) as the action. The rules for when you can\ncall `newrelic.setControllerName()` are the same as they are for\n`newrelic.setTransactionName()`.\n\nExplicitly calling `newrelic.setControllerName()` will override any names set\nby Express or Restify routes. Calls to `newrelic.setTransactionName()` and\n`newrelic.setControllerName()` will overwrite each other. The last one to run\nbefore the request ends wins.\n\nSee the above note on `newrelic.setTransactionName()`, which also applies to\nthis function.\n\n#### newrelic.setIgnoreTransaction(ignored)\n\nTell the module explicitly whether or not a given request should be ignored.\nAllows you to explicitly filter out long-polling routes or requests you know\nare going to be time-consuming in an uninteresting way, and also allows you\nto gather metrics for requests that would otherwise be ignored. Note that\nto prevent a transaction from being ignored with this function, you **must**\npass `false` as the parameter – in this case `null` or `undefined` will be\nignored.\n\n### Rules for naming and ignoring requests\n\nIf you don\'t feel like putting calls to the New Relic module directly into your\napplication code, you can use pattern-based rules to name requests. There are\ntwo sets of rules: one for renaming requests, and one to mark requests to be\nignored by New Relic\'s instrumentation.\n\nIf you\'re using socket.io, you will have a use case for ignoring rules right\nout of the box. You\'ll probably want to add a rule like the following:\n\n```javascript\n// newrelic.js\nexports.config = {\n // other configuration\n rules : {\n ignore : [\n \'^/socket.io/.*/xhr-polling\'\n ]\n }\n};\n```\n\nThis will keep socket.io long-polling from dominating your response-time\nmetrics and blowing out the apdex metrics for your application.\n\n#### rules.name\n\nA list of rules of the format `{pattern : "pattern", name : "name"}` for\nmatching incoming request URLs to `pattern` and naming the matching New Relic\ntransactions `name`. The pattern can be set as either a string or a JavaScript\nregular expression literal. Both pattern and name are required. Additional\nattributes are ignored.\n\nCan also be set via the environment variable `NEW_RELIC_NAMING_RULES`, with\nmultiple rules passed in as a list of comma-delimited JSON object literals:\n`NEW_RELIC_NAMING_RULES=\'{"pattern":"^t","name":"u"},{"pattern":"^u","name":"t"}\'`\n\n#### rules.ignore\n\nA list of patterns for matching incoming request URLs to be ignored. Patterns\nmay be strings or regular expressions.\n\nCan also be set via the environment variable `NEW_RELIC_IGNORING_RULES`, with\nmultiple rules passed in as a list of comma-delimited patterns:\n`NEW_RELIC_IGNORING_RULES=\'^/socket\\.io/\\*/xhr-polling,ignore_me\'` Note that\ncurrently there is no way to escape commas in patterns.\n\n### API for adding naming and ignoring rules\n\n#### newrelic.addNamingRule(pattern, name)\n\nProgrammatic version of `rules.name` above. Naming rules can not be removed\nuntil the Node process is restarted. They can also be added via the agent\'s\nconfiguration. Both parameters are mandatory.\n\n#### newrelic.addIgnoringRule(pattern)\n\nProgrammatic version of `rules.ignore` above. Ignoring rules can not be removed\nuntil the Node process is restarted. They can also be added via the agent\'s\nconfiguration. The pattern is mandatory.\n\n### The fine print\n\nThis is the Node-specific version of New Relic\'s transaction naming API\ndocumentation. The naming API exists to help us deal with the very real problem\nthat trying to handle too many metrics will make New Relic slow for everybody,\nnot just the account with too many metrics. If, in conversation with New Relic\nSupport, you see discussion of "metric explosion", this is what they\'re talking\nabout.\n\nWhile we have a variety of strategies for dealing with these issues, the most\nsevere is simply to blacklist offending applications. The main reason for you\nto be careful in using our request-naming tools is to prevent that from\nhappening to your applications. We will do everything in our power to ensure\nthat you have a good experience with New Relic even if your application is\ncausing us trouble, but sometimes this will require manual intervention on the\npart of our team, and this can take a little while.\n\n## Configuring the agent\n\nThe agent can be tailored to your app\'s requirements, both from the server and\nvia the newrelic.js configuration file you created. For complete details on\nwhat can be configured, refer to\n[`lib/config.default.js`](https://github.com/newrelic/node-newrelic/blob/master/lib/config.default.js),\nwhich documents the available variables and their default values.\n\nIn addition, for those of you running in PaaS environments like Heroku or\nMicrosoft Azure, all of the configuration variables in `newrelic.js` have\ncounterparts that can be set via environment variables. You can mix and match\nvariables in the configuration file and environment variables freely;\nenvironment variables take precedence.\n\nHere\'s the list of the most important variables and their values:\n\n* `NEW_RELIC_LICENSE_KEY`: Your New Relic license key. This is a required\n setting with no default value.\n* `NEW_RELIC_APP_NAME`: The name of this application, for reporting to\n New Relic\'s servers. This value can be also be a comma-delimited list of\n names. This is a required setting with no default value. (NOTE: as a\n convenience to Azure users, the agent will use `APP_POOL_ID` as the\n application name if it\'s set, so you can use the name you chose for\n your Azure Web Server without setting it twice.)\n* `NEW_RELIC_NO_CONFIG_FILE`: Inhibit loading of the configuration file\n altogether. Use with care. This presumes that all important configuration\n will be available via environment variables, and some log messages\n assume that a config file exists.\n* `NEW_RELIC_HOME`: path to the directory in which you\'ve placed newrelic.js.\n* `NEW_RELIC_LOG`: Complete path to the New Relic agent log, including\n the filename. The agent will shut down the process if it can\'t create\n this file, and it creates the log file with the same umask of the\n process. Setting this to `stdout` will write all logging to stdout, and\n `stderr` will write all logging to stderr.\n* `NEW_RELIC_LOG_LEVEL`: Logging priority for the New Relic agent. Can be one of\n `error`, `warn`, `info`, `debug`, or `trace`. `debug` and `trace` are\n pretty chatty; unless you\'re helping New Relic figure out irregularities\n with the agent, you\'re probably best off using `info` or higher.\n\nFor completeness, here\'s the rest of the list:\n\n* `NEW_RELIC_ENABLED`: Whether or not the agent should run. Good for\n temporarily disabling the agent while debugging other issues with your\n code. It doesn\'t prevent the agent from bootstrapping its instrumentation\n or setting up all its pieces, it just prevents it from starting up or\n connecting to New Relic\'s servers. Defaults to true.\n* `NEW_RELIC_ERROR_COLLECTOR_ENABLED`: Whether or not to trace errors within\n your application. Values are `true` or `false`. Defaults to true.\n* `NEW_RELIC_ERROR_COLLECTOR_IGNORE_ERROR_CODES`: Comma-delimited list of HTTP\n status codes to ignore. Maybe you don\'t care if payment is required? Ignoring\n a status code means that the transaction is not renamed to match the code,\n and the request is not treated as an error by the error collector. Defaults\n to ignoring 404.\n* `NEW_RELIC_IGNORE_SERVER_CONFIGURATION`: Whether to ignore server-side\n configuration for this application. Defaults to false.\n* `NEW_RELIC_TRACER_ENABLED`: Whether to collect and submit slow\n transaction traces to New Relic. Values are `true` or `false`. Defaults to\n true.\n* `NEW_RELIC_TRACER_THRESHOLD`: Duration (in seconds) at which a transaction\n trace will count as slow and be sent to New Relic. Can also be set to\n `apdex_f`, at which point it will set the trace threshold to 4 times the\n current ApdexT.\n* `NEW_RELIC_APDEX`: Set the initial Apdex tolerating / threshold value in\n seconds. This is more often than not set from the server. Defaults to 0.100.\n* `NEW_RELIC_CAPTURE_PARAMS`: Whether to capture request parameters on\n slow transaction or error traces. Defaults to false.\n* `NEW_RELIC_IGNORED_PARAMS`: Some parameters may contain sensitive\n values you don\'t want being sent out of your application. This setting\n is a comma-delimited list of names of parameters to ignore. Defaults to\n empty.\n* `NEW_RELIC_NAMING_RULES`: A list of comma-delimited JSON object literals:\n `NEW_RELIC_NAMING_RULES=\'{"pattern":"^t","name":"u"},{"pattern":"^u","name":"t"}\'`\n See the section on request and transaction naming for details. Defaults to\n empty.\n* `NEW_RELIC_IGNORING_RULES`: A list of comma-delimited patterns:\n `NEW_RELIC_IGNORING_RULES=\'^/socket\\.io/\\*/xhr-polling,ignore_me\'` Note that\n currently there is no way to escape commas in patterns. Defaults to empty.\n* `NEW_RELIC_TRACER_TOP_N`: Increase this number to increase the diversity\n of slow transaction traces sent to New Relic. Defaults to 1. See the\n description in `lib/config.default.js`, as this feature is exceedingly hard\n to summarize.\n* `NEW_RELIC_HOST`: Hostname for the New Relic collector proxy. You\n shouldn\'t need to change this.\n* `NEW_RELIC_PORT`: Port number on which the New Relic collector proxy\n will be listening. You shouldn\'t need to change this either.\n* `NEW_RELIC_DEBUG_METRICS`: Whether to collect internal supportability\n metrics for the agent. Don\'t mess with this unless New Relic asks you to.\n* `NEW_RELIC_DEBUG_TRACER`: Whether to dump traces of the transaction tracer\'s\n internal operation. You\'re welcome to enable it, but it\'s unlikely to be\n edifying unless you\'re a New Relic Node.js engineer.\n\n## Contributions\n\nWe owe a debt to all of the beta testers who have provided us with feedback,\nand in some cases significant pieces of code. (If you wish to contribute,\nplease see CONTRIBUTING.md in this package.) In particular, we\'re indebted\nto these people:\n\n* Hernan Silberman, for his work on the memcached instrumentation\n* Jeff Howell <[email protected]>, for coming up with a much simpler way\n to instrument node-mongodb-native, as well as pointing out a problem with the\n Connect instrumentation.\n\n## Recent changes\n\nInformation about changes to the agent are in NEWS.md.\n\n### Known issues:\n\n* The agent is only supported on Node.js 0.8 and newer. Some features may\n behave differently between 0.8 and 0.10. The agent has been tested but not\n extensively so on Node 0.11. The agent is optimized for newer versions of\n Node.\n* There are irregularities around transaction trace capture and display.\n If you notice missing or incorrect information from transaction traces,\n let us know.\n* There are <del>over 20,000</del> <del>30,000</del> <del>40,000</del> <ins>*A\n LOT* of</ins> modules on npm. We can only instrument a tiny number of them.\n Even for the modules we support, there are a very large number of ways to use\n them. If you see data you don\'t expect on New Relic and have the time to\n produce a reduced version of the code that is producing the strange data, it\n will be used to improve the agent and you will have the Node team\'s gratitude.\n* The CPU and memory overhead incurred by the Node agent is relatively minor\n (~1-10%, depending on how much of the instrumentation your apps end up\n using). GC activity is significantly increased while the agent is active,\n due to the large number of ephemeral objects created by metrics gathering.\n* When using Node\'s included clustering support, each worker process will\n open its own connection to New Relic\'s servers, and will incur its own\n overhead costs.\n\n### New Relic features available for other platforms not yet in Node.js\n\n* Real User Monitoring (RUM)\n* custom instrumentation APIs\n* slow SQL traces and explain plans\n* custom parameters\n* garbage collector instrumentation\n* capacity planning\n* thread profiling\n\n## LICENSE\n\nThe New Relic Node.js agent is free-to-use, proprietary software. Please see\nthe full license (found in LICENSE in this distribution) for details on its\nlicense and the licenses of its dependencies.\n', | |
| 1138 silly resolved readmeFilename: 'README.md', | |
| 1138 silly resolved bugs: { url: 'https://github.com/newrelic/node-newrelic/issues' }, | |
| 1138 silly resolved bundleDependencies: [ 'bunyan', 'continuation-local-storage' ], | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved _from: 'newrelic@~1.0.1' }, | |
| 1138 silly resolved { name: 'commander', | |
| 1138 silly resolved version: '2.0.0', | |
| 1138 silly resolved description: 'the complete solution for node.js command-line programs', | |
| 1138 silly resolved keywords: [ 'command', 'option', 'parser', 'prompt', 'stdin' ], | |
| 1138 silly resolved author: { name: 'TJ Holowaychuk', email: '[email protected]' }, | |
| 1138 silly resolved repository: | |
| 1138 silly resolved { type: 'git', | |
| 1138 silly resolved url: 'https://github.com/visionmedia/commander.js.git' }, | |
| 1138 silly resolved devDependencies: { should: '>= 0.0.1' }, | |
| 1138 silly resolved scripts: { test: 'make test' }, | |
| 1138 silly resolved main: 'index', | |
| 1138 silly resolved engines: { node: '>= 0.6.x' }, | |
| 1138 silly resolved readme: '# Commander.js\n\n The complete solution for [node.js](http://nodejs.org) command-line interfaces, inspired by Ruby\'s [commander](https://github.com/visionmedia/commander).\n\n [](http://travis-ci.org/visionmedia/commander.js)\n\n## Installation\n\n $ npm install commander\n\n## Option parsing\n\n Options with commander are defined with the `.option()` method, also serving as documentation for the options. The example below parses args and options from `process.argv`, leaving remaining args as the `program.args` array which were not consumed by options.\n\n```js\n#!/usr/bin/env node\n\n/**\n * Module dependencies.\n */\n\nvar program = require(\'commander\');\n\nprogram\n .version(\'0.0.1\')\n .option(\'-p, --peppers\', \'Add peppers\')\n .option(\'-P, --pineapple\', \'Add pineapple\')\n .option(\'-b, --bbq\', \'Add bbq sauce\')\n .option(\'-c, --cheese [type]\', \'Add the specified type of cheese [marble]\', \'marble\')\n .parse(process.argv);\n\nconsole.log(\'you ordered a pizza with:\');\nif (program.peppers) console.log(\' - peppers\');\nif (program.pineapple) console.log(\' - pineapple\');\nif (program.bbq) console.log(\' - bbq\');\nconsole.log(\' - %s cheese\', program.cheese);\n```\n\n Short flags may be passed as a single arg, for example `-abc` is equivalent to `-a -b -c`. Multi-word options such as "--template-engine" are camel-cased, becoming `program.templateEngine` etc.\n\n## Automated --help\n\n The help information is auto-generated based on the information commander already knows about your program, so the following `--help` info is for free:\n\n``` \n $ ./examples/pizza --help\n\n Usage: pizza [options]\n\n Options:\n\n -V, --version output the version number\n -p, --peppers Add peppers\n -P, --pineapple Add pineapple\n -b, --bbq Add bbq sauce\n -c, --cheese <type> Add the specified type of cheese [marble]\n -h, --help output usage information\n\n```\n\n## Coercion\n\n```js\nfunction range(val) {\n return val.split(\'..\').map(Number);\n}\n\nfunction list(val) {\n return val.split(\',\');\n}\n\nprogram\n .version(\'0.0.1\')\n .usage(\'[options] <file ...>\')\n .option(\'-i, --integer <n>\', \'An integer argument\', parseInt)\n .option(\'-f, --float <n>\', \'A float argument\', parseFloat)\n .option(\'-r, --range <a>..<b>\', \'A range\', range)\n .option(\'-l, --list <items>\', \'A list\', list)\n .option(\'-o, --optional [value]\', \'An optional value\')\n .parse(process.argv);\n\nconsole.log(\' int: %j\', program.integer);\nconsole.log(\' float: %j\', program.float);\nconsole.log(\' optional: %j\', program.optional);\nprogram.range = program.range || [];\nconsole.log(\' range: %j..%j\', program.range[0], program.range[1]);\nconsole.log(\' list: %j\', program.list);\nconsole.log(\' args: %j\', program.args);\n```\n\n## Custom help\n\n You can display arbitrary `-h, --help` information\n by listening for "--help". Commander will automatically\n exit once you are done so that the remainder of your program\n does not execute causing undesired behaviours, for example\n in the following executable "stuff" will not output when\n `--help` is used.\n\n```js\n#!/usr/bin/env node\n\n/**\n * Module dependencies.\n */\n\nvar program = require(\'../\');\n\nfunction list(val) {\n return val.split(\',\').map(Number);\n}\n\nprogram\n .version(\'0.0.1\')\n .option(\'-f, --foo\', \'enable some foo\')\n .option(\'-b, --bar\', \'enable some bar\')\n .option(\'-B, --baz\', \'enable some baz\');\n\n// must be before .parse() since\n// node\'s emit() is immediate\n\nprogram.on(\'--help\', function(){\n console.log(\' Examples:\');\n console.log(\'\');\n console.log(\' $ custom-help --help\');\n console.log(\' $ custom-help -h\');\n console.log(\'\');\n});\n\nprogram.parse(process.argv);\n\nconsole.log(\'stuff\');\n```\n\nyielding the following help output:\n\n```\n\nUsage: custom-help [options]\n\nOptions:\n\n -h, --help output usage information\n -V, --version output the version number\n -f, --foo enable some foo\n -b, --bar enable some bar\n -B, --baz enable some baz\n\nExamples:\n\n $ custom-help --help\n $ custom-help -h\n\n```\n\n## .outputHelp()\n\n Output help information without exiting.\n\n## .help()\n\n Output help information and exit immediately.\n\n## Links\n\n - [API documentation](http://visionmedia.github.com/commander.js/)\n - [ascii tables](https://github.com/LearnBoost/cli-table)\n - [progress bars](https://github.com/visionmedia/node-progress)\n - [more progress bars](https://github.com/substack/node-multimeter)\n - [examples](https://github.com/visionmedia/commander.js/tree/master/examples)\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2011 TJ Holowaychuk <[email protected]>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n', | |
| 1138 silly resolved readmeFilename: 'Readme.md', | |
| 1138 silly resolved bugs: { url: 'https://github.com/visionmedia/commander.js/issues' }, | |
| 1138 silly resolved homepage: 'https://github.com/visionmedia/commander.js', | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved _from: 'commander@~2.0.0' }, | |
| 1138 silly resolved { name: 'redis', | |
| 1138 silly resolved version: '0.9.2', | |
| 1138 silly resolved description: 'Redis client library', | |
| 1138 silly resolved keywords: [ 'redis', 'database' ], | |
| 1138 silly resolved author: { name: 'Matt Ranney', email: '[email protected]' }, | |
| 1138 silly resolved main: './index.js', | |
| 1138 silly resolved scripts: { test: 'node ./test.js' }, | |
| 1138 silly resolved devDependencies: { metrics: '>=0.1.5', colors: '~0.6.0-1', underscore: '~1.4.4' }, | |
| 1138 silly resolved repository: { type: 'git', url: 'git://github.com/mranney/node_redis.git' }, | |
| 1138 silly resolved readme: 'redis - a node.js redis client\n===========================\n\nThis is a complete Redis client for node.js. It supports all Redis commands, including many recently added commands like EVAL from\nexperimental Redis server branches.\n\n\nInstall with:\n\n npm install redis\n\nPieter Noordhuis has provided a binding to the official `hiredis` C library, which is non-blocking and fast. To use `hiredis`, do:\n\n npm install hiredis redis\n\nIf `hiredis` is installed, `node_redis` will use it by default. Otherwise, a pure JavaScript parser will be used.\n\nIf you use `hiredis`, be sure to rebuild it whenever you upgrade your version of node. There are mysterious failures that can\nhappen between node and native code modules after a node upgrade.\n\n\n## Usage\n\nSimple example, included as `examples/simple.js`:\n\n```js\n var redis = require("redis"),\n client = redis.createClient();\n\n // if you\'d like to select database 3, instead of 0 (default), call\n // client.select(3, function() { /* ... */ });\n\n client.on("error", function (err) {\n console.log("Error " + err);\n });\n\n client.set("string key", "string val", redis.print);\n client.hset("hash key", "hashtest 1", "some value", redis.print);\n client.hset(["hash key", "hashtest 2", "some other value"], redis.print);\n client.hkeys("hash key", function (err, replies) {\n console.log(replies.length + " replies:");\n replies.forEach(function (reply, i) {\n console.log(" " + i + ": " + reply);\n });\n client.quit();\n });\n```\n\nThis will display:\n\n mjr:~/work/node_redis (master)$ node example.js\n Reply: OK\n Reply: 0\n Reply: 0\n 2 replies:\n 0: hashtest 1\n 1: hashtest 2\n mjr:~/work/node_redis (master)$\n\n\n## Performance\n\nHere are typical results of `multi_bench.js` which is similar to `redis-benchmark` from the Redis distribution.\nIt uses 50 concurrent connections with no pipelining.\n\nJavaScript parser:\n\n PING: 20000 ops 42283.30 ops/sec 0/5/1.182\n SET: 20000 ops 32948.93 ops/sec 1/7/1.515\n GET: 20000 ops 28694.40 ops/sec 0/9/1.740\n INCR: 20000 ops 39370.08 ops/sec 0/8/1.269\n LPUSH: 20000 ops 36429.87 ops/sec 0/8/1.370\n LRANGE (10 elements): 20000 ops 9891.20 ops/sec 1/9/5.048\n LRANGE (100 elements): 20000 ops 1384.56 ops/sec 10/91/36.072\n\nhiredis parser:\n\n PING: 20000 ops 46189.38 ops/sec 1/4/1.082\n SET: 20000 ops 41237.11 ops/sec 0/6/1.210\n GET: 20000 ops 39682.54 ops/sec 1/7/1.257\n INCR: 20000 ops 40080.16 ops/sec 0/8/1.242\n LPUSH: 20000 ops 41152.26 ops/sec 0/3/1.212\n LRANGE (10 elements): 20000 ops 36563.07 ops/sec 1/8/1.363\n LRANGE (100 elements): 20000 ops 21834.06 ops/sec 0/9/2.287\n\nThe performance of `node_redis` improves dramatically with pipelining, which happens automatically in most normal programs.\n\n\n### Sending Commands\n\nEach Redis command is exposed as a function on the `client` object.\nAll functions take either an `args` Array plus optional `callback` Function or\na variable number of individual arguments followed by an optional callback.\nHere is an example of passing an array of arguments and a callback:\n\n client.mset(["test keys 1", "test val 1", "test keys 2", "test val 2"], function (err, res) {});\n\nHere is that same call in the second style:\n\n client.mset("test keys 1", "test val 1", "test keys 2", "test val 2", function (err, res) {});\n\nNote that in either form the `callback` is optional:\n\n client.set("some key", "some val");\n client.set(["some other key", "some val"]);\n\nIf the key is missing, reply will be null (probably):\n\n client.get("missingkey", function(err, reply) {\n // reply is null when the key is missing\n console.log(reply);\n });\n\nFor a list of Redis commands, see [Redis Command Reference](http://redis.io/commands)\n\nThe commands can be specified in uppercase or lowercase for convenience. `client.get()` is the same as `client.GET()`.\n\nMinimal parsing is done on the replies. Commands that return a single line reply return JavaScript Strings,\ninteger replies return JavaScript Numbers, "bulk" replies return node Buffers, and "multi bulk" replies return a\nJavaScript Array of node Buffers. `HGETALL` returns an Object with Buffers keyed by the hash keys.\n\n# API\n\n## Connection Events\n\n`client` will emit some events about the state of the connection to the Redis server.\n\n### "ready"\n\n`client` will emit `ready` a connection is established to the Redis server and the server reports\nthat it is ready to receive commands. Commands issued before the `ready` event are queued,\nthen replayed just before this event is emitted.\n\n### "connect"\n\n`client` will emit `connect` at the same time as it emits `ready` unless `client.options.no_ready_check`\nis set. If this options is set, `connect` will be emitted when the stream is connected, and then\nyou are free to try to send commands.\n\n### "error"\n\n`client` will emit `error` when encountering an error connecting to the Redis server.\n\nNote that "error" is a special event type in node. If there are no listeners for an\n"error" event, node will exit. This is usually what you want, but it can lead to some\ncryptic error messages like this:\n\n mjr:~/work/node_redis (master)$ node example.js\n\n node.js:50\n throw e;\n ^\n Error: ECONNREFUSED, Connection refused\n at IOWatcher.callback (net:870:22)\n at node.js:607:9\n\nNot very useful in diagnosing the problem, but if your program isn\'t ready to handle this,\nit is probably the right thing to just exit.\n\n`client` will also emit `error` if an exception is thrown inside of `node_redis` for whatever reason.\nIt would be nice to distinguish these two cases.\n\n### "end"\n\n`client` will emit `end` when an established Redis server connection has closed.\n\n### "drain"\n\n`client` will emit `drain` when the TCP connection to the Redis server has been buffering, but is now\nwritable. This event can be used to stream commands in to Redis and adapt to backpressure. Right now,\nyou need to check `client.command_queue.length` to decide when to reduce your send rate. Then you can\nresume sending when you get `drain`.\n\n### "idle"\n\n`client` will emit `idle` when there are no outstanding commands that are awaiting a response.\n\n## redis.createClient(port, host, options)\n\nCreate a new client connection. `port` defaults to `6379` and `host` defaults\nto `127.0.0.1`. If you have `redis-server` running on the same computer as node, then the defaults for\nport and host are probably fine. `options` in an object with the following possible properties:\n\n* `parser`: which Redis protocol reply parser to use. Defaults to `hiredis` if that module is installed.\nThis may also be set to `javascript`.\n* `return_buffers`: defaults to `false`. If set to `true`, then all replies will be sent to callbacks as node Buffer\nobjects instead of JavaScript Strings.\n* `detect_buffers`: default to `false`. If set to `true`, then replies will be sent to callbacks as node Buffer objects\nif any of the input arguments to the original command were Buffer objects.\nThis option lets you switch between Buffers and Strings on a per-command basis, whereas `return_buffers` applies to\nevery command on a client.\n* `socket_nodelay`: defaults to `true`. Whether to call setNoDelay() on the TCP stream, which disables the\nNagle algorithm on the underlying socket. Setting this option to `false` can result in additional throughput at the\ncost of more latency. Most applications will want this set to `true`.\n* `no_ready_check`: defaults to `false`. When a connection is established to the Redis server, the server might still\nbe loading the database from disk. While loading, the server not respond to any commands. To work around this,\n`node_redis` has a "ready check" which sends the `INFO` command to the server. The response from the `INFO` command\nindicates whether the server is ready for more commands. When ready, `node_redis` emits a `ready` event.\nSetting `no_ready_check` to `true` will inhibit this check.\n* `enable_offline_queue`: defaults to `true`. By default, if there is no active\nconnection to the redis server, commands are added to a queue and are executed\nonce the connection has been established. Setting `enable_offline_queue` to\n`false` will disable this feature and the callback will be execute immediately\nwith an error, or an error will be thrown if no callback is specified.\n* `retry_max_delay`: defaults to `null`. By default every time the client tries to connect and fails time before\nreconnection (delay) almost doubles. This delay normally grows infinitely, but setting `retry_max_delay` limits delay\nto maximum value, provided in milliseconds.\n* `connect_timeout` defaults to `false`. By default client will try reconnecting until connected. Setting `connect_timeout`\nlimits total time for client to reconnect. Value is provided in milliseconds and is counted once the disconnect occured.\n* `max_attempts` defaults to `null`. By default client will try reconnecting until connected. Setting `max_attempts`\nlimits total amount of reconnects.\n* `auth_pass` defaults to `null`. By default client will try connecting without auth. If set, client will run redis auth command on connect.\n\n```js\n var redis = require("redis"),\n client = redis.createClient(null, null, {detect_buffers: true});\n\n client.set("foo_rand000000000000", "OK");\n\n // This will return a JavaScript String\n client.get("foo_rand000000000000", function (err, reply) {\n console.log(reply.toString()); // Will print `OK`\n });\n\n // This will return a Buffer since original key is specified as a Buffer\n client.get(new Buffer("foo_rand000000000000"), function (err, reply) {\n console.log(reply.toString()); // Will print `<Buffer 4f 4b>`\n });\n client.end();\n```\n\n`createClient()` returns a `RedisClient` object that is named `client` in all of the examples here.\n\n### Unix Domain Socket\n\nYou can also create a connection to Redis server via the unix domain socket if the server\nhas it enabled:\n\n```js\nvar redis = require("redis");\nvar client = redis.createClient("/tmp/redis.sock");\n```\n\nSample `redis.conf` configuration to enable unix domain socket listening:\n\n```conf\nunixsocket /tmp/redis.sock\nunixsocketperm 755\n```\n\nSee [issue #204](https://github.com/mranney/node_redis/issues/204) for more information.\n\n## client.auth(password, callback)\n\nWhen connecting to Redis servers that require authentication, the `AUTH` command must be sent as the\nfirst command after connecting. This can be tricky to coordinate with reconnections, the ready check,\netc. To make this easier, `client.auth()` stashes `password` and will send it after each connection,\nincluding reconnections. `callback` is invoked only once, after the response to the very first\n`AUTH` command sent.\nNOTE: Your call to `client.auth()` should not be inside the ready handler. If\nyou are doing this wrong, `client` will emit an error that looks\nsomething like this `Error: Ready check failed: ERR operation not permitted`.\n\n## client.end()\n\nForcibly close the connection to the Redis server. Note that this does not wait until all replies have been parsed.\nIf you want to exit cleanly, call `client.quit()` to send the `QUIT` command after you have handled all replies.\n\nThis example closes the connection to the Redis server before the replies have been read. You probably don\'t\nwant to do this:\n\n```js\n var redis = require("redis"),\n client = redis.createClient();\n\n client.set("foo_rand000000000000", "some fantastic value");\n client.get("foo_rand000000000000", function (err, reply) {\n console.log(reply.toString());\n });\n client.end();\n```\n\n`client.end()` is useful for timeout cases where something is stuck or taking too long and you want\nto start over.\n\n## client.unref()\n\nCall `unref()` on the underlying socket connection to the Redis server, allowing the program to exit once no more commands are pending.\n\nThis is an **experimental** feature, and only supports a subset of the Redis protocol. Any commands where client state is saved on the Redis server, e.g. `*SUBSCRIBE` or the blocking `BL*` commands will *NOT* work with `.unref()`.\n\n```js\nvar redis = require("redis")\nvar client = redis.createClient()\n\n/*\n Calling unref() will allow this program to exit immediately after the get command finishes. Otherwise the client would hang as long as the client-server connection is alive.\n*/\nclient.unref()\nclient.get("foo", function (err, value){\n if (err) throw(err)\n console.log(value)\n})\n```\n\n## Friendlier hash commands\n\nMost Redis commands take a single String or an Array of Strings as arguments, and replies are sent back as a single String or an Array of Strings.\nWhen dealing with hash values, there are a couple of useful exceptions to this.\n\n### client.hgetall(hash)\n\nThe reply from an HGETALL command will be converted into a JavaScript Object by `node_redis`. That way you can interact\nwith the responses using JavaScript syntax.\n\nExample:\n\n client.hmset("hosts", "mjr", "1", "another", "23", "home", "1234");\n client.hgetall("hosts", function (err, obj) {\n console.dir(obj);\n });\n\nOutput:\n\n { mjr: \'1\', another: \'23\', home: \'1234\' }\n\n### client.hmset(hash, obj, [callback])\n\nMultiple values in a hash can be set by supplying an object:\n\n client.HMSET(key2, {\n "0123456789": "abcdefghij", // NOTE: key and value will be coerced to strings\n "some manner of key": "a type of value"\n });\n\nThe properties and values of this Object will be set as keys and values in the Redis hash.\n\n### client.hmset(hash, key1, val1, ... keyn, valn, [callback])\n\nMultiple values may also be set by supplying a list:\n\n client.HMSET(key1, "0123456789", "abcdefghij", "some manner of key", "a type of value");\n\n\n## Publish / Subscribe\n\nHere is a simple example of the API for publish / subscribe. This program opens two\nclient connections, subscribes to a channel on one of them, and publishes to that\nchannel on the other:\n\n```js\n var redis = require("redis"),\n client1 = redis.createClient(), client2 = redis.createClient(),\n msg_count = 0;\n\n client1.on("subscribe", function (channel, count) {\n client2.publish("a nice channel", "I am sending a message.");\n client2.publish("a nice channel", "I am sending a second message.");\n client2.publish("a nice channel", "I am sending my last message.");\n });\n\n client1.on("message", function (channel, message) {\n console.log("client1 channel " + channel + ": " + message);\n msg_count += 1;\n if (msg_count === 3) {\n client1.unsubscribe();\n client1.end();\n client2.end();\n }\n });\n\n client1.incr("did a thing");\n client1.subscribe("a nice channel");\n```\n\nWhen a client issues a `SUBSCRIBE` or `PSUBSCRIBE`, that connection is put into a "subscriber" mode.\nAt that point, only commands that modify the subscription set are valid. When the subscription\nset is empty, the connection is put back into regular mode.\n\nIf you need to send regular commands to Redis while in subscriber mode, just open another connection.\n\n## Subscriber Events\n\nIf a client has subscriptions active, it may emit these events:\n\n### "message" (channel, message)\n\nClient will emit `message` for every message received that matches an active subscription.\nListeners are passed the channel name as `channel` and the message Buffer as `message`.\n\n### "pmessage" (pattern, channel, message)\n\nClient will emit `pmessage` for every message received that matches an active subscription pattern.\nListeners are passed the original pattern used with `PSUBSCRIBE` as `pattern`, the sending channel\nname as `channel`, and the message Buffer as `message`.\n\n### "subscribe" (channel, count)\n\nClient will emit `subscribe` in response to a `SUBSCRIBE` command. Listeners are passed the\nchannel name as `channel` and the new count of subscriptions for this client as `count`.\n\n### "psubscribe" (pattern, count)\n\nClient will emit `psubscribe` in response to a `PSUBSCRIBE` command. Listeners are passed the\noriginal pattern as `pattern`, and the new count of subscriptions for this client as `count`.\n\n### "unsubscribe" (channel, count)\n\nClient will emit `unsubscribe` in response to a `UNSUBSCRIBE` command. Listeners are passed the\nchannel name as `channel` and the new count of subscriptions for this client as `count`. When\n`count` is 0, this client has left subscriber mode and no more subscriber events will be emitted.\n\n### "punsubscribe" (pattern, count)\n\nClient will emit `punsubscribe` in response to a `PUNSUBSCRIBE` command. Listeners are passed the\nchannel name as `channel` and the new count of subscriptions for this client as `count`. When\n`count` is 0, this client has left subscriber mode and no more subscriber events will be emitted.\n\n## client.multi([commands])\n\n`MULTI` commands are queued up until an `EXEC` is issued, and then all commands are run atomically by\nRedis. The interface in `node_redis` is to return an individual `Multi` object by calling `client.multi()`.\n\n```js\n var redis = require("./index"),\n client = redis.createClient(), set_size = 20;\n\n client.sadd("bigset", "a member");\n client.sadd("bigset", "another member");\n\n while (set_size > 0) {\n client.sadd("bigset", "member " + set_size);\n set_size -= 1;\n }\n\n // multi chain with an individual callback\n client.multi()\n .scard("bigset")\n .smembers("bigset")\n .keys("*", function (err, replies) {\n // NOTE: code in this callback is NOT atomic\n // this only happens after the the .exec call finishes.\n client.mget(replies, redis.print);\n })\n .dbsize()\n .exec(function (err, replies) {\n console.log("MULTI got " + replies.length + " replies");\n replies.forEach(function (reply, index) {\n console.log("Reply " + index + ": " + reply.toString());\n });\n });\n```\n\n### Multi.exec( callback )\n\n`client.multi()` is a constructor that returns a `Multi` object. `Multi` objects share all of the\nsame command methods as `client` objects do. Commands are queued up inside the `Multi` object\nuntil `Multi.exec()` is invoked.\n\nThe `callback` of `.exec()` will get invoked with two arguments:\n\n* `err` **type:** `null | Array` err is either null or an array of Error Objects corresponding the the sequence the commands where chained. The last item of the array will always be an `EXECABORT` type of error originating from the `.exec()` itself.\n* `results` **type:** `null | Array` results is an array of responses corresponding the the sequence the commands where chained.\n\nYou can either chain together `MULTI` commands as in the above example, or you can queue individual\ncommands while still sending regular client command as in this example:\n\n```js\n var redis = require("redis"),\n client = redis.createClient(), multi;\n\n // start a separate multi command queue\n multi = client.multi();\n multi.incr("incr thing", redis.print);\n multi.incr("incr other thing", redis.print);\n\n // runs immediately\n client.mset("incr thing", 100, "incr other thing", 1, redis.print);\n\n // drains multi queue and runs atomically\n multi.exec(function (err, replies) {\n console.log(replies); // 101, 2\n });\n\n // you can re-run the same transaction if you like\n multi.exec(function (err, replies) {\n console.log(replies); // 102, 3\n client.quit();\n });\n```\n\nIn addition to adding commands to the `MULTI` queue individually, you can also pass an array\nof commands and arguments to the constructor:\n\n```js\n var redis = require("redis"),\n client = redis.createClient(), multi;\n\n client.multi([\n ["mget", "multifoo", "multibar", redis.print],\n ["incr", "multifoo"],\n ["incr", "multibar"]\n ]).exec(function (err, replies) {\n console.log(replies);\n });\n```\n\n\n## Monitor mode\n\nRedis supports the `MONITOR` command, which lets you see all commands received by the Redis server\nacross all client connections, including from other client libraries and other computers.\n\nAfter you send the `MONITOR` command, no other commands are valid on that connection. `node_redis`\nwill emit a `monitor` event for every new monitor message that comes across. The callback for the\n`monitor` event takes a timestamp from the Redis server and an array of command arguments.\n\nHere is a simple example:\n\n```js\n var client = require("redis").createClient(),\n util = require("util");\n\n client.monitor(function (err, res) {\n console.log("Entering monitoring mode.");\n });\n\n client.on("monitor", function (time, args) {\n console.log(time + ": " + util.inspect(args));\n });\n```\n\n# Extras\n\nSome other things you might like to know about.\n\n## client.server_info\n\nAfter the ready probe completes, the results from the INFO command are saved in the `client.server_info`\nobject.\n\nThe `versions` key contains an array of the elements of the version string for easy comparison.\n\n > client.server_info.redis_version\n \'2.3.0\'\n > client.server_info.versions\n [ 2, 3, 0 ]\n\n## redis.print()\n\nA handy callback function for displaying return values when testing. Example:\n\n```js\n var redis = require("redis"),\n client = redis.createClient();\n\n client.on("connect", function () {\n client.set("foo_rand000000000000", "some fantastic value", redis.print);\n client.get("foo_rand000000000000", redis.print);\n });\n```\n\nThis will print:\n\n Reply: OK\n Reply: some fantastic value\n\nNote that this program will not exit cleanly because the client is still connected.\n\n## redis.debug_mode\n\nBoolean to enable debug mode and protocol tracing.\n\n```js\n var redis = require("redis"),\n client = redis.createClient();\n\n redis.debug_mode = true;\n\n client.on("connect", function () {\n client.set("foo_rand000000000000", "some fantastic value");\n });\n```\n\nThis will display:\n\n mjr:~/work/node_redis (master)$ node ~/example.js\n send command: *3\n $3\n SET\n $20\n foo_rand000000000000\n $20\n some fantastic value\n\n on_data: +OK\n\n`send command` is data sent into Redis and `on_data` is data received from Redis.\n\n## Multi-word commands\n\nTo execute redis multi-word commands like `SCRIPT LOAD` or `CLIENT LIST` pass\nthe second word as first parameter:\n\n client.script(\'load\', \'return 1\');\n client.multi().script(\'load\', \'return 1\').exec(...);\n client.multi([[\'script\', \'load\', \'return 1\']]).exec(...);\n\n## client.send_command(command_name, args, callback)\n\nUsed internally to send commands to Redis. For convenience, nearly all commands that are published on the Redis\nWiki have been added to the `client` object. However, if I missed any, or if new commands are introduced before\nthis library is updated, you can use `send_command()` to send arbitrary commands to Redis.\n\nAll commands are sent as multi-bulk commands. `args` can either be an Array of arguments, or omitted.\n\n## client.connected\n\nBoolean tracking the state of the connection to the Redis server.\n\n## client.command_queue.length\n\nThe number of commands that have been sent to the Redis server but not yet replied to. You can use this to\nenforce some kind of maximum queue depth for commands while connected.\n\nDon\'t mess with `client.command_queue` though unless you really know what you are doing.\n\n## client.offline_queue.length\n\nThe number of commands that have been queued up for a future connection. You can use this to enforce\nsome kind of maximum queue depth for pre-connection commands.\n\n## client.retry_delay\n\nCurrent delay in milliseconds before a connection retry will be attempted. This starts at `250`.\n\n## client.retry_backoff\n\nMultiplier for future retry timeouts. This should be larger than 1 to add more time between retries.\nDefaults to 1.7. The default initial connection retry is 250, so the second retry will be 425, followed by 723.5, etc.\n\n### Commands with Optional and Keyword arguments\n\nThis applies to anything that uses an optional `[WITHSCORES]` or `[LIMIT offset count]` in the [redis.io/commands](http://redis.io/commands) documentation.\n\nExample:\n```js\nvar args = [ \'myzset\', 1, \'one\', 2, \'two\', 3, \'three\', 99, \'ninety-nine\' ];\nclient.zadd(args, function (err, response) {\n if (err) throw err;\n console.log(\'added \'+response+\' items.\');\n\n // -Infinity and +Infinity also work\n var args1 = [ \'myzset\', \'+inf\', \'-inf\' ];\n client.zrevrangebyscore(args1, function (err, response) {\n if (err) throw err;\n console.log(\'example1\', response);\n // write your code here\n });\n\n var max = 3, min = 1, offset = 1, count = 2;\n var args2 = [ \'myzset\', max, min, \'WITHSCORES\', \'LIMIT\', offset, count ];\n client.zrevrangebyscore(args2, function (err, response) {\n if (err) throw err;\n console.log(\'example2\', response);\n // write your code here\n });\n});\n```\n\n## TODO\n\nBetter tests for auth, disconnect/reconnect, and all combinations thereof.\n\nStream large set/get values into and out of Redis. Otherwise the entire value must be in node\'s memory.\n\nPerformance can be better for very large values.\n\nI think there are more performance improvements left in there for smaller values, especially for large lists of small values.\n\n## How to Contribute\n- open a pull request and then wait for feedback (if\n [DTrejo](http://github.com/dtrejo) does not get back to you within 2 days,\n comment again with indignation!)\n\n## Contributors\nSome people have have added features and fixed bugs in `node_redis` other than me.\n\nOrdered by date of first contribution.\n[Auto-generated](http://github.com/dtrejo/node-authors) on Wed Jul 25 2012 19:14:59 GMT-0700 (PDT).\n\n- [Matt Ranney aka `mranney`](https://github.com/mranney)\n- [Tim-Smart aka `tim-smart`](https://github.com/tim-smart)\n- [Tj Holowaychuk aka `visionmedia`](https://github.com/visionmedia)\n- [rick aka `technoweenie`](https://github.com/technoweenie)\n- [Orion Henry aka `orionz`](https://github.com/orionz)\n- [Aivo Paas aka `aivopaas`](https://github.com/aivopaas)\n- [Hank Sims aka `hanksims`](https://github.com/hanksims)\n- [Paul Carey aka `paulcarey`](https://github.com/paulcarey)\n- [Pieter Noordhuis aka `pietern`](https://github.com/pietern)\n- [nithesh aka `nithesh`](https://github.com/nithesh)\n- [Andy Ray aka `andy2ray`](https://github.com/andy2ray)\n- [unknown aka `unknowdna`](https://github.com/unknowdna)\n- [Dave Hoover aka `redsquirrel`](https://github.com/redsquirrel)\n- [Vladimir Dronnikov aka `dvv`](https://github.com/dvv)\n- [Umair Siddique aka `umairsiddique`](https://github.com/umairsiddique)\n- [Louis-Philippe Perron aka `lp`](https://github.com/lp)\n- [Mark Dawson aka `markdaws`](https://github.com/markdaws)\n- [Ian Babrou aka `bobrik`](https://github.com/bobrik)\n- [Felix Geisendörfer aka `felixge`](https://github.com/felixge)\n- [Jean-Hugues Pinson aka `undefined`](https://github.com/undefined)\n- [Maksim Lin aka `maks`](https://github.com/maks)\n- [Owen Smith aka `orls`](https://github.com/orls)\n- [Zachary Scott aka `zzak`](https://github.com/zzak)\n- [TEHEK Firefox aka `TEHEK`](https://github.com/TEHEK)\n- [Isaac Z. Schlueter aka `isaacs`](https://github.com/isaacs)\n- [David Trejo aka `DTrejo`](https://github.com/DTrejo)\n- [Brian Noguchi aka `bnoguchi`](https://github.com/bnoguchi)\n- [Philip Tellis aka `bluesmoon`](https://github.com/bluesmoon)\n- [Marcus Westin aka `marcuswestin2`](https://github.com/marcuswestin2)\n- [Jed Schmidt aka `jed`](https://github.com/jed)\n- [Dave Peticolas aka `jdavisp3`](https://github.com/jdavisp3)\n- [Trae Robrock aka `trobrock`](https://github.com/trobrock)\n- [Shankar Karuppiah aka `shankar0306`](https://github.com/shankar0306)\n- [Ignacio Burgueño aka `ignacio`](https://github.com/ignacio)\n\nThanks.\n\n## LICENSE - "MIT License"\n\nCopyright (c) 2010 Matthew Ranney, http://ranney.com/\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the "Software"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n\n\n', | |
| 1138 silly resolved readmeFilename: 'README.md', | |
| 1138 silly resolved bugs: { url: 'https://github.com/mranney/node_redis/issues' }, | |
| 1138 silly resolved homepage: 'https://github.com/mranney/node_redis', | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved _from: 'redis@~0.9.0' }, | |
| 1138 silly resolved { name: 'sockjs', | |
| 1138 silly resolved author: { name: 'Marek Majkowski' }, | |
| 1138 silly resolved version: '0.3.8', | |
| 1138 silly resolved description: 'SockJS-node is a server counterpart of SockJS-client a JavaScript library that provides a WebSocket-like object in the browser. SockJS gives you a coherent, cross-browser, Javascript API which creates a low latency, full duplex, cross-domain communication channel between the browser and the web server.', | |
| 1138 silly resolved keywords: [ 'websockets', 'websocket' ], | |
| 1138 silly resolved homepage: 'https://github.com/sockjs/sockjs-node', | |
| 1138 silly resolved repository: | |
| 1138 silly resolved { type: 'git', | |
| 1138 silly resolved url: 'https://github.com/sockjs/sockjs-node.git' }, | |
| 1138 silly resolved dependencies: { 'node-uuid': '1.3.3', 'faye-websocket': '0.7.0' }, | |
| 1138 silly resolved devDependencies: { 'coffee-script': '1.2.x' }, | |
| 1138 silly resolved main: 'index', | |
| 1138 silly resolved readme: 'SockJS family:\n\n * [SockJS-client](https://github.com/sockjs/sockjs-client) JavaScript client library\n * [SockJS-node](https://github.com/sockjs/sockjs-node) Node.js server\n * [SockJS-erlang](https://github.com/sockjs/sockjs-erlang) Erlang server\n * [SockJS-tornado](https://github.com/MrJoes/sockjs-tornado) Python/Tornado server\n * [vert.x](https://github.com/purplefox/vert.x) Java/vert.x server\n\nWork in progress:\n\n * [SockJS-ruby](https://github.com/nyarly/sockjs-ruby)\n * [SockJS-netty](https://github.com/cgbystrom/sockjs-netty)\n * [SockJS-gevent](https://github.com/sdiehl/sockjs-gevent) ([and a fork](https://github.com/njoyce/sockjs-gevent))\n * [pyramid-SockJS](https://github.com/fafhrd91/pyramid_sockjs)\n * [wildcloud-websockets](https://github.com/wildcloud/wildcloud-websockets)\n * [SockJS-cyclone](https://github.com/flaviogrossi/sockjs-cyclone)\n * [SockJS-twisted](https://github.com/Fugiman/sockjs-twisted/)\n * [wai-SockJS](https://github.com/Palmik/wai-sockjs)\n * [SockJS-perl](https://github.com/vti/sockjs-perl)\n * [SockJS-go](https://github.com/igm/sockjs-go/)\n\nWhat is SockJS?\n===============\n\nSockJS is a JavaScript library (for browsers) that provides a WebSocket-like\nobject. SockJS gives you a coherent, cross-browser, Javascript API\nwhich creates a low latency, full duplex, cross-domain communication\nchannel between the browser and the web server, with WebSockets or without.\nThis necessitates the use of a server, which this is one version of, for Node.js.\n\n\nSockJS-node server\n==================\n\nSockJS-node is a Node.js server side counterpart of\n[SockJS-client browser library](https://github.com/sockjs/sockjs-client)\nwritten in CoffeeScript.\n\nTo install `sockjs-node` run:\n\n npm install sockjs\n\nFor additional security (true random numbers) you might want to\ninstall `rbytes` package - SockJS will use it if available:\n\n npm install rbytes\n\n\nA simplified echo SockJS server could look more or less like:\n\n```javascript\nvar http = require(\'http\');\nvar sockjs = require(\'sockjs\');\n\nvar echo = sockjs.createServer();\necho.on(\'connection\', function(conn) {\n conn.on(\'data\', function(message) {\n conn.write(message);\n });\n conn.on(\'close\', function() {});\n});\n\nvar server = http.createServer();\necho.installHandlers(server, {prefix:\'/echo\'});\nserver.listen(9999, \'0.0.0.0\');\n```\n\n(Take look at\n[examples](https://github.com/sockjs/sockjs-node/tree/master/examples/echo)\ndirectory for a complete version.)\n\nSubscribe to\n[SockJS mailing list](https://groups.google.com/forum/#!forum/sockjs) for\ndiscussions and support.\n\n\nLive QUnit tests and smoke tests\n--------------------------------\n\n[SockJS-client](https://github.com/sockjs/sockjs-client) comes with\nsome QUnit tests and a few smoke tests that are using SockJS-node. At\nthe moment they are deployed in few places, just click to see if\nSockJS is working in your browser:\n\n * http://sockjs.popcnt.org/ and https://sockjs.popcnt.org/ (hosted in Europe)\n * http://sockjs.cloudfoundry.com/ (CloudFoundry, websockets disabled, loadbalanced)\n * https://sockjs.cloudfoundry.com/ (CloudFoundry SSL, websockets disabled, loadbalanced)\n\n\nSockJS-node API\n---------------\n\nThe API design is based on the common Node API\'s like\n[Streams API](http://nodejs.org/docs/v0.5.8/api/streams.html) or\n[Http.Server API](http://nodejs.org/docs/v0.5.8/api/http.html#http.Server).\n\n### Server class\n\nSockJS module is generating a `Server` class, similar to\n[Node.js http.createServer](http://nodejs.org/docs/v0.5.8/api/http.html#http.createServer)\nmodule.\n\n```javascript\nvar sockjs_server = sockjs.createServer(options);\n```\n\nWhere `options` is a hash which can contain:\n\n<dl>\n<dt>sockjs_url (string, required)</dt>\n<dd>Transports which don\'t support cross-domain communication natively\n (\'eventsource\' to name one) use an iframe trick. A simple page is\n served from the SockJS server (using its foreign domain) and is\n placed in an invisible iframe. Code run from this iframe doesn\'t\n need to worry about cross-domain issues, as it\'s being run from\n domain local to the SockJS server. This iframe also does need to\n load SockJS javascript client library, and this option lets you specify\n its url (if you\'re unsure, point it to\n <a href="http://cdn.sockjs.org/sockjs-0.3.min.js">\n the latest minified SockJS client release</a>, this is the default).\n You must explicitly specify this url on the server side for security\n reasons - we don\'t want the possibility of running any foreign\n javascript within the SockJS domain (aka cross site scripting attack).\n Also, sockjs javascript library is probably already cached by the\n browser - it makes sense to reuse the sockjs url you\'re using in\n normally.</dd>\n\n<dt>prefix (string)</dt>\n<dd>A url prefix for the server. All http requests which paths begins\n with selected prefix will be handled by SockJS. All other requests\n will be passed through, to previously registered handlers.</dd>\n\n<dt>response_limit (integer)</dt>\n<dd>Most streaming transports save responses on the client side and\n don\'t free memory used by delivered messages. Such transports need\n to be garbage-collected once in a while. `response_limit` sets\n a minimum number of bytes that can be send over a single http streaming\n request before it will be closed. After that client needs to open\n new request. Setting this value to one effectively disables\n streaming and will make streaming transports to behave like polling\n transports. The default value is 128K.</dd>\n\n<dt>websocket (boolean)</dt>\n<dd>Some load balancers don\'t support websockets. This option can be used\n to disable websockets support by the server. By default websockets are\n enabled.</dd>\n\n<dt>jsessionid (boolean or function)</dt>\n<dd>Some hosting providers enable sticky sessions only to requests that\n have JSESSIONID cookie set. This setting controls if the server should\n set this cookie to a dummy value. By default setting JSESSIONID cookie\n is disabled. More sophisticated behaviour can be achieved by supplying\n a function.</dd>\n\n<dt>log (function(severity, message))</dt>\n<dd>It\'s quite useful, especially for debugging, to see some messages\n printed by a SockJS-node library. This is done using this `log`\n function, which is by default set to `console.log`. If this\n behaviour annoys you for some reason, override `log` setting with a\n custom handler. The following `severities` are used: `debug`\n (miscellaneous logs), `info` (requests logs), `error` (serious\n errors, consider filing an issue).</dd>\n\n<dt>heartbeat_delay (milliseconds)</dt>\n<dd>In order to keep proxies and load balancers from closing long\n running http requests we need to pretend that the connection is\n active and send a heartbeat packet once in a while. This setting\n controls how often this is done. By default a heartbeat packet is\n sent every 25 seconds. </dd>\n\n<dt>disconnect_delay (milliseconds)</dt>\n<dd>The server sends a `close` event when a client receiving\n connection have not been seen for a while. This delay is configured\n by this setting. By default the `close` event will be emitted when a\n receiving connection wasn\'t seen for 5 seconds. </dd>\n</dl>\n\n\n### Server instance\n\nOnce you have create `Server` instance you can hook it to the\n[http.Server instance](http://nodejs.org/docs/v0.5.8/api/http.html#http.createServer).\n\n```javascript\nvar http_server = http.createServer();\nsockjs_server.installHandlers(http_server, options);\nhttp_server.listen(...);\n```\n\nWhere `options` can overshadow options given when creating `Server`\ninstance.\n\n`Server` instance is an\n[EventEmitter](http://nodejs.org/docs/v0.4.10/api/events.html#events.EventEmitter),\nand emits following event:\n\n<dl>\n<dt>Event: connection (connection)</dt>\n<dd>A new connection has been successfully opened.</dd>\n</dl>\n\nAll http requests that don\'t go under the path selected by `prefix`\nwill remain unanswered and will be passed to previously registered\nhandlers. You must install your custom http handlers before calling\n`installHandlers`.\n\n### Connection instance\n\nA `Connection` instance supports\n[Node Stream API](http://nodejs.org/docs/v0.5.8/api/streams.html) and\nhas following methods and properties:\n\n<dl>\n<dt>Property: readable (boolean)</dt>\n<dd>Is the stream readable?</dd>\n\n<dt>Property: writable (boolean)</dt>\n<dd>Is the stream writable?</dd>\n\n<dt>Property: remoteAddress (string)</dt>\n<dd>Last known IP address of the client.</dd>\n\n<dt>Property: remotePort (number)</dt>\n<dd>Last known port number of the client.</dd>\n\n<dt>Property: address (object)</dt>\n<dd>Hash with \'address\' and \'port\' fields.</dd>\n\n<dt>Property: headers (object)</dt>\n<dd>Hash containing various headers copied from last receiving request\n on that connection. Exposed headers include: `origin`, `referer`\n and `x-forwarded-for` (and friends). We explicitly do not grant\n access to `cookie` header, as using it may easily lead to security\n issues (for details read the section "Authorisation").</dd>\n\n<dt>Property: url (string)</dt>\n<dd><a href="http://nodejs.org/docs/v0.4.10/api/http.html#request.url">Url</a>\n property copied from last request.</dd>\n\n<dt>Property: pathname (string)</dt>\n<dd>`pathname` from parsed url, for convenience.</dd>\n\n<dt>Property: prefix (string)</dt>\n<dd>Prefix of the url on which the request was handled.</dd>\n\n<dt>Property: protocol (string)</dt>\n<dd>Protocol used by the connection. Keep in mind that some protocols\n are indistinguishable - for example "xhr-polling" and "xdr-polling".</dd>\n\n<dt>Property: readyState (integer)</dt>\n<dd>Current state of the connection:\n 0-connecting, 1-open, 2-closing, 3-closed.</dd>\n\n<dt>write(message)</dt>\n<dd>Sends a message over opened connection. A message must be a\n non-empty string. It\'s illegal to send a message after the connection was\n closed (either after \'close\' or \'end\' method or \'close\' event).</dd>\n\n<dt>close([code], [reason])</dt>\n<dd>Asks the remote client to disconnect. \'code\' and \'reason\'\n parameters are optional and can be used to share the reason of\n disconnection.</dd>\n\n<dt>end()</dt>\n<dd>Asks the remote client to disconnect with default \'code\' and\n \'reason\' values.</dd>\n\n</dl>\n\nA `Connection` instance emits the following events:\n\n<dl>\n<dt>Event: data (message)</dt>\n<dd>A message arrived on the connection. Message is a unicode\n string.</dd>\n\n<dt>Event: close ()</dt>\n<dd>Connection was closed. This event is triggered exactly once for\n every connection.</dd>\n</dl>\n\nFor example:\n\n```javascript\nsockjs_server.on(\'connection\', function(conn) {\n console.log(\'connection\' + conn);\n conn.on(\'close\', function() {\n console.log(\'close \' + conn);\n });\n conn.on(\'data\', function(message) {\n console.log(\'message \' + conn,\n message);\n });\n});\n```\n\n### Footnote\n\nA fully working echo server does need a bit more boilerplate (to\nhandle requests unanswered by SockJS), see the\n[`echo` example](https://github.com/sockjs/sockjs-node/tree/master/examples/echo)\nfor a complete code.\n\n### Examples\n\nIf you want to see samples of running code, take a look at:\n\n * [./examples/echo](https://github.com/sockjs/sockjs-node/tree/master/examples/echo)\n directory, which contains a full example of a echo server.\n * [./examples/test_server](https://github.com/sockjs/sockjs-node/tree/master/examples/test_server) a standard SockJS test server.\n\n\nConnecting to SockJS-node without the client\n--------------------------------------------\n\nAlthough the main point of SockJS it to enable browser-to-server\nconnectivity, it is possible to connect to SockJS from an external\napplication. Any SockJS server complying with 0.3 protocol does\nsupport a raw WebSocket url. The raw WebSocket url for the test server\nlooks like:\n\n * ws://localhost:8081/echo/websocket\n\nYou can connect any WebSocket RFC 6455 compliant WebSocket client to\nthis url. This can be a command line client, external application,\nthird party code or even a browser (though I don\'t know why you would\nwant to do so).\n\n\nDeployment and load balancing\n-----------------------------\n\nThere are two issues that need to be considered when planning a\nnon-trivial SockJS-node deployment: WebSocket-compatible load balancer\nand sticky sessions (aka session affinity).\n\n### WebSocket compatible load balancer\n\nOften WebSockets don\'t play nicely with proxies and load balancers.\nDeploying a SockJS server behind Nginx or Apache could be painful.\n\nFortunately recent versions of an excellent load balancer\n[HAProxy](http://haproxy.1wt.eu/) are able to proxy WebSocket\nconnections. We propose to put HAProxy as a front line load balancer\nand use it to split SockJS traffic from normal HTTP data. Take a look\nat the sample\n[SockJS HAProxy configuration](https://github.com/sockjs/sockjs-node/blob/master/examples/haproxy.cfg).\n\nThe config also shows how to use HAproxy balancing to split traffic\nbetween multiple Node.js servers. You can also do balancing using dns\nnames.\n\n### Sticky sessions\n\nIf you plan deploying more than one SockJS server, you must make sure\nthat all HTTP requests for a single session will hit the same server.\nSockJS has two mechanisms that can be useful to achieve that:\n\n * Urls are prefixed with server and session id numbers, like:\n `/resource/<server_number>/<session_id>/transport`. This is\n useful for load balancers that support prefix-based affinity\n (HAProxy does).\n * `JSESSIONID` cookie is being set by SockJS-node. Many load\n balancers turn on sticky sessions if that cookie is set. This\n technique is derived from Java applications, where sticky sessions\n are often necessary. HAProxy does support this method, as well as\n some hosting providers, for example CloudFoundry. In order to\n enable this method on the client side, please supply a\n `cookie:true` option to SockJS constructor.\n\n\nDevelopment and testing\n-----------------------\n\nIf you want to work on SockJS-node source code, you need to clone the\ngit repo and follow these steps. First you need to install\ndependencies:\n\n cd sockjs-node\n npm install\n npm install --dev\n ln -s .. node_modules/sockjs\n\nYou\'re ready to compile CoffeeScript:\n\n make build\n\nIf compilation succeeds you may want to test if your changes pass all\nthe tests. Currently, there are two separate test suites. For both of\nthem you need to start a SockJS-node test server (by default listening\non port 8081):\n\n make test_server\n\n### SockJS-protocol Python tests\n\nTo run it run something like:\n\n cd sockjs-protocol\n make test_deps\n ./venv/bin/python sockjs-protocol-0.3.py\n\nFor details see\n[SockJS-protocol README](https://github.com/sockjs/sockjs-protocol#readme).\n\n### SockJS-client QUnit tests\n\nYou need to start a second web server (by default listening on 8080)\nthat is serving various static html and javascript files:\n\n cd sockjs-client\n make test\n\nAt that point you should have two web servers running: sockjs-node on\n8081 and sockjs-client on 8080. When you open the browser on\n[http://localhost:8080/](http://localhost:8080/) you should be able\nrun the QUnit tests against your sockjs-node server.\n\nFor details see\n[SockJS-client README](https://github.com/sockjs/sockjs-client#readme).\n\nAdditionally, if you\'re doing more serious development consider using\n`make serve`, which will automatically the server when you modify the\nsource code.\n\n\nVarious issues and design considerations\n----------------------------------------\n\n### Authorisation\n\nSockJS-node does not expose cookies to the application. This is done\ndeliberately as using cookie-based authorisation with SockJS simply\ndoesn\'t make sense and will lead to security issues.\n\nCookies are a contract between a browser and an http server, and are\nidentified by a domain name. If a browser has a cookie set for\nparticular domain, it will pass it as a part of all http requests to\nthe host. But to get various transports working, SockJS uses a middleman\n- an iframe hosted from target SockJS domain. That means the server\nwill receive requests from the iframe, and not from the real\ndomain. The domain of an iframe is the same as the SockJS domain. The\nproblem is that any website can embed the iframe and communicate with\nit - and request establishing SockJS connection. Using cookies for\nauthorisation in this scenario will result in granting full access to\nSockJS communication with your website from any website. This is a\nclassic CSRF attack.\n\nBasically - cookies are not suited for SockJS model. If you want to\nauthorise a session - provide a unique token on a page, send it as a\nfirst thing over SockJS connection and validate it on the server\nside. In essence, this is how cookies work.\n\n\n### Deploying SockJS on Heroku\n\nLong polling is known to cause problems on Heroku, but\n[workaround for SockJS is available](https://github.com/sockjs/sockjs-node/issues/57#issuecomment-5242187).\n', | |
| 1138 silly resolved readmeFilename: 'README.md', | |
| 1138 silly resolved bugs: { url: 'https://github.com/sockjs/sockjs-node/issues' }, | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved _from: 'sockjs@~0.3.8' }, | |
| 1138 silly resolved { name: 'livedb-mongo', | |
| 1138 silly resolved version: '0.2.6', | |
| 1138 silly resolved description: 'MongoDB database adapter for livedb', | |
| 1138 silly resolved main: 'mongo.js', | |
| 1138 silly resolved dependencies: { mongoskin: '~0.5', async: '~0.2.9' }, | |
| 1138 silly resolved devDependencies: { mocha: '~1', 'coffee-script': '~1', livedb: '>=0.2.7' }, | |
| 1138 silly resolved scripts: { test: 'mocha --compilers coffee:coffee-script --reporter spec --check-leaks test.coffee' }, | |
| 1138 silly resolved repository: { type: 'git', url: 'git://github.com/share/livedb-mongo.git' }, | |
| 1138 silly resolved author: { name: 'Joseph Gentle and Nate Smith' }, | |
| 1138 silly resolved license: 'MIT', | |
| 1138 silly resolved readme: '# livedb-mongo\n\nMongoDB database adapter for livedb. This driver can be used both as a snapshot\nstore and oplog.\n\nSnapshots are stored where you\'d expect (the named collection with\n\\_id=docName). Operations are stored in `COLLECTION_ops`. If you have a\nusers collection, the operations are stored in `users_ops`. If you have a\ndocument called `fred`, operations will be stored in documents called `fred\nv0`, `fred v1`, `fred v2` and so on.\n\nJSON document snapshots in livedb-mongo are unwrapped so you can use mongo\nqueries directly against JSON documents. (They just have some extra fields in\n the form of `_v` and `_type`). You should always use livedb to edit\ndocuments - don\'t just edit them directly in mongo. You\'ll get weird behaviour\nif you do.\n\n## Usage\n\nLiveDB-mongo wraps [mongoskin](https://github.com/kissjs/node-mongoskin). It\npasses all the arguments straight to mongoskin\'s constructor. `npm install\nlivedb-mongo` then create your database wrapper using the same arguments you\nwould pass to mongoskin:\n\n```javascript\nvar livedbmongo = require(\'livedb-mongo\');\nvar mongo = livedbmongo(\'localhost:27017/test?auto_reconnect\', {safe:true});\n\nvar livedb = require(\'livedb\')(mongo); // Or whatever. See livedb\'s docs.\n```\n\nIf you prefer, you can instead create a mongoskin instance yourself and pass it to livedb-mongo:\n\n```javascript\nvar mongoskin = require(\'mongoskin\');\nvar skin = mongoskin(\'localhost:27017/test?auto_reconnect\', {safe:true});\n\nvar livedbmongo = require(\'livedb-mongo\');\nvar mongo = livedbmongo(skin);\n```\n\n\n## MIT License\nCopyright (c) 2013 by Joseph Gentle and Nate Smith\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the "Software"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n', | |
| 1138 silly resolved readmeFilename: 'README.md', | |
| 1138 silly resolved bugs: { url: 'https://github.com/share/livedb-mongo/issues' }, | |
| 1138 silly resolved homepage: 'https://github.com/share/livedb-mongo', | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved _from: 'livedb-mongo@~0.2.5' }, | |
| 1138 silly resolved { name: 'rbytes', | |
| 1138 silly resolved version: '1.0.0', | |
| 1138 silly resolved description: 'Generates cryptographically secure random byte sequences', | |
| 1138 silly resolved author: { name: 'Aleksander Williams' }, | |
| 1138 silly resolved contributors: [], | |
| 1138 silly resolved engines: { node: '>=0.3.0' }, | |
| 1138 silly resolved url: 'http://akdubya.github.com/rbytes/', | |
| 1138 silly resolved keywords: [ 'random', 'crypto' ], | |
| 1138 silly resolved main: './index', | |
| 1138 silly resolved scripts: { install: 'node-gyp configure build' }, | |
| 1138 silly resolved readme: 'rbytes\n======\n\n> Generates cryptographically secure random byte sequences\n\nrbytes generates cryptographically secure random byte sequences using native bindings to OpenSSL\'s [pseudo random number generator](http://www.openssl.org/docs/crypto/rand.html). Use rbytes to generate session keys, UUIDs or anything else that requires fast generation of blocks of random data.\n\nSynopsis\n--------\n\nCreate a buffer holding 16 random bytes:\n\n var rbytes = require(\'rbytes\');\n\n var rbuff = rbytes.randomBytes(16);\n // <Buffer 69 5d 5d f6 42 04 1b 86 f2 77 5d 2b 4f 0f 72 26>\n\nrbytes adds two convenience methods to Node\'s Buffer class for easy conversion between Buffers and hex strings:\n\n rbuff.toHex();\n // \'695d5df642041b86f2775d2b4f0f7226\'\n\n var buff = Buffer(1);\n buff.writeHex(\'f);\n // <Buffer 0f>\n\n buff.writeHex(\'g);\n // TypeError: Invalid hex string\n\nInstallation\n------------\n\n $ npm install rbytes\n\nrbytes requires node version 0.3.0 or higher.\n\nNotes\n-----\n\nrbytes binds to OpenSSL\'s [RAND_bytes](http://www.openssl.org/docs/crypto/RAND_bytes.html) function, which generates cryptographically strong pseudorandom bytes. This function does not block, however it will throw an error if there isn\'t enough random seed data on your system. Support is planned for RAND_pseudo_bytes, which are guaranteed to be available at the cost of being (potentially) less secure.\n\nSimple random number generation (like Math.rand()) is planned for a future version.', | |
| 1138 silly resolved readmeFilename: 'README.md', | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved _from: 'rbytes@~1.0.0' }, | |
| 1138 silly resolved { name: 'express', | |
| 1138 silly resolved description: 'Sinatra inspired web development framework', | |
| 1138 silly resolved version: '3.4.7', | |
| 1138 silly resolved author: { name: 'TJ Holowaychuk', email: '[email protected]' }, | |
| 1138 silly resolved contributors: [ [Object], [Object], [Object], [Object] ], | |
| 1138 silly resolved dependencies: | |
| 1138 silly resolved { connect: '2.12.0', | |
| 1138 silly resolved commander: '1.3.2', | |
| 1138 silly resolved 'range-parser': '0.0.4', | |
| 1138 silly resolved mkdirp: '0.3.5', | |
| 1138 silly resolved cookie: '0.1.0', | |
| 1138 silly resolved 'buffer-crc32': '0.2.1', | |
| 1138 silly resolved fresh: '0.2.0', | |
| 1138 silly resolved methods: '0.1.0', | |
| 1138 silly resolved send: '0.1.4', | |
| 1138 silly resolved 'cookie-signature': '1.0.1', | |
| 1138 silly resolved 'merge-descriptors': '0.0.1', | |
| 1138 silly resolved debug: '>= 0.7.3 < 1' }, | |
| 1138 silly resolved devDependencies: | |
| 1138 silly resolved { ejs: '~0.8.4', | |
| 1138 silly resolved mocha: '~1.15.1', | |
| 1138 silly resolved jade: '~0.30.0', | |
| 1138 silly resolved hjs: '~0.0.6', | |
| 1138 silly resolved stylus: '~0.40.0', | |
| 1138 silly resolved should: '~2.1.1', | |
| 1138 silly resolved 'connect-redis': '~1.4.5', | |
| 1138 silly resolved marked: '0.2.10', | |
| 1138 silly resolved supertest: '~0.8.1' }, | |
| 1138 silly resolved keywords: | |
| 1138 silly resolved [ 'express', | |
| 1138 silly resolved 'framework', | |
| 1138 silly resolved 'sinatra', | |
| 1138 silly resolved 'web', | |
| 1138 silly resolved 'rest', | |
| 1138 silly resolved 'restful', | |
| 1138 silly resolved 'router', | |
| 1138 silly resolved 'app', | |
| 1138 silly resolved 'api' ], | |
| 1138 silly resolved repository: { type: 'git', url: 'git://github.com/visionmedia/express' }, | |
| 1138 silly resolved main: 'index', | |
| 1138 silly resolved bin: { express: './bin/express' }, | |
| 1138 silly resolved scripts: { prepublish: 'npm prune', test: 'make test' }, | |
| 1138 silly resolved engines: { node: '>= 0.8.0' }, | |
| 1138 silly resolved readme: '[](http://expressjs.com/)\n\n Fast, unopinionated, minimalist web framework for [node](http://nodejs.org).\n\n [](http://travis-ci.org/visionmedia/express) [](https://www.gittip.com/visionmedia/)\n\n```js\nvar express = require(\'express\');\nvar app = express();\n\napp.get(\'/\', function(req, res){\n res.send(\'Hello World\');\n});\n\napp.listen(3000);\n```\n\n## Installation\n\n $ npm install -g express\n\n## Quick Start\n\n The quickest way to get started with express is to utilize the executable `express(1)` to generate an application as shown below:\n\n Create the app:\n\n $ npm install -g express\n $ express /tmp/foo && cd /tmp/foo\n\n Install dependencies:\n\n $ npm install\n\n Start the server:\n\n $ node app\n\n## Features\n\n * Built on [Connect](http://github.com/senchalabs/connect)\n * Robust routing\n * HTTP helpers (redirection, caching, etc)\n * View system supporting 14+ template engines\n * Content negotiation\n * Focus on high performance\n * Environment based configuration\n * Executable for generating applications quickly\n * High test coverage\n\n## Philosophy\n\n The Express philosophy is to provide small, robust tooling for HTTP servers, making\n it a great solution for single page applications, web sites, hybrids, or public\n HTTP APIs.\n\n Built on Connect, you can use _only_ what you need, and nothing more. Applications\n can be as big or as small as you like, even a single file. Express does\n not force you to use any specific ORM or template engine. With support for over\n 14 template engines via [Consolidate.js](http://github.com/visionmedia/consolidate.js),\n you can quickly craft your perfect framework.\n\n## More Information\n\n * [Website and Documentation](http://expressjs.com/) stored at [visionmedia/expressjs.com](https://github.com/visionmedia/expressjs.com)\n * Join #express on freenode\n * [Google Group](http://groups.google.com/group/express-js) for discussion\n * Follow [tjholowaychuk](http://twitter.com/tjholowaychuk) on twitter for updates\n * Visit the [Wiki](http://github.com/visionmedia/express/wiki)\n * [Русскоязычная документация](http://jsman.ru/express/)\n * Run express examples [online](https://runnable.com/express)\n\n## Viewing Examples\n\nClone the Express repo, then install the dev dependencies to install all the example / test suite dependencies:\n\n $ git clone git://github.com/visionmedia/express.git --depth 1\n $ cd express\n $ npm install\n\nThen run whichever tests you want:\n\n $ node examples/content-negotiation\n\nYou can also view live examples here:\n\n<a href="https://runnable.com/express" target="_blank"><img src="https://runnable.com/external/styles/assets/runnablebtn.png" style="width:67px;height:25px;"></a>\n\n## Running Tests\n\nTo run the test suite, first invoke the following command within the repo, installing the development dependencies:\n\n $ npm install\n\nThen run the tests:\n\n $ make test\n\n## Contributors\n\n https://github.com/visionmedia/express/graphs/contributors\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2009-2012 TJ Holowaychuk <[email protected]>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n', | |
| 1138 silly resolved readmeFilename: 'Readme.md', | |
| 1138 silly resolved bugs: { url: 'https://github.com/visionmedia/express/issues' }, | |
| 1138 silly resolved homepage: 'https://github.com/visionmedia/express', | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved _from: 'express@~3.4.4' }, | |
| 1138 silly resolved { name: 'isbinaryfile', | |
| 1138 silly resolved version: '0.1.9', | |
| 1138 silly resolved description: 'Detects if a file is binary in Node.js. Similar to Perl\'s -B.', | |
| 1138 silly resolved main: './lib/panino.js', | |
| 1138 silly resolved engines: { node: '>=0.6.0' }, | |
| 1138 silly resolved maintainers: [ [Object] ], | |
| 1138 silly resolved repository: | |
| 1138 silly resolved { type: 'git', | |
| 1138 silly resolved url: 'https://github.com/gjtorikian/isBinaryFile' }, | |
| 1138 silly resolved devDependencies: { mocha: '' }, | |
| 1138 silly resolved scripts: { test: 'mocha tests/test.js' }, | |
| 1138 silly resolved readme: 'isBinaryFile\n============\n\nDetects if a file is binary in Node.js. Similar to [Perl\'s `-B` switch](http://stackoverflow.com/questions/899206/how-does-perl-know-a-file-is-binary), in that:\n\n* it reads the first few thousand bytes of a file\n* checks for a `null` byte; if it\'s found, it\'s binary\n* flags non-ASCII characters. After a certain number of "weird" characters, the file is flagged as binary\n\nAll the logic is also pretty much ported from [ag](https://github.com/ggreer/the_silver_searcher).\n\nNote: if the file doesn\'t exist or it is empty, this function returns `false`.\n\n## Installation\n\n```\nnpm install isBinaryFile\n```\n\n## Usage\n\nIf you pass in one argument, this module assumes it\'s just the file path, and performs the appropriate file read and stat functionality internally:\n\n```javascript\nvar isBinaryFile = require("isbinaryfile");\n\nif (isBinaryFile(process.argv[2]))\n\tconsole.log("It is!")\nelse\n\tconsole.log("No.")\n```\n\nTa da. \n\n\nHowever, if you\'ve already read and `stat()`-ed a file (for some other reason), you can pass in both the file\'s raw data and the stat\'s `size` info to save time:\n\n```javascript\nfs.readFile(process.argv[2], function(err, data) {\n\tfs.lstat(process.argv[2], function(err, stat) {\n\t\tif (isBinaryFile(data, stat))\n\t\t\tconsole.log("It is!")\n\t\telse\n\t\t\tconsole.log("No.")\n\t});\n});\n```\n\n## Testing\n\nInstall mocha on your machine:\n\n```\nnpm install mocha -g\n```\n\nThen go into the _tests_ directory, and type `mocha test.js`.\n', | |
| 1138 silly resolved readmeFilename: 'README.md', | |
| 1138 silly resolved bugs: { url: 'https://github.com/gjtorikian/isBinaryFile/issues' }, | |
| 1138 silly resolved homepage: 'https://github.com/gjtorikian/isBinaryFile', | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved _from: 'isbinaryfile@~0.1.9' }, | |
| 1138 silly resolved { name: 'ottypes', | |
| 1138 silly resolved version: '1.0.1', | |
| 1138 silly resolved description: 'Operational transform types collection', | |
| 1138 silly resolved main: 'lib/index.js', | |
| 1138 silly resolved directories: { test: 'test' }, | |
| 1138 silly resolved dependencies: {}, | |
| 1138 silly resolved devDependencies: { 'coffee-script': '*', mocha: '~1', 'uglify-js': '*' }, | |
| 1138 silly resolved scripts: { prepublish: 'make all', test: 'node_modules/.bin/mocha' }, | |
| 1138 silly resolved repository: { type: 'git', url: 'git://github.com/share/ot-types.git' }, | |
| 1138 silly resolved keywords: [ 'OT', 'operational transformation', 'transform' ], | |
| 1138 silly resolved author: { name: 'Joseph Gentle', email: '[email protected]' }, | |
| 1138 silly resolved license: 'MIT', | |
| 1138 silly resolved readmeFilename: 'README.md', | |
| 1138 silly resolved gitHead: '1ca38c758dd0ae57142bf892e318ea5a29e9cf92', | |
| 1138 silly resolved readme: '# Operational transform types, sir?\n\nWe have a lovely buffet of operational transform types. Each type has many fine features, including thorough testing, browser support and documentation.\n\nThese types have been finely aged in [ShareJS](https://github.com/josephg/sharejs)\'s type labs. We are quite proud of them.\n\nPlease port any types you find useful to your favorite languages so we can do operational transform in more places. I have a sister project for C versions [here](https://github.com/share/libot) that I might merge in at some point.\n\n[](http://travis-ci.org/josephg/ot-types)\n\n## Spec\n\nEach OT type exposes a single object with the following properties. Note that only *name*, *create*, *apply* and *transform* are strictly required, though most types should also include *url* and *compose*.\n\n### Standard properties\n\n- **name**: A user-readable name for the type. This is not guaranteed to be unique.\n- **url**: *(Optional, will be required soon)* A canonical location for this type. The spec for the OT type should be at this address. Remember kids, Tim Burners-Lee says [cool URLs don\'t change](http://www.w3.org/Provider/Style/URI.html).\n- **create([initialData]) -> snapshot**: A function to create the initial document snapshot. Create may accept initial snapshot data as its only argument. Either the return value must be a valid target for `JSON.stringify` or you must specify *serialize* and *deserialize* functions (described below).\n- **apply(snapshot, op) -> snapshot\'**: Apply an operation to a document snapshot. Returns the changed snapshot. For performance, old document must not be used after this function call, so apply may reuse and return the current snapshot object.\n- **transform(op1, op2, side) -> op1\'**: Transform op1 by op2. Return the new op1. Side is either `\'left\'` or `\'right\'`. It exists to break ties, for example if two operations insert at the same position in a string. Both op1 and op2 must not be modified by transform.\nTransform must conform to Transform Property 1. That is, apply(apply(snapshot, op1), transform(op2, op1, \'left\')) == apply(apply(snapshot, op2), transform(op1, op2, \'right\')).\n- **compose(op1, op2) -> op**: *(optional)* Compose op1 and op2 to produce a new operation. The new operation must subsume the behaviour of op1 and op2. Specifically, apply(snapshot, apply(op1), op2) == apply(snapshot, compose(op1, op2)). Note: transforming by a composed operation is *NOT* guaranteed to produce the same result as transforming by each operation in order. This function is optional, but unless you have a good reason to do otherwise, you should provide a compose function for your type.\n\n### Optional properties\n\n- **invert(op) -> op\'**: *(optional)* Invert the given operation. The original operation must not be edited in the process. If supplied, apply(apply(snapshot, op), invert(op)) == snapshot.\n- **normalize(op) -> op\'**: *(optional)* Normalize an operation, converting it to a canonical representation. normalize(normalize(op)) == normalize(op).\n- **transformCursor(cursor, op, isOwnOp) -> cursor\'**: *(optional)* transform the specified cursor by the provided operation. If isOwnOp is true, this function should return the final editing position of the provided operation. If isOwnOp is false, the cursor position should move with the content to its immediate left.\n- **serialize(snapshot) -> data**: *(optional)* convert the document snapshot data into a form that may be passed to JSON.stringify. If you have a *serialize* function, you must have a *deserialize* function.\n- **deserialize(data) -> snapshot**: *(optional)* convert data generated by *serialize* back into its internal snapshot format. deserialize(serialize(snapshot)) == snapshot. If you have a *deserialize* function, you must have a *serialize* function.\n\n> Do I need serialize and deserialize? Maybe JSON.stringify is sufficiently customizable..?\n\n### TP2 Properties\n\nIf your OT type supports [transform property 2](http://en.wikipedia.org/wiki/Operational_transformation#Convergence_properties), set the *tp2* property to true and define a *prune* function.\n\nTransform property 2 is an additional requirement on your *transform* function. Specifically, transform(op3, compose(op1, transform(op2, op1)) == transform(op3, compose(op2, transform(op1, op2)).\n\n- **tp2**: *(optional)* Boolean property. Make this truthy to declare that the type has tp2 support. Types with TP2 support must define *prune*.\n- **prune(op, otherOp)**: The inverse of transform. Formally, apply(snapshot, op1) == apply(snapshot, prune(transform(op1, op2), op2)). Usually, prune will simply be the inverse of transform and prune(transform(op1, op2), op2) == op1.\n\n\n---\n\n# License\n\nAll code contributed to this repository is licensed under the standard MIT license:\n\nCopyright 2011 ottypes library contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the "Software"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following condition:\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n', | |
| 1138 silly resolved bugs: { url: 'https://github.com/share/ot-types/issues' }, | |
| 1138 silly resolved homepage: 'https://github.com/share/ot-types', | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved _from: 'ottypes@~1.0.1' }, | |
| 1138 silly resolved { name: 'async', | |
| 1138 silly resolved description: 'Higher-order functions and common patterns for asynchronous code', | |
| 1138 silly resolved main: './lib/async', | |
| 1138 silly resolved author: { name: 'Caolan McMahon' }, | |
| 1138 silly resolved version: '0.2.9', | |
| 1138 silly resolved repository: { type: 'git', url: 'https://github.com/caolan/async.git' }, | |
| 1138 silly resolved bugs: { url: 'https://github.com/caolan/async/issues' }, | |
| 1138 silly resolved licenses: [ [Object] ], | |
| 1138 silly resolved devDependencies: { nodeunit: '>0.0.0', 'uglify-js': '1.2.x', nodelint: '>0.0.0' }, | |
| 1138 silly resolved jam: { main: 'lib/async.js', include: [Object] }, | |
| 1138 silly resolved scripts: { test: 'nodeunit test/test-async.js' }, | |
| 1138 silly resolved readme: '# Async.js\n\nAsync is a utility module which provides straight-forward, powerful functions\nfor working with asynchronous JavaScript. Although originally designed for\nuse with [node.js](http://nodejs.org), it can also be used directly in the\nbrowser. Also supports [component](https://github.com/component/component).\n\nAsync provides around 20 functions that include the usual \'functional\'\nsuspects (map, reduce, filter, each…) as well as some common patterns\nfor asynchronous control flow (parallel, series, waterfall…). All these\nfunctions assume you follow the node.js convention of providing a single\ncallback as the last argument of your async function.\n\n\n## Quick Examples\n\n```javascript\nasync.map([\'file1\',\'file2\',\'file3\'], fs.stat, function(err, results){\n // results is now an array of stats for each file\n});\n\nasync.filter([\'file1\',\'file2\',\'file3\'], fs.exists, function(results){\n // results now equals an array of the existing files\n});\n\nasync.parallel([\n function(){ ... },\n function(){ ... }\n], callback);\n\nasync.series([\n function(){ ... },\n function(){ ... }\n]);\n```\n\nThere are many more functions available so take a look at the docs below for a\nfull list. This module aims to be comprehensive, so if you feel anything is\nmissing please create a GitHub issue for it.\n\n## Common Pitfalls\n\n### Binding a context to an iterator\n\nThis section is really about bind, not about async. If you are wondering how to\nmake async execute your iterators in a given context, or are confused as to why\na method of another library isn\'t working as an iterator, study this example:\n\n```js\n// Here is a simple object with an (unnecessarily roundabout) squaring method\nvar AsyncSquaringLibrary = {\n squareExponent: 2,\n square: function(number, callback){ \n var result = Math.pow(number, this.squareExponent);\n setTimeout(function(){\n callback(null, result);\n }, 200);\n }\n};\n\nasync.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){\n // result is [NaN, NaN, NaN]\n // This fails because the `this.squareExponent` expression in the square\n // function is not evaluated in the context of AsyncSquaringLibrary, and is\n // therefore undefined.\n});\n\nasync.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){\n // result is [1, 4, 9]\n // With the help of bind we can attach a context to the iterator before\n // passing it to async. Now the square function will be executed in its \n // \'home\' AsyncSquaringLibrary context and the value of `this.squareExponent`\n // will be as expected.\n});\n```\n\n## Download\n\nThe source is available for download from\n[GitHub](http://github.com/caolan/async).\nAlternatively, you can install using Node Package Manager (npm):\n\n npm install async\n\n__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed\n\n## In the Browser\n\nSo far it\'s been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. Usage:\n\n```html\n<script type="text/javascript" src="async.js"></script>\n<script type="text/javascript">\n\n async.map(data, asyncProcess, function(err, results){\n alert(results);\n });\n\n</script>\n```\n\n## Documentation\n\n### Collections\n\n* [each](#each)\n* [map](#map)\n* [filter](#filter)\n* [reject](#reject)\n* [reduce](#reduce)\n* [detect](#detect)\n* [sortBy](#sortBy)\n* [some](#some)\n* [every](#every)\n* [concat](#concat)\n\n### Control Flow\n\n* [series](#series)\n* [parallel](#parallel)\n* [whilst](#whilst)\n* [doWhilst](#doWhilst)\n* [until](#until)\n* [doUntil](#doUntil)\n* [forever](#forever)\n* [waterfall](#waterfall)\n* [compose](#compose)\n* [applyEach](#applyEach)\n* [queue](#queue)\n* [cargo](#cargo)\n* [auto](#auto)\n* [iterator](#iterator)\n* [apply](#apply)\n* [nextTick](#nextTick)\n* [times](#times)\n* [timesSeries](#timesSeries)\n\n### Utils\n\n* [memoize](#memoize)\n* [unmemoize](#unmemoize)\n* [log](#log)\n* [dir](#dir)\n* [noConflict](#noConflict)\n\n\n## Collections\n\n<a name="forEach" />\n<a name="each" />\n### each(arr, iterator, callback)\n\nApplies an iterator function to each item in an array, in parallel.\nThe iterator is called with an item from the list and a callback for when it\nhas finished. If the iterator passes an error to this callback, the main\ncallback for the each function is immediately called with the error.\n\nNote, that since this function applies the iterator to each item in parallel\nthere is no guarantee that the iterator functions will complete in order.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback(err) which must be called once it has \n completed. If no error has occured, the callback should be run without \n arguments or with an explicit null argument.\n* callback(err) - A callback which is called after all the iterator functions\n have finished, or an error has occurred.\n\n__Example__\n\n```js\n// assuming openFiles is an array of file names and saveFile is a function\n// to save the modified contents of that file:\n\nasync.each(openFiles, saveFile, function(err){\n // if any of the saves produced an error, err would equal that error\n});\n```\n\n---------------------------------------\n\n<a name="forEachSeries" />\n<a name="eachSeries" />\n### eachSeries(arr, iterator, callback)\n\nThe same as each only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. This means the iterator functions will complete in order.\n\n\n---------------------------------------\n\n<a name="forEachLimit" />\n<a name="eachLimit" />\n### eachLimit(arr, limit, iterator, callback)\n\nThe same as each only no more than "limit" iterators will be simultaneously \nrunning at any time.\n\nNote that the items are not processed in batches, so there is no guarantee that\n the first "limit" iterator functions will complete before any others are \nstarted.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* limit - The maximum number of iterators to run at any time.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback(err) which must be called once it has \n completed. If no error has occured, the callback should be run without \n arguments or with an explicit null argument.\n* callback(err) - A callback which is called after all the iterator functions\n have finished, or an error has occurred.\n\n__Example__\n\n```js\n// Assume documents is an array of JSON objects and requestApi is a\n// function that interacts with a rate-limited REST api.\n\nasync.eachLimit(documents, 20, requestApi, function(err){\n // if any of the saves produced an error, err would equal that error\n});\n```\n\n---------------------------------------\n\n<a name="map" />\n### map(arr, iterator, callback)\n\nProduces a new array of values by mapping each value in the given array through\nthe iterator function. The iterator is called with an item from the array and a\ncallback for when it has finished processing. The callback takes 2 arguments, \nan error and the transformed item from the array. If the iterator passes an\nerror to this callback, the main callback for the map function is immediately\ncalled with the error.\n\nNote, that since this function applies the iterator to each item in parallel\nthere is no guarantee that the iterator functions will complete in order, however\nthe results array will be in the same order as the original array.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback(err, transformed) which must be called once \n it has completed with an error (which can be null) and a transformed item.\n* callback(err, results) - A callback which is called after all the iterator\n functions have finished, or an error has occurred. Results is an array of the\n transformed items from the original array.\n\n__Example__\n\n```js\nasync.map([\'file1\',\'file2\',\'file3\'], fs.stat, function(err, results){\n // results is now an array of stats for each file\n});\n```\n\n---------------------------------------\n\n<a name="mapSeries" />\n### mapSeries(arr, iterator, callback)\n\nThe same as map only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n\n---------------------------------------\n\n<a name="mapLimit" />\n### mapLimit(arr, limit, iterator, callback)\n\nThe same as map only no more than "limit" iterators will be simultaneously \nrunning at any time.\n\nNote that the items are not processed in batches, so there is no guarantee that\n the first "limit" iterator functions will complete before any others are \nstarted.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* limit - The maximum number of iterators to run at any time.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback(err, transformed) which must be called once \n it has completed with an error (which can be null) and a transformed item.\n* callback(err, results) - A callback which is called after all the iterator\n functions have finished, or an error has occurred. Results is an array of the\n transformed items from the original array.\n\n__Example__\n\n```js\nasync.map([\'file1\',\'file2\',\'file3\'], 1, fs.stat, function(err, results){\n // results is now an array of stats for each file\n});\n```\n\n---------------------------------------\n\n<a name="filter" />\n### filter(arr, iterator, callback)\n\n__Alias:__ select\n\nReturns a new array of all the values which pass an async truth test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like fs.exists. This operation is\nperformed in parallel, but the results array will be in the same order as the\noriginal.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback(truthValue) which must be called with a \n boolean argument once it has completed.\n* callback(results) - A callback which is called after all the iterator\n functions have finished.\n\n__Example__\n\n```js\nasync.filter([\'file1\',\'file2\',\'file3\'], fs.exists, function(results){\n // results now equals an array of the existing files\n});\n```\n\n---------------------------------------\n\n<a name="filterSeries" />\n### filterSeries(arr, iterator, callback)\n\n__alias:__ selectSeries\n\nThe same as filter only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n---------------------------------------\n\n<a name="reject" />\n### reject(arr, iterator, callback)\n\nThe opposite of filter. Removes values that pass an async truth test.\n\n---------------------------------------\n\n<a name="rejectSeries" />\n### rejectSeries(arr, iterator, callback)\n\nThe same as reject, only the iterator is applied to each item in the array\nin series.\n\n\n---------------------------------------\n\n<a name="reduce" />\n### reduce(arr, memo, iterator, callback)\n\n__aliases:__ inject, foldl\n\nReduces a list of values into a single value using an async iterator to return\neach successive step. Memo is the initial state of the reduction. This\nfunction only operates in series. For performance reasons, it may make sense to\nsplit a call to this function into a parallel map, then use the normal\nArray.prototype.reduce on the results. This function is for situations where\neach step in the reduction needs to be async, if you can get the data before\nreducing it then it\'s probably a good idea to do so.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* memo - The initial state of the reduction.\n* iterator(memo, item, callback) - A function applied to each item in the\n array to produce the next step in the reduction. The iterator is passed a\n callback(err, reduction) which accepts an optional error as its first \n argument, and the state of the reduction as the second. If an error is \n passed to the callback, the reduction is stopped and the main callback is \n immediately called with the error.\n* callback(err, result) - A callback which is called after all the iterator\n functions have finished. Result is the reduced value.\n\n__Example__\n\n```js\nasync.reduce([1,2,3], 0, function(memo, item, callback){\n // pointless async:\n process.nextTick(function(){\n callback(null, memo + item)\n });\n}, function(err, result){\n // result is now equal to the last value of memo, which is 6\n});\n```\n\n---------------------------------------\n\n<a name="reduceRight" />\n### reduceRight(arr, memo, iterator, callback)\n\n__Alias:__ foldr\n\nSame as reduce, only operates on the items in the array in reverse order.\n\n\n---------------------------------------\n\n<a name="detect" />\n### detect(arr, iterator, callback)\n\nReturns the first value in a list that passes an async truth test. The\niterator is applied in parallel, meaning the first iterator to return true will\nfire the detect callback with that result. That means the result might not be\nthe first item in the original array (in terms of order) that passes the test.\n\nIf order within the original array is important then look at detectSeries.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback(truthValue) which must be called with a \n boolean argument once it has completed.\n* callback(result) - A callback which is called as soon as any iterator returns\n true, or after all the iterator functions have finished. Result will be\n the first item in the array that passes the truth test (iterator) or the\n value undefined if none passed.\n\n__Example__\n\n```js\nasync.detect([\'file1\',\'file2\',\'file3\'], fs.exists, function(result){\n // result now equals the first file in the list that exists\n});\n```\n\n---------------------------------------\n\n<a name="detectSeries" />\n### detectSeries(arr, iterator, callback)\n\nThe same as detect, only the iterator is applied to each item in the array\nin series. This means the result is always the first in the original array (in\nterms of array order) that passes the truth test.\n\n\n---------------------------------------\n\n<a name="sortBy" />\n### sortBy(arr, iterator, callback)\n\nSorts a list by the results of running each value through an async iterator.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback(err, sortValue) which must be called once it\n has completed with an error (which can be null) and a value to use as the sort\n criteria.\n* callback(err, results) - A callback which is called after all the iterator\n functions have finished, or an error has occurred. Results is the items from\n the original array sorted by the values returned by the iterator calls.\n\n__Example__\n\n```js\nasync.sortBy([\'file1\',\'file2\',\'file3\'], function(file, callback){\n fs.stat(file, function(err, stats){\n callback(err, stats.mtime);\n });\n}, function(err, results){\n // results is now the original array of files sorted by\n // modified date\n});\n```\n\n---------------------------------------\n\n<a name="some" />\n### some(arr, iterator, callback)\n\n__Alias:__ any\n\nReturns true if at least one element in the array satisfies an async test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like fs.exists. Once any iterator\ncall returns true, the main callback is immediately called.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback(truthValue) which must be called with a \n boolean argument once it has completed.\n* callback(result) - A callback which is called as soon as any iterator returns\n true, or after all the iterator functions have finished. Result will be\n either true or false depending on the values of the async tests.\n\n__Example__\n\n```js\nasync.some([\'file1\',\'file2\',\'file3\'], fs.exists, function(result){\n // if result is true then at least one of the files exists\n});\n```\n\n---------------------------------------\n\n<a name="every" />\n### every(arr, iterator, callback)\n\n__Alias:__ all\n\nReturns true if every element in the array satisfies an async test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like fs.exists.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n The iterator is passed a callback(truthValue) which must be called with a \n boolean argument once it has completed.\n* callback(result) - A callback which is called after all the iterator\n functions have finished. Result will be either true or false depending on\n the values of the async tests.\n\n__Example__\n\n```js\nasync.every([\'file1\',\'file2\',\'file3\'], fs.exists, function(result){\n // if result is true then every file exists\n});\n```\n\n---------------------------------------\n\n<a name="concat" />\n### concat(arr, iterator, callback)\n\nApplies an iterator to each item in a list, concatenating the results. Returns the\nconcatenated list. The iterators are called in parallel, and the results are\nconcatenated as they return. There is no guarantee that the results array will\nbe returned in the original order of the arguments passed to the iterator function.\n\n__Arguments__\n\n* arr - An array to iterate over\n* iterator(item, callback) - A function to apply to each item in the array.\n The iterator is passed a callback(err, results) which must be called once it \n has completed with an error (which can be null) and an array of results.\n* callback(err, results) - A callback which is called after all the iterator\n functions have finished, or an error has occurred. Results is an array containing\n the concatenated results of the iterator function.\n\n__Example__\n\n```js\nasync.concat([\'dir1\',\'dir2\',\'dir3\'], fs.readdir, function(err, files){\n // files is now a list of filenames that exist in the 3 directories\n});\n```\n\n---------------------------------------\n\n<a name="concatSeries" />\n### concatSeries(arr, iterator, callback)\n\nSame as async.concat, but executes in series instead of parallel.\n\n\n## Control Flow\n\n<a name="series" />\n### series(tasks, [callback])\n\nRun an array of functions in series, each one running once the previous\nfunction has completed. If any functions in the series pass an error to its\ncallback, no more functions are run and the callback for the series is\nimmediately called with the value of the error. Once the tasks have completed,\nthe results are passed to the final callback as an array.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function and the results will be passed to the final callback as an object\ninstead of an array. This can be a more readable way of handling results from\nasync.series.\n\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed\n a callback(err, result) it must call on completion with an error (which can\n be null) and an optional result value.\n* callback(err, results) - An optional callback to run once all the functions\n have completed. This function gets a results array (or object) containing all \n the result arguments passed to the task callbacks.\n\n__Example__\n\n```js\nasync.series([\n function(callback){\n // do some stuff ...\n callback(null, \'one\');\n },\n function(callback){\n // do some more stuff ...\n callback(null, \'two\');\n }\n],\n// optional callback\nfunction(err, results){\n // results is now equal to [\'one\', \'two\']\n});\n\n\n// an example using an object instead of an array\nasync.series({\n one: function(callback){\n setTimeout(function(){\n callback(null, 1);\n }, 200);\n },\n two: function(callback){\n setTimeout(function(){\n callback(null, 2);\n }, 100);\n }\n},\nfunction(err, results) {\n // results is now equal to: {one: 1, two: 2}\n});\n```\n\n---------------------------------------\n\n<a name="parallel" />\n### parallel(tasks, [callback])\n\nRun an array of functions in parallel, without waiting until the previous\nfunction has completed. If any of the functions pass an error to its\ncallback, the main callback is immediately called with the value of the error.\nOnce the tasks have completed, the results are passed to the final callback as an\narray.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function and the results will be passed to the final callback as an object\ninstead of an array. This can be a more readable way of handling results from\nasync.parallel.\n\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed \n a callback(err, result) it must call on completion with an error (which can\n be null) and an optional result value.\n* callback(err, results) - An optional callback to run once all the functions\n have completed. This function gets a results array (or object) containing all \n the result arguments passed to the task callbacks.\n\n__Example__\n\n```js\nasync.parallel([\n function(callback){\n setTimeout(function(){\n callback(null, \'one\');\n }, 200);\n },\n function(callback){\n setTimeout(function(){\n callback(null, \'two\');\n }, 100);\n }\n],\n// optional callback\nfunction(err, results){\n // the results array will equal [\'one\',\'two\'] even though\n // the second function had a shorter timeout.\n});\n\n\n// an example using an object instead of an array\nasync.parallel({\n one: function(callback){\n setTimeout(function(){\n callback(null, 1);\n }, 200);\n },\n two: function(callback){\n setTimeout(function(){\n callback(null, 2);\n }, 100);\n }\n},\nfunction(err, results) {\n // results is now equals to: {one: 1, two: 2}\n});\n```\n\n---------------------------------------\n\n<a name="parallel" />\n### parallelLimit(tasks, limit, [callback])\n\nThe same as parallel only the tasks are executed in parallel with a maximum of "limit" \ntasks executing at any time.\n\nNote that the tasks are not executed in batches, so there is no guarantee that \nthe first "limit" tasks will complete before any others are started.\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed \n a callback(err, result) it must call on completion with an error (which can\n be null) and an optional result value.\n* limit - The maximum number of tasks to run at any time.\n* callback(err, results) - An optional callback to run once all the functions\n have completed. This function gets a results array (or object) containing all \n the result arguments passed to the task callbacks.\n\n---------------------------------------\n\n<a name="whilst" />\n### whilst(test, fn, callback)\n\nRepeatedly call fn, while test returns true. Calls the callback when stopped,\nor an error occurs.\n\n__Arguments__\n\n* test() - synchronous truth test to perform before each execution of fn.\n* fn(callback) - A function to call each time the test passes. The function is\n passed a callback(err) which must be called once it has completed with an \n optional error argument.\n* callback(err) - A callback which is called after the test fails and repeated\n execution of fn has stopped.\n\n__Example__\n\n```js\nvar count = 0;\n\nasync.whilst(\n function () { return count < 5; },\n function (callback) {\n count++;\n setTimeout(callback, 1000);\n },\n function (err) {\n // 5 seconds have passed\n }\n);\n```\n\n---------------------------------------\n\n<a name="doWhilst" />\n### doWhilst(fn, test, callback)\n\nThe post check version of whilst. To reflect the difference in the order of operations `test` and `fn` arguments are switched. `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n\n---------------------------------------\n\n<a name="until" />\n### until(test, fn, callback)\n\nRepeatedly call fn, until test returns true. Calls the callback when stopped,\nor an error occurs.\n\nThe inverse of async.whilst.\n\n---------------------------------------\n\n<a name="doUntil" />\n### doUntil(fn, test, callback)\n\nLike doWhilst except the test is inverted. Note the argument ordering differs from `until`.\n\n---------------------------------------\n\n<a name="forever" />\n### forever(fn, callback)\n\nCalls the asynchronous function \'fn\' repeatedly, in series, indefinitely.\nIf an error is passed to fn\'s callback then \'callback\' is called with the\nerror, otherwise it will never be called.\n\n---------------------------------------\n\n<a name="waterfall" />\n### waterfall(tasks, [callback])\n\nRuns an array of functions in series, each passing their results to the next in\nthe array. However, if any of the functions pass an error to the callback, the\nnext function is not executed and the main callback is immediately called with\nthe error.\n\n__Arguments__\n\n* tasks - An array of functions to run, each function is passed a \n callback(err, result1, result2, ...) it must call on completion. The first\n argument is an error (which can be null) and any further arguments will be \n passed as arguments in order to the next task.\n* callback(err, [results]) - An optional callback to run once all the functions\n have completed. This will be passed the results of the last task\'s callback.\n\n\n\n__Example__\n\n```js\nasync.waterfall([\n function(callback){\n callback(null, \'one\', \'two\');\n },\n function(arg1, arg2, callback){\n callback(null, \'three\');\n },\n function(arg1, callback){\n // arg1 now equals \'three\'\n callback(null, \'done\');\n }\n], function (err, result) {\n // result now equals \'done\' \n});\n```\n\n---------------------------------------\n<a name="compose" />\n### compose(fn1, fn2...)\n\nCreates a function which is a composition of the passed asynchronous\nfunctions. Each function consumes the return value of the function that\nfollows. Composing functions f(), g() and h() would produce the result of\nf(g(h())), only this version uses callbacks to obtain the return values.\n\nEach function is executed with the `this` binding of the composed function.\n\n__Arguments__\n\n* functions... - the asynchronous functions to compose\n\n\n__Example__\n\n```js\nfunction add1(n, callback) {\n setTimeout(function () {\n callback(null, n + 1);\n }, 10);\n}\n\nfunction mul3(n, callback) {\n setTimeout(function () {\n callback(null, n * 3);\n }, 10);\n}\n\nvar add1mul3 = async.compose(mul3, add1);\n\nadd1mul3(4, function (err, result) {\n // result now equals 15\n});\n```\n\n---------------------------------------\n<a name="applyEach" />\n### applyEach(fns, args..., callback)\n\nApplies the provided arguments to each function in the array, calling the\ncallback after all functions have completed. If you only provide the first\nargument then it will return a function which lets you pass in the\narguments as if it were a single function call.\n\n__Arguments__\n\n* fns - the asynchronous functions to all call with the same arguments\n* args... - any number of separate arguments to pass to the function\n* callback - the final argument should be the callback, called when all\n functions have completed processing\n\n\n__Example__\n\n```js\nasync.applyEach([enableSearch, updateSchema], \'bucket\', callback);\n\n// partial application example:\nasync.each(\n buckets,\n async.applyEach([enableSearch, updateSchema]),\n callback\n);\n```\n\n---------------------------------------\n\n<a name="applyEachSeries" />\n### applyEachSeries(arr, iterator, callback)\n\nThe same as applyEach only the functions are applied in series.\n\n---------------------------------------\n\n<a name="queue" />\n### queue(worker, concurrency)\n\nCreates a queue object with the specified concurrency. Tasks added to the\nqueue will be processed in parallel (up to the concurrency limit). If all\nworkers are in progress, the task is queued until one is available. Once\na worker has completed a task, the task\'s callback is called.\n\n__Arguments__\n\n* worker(task, callback) - An asynchronous function for processing a queued\n task, which must call its callback(err) argument when finished, with an \n optional error as an argument.\n* concurrency - An integer for determining how many worker functions should be\n run in parallel.\n\n__Queue objects__\n\nThe queue object returned by this function has the following properties and\nmethods:\n\n* length() - a function returning the number of items waiting to be processed.\n* concurrency - an integer for determining how many worker functions should be\n run in parallel. This property can be changed after a queue is created to\n alter the concurrency on-the-fly.\n* push(task, [callback]) - add a new task to the queue, the callback is called\n once the worker has finished processing the task.\n instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list.\n* unshift(task, [callback]) - add a new task to the front of the queue.\n* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued\n* empty - a callback that is called when the last item from the queue is given to a worker\n* drain - a callback that is called when the last item from the queue has returned from the worker\n\n__Example__\n\n```js\n// create a queue object with concurrency 2\n\nvar q = async.queue(function (task, callback) {\n console.log(\'hello \' + task.name);\n callback();\n}, 2);\n\n\n// assign a callback\nq.drain = function() {\n console.log(\'all items have been processed\');\n}\n\n// add some items to the queue\n\nq.push({name: \'foo\'}, function (err) {\n console.log(\'finished processing foo\');\n});\nq.push({name: \'bar\'}, function (err) {\n console.log(\'finished processing bar\');\n});\n\n// add some items to the queue (batch-wise)\n\nq.push([{name: \'baz\'},{name: \'bay\'},{name: \'bax\'}], function (err) {\n console.log(\'finished processing bar\');\n});\n\n// add some items to the front of the queue\n\nq.unshift({name: \'bar\'}, function (err) {\n console.log(\'finished processing bar\');\n});\n```\n\n---------------------------------------\n\n<a name="cargo" />\n### cargo(worker, [payload])\n\nCreates a cargo object with the specified payload. Tasks added to the\ncargo will be processed altogether (up to the payload limit). If the\nworker is in progress, the task is queued until it is available. Once\nthe worker has completed some tasks, each callback of those tasks is called.\n\n__Arguments__\n\n* worker(tasks, callback) - An asynchronous function for processing an array of\n queued tasks, which must call its callback(err) argument when finished, with \n an optional error as an argument.\n* payload - An optional integer for determining how many tasks should be\n processed per round; if omitted, the default is unlimited.\n\n__Cargo objects__\n\nThe cargo object returned by this function has the following properties and\nmethods:\n\n* length() - a function returning the number of items waiting to be processed.\n* payload - an integer for determining how many tasks should be\n process per round. This property can be changed after a cargo is created to\n alter the payload on-the-fly.\n* push(task, [callback]) - add a new task to the queue, the callback is called\n once the worker has finished processing the task.\n instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list.\n* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued\n* empty - a callback that is called when the last item from the queue is given to a worker\n* drain - a callback that is called when the last item from the queue has returned from the worker\n\n__Example__\n\n```js\n// create a cargo object with payload 2\n\nvar cargo = async.cargo(function (tasks, callback) {\n for(var i=0; i<tasks.length; i++){\n console.log(\'hello \' + tasks[i].name);\n }\n callback();\n}, 2);\n\n\n// add some items\n\ncargo.push({name: \'foo\'}, function (err) {\n console.log(\'finished processing foo\');\n});\ncargo.push({name: \'bar\'}, function (err) {\n console.log(\'finished processing bar\');\n});\ncargo.push({name: \'baz\'}, function (err) {\n console.log(\'finished processing baz\');\n});\n```\n\n---------------------------------------\n\n<a name="auto" />\n### auto(tasks, [callback])\n\nDetermines the best order for running functions based on their requirements.\nEach function can optionally depend on other functions being completed first,\nand each function is run as soon as its requirements are satisfied. If any of\nthe functions pass an error to their callback, that function will not complete\n(so any other functions depending on it will not run) and the main callback\nwill be called immediately with the error. Functions also receive an object\ncontaining the results of functions which have completed so far.\n\nNote, all functions are called with a results object as a second argument, \nso it is unsafe to pass functions in the tasks object which cannot handle the\nextra argument. For example, this snippet of code:\n\n```js\nasync.auto({\n readData: async.apply(fs.readFile, \'data.txt\', \'utf-8\');\n}, callback);\n```\n\nwill have the effect of calling readFile with the results object as the last\nargument, which will fail:\n\n```js\nfs.readFile(\'data.txt\', \'utf-8\', cb, {});\n```\n\nInstead, wrap the call to readFile in a function which does not forward the \nresults object:\n\n```js\nasync.auto({\n readData: function(cb, results){\n fs.readFile(\'data.txt\', \'utf-8\', cb);\n }\n}, callback);\n```\n\n__Arguments__\n\n* tasks - An object literal containing named functions or an array of\n requirements, with the function itself the last item in the array. The key\n used for each function or array is used when specifying requirements. The \n function receives two arguments: (1) a callback(err, result) which must be \n called when finished, passing an error (which can be null) and the result of \n the function\'s execution, and (2) a results object, containing the results of\n the previously executed functions.\n* callback(err, results) - An optional callback which is called when all the\n tasks have been completed. The callback will receive an error as an argument\n if any tasks pass an error to their callback. Results will always be passed\n\tbut if an error occurred, no other tasks will be performed, and the results\n\tobject will only contain partial results.\n \n\n__Example__\n\n```js\nasync.auto({\n get_data: function(callback){\n // async code to get some data\n },\n make_folder: function(callback){\n // async code to create a directory to store a file in\n // this is run at the same time as getting the data\n },\n write_file: [\'get_data\', \'make_folder\', function(callback){\n // once there is some data and the directory exists,\n // write the data to a file in the directory\n callback(null, filename);\n }],\n email_link: [\'write_file\', function(callback, results){\n // once the file is written let\'s email a link to it...\n // results.write_file contains the filename returned by write_file.\n }]\n});\n```\n\nThis is a fairly trivial example, but to do this using the basic parallel and\nseries functions would look like this:\n\n```js\nasync.parallel([\n function(callback){\n // async code to get some data\n },\n function(callback){\n // async code to create a directory to store a file in\n // this is run at the same time as getting the data\n }\n],\nfunction(err, results){\n async.series([\n function(callback){\n // once there is some data and the directory exists,\n // write the data to a file in the directory\n },\n function(callback){\n // once the file is written let\'s email a link to it...\n }\n ]);\n});\n```\n\nFor a complicated series of async tasks using the auto function makes adding\nnew tasks much easier and makes the code more readable.\n\n\n---------------------------------------\n\n<a name="iterator" />\n### iterator(tasks)\n\nCreates an iterator function which calls the next function in the array,\nreturning a continuation to call the next one after that. It\'s also possible to\n\'peek\' the next iterator by doing iterator.next().\n\nThis function is used internally by the async module but can be useful when\nyou want to manually control the flow of functions in series.\n\n__Arguments__\n\n* tasks - An array of functions to run.\n\n__Example__\n\n```js\nvar iterator = async.iterator([\n function(){ sys.p(\'one\'); },\n function(){ sys.p(\'two\'); },\n function(){ sys.p(\'three\'); }\n]);\n\nnode> var iterator2 = iterator();\n\'one\'\nnode> var iterator3 = iterator2();\n\'two\'\nnode> iterator3();\n\'three\'\nnode> var nextfn = iterator2.next();\nnode> nextfn();\n\'three\'\n```\n\n---------------------------------------\n\n<a name="apply" />\n### apply(function, arguments..)\n\nCreates a continuation function with some arguments already applied, a useful\nshorthand when combined with other control flow functions. Any arguments\npassed to the returned function are added to the arguments originally passed\nto apply.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to automatically apply when the\n continuation is called.\n\n__Example__\n\n```js\n// using apply\n\nasync.parallel([\n async.apply(fs.writeFile, \'testfile1\', \'test1\'),\n async.apply(fs.writeFile, \'testfile2\', \'test2\'),\n]);\n\n\n// the same process without using apply\n\nasync.parallel([\n function(callback){\n fs.writeFile(\'testfile1\', \'test1\', callback);\n },\n function(callback){\n fs.writeFile(\'testfile2\', \'test2\', callback);\n }\n]);\n```\n\nIt\'s possible to pass any number of additional arguments when calling the\ncontinuation:\n\n```js\nnode> var fn = async.apply(sys.puts, \'one\');\nnode> fn(\'two\', \'three\');\none\ntwo\nthree\n```\n\n---------------------------------------\n\n<a name="nextTick" />\n### nextTick(callback)\n\nCalls the callback on a later loop around the event loop. In node.js this just\ncalls process.nextTick, in the browser it falls back to setImmediate(callback)\nif available, otherwise setTimeout(callback, 0), which means other higher priority\nevents may precede the execution of the callback.\n\nThis is used internally for browser-compatibility purposes.\n\n__Arguments__\n\n* callback - The function to call on a later loop around the event loop.\n\n__Example__\n\n```js\nvar call_order = [];\nasync.nextTick(function(){\n call_order.push(\'two\');\n // call_order now equals [\'one\',\'two\']\n});\ncall_order.push(\'one\')\n```\n\n<a name="times" />\n### times(n, callback)\n\nCalls the callback n times and accumulates results in the same manner\nyou would use with async.map.\n\n__Arguments__\n\n* n - The number of times to run the function.\n* callback - The function to call n times.\n\n__Example__\n\n```js\n// Pretend this is some complicated async factory\nvar createUser = function(id, callback) {\n callback(null, {\n id: \'user\' + id\n })\n}\n// generate 5 users\nasync.times(5, function(n, next){\n createUser(n, function(err, user) {\n next(err, user)\n })\n}, function(err, users) {\n // we should now have 5 users\n});\n```\n\n<a name="timesSeries" />\n### timesSeries(n, callback)\n\nThe same as times only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n\n## Utils\n\n<a name="memoize" />\n### memoize(fn, [hasher])\n\nCaches the results of an async function. When creating a hash to store function\nresults against, the callback is omitted from the hash and an optional hash\nfunction can be used.\n\nThe cache of results is exposed as the `memo` property of the function returned\nby `memoize`.\n\n__Arguments__\n\n* fn - the function you to proxy and cache results from.\n* hasher - an optional function for generating a custom hash for storing\n results, it has all the arguments applied to it apart from the callback, and\n must be synchronous.\n\n__Example__\n\n```js\nvar slow_fn = function (name, callback) {\n // do something\n callback(null, result);\n};\nvar fn = async.memoize(slow_fn);\n\n// fn can now be used as if it were slow_fn\nfn(\'some name\', function () {\n // callback\n});\n```\n\n<a name="unmemoize" />\n### unmemoize(fn)\n\nUndoes a memoized function, reverting it to the original, unmemoized\nform. Comes handy in tests.\n\n__Arguments__\n\n* fn - the memoized function\n\n<a name="log" />\n### log(function, arguments)\n\nLogs the result of an async function to the console. Only works in node.js or\nin browsers that support console.log and console.error (such as FF and Chrome).\nIf multiple arguments are returned from the async function, console.log is\ncalled on each argument in order.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to apply to the function.\n\n__Example__\n\n```js\nvar hello = function(name, callback){\n setTimeout(function(){\n callback(null, \'hello \' + name);\n }, 1000);\n};\n```\n```js\nnode> async.log(hello, \'world\');\n\'hello world\'\n```\n\n---------------------------------------\n\n<a name="dir" />\n### dir(function, arguments)\n\nLogs the result of an async function to the console using console.dir to\ndisplay the properties of the resulting object. Only works in node.js or\nin browsers that support console.dir and console.error (such as FF and Chrome).\nIf multiple arguments are returned from the async function, console.dir is\ncalled on each argument in order.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to apply to the function.\n\n__Example__\n\n```js\nvar hello = function(name, callback){\n setTimeout(function(){\n callback(null, {hello: name});\n }, 1000);\n};\n```\n```js\nnode> async.dir(hello, \'world\');\n{hello: \'world\'}\n```\n\n---------------------------------------\n\n<a name="noConflict" />\n### noConflict()\n\nChanges the value of async back to its original value, returning a reference to the\nasync object.\n', | |
| 1138 silly resolved readmeFilename: 'README.md', | |
| 1138 silly resolved homepage: 'https://github.com/caolan/async', | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved _from: 'async@~0.2.9' }, | |
| 1138 silly resolved { name: 'thalassa', | |
| 1138 silly resolved version: '0.3.2', | |
| 1138 silly resolved description: 'A lightweight service registry using Redis inspired by Seaport', | |
| 1138 silly resolved main: 'index.js', | |
| 1138 silly resolved scripts: { test: 'jshint *.js lib/**/*.js test/*.js --config .jshintrc && mocha test/test*' }, | |
| 1138 silly resolved bin: | |
| 1138 silly resolved { 'thalassa-server': './bin/server.js', | |
| 1138 silly resolved 'thalassa-client': './bin/client.js' }, | |
| 1138 silly resolved repository: | |
| 1138 silly resolved { type: 'git', | |
| 1138 silly resolved url: 'git://github.com/PearsonEducation/Thalassa.git' }, | |
| 1138 silly resolved keywords: [ 'service', 'registry', 'haproxy' ], | |
| 1138 silly resolved author: { name: 'Mike Brevoort', email: '[email protected]' }, | |
| 1138 silly resolved license: 'Apache2', | |
| 1138 silly resolved readmeFilename: 'README.md', | |
| 1138 silly resolved bugs: { url: 'https://github.com/PearsonEducation/Thalassa/issues' }, | |
| 1138 silly resolved devDependencies: | |
| 1138 silly resolved { mocha: '~1.12.0', | |
| 1138 silly resolved jshint: '~2.1.4', | |
| 1138 silly resolved portfinder: '~0.2.1', | |
| 1138 silly resolved request: '~2.21.0' }, | |
| 1138 silly resolved optionalDependencies: { hiredis: '~0.1.15' }, | |
| 1138 silly resolved dependencies: | |
| 1138 silly resolved { hapi: '~1.8.2', | |
| 1138 silly resolved optimist: '~0.6.0', | |
| 1138 silly resolved 'cli-color': '~0.2.2', | |
| 1138 silly resolved redis: '~0.8.4', | |
| 1138 silly resolved ip: '~0.1.0', | |
| 1138 silly resolved request: '~2.27.0', | |
| 1138 silly resolved 'thalassa-registrations': '~0.1.0', | |
| 1138 silly resolved axon: '~1.0.0', | |
| 1138 silly resolved hiredis: '~0.1.15' }, | |
| 1138 silly resolved engines: { node: '>0.10.0' }, | |
| 1138 silly resolved readme: 'Thalassa\n========\n\nThalassa is a lightweight service registry build primarily on [node.js](http://nodejs.org/), [Redis](http://redis.io/) and [Axon](https://github.com/visionmedia/axon), inspired by [Seaport](https://github.com/substack/seaport). Thalassa is actually a system of components primarily geared to enable continuous deployment scenarios through dynamic configuration of [HAProxy](http://haproxy.1wt.eu/) load balancers and seamless, no connection drop A/B deploys.\n\nThis is the central module that includes the server registry and client. The registry uses a ping and expiration type approach. Clients register with the server and pass an optional `secondsToExpire` property telling the server when it is acceptable to expire the registration if the registration is not updated in that time. There is an internal "reaper" function that runs periodically to reap expired registrations. More on that later.\n\n[](https://nodei.co/npm/thalassa/)\n\n### History\n\nThalassa is a second generation system, superseding what was otherwise knows as "Spindrift" inside of [Pearson](http://www.pearson.com/). Spindrift leaned heavily on [@substack](https://github.com/substack)\'s Seaport module. Incidentally, Seaport was the original inspiration for the aquatic theme of Spindrift and Thalassa. \n\nIn Greek mythology, Thalassa was the primeval spirit of the sea. In the fables of Aesop, Thalassa appears as a woman formed of sea water rising up from her native element. Thalassa was depicted in Roman-era mosaics as a woman half submerged in the sea, with crab-claw horns, clothed in bands of seaweed, and holding a ship\'s oar.<sup>[1](http://www.theoi.com/Protogenos/Thalassa.html)</sup>\n\n\n\n# Installation\n\n npm install thalassa\n \nor globally\n \n npm install -g thalassa\n \n# Running the Server\n\nThe Thalassa server and client may be run from the command line or embedded as a module within your application.\n\n## Running from Command Line\n \nAssuming Redis is installed and running, start the thalassa server with default options:\n\n ./node_modules/.bin/thalassa-server --debug\n \nor\n\n thalassa-server --debug\n\n \n### Server Command Line Options\n\n thalassa-server --help\n Options:\n --host host to bind to [default: "127.0.0.1"]\n --port port to bind to for axon socket [default: 5001]\n --apihost host to bind to [default: "127.0.0.1"]\n --apiport port to bind to for http api [default: 9000]\n --redisHost Redis host [default: "127.0.0.1"]\n --redisPort Redis port [default: 6379]\n --redisDatabase Redis database to select [default: 0]\n --reaperFreq Reaper frequency (ms) [default: 2000]\n --debug enabled debug logging\n\n\n## Server as an Embedded Module\n\nThe same options above (except `debug`) may be passed by properties set in the `opts` object. For example using `new Thalassa.Server(opts)`:\n\n var Thalassa = require(\'thalassa\');\n \n var server = new Thalassa.Server({\n port: 4444,\n apiport: 4445,\n host: \'localhost\'\n });\n \nIn addition `opts.log` may be optionally set to your own function to handle logging. `opts.log` expects this signature: `function log (level, message, object){}`. `level` will be one of `debug`, `info`, and `error`. `message` is a string and `object` is an optional object with key value pairs. Of `opts.log` is not passed, the module will be quiet.\n\n\n# Running the Client\n\nThe client can be run any of three ways. \n\n1. From the command-line\n2. As a module\n3. Over HTTP\n\n## Running Client from Command Line\n\nWhy would you do this? Let\'s say you have an existing legacy Java application that you\'d rather not change. You can create a sister service that invokes the command line client to register the service on it\'s behalf.\n\nFor example, if Thalassa is installed globally (other wise `./node_modules/.bin/thalassa-client):\n\n thalassa-client --register [email protected]:8080 --debug\n \nThis registers the application named `my app` at version `1.0.0` that\'s on the current host on port `8080`. The client will continue to ping the Thalassa server with updates.\n\n### Client Command Line Options\n\n thalassa-client --help\n Options:\n --host thalassa host [default: "127.0.0.1"]\n --port thalassa axon socket port [default: 5001]\n --apiport thalassa http api port [default: 9000]\n --register [email protected]:port,[email protected]:port [required]\n --debug enabled debug logging\n\n## Client as an Embedded Module\n\nUsing the client from within a node.js application to register your service is simple. Pass options via the `opts` object like `new Thalassa.Client(opts)`:\n\n var Thalassa = require(\'thalassa\');\n \n var client = new Thalassa.Client({\n port: 4444,\n apiport: 4445,\n host: \'localhost\'\n });\n \n client.register(\'myapp\', \'1.0.0\', 8080);\n \n // start reporting registrations to the server\n client.start();\n\n // stop reporting registrations to the server\n client.stop();\n \n`opts.log` may be passed just like the server.\n\n### `updateSuccessful` and `updateFailed` Events\n\nThe client will periodically check in with the Thalassa server according to `opts.updateFreq` (default 5000ms). Each registration will product a `updateSuccessful` or `updateFailed` event to be emitted.\n\n client.on(\'updateSuccessful\', function () {});\n client.on(\'updateFailed\', function (error) {});\n\n### Subscriptions and `online` and `offline` Events\n\nIf running as a module, you also have access to `subscribe` to `online` and `offline` events of certain applications. For example:\n\n client.subscribe(\'myapp\', \'1.0.0\');\n client.on(\'online\', function (registration) {});\n client.on(\'offline\', function (registration) {});\n\nAlternatively for all versions of `myapp`:\n\n client.subscribe(\'myapp\');\n \nOr every service registration:\n\n client.subscribe();\n\n### Querying Registrations\n\nAlso as a module, you can use the client API to query for registrations. \n\n client.getRegistrations(\'myapp\', \'1.0.0\', function (err, registrations) {\n // registrations is an Array of Registrations\n }\nSee the HTTP API section for the `Registration` structure.\n\n### Metadata\n\nYou can also pass metadata with any registration as a fourth parameter. This can be any javascript object with properties. For example:\n\n var meta = {\n az: \'use1a\',\n size: \'m1.large\',\n foo: {\n bar: \'baz\'\n }\n };\n client.register(\'myapp\', \'1.0.0\', 8080, meta)\n\n## HTTP Client \n\nThe Thalassa server exposes a simple HTTP API so it\'s not necessary to use the `node.js` client and any application that\'s capable of calling HTTP can participate as an application in the system. See the HTTP API.\n\n# HTTP API\n\n### GET `/registrations/{name}/{version}`\n### GET `/registrations/{name}`\n### GET `/registrations`\n\nReturn `Registrations[]` of all registrations for the optionally provided `name` and `version`. `/registrations` returns everything.\n\n\n`Registration` is defined in it\'s own module `thalassa-registrations`. A typical registration looks like this:\n\n {\n "name": "myapp",\n "version": "1.0.0",\n "host": "192.168.8.106",\n "port": 8080,\n "lastKnown": 1378682020883,\n "meta": {\n "hostname": "mb-mbp.local",\n "pid": 66593,\n "registered": 1378682010864\n },\n "id": "/myapp/1.0.0/192.168.8.106/8080"\n }\n\nAll times are in Unix time since epoch form.\n\nThe Thalassa client will automatically add `meta.pid` and the server will automatically add `registered` and `hostname` if not provided. If a `hostname` is not provided by the client, the IP will be used instead. Additionally, the Thalassa client will automatically set `hostname` to `require(\'os\').hostname()`.\n\n### POST `/registrations/{name}/{version}/{host}/{port}`\n\nCreate or update a registration.\n\nThe BODY of the POST should be `application/json` and will be added to `meta`. \n\nAdditionally `meta.secondsToExpire` should be set to explicitly set the expiration time of the registration. In essence you are telling the Thalassa server, if you don\'t hear back from me in so many seconds, expire my registration and fire an `offline` event. This properly allows the client to tune how often they poll balanced with how long they are willing to accept stale registration data. If you set `secondsToExpire` to `300` then you may poll every ten minutes, but if your service goes down or is underplayed, consumers won\'t know it for at most `300` seconds. \n\n### DELETE `/registrations/{name}/{version}/{host}/{port}`\n\nExplicitly delete a registration, causing an `offline` event.\n\n# Known Limitations and Roadmap\n\nThalassa currently doesn\'t implement any type of authentication or authorization and at this point expects to be running on a trusted private network. This will be addressed in the future. Ultimately auth should be extensible and customizable. Suggestions and pull requests welcome!\n\n# License\n\nLicensed under Apache 2.0. See [LICENSE](https://github.com/PearsonEducation/thalassa/blob/master/LICENSE) file.\n', | |
| 1138 silly resolved homepage: 'https://github.com/PearsonEducation/Thalassa', | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved _from: 'thalassa@~0.3.2' }, | |
| 1138 silly resolved { name: 'connect', | |
| 1138 silly resolved version: '2.7.11', | |
| 1138 silly resolved description: 'High performance middleware framework', | |
| 1138 silly resolved keywords: [ 'framework', 'web', 'middleware', 'connect', 'rack' ], | |
| 1138 silly resolved repository: { type: 'git', url: 'git://github.com/senchalabs/connect.git' }, | |
| 1138 silly resolved author: | |
| 1138 silly resolved { name: 'TJ Holowaychuk', | |
| 1138 silly resolved email: '[email protected]', | |
| 1138 silly resolved url: 'http://tjholowaychuk.com' }, | |
| 1138 silly resolved dependencies: | |
| 1138 silly resolved { qs: '0.6.5', | |
| 1138 silly resolved formidable: '1.0.14', | |
| 1138 silly resolved 'cookie-signature': '1.0.1', | |
| 1138 silly resolved 'buffer-crc32': '0.2.1', | |
| 1138 silly resolved cookie: '0.0.5', | |
| 1138 silly resolved send: '0.1.1', | |
| 1138 silly resolved bytes: '0.2.0', | |
| 1138 silly resolved fresh: '0.1.0', | |
| 1138 silly resolved pause: '0.0.1', | |
| 1138 silly resolved debug: '*' }, | |
| 1138 silly resolved devDependencies: { should: '*', mocha: '*', jade: '*', dox: '*' }, | |
| 1138 silly resolved main: 'index', | |
| 1138 silly resolved engines: { node: '>= 0.8.0' }, | |
| 1138 silly resolved scripts: { test: 'make' }, | |
| 1138 silly resolved readme: '[](http://travis-ci.org/senchalabs/connect)\n# Connect\n\n Connect is an extensible HTTP server framework for [node](http://nodejs.org), providing high performance "plugins" known as _middleware_.\n\n Connect is bundled with over _20_ commonly used middleware, including\n a logger, session support, cookie parser, and [more](http://senchalabs.github.com/connect). Be sure to view the 2.x [documentation](http://senchalabs.github.com/connect/).\n\n```js\nvar connect = require(\'connect\')\n , http = require(\'http\');\n\nvar app = connect()\n .use(connect.favicon())\n .use(connect.logger(\'dev\'))\n .use(connect.static(\'public\'))\n .use(connect.directory(\'public\'))\n .use(connect.cookieParser())\n .use(connect.session({ secret: \'my secret here\' }))\n .use(function(req, res){\n res.end(\'Hello from Connect!\\n\');\n });\n\nhttp.createServer(app).listen(3000);\n```\n\n## Middleware\n\n - [csrf](http://www.senchalabs.org/connect/csrf.html)\n - [basicAuth](http://www.senchalabs.org/connect/basicAuth.html)\n - [bodyParser](http://www.senchalabs.org/connect/bodyParser.html)\n - [json](http://www.senchalabs.org/connect/json.html)\n - [multipart](http://www.senchalabs.org/connect/multipart.html)\n - [urlencoded](http://www.senchalabs.org/connect/urlencoded.html)\n - [cookieParser](http://www.senchalabs.org/connect/cookieParser.html)\n - [directory](http://www.senchalabs.org/connect/directory.html)\n - [compress](http://www.senchalabs.org/connect/compress.html)\n - [errorHandler](http://www.senchalabs.org/connect/errorHandler.html)\n - [favicon](http://www.senchalabs.org/connect/favicon.html)\n - [limit](http://www.senchalabs.org/connect/limit.html)\n - [logger](http://www.senchalabs.org/connect/logger.html)\n - [methodOverride](http://www.senchalabs.org/connect/methodOverride.html)\n - [query](http://www.senchalabs.org/connect/query.html)\n - [responseTime](http://www.senchalabs.org/connect/responseTime.html)\n - [session](http://www.senchalabs.org/connect/session.html)\n - [static](http://www.senchalabs.org/connect/static.html)\n - [staticCache](http://www.senchalabs.org/connect/staticCache.html)\n - [vhost](http://www.senchalabs.org/connect/vhost.html)\n - [subdomains](http://www.senchalabs.org/connect/subdomains.html)\n - [cookieSession](http://www.senchalabs.org/connect/cookieSession.html)\n\n## Running Tests\n\nfirst:\n\n $ npm install -d\n\nthen:\n\n $ make test\n\n## Authors\n\n Below is the output from [git-summary](http://github.com/visionmedia/git-extras).\n\n\n project: connect\n commits: 2033\n active : 301 days\n files : 171\n authors: \n 1414\tTj Holowaychuk 69.6%\n 298\tvisionmedia 14.7%\n 191\tTim Caswell 9.4%\n 51\tTJ Holowaychuk 2.5%\n 10\tRyan Olds 0.5%\n 8\tAstro 0.4%\n 5\tNathan Rajlich 0.2%\n 5\tJakub Nešetřil 0.2%\n 3\tDaniel Dickison 0.1%\n 3\tDavid Rio Deiros 0.1%\n 3\tAlexander Simmerl 0.1%\n 3\tAndreas Lind Petersen 0.1%\n 2\tAaron Heckmann 0.1%\n 2\tJacques Crocker 0.1%\n 2\tFabian Jakobs 0.1%\n 2\tBrian J Brennan 0.1%\n 2\tAdam Malcontenti-Wilson 0.1%\n 2\tGlen Mailer 0.1%\n 2\tJames Campos 0.1%\n 1\tTrent Mick 0.0%\n 1\tTroy Kruthoff 0.0%\n 1\tWei Zhu 0.0%\n 1\tcomerc 0.0%\n 1\tdarobin 0.0%\n 1\tnateps 0.0%\n 1\tMarco Sanson 0.0%\n 1\tArthur Taylor 0.0%\n 1\tAseem Kishore 0.0%\n 1\tBart Teeuwisse 0.0%\n 1\tCameron Howey 0.0%\n 1\tChad Weider 0.0%\n 1\tCraig Barnes 0.0%\n 1\tEran Hammer-Lahav 0.0%\n 1\tGregory McWhirter 0.0%\n 1\tGuillermo Rauch 0.0%\n 1\tJae Kwon 0.0%\n 1\tJakub Nesetril 0.0%\n 1\tJoshua Peek 0.0%\n 1\tJxck 0.0%\n 1\tAJ ONeal 0.0%\n 1\tMichael Hemesath 0.0%\n 1\tMorten Siebuhr 0.0%\n 1\tSamori Gorse 0.0%\n 1\tTom Jensen 0.0%\n\n## Node Compatibility\n\n Connect `< 1.x` is compatible with node 0.2.x\n\n\n Connect `1.x` is compatible with node 0.4.x\n\n\n Connect (_master_) `2.x` is compatible with node 0.6.x\n\n## CLA\n\n [http://sencha.com/cla](http://sencha.com/cla)\n\n## License\n\nView the [LICENSE](https://github.com/senchalabs/connect/blob/master/LICENSE) file. The [Silk](http://www.famfamfam.com/lab/icons/silk/) icons used by the `directory` middleware created by/copyright of [FAMFAMFAM](http://www.famfamfam.com/).\n', | |
| 1138 silly resolved readmeFilename: 'Readme.md', | |
| 1138 silly resolved bugs: { url: 'https://github.com/senchalabs/connect/issues' }, | |
| 1138 silly resolved homepage: 'https://github.com/senchalabs/connect', | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved _from: 'connect@~2.7.9' }, | |
| 1138 silly resolved { name: 'transport-adapters', | |
| 1138 silly resolved version: '0.1.0', | |
| 1138 silly resolved description: 'Transport adapters for ShareJS', | |
| 1138 silly resolved main: 'index.js', | |
| 1138 silly resolved directories: { example: 'examples', test: 'test' }, | |
| 1138 silly resolved scripts: { test: './node_modules/.bin/mocha --ui bdd --reporter spec --compilers coffee:coffee-script test/*.coffee' }, | |
| 1138 silly resolved repository: | |
| 1138 silly resolved { type: 'git', | |
| 1138 silly resolved url: 'https://github.com/Dignifiedquire/transport-adapters.git' }, | |
| 1138 silly resolved keywords: [ 'ShareJS', 'SockJS', 'browserchannel' ], | |
| 1138 silly resolved author: | |
| 1138 silly resolved { name: 'Friedel Ziegelmayer', | |
| 1138 silly resolved email: '[email protected]' }, | |
| 1138 silly resolved license: 'MIT', | |
| 1138 silly resolved bugs: { url: 'https://github.com/Dignifiedquire/transport-adapters/issues' }, | |
| 1138 silly resolved devDependencies: | |
| 1138 silly resolved { chai: '~1.8.1', | |
| 1138 silly resolved mocha: '~1.13.0', | |
| 1138 silly resolved share: '~0.7.0-alpha9', | |
| 1138 silly resolved 'coffee-script': '~1.6.3' }, | |
| 1138 silly resolved readme: '# Transport Adapters for ShareJS [](https://travis-ci.org/Dignifiedquire/transport-adapters)\n\nThis is a collection of adapters to use different transports\nwith ShareJS 0.7.\n\n\n## Available Adapters\n\n\n### Browserchannel\n\nUsage example:\n\n```bash\n$ cd examples/browserchannel\n$ npm install\n$ node server.js\n$ open http://localhost:3000\n```\n\n\n### SockJS\n\nUsage example:\n\n```bash\n$ cd examples/sockjs\n$ npm install\n$ node server.js\n$ open http://localhost:3000\n```\n\n\n## Development\n\nRun `npm install` to install all dependencies and `npm test` to run the\ntests.\n', | |
| 1138 silly resolved readmeFilename: 'README.md', | |
| 1138 silly resolved homepage: 'https://github.com/Dignifiedquire/transport-adapters', | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved dist: { shasum: 'db9ed5ce1e84d609ab5ad1766767205f1d331da9' }, | |
| 1138 silly resolved _resolved: 'git://github.com/Dignifiedquire/transport-adapters#f1c188a6bf42b247c981587e299e6405eb4492e9', | |
| 1138 silly resolved _from: 'transport-adapters@git://github.com/Dignifiedquire/transport-adapters' }, | |
| 1138 silly resolved { name: 'node-codio', | |
| 1138 silly resolved version: '0.0.1', | |
| 1138 silly resolved description: 'Codio API', | |
| 1138 silly resolved main: 'index.js', | |
| 1138 silly resolved private: true, | |
| 1138 silly resolved scripts: { test: './node_modules/.bin/grunt' }, | |
| 1138 silly resolved repository: { type: 'git', url: 'https://github.com/codio/node-codio.git' }, | |
| 1138 silly resolved author: { name: 'Codio', email: '[email protected]' }, | |
| 1138 silly resolved bugs: { url: 'https://github.com/codio/node-codio/issues' }, | |
| 1138 silly resolved engines: { node: '~0.10' }, | |
| 1138 silly resolved devDependencies: | |
| 1138 silly resolved { 'grunt-notify': '~0.2.16', | |
| 1138 silly resolved 'grunt-contrib-watch': '~0.5.3', | |
| 1138 silly resolved 'grunt-simple-mocha': '~0.4.0', | |
| 1138 silly resolved grunt: '~0.4.2', | |
| 1138 silly resolved 'grunt-contrib-jshint': '~0.7.2' }, | |
| 1138 silly resolved dependencies: { lodash: '~2.4.0' }, | |
| 1138 silly resolved readme: '# Node Codio\n\nAPI to connect to [codio/server] from a node.js client.\n\n\n\n## Usage\n\n```js\nvar API = require(\'node-codio\');\n\nvar api = new API(options);\n\napi.projectStructureManager.getFile(\'hello.txt\', auth, function (err, data) {\n if (err) return console.error(err);\n console.log(\'Got data: \', data);\n});\n```\n\n## Configuration\n\nYou can pass the constructor an options object with the following properites:\n\n* `useOrigin`: (`Boolean`) Set to true if you are running the server locally.\n Used primarily for development and testing.\n* `hostname`: (`String`) Hostname of the server.\n* `path`: (`String`) Path that will be appended to the hostname.\n* `port`: (`Number`) Port where the server will be run.\n\n\n## Available Methods\n\n\n### ProjectManager\n\n* `getProjectByName`\n* `checkPermissionForUser`\n* `checkPermissionForProject`\n\n### ProjectStructureManager\n\n* `getFile`\n* `updateFile`\n* `removePath`\n* `createFile`\n* `moveItem`\n* `copyItem`\n* `makeDirectory`\n\n## Development\n\n\n```bash\n$ git clone https://github.com/codio/node-codio.git\n$ cd node-codio\n$ npm install\n```\n\nStart developing, tests can be run via `grunt test` and `grunt watch`\nruns unit tests on save. Before commiting any changes make sure to run the\ndefault `grunt` task to execute jshint and all unit tests.\n\n\n\n[codio/server]: https://github.com/codio/server\n\n', | |
| 1138 silly resolved readmeFilename: 'README.md', | |
| 1138 silly resolved homepage: 'https://github.com/codio/node-codio', | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved dist: { shasum: '8f962373a982079164eb394588f216e0e207d054' }, | |
| 1138 silly resolved _resolved: 'git+ssh://git@codio-node_deploy_key:codio/node-codio#b26ffbb9211ee576556903fcc23f8db2339392cf', | |
| 1138 silly resolved _from: 'node-codio@git+ssh://git@codio-node_deploy_key:codio/node-codio' }, | |
| 1138 silly resolved { name: 'livedb', | |
| 1138 silly resolved version: '0.2.8', | |
| 1138 silly resolved description: 'Realtime database wrapper', | |
| 1138 silly resolved main: 'lib/index.js', | |
| 1138 silly resolved dependencies: | |
| 1138 silly resolved { redis: '~0.8', | |
| 1138 silly resolved ottypes: '~1', | |
| 1138 silly resolved 'deep-is': '~0.1', | |
| 1138 silly resolved arraydiff: '~0.1', | |
| 1138 silly resolved hiredis: '~0.1', | |
| 1138 silly resolved 'statsd-client': '*' }, | |
| 1138 silly resolved optionalDependencies: { hiredis: '~0.1', 'statsd-client': '*' }, | |
| 1138 silly resolved devDependencies: { mocha: '~1', sinon: '~1', 'coffee-script': '*' }, | |
| 1138 silly resolved scripts: { test: 'mocha' }, | |
| 1138 silly resolved repository: { type: 'git', url: 'git://github.com/share/livedb.git' }, | |
| 1138 silly resolved author: { name: 'Joseph Gentle', email: '[email protected]' }, | |
| 1138 silly resolved license: 'MIT', | |
| 1138 silly resolved gitHead: 'a95ee727e5cb43a40476f58554774b776fb08f68', | |
| 1138 silly resolved readme: '# LIVE DB!\n\nThis is a database wrapper which exposes the API that realtime databases should\nhave.\n\nYou can submit operations (edit documents) and subscribe to documents.\nSubscribing gives you a stream of all operations applied to the given\ndocument. You can also make queries, which give you a feed of changes in the\nresult set while the query is open.\n\nCurrently this is very new and only used by ShareJS. To use it, you need a\nsnapshot database wrapper. The obvious choice is mongodb. A database wrapper\nfor mongo is available in\n[share/livedb-mongo](https://github.com/share/livedb-mongo).\n\n\n## Data Model\n\nIn LiveDB\'s view of the world, every document has 3 properties:\n\n- **version**: an incrementing number starting at 0\n- **type**: an OT type. OT types are defined in\n[share/ottypes](https://github.com/share/ottypes). Types are referenced using\ntheir URIs (even though those URIs don\'t actually mean anything). Documents\nwhich don\'t exist implicitly have a type of `null`.\n- **data**: The actual data that the document contains. This must be pure\nacyclic JSON. Its also type-specific. (JSON type uses raw JSON, text documents\nuse a string, etc).\n\nLiveDB implicitly has a record for every document you can access. New documents\nhave version 0, a null type and no data. To use a document, you must first\nsubmit a *create operation*, which will set the document\'s type and give it\ninitial data. Then you can submit editing operations on the document (using\nOT). Finally you can delete the document with a delete operation. By\ndefault, livedb stores all operations forever - nothing is truly deleted.\n\n\n## Using Livedb\n\nLivedb requires a backend database to store snapshots & operations. You can put snapshots & operations in different places if you want, though its easier to put all data in the same place.\n\nThe backend database(s) needs to implement a [simple API which has documentation and a sample implementation here](https://github.com/share/livedb/blob/master/lib/memory.js). Currently the only database binding is [livedb-mongo](https://github.com/share/livedb-mongo).\n\nA livedb client is created using either an options object or a database backend. If you specify a database backend, its used as both oplog and snapshot.\n\n```javascript\ndb = require(\'livedb-mongo\')(\'localhost:27017/test?auto_reconnect\', {safe:true});\nlivedb = require(\'livedb\').client(db);\n```\n\nOr using an options object:\n\n```\ndb = require(\'livedb-mongo\')(\'localhost:27017/test?auto_reconnect\', {safe:true});\nlivedb = require(\'livedb\').client({db:db});\n```\n\nYou can use a different database for both snapshots and operations:\n\n```\nsnapshotdb = require(\'livedb-mongo\')(\'localhost:27017/test?auto_reconnect\', {safe:true});\noplog = {writeOp:..., getVersion:..., getOps:...};\nlivedb = require(\'livedb\').client({snapshotDb:snapshotdb, oplog:oplog});\n```\n\n\n`client({db:db});` is a shorthand for `client({snapshotDb:db, oplog:db})`.\n\nThe options object can also be passed:\n\n- **redis:** *redis client*. This can be specified if there is any further\n configuration of redis that you want to perform. The obvious examples of\n this are when redis is running on a remote machine, redis requires\n authentication or you want to use something other than redis db 0.\n- **redisObserver:** *redis client*. Livedb actually needs 2 redis connections,\n because redis doesn\'t let you use a connection with pubsub subscriptions\n to edit data. Livedb will automatically try to clone the first connection\n to make the observer connection, but we can\'t copy some options. if you\n want to do anything thats particularly fancy, you should make 2 redis\n instances and provide livedb with both of them. Note that because redis\n pubsub messages aren\'t constrained to the selected database, the\n redisObserver doesn\'t need to select the db you have your data in.\n- **extraDbs:** *{name:query db}* This is used to register extra database backends which will be\n notified whenever operations are submitted. They can also be used in\n queries.\n\n\n### Creating documents\n\nTo create a document, you first need to submit a create operation to the\ndocument to set its type. A document doesn\'t properly exist until it has a type\n--- it certainly can\'t store any data.\n\nA create operation looks like this: `{create:{type:TYPE, [data:INITIAL DATA]}, [v:VERSION]}`. The type should be something accessible in the map returned by require(\'ottypes\'), for example `json0` or `http://sharejs.org/types/textv1`. Specifying initial data is optional. If provided, it is passed to the type\'s `create()` method. This does what you expect - for JSON documents, pass your initial object here. For text documents, pass a string containing the document\'s contents. As with all operations, the version is optional. You probably don\'t want to specify the version for a create message.\n\nFor example:\n\n```javascript\nlivedb.submit(\'users\', \'fred\', {create:{type:\'json0\', data:[1,2,3]}}, function(err, version, transformedByOps, snapshot) {\n // I made a document, ma!\n});\n```\n\nSince documents implicitly exist with no type at version 0, usually the create message will increment the version from 0 to 1. Not all documents you want to delete have a version of 0 - if a document is deleted, it will retain its version.\n\n### Deleting documents\n\nDeleting documents is similar to creating them. A deleted document has no type and no data, but will retain its version (actually, the delete operation will bump the document\'s version). A delete operation looks like this: `{del:true, [v:VERSION]}`.\n\n```javascript\nlivedb.submit(\'users\', \'fred\', {del:true}, function(err) {\n //goneskies! Kapow!\n});\n```\n\n### Editing documents\n\nYou edit a document by submitting an operation. Operations are OT type-specific JSON blobs. Refer to the documentation on the particular OT type for details. For example, text documents are documented [here](https://github.com/share/ottypes/blob/master/lib/text.js#L10-L16). If we had a text document stored in LiveDB and wanted to edit it, it might look like this:\n\n```javascript\nlivedb.submit(\'love letters\', \'dear fred\', {op:[6, "You never return my calls!"], v:1002}, function(err) {\n // ...\n});\n```\n\nYou should always specify the version when submitting operations. If you don\'t, operations will do funny things in the face of concurrency.\n\n\n', | |
| 1138 silly resolved readmeFilename: 'README.md', | |
| 1138 silly resolved bugs: { url: 'https://github.com/share/livedb/issues' }, | |
| 1138 silly resolved homepage: 'https://github.com/share/livedb', | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved dist: { shasum: '553a2a8119081f185aa4d6c943462610d13deb2a' }, | |
| 1138 silly resolved _resolved: 'git://github.com/Dignifiedquire/livedb#f5646f505131fc398df8098fafac6af2c9aab8a6', | |
| 1138 silly resolved _from: 'livedb@git://github.com/Dignifiedquire/livedb#old_snapshot' }, | |
| 1138 silly resolved { name: 'share', | |
| 1138 silly resolved version: '0.7.0-alpha9', | |
| 1138 silly resolved description: 'A database for concurrent document editing', | |
| 1138 silly resolved keywords: | |
| 1138 silly resolved [ 'operational transformation', | |
| 1138 silly resolved 'ot', | |
| 1138 silly resolved 'concurrent', | |
| 1138 silly resolved 'collaborative', | |
| 1138 silly resolved 'database', | |
| 1138 silly resolved 'server' ], | |
| 1138 silly resolved homepage: 'https://github.com/josephg/sharejs', | |
| 1138 silly resolved author: { name: 'Joseph Gentle', email: '[email protected]' }, | |
| 1138 silly resolved dependencies: | |
| 1138 silly resolved { livedb: '>=0.2.3', | |
| 1138 silly resolved ottypes: '~1', | |
| 1138 silly resolved semver: '~2', | |
| 1138 silly resolved express: '~3', | |
| 1138 silly resolved hat: '*', | |
| 1138 silly resolved async: '~0.2' }, | |
| 1138 silly resolved devDependencies: | |
| 1138 silly resolved { 'coffee-script': '~1.6.3', | |
| 1138 silly resolved connect: '~2', | |
| 1138 silly resolved coffeeify: '*', | |
| 1138 silly resolved browserify: '~2.35.1', | |
| 1138 silly resolved optimist: '>= 0.2.4', | |
| 1138 silly resolved browserchannel: '*', | |
| 1138 silly resolved mocha: '~1.13.0', | |
| 1138 silly resolved chai: '*', | |
| 1138 silly resolved sinon: '1.7.1', | |
| 1138 silly resolved redis: '~0.8.6', | |
| 1138 silly resolved 'uglify-js': '~2', | |
| 1138 silly resolved karma: '~0.10.2', | |
| 1138 silly resolved 'karma-chrome-launcher': '~0.1.0', | |
| 1138 silly resolved 'karma-firefox-launcher': '~0.1.0', | |
| 1138 silly resolved 'karma-coffee-preprocessor': '~0.1.0', | |
| 1138 silly resolved 'karma-browserify': '0.0.5', | |
| 1138 silly resolved 'karma-mocha': '~0.1.0', | |
| 1138 silly resolved 'transport-adapters': 'git://github.com/Dignifiedquire/transport-adapters' }, | |
| 1138 silly resolved engine: 'node >= 0.10', | |
| 1138 silly resolved main: 'lib/index.js', | |
| 1138 silly resolved bin: { sharejs: 'bin/sharejs' }, | |
| 1138 silly resolved scripts: { build: 'make', prepublish: 'make webclient' }, | |
| 1138 silly resolved licenses: [ [Object] ], | |
| 1138 silly resolved repository: { type: 'git', url: 'http://github.com/josephg/sharejs.git' }, | |
| 1138 silly resolved readme: 'ShareJS\n=======\n\n---\n\n# You are looking at the 0.7 alpha branch of ShareJS.\n\n> *Welcome.* So you know, this code might spontaniously catch fire. Both the\n> API and the code are unstable and **will to change and crash on you**. Test\n> coverage has dropped from 90% in ShareJS 0.6 to around 30% and documentation\n> of the new APIs is almost nonexistant.\n> \n> The documentation below is also full of lies. If you want to play with the\n> new version of ShareJS anyway, look at the examples in prototype/.\n> \n> I understand that if you\'re using racer & derby, you will use this code\n> anyway despite my warnings. **YOU WILL RUN INTO BUGS.**\n\n---\n\n\nThis is a little server (& client library) to allow concurrent editing of any kind of content. The server runs on NodeJS and the client works in NodeJS or a web browser.\n\nShareJS currently supports operational transform on plain-text and arbitrary JSON data.\n\n**Immerse yourself in [API Documentation](https://github.com/josephg/ShareJS/wiki).**\n\n**Visit [Google groups](https://groups.google.com/forum/?fromgroups#!forum/sharejs) for discussions and announcements**\n\n**Check out the [live interactive demos](http://sharejs.org/).**\n\n> Note: CI sometimes breaks for random reasons even though the tests work locally. Don\'t stress!\n[](http://travis-ci.org/share/ShareJS)\n\n\nBrowser support\n---------------\n\nShareJS **should** work with all of them \n\nThat said, I only test regularly with FF, Safari and Chrome, and occasionally with IE8+. **File bug reports if you have issues**\n\n\nInstalling and running\n----------------------\n\n # npm install share\n\nRun the examples with:\n\n # sharejs-exampleserver\n\nIf you want redis support, you\'ll need to install redis:\n\n # brew install redis\n # npm install -g redis\n\n### From source\n\nInstall redis (optional)\n \n* Mac:\n\n # brew install redis\n\n* Linux:\n \n # sudo apt-get install redis\n\nThen:\n\n # git clone git://github.com/josephg/ShareJS.git\n # cd ShareJS\n # npm install redis # If you want redis support\n # npm link\n\nRun the tests:\n\n # cake test\n\nBuild the coffeescript into .js:\n\n # cake build\n # cake webclient\n\nRun the example server:\n\n # bin/exampleserver\n\nRunning a server\n----------------\n\nThere are two ways to run a sharejs server:\n\n1. Embedded in a node.js server app:\n\n ```javascript\n var connect = require(\'connect\'),\n sharejs = require(\'share\').server;\n\n var server = connect(\n connect.logger(),\n connect.static(__dirname + \'/my_html_files\')\n );\n\n var options = {db: {type: \'none\'}}; // See docs for options. {type: \'redis\'} to enable persistance.\n\n // Attach the sharejs REST and Socket.io interfaces to the server\n sharejs.attach(server, options);\n\n server.listen(8000);\n console.log(\'Server running at http://127.0.0.1:8000/\');\n ```\n The above script will start up a ShareJS server on port 8000 which hosts static content from the `my_html_files` directory. See [bin/exampleserver](https://github.com/josephg/ShareJS/blob/master/bin/exampleserver) for a more complex configuration example.\n\n > See the [Connect](http://senchalabs.github.com/connect/) or [Express](http://expressjs.com/) documentation for more complex routing.\n\n2. From the command line:\n\n # sharejs\n Configuration is pulled from a configuration file that can\'t be easily edited at the moment. For now, I recommend method #1 above.\n\n3. If you are just mucking around, run:\n\n # sharejs-exampleserver\n \n This will run a simple server on port 8000, and host all the example code there. Run it and check out http://localhost:8000/ . The example server stores everything in ram, so don\'t get too attached to your data.\n\n > If you\'re running sharejs from source, you can launch the example server by running `bin/exampleserver`.\n\n\nPutting Share.js on your website\n--------------------------------\n\nIf you want to get a simple editor working in your webpage with sharejs, here\'s what you need to do:\n\nFirst, get an ace editor on your page:\n\n```html\n<div id="editor"></div>\n```\n\nYour web app will need access to the following JS files:\n\n- Ace (http://ace.ajax.org/)\n- Browserchannel\n- ShareJS client and ace bindings.\n\nAdd these script tags:\n\n```html\n<script src="http://ajaxorg.github.com/ace/build/src/ace.js"></script>\n<script src="/channel/bcsocket.js"></script>\n<script src="/share/share.js"></script>\n<script src="/share/ace.js"></script>\n```\n\nAnd add this code:\n\n```html\n<script>\n var editor = ace.edit("editor");\n\n sharejs.open(\'hello\', \'text\', function(error, doc) {\n doc.attach_ace(editor);\n });\n</script>\n```\n\n> **NOTE:** If you\'re using the current version in npm (0.4) or earler, the argument order is the other way around (`function(doc, error)`).\n\nThats about it :)\n\nThe easiest way to get your code running is to check sharejs out from source and put your html and css files in the `examples/` directory. Run `bin/exampleserver` to launch the demo server and browse to http://localhost:8000/your-app.html .\n\nSee the [wiki](https://github.com/josephg/ShareJS/wiki) for documentation.\n\nIts also possible to use sharejs without ace. See the textarea example for details.\n\nWriting a client using node.js\n------------------------------\n\nThe client API is the same whether you\'re using the web or nodejs.\n\nHere\'s an example application which opens a document and inserts some text in it. Every time an op is applied to the document, it\'ll print out the document\'s version.\n\nRun this from a couple terminal windows when sharejs is running to see it go.\n\n```javascript\nvar client = require(\'share\').client;\n\n// Open the \'hello\' document, which should have type \'text\':\nclient.open(\'hello\', \'text\', \'http://localhost:8000/sjs\', function(error, doc) {\n // Insert some text at the start of the document (position 0):\n doc.insert("Hi there!\\n", 0);\n\n // Get the contents of the document for some reason:\n console.log(doc.snapshot);\n\n doc.on(\'change\', function(op) {\n console.log(\'Version: \' + doc.version);\n });\n\n // Close the doc if you want your node app to exit cleanly\n // doc.close();\n});\n```\n\n> **NOTE:** If you\'re using the current version in npm (0.4) or earler, the argument order is the other way around (`function(doc, error)`).\n\nSee [`the wiki`](https://github.com/josephg/ShareJS/wiki) for API documentation, and `examples/node*` for some more example apps.\n\n\n', | |
| 1138 silly resolved readmeFilename: 'README.md', | |
| 1138 silly resolved bugs: { url: 'https://github.com/josephg/sharejs/issues' }, | |
| 1138 silly resolved _id: '[email protected]', | |
| 1138 silly resolved dist: { shasum: '11e25b7f75a091f6c7e36d92392ef3f7ab689742' }, | |
| 1138 silly resolved _from: '/Users/josephg/src/ShareJS2/', | |
| 1138 silly resolved _resolved: 'git://github.com/codio/ShareJS#0f1ef2a85f75b8344d15c458ccedc9be4a1d7cbe' } ] | |
| 1139 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1140 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1141 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1142 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1143 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1144 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1145 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1146 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1147 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1148 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1149 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1150 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1151 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1152 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1153 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1154 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1155 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1156 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1157 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1158 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1159 info install [email protected] into /var/www/sharejs/releases/20131218171509 | |
| 1160 info installOne [email protected] | |
| 1161 info installOne [email protected] | |
| 1162 info installOne [email protected] | |
| 1163 info installOne [email protected] | |
| 1164 info installOne [email protected] | |
| 1165 info installOne [email protected] | |
| 1166 info installOne [email protected] | |
| 1167 info installOne [email protected] | |
| 1168 info installOne [email protected] | |
| 1169 info installOne [email protected] | |
| 1170 info installOne [email protected] | |
| 1171 info installOne [email protected] | |
| 1172 info installOne [email protected] | |
| 1173 info installOne [email protected] | |
| 1174 info installOne [email protected] | |
| 1175 info installOne [email protected] | |
| 1176 info installOne [email protected] | |
| 1177 info installOne [email protected] | |
| 1178 info installOne [email protected] | |
| 1179 info installOne [email protected] | |
| 1180 info installOne [email protected] | |
| 1181 info /var/www/sharejs/releases/20131218171509/node_modules/nodetime unbuild | |
| 1182 info /var/www/sharejs/releases/20131218171509/node_modules/querystring unbuild | |
| 1183 info /var/www/sharejs/releases/20131218171509/node_modules/lodash unbuild | |
| 1184 info /var/www/sharejs/releases/20131218171509/node_modules/amqp unbuild | |
| 1185 info /var/www/sharejs/releases/20131218171509/node_modules/log4js unbuild | |
| 1186 info /var/www/sharejs/releases/20131218171509/node_modules/newrelic unbuild | |
| 1187 info /var/www/sharejs/releases/20131218171509/node_modules/commander unbuild | |
| 1188 info /var/www/sharejs/releases/20131218171509/node_modules/redis unbuild | |
| 1189 info /var/www/sharejs/releases/20131218171509/node_modules/sockjs unbuild | |
| 1190 info /var/www/sharejs/releases/20131218171509/node_modules/livedb-mongo unbuild | |
| 1191 info /var/www/sharejs/releases/20131218171509/node_modules/rbytes unbuild | |
| 1192 info /var/www/sharejs/releases/20131218171509/node_modules/express unbuild | |
| 1193 info /var/www/sharejs/releases/20131218171509/node_modules/isbinaryfile unbuild | |
| 1194 info /var/www/sharejs/releases/20131218171509/node_modules/ottypes unbuild | |
| 1195 info /var/www/sharejs/releases/20131218171509/node_modules/async unbuild | |
| 1196 info /var/www/sharejs/releases/20131218171509/node_modules/thalassa unbuild | |
| 1197 info /var/www/sharejs/releases/20131218171509/node_modules/connect unbuild | |
| 1198 info /var/www/sharejs/releases/20131218171509/node_modules/transport-adapters unbuild | |
| 1199 info /var/www/sharejs/releases/20131218171509/node_modules/node-codio unbuild | |
| 1200 info /var/www/sharejs/releases/20131218171509/node_modules/livedb unbuild | |
| 1201 info /var/www/sharejs/releases/20131218171509/node_modules/share unbuild | |
| 1202 verbose tar unpack /home/sharejs/.npm/nodetime/0.8.13/package.tgz | |
| 1203 silly lockFile 9e0f00d6-1218171509-node-modules-nodetime tar:///var/www/sharejs/releases/20131218171509/node_modules/nodetime | |
| 1204 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/nodetime /home/sharejs/.npm/9e0f00d6-1218171509-node-modules-nodetime.lock | |
| 1205 silly lockFile 9793a7ca--npm-nodetime-0-8-13-package-tgz tar:///home/sharejs/.npm/nodetime/0.8.13/package.tgz | |
| 1206 verbose lock tar:///home/sharejs/.npm/nodetime/0.8.13/package.tgz /home/sharejs/.npm/9793a7ca--npm-nodetime-0-8-13-package-tgz.lock | |
| 1207 verbose tar unpack /home/sharejs/.npm/querystring/0.2.0/package.tgz | |
| 1208 silly lockFile e3b54737-8171509-node-modules-querystring tar:///var/www/sharejs/releases/20131218171509/node_modules/querystring | |
| 1209 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/querystring /home/sharejs/.npm/e3b54737-8171509-node-modules-querystring.lock | |
| 1210 silly lockFile 26742a22-pm-querystring-0-2-0-package-tgz tar:///home/sharejs/.npm/querystring/0.2.0/package.tgz | |
| 1211 verbose lock tar:///home/sharejs/.npm/querystring/0.2.0/package.tgz /home/sharejs/.npm/26742a22-pm-querystring-0-2-0-package-tgz.lock | |
| 1212 verbose tar unpack /home/sharejs/.npm/lodash/2.2.1/package.tgz | |
| 1213 silly lockFile a022935f-131218171509-node-modules-lodash tar:///var/www/sharejs/releases/20131218171509/node_modules/lodash | |
| 1214 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/lodash /home/sharejs/.npm/a022935f-131218171509-node-modules-lodash.lock | |
| 1215 silly lockFile 9884c028-ejs-npm-lodash-2-2-1-package-tgz tar:///home/sharejs/.npm/lodash/2.2.1/package.tgz | |
| 1216 verbose lock tar:///home/sharejs/.npm/lodash/2.2.1/package.tgz /home/sharejs/.npm/9884c028-ejs-npm-lodash-2-2-1-package-tgz.lock | |
| 1217 verbose tar unpack /home/sharejs/.npm/amqp/0.1.8/package.tgz | |
| 1218 silly lockFile 0bd45494-20131218171509-node-modules-amqp tar:///var/www/sharejs/releases/20131218171509/node_modules/amqp | |
| 1219 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/amqp /home/sharejs/.npm/0bd45494-20131218171509-node-modules-amqp.lock | |
| 1220 silly lockFile 1144a0cb-arejs-npm-amqp-0-1-8-package-tgz tar:///home/sharejs/.npm/amqp/0.1.8/package.tgz | |
| 1221 verbose lock tar:///home/sharejs/.npm/amqp/0.1.8/package.tgz /home/sharejs/.npm/1144a0cb-arejs-npm-amqp-0-1-8-package-tgz.lock | |
| 1222 verbose tar unpack /home/sharejs/.npm/log4js/0.6.9/package.tgz | |
| 1223 silly lockFile b447c176-131218171509-node-modules-log4js tar:///var/www/sharejs/releases/20131218171509/node_modules/log4js | |
| 1224 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/log4js /home/sharejs/.npm/b447c176-131218171509-node-modules-log4js.lock | |
| 1225 silly lockFile 0566e3b7-ejs-npm-log4js-0-6-9-package-tgz tar:///home/sharejs/.npm/log4js/0.6.9/package.tgz | |
| 1226 verbose lock tar:///home/sharejs/.npm/log4js/0.6.9/package.tgz /home/sharejs/.npm/0566e3b7-ejs-npm-log4js-0-6-9-package-tgz.lock | |
| 1227 verbose tar unpack /home/sharejs/.npm/newrelic/1.0.1/package.tgz | |
| 1228 silly lockFile 49d6b696-1218171509-node-modules-newrelic tar:///var/www/sharejs/releases/20131218171509/node_modules/newrelic | |
| 1229 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/newrelic /home/sharejs/.npm/49d6b696-1218171509-node-modules-newrelic.lock | |
| 1230 silly lockFile 63623aee-s-npm-newrelic-1-0-1-package-tgz tar:///home/sharejs/.npm/newrelic/1.0.1/package.tgz | |
| 1231 verbose lock tar:///home/sharejs/.npm/newrelic/1.0.1/package.tgz /home/sharejs/.npm/63623aee-s-npm-newrelic-1-0-1-package-tgz.lock | |
| 1232 verbose tar unpack /home/sharejs/.npm/commander/2.0.0/package.tgz | |
| 1233 silly lockFile 5a1a2acb-218171509-node-modules-commander tar:///var/www/sharejs/releases/20131218171509/node_modules/commander | |
| 1234 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/commander /home/sharejs/.npm/5a1a2acb-218171509-node-modules-commander.lock | |
| 1235 silly lockFile 4c38a4c2--npm-commander-2-0-0-package-tgz tar:///home/sharejs/.npm/commander/2.0.0/package.tgz | |
| 1236 verbose lock tar:///home/sharejs/.npm/commander/2.0.0/package.tgz /home/sharejs/.npm/4c38a4c2--npm-commander-2-0-0-package-tgz.lock | |
| 1237 verbose tar unpack /home/sharejs/.npm/redis/0.9.2/package.tgz | |
| 1238 silly lockFile 8ac8f6c0-0131218171509-node-modules-redis tar:///var/www/sharejs/releases/20131218171509/node_modules/redis | |
| 1239 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/redis /home/sharejs/.npm/8ac8f6c0-0131218171509-node-modules-redis.lock | |
| 1240 silly lockFile 68eb87eb-rejs-npm-redis-0-9-2-package-tgz tar:///home/sharejs/.npm/redis/0.9.2/package.tgz | |
| 1241 verbose lock tar:///home/sharejs/.npm/redis/0.9.2/package.tgz /home/sharejs/.npm/68eb87eb-rejs-npm-redis-0-9-2-package-tgz.lock | |
| 1242 verbose tar unpack /home/sharejs/.npm/sockjs/0.3.8/package.tgz | |
| 1243 silly lockFile 2bd7d3df-131218171509-node-modules-sockjs tar:///var/www/sharejs/releases/20131218171509/node_modules/sockjs | |
| 1244 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/sockjs /home/sharejs/.npm/2bd7d3df-131218171509-node-modules-sockjs.lock | |
| 1245 silly lockFile f519dab6-ejs-npm-sockjs-0-3-8-package-tgz tar:///home/sharejs/.npm/sockjs/0.3.8/package.tgz | |
| 1246 verbose lock tar:///home/sharejs/.npm/sockjs/0.3.8/package.tgz /home/sharejs/.npm/f519dab6-ejs-npm-sockjs-0-3-8-package-tgz.lock | |
| 1247 verbose tar unpack /home/sharejs/.npm/livedb-mongo/0.2.6/package.tgz | |
| 1248 silly lockFile 2b6b1f44-171509-node-modules-livedb-mongo tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb-mongo | |
| 1249 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb-mongo /home/sharejs/.npm/2b6b1f44-171509-node-modules-livedb-mongo.lock | |
| 1250 silly lockFile 7df814c7-m-livedb-mongo-0-2-6-package-tgz tar:///home/sharejs/.npm/livedb-mongo/0.2.6/package.tgz | |
| 1251 verbose lock tar:///home/sharejs/.npm/livedb-mongo/0.2.6/package.tgz /home/sharejs/.npm/7df814c7-m-livedb-mongo-0-2-6-package-tgz.lock | |
| 1252 verbose tar unpack /home/sharejs/.npm/rbytes/1.0.0/package.tgz | |
| 1253 silly lockFile 6fcd1c5f-131218171509-node-modules-rbytes tar:///var/www/sharejs/releases/20131218171509/node_modules/rbytes | |
| 1254 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/rbytes /home/sharejs/.npm/6fcd1c5f-131218171509-node-modules-rbytes.lock | |
| 1255 silly lockFile fb1b67cd-ejs-npm-rbytes-1-0-0-package-tgz tar:///home/sharejs/.npm/rbytes/1.0.0/package.tgz | |
| 1256 verbose lock tar:///home/sharejs/.npm/rbytes/1.0.0/package.tgz /home/sharejs/.npm/fb1b67cd-ejs-npm-rbytes-1-0-0-package-tgz.lock | |
| 1257 verbose tar unpack /home/sharejs/.npm/express/3.4.7/package.tgz | |
| 1258 silly lockFile 8a0a5668-31218171509-node-modules-express tar:///var/www/sharejs/releases/20131218171509/node_modules/express | |
| 1259 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/express /home/sharejs/.npm/8a0a5668-31218171509-node-modules-express.lock | |
| 1260 silly lockFile e7c85768-js-npm-express-3-4-7-package-tgz tar:///home/sharejs/.npm/express/3.4.7/package.tgz | |
| 1261 verbose lock tar:///home/sharejs/.npm/express/3.4.7/package.tgz /home/sharejs/.npm/e7c85768-js-npm-express-3-4-7-package-tgz.lock | |
| 1262 verbose tar unpack /home/sharejs/.npm/isbinaryfile/0.1.9/package.tgz | |
| 1263 silly lockFile e6cd8cd4-171509-node-modules-isbinaryfile tar:///var/www/sharejs/releases/20131218171509/node_modules/isbinaryfile | |
| 1264 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/isbinaryfile /home/sharejs/.npm/e6cd8cd4-171509-node-modules-isbinaryfile.lock | |
| 1265 silly lockFile 8cc6a743-m-isbinaryfile-0-1-9-package-tgz tar:///home/sharejs/.npm/isbinaryfile/0.1.9/package.tgz | |
| 1266 verbose lock tar:///home/sharejs/.npm/isbinaryfile/0.1.9/package.tgz /home/sharejs/.npm/8cc6a743-m-isbinaryfile-0-1-9-package-tgz.lock | |
| 1267 verbose tar unpack /home/sharejs/.npm/ottypes/1.0.1/package.tgz | |
| 1268 silly lockFile 1bb4845a-31218171509-node-modules-ottypes tar:///var/www/sharejs/releases/20131218171509/node_modules/ottypes | |
| 1269 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/ottypes /home/sharejs/.npm/1bb4845a-31218171509-node-modules-ottypes.lock | |
| 1270 silly lockFile 86ee5b89-js-npm-ottypes-1-0-1-package-tgz tar:///home/sharejs/.npm/ottypes/1.0.1/package.tgz | |
| 1271 verbose lock tar:///home/sharejs/.npm/ottypes/1.0.1/package.tgz /home/sharejs/.npm/86ee5b89-js-npm-ottypes-1-0-1-package-tgz.lock | |
| 1272 verbose tar unpack /home/sharejs/.npm/async/0.2.9/package.tgz | |
| 1273 silly lockFile 6d008e53-0131218171509-node-modules-async tar:///var/www/sharejs/releases/20131218171509/node_modules/async | |
| 1274 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/async /home/sharejs/.npm/6d008e53-0131218171509-node-modules-async.lock | |
| 1275 silly lockFile 149b4f9e-rejs-npm-async-0-2-9-package-tgz tar:///home/sharejs/.npm/async/0.2.9/package.tgz | |
| 1276 verbose lock tar:///home/sharejs/.npm/async/0.2.9/package.tgz /home/sharejs/.npm/149b4f9e-rejs-npm-async-0-2-9-package-tgz.lock | |
| 1277 verbose tar unpack /home/sharejs/.npm/thalassa/0.3.2/package.tgz | |
| 1278 silly lockFile c823e106-1218171509-node-modules-thalassa tar:///var/www/sharejs/releases/20131218171509/node_modules/thalassa | |
| 1279 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/thalassa /home/sharejs/.npm/c823e106-1218171509-node-modules-thalassa.lock | |
| 1280 silly lockFile d2000167-s-npm-thalassa-0-3-2-package-tgz tar:///home/sharejs/.npm/thalassa/0.3.2/package.tgz | |
| 1281 verbose lock tar:///home/sharejs/.npm/thalassa/0.3.2/package.tgz /home/sharejs/.npm/d2000167-s-npm-thalassa-0-3-2-package-tgz.lock | |
| 1282 verbose tar unpack /home/sharejs/.npm/connect/2.7.11/package.tgz | |
| 1283 silly lockFile a9a0092d-31218171509-node-modules-connect tar:///var/www/sharejs/releases/20131218171509/node_modules/connect | |
| 1284 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/connect /home/sharejs/.npm/a9a0092d-31218171509-node-modules-connect.lock | |
| 1285 silly lockFile 710de9f4-s-npm-connect-2-7-11-package-tgz tar:///home/sharejs/.npm/connect/2.7.11/package.tgz | |
| 1286 verbose lock tar:///home/sharejs/.npm/connect/2.7.11/package.tgz /home/sharejs/.npm/710de9f4-s-npm-connect-2-7-11-package-tgz.lock | |
| 1287 verbose tar unpack /home/sharejs/.npm/transport-adapters/0.1.0/package.tgz | |
| 1288 silly lockFile 12ffcc9e--node-modules-transport-adapters tar:///var/www/sharejs/releases/20131218171509/node_modules/transport-adapters | |
| 1289 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/transport-adapters /home/sharejs/.npm/12ffcc9e--node-modules-transport-adapters.lock | |
| 1290 silly lockFile 60fc8962-sport-adapters-0-1-0-package-tgz tar:///home/sharejs/.npm/transport-adapters/0.1.0/package.tgz | |
| 1291 verbose lock tar:///home/sharejs/.npm/transport-adapters/0.1.0/package.tgz /home/sharejs/.npm/60fc8962-sport-adapters-0-1-0-package-tgz.lock | |
| 1292 verbose tar unpack /home/sharejs/.npm/node-codio/0.0.1/package.tgz | |
| 1293 silly lockFile db13ce97-18171509-node-modules-node-codio tar:///var/www/sharejs/releases/20131218171509/node_modules/node-codio | |
| 1294 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/node-codio /home/sharejs/.npm/db13ce97-18171509-node-modules-node-codio.lock | |
| 1295 silly lockFile 99388702-npm-node-codio-0-0-1-package-tgz tar:///home/sharejs/.npm/node-codio/0.0.1/package.tgz | |
| 1296 verbose lock tar:///home/sharejs/.npm/node-codio/0.0.1/package.tgz /home/sharejs/.npm/99388702-npm-node-codio-0-0-1-package-tgz.lock | |
| 1297 verbose tar unpack /home/sharejs/.npm/livedb/0.2.8/package.tgz | |
| 1298 silly lockFile 0abfbc83-131218171509-node-modules-livedb tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb | |
| 1299 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb /home/sharejs/.npm/0abfbc83-131218171509-node-modules-livedb.lock | |
| 1300 silly lockFile 4d9255f1-ejs-npm-livedb-0-2-8-package-tgz tar:///home/sharejs/.npm/livedb/0.2.8/package.tgz | |
| 1301 verbose lock tar:///home/sharejs/.npm/livedb/0.2.8/package.tgz /home/sharejs/.npm/4d9255f1-ejs-npm-livedb-0-2-8-package-tgz.lock | |
| 1302 verbose tar unpack /home/sharejs/.npm/share/0.7.0-alpha9/package.tgz | |
| 1303 silly lockFile 9d56dffd-0131218171509-node-modules-share tar:///var/www/sharejs/releases/20131218171509/node_modules/share | |
| 1304 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/share /home/sharejs/.npm/9d56dffd-0131218171509-node-modules-share.lock | |
| 1305 silly lockFile a733730d-m-share-0-7-0-alpha9-package-tgz tar:///home/sharejs/.npm/share/0.7.0-alpha9/package.tgz | |
| 1306 verbose lock tar:///home/sharejs/.npm/share/0.7.0-alpha9/package.tgz /home/sharejs/.npm/a733730d-m-share-0-7-0-alpha9-package-tgz.lock | |
| 1307 silly gunzTarPerm modes [ '755', '644' ] | |
| 1308 silly gunzTarPerm modes [ '755', '644' ] | |
| 1309 silly gunzTarPerm modes [ '755', '644' ] | |
| 1310 silly gunzTarPerm modes [ '755', '644' ] | |
| 1311 silly gunzTarPerm modes [ '755', '644' ] | |
| 1312 silly gunzTarPerm modes [ '755', '644' ] | |
| 1313 silly gunzTarPerm modes [ '755', '644' ] | |
| 1314 silly gunzTarPerm modes [ '755', '644' ] | |
| 1315 silly gunzTarPerm modes [ '755', '644' ] | |
| 1316 silly gunzTarPerm modes [ '755', '644' ] | |
| 1317 silly gunzTarPerm modes [ '755', '644' ] | |
| 1318 silly gunzTarPerm modes [ '755', '644' ] | |
| 1319 silly gunzTarPerm modes [ '755', '644' ] | |
| 1320 silly gunzTarPerm modes [ '755', '644' ] | |
| 1321 silly gunzTarPerm modes [ '755', '644' ] | |
| 1322 silly gunzTarPerm modes [ '755', '644' ] | |
| 1323 silly gunzTarPerm modes [ '755', '644' ] | |
| 1324 silly gunzTarPerm modes [ '755', '644' ] | |
| 1325 silly gunzTarPerm modes [ '755', '644' ] | |
| 1326 silly gunzTarPerm modes [ '755', '644' ] | |
| 1327 silly gunzTarPerm modes [ '755', '644' ] | |
| 1328 silly gunzTarPerm extractEntry package.json | |
| 1329 silly gunzTarPerm extractEntry package.json | |
| 1330 silly gunzTarPerm extractEntry package.json | |
| 1331 silly gunzTarPerm extractEntry package.json | |
| 1332 silly gunzTarPerm extractEntry package.json | |
| 1333 silly gunzTarPerm extractEntry package.json | |
| 1334 silly gunzTarPerm extractEntry package.json | |
| 1335 silly gunzTarPerm extractEntry package.json | |
| 1336 silly gunzTarPerm extractEntry package.json | |
| 1337 silly gunzTarPerm extractEntry package.json | |
| 1338 silly gunzTarPerm extractEntry package.json | |
| 1339 silly gunzTarPerm extractEntry package.json | |
| 1340 silly gunzTarPerm extractEntry package.json | |
| 1341 silly gunzTarPerm extractEntry package.json | |
| 1342 silly gunzTarPerm extractEntry package.json | |
| 1343 silly gunzTarPerm extractEntry package.json | |
| 1344 silly gunzTarPerm extractEntry package.json | |
| 1345 silly gunzTarPerm extractEntry package.json | |
| 1346 silly gunzTarPerm extractEntry package.json | |
| 1347 silly gunzTarPerm extractEntry package.json | |
| 1348 silly gunzTarPerm extractEntry package.json | |
| 1349 silly gunzTarPerm extractEntry .npmignore | |
| 1350 silly gunzTarPerm extractEntry README.md | |
| 1351 silly gunzTarPerm extractEntry decode.js | |
| 1352 silly gunzTarPerm extractEntry encode.js | |
| 1353 silly gunzTarPerm extractEntry README.md | |
| 1354 silly gunzTarPerm extractEntry lodash.js | |
| 1355 silly gunzTarPerm extractEntry .npmignore | |
| 1356 silly gunzTarPerm extractEntry README.md | |
| 1357 silly gunzTarPerm extractEntry .npmignore | |
| 1358 silly gunzTarPerm extractEntry README.md | |
| 1359 silly gunzTarPerm extractEntry .npmignore | |
| 1360 silly gunzTarPerm extractEntry README.md | |
| 1361 silly gunzTarPerm extractEntry index.js | |
| 1362 silly gunzTarPerm extractEntry History.md | |
| 1363 silly gunzTarPerm extractEntry Readme.md | |
| 1364 silly gunzTarPerm extractEntry .npmignore | |
| 1365 silly gunzTarPerm extractEntry README.md | |
| 1366 silly gunzTarPerm extractEntry .npmignore | |
| 1367 silly gunzTarPerm extractEntry README.md | |
| 1368 silly gunzTarPerm extractEntry .npmignore | |
| 1369 silly gunzTarPerm extractEntry README.md | |
| 1370 silly gunzTarPerm extractEntry .npmignore | |
| 1371 silly gunzTarPerm extractEntry README.md | |
| 1372 silly gunzTarPerm extractEntry .npmignore | |
| 1373 silly gunzTarPerm extractEntry LICENSE | |
| 1374 silly gunzTarPerm extractEntry .npmignore | |
| 1375 silly gunzTarPerm extractEntry README.md | |
| 1376 silly gunzTarPerm extractEntry .npmignore | |
| 1377 silly gunzTarPerm extractEntry README.md | |
| 1378 silly gunzTarPerm extractEntry README.md | |
| 1379 silly gunzTarPerm extractEntry LICENSE | |
| 1380 silly gunzTarPerm extractEntry component.json | |
| 1381 silly gunzTarPerm extractEntry lib/async.js | |
| 1382 silly gunzTarPerm extractEntry .npmignore | |
| 1383 silly gunzTarPerm extractEntry README.md | |
| 1384 silly gunzTarPerm extractEntry .npmignore | |
| 1385 silly gunzTarPerm extractEntry LICENSE | |
| 1386 silly gunzTarPerm extractEntry .npmignore | |
| 1387 silly gunzTarPerm extractEntry README.md | |
| 1388 silly gunzTarPerm extractEntry .npmignore | |
| 1389 silly gunzTarPerm extractEntry README.md | |
| 1390 silly gunzTarPerm extractEntry .npmignore | |
| 1391 silly gunzTarPerm extractEntry README.md | |
| 1392 silly gunzTarPerm extractEntry .npmignore | |
| 1393 silly gunzTarPerm extractEntry README.md | |
| 1394 silly gunzTarPerm extractEntry test-unref.js | |
| 1395 silly gunzTarPerm extractEntry LICENSE | |
| 1396 silly gunzTarPerm extractEntry index.js | |
| 1397 silly gunzTarPerm extractEntry LICENSE | |
| 1398 silly gunzTarPerm extractEntry index.js | |
| 1399 silly gunzTarPerm extractEntry lib/connect-logger.js | |
| 1400 silly gunzTarPerm extractEntry lib/date_format.js | |
| 1401 silly gunzTarPerm extractEntry index.js | |
| 1402 silly gunzTarPerm extractEntry mongo.js | |
| 1403 silly gunzTarPerm extractEntry .travis.yml | |
| 1404 silly gunzTarPerm extractEntry test.coffee | |
| 1405 silly gunzTarPerm extractEntry index.js | |
| 1406 silly gunzTarPerm extractEntry tests/test.js | |
| 1407 silly gunzTarPerm extractEntry after.js | |
| 1408 silly gunzTarPerm extractEntry before.js | |
| 1409 silly gunzTarPerm extractEntry index.js | |
| 1410 silly gunzTarPerm extractEntry test.js | |
| 1411 silly gunzTarPerm extractEntry index.js | |
| 1412 silly gunzTarPerm extractEntry .travis.yml | |
| 1413 silly gunzTarPerm extractEntry index.js | |
| 1414 silly gunzTarPerm extractEntry .jshintrc | |
| 1415 silly gunzTarPerm extractEntry LICENSE | |
| 1416 silly gunzTarPerm extractEntry .travis.yml | |
| 1417 silly gunzTarPerm extractEntry index.js | |
| 1418 silly gunzTarPerm extractEntry Readme.md | |
| 1419 silly gunzTarPerm extractEntry amqp.js | |
| 1420 silly gunzTarPerm extractEntry index.js | |
| 1421 silly gunzTarPerm extractEntry .travis.yml | |
| 1422 silly gunzTarPerm extractEntry LICENSE | |
| 1423 silly gunzTarPerm extractEntry index.js | |
| 1424 silly gunzTarPerm extractEntry LICENSE.txt | |
| 1425 silly gunzTarPerm extractEntry LICENSE | |
| 1426 silly gunzTarPerm extractEntry diff_multi_bench_output.js | |
| 1427 silly gunzTarPerm extractEntry multi_bench.js | |
| 1428 silly gunzTarPerm extractEntry test.js | |
| 1429 silly gunzTarPerm extractEntry Makefile | |
| 1430 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.8.14/nodetime_native.node | |
| 1431 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.10.0/nodetime_native.node | |
| 1432 silly gunzTarPerm extractEntry lib/debug.js | |
| 1433 silly gunzTarPerm extractEntry COPYING | |
| 1434 silly gunzTarPerm extractEntry Changelog | |
| 1435 silly gunzTarPerm extractEntry tests/fixtures/01_grep | |
| 1436 silly gunzTarPerm extractEntry tests/fixtures/02_perl_script | |
| 1437 silly gunzTarPerm extractEntry tests/fixtures/03_Руководство_по_эксплуатации.rst | |
| 1438 silly gunzTarPerm extractEntry tests/fixtures/04_HelloWorld.pdf | |
| 1439 silly gunzTarPerm extractEntry tests/fixtures/05_null_file.gif | |
| 1440 silly gunzTarPerm extractEntry tests/fixtures/06_trunks.gif | |
| 1441 silly gunzTarPerm extractEntry webclient/json0.js | |
| 1442 silly gunzTarPerm extractEntry webclient/json0.uncompressed.js | |
| 1443 silly gunzTarPerm extractEntry webclient/text-tp2.js | |
| 1444 silly gunzTarPerm extractEntry webclient/text.js | |
| 1445 silly gunzTarPerm extractEntry webclient/text0.js | |
| 1446 silly gunzTarPerm extractEntry webclient/text0.uncompressed.js | |
| 1447 silly gunzTarPerm extractEntry .travis.yml | |
| 1448 silly gunzTarPerm extractEntry Makefile | |
| 1449 silly gunzTarPerm extractEntry randomizer/README.md | |
| 1450 silly gunzTarPerm extractEntry randomizer/mersenne.js | |
| 1451 silly gunzTarPerm extractEntry randomizer/index.coffee | |
| 1452 silly gunzTarPerm extractEntry randomizer/jabberwocky.txt | |
| 1453 silly gunzTarPerm extractEntry randomizer/json0.coffee | |
| 1454 silly gunzTarPerm extractEntry randomizer/randomizer.coffee | |
| 1455 silly gunzTarPerm extractEntry randomizer/text-tp2.coffee | |
| 1456 silly gunzTarPerm extractEntry randomizer/text.coffee | |
| 1457 silly gunzTarPerm extractEntry randomizer/text0.coffee | |
| 1458 silly gunzTarPerm extractEntry src/json3.coffee | |
| 1459 silly gunzTarPerm extractEntry test/count.coffee | |
| 1460 silly gunzTarPerm extractEntry test/json0.coffee | |
| 1461 silly gunzTarPerm extractEntry test/mocha.opts | |
| 1462 silly gunzTarPerm extractEntry test/text-tp2.coffee | |
| 1463 silly gunzTarPerm extractEntry test/text-transform-tests.json | |
| 1464 silly gunzTarPerm extractEntry test/text.coffee | |
| 1465 silly gunzTarPerm extractEntry test/text0.coffee | |
| 1466 silly gunzTarPerm extractEntry test-json3.coffee | |
| 1467 silly gunzTarPerm extractEntry lib/helpers.js | |
| 1468 silly gunzTarPerm extractEntry lib/index.js | |
| 1469 silly gunzTarPerm extractEntry lib/json0.js | |
| 1470 silly gunzTarPerm extractEntry lib/simple.js | |
| 1471 silly gunzTarPerm extractEntry lib/text-tp2.js | |
| 1472 silly gunzTarPerm extractEntry lib/text.js | |
| 1473 silly gunzTarPerm extractEntry lib/text0.js | |
| 1474 silly gunzTarPerm extractEntry .travis.yml | |
| 1475 silly gunzTarPerm extractEntry Readme.md | |
| 1476 silly gunzTarPerm extractEntry examples/browserchannel/share-textarea.js | |
| 1477 silly gunzTarPerm extractEntry examples/browserchannel/index.html | |
| 1478 silly gunzTarPerm extractEntry gruntfile.coffee | |
| 1479 silly gunzTarPerm extractEntry lib/project-manager.js | |
| 1480 silly gunzTarPerm extractEntry example-backend.coffee | |
| 1481 silly gunzTarPerm extractEntry lib/index.js | |
| 1482 silly gunzTarPerm extractEntry jspack.js | |
| 1483 silly gunzTarPerm extractEntry Makefile | |
| 1484 silly gunzTarPerm extractEntry History.md | |
| 1485 silly gunzTarPerm extractEntry Makefile | |
| 1486 silly gunzTarPerm extractEntry Readme.md | |
| 1487 silly gunzTarPerm extractEntry bin/express | |
| 1488 silly gunzTarPerm extractEntry lib/application.js | |
| 1489 silly gunzTarPerm extractEntry lib/express.js | |
| 1490 silly gunzTarPerm extractEntry lib/middleware.js | |
| 1491 silly gunzTarPerm extractEntry lib/request.js | |
| 1492 silly gunzTarPerm extractEntry lib/response.js | |
| 1493 silly gunzTarPerm extractEntry lib/utils.js | |
| 1494 silly gunzTarPerm extractEntry lib/view.js | |
| 1495 silly gunzTarPerm extractEntry lib/router/index.js | |
| 1496 silly gunzTarPerm extractEntry lib/router/route.js | |
| 1497 silly gunzTarPerm extractEntry examples/simple.js | |
| 1498 silly gunzTarPerm extractEntry .jshintrc | |
| 1499 silly gunzTarPerm extractEntry api.js | |
| 1500 silly gunzTarPerm extractEntry index.js | |
| 1501 silly gunzTarPerm extractEntry License.md | |
| 1502 silly gunzTarPerm extractEntry .Readme.md.un~ | |
| 1503 silly gunzTarPerm extractEntry LICENSE | |
| 1504 silly gunzTarPerm extractEntry binding.gyp | |
| 1505 silly gunzTarPerm extractEntry src/binding.cc | |
| 1506 silly gunzTarPerm extractEntry examples/browserchannel/server.coffee | |
| 1507 silly gunzTarPerm extractEntry examples/sockjs/package.json | |
| 1508 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.10.10/nodetime_native.node | |
| 1509 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.10.2/nodetime_native.node | |
| 1510 silly gunzTarPerm extractEntry lib/cache.js | |
| 1511 silly gunzTarPerm extractEntry lib/connect.js | |
| 1512 silly gunzTarPerm extractEntry lib/project-structure-manager.js | |
| 1513 silly gunzTarPerm extractEntry lib/request.js | |
| 1514 silly gunzTarPerm extractEntry test/index.spec.js | |
| 1515 silly gunzTarPerm extractEntry test/mocha-globals.js | |
| 1516 silly gunzTarPerm extractEntry test/project-manager.spec.js | |
| 1517 silly gunzTarPerm extractEntry test/project-structure-manager.spec.js | |
| 1518 silly gunzTarPerm extractEntry test/request.spec.js | |
| 1519 silly gunzTarPerm extractEntry test/browser/connection.coffee | |
| 1520 silly gunzTarPerm extractEntry test/browser/doc.coffee | |
| 1521 silly gunzTarPerm extractEntry .History.md.un~ | |
| 1522 silly gunzTarPerm extractEntry lib/layouts.js | |
| 1523 silly gunzTarPerm extractEntry lib/levels.js | |
| 1524 silly gunzTarPerm extractEntry examples/sockjs/index.js | |
| 1525 silly gunzTarPerm extractEntry dist/lodash.compat.js | |
| 1526 silly gunzTarPerm extractEntry dist/lodash.compat.min.js | |
| 1527 silly gunzTarPerm extractEntry lib/index.js | |
| 1528 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.10.3/nodetime_native.node | |
| 1529 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.10.4/nodetime_native.node | |
| 1530 silly gunzTarPerm extractEntry lib/memory.js | |
| 1531 silly gunzTarPerm extractEntry .package.json.un~ | |
| 1532 silly gunzTarPerm extractEntry .travis.yml | |
| 1533 silly gunzTarPerm extractEntry examples/sockjs/server.js | |
| 1534 silly gunzTarPerm extractEntry examples/sockjs/share-textarea.js | |
| 1535 silly gunzTarPerm extractEntry .travis.yml | |
| 1536 silly gunzTarPerm extractEntry lib/defaultLogger.js | |
| 1537 silly gunzTarPerm extractEntry lib/patch.js | |
| 1538 silly gunzTarPerm extractEntry lib/proto.js | |
| 1539 silly gunzTarPerm extractEntry lib/ot.js | |
| 1540 silly gunzTarPerm extractEntry lib/ratelimit.js | |
| 1541 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.10.5/nodetime_native.node | |
| 1542 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.10.6/nodetime_native.node | |
| 1543 silly gunzTarPerm extractEntry History.md | |
| 1544 silly gunzTarPerm extractEntry test/common-index.js | |
| 1545 silly gunzTarPerm extractEntry lib/utils.js | |
| 1546 silly gunzTarPerm extractEntry lib/middleware/basicAuth.js | |
| 1547 silly gunzTarPerm extractEntry test/browser/queries.coffee | |
| 1548 silly gunzTarPerm extractEntry test/browser/subscribed.coffee | |
| 1549 silly gunzTarPerm extractEntry lib/log4js.js | |
| 1550 silly gunzTarPerm extractEntry lib/logger.js | |
| 1551 silly gunzTarPerm extractEntry lib/scripts/bulkGetOpsSince.lua | |
| 1552 silly gunzTarPerm extractEntry lib/scripts/getOps.lua | |
| 1553 silly gunzTarPerm extractEntry LICENSE-MIT-SockJS | |
| 1554 silly gunzTarPerm extractEntry Makefile | |
| 1555 silly gunzTarPerm extractEntry test/index.js | |
| 1556 silly gunzTarPerm extractEntry test/tap-index.js | |
| 1557 silly gunzTarPerm extractEntry lib/scripts/setExpire.lua | |
| 1558 silly gunzTarPerm extractEntry lib/scripts/submit.lua | |
| 1559 silly gunzTarPerm extractEntry .jshintrc | |
| 1560 silly gunzTarPerm extractEntry amqp-0-9-1-rabbit.xml | |
| 1561 silly gunzTarPerm extractEntry test/helpers/mersenne.js | |
| 1562 silly gunzTarPerm extractEntry test/helpers/ot_number.js | |
| 1563 silly gunzTarPerm extractEntry lib/appenders/categoryFilter.js | |
| 1564 silly gunzTarPerm extractEntry lib/appenders/clustered.js | |
| 1565 silly gunzTarPerm extractEntry examples/echo/package.json | |
| 1566 silly gunzTarPerm extractEntry examples/echo/README.md | |
| 1567 silly gunzTarPerm extractEntry newrelic.js | |
| 1568 silly gunzTarPerm extractEntry stub_api.js | |
| 1569 silly gunzTarPerm extractEntry examples/sockjs/index.html | |
| 1570 silly gunzTarPerm extractEntry lib/browserchannel.js | |
| 1571 silly gunzTarPerm extractEntry lib/middleware/errorHandler.js | |
| 1572 silly gunzTarPerm extractEntry lib/middleware/favicon.js | |
| 1573 silly gunzTarPerm extractEntry amqp-0-9-1.xml | |
| 1574 silly gunzTarPerm extractEntry .travis.yml | |
| 1575 silly gunzTarPerm extractEntry lib/appenders/console.js | |
| 1576 silly gunzTarPerm extractEntry lib/appenders/dateFile.js | |
| 1577 silly gunzTarPerm extractEntry examples/echo/server.js | |
| 1578 silly gunzTarPerm extractEntry examples/echo/index.html | |
| 1579 silly gunzTarPerm extractEntry test/.index.js.un~ | |
| 1580 silly gunzTarPerm extractEntry lib/client/Client.js | |
| 1581 silly gunzTarPerm extractEntry lib/server/RedisData.js | |
| 1582 silly gunzTarPerm extractEntry lib/index.js | |
| 1583 silly gunzTarPerm extractEntry lib/sockjs.js | |
| 1584 silly gunzTarPerm extractEntry bin/tracetractor | |
| 1585 silly gunzTarPerm extractEntry .jshintrc | |
| 1586 silly gunzTarPerm extractEntry test/helpers/fixtures.coffee | |
| 1587 silly gunzTarPerm extractEntry test/helpers/index.coffee | |
| 1588 silly gunzTarPerm extractEntry index.js | |
| 1589 silly gunzTarPerm extractEntry test.js | |
| 1590 silly gunzTarPerm extractEntry lib/middleware/json.js | |
| 1591 silly gunzTarPerm extractEntry lib/middleware/limit.js | |
| 1592 silly gunzTarPerm extractEntry lib/server/Server.js | |
| 1593 silly gunzTarPerm extractEntry lib/server/httpApi.js | |
| 1594 silly gunzTarPerm extractEntry test/browserchannel.coffee | |
| 1595 silly gunzTarPerm extractEntry test/sockjs.coffee | |
| 1596 silly lockFile 2b6b1f44-171509-node-modules-livedb-mongo tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb-mongo | |
| 1597 silly lockFile 2b6b1f44-171509-node-modules-livedb-mongo tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb-mongo | |
| 1598 silly lockFile 7df814c7-m-livedb-mongo-0-2-6-package-tgz tar:///home/sharejs/.npm/livedb-mongo/0.2.6/package.tgz | |
| 1599 silly lockFile 7df814c7-m-livedb-mongo-0-2-6-package-tgz tar:///home/sharejs/.npm/livedb-mongo/0.2.6/package.tgz | |
| 1600 silly gunzTarPerm extractEntry generate_commands.js | |
| 1601 silly gunzTarPerm extractEntry lib/commands.js | |
| 1602 info preinstall [email protected] | |
| 1603 silly gunzTarPerm extractEntry examples/express/package.json | |
| 1604 silly gunzTarPerm extractEntry examples/express/server.js | |
| 1605 silly gunzTarPerm extractEntry lib/middleware/directory.js | |
| 1606 silly gunzTarPerm extractEntry lib/middleware/methodOverride.js | |
| 1607 silly gunzTarPerm extractEntry test/helpers/phantom.coffee | |
| 1608 silly gunzTarPerm extractEntry test/helpers/randomizer.coffee | |
| 1609 verbose readDependencies using package.json deps | |
| 1610 silly lockFile 5a1a2acb-218171509-node-modules-commander tar:///var/www/sharejs/releases/20131218171509/node_modules/commander | |
| 1611 silly lockFile 5a1a2acb-218171509-node-modules-commander tar:///var/www/sharejs/releases/20131218171509/node_modules/commander | |
| 1612 verbose readDependencies using package.json deps | |
| 1613 silly lockFile 6fcd1c5f-131218171509-node-modules-rbytes tar:///var/www/sharejs/releases/20131218171509/node_modules/rbytes | |
| 1614 silly lockFile 6fcd1c5f-131218171509-node-modules-rbytes tar:///var/www/sharejs/releases/20131218171509/node_modules/rbytes | |
| 1615 silly lockFile 4c38a4c2--npm-commander-2-0-0-package-tgz tar:///home/sharejs/.npm/commander/2.0.0/package.tgz | |
| 1616 silly lockFile 4c38a4c2--npm-commander-2-0-0-package-tgz tar:///home/sharejs/.npm/commander/2.0.0/package.tgz | |
| 1617 silly lockFile fb1b67cd-ejs-npm-rbytes-1-0-0-package-tgz tar:///home/sharejs/.npm/rbytes/1.0.0/package.tgz | |
| 1618 silly lockFile fb1b67cd-ejs-npm-rbytes-1-0-0-package-tgz tar:///home/sharejs/.npm/rbytes/1.0.0/package.tgz | |
| 1619 verbose cache add [ 'mongoskin@~0.5', null ] | |
| 1620 verbose cache add name=undefined spec="mongoskin@~0.5" args=["mongoskin@~0.5",null] | |
| 1621 verbose parsed url { protocol: null, | |
| 1621 verbose parsed url slashes: null, | |
| 1621 verbose parsed url auth: null, | |
| 1621 verbose parsed url host: null, | |
| 1621 verbose parsed url port: null, | |
| 1621 verbose parsed url hostname: null, | |
| 1621 verbose parsed url hash: null, | |
| 1621 verbose parsed url search: null, | |
| 1621 verbose parsed url query: null, | |
| 1621 verbose parsed url pathname: 'mongoskin@~0.5', | |
| 1621 verbose parsed url path: 'mongoskin@~0.5', | |
| 1621 verbose parsed url href: 'mongoskin@~0.5' } | |
| 1622 verbose cache add name="mongoskin" spec="~0.5" args=["mongoskin","~0.5"] | |
| 1623 verbose parsed url { protocol: null, | |
| 1623 verbose parsed url slashes: null, | |
| 1623 verbose parsed url auth: null, | |
| 1623 verbose parsed url host: null, | |
| 1623 verbose parsed url port: null, | |
| 1623 verbose parsed url hostname: null, | |
| 1623 verbose parsed url hash: null, | |
| 1623 verbose parsed url search: null, | |
| 1623 verbose parsed url query: null, | |
| 1623 verbose parsed url pathname: '~0.5', | |
| 1623 verbose parsed url path: '~0.5', | |
| 1623 verbose parsed url href: '~0.5' } | |
| 1624 verbose addNamed [ 'mongoskin', '~0.5' ] | |
| 1625 verbose addNamed [ null, '>=0.5.0-0 <0.6.0-0' ] | |
| 1626 silly lockFile 34af0aad-mongoskin-0-5 mongoskin@~0.5 | |
| 1627 verbose lock mongoskin@~0.5 /home/sharejs/.npm/34af0aad-mongoskin-0-5.lock | |
| 1628 silly gunzTarPerm extractEntry bin/client.js | |
| 1629 silly gunzTarPerm extractEntry bin/server.js | |
| 1630 silly addNameRange { name: 'mongoskin', | |
| 1630 silly addNameRange range: '>=0.5.0-0 <0.6.0-0', | |
| 1630 silly addNameRange hasData: false } | |
| 1631 silly gunzTarPerm extractEntry lib/appenders/file.js | |
| 1632 silly gunzTarPerm extractEntry lib/appenders/gelf.js | |
| 1633 silly gunzTarPerm extractEntry examples/.npmignore | |
| 1634 silly gunzTarPerm extractEntry examples/express/random-delays/express_random_delays.js | |
| 1635 info preinstall [email protected] | |
| 1636 info preinstall [email protected] | |
| 1637 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.10.7/nodetime_native.node | |
| 1638 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.10.8/nodetime_native.node | |
| 1639 silly gunzTarPerm extractEntry History.md | |
| 1640 silly gunzTarPerm extractEntry lib/amqp-definitions-0-9-1.js | |
| 1641 verbose readDependencies using package.json deps | |
| 1642 silly gunzTarPerm extractEntry lib/queue.js | |
| 1643 silly gunzTarPerm extractEntry lib/to_array.js | |
| 1644 silly gunzTarPerm extractEntry examples/express/index.html | |
| 1645 silly gunzTarPerm extractEntry examples/express-3.x/package.json | |
| 1646 verbose readDependencies using package.json deps | |
| 1647 verbose url raw mongoskin | |
| 1648 verbose url resolving [ 'https://registry.npmjs.org/', './mongoskin' ] | |
| 1649 verbose url resolved https://registry.npmjs.org/mongoskin | |
| 1650 info trying registry request attempt 1 at 17:18:16 | |
| 1651 verbose etag "52WA4VFVWQXIKCBD73JXRYD5C" | |
| 1652 http GET https://registry.npmjs.org/mongoskin | |
| 1653 verbose readDependencies using package.json deps | |
| 1654 silly resolved [] | |
| 1655 verbose about to build /var/www/sharejs/releases/20131218171509/node_modules/commander | |
| 1656 info build /var/www/sharejs/releases/20131218171509/node_modules/commander | |
| 1657 verbose linkStuff [ false, | |
| 1657 verbose linkStuff false, | |
| 1657 verbose linkStuff false, | |
| 1657 verbose linkStuff '/var/www/sharejs/releases/20131218171509/node_modules' ] | |
| 1658 info linkStuff [email protected] | |
| 1659 verbose linkBins [email protected] | |
| 1660 verbose linkMans [email protected] | |
| 1661 verbose rebuildBundles [email protected] | |
| 1662 verbose readDependencies using package.json deps | |
| 1663 silly resolved [] | |
| 1664 verbose about to build /var/www/sharejs/releases/20131218171509/node_modules/rbytes | |
| 1665 info build /var/www/sharejs/releases/20131218171509/node_modules/rbytes | |
| 1666 verbose linkStuff [ false, | |
| 1666 verbose linkStuff false, | |
| 1666 verbose linkStuff false, | |
| 1666 verbose linkStuff '/var/www/sharejs/releases/20131218171509/node_modules' ] | |
| 1667 info linkStuff [email protected] | |
| 1668 verbose linkBins [email protected] | |
| 1669 verbose linkMans [email protected] | |
| 1670 verbose rebuildBundles [email protected] | |
| 1671 info install [email protected] | |
| 1672 info install [email protected] | |
| 1673 silly gunzTarPerm extractEntry test/test.data.js | |
| 1674 silly gunzTarPerm extractEntry test/test.js | |
| 1675 silly gunzTarPerm extractEntry lib/middleware/multipart.js | |
| 1676 silly gunzTarPerm extractEntry lib/middleware/query.js | |
| 1677 verbose unsafe-perm in lifecycle true | |
| 1678 silly gunzTarPerm extractEntry test/helpers/server.coffee | |
| 1679 silly gunzTarPerm extractEntry test/helpers/socket.coffee | |
| 1680 info postinstall [email protected] | |
| 1681 silly gunzTarPerm extractEntry lib/appenders/hookio.js | |
| 1682 silly gunzTarPerm extractEntry lib/appenders/logLevelFilter.js | |
| 1683 silly gunzTarPerm extractEntry lib/connection.js | |
| 1684 silly gunzTarPerm extractEntry lib/constants.js | |
| 1685 silly gunzTarPerm extractEntry examples/express/random-delays/express_random_delays.jmx | |
| 1686 silly gunzTarPerm extractEntry examples/express/sequelize/package.json | |
| 1687 silly gunzTarPerm extractEntry thalassa-deps-licenses.txt | |
| 1688 silly gunzTarPerm extractEntry examples/express-3.x/server.js | |
| 1689 silly gunzTarPerm extractEntry examples/express-3.x/index.html | |
| 1690 silly gunzTarPerm extractEntry lib/middleware/responseTime.js | |
| 1691 silly gunzTarPerm extractEntry lib/middleware/urlencoded.js | |
| 1692 silly gunzTarPerm extractEntry test/helpers/webclient.coffee | |
| 1693 silly gunzTarPerm extractEntry test/server/query.coffee | |
| 1694 silly gunzTarPerm extractEntry lib/debug.js | |
| 1695 silly gunzTarPerm extractEntry lib/definitions.js | |
| 1696 silly gunzTarPerm extractEntry examples/express/sequelize/.npmignore | |
| 1697 silly gunzTarPerm extractEntry examples/express/sequelize/express_sequelize.js | |
| 1698 silly gunzTarPerm extractEntry examples/haproxy.cfg | |
| 1699 silly gunzTarPerm extractEntry examples/multiplex/package.json | |
| 1700 silly gunzTarPerm extractEntry examples/express/sequelize/architecture/sequelize-bootstrapped.js | |
| 1701 silly gunzTarPerm extractEntry examples/express/sequelize/architecture/sequelize-dal/package.json | |
| 1702 silly gunzTarPerm extractEntry lib/util.js | |
| 1703 silly gunzTarPerm extractEntry lib/parser/hiredis.js | |
| 1704 silly gunzTarPerm extractEntry examples/multiplex/README.md | |
| 1705 silly gunzTarPerm extractEntry examples/multiplex/server.js | |
| 1706 silly gunzTarPerm extractEntry lib/appenders/multiprocess.js | |
| 1707 silly gunzTarPerm extractEntry lib/appenders/smtp.js | |
| 1708 silly gunzTarPerm extractEntry lib/middleware/csrf.js | |
| 1709 silly gunzTarPerm extractEntry lib/middleware/session.js | |
| 1710 silly gunzTarPerm extractEntry examples/multiplex/index.html | |
| 1711 silly gunzTarPerm extractEntry examples/test_server/package.json | |
| 1712 silly gunzTarPerm extractEntry examples/express/sequelize/architecture/sequelize-dal/index.js | |
| 1713 silly gunzTarPerm extractEntry examples/http/cluster/http_with_cluster.js | |
| 1714 silly gunzTarPerm extractEntry lib/log4js.json | |
| 1715 silly gunzTarPerm extractEntry lib/streams/BaseRollingFileStream.js | |
| 1716 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.10.9/nodetime_native.node | |
| 1717 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.8.0/nodetime_native.node | |
| 1718 silly gunzTarPerm extractEntry test/server/connection.coffee | |
| 1719 silly gunzTarPerm extractEntry test/server/integration.coffee | |
| 1720 silly gunzTarPerm extractEntry examples/http/minimal/http_minimal.js | |
| 1721 silly gunzTarPerm extractEntry examples/http/random-delays/http_random_delays.js | |
| 1722 silly gunzTarPerm extractEntry examples/test_server/README.md | |
| 1723 silly gunzTarPerm extractEntry examples/test_server/config.js | |
| 1724 silly gunzTarPerm extractEntry lib/streams/DateRollingFileStream.js | |
| 1725 silly gunzTarPerm extractEntry lib/streams/RollingFileStream.js | |
| 1726 silly gunzTarPerm extractEntry lib/middleware/cookieSession.js | |
| 1727 silly gunzTarPerm extractEntry lib/middleware/static.js | |
| 1728 silly gunzTarPerm extractEntry test/server/json-api.coffee | |
| 1729 silly gunzTarPerm extractEntry test/server/microevent.coffee | |
| 1730 silly gunzTarPerm extractEntry examples/http/simple/http_simple.js | |
| 1731 silly gunzTarPerm extractEntry examples/restify/elasticsearch/package.json | |
| 1732 silly gunzTarPerm extractEntry examples/test_server/server.js | |
| 1733 silly gunzTarPerm extractEntry examples/test_server/sockjs_app.js | |
| 1734 silly gunzTarPerm extractEntry test/server/middleware.coffee | |
| 1735 silly gunzTarPerm extractEntry test/server/doc.coffee | |
| 1736 http 304 https://registry.npmjs.org/mongoskin | |
| 1737 silly registry.get cb [ 304, | |
| 1737 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 1737 silly registry.get etag: '"52WA4VFVWQXIKCBD73JXRYD5C"', | |
| 1737 silly registry.get date: 'Wed, 18 Dec 2013 17:18:17 GMT', | |
| 1737 silly registry.get 'content-length': '0' } ] | |
| 1738 verbose etag mongoskin from cache | |
| 1739 silly lockFile db13ce97-18171509-node-modules-node-codio tar:///var/www/sharejs/releases/20131218171509/node_modules/node-codio | |
| 1740 silly lockFile db13ce97-18171509-node-modules-node-codio tar:///var/www/sharejs/releases/20131218171509/node_modules/node-codio | |
| 1741 silly gunzTarPerm extractEntry test/memory.coffee | |
| 1742 silly gunzTarPerm extractEntry test/mocha.opts | |
| 1743 silly gunzTarPerm extractEntry lib/streams/index.js | |
| 1744 silly gunzTarPerm extractEntry .travis.yml | |
| 1745 silly gunzTarPerm extractEntry lib/chunking-test.js | |
| 1746 silly gunzTarPerm extractEntry lib/sockjs.js | |
| 1747 silly gunzTarPerm extractEntry lib/middleware/cookieParser.js | |
| 1748 silly gunzTarPerm extractEntry lib/middleware/staticCache.js | |
| 1749 silly lockFile 99388702-npm-node-codio-0-0-1-package-tgz tar:///home/sharejs/.npm/node-codio/0.0.1/package.tgz | |
| 1750 silly lockFile 99388702-npm-node-codio-0-0-1-package-tgz tar:///home/sharejs/.npm/node-codio/0.0.1/package.tgz | |
| 1751 silly gunzTarPerm extractEntry examples/restify/elasticsearch/server.js | |
| 1752 silly gunzTarPerm extractEntry examples/restify/mongoose/.npmignore | |
| 1753 info preinstall [email protected] | |
| 1754 silly addNameRange number 2 { name: 'mongoskin', range: '>=0.5.0-0 <0.6.0-0', hasData: true } | |
| 1755 silly addNameRange versions [ 'mongoskin', | |
| 1755 silly addNameRange [ '0.1.0', | |
| 1755 silly addNameRange '0.1.1', | |
| 1755 silly addNameRange '0.1.2', | |
| 1755 silly addNameRange '0.1.3', | |
| 1755 silly addNameRange '0.2.0', | |
| 1755 silly addNameRange '0.2.1', | |
| 1755 silly addNameRange '0.2.2', | |
| 1755 silly addNameRange '0.2.3', | |
| 1755 silly addNameRange '0.3.0', | |
| 1755 silly addNameRange '0.3.3', | |
| 1755 silly addNameRange '0.3.4', | |
| 1755 silly addNameRange '0.3.5', | |
| 1755 silly addNameRange '0.3.6', | |
| 1755 silly addNameRange '0.3.7', | |
| 1755 silly addNameRange '0.4.0', | |
| 1755 silly addNameRange '0.4.1', | |
| 1755 silly addNameRange '0.4.2', | |
| 1755 silly addNameRange '0.4.3', | |
| 1755 silly addNameRange '0.4.4', | |
| 1755 silly addNameRange '0.5.0', | |
| 1755 silly addNameRange '0.6.0', | |
| 1755 silly addNameRange '0.6.1' ] ] | |
| 1756 verbose addNamed [ 'mongoskin', '0.5.0' ] | |
| 1757 verbose addNamed [ '0.5.0', '0.5.0' ] | |
| 1758 silly lockFile 7f00e4ca-mongoskin-0-5-0 [email protected] | |
| 1759 verbose lock [email protected] /home/sharejs/.npm/7f00e4ca-mongoskin-0-5-0.lock | |
| 1760 silly gunzTarPerm extractEntry test/server/rest.coffee | |
| 1761 silly gunzTarPerm extractEntry test/server/session.coffee | |
| 1762 verbose readDependencies using package.json deps | |
| 1763 silly gunzTarPerm extractEntry .jshintrc | |
| 1764 silly gunzTarPerm extractEntry examples/example-connect-logger.js | |
| 1765 verbose readDependencies using package.json deps | |
| 1766 verbose cache add [ 'lodash@~2.4.0', null ] | |
| 1767 verbose cache add name=undefined spec="lodash@~2.4.0" args=["lodash@~2.4.0",null] | |
| 1768 verbose parsed url { protocol: null, | |
| 1768 verbose parsed url slashes: null, | |
| 1768 verbose parsed url auth: null, | |
| 1768 verbose parsed url host: null, | |
| 1768 verbose parsed url port: null, | |
| 1768 verbose parsed url hostname: null, | |
| 1768 verbose parsed url hash: null, | |
| 1768 verbose parsed url search: null, | |
| 1768 verbose parsed url query: null, | |
| 1768 verbose parsed url pathname: 'lodash@~2.4.0', | |
| 1768 verbose parsed url path: 'lodash@~2.4.0', | |
| 1768 verbose parsed url href: 'lodash@~2.4.0' } | |
| 1769 verbose cache add name="lodash" spec="~2.4.0" args=["lodash","~2.4.0"] | |
| 1770 verbose parsed url { protocol: null, | |
| 1770 verbose parsed url slashes: null, | |
| 1770 verbose parsed url auth: null, | |
| 1770 verbose parsed url host: null, | |
| 1770 verbose parsed url port: null, | |
| 1770 verbose parsed url hostname: null, | |
| 1770 verbose parsed url hash: null, | |
| 1770 verbose parsed url search: null, | |
| 1770 verbose parsed url query: null, | |
| 1770 verbose parsed url pathname: '~2.4.0', | |
| 1770 verbose parsed url path: '~2.4.0', | |
| 1770 verbose parsed url href: '~2.4.0' } | |
| 1771 verbose addNamed [ 'lodash', '~2.4.0' ] | |
| 1772 verbose addNamed [ null, '>=2.4.0-0 <2.5.0-0' ] | |
| 1773 silly lockFile d594f717-lodash-2-4-0 lodash@~2.4.0 | |
| 1774 verbose lock lodash@~2.4.0 /home/sharejs/.npm/d594f717-lodash-2-4-0.lock | |
| 1775 silly gunzTarPerm extractEntry lib/trans-eventsource.js | |
| 1776 silly gunzTarPerm extractEntry lib/trans-htmlfile.js | |
| 1777 silly addNameRange { name: 'lodash', range: '>=2.4.0-0 <2.5.0-0', hasData: false } | |
| 1778 silly gunzTarPerm extractEntry lib/middleware/compress.js | |
| 1779 silly gunzTarPerm extractEntry lib/middleware/timeout.js | |
| 1780 silly gunzTarPerm extractEntry test/server/testhelpers.coffee | |
| 1781 silly gunzTarPerm extractEntry test/server/text-api.coffee | |
| 1782 verbose url raw lodash | |
| 1783 verbose url resolving [ 'https://registry.npmjs.org/', './lodash' ] | |
| 1784 verbose url resolved https://registry.npmjs.org/lodash | |
| 1785 info trying registry request attempt 1 at 17:18:17 | |
| 1786 verbose etag "93VVQDOQAAMK99ABRCM1ZYFHK" | |
| 1787 http GET https://registry.npmjs.org/lodash | |
| 1788 silly lockFile e3b54737-8171509-node-modules-querystring tar:///var/www/sharejs/releases/20131218171509/node_modules/querystring | |
| 1789 silly lockFile e3b54737-8171509-node-modules-querystring tar:///var/www/sharejs/releases/20131218171509/node_modules/querystring | |
| 1790 silly lockFile 26742a22-pm-querystring-0-2-0-package-tgz tar:///home/sharejs/.npm/querystring/0.2.0/package.tgz | |
| 1791 silly lockFile 26742a22-pm-querystring-0-2-0-package-tgz tar:///home/sharejs/.npm/querystring/0.2.0/package.tgz | |
| 1792 silly gunzTarPerm extractEntry examples/example-socket.js | |
| 1793 silly gunzTarPerm extractEntry examples/example.js | |
| 1794 silly lockFile 7f00e4ca-mongoskin-0-5-0 [email protected] | |
| 1795 silly lockFile 7f00e4ca-mongoskin-0-5-0 [email protected] | |
| 1796 silly gunzTarPerm extractEntry examples/restify/mongoose/restify_mongoose.js | |
| 1797 silly gunzTarPerm extractEntry examples/restify/mongoose/architecture/mongoose-bootstrapped.js | |
| 1798 silly lockFile 34af0aad-mongoskin-0-5 mongoskin@~0.5 | |
| 1799 silly lockFile 34af0aad-mongoskin-0-5 mongoskin@~0.5 | |
| 1800 silly gunzTarPerm extractEntry lib/iframe.js | |
| 1801 silly gunzTarPerm extractEntry lib/trans-websocket.js | |
| 1802 silly resolved [ { name: 'mongoskin', | |
| 1802 silly resolved description: 'The future layer above node-mongodb-native', | |
| 1802 silly resolved version: '0.5.0', | |
| 1802 silly resolved author: { name: 'Gui Lin', email: '[email protected]' }, | |
| 1802 silly resolved homepage: 'https://github.com/kissjs/node-mongoskin', | |
| 1802 silly resolved repository: | |
| 1802 silly resolved { type: 'git', | |
| 1802 silly resolved url: 'git://github.com/guileen/node-mongoskin.git' }, | |
| 1802 silly resolved bugs: { url: 'https://github.com/kissjs/node-mongoskin/issues' }, | |
| 1802 silly resolved main: './index.js', | |
| 1802 silly resolved keywords: [ 'mongodb', 'database', 'nosql' ], | |
| 1802 silly resolved engines: { node: '>= 0.4.0' }, | |
| 1802 silly resolved dependencies: { mongodb: '1.2.x' }, | |
| 1802 silly resolved devDependencies: { mocha: '*', jscover: '*', should: '*' }, | |
| 1802 silly resolved scripts: { test: 'make test' }, | |
| 1802 silly resolved directories: { example: './examples', lib: './lib/mongoskin' }, | |
| 1802 silly resolved license: 'MIT', | |
| 1802 silly resolved contributors: | |
| 1802 silly resolved [ [Object], | |
| 1802 silly resolved [Object], | |
| 1802 silly resolved [Object], | |
| 1802 silly resolved [Object], | |
| 1802 silly resolved [Object], | |
| 1802 silly resolved [Object], | |
| 1802 silly resolved [Object], | |
| 1802 silly resolved [Object], | |
| 1802 silly resolved [Object], | |
| 1802 silly resolved [Object], | |
| 1802 silly resolved [Object], | |
| 1802 silly resolved [Object] ], | |
| 1802 silly resolved readme: '# mongoskin [](http://travis-ci.org/kissjs/node-mongoskin)\n\n\n\nThis project is a wrapper of [node-mongodb-native](https://github.com/mongodb/node-mongodb-native).\nThe api is same to node-mongodb-native, please see the [document](http://mongodb.github.com/node-mongodb-native/) first.\n\n## Test\n\n* test results: [test_results.md](https://github.com/kissjs/node-mongoskin/blob/master/test_results.md)\n* jscoverage: [**89%**](http://fengmk2.github.com/coverage/mongoskin.html)\n\n## Test pass [mongodb] versions\n\n* <del>>= 0.9.8 < 1.0.0</del>: mongodb have bug, it will throw a `TypeError: object is not a function` \n when connection open error.\n* <del>1.0.x</del>\n* <del>1.1.x</del>\n* 1.2.x\n\n```bash\n$ make test\n```\n\n<a name=\'index\'>\n\n# Mongoskin document\n\n* [Nodejs mongodb drivers comparation](#comparation)\n* [Install](#install)\n* [Quick Start](#quickstart)\n * [Connect easier](#quickstart-1)\n * [Server options and BSON options](#quickstart-2)\n * [Similar API with node-mongodb-native](#quickstart-3)\n * [Cursor easier](#quickstart-4)\n * [MVC helper](#quickstart-5)\n* [Documentation](#documentation)\n * [Module](#module)\n * [SkinServer](#skinserver)\n * [SkinDb](#skindb)\n * [SkinCollection](#skincollection)\n * [Additional methods](#additional-collection-op)\n * [Collection operation](#inherit-collection-op)\n * [Indexes](#inherit-indexes)\n * [Querying](#inherit-query)\n * [Aggregation](#inherit-aggregation)\n * [Inserting](#inherit-inserting)\n * [Updating](#inherit-updating)\n * [Removing](#inherit-removing)\n * [SkinCursor](#skincursor)\n\n<a name=\'comparation\'>\n\nNodejs Mongodb Driver Comparison\n========\n\nnode-mongodb-native\n--------\n\nOne of the most powerful Mongo drivers is node-mongodb-native. Most other drivers build\non top of it, including mongoskin. Unfortunately, it has an awkward interface with too many \ncallbacks. Also, mongoskin needs a way to hold a Collection instance as an MVC model.\n \nSee [mongodb-native](https://github.com/christkv/node-mongodb-native/tree/master/docs)\n\nmongoose\n--------\n\nMongoose provides an ORM way to hold Collection instance as Model,\n you should define schema first. But why mongodb need schema?\n Some guys like me, want to write code from application layer but not database layer,\n and we can use any fields without define it before.\n\n Mongoose provide a DAL that you can do validation, and write your middlewares.\n But some guys like me would like to validate manually, I think it is the tao of mongodb.\n\n If you don\'t thinks so, [Mongoose-ORM](https://github.com/LearnBoost/mongoose) is probably your choice.\n\nmongoskin\n--------\n\nMongoskin is an easy to use driver of mongodb for nodejs,\n it is similar with mongo shell, powerful like node-mongodb-native,\n and support additional javascript method binding, which make it can act as a Model(in document way).\n\nIt will provide full features of [node-mongodb-native](https://github.com/christkv/node-mongodb-native),\n and make it [future](http://en.wikipedia.org/wiki/Future_%28programming%29).\n\nIf you need validation, you can use [node-iform](https://github.com/guileen/node-iform).\n\n[Back to index](#index)\n\n<a name=\'install\'></a>\n\nInstall\n========\n\n```bash\n$ npm install mongoskin\n```\n\n[Back to index](#index)\n\n\n<a name=\'quickstart\'></a>\n\nQuick Start\n========\n\n **Is mongoskin synchronized?**\n\nNope! It is asynchronized, it use the [future pattern](http://en.wikipedia.org/wiki/Future_%28programming%29).\n**Mongoskin** is the future layer above [node-mongodb-native](https://github.com/christkv/node-mongodb-native)\n\n<a name=\'quickstart-1\'></a>\n\nConnect easier\n--------\nYou can connect to mongodb easier now.\n\n```js\nvar mongo = require(\'mongoskin\');\nmongo.db(\'localhost:27017/testdb\').collection(\'blog\').find().toArray(function (err, items) {\n console.dir(items);\n})\n```\n\n<a name=\'quickstart-2\'></a>\n\nServer options and BSON options\n--------\nYou can also set `auto_reconnect` options querystring.\nAnd native_parser options will automatically set if native_parser is available.\n\n```js\nvar mongo = require(\'mongoskin\');\nvar db = mongo.db(\'localhost:27017/test?auto_reconnect\');\n```\n\n<a name=\'quickstart-3\'></a>\n\nSimilar API with node-mongodb-native\n--------\nYou can do everything that node-mongodb-native can do.\n\n```js\ndb.createCollection(...);\ndb.collection(\'user\').ensureIndex([[\'username\', 1]], true, function (err, replies) {});\ndb.collection(\'posts\').hint = \'slug\';\ndb.collection(\'posts\').findOne({slug: \'whats-up\'}, function (err, post) {\n // do something\n});\n```\n\n<a name=\'quickstart-4\'></a>\n\nCursor easier\n--------\n\n```js\ndb.collection(\'posts\').find().toArray(function (err, posts) {\n // do something\n});\n```\n\n<a name=\'quickstart-5\'></a>\n\nMVC helper\n--------\n\nYou can bind **additional methods** for collection.\nIt is very useful if you want to use MVC patterns with nodejs and mongodb.\nYou can also invoke collection by properties after bind,\nit could simplfy your `require`.\n\nTo keep your code in line with DRY principles, it\'s possible to create your own\ndata layer by for example, setting up your own validators and/or default values\ninside the MVC methods as shown below in the config example\n\n```js\ndb.bind(\'posts\', {\n findTop10 : function (fn) {\n this.find({}, {limit:10, sort:[[\'views\', -1]]}).toArray(fn);\n },\n removeTagWith : function (tag, fn) {\n this.remove({tags:tag},fn);\n }\n } \n});\n\ndb.bind(\'settings\', {\n\n getAll: function(user, fn) {\n \n \tthis.find({user: user}).toArray(function(err, settings) {\n \t\n \t // We want to set a default currency from within our app instead of storing it\n \t // for every user\n \t settings.currency = (typeof settings.currency !== "undefined") ? settings.currency : \'USD\';\n \t\t\n \t fn(err, settings);\n \t\n \t});\n }\n});\n\n \ndb.bind(\'comments\');\n\ndb.collection(\'posts\').removeTagWith(\'delete\', function (err, replies) {\n //do something\n});\n\ndb.posts.findTop10(function (err, topPosts) {\n //do something\n});\n\ndb.comments.find().toArray(function (err, comments) {\n //do something\n});\n```\n\n[Back to index](#index)\n\n\n<a name=\'documentation\'>\n\nDocumentation\n========\n\nfor more information, see the source.\n\n[Back to index](#index)\n\n\n<a name=\'module\'>\n\nModule\n--------\n\n### MongoSkin Url format\n\n```\n[*://][username:password@]host[:port][/database][?auto_reconnect[=true|false]]`\n```\n\ne.g.\n\n```\nlocalhost/blog\nmongo://admin:[email protected]:27017/blog?auto_reconnect\n127.0.0.1?auto_reconnect=false\n```\n\n### db(serverURL[s], dbOptions, replicasetOptions)\n\nGet or create instance of [SkinDb](#skindb).\n\n```js\nvar db = mongoskin.db(\'localhost:27017/testdb?auto_reconnect=true&poolSize=5\');\n```\n\nfor ReplSet server\n\n```js\nvar db = mongoskin.db([\n \'192.168.0.1:27017/?auto_reconnect=true\',\n \'192.168.0.2:27017/?auto_reconnect=true\',\n \'192.168.0.3:27017/?auto_reconnect=true\'\n], {\n database: \'testdb\',\n safe: true\n}, {\n connectArbiter: false,\n socketOptions: {\n timeout: 2000\n }\n});\n```\n\n### router(select)\n\nselect is `function(collectionName)` returns a database instance, means router collectionName to that database.\n\n```js\nvar db = mongo.router(function (coll_name) {\n switch(coll_name) {\n case \'user\':\n case \'message\':\n return mongo.db(\'192.168.1.3/auth_db\');\n default:\n return mongo.db(\'192.168.1.2/app_db\');\n }\n});\ndb.bind(\'user\', require(\'./shared-user-methods\'));\nvar users = db.user; //auth_db.user\nvar messages = db.collection(\'message\'); // auth_db.message\nvar products = db.collection(\'product\'); //app_db.product\n```\n\n### classes extends frome node-mongodb-native\n\n* BSONPure\n* BSONNative\n* BinaryParser\n* Binary\n* Code\n* DBRef\n* Double\n* MaxKey\n* MinKey\n* ObjectID\n* Symbol\n* Timestamp\n* Long\n* BaseCommand\n* DbCommand\n* DeleteCommand\n* GetMoreCommand\n* InsertCommand\n* KillCursorCommand\n* QueryCommand\n* UpdateCommand\n* MongoReply\n* Admin\n* Collection\n* Connection\n* Server\n* ReplSetServers\n* Cursor\n* Db\n* connect\n* Grid\n* Chunk\n* GridStore\n* native\n* pure\n\n\n[Back to index](#index)\n\n<a name=\'skinserver\'>\n\nSkinServer\n--------\n\n### SkinServer(server)\n\nConstruct SkinServer from native Server instance.\n\n### db(dbname, username=null, password=null)\n\nConstruct [SkinDb](#skindb) from SkinServer.\n\n[Back to index](#index)\n\n<a name=\'skindb\'>\n\nSkinDb\n--------\n\n### SkinDb(db, username=null, password=null)\n\nConstruct SkinDb.\n\n### open(callback)\n\nConnect to database, retrieval native\n[Db](https://github.com/christkv/node-mongodb-native/blob/master/lib/mongodb/db.js#L17)\ninstance, callback is function(err, db).\n\n### collection(collectionName)\n\nRetrieval [SkinCollection](#skincollection) instance of specified collection name.\n\n<a name=\'skindb-bind\'>\n\n### bind(collectionName)\n\n### bind(collectionName, SkinCollection)\n\n### bind(collectionName, extendObject1, extendObject2 ...)\n\nBind [SkinCollection](#skincollection) to db properties as a shortcut to db.collection(name).\nYou can also bind additional methods to the SkinCollection, it is useful when\nyou want to reuse a complex operation. This will also affect\ndb.collection(name) method.\n\ne.g.\n\n```js\ndb.bind(\'book\', {\n firstBook: function (fn) {\n this.findOne(fn);\n }\n});\ndb.book.firstBook(function (err, book) {});\n```\n\n### all the methods from Db.prototype\n\nSee [Db](https://github.com/christkv/node-mongodb-native/blob/master/lib/mongodb/db.js#L17) of node-mongodb-native for more information.\n\n[Back to index](#index)\n\n<a name=\'skincollection\'>\n\nSkinCollection\n--------\n\nSee [Collection](https://github.com/christkv/node-mongodb-native/blob/master/lib/mongodb/collection.js#L45) of node-mongodb-native for more information.\n\n<a name=\'additional-collection-op\'>\n### open(callback)\n\nRetrieval native\n[Collection](https://github.com/christkv/node-mongodb-native/blob/master/lib/mongodb/collection.js#L45)\ninstance, callback is function(err, collection).\n\n### id(hex)\n\nEquivalent to\n\n```js\ndb.bson_serializer.ObjectID.createFromHexString(hex);\n```\n\nSee [ObjectID.createFromHexString](https://github.com/christkv/node-mongodb-native/blob/master/lib/mongodb/bson/bson.js#L548)\n\n\n<a name=\'inherit-collection-op\'>\n\n### Collection operation\n\n```js\ncheckCollectionName(collectionName)\noptions(callback)\nrename(collectionName, callback)\ndrop(callback)\n```\n\n<a name=\'inherit-indexes\'>\n\n### Indexes\n\n```js\ncreateIndex(fieldOrSpec, unique, callback)\nensureIndex(fieldOrSpec, unique, callback)\nindexInformation(callback)\ndropIndex(indexName, callback)\ndropIndexes(callback)\n```\n \nSee [mongodb-native indexes](https://github.com/christkv/node-mongodb-native/blob/master/docs/indexes.md)\n\n<a name=\'inherit-query\'>\n\n### Queries\n\nSee [mongodb-native queries](https://github.com/christkv/node-mongodb-native/blob/master/docs/queries.md)\n\n#### findItems(..., callback)\n\nEquivalent to\n\n```js\ncollection.find(..., function (err, cursor) {\n cursor.toArray(callback);\n});\n```\n\nSee [Collection.find](https://github.com/christkv/node-mongodb-native/blob/master/lib/mongodb/collection.js#L348)\n\n#### findEach(..., callback)\n\nEquivalent to\n\n```js\ncollection.find(..., function (err, cursor) {\n cursor.each(callback);\n});\n```\n\nSee [Collection.find](https://github.com/christkv/node-mongodb-native/blob/master/lib/mongodb/collection.js#L348)\n\n#### findById(id, ..., callback)\n\nEquivalent to\n\n```js\ncollection.findOne({_id, ObjectID.createFromHexString(id)}, ..., callback);\n```\n\nSee [Collection.findOne](https://github.com/christkv/node-mongodb-native/blob/master/lib/mongodb/collection.js#L417)\n\n#### find(...)\n\nIf the last parameter is function, it is equivalent to native\n[Collection.find](https://github.com/christkv/node-mongodb-native/blob/master/lib/mongodb/collection.js#L348)\nmethod, else it will return a future [SkinCursor](#skincursor).\n\ne.g.\n\n```js\n// callback\ndb.book.find({}, function (err, cursor) {/* do something */});\n// future SkinCursor\ndb.book.find().toArray(function (err, books) {/* do something */});\n```\n\n#### normalizeHintField(hint)\n\n#### find\n\n```js\n/**\n * Various argument possibilities\n * 1 callback\n * 2 selector, callback,\n * 2 callback, options // really?!\n * 3 selector, fields, callback\n * 3 selector, options, callback\n * 4,selector, fields, options, callback\n * 5 selector, fields, skip, limit, callback\n * 6 selector, fields, skip, limit, timeout, callback\n *\n * Available options:\n * limit, sort, fields, skip, hint, explain, snapshot, timeout, tailable, batchSize\n */\n```\n\n#### findAndModify(query, sort, update, options, callback) \n\n```js\n/**\n Fetch and update a collection\n query: a filter for the query\n sort: if multiple docs match, choose the first one in the specified sort order as the object to manipulate\n update: an object describing the modifications to the documents selected by the query\n options:\n remove: set to a true to remove the object before returning\n new: set to true if you want to return the modified object rather than the original. Ignored for remove.\n upsert: true/false (perform upsert operation)\n**/\n```\n\n#### findOne(queryObject, options, callback)\n\n<a name=\'inherit-aggregation\'>\n\n### Aggregation\n\n#### mapReduce(map, reduce, options, callback)\n\ne.g.\n\n```js\nvar map = function () {\n emit(test(this.timestamp.getYear()), 1);\n}\n\nvar reduce = function (k, v){\n count = 0;\n for (i = 0; i < v.length; i++) {\n count += v[i];\n }\n return count;\n}\nvar options = {scope: {test: new client.bson_serializer.Code(t.toString())}};\ncollection.mapReduce(map, reduce, options, function (err, collection) {\n collection.find(function (err, cursor) {\n cursor.toArray(function (err, results) {\n test.equal(2, results[0].value)\n finished_test({test_map_reduce_functions_scope:\'ok\'}); \n })\n})\n```\n\n#### group(keys, condition, initial, reduce, command, callback)\n\ne.g. \n\n```js\ncollection.group([], {}, {"count":0}, "function (obj, prev) { prev.count++; }", true, function(err, results) {});\n```\n\n#### count(query, callback)\n#### distinct(key, query, callback)\n\n<a name=\'inherit-inserting\'>\n\n### Inserting\n\n#### insert(docs, options, callback)\n\n<a name=\'inherit-updating\'>\n\n### Updating\n\n#### save(doc, options, callback)\n\n```js\n/**\n Update a single document in this collection.\n spec - a associcated array containing the fields that need to be present in\n the document for the update to succeed\n\n document - an associated array with the fields to be updated or in the case of\n a upsert operation the fields to be inserted.\n\n Options:\n upsert - true/false (perform upsert operation)\n multi - true/false (update all documents matching spec)\n strict - true/false (perform check if the operation failed, required extra call to db)\n Deprecated Options:\n safe - true/false (perform check if the operation failed, required extra call to db)\n**/\n```\n\n#### update(spec, document, options, callback)\n\n#### updateById(_id, ..., callback)\n\nEquivalent to\n\n```js\ncollection.update({_id, ObjectID.createFromHexString(id)}, ..., callback);\n```\n\nSee [Collection.update](https://github.com/christkv/node-mongodb-native/blob/master/docs/insert.md)\n\n<a name=\'inherit-removing\'>\n\n### Removing\n\n#### remove(selector, options, callback)\n\n#### removeById(_id, options, callback)\n\n[Back to index](#index)\n\n<a name=\'skincursor\'>\n\nSkinCursor\n---------\n\nSee [Cursor](https://github.com/christkv/node-mongodb-native/blob/master/lib/mongodb/cursor.js#L1)\nof node-mongodb-native for more information.\n\nAll these methods will return the SkinCursor itself.\n\n```js\nsort(keyOrList, [direction], [callback])\nlimit(limit, [callback])\nskip(skip, [callback])\nbatchSize(skip, [callback])\n\ntoArray(callback)\neach(callback)\ncount(callback)\nnextObject(callback)\ngetMore(callback)\nexplain(callback)\n```\n\n[Back to index](#index)\n\n## How to validate input?\n\nI wrote a middleware to validate post data, [node-iform](https://github.com/guileen/node-iform) \nbase on [node-validator](https://github.com/chriso/node-validator)\n\n## Authors\n\nBelow is the output from `git-summary`.\n\n```\n project: node-mongoskin\n commits: 112\n active : 54 days\n files : 39\n authors: \n 49 Lin Gui 43.8%\n 34 guilin 桂林 30.4%\n 9 fengmk2 8.0%\n 5 guilin 4.5%\n 2 François de Metz 1.8%\n 2 Paul Gebheim 1.8%\n 2 Gui Lin 1.8%\n 1 humanchimp 0.9%\n 1 Aneil Mallavarapu 0.9%\n 1 wmertens 0.9%\n 1 Harvey McQueen 0.9%\n 1 Joe Faber 0.9%\n 1 Matt Perpick 0.9%\n 1 Quang Van 0.9%\n 1 Rakshit Menpara 0.9%\n 1 Wout Mertens 0.9%\n```\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2011 - 2012 kissjs.org\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n', | |
| 1802 silly resolved readmeFilename: 'Readme.md', | |
| 1802 silly resolved _id: '[email protected]', | |
| 1802 silly resolved _from: 'mongoskin@~0.5' } ] | |
| 1803 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/livedb-mongo | |
| 1804 info installOne [email protected] | |
| 1805 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.8.1/nodetime_native.node | |
| 1806 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.8.10/nodetime_native.node | |
| 1807 silly lockFile 6d008e53-0131218171509-node-modules-async tar:///var/www/sharejs/releases/20131218171509/node_modules/async | |
| 1808 silly lockFile 6d008e53-0131218171509-node-modules-async tar:///var/www/sharejs/releases/20131218171509/node_modules/async | |
| 1809 silly gunzTarPerm extractEntry test/oplog.coffee | |
| 1810 silly gunzTarPerm extractEntry test/ot.coffee | |
| 1811 info /var/www/sharejs/releases/20131218171509/node_modules/livedb-mongo/node_modules/mongoskin unbuild | |
| 1812 info preinstall [email protected] | |
| 1813 silly lockFile 149b4f9e-rejs-npm-async-0-2-9-package-tgz tar:///home/sharejs/.npm/async/0.2.9/package.tgz | |
| 1814 silly lockFile 149b4f9e-rejs-npm-async-0-2-9-package-tgz tar:///home/sharejs/.npm/async/0.2.9/package.tgz | |
| 1815 silly gunzTarPerm extractEntry lib/middleware/bodyParser.js | |
| 1816 silly gunzTarPerm extractEntry lib/middleware/vhost.js | |
| 1817 verbose tar unpack /home/sharejs/.npm/mongoskin/0.5.0/package.tgz | |
| 1818 silly lockFile 0a6ceec4-edb-mongo-node-modules-mongoskin tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb-mongo/node_modules/mongoskin | |
| 1819 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb-mongo/node_modules/mongoskin /home/sharejs/.npm/0a6ceec4-edb-mongo-node-modules-mongoskin.lock | |
| 1820 silly lockFile 29102b3d--npm-mongoskin-0-5-0-package-tgz tar:///home/sharejs/.npm/mongoskin/0.5.0/package.tgz | |
| 1821 verbose lock tar:///home/sharejs/.npm/mongoskin/0.5.0/package.tgz /home/sharejs/.npm/29102b3d--npm-mongoskin-0-5-0-package-tgz.lock | |
| 1822 verbose readDependencies using package.json deps | |
| 1823 verbose readDependencies using package.json deps | |
| 1824 silly resolved [] | |
| 1825 verbose about to build /var/www/sharejs/releases/20131218171509/node_modules/querystring | |
| 1826 info build /var/www/sharejs/releases/20131218171509/node_modules/querystring | |
| 1827 verbose linkStuff [ false, | |
| 1827 verbose linkStuff false, | |
| 1827 verbose linkStuff false, | |
| 1827 verbose linkStuff '/var/www/sharejs/releases/20131218171509/node_modules' ] | |
| 1828 info linkStuff [email protected] | |
| 1829 verbose linkBins [email protected] | |
| 1830 verbose linkMans [email protected] | |
| 1831 verbose rebuildBundles [email protected] | |
| 1832 info preinstall [email protected] | |
| 1833 info install [email protected] | |
| 1834 silly lockFile 12ffcc9e--node-modules-transport-adapters tar:///var/www/sharejs/releases/20131218171509/node_modules/transport-adapters | |
| 1835 silly lockFile 12ffcc9e--node-modules-transport-adapters tar:///var/www/sharejs/releases/20131218171509/node_modules/transport-adapters | |
| 1836 silly gunzTarPerm modes [ '755', '644' ] | |
| 1837 silly lockFile 60fc8962-sport-adapters-0-1-0-package-tgz tar:///home/sharejs/.npm/transport-adapters/0.1.0/package.tgz | |
| 1838 silly lockFile 60fc8962-sport-adapters-0-1-0-package-tgz tar:///home/sharejs/.npm/transport-adapters/0.1.0/package.tgz | |
| 1839 info postinstall [email protected] | |
| 1840 silly gunzTarPerm extractEntry lib/trans-xhr.js | |
| 1841 silly gunzTarPerm extractEntry lib/transport.js | |
| 1842 verbose readDependencies using package.json deps | |
| 1843 silly gunzTarPerm extractEntry examples/fromreadme.js | |
| 1844 silly gunzTarPerm extractEntry examples/log-rolling.js | |
| 1845 silly gunzTarPerm extractEntry examples/restify/mongoose/architecture/mongoose-dal/package.json | |
| 1846 silly gunzTarPerm extractEntry examples/restify/mongoose/architecture/mongoose-dal/index.js | |
| 1847 verbose readDependencies using package.json deps | |
| 1848 silly resolved [] | |
| 1849 verbose about to build /var/www/sharejs/releases/20131218171509/node_modules/async | |
| 1850 info build /var/www/sharejs/releases/20131218171509/node_modules/async | |
| 1851 verbose linkStuff [ false, | |
| 1851 verbose linkStuff false, | |
| 1851 verbose linkStuff false, | |
| 1851 verbose linkStuff '/var/www/sharejs/releases/20131218171509/node_modules' ] | |
| 1852 info linkStuff [email protected] | |
| 1853 verbose linkBins [email protected] | |
| 1854 verbose linkMans [email protected] | |
| 1855 verbose rebuildBundles [email protected] | |
| 1856 info install [email protected] | |
| 1857 info preinstall [email protected] | |
| 1858 silly gunzTarPerm extractEntry test/server/useragent.coffee | |
| 1859 silly gunzTarPerm extractEntry test/server/version.coffee | |
| 1860 silly gunzTarPerm extractEntry package.json | |
| 1861 info postinstall [email protected] | |
| 1862 silly gunzTarPerm extractEntry lib/middleware/logger.js | |
| 1863 silly gunzTarPerm extractEntry lib/middleware/session/cookie.js | |
| 1864 verbose readDependencies using package.json deps | |
| 1865 verbose readDependencies using package.json deps | |
| 1866 silly resolved [] | |
| 1867 verbose about to build /var/www/sharejs/releases/20131218171509/node_modules/transport-adapters | |
| 1868 info build /var/www/sharejs/releases/20131218171509/node_modules/transport-adapters | |
| 1869 verbose linkStuff [ false, | |
| 1869 verbose linkStuff false, | |
| 1869 verbose linkStuff false, | |
| 1869 verbose linkStuff '/var/www/sharejs/releases/20131218171509/node_modules' ] | |
| 1870 info linkStuff [email protected] | |
| 1871 verbose linkBins [email protected] | |
| 1872 verbose linkMans [email protected] | |
| 1873 verbose rebuildBundles [email protected] | |
| 1874 silly gunzTarPerm extractEntry .npmignore | |
| 1875 silly gunzTarPerm extractEntry LICENSE | |
| 1876 info install [email protected] | |
| 1877 silly gunzTarPerm extractEntry Makefile | |
| 1878 silly gunzTarPerm extractEntry lib/agent.js | |
| 1879 info postinstall [email protected] | |
| 1880 silly gunzTarPerm extractEntry lib/utils.js | |
| 1881 silly gunzTarPerm extractEntry lib/webjs.js | |
| 1882 silly gunzTarPerm extractEntry test/snapshotdb.coffee | |
| 1883 silly gunzTarPerm extractEntry test/test.coffee | |
| 1884 silly gunzTarPerm extractEntry bin/options.js | |
| 1885 silly gunzTarPerm extractEntry bin/setup_amazon | |
| 1886 silly gunzTarPerm extractEntry lib/middleware/session/memory.js | |
| 1887 silly gunzTarPerm extractEntry lib/middleware/session/session.js | |
| 1888 silly gunzTarPerm extractEntry index.js | |
| 1889 silly gunzTarPerm extractEntry History.md | |
| 1890 silly gunzTarPerm extractEntry examples/memory-test.js | |
| 1891 silly gunzTarPerm extractEntry examples/patternLayout-tokens.js | |
| 1892 silly gunzTarPerm extractEntry lib/dominion.js | |
| 1893 silly gunzTarPerm extractEntry lib/environment.js | |
| 1894 silly gunzTarPerm extractEntry lib/parser/javascript.js | |
| 1895 silly gunzTarPerm extractEntry examples/auth.js | |
| 1896 silly gunzTarPerm extractEntry lib/trans-jsonp.js | |
| 1897 silly gunzTarPerm extractEntry bin/setup_couch | |
| 1898 silly gunzTarPerm extractEntry bin/setup_mysql | |
| 1899 silly gunzTarPerm extractEntry .jshintrc | |
| 1900 silly gunzTarPerm extractEntry Makefile | |
| 1901 silly gunzTarPerm extractEntry examples/smtp-appender.js | |
| 1902 silly gunzTarPerm extractEntry .bob.json | |
| 1903 silly gunzTarPerm extractEntry bin/setup_pg | |
| 1904 silly gunzTarPerm extractEntry bin/sharejs | |
| 1905 silly gunzTarPerm extractEntry lib/error.js | |
| 1906 silly gunzTarPerm extractEntry lib/config.js | |
| 1907 silly gunzTarPerm extractEntry lib/middleware/session/store.js | |
| 1908 silly gunzTarPerm extractEntry lib/public/directory.html | |
| 1909 silly gunzTarPerm extractEntry .travis.yml | |
| 1910 silly gunzTarPerm extractEntry examples/admin.js | |
| 1911 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.8.11/nodetime_native.node | |
| 1912 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.8.12/nodetime_native.node | |
| 1913 silly gunzTarPerm extractEntry .bob/report/lint.out | |
| 1914 silly gunzTarPerm extractEntry test/categoryFilter-test.js | |
| 1915 silly gunzTarPerm extractEntry bin/sourceserver | |
| 1916 silly gunzTarPerm extractEntry .travis.yml | |
| 1917 silly gunzTarPerm extractEntry lib/metrics.js | |
| 1918 silly gunzTarPerm extractEntry lib/sampler.js | |
| 1919 silly gunzTarPerm extractEntry examples/close.js | |
| 1920 silly gunzTarPerm extractEntry examples/config.js | |
| 1921 silly gunzTarPerm extractEntry lib/public/error.html | |
| 1922 silly gunzTarPerm extractEntry lib/public/favicon.ico | |
| 1923 http 304 https://registry.npmjs.org/lodash | |
| 1924 silly registry.get cb [ 304, | |
| 1924 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 1924 silly registry.get etag: '"93VVQDOQAAMK99ABRCM1ZYFHK"', | |
| 1924 silly registry.get date: 'Wed, 18 Dec 2013 17:18:17 GMT', | |
| 1924 silly registry.get 'content-length': '0' } ] | |
| 1925 verbose etag lodash from cache | |
| 1926 silly gunzTarPerm extractEntry lib/shimmer.js | |
| 1927 silly gunzTarPerm extractEntry lib/stats.js | |
| 1928 silly lockFile e6cd8cd4-171509-node-modules-isbinaryfile tar:///var/www/sharejs/releases/20131218171509/node_modules/isbinaryfile | |
| 1929 silly lockFile e6cd8cd4-171509-node-modules-isbinaryfile tar:///var/www/sharejs/releases/20131218171509/node_modules/isbinaryfile | |
| 1930 silly lockFile 8cc6a743-m-isbinaryfile-0-1-9-package-tgz tar:///home/sharejs/.npm/isbinaryfile/0.1.9/package.tgz | |
| 1931 silly lockFile 8cc6a743-m-isbinaryfile-0-1-9-package-tgz tar:///home/sharejs/.npm/isbinaryfile/0.1.9/package.tgz | |
| 1932 silly gunzTarPerm extractEntry lib/index.js | |
| 1933 silly gunzTarPerm extractEntry lib/client/connection.js | |
| 1934 silly gunzTarPerm extractEntry examples/generateId.js | |
| 1935 silly gunzTarPerm extractEntry test/debug-test.js | |
| 1936 silly gunzTarPerm extractEntry test/fileAppender-test.js | |
| 1937 silly gunzTarPerm extractEntry examples/gridfs.js | |
| 1938 info preinstall [email protected] | |
| 1939 silly addNameRange number 2 { name: 'lodash', range: '>=2.4.0-0 <2.5.0-0', hasData: true } | |
| 1940 silly addNameRange versions [ 'lodash', | |
| 1940 silly addNameRange [ '0.1.0', | |
| 1940 silly addNameRange '0.2.0', | |
| 1940 silly addNameRange '0.2.1', | |
| 1940 silly addNameRange '0.2.2', | |
| 1940 silly addNameRange '0.3.0', | |
| 1940 silly addNameRange '0.3.1', | |
| 1940 silly addNameRange '0.3.2', | |
| 1940 silly addNameRange '0.4.0', | |
| 1940 silly addNameRange '0.4.1', | |
| 1940 silly addNameRange '0.4.2', | |
| 1940 silly addNameRange '0.5.0-rc.1', | |
| 1940 silly addNameRange '0.5.0', | |
| 1940 silly addNameRange '0.5.1', | |
| 1940 silly addNameRange '0.5.2', | |
| 1940 silly addNameRange '0.6.0', | |
| 1940 silly addNameRange '0.6.1', | |
| 1940 silly addNameRange '0.7.0', | |
| 1940 silly addNameRange '0.8.0', | |
| 1940 silly addNameRange '0.8.1', | |
| 1940 silly addNameRange '0.8.2', | |
| 1940 silly addNameRange '0.9.0', | |
| 1940 silly addNameRange '0.9.1', | |
| 1940 silly addNameRange '0.9.2', | |
| 1940 silly addNameRange '0.10.0', | |
| 1940 silly addNameRange '1.0.0-rc.1', | |
| 1940 silly addNameRange '1.0.0-rc.2', | |
| 1940 silly addNameRange '1.0.0-rc.3', | |
| 1940 silly addNameRange '1.0.0', | |
| 1940 silly addNameRange '1.0.1', | |
| 1940 silly addNameRange '1.1.0', | |
| 1940 silly addNameRange '1.1.1', | |
| 1940 silly addNameRange '1.2.0', | |
| 1940 silly addNameRange '1.2.1', | |
| 1940 silly addNameRange '1.3.0', | |
| 1940 silly addNameRange '1.3.1', | |
| 1940 silly addNameRange '2.0.0', | |
| 1940 silly addNameRange '2.1.0', | |
| 1940 silly addNameRange '2.2.0', | |
| 1940 silly addNameRange '2.2.1', | |
| 1940 silly addNameRange '2.3.0', | |
| 1940 silly addNameRange '2.4.0', | |
| 1940 silly addNameRange '2.4.1' ] ] | |
| 1941 verbose addNamed [ 'lodash', '2.4.1' ] | |
| 1942 verbose addNamed [ '2.4.1', '2.4.1' ] | |
| 1943 silly lockFile 8502be2a-lodash-2-4-1 [email protected] | |
| 1944 verbose lock [email protected] /home/sharejs/.npm/8502be2a-lodash-2-4-1.lock | |
| 1945 silly gunzTarPerm extractEntry lib/public/icons/page_white_edit.png | |
| 1946 silly gunzTarPerm extractEntry lib/public/icons/page.png | |
| 1947 verbose readDependencies using package.json deps | |
| 1948 verbose readDependencies using package.json deps | |
| 1949 silly resolved [] | |
| 1950 verbose about to build /var/www/sharejs/releases/20131218171509/node_modules/isbinaryfile | |
| 1951 info build /var/www/sharejs/releases/20131218171509/node_modules/isbinaryfile | |
| 1952 verbose linkStuff [ false, | |
| 1952 verbose linkStuff false, | |
| 1952 verbose linkStuff false, | |
| 1952 verbose linkStuff '/var/www/sharejs/releases/20131218171509/node_modules' ] | |
| 1953 info linkStuff [email protected] | |
| 1954 verbose linkBins [email protected] | |
| 1955 verbose linkMans [email protected] | |
| 1956 verbose rebuildBundles [email protected] | |
| 1957 info install [email protected] | |
| 1958 silly gunzTarPerm extractEntry lib/timer.js | |
| 1959 silly gunzTarPerm extractEntry lib/config.default.js | |
| 1960 info postinstall [email protected] | |
| 1961 silly gunzTarPerm extractEntry examples/insert.js | |
| 1962 silly gunzTarPerm extractEntry examples/replSetBenchmark.js | |
| 1963 silly gunzTarPerm extractEntry test/gelfAppender-test.js | |
| 1964 silly gunzTarPerm extractEntry test/date_format-test.js | |
| 1965 silly gunzTarPerm extractEntry lib/public/icons/page_attach.png | |
| 1966 silly gunzTarPerm extractEntry lib/public/icons/page_code.png | |
| 1967 silly lockFile 8502be2a-lodash-2-4-1 [email protected] | |
| 1968 silly lockFile 8502be2a-lodash-2-4-1 [email protected] | |
| 1969 silly lockFile d594f717-lodash-2-4-0 lodash@~2.4.0 | |
| 1970 silly lockFile d594f717-lodash-2-4-0 lodash@~2.4.0 | |
| 1971 silly resolved [ { name: 'lodash', | |
| 1971 silly resolved version: '2.4.1', | |
| 1971 silly resolved description: 'A utility library delivering consistency, customization, performance, & extras.', | |
| 1971 silly resolved homepage: 'http://lodash.com/', | |
| 1971 silly resolved license: 'MIT', | |
| 1971 silly resolved main: 'dist/lodash.js', | |
| 1971 silly resolved keywords: | |
| 1971 silly resolved [ 'amd', | |
| 1971 silly resolved 'browser', | |
| 1971 silly resolved 'client', | |
| 1971 silly resolved 'customize', | |
| 1971 silly resolved 'functional', | |
| 1971 silly resolved 'server', | |
| 1971 silly resolved 'util' ], | |
| 1971 silly resolved author: | |
| 1971 silly resolved { name: 'John-David Dalton', | |
| 1971 silly resolved email: '[email protected]', | |
| 1971 silly resolved url: 'http://allyoucanleet.com/' }, | |
| 1971 silly resolved contributors: [ [Object], [Object], [Object], [Object] ], | |
| 1971 silly resolved bugs: { url: 'https://github.com/lodash/lodash/issues' }, | |
| 1971 silly resolved repository: { type: 'git', url: 'https://github.com/lodash/lodash.git' }, | |
| 1971 silly resolved engines: [ 'node', 'rhino' ], | |
| 1971 silly resolved files: | |
| 1971 silly resolved [ 'LICENSE.txt', | |
| 1971 silly resolved 'lodash.js', | |
| 1971 silly resolved 'dist/lodash.js', | |
| 1971 silly resolved 'dist/lodash.min.js', | |
| 1971 silly resolved 'dist/lodash.compat.js', | |
| 1971 silly resolved 'dist/lodash.compat.min.js', | |
| 1971 silly resolved 'dist/lodash.underscore.js', | |
| 1971 silly resolved 'dist/lodash.underscore.min.js' ], | |
| 1971 silly resolved jam: { main: 'dist/lodash.compat.js', include: [Object] }, | |
| 1971 silly resolved volo: { type: 'directory', ignore: [Object] }, | |
| 1971 silly resolved readme: '# Lo-Dash v2.4.1\nA utility library delivering consistency, [customization](http://lodash.com/custom-builds), [performance](http://lodash.com/benchmarks), & [extras](http://lodash.com/#features).\n\n## Download\n\nCheck out our [wiki]([https://github.com/lodash/lodash/wiki/build-differences]) for details over the differences between builds.\n\n* Modern builds perfect for newer browsers/environments:<br>\n[Development](https://raw.github.com/lodash/lodash/2.4.1/dist/lodash.js) &\n[Production](https://raw.github.com/lodash/lodash/2.4.1/dist/lodash.min.js)\n\n* Compatibility builds for older environment support too:<br>\n[Development](https://raw.github.com/lodash/lodash/2.4.1/dist/lodash.compat.js) &\n[Production](https://raw.github.com/lodash/lodash/2.4.1/dist/lodash.compat.min.js)\n\n* Underscore builds to use as a drop-in replacement:<br>\n[Development](https://raw.github.com/lodash/lodash/2.4.1/dist/lodash.underscore.js) &\n[Production](https://raw.github.com/lodash/lodash/2.4.1/dist/lodash.underscore.min.js)\n\nCDN copies are available on [cdnjs](http://cdnjs.com/libraries/lodash.js/) & [jsDelivr](http://www.jsdelivr.com/#!lodash). For smaller file sizes, create [custom builds](http://lodash.com/custom-builds) with only the features needed.\n\nLove modules? We’ve got you covered with [lodash-amd](https://npmjs.org/package/lodash-amd), [lodash-es6](https://github.com/lodash/lodash-es6), [lodash-node](https://npmjs.org/package/lodash-node), & [npm packages](https://npmjs.org/browse/keyword/lodash-modularized) per method.\n\n## Dive in\n\nThere’s plenty of **[documentation](http://lodash.com/docs)**, [unit tests](http://lodash.com/tests), & [benchmarks](http://lodash.com/benchmarks).<br>\nCheck out <a href="http://devdocs.io/lodash/">DevDocs</a> as a fast, organized, & searchable interface for our documentation.\n\nThe full changelog for this release is available on our [wiki](https://github.com/lodash/lodash/wiki/Changelog).<br>\nA list of upcoming features is available on our [roadmap](https://github.com/lodash/lodash/wiki/Roadmap).\n\n## Features *not* in Underscore\n\n * AMD loader support ([curl](https://github.com/cujojs/curl), [dojo](http://dojotoolkit.org/), [requirejs](http://requirejs.org/), etc.)\n * [_(…)](http://lodash.com/docs#_) supports intuitive chaining\n * [_.at](http://lodash.com/docs#at) for cherry-picking collection values\n * [_.bindKey](http://lodash.com/docs#bindKey) for binding [*“lazy”*](http://michaux.ca/articles/lazy-function-definition-pattern) defined methods\n * [_.clone](http://lodash.com/docs#clone) supports shallow cloning of `Date` & `RegExp` objects\n * [_.cloneDeep](http://lodash.com/docs#cloneDeep) for deep cloning arrays & objects\n * [_.constant](http://lodash.com/docs#constant) & [_.property](http://lodash.com/docs#property) function generators for composing functions\n * [_.contains](http://lodash.com/docs#contains) accepts a `fromIndex`\n * [_.create](http://lodash.com/docs#create) for easier object inheritance\n * [_.createCallback](http://lodash.com/docs#createCallback) for extending callbacks in methods & mixins\n * [_.curry](http://lodash.com/docs#curry) for creating [curried](http://hughfdjackson.com/javascript/2013/07/06/why-curry-helps/) functions\n * [_.debounce](http://lodash.com/docs#debounce) & [_.throttle](http://lodash.com/docs#throttle) accept additional `options` for more control\n * [_.findIndex](http://lodash.com/docs#findIndex) & [_.findKey](http://lodash.com/docs#findKey) for finding indexes & keys\n * [_.forEach](http://lodash.com/docs#forEach) is chainable & supports exiting early\n * [_.forIn](http://lodash.com/docs#forIn) for iterating own & inherited properties\n * [_.forOwn](http://lodash.com/docs#forOwn) for iterating own properties\n * [_.isPlainObject](http://lodash.com/docs#isPlainObject) for checking if values are created by `Object`\n * [_.mapValues](http://lodash.com/docs#mapValues) for [mapping](http://lodash.com/docs#map) values to an object\n * [_.memoize](http://lodash.com/docs#memoize) exposes the `cache` of memoized functions\n * [_.merge](http://lodash.com/docs#merge) for a deep [_.extend](http://lodash.com/docs#extend)\n * [_.noop](http://lodash.com/docs#noop) for function placeholders\n * [_.now](http://lodash.com/docs#now) as a cross-browser `Date.now` alternative\n * [_.parseInt](http://lodash.com/docs#parseInt) for consistent behavior\n * [_.pull](http://lodash.com/docs#pull) & [_.remove](http://lodash.com/docs#remove) for mutating arrays\n * [_.random](http://lodash.com/docs#random) supports returning floating-point numbers\n * [_.runInContext](http://lodash.com/docs#runInContext) for easier mocking\n * [_.sortBy](http://lodash.com/docs#sortBy) supports sorting by multiple properties\n * [_.support](http://lodash.com/docs#support) for flagging environment features\n * [_.template](http://lodash.com/docs#template) supports [*“imports”*](http://lodash.com/docs#templateSettings_imports) options & [ES6 template delimiters](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-literals-string-literals)\n * [_.transform](http://lodash.com/docs#transform) as a powerful alternative to [_.reduce](http://lodash.com/docs#reduce) for transforming objects\n * [_.where](http://lodash.com/docs#where) supports deep object comparisons\n * [_.xor](http://lodash.com/docs#xor) as a companion to [_.difference](http://lodash.com/docs#difference), [_.intersection](http://lodash.com/docs#intersection), & [_.union](http://lodash.com/docs#union)\n * [_.zip](http://lodash.com/docs#zip) is capable of unzipping values\n * [_.omit](http://lodash.com/docs#omit), [_.pick](http://lodash.com/docs#pick), &\n [more](http://lodash.com/docs "_.assign, _.clone, _.cloneDeep, _.first, _.initial, _.isEqual, _.last, _.merge, _.rest") accept callbacks\n * [_.contains](http://lodash.com/docs#contains), [_.toArray](http://lodash.com/docs#toArray), &\n [more](http://lodash.com/docs "_.at, _.countBy, _.every, _.filter, _.find, _.forEach, _.forEachRight, _.groupBy, _.invoke, _.map, _.max, _.min, _.pluck, _.reduce, _.reduceRight, _.reject, _.shuffle, _.size, _.some, _.sortBy, _.where") accept strings\n * [_.filter](http://lodash.com/docs#filter), [_.map](http://lodash.com/docs#map), &\n [more](http://lodash.com/docs "_.countBy, _.every, _.find, _.findKey, _.findLast, _.findLastIndex, _.findLastKey, _.first, _.groupBy, _.initial, _.last, _.max, _.min, _.reject, _.rest, _.some, _.sortBy, _.sortedIndex, _.uniq") support *“_.pluck”* & *“_.where”* shorthands\n * [_.findLast](http://lodash.com/docs#findLast), [_.findLastIndex](http://lodash.com/docs#findLastIndex), &\n [more](http://lodash.com/docs "_.findLastKey, _.forEachRight, _.forInRight, _.forOwnRight, _.partialRight") right-associative methods\n\n## Resources\n\n * Podcasts\n - [JavaScript Jabber](http://javascriptjabber.com/079-jsj-lo-dash-with-john-david-dalton/)\n\n * Posts\n - [Say “Hello” to Lo-Dash](http://kitcambridge.be/blog/say-hello-to-lo-dash/)\n - [Custom builds in Lo-Dash 2.0](http://kitcambridge.be/blog/custom-builds-in-lo-dash-2-dot-0/)\n\n * Videos\n - [Introduction](https://vimeo.com/44154599)\n - [Origins](https://vimeo.com/44154600)\n - [Optimizations & builds](https://vimeo.com/44154601)\n - [Native method use](https://vimeo.com/48576012)\n - [Testing](https://vimeo.com/45865290)\n - [CascadiaJS ’12](http://www.youtube.com/watch?v=dpPy4f_SeEk)\n\n A list of other community created podcasts, posts, & videos is available on our [wiki](https://github.com/lodash/lodash/wiki/Resources).\n\n## Support\n\nTested in Chrome 5~31, Firefox 2~25, IE 6-11, Opera 9.25~17, Safari 3-7, Node.js 0.6.21~0.10.22, Narwhal 0.3.2, PhantomJS 1.9.2, RingoJS 0.9, & Rhino 1.7RC5.<br>\nAutomated browser test results [are available](https://saucelabs.com/u/lodash) as well as [Travis CI](https://travis-ci.org/) builds for [lodash](https://travis-ci.org/lodash/lodash/), [lodash-cli](https://travis-ci.org/lodash/lodash-cli/), [lodash-amd](https://travis-ci.org/lodash/lodash-amd/), [lodash-node](https://travis-ci.org/lodash/lodash-node/), & [grunt-lodash](https://travis-ci.org/lodash/grunt-lodash).\n\nSpecial thanks to [Sauce Labs](https://saucelabs.com/) for providing automated browser testing.<br>\n[](https://saucelabs.com/ "Sauce Labs: Selenium Testing & More")\n\n## Installation & usage\n\nIn browsers:\n\n```html\n<script src="lodash.js"></script>\n```\n\nUsing [`npm`](http://npmjs.org/):\n\n```bash\nnpm i --save lodash\n\n{sudo} npm i -g lodash\nnpm ln lodash\n```\n\nIn [Node.js](http://nodejs.org/) & [Ringo](http://ringojs.org/):\n\n```js\nvar _ = require(\'lodash\');\n// or as Underscore\nvar _ = require(\'lodash/dist/lodash.underscore\');\n```\n\n**Notes:**\n * Don’t assign values to [special variable](http://nodejs.org/api/repl.html#repl_repl_features) `_` when in the REPL\n * If Lo-Dash is installed globally, run [`npm ln lodash`](http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/) in your project’s root directory *before* requiring it\n\nIn [Rhino](http://www.mozilla.org/rhino/):\n\n```js\nload(\'lodash.js\');\n```\n\nIn an AMD loader:\n\n```js\nrequire({\n \'packages\': [\n { \'name\': \'lodash\', \'location\': \'path/to/lodash\', \'main\': \'lodash\' }\n ]\n},\n[\'lodash\'], function(_) {\n console.log(_.VERSION);\n});\n```\n\n## Author\n\n| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |\n|---|\n| [John-David Dalton](http://allyoucanleet.com/) |\n\n## Contributors\n\n| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |\n|---|---|---|\n| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |\n\n[](https://bitdeli.com/free "Bitdeli Badge")\n', | |
| 1971 silly resolved readmeFilename: 'README.md', | |
| 1971 silly resolved _id: '[email protected]', | |
| 1971 silly resolved _from: 'lodash@~2.4.0' } ] | |
| 1972 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/node-codio | |
| 1973 info installOne [email protected] | |
| 1974 silly gunzTarPerm extractEntry lib/transaction.js | |
| 1975 silly gunzTarPerm extractEntry lib/logger.js | |
| 1976 info /var/www/sharejs/releases/20131218171509/node_modules/node-codio/node_modules/lodash unbuild | |
| 1977 silly gunzTarPerm extractEntry examples/replset.js | |
| 1978 silly gunzTarPerm extractEntry examples/update.js | |
| 1979 silly gunzTarPerm extractEntry test/hookioAppender-test.js | |
| 1980 silly gunzTarPerm extractEntry test/layouts-test.js | |
| 1981 verbose tar unpack /home/sharejs/.npm/lodash/2.4.1/package.tgz | |
| 1982 silly lockFile 8aca0c3a-s-node-codio-node-modules-lodash tar:///var/www/sharejs/releases/20131218171509/node_modules/node-codio/node_modules/lodash | |
| 1983 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/node-codio/node_modules/lodash /home/sharejs/.npm/8aca0c3a-s-node-codio-node-modules-lodash.lock | |
| 1984 silly lockFile 5f510b88-ejs-npm-lodash-2-4-1-package-tgz tar:///home/sharejs/.npm/lodash/2.4.1/package.tgz | |
| 1985 verbose lock tar:///home/sharejs/.npm/lodash/2.4.1/package.tgz /home/sharejs/.npm/5f510b88-ejs-npm-lodash-2-4-1-package-tgz.lock | |
| 1986 silly gunzTarPerm extractEntry lib/public/icons/page_copy.png | |
| 1987 silly gunzTarPerm extractEntry lib/public/icons/page_delete.png | |
| 1988 silly gunzTarPerm modes [ '755', '644' ] | |
| 1989 silly gunzTarPerm extractEntry AUTHORS | |
| 1990 silly gunzTarPerm extractEntry integration/integration_tests.js | |
| 1991 silly gunzTarPerm extractEntry lib/db/parse-sql.js | |
| 1992 silly gunzTarPerm extractEntry lib/db/parsed-statement.js | |
| 1993 silly gunzTarPerm extractEntry lib/client/doc.js | |
| 1994 silly gunzTarPerm extractEntry lib/client/index.js | |
| 1995 silly gunzTarPerm extractEntry package.json | |
| 1996 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.8.13/nodetime_native.node | |
| 1997 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.10.1/nodetime_native.node | |
| 1998 silly gunzTarPerm extractEntry lib/public/icons/page_edit.png | |
| 1999 silly gunzTarPerm extractEntry lib/public/icons/page_error.png | |
| 2000 silly gunzTarPerm extractEntry README.md | |
| 2001 silly gunzTarPerm extractEntry lodash.js | |
| 2002 silly gunzTarPerm extractEntry test/clusteredAppender-test.js | |
| 2003 silly gunzTarPerm extractEntry test/log-abspath-test.js | |
| 2004 silly gunzTarPerm extractEntry integration/longlive.js | |
| 2005 silly gunzTarPerm extractEntry lib/mongoskin/admin.js | |
| 2006 silly gunzTarPerm extractEntry lib/db/statement-matcher.js | |
| 2007 silly gunzTarPerm extractEntry lib/stats/apdex.js | |
| 2008 silly gunzTarPerm extractEntry lib/public/icons/page_excel.png | |
| 2009 silly gunzTarPerm extractEntry lib/public/icons/page_find.png | |
| 2010 silly gunzTarPerm extractEntry lib/mongoskin/collection.js | |
| 2011 silly gunzTarPerm extractEntry lib/mongoskin/constant.js | |
| 2012 silly gunzTarPerm extractEntry LICENSE.txt | |
| 2013 silly gunzTarPerm extractEntry test/setLevel-asymmetry-test.js | |
| 2014 silly gunzTarPerm extractEntry test/dateFileAppender-test.js | |
| 2015 silly gunzTarPerm extractEntry lib/collector/connection.js | |
| 2016 silly gunzTarPerm extractEntry lib/collector/data-sender.js | |
| 2017 silly gunzTarPerm extractEntry lib/mongoskin/cursor.js | |
| 2018 silly gunzTarPerm extractEntry lib/mongoskin/db.js | |
| 2019 silly gunzTarPerm extractEntry lib/client/microevent.js | |
| 2020 silly gunzTarPerm extractEntry lib/client/query.js | |
| 2021 silly gunzTarPerm extractEntry lib/util/codec.js | |
| 2022 silly gunzTarPerm extractEntry lib/util/deep-equal.js | |
| 2023 silly gunzTarPerm extractEntry test/logLevelFilter-test.js | |
| 2024 silly gunzTarPerm extractEntry test/smtpAppender-test.js | |
| 2025 silly gunzTarPerm extractEntry lib/mongoskin/gridfs.js | |
| 2026 silly gunzTarPerm extractEntry lib/mongoskin/index.js | |
| 2027 silly gunzTarPerm extractEntry lib/client/textarea.js | |
| 2028 silly gunzTarPerm extractEntry lib/server/index.js | |
| 2029 silly gunzTarPerm extractEntry test/logger-test.js | |
| 2030 silly gunzTarPerm extractEntry test/consoleAppender-test.js | |
| 2031 silly gunzTarPerm extractEntry lib/util/stream-sink.js | |
| 2032 silly gunzTarPerm extractEntry lib/util/sum-children.js | |
| 2033 silly gunzTarPerm extractEntry lib/mongoskin/router.js | |
| 2034 silly gunzTarPerm extractEntry lib/mongoskin/server.js | |
| 2035 silly gunzTarPerm extractEntry lib/public/icons/page_gear.png | |
| 2036 silly gunzTarPerm extractEntry lib/public/icons/page_go.png | |
| 2037 silly gunzTarPerm extractEntry dist/lodash.compat.js | |
| 2038 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.8.15/nodetime_native.node | |
| 2039 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.8.16/nodetime_native.node | |
| 2040 silly gunzTarPerm extractEntry test/logging-test.js | |
| 2041 silly gunzTarPerm extractEntry test/connect-logger-test.js | |
| 2042 silly gunzTarPerm extractEntry lib/mongoskin/utils.js | |
| 2043 silly gunzTarPerm extractEntry logo.png | |
| 2044 silly gunzTarPerm extractEntry lib/server/rest.js | |
| 2045 silly gunzTarPerm extractEntry lib/server/session.js | |
| 2046 silly gunzTarPerm extractEntry lib/util/urltils.js | |
| 2047 silly gunzTarPerm extractEntry lib/transaction/trace.js | |
| 2048 silly gunzTarPerm extractEntry test/multiprocess-test.js | |
| 2049 silly gunzTarPerm extractEntry test/configureNoLevels-test.js | |
| 2050 silly gunzTarPerm extractEntry dist/lodash.compat.min.js | |
| 2051 silly gunzTarPerm extractEntry lib/public/icons/page_green.png | |
| 2052 silly gunzTarPerm extractEntry lib/public/icons/page_key.png | |
| 2053 silly gunzTarPerm extractEntry Readme.md | |
| 2054 silly gunzTarPerm extractEntry lib/transaction/tracer.js | |
| 2055 silly gunzTarPerm extractEntry lib/transaction/trace/aggregator.js | |
| 2056 silly gunzTarPerm extractEntry test/nolog-test.js | |
| 2057 silly gunzTarPerm extractEntry test/configuration-test.js | |
| 2058 silly gunzTarPerm extractEntry lib/public/icons/page_lightning.png | |
| 2059 silly gunzTarPerm extractEntry lib/public/icons/page_link.png | |
| 2060 silly gunzTarPerm extractEntry lib/transaction/trace/segment.js | |
| 2061 silly gunzTarPerm extractEntry lib/transaction/trace/sql.js | |
| 2062 silly gunzTarPerm extractEntry lib/server/useragent.js | |
| 2063 silly gunzTarPerm extractEntry lib/types/README.md | |
| 2064 silly gunzTarPerm extractEntry test/reloadConfiguration-test.js | |
| 2065 silly gunzTarPerm extractEntry test/global-log-level-test.js | |
| 2066 silly gunzTarPerm extractEntry lib/public/icons/page_paintbrush.png | |
| 2067 silly gunzTarPerm extractEntry lib/public/icons/page_paste.png | |
| 2068 silly gunzTarPerm extractEntry lib/transaction/tracer/debug.js | |
| 2069 silly gunzTarPerm extractEntry lib/transaction/tracer/state.js | |
| 2070 silly gunzTarPerm extractEntry test/levels-test.js | |
| 2071 silly gunzTarPerm extractEntry test/log4js.json | |
| 2072 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.8.17/nodetime_native.node | |
| 2073 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.8.18/nodetime_native.node | |
| 2074 silly gunzTarPerm extractEntry lib/transaction/tracer/instrumentation/outbound.js | |
| 2075 silly gunzTarPerm extractEntry lib/instrumentation/connect.js | |
| 2076 silly gunzTarPerm extractEntry examples/mget.js | |
| 2077 silly gunzTarPerm extractEntry examples/monitor.js | |
| 2078 silly gunzTarPerm extractEntry test/date-file-test | |
| 2079 silly gunzTarPerm extractEntry test/streams/BaseRollingFileStream-test.js | |
| 2080 silly gunzTarPerm extractEntry lib/public/icons/page_red.png | |
| 2081 silly gunzTarPerm extractEntry lib/public/icons/page_refresh.png | |
| 2082 silly gunzTarPerm extractEntry examples/multi.js | |
| 2083 silly gunzTarPerm extractEntry examples/file.js | |
| 2084 silly lockFile 8a0a5668-31218171509-node-modules-express tar:///var/www/sharejs/releases/20131218171509/node_modules/express | |
| 2085 silly lockFile 8a0a5668-31218171509-node-modules-express tar:///var/www/sharejs/releases/20131218171509/node_modules/express | |
| 2086 silly gunzTarPerm extractEntry test/streams/rollingFileStream-test.js | |
| 2087 silly gunzTarPerm extractEntry test/streams/DateRollingFileStream-test.js | |
| 2088 silly lockFile e7c85768-js-npm-express-3-4-7-package-tgz tar:///home/sharejs/.npm/express/3.4.7/package.tgz | |
| 2089 silly lockFile e7c85768-js-npm-express-3-4-7-package-tgz tar:///home/sharejs/.npm/express/3.4.7/package.tgz | |
| 2090 silly gunzTarPerm extractEntry lib/types/index.js | |
| 2091 silly gunzTarPerm extractEntry lib/types/json-api.js | |
| 2092 info preinstall [email protected] | |
| 2093 verbose readDependencies using package.json deps | |
| 2094 silly gunzTarPerm extractEntry lib/public/icons/page_save.png | |
| 2095 silly gunzTarPerm extractEntry lib/public/icons/page_white.png | |
| 2096 verbose readDependencies using package.json deps | |
| 2097 silly gunzTarPerm extractEntry test/streams/test-rolling-file-stream | |
| 2098 silly gunzTarPerm extractEntry test/streams/test-rolling-file-stream-write-less | |
| 2099 silly gunzTarPerm extractEntry lib/channel.js | |
| 2100 silly gunzTarPerm extractEntry lib/message.js | |
| 2101 verbose cache add [ '[email protected]', null ] | |
| 2102 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null] | |
| 2103 verbose parsed url { protocol: null, | |
| 2103 verbose parsed url slashes: null, | |
| 2103 verbose parsed url auth: null, | |
| 2103 verbose parsed url host: null, | |
| 2103 verbose parsed url port: null, | |
| 2103 verbose parsed url hostname: null, | |
| 2103 verbose parsed url hash: null, | |
| 2103 verbose parsed url search: null, | |
| 2103 verbose parsed url query: null, | |
| 2103 verbose parsed url pathname: '[email protected]', | |
| 2103 verbose parsed url path: '[email protected]', | |
| 2103 verbose parsed url href: '[email protected]' } | |
| 2104 verbose cache add name="fresh" spec="0.2.0" args=["fresh","0.2.0"] | |
| 2105 verbose parsed url { protocol: null, | |
| 2105 verbose parsed url slashes: null, | |
| 2105 verbose parsed url auth: null, | |
| 2105 verbose parsed url host: null, | |
| 2105 verbose parsed url port: null, | |
| 2105 verbose parsed url hostname: null, | |
| 2105 verbose parsed url hash: null, | |
| 2105 verbose parsed url search: null, | |
| 2105 verbose parsed url query: null, | |
| 2105 verbose parsed url pathname: '0.2.0', | |
| 2105 verbose parsed url path: '0.2.0', | |
| 2105 verbose parsed url href: '0.2.0' } | |
| 2106 verbose addNamed [ 'fresh', '0.2.0' ] | |
| 2107 verbose addNamed [ '0.2.0', '0.2.0' ] | |
| 2108 silly lockFile 1a4cf0d3-fresh-0-2-0 [email protected] | |
| 2109 verbose lock [email protected] /home/sharejs/.npm/1a4cf0d3-fresh-0-2-0.lock | |
| 2110 verbose cache add [ '[email protected]', null ] | |
| 2111 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null] | |
| 2112 verbose parsed url { protocol: null, | |
| 2112 verbose parsed url slashes: null, | |
| 2112 verbose parsed url auth: null, | |
| 2112 verbose parsed url host: null, | |
| 2112 verbose parsed url port: null, | |
| 2112 verbose parsed url hostname: null, | |
| 2112 verbose parsed url hash: null, | |
| 2112 verbose parsed url search: null, | |
| 2112 verbose parsed url query: null, | |
| 2112 verbose parsed url pathname: '[email protected]', | |
| 2112 verbose parsed url path: '[email protected]', | |
| 2112 verbose parsed url href: '[email protected]' } | |
| 2113 verbose cache add name="buffer-crc32" spec="0.2.1" args=["buffer-crc32","0.2.1"] | |
| 2114 verbose parsed url { protocol: null, | |
| 2114 verbose parsed url slashes: null, | |
| 2114 verbose parsed url auth: null, | |
| 2114 verbose parsed url host: null, | |
| 2114 verbose parsed url port: null, | |
| 2114 verbose parsed url hostname: null, | |
| 2114 verbose parsed url hash: null, | |
| 2114 verbose parsed url search: null, | |
| 2114 verbose parsed url query: null, | |
| 2114 verbose parsed url pathname: '0.2.1', | |
| 2114 verbose parsed url path: '0.2.1', | |
| 2114 verbose parsed url href: '0.2.1' } | |
| 2115 verbose addNamed [ 'buffer-crc32', '0.2.1' ] | |
| 2116 verbose addNamed [ '0.2.1', '0.2.1' ] | |
| 2117 silly lockFile 057d0d26-buffer-crc32-0-2-1 [email protected] | |
| 2118 verbose lock [email protected] /home/sharejs/.npm/057d0d26-buffer-crc32-0-2-1.lock | |
| 2119 verbose cache add [ '[email protected]', null ] | |
| 2120 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null] | |
| 2121 verbose parsed url { protocol: null, | |
| 2121 verbose parsed url slashes: null, | |
| 2121 verbose parsed url auth: null, | |
| 2121 verbose parsed url host: null, | |
| 2121 verbose parsed url port: null, | |
| 2121 verbose parsed url hostname: null, | |
| 2121 verbose parsed url hash: null, | |
| 2121 verbose parsed url search: null, | |
| 2121 verbose parsed url query: null, | |
| 2121 verbose parsed url pathname: '[email protected]', | |
| 2121 verbose parsed url path: '[email protected]', | |
| 2121 verbose parsed url href: '[email protected]' } | |
| 2122 verbose cache add name="methods" spec="0.1.0" args=["methods","0.1.0"] | |
| 2123 verbose parsed url { protocol: null, | |
| 2123 verbose parsed url slashes: null, | |
| 2123 verbose parsed url auth: null, | |
| 2123 verbose parsed url host: null, | |
| 2123 verbose parsed url port: null, | |
| 2123 verbose parsed url hostname: null, | |
| 2123 verbose parsed url hash: null, | |
| 2123 verbose parsed url search: null, | |
| 2123 verbose parsed url query: null, | |
| 2123 verbose parsed url pathname: '0.1.0', | |
| 2123 verbose parsed url path: '0.1.0', | |
| 2123 verbose parsed url href: '0.1.0' } | |
| 2124 verbose addNamed [ 'methods', '0.1.0' ] | |
| 2125 verbose addNamed [ '0.1.0', '0.1.0' ] | |
| 2126 silly lockFile 81f018b6-methods-0-1-0 [email protected] | |
| 2127 verbose lock [email protected] /home/sharejs/.npm/81f018b6-methods-0-1-0.lock | |
| 2128 verbose cache add [ '[email protected]', null ] | |
| 2129 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null] | |
| 2130 verbose parsed url { protocol: null, | |
| 2130 verbose parsed url slashes: null, | |
| 2130 verbose parsed url auth: null, | |
| 2130 verbose parsed url host: null, | |
| 2130 verbose parsed url port: null, | |
| 2130 verbose parsed url hostname: null, | |
| 2130 verbose parsed url hash: null, | |
| 2130 verbose parsed url search: null, | |
| 2130 verbose parsed url query: null, | |
| 2130 verbose parsed url pathname: '[email protected]', | |
| 2130 verbose parsed url path: '[email protected]', | |
| 2130 verbose parsed url href: '[email protected]' } | |
| 2131 verbose cache add name="send" spec="0.1.4" args=["send","0.1.4"] | |
| 2132 verbose parsed url { protocol: null, | |
| 2132 verbose parsed url slashes: null, | |
| 2132 verbose parsed url auth: null, | |
| 2132 verbose parsed url host: null, | |
| 2132 verbose parsed url port: null, | |
| 2132 verbose parsed url hostname: null, | |
| 2132 verbose parsed url hash: null, | |
| 2132 verbose parsed url search: null, | |
| 2132 verbose parsed url query: null, | |
| 2132 verbose parsed url pathname: '0.1.4', | |
| 2132 verbose parsed url path: '0.1.4', | |
| 2132 verbose parsed url href: '0.1.4' } | |
| 2133 verbose addNamed [ 'send', '0.1.4' ] | |
| 2134 verbose addNamed [ '0.1.4', '0.1.4' ] | |
| 2135 silly lockFile 555fd08a-send-0-1-4 [email protected] | |
| 2136 verbose lock [email protected] /home/sharejs/.npm/555fd08a-send-0-1-4.lock | |
| 2137 verbose cache add [ '[email protected]', null ] | |
| 2138 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null] | |
| 2139 verbose parsed url { protocol: null, | |
| 2139 verbose parsed url slashes: null, | |
| 2139 verbose parsed url auth: null, | |
| 2139 verbose parsed url host: null, | |
| 2139 verbose parsed url port: null, | |
| 2139 verbose parsed url hostname: null, | |
| 2139 verbose parsed url hash: null, | |
| 2139 verbose parsed url search: null, | |
| 2139 verbose parsed url query: null, | |
| 2139 verbose parsed url pathname: '[email protected]', | |
| 2139 verbose parsed url path: '[email protected]', | |
| 2139 verbose parsed url href: '[email protected]' } | |
| 2140 verbose cache add name="cookie-signature" spec="1.0.1" args=["cookie-signature","1.0.1"] | |
| 2141 verbose parsed url { protocol: null, | |
| 2141 verbose parsed url slashes: null, | |
| 2141 verbose parsed url auth: null, | |
| 2141 verbose parsed url host: null, | |
| 2141 verbose parsed url port: null, | |
| 2141 verbose parsed url hostname: null, | |
| 2141 verbose parsed url hash: null, | |
| 2141 verbose parsed url search: null, | |
| 2141 verbose parsed url query: null, | |
| 2141 verbose parsed url pathname: '1.0.1', | |
| 2141 verbose parsed url path: '1.0.1', | |
| 2141 verbose parsed url href: '1.0.1' } | |
| 2142 verbose addNamed [ 'cookie-signature', '1.0.1' ] | |
| 2143 verbose addNamed [ '1.0.1', '1.0.1' ] | |
| 2144 silly lockFile d4a1eba1-cookie-signature-1-0-1 [email protected] | |
| 2145 verbose lock [email protected] /home/sharejs/.npm/d4a1eba1-cookie-signature-1-0-1.lock | |
| 2146 verbose cache add [ '[email protected]', null ] | |
| 2147 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null] | |
| 2148 verbose parsed url { protocol: null, | |
| 2148 verbose parsed url slashes: null, | |
| 2148 verbose parsed url auth: null, | |
| 2148 verbose parsed url host: null, | |
| 2148 verbose parsed url port: null, | |
| 2148 verbose parsed url hostname: null, | |
| 2148 verbose parsed url hash: null, | |
| 2148 verbose parsed url search: null, | |
| 2148 verbose parsed url query: null, | |
| 2148 verbose parsed url pathname: '[email protected]', | |
| 2148 verbose parsed url path: '[email protected]', | |
| 2148 verbose parsed url href: '[email protected]' } | |
| 2149 verbose cache add name="merge-descriptors" spec="0.0.1" args=["merge-descriptors","0.0.1"] | |
| 2150 verbose parsed url { protocol: null, | |
| 2150 verbose parsed url slashes: null, | |
| 2150 verbose parsed url auth: null, | |
| 2150 verbose parsed url host: null, | |
| 2150 verbose parsed url port: null, | |
| 2150 verbose parsed url hostname: null, | |
| 2150 verbose parsed url hash: null, | |
| 2150 verbose parsed url search: null, | |
| 2150 verbose parsed url query: null, | |
| 2150 verbose parsed url pathname: '0.0.1', | |
| 2150 verbose parsed url path: '0.0.1', | |
| 2150 verbose parsed url href: '0.0.1' } | |
| 2151 verbose addNamed [ 'merge-descriptors', '0.0.1' ] | |
| 2152 verbose addNamed [ '0.0.1', '0.0.1' ] | |
| 2153 silly lockFile 5220b296-merge-descriptors-0-0-1 [email protected] | |
| 2154 verbose lock [email protected] /home/sharejs/.npm/5220b296-merge-descriptors-0-0-1.lock | |
| 2155 verbose cache add [ 'debug@>= 0.7.3 < 1', null ] | |
| 2156 verbose cache add name=undefined spec="debug@>= 0.7.3 < 1" args=["debug@>= 0.7.3 < 1",null] | |
| 2157 verbose parsed url { protocol: null, | |
| 2157 verbose parsed url slashes: null, | |
| 2157 verbose parsed url auth: null, | |
| 2157 verbose parsed url host: null, | |
| 2157 verbose parsed url port: null, | |
| 2157 verbose parsed url hostname: null, | |
| 2157 verbose parsed url hash: null, | |
| 2157 verbose parsed url search: null, | |
| 2157 verbose parsed url query: null, | |
| 2157 verbose parsed url pathname: 'debug@%3E=%200.7.3%20%3C%201', | |
| 2157 verbose parsed url path: 'debug@%3E=%200.7.3%20%3C%201', | |
| 2157 verbose parsed url href: 'debug@%3E=%200.7.3%20%3C%201' } | |
| 2158 verbose cache add name="debug" spec=">= 0.7.3 < 1" args=["debug",">= 0.7.3 < 1"] | |
| 2159 verbose parsed url { protocol: null, | |
| 2159 verbose parsed url slashes: null, | |
| 2159 verbose parsed url auth: null, | |
| 2159 verbose parsed url host: null, | |
| 2159 verbose parsed url port: null, | |
| 2159 verbose parsed url hostname: null, | |
| 2159 verbose parsed url hash: null, | |
| 2159 verbose parsed url search: null, | |
| 2159 verbose parsed url query: null, | |
| 2159 verbose parsed url pathname: '%3E=%200.7.3%20%3C%201', | |
| 2159 verbose parsed url path: '%3E=%200.7.3%20%3C%201', | |
| 2159 verbose parsed url href: '%3E=%200.7.3%20%3C%201' } | |
| 2160 verbose addNamed [ 'debug', '>= 0.7.3 < 1' ] | |
| 2161 verbose addNamed [ null, '>=0.7.3 <1.0.0-0' ] | |
| 2162 silly lockFile a781479f-debug-0-7-3-1 debug@>= 0.7.3 < 1 | |
| 2163 verbose lock debug@>= 0.7.3 < 1 /home/sharejs/.npm/a781479f-debug-0-7-3-1.lock | |
| 2164 verbose cache add [ '[email protected]', null ] | |
| 2165 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null] | |
| 2166 verbose parsed url { protocol: null, | |
| 2166 verbose parsed url slashes: null, | |
| 2166 verbose parsed url auth: null, | |
| 2166 verbose parsed url host: null, | |
| 2166 verbose parsed url port: null, | |
| 2166 verbose parsed url hostname: null, | |
| 2166 verbose parsed url hash: null, | |
| 2166 verbose parsed url search: null, | |
| 2166 verbose parsed url query: null, | |
| 2166 verbose parsed url pathname: '[email protected]', | |
| 2166 verbose parsed url path: '[email protected]', | |
| 2166 verbose parsed url href: '[email protected]' } | |
| 2167 verbose cache add name="connect" spec="2.12.0" args=["connect","2.12.0"] | |
| 2168 verbose parsed url { protocol: null, | |
| 2168 verbose parsed url slashes: null, | |
| 2168 verbose parsed url auth: null, | |
| 2168 verbose parsed url host: null, | |
| 2168 verbose parsed url port: null, | |
| 2168 verbose parsed url hostname: null, | |
| 2168 verbose parsed url hash: null, | |
| 2168 verbose parsed url search: null, | |
| 2168 verbose parsed url query: null, | |
| 2168 verbose parsed url pathname: '2.12.0', | |
| 2168 verbose parsed url path: '2.12.0', | |
| 2168 verbose parsed url href: '2.12.0' } | |
| 2169 verbose addNamed [ 'connect', '2.12.0' ] | |
| 2170 verbose addNamed [ '2.12.0', '2.12.0' ] | |
| 2171 silly lockFile a4bed1c7-connect-2-12-0 [email protected] | |
| 2172 verbose lock [email protected] /home/sharejs/.npm/a4bed1c7-connect-2-12-0.lock | |
| 2173 verbose cache add [ '[email protected]', null ] | |
| 2174 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null] | |
| 2175 verbose parsed url { protocol: null, | |
| 2175 verbose parsed url slashes: null, | |
| 2175 verbose parsed url auth: null, | |
| 2175 verbose parsed url host: null, | |
| 2175 verbose parsed url port: null, | |
| 2175 verbose parsed url hostname: null, | |
| 2175 verbose parsed url hash: null, | |
| 2175 verbose parsed url search: null, | |
| 2175 verbose parsed url query: null, | |
| 2175 verbose parsed url pathname: '[email protected]', | |
| 2175 verbose parsed url path: '[email protected]', | |
| 2175 verbose parsed url href: '[email protected]' } | |
| 2176 verbose cache add name="commander" spec="1.3.2" args=["commander","1.3.2"] | |
| 2177 verbose parsed url { protocol: null, | |
| 2177 verbose parsed url slashes: null, | |
| 2177 verbose parsed url auth: null, | |
| 2177 verbose parsed url host: null, | |
| 2177 verbose parsed url port: null, | |
| 2177 verbose parsed url hostname: null, | |
| 2177 verbose parsed url hash: null, | |
| 2177 verbose parsed url search: null, | |
| 2177 verbose parsed url query: null, | |
| 2177 verbose parsed url pathname: '1.3.2', | |
| 2177 verbose parsed url path: '1.3.2', | |
| 2177 verbose parsed url href: '1.3.2' } | |
| 2178 verbose addNamed [ 'commander', '1.3.2' ] | |
| 2179 verbose addNamed [ '1.3.2', '1.3.2' ] | |
| 2180 silly lockFile 2016e061-commander-1-3-2 [email protected] | |
| 2181 verbose lock [email protected] /home/sharejs/.npm/2016e061-commander-1-3-2.lock | |
| 2182 verbose cache add [ '[email protected]', null ] | |
| 2183 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null] | |
| 2184 verbose parsed url { protocol: null, | |
| 2184 verbose parsed url slashes: null, | |
| 2184 verbose parsed url auth: null, | |
| 2184 verbose parsed url host: null, | |
| 2184 verbose parsed url port: null, | |
| 2184 verbose parsed url hostname: null, | |
| 2184 verbose parsed url hash: null, | |
| 2184 verbose parsed url search: null, | |
| 2184 verbose parsed url query: null, | |
| 2184 verbose parsed url pathname: '[email protected]', | |
| 2184 verbose parsed url path: '[email protected]', | |
| 2184 verbose parsed url href: '[email protected]' } | |
| 2185 verbose cache add name="range-parser" spec="0.0.4" args=["range-parser","0.0.4"] | |
| 2186 verbose parsed url { protocol: null, | |
| 2186 verbose parsed url slashes: null, | |
| 2186 verbose parsed url auth: null, | |
| 2186 verbose parsed url host: null, | |
| 2186 verbose parsed url port: null, | |
| 2186 verbose parsed url hostname: null, | |
| 2186 verbose parsed url hash: null, | |
| 2186 verbose parsed url search: null, | |
| 2186 verbose parsed url query: null, | |
| 2186 verbose parsed url pathname: '0.0.4', | |
| 2186 verbose parsed url path: '0.0.4', | |
| 2186 verbose parsed url href: '0.0.4' } | |
| 2187 verbose addNamed [ 'range-parser', '0.0.4' ] | |
| 2188 verbose addNamed [ '0.0.4', '0.0.4' ] | |
| 2189 silly lockFile 0760c556-range-parser-0-0-4 [email protected] | |
| 2190 verbose lock [email protected] /home/sharejs/.npm/0760c556-range-parser-0-0-4.lock | |
| 2191 verbose cache add [ '[email protected]', null ] | |
| 2192 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null] | |
| 2193 verbose parsed url { protocol: null, | |
| 2193 verbose parsed url slashes: null, | |
| 2193 verbose parsed url auth: null, | |
| 2193 verbose parsed url host: null, | |
| 2193 verbose parsed url port: null, | |
| 2193 verbose parsed url hostname: null, | |
| 2193 verbose parsed url hash: null, | |
| 2193 verbose parsed url search: null, | |
| 2193 verbose parsed url query: null, | |
| 2193 verbose parsed url pathname: '[email protected]', | |
| 2193 verbose parsed url path: '[email protected]', | |
| 2193 verbose parsed url href: '[email protected]' } | |
| 2194 verbose cache add name="mkdirp" spec="0.3.5" args=["mkdirp","0.3.5"] | |
| 2195 verbose parsed url { protocol: null, | |
| 2195 verbose parsed url slashes: null, | |
| 2195 verbose parsed url auth: null, | |
| 2195 verbose parsed url host: null, | |
| 2195 verbose parsed url port: null, | |
| 2195 verbose parsed url hostname: null, | |
| 2195 verbose parsed url hash: null, | |
| 2195 verbose parsed url search: null, | |
| 2195 verbose parsed url query: null, | |
| 2195 verbose parsed url pathname: '0.3.5', | |
| 2195 verbose parsed url path: '0.3.5', | |
| 2195 verbose parsed url href: '0.3.5' } | |
| 2196 verbose addNamed [ 'mkdirp', '0.3.5' ] | |
| 2197 verbose addNamed [ '0.3.5', '0.3.5' ] | |
| 2198 silly lockFile 67d2df2a-mkdirp-0-3-5 [email protected] | |
| 2199 verbose lock [email protected] /home/sharejs/.npm/67d2df2a-mkdirp-0-3-5.lock | |
| 2200 verbose cache add [ '[email protected]', null ] | |
| 2201 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null] | |
| 2202 verbose parsed url { protocol: null, | |
| 2202 verbose parsed url slashes: null, | |
| 2202 verbose parsed url auth: null, | |
| 2202 verbose parsed url host: null, | |
| 2202 verbose parsed url port: null, | |
| 2202 verbose parsed url hostname: null, | |
| 2202 verbose parsed url hash: null, | |
| 2202 verbose parsed url search: null, | |
| 2202 verbose parsed url query: null, | |
| 2202 verbose parsed url pathname: '[email protected]', | |
| 2202 verbose parsed url path: '[email protected]', | |
| 2202 verbose parsed url href: '[email protected]' } | |
| 2203 verbose cache add name="cookie" spec="0.1.0" args=["cookie","0.1.0"] | |
| 2204 verbose parsed url { protocol: null, | |
| 2204 verbose parsed url slashes: null, | |
| 2204 verbose parsed url auth: null, | |
| 2204 verbose parsed url host: null, | |
| 2204 verbose parsed url port: null, | |
| 2204 verbose parsed url hostname: null, | |
| 2204 verbose parsed url hash: null, | |
| 2204 verbose parsed url search: null, | |
| 2204 verbose parsed url query: null, | |
| 2204 verbose parsed url pathname: '0.1.0', | |
| 2204 verbose parsed url path: '0.1.0', | |
| 2204 verbose parsed url href: '0.1.0' } | |
| 2205 verbose addNamed [ 'cookie', '0.1.0' ] | |
| 2206 verbose addNamed [ '0.1.0', '0.1.0' ] | |
| 2207 silly lockFile b55e145e-cookie-0-1-0 [email protected] | |
| 2208 verbose lock [email protected] /home/sharejs/.npm/b55e145e-cookie-0-1-0.lock | |
| 2209 silly addNameRange { name: 'debug', range: '>=0.7.3 <1.0.0-0', hasData: false } | |
| 2210 silly gunzTarPerm extractEntry examples/psubscribe.js | |
| 2211 silly gunzTarPerm extractEntry examples/pub_sub.js | |
| 2212 silly gunzTarPerm extractEntry lib/types/text-api.js | |
| 2213 silly gunzTarPerm extractEntry test/streams/test-rolling-file-stream-write-more | |
| 2214 silly gunzTarPerm extractEntry test/streams/test-rolling-stream-with-existing-files.20 | |
| 2215 verbose url raw fresh/0.2.0 | |
| 2216 verbose url resolving [ 'https://registry.npmjs.org/', './fresh/0.2.0' ] | |
| 2217 verbose url resolved https://registry.npmjs.org/fresh/0.2.0 | |
| 2218 info trying registry request attempt 1 at 17:18:18 | |
| 2219 verbose etag "4TFE69K5UDEX6FM1AXEX2MSAU" | |
| 2220 http GET https://registry.npmjs.org/fresh/0.2.0 | |
| 2221 verbose url raw buffer-crc32/0.2.1 | |
| 2222 verbose url resolving [ 'https://registry.npmjs.org/', './buffer-crc32/0.2.1' ] | |
| 2223 verbose url resolved https://registry.npmjs.org/buffer-crc32/0.2.1 | |
| 2224 info trying registry request attempt 1 at 17:18:18 | |
| 2225 verbose etag "BMB32A2O3E2SU2ZWZ9OYSDLO3" | |
| 2226 http GET https://registry.npmjs.org/buffer-crc32/0.2.1 | |
| 2227 verbose url raw methods/0.1.0 | |
| 2228 verbose url resolving [ 'https://registry.npmjs.org/', './methods/0.1.0' ] | |
| 2229 verbose url resolved https://registry.npmjs.org/methods/0.1.0 | |
| 2230 info trying registry request attempt 1 at 17:18:18 | |
| 2231 verbose etag "9X2ZTRO6TVHF2NVWVRUVW04PH" | |
| 2232 http GET https://registry.npmjs.org/methods/0.1.0 | |
| 2233 verbose url raw send/0.1.4 | |
| 2234 verbose url resolving [ 'https://registry.npmjs.org/', './send/0.1.4' ] | |
| 2235 verbose url resolved https://registry.npmjs.org/send/0.1.4 | |
| 2236 info trying registry request attempt 1 at 17:18:18 | |
| 2237 verbose etag "9C3B2FC8QK9V9PPYBFUXTMM5L" | |
| 2238 http GET https://registry.npmjs.org/send/0.1.4 | |
| 2239 verbose url raw cookie-signature/1.0.1 | |
| 2240 verbose url resolving [ 'https://registry.npmjs.org/', './cookie-signature/1.0.1' ] | |
| 2241 verbose url resolved https://registry.npmjs.org/cookie-signature/1.0.1 | |
| 2242 info trying registry request attempt 1 at 17:18:18 | |
| 2243 verbose etag "8IHLLMYRE7UPMEPRLI60US1KF" | |
| 2244 http GET https://registry.npmjs.org/cookie-signature/1.0.1 | |
| 2245 verbose url raw merge-descriptors/0.0.1 | |
| 2246 verbose url resolving [ 'https://registry.npmjs.org/', './merge-descriptors/0.0.1' ] | |
| 2247 verbose url resolved https://registry.npmjs.org/merge-descriptors/0.0.1 | |
| 2248 info trying registry request attempt 1 at 17:18:18 | |
| 2249 verbose etag "E8KT0FKLLAWTGQPRHFF3OXU73" | |
| 2250 http GET https://registry.npmjs.org/merge-descriptors/0.0.1 | |
| 2251 verbose url raw debug | |
| 2252 verbose url resolving [ 'https://registry.npmjs.org/', './debug' ] | |
| 2253 verbose url resolved https://registry.npmjs.org/debug | |
| 2254 info trying registry request attempt 1 at 17:18:18 | |
| 2255 verbose etag "92FUIHM53XU9EYF7GLDLJG0QH" | |
| 2256 http GET https://registry.npmjs.org/debug | |
| 2257 silly gunzTarPerm extractEntry lib/public/icons/page_white_acrobat.png | |
| 2258 silly gunzTarPerm extractEntry lib/public/icons/page_white_actionscript.png | |
| 2259 verbose url raw connect/2.12.0 | |
| 2260 verbose url resolving [ 'https://registry.npmjs.org/', './connect/2.12.0' ] | |
| 2261 verbose url resolved https://registry.npmjs.org/connect/2.12.0 | |
| 2262 info trying registry request attempt 1 at 17:18:18 | |
| 2263 verbose etag "1KOME83NOH3JLW3LY0ADM3QLT" | |
| 2264 http GET https://registry.npmjs.org/connect/2.12.0 | |
| 2265 verbose url raw commander/1.3.2 | |
| 2266 verbose url resolving [ 'https://registry.npmjs.org/', './commander/1.3.2' ] | |
| 2267 verbose url resolved https://registry.npmjs.org/commander/1.3.2 | |
| 2268 info trying registry request attempt 1 at 17:18:18 | |
| 2269 verbose etag "6TUSC25XULV630WAWJ5MJN2W4" | |
| 2270 http GET https://registry.npmjs.org/commander/1.3.2 | |
| 2271 verbose url raw range-parser/0.0.4 | |
| 2272 verbose url resolving [ 'https://registry.npmjs.org/', './range-parser/0.0.4' ] | |
| 2273 verbose url resolved https://registry.npmjs.org/range-parser/0.0.4 | |
| 2274 info trying registry request attempt 1 at 17:18:18 | |
| 2275 verbose etag "C458U3YBTKU9KWUZ18WVCF6A5" | |
| 2276 http GET https://registry.npmjs.org/range-parser/0.0.4 | |
| 2277 verbose url raw mkdirp/0.3.5 | |
| 2278 verbose url resolving [ 'https://registry.npmjs.org/', './mkdirp/0.3.5' ] | |
| 2279 verbose url resolved https://registry.npmjs.org/mkdirp/0.3.5 | |
| 2280 info trying registry request attempt 1 at 17:18:18 | |
| 2281 verbose etag "J3FKNBLWW0BK8VOC9OPNSTLB" | |
| 2282 http GET https://registry.npmjs.org/mkdirp/0.3.5 | |
| 2283 verbose url raw cookie/0.1.0 | |
| 2284 verbose url resolving [ 'https://registry.npmjs.org/', './cookie/0.1.0' ] | |
| 2285 verbose url resolved https://registry.npmjs.org/cookie/0.1.0 | |
| 2286 info trying registry request attempt 1 at 17:18:18 | |
| 2287 verbose etag "7H64BQPNUS8EAN144H1WU0XIL" | |
| 2288 http GET https://registry.npmjs.org/cookie/0.1.0 | |
| 2289 silly lockFile 0abfbc83-131218171509-node-modules-livedb tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb | |
| 2290 silly lockFile 0abfbc83-131218171509-node-modules-livedb tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb | |
| 2291 silly lockFile 4d9255f1-ejs-npm-livedb-0-2-8-package-tgz tar:///home/sharejs/.npm/livedb/0.2.8/package.tgz | |
| 2292 silly lockFile 4d9255f1-ejs-npm-livedb-0-2-8-package-tgz tar:///home/sharejs/.npm/livedb/0.2.8/package.tgz | |
| 2293 silly gunzTarPerm extractEntry lib/types/text-tp2-api.js | |
| 2294 silly gunzTarPerm extractEntry metadata.md | |
| 2295 silly gunzTarPerm extractEntry examples/simple.js | |
| 2296 silly gunzTarPerm extractEntry examples/sort.js | |
| 2297 silly gunzTarPerm extractEntry test/streams/test-rolling-stream-with-existing-files | |
| 2298 silly gunzTarPerm extractEntry test/streams/test-rolling-stream-with-existing-files.0 | |
| 2299 info preinstall [email protected] | |
| 2300 silly gunzTarPerm extractEntry lib/public/icons/page_white_add.png | |
| 2301 silly gunzTarPerm extractEntry lib/public/icons/page_white_c.png | |
| 2302 verbose readDependencies using package.json deps | |
| 2303 silly gunzTarPerm extractEntry lib/instrumentation/express.js | |
| 2304 silly gunzTarPerm extractEntry lib/instrumentation/generic-pool.js | |
| 2305 verbose readDependencies using package.json deps | |
| 2306 silly gunzTarPerm extractEntry examples/subqueries.js | |
| 2307 silly gunzTarPerm extractEntry examples/extend.js | |
| 2308 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.8.19/nodetime_native.node | |
| 2309 verbose cache add [ 'statsd-client@*', null ] | |
| 2310 verbose cache add name=undefined spec="statsd-client@*" args=["statsd-client@*",null] | |
| 2311 verbose parsed url { protocol: null, | |
| 2311 verbose parsed url slashes: null, | |
| 2311 verbose parsed url auth: null, | |
| 2311 verbose parsed url host: null, | |
| 2311 verbose parsed url port: null, | |
| 2311 verbose parsed url hostname: null, | |
| 2311 verbose parsed url hash: null, | |
| 2311 verbose parsed url search: null, | |
| 2311 verbose parsed url query: null, | |
| 2311 verbose parsed url pathname: 'statsd-client@*', | |
| 2311 verbose parsed url path: 'statsd-client@*', | |
| 2311 verbose parsed url href: 'statsd-client@*' } | |
| 2312 verbose cache add name="statsd-client" spec="*" args=["statsd-client","*"] | |
| 2313 verbose parsed url { protocol: null, | |
| 2313 verbose parsed url slashes: null, | |
| 2313 verbose parsed url auth: null, | |
| 2313 verbose parsed url host: null, | |
| 2313 verbose parsed url port: null, | |
| 2313 verbose parsed url hostname: null, | |
| 2313 verbose parsed url hash: null, | |
| 2313 verbose parsed url search: null, | |
| 2313 verbose parsed url query: null, | |
| 2313 verbose parsed url pathname: '*', | |
| 2313 verbose parsed url path: '*', | |
| 2313 verbose parsed url href: '*' } | |
| 2314 verbose addNamed [ 'statsd-client', '*' ] | |
| 2315 verbose addNamed [ null, '*' ] | |
| 2316 silly lockFile 06036119-statsd-client statsd-client@* | |
| 2317 verbose lock statsd-client@* /home/sharejs/.npm/06036119-statsd-client.lock | |
| 2318 verbose cache add [ 'hiredis@~0.1', null ] | |
| 2319 verbose cache add name=undefined spec="hiredis@~0.1" args=["hiredis@~0.1",null] | |
| 2320 verbose parsed url { protocol: null, | |
| 2320 verbose parsed url slashes: null, | |
| 2320 verbose parsed url auth: null, | |
| 2320 verbose parsed url host: null, | |
| 2320 verbose parsed url port: null, | |
| 2320 verbose parsed url hostname: null, | |
| 2320 verbose parsed url hash: null, | |
| 2320 verbose parsed url search: null, | |
| 2320 verbose parsed url query: null, | |
| 2320 verbose parsed url pathname: 'hiredis@~0.1', | |
| 2320 verbose parsed url path: 'hiredis@~0.1', | |
| 2320 verbose parsed url href: 'hiredis@~0.1' } | |
| 2321 verbose cache add name="hiredis" spec="~0.1" args=["hiredis","~0.1"] | |
| 2322 verbose parsed url { protocol: null, | |
| 2322 verbose parsed url slashes: null, | |
| 2322 verbose parsed url auth: null, | |
| 2322 verbose parsed url host: null, | |
| 2322 verbose parsed url port: null, | |
| 2322 verbose parsed url hostname: null, | |
| 2322 verbose parsed url hash: null, | |
| 2322 verbose parsed url search: null, | |
| 2322 verbose parsed url query: null, | |
| 2322 verbose parsed url pathname: '~0.1', | |
| 2322 verbose parsed url path: '~0.1', | |
| 2322 verbose parsed url href: '~0.1' } | |
| 2323 verbose addNamed [ 'hiredis', '~0.1' ] | |
| 2324 verbose addNamed [ null, '>=0.1.0-0 <0.2.0-0' ] | |
| 2325 silly lockFile 9b272b60-hiredis-0-1 hiredis@~0.1 | |
| 2326 verbose lock hiredis@~0.1 /home/sharejs/.npm/9b272b60-hiredis-0-1.lock | |
| 2327 verbose cache add [ 'redis@~0.8', null ] | |
| 2328 verbose cache add name=undefined spec="redis@~0.8" args=["redis@~0.8",null] | |
| 2329 verbose parsed url { protocol: null, | |
| 2329 verbose parsed url slashes: null, | |
| 2329 verbose parsed url auth: null, | |
| 2329 verbose parsed url host: null, | |
| 2329 verbose parsed url port: null, | |
| 2329 verbose parsed url hostname: null, | |
| 2329 verbose parsed url hash: null, | |
| 2329 verbose parsed url search: null, | |
| 2329 verbose parsed url query: null, | |
| 2329 verbose parsed url pathname: 'redis@~0.8', | |
| 2329 verbose parsed url path: 'redis@~0.8', | |
| 2329 verbose parsed url href: 'redis@~0.8' } | |
| 2330 verbose cache add name="redis" spec="~0.8" args=["redis","~0.8"] | |
| 2331 verbose parsed url { protocol: null, | |
| 2331 verbose parsed url slashes: null, | |
| 2331 verbose parsed url auth: null, | |
| 2331 verbose parsed url host: null, | |
| 2331 verbose parsed url port: null, | |
| 2331 verbose parsed url hostname: null, | |
| 2331 verbose parsed url hash: null, | |
| 2331 verbose parsed url search: null, | |
| 2331 verbose parsed url query: null, | |
| 2331 verbose parsed url pathname: '~0.8', | |
| 2331 verbose parsed url path: '~0.8', | |
| 2331 verbose parsed url href: '~0.8' } | |
| 2332 verbose addNamed [ 'redis', '~0.8' ] | |
| 2333 verbose addNamed [ null, '>=0.8.0-0 <0.9.0-0' ] | |
| 2334 silly lockFile f9efe19a-redis-0-8 redis@~0.8 | |
| 2335 verbose lock redis@~0.8 /home/sharejs/.npm/f9efe19a-redis-0-8.lock | |
| 2336 verbose cache add [ 'deep-is@~0.1', null ] | |
| 2337 verbose cache add name=undefined spec="deep-is@~0.1" args=["deep-is@~0.1",null] | |
| 2338 verbose parsed url { protocol: null, | |
| 2338 verbose parsed url slashes: null, | |
| 2338 verbose parsed url auth: null, | |
| 2338 verbose parsed url host: null, | |
| 2338 verbose parsed url port: null, | |
| 2338 verbose parsed url hostname: null, | |
| 2338 verbose parsed url hash: null, | |
| 2338 verbose parsed url search: null, | |
| 2338 verbose parsed url query: null, | |
| 2338 verbose parsed url pathname: 'deep-is@~0.1', | |
| 2338 verbose parsed url path: 'deep-is@~0.1', | |
| 2338 verbose parsed url href: 'deep-is@~0.1' } | |
| 2339 verbose cache add name="deep-is" spec="~0.1" args=["deep-is","~0.1"] | |
| 2340 verbose parsed url { protocol: null, | |
| 2340 verbose parsed url slashes: null, | |
| 2340 verbose parsed url auth: null, | |
| 2340 verbose parsed url host: null, | |
| 2340 verbose parsed url port: null, | |
| 2340 verbose parsed url hostname: null, | |
| 2340 verbose parsed url hash: null, | |
| 2340 verbose parsed url search: null, | |
| 2340 verbose parsed url query: null, | |
| 2340 verbose parsed url pathname: '~0.1', | |
| 2340 verbose parsed url path: '~0.1', | |
| 2340 verbose parsed url href: '~0.1' } | |
| 2341 verbose addNamed [ 'deep-is', '~0.1' ] | |
| 2342 verbose addNamed [ null, '>=0.1.0-0 <0.2.0-0' ] | |
| 2343 silly lockFile ab2c1840-deep-is-0-1 deep-is@~0.1 | |
| 2344 verbose lock deep-is@~0.1 /home/sharejs/.npm/ab2c1840-deep-is-0-1.lock | |
| 2345 verbose cache add [ 'arraydiff@~0.1', null ] | |
| 2346 verbose cache add name=undefined spec="arraydiff@~0.1" args=["arraydiff@~0.1",null] | |
| 2347 verbose parsed url { protocol: null, | |
| 2347 verbose parsed url slashes: null, | |
| 2347 verbose parsed url auth: null, | |
| 2347 verbose parsed url host: null, | |
| 2347 verbose parsed url port: null, | |
| 2347 verbose parsed url hostname: null, | |
| 2347 verbose parsed url hash: null, | |
| 2347 verbose parsed url search: null, | |
| 2347 verbose parsed url query: null, | |
| 2347 verbose parsed url pathname: 'arraydiff@~0.1', | |
| 2347 verbose parsed url path: 'arraydiff@~0.1', | |
| 2347 verbose parsed url href: 'arraydiff@~0.1' } | |
| 2348 verbose cache add name="arraydiff" spec="~0.1" args=["arraydiff","~0.1"] | |
| 2349 verbose parsed url { protocol: null, | |
| 2349 verbose parsed url slashes: null, | |
| 2349 verbose parsed url auth: null, | |
| 2349 verbose parsed url host: null, | |
| 2349 verbose parsed url port: null, | |
| 2349 verbose parsed url hostname: null, | |
| 2349 verbose parsed url hash: null, | |
| 2349 verbose parsed url search: null, | |
| 2349 verbose parsed url query: null, | |
| 2349 verbose parsed url pathname: '~0.1', | |
| 2349 verbose parsed url path: '~0.1', | |
| 2349 verbose parsed url href: '~0.1' } | |
| 2350 verbose addNamed [ 'arraydiff', '~0.1' ] | |
| 2351 verbose addNamed [ null, '>=0.1.0-0 <0.2.0-0' ] | |
| 2352 silly lockFile 90eb1812-arraydiff-0-1 arraydiff@~0.1 | |
| 2353 verbose lock arraydiff@~0.1 /home/sharejs/.npm/90eb1812-arraydiff-0-1.lock | |
| 2354 silly addNameRange { name: 'statsd-client', range: '*', hasData: false } | |
| 2355 silly addNameRange { name: 'hiredis', range: '>=0.1.0-0 <0.2.0-0', hasData: false } | |
| 2356 silly gunzTarPerm extractEntry test/streams/test-rolling-stream-with-existing-files.1 | |
| 2357 silly gunzTarPerm extractEntry test/streams/test-rolling-stream-with-existing-files.11 | |
| 2358 silly addNameRange { name: 'redis', range: '>=0.8.0-0 <0.9.0-0', hasData: false } | |
| 2359 silly addNameRange { name: 'deep-is', range: '>=0.1.0-0 <0.2.0-0', hasData: false } | |
| 2360 silly addNameRange { name: 'arraydiff', | |
| 2360 silly addNameRange range: '>=0.1.0-0 <0.2.0-0', | |
| 2360 silly addNameRange hasData: false } | |
| 2361 silly gunzTarPerm extractEntry Makefile | |
| 2362 silly gunzTarPerm extractEntry prototype/package.json | |
| 2363 silly gunzTarPerm extractEntry lib/public/icons/page_white_camera.png | |
| 2364 silly gunzTarPerm extractEntry lib/public/icons/page_white_cd.png | |
| 2365 silly gunzTarPerm extractEntry examples/subquery.js | |
| 2366 silly gunzTarPerm extractEntry examples/eval.js | |
| 2367 verbose url raw statsd-client | |
| 2368 verbose url resolving [ 'https://registry.npmjs.org/', './statsd-client' ] | |
| 2369 verbose url resolved https://registry.npmjs.org/statsd-client | |
| 2370 info trying registry request attempt 1 at 17:18:18 | |
| 2371 verbose etag "2R7RMKNS9HC37J3A7CMFY5JB6" | |
| 2372 http GET https://registry.npmjs.org/statsd-client | |
| 2373 verbose url raw hiredis | |
| 2374 verbose url resolving [ 'https://registry.npmjs.org/', './hiredis' ] | |
| 2375 verbose url resolved https://registry.npmjs.org/hiredis | |
| 2376 info trying registry request attempt 1 at 17:18:18 | |
| 2377 verbose etag "1SHDJWT6E7MWMZY7UDNUX97F4" | |
| 2378 http GET https://registry.npmjs.org/hiredis | |
| 2379 verbose url raw redis | |
| 2380 verbose url resolving [ 'https://registry.npmjs.org/', './redis' ] | |
| 2381 verbose url resolved https://registry.npmjs.org/redis | |
| 2382 info trying registry request attempt 1 at 17:18:18 | |
| 2383 verbose etag "E2PPTGX1WHN38SJOPTB8K7PZ1" | |
| 2384 http GET https://registry.npmjs.org/redis | |
| 2385 verbose url raw deep-is | |
| 2386 verbose url resolving [ 'https://registry.npmjs.org/', './deep-is' ] | |
| 2387 verbose url resolved https://registry.npmjs.org/deep-is | |
| 2388 info trying registry request attempt 1 at 17:18:18 | |
| 2389 verbose etag "8IJ4B93KIEKW5P3QNZ7V6QZDV" | |
| 2390 http GET https://registry.npmjs.org/deep-is | |
| 2391 verbose url raw arraydiff | |
| 2392 verbose url resolving [ 'https://registry.npmjs.org/', './arraydiff' ] | |
| 2393 verbose url resolved https://registry.npmjs.org/arraydiff | |
| 2394 info trying registry request attempt 1 at 17:18:18 | |
| 2395 verbose etag "ALUHF5RIMNJ0MB4R5PPGCJO3D" | |
| 2396 http GET https://registry.npmjs.org/arraydiff | |
| 2397 silly gunzTarPerm extractEntry lib/instrumentation/memcached.js | |
| 2398 silly gunzTarPerm extractEntry lib/instrumentation/mongodb.js | |
| 2399 silly gunzTarPerm extractEntry test/streams/test-rolling-stream-with-existing-files.2 | |
| 2400 silly gunzTarPerm extractEntry test/streams/test-rolling-file-stream-write-more.1 | |
| 2401 silly gunzTarPerm extractEntry examples/unix_socket.js | |
| 2402 silly gunzTarPerm extractEntry examples/backpressure_drain.js | |
| 2403 silly gunzTarPerm extractEntry lib/public/icons/page_white_code.png | |
| 2404 silly gunzTarPerm extractEntry lib/public/icons/page_white_code_red.png | |
| 2405 silly gunzTarPerm extractEntry prototype/server.js | |
| 2406 silly gunzTarPerm extractEntry prototype/clock.coffee | |
| 2407 silly gunzTarPerm extractEntry test/with-categoryFilter.json | |
| 2408 silly gunzTarPerm extractEntry test/with-dateFile.json | |
| 2409 silly gunzTarPerm extractEntry lib/instrumentation/mysql.js | |
| 2410 silly gunzTarPerm extractEntry lib/instrumentation/redis.js | |
| 2411 silly gunzTarPerm extractEntry prototype/public/jsoneditor-min.js | |
| 2412 silly gunzTarPerm extractEntry prototype/public/create.html | |
| 2413 silly gunzTarPerm extractEntry examples/web_server.js | |
| 2414 silly gunzTarPerm extractEntry examples/multi2.js | |
| 2415 silly gunzTarPerm extractEntry lib/public/icons/page_white_coldfusion.png | |
| 2416 silly gunzTarPerm extractEntry lib/public/icons/page_white_compressed.png | |
| 2417 silly gunzTarPerm extractEntry test/with-log-rolling.json | |
| 2418 silly gunzTarPerm extractEntry test/with-logLevelFilter.json | |
| 2419 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.8.2/nodetime_native.node | |
| 2420 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.8.20/nodetime_native.node | |
| 2421 silly gunzTarPerm extractEntry changelog.md | |
| 2422 silly gunzTarPerm extractEntry benches/buffer_bench.js | |
| 2423 silly gunzTarPerm extractEntry lib/public/icons/page_white_copy.png | |
| 2424 silly gunzTarPerm extractEntry lib/public/icons/page_white_cplusplus.png | |
| 2425 silly gunzTarPerm extractEntry prototype/public/img/jsoneditor-icons.png | |
| 2426 silly gunzTarPerm extractEntry prototype/public/index.html | |
| 2427 http 304 https://registry.npmjs.org/buffer-crc32/0.2.1 | |
| 2428 silly registry.get cb [ 304, | |
| 2428 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 2428 silly registry.get etag: '"BMB32A2O3E2SU2ZWZ9OYSDLO3"', | |
| 2428 silly registry.get date: 'Wed, 18 Dec 2013 17:18:18 GMT', | |
| 2428 silly registry.get 'content-length': '0' } ] | |
| 2429 verbose etag buffer-crc32/0.2.1 from cache | |
| 2430 silly gunzTarPerm extractEntry lib/instrumentation/restify.js | |
| 2431 silly gunzTarPerm extractEntry lib/instrumentation/core/fs.js | |
| 2432 http 304 https://registry.npmjs.org/fresh/0.2.0 | |
| 2433 silly registry.get cb [ 304, | |
| 2433 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 2433 silly registry.get etag: '"4TFE69K5UDEX6FM1AXEX2MSAU"', | |
| 2433 silly registry.get date: 'Wed, 18 Dec 2013 17:18:18 GMT', | |
| 2433 silly registry.get 'content-length': '0' } ] | |
| 2434 verbose etag fresh/0.2.0 from cache | |
| 2435 silly gunzTarPerm extractEntry benches/hiredis_parser.js | |
| 2436 silly gunzTarPerm extractEntry benches/re_sub_test.js | |
| 2437 http 304 https://registry.npmjs.org/methods/0.1.0 | |
| 2438 silly registry.get cb [ 304, | |
| 2438 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 2438 silly registry.get etag: '"9X2ZTRO6TVHF2NVWVRUVW04PH"', | |
| 2438 silly registry.get date: 'Wed, 18 Dec 2013 17:18:18 GMT', | |
| 2438 silly registry.get 'content-length': '0' } ] | |
| 2439 verbose etag methods/0.1.0 from cache | |
| 2440 http 304 https://registry.npmjs.org/cookie-signature/1.0.1 | |
| 2441 silly registry.get cb [ 304, | |
| 2441 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 2441 silly registry.get etag: '"8IHLLMYRE7UPMEPRLI60US1KF"', | |
| 2441 silly registry.get date: 'Wed, 18 Dec 2013 17:18:18 GMT', | |
| 2441 silly registry.get 'content-length': '0' } ] | |
| 2442 verbose etag cookie-signature/1.0.1 from cache | |
| 2443 silly gunzTarPerm extractEntry prototype/public/json.html | |
| 2444 silly gunzTarPerm extractEntry prototype/public/json_list.html | |
| 2445 silly gunzTarPerm extractEntry lib/public/icons/page_white_csharp.png | |
| 2446 silly gunzTarPerm extractEntry lib/public/icons/page_white_cup.png | |
| 2447 silly gunzTarPerm extractEntry benches/reconnect_test.js | |
| 2448 silly gunzTarPerm extractEntry benches/sub_quit_test.js | |
| 2449 http 304 https://registry.npmjs.org/send/0.1.4 | |
| 2450 silly registry.get cb [ 304, | |
| 2450 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 2450 silly registry.get etag: '"9C3B2FC8QK9V9PPYBFUXTMM5L"', | |
| 2450 silly registry.get date: 'Wed, 18 Dec 2013 17:18:18 GMT', | |
| 2450 silly registry.get 'content-length': '0' } ] | |
| 2451 verbose etag send/0.1.4 from cache | |
| 2452 http 304 https://registry.npmjs.org/debug | |
| 2453 silly registry.get cb [ 304, | |
| 2453 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 2453 silly registry.get etag: '"92FUIHM53XU9EYF7GLDLJG0QH"', | |
| 2453 silly registry.get date: 'Wed, 18 Dec 2013 17:18:18 GMT', | |
| 2453 silly registry.get 'content-length': '0' } ] | |
| 2454 verbose etag debug from cache | |
| 2455 http 304 https://registry.npmjs.org/merge-descriptors/0.0.1 | |
| 2456 silly registry.get cb [ 304, | |
| 2456 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 2456 silly registry.get etag: '"E8KT0FKLLAWTGQPRHFF3OXU73"', | |
| 2456 silly registry.get date: 'Wed, 18 Dec 2013 17:18:18 GMT', | |
| 2456 silly registry.get 'content-length': '0' } ] | |
| 2457 verbose etag merge-descriptors/0.0.1 from cache | |
| 2458 silly gunzTarPerm extractEntry test0 | |
| 2459 silly gunzTarPerm extractEntry test1 | |
| 2460 http 304 https://registry.npmjs.org/connect/2.12.0 | |
| 2461 silly registry.get cb [ 304, | |
| 2461 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 2461 silly registry.get etag: '"1KOME83NOH3JLW3LY0ADM3QLT"', | |
| 2461 silly registry.get date: 'Wed, 18 Dec 2013 17:18:18 GMT', | |
| 2461 silly registry.get 'content-length': '0' } ] | |
| 2462 verbose etag connect/2.12.0 from cache | |
| 2463 silly gunzTarPerm extractEntry prototype/public/jsoneditor-min.css | |
| 2464 silly gunzTarPerm extractEntry prototype/public/list.html | |
| 2465 silly lockFile 057d0d26-buffer-crc32-0-2-1 [email protected] | |
| 2466 silly lockFile 057d0d26-buffer-crc32-0-2-1 [email protected] | |
| 2467 silly lockFile 1a4cf0d3-fresh-0-2-0 [email protected] | |
| 2468 silly lockFile 1a4cf0d3-fresh-0-2-0 [email protected] | |
| 2469 http 304 https://registry.npmjs.org/commander/1.3.2 | |
| 2470 silly registry.get cb [ 304, | |
| 2470 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 2470 silly registry.get etag: '"6TUSC25XULV630WAWJ5MJN2W4"', | |
| 2470 silly registry.get date: 'Wed, 18 Dec 2013 17:18:18 GMT', | |
| 2470 silly registry.get 'content-length': '0' } ] | |
| 2471 verbose etag commander/1.3.2 from cache | |
| 2472 silly addNameRange number 2 { name: 'debug', range: '>=0.7.3 <1.0.0-0', hasData: true } | |
| 2473 silly addNameRange versions [ 'debug', | |
| 2473 silly addNameRange [ '0.0.1', | |
| 2473 silly addNameRange '0.1.0', | |
| 2473 silly addNameRange '0.2.0', | |
| 2473 silly addNameRange '0.3.0', | |
| 2473 silly addNameRange '0.4.0', | |
| 2473 silly addNameRange '0.4.1', | |
| 2473 silly addNameRange '0.5.0', | |
| 2473 silly addNameRange '0.6.0', | |
| 2473 silly addNameRange '0.7.0', | |
| 2473 silly addNameRange '0.7.1', | |
| 2473 silly addNameRange '0.7.2', | |
| 2473 silly addNameRange '0.7.3', | |
| 2473 silly addNameRange '0.7.4' ] ] | |
| 2474 verbose addNamed [ 'debug', '0.7.4' ] | |
| 2475 verbose addNamed [ '0.7.4', '0.7.4' ] | |
| 2476 silly lockFile 16160008-debug-0-7-4 [email protected] | |
| 2477 verbose lock [email protected] /home/sharejs/.npm/16160008-debug-0-7-4.lock | |
| 2478 silly gunzTarPerm extractEntry lib/public/icons/page_white_database.png | |
| 2479 silly gunzTarPerm extractEntry lib/public/icons/page_white_delete.png | |
| 2480 http 304 https://registry.npmjs.org/range-parser/0.0.4 | |
| 2481 silly registry.get cb [ 304, | |
| 2481 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 2481 silly registry.get etag: '"C458U3YBTKU9KWUZ18WVCF6A5"', | |
| 2481 silly registry.get date: 'Wed, 18 Dec 2013 17:18:18 GMT', | |
| 2481 silly registry.get 'content-length': '0' } ] | |
| 2482 verbose etag range-parser/0.0.4 from cache | |
| 2483 http 304 https://registry.npmjs.org/mkdirp/0.3.5 | |
| 2484 silly registry.get cb [ 304, | |
| 2484 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 2484 silly registry.get etag: '"J3FKNBLWW0BK8VOC9OPNSTLB"', | |
| 2484 silly registry.get date: 'Wed, 18 Dec 2013 17:18:18 GMT', | |
| 2484 silly registry.get 'content-length': '0' } ] | |
| 2485 verbose etag mkdirp/0.3.5 from cache | |
| 2486 silly gunzTarPerm extractEntry benches/stress/codec.js | |
| 2487 silly gunzTarPerm extractEntry benches/stress/pubsub/pub.js | |
| 2488 http 304 https://registry.npmjs.org/cookie/0.1.0 | |
| 2489 silly registry.get cb [ 304, | |
| 2489 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 2489 silly registry.get etag: '"7H64BQPNUS8EAN144H1WU0XIL"', | |
| 2489 silly registry.get date: 'Wed, 18 Dec 2013 17:18:18 GMT', | |
| 2489 silly registry.get 'content-length': '0' } ] | |
| 2490 verbose etag cookie/0.1.0 from cache | |
| 2491 silly lockFile 81f018b6-methods-0-1-0 [email protected] | |
| 2492 silly lockFile 81f018b6-methods-0-1-0 [email protected] | |
| 2493 http 304 https://registry.npmjs.org/statsd-client | |
| 2494 silly registry.get cb [ 304, | |
| 2494 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 2494 silly registry.get etag: '"2R7RMKNS9HC37J3A7CMFY5JB6"', | |
| 2494 silly registry.get date: 'Wed, 18 Dec 2013 17:18:18 GMT', | |
| 2494 silly registry.get 'content-length': '0' } ] | |
| 2495 verbose etag statsd-client from cache | |
| 2496 silly gunzTarPerm extractEntry dist/lodash.js | |
| 2497 silly gunzTarPerm extractEntry dist/lodash.min.js | |
| 2498 silly gunzTarPerm extractEntry dist/lodash.underscore.js | |
| 2499 silly gunzTarPerm extractEntry dist/lodash.underscore.min.js | |
| 2500 silly lockFile d4a1eba1-cookie-signature-1-0-1 [email protected] | |
| 2501 silly lockFile d4a1eba1-cookie-signature-1-0-1 [email protected] | |
| 2502 http 304 https://registry.npmjs.org/hiredis | |
| 2503 silly registry.get cb [ 304, | |
| 2503 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 2503 silly registry.get etag: '"1SHDJWT6E7MWMZY7UDNUX97F4"', | |
| 2503 silly registry.get date: 'Wed, 18 Dec 2013 17:18:18 GMT', | |
| 2503 silly registry.get 'content-length': '0' } ] | |
| 2504 verbose etag hiredis from cache | |
| 2505 silly gunzTarPerm extractEntry prototype/public/multi.html | |
| 2506 silly gunzTarPerm extractEntry scripts/apply.csv | |
| 2507 http 304 https://registry.npmjs.org/deep-is | |
| 2508 silly registry.get cb [ 304, | |
| 2508 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)', | |
| 2508 silly registry.get etag: '"8IJ4B93KIEKW5P3QNZ7V6QZDV"', | |
| 2508 silly registry.get date: 'Wed, 18 Dec 2013 17:18:18 GMT', | |
| 2508 silly registry.get 'content-length': '0' } ] | |
| 2509 verbose etag deep-is from cache | |
| 2510 http 304 https://registry.npmjs.org/redis | |
| 2511 silly registry.get cb [ 304, | |
| 2511 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 2511 silly registry.get etag: '"E2PPTGX1WHN38SJOPTB8K7PZ1"', | |
| 2511 silly registry.get date: 'Wed, 18 Dec 2013 17:18:18 GMT', | |
| 2511 silly registry.get 'content-length': '0' } ] | |
| 2512 verbose etag redis from cache | |
| 2513 http 304 https://registry.npmjs.org/arraydiff | |
| 2514 silly registry.get cb [ 304, | |
| 2514 silly registry.get { server: 'CouchDB/1.3.1 (Erlang OTP/R15B03)', | |
| 2514 silly registry.get etag: '"ALUHF5RIMNJ0MB4R5PPGCJO3D"', | |
| 2514 silly registry.get date: 'Wed, 18 Dec 2013 17:18:18 GMT', | |
| 2514 silly registry.get 'content-length': '0' } ] | |
| 2515 verbose etag arraydiff from cache | |
| 2516 silly lockFile 555fd08a-send-0-1-4 [email protected] | |
| 2517 silly lockFile 555fd08a-send-0-1-4 [email protected] | |
| 2518 silly addNameRange number 2 { name: 'statsd-client', range: '*', hasData: true } | |
| 2519 silly addNameRange versions [ 'statsd-client', | |
| 2519 silly addNameRange [ '0.0.0', | |
| 2519 silly addNameRange '0.0.1', | |
| 2519 silly addNameRange '0.0.2', | |
| 2519 silly addNameRange '0.0.3', | |
| 2519 silly addNameRange '0.0.4', | |
| 2519 silly addNameRange '0.0.5', | |
| 2519 silly addNameRange '0.0.6', | |
| 2519 silly addNameRange '0.0.7', | |
| 2519 silly addNameRange '0.0.8', | |
| 2519 silly addNameRange '0.0.9', | |
| 2519 silly addNameRange '0.0.10', | |
| 2519 silly addNameRange '0.0.11', | |
| 2519 silly addNameRange '0.0.12', | |
| 2519 silly addNameRange '0.0.13', | |
| 2519 silly addNameRange '0.0.14', | |
| 2519 silly addNameRange '0.0.15' ] ] | |
| 2520 verbose addNamed [ 'statsd-client', '0.0.15' ] | |
| 2521 verbose addNamed [ '0.0.15', '0.0.15' ] | |
| 2522 silly lockFile 133c5903-statsd-client-0-0-15 [email protected] | |
| 2523 verbose lock [email protected] /home/sharejs/.npm/133c5903-statsd-client-0-0-15.lock | |
| 2524 silly lockFile 5220b296-merge-descriptors-0-0-1 [email protected] | |
| 2525 silly lockFile 5220b296-merge-descriptors-0-0-1 [email protected] | |
| 2526 silly lockFile 2bd7d3df-131218171509-node-modules-sockjs tar:///var/www/sharejs/releases/20131218171509/node_modules/sockjs | |
| 2527 silly lockFile 2bd7d3df-131218171509-node-modules-sockjs tar:///var/www/sharejs/releases/20131218171509/node_modules/sockjs | |
| 2528 silly gunzTarPerm extractEntry benches/stress/pubsub/server.js | |
| 2529 silly gunzTarPerm extractEntry benches/stress/pubsub/run | |
| 2530 silly addNameRange number 2 { name: 'hiredis', range: '>=0.1.0-0 <0.2.0-0', hasData: true } | |
| 2531 silly addNameRange versions [ 'hiredis', | |
| 2531 silly addNameRange [ '0.1.0', | |
| 2531 silly addNameRange '0.1.1', | |
| 2531 silly addNameRange '0.1.2', | |
| 2531 silly addNameRange '0.1.3', | |
| 2531 silly addNameRange '0.1.4', | |
| 2531 silly addNameRange '0.1.5', | |
| 2531 silly addNameRange '0.1.6', | |
| 2531 silly addNameRange '0.1.8', | |
| 2531 silly addNameRange '0.1.9', | |
| 2531 silly addNameRange '0.1.10', | |
| 2531 silly addNameRange '0.1.12', | |
| 2531 silly addNameRange '0.1.13', | |
| 2531 silly addNameRange '0.1.14', | |
| 2531 silly addNameRange '0.1.15', | |
| 2531 silly addNameRange '0.1.16' ] ] | |
| 2532 verbose addNamed [ 'hiredis', '0.1.16' ] | |
| 2533 verbose addNamed [ '0.1.16', '0.1.16' ] | |
| 2534 silly lockFile beed5615-hiredis-0-1-16 [email protected] | |
| 2535 verbose lock [email protected] /home/sharejs/.npm/beed5615-hiredis-0-1-16.lock | |
| 2536 silly lockFile f519dab6-ejs-npm-sockjs-0-3-8-package-tgz tar:///home/sharejs/.npm/sockjs/0.3.8/package.tgz | |
| 2537 silly lockFile f519dab6-ejs-npm-sockjs-0-3-8-package-tgz tar:///home/sharejs/.npm/sockjs/0.3.8/package.tgz | |
| 2538 silly lockFile 16160008-debug-0-7-4 [email protected] | |
| 2539 silly lockFile 16160008-debug-0-7-4 [email protected] | |
| 2540 silly gunzTarPerm extractEntry scripts/bench-composable.coffee | |
| 2541 silly gunzTarPerm extractEntry scripts/bench.coffee | |
| 2542 silly lockFile a781479f-debug-0-7-3-1 debug@>= 0.7.3 < 1 | |
| 2543 silly lockFile a781479f-debug-0-7-3-1 debug@>= 0.7.3 < 1 | |
| 2544 silly addNameRange number 2 { name: 'deep-is', range: '>=0.1.0-0 <0.2.0-0', hasData: true } | |
| 2545 silly addNameRange versions [ 'deep-is', [ '0.1.0', '0.1.1', '0.1.2' ] ] | |
| 2546 verbose addNamed [ 'deep-is', '0.1.2' ] | |
| 2547 verbose addNamed [ '0.1.2', '0.1.2' ] | |
| 2548 silly lockFile afcebadc-deep-is-0-1-2 [email protected] | |
| 2549 verbose lock [email protected] /home/sharejs/.npm/afcebadc-deep-is-0-1-2.lock | |
| 2550 silly gunzTarPerm extractEntry lib/public/icons/page_white_dvd.png | |
| 2551 silly gunzTarPerm extractEntry lib/public/icons/page_add.png | |
| 2552 silly lockFile a4bed1c7-connect-2-12-0 [email protected] | |
| 2553 silly lockFile a4bed1c7-connect-2-12-0 [email protected] | |
| 2554 silly addNameRange number 2 { name: 'redis', range: '>=0.8.0-0 <0.9.0-0', hasData: true } | |
| 2555 silly addNameRange versions [ 'redis', | |
| 2555 silly addNameRange [ '0.0.1', | |
| 2555 silly addNameRange '0.0.2', | |
| 2555 silly addNameRange '0.0.3', | |
| 2555 silly addNameRange '0.0.4', | |
| 2555 silly addNameRange '0.0.7', | |
| 2555 silly addNameRange '0.0.8', | |
| 2555 silly addNameRange '0.1.0', | |
| 2555 silly addNameRange '0.1.1', | |
| 2555 silly addNameRange '0.1.2', | |
| 2555 silly addNameRange '0.2.0', | |
| 2555 silly addNameRange '0.2.1', | |
| 2555 silly addNameRange '0.2.2', | |
| 2555 silly addNameRange '0.2.3', | |
| 2555 silly addNameRange '0.2.4', | |
| 2555 silly addNameRange '0.2.6', | |
| 2555 silly addNameRange '0.3.0', | |
| 2555 silly addNameRange '0.3.1', | |
| 2555 silly addNameRange '0.3.2', | |
| 2555 silly addNameRange '0.3.3', | |
| 2555 silly addNameRange '0.3.4', | |
| 2555 silly addNameRange '0.3.5', | |
| 2555 silly addNameRange '0.3.6', | |
| 2555 silly addNameRange '0.3.7', | |
| 2555 silly addNameRange '0.3.9', | |
| 2555 silly addNameRange '0.4.0', | |
| 2555 silly addNameRange '0.4.1', | |
| 2555 silly addNameRange '0.4.2', | |
| 2555 silly addNameRange '0.5.0', | |
| 2555 silly addNameRange '0.5.1', | |
| 2555 silly addNameRange '0.5.2', | |
| 2555 silly addNameRange '0.5.3', | |
| 2555 silly addNameRange '0.5.4', | |
| 2555 silly addNameRange '0.5.5', | |
| 2555 silly addNameRange '0.5.6', | |
| 2555 silly addNameRange '0.5.7', | |
| 2555 silly addNameRange '0.5.8', | |
| 2555 silly addNameRange '0.5.9', | |
| 2555 silly addNameRange '0.5.10', | |
| 2555 silly addNameRange '0.5.11', | |
| 2555 silly addNameRange '0.6.0', | |
| 2555 silly addNameRange '0.6.1', | |
| 2555 silly addNameRange '0.6.2', | |
| 2555 silly addNameRange '0.6.3', | |
| 2555 silly addNameRange '0.6.4', | |
| 2555 silly addNameRange '0.6.5', | |
| 2555 silly addNameRange '0.6.6', | |
| 2555 silly addNameRange '0.6.7', | |
| 2555 silly addNameRange '0.7.0', | |
| 2555 silly addNameRange '0.7.1', | |
| 2555 silly addNameRange '0.7.2', | |
| 2555 silly addNameRange '0.7.3', | |
| 2555 silly addNameRange '0.8.0', | |
| 2555 silly addNameRange '0.8.1', | |
| 2555 silly addNameRange '0.8.2', | |
| 2555 silly addNameRange '0.8.3', | |
| 2555 silly addNameRange '0.8.4', | |
| 2555 silly addNameRange '0.8.5', | |
| 2555 silly addNameRange '0.8.6', | |
| 2555 silly addNameRange '0.9.0', | |
| 2555 silly addNameRange '0.9.1', | |
| 2555 silly addNameRange '0.9.2' ] ] | |
| 2556 verbose addNamed [ 'redis', '0.8.6' ] | |
| 2557 verbose addNamed [ '0.8.6', '0.8.6' ] | |
| 2558 silly lockFile 63d0c94f-redis-0-8-6 [email protected] | |
| 2559 verbose lock [email protected] /home/sharejs/.npm/63d0c94f-redis-0-8-6.lock | |
| 2560 silly addNameRange number 2 { name: 'arraydiff', range: '>=0.1.0-0 <0.2.0-0', hasData: true } | |
| 2561 silly addNameRange versions [ 'arraydiff', [ '0.1.0', '0.1.1' ] ] | |
| 2562 verbose addNamed [ 'arraydiff', '0.1.1' ] | |
| 2563 verbose addNamed [ '0.1.1', '0.1.1' ] | |
| 2564 silly lockFile 1ecf75ce-arraydiff-0-1-1 [email protected] | |
| 2565 verbose lock [email protected] /home/sharejs/.npm/1ecf75ce-arraydiff-0-1-1.lock | |
| 2566 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.8.21/nodetime_native.node | |
| 2567 silly gunzTarPerm extractEntry compiled/darwin/x64/v0.8.22/nodetime_native.node | |
| 2568 silly gunzTarPerm extractEntry test2 | |
| 2569 silly gunzTarPerm extractEntry test3 | |
| 2570 info preinstall [email protected] | |
| 2571 silly lockFile 2016e061-commander-1-3-2 [email protected] | |
| 2572 silly lockFile 2016e061-commander-1-3-2 [email protected] | |
| 2573 silly lockFile 0760c556-range-parser-0-0-4 [email protected] | |
| 2574 silly lockFile 0760c556-range-parser-0-0-4 [email protected] | |
| 2575 silly lockFile 67d2df2a-mkdirp-0-3-5 [email protected] | |
| 2576 silly lockFile 67d2df2a-mkdirp-0-3-5 [email protected] | |
| 2577 verbose readDependencies using package.json deps | |
| 2578 silly lockFile b55e145e-cookie-0-1-0 [email protected] | |
| 2579 silly lockFile b55e145e-cookie-0-1-0 [email protected] | |
| 2580 verbose readDependencies using package.json deps | |
| 2581 silly resolved [ { author: | |
| 2581 silly resolved { name: 'Brian J. Brennan', | |
| 2581 silly resolved email: '[email protected]', | |
| 2581 silly resolved url: 'http://bjb.io' }, | |
| 2581 silly resolved name: 'buffer-crc32', | |
| 2581 silly resolved description: 'A pure javascript CRC32 algorithm that plays nice with binary data', | |
| 2581 silly resolved version: '0.2.1', | |
| 2581 silly resolved contributors: [ [Object] ], | |
| 2581 silly resolved homepage: 'https://github.com/brianloveswords/buffer-crc32', | |
| 2581 silly resolved repository: | |
| 2581 silly resolved { type: 'git', | |
| 2581 silly resolved url: 'git://github.com/brianloveswords/buffer-crc32.git' }, | |
| 2581 silly resolved main: 'index.js', | |
| 2581 silly resolved scripts: { test: './node_modules/.bin/tap tests/*.test.js' }, | |
| 2581 silly resolved dependencies: {}, | |
| 2581 silly resolved devDependencies: { tap: '~0.2.5' }, | |
| 2581 silly resolved optionalDependencies: {}, | |
| 2581 silly resolved engines: { node: '*' }, | |
| 2581 silly resolved readme: '# buffer-crc32\n\n[](http://travis-ci.org/brianloveswords/buffer-crc32)\n\ncrc32 that works with binary data and fancy character sets, outputs\nbuffer, signed or unsigned data and has tests.\n\nDerived from the sample CRC implementation in the PNG specification: http://www.w3.org/TR/PNG/#D-CRCAppendix\n\n# install\n```\nnpm install buffer-crc32\n```\n\n# example\n```js\nvar crc32 = require(\'buffer-crc32\');\n// works with buffers\nvar buf = Buffer([0x00, 0x73, 0x75, 0x70, 0x20, 0x62, 0x72, 0x6f, 0x00])\ncrc32(buf) // -> <Buffer 94 5a ab 4a>\n\n// has convenience methods for getting signed or unsigned ints\ncrc32.signed(buf) // -> -1805997238\ncrc32.unsigned(buf) // -> 2488970058\n\n// will cast to buffer if given a string, so you can\n// directly use foreign characters safely\ncrc32(\'自動販売機\') // -> <Buffer cb 03 1a c5>\n\n// and works in append mode too\nvar partialCrc = crc32(\'hey\');\nvar partialCrc = crc32(\' \', partialCrc);\nvar partialCrc = crc32(\'sup\', partialCrc);\nvar partialCrc = crc32(\' \', partialCrc);\nvar finalCrc = crc32(\'bros\', partialCrc); // -> <Buffer 47 fa 55 70>\n```\n\n# tests\nThis was tested against the output of zlib\'s crc32 method. You can run\nthe tests with`npm test` (requires tap)\n\n# see also\nhttps://github.com/alexgorbatchev/node-crc, `crc.buffer.crc32` also\nsupports buffer inputs and return unsigned ints (thanks @tjholowaychuk).\n\n# license\nMIT/X11\n', | |
| 2581 silly resolved readmeFilename: 'README.md', | |
| 2581 silly resolved bugs: { url: 'https://github.com/brianloveswords/buffer-crc32/issues' }, | |
| 2581 silly resolved _id: '[email protected]', | |
| 2581 silly resolved _from: '[email protected]' }, | |
| 2581 silly resolved { name: 'fresh', | |
| 2581 silly resolved author: | |
| 2581 silly resolved { name: 'TJ Holowaychuk', | |
| 2581 silly resolved email: '[email protected]', | |
| 2581 silly resolved url: 'http://tjholowaychuk.com' }, | |
| 2581 silly resolved description: 'HTTP response freshness testing', | |
| 2581 silly resolved version: '0.2.0', | |
| 2581 silly resolved main: 'index.js', | |
| 2581 silly resolved repository: | |
| 2581 silly resolved { type: 'git', | |
| 2581 silly resolved url: 'https://github.com/visionmedia/node-fresh.git' }, | |
| 2581 silly resolved dependencies: {}, | |
| 2581 silly resolved devDependencies: { mocha: '*', should: '*' }, | |
| 2581 silly resolved readme: '\n# node-fresh\n\n HTTP response freshness testing\n\n## fresh(req, res)\n\n Check freshness of `req` and `res` headers.\n\n When the cache is "fresh" __true__ is returned,\n otherwise __false__ is returned to indicate that\n the cache is now stale.\n\n## Example:\n\n```js\nvar req = { \'if-none-match\': \'tobi\' };\nvar res = { \'etag\': \'luna\' };\nfresh(req, res);\n// => false\n\nvar req = { \'if-none-match\': \'tobi\' };\nvar res = { \'etag\': \'tobi\' };\nfresh(req, res);\n// => true\n```\n\n## Installation\n\n```\n$ npm install fresh\n```\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2012 TJ Holowaychuk <[email protected]>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.', | |
| 2581 silly resolved readmeFilename: 'Readme.md', | |
| 2581 silly resolved bugs: { url: 'https://github.com/visionmedia/node-fresh/issues' }, | |
| 2581 silly resolved homepage: 'https://github.com/visionmedia/node-fresh', | |
| 2581 silly resolved _id: '[email protected]', | |
| 2581 silly resolved _from: '[email protected]' }, | |
| 2581 silly resolved { name: 'methods', | |
| 2581 silly resolved version: '0.1.0', | |
| 2581 silly resolved description: 'HTTP methods that node supports', | |
| 2581 silly resolved main: 'index.js', | |
| 2581 silly resolved scripts: { test: 'echo "Error: no test specified" && exit 1' }, | |
| 2581 silly resolved keywords: [ 'http', 'methods' ], | |
| 2581 silly resolved author: { name: 'TJ Holowaychuk' }, | |
| 2581 silly resolved license: 'MIT', | |
| 2581 silly resolved repository: | |
| 2581 silly resolved { type: 'git', | |
| 2581 silly resolved url: 'git://github.com/visionmedia/node-methods.git' }, | |
| 2581 silly resolved readme: '\n# Methods\n\n HTTP verbs that node core\'s parser supports.\n', | |
| 2581 silly resolved readmeFilename: 'Readme.md', | |
| 2581 silly resolved bugs: { url: 'https://github.com/visionmedia/node-methods/issues' }, | |
| 2581 silly resolved homepage: 'https://github.com/visionmedia/node-methods', | |
| 2581 silly resolved _id: '[email protected]', | |
| 2581 silly resolved _from: '[email protected]' }, | |
| 2581 silly resolved { name: 'cookie-signature', | |
| 2581 silly resolved version: '1.0.1', | |
| 2581 silly resolved description: 'Sign and unsign cookies', | |
| 2581 silly resolved keywords: [ 'cookie', 'sign', 'unsign' ], | |
| 2581 silly resolved author: { name: 'TJ Holowaychuk', email: '[email protected]' }, | |
| 2581 silly resolved dependencies: {}, | |
| 2581 silly resolved devDependencies: { mocha: '*', should: '*' }, | |
| 2581 silly resolved main: 'index', | |
| 2581 silly resolved readme: '\n# cookie-signature\n\n Sign and unsign cookies.\n\n## Example\n\n```js\nvar cookie = require(\'cookie-signature\');\n\nvar val = cookie.sign(\'hello\', \'tobiiscool\');\nval.should.equal(\'hello.DGDUkGlIkCzPz+C0B064FNgHdEjox7ch8tOBGslZ5QI\');\n\nvar val = cookie.sign(\'hello\', \'tobiiscool\');\ncookie.unsign(val, \'tobiiscool\').should.equal(\'hello\');\ncookie.unsign(val, \'luna\').should.be.false;\n```\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2012 LearnBoost <[email protected]>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.', | |
| 2581 silly resolved readmeFilename: 'Readme.md', | |
| 2581 silly resolved _id: '[email protected]', | |
| 2581 silly resolved _from: '[email protected]' }, | |
| 2581 silly resolved { name: 'send', | |
| 2581 silly resolved version: '0.1.4', | |
| 2581 silly resolved description: 'Better streaming static file server with Range and conditional-GET support', | |
| 2581 silly resolved keywords: [ 'static', 'file', 'server' ], | |
| 2581 silly resolved author: { name: 'TJ Holowaychuk', email: '[email protected]' }, | |
| 2581 silly resolved dependencies: | |
| 2581 silly resolved { debug: '*', | |
| 2581 silly resolved mime: '~1.2.9', | |
| 2581 silly resolved fresh: '0.2.0', | |
| 2581 silly resolved 'range-parser': '0.0.4' }, | |
| 2581 silly resolved devDependencies: { mocha: '*', should: '*', supertest: '0.0.1', connect: '2.x' }, | |
| 2581 silly resolved scripts: { test: 'make test' }, | |
| 2581 silly resolved repository: { type: 'git', url: 'git://github.com/visionmedia/send.git' }, | |
| 2581 silly resolved main: 'index', | |
| 2581 silly resolved readme: '# send\n\n Send is Connect\'s `static()` extracted for generalized use, a streaming static file\n server supporting partial responses (Ranges), conditional-GET negotiation, high test coverage, and granular events which may be leveraged to take appropriate actions in your application or framework.\n\n## Installation\n\n $ npm install send\n\n## Examples\n\n Small:\n\n```js\nvar http = require(\'http\');\nvar send = require(\'send\');\n\nvar app = http.createServer(function(req, res){\n send(req, req.url).pipe(res);\n}).listen(3000);\n```\n\n Serving from a root directory with custom error-handling:\n\n```js\nvar http = require(\'http\');\nvar send = require(\'send\');\nvar url = require(\'url\');\n\nvar app = http.createServer(function(req, res){\n // your custom error-handling logic:\n function error(err) {\n res.statusCode = err.status || 500;\n res.end(err.message);\n }\n\n // your custom directory handling logic:\n function redirect() {\n res.statusCode = 301;\n res.setHeader(\'Location\', req.url + \'/\');\n res.end(\'Redirecting to \' + req.url + \'/\');\n }\n\n // transfer arbitrary files from within\n // /www/example.com/public/*\n send(req, url.parse(req.url).pathname)\n .root(\'/www/example.com/public\')\n .on(\'error\', error)\n .on(\'directory\', redirect)\n .pipe(res);\n}).listen(3000);\n```\n\n## API\n\n### Events\n\n - `error` an error occurred `(err)`\n - `directory` a directory was requested\n - `file` a file was requested `(path, stat)`\n - `stream` file streaming has started `(stream)`\n - `end` streaming has completed\n\n### .root(dir)\n\n Serve files relative to `path`. Aliased as `.from(dir)`.\n\n### .index(path)\n\n By default send supports "index.html" files, to disable this\n invoke `.index(false)` or to supply a new index pass a string.\n\n### .maxage(ms)\n\n Provide a max-age in milliseconds for http caching, defaults to 0.\n\n### .hidden(bool)\n\n Enable or disable transfer of hidden files, defaults to false.\n\n## Error-handling\n\n By default when no `error` listeners are present an automatic response will be made, otherwise you have full control over the response, aka you may show a 5xx page etc.\n\n## Caching\n\n It does _not_ perform internal caching, you should use a reverse proxy cache such\n as Varnish for this, or those fancy things called CDNs. If your application is small enough that it would benefit from single-node memory caching, it\'s small enough that it does not need caching at all ;).\n\n## Debugging\n\n To enable `debug()` instrumentation output export __DEBUG__:\n\n```\n$ DEBUG=send node app\n```\n\n## Running tests\n\n```\n$ npm install\n$ make test\n```\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2012 TJ Holowaychuk <[email protected]>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n', | |
| 2581 silly resolved readmeFilename: 'Readme.md', | |
| 2581 silly resolved bugs: { url: 'https://github.com/visionmedia/send/issues' }, | |
| 2581 silly resolved homepage: 'https://github.com/visionmedia/send', | |
| 2581 silly resolved _id: '[email protected]', | |
| 2581 silly resolved _from: '[email protected]' }, | |
| 2581 silly resolved { name: 'merge-descriptors', | |
| 2581 silly resolved description: 'Merge objects using descriptors', | |
| 2581 silly resolved version: '0.0.1', | |
| 2581 silly resolved author: | |
| 2581 silly resolved { name: 'Jonathan Ong', | |
| 2581 silly resolved email: '[email protected]', | |
| 2581 silly resolved url: 'http://jongleberry.com' }, | |
| 2581 silly resolved license: 'MIT', | |
| 2581 silly resolved repository: | |
| 2581 silly resolved { type: 'git', | |
| 2581 silly resolved url: 'https://github.com/jonathanong/merge-descriptors.git' }, | |
| 2581 silly resolved bugs: { url: 'https://github.com/jonathanong/merge-descriptors/issues' }, | |
| 2581 silly resolved scripts: { test: 'make test;' }, | |
| 2581 silly resolved readme: '# Merge Descriptors [](https://travis-ci.org/jonathanong/merge-descriptors)\n\nMerge objects using descriptors.\n\n```js\nvar thing = {\n get name() {\n return \'jon\'\n }\n}\n\nvar animal = {\n\n}\n\nmerge(animal, thing)\n\nanimal.name === \'jon\'\n```\n\n## API\n\n### merge(destination, source)\n\nOverwrites `destination`\'s descriptors with `source`\'s.\n\n## License\n\nThe MIT License (MIT)\n\nCopyright (c) 2013 Jonathan Ong [email protected]\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the "Software"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.', | |
| 2581 silly resolved readmeFilename: 'README.md', | |
| 2581 silly resolved homepage: 'https://github.com/jonathanong/merge-descriptors', | |
| 2581 silly resolved _id: '[email protected]', | |
| 2581 silly resolved _from: '[email protected]' }, | |
| 2581 silly resolved { name: 'debug', | |
| 2581 silly resolved version: '0.7.4', | |
| 2581 silly resolved repository: { type: 'git', url: 'git://github.com/visionmedia/debug.git' }, | |
| 2581 silly resolved description: 'small debugging utility', | |
| 2581 silly resolved keywords: [ 'debug', 'log', 'debugger' ], | |
| 2581 silly resolved author: { name: 'TJ Holowaychuk', email: '[email protected]' }, | |
| 2581 silly resolved dependencies: {}, | |
| 2581 silly resolved devDependencies: { mocha: '*' }, | |
| 2581 silly resolved main: 'lib/debug.js', | |
| 2581 silly resolved browser: './debug.js', | |
| 2581 silly resolved engines: { node: '*' }, | |
| 2581 silly resolved files: [ 'lib/debug.js', 'debug.js', 'index.js' ], | |
| 2581 silly resolved component: { scripts: [Object] }, | |
| 2581 silly resolved readme: '# debug\n\n tiny node.js debugging utility modelled after node core\'s debugging technique.\n\n## Installation\n\n```\n$ npm install debug\n```\n\n## Usage\n\n With `debug` you simply invoke the exported function to generate your debug function, passing it a name which will determine if a noop function is returned, or a decorated `console.error`, so all of the `console` format string goodies you\'re used to work fine. A unique color is selected per-function for visibility.\n \nExample _app.js_:\n\n```js\nvar debug = require(\'debug\')(\'http\')\n , http = require(\'http\')\n , name = \'My App\';\n\n// fake app\n\ndebug(\'booting %s\', name);\n\nhttp.createServer(function(req, res){\n debug(req.method + \' \' + req.url);\n res.end(\'hello\\n\');\n}).listen(3000, function(){\n debug(\'listening\');\n});\n\n// fake worker of some kind\n\nrequire(\'./worker\');\n```\n\nExample _worker.js_:\n\n```js\nvar debug = require(\'debug\')(\'worker\');\n\nsetInterval(function(){\n debug(\'doing some work\');\n}, 1000);\n```\n\n The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples:\n\n \n\n \n\n## Millisecond diff\n\n When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls.\n\n \n\n When stderr is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:\n _(NOTE: Debug now uses stderr instead of stdout, so the correct shell command for this example is actually `DEBUG=* node example/worker 2> out &`)_\n \n \n \n## Conventions\n\n If you\'re using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". \n\n## Wildcards\n\n The "*" character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect.compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.\n\n You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=* -connect:*` would include all debuggers except those starting with "connect:".\n\n## Browser support\n\n Debug works in the browser as well, currently persisted by `localStorage`. For example if you have `worker:a` and `worker:b` as shown below, and wish to debug both type `debug.enable(\'worker:*\')` in the console and refresh the page, this will remain until you disable with `debug.disable()`. \n\n```js\na = debug(\'worker:a\');\nb = debug(\'worker:b\');\n\nsetInterval(function(){\n a(\'doing some work\');\n}, 1000);\n\nsetInterval(function(){\n a(\'doing some work\');\n}, 1200);\n```\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2011 TJ Holowaychuk <[email protected]>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n', | |
| 2581 silly resolved readmeFilename: 'Readme.md', | |
| 2581 silly resolved bugs: { url: 'https://github.com/visionmedia/debug/issues' }, | |
| 2581 silly resolved homepage: 'https://github.com/visionmedia/debug', | |
| 2581 silly resolved _id: '[email protected]', | |
| 2581 silly resolved _from: 'debug@>= 0.7.3 < 1' }, | |
| 2581 silly resolved { name: 'connect', | |
| 2581 silly resolved version: '2.12.0', | |
| 2581 silly resolved description: 'High performance middleware framework', | |
| 2581 silly resolved keywords: [ 'framework', 'web', 'middleware', 'connect', 'rack' ], | |
| 2581 silly resolved repository: { type: 'git', url: 'git://github.com/senchalabs/connect.git' }, | |
| 2581 silly resolved author: | |
| 2581 silly resolved { name: 'TJ Holowaychuk', | |
| 2581 silly resolved email: '[email protected]', | |
| 2581 silly resolved url: 'http://tjholowaychuk.com' }, | |
| 2581 silly resolved dependencies: | |
| 2581 silly resolved { batch: '0.5.0', | |
| 2581 silly resolved qs: '0.6.6', | |
| 2581 silly resolved 'cookie-signature': '1.0.1', | |
| 2581 silly resolved 'buffer-crc32': '0.2.1', | |
| 2581 silly resolved cookie: '0.1.0', | |
| 2581 silly resolved send: '0.1.4', | |
| 2581 silly resolved bytes: '0.2.1', | |
| 2581 silly resolved fresh: '0.2.0', | |
| 2581 silly resolved pause: '0.0.1', | |
| 2581 silly resolved uid2: '0.0.3', | |
| 2581 silly resolved debug: '>= 0.7.3 < 1', | |
| 2581 silly resolved methods: '0.1.0', | |
| 2581 silly resolved 'raw-body': '1.1.2', | |
| 2581 silly resolved negotiator: '0.3.0', | |
| 2581 silly resolved multiparty: '2.2.0' }, | |
| 2581 silly resolved devDependencies: | |
| 2581 silly resolved { should: '>= 2.0.2 < 3', | |
| 2581 silly resolved mocha: '>= 1.13.0 < 2', | |
| 2581 silly resolved jade: '>= 0.35.0 < 1', | |
| 2581 silly resolved dox: '>= 0.4.4 < 1' }, | |
| 2581 silly resolved licenses: [ [Object] ], | |
| 2581 silly resolved main: 'index', | |
| 2581 silly resolved engines: { node: '>= 0.8.0' }, | |
| 2581 silly resolved scripts: { test: 'make' }, | |
| 2581 silly resolved readme: '# Connect [](http://travis-ci.org/senchalabs/connect)\n\n Connect is an extensible HTTP server framework for [node](http://nodejs.org), providing high performance "plugins" known as _middleware_.\n\n Connect is bundled with over _20_ commonly used middleware, including\n a logger, session support, cookie parser, and [more](http://senchalabs.github.com/connect). Be sure to view the 2.x [documentation](http://senchalabs.github.com/connect/).\n\n```js\nvar connect = require(\'connect\')\n , http = require(\'http\');\n\nvar app = connect()\n .use(connect.favicon())\n .use(connect.logger(\'dev\'))\n .use(connect.static(\'public\'))\n .use(connect.directory(\'public\'))\n .use(connect.cookieParser())\n .use(connect.session({ secret: \'my secret here\' }))\n .use(function(req, res){\n res.end(\'Hello from Connect!\\n\');\n });\n\nhttp.createServer(app).listen(3000);\n```\n\n## Middleware\n\n - [basicAuth](http://www.senchalabs.org/connect/basicAuth.html)\n - [bodyParser](http://www.senchalabs.org/connect/bodyParser.html)\n - [compress](http://www.senchalabs.org/connect/compress.html)\n - [cookieParser](http://www.senchalabs.org/connect/cookieParser.html)\n - [cookieSession](http://www.senchalabs.org/connect/cookieSession.html)\n - [csrf](http://www.senchalabs.org/connect/csrf.html)\n - [directory](http://www.senchalabs.org/connect/directory.html)\n - [errorHandler](http://www.senchalabs.org/connect/errorHandler.html)\n - [favicon](http://www.senchalabs.org/connect/favicon.html)\n - [json](http://www.senchalabs.org/connect/json.html)\n - [limit](http://www.senchalabs.org/connect/limit.html)\n - [logger](http://www.senchalabs.org/connect/logger.html)\n - [methodOverride](http://www.senchalabs.org/connect/methodOverride.html)\n - [multipart](http://www.senchalabs.org/connect/multipart.html)\n - [urlencoded](http://www.senchalabs.org/connect/urlencoded.html)\n - [query](http://www.senchalabs.org/connect/query.html)\n - [responseTime](http://www.senchalabs.org/connect/responseTime.html)\n - [session](http://www.senchalabs.org/connect/session.html)\n - [static](http://www.senchalabs.org/connect/static.html)\n - [staticCache](http://www.senchalabs.org/connect/staticCache.html)\n - [subdomains](http://www.senchalabs.org/connect/subdomains.html)\n - [vhost](http://www.senchalabs.org/connect/vhost.html)\n\n## Running Tests\n\nfirst:\n\n $ npm install -d\n\nthen:\n\n $ make test\n\n## Contributors\n\n https://github.com/senchalabs/connect/graphs/contributors\n\n## Node Compatibility\n\n Connect `< 1.x` is compatible with node 0.2.x\n\n\n Connect `1.x` is compatible with node 0.4.x\n\n\n Connect `2.x` is compatible with node 0.6.x\n\n\n Connect (_master_) is compatible with node 0.8.x\n\n## CLA\n\n [http://sencha.com/cla](http://sencha.com/cla)\n\n## License\n\nView the [LICENSE](https://github.com/senchalabs/connect/blob/master/LICENSE) file. The [Silk](http://www.famfamfam.com/lab/icons/silk/) icons used by the `directory` middleware created by/copyright of [FAMFAMFAM](http://www.famfamfam.com/).\n', | |
| 2581 silly resolved readmeFilename: 'Readme.md', | |
| 2581 silly resolved bugs: { url: 'https://github.com/senchalabs/connect/issues' }, | |
| 2581 silly resolved homepage: 'https://github.com/senchalabs/connect', | |
| 2581 silly resolved _id: '[email protected]', | |
| 2581 silly resolved _from: '[email protected]' }, | |
| 2581 silly resolved { name: 'commander', | |
| 2581 silly resolved version: '1.3.2', | |
| 2581 silly resolved description: 'the complete solution for node.js command-line programs', | |
| 2581 silly resolved keywords: [ 'command', 'option', 'parser', 'prompt', 'stdin' ], | |
| 2581 silly resolved author: { name: 'TJ Holowaychuk', email: '[email protected]' }, | |
| 2581 silly resolved repository: | |
| 2581 silly resolved { type: 'git', | |
| 2581 silly resolved url: 'https://github.com/visionmedia/commander.js.git' }, | |
| 2581 silly resolved dependencies: { keypress: '0.1.x' }, | |
| 2581 silly resolved devDependencies: { should: '>= 0.0.1' }, | |
| 2581 silly resolved scripts: { test: 'make test' }, | |
| 2581 silly resolved main: 'index', | |
| 2581 silly resolved engines: { node: '>= 0.6.x' }, | |
| 2581 silly resolved readme: '# Commander.js\n\n The complete solution for [node.js](http://nodejs.org) command-line interfaces, inspired by Ruby\'s [commander](https://github.com/visionmedia/commander).\n\n [](http://travis-ci.org/visionmedia/commander.js)\n\n## Installation\n\n $ npm install commander\n\n## Option parsing\n\n Options with commander are defined with the `.option()` method, also serving as documentation for the options. The example below parses args and options from `process.argv`, leaving remaining args as the `program.args` array which were not consumed by options.\n\n```js\n#!/usr/bin/env node\n\n/**\n * Module dependencies.\n */\n\nvar program = require(\'commander\');\n\nprogram\n .version(\'0.0.1\')\n .option(\'-p, --peppers\', \'Add peppers\')\n .option(\'-P, --pineapple\', \'Add pineapple\')\n .option(\'-b, --bbq\', \'Add bbq sauce\')\n .option(\'-c, --cheese [type]\', \'Add the specified type of cheese [marble]\', \'marble\')\n .parse(process.argv);\n\nconsole.log(\'you ordered a pizza with:\');\nif (program.peppers) console.log(\' - peppers\');\nif (program.pineapple) console.log(\' - pineapple\');\nif (program.bbq) console.log(\' - bbq\');\nconsole.log(\' - %s cheese\', program.cheese);\n```\n\n Short flags may be passed as a single arg, for example `-abc` is equivalent to `-a -b -c`. Multi-word options such as "--template-engine" are camel-cased, becoming `program.templateEngine` etc.\n\n## Automated --help\n\n The help information is auto-generated based on the information commander already knows about your program, so the following `--help` info is for free:\n\n``` \n $ ./examples/pizza --help\n\n Usage: pizza [options]\n\n Options:\n\n -V, --version output the version number\n -p, --peppers Add peppers\n -P, --pineapple Add pineapple\n -b, --bbq Add bbq sauce\n -c, --cheese <type> Add the specified type of cheese [marble]\n -h, --help output usage information\n\n```\n\n## Coercion\n\n```js\nfunction range(val) {\n return val.split(\'..\').map(Number);\n}\n\nfunction list(val) {\n return val.split(\',\');\n}\n\nprogram\n .version(\'0.0.1\')\n .usage(\'[options] <file ...>\')\n .option(\'-i, --integer <n>\', \'An integer argument\', parseInt)\n .option(\'-f, --float <n>\', \'A float argument\', parseFloat)\n .option(\'-r, --range <a>..<b>\', \'A range\', range)\n .option(\'-l, --list <items>\', \'A list\', list)\n .option(\'-o, --optional [value]\', \'An optional value\')\n .parse(process.argv);\n\nconsole.log(\' int: %j\', program.integer);\nconsole.log(\' float: %j\', program.float);\nconsole.log(\' optional: %j\', program.optional);\nprogram.range = program.range || [];\nconsole.log(\' range: %j..%j\', program.range[0], program.range[1]);\nconsole.log(\' list: %j\', program.list);\nconsole.log(\' args: %j\', program.args);\n```\n\n## Custom help\n\n You can display arbitrary `-h, --help` information\n by listening for "--help". Commander will automatically\n exit once you are done so that the remainder of your program\n does not execute causing undesired behaviours, for example\n in the following executable "stuff" will not output when\n `--help` is used.\n\n```js\n#!/usr/bin/env node\n\n/**\n * Module dependencies.\n */\n\nvar program = require(\'../\');\n\nfunction list(val) {\n return val.split(\',\').map(Number);\n}\n\nprogram\n .version(\'0.0.1\')\n .option(\'-f, --foo\', \'enable some foo\')\n .option(\'-b, --bar\', \'enable some bar\')\n .option(\'-B, --baz\', \'enable some baz\');\n\n// must be before .parse() since\n// node\'s emit() is immediate\n\nprogram.on(\'--help\', function(){\n console.log(\' Examples:\');\n console.log(\'\');\n console.log(\' $ custom-help --help\');\n console.log(\' $ custom-help -h\');\n console.log(\'\');\n});\n\nprogram.parse(process.argv);\n\nconsole.log(\'stuff\');\n```\n\nyielding the following help output:\n\n```\n\nUsage: custom-help [options]\n\nOptions:\n\n -h, --help output usage information\n -V, --version output the version number\n -f, --foo enable some foo\n -b, --bar enable some bar\n -B, --baz enable some baz\n\nExamples:\n\n $ custom-help --help\n $ custom-help -h\n\n```\n\n## .prompt(msg, fn)\n\n Single-line prompt:\n\n```js\nprogram.prompt(\'name: \', function(name){\n console.log(\'hi %s\', name);\n});\n```\n\n Multi-line prompt:\n\n```js\nprogram.prompt(\'description:\', function(name){\n console.log(\'hi %s\', name);\n});\n```\n\n Coercion:\n\n```js\nprogram.prompt(\'Age: \', Number, function(age){\n console.log(\'age: %j\', age);\n});\n```\n\n```js\nprogram.prompt(\'Birthdate: \', Date, function(date){\n console.log(\'date: %s\', date);\n});\n```\n\n```js\nprogram.prompt(\'Email: \', /^.+@.+\\..+$/, function(email){\n console.log(\'email: %j\', email);\n});\n```\n\n## .password(msg[, mask], fn)\n\nPrompt for password without echoing:\n\n```js\nprogram.password(\'Password: \', function(pass){\n console.log(\'got "%s"\', pass);\n process.stdin.destroy();\n});\n```\n\nPrompt for password with mask char "*":\n\n```js\nprogram.password(\'Password: \', \'*\', function(pass){\n console.log(\'got "%s"\', pass);\n process.stdin.destroy();\n});\n```\n\n## .confirm(msg, fn)\n\n Confirm with the given `msg`:\n\n```js\nprogram.confirm(\'continue? \', function(ok){\n console.log(\' got %j\', ok);\n});\n```\n\n## .choose(list, fn)\n\n Let the user choose from a `list`:\n\n```js\nvar list = [\'tobi\', \'loki\', \'jane\', \'manny\', \'luna\'];\n\nconsole.log(\'Choose the coolest pet:\');\nprogram.choose(list, function(i){\n console.log(\'you chose %d "%s"\', i, list[i]);\n});\n```\n\n## .outputHelp()\n\n Output help information without exiting.\n\n## .help()\n\n Output help information and exit immediately.\n\n## Links\n\n - [API documentation](http://visionmedia.github.com/commander.js/)\n - [ascii tables](https://github.com/LearnBoost/cli-table)\n - [progress bars](https://github.com/visionmedia/node-progress)\n - [more progress bars](https://github.com/substack/node-multimeter)\n - [examples](https://github.com/visionmedia/commander.js/tree/master/examples)\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2011 TJ Holowaychuk <[email protected]>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n', | |
| 2581 silly resolved readmeFilename: 'Readme.md', | |
| 2581 silly resolved bugs: { url: 'https://github.com/visionmedia/commander.js/issues' }, | |
| 2581 silly resolved homepage: 'https://github.com/visionmedia/commander.js', | |
| 2581 silly resolved _id: '[email protected]', | |
| 2581 silly resolved _from: '[email protected]' }, | |
| 2581 silly resolved { name: 'range-parser', | |
| 2581 silly resolved author: | |
| 2581 silly resolved { name: 'TJ Holowaychuk', | |
| 2581 silly resolved email: '[email protected]', | |
| 2581 silly resolved url: 'http://tjholowaychuk.com' }, | |
| 2581 silly resolved description: 'Range header field string parser', | |
| 2581 silly resolved version: '0.0.4', | |
| 2581 silly resolved main: 'index.js', | |
| 2581 silly resolved dependencies: {}, | |
| 2581 silly resolved devDependencies: { mocha: '*', should: '*' }, | |
| 2581 silly resolved readme: '\n# node-range-parser\n\n Range header field parser.\n\n## Example:\n\n```js\nassert(-1 == parse(200, \'bytes=500-20\'));\nassert(-2 == parse(200, \'bytes=malformed\'));\nparse(200, \'bytes=0-499\').should.eql(arr(\'bytes\', [{ start: 0, end: 199 }]));\nparse(1000, \'bytes=0-499\').should.eql(arr(\'bytes\', [{ start: 0, end: 499 }]));\nparse(1000, \'bytes=40-80\').should.eql(arr(\'bytes\', [{ start: 40, end: 80 }]));\nparse(1000, \'bytes=-500\').should.eql(arr(\'bytes\', [{ start: 500, end: 999 }]));\nparse(1000, \'bytes=-400\').should.eql(arr(\'bytes\', [{ start: 600, end: 999 }]));\nparse(1000, \'bytes=500-\').should.eql(arr(\'bytes\', [{ start: 500, end: 999 }]));\nparse(1000, \'bytes=400-\').should.eql(arr(\'bytes\', [{ start: 400, end: 999 }]));\nparse(1000, \'bytes=0-0\').should.eql(arr(\'bytes\', [{ start: 0, end: 0 }]));\nparse(1000, \'bytes=-1\').should.eql(arr(\'bytes\', [{ start: 999, end: 999 }]));\nparse(1000, \'items=0-5\').should.eql(arr(\'items\', [{ start: 0, end: 5 }]));\nparse(1000, \'bytes=40-80,-1\').should.eql(arr(\'bytes\', [{ start: 40, end: 80 }, { start: 999, end: 999 }]));\n```\n\n## Installation\n\n```\n$ npm install range-parser\n```', | |
| 2581 silly resolved readmeFilename: 'Readme.md', | |
| 2581 silly resolved _id: '[email protected]', | |
| 2581 silly resolved _from: '[email protected]' }, | |
| 2581 silly resolved { name: 'mkdirp', | |
| 2581 silly resolved description: 'Recursively mkdir, like `mkdir -p`', | |
| 2581 silly resolved version: '0.3.5', | |
| 2581 silly resolved author: | |
| 2581 silly resolved { name: 'James Halliday', | |
| 2581 silly resolved email: '[email protected]', | |
| 2581 silly resolved url: 'http://substack.net' }, | |
| 2581 silly resolved main: './index', | |
| 2581 silly resolved keywords: [ 'mkdir', 'directory' ], | |
| 2581 silly resolved repository: | |
| 2581 silly resolved { type: 'git', | |
| 2581 silly resolved url: 'http://github.com/substack/node-mkdirp.git' }, | |
| 2581 silly resolved scripts: { test: 'tap test/*.js' }, | |
| 2581 silly resolved devDependencies: { tap: '~0.4.0' }, | |
| 2581 silly resolved license: 'MIT', | |
| 2581 silly resolved readme: '# mkdirp\n\nLike `mkdir -p`, but in node.js!\n\n[](http://travis-ci.org/substack/node-mkdirp)\n\n# example\n\n## pow.js\n\n```js\nvar mkdirp = require(\'mkdirp\');\n \nmkdirp(\'/tmp/foo/bar/baz\', function (err) {\n if (err) console.error(err)\n else console.log(\'pow!\')\n});\n```\n\nOutput\n\n```\npow!\n```\n\nAnd now /tmp/foo/bar/baz exists, huzzah!\n\n# methods\n\n```js\nvar mkdirp = require(\'mkdirp\');\n```\n\n## mkdirp(dir, mode, cb)\n\nCreate a new directory and any necessary subdirectories at `dir` with octal\npermission string `mode`.\n\nIf `mode` isn\'t specified, it defaults to `0777 & (~process.umask())`.\n\n`cb(err, made)` fires with the error or the first directory `made`\nthat had to be created, if any.\n\n## mkdirp.sync(dir, mode)\n\nSynchronously create a new directory and any necessary subdirectories at `dir`\nwith octal permission string `mode`.\n\nIf `mode` isn\'t specified, it defaults to `0777 & (~process.umask())`.\n\nReturns the first directory that had to be created, if any.\n\n# install\n\nWith [npm](http://npmjs.org) do:\n\n```\nnpm install mkdirp\n```\n\n# license\n\nMIT\n', | |
| 2581 silly resolved readmeFilename: 'readme.markdown', | |
| 2581 silly resolved bugs: { url: 'https://github.com/substack/node-mkdirp/issues' }, | |
| 2581 silly resolved homepage: 'https://github.com/substack/node-mkdirp', | |
| 2581 silly resolved _id: '[email protected]', | |
| 2581 silly resolved _from: '[email protected]' }, | |
| 2581 silly resolved { author: { name: 'Roman Shtylman', email: '[email protected]' }, | |
| 2581 silly resolved name: 'cookie', | |
| 2581 silly resolved description: 'cookie parsing and serialization', | |
| 2581 silly resolved version: '0.1.0', | |
| 2581 silly resolved repository: | |
| 2581 silly resolved { type: 'git', | |
| 2581 silly resolved url: 'git://github.com/shtylman/node-cookie.git' }, | |
| 2581 silly resolved keywords: [ 'cookie', 'cookies' ], | |
| 2581 silly resolved main: 'index.js', | |
| 2581 silly resolved scripts: { test: 'mocha' }, | |
| 2581 silly resolved dependencies: {}, | |
| 2581 silly resolved devDependencies: { mocha: '1.x.x' }, | |
| 2581 silly resolved optionalDependencies: {}, | |
| 2581 silly resolved engines: { node: '*' }, | |
| 2581 silly resolved readme: '# cookie [](http://travis-ci.org/shtylman/node-cookie) #\n\ncookie is a basic cookie parser and serializer. It doesn\'t make assumptions about how you are going to deal with your cookies. It basically just provides a way to read and write the HTTP cookie headers.\n\nSee [RFC6265](http://tools.ietf.org/html/rfc6265) for details about the http header for cookies.\n\n## how?\n\n```\nnpm install cookie\n```\n\n```javascript\nvar cookie = require(\'cookie\');\n\nvar hdr = cookie.serialize(\'foo\', \'bar\');\n// hdr = \'foo=bar\';\n\nvar cookies = cookie.parse(\'foo=bar; cat=meow; dog=ruff\');\n// cookies = { foo: \'bar\', cat: \'meow\', dog: \'ruff\' };\n```\n\n## more\n\nThe serialize function takes a third parameter, an object, to set cookie options. See the RFC for valid values.\n\n### path\n> cookie path\n\n### expires\n> absolute expiration date for the cookie (Date object)\n\n### maxAge\n> relative max age of the cookie from when the client receives it (seconds)\n\n### domain\n> domain for the cookie\n\n### secure\n> true or false\n\n### httpOnly\n> true or false\n\n', | |
| 2581 silly resolved readmeFilename: 'README.md', | |
| 2581 silly resolved bugs: { url: 'https://github.com/shtylman/node-cookie/issues' }, | |
| 2581 silly resolved homepage: 'https://github.com/shtylman/node-cookie', | |
| 2581 silly resolved _id: '[email protected]', | |
| 2581 silly resolved _from: '[email protected]' } ] | |
| 2582 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/express | |
| 2583 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/express | |
| 2584 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/express | |
| 2585 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/express | |
| 2586 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/express | |
| 2587 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/express | |
| 2588 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/express | |
| 2589 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/express | |
| 2590 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/express | |
| 2591 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/express | |
| 2592 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/express | |
| 2593 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/express | |
| 2594 info installOne [email protected] | |
| 2595 info installOne [email protected] | |
| 2596 info installOne [email protected] | |
| 2597 info installOne [email protected] | |
| 2598 info installOne [email protected] | |
| 2599 info installOne [email protected] | |
| 2600 info installOne [email protected] | |
| 2601 info installOne [email protected] | |
| 2602 info installOne [email protected] | |
| 2603 info installOne [email protected] | |
| 2604 info installOne [email protected] | |
| 2605 info installOne [email protected] | |
| 2606 silly gunzTarPerm extractEntry benches/stress/rpushblpop/pub.js | |
| 2607 silly gunzTarPerm extractEntry benches/stress/rpushblpop/server.js | |
| 2608 info /var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/buffer-crc32 unbuild | |
| 2609 info /var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/fresh unbuild | |
| 2610 info /var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/methods unbuild | |
| 2611 info /var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/cookie-signature unbuild | |
| 2612 info /var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/send unbuild | |
| 2613 info /var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/merge-descriptors unbuild | |
| 2614 info /var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/debug unbuild | |
| 2615 info /var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/connect unbuild | |
| 2616 info /var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/commander unbuild | |
| 2617 info /var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/range-parser unbuild | |
| 2618 info /var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/mkdirp unbuild | |
| 2619 info /var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/cookie unbuild | |
| 2620 info [email protected] Failed to exec install script | |
| 2621 info /var/www/sharejs/releases/20131218171509/node_modules/rbytes unbuild | |
| 2622 info preuninstall [email protected] | |
| 2623 verbose cache add [ '[email protected]', null ] | |
| 2624 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null] | |
| 2625 verbose parsed url { protocol: null, | |
| 2625 verbose parsed url slashes: null, | |
| 2625 verbose parsed url auth: null, | |
| 2625 verbose parsed url host: null, | |
| 2625 verbose parsed url port: null, | |
| 2625 verbose parsed url hostname: null, | |
| 2625 verbose parsed url hash: null, | |
| 2625 verbose parsed url search: null, | |
| 2625 verbose parsed url query: null, | |
| 2625 verbose parsed url pathname: '[email protected]', | |
| 2625 verbose parsed url path: '[email protected]', | |
| 2625 verbose parsed url href: '[email protected]' } | |
| 2626 verbose cache add name="node-uuid" spec="1.3.3" args=["node-uuid","1.3.3"] | |
| 2627 verbose parsed url { protocol: null, | |
| 2627 verbose parsed url slashes: null, | |
| 2627 verbose parsed url auth: null, | |
| 2627 verbose parsed url host: null, | |
| 2627 verbose parsed url port: null, | |
| 2627 verbose parsed url hostname: null, | |
| 2627 verbose parsed url hash: null, | |
| 2627 verbose parsed url search: null, | |
| 2627 verbose parsed url query: null, | |
| 2627 verbose parsed url pathname: '1.3.3', | |
| 2627 verbose parsed url path: '1.3.3', | |
| 2627 verbose parsed url href: '1.3.3' } | |
| 2628 verbose addNamed [ 'node-uuid', '1.3.3' ] | |
| 2629 verbose addNamed [ '1.3.3', '1.3.3' ] | |
| 2630 silly lockFile 90b69d15-node-uuid-1-3-3 [email protected] | |
| 2631 verbose lock [email protected] /home/sharejs/.npm/90b69d15-node-uuid-1-3-3.lock | |
| 2632 verbose cache add [ '[email protected]', null ] | |
| 2633 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null] | |
| 2634 verbose parsed url { protocol: null, | |
| 2634 verbose parsed url slashes: null, | |
| 2634 verbose parsed url auth: null, | |
| 2634 verbose parsed url host: null, | |
| 2634 verbose parsed url port: null, | |
| 2634 verbose parsed url hostname: null, | |
| 2634 verbose parsed url hash: null, | |
| 2634 verbose parsed url search: null, | |
| 2634 verbose parsed url query: null, | |
| 2634 verbose parsed url pathname: '[email protected]', | |
| 2634 verbose parsed url path: '[email protected]', | |
| 2634 verbose parsed url href: '[email protected]' } | |
| 2635 verbose cache add name="faye-websocket" spec="0.7.0" args=["faye-websocket","0.7.0"] | |
| 2636 verbose parsed url { protocol: null, | |
| 2636 verbose parsed url slashes: null, | |
| 2636 verbose parsed url auth: null, | |
| 2636 verbose parsed url host: null, | |
| 2636 verbose parsed url port: null, | |
| 2636 verbose parsed url hostname: null, | |
| 2636 verbose parsed url hash: null, | |
| 2636 verbose parsed url search: null, | |
| 2636 verbose parsed url query: null, | |
| 2636 verbose parsed url pathname: '0.7.0', | |
| 2636 verbose parsed url path: '0.7.0', | |
| 2636 verbose parsed url href: '0.7.0' } | |
| 2637 verbose addNamed [ 'faye-websocket', '0.7.0' ] | |
| 2638 verbose addNamed [ '0.7.0', '0.7.0' ] | |
| 2639 silly lockFile 2458c887-faye-websocket-0-7-0 [email protected] | |
| 2640 verbose lock [email protected] /home/sharejs/.npm/2458c887-faye-websocket-0-7-0.lock | |
| 2641 silly gunzTarPerm extractEntry lib/public/icons/page_white_error.png | |
| 2642 silly gunzTarPerm extractEntry lib/public/icons/page_white_excel.png | |
| 2643 silly gunzTarPerm extractEntry scripts/benchmark/benchmark.coffee | |
| 2644 silly gunzTarPerm extractEntry scripts/cat.coffee | |
| 2645 silly lockFile 133c5903-statsd-client-0-0-15 [email protected] | |
| 2646 silly lockFile 133c5903-statsd-client-0-0-15 [email protected] | |
| 2647 silly lockFile 06036119-statsd-client statsd-client@* | |
| 2648 silly lockFile 06036119-statsd-client statsd-client@* | |
| 2649 info uninstall [email protected] | |
| 2650 verbose tar unpack /home/sharejs/.npm/buffer-crc32/0.2.1/package.tgz | |
| 2651 silly lockFile ef180da7-xpress-node-modules-buffer-crc32 tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/buffer-crc32 | |
| 2652 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/buffer-crc32 /home/sharejs/.npm/ef180da7-xpress-node-modules-buffer-crc32.lock | |
| 2653 silly lockFile 66936f0c-m-buffer-crc32-0-2-1-package-tgz tar:///home/sharejs/.npm/buffer-crc32/0.2.1/package.tgz | |
| 2654 verbose lock tar:///home/sharejs/.npm/buffer-crc32/0.2.1/package.tgz /home/sharejs/.npm/66936f0c-m-buffer-crc32-0-2-1-package-tgz.lock | |
| 2655 verbose tar unpack /home/sharejs/.npm/fresh/0.2.0/package.tgz | |
| 2656 silly lockFile e8702b19-dules-express-node-modules-fresh tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/fresh | |
| 2657 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/fresh /home/sharejs/.npm/e8702b19-dules-express-node-modules-fresh.lock | |
| 2658 silly lockFile 1051f9be-rejs-npm-fresh-0-2-0-package-tgz tar:///home/sharejs/.npm/fresh/0.2.0/package.tgz | |
| 2659 verbose lock tar:///home/sharejs/.npm/fresh/0.2.0/package.tgz /home/sharejs/.npm/1051f9be-rejs-npm-fresh-0-2-0-package-tgz.lock | |
| 2660 verbose tar unpack /home/sharejs/.npm/methods/0.1.0/package.tgz | |
| 2661 silly lockFile 86088f58-les-express-node-modules-methods tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/methods | |
| 2662 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/methods /home/sharejs/.npm/86088f58-les-express-node-modules-methods.lock | |
| 2663 silly lockFile 1984cf08-js-npm-methods-0-1-0-package-tgz tar:///home/sharejs/.npm/methods/0.1.0/package.tgz | |
| 2664 verbose lock tar:///home/sharejs/.npm/methods/0.1.0/package.tgz /home/sharejs/.npm/1984cf08-js-npm-methods-0-1-0-package-tgz.lock | |
| 2665 verbose tar unpack /home/sharejs/.npm/cookie-signature/1.0.1/package.tgz | |
| 2666 silly lockFile 094a9244-ss-node-modules-cookie-signature tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/cookie-signature | |
| 2667 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/cookie-signature /home/sharejs/.npm/094a9244-ss-node-modules-cookie-signature.lock | |
| 2668 silly lockFile 34c6617e-okie-signature-1-0-1-package-tgz tar:///home/sharejs/.npm/cookie-signature/1.0.1/package.tgz | |
| 2669 verbose lock tar:///home/sharejs/.npm/cookie-signature/1.0.1/package.tgz /home/sharejs/.npm/34c6617e-okie-signature-1-0-1-package-tgz.lock | |
| 2670 verbose tar unpack /home/sharejs/.npm/send/0.1.4/package.tgz | |
| 2671 silly lockFile 9823097e-odules-express-node-modules-send tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/send | |
| 2672 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/send /home/sharejs/.npm/9823097e-odules-express-node-modules-send.lock | |
| 2673 silly lockFile 739cf0ae-arejs-npm-send-0-1-4-package-tgz tar:///home/sharejs/.npm/send/0.1.4/package.tgz | |
| 2674 verbose lock tar:///home/sharejs/.npm/send/0.1.4/package.tgz /home/sharejs/.npm/739cf0ae-arejs-npm-send-0-1-4-package-tgz.lock | |
| 2675 verbose tar unpack /home/sharejs/.npm/merge-descriptors/0.0.1/package.tgz | |
| 2676 silly lockFile fa8d1b6c-s-node-modules-merge-descriptors tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/merge-descriptors | |
| 2677 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/merge-descriptors /home/sharejs/.npm/fa8d1b6c-s-node-modules-merge-descriptors.lock | |
| 2678 silly lockFile 14be80e8-ge-descriptors-0-0-1-package-tgz tar:///home/sharejs/.npm/merge-descriptors/0.0.1/package.tgz | |
| 2679 verbose lock tar:///home/sharejs/.npm/merge-descriptors/0.0.1/package.tgz /home/sharejs/.npm/14be80e8-ge-descriptors-0-0-1-package-tgz.lock | |
| 2680 verbose tar unpack /home/sharejs/.npm/debug/0.7.4/package.tgz | |
| 2681 silly lockFile c29b257b-dules-express-node-modules-debug tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/debug | |
| 2682 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/debug /home/sharejs/.npm/c29b257b-dules-express-node-modules-debug.lock | |
| 2683 silly lockFile 0f04e19f-rejs-npm-debug-0-7-4-package-tgz tar:///home/sharejs/.npm/debug/0.7.4/package.tgz | |
| 2684 verbose lock tar:///home/sharejs/.npm/debug/0.7.4/package.tgz /home/sharejs/.npm/0f04e19f-rejs-npm-debug-0-7-4-package-tgz.lock | |
| 2685 verbose tar unpack /home/sharejs/.npm/connect/2.12.0/package.tgz | |
| 2686 silly lockFile 94691e18-les-express-node-modules-connect tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/connect | |
| 2687 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/connect /home/sharejs/.npm/94691e18-les-express-node-modules-connect.lock | |
| 2688 silly lockFile 11ad5cf7-s-npm-connect-2-12-0-package-tgz tar:///home/sharejs/.npm/connect/2.12.0/package.tgz | |
| 2689 verbose lock tar:///home/sharejs/.npm/connect/2.12.0/package.tgz /home/sharejs/.npm/11ad5cf7-s-npm-connect-2-12-0-package-tgz.lock | |
| 2690 verbose tar unpack /home/sharejs/.npm/commander/1.3.2/package.tgz | |
| 2691 silly lockFile 7403fdca-s-express-node-modules-commander tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/commander | |
| 2692 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/commander /home/sharejs/.npm/7403fdca-s-express-node-modules-commander.lock | |
| 2693 silly lockFile 134102ec--npm-commander-1-3-2-package-tgz tar:///home/sharejs/.npm/commander/1.3.2/package.tgz | |
| 2694 verbose lock tar:///home/sharejs/.npm/commander/1.3.2/package.tgz /home/sharejs/.npm/134102ec--npm-commander-1-3-2-package-tgz.lock | |
| 2695 verbose tar unpack /home/sharejs/.npm/range-parser/0.0.4/package.tgz | |
| 2696 silly lockFile 70ece0b6-xpress-node-modules-range-parser tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/range-parser | |
| 2697 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/range-parser /home/sharejs/.npm/70ece0b6-xpress-node-modules-range-parser.lock | |
| 2698 silly lockFile f3590a36-m-range-parser-0-0-4-package-tgz tar:///home/sharejs/.npm/range-parser/0.0.4/package.tgz | |
| 2699 verbose lock tar:///home/sharejs/.npm/range-parser/0.0.4/package.tgz /home/sharejs/.npm/f3590a36-m-range-parser-0-0-4-package-tgz.lock | |
| 2700 verbose tar unpack /home/sharejs/.npm/mkdirp/0.3.5/package.tgz | |
| 2701 silly lockFile 42a9d913-ules-express-node-modules-mkdirp tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/mkdirp | |
| 2702 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/mkdirp /home/sharejs/.npm/42a9d913-ules-express-node-modules-mkdirp.lock | |
| 2703 silly lockFile 276f5a77-ejs-npm-mkdirp-0-3-5-package-tgz tar:///home/sharejs/.npm/mkdirp/0.3.5/package.tgz | |
| 2704 verbose lock tar:///home/sharejs/.npm/mkdirp/0.3.5/package.tgz /home/sharejs/.npm/276f5a77-ejs-npm-mkdirp-0-3-5-package-tgz.lock | |
| 2705 verbose tar unpack /home/sharejs/.npm/cookie/0.1.0/package.tgz | |
| 2706 silly lockFile 662a96a6-ules-express-node-modules-cookie tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/cookie | |
| 2707 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/express/node_modules/cookie /home/sharejs/.npm/662a96a6-ules-express-node-modules-cookie.lock | |
| 2708 silly lockFile dabbc90a-ejs-npm-cookie-0-1-0-package-tgz tar:///home/sharejs/.npm/cookie/0.1.0/package.tgz | |
| 2709 verbose lock tar:///home/sharejs/.npm/cookie/0.1.0/package.tgz /home/sharejs/.npm/dabbc90a-ejs-npm-cookie-0-1-0-package-tgz.lock | |
| 2710 silly lockFile beed5615-hiredis-0-1-16 [email protected] | |
| 2711 silly lockFile beed5615-hiredis-0-1-16 [email protected] | |
| 2712 silly gunzTarPerm extractEntry lib/instrumentation/core/http.js | |
| 2713 silly gunzTarPerm extractEntry lib/metrics/mapper.js | |
| 2714 silly lockFile 9b272b60-hiredis-0-1 hiredis@~0.1 | |
| 2715 silly lockFile 9b272b60-hiredis-0-1 hiredis@~0.1 | |
| 2716 verbose true,/var/www/sharejs/releases/20131218171509/node_modules,/var/www/sharejs/releases/20131218171509/node_modules unbuild [email protected] | |
| 2717 info postuninstall [email protected] | |
| 2718 silly gunzTarPerm extractEntry test4 | |
| 2719 silly lockFile afcebadc-deep-is-0-1-2 [email protected] | |
| 2720 silly lockFile afcebadc-deep-is-0-1-2 [email protected] | |
| 2721 silly gunzTarPerm modes [ '755', '644' ] | |
| 2722 silly gunzTarPerm modes [ '755', '644' ] | |
| 2723 silly gunzTarPerm modes [ '755', '644' ] | |
| 2724 silly gunzTarPerm modes [ '755', '644' ] | |
| 2725 silly gunzTarPerm modes [ '755', '644' ] | |
| 2726 silly gunzTarPerm modes [ '755', '644' ] | |
| 2727 silly gunzTarPerm modes [ '755', '644' ] | |
| 2728 silly gunzTarPerm modes [ '755', '644' ] | |
| 2729 silly gunzTarPerm modes [ '755', '644' ] | |
| 2730 silly gunzTarPerm modes [ '755', '644' ] | |
| 2731 silly gunzTarPerm modes [ '755', '644' ] | |
| 2732 silly gunzTarPerm modes [ '755', '644' ] | |
| 2733 silly lockFile ab2c1840-deep-is-0-1 deep-is@~0.1 | |
| 2734 silly lockFile ab2c1840-deep-is-0-1 deep-is@~0.1 | |
| 2735 silly lockFile 63d0c94f-redis-0-8-6 [email protected] | |
| 2736 silly lockFile 63d0c94f-redis-0-8-6 [email protected] | |
| 2737 silly lockFile 1ecf75ce-arraydiff-0-1-1 [email protected] | |
| 2738 silly lockFile 1ecf75ce-arraydiff-0-1-1 [email protected] | |
| 2739 silly lockFile f9efe19a-redis-0-8 redis@~0.8 | |
| 2740 silly lockFile f9efe19a-redis-0-8 redis@~0.8 | |
| 2741 silly lockFile 90eb1812-arraydiff-0-1 arraydiff@~0.1 | |
| 2742 silly lockFile 90eb1812-arraydiff-0-1 arraydiff@~0.1 | |
| 2743 verbose url raw node-uuid/1.3.3 | |
| 2744 verbose url resolving [ 'https://registry.npmjs.org/', './node-uuid/1.3.3' ] | |
| 2745 verbose url resolved https://registry.npmjs.org/node-uuid/1.3.3 | |
| 2746 info trying registry request attempt 1 at 17:18:19 | |
| 2747 verbose etag "6H3X377NGAR8JYSW33DRPD49P" | |
| 2748 http GET https://registry.npmjs.org/node-uuid/1.3.3 | |
| 2749 verbose url raw faye-websocket/0.7.0 | |
| 2750 verbose url resolving [ 'https://registry.npmjs.org/', './faye-websocket/0.7.0' ] | |
| 2751 verbose url resolved https://registry.npmjs.org/faye-websocket/0.7.0 | |
| 2752 info trying registry request attempt 1 at 17:18:19 | |
| 2753 verbose etag "99A7OGFCF5E0CD19FNTWGC8U2" | |
| 2754 http GET https://registry.npmjs.org/faye-websocket/0.7.0 | |
| 2755 silly resolved [ { author: { name: 'Morten Siebuhr', email: '[email protected]' }, | |
| 2755 silly resolved name: 'statsd-client', | |
| 2755 silly resolved description: 'Yet another client for Etsy\'s statsd', | |
| 2755 silly resolved keywords: [ 'statsd', 'client', 'metrics', 'udp' ], | |
| 2755 silly resolved version: '0.0.15', | |
| 2755 silly resolved homepage: 'https://github.com/msiebuhr/node-statsd-client', | |
| 2755 silly resolved bugs: { url: 'https://github.com/msiebuhr/node-statsd-client/issues' }, | |
| 2755 silly resolved repository: | |
| 2755 silly resolved { type: 'git', | |
| 2755 silly resolved url: 'git://github.com/msiebuhr/node-statsd-client.git' }, | |
| 2755 silly resolved main: 'lib/statsd-client.js', | |
| 2755 silly resolved dependencies: {}, | |
| 2755 silly resolved devDependencies: { chai: '~1.3.0', jshint: '~0.9.1', mocha: '~1.6.0' }, | |
| 2755 silly resolved scripts: | |
| 2755 silly resolved { prepublish: 'mocha; jshint lib/ test/', | |
| 2755 silly resolved test: 'mocha -R spec; jshint lib/ test/' }, | |
| 2755 silly resolved optionalDependencies: {}, | |
| 2755 silly resolved readme: 'node-statsd-client\n==================\n\nNode.js client for [statsd](https://github.com/etsy/statsd).\n\n[](http://travis-ci.org/msiebuhr/node-statsd-client)\n\nQuick tour\n----------\n\n```javascript\nvar sdc = new require(\'statsd-client\')({host: \'statsd.example.com\'});\n\nvar timer = new Date();\nsdc.increment(\'some.counter\'); // Increment by one.\nsdc.gauge(\'some.gauge\', 10); // Set gauge to 10\nsdc.timing(\'some.timer\', timer); // Calculates time diff\n\nsdc.close(); // Optional - stop NOW\n```\n\nAPI\n---\n\n### Initialization\n\n```javascript\nvar SDC = require(\'statsd-client\'),\n\tsdc = new SDC({host: \'statsd.example.com\', port: 8124, debug: true});\n```\n\nAvailable options:\n\n * `host`: Where to send the stats (default `localhost`).\n * `debug`: Print what is being sent to stderr (default `false`).\n * `port`: Port to contact the statsd-daemon on (default `8125`).\n * `prefix`: Prefix all stats with this value (default `""`).\n * `socketTimeout`: Auto-closes the socket after this long without activity\n (default 1000 ms; 0 disables this).\n\n### Counting stuff\n\nCounters are supported, both as raw `.counter(metric, delta)` and with the\nshortcuts `.increment(metric, [delta=1])` and `.decrement(metric, [delta=-1])`:\n\n```javascript\nsdc.increment(\'systemname.subsystem.value\'); // Increment by one\nsdc.decrement(\'systemname.subsystem.value\', -10); // Decrement by 10\nsdc.counter(\'systemname.subsystem.value\', 100); // Indrement by 100\n```\n\n### Gauges\n\nSends an arbitrary number to the back-end:\n\n```javascript\nsdc.gauge(\'what.you.gauge\', 100);\n```\n\n### Sets\n\nSend unique occurences of events between flushes to the back-end:\n\n```javascript\nsdc.set(\'your.set\', 200);\n```\n\n### Delays\n\nKeep track of how fast (or slow) your stuff is:\n\n```javascript\nvar start = new Date();\nsetTimeout(function () {\n\tsdc.timing(\'random.timeout\', start);\n}, 100 * Math.random());\n```\n\nIf it is given a `Date`, it will calculate the difference, and anything else\nwill be passed straight through.\n\nAnd don\'t let the name (or nifty interface) fool you - it can measure any kind\nof number, where you want to see the distribution (content lengths, list items,\nquery sizes, ...)\n\n### Express helper\n\nThere\'s also a helper for measuring stuff in [Express.js](http://expressjs.com)\nvia middleware:\n\n```javascript\nvar app = express();\n\tsdc = new StatsDClient({...});\n\napp.use(sdc.helpers.getExpressMiddleware(\'somePrefix\'));\n// or\napp.get(\'/\',\n\tsdc.helpers.getExpressMiddleware(\'otherPrefix\'),\n\tfunction (req, res, next) { req.pipe(res); });\n\napp.listen(3000);\n```\n\nThis will count responses by status-code (`prefix.<statuscode>`) and the\noverall response-times.\n\nIt can also measure per-URL (e.g. PUT to `/:user/:thing` will become\n`PUT_user_thing` by setting the `timeByUrl: true` in the `options`-object:\n\n```javascript\napp.use(sdc.helpers.getExpressMiddleware(\'prefix\', { timeByUrl: true }));\n```\n\nAs the names can become rather odd in corner-cases (esp. regexes and non-REST\ninterfaces), you can specify another value by setting `res.locals.statsdUrlKey`\nat a later point.\n\n### Stopping gracefully\n\nBy default, the socket is closed if it hasn\'t been used for a second (see\n`socketTimeout` in the init-options), but it can also be force-closed with\n`.close()`:\n\n```javascript\nvar start = new Date();\nsetTimeout(function () {\n\tsdc.timing(\'random.timeout\', start); // 2 - implicitly re-creates socket.\n\tsdc.close(); // 3 - Closes socket after last use.\n}, 100 * Math.random());\nsdc.close(); // 1 - Closes socket early.\n```\n\nThe call is idempotent, so you can call it "just to be sure". And if you submit\nnew metrics later, the socket will automatically be re-created, and a new\ntimeout-timer started.\n\n### Prefix-magic\n\nThe library supports getting "child" clients with extra prefixes, to help with\nmaking sane name-spacing in apps:\n\n```javascript\n// Create generic client\nvar sdc = new StatsDClient({host: \'statsd.example.com\', prefix: \'systemname\');\nsdc.increment(\'foo\'); // Increments \'systemname.foo\'\n... do great stuff ...\n\n// Subsystem A\nvar sdcA = sdc.getChildClient(\'a\');\nsdcA.increment(\'foo\'); // Increments \'systemname.a.foo\'\n\n// Subsystem B\nvar sdcB = sdc.getChildClient(\'b\');\nsdcB.increment(\'foo\'); // Increments \'systemname.b.foo\'\n```\n\nInternally, they all use the same socket, so calling `.close()` on any of them\nwill allow the entire program to stop gracefully.\n\nWhat\'s broken\n-------------\n\nCheck the [GitHub issues](https://github.com/msiebuhr/node-statsd-client/issues).\n\nLICENSE\n-------\n\nISC - see\n[LICENSE](https://github.com/msiebuhr/node-statsd-client/blob/master/LICENSE).\n', | |
| 2755 silly resolved readmeFilename: 'README.md', | |
| 2755 silly resolved _id: '[email protected]', | |
| 2755 silly resolved _from: 'statsd-client@*' }, | |
| 2755 silly resolved { name: 'hiredis', | |
| 2755 silly resolved description: 'Wrapper for reply processing code in hiredis', | |
| 2755 silly resolved version: '0.1.16', | |
| 2755 silly resolved homepage: 'http://github.com/pietern/hiredis-node', | |
| 2755 silly resolved author: { name: 'Pieter Noordhuis', email: '[email protected]' }, | |
| 2755 silly resolved main: 'hiredis', | |
| 2755 silly resolved scripts: { test: 'node test/reader.js', install: 'node-gyp rebuild' }, | |
| 2755 silly resolved dependencies: { bindings: '*' }, | |
| 2755 silly resolved engines: { node: '>= 0.6.0' }, | |
| 2755 silly resolved repository: { type: 'git', url: '[email protected]:pietern/hiredis-node.git' }, | |
| 2755 silly resolved bugs: { url: 'https://github.com/pietern/hiredis-node/issues' }, | |
| 2755 silly resolved licenses: [ [Object] ], | |
| 2755 silly resolved gypfile: true, | |
| 2755 silly resolved readme: '[](https://travis-ci.org/pietern/hiredis-node)\n\n# hiredis-node\n\nNode extension that wraps [hiredis][hiredis].\nBecause Node is already good at doing I/O, hiredis-node only provides\nbindings to the protocol parser.\nThe hiredis protocol parser is faster than JavaScript protocol parsers,\nbut the speedup only becomes noticable for large replies.\nIf you use Redis for simple SET/GET operations, there won\'t be a big\nbenefit to using hiredis.\nIf you use Redis for big SUNION/SINTER/LRANGE/ZRANGE operations, the\nbenefit to using hiredis-node can be significant.\n\n[hiredis]: http://github.com/redis/hiredis\n\n## Install\n\nInstall with [NPM][npm]:\n\n```\nnpm install hiredis\n```\n\n[npm]: https://npmjs.org/\n\n## Usage\n\nhiredis-node works out of the box with Matt Ranney\'s [node_redis][node_redis].\nThe latter has an optional dependency on hiredis-node, so maybe you\'re\nalready using it without knowing.\n\nAlternatively, you can use it directly:\n\n```javascript\nvar hiredis = require("hiredis"),\n reader = new hiredis.Reader();\n\n// Data comes in\nreader.feed("$5\\r\\nhello\\r\\n");\n\n// Reply comes out\nreader.get() // => "hello"\n```\n\nInstead of returning strings for bulk payloads, it can also return\nbuffers:\n\n```javascript\nvar hiredis = require("hiredis"),\n reader = new hiredis.Reader({ return_buffers: true });\n\n// Data comes in\nreader.feed("$5\\r\\nhello\\r\\n");\n\n// Reply comes out\nreader.get() // => <Buffer 68 65 6c 6c 6f>\n```\n\n[node_redis]: http://github.com/mranney/node_redis\n\n## Windows\n\nDmitry Gorbunov (@fuwaneko) made a [fork of hiredis-node][windows_fork] with Windows support.\n\n[windows_fork]: https://github.com/fuwaneko/hiredis-node\n\n## License\n\nThis code is released under the BSD license, after the license of hiredis.\n', | |
| 2755 silly resolved readmeFilename: 'README.md', | |
| 2755 silly resolved _id: '[email protected]', | |
| 2755 silly resolved _from: 'hiredis@~0.1' }, | |
| 2755 silly resolved { name: 'deep-is', | |
| 2755 silly resolved version: '0.1.2', | |
| 2755 silly resolved description: 'node\'s assert.deepEqual algorithm except for NaN being equal to NaN', | |
| 2755 silly resolved main: 'index.js', | |
| 2755 silly resolved directories: { lib: '.', example: 'example', test: 'test' }, | |
| 2755 silly resolved scripts: { test: 'tape test/*.js' }, | |
| 2755 silly resolved devDependencies: { tape: '~1.0.2' }, | |
| 2755 silly resolved repository: { type: 'git', url: 'http://github.com/thlorenz/deep-is.git' }, | |
| 2755 silly resolved keywords: [ 'equality', 'equal', 'compare' ], | |
| 2755 silly resolved author: | |
| 2755 silly resolved { name: 'Thorsten Lorenz', | |
| 2755 silly resolved email: '[email protected]', | |
| 2755 silly resolved url: 'http://thlorenz.com' }, | |
| 2755 silly resolved license: 'MIT', | |
| 2755 silly resolved testling: { files: 'test/*.js', browsers: [Object] }, | |
| 2755 silly resolved readme: 'deep-is\n==========\n\nNode\'s `assert.deepEqual() algorithm` as a standalone module. Exactly like\n[deep-equal](https://github.com/substack/node-deep-equal) except for the fact that `deepEqual(NaN, NaN) === true`.\n\nThis module is around [5 times faster](https://gist.github.com/2790507)\nthan wrapping `assert.deepEqual()` in a `try/catch`.\n\n[](http://ci.testling.com/thlorenz/deep-is)\n\n[](http://travis-ci.org/thlorenz/deep-is)\n\nexample\n=======\n\n``` js\nvar equal = require(\'deep-is\');\nconsole.dir([\n equal(\n { a : [ 2, 3 ], b : [ 4 ] },\n { a : [ 2, 3 ], b : [ 4 ] }\n ),\n equal(\n { x : 5, y : [6] },\n { x : 5, y : 6 }\n )\n]);\n```\n\nmethods\n=======\n\nvar deepIs = require(\'deep-is\')\n\ndeepIs(a, b)\n---------------\n\nCompare objects `a` and `b`, returning whether they are equal according to a\nrecursive equality algorithm.\n\ninstall\n=======\n\nWith [npm](http://npmjs.org) do:\n\n```\nnpm install deep-is\n```\n\ntest\n====\n\nWith [npm](http://npmjs.org) do:\n\n```\nnpm test\n```\n\nlicense\n=======\n\nMIT. Derived largely from node\'s assert module.\n', | |
| 2755 silly resolved readmeFilename: 'README.markdown', | |
| 2755 silly resolved bugs: { url: 'https://github.com/thlorenz/deep-is/issues' }, | |
| 2755 silly resolved homepage: 'https://github.com/thlorenz/deep-is', | |
| 2755 silly resolved _id: '[email protected]', | |
| 2755 silly resolved _from: 'deep-is@~0.1' }, | |
| 2755 silly resolved { name: 'redis', | |
| 2755 silly resolved version: '0.8.6', | |
| 2755 silly resolved description: 'Redis client library', | |
| 2755 silly resolved keywords: [ 'redis', 'database' ], | |
| 2755 silly resolved author: { name: 'Matt Ranney', email: '[email protected]' }, | |
| 2755 silly resolved main: './index.js', | |
| 2755 silly resolved scripts: { test: 'node ./test.js' }, | |
| 2755 silly resolved devDependencies: { metrics: '>=0.1.5', colors: '~0.6.0-1', underscore: '~1.4.4' }, | |
| 2755 silly resolved repository: { type: 'git', url: 'git://github.com/mranney/node_redis.git' }, | |
| 2755 silly resolved readme: 'redis - a node.js redis client\n===========================\n\nThis is a complete Redis client for node.js. It supports all Redis commands, including many recently added commands like EVAL from\nexperimental Redis server branches.\n\n\nInstall with:\n\n npm install redis\n\nPieter Noordhuis has provided a binding to the official `hiredis` C library, which is non-blocking and fast. To use `hiredis`, do:\n\n npm install hiredis redis\n\nIf `hiredis` is installed, `node_redis` will use it by default. Otherwise, a pure JavaScript parser will be used.\n\nIf you use `hiredis`, be sure to rebuild it whenever you upgrade your version of node. There are mysterious failures that can\nhappen between node and native code modules after a node upgrade.\n\n\n## Usage\n\nSimple example, included as `examples/simple.js`:\n\n```js\n var redis = require("redis"),\n client = redis.createClient();\n\n // if you\'d like to select database 3, instead of 0 (default), call\n // client.select(3, function() { /* ... */ });\n\n client.on("error", function (err) {\n console.log("Error " + err);\n });\n\n client.set("string key", "string val", redis.print);\n client.hset("hash key", "hashtest 1", "some value", redis.print);\n client.hset(["hash key", "hashtest 2", "some other value"], redis.print);\n client.hkeys("hash key", function (err, replies) {\n console.log(replies.length + " replies:");\n replies.forEach(function (reply, i) {\n console.log(" " + i + ": " + reply);\n });\n client.quit();\n });\n```\n\nThis will display:\n\n mjr:~/work/node_redis (master)$ node example.js\n Reply: OK\n Reply: 0\n Reply: 0\n 2 replies:\n 0: hashtest 1\n 1: hashtest 2\n mjr:~/work/node_redis (master)$\n\n\n## Performance\n\nHere are typical results of `multi_bench.js` which is similar to `redis-benchmark` from the Redis distribution.\nIt uses 50 concurrent connections with no pipelining.\n\nJavaScript parser:\n\n PING: 20000 ops 42283.30 ops/sec 0/5/1.182\n SET: 20000 ops 32948.93 ops/sec 1/7/1.515\n GET: 20000 ops 28694.40 ops/sec 0/9/1.740\n INCR: 20000 ops 39370.08 ops/sec 0/8/1.269\n LPUSH: 20000 ops 36429.87 ops/sec 0/8/1.370\n LRANGE (10 elements): 20000 ops 9891.20 ops/sec 1/9/5.048\n LRANGE (100 elements): 20000 ops 1384.56 ops/sec 10/91/36.072\n\nhiredis parser:\n\n PING: 20000 ops 46189.38 ops/sec 1/4/1.082\n SET: 20000 ops 41237.11 ops/sec 0/6/1.210\n GET: 20000 ops 39682.54 ops/sec 1/7/1.257\n INCR: 20000 ops 40080.16 ops/sec 0/8/1.242\n LPUSH: 20000 ops 41152.26 ops/sec 0/3/1.212\n LRANGE (10 elements): 20000 ops 36563.07 ops/sec 1/8/1.363\n LRANGE (100 elements): 20000 ops 21834.06 ops/sec 0/9/2.287\n\nThe performance of `node_redis` improves dramatically with pipelining, which happens automatically in most normal programs.\n\n\n### Sending Commands\n\nEach Redis command is exposed as a function on the `client` object.\nAll functions take either an `args` Array plus optional `callback` Function or\na variable number of individual arguments followed by an optional callback.\nHere is an example of passing an array of arguments and a callback:\n\n client.mset(["test keys 1", "test val 1", "test keys 2", "test val 2"], function (err, res) {});\n\nHere is that same call in the second style:\n\n client.mset("test keys 1", "test val 1", "test keys 2", "test val 2", function (err, res) {});\n\nNote that in either form the `callback` is optional:\n\n client.set("some key", "some val");\n client.set(["some other key", "some val"]);\n\nIf the key is missing, reply will be null (probably):\n\n client.get("missingkey", function(err, reply) {\n // reply is null when the key is missing\n console.log(reply);\n });\n\nFor a list of Redis commands, see [Redis Command Reference](http://redis.io/commands)\n\nThe commands can be specified in uppercase or lowercase for convenience. `client.get()` is the same as `client.GET()`.\n\nMinimal parsing is done on the replies. Commands that return a single line reply return JavaScript Strings,\ninteger replies return JavaScript Numbers, "bulk" replies return node Buffers, and "multi bulk" replies return a\nJavaScript Array of node Buffers. `HGETALL` returns an Object with Buffers keyed by the hash keys.\n\n# API\n\n## Connection Events\n\n`client` will emit some events about the state of the connection to the Redis server.\n\n### "ready"\n\n`client` will emit `ready` a connection is established to the Redis server and the server reports\nthat it is ready to receive commands. Commands issued before the `ready` event are queued,\nthen replayed just before this event is emitted.\n\n### "connect"\n\n`client` will emit `connect` at the same time as it emits `ready` unless `client.options.no_ready_check`\nis set. If this options is set, `connect` will be emitted when the stream is connected, and then\nyou are free to try to send commands.\n\n### "error"\n\n`client` will emit `error` when encountering an error connecting to the Redis server.\n\nNote that "error" is a special event type in node. If there are no listeners for an\n"error" event, node will exit. This is usually what you want, but it can lead to some\ncryptic error messages like this:\n\n mjr:~/work/node_redis (master)$ node example.js\n\n node.js:50\n throw e;\n ^\n Error: ECONNREFUSED, Connection refused\n at IOWatcher.callback (net:870:22)\n at node.js:607:9\n\nNot very useful in diagnosing the problem, but if your program isn\'t ready to handle this,\nit is probably the right thing to just exit.\n\n`client` will also emit `error` if an exception is thrown inside of `node_redis` for whatever reason.\nIt would be nice to distinguish these two cases.\n\n### "end"\n\n`client` will emit `end` when an established Redis server connection has closed.\n\n### "drain"\n\n`client` will emit `drain` when the TCP connection to the Redis server has been buffering, but is now\nwritable. This event can be used to stream commands in to Redis and adapt to backpressure. Right now,\nyou need to check `client.command_queue.length` to decide when to reduce your send rate. Then you can\nresume sending when you get `drain`.\n\n### "idle"\n\n`client` will emit `idle` when there are no outstanding commands that are awaiting a response.\n\n## redis.createClient(port, host, options)\n\nCreate a new client connection. `port` defaults to `6379` and `host` defaults\nto `127.0.0.1`. If you have `redis-server` running on the same computer as node, then the defaults for\nport and host are probably fine. `options` in an object with the following possible properties:\n\n* `parser`: which Redis protocol reply parser to use. Defaults to `hiredis` if that module is installed.\nThis may also be set to `javascript`.\n* `return_buffers`: defaults to `false`. If set to `true`, then all replies will be sent to callbacks as node Buffer\nobjects instead of JavaScript Strings.\n* `detect_buffers`: default to `false`. If set to `true`, then replies will be sent to callbacks as node Buffer objects\nif any of the input arguments to the original command were Buffer objects.\nThis option lets you switch between Buffers and Strings on a per-command basis, whereas `return_buffers` applies to\nevery command on a client.\n* `socket_nodelay`: defaults to `true`. Whether to call setNoDelay() on the TCP stream, which disables the\nNagle algorithm on the underlying socket. Setting this option to `false` can result in additional throughput at the\ncost of more latency. Most applications will want this set to `true`.\n* `no_ready_check`: defaults to `false`. When a connection is established to the Redis server, the server might still\nbe loading the database from disk. While loading, the server not respond to any commands. To work around this,\n`node_redis` has a "ready check" which sends the `INFO` command to the server. The response from the `INFO` command\nindicates whether the server is ready for more commands. When ready, `node_redis` emits a `ready` event.\nSetting `no_ready_check` to `true` will inhibit this check.\n* `enable_offline_queue`: defaults to `true`. By default, if there is no active\nconnection to the redis server, commands are added to a queue and are executed\nonce the connection has been established. Setting `enable_offline_queue` to\n`false` will disable this feature and the callback will be execute immediately\nwith an error, or an error will be thrown if no callback is specified.\n* `retry_max_delay`: defaults to `null`. By default every time the client tries to connect and fails time before\nreconnection (delay) almost doubles. This delay normally grows infinitely, but setting `retry_max_delay` limits delay\nto maximum value, provided in milliseconds.\n* `connect_timeout` defaults to `false`. By default client will try reconnecting until connected. Setting `connect_timeout`\nlimits total time for client to reconnect. Value is provided in milliseconds and is counted once the disconnect occured.\n* `max_attempts` defaults to `null`. By default client will try reconnecting until connected. Setting `max_attempts`\nlimits total amount of reconnects.\n* `auth_pass` defaults to `null`. By default client will try connecting without auth. If set, client will run redis auth command on connect.\n\n```js\n var redis = require("redis"),\n client = redis.createClient(null, null, {detect_buffers: true});\n\n client.set("foo_rand000000000000", "OK");\n\n // This will return a JavaScript String\n client.get("foo_rand000000000000", function (err, reply) {\n console.log(reply.toString()); // Will print `OK`\n });\n\n // This will return a Buffer since original key is specified as a Buffer\n client.get(new Buffer("foo_rand000000000000"), function (err, reply) {\n console.log(reply.toString()); // Will print `<Buffer 4f 4b>`\n });\n client.end();\n```\n\n`createClient()` returns a `RedisClient` object that is named `client` in all of the examples here.\n\n## client.auth(password, callback)\n\nWhen connecting to Redis servers that require authentication, the `AUTH` command must be sent as the\nfirst command after connecting. This can be tricky to coordinate with reconnections, the ready check,\netc. To make this easier, `client.auth()` stashes `password` and will send it after each connection,\nincluding reconnections. `callback` is invoked only once, after the response to the very first\n`AUTH` command sent.\nNOTE: Your call to `client.auth()` should not be inside the ready handler. If\nyou are doing this wrong, `client` will emit an error that looks\nsomething like this `Error: Ready check failed: ERR operation not permitted`.\n\n## client.end()\n\nForcibly close the connection to the Redis server. Note that this does not wait until all replies have been parsed.\nIf you want to exit cleanly, call `client.quit()` to send the `QUIT` command after you have handled all replies.\n\nThis example closes the connection to the Redis server before the replies have been read. You probably don\'t\nwant to do this:\n\n```js\n var redis = require("redis"),\n client = redis.createClient();\n\n client.set("foo_rand000000000000", "some fantastic value");\n client.get("foo_rand000000000000", function (err, reply) {\n console.log(reply.toString());\n });\n client.end();\n```\n\n`client.end()` is useful for timeout cases where something is stuck or taking too long and you want\nto start over.\n\n## client.unref()\n\nCall `unref()` on the underlying socket connection to the Redis server, allowing the program to exit once no more commands are pending.\n\nThis is an **experimental** feature, and only supports a subset of the Redis protocol. Any commands where client state is saved on the Redis server, e.g. `*SUBSCRIBE` or the blocking `BL*` commands will *NOT* work with `.unref()`.\n\n```js\nvar redis = require("redis")\nvar client = redis.createClient()\n\n/*\n Calling unref() will allow this program to exit immediately after the get command finishes. Otherwise the client would hang as long as the client-server connection is alive.\n*/\nclient.unref()\nclient.get("foo", function (err, value){\n if (err) throw(err)\n console.log(value)\n})\n```\n\n## Friendlier hash commands\n\nMost Redis commands take a single String or an Array of Strings as arguments, and replies are sent back as a single String or an Array of Strings.\nWhen dealing with hash values, there are a couple of useful exceptions to this.\n\n### client.hgetall(hash)\n\nThe reply from an HGETALL command will be converted into a JavaScript Object by `node_redis`. That way you can interact\nwith the responses using JavaScript syntax.\n\nExample:\n\n client.hmset("hosts", "mjr", "1", "another", "23", "home", "1234");\n client.hgetall("hosts", function (err, obj) {\n console.dir(obj);\n });\n\nOutput:\n\n { mjr: \'1\', another: \'23\', home: \'1234\' }\n\n### client.hmset(hash, obj, [callback])\n\nMultiple values in a hash can be set by supplying an object:\n\n client.HMSET(key2, {\n "0123456789": "abcdefghij", // NOTE: key and value will be coerced to strings\n "some manner of key": "a type of value"\n });\n\nThe properties and values of this Object will be set as keys and values in the Redis hash.\n\n### client.hmset(hash, key1, val1, ... keyn, valn, [callback])\n\nMultiple values may also be set by supplying a list:\n\n client.HMSET(key1, "0123456789", "abcdefghij", "some manner of key", "a type of value");\n\n\n## Publish / Subscribe\n\nHere is a simple example of the API for publish / subscribe. This program opens two\nclient connections, subscribes to a channel on one of them, and publishes to that\nchannel on the other:\n\n```js\n var redis = require("redis"),\n client1 = redis.createClient(), client2 = redis.createClient(),\n msg_count = 0;\n\n client1.on("subscribe", function (channel, count) {\n client2.publish("a nice channel", "I am sending a message.");\n client2.publish("a nice channel", "I am sending a second message.");\n client2.publish("a nice channel", "I am sending my last message.");\n });\n\n client1.on("message", function (channel, message) {\n console.log("client1 channel " + channel + ": " + message);\n msg_count += 1;\n if (msg_count === 3) {\n client1.unsubscribe();\n client1.end();\n client2.end();\n }\n });\n\n client1.incr("did a thing");\n client1.subscribe("a nice channel");\n```\n\nWhen a client issues a `SUBSCRIBE` or `PSUBSCRIBE`, that connection is put into a "subscriber" mode.\nAt that point, only commands that modify the subscription set are valid. When the subscription\nset is empty, the connection is put back into regular mode.\n\nIf you need to send regular commands to Redis while in subscriber mode, just open another connection.\n\n## Subscriber Events\n\nIf a client has subscriptions active, it may emit these events:\n\n### "message" (channel, message)\n\nClient will emit `message` for every message received that matches an active subscription.\nListeners are passed the channel name as `channel` and the message Buffer as `message`.\n\n### "pmessage" (pattern, channel, message)\n\nClient will emit `pmessage` for every message received that matches an active subscription pattern.\nListeners are passed the original pattern used with `PSUBSCRIBE` as `pattern`, the sending channel\nname as `channel`, and the message Buffer as `message`.\n\n### "subscribe" (channel, count)\n\nClient will emit `subscribe` in response to a `SUBSCRIBE` command. Listeners are passed the\nchannel name as `channel` and the new count of subscriptions for this client as `count`.\n\n### "psubscribe" (pattern, count)\n\nClient will emit `psubscribe` in response to a `PSUBSCRIBE` command. Listeners are passed the\noriginal pattern as `pattern`, and the new count of subscriptions for this client as `count`.\n\n### "unsubscribe" (channel, count)\n\nClient will emit `unsubscribe` in response to a `UNSUBSCRIBE` command. Listeners are passed the\nchannel name as `channel` and the new count of subscriptions for this client as `count`. When\n`count` is 0, this client has left subscriber mode and no more subscriber events will be emitted.\n\n### "punsubscribe" (pattern, count)\n\nClient will emit `punsubscribe` in response to a `PUNSUBSCRIBE` command. Listeners are passed the\nchannel name as `channel` and the new count of subscriptions for this client as `count`. When\n`count` is 0, this client has left subscriber mode and no more subscriber events will be emitted.\n\n## client.multi([commands])\n\n`MULTI` commands are queued up until an `EXEC` is issued, and then all commands are run atomically by\nRedis. The interface in `node_redis` is to return an individual `Multi` object by calling `client.multi()`.\n\n```js\n var redis = require("./index"),\n client = redis.createClient(), set_size = 20;\n\n client.sadd("bigset", "a member");\n client.sadd("bigset", "another member");\n\n while (set_size > 0) {\n client.sadd("bigset", "member " + set_size);\n set_size -= 1;\n }\n\n // multi chain with an individual callback\n client.multi()\n .scard("bigset")\n .smembers("bigset")\n .keys("*", function (err, replies) {\n // NOTE: code in this callback is NOT atomic\n // this only happens after the the .exec call finishes.\n client.mget(replies, redis.print);\n })\n .dbsize()\n .exec(function (err, replies) {\n console.log("MULTI got " + replies.length + " replies");\n replies.forEach(function (reply, index) {\n console.log("Reply " + index + ": " + reply.toString());\n });\n });\n```\n\n### Multi.exec( callback )\n\n`client.multi()` is a constructor that returns a `Multi` object. `Multi` objects share all of the\nsame command methods as `client` objects do. Commands are queued up inside the `Multi` object\nuntil `Multi.exec()` is invoked.\n\nThe `callback` of `.exec()` will get invoked with two arguments:\n\n* `err` **type:** `null | Array` err is either null or an array of Error Objects corresponding the the sequence the commands where chained. The last item of the array will always be an `EXECABORT` type of error originating from the `.exec()` itself.\n* `results` **type:** `null | Array` results is an array of responses corresponding the the sequence the commands where chained.\n\nYou can either chain together `MULTI` commands as in the above example, or you can queue individual\ncommands while still sending regular client command as in this example:\n\n```js\n var redis = require("redis"),\n client = redis.createClient(), multi;\n\n // start a separate multi command queue\n multi = client.multi();\n multi.incr("incr thing", redis.print);\n multi.incr("incr other thing", redis.print);\n\n // runs immediately\n client.mset("incr thing", 100, "incr other thing", 1, redis.print);\n\n // drains multi queue and runs atomically\n multi.exec(function (err, replies) {\n console.log(replies); // 101, 2\n });\n\n // you can re-run the same transaction if you like\n multi.exec(function (err, replies) {\n console.log(replies); // 102, 3\n client.quit();\n });\n```\n\nIn addition to adding commands to the `MULTI` queue individually, you can also pass an array\nof commands and arguments to the constructor:\n\n```js\n var redis = require("redis"),\n client = redis.createClient(), multi;\n\n client.multi([\n ["mget", "multifoo", "multibar", redis.print],\n ["incr", "multifoo"],\n ["incr", "multibar"]\n ]).exec(function (err, replies) {\n console.log(replies);\n });\n```\n\n\n## Monitor mode\n\nRedis supports the `MONITOR` command, which lets you see all commands received by the Redis server\nacross all client connections, including from other client libraries and other computers.\n\nAfter you send the `MONITOR` command, no other commands are valid on that connection. `node_redis`\nwill emit a `monitor` event for every new monitor message that comes across. The callback for the\n`monitor` event takes a timestamp from the Redis server and an array of command arguments.\n\nHere is a simple example:\n\n```js\n var client = require("redis").createClient(),\n util = require("util");\n\n client.monitor(function (err, res) {\n console.log("Entering monitoring mode.");\n });\n\n client.on("monitor", function (time, args) {\n console.log(time + ": " + util.inspect(args));\n });\n```\n\n# Extras\n\nSome other things you might like to know about.\n\n## client.server_info\n\nAfter the ready probe completes, the results from the INFO command are saved in the `client.server_info`\nobject.\n\nThe `versions` key contains an array of the elements of the version string for easy comparison.\n\n > client.server_info.redis_version\n \'2.3.0\'\n > client.server_info.versions\n [ 2, 3, 0 ]\n\n## redis.print()\n\nA handy callback function for displaying return values when testing. Example:\n\n```js\n var redis = require("redis"),\n client = redis.createClient();\n\n client.on("connect", function () {\n client.set("foo_rand000000000000", "some fantastic value", redis.print);\n client.get("foo_rand000000000000", redis.print);\n });\n```\n\nThis will print:\n\n Reply: OK\n Reply: some fantastic value\n\nNote that this program will not exit cleanly because the client is still connected.\n\n## redis.debug_mode\n\nBoolean to enable debug mode and protocol tracing.\n\n```js\n var redis = require("redis"),\n client = redis.createClient();\n\n redis.debug_mode = true;\n\n client.on("connect", function () {\n client.set("foo_rand000000000000", "some fantastic value");\n });\n```\n\nThis will display:\n\n mjr:~/work/node_redis (master)$ node ~/example.js\n send command: *3\n $3\n SET\n $20\n foo_rand000000000000\n $20\n some fantastic value\n\n on_data: +OK\n\n`send command` is data sent into Redis and `on_data` is data received from Redis.\n\n## Multi-word commands\n\nTo execute redis multi-word commands like `SCRIPT LOAD` or `CLIENT LIST` pass\nthe second word as first parameter:\n\n client.script(\'load\', \'return 1\');\n client.multi().script(\'load\', \'return 1\').exec(...);\n client.multi([[\'script\', \'load\', \'return 1\']]).exec(...);\n\n## client.send_command(command_name, args, callback)\n\nUsed internally to send commands to Redis. For convenience, nearly all commands that are published on the Redis\nWiki have been added to the `client` object. However, if I missed any, or if new commands are introduced before\nthis library is updated, you can use `send_command()` to send arbitrary commands to Redis.\n\nAll commands are sent as multi-bulk commands. `args` can either be an Array of arguments, or omitted.\n\n## client.connected\n\nBoolean tracking the state of the connection to the Redis server.\n\n## client.command_queue.length\n\nThe number of commands that have been sent to the Redis server but not yet replied to. You can use this to\nenforce some kind of maximum queue depth for commands while connected.\n\nDon\'t mess with `client.command_queue` though unless you really know what you are doing.\n\n## client.offline_queue.length\n\nThe number of commands that have been queued up for a future connection. You can use this to enforce\nsome kind of maximum queue depth for pre-connection commands.\n\n## client.retry_delay\n\nCurrent delay in milliseconds before a connection retry will be attempted. This starts at `250`.\n\n## client.retry_backoff\n\nMultiplier for future retry timeouts. This should be larger than 1 to add more time between retries.\nDefaults to 1.7. The default initial connection retry is 250, so the second retry will be 425, followed by 723.5, etc.\n\n### Commands with Optional and Keyword arguments\n\nThis applies to anything that uses an optional `[WITHSCORES]` or `[LIMIT offset count]` in the [redis.io/commands](http://redis.io/commands) documentation.\n\nExample:\n```js\nvar args = [ \'myzset\', 1, \'one\', 2, \'two\', 3, \'three\', 99, \'ninety-nine\' ];\nclient.zadd(args, function (err, response) {\n if (err) throw err;\n console.log(\'added \'+response+\' items.\');\n\n // -Infinity and +Infinity also work\n var args1 = [ \'myzset\', \'+inf\', \'-inf\' ];\n client.zrevrangebyscore(args1, function (err, response) {\n if (err) throw err;\n console.log(\'example1\', response);\n // write your code here\n });\n\n var max = 3, min = 1, offset = 1, count = 2;\n var args2 = [ \'myzset\', max, min, \'WITHSCORES\', \'LIMIT\', offset, count ];\n client.zrevrangebyscore(args2, function (err, response) {\n if (err) throw err;\n console.log(\'example2\', response);\n // write your code here\n });\n});\n```\n\n## TODO\n\nBetter tests for auth, disconnect/reconnect, and all combinations thereof.\n\nStream large set/get values into and out of Redis. Otherwise the entire value must be in node\'s memory.\n\nPerformance can be better for very large values.\n\nI think there are more performance improvements left in there for smaller values, especially for large lists of small values.\n\n## How to Contribute\n- open a pull request and then wait for feedback (if\n [DTrejo](http://github.com/dtrejo) does not get back to you within 2 days,\n comment again with indignation!)\n\n## Contributors\nSome people have have added features and fixed bugs in `node_redis` other than me.\n\nOrdered by date of first contribution.\n[Auto-generated](http://github.com/dtrejo/node-authors) on Wed Jul 25 2012 19:14:59 GMT-0700 (PDT).\n\n- [Matt Ranney aka `mranney`](https://github.com/mranney)\n- [Tim-Smart aka `tim-smart`](https://github.com/tim-smart)\n- [Tj Holowaychuk aka `visionmedia`](https://github.com/visionmedia)\n- [rick aka `technoweenie`](https://github.com/technoweenie)\n- [Orion Henry aka `orionz`](https://github.com/orionz)\n- [Aivo Paas aka `aivopaas`](https://github.com/aivopaas)\n- [Hank Sims aka `hanksims`](https://github.com/hanksims)\n- [Paul Carey aka `paulcarey`](https://github.com/paulcarey)\n- [Pieter Noordhuis aka `pietern`](https://github.com/pietern)\n- [nithesh aka `nithesh`](https://github.com/nithesh)\n- [Andy Ray aka `andy2ray`](https://github.com/andy2ray)\n- [unknown aka `unknowdna`](https://github.com/unknowdna)\n- [Dave Hoover aka `redsquirrel`](https://github.com/redsquirrel)\n- [Vladimir Dronnikov aka `dvv`](https://github.com/dvv)\n- [Umair Siddique aka `umairsiddique`](https://github.com/umairsiddique)\n- [Louis-Philippe Perron aka `lp`](https://github.com/lp)\n- [Mark Dawson aka `markdaws`](https://github.com/markdaws)\n- [Ian Babrou aka `bobrik`](https://github.com/bobrik)\n- [Felix Geisendörfer aka `felixge`](https://github.com/felixge)\n- [Jean-Hugues Pinson aka `undefined`](https://github.com/undefined)\n- [Maksim Lin aka `maks`](https://github.com/maks)\n- [Owen Smith aka `orls`](https://github.com/orls)\n- [Zachary Scott aka `zzak`](https://github.com/zzak)\n- [TEHEK Firefox aka `TEHEK`](https://github.com/TEHEK)\n- [Isaac Z. Schlueter aka `isaacs`](https://github.com/isaacs)\n- [David Trejo aka `DTrejo`](https://github.com/DTrejo)\n- [Brian Noguchi aka `bnoguchi`](https://github.com/bnoguchi)\n- [Philip Tellis aka `bluesmoon`](https://github.com/bluesmoon)\n- [Marcus Westin aka `marcuswestin2`](https://github.com/marcuswestin2)\n- [Jed Schmidt aka `jed`](https://github.com/jed)\n- [Dave Peticolas aka `jdavisp3`](https://github.com/jdavisp3)\n- [Trae Robrock aka `trobrock`](https://github.com/trobrock)\n- [Shankar Karuppiah aka `shankar0306`](https://github.com/shankar0306)\n- [Ignacio Burgueño aka `ignacio`](https://github.com/ignacio)\n\nThanks.\n\n## LICENSE - "MIT License"\n\nCopyright (c) 2010 Matthew Ranney, http://ranney.com/\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the "Software"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n\n\n', | |
| 2755 silly resolved readmeFilename: 'README.md', | |
| 2755 silly resolved bugs: { url: 'https://github.com/mranney/node_redis/issues' }, | |
| 2755 silly resolved homepage: 'https://github.com/mranney/node_redis', | |
| 2755 silly resolved _id: '[email protected]', | |
| 2755 silly resolved _from: 'redis@~0.8' }, | |
| 2755 silly resolved { name: 'arraydiff', | |
| 2755 silly resolved description: 'Diff two arrays, finding inserts, removes, and moves', | |
| 2755 silly resolved homepage: 'https://github.com/codeparty/arraydiff', | |
| 2755 silly resolved repository: { type: 'git', url: 'https://github.com/codeparty/arraydiff' }, | |
| 2755 silly resolved version: '0.1.1', | |
| 2755 silly resolved main: './index.js', | |
| 2755 silly resolved scripts: { test: 'grunt test' }, | |
| 2755 silly resolved dependencies: {}, | |
| 2755 silly resolved devDependencies: | |
| 2755 silly resolved { grunt: '~0.4.1', | |
| 2755 silly resolved mocha: '~1.9.0', | |
| 2755 silly resolved 'expect.js': '~0.2.0', | |
| 2755 silly resolved 'coffee-script': '~1.6.2', | |
| 2755 silly resolved 'grunt-simple-mocha': '~0.4.0', | |
| 2755 silly resolved 'grunt-contrib-jshint': '~0.4.3' }, | |
| 2755 silly resolved optionalDependencies: {}, | |
| 2755 silly resolved readme: '# arraydiff\n\nDiff two arrays, finding inserts, removes, and moves.\n\n[](http://travis-ci.org/codeparty/arraydiff)\n\n## Installation\n\n```\nnpm install arraydiff\n```\n\n## Usage\n\n```\nvar arrayDiff = require(\'arraydiff\');\n\nvar before = [0, 1, 2, 3];\nvar after = [\'1\', \'2\', 4, 5, 0];\n\n// Compares with `===` by default\nvar diff = arrayDiff(before, after);\nconsole.log(\'\\nStandard diff:\');\nfor (var i = 0; i < diff.length; i++) {\n var item = diff[i];\n console.log(item.type, item);\n}\n\n// A custom equality method is optional\nvar diff = arrayDiff(before, after, function(a, b) {\n return a == b;\n});\nconsole.log(\'\\nFuzzy equality diff:\');\nfor (var i = 0; i < diff.length; i++) {\n var item = diff[i];\n console.log(item.type, item);\n}\n```\n\nOutput:\n\n```\nStandard diff:\nremove { index: 1, howMany: 3 }\ninsert { index: 0, values: [ \'1\', \'2\', 4, 5 ] }\n\nFuzzy equality diff:\nremove { index: 3, howMany: 1 }\nmove { from: 1, to: 0, howMany: 2 }\ninsert { index: 2, values: [ 4, 5 ] }\n```\n\n\n## MIT License\nCopyright (c) 2013 by Nate Smith\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the "Software"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.', | |
| 2755 silly resolved readmeFilename: 'README.md', | |
| 2755 silly resolved bugs: { url: 'https://github.com/codeparty/arraydiff/issues' }, | |
| 2755 silly resolved _id: '[email protected]', | |
| 2755 silly resolved _from: 'arraydiff@~0.1' } ] | |
| 2756 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/livedb | |
| 2757 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/livedb | |
| 2758 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/livedb | |
| 2759 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/livedb | |
| 2760 info install [email protected] into /var/www/sharejs/releases/20131218171509/node_modules/livedb | |
| 2761 info installOne [email protected] | |
| 2762 info installOne [email protected] | |
| 2763 info installOne [email protected] | |
| 2764 info installOne [email protected] | |
| 2765 info installOne [email protected] | |
| 2766 info /var/www/sharejs/releases/20131218171509/node_modules/livedb/node_modules/statsd-client unbuild | |
| 2767 info /var/www/sharejs/releases/20131218171509/node_modules/livedb/node_modules/hiredis unbuild | |
| 2768 info /var/www/sharejs/releases/20131218171509/node_modules/livedb/node_modules/deep-is unbuild | |
| 2769 info /var/www/sharejs/releases/20131218171509/node_modules/livedb/node_modules/redis unbuild | |
| 2770 info /var/www/sharejs/releases/20131218171509/node_modules/livedb/node_modules/arraydiff unbuild | |
| 2771 silly gunzTarPerm extractEntry lib/public/icons/page_white_find.png | |
| 2772 silly gunzTarPerm extractEntry lib/public/icons/page_white_flash.png | |
| 2773 silly gunzTarPerm extractEntry benches/stress/rpushblpop/run | |
| 2774 silly gunzTarPerm extractEntry benches/stress/speed/speed.js | |
| 2775 silly gunzTarPerm extractEntry package.json | |
| 2776 silly gunzTarPerm extractEntry package.json | |
| 2777 silly gunzTarPerm extractEntry package.json | |
| 2778 silly gunzTarPerm extractEntry package.json | |
| 2779 silly gunzTarPerm extractEntry package.json | |
| 2780 silly gunzTarPerm extractEntry package.json | |
| 2781 silly gunzTarPerm extractEntry package.json | |
| 2782 silly gunzTarPerm extractEntry package.json | |
| 2783 silly gunzTarPerm extractEntry package.json | |
| 2784 silly gunzTarPerm extractEntry package.json | |
| 2785 silly gunzTarPerm extractEntry package.json | |
| 2786 silly gunzTarPerm extractEntry package.json | |
| 2787 verbose tar unpack /home/sharejs/.npm/statsd-client/0.0.15/package.tgz | |
| 2788 silly lockFile 1725cf49-ivedb-node-modules-statsd-client tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb/node_modules/statsd-client | |
| 2789 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb/node_modules/statsd-client /home/sharejs/.npm/1725cf49-ivedb-node-modules-statsd-client.lock | |
| 2790 silly lockFile d2571478-statsd-client-0-0-15-package-tgz tar:///home/sharejs/.npm/statsd-client/0.0.15/package.tgz | |
| 2791 verbose lock tar:///home/sharejs/.npm/statsd-client/0.0.15/package.tgz /home/sharejs/.npm/d2571478-statsd-client-0-0-15-package-tgz.lock | |
| 2792 verbose tar unpack /home/sharejs/.npm/hiredis/0.1.16/package.tgz | |
| 2793 silly lockFile e394be24-ules-livedb-node-modules-hiredis tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb/node_modules/hiredis | |
| 2794 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb/node_modules/hiredis /home/sharejs/.npm/e394be24-ules-livedb-node-modules-hiredis.lock | |
| 2795 silly lockFile 267e7042-s-npm-hiredis-0-1-16-package-tgz tar:///home/sharejs/.npm/hiredis/0.1.16/package.tgz | |
| 2796 verbose lock tar:///home/sharejs/.npm/hiredis/0.1.16/package.tgz /home/sharejs/.npm/267e7042-s-npm-hiredis-0-1-16-package-tgz.lock | |
| 2797 verbose tar unpack /home/sharejs/.npm/deep-is/0.1.2/package.tgz | |
| 2798 silly lockFile 7f1cc876-ules-livedb-node-modules-deep-is tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb/node_modules/deep-is | |
| 2799 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb/node_modules/deep-is /home/sharejs/.npm/7f1cc876-ules-livedb-node-modules-deep-is.lock | |
| 2800 silly lockFile 4378f23d-js-npm-deep-is-0-1-2-package-tgz tar:///home/sharejs/.npm/deep-is/0.1.2/package.tgz | |
| 2801 verbose lock tar:///home/sharejs/.npm/deep-is/0.1.2/package.tgz /home/sharejs/.npm/4378f23d-js-npm-deep-is-0-1-2-package-tgz.lock | |
| 2802 verbose tar unpack /home/sharejs/.npm/redis/0.8.6/package.tgz | |
| 2803 silly lockFile 00db6c01-odules-livedb-node-modules-redis tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb/node_modules/redis | |
| 2804 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb/node_modules/redis /home/sharejs/.npm/00db6c01-odules-livedb-node-modules-redis.lock | |
| 2805 silly lockFile fa5f0937-rejs-npm-redis-0-8-6-package-tgz tar:///home/sharejs/.npm/redis/0.8.6/package.tgz | |
| 2806 verbose lock tar:///home/sharejs/.npm/redis/0.8.6/package.tgz /home/sharejs/.npm/fa5f0937-rejs-npm-redis-0-8-6-package-tgz.lock | |
| 2807 verbose tar unpack /home/sharejs/.npm/arraydiff/0.1.1/package.tgz | |
| 2808 silly lockFile 0d02537e-es-livedb-node-modules-arraydiff tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb/node_modules/arraydiff | |
| 2809 verbose lock tar:///var/www/sharejs/releases/20131218171509/node_modules/livedb/node_modules/arraydiff /home/sharejs/.npm/0d02537e-es-livedb-node-modules-arraydiff.lock | |
| 2810 silly lockFile 49e94d6e--npm-arraydiff-0-1-1-package-tgz tar:///home/sharejs/.npm/arraydiff/0.1.1/package.tgz | |
| 2811 verbose lock tar:///home/sharejs/.npm/arraydiff/0.1.1/package.tgz /home/sharejs/.npm/49e94d6e--npm-arraydiff-0-1-1-package-tgz.lock | |
| 2812 silly gunzTarPerm extractEntry scripts/stats.coffee | |
| 2813 silly gunzTarPerm extractEntry scripts/talk.coffee | |
| 2814 silly gunzTarPerm extractEntry .npmignore | |
| 2815 silly gunzTarPerm extractEntry README.md | |
| 2816 silly gunzTarPerm modes [ '755', '644' ] | |
| 2817 silly gunzTarPerm modes [ '755', '644' ] | |
| 2818 silly gunzTarPerm modes [ '755', '644' ] | |
| 2819 silly gunzTarPerm modes [ '755', '644' ] | |
| 2820 silly gunzTarPerm modes [ '755', '644' ] | |
| 2821 silly gunzTarPerm extractEntry .npmignore | |
| 2822 silly gunzTarPerm extractEntry index.js | |
| 2823 silly gunzTarPerm extractEntry index.js | |
| 2824 silly gunzTarPerm extractEntry History.md | |
| 2825 silly gunzTarPerm extractEntry .npmignore | |
| 2826 silly gunzTarPerm extractEntry index.js | |
| 2827 silly gunzTarPerm extractEntry .npmignore | |
| 2828 silly gunzTarPerm extractEntry index.js | |
| 2829 silly gunzTarPerm extractEntry .npmignore | |
| 2830 silly gunzTarPerm extractEntry README.md | |
| 2831 silly gunzTarPerm extractEntry debug.js | |
| 2832 silly gunzTarPerm extractEntry index.js | |
| 2833 silly gunzTarPerm extractEntry .npmignore | |
| 2834 silly gunzTarPerm extractEntry LICENSE | |
| 2835 silly gunzTarPerm extractEntry index.js | |
| 2836 silly gunzTarPerm extractEntry History.md | |
| 2837 silly gunzTarPerm extractEntry Readme.md | |
| 2838 silly gunzTarPerm extractEntry .npmignore | |
| 2839 silly gunzTarPerm extractEntry index.js | |
| 2840 silly gunzTarPerm extractEntry .npmignore | |
| 2841 silly gunzTarPerm extractEntry LICENSE | |
| 2842 silly gunzTarPerm extractEntry .npmignore | |
| 2843 silly gunzTarPerm extractEntry README.md | |
| 2844 silly gunzTarPerm extractEntry benches/stress/speed/00 | |
| 2845 silly gunzTarPerm extractEntry benches/stress/speed/plot | |
| 2846 silly gunzTarPerm extractEntry karma.conf.coffee | |
| 2847 silly gunzTarPerm extractEntry package.json | |
| 2848 silly gunzTarPerm extractEntry lib/public/icons/page_white_freehand.png | |
| 2849 silly gunzTarPerm extractEntry lib/public/icons/page_white_gear.png | |
| 2850 silly gunzTarPerm extractEntry package.json | |
| 2851 silly gunzTarPerm extractEntry package.json | |
| 2852 silly gunzTarPerm extractEntry package.json | |
| 2853 silly gunzTarPerm extractEntry package.json | |
| 2854 silly gunzTarPerm extractEntry index.js | |
| 2855 silly gunzTarPerm extractEntry .travis.yml | |
| 2856 silly gunzTarPerm extractEntry History.md | |
| 2857 silly gunzTarPerm extractEntry Makefile | |
| 2858 silly gunzTarPerm extractEntry Readme.md | |
| 2859 silly gunzTarPerm extractEntry History.md | |
| 2860 silly gunzTarPerm extractEntry Makefile | |
| 2861 silly gunzTarPerm extractEntry History.md | |
| 2862 silly gunzTarPerm extractEntry Makefile | |
| 2863 silly gunzTarPerm extractEntry LICENSE | |
| 2864 silly gunzTarPerm extractEntry index.js | |
| 2865 silly gunzTarPerm extractEntry .npmignore | |
| 2866 silly gunzTarPerm extractEntry README.md | |
| 2867 silly gunzTarPerm extractEntry History.md | |
| 2868 silly gunzTarPerm extractEntry Makefile | |
| 2869 silly gunzTarPerm extractEntry index.js | |
| 2870 silly gunzTarPerm extractEntry component.json | |
| 2871 silly gunzTarPerm extractEntry Readme.md | |
| 2872 silly gunzTarPerm extractEntry lib/debug.js | |
| 2873 silly gunzTarPerm extractEntry index.js | |
| 2874 silly gunzTarPerm extractEntry .travis.yml | |
| 2875 silly gunzTarPerm extractEntry README.md | |
| 2876 silly gunzTarPerm extractEntry bench.js | |
| 2877 silly gunzTarPerm extractEntry .npmignore | |
| 2878 silly gunzTarPerm extractEntry index.js | |
| 2879 silly gunzTarPerm extractEntry .npmignore | |
| 2880 silly gunzTarPerm extractEntry README.md | |
| 2881 silly gunzTarPerm extractEntry .npmignore | |
| 2882 silly gunzTarPerm extractEntry README.md | |
| 2883 silly gunzTarPerm extractEntry index.js | |
| 2884 silly gunzTarPerm extractEntry .travis.yml | |
| 2885 silly gunzTarPerm extractEntry benches/stress/speed/size-rate.png | |
| 2886 silly gunzTarPerm extractEntry lib/public/icons/page_white_get.png | |
| 2887 silly gunzTarPerm extractEntry lib/public/icons/page_white_go.png | |
| 2888 silly gunzTarPerm extractEntry lib/metrics/names.js | |
| 2889 silly gunzTarPerm extractEntry lib/metrics/normalizer.js | |
| 2890 silly gunzTarPerm extractEntry tests/crc.test.js | |
| 2891 silly gunzTarPerm extractEntry Readme.md | |
| 2892 silly gunzTarPerm extractEntry Readme.md | |
| 2893 silly gunzTarPerm extractEntry Readme.md | |
| 2894 silly gunzTarPerm extractEntry .travis.yml | |
| 2895 silly gunzTarPerm extractEntry test/parse.js | |
| 2896 silly gunzTarPerm extractEntry Readme.md | |
| 2897 silly gunzTarPerm extractEntry lib/send.js | |
| 2898 silly gunzTarPerm extractEntry examples/pow.js | |
| 2899 silly gunzTarPerm extractEntry readme.markdown | |
| 2900 silly gunzTarPerm extractEntry LICENSE | |
| 2901 silly gunzTarPerm extractEntry .travis.yml | |
| 2902 silly gunzTarPerm extractEntry test-unref.js | |
| 2903 silly gunzTarPerm extractEntry Readme.md | |
| 2904 silly gunzTarPerm extractEntry lib/cache.js | |
| 2905 silly gunzTarPerm extractEntry hiredis.js | |
| 2906 silly gunzTarPerm extractEntry COPYING | |
| 2907 silly gunzTarPerm extractEntry .travis.yml | |
| 2908 silly gunzTarPerm extractEntry README.markdown | |
| 2909 silly gunzTarPerm extractEntry Gruntfile.js | |
| 2910 silly gunzTarPerm extractEntry index.js | |
| 2911 error [email protected] install: `node-gyp configure build` | |
| 2911 error Exit status 1 | |
| 2912 error Failed at the [email protected] install script. | |
| 2912 error This is most likely a problem with the rbytes package, | |
| 2912 error not with npm itself. | |
| 2912 error Tell the author that this fails on your system: | |
| 2912 error node-gyp configure build | |
| 2912 error You can get their info via: | |
| 2912 error npm owner ls rbytes | |
| 2912 error There is likely additional logging output above. | |
| 2913 error System Linux 3.2.0-54-virtual | |
| 2914 error command "/usr/bin/node" "/usr/bin/npm" "install" "--production" | |
| 2915 error cwd /var/www/sharejs/releases/20131218171509 | |
| 2916 error node -v v0.10.23 | |
| 2917 error npm -v 1.3.17 | |
| 2918 error code ELIFECYCLE | |
| 2919 verbose exit [ 1, true ] | |
| sharejs@sharejsX:~$ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment