Skip to content

Instantly share code, notes, and snippets.

@mgcrea mgcrea/gist:5758509
Created Jun 11, 2013

Embed
What would you like to do?
0 info it worked if it ends with ok
1 verbose cli [ 'node', '/opt/local/bin/npm', 'install', 'express' ]
2 info using npm@1.2.28
3 info using node@v0.10.10
4 verbose read json /Users/olivier/package.json
5 verbose read json /Users/olivier/node_modules/express/package.json
6 verbose read json /Users/olivier/node_modules/grunt/package.json
7 verbose read json /Users/olivier/node_modules/jasmine-node/package.json
8 verbose read json /Users/olivier/node_modules/karma/package.json
9 verbose read json /Users/olivier/node_modules/nodeunit/package.json
10 verbose read json /Users/olivier/node_modules/testem/package.json
11 verbose read json /Users/olivier/node_modules/xlsx/package.json
12 verbose read json /Users/olivier/package.json
13 verbose cache add [ 'express', null ]
14 verbose cache add name=undefined spec="express" args=["express",null]
15 verbose parsed url { protocol: null,
15 verbose parsed url slashes: null,
15 verbose parsed url auth: null,
15 verbose parsed url host: null,
15 verbose parsed url port: null,
15 verbose parsed url hostname: null,
15 verbose parsed url hash: null,
15 verbose parsed url search: null,
15 verbose parsed url query: null,
15 verbose parsed url pathname: 'express',
15 verbose parsed url path: 'express',
15 verbose parsed url href: 'express' }
16 silly lockFile f3c62de4-express express
17 verbose lock express /Users/olivier/.npm/f3c62de4-express.lock
18 silly lockFile f3c62de4-express express
19 silly lockFile f3c62de4-express express
20 verbose addNamed [ 'express', '' ]
21 verbose addNamed [ null, '' ]
22 silly lockFile 64a534c1-express express@
23 verbose lock express@ /Users/olivier/.npm/64a534c1-express.lock
24 silly addNameRange { name: 'express', range: '', hasData: false }
25 verbose registry.get express not expired, no request
26 silly addNameRange number 2 { name: 'express', range: '', hasData: true }
27 silly addNameRange versions [ 'express',
27 silly addNameRange [ '0.14.0',
27 silly addNameRange '0.14.1',
27 silly addNameRange '1.0.0beta',
27 silly addNameRange '1.0.0beta2',
27 silly addNameRange '1.0.0rc',
27 silly addNameRange '1.0.0rc2',
27 silly addNameRange '1.0.0rc3',
27 silly addNameRange '1.0.0rc4',
27 silly addNameRange '1.0.0',
27 silly addNameRange '1.0.1',
27 silly addNameRange '1.0.2',
27 silly addNameRange '1.0.3',
27 silly addNameRange '1.0.4',
27 silly addNameRange '1.0.5',
27 silly addNameRange '1.0.6',
27 silly addNameRange '1.0.7',
27 silly addNameRange '2.0.0beta',
27 silly addNameRange '1.0.8',
27 silly addNameRange '2.0.0beta2',
27 silly addNameRange '2.0.0beta3',
27 silly addNameRange '2.0.0rc',
27 silly addNameRange '2.0.0rc2',
27 silly addNameRange '2.0.0rc3',
27 silly addNameRange '2.0.0',
27 silly addNameRange '2.1.0',
27 silly addNameRange '2.1.1',
27 silly addNameRange '2.2.0',
27 silly addNameRange '2.2.1',
27 silly addNameRange '2.2.2',
27 silly addNameRange '2.3.0',
27 silly addNameRange '2.3.1',
27 silly addNameRange '2.3.2',
27 silly addNameRange '2.3.3',
27 silly addNameRange '2.3.4',
27 silly addNameRange '2.3.5',
27 silly addNameRange '2.3.6',
27 silly addNameRange '2.3.7',
27 silly addNameRange '2.3.8',
27 silly addNameRange '2.3.9',
27 silly addNameRange '2.3.10',
27 silly addNameRange '2.3.11',
27 silly addNameRange '2.3.12',
27 silly addNameRange '2.4.0',
27 silly addNameRange '2.4.1',
27 silly addNameRange '2.4.2',
27 silly addNameRange '2.4.3',
27 silly addNameRange '2.4.4',
27 silly addNameRange '2.4.5',
27 silly addNameRange '2.4.6',
27 silly addNameRange '2.4.7',
27 silly addNameRange '2.5.0',
27 silly addNameRange '2.5.1',
27 silly addNameRange '2.5.2',
27 silly addNameRange '2.5.3',
27 silly addNameRange '2.5.4',
27 silly addNameRange '2.5.5',
27 silly addNameRange '2.5.6',
27 silly addNameRange '2.5.7',
27 silly addNameRange '2.5.8',
27 silly addNameRange '2.5.9',
27 silly addNameRange '3.0.0alpha1',
27 silly addNameRange '3.0.0alpha2',
27 silly addNameRange '3.0.0alpha3',
27 silly addNameRange '3.0.0alpha4',
27 silly addNameRange '3.0.0alpha5',
27 silly addNameRange '3.0.0beta1',
27 silly addNameRange '3.0.0beta2',
27 silly addNameRange '3.0.0beta3',
27 silly addNameRange '2.5.10',
27 silly addNameRange '3.0.0beta4',
27 silly addNameRange '2.5.11',
27 silly addNameRange '3.0.0beta6',
27 silly addNameRange '3.0.0beta7',
27 silly addNameRange '3.0.0rc1',
27 silly addNameRange '3.0.0rc2',
27 silly addNameRange '3.0.0rc3',
27 silly addNameRange '3.0.0rc4',
27 silly addNameRange '3.0.0rc5',
27 silly addNameRange '3.0.0',
27 silly addNameRange '3.0.1',
27 silly addNameRange '3.0.2',
27 silly addNameRange '3.0.3',
27 silly addNameRange '3.0.4',
27 silly addNameRange '3.0.5',
27 silly addNameRange '3.0.6',
27 silly addNameRange '3.1.0',
27 silly addNameRange '3.1.1',
27 silly addNameRange '3.1.2',
27 silly addNameRange '3.2.0',
27 silly addNameRange '3.2.1',
27 silly addNameRange '3.2.2',
27 silly addNameRange '3.2.3',
27 silly addNameRange '3.2.4',
27 silly addNameRange '3.2.5',
27 silly addNameRange '3.2.6' ] ]
28 verbose addNamed [ 'express', '3.2.6' ]
29 verbose addNamed [ '3.2.6', '3.2.6' ]
30 silly lockFile fdae4232-express-3-2-6 express@3.2.6
31 verbose lock express@3.2.6 /Users/olivier/.npm/fdae4232-express-3-2-6.lock
32 verbose read json /Users/olivier/.npm/express/3.2.6/package/package.json
33 silly lockFile fdae4232-express-3-2-6 express@3.2.6
34 silly lockFile fdae4232-express-3-2-6 express@3.2.6
35 silly lockFile 64a534c1-express express@
36 silly lockFile 64a534c1-express express@
37 silly resolved [ { name: 'express',
37 silly resolved description: 'Sinatra inspired web development framework',
37 silly resolved version: '3.2.6',
37 silly resolved author: { name: 'TJ Holowaychuk', email: 'tj@vision-media.ca' },
37 silly resolved contributors: [ [Object], [Object], [Object], [Object] ],
37 silly resolved dependencies:
37 silly resolved { connect: '2.7.11',
37 silly resolved commander: '0.6.1',
37 silly resolved 'range-parser': '0.0.4',
37 silly resolved mkdirp: '0.3.4',
37 silly resolved cookie: '0.1.0',
37 silly resolved 'buffer-crc32': '0.2.1',
37 silly resolved fresh: '0.1.0',
37 silly resolved methods: '0.0.1',
37 silly resolved send: '0.1.0',
37 silly resolved 'cookie-signature': '1.0.1',
37 silly resolved debug: '*' },
37 silly resolved devDependencies:
37 silly resolved { ejs: '*',
37 silly resolved mocha: '*',
37 silly resolved jade: '*',
37 silly resolved hjs: '*',
37 silly resolved stylus: '*',
37 silly resolved should: '*',
37 silly resolved 'connect-redis': '*',
37 silly resolved marked: '*',
37 silly resolved supertest: '0.6.0' },
37 silly resolved keywords:
37 silly resolved [ 'express',
37 silly resolved 'framework',
37 silly resolved 'sinatra',
37 silly resolved 'web',
37 silly resolved 'rest',
37 silly resolved 'restful',
37 silly resolved 'router',
37 silly resolved 'app',
37 silly resolved 'api' ],
37 silly resolved repository: { type: 'git', url: 'git://github.com/visionmedia/express' },
37 silly resolved main: 'index',
37 silly resolved bin: { express: './bin/express' },
37 silly resolved scripts: { prepublish: 'npm prune', test: 'make test' },
37 silly resolved engines: { node: '*' },
37 silly resolved readme: '![express logo](http://f.cl.ly/items/0V2S1n0K1i3y1c122g04/Screen%20Shot%202012-04-11%20at%209.59.42%20AM.png)\n\n Fast, unopinionated, minimalist web framework for [node](http://nodejs.org). [![Build Status](https://secure.travis-ci.org/visionmedia/express.png)](http://travis-ci.org/visionmedia/express) [![Dependency Status](https://gemnasium.com/visionmedia/express.png)](https://gemnasium.com/visionmedia/express)\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 * 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 deps:\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\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```\nproject: express\ncommits: 3559\nactive : 468 days\nfiles : 237\nauthors:\n 1891\tTj Holowaychuk 53.1%\n 1285\tvisionmedia 36.1%\n 182\tTJ Holowaychuk 5.1%\n 54\tAaron Heckmann 1.5%\n 34\tcsausdev 1.0%\n 26\tciaranj 0.7%\n 21\tRobert Sköld 0.6%\n 6\tGuillermo Rauch 0.2%\n 3\tDav Glass 0.1%\n 3\tNick Poulden 0.1%\n 2\tRandy Merrill 0.1%\n 2\tBenny Wong 0.1%\n 2\tHunter Loftis 0.1%\n 2\tJake Gordon 0.1%\n 2\tBrian McKinney 0.1%\n 2\tRoman Shtylman 0.1%\n 2\tBen Weaver 0.1%\n 2\tDave Hoover 0.1%\n 2\tEivind Fjeldstad 0.1%\n 2\tDaniel Shaw 0.1%\n 1\tMatt Colyer 0.0%\n 1\tPau Ramon 0.0%\n 1\tPero Pejovic 0.0%\n 1\tPeter Rekdal Sunde 0.0%\n 1\tRaynos 0.0%\n 1\tTeng Siong Ong 0.0%\n 1\tViktor Kelemen 0.0%\n 1\tctide 0.0%\n 1\t8bitDesigner 0.0%\n 1\tisaacs 0.0%\n 1\tmgutz 0.0%\n 1\tpikeas 0.0%\n 1\tshuwatto 0.0%\n 1\ttstrimple 0.0%\n 1\tewoudj 0.0%\n 1\tAdam Sanderson 0.0%\n 1\tAndrii Kostenko 0.0%\n 1\tAndy Hiew 0.0%\n 1\tArpad Borsos 0.0%\n 1\tAshwin Purohit 0.0%\n 1\tBenjen 0.0%\n 1\tDarren Torpey 0.0%\n 1\tGreg Ritter 0.0%\n 1\tGregory Ritter 0.0%\n 1\tJames Herdman 0.0%\n 1\tJim Snodgrass 0.0%\n 1\tJoe McCann 0.0%\n 1\tJonathan Dumaine 0.0%\n 1\tJonathan Palardy 0.0%\n 1\tJonathan Zacsh 0.0%\n 1\tJustin Lilly 0.0%\n 1\tKen Sato 0.0%\n 1\tMaciej Małecki 0.0%\n 1\tMasahiro Hayashi 0.0%\n```\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2009-2012 TJ Holowaychuk <tj@vision-media.ca>\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',
37 silly resolved readmeFilename: 'Readme.md',
37 silly resolved bugs: { url: 'https://github.com/visionmedia/express/issues' },
37 silly resolved _id: 'express@3.2.6',
37 silly resolved _from: 'express@' } ]
38 info install express@3.2.6 into /Users/olivier
39 info installOne express@3.2.6
40 verbose from cache /Users/olivier/.npm/express/3.2.6/package/package.json
41 info /Users/olivier/node_modules/express unbuild
42 verbose read json /Users/olivier/node_modules/express/package.json
43 verbose tar unpack /Users/olivier/.npm/express/3.2.6/package.tgz
44 silly lockFile 61f3a492-ers-olivier-node-modules-express tar:///Users/olivier/node_modules/express
45 verbose lock tar:///Users/olivier/node_modules/express /Users/olivier/.npm/61f3a492-ers-olivier-node-modules-express.lock
46 silly lockFile 044b30a4-er-npm-express-3-2-6-package-tgz tar:///Users/olivier/.npm/express/3.2.6/package.tgz
47 verbose lock tar:///Users/olivier/.npm/express/3.2.6/package.tgz /Users/olivier/.npm/044b30a4-er-npm-express-3-2-6-package-tgz.lock
48 silly gunzTarPerm modes [ '755', '644' ]
49 silly gunzTarPerm extractEntry package.json
50 silly gunzTarPerm extractEntry .npmignore
51 silly gunzTarPerm extractEntry LICENSE
52 silly gunzTarPerm extractEntry index.js
53 silly gunzTarPerm extractEntry test.js
54 silly gunzTarPerm extractEntry .travis.yml
55 silly gunzTarPerm extractEntry bin/express
56 silly gunzTarPerm extractEntry Makefile
57 silly gunzTarPerm extractEntry lib/application.js
58 silly gunzTarPerm extractEntry lib/express.js
59 silly gunzTarPerm extractEntry lib/middleware.js
60 silly gunzTarPerm extractEntry lib/request.js
61 silly gunzTarPerm extractEntry lib/response.js
62 silly gunzTarPerm extractEntry lib/utils.js
63 silly gunzTarPerm extractEntry lib/view.js
64 silly gunzTarPerm extractEntry lib/router/index.js
65 silly gunzTarPerm extractEntry lib/router/route.js
66 silly gunzTarPerm extractEntry History.md
67 silly gunzTarPerm extractEntry Readme.md
68 verbose read json /Users/olivier/node_modules/express/package.json
69 silly lockFile 61f3a492-ers-olivier-node-modules-express tar:///Users/olivier/node_modules/express
70 silly lockFile 61f3a492-ers-olivier-node-modules-express tar:///Users/olivier/node_modules/express
71 silly lockFile 044b30a4-er-npm-express-3-2-6-package-tgz tar:///Users/olivier/.npm/express/3.2.6/package.tgz
72 silly lockFile 044b30a4-er-npm-express-3-2-6-package-tgz tar:///Users/olivier/.npm/express/3.2.6/package.tgz
73 info preinstall express@3.2.6
74 verbose from cache /Users/olivier/node_modules/express/package.json
75 verbose readDependencies using package.json deps
76 verbose from cache /Users/olivier/node_modules/express/package.json
77 verbose readDependencies using package.json deps
78 verbose cache add [ 'connect@2.7.11', null ]
79 verbose cache add name=undefined spec="connect@2.7.11" args=["connect@2.7.11",null]
80 verbose parsed url { protocol: null,
80 verbose parsed url slashes: null,
80 verbose parsed url auth: null,
80 verbose parsed url host: null,
80 verbose parsed url port: null,
80 verbose parsed url hostname: null,
80 verbose parsed url hash: null,
80 verbose parsed url search: null,
80 verbose parsed url query: null,
80 verbose parsed url pathname: 'connect@2.7.11',
80 verbose parsed url path: 'connect@2.7.11',
80 verbose parsed url href: 'connect@2.7.11' }
81 verbose cache add name="connect" spec="2.7.11" args=["connect","2.7.11"]
82 verbose parsed url { protocol: null,
82 verbose parsed url slashes: null,
82 verbose parsed url auth: null,
82 verbose parsed url host: null,
82 verbose parsed url port: null,
82 verbose parsed url hostname: null,
82 verbose parsed url hash: null,
82 verbose parsed url search: null,
82 verbose parsed url query: null,
82 verbose parsed url pathname: '2.7.11',
82 verbose parsed url path: '2.7.11',
82 verbose parsed url href: '2.7.11' }
83 verbose addNamed [ 'connect', '2.7.11' ]
84 verbose addNamed [ '2.7.11', '2.7.11' ]
85 silly lockFile 4ba73353-connect-2-7-11 connect@2.7.11
86 verbose lock connect@2.7.11 /Users/olivier/.npm/4ba73353-connect-2-7-11.lock
87 verbose cache add [ 'commander@0.6.1', null ]
88 verbose cache add name=undefined spec="commander@0.6.1" args=["commander@0.6.1",null]
89 verbose parsed url { protocol: null,
89 verbose parsed url slashes: null,
89 verbose parsed url auth: null,
89 verbose parsed url host: null,
89 verbose parsed url port: null,
89 verbose parsed url hostname: null,
89 verbose parsed url hash: null,
89 verbose parsed url search: null,
89 verbose parsed url query: null,
89 verbose parsed url pathname: 'commander@0.6.1',
89 verbose parsed url path: 'commander@0.6.1',
89 verbose parsed url href: 'commander@0.6.1' }
90 verbose cache add name="commander" spec="0.6.1" args=["commander","0.6.1"]
91 verbose parsed url { protocol: null,
91 verbose parsed url slashes: null,
91 verbose parsed url auth: null,
91 verbose parsed url host: null,
91 verbose parsed url port: null,
91 verbose parsed url hostname: null,
91 verbose parsed url hash: null,
91 verbose parsed url search: null,
91 verbose parsed url query: null,
91 verbose parsed url pathname: '0.6.1',
91 verbose parsed url path: '0.6.1',
91 verbose parsed url href: '0.6.1' }
92 verbose addNamed [ 'commander', '0.6.1' ]
93 verbose addNamed [ '0.6.1', '0.6.1' ]
94 silly lockFile fa16a2ce-commander-0-6-1 commander@0.6.1
95 verbose lock commander@0.6.1 /Users/olivier/.npm/fa16a2ce-commander-0-6-1.lock
96 verbose cache add [ 'range-parser@0.0.4', null ]
97 verbose cache add name=undefined spec="range-parser@0.0.4" args=["range-parser@0.0.4",null]
98 verbose parsed url { protocol: null,
98 verbose parsed url slashes: null,
98 verbose parsed url auth: null,
98 verbose parsed url host: null,
98 verbose parsed url port: null,
98 verbose parsed url hostname: null,
98 verbose parsed url hash: null,
98 verbose parsed url search: null,
98 verbose parsed url query: null,
98 verbose parsed url pathname: 'range-parser@0.0.4',
98 verbose parsed url path: 'range-parser@0.0.4',
98 verbose parsed url href: 'range-parser@0.0.4' }
99 verbose cache add name="range-parser" spec="0.0.4" args=["range-parser","0.0.4"]
100 verbose parsed url { protocol: null,
100 verbose parsed url slashes: null,
100 verbose parsed url auth: null,
100 verbose parsed url host: null,
100 verbose parsed url port: null,
100 verbose parsed url hostname: null,
100 verbose parsed url hash: null,
100 verbose parsed url search: null,
100 verbose parsed url query: null,
100 verbose parsed url pathname: '0.0.4',
100 verbose parsed url path: '0.0.4',
100 verbose parsed url href: '0.0.4' }
101 verbose addNamed [ 'range-parser', '0.0.4' ]
102 verbose addNamed [ '0.0.4', '0.0.4' ]
103 silly lockFile 0760c556-range-parser-0-0-4 range-parser@0.0.4
104 verbose lock range-parser@0.0.4 /Users/olivier/.npm/0760c556-range-parser-0-0-4.lock
105 verbose cache add [ 'mkdirp@0.3.4', null ]
106 verbose cache add name=undefined spec="mkdirp@0.3.4" args=["mkdirp@0.3.4",null]
107 verbose parsed url { protocol: null,
107 verbose parsed url slashes: null,
107 verbose parsed url auth: null,
107 verbose parsed url host: null,
107 verbose parsed url port: null,
107 verbose parsed url hostname: null,
107 verbose parsed url hash: null,
107 verbose parsed url search: null,
107 verbose parsed url query: null,
107 verbose parsed url pathname: 'mkdirp@0.3.4',
107 verbose parsed url path: 'mkdirp@0.3.4',
107 verbose parsed url href: 'mkdirp@0.3.4' }
108 verbose cache add name="mkdirp" spec="0.3.4" args=["mkdirp","0.3.4"]
109 verbose parsed url { protocol: null,
109 verbose parsed url slashes: null,
109 verbose parsed url auth: null,
109 verbose parsed url host: null,
109 verbose parsed url port: null,
109 verbose parsed url hostname: null,
109 verbose parsed url hash: null,
109 verbose parsed url search: null,
109 verbose parsed url query: null,
109 verbose parsed url pathname: '0.3.4',
109 verbose parsed url path: '0.3.4',
109 verbose parsed url href: '0.3.4' }
110 verbose addNamed [ 'mkdirp', '0.3.4' ]
111 verbose addNamed [ '0.3.4', '0.3.4' ]
112 silly lockFile 86f43333-mkdirp-0-3-4 mkdirp@0.3.4
113 verbose lock mkdirp@0.3.4 /Users/olivier/.npm/86f43333-mkdirp-0-3-4.lock
114 verbose cache add [ 'cookie@0.1.0', null ]
115 verbose cache add name=undefined spec="cookie@0.1.0" args=["cookie@0.1.0",null]
116 verbose parsed url { protocol: null,
116 verbose parsed url slashes: null,
116 verbose parsed url auth: null,
116 verbose parsed url host: null,
116 verbose parsed url port: null,
116 verbose parsed url hostname: null,
116 verbose parsed url hash: null,
116 verbose parsed url search: null,
116 verbose parsed url query: null,
116 verbose parsed url pathname: 'cookie@0.1.0',
116 verbose parsed url path: 'cookie@0.1.0',
116 verbose parsed url href: 'cookie@0.1.0' }
117 verbose cache add name="cookie" spec="0.1.0" args=["cookie","0.1.0"]
118 verbose parsed url { protocol: null,
118 verbose parsed url slashes: null,
118 verbose parsed url auth: null,
118 verbose parsed url host: null,
118 verbose parsed url port: null,
118 verbose parsed url hostname: null,
118 verbose parsed url hash: null,
118 verbose parsed url search: null,
118 verbose parsed url query: null,
118 verbose parsed url pathname: '0.1.0',
118 verbose parsed url path: '0.1.0',
118 verbose parsed url href: '0.1.0' }
119 verbose addNamed [ 'cookie', '0.1.0' ]
120 verbose addNamed [ '0.1.0', '0.1.0' ]
121 silly lockFile b55e145e-cookie-0-1-0 cookie@0.1.0
122 verbose lock cookie@0.1.0 /Users/olivier/.npm/b55e145e-cookie-0-1-0.lock
123 verbose registry.get connect/2.7.11 not expired, no request
124 verbose registry.get commander/0.6.1 not expired, no request
125 verbose read json /Users/olivier/.npm/connect/2.7.11/package/package.json
126 verbose registry.get range-parser/0.0.4 not expired, no request
127 verbose registry.get mkdirp/0.3.4 not expired, no request
128 verbose cache add [ 'buffer-crc32@0.2.1', null ]
129 verbose cache add name=undefined spec="buffer-crc32@0.2.1" args=["buffer-crc32@0.2.1",null]
130 verbose parsed url { protocol: null,
130 verbose parsed url slashes: null,
130 verbose parsed url auth: null,
130 verbose parsed url host: null,
130 verbose parsed url port: null,
130 verbose parsed url hostname: null,
130 verbose parsed url hash: null,
130 verbose parsed url search: null,
130 verbose parsed url query: null,
130 verbose parsed url pathname: 'buffer-crc32@0.2.1',
130 verbose parsed url path: 'buffer-crc32@0.2.1',
130 verbose parsed url href: 'buffer-crc32@0.2.1' }
131 verbose cache add name="buffer-crc32" spec="0.2.1" args=["buffer-crc32","0.2.1"]
132 verbose parsed url { protocol: null,
132 verbose parsed url slashes: null,
132 verbose parsed url auth: null,
132 verbose parsed url host: null,
132 verbose parsed url port: null,
132 verbose parsed url hostname: null,
132 verbose parsed url hash: null,
132 verbose parsed url search: null,
132 verbose parsed url query: null,
132 verbose parsed url pathname: '0.2.1',
132 verbose parsed url path: '0.2.1',
132 verbose parsed url href: '0.2.1' }
133 verbose addNamed [ 'buffer-crc32', '0.2.1' ]
134 verbose addNamed [ '0.2.1', '0.2.1' ]
135 silly lockFile 057d0d26-buffer-crc32-0-2-1 buffer-crc32@0.2.1
136 verbose lock buffer-crc32@0.2.1 /Users/olivier/.npm/057d0d26-buffer-crc32-0-2-1.lock
137 verbose read json /Users/olivier/.npm/commander/0.6.1/package/package.json
138 verbose read json /Users/olivier/.npm/range-parser/0.0.4/package/package.json
139 verbose read json /Users/olivier/.npm/mkdirp/0.3.4/package/package.json
140 verbose registry.get cookie/0.1.0 not expired, no request
141 verbose cache add [ 'fresh@0.1.0', null ]
142 verbose cache add name=undefined spec="fresh@0.1.0" args=["fresh@0.1.0",null]
143 verbose parsed url { protocol: null,
143 verbose parsed url slashes: null,
143 verbose parsed url auth: null,
143 verbose parsed url host: null,
143 verbose parsed url port: null,
143 verbose parsed url hostname: null,
143 verbose parsed url hash: null,
143 verbose parsed url search: null,
143 verbose parsed url query: null,
143 verbose parsed url pathname: 'fresh@0.1.0',
143 verbose parsed url path: 'fresh@0.1.0',
143 verbose parsed url href: 'fresh@0.1.0' }
144 verbose cache add name="fresh" spec="0.1.0" args=["fresh","0.1.0"]
145 verbose parsed url { protocol: null,
145 verbose parsed url slashes: null,
145 verbose parsed url auth: null,
145 verbose parsed url host: null,
145 verbose parsed url port: null,
145 verbose parsed url hostname: null,
145 verbose parsed url hash: null,
145 verbose parsed url search: null,
145 verbose parsed url query: null,
145 verbose parsed url pathname: '0.1.0',
145 verbose parsed url path: '0.1.0',
145 verbose parsed url href: '0.1.0' }
146 verbose addNamed [ 'fresh', '0.1.0' ]
147 verbose addNamed [ '0.1.0', '0.1.0' ]
148 silly lockFile 3dea7da8-fresh-0-1-0 fresh@0.1.0
149 verbose lock fresh@0.1.0 /Users/olivier/.npm/3dea7da8-fresh-0-1-0.lock
150 verbose read json /Users/olivier/.npm/cookie/0.1.0/package/package.json
151 verbose cache add [ 'methods@0.0.1', null ]
152 verbose cache add name=undefined spec="methods@0.0.1" args=["methods@0.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: 'methods@0.0.1',
153 verbose parsed url path: 'methods@0.0.1',
153 verbose parsed url href: 'methods@0.0.1' }
154 verbose cache add name="methods" spec="0.0.1" args=["methods","0.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: '0.0.1',
155 verbose parsed url path: '0.0.1',
155 verbose parsed url href: '0.0.1' }
156 verbose addNamed [ 'methods', '0.0.1' ]
157 verbose addNamed [ '0.0.1', '0.0.1' ]
158 silly lockFile 209c2920-methods-0-0-1 methods@0.0.1
159 verbose lock methods@0.0.1 /Users/olivier/.npm/209c2920-methods-0-0-1.lock
160 verbose cache add [ 'cookie-signature@1.0.1', null ]
161 verbose cache add name=undefined spec="cookie-signature@1.0.1" args=["cookie-signature@1.0.1",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: 'cookie-signature@1.0.1',
162 verbose parsed url path: 'cookie-signature@1.0.1',
162 verbose parsed url href: 'cookie-signature@1.0.1' }
163 verbose cache add name="cookie-signature" spec="1.0.1" args=["cookie-signature","1.0.1"]
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: '1.0.1',
164 verbose parsed url path: '1.0.1',
164 verbose parsed url href: '1.0.1' }
165 verbose addNamed [ 'cookie-signature', '1.0.1' ]
166 verbose addNamed [ '1.0.1', '1.0.1' ]
167 silly lockFile d4a1eba1-cookie-signature-1-0-1 cookie-signature@1.0.1
168 verbose lock cookie-signature@1.0.1 /Users/olivier/.npm/d4a1eba1-cookie-signature-1-0-1.lock
169 verbose cache add [ 'send@0.1.0', null ]
170 verbose cache add name=undefined spec="send@0.1.0" args=["send@0.1.0",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: 'send@0.1.0',
171 verbose parsed url path: 'send@0.1.0',
171 verbose parsed url href: 'send@0.1.0' }
172 verbose cache add name="send" spec="0.1.0" args=["send","0.1.0"]
173 verbose parsed url { protocol: null,
173 verbose parsed url slashes: null,
173 verbose parsed url auth: null,
173 verbose parsed url host: null,
173 verbose parsed url port: null,
173 verbose parsed url hostname: null,
173 verbose parsed url hash: null,
173 verbose parsed url search: null,
173 verbose parsed url query: null,
173 verbose parsed url pathname: '0.1.0',
173 verbose parsed url path: '0.1.0',
173 verbose parsed url href: '0.1.0' }
174 verbose addNamed [ 'send', '0.1.0' ]
175 verbose addNamed [ '0.1.0', '0.1.0' ]
176 silly lockFile ef2886cd-send-0-1-0 send@0.1.0
177 verbose lock send@0.1.0 /Users/olivier/.npm/ef2886cd-send-0-1-0.lock
178 verbose cache add [ 'debug@*', null ]
179 verbose cache add name=undefined spec="debug@*" args=["debug@*",null]
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: 'debug@*',
180 verbose parsed url path: 'debug@*',
180 verbose parsed url href: 'debug@*' }
181 verbose cache add name="debug" spec="*" args=["debug","*"]
182 verbose parsed url { protocol: null,
182 verbose parsed url slashes: null,
182 verbose parsed url auth: null,
182 verbose parsed url host: null,
182 verbose parsed url port: null,
182 verbose parsed url hostname: null,
182 verbose parsed url hash: null,
182 verbose parsed url search: null,
182 verbose parsed url query: null,
182 verbose parsed url pathname: '*',
182 verbose parsed url path: '*',
182 verbose parsed url href: '*' }
183 verbose addNamed [ 'debug', '*' ]
184 verbose addNamed [ null, '' ]
185 silly lockFile 3ac45eff-debug debug@*
186 verbose lock debug@* /Users/olivier/.npm/3ac45eff-debug.lock
187 verbose registry.get buffer-crc32/0.2.1 not expired, no request
188 silly addNameRange { name: 'debug', range: '', hasData: false }
189 verbose read json /Users/olivier/.npm/buffer-crc32/0.2.1/package/package.json
190 verbose registry.get fresh/0.1.0 not expired, no request
191 verbose read json /Users/olivier/.npm/fresh/0.1.0/package/package.json
192 silly lockFile 4ba73353-connect-2-7-11 connect@2.7.11
193 silly lockFile 4ba73353-connect-2-7-11 connect@2.7.11
194 verbose registry.get methods/0.0.1 not expired, no request
195 silly lockFile fa16a2ce-commander-0-6-1 commander@0.6.1
196 silly lockFile fa16a2ce-commander-0-6-1 commander@0.6.1
197 verbose registry.get cookie-signature/1.0.1 not expired, no request
198 verbose registry.get send/0.1.0 not expired, no request
199 warn package.json range-parser@0.0.4 No repository field.
200 silly lockFile 0760c556-range-parser-0-0-4 range-parser@0.0.4
201 silly lockFile 0760c556-range-parser-0-0-4 range-parser@0.0.4
202 silly lockFile 86f43333-mkdirp-0-3-4 mkdirp@0.3.4
203 silly lockFile 86f43333-mkdirp-0-3-4 mkdirp@0.3.4
204 verbose read json /Users/olivier/.npm/methods/0.0.1/package/package.json
205 verbose read json /Users/olivier/.npm/cookie-signature/1.0.1/package/package.json
206 verbose read json /Users/olivier/.npm/send/0.1.0/package/package.json
207 verbose registry.get debug not expired, no request
208 silly addNameRange number 2 { name: 'debug', range: '', hasData: true }
209 silly addNameRange versions [ 'debug',
209 silly addNameRange [ '0.0.1',
209 silly addNameRange '0.1.0',
209 silly addNameRange '0.2.0',
209 silly addNameRange '0.3.0',
209 silly addNameRange '0.4.0',
209 silly addNameRange '0.4.1',
209 silly addNameRange '0.5.0',
209 silly addNameRange '0.6.0',
209 silly addNameRange '0.7.0',
209 silly addNameRange '0.7.1',
209 silly addNameRange '0.7.2' ] ]
210 verbose addNamed [ 'debug', '0.7.2' ]
211 verbose addNamed [ '0.7.2', '0.7.2' ]
212 silly lockFile 432e5064-debug-0-7-2 debug@0.7.2
213 verbose lock debug@0.7.2 /Users/olivier/.npm/432e5064-debug-0-7-2.lock
214 silly lockFile b55e145e-cookie-0-1-0 cookie@0.1.0
215 silly lockFile b55e145e-cookie-0-1-0 cookie@0.1.0
216 verbose read json /Users/olivier/.npm/debug/0.7.2/package/package.json
217 warn package.json methods@0.0.1 No repository field.
218 warn package.json methods@0.0.1 No readme data.
219 silly lockFile 209c2920-methods-0-0-1 methods@0.0.1
220 silly lockFile 209c2920-methods-0-0-1 methods@0.0.1
221 silly lockFile 057d0d26-buffer-crc32-0-2-1 buffer-crc32@0.2.1
222 silly lockFile 057d0d26-buffer-crc32-0-2-1 buffer-crc32@0.2.1
223 warn package.json fresh@0.1.0 No repository field.
224 silly lockFile 3dea7da8-fresh-0-1-0 fresh@0.1.0
225 silly lockFile 3dea7da8-fresh-0-1-0 fresh@0.1.0
226 warn package.json cookie-signature@1.0.1 No repository field.
227 silly lockFile d4a1eba1-cookie-signature-1-0-1 cookie-signature@1.0.1
228 silly lockFile d4a1eba1-cookie-signature-1-0-1 cookie-signature@1.0.1
229 warn package.json send@0.1.0 No repository field.
230 silly lockFile ef2886cd-send-0-1-0 send@0.1.0
231 silly lockFile ef2886cd-send-0-1-0 send@0.1.0
232 silly lockFile 432e5064-debug-0-7-2 debug@0.7.2
233 silly lockFile 432e5064-debug-0-7-2 debug@0.7.2
234 silly lockFile 3ac45eff-debug debug@*
235 silly lockFile 3ac45eff-debug debug@*
236 silly resolved [ { name: 'connect',
236 silly resolved version: '2.7.11',
236 silly resolved description: 'High performance middleware framework',
236 silly resolved keywords: [ 'framework', 'web', 'middleware', 'connect', 'rack' ],
236 silly resolved repository: { type: 'git', url: 'git://github.com/senchalabs/connect.git' },
236 silly resolved author:
236 silly resolved { name: 'TJ Holowaychuk',
236 silly resolved email: 'tj@vision-media.ca',
236 silly resolved url: 'http://tjholowaychuk.com' },
236 silly resolved dependencies:
236 silly resolved { qs: '0.6.5',
236 silly resolved formidable: '1.0.14',
236 silly resolved 'cookie-signature': '1.0.1',
236 silly resolved 'buffer-crc32': '0.2.1',
236 silly resolved cookie: '0.0.5',
236 silly resolved send: '0.1.1',
236 silly resolved bytes: '0.2.0',
236 silly resolved fresh: '0.1.0',
236 silly resolved pause: '0.0.1',
236 silly resolved debug: '*' },
236 silly resolved devDependencies: { should: '*', mocha: '*', jade: '*', dox: '*' },
236 silly resolved main: 'index',
236 silly resolved engines: { node: '>= 0.8.0' },
236 silly resolved scripts: { test: 'make' },
236 silly resolved readme: '[![build status](https://secure.travis-ci.org/senchalabs/connect.png)](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',
236 silly resolved readmeFilename: 'Readme.md',
236 silly resolved bugs: { url: 'https://github.com/senchalabs/connect/issues' },
236 silly resolved _id: 'connect@2.7.11',
236 silly resolved _from: 'connect@2.7.11' },
236 silly resolved { name: 'commander',
236 silly resolved version: '0.6.1',
236 silly resolved description: 'the complete solution for node.js command-line programs',
236 silly resolved keywords: [ 'command', 'option', 'parser', 'prompt', 'stdin' ],
236 silly resolved author: { name: 'TJ Holowaychuk', email: 'tj@vision-media.ca' },
236 silly resolved repository:
236 silly resolved { type: 'git',
236 silly resolved url: 'https://github.com/visionmedia/commander.js.git' },
236 silly resolved dependencies: {},
236 silly resolved devDependencies: { should: '>= 0.0.1' },
236 silly resolved scripts: { test: 'make test' },
236 silly resolved main: 'index',
236 silly resolved engines: { node: '>= 0.4.x' },
236 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 [![Build Status](https://secure.travis-ci.org/visionmedia/commander.js.png)](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(\' - pineappe\');\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 pineappe\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## .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## 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 &lt;tj@vision-media.ca&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.',
236 silly resolved readmeFilename: 'Readme.md',
236 silly resolved bugs: { url: 'https://github.com/visionmedia/commander.js/issues' },
236 silly resolved _id: 'commander@0.6.1',
236 silly resolved _from: 'commander@0.6.1' },
236 silly resolved { name: 'range-parser',
236 silly resolved author:
236 silly resolved { name: 'TJ Holowaychuk',
236 silly resolved email: 'tj@vision-media.ca',
236 silly resolved url: 'http://tjholowaychuk.com' },
236 silly resolved description: 'Range header field string parser',
236 silly resolved version: '0.0.4',
236 silly resolved main: 'index.js',
236 silly resolved dependencies: {},
236 silly resolved devDependencies: { mocha: '*', should: '*' },
236 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```',
236 silly resolved readmeFilename: 'Readme.md',
236 silly resolved _id: 'range-parser@0.0.4',
236 silly resolved _from: 'range-parser@0.0.4' },
236 silly resolved { name: 'mkdirp',
236 silly resolved description: 'Recursively mkdir, like `mkdir -p`',
236 silly resolved version: '0.3.4',
236 silly resolved author:
236 silly resolved { name: 'James Halliday',
236 silly resolved email: 'mail@substack.net',
236 silly resolved url: 'http://substack.net' },
236 silly resolved main: './index',
236 silly resolved keywords: [ 'mkdir', 'directory' ],
236 silly resolved repository:
236 silly resolved { type: 'git',
236 silly resolved url: 'http://github.com/substack/node-mkdirp.git' },
236 silly resolved scripts: { test: 'tap test/*.js' },
236 silly resolved devDependencies: { tap: '~0.2.4' },
236 silly resolved license: 'MIT/X11',
236 silly resolved engines: { node: '*' },
236 silly resolved readme: 'mkdirp\n======\n\nLike `mkdir -p`, but in node.js!\n\n[![build status](https://secure.travis-ci.org/substack/node-mkdirp.png)](http://travis-ci.org/substack/node-mkdirp)\n\nexample\n=======\n\npow.js\n------\n var mkdirp = require(\'mkdirp\');\n \n mkdirp(\'/tmp/foo/bar/baz\', function (err) {\n if (err) console.error(err)\n else console.log(\'pow!\')\n });\n\nOutput\n pow!\n\nAnd now /tmp/foo/bar/baz exists, huzzah!\n\nmethods\n=======\n\nvar mkdirp = require(\'mkdirp\');\n\nmkdirp(dir, mode, cb)\n---------------------\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\nmkdirp.sync(dir, mode)\n----------------------\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\ninstall\n=======\n\nWith [npm](http://npmjs.org) do:\n\n npm install mkdirp\n\nlicense\n=======\n\nMIT/X11\n',
236 silly resolved readmeFilename: 'README.markdown',
236 silly resolved bugs: { url: 'https://github.com/substack/node-mkdirp/issues' },
236 silly resolved _id: 'mkdirp@0.3.4',
236 silly resolved _from: 'mkdirp@0.3.4' },
236 silly resolved { author: { name: 'Roman Shtylman', email: 'shtylman@gmail.com' },
236 silly resolved name: 'cookie',
236 silly resolved description: 'cookie parsing and serialization',
236 silly resolved version: '0.1.0',
236 silly resolved repository:
236 silly resolved { type: 'git',
236 silly resolved url: 'git://github.com/shtylman/node-cookie.git' },
236 silly resolved keywords: [ 'cookie', 'cookies' ],
236 silly resolved main: 'index.js',
236 silly resolved scripts: { test: 'mocha' },
236 silly resolved dependencies: {},
236 silly resolved devDependencies: { mocha: '1.x.x' },
236 silly resolved optionalDependencies: {},
236 silly resolved engines: { node: '*' },
236 silly resolved readme: '# cookie [![Build Status](https://secure.travis-ci.org/shtylman/node-cookie.png?branch=master)](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',
236 silly resolved readmeFilename: 'README.md',
236 silly resolved bugs: { url: 'https://github.com/shtylman/node-cookie/issues' },
236 silly resolved _id: 'cookie@0.1.0',
236 silly resolved _from: 'cookie@0.1.0' },
236 silly resolved { name: 'methods',
236 silly resolved version: '0.0.1',
236 silly resolved description: 'HTTP methods that node supports',
236 silly resolved main: 'index.js',
236 silly resolved scripts: { test: 'echo "Error: no test specified" && exit 1' },
236 silly resolved keywords: [ 'http', 'methods' ],
236 silly resolved author: { name: 'TJ Holowaychuk' },
236 silly resolved license: 'MIT',
236 silly resolved readme: 'ERROR: No README data found!',
236 silly resolved _id: 'methods@0.0.1',
236 silly resolved _from: 'methods@0.0.1' },
236 silly resolved { author:
236 silly resolved { name: 'Brian J. Brennan',
236 silly resolved email: 'brianloveswords@gmail.com',
236 silly resolved url: 'http://bjb.io' },
236 silly resolved name: 'buffer-crc32',
236 silly resolved description: 'A pure javascript CRC32 algorithm that plays nice with binary data',
236 silly resolved version: '0.2.1',
236 silly resolved contributors: [ [Object] ],
236 silly resolved homepage: 'https://github.com/brianloveswords/buffer-crc32',
236 silly resolved repository:
236 silly resolved { type: 'git',
236 silly resolved url: 'git://github.com/brianloveswords/buffer-crc32.git' },
236 silly resolved main: 'index.js',
236 silly resolved scripts: { test: './node_modules/.bin/tap tests/*.test.js' },
236 silly resolved dependencies: {},
236 silly resolved devDependencies: { tap: '~0.2.5' },
236 silly resolved optionalDependencies: {},
236 silly resolved engines: { node: '*' },
236 silly resolved readme: '# buffer-crc32\n\n[![Build Status](https://secure.travis-ci.org/brianloveswords/buffer-crc32.png?branch=master)](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',
236 silly resolved readmeFilename: 'README.md',
236 silly resolved bugs: { url: 'https://github.com/brianloveswords/buffer-crc32/issues' },
236 silly resolved _id: 'buffer-crc32@0.2.1',
236 silly resolved _from: 'buffer-crc32@0.2.1' },
236 silly resolved { name: 'fresh',
236 silly resolved author:
236 silly resolved { name: 'TJ Holowaychuk',
236 silly resolved email: 'tj@vision-media.ca',
236 silly resolved url: 'http://tjholowaychuk.com' },
236 silly resolved description: 'HTTP response freshness testing',
236 silly resolved version: '0.1.0',
236 silly resolved main: 'index.js',
236 silly resolved dependencies: {},
236 silly resolved devDependencies: { mocha: '*', should: '*' },
236 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```',
236 silly resolved readmeFilename: 'Readme.md',
236 silly resolved _id: 'fresh@0.1.0',
236 silly resolved _from: 'fresh@0.1.0' },
236 silly resolved { name: 'cookie-signature',
236 silly resolved version: '1.0.1',
236 silly resolved description: 'Sign and unsign cookies',
236 silly resolved keywords: [ 'cookie', 'sign', 'unsign' ],
236 silly resolved author: { name: 'TJ Holowaychuk', email: 'tj@learnboost.com' },
236 silly resolved dependencies: {},
236 silly resolved devDependencies: { mocha: '*', should: '*' },
236 silly resolved main: 'index',
236 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 &lt;tj@learnboost.com&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.',
236 silly resolved readmeFilename: 'Readme.md',
236 silly resolved _id: 'cookie-signature@1.0.1',
236 silly resolved _from: 'cookie-signature@1.0.1' },
236 silly resolved { name: 'send',
236 silly resolved version: '0.1.0',
236 silly resolved description: 'Better streaming static file server with Range and conditional-GET support',
236 silly resolved keywords: [ 'static', 'file', 'server' ],
236 silly resolved author: { name: 'TJ Holowaychuk', email: 'tj@vision-media.ca' },
236 silly resolved dependencies:
236 silly resolved { debug: '*',
236 silly resolved mime: '1.2.6',
236 silly resolved fresh: '0.1.0',
236 silly resolved 'range-parser': '0.0.4' },
236 silly resolved devDependencies: { mocha: '*', should: '*', supertest: '0.0.1', connect: '2.x' },
236 silly resolved scripts: { test: 'make test' },
236 silly resolved main: 'index',
236 silly resolved readme: '\n# 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});\n```\n\n Serving from a root directory with custom error-handling:\n\n```js\nvar http = require(\'http\');\nvar send = require(\'send\');\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});\n```\n\n## API\n\n### Events\n\n - `error` an error occurred `(err)`\n - `directory` a directory was requested\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## 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 &lt;tj@vision-media.ca&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.',
236 silly resolved readmeFilename: 'Readme.md',
236 silly resolved _id: 'send@0.1.0',
236 silly resolved _from: 'send@0.1.0' },
236 silly resolved { name: 'debug',
236 silly resolved version: '0.7.2',
236 silly resolved repository: { type: 'git', url: 'git://github.com/visionmedia/debug.git' },
236 silly resolved description: 'small debugging utility',
236 silly resolved keywords: [ 'debug', 'log', 'debugger' ],
236 silly resolved author: { name: 'TJ Holowaychuk', email: 'tj@vision-media.ca' },
236 silly resolved dependencies: {},
236 silly resolved devDependencies: { mocha: '*' },
236 silly resolved main: 'lib/debug.js',
236 silly resolved browserify: 'debug.js',
236 silly resolved browser: './debug.js',
236 silly resolved engines: { node: '*' },
236 silly resolved component: { scripts: [Object] },
236 silly resolved readme: '\n# 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 ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png)\n\n ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png)\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 ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png)\n\n When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:\n \n ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png)\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 &lt;tj@vision-media.ca&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.',
236 silly resolved readmeFilename: 'Readme.md',
236 silly resolved bugs: { url: 'https://github.com/visionmedia/debug/issues' },
236 silly resolved _id: 'debug@0.7.2',
236 silly resolved _from: 'debug@*' } ]
237 info install connect@2.7.11 into /Users/olivier/node_modules/express
238 info install commander@0.6.1 into /Users/olivier/node_modules/express
239 info install range-parser@0.0.4 into /Users/olivier/node_modules/express
240 info install mkdirp@0.3.4 into /Users/olivier/node_modules/express
241 info install cookie@0.1.0 into /Users/olivier/node_modules/express
242 info install methods@0.0.1 into /Users/olivier/node_modules/express
243 info install buffer-crc32@0.2.1 into /Users/olivier/node_modules/express
244 info install fresh@0.1.0 into /Users/olivier/node_modules/express
245 info install cookie-signature@1.0.1 into /Users/olivier/node_modules/express
246 info install send@0.1.0 into /Users/olivier/node_modules/express
247 info install debug@0.7.2 into /Users/olivier/node_modules/express
248 info installOne connect@2.7.11
249 info installOne commander@0.6.1
250 info installOne range-parser@0.0.4
251 info installOne mkdirp@0.3.4
252 info installOne cookie@0.1.0
253 info installOne methods@0.0.1
254 info installOne buffer-crc32@0.2.1
255 info installOne fresh@0.1.0
256 info installOne cookie-signature@1.0.1
257 info installOne send@0.1.0
258 info installOne debug@0.7.2
259 verbose from cache /Users/olivier/.npm/connect/2.7.11/package/package.json
260 info /Users/olivier/node_modules/express/node_modules/connect unbuild
261 verbose read json /Users/olivier/node_modules/express/node_modules/connect/package.json
262 verbose from cache /Users/olivier/.npm/commander/0.6.1/package/package.json
263 info /Users/olivier/node_modules/express/node_modules/commander unbuild
264 verbose read json /Users/olivier/node_modules/express/node_modules/commander/package.json
265 verbose from cache /Users/olivier/.npm/range-parser/0.0.4/package/package.json
266 info /Users/olivier/node_modules/express/node_modules/range-parser unbuild
267 verbose read json /Users/olivier/node_modules/express/node_modules/range-parser/package.json
268 verbose from cache /Users/olivier/.npm/mkdirp/0.3.4/package/package.json
269 info /Users/olivier/node_modules/express/node_modules/mkdirp unbuild
270 verbose read json /Users/olivier/node_modules/express/node_modules/mkdirp/package.json
271 verbose from cache /Users/olivier/.npm/cookie/0.1.0/package/package.json
272 info /Users/olivier/node_modules/express/node_modules/cookie unbuild
273 verbose read json /Users/olivier/node_modules/express/node_modules/cookie/package.json
274 verbose from cache /Users/olivier/.npm/methods/0.0.1/package/package.json
275 info /Users/olivier/node_modules/express/node_modules/methods unbuild
276 verbose read json /Users/olivier/node_modules/express/node_modules/methods/package.json
277 verbose from cache /Users/olivier/.npm/buffer-crc32/0.2.1/package/package.json
278 info /Users/olivier/node_modules/express/node_modules/buffer-crc32 unbuild
279 verbose read json /Users/olivier/node_modules/express/node_modules/buffer-crc32/package.json
280 verbose from cache /Users/olivier/.npm/fresh/0.1.0/package/package.json
281 info /Users/olivier/node_modules/express/node_modules/fresh unbuild
282 verbose read json /Users/olivier/node_modules/express/node_modules/fresh/package.json
283 verbose from cache /Users/olivier/.npm/cookie-signature/1.0.1/package/package.json
284 info /Users/olivier/node_modules/express/node_modules/cookie-signature unbuild
285 verbose read json /Users/olivier/node_modules/express/node_modules/cookie-signature/package.json
286 verbose from cache /Users/olivier/.npm/send/0.1.0/package/package.json
287 info /Users/olivier/node_modules/express/node_modules/send unbuild
288 verbose read json /Users/olivier/node_modules/express/node_modules/send/package.json
289 verbose from cache /Users/olivier/.npm/debug/0.7.2/package/package.json
290 info /Users/olivier/node_modules/express/node_modules/debug unbuild
291 verbose read json /Users/olivier/node_modules/express/node_modules/debug/package.json
292 verbose tar unpack /Users/olivier/.npm/connect/2.7.11/package.tgz
293 silly lockFile 85424ca5-les-express-node-modules-connect tar:///Users/olivier/node_modules/express/node_modules/connect
294 verbose lock tar:///Users/olivier/node_modules/express/node_modules/connect /Users/olivier/.npm/85424ca5-les-express-node-modules-connect.lock
295 silly lockFile 691c2456-r-npm-connect-2-7-11-package-tgz tar:///Users/olivier/.npm/connect/2.7.11/package.tgz
296 verbose lock tar:///Users/olivier/.npm/connect/2.7.11/package.tgz /Users/olivier/.npm/691c2456-r-npm-connect-2-7-11-package-tgz.lock
297 verbose tar unpack /Users/olivier/.npm/commander/0.6.1/package.tgz
298 silly lockFile 599f5529-s-express-node-modules-commander tar:///Users/olivier/node_modules/express/node_modules/commander
299 verbose lock tar:///Users/olivier/node_modules/express/node_modules/commander /Users/olivier/.npm/599f5529-s-express-node-modules-commander.lock
300 silly lockFile f858ed14--npm-commander-0-6-1-package-tgz tar:///Users/olivier/.npm/commander/0.6.1/package.tgz
301 verbose lock tar:///Users/olivier/.npm/commander/0.6.1/package.tgz /Users/olivier/.npm/f858ed14--npm-commander-0-6-1-package-tgz.lock
302 verbose tar unpack /Users/olivier/.npm/range-parser/0.0.4/package.tgz
303 silly lockFile fda1fa82-xpress-node-modules-range-parser tar:///Users/olivier/node_modules/express/node_modules/range-parser
304 verbose lock tar:///Users/olivier/node_modules/express/node_modules/range-parser /Users/olivier/.npm/fda1fa82-xpress-node-modules-range-parser.lock
305 silly lockFile ece5f273-m-range-parser-0-0-4-package-tgz tar:///Users/olivier/.npm/range-parser/0.0.4/package.tgz
306 verbose lock tar:///Users/olivier/.npm/range-parser/0.0.4/package.tgz /Users/olivier/.npm/ece5f273-m-range-parser-0-0-4-package-tgz.lock
307 verbose tar unpack /Users/olivier/.npm/mkdirp/0.3.4/package.tgz
308 silly lockFile 2e0b2238-ules-express-node-modules-mkdirp tar:///Users/olivier/node_modules/express/node_modules/mkdirp
309 verbose lock tar:///Users/olivier/node_modules/express/node_modules/mkdirp /Users/olivier/.npm/2e0b2238-ules-express-node-modules-mkdirp.lock
310 silly lockFile 831ea8c5-ier-npm-mkdirp-0-3-4-package-tgz tar:///Users/olivier/.npm/mkdirp/0.3.4/package.tgz
311 verbose lock tar:///Users/olivier/.npm/mkdirp/0.3.4/package.tgz /Users/olivier/.npm/831ea8c5-ier-npm-mkdirp-0-3-4-package-tgz.lock
312 verbose tar unpack /Users/olivier/.npm/cookie/0.1.0/package.tgz
313 silly lockFile 9b5437d4-ules-express-node-modules-cookie tar:///Users/olivier/node_modules/express/node_modules/cookie
314 verbose lock tar:///Users/olivier/node_modules/express/node_modules/cookie /Users/olivier/.npm/9b5437d4-ules-express-node-modules-cookie.lock
315 silly lockFile 07abbc2a-ier-npm-cookie-0-1-0-package-tgz tar:///Users/olivier/.npm/cookie/0.1.0/package.tgz
316 verbose lock tar:///Users/olivier/.npm/cookie/0.1.0/package.tgz /Users/olivier/.npm/07abbc2a-ier-npm-cookie-0-1-0-package-tgz.lock
317 verbose tar unpack /Users/olivier/.npm/methods/0.0.1/package.tgz
318 silly lockFile 95828b40-les-express-node-modules-methods tar:///Users/olivier/node_modules/express/node_modules/methods
319 verbose lock tar:///Users/olivier/node_modules/express/node_modules/methods /Users/olivier/.npm/95828b40-les-express-node-modules-methods.lock
320 silly lockFile bfec3099-er-npm-methods-0-0-1-package-tgz tar:///Users/olivier/.npm/methods/0.0.1/package.tgz
321 verbose lock tar:///Users/olivier/.npm/methods/0.0.1/package.tgz /Users/olivier/.npm/bfec3099-er-npm-methods-0-0-1-package-tgz.lock
322 verbose tar unpack /Users/olivier/.npm/buffer-crc32/0.2.1/package.tgz
323 silly lockFile 92e2f3d1-xpress-node-modules-buffer-crc32 tar:///Users/olivier/node_modules/express/node_modules/buffer-crc32
324 verbose lock tar:///Users/olivier/node_modules/express/node_modules/buffer-crc32 /Users/olivier/.npm/92e2f3d1-xpress-node-modules-buffer-crc32.lock
325 silly lockFile 8b2382f3-m-buffer-crc32-0-2-1-package-tgz tar:///Users/olivier/.npm/buffer-crc32/0.2.1/package.tgz
326 verbose lock tar:///Users/olivier/.npm/buffer-crc32/0.2.1/package.tgz /Users/olivier/.npm/8b2382f3-m-buffer-crc32-0-2-1-package-tgz.lock
327 verbose tar unpack /Users/olivier/.npm/fresh/0.1.0/package.tgz
328 silly lockFile f6e7b918-dules-express-node-modules-fresh tar:///Users/olivier/node_modules/express/node_modules/fresh
329 verbose lock tar:///Users/olivier/node_modules/express/node_modules/fresh /Users/olivier/.npm/f6e7b918-dules-express-node-modules-fresh.lock
330 silly lockFile 683c43dc-vier-npm-fresh-0-1-0-package-tgz tar:///Users/olivier/.npm/fresh/0.1.0/package.tgz
331 verbose lock tar:///Users/olivier/.npm/fresh/0.1.0/package.tgz /Users/olivier/.npm/683c43dc-vier-npm-fresh-0-1-0-package-tgz.lock
332 verbose tar unpack /Users/olivier/.npm/cookie-signature/1.0.1/package.tgz
333 silly lockFile a299a2fc-ss-node-modules-cookie-signature tar:///Users/olivier/node_modules/express/node_modules/cookie-signature
334 verbose lock tar:///Users/olivier/node_modules/express/node_modules/cookie-signature /Users/olivier/.npm/a299a2fc-ss-node-modules-cookie-signature.lock
335 silly lockFile fcbef0b0-okie-signature-1-0-1-package-tgz tar:///Users/olivier/.npm/cookie-signature/1.0.1/package.tgz
336 verbose lock tar:///Users/olivier/.npm/cookie-signature/1.0.1/package.tgz /Users/olivier/.npm/fcbef0b0-okie-signature-1-0-1-package-tgz.lock
337 verbose tar unpack /Users/olivier/.npm/send/0.1.0/package.tgz
338 silly lockFile 440ab806-odules-express-node-modules-send tar:///Users/olivier/node_modules/express/node_modules/send
339 verbose lock tar:///Users/olivier/node_modules/express/node_modules/send /Users/olivier/.npm/440ab806-odules-express-node-modules-send.lock
340 silly lockFile 845b524e-ivier-npm-send-0-1-0-package-tgz tar:///Users/olivier/.npm/send/0.1.0/package.tgz
341 verbose lock tar:///Users/olivier/.npm/send/0.1.0/package.tgz /Users/olivier/.npm/845b524e-ivier-npm-send-0-1-0-package-tgz.lock
342 verbose tar unpack /Users/olivier/.npm/debug/0.7.2/package.tgz
343 silly lockFile db591032-dules-express-node-modules-debug tar:///Users/olivier/node_modules/express/node_modules/debug
344 verbose lock tar:///Users/olivier/node_modules/express/node_modules/debug /Users/olivier/.npm/db591032-dules-express-node-modules-debug.lock
345 silly lockFile c5f44dab-vier-npm-debug-0-7-2-package-tgz tar:///Users/olivier/.npm/debug/0.7.2/package.tgz
346 verbose lock tar:///Users/olivier/.npm/debug/0.7.2/package.tgz /Users/olivier/.npm/c5f44dab-vier-npm-debug-0-7-2-package-tgz.lock
347 silly gunzTarPerm modes [ '755', '644' ]
348 silly gunzTarPerm modes [ '755', '644' ]
349 silly gunzTarPerm modes [ '755', '644' ]
350 silly gunzTarPerm modes [ '755', '644' ]
351 silly gunzTarPerm modes [ '755', '644' ]
352 silly gunzTarPerm modes [ '755', '644' ]
353 silly gunzTarPerm modes [ '755', '644' ]
354 silly gunzTarPerm extractEntry package.json
355 silly gunzTarPerm extractEntry package.json
356 silly gunzTarPerm extractEntry package.json
357 silly gunzTarPerm extractEntry package.json
358 silly gunzTarPerm extractEntry package.json
359 silly gunzTarPerm extractEntry package.json
360 verbose read json /Users/olivier/node_modules/express/node_modules/connect/package.json
361 silly lockFile 85424ca5-les-express-node-modules-connect tar:///Users/olivier/node_modules/express/node_modules/connect
362 silly lockFile 85424ca5-les-express-node-modules-connect tar:///Users/olivier/node_modules/express/node_modules/connect
363 silly gunzTarPerm extractEntry .npmignore
364 silly gunzTarPerm extractEntry LICENSE
365 silly gunzTarPerm extractEntry .npmignore
366 silly gunzTarPerm extractEntry README.md
367 silly gunzTarPerm extractEntry index.js
368 silly gunzTarPerm extractEntry .npmignore
369 silly gunzTarPerm extractEntry index.js
370 silly gunzTarPerm extractEntry .npmignore
371 silly gunzTarPerm extractEntry index.js
372 silly gunzTarPerm extractEntry .npmignore
373 silly gunzTarPerm extractEntry index.js
374 silly lockFile 691c2456-r-npm-connect-2-7-11-package-tgz tar:///Users/olivier/.npm/connect/2.7.11/package.tgz
375 silly lockFile 691c2456-r-npm-connect-2-7-11-package-tgz tar:///Users/olivier/.npm/connect/2.7.11/package.tgz
376 info /Users/olivier/node_modules/express/node_modules/connect unbuild
377 verbose read json /Users/olivier/node_modules/express/node_modules/connect/package.json
378 verbose about to build /Users/olivier/node_modules/express
379 info /Users/olivier/node_modules/express unbuild
380 verbose from cache /Users/olivier/node_modules/express/package.json
381 info preuninstall express@3.2.6
382 silly gunzTarPerm extractEntry LICENSE
383 silly gunzTarPerm extractEntry index.js
384 silly gunzTarPerm extractEntry Makefile
385 silly gunzTarPerm extractEntry Readme.md
386 silly gunzTarPerm extractEntry History.md
387 silly gunzTarPerm extractEntry Makefile
388 silly gunzTarPerm extractEntry index.js
389 silly gunzTarPerm extractEntry .travis.yml
390 info uninstall express@3.2.6
391 silly gunzTarPerm extractEntry History.md
392 silly gunzTarPerm extractEntry Makefile
393 verbose true,/Users/olivier/node_modules,/Users/olivier/node_modules unbuild express@3.2.6
394 verbose /Users/olivier/node_modules/.bin,[object Object] binRoot
395 verbose read json /Users/olivier/node_modules/express/node_modules/methods/package.json
396 info postuninstall express@3.2.6
397 silly gunzTarPerm extractEntry .travis.yml
398 silly gunzTarPerm extractEntry test/parse.js
399 silly gunzTarPerm extractEntry Readme.md
400 silly gunzTarPerm extractEntry README.markdown
401 silly gunzTarPerm extractEntry examples/pow.js
402 silly gunzTarPerm extractEntry Readme.md
403 silly gunzTarPerm extractEntry lib/send.js
404 silly lockFile 95828b40-les-express-node-modules-methods tar:///Users/olivier/node_modules/express/node_modules/methods
405 silly lockFile 95828b40-les-express-node-modules-methods tar:///Users/olivier/node_modules/express/node_modules/methods
406 silly lockFile bfec3099-er-npm-methods-0-0-1-package-tgz tar:///Users/olivier/.npm/methods/0.0.1/package.tgz
407 silly lockFile bfec3099-er-npm-methods-0-0-1-package-tgz tar:///Users/olivier/.npm/methods/0.0.1/package.tgz
408 info preinstall methods@0.0.1
409 silly gunzTarPerm extractEntry lib/utils.js
410 silly gunzTarPerm extractEntry test/serialize.js
411 silly gunzTarPerm extractEntry test/mocha.opts
412 error error rolling back Error: ENOTEMPTY, rmdir '/Users/olivier/node_modules/express/node_modules/cookie'
412 error error rolling back express@3.2.6 { [Error: ENOTEMPTY, rmdir '/Users/olivier/node_modules/express/node_modules/cookie']
412 error error rolling back errno: 53,
412 error error rolling back code: 'ENOTEMPTY',
412 error error rolling back path: '/Users/olivier/node_modules/express/node_modules/cookie' }
413 error Error: ENOENT, open '/Users/olivier/node_modules/express/node_modules/connect/package.json'
414 error If you need help, you may report this log at:
414 error <http://github.com/isaacs/npm/issues>
414 error or email it to:
414 error <npm-@googlegroups.com>
415 error System Darwin 12.4.0
416 error command "node" "/opt/local/bin/npm" "install" "express"
417 error cwd /Users/olivier
418 error node -v v0.10.10
419 error npm -v 1.2.28
420 error path /Users/olivier/node_modules/express/node_modules/connect/package.json
421 error code ENOENT
422 error errno 34
423 verbose exit [ 34, true ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.