Skip to content

Instantly share code, notes, and snippets.

@itspolo
Created August 2, 2013 16:00
Show Gist options
  • Save itspolo/6141055 to your computer and use it in GitHub Desktop.
Save itspolo/6141055 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
4002 silly lockFile 4368777e-vaca-npm-retry-0-6-0-package-tgz tar:///Users/vaca/.npm/retry/0.6.0/package.tgz
4003 verbose lock tar:///Users/vaca/.npm/retry/0.6.0/package.tgz /Users/vaca/.npm/4368777e-vaca-npm-retry-0-6-0-package-tgz.lock
4004 silly gunzTarPerm extractEntry test/generators/test-bbb.js
4005 silly gunzTarPerm extractEntry test/generators/test-ember-starter.js
4006 info postinstall tmp@0.0.20
4007 verbose tar unpack /Users/vaca/.npm/throttleit/0.0.2/package.tgz
4008 silly lockFile f2803054-progress-node-modules-throttleit tar:///opt/local/lib/node_modules/bower/node_modules/request-progress/node_modules/throttleit
4009 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/request-progress/node_modules/throttleit /Users/vaca/.npm/f2803054-progress-node-modules-throttleit.lock
4010 silly lockFile bceedd0b-npm-throttleit-0-0-2-package-tgz tar:///Users/vaca/.npm/throttleit/0.0.2/package.tgz
4011 verbose lock tar:///Users/vaca/.npm/throttleit/0.0.2/package.tgz /Users/vaca/.npm/bceedd0b-npm-throttleit-0-0-2-package-tgz.lock
4012 silly gunzTarPerm extractEntry test/specs/prompts/rawlist.js
4013 silly gunzTarPerm extractEntry array/find.js
4014 silly gunzTarPerm extractEntry array/some.js
4015 silly gunzTarPerm extractEntry lib/utils/utils.js
4016 silly gunzTarPerm extractEntry .editorconfig
4017 silly gunzTarPerm modes [ '755', '644' ]
4018 silly gunzTarPerm modes [ '755', '644' ]
4019 silly lockFile 03921cda-odules-bower-node-modules-mkdirp tar:///opt/local/lib/node_modules/bower/node_modules/mkdirp
4020 silly lockFile 03921cda-odules-bower-node-modules-mkdirp tar:///opt/local/lib/node_modules/bower/node_modules/mkdirp
4021 silly lockFile d1348830-aca-npm-mkdirp-0-3-5-package-tgz tar:///Users/vaca/.npm/mkdirp/0.3.5/package.tgz
4022 silly lockFile d1348830-aca-npm-mkdirp-0-3-5-package-tgz tar:///Users/vaca/.npm/mkdirp/0.3.5/package.tgz
4023 silly lockFile 69eec346-dules-insight-node-modules-async tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/async
4024 silly lockFile 69eec346-dules-insight-node-modules-async tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/async
4025 silly addNameRange number 2 { name: 'read', range: '>=1.0.4-0 <1.1.0-0', hasData: true }
4026 silly addNameRange versions [ 'read',
4026 silly addNameRange [ '0.0.1',
4026 silly addNameRange '0.0.2',
4026 silly addNameRange '0.0.3',
4026 silly addNameRange '0.1.0',
4026 silly addNameRange '0.1.1',
4026 silly addNameRange '1.0.0',
4026 silly addNameRange '1.0.1',
4026 silly addNameRange '1.0.2',
4026 silly addNameRange '1.0.3',
4026 silly addNameRange '1.0.4',
4026 silly addNameRange '1.0.5' ] ]
4027 verbose addNamed [ 'read', '1.0.5' ]
4028 verbose addNamed [ '1.0.5', '1.0.5' ]
4029 silly lockFile 4450a55a-read-1-0-5 read@1.0.5
4030 verbose lock read@1.0.5 /Users/vaca/.npm/4450a55a-read-1-0-5.lock
4031 silly lockFile 07f40325-aca-npm-async-0-1-22-package-tgz tar:///Users/vaca/.npm/async/0.1.22/package.tgz
4032 silly lockFile 07f40325-aca-npm-async-0-1-22-package-tgz tar:///Users/vaca/.npm/async/0.1.22/package.tgz
4033 silly gunzTarPerm extractEntry package.json
4034 http 304 https://registry.npmjs.org/deep-extend
4035 silly registry.get cb [ 304,
4035 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
4035 silly registry.get etag: '"87U5558BWK5EBVST8WKK4YLJV"',
4035 silly registry.get date: 'Fri, 02 Aug 2013 15:55:10 GMT',
4035 silly registry.get 'content-length': '0' } ]
4036 verbose etag deep-extend from cache
4037 silly gunzTarPerm extractEntry package.json
4038 info preinstall mkdirp@0.3.5
4039 silly gunzTarPerm extractEntry test/helpers/fixtures.js
4040 silly gunzTarPerm extractEntry test/helpers/readline.js
4041 silly gunzTarPerm extractEntry test/generators/test-ember.js
4042 silly gunzTarPerm extractEntry test/generators/test-mocha-generator.js
4043 info preinstall async@0.1.22
4044 silly gunzTarPerm extractEntry array/filter.js
4045 silly gunzTarPerm extractEntry array/sort.js
4046 silly lockFile 995844dc-otifier-node-modules-configstore tar:///opt/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/configstore
4047 silly lockFile 995844dc-otifier-node-modules-configstore tar:///opt/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/configstore
4048 silly gunzTarPerm extractEntry bin/yaml2json
4049 silly gunzTarPerm extractEntry build
4050 silly gunzTarPerm extractEntry .npmignore
4051 silly gunzTarPerm extractEntry index.js
4052 verbose readDependencies using package.json deps
4053 silly lockFile 925bb2d6-pm-configstore-0-1-2-package-tgz tar:///Users/vaca/.npm/configstore/0.1.2/package.tgz
4054 silly lockFile 925bb2d6-pm-configstore-0-1-2-package-tgz tar:///Users/vaca/.npm/configstore/0.1.2/package.tgz
4055 silly gunzTarPerm extractEntry .npmignore
4056 silly gunzTarPerm extractEntry example.js
4057 verbose readDependencies using package.json deps
4058 silly resolved []
4059 verbose about to build /opt/local/lib/node_modules/bower/node_modules/mkdirp
4060 info build /opt/local/lib/node_modules/bower/node_modules/mkdirp
4061 verbose linkStuff [ true,
4061 verbose linkStuff '/opt/local/lib/node_modules',
4061 verbose linkStuff false,
4061 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules' ]
4062 info linkStuff mkdirp@0.3.5
4063 silly gunzTarPerm extractEntry tests/test-piped-redirect.js
4064 silly gunzTarPerm extractEntry tests/test-follow-all.js
4065 verbose readDependencies using package.json deps
4066 verbose readDependencies using package.json deps
4067 silly resolved []
4068 verbose about to build /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/async
4069 info build /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/async
4070 verbose linkStuff [ true,
4070 verbose linkStuff '/opt/local/lib/node_modules',
4070 verbose linkStuff false,
4070 verbose linkStuff '/opt/local/lib/node_modules/yo/node_modules/insight/node_modules' ]
4071 info linkStuff async@0.1.22
4072 verbose linkBins mkdirp@0.3.5
4073 verbose linkMans mkdirp@0.3.5
4074 verbose rebuildBundles mkdirp@0.3.5
4075 silly addNameRange number 2 { name: 'deep-extend',
4075 silly addNameRange range: '>=0.2.5-0 <0.3.0-0',
4075 silly addNameRange hasData: true }
4076 silly addNameRange versions [ 'deep-extend',
4076 silly addNameRange [ '0.2.0', '0.2.1', '0.2.2', '0.2.4', '0.2.5' ] ]
4077 verbose addNamed [ 'deep-extend', '0.2.5' ]
4078 verbose addNamed [ '0.2.5', '0.2.5' ]
4079 silly lockFile 9f87dccb-deep-extend-0-2-5 deep-extend@0.2.5
4080 verbose lock deep-extend@0.2.5 /Users/vaca/.npm/9f87dccb-deep-extend-0-2-5.lock
4081 info install mkdirp@0.3.5
4082 verbose linkBins async@0.1.22
4083 verbose linkMans async@0.1.22
4084 verbose rebuildBundles async@0.1.22
4085 info preinstall configstore@0.1.2
4086 http 304 https://registry.npmjs.org/optimist
4087 silly registry.get cb [ 304,
4087 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
4087 silly registry.get etag: '"7VTLKGSF8BV0P8PMZG3SDUJ94"',
4087 silly registry.get date: 'Fri, 02 Aug 2013 15:55:11 GMT',
4087 silly registry.get 'content-length': '0' } ]
4088 verbose etag optimist from cache
4089 http 304 https://registry.npmjs.org/osenv/0.0.3
4090 silly registry.get cb [ 304,
4090 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
4090 silly registry.get etag: '"988AFYLFBQBVSXZR0VKXG5JLY"',
4090 silly registry.get date: 'Fri, 02 Aug 2013 15:55:11 GMT',
4090 silly registry.get 'content-length': '0' } ]
4091 verbose etag osenv/0.0.3 from cache
4092 info install async@0.1.22
4093 silly gunzTarPerm extractEntry test/specs/api.js
4094 silly gunzTarPerm extractEntry test/specs/inquirer.js
4095 silly gunzTarPerm extractEntry tests/test-pipes.js
4096 silly gunzTarPerm extractEntry tests/test-pool.js
4097 info postinstall mkdirp@0.3.5
4098 silly lockFile 4450a55a-read-1-0-5 read@1.0.5
4099 silly lockFile 4450a55a-read-1-0-5 read@1.0.5
4100 silly gunzTarPerm extractEntry array/every.js
4101 silly gunzTarPerm extractEntry array/split.js
4102 info postinstall async@0.1.22
4103 silly lockFile 8e7fcd4d-read-1-0-4 read@~1.0.4
4104 silly lockFile 8e7fcd4d-read-1-0-4 read@~1.0.4
4105 silly gunzTarPerm extractEntry lodash.js
4106 verbose readDependencies using package.json deps
4107 silly resolved [ { name: 'read',
4107 silly resolved version: '1.0.5',
4107 silly resolved main: 'lib/read.js',
4107 silly resolved dependencies: { 'mute-stream': '~0.0.4' },
4107 silly resolved devDependencies: { tap: '*' },
4107 silly resolved engines: { node: '>=0.8' },
4107 silly resolved author:
4107 silly resolved { name: 'Isaac Z. Schlueter',
4107 silly resolved email: 'i@izs.me',
4107 silly resolved url: 'http://blog.izs.me/' },
4107 silly resolved description: 'read(1) for node programs',
4107 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/read.git' },
4107 silly resolved license: 'BSD',
4107 silly resolved scripts: { test: 'tap test/*.js' },
4107 silly resolved readme: '## read\n\nFor reading user input from stdin.\n\nSimilar to the `readline` builtin\'s `question()` method, but with a\nfew more features.\n\n## USAGE\n\n```javascript\nvar read = require("read")\nread(options, callback)\n```\n\nThe callback gets called with either the user input, or the default\nspecified, or an error, as `callback(error, result, isDefault)`\nnode style.\n\n## OPTIONS\n\nEvery option is optional.\n\n* `prompt` What to write to stdout before reading input.\n* `silent` Don\'t echo the output as the user types it.\n* `replace` Replace silenced characters with the supplied character value.\n* `timeout` Number of ms to wait for user input before giving up.\n* `default` The default value if the user enters nothing.\n* `edit` Allow the user to edit the default value.\n* `terminal` Treat the output as a TTY, whether it is or not.\n* `input` Readable stream to get input data from. (default `process.stdin`)\n* `output` Writeable stream to write prompts to. (default: `process.stdout`)\n\nIf silent is true, and the input is a TTY, then read will set raw\nmode, and read character by character.\n\n## COMPATIBILITY\n\nThis module works sort of with node 0.6. It does not work with node\nversions less than 0.6. It is best on node 0.8.\n\nOn node version 0.6, it will remove all listeners on the input\nstream\'s `data` and `keypress` events, because the readline module did\nnot fully clean up after itself in that version of node, and did not\nmake it possible to clean up after it in a way that has no potential\nfor side effects.\n\nAdditionally, some of the readline options (like `terminal`) will not\nfunction in versions of node before 0.8, because they were not\nimplemented in the builtin readline module.\n\n## CONTRIBUTING\n\nPatches welcome.\n',
4107 silly resolved readmeFilename: 'README.md',
4107 silly resolved bugs: { url: 'https://github.com/isaacs/read/issues' },
4107 silly resolved _id: 'read@1.0.5',
4107 silly resolved _from: 'read@~1.0.4' } ]
4108 info install read@1.0.5 into /opt/local/lib/node_modules/bower/node_modules/promptly
4109 info installOne read@1.0.5
4110 silly gunzTarPerm extractEntry LICENSE.txt
4111 verbose readDependencies using package.json deps
4112 silly gunzTarPerm extractEntry demo/demo.html
4113 silly gunzTarPerm extractEntry src/cli/json2yaml.js
4114 silly gunzTarPerm extractEntry index.js
4115 silly gunzTarPerm extractEntry History.md
4116 silly gunzTarPerm extractEntry License
4117 silly gunzTarPerm extractEntry Makefile
4118 info /opt/local/lib/node_modules/bower/node_modules/promptly/node_modules/read unbuild
4119 silly lockFile 380b90a3-ode-modules-bower-node-modules-q tar:///opt/local/lib/node_modules/bower/node_modules/q
4120 silly lockFile 380b90a3-ode-modules-bower-node-modules-q tar:///opt/local/lib/node_modules/bower/node_modules/q
4121 verbose cache add [ 'lodash@~1.2.1', null ]
4122 verbose cache add name=undefined spec="lodash@~1.2.1" args=["lodash@~1.2.1",null]
4123 verbose parsed url { protocol: null,
4123 verbose parsed url slashes: null,
4123 verbose parsed url auth: null,
4123 verbose parsed url host: null,
4123 verbose parsed url port: null,
4123 verbose parsed url hostname: null,
4123 verbose parsed url hash: null,
4123 verbose parsed url search: null,
4123 verbose parsed url query: null,
4123 verbose parsed url pathname: 'lodash@~1.2.1',
4123 verbose parsed url path: 'lodash@~1.2.1',
4123 verbose parsed url href: 'lodash@~1.2.1' }
4124 verbose cache add name="lodash" spec="~1.2.1" args=["lodash","~1.2.1"]
4125 verbose parsed url { protocol: null,
4125 verbose parsed url slashes: null,
4125 verbose parsed url auth: null,
4125 verbose parsed url host: null,
4125 verbose parsed url port: null,
4125 verbose parsed url hostname: null,
4125 verbose parsed url hash: null,
4125 verbose parsed url search: null,
4125 verbose parsed url query: null,
4125 verbose parsed url pathname: '~1.2.1',
4125 verbose parsed url path: '~1.2.1',
4125 verbose parsed url href: '~1.2.1' }
4126 verbose addNamed [ 'lodash', '~1.2.1' ]
4127 verbose addNamed [ null, '>=1.2.1-0 <1.3.0-0' ]
4128 silly lockFile 52b3d2d9-lodash-1-2-1 lodash@~1.2.1
4129 verbose lock lodash@~1.2.1 /Users/vaca/.npm/52b3d2d9-lodash-1-2-1.lock
4130 silly gunzTarPerm extractEntry tests/test-pipes.js
4131 silly gunzTarPerm extractEntry tests/test-follow-all-303.js
4132 silly lockFile 92c51a50-ers-vaca-npm-q-0-9-6-package-tgz tar:///Users/vaca/.npm/q/0.9.6/package.tgz
4133 silly lockFile 92c51a50-ers-vaca-npm-q-0-9-6-package-tgz tar:///Users/vaca/.npm/q/0.9.6/package.tgz
4134 verbose cache add [ 'yamljs@~0.1.4', null ]
4135 verbose cache add name=undefined spec="yamljs@~0.1.4" args=["yamljs@~0.1.4",null]
4136 verbose parsed url { protocol: null,
4136 verbose parsed url slashes: null,
4136 verbose parsed url auth: null,
4136 verbose parsed url host: null,
4136 verbose parsed url port: null,
4136 verbose parsed url hostname: null,
4136 verbose parsed url hash: null,
4136 verbose parsed url search: null,
4136 verbose parsed url query: null,
4136 verbose parsed url pathname: 'yamljs@~0.1.4',
4136 verbose parsed url path: 'yamljs@~0.1.4',
4136 verbose parsed url href: 'yamljs@~0.1.4' }
4137 verbose cache add name="yamljs" spec="~0.1.4" args=["yamljs","~0.1.4"]
4138 verbose parsed url { protocol: null,
4138 verbose parsed url slashes: null,
4138 verbose parsed url auth: null,
4138 verbose parsed url host: null,
4138 verbose parsed url port: null,
4138 verbose parsed url hostname: null,
4138 verbose parsed url hash: null,
4138 verbose parsed url search: null,
4138 verbose parsed url query: null,
4138 verbose parsed url pathname: '~0.1.4',
4138 verbose parsed url path: '~0.1.4',
4138 verbose parsed url href: '~0.1.4' }
4139 verbose addNamed [ 'yamljs', '~0.1.4' ]
4140 verbose addNamed [ null, '>=0.1.4-0 <0.2.0-0' ]
4141 silly lockFile 54401c5b-yamljs-0-1-4 yamljs@~0.1.4
4142 verbose lock yamljs@~0.1.4 /Users/vaca/.npm/54401c5b-yamljs-0-1-4.lock
4143 silly addNameRange { name: 'lodash', range: '>=1.2.1-0 <1.3.0-0', hasData: false }
4144 silly addNameRange number 2 { name: 'optimist', range: '>=0.6.0-0 <0.7.0-0', hasData: true }
4145 silly addNameRange versions [ 'optimist',
4145 silly addNameRange [ '0.0.1',
4145 silly addNameRange '0.0.2',
4145 silly addNameRange '0.0.4',
4145 silly addNameRange '0.0.5',
4145 silly addNameRange '0.0.6',
4145 silly addNameRange '0.0.7',
4145 silly addNameRange '0.1.0',
4145 silly addNameRange '0.1.1',
4145 silly addNameRange '0.1.2',
4145 silly addNameRange '0.1.3',
4145 silly addNameRange '0.1.4',
4145 silly addNameRange '0.1.5',
4145 silly addNameRange '0.1.6',
4145 silly addNameRange '0.1.7',
4145 silly addNameRange '0.1.8',
4145 silly addNameRange '0.1.9',
4145 silly addNameRange '0.0.3',
4145 silly addNameRange '0.2.0',
4145 silly addNameRange '0.2.1',
4145 silly addNameRange '0.2.2',
4145 silly addNameRange '0.2.3',
4145 silly addNameRange '0.2.4',
4145 silly addNameRange '0.2.5',
4145 silly addNameRange '0.2.6',
4145 silly addNameRange '0.2.7',
4145 silly addNameRange '0.2.8',
4145 silly addNameRange '0.3.0',
4145 silly addNameRange '0.3.1',
4145 silly addNameRange '0.3.3',
4145 silly addNameRange '0.3.4',
4145 silly addNameRange '0.3.5',
4145 silly addNameRange '0.3.6',
4145 silly addNameRange '0.3.7',
4145 silly addNameRange '0.4.0',
4145 silly addNameRange '0.5.0',
4145 silly addNameRange '0.5.1',
4145 silly addNameRange '0.5.2',
4145 silly addNameRange '0.6.0' ] ]
4146 verbose addNamed [ 'optimist', '0.6.0' ]
4147 verbose addNamed [ '0.6.0', '0.6.0' ]
4148 silly lockFile 6403b4d6-optimist-0-6-0 optimist@0.6.0
4149 verbose lock optimist@0.6.0 /Users/vaca/.npm/6403b4d6-optimist-0-6-0.lock
4150 verbose tar unpack /Users/vaca/.npm/read/1.0.5/package.tgz
4151 silly lockFile a589898f-dules-promptly-node-modules-read tar:///opt/local/lib/node_modules/bower/node_modules/promptly/node_modules/read
4152 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/promptly/node_modules/read /Users/vaca/.npm/a589898f-dules-promptly-node-modules-read.lock
4153 silly lockFile 3900bda9--vaca-npm-read-1-0-5-package-tgz tar:///Users/vaca/.npm/read/1.0.5/package.tgz
4154 verbose lock tar:///Users/vaca/.npm/read/1.0.5/package.tgz /Users/vaca/.npm/3900bda9--vaca-npm-read-1-0-5-package-tgz.lock
4155 silly gunzTarPerm modes [ '755', '644' ]
4156 silly addNameRange { name: 'yamljs', range: '>=0.1.4-0 <0.2.0-0', hasData: false }
4157 info preinstall q@0.9.6
4158 silly gunzTarPerm extractEntry tests/test-follow-all.js
4159 silly gunzTarPerm extractEntry tests/test-protocol-changing-redirect.js
4160 silly gunzTarPerm modes [ '755', '644' ]
4161 silly gunzTarPerm extractEntry array/difference.js
4162 silly gunzTarPerm extractEntry array/toLookup.js
4163 silly lockFile 9f87dccb-deep-extend-0-2-5 deep-extend@0.2.5
4164 silly lockFile 9f87dccb-deep-extend-0-2-5 deep-extend@0.2.5
4165 silly gunzTarPerm extractEntry test/generators/test-quickstart.js
4166 silly gunzTarPerm extractEntry test/generators/test-testacular-app.js
4167 silly gunzTarPerm extractEntry test/specs/utils.js
4168 silly gunzTarPerm extractEntry test/specs/prompts/base.js
4169 silly gunzTarPerm extractEntry Makefile
4170 silly gunzTarPerm extractEntry Readme.md
4171 silly gunzTarPerm extractEntry component.json
4172 silly gunzTarPerm extractEntry Readme.md
4173 silly gunzTarPerm extractEntry equation.gif
4174 silly gunzTarPerm extractEntry example/dns.js
4175 silly gunzTarPerm extractEntry lib/retry.js
4176 silly gunzTarPerm extractEntry lib/retry_operation.js
4177 silly gunzTarPerm extractEntry test/common.js
4178 silly gunzTarPerm extractEntry test/runner.js
4179 silly gunzTarPerm extractEntry test/integration/test-retry-operation.js
4180 silly gunzTarPerm extractEntry test/integration/test-timeouts.js
4181 verbose registry.get lodash not expired, no request
4182 silly addNameRange number 2 { name: 'lodash', range: '>=1.2.1-0 <1.3.0-0', hasData: true }
4183 silly addNameRange versions [ 'lodash',
4183 silly addNameRange [ '0.1.0',
4183 silly addNameRange '0.2.0',
4183 silly addNameRange '0.2.1',
4183 silly addNameRange '0.2.2',
4183 silly addNameRange '0.3.0',
4183 silly addNameRange '0.3.1',
4183 silly addNameRange '0.3.2',
4183 silly addNameRange '0.4.0',
4183 silly addNameRange '0.4.1',
4183 silly addNameRange '0.4.2',
4183 silly addNameRange '0.5.0-rc.1',
4183 silly addNameRange '0.5.0',
4183 silly addNameRange '0.5.1',
4183 silly addNameRange '0.5.2',
4183 silly addNameRange '0.6.0',
4183 silly addNameRange '0.6.1',
4183 silly addNameRange '0.7.0',
4183 silly addNameRange '0.8.0',
4183 silly addNameRange '0.8.1',
4183 silly addNameRange '0.8.2',
4183 silly addNameRange '1.0.1',
4183 silly addNameRange '0.9.0',
4183 silly addNameRange '0.9.1',
4183 silly addNameRange '0.9.2',
4183 silly addNameRange '0.10.0',
4183 silly addNameRange '1.0.0-rc.1',
4183 silly addNameRange '1.0.0-rc.2',
4183 silly addNameRange '1.0.0-rc.3',
4183 silly addNameRange '1.0.0',
4183 silly addNameRange '1.1.0',
4183 silly addNameRange '1.1.1',
4183 silly addNameRange '1.2.0',
4183 silly addNameRange '1.2.1',
4183 silly addNameRange '1.3.0',
4183 silly addNameRange '1.3.1' ] ]
4184 verbose addNamed [ 'lodash', '1.2.1' ]
4185 verbose addNamed [ '1.2.1', '1.2.1' ]
4186 silly lockFile 97f4aa05-lodash-1-2-1 lodash@1.2.1
4187 verbose lock lodash@1.2.1 /Users/vaca/.npm/97f4aa05-lodash-1-2-1.lock
4188 silly lockFile d89fdb6e-deep-extend-0-2-5 deep-extend@~0.2.5
4189 silly lockFile d89fdb6e-deep-extend-0-2-5 deep-extend@~0.2.5
4190 verbose readDependencies using package.json deps
4191 verbose registry.get yamljs not expired, no request
4192 silly addNameRange number 2 { name: 'yamljs', range: '>=0.1.4-0 <0.2.0-0', hasData: true }
4193 silly addNameRange versions [ 'yamljs', [ '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4' ] ]
4194 verbose addNamed [ 'yamljs', '0.1.4' ]
4195 verbose addNamed [ '0.1.4', '0.1.4' ]
4196 silly lockFile aa94c399-yamljs-0-1-4 yamljs@0.1.4
4197 verbose lock yamljs@0.1.4 /Users/vaca/.npm/aa94c399-yamljs-0-1-4.lock
4198 silly resolved [ { name: 'deep-extend',
4198 silly resolved description: 'Recursive object extending.',
4198 silly resolved version: '0.2.5',
4198 silly resolved homepage: 'https://github.com/unclechu/node-deep-extend',
4198 silly resolved repository:
4198 silly resolved { type: 'git',
4198 silly resolved url: 'git://github.com/unclechu/node-deep-extend.git' },
4198 silly resolved author: { name: 'Viacheslav Lotsmanov', email: 'lotsmanov89@gmail.com' },
4198 silly resolved main: 'index',
4198 silly resolved engines: { node: '>=0.4' },
4198 silly resolved readme: 'Node.JS module “Deep Extend”\r\n============================\r\n\r\nRecursive object extending.\r\n\r\nVersion\r\n-----\r\n0.2.5\r\n\r\nInstall\r\n-----\r\n\r\n npm install deep-extend\r\n\r\nUsage\r\n-----\r\n\r\n var deepExtend = require(\'deep-extend\');\r\n var obj1 = {\r\n a: 1,\r\n b: 2,\r\n d: {\r\n a: 1,\r\n b: [],\r\n c: { test1: 123, test2: 321 }\r\n },\r\n f: 5\r\n };\r\n var obj2 = {\r\n b: 3,\r\n c: 5,\r\n d: {\r\n b: { first: \'one\', second: \'two\' },\r\n c: { test2: 222 }\r\n },\r\n e: { one: 1, two: 2 },\r\n f: []\r\n };\r\n\r\n deepExtend(obj1, obj2);\r\n\r\n console.log(obj1);\r\n /*\r\n { a: 1,\r\n b: 3,\r\n d:\r\n { a: 1,\r\n b: { first: \'one\', second: \'two\' },\r\n c: { test1: 123, test2: 222 } },\r\n f: [],\r\n c: 5,\r\n e: { one: 1, two: 2 } }\r\n */\r\n',
4198 silly resolved readmeFilename: 'README.md',
4198 silly resolved bugs: { url: 'https://github.com/unclechu/node-deep-extend/issues' },
4198 silly resolved _id: 'deep-extend@0.2.5',
4198 silly resolved _from: 'deep-extend@~0.2.5' } ]
4199 info install deep-extend@0.2.5 into /opt/local/lib/node_modules/bower/node_modules/bower-json
4200 info installOne deep-extend@0.2.5
4201 verbose readDependencies using package.json deps
4202 silly resolved []
4203 verbose about to build /opt/local/lib/node_modules/bower/node_modules/q
4204 info build /opt/local/lib/node_modules/bower/node_modules/q
4205 verbose linkStuff [ true,
4205 verbose linkStuff '/opt/local/lib/node_modules',
4205 verbose linkStuff false,
4205 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules' ]
4206 info linkStuff q@0.9.6
4207 silly gunzTarPerm extractEntry package.json
4208 silly gunzTarPerm extractEntry tests/test-pool.js
4209 silly gunzTarPerm extractEntry tests/test-errors.js
4210 info /opt/local/lib/node_modules/bower/node_modules/bower-json/node_modules/deep-extend unbuild
4211 silly lockFile 97f4aa05-lodash-1-2-1 lodash@1.2.1
4212 silly lockFile 97f4aa05-lodash-1-2-1 lodash@1.2.1
4213 silly gunzTarPerm extractEntry package.json
4214 verbose linkBins q@0.9.6
4215 verbose linkMans q@0.9.6
4216 verbose rebuildBundles q@0.9.6
4217 silly lockFile aa94c399-yamljs-0-1-4 yamljs@0.1.4
4218 silly lockFile aa94c399-yamljs-0-1-4 yamljs@0.1.4
4219 silly lockFile 52b3d2d9-lodash-1-2-1 lodash@~1.2.1
4220 silly lockFile 52b3d2d9-lodash-1-2-1 lodash@~1.2.1
4221 info install q@0.9.6
4222 silly lockFile 54401c5b-yamljs-0-1-4 yamljs@~0.1.4
4223 silly lockFile 54401c5b-yamljs-0-1-4 yamljs@~0.1.4
4224 verbose tar unpack /Users/vaca/.npm/deep-extend/0.2.5/package.tgz
4225 silly lockFile 881bf4cc-er-json-node-modules-deep-extend tar:///opt/local/lib/node_modules/bower/node_modules/bower-json/node_modules/deep-extend
4226 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/bower-json/node_modules/deep-extend /Users/vaca/.npm/881bf4cc-er-json-node-modules-deep-extend.lock
4227 silly lockFile 0484574c-pm-deep-extend-0-2-5-package-tgz tar:///Users/vaca/.npm/deep-extend/0.2.5/package.tgz
4228 verbose lock tar:///Users/vaca/.npm/deep-extend/0.2.5/package.tgz /Users/vaca/.npm/0484574c-pm-deep-extend-0-2-5-package-tgz.lock
4229 silly resolved [ { name: 'lodash',
4229 silly resolved version: '1.2.1',
4229 silly resolved description: 'A low-level utility library delivering consistency, customization, performance, and extra features.',
4229 silly resolved homepage: 'http://lodash.com',
4229 silly resolved license: 'MIT',
4229 silly resolved main: './dist/lodash.js',
4229 silly resolved keywords:
4229 silly resolved [ 'browser',
4229 silly resolved 'client',
4229 silly resolved 'functional',
4229 silly resolved 'performance',
4229 silly resolved 'server',
4229 silly resolved 'speed',
4229 silly resolved 'util' ],
4229 silly resolved author:
4229 silly resolved { name: 'John-David Dalton',
4229 silly resolved email: 'john.david.dalton@gmail.com',
4229 silly resolved url: 'http://allyoucanleet.com/' },
4229 silly resolved bugs: { url: 'https://github.com/bestiejs/lodash/issues' },
4229 silly resolved repository: { type: 'git', url: 'https://github.com/bestiejs/lodash.git' },
4229 silly resolved bin: { lodash: './build.js' },
4229 silly resolved engines: [ 'node', 'rhino' ],
4229 silly resolved jam: { main: './dist/lodash.compat.js' },
4229 silly resolved readme: '# Lo-Dash <sup>v1.2.1</sup>\n\nA low-level utility library delivering consistency, [customization](https://github.com/bestiejs/lodash#custom-builds), [performance](http://lodash.com/benchmarks), and [extra features](https://github.com/bestiejs/lodash#features).\n\n## Download\n\n* Lo-Dash builds (for modern environments):<br>\n[Development](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.js) and\n[Production](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.min.js)\n\n* Lo-Dash compatibility builds (for legacy and modern environments):<br>\n[Development](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.compat.js) and\n[Production](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.compat.min.js)\n\n* Underscore compatibility builds:<br>\n[Development](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.underscore.js) and\n[Production](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.underscore.min.js)\n\n* CDN copies of ≤ v1.2.1’s builds are available on [cdnjs](http://cdnjs.com/) thanks to [CloudFlare](http://www.cloudflare.com/):<br>\n[Lo-Dash dev](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.js),\n[Lo-Dash prod](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.min.js),<br>\n[Lo-Dash compat-dev](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.compat.js),\n[Lo-Dash compat-prod](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.compat.min.js),<br>\n[Underscore compat-dev](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.underscore.js), and\n[Underscore compat-prod](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.underscore.min.js)\n\n* For optimal file size, [create a custom build](https://github.com/bestiejs/lodash#custom-builds) with only the features you need\n\n## Dive in\n\nWe’ve got [API docs](http://lodash.com/docs), [benchmarks](http://lodash.com/benchmarks), and [unit tests](http://lodash.com/tests).\n\nFor a list of upcoming features, check out our [roadmap](https://github.com/bestiejs/lodash/wiki/Roadmap).\n\n## Resources\n\nFor more information check out these articles, screencasts, and other videos over Lo-Dash:\n\n * Posts\n - [Say “Hello” to Lo-Dash](http://kitcambridge.be/blog/say-hello-to-lo-dash/)\n\n * Videos\n - [Introducing Lo-Dash](https://vimeo.com/44154599)\n - [Lo-Dash optimizations and custom builds](https://vimeo.com/44154601)\n - [Lo-Dash’s origin and why it’s a better utility belt](https://vimeo.com/44154600)\n - [Unit testing in Lo-Dash](https://vimeo.com/45865290)\n - [Lo-Dash’s approach to native method use](https://vimeo.com/48576012)\n - [CascadiaJS: Lo-Dash for a better utility belt](http://www.youtube.com/watch?v=dpPy4f_SeEk)\n\n## Features\n\n * AMD loader support ([RequireJS](http://requirejs.org/), [curl.js](https://github.com/cujojs/curl), 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”* defined](http://michaux.ca/articles/lazy-function-definition-pattern) methods\n * [_.cloneDeep](http://lodash.com/docs#cloneDeep) for deep cloning arrays and objects\n * [_.contains](http://lodash.com/docs#contains) accepts a `fromIndex` argument\n * [_.debounce](http://lodash.com/docs#debounce) and [_.throttle](http://lodash.com/docs#throttle) accept an `options` argument for more control\n * [_.createCallback](http://lodash.com/docs#createCallback) to customize how callback arguments are handled and support callback shorthands in mixins\n * [_.findIndex](http://lodash.com/docs#findIndex) and [_.findKey](http://lodash.com/docs#findKey) for finding indexes and keys of collections\n * [_.forEach](http://lodash.com/docs#forEach) is chainable and supports exiting iteration early\n * [_.forIn](http://lodash.com/docs#forIn) for iterating over an object’s own and inherited properties\n * [_.forOwn](http://lodash.com/docs#forOwn) for iterating over an object’s own properties\n * [_.isPlainObject](http://lodash.com/docs#isPlainObject) checks if values are created by the `Object` constructor\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 cross-environment behavior\n * [_.partial](http://lodash.com/docs#partial) and [_.partialRight](http://lodash.com/docs#partialRight) for partial application without `this` binding\n * [_.runInContext](http://lodash.com/docs#runInContext) for easier mocking and extended environment support\n * [_.support](http://lodash.com/docs#support) to flag environment features\n * [_.template](http://lodash.com/docs#template) supports [*“imports”* options](http://lodash.com/docs#templateSettings_imports), [ES6 template delimiters](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-7.8.6), and [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * [_.unzip](http://lodash.com/docs#unzip) as the inverse of [_.zip](http://lodash.com/docs#zip)\n * [_.where](http://lodash.com/docs#where) supports deep object comparisons\n * [_.clone](http://lodash.com/docs#clone), [_.omit](http://lodash.com/docs#omit), [_.pick](http://lodash.com/docs#pick),\n [and more…](http://lodash.com/docs "_.assign, _.cloneDeep, _.first, _.initial, _.isEqual, _.last, _.merge, _.rest") accept `callback` and `thisArg` arguments\n * [_.contains](http://lodash.com/docs#contains), [_.size](http://lodash.com/docs#size), [_.toArray](http://lodash.com/docs#toArray),\n [and more…](http://lodash.com/docs "_.at, _.countBy, _.every, _.filter, _.find, _.forEach, _.groupBy, _.invoke, _.map, _.max, _.min, _.pluck, _.reduce, _.reduceRight, _.reject, _.shuffle, _.some, _.sortBy, _.where") accept strings\n * [_.filter](http://lodash.com/docs#filter), [_.find](http://lodash.com/docs#find), [_.map](http://lodash.com/docs#map),\n [and more…](http://lodash.com/docs "_.countBy, _.every, _.first, _.groupBy, _.initial, _.last, _.max, _.min, _.reject, _.rest, _.some, _.sortBy, _.sortedIndex, _.uniq") support *“_.pluck”* and *“_.where”* `callback` shorthands\n\n## Support\n\nLo-Dash has been tested in at least Chrome 5~26, Firefox 2~20, IE 6-10, Opera 9.25~12, Safari 3-6, Node.js 0.4.8-0.10.5, Narwhal 0.3.2, PhantomJS 1.9.0, RingoJS 0.9, and Rhino 1.7RC5.\n\n## Custom builds\n\nCustom builds make it easy to create lightweight versions of Lo-Dash containing only the methods you need.\nTo top it off, we handle all method dependency and alias mapping for you.\nFor a more detailed summary over the differences between various builds, check out the [wiki entry](https://github.com/bestiejs/lodash/wiki/build-differences).\n\n * Backbone builds, with only methods required by Backbone, may be created using the `backbone` modifier argument.\n```bash\nlodash backbone\n```\n\n * Legacy builds, tailored for older environments without [ES5 support](http://es5.github.com/), may be created using the `legacy` modifier argument.\n```bash\nlodash legacy\n```\n\n * Modern builds, tailored for newer environments with ES5 support, may be created using the `modern` modifier argument.\n```bash\nlodash modern\n```\n\n * Mobile builds, without method compilation and most bug fixes for old browsers, may be created using the `mobile` modifier argument.\n```bash\nlodash mobile\n```\n\n * Strict builds, with `_.bindAll`, `_.defaults`, and `_.extend` in [strict mode](http://es5.github.com/#C), may be created using the `strict` modifier argument.\n```bash\nlodash strict\n```\n\n * Underscore builds, tailored for projects already using Underscore, may be created using the `underscore` modifier argument.\n```bash\nlodash underscore\n```\n\nCustom builds may be created using the following commands:\n\n * Use the `category` argument to pass comma separated categories of methods to include in the build.<br>\n Valid categories (case-insensitive) are *“arrays”*, *“chaining”*, *“collections”*, *“functions”*, *“objects”*, and *“utilities”*.\n```bash\nlodash category=collections,functions\nlodash category="collections, functions"\n```\n\n * Use the `exports` argument to pass comma separated names of ways to export the `LoDash` function.<br>\n Valid exports are *“amd”*, *“commonjs”*, *“global”*, *“node”*, and *“none”*.\n```bash\nlodash exports=amd,commonjs,node\nlodash exports="amd, commonjs, node"\n```\n\n * Use the `iife` argument to specify code to replace the immediately-invoked function expression that wraps Lo-Dash.\n```bash\nlodash iife="!function(window,undefined){%output%}(this)"\n```\n\n * Use the `include` argument to pass comma separated method/category names to include in the build.\n```bash\nlodash include=each,filter,map\nlodash include="each, filter, map"\n```\n\n * Use the `minus` argument to pass comma separated method/category names to remove from those included in the build.\n```bash\nlodash underscore minus=result,shuffle\nlodash underscore minus="result, shuffle"\n```\n\n * Use the `plus` argument to pass comma separated method/category names to add to those included in the build.\n```bash\nlodash backbone plus=random,template\nlodash backbone plus="random, template"\n```\n\n * Use the `template` argument to pass the file path pattern used to match template files to precompile.\n```bash\nlodash template="./*.jst"\n```\n\n * Use the `settings` argument to pass the template settings used when precompiling templates.\n```bash\nlodash settings="{interpolate:/\\{\\{([\\s\\S]+?)\\}\\}/g}"\n```\n\n * Use the `moduleId` argument to specify the AMD module ID of Lo-Dash, which defaults to “lodash”, used by precompiled templates.\n```bash\nlodash moduleId="underscore"\n```\n\nAll arguments, except `legacy` with `mobile`, `modern`, or `underscore`, may be combined.<br>\nUnless specified by `-o` or `--output`, all files created are saved to the current working directory.\n\nThe following options are also supported:\n\n * `-c`, `--stdout` ......... Write output to standard output\n * `-d`, `--debug` ........... Write only the non-minified development output\n * `-h`, `--help` ............. Display help information\n * `-m`, `--minify` ......... Write only the minified production output\n * `-o`, `--output` ......... Write output to a given path/filename\n * `-p`, `--source-map` .. Generate a source map for the minified output, using an optional source map URL\n * `-s`, `--silent` ......... Skip status updates normally logged to the console\n * `-V`, `--version` ....... Output current version of Lo-Dash\n\nThe `lodash` command-line utility is available when Lo-Dash is installed as a global package (i.e. `npm install -g lodash`).\n\n## Installation and usage\n\nIn browsers:\n\n```html\n<script src="lodash.js"></script>\n```\n\nUsing [`npm`](http://npmjs.org/):\n\n```bash\nnpm install lodash\n\nnpm install -g lodash\nnpm link lodash\n```\n\nTo avoid potential issues, update `npm` before installing Lo-Dash:\n\n```bash\nnpm install npm -g\n```\n\nIn [Node.js](http://nodejs.org/) and [RingoJS ≥ v0.8.0](http://ringojs.org/):\n\n```js\nvar _ = require(\'lodash\');\n\n// or as a drop-in replacement for Underscore\nvar _ = require(\'lodash/dist/lodash.underscore\');\n```\n\n**Note:** If Lo-Dash is installed globally, run [`npm link 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 [RingoJS ≤ v0.7.0](http://ringojs.org/):\n\n```js\nvar _ = require(\'lodash\')._;\n```\n\nIn [Rhino](http://www.mozilla.org/rhino/):\n\n```js\nload(\'lodash.js\');\n```\n\nIn an AMD loader like [RequireJS](http://requirejs.org/):\n\n```js\nrequire({\n \'paths\': {\n \'underscore\': \'path/to/lodash\'\n }\n},\n[\'underscore\'], function(_) {\n console.log(_.VERSION);\n});\n```\n\n## Release Notes\n\n### <sup>v1.2.1</sup>\n\n * Added Component package support\n * Updated the build utility to work with changes in GitHub’s API\n * Ensured `_.isPlainObject` works with objects created by `Object.create(null)`\n * Ensured *“isType”* methods return `false` for subclassed values\n * Ensured debounced functions, with `leading` and `trailing` calls enabled,<br>\n only perform trailing calls after they’re called more than once\n\nThe full changelog is available [here](https://github.com/bestiejs/lodash/wiki/Changelog).\n\n## BestieJS\n\nLo-Dash is part of the BestieJS *“Best in Class”* module collection. This means we promote solid browser/environment support, ES5+ precedents, unit testing, and plenty of documentation.\n\n## Author\n\n| [![twitter/jdalton](http://gravatar.com/avatar/299a3d891ff1920b69c364d061007043?s=70)](http://twitter.com/jdalton "Follow @jdalton on Twitter") |\n|---|\n| [John-David Dalton](http://allyoucanleet.com/) |\n\n## Contributors\n\n| [![twitter/kitcambridge](http://gravatar.com/avatar/6662a1d02f351b5ef2f8b4d815804661?s=70)](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [![twitter/mathias](http://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](http://twitter.com/mathias "Follow @mathias on Twitter") |\n|---|---|\n| [Kit Cambridge](http://kitcambridge.github.io/) | [Mathias Bynens](http://mathiasbynens.be/) |\n',
4229 silly resolved readmeFilename: 'README.md',
4229 silly resolved _id: 'lodash@1.2.1',
4229 silly resolved _from: 'lodash@~1.2.1' },
4229 silly resolved { name: 'yamljs',
4229 silly resolved version: '0.1.4',
4229 silly resolved description: 'Standalone JavaScript YAML 1.2 Parser & Encoder. Works under node.js and all major browsers. Also brings command line YAML/JSON conversion tools.',
4229 silly resolved keywords: [ 'yaml', 'json', 'yaml2json', 'json2yaml' ],
4229 silly resolved author: { name: 'Jeremy Faivre', email: 'contact@jeremyfa.com' },
4229 silly resolved main: './bin/yaml.js',
4229 silly resolved dependencies: { argparse: '~0.1.4', glob: '~3.1.11' },
4229 silly resolved bin: { yaml2json: './bin/yaml2json', json2yaml: './bin/json2yaml' },
4229 silly resolved devDependencies: {},
4229 silly resolved repository: { type: 'git', url: 'git://github.com/jeremyfa/yaml.js.git' },
4229 silly resolved readme: 'yaml.js\n=======\n\nStandalone JavaScript YAML 1.2 Parser & Encoder. Works under node.js and all major browsers. Also brings command line YAML/JSON conversion tools.\n\nMainly inspired from [Symfony Yaml Component](https://github.com/symfony/Yaml).\n\nHow to use\n----------\n\nImport yaml.js in your html page:\n\n``` html\n<script type="text/javascript" src="yaml.js"></script>\n```\n\nParse yaml string:\n\n``` js\nnativeObject = YAML.parse(yamlString);\n```\n\nDump native object into yaml string:\n\n``` js\nyamlString = YAML.stringify(nativeObject[, inline /* @integer depth to start using inline notation at */[, spaces /* @integer number of spaces to use for indentation */] ]);\n```\n\nLoad yaml file:\n\n``` js\nnativeObject = YAML.load(\'file.yml\');\n```\n\nLoad yaml file:\n\n``` js\nYAML.load(\'file.yml\', function(result)\n{\n nativeObject = result;\n});\n```\n\nUse with node.js\n----------------\n\nInstall module:\n\n``` bash\nnpm install yamljs\n```\n\nUse it:\n\n``` js\nYAML = require(\'yamljs\');\n\n// parse YAML string\nnativeObject = YAML.parse(yamlString);\n\n// Generate YAML\nyamlString = YAML.stringify(nativeObject, 4);\n\n// Load yaml file using require\nnativeObject = require(\'./myfile.yml\');\n\n// Load yaml file using YAML.load\nnativeObject = YAML.load(\'myfile.yml\');\n```\n\nCommand line tools\n------------------\n\nYou can enable the command line tools by installing yamljs as a global module:\n\n``` bash\nnpm install -g yamljs\n```\n\nThen, two cli commands should become available: **yaml2json** and **json2yaml**. They let you convert YAML to JSON and JSON to YAML very easily.\n\n**yaml2json**\n\n```\nusage: yaml2json [-h] [-v] [-p] [-i INDENTATION] [-s] [-r] [-w] input\n\nPositional arguments:\n input YAML file or directory containing YAML files.\n\nOptional arguments:\n -h, --help Show this help message and exit.\n -v, --version Show program\'s version number and exit.\n -p, --pretty Output pretty (indented) JSON.\n -i INDENTATION, --indentation INDENTATION\n Number of space characters used to indent code (use \n with --pretty, default: 2).\n -s, --save Save output inside JSON file(s) with the same name.\n -r, --recursive If the input is a directory, also find YAML files in \n sub-directories recursively.\n -w, --watch Watch for changes.\n```\n\n**json2yaml**\n\n```\nusage: json2yaml [-h] [-v] [-d DEPTH] [-i INDENTATION] [-s] [-r] [-w] input\n\nPositional arguments:\n input JSON file or directory containing JSON files.\n\nOptional arguments:\n -h, --help Show this help message and exit.\n -v, --version Show program\'s version number and exit.\n -d DEPTH, --depth DEPTH\n Set minimum level of depth before generating inline \n YAML (default: 2).\n -i INDENTATION, --indentation INDENTATION\n Number of space characters used to indent code \n (default: 2).\n -s, --save Save output inside YML file(s) with the same name.\n -r, --recursive If the input is a directory, also find JSON files in \n sub-directories recursively.\n -w, --watch Watch for changes.\n```\n\n**examples**\n\n``` bash\n# Convert YAML to JSON and output resulting JSON on the console\nyaml2json myfile.yml\n\n# Store output inside a JSON file\nyaml2json myfile.yml > ouput.json\n\n# Output "pretty" (indented) JSON\nyaml2json myfile.yml --pretty\n\n# Save the output inside a file called myfile.json\nyaml2json myfile.yml --pretty --save\n\n# Watch a full directory and convert any YAML file into its JSON equivalent\nyaml2json mydirectory --pretty --save --recursive\n\n# Convert JSON to YAML and store output inside a JSON file\njson2yaml myfile.json > ouput.yml\n\n# Output YAML that will be inlined only after 8 levels of indentation\njson2yaml myfile.json --depth 8\n\n# Save the output inside a file called myfile.json with 4 spaces for each indentation\njson2yaml myfile.json --indentation 4\n\n# Watch a full directory and convert any JSON file into its YAML equivalent\njson2yaml mydirectory --pretty --save --recursive\n```\n\nImportant\n---------\n\nSymfony dropped support for YAML 1.1 spec. This means that `yes`, `no` and similar no longer convert to their *boolean* equivalents.\n\nThe internal `Yaml().load()` and `Yaml().loadFile()` methods renamed to `Yaml().parse()` and `Yaml().parseFile()` respectively. Exceptions replaced with `YamlParseException` object.\n\n',
4229 silly resolved readmeFilename: 'README.md',
4229 silly resolved bugs: { url: 'https://github.com/jeremyfa/yaml.js/issues' },
4229 silly resolved _id: 'yamljs@0.1.4',
4229 silly resolved _from: 'yamljs@~0.1.4' } ]
4230 info install lodash@1.2.1 into /opt/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/configstore
4231 info install yamljs@0.1.4 into /opt/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/configstore
4232 info installOne lodash@1.2.1
4233 info installOne yamljs@0.1.4
4234 silly lockFile 4085d016-osenv-0-0-3 osenv@0.0.3
4235 silly lockFile 4085d016-osenv-0-0-3 osenv@0.0.3
4236 silly gunzTarPerm extractEntry .npmignore
4237 silly gunzTarPerm extractEntry LICENSE
4238 silly gunzTarPerm extractEntry test/temp/Gruntfile.js
4239 silly gunzTarPerm extractEntry test/temp.dev/Gruntfile.js
4240 info postinstall q@0.9.6
4241 silly gunzTarPerm extractEntry array/contains.js
4242 silly gunzTarPerm extractEntry array/union.js
4243 info /opt/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/configstore/node_modules/lodash unbuild
4244 info /opt/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/configstore/node_modules/yamljs unbuild
4245 silly gunzTarPerm extractEntry .npmignore
4246 silly gunzTarPerm extractEntry README.md
4247 silly lockFile 6403b4d6-optimist-0-6-0 optimist@0.6.0
4248 silly lockFile 6403b4d6-optimist-0-6-0 optimist@0.6.0
4249 silly gunzTarPerm modes [ '755', '644' ]
4250 http 304 https://registry.npmjs.org/minimatch
4251 silly registry.get cb [ 304,
4251 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
4251 silly registry.get etag: '"433GUXE31BY78MEUH5M7CIXOG"',
4251 silly registry.get date: 'Fri, 02 Aug 2013 15:55:11 GMT',
4251 silly registry.get 'content-length': '0' } ]
4252 verbose etag minimatch from cache
4253 silly lockFile 07193858-optimist-0-6-0 optimist@~0.6.0
4254 silly lockFile 07193858-optimist-0-6-0 optimist@~0.6.0
4255 verbose tar unpack /Users/vaca/.npm/lodash/1.2.1/package.tgz
4256 silly lockFile 542db73b--configstore-node-modules-lodash tar:///opt/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/configstore/node_modules/lodash
4257 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/configstore/node_modules/lodash /Users/vaca/.npm/542db73b--configstore-node-modules-lodash.lock
4258 silly lockFile 4256ac70-aca-npm-lodash-1-2-1-package-tgz tar:///Users/vaca/.npm/lodash/1.2.1/package.tgz
4259 verbose lock tar:///Users/vaca/.npm/lodash/1.2.1/package.tgz /Users/vaca/.npm/4256ac70-aca-npm-lodash-1-2-1-package-tgz.lock
4260 verbose tar unpack /Users/vaca/.npm/yamljs/0.1.4/package.tgz
4261 silly lockFile 0fa56ceb--configstore-node-modules-yamljs tar:///opt/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/configstore/node_modules/yamljs
4262 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/configstore/node_modules/yamljs /Users/vaca/.npm/0fa56ceb--configstore-node-modules-yamljs.lock
4263 silly lockFile 83a1ea75-aca-npm-yamljs-0-1-4-package-tgz tar:///Users/vaca/.npm/yamljs/0.1.4/package.tgz
4264 verbose lock tar:///Users/vaca/.npm/yamljs/0.1.4/package.tgz /Users/vaca/.npm/83a1ea75-aca-npm-yamljs-0-1-4-package-tgz.lock
4265 silly resolved [ { name: 'osenv',
4265 silly resolved version: '0.0.3',
4265 silly resolved main: 'osenv.js',
4265 silly resolved directories: { test: 'test' },
4265 silly resolved dependencies: {},
4265 silly resolved devDependencies: { tap: '~0.2.5' },
4265 silly resolved scripts: { test: 'tap test/*.js' },
4265 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/osenv' },
4265 silly resolved keywords:
4265 silly resolved [ 'environment',
4265 silly resolved 'variable',
4265 silly resolved 'home',
4265 silly resolved 'tmpdir',
4265 silly resolved 'path',
4265 silly resolved 'prompt',
4265 silly resolved 'ps1' ],
4265 silly resolved author:
4265 silly resolved { name: 'Isaac Z. Schlueter',
4265 silly resolved email: 'i@izs.me',
4265 silly resolved url: 'http://blog.izs.me/' },
4265 silly resolved license: 'BSD',
4265 silly resolved description: 'Look up environment settings specific to different operating systems',
4265 silly resolved readme: '# osenv\n\nLook up environment settings specific to different operating systems.\n\n## Usage\n\n```javascript\nvar osenv = require(\'osenv\')\nvar path = osenv.path()\nvar user = osenv.user()\n// etc.\n\n// Some things are not reliably in the env, and have a fallback command:\nvar h = osenv.hostname(function (er, hostname) {\n h = hostname\n})\n// This will still cause it to be memoized, so calling osenv.hostname()\n// is now an immediate operation.\n\n// You can always send a cb, which will get called in the nextTick\n// if it\'s been memoized, or wait for the fallback data if it wasn\'t\n// found in the environment.\nosenv.hostname(function (er, hostname) {\n if (er) console.error(\'error looking up hostname\')\n else console.log(\'this machine calls itself %s\', hostname)\n})\n```\n\n## osenv.hostname()\n\nThe machine name. Calls `hostname` if not found.\n\n## osenv.user()\n\nThe currently logged-in user. Calls `whoami` if not found.\n\n## osenv.prompt()\n\nEither PS1 on unix, or PROMPT on Windows.\n\n## osenv.tmpdir()\n\nThe place where temporary files should be created.\n\n## osenv.home()\n\nNo place like it.\n\n## osenv.path()\n\nAn array of the places that the operating system will search for\nexecutables.\n\n## osenv.editor() \n\nReturn the executable name of the editor program. This uses the EDITOR\nand VISUAL environment variables, and falls back to `vi` on Unix, or\n`notepad.exe` on Windows.\n\n## osenv.shell()\n\nThe SHELL on Unix, which Windows calls the ComSpec. Defaults to \'bash\'\nor \'cmd\'.\n',
4265 silly resolved readmeFilename: 'README.md',
4265 silly resolved bugs: { url: 'https://github.com/isaacs/osenv/issues' },
4265 silly resolved _id: 'osenv@0.0.3',
4265 silly resolved _from: 'osenv@0.0.3' },
4265 silly resolved { name: 'optimist',
4265 silly resolved version: '0.6.0',
4265 silly resolved description: 'Light-weight option parsing with an argv hash. No optstrings attached.',
4265 silly resolved main: './index.js',
4265 silly resolved dependencies: { wordwrap: '~0.0.2', minimist: '~0.0.1' },
4265 silly resolved devDependencies: { hashish: '~0.0.4', tap: '~0.4.0' },
4265 silly resolved scripts: { test: 'tap ./test/*.js' },
4265 silly resolved repository:
4265 silly resolved { type: 'git',
4265 silly resolved url: 'http://github.com/substack/node-optimist.git' },
4265 silly resolved keywords:
4265 silly resolved [ 'argument',
4265 silly resolved 'args',
4265 silly resolved 'option',
4265 silly resolved 'parser',
4265 silly resolved 'parsing',
4265 silly resolved 'cli',
4265 silly resolved 'command' ],
4265 silly resolved author:
4265 silly resolved { name: 'James Halliday',
4265 silly resolved email: 'mail@substack.net',
4265 silly resolved url: 'http://substack.net' },
4265 silly resolved license: 'MIT/X11',
4265 silly resolved engine: { node: '>=0.4' },
4265 silly resolved readme: 'optimist\n========\n\nOptimist is a node.js library for option parsing for people who hate option\nparsing. More specifically, this module is for people who like all the --bells\nand -whistlz of program usage but think optstrings are a waste of time.\n\nWith optimist, option parsing doesn\'t have to suck (as much).\n\n[![build status](https://secure.travis-ci.org/substack/node-optimist.png)](http://travis-ci.org/substack/node-optimist)\n\nexamples\n========\n\nWith Optimist, the options are just a hash! No optstrings attached.\n-------------------------------------------------------------------\n\nxup.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\').argv;\n\nif (argv.rif - 5 * argv.xup > 7.138) {\n console.log(\'Buy more riffiwobbles\');\n}\nelse {\n console.log(\'Sell the xupptumblers\');\n}\n````\n\n***\n\n $ ./xup.js --rif=55 --xup=9.52\n Buy more riffiwobbles\n \n $ ./xup.js --rif 12 --xup 8.1\n Sell the xupptumblers\n\n![This one\'s optimistic.](http://substack.net/images/optimistic.png)\n\nBut wait! There\'s more! You can do short options:\n-------------------------------------------------\n \nshort.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\').argv;\nconsole.log(\'(%d,%d)\', argv.x, argv.y);\n````\n\n***\n\n $ ./short.js -x 10 -y 21\n (10,21)\n\nAnd booleans, both long and short (and grouped):\n----------------------------------\n\nbool.js:\n\n````javascript\n#!/usr/bin/env node\nvar util = require(\'util\');\nvar argv = require(\'optimist\').argv;\n\nif (argv.s) {\n util.print(argv.fr ? \'Le chat dit: \' : \'The cat says: \');\n}\nconsole.log(\n (argv.fr ? \'miaou\' : \'meow\') + (argv.p ? \'.\' : \'\')\n);\n````\n\n***\n\n $ ./bool.js -s\n The cat says: meow\n \n $ ./bool.js -sp\n The cat says: meow.\n\n $ ./bool.js -sp --fr\n Le chat dit: miaou.\n\nAnd non-hypenated options too! Just use `argv._`!\n-------------------------------------------------\n \nnonopt.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\').argv;\nconsole.log(\'(%d,%d)\', argv.x, argv.y);\nconsole.log(argv._);\n````\n\n***\n\n $ ./nonopt.js -x 6.82 -y 3.35 moo\n (6.82,3.35)\n [ \'moo\' ]\n \n $ ./nonopt.js foo -x 0.54 bar -y 1.12 baz\n (0.54,1.12)\n [ \'foo\', \'bar\', \'baz\' ]\n\nPlus, Optimist comes with .usage() and .demand()!\n-------------------------------------------------\n\ndivide.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\')\n .usage(\'Usage: $0 -x [num] -y [num]\')\n .demand([\'x\',\'y\'])\n .argv;\n\nconsole.log(argv.x / argv.y);\n````\n\n***\n \n $ ./divide.js -x 55 -y 11\n 5\n \n $ node ./divide.js -x 4.91 -z 2.51\n Usage: node ./divide.js -x [num] -y [num]\n\n Options:\n -x [required]\n -y [required]\n\n Missing required arguments: y\n\nEVEN MORE HOLY COW\n------------------\n\ndefault_singles.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\')\n .default(\'x\', 10)\n .default(\'y\', 10)\n .argv\n;\nconsole.log(argv.x + argv.y);\n````\n\n***\n\n $ ./default_singles.js -x 5\n 15\n\ndefault_hash.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\')\n .default({ x : 10, y : 10 })\n .argv\n;\nconsole.log(argv.x + argv.y);\n````\n\n***\n\n $ ./default_hash.js -y 7\n 17\n\nAnd if you really want to get all descriptive about it...\n---------------------------------------------------------\n\nboolean_single.js\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\')\n .boolean(\'v\')\n .argv\n;\nconsole.dir(argv);\n````\n\n***\n\n $ ./boolean_single.js -v foo bar baz\n true\n [ \'bar\', \'baz\', \'foo\' ]\n\nboolean_double.js\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\')\n .boolean([\'x\',\'y\',\'z\'])\n .argv\n;\nconsole.dir([ argv.x, argv.y, argv.z ]);\nconsole.dir(argv._);\n````\n\n***\n\n $ ./boolean_double.js -x -z one two three\n [ true, false, true ]\n [ \'one\', \'two\', \'three\' ]\n\nOptimist is here to help...\n---------------------------\n\nYou can describe parameters for help messages and set aliases. Optimist figures\nout how to format a handy help string automatically.\n\nline_count.js\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\')\n .usage(\'Count the lines in a file.\\nUsage: $0\')\n .demand(\'f\')\n .alias(\'f\', \'file\')\n .describe(\'f\', \'Load a file\')\n .argv\n;\n\nvar fs = require(\'fs\');\nvar s = fs.createReadStream(argv.file);\n\nvar lines = 0;\ns.on(\'data\', function (buf) {\n lines += buf.toString().match(/\\n/g).length;\n});\n\ns.on(\'end\', function () {\n console.log(lines);\n});\n````\n\n***\n\n $ node line_count.js\n Count the lines in a file.\n Usage: node ./line_count.js\n\n Options:\n -f, --file Load a file [required]\n\n Missing required arguments: f\n\n $ node line_count.js --file line_count.js \n 20\n \n $ node line_count.js -f line_count.js \n 20\n\nmethods\n=======\n\nBy itself,\n\n````javascript\nrequire(\'optimist\').argv\n`````\n\nwill use `process.argv` array to construct the `argv` object.\n\nYou can pass in the `process.argv` yourself:\n\n````javascript\nrequire(\'optimist\')([ \'-x\', \'1\', \'-y\', \'2\' ]).argv\n````\n\nor use .parse() to do the same thing:\n\n````javascript\nrequire(\'optimist\').parse([ \'-x\', \'1\', \'-y\', \'2\' ])\n````\n\nThe rest of these methods below come in just before the terminating `.argv`.\n\n.alias(key, alias)\n------------------\n\nSet key names as equivalent such that updates to a key will propagate to aliases\nand vice-versa.\n\nOptionally `.alias()` can take an object that maps keys to aliases.\n\n.default(key, value)\n--------------------\n\nSet `argv[key]` to `value` if no option was specified on `process.argv`.\n\nOptionally `.default()` can take an object that maps keys to default values.\n\n.demand(key)\n------------\n\nIf `key` is a string, show the usage information and exit if `key` wasn\'t\nspecified in `process.argv`.\n\nIf `key` is a number, demand at least as many non-option arguments, which show\nup in `argv._`.\n\nIf `key` is an Array, demand each element.\n\n.describe(key, desc)\n--------------------\n\nDescribe a `key` for the generated usage information.\n\nOptionally `.describe()` can take an object that maps keys to descriptions.\n\n.options(key, opt)\n------------------\n\nInstead of chaining together `.alias().demand().default()`, you can specify\nkeys in `opt` for each of the chainable methods.\n\nFor example:\n\n````javascript\nvar argv = require(\'optimist\')\n .options(\'f\', {\n alias : \'file\',\n default : \'/etc/passwd\',\n })\n .argv\n;\n````\n\nis the same as\n\n````javascript\nvar argv = require(\'optimist\')\n .alias(\'f\', \'file\')\n .default(\'f\', \'/etc/passwd\')\n .argv\n;\n````\n\nOptionally `.options()` can take an object that maps keys to `opt` parameters.\n\n.usage(message)\n---------------\n\nSet a usage message to show which commands to use. Inside `message`, the string\n`$0` will get interpolated to the current script name or node command for the\npresent script similar to how `$0` works in bash or perl.\n\n.check(fn)\n----------\n\nCheck that certain conditions are met in the provided arguments.\n\nIf `fn` throws or returns `false`, show the thrown error, usage information, and\nexit.\n\n.boolean(key)\n-------------\n\nInterpret `key` as a boolean. If a non-flag option follows `key` in\n`process.argv`, that string won\'t get set as the value of `key`.\n\nIf `key` never shows up as a flag in `process.arguments`, `argv[key]` will be\n`false`.\n\nIf `key` is an Array, interpret all the elements as booleans.\n\n.string(key)\n------------\n\nTell the parser logic not to interpret `key` as a number or boolean.\nThis can be useful if you need to preserve leading zeros in an input.\n\nIf `key` is an Array, interpret all the elements as strings.\n\n.wrap(columns)\n--------------\n\nFormat usage output to wrap at `columns` many columns.\n\n.help()\n-------\n\nReturn the generated usage string.\n\n.showHelp(fn=console.error)\n---------------------------\n\nPrint the usage data using `fn` for printing.\n\n.parse(args)\n------------\n\nParse `args` instead of `process.argv`. Returns the `argv` object.\n\n.argv\n-----\n\nGet the arguments as a plain old object.\n\nArguments without a corresponding flag show up in the `argv._` array.\n\nThe script name or node command is available at `argv.$0` similarly to how `$0`\nworks in bash or perl.\n\nparsing tricks\n==============\n\nstop parsing\n------------\n\nUse `--` to stop parsing flags and stuff the remainder into `argv._`.\n\n $ node examples/reflect.js -a 1 -b 2 -- -c 3 -d 4\n { _: [ \'-c\', \'3\', \'-d\', \'4\' ],\n \'$0\': \'node ./examples/reflect.js\',\n a: 1,\n b: 2 }\n\nnegate fields\n-------------\n\nIf you want to explicity set a field to false instead of just leaving it\nundefined or to override a default you can do `--no-key`.\n\n $ node examples/reflect.js -a --no-b\n { _: [],\n \'$0\': \'node ./examples/reflect.js\',\n a: true,\n b: false }\n\nnumbers\n-------\n\nEvery argument that looks like a number (`!isNaN(Number(arg))`) is converted to\none. This way you can just `net.createConnection(argv.port)` and you can add\nnumbers out of `argv` with `+` without having that mean concatenation,\nwhich is super frustrating.\n\nduplicates\n----------\n\nIf you specify a flag multiple times it will get turned into an array containing\nall the values in order.\n\n $ node examples/reflect.js -x 5 -x 8 -x 0\n { _: [],\n \'$0\': \'node ./examples/reflect.js\',\n x: [ 5, 8, 0 ] }\n\ndot notation\n------------\n\nWhen you use dots (`.`s) in argument names, an implicit object path is assumed.\nThis lets you organize arguments into nested objects.\n\n $ node examples/reflect.js --foo.bar.baz=33 --foo.quux=5\n { _: [],\n \'$0\': \'node ./examples/reflect.js\',\n foo: { bar: { baz: 33 }, quux: 5 } }\n\nshort numbers\n-------------\n\nShort numeric `head -n5` style argument work too:\n\n $ node reflect.js -n123 -m456\n { \'3\': true,\n \'6\': true,\n _: [],\n \'$0\': \'node ./reflect.js\',\n n: 123,\n m: 456 }\n\ninstallation\n============\n\nWith [npm](http://github.com/isaacs/npm), just do:\n npm install optimist\n \nor clone this project on github:\n\n git clone http://github.com/substack/node-optimist.git\n\nTo run the tests with [expresso](http://github.com/visionmedia/expresso),\njust do:\n \n expresso\n\ninspired By\n===========\n\nThis module is loosely inspired by Perl\'s\n[Getopt::Casual](http://search.cpan.org/~photo/Getopt-Casual-0.13.1/Casual.pm).\n',
4265 silly resolved readmeFilename: 'readme.markdown',
4265 silly resolved bugs: { url: 'https://github.com/substack/node-optimist/issues' },
4265 silly resolved _id: 'optimist@0.6.0',
4265 silly resolved _from: 'optimist@~0.6.0' } ]
4266 info install osenv@0.0.3 into /opt/local/lib/node_modules/bower/node_modules/bower-config
4267 info install optimist@0.6.0 into /opt/local/lib/node_modules/bower/node_modules/bower-config
4268 info installOne osenv@0.0.3
4269 info installOne optimist@0.6.0
4270 info /opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/osenv unbuild
4271 info /opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist unbuild
4272 silly gunzTarPerm extractEntry tests/test-follow-all-303.js
4273 silly gunzTarPerm extractEntry tests/test-proxy.js
4274 silly gunzTarPerm extractEntry package.json
4275 verbose tar unpack /Users/vaca/.npm/osenv/0.0.3/package.tgz
4276 silly lockFile 97cd4d35--bower-config-node-modules-osenv tar:///opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/osenv
4277 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/osenv /Users/vaca/.npm/97cd4d35--bower-config-node-modules-osenv.lock
4278 silly lockFile d76a2330-vaca-npm-osenv-0-0-3-package-tgz tar:///Users/vaca/.npm/osenv/0.0.3/package.tgz
4279 verbose lock tar:///Users/vaca/.npm/osenv/0.0.3/package.tgz /Users/vaca/.npm/d76a2330-vaca-npm-osenv-0-0-3-package-tgz.lock
4280 verbose tar unpack /Users/vaca/.npm/optimist/0.6.0/package.tgz
4281 silly lockFile fa9eea05-wer-config-node-modules-optimist tar:///opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist
4282 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist /Users/vaca/.npm/fa9eea05-wer-config-node-modules-optimist.lock
4283 silly lockFile 2c4d7643-a-npm-optimist-0-6-0-package-tgz tar:///Users/vaca/.npm/optimist/0.6.0/package.tgz
4284 verbose lock tar:///Users/vaca/.npm/optimist/0.6.0/package.tgz /Users/vaca/.npm/2c4d7643-a-npm-optimist-0-6-0-package-tgz.lock
4285 silly gunzTarPerm extractEntry tests/test-protocol-changing-redirect.js
4286 silly gunzTarPerm extractEntry tests/test-emptyBody.js
4287 http 304 https://registry.npmjs.org/inherits
4288 silly registry.get cb [ 304,
4288 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
4288 silly registry.get etag: '"75IFE02B6138KP4TCCLJ4ABFU"',
4288 silly registry.get date: 'Fri, 02 Aug 2013 15:55:11 GMT',
4288 silly registry.get 'content-length': '0' } ]
4289 verbose etag inherits from cache
4290 silly gunzTarPerm extractEntry test/specs/prompts/checkbox.js
4291 silly gunzTarPerm extractEntry test/specs/prompts/confirm.js
4292 silly gunzTarPerm extractEntry index.js
4293 silly gunzTarPerm extractEntry .travis.yml
4294 silly gunzTarPerm extractEntry LICENCE
4295 silly gunzTarPerm extractEntry rs.js
4296 silly addNameRange number 2 { name: 'minimatch', range: '>=0.2.0-0 <0.3.0-0', hasData: true }
4297 silly addNameRange versions [ 'minimatch',
4297 silly addNameRange [ '0.0.1',
4297 silly addNameRange '0.0.2',
4297 silly addNameRange '0.0.4',
4297 silly addNameRange '0.0.5',
4297 silly addNameRange '0.1.1',
4297 silly addNameRange '0.1.2',
4297 silly addNameRange '0.1.3',
4297 silly addNameRange '0.1.4',
4297 silly addNameRange '0.1.5',
4297 silly addNameRange '0.2.0',
4297 silly addNameRange '0.2.2',
4297 silly addNameRange '0.2.3',
4297 silly addNameRange '0.2.4',
4297 silly addNameRange '0.2.5',
4297 silly addNameRange '0.2.6',
4297 silly addNameRange '0.2.7',
4297 silly addNameRange '0.2.8',
4297 silly addNameRange '0.2.9',
4297 silly addNameRange '0.2.10',
4297 silly addNameRange '0.2.11',
4297 silly addNameRange '0.2.12' ] ]
4298 verbose addNamed [ 'minimatch', '0.2.12' ]
4299 verbose addNamed [ '0.2.12', '0.2.12' ]
4300 silly lockFile 16b89810-minimatch-0-2-12 minimatch@0.2.12
4301 verbose lock minimatch@0.2.12 /Users/vaca/.npm/16b89810-minimatch-0-2-12.lock
4302 silly gunzTarPerm extractEntry array/compact.js
4303 silly gunzTarPerm extractEntry array/unique.js
4304 silly gunzTarPerm extractEntry test/temp.dev/app/scripts/models/application-model.js
4305 silly gunzTarPerm extractEntry test/fixtures/foo-copy.js
4306 silly gunzTarPerm modes [ '755', '644' ]
4307 silly gunzTarPerm modes [ '755', '644' ]
4308 silly gunzTarPerm extractEntry README.md
4309 silly gunzTarPerm extractEntry index.js
4310 silly addNameRange number 2 { name: 'inherits', range: '>=2.0.0-0 <3.0.0-0', hasData: true }
4311 silly addNameRange versions [ 'inherits', [ '1.0.0', '2.0.0' ] ]
4312 verbose addNamed [ 'inherits', '2.0.0' ]
4313 verbose addNamed [ '2.0.0', '2.0.0' ]
4314 silly lockFile 5f83604f-inherits-2-0-0 inherits@2.0.0
4315 verbose lock inherits@2.0.0 /Users/vaca/.npm/5f83604f-inherits-2-0-0.lock
4316 silly gunzTarPerm extractEntry package.json
4317 silly gunzTarPerm extractEntry tests/test-proxy.js
4318 silly gunzTarPerm extractEntry tests/test-digest-auth.js
4319 silly gunzTarPerm extractEntry examples/pow.js
4320 silly gunzTarPerm extractEntry package.json
4321 silly gunzTarPerm extractEntry example/example.js
4322 silly gunzTarPerm extractEntry tests/test-errors.js
4323 silly gunzTarPerm extractEntry tests/test-qs.js
4324 silly gunzTarPerm extractEntry array/combine.js
4325 silly gunzTarPerm extractEntry array/xor.js
4326 silly gunzTarPerm extractEntry build/post-compile.js
4327 silly gunzTarPerm extractEntry build/pre-compile.js
4328 silly gunzTarPerm extractEntry README.md
4329 silly gunzTarPerm extractEntry LICENSE
4330 silly gunzTarPerm extractEntry LICENSE
4331 silly gunzTarPerm extractEntry index.js
4332 silly lockFile 16b89810-minimatch-0-2-12 minimatch@0.2.12
4333 silly lockFile 16b89810-minimatch-0-2-12 minimatch@0.2.12
4334 silly gunzTarPerm extractEntry tests/test-https.js
4335 silly gunzTarPerm extractEntry tests/test-localAddress.js
4336 silly lockFile 5866d608-minimatch-0-2-0 minimatch@~0.2.0
4337 silly lockFile 5866d608-minimatch-0-2-0 minimatch@~0.2.0
4338 silly gunzTarPerm extractEntry array/collect.js
4339 silly gunzTarPerm extractEntry readme.markdown
4340 silly gunzTarPerm extractEntry test/chmod.js
4341 silly gunzTarPerm extractEntry array/zip.js
4342 silly gunzTarPerm extractEntry lib/read.js
4343 silly gunzTarPerm extractEntry test/basic.js
4344 silly lockFile 5f83604f-inherits-2-0-0 inherits@2.0.0
4345 silly lockFile 5f83604f-inherits-2-0-0 inherits@2.0.0
4346 silly gunzTarPerm extractEntry osenv.js
4347 silly gunzTarPerm extractEntry test/unix.js
4348 silly gunzTarPerm extractEntry test/windows.js
4349 silly lockFile 1f7ff4de-inherits-2 inherits@2
4350 silly lockFile 1f7ff4de-inherits-2 inherits@2
4351 silly gunzTarPerm extractEntry .travis.yml
4352 silly resolved [ { author:
4352 silly resolved { name: 'Isaac Z. Schlueter',
4352 silly resolved email: 'i@izs.me',
4352 silly resolved url: 'http://blog.izs.me' },
4352 silly resolved name: 'minimatch',
4352 silly resolved description: 'a glob matcher in javascript',
4352 silly resolved version: '0.2.12',
4352 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/minimatch.git' },
4352 silly resolved main: 'minimatch.js',
4352 silly resolved scripts: { test: 'tap test' },
4352 silly resolved engines: { node: '*' },
4352 silly resolved dependencies: { 'lru-cache': '2', sigmund: '~1.0.0' },
4352 silly resolved devDependencies: { tap: '' },
4352 silly resolved license:
4352 silly resolved { type: 'MIT',
4352 silly resolved url: 'http://github.com/isaacs/minimatch/raw/master/LICENSE' },
4352 silly resolved readme: '# minimatch\n\nA minimal matching utility.\n\n[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)\n\n\nThis is the matching library used internally by npm.\n\nEventually, it will replace the C binding in node-glob.\n\nIt works by converting glob expressions into JavaScript `RegExp`\nobjects.\n\n## Usage\n\n```javascript\nvar minimatch = require("minimatch")\n\nminimatch("bar.foo", "*.foo") // true!\nminimatch("bar.foo", "*.bar") // false!\n```\n\n## Features\n\nSupports these glob features:\n\n* Brace Expansion\n* Extended glob matching\n* "Globstar" `**` matching\n\nSee:\n\n* `man sh`\n* `man bash`\n* `man 3 fnmatch`\n* `man 5 gitignore`\n\n### Comparisons to other fnmatch/glob implementations\n\nWhile strict compliance with the existing standards is a worthwhile\ngoal, some discrepancies exist between minimatch and other\nimplementations, and are intentional.\n\nIf the pattern starts with a `!` character, then it is negated. Set the\n`nonegate` flag to suppress this behavior, and treat leading `!`\ncharacters normally. This is perhaps relevant if you wish to start the\npattern with a negative extglob pattern like `!(a|B)`. Multiple `!`\ncharacters at the start of a pattern will negate the pattern multiple\ntimes.\n\nIf a pattern starts with `#`, then it is treated as a comment, and\nwill not match anything. Use `\\#` to match a literal `#` at the\nstart of a line, or set the `nocomment` flag to suppress this behavior.\n\nThe double-star character `**` is supported by default, unless the\n`noglobstar` flag is set. This is supported in the manner of bsdglob\nand bash 4.1, where `**` only has special significance if it is the only\nthing in a path part. That is, `a/**/b` will match `a/x/y/b`, but\n`a/**b` will not. **Note that this is different from the way that `**` is\nhandled by ruby\'s `Dir` class.**\n\nIf an escaped pattern has no matches, and the `nonull` flag is set,\nthen minimatch.match returns the pattern as-provided, rather than\ninterpreting the character escapes. For example,\n`minimatch.match([], "\\\\*a\\\\?")` will return `"\\\\*a\\\\?"` rather than\n`"*a?"`. This is akin to setting the `nullglob` option in bash, except\nthat it does not resolve escaped pattern characters.\n\nIf brace expansion is not disabled, then it is performed before any\nother interpretation of the glob pattern. Thus, a pattern like\n`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded\n**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are\nchecked for validity. Since those two are valid, matching proceeds.\n\n\n## Minimatch Class\n\nCreate a minimatch object by instanting the `minimatch.Minimatch` class.\n\n```javascript\nvar Minimatch = require("minimatch").Minimatch\nvar mm = new Minimatch(pattern, options)\n```\n\n### Properties\n\n* `pattern` The original pattern the minimatch object represents.\n* `options` The options supplied to the constructor.\n* `set` A 2-dimensional array of regexp or string expressions.\n Each row in the\n array corresponds to a brace-expanded pattern. Each item in the row\n corresponds to a single path-part. For example, the pattern\n `{a,b/c}/d` would expand to a set of patterns like:\n\n [ [ a, d ]\n , [ b, c, d ] ]\n\n If a portion of the pattern doesn\'t have any "magic" in it\n (that is, it\'s something like `"foo"` rather than `fo*o?`), then it\n will be left as a string rather than converted to a regular\n expression.\n\n* `regexp` Created by the `makeRe` method. A single regular expression\n expressing the entire pattern. This is useful in cases where you wish\n to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.\n* `negate` True if the pattern is negated.\n* `comment` True if the pattern is a comment.\n* `empty` True if the pattern is `""`.\n\n### Methods\n\n* `makeRe` Generate the `regexp` member if necessary, and return it.\n Will return `false` if the pattern is invalid.\n* `match(fname)` Return true if the filename matches the pattern, or\n false otherwise.\n* `matchOne(fileArray, patternArray, partial)` Take a `/`-split\n filename, and match it against a single row in the `regExpSet`. This\n method is mainly for internal use, but is exposed so that it can be\n used by a glob-walker that needs to avoid excessive filesystem calls.\n\nAll other methods are internal, and will be called as necessary.\n\n## Functions\n\nThe top-level exported function has a `cache` property, which is an LRU\ncache set to store 100 items. So, calling these methods repeatedly\nwith the same pattern and options will use the same Minimatch object,\nsaving the cost of parsing it multiple times.\n\n### minimatch(path, pattern, options)\n\nMain export. Tests a path against the pattern using the options.\n\n```javascript\nvar isJS = minimatch(file, "*.js", { matchBase: true })\n```\n\n### minimatch.filter(pattern, options)\n\nReturns a function that tests its\nsupplied argument, suitable for use with `Array.filter`. Example:\n\n```javascript\nvar javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))\n```\n\n### minimatch.match(list, pattern, options)\n\nMatch against the list of\nfiles, in the style of fnmatch or glob. If nothing is matched, and\noptions.nonull is set, then return a list containing the pattern itself.\n\n```javascript\nvar javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))\n```\n\n### minimatch.makeRe(pattern, options)\n\nMake a regular expression object from the pattern.\n\n## Options\n\nAll options are `false` by default.\n\n### debug\n\nDump a ton of stuff to stderr.\n\n### nobrace\n\nDo not expand `{a,b}` and `{1..3}` brace sets.\n\n### noglobstar\n\nDisable `**` matching against multiple folder names.\n\n### dot\n\nAllow patterns to match filenames starting with a period, even if\nthe pattern does not explicitly have a period in that spot.\n\nNote that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`\nis set.\n\n### noext\n\nDisable "extglob" style patterns like `+(a|b)`.\n\n### nocase\n\nPerform a case-insensitive match.\n\n### nonull\n\nWhen a match is not found by `minimatch.match`, return a list containing\nthe pattern itself. When set, an empty list is returned if there are\nno matches.\n\n### matchBase\n\nIf set, then patterns without slashes will be matched\nagainst the basename of the path if it contains slashes. For example,\n`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.\n\n### nocomment\n\nSuppress the behavior of treating `#` at the start of a pattern as a\ncomment.\n\n### nonegate\n\nSuppress the behavior of treating a leading `!` character as negation.\n\n### flipNegate\n\nReturns from negate expressions the same as if they were not negated.\n(Ie, true on a hit, false on a miss.)\n',
4352 silly resolved readmeFilename: 'README.md',
4352 silly resolved bugs: { url: 'https://github.com/isaacs/minimatch/issues' },
4352 silly resolved _id: 'minimatch@0.2.12',
4352 silly resolved _from: 'minimatch@~0.2.0' },
4352 silly resolved { name: 'inherits',
4352 silly resolved description: 'Browser-friendly inheritance fully compatible with standard node.js inherits()',
4352 silly resolved version: '2.0.0',
4352 silly resolved keywords:
4352 silly resolved [ 'inheritance',
4352 silly resolved 'class',
4352 silly resolved 'klass',
4352 silly resolved 'oop',
4352 silly resolved 'object-oriented',
4352 silly resolved 'inherits',
4352 silly resolved 'browser',
4352 silly resolved 'browserify' ],
4352 silly resolved main: './inherits.js',
4352 silly resolved browser: './inherits_browser.js',
4352 silly resolved repository: { type: 'git', url: 'https://github.com/isaacs/inherits' },
4352 silly resolved license: { type: 'WTFPL2' },
4352 silly resolved author:
4352 silly resolved { name: 'Isaac Z. Schlueter',
4352 silly resolved email: 'i@izs.me',
4352 silly resolved url: 'http://blog.izs.me/' },
4352 silly resolved scripts: { test: 'node test' },
4352 silly resolved readme: 'Browser-friendly inheritance fully compatible with standard node.js\n[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).\n\nThis package exports standard `inherits` from node.js `util` module in\nnode environment, but also provides alternative browser-friendly\nimplementation through [browser\nfield](https://gist.github.com/shtylman/4339901). Alternative\nimplementation is a literal copy of standard one located in standalone\nmodule to avoid requiring of `util`. It also has a shim for old\nbrowsers with no `Object.create` support.\n\nWhile keeping you sure you are using standard `inherits`\nimplementation in node.js environment, it allows bundlers such as\n[browserify](https://github.com/substack/node-browserify) to not\ninclude full `util` package to your client code if all you need is\njust `inherits` function. It worth, because browser shim for `util`\npackage is large and `inherits` is often the single function you need\nfrom it.\n\nIt\'s recommended to use this package instead of\n`require(\'util\').inherits` for any code that has chances to be used\nnot only in node.js but in browser too.\n\n## usage\n\n```js\nvar inherits = require(\'inherits\');\n// then use exactly as the standard one\n```\n\n## note on version ~1.0\n\nVersion ~1.0 had completely different motivation and is not compatible\nneither with 2.0 nor with standard node.js `inherits`.\n\nIf you are using version ~1.0 and planning to switch to ~2.0, be\ncareful:\n\n* new version uses `super_` instead of `super` for referencing\n superclass\n* new version overwrites current prototype while old one preserves any\n existing fields on it\n',
4352 silly resolved readmeFilename: 'README.md',
4352 silly resolved bugs: { url: 'https://github.com/isaacs/inherits/issues' },
4352 silly resolved _id: 'inherits@2.0.0',
4352 silly resolved _from: 'inherits@2' } ]
4353 info install minimatch@0.2.12 into /opt/local/lib/node_modules/bower/node_modules/fstream-ignore
4354 info install inherits@2.0.0 into /opt/local/lib/node_modules/bower/node_modules/fstream-ignore
4355 info installOne minimatch@0.2.12
4356 info installOne inherits@2.0.0
4357 silly gunzTarPerm extractEntry test/specs/prompts/expand.js
4358 silly gunzTarPerm extractEntry test/specs/prompts/input.js
4359 silly gunzTarPerm extractEntry tests/test-defaults.js
4360 silly gunzTarPerm extractEntry tests/test-redirect.js
4361 info /opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/minimatch unbuild
4362 info /opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/inherits unbuild
4363 silly gunzTarPerm extractEntry tests/test-qs.js
4364 silly gunzTarPerm extractEntry tests/test-defaults.js
4365 verbose tar unpack /Users/vaca/.npm/minimatch/0.2.12/package.tgz
4366 silly lockFile 833b67d4-am-ignore-node-modules-minimatch tar:///opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/minimatch
4367 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/minimatch /Users/vaca/.npm/833b67d4-am-ignore-node-modules-minimatch.lock
4368 silly lockFile 5e70848b-npm-minimatch-0-2-12-package-tgz tar:///Users/vaca/.npm/minimatch/0.2.12/package.tgz
4369 verbose lock tar:///Users/vaca/.npm/minimatch/0.2.12/package.tgz /Users/vaca/.npm/5e70848b-npm-minimatch-0-2-12-package-tgz.lock
4370 verbose tar unpack /Users/vaca/.npm/inherits/2.0.0/package.tgz
4371 silly lockFile 8562bda1-eam-ignore-node-modules-inherits tar:///opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/inherits
4372 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/inherits /Users/vaca/.npm/8562bda1-eam-ignore-node-modules-inherits.lock
4373 silly lockFile 069571be-a-npm-inherits-2-0-0-package-tgz tar:///Users/vaca/.npm/inherits/2.0.0/package.tgz
4374 verbose lock tar:///Users/vaca/.npm/inherits/2.0.0/package.tgz /Users/vaca/.npm/069571be-a-npm-inherits-2-0-0-package-tgz.lock
4375 silly gunzTarPerm extractEntry array/max.js
4376 silly gunzTarPerm extractEntry math/ceil.js
4377 silly gunzTarPerm modes [ '755', '644' ]
4378 silly gunzTarPerm modes [ '755', '644' ]
4379 silly gunzTarPerm extractEntry tests/test-oauth.js
4380 silly gunzTarPerm extractEntry tests/test-onelineproxy.js
4381 silly gunzTarPerm extractEntry test/defaults.js
4382 silly gunzTarPerm extractEntry test/many.js
4383 silly gunzTarPerm extractEntry test/perm.js
4384 silly gunzTarPerm extractEntry test/perm_sync.js
4385 silly gunzTarPerm extractEntry example/bool.js
4386 silly gunzTarPerm extractEntry example/default_singles.js
4387 silly gunzTarPerm extractEntry tests/test-cookiejar.js
4388 silly gunzTarPerm extractEntry tests/test-s3.js
4389 silly gunzTarPerm extractEntry tests/test-redirect.js
4390 silly gunzTarPerm extractEntry tests/test-body.js
4391 silly gunzTarPerm extractEntry package.json
4392 silly gunzTarPerm extractEntry test/fixtures/foo-process.js
4393 silly gunzTarPerm extractEntry test/fixtures/foo-template.js
4394 silly gunzTarPerm extractEntry package.json
4395 silly gunzTarPerm extractEntry math/countSteps.js
4396 silly gunzTarPerm extractEntry math/floor.js
4397 silly gunzTarPerm extractEntry test/specs/prompts/list.js
4398 silly gunzTarPerm extractEntry test/specs/prompts/password.js
4399 silly gunzTarPerm extractEntry test/race.js
4400 silly gunzTarPerm extractEntry test/mkdirp.js
4401 silly gunzTarPerm extractEntry README.md
4402 silly gunzTarPerm extractEntry LICENSE
4403 silly gunzTarPerm extractEntry README.md
4404 silly gunzTarPerm extractEntry LICENSE
4405 silly gunzTarPerm extractEntry tests/test-params.js
4406 silly gunzTarPerm extractEntry tests/test-form.js
4407 silly lockFile 881bf4cc-er-json-node-modules-deep-extend tar:///opt/local/lib/node_modules/bower/node_modules/bower-json/node_modules/deep-extend
4408 silly lockFile 881bf4cc-er-json-node-modules-deep-extend tar:///opt/local/lib/node_modules/bower/node_modules/bower-json/node_modules/deep-extend
4409 silly lockFile 0484574c-pm-deep-extend-0-2-5-package-tgz tar:///Users/vaca/.npm/deep-extend/0.2.5/package.tgz
4410 silly lockFile 0484574c-pm-deep-extend-0-2-5-package-tgz tar:///Users/vaca/.npm/deep-extend/0.2.5/package.tgz
4411 silly gunzTarPerm extractEntry math/inRange.js
4412 silly gunzTarPerm extractEntry math/clamp.js
4413 silly lockFile f2803054-progress-node-modules-throttleit tar:///opt/local/lib/node_modules/bower/node_modules/request-progress/node_modules/throttleit
4414 silly lockFile f2803054-progress-node-modules-throttleit tar:///opt/local/lib/node_modules/bower/node_modules/request-progress/node_modules/throttleit
4415 silly gunzTarPerm extractEntry tests/test-cookie.js
4416 silly gunzTarPerm extractEntry tests/test-timeout.js
4417 silly lockFile bceedd0b-npm-throttleit-0-0-2-package-tgz tar:///Users/vaca/.npm/throttleit/0.0.2/package.tgz
4418 silly lockFile bceedd0b-npm-throttleit-0-0-2-package-tgz tar:///Users/vaca/.npm/throttleit/0.0.2/package.tgz
4419 info preinstall deep-extend@0.2.5
4420 silly gunzTarPerm extractEntry tests/test-s3.js
4421 silly gunzTarPerm extractEntry tests/test-basic-auth.js
4422 silly gunzTarPerm extractEntry minimatch.js
4423 silly gunzTarPerm extractEntry test/return.js
4424 silly gunzTarPerm extractEntry test/return_sync.js
4425 silly gunzTarPerm extractEntry lib/handlebars/compiler/parser.js
4426 silly gunzTarPerm extractEntry lib/handlebars/compiler/printer.js
4427 silly gunzTarPerm extractEntry lib/handlebars/compiler/visitor.js
4428 silly gunzTarPerm extractEntry lib/handlebars/source.rb
4429 silly gunzTarPerm extractEntry min.sh
4430 silly gunzTarPerm extractEntry .rspec
4431 silly gunzTarPerm extractEntry release-notes.md
4432 silly gunzTarPerm extractEntry .jshintrc
4433 silly gunzTarPerm extractEntry inherits.js
4434 silly gunzTarPerm extractEntry inherits_browser.js
4435 silly gunzTarPerm extractEntry test.js
4436 silly gunzTarPerm extractEntry test/specs/prompts/rawlist.js
4437 silly gunzTarPerm extractEntry test/node_modules/inquirer/package.json
4438 verbose readDependencies using package.json deps
4439 info preinstall throttleit@0.0.2
4440 verbose readDependencies using package.json deps
4441 silly resolved []
4442 verbose about to build /opt/local/lib/node_modules/bower/node_modules/bower-json/node_modules/deep-extend
4443 info build /opt/local/lib/node_modules/bower/node_modules/bower-json/node_modules/deep-extend
4444 verbose linkStuff [ true,
4444 verbose linkStuff '/opt/local/lib/node_modules',
4444 verbose linkStuff false,
4444 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/bower-json/node_modules' ]
4445 info linkStuff deep-extend@0.2.5
4446 silly gunzTarPerm extractEntry test/fixtures/foo.js
4447 silly gunzTarPerm extractEntry test/fixtures/lodash-copy.js
4448 verbose linkBins deep-extend@0.2.5
4449 verbose linkMans deep-extend@0.2.5
4450 verbose rebuildBundles deep-extend@0.2.5
4451 verbose readDependencies using package.json deps
4452 silly gunzTarPerm extractEntry math/lerp.js
4453 silly gunzTarPerm extractEntry math/loop.js
4454 info install deep-extend@0.2.5
4455 verbose readDependencies using package.json deps
4456 silly resolved []
4457 verbose about to build /opt/local/lib/node_modules/bower/node_modules/request-progress/node_modules/throttleit
4458 info build /opt/local/lib/node_modules/bower/node_modules/request-progress/node_modules/throttleit
4459 verbose linkStuff [ true,
4459 verbose linkStuff '/opt/local/lib/node_modules',
4459 verbose linkStuff false,
4459 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/request-progress/node_modules' ]
4460 info linkStuff throttleit@0.0.2
4461 info postinstall deep-extend@0.2.5
4462 verbose linkBins throttleit@0.0.2
4463 verbose linkMans throttleit@0.0.2
4464 verbose rebuildBundles throttleit@0.0.2
4465 info install throttleit@0.0.2
4466 silly gunzTarPerm extractEntry tests/test-piped-redirect.js
4467 silly gunzTarPerm extractEntry tests/test-follow-all.js
4468 verbose about to build /opt/local/lib/node_modules/bower/node_modules/bower-json
4469 info build /opt/local/lib/node_modules/bower/node_modules/bower-json
4470 verbose linkStuff [ true,
4470 verbose linkStuff '/opt/local/lib/node_modules',
4470 verbose linkStuff false,
4470 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules' ]
4471 info linkStuff bower-json@0.2.0
4472 silly gunzTarPerm extractEntry test/root.js
4473 silly gunzTarPerm extractEntry test/sync.js
4474 silly gunzTarPerm extractEntry example/divide.js
4475 silly gunzTarPerm extractEntry example/line_count.js
4476 silly gunzTarPerm extractEntry tests/test-timeout.js
4477 silly gunzTarPerm extractEntry tests/test-agentOptions.js
4478 info postinstall throttleit@0.0.2
4479 verbose linkBins bower-json@0.2.0
4480 verbose linkMans bower-json@0.2.0
4481 verbose rebuildBundles bower-json@0.2.0
4482 verbose rebuildBundles [ 'deep-extend' ]
4483 info install bower-json@0.2.0
4484 verbose about to build /opt/local/lib/node_modules/bower/node_modules/request-progress
4485 info build /opt/local/lib/node_modules/bower/node_modules/request-progress
4486 verbose linkStuff [ true,
4486 verbose linkStuff '/opt/local/lib/node_modules',
4486 verbose linkStuff false,
4486 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules' ]
4487 info linkStuff request-progress@0.2.3
4488 silly gunzTarPerm extractEntry tests/test-body.js
4489 silly gunzTarPerm extractEntry tests/test-toJSON.js
4490 silly gunzTarPerm extractEntry math/map.js
4491 silly gunzTarPerm extractEntry math/norm.js
4492 info postinstall bower-json@0.2.0
4493 verbose linkBins request-progress@0.2.3
4494 verbose linkMans request-progress@0.2.3
4495 verbose rebuildBundles request-progress@0.2.3
4496 verbose rebuildBundles [ 'throttleit' ]
4497 info install request-progress@0.2.3
4498 silly gunzTarPerm extractEntry test/node_modules/inquirer/.npmignore
4499 silly gunzTarPerm extractEntry test/node_modules/inquirer/README.md
4500 silly gunzTarPerm extractEntry test/node_modules/inquirer/Gruntfile.js
4501 silly gunzTarPerm extractEntry test/node_modules/inquirer/Inquirer.js.sublime-workspace
4502 silly gunzTarPerm extractEntry test/node_modules/inquirer/Inquirer.js.sublime-project
4503 silly gunzTarPerm extractEntry test/node_modules/inquirer/.jshintrc
4504 silly gunzTarPerm extractEntry test/node_modules/inquirer/LICENSE-MIT
4505 silly gunzTarPerm extractEntry test/node_modules/inquirer/.travis.yml
4506 silly gunzTarPerm extractEntry test/node_modules/inquirer/examples/nestedCall.js
4507 silly gunzTarPerm extractEntry test/node_modules/inquirer/examples/pizza.js
4508 silly gunzTarPerm extractEntry test/node_modules/inquirer/lib/inquirer.js
4509 silly gunzTarPerm extractEntry test/node_modules/inquirer/lib/prompts/base.js
4510 silly gunzTarPerm extractEntry test/node_modules/inquirer/lib/prompts/confirm.js
4511 silly gunzTarPerm extractEntry test/node_modules/inquirer/lib/prompts/input.js
4512 silly gunzTarPerm extractEntry test/node_modules/inquirer/lib/prompts/list.js
4513 silly gunzTarPerm extractEntry test/node_modules/inquirer/lib/prompts/rawlist.js
4514 silly gunzTarPerm extractEntry test/node_modules/inquirer/lib/utils/readline.js
4515 silly gunzTarPerm extractEntry test/node_modules/inquirer/lib/utils/utils.js
4516 silly gunzTarPerm extractEntry test/node_modules/inquirer/.editorconfig
4517 silly gunzTarPerm extractEntry test/node_modules/inquirer/test/helpers/readline.js
4518 silly gunzTarPerm extractEntry test/node_modules/inquirer/test/specs/api.js
4519 silly gunzTarPerm extractEntry test/node_modules/inquirer/test/specs/inquirer.js
4520 silly gunzTarPerm extractEntry test/node_modules/inquirer/test/specs/utils.js
4521 silly gunzTarPerm extractEntry test/node_modules/inquirer/test/specs/prompts/base.js
4522 silly gunzTarPerm extractEntry test/node_modules/inquirer/test/specs/prompts/confirm.js
4523 silly gunzTarPerm extractEntry test/node_modules/inquirer/test/specs/prompts/input.js
4524 silly gunzTarPerm extractEntry test/node_modules/inquirer/test/specs/prompts/list.js
4525 silly gunzTarPerm extractEntry test/node_modules/inquirer/test/specs/prompts/rawlist.js
4526 silly gunzTarPerm extractEntry example/default_hash.js
4527 silly gunzTarPerm extractEntry example/line_count_wrap.js
4528 info postinstall request-progress@0.2.3
4529 silly gunzTarPerm extractEntry tests/test-pipes.js
4530 silly gunzTarPerm extractEntry tests/test-follow-all-303.js
4531 silly lockFile 274c0d35-modules-bower-node-modules-unzip tar:///opt/local/lib/node_modules/bower/node_modules/unzip
4532 silly lockFile 274c0d35-modules-bower-node-modules-unzip tar:///opt/local/lib/node_modules/bower/node_modules/unzip
4533 silly lockFile 5c586d93-vaca-npm-unzip-0-1-8-package-tgz tar:///Users/vaca/.npm/unzip/0.1.8/package.tgz
4534 silly lockFile 5c586d93-vaca-npm-unzip-0-1-8-package-tgz tar:///Users/vaca/.npm/unzip/0.1.8/package.tgz
4535 silly gunzTarPerm extractEntry test/basic.js
4536 silly gunzTarPerm extractEntry test/brace-expand.js
4537 silly gunzTarPerm extractEntry tests/test-toJSON.js
4538 silly gunzTarPerm extractEntry tests/server.js
4539 silly gunzTarPerm extractEntry test/umask.js
4540 silly gunzTarPerm extractEntry test/clobber.js
4541 silly gunzTarPerm extractEntry math/round.js
4542 silly gunzTarPerm extractEntry math/isNear.js
4543 info preinstall unzip@0.1.8
4544 silly lockFile ce103a10-es-findup-sync-node-modules-glob tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob
4545 silly lockFile ce103a10-es-findup-sync-node-modules-glob tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob
4546 silly lockFile 5c283ff3-vaca-npm-glob-3-1-21-package-tgz tar:///Users/vaca/.npm/glob/3.1.21/package.tgz
4547 silly lockFile 5c283ff3-vaca-npm-glob-3-1-21-package-tgz tar:///Users/vaca/.npm/glob/3.1.21/package.tgz
4548 silly gunzTarPerm extractEntry tests/server.js
4549 silly gunzTarPerm extractEntry tests/test-tunnel.js
4550 verbose readDependencies using package.json deps
4551 silly gunzTarPerm extractEntry tests/test-pool.js
4552 verbose readDependencies using package.json deps
4553 silly gunzTarPerm extractEntry example/nonopt.js
4554 silly gunzTarPerm extractEntry example/reflect.js
4555 silly gunzTarPerm extractEntry tests/test-errors.js
4556 verbose cache add [ 'pullstream@~0.4.0', null ]
4557 verbose cache add name=undefined spec="pullstream@~0.4.0" args=["pullstream@~0.4.0",null]
4558 verbose parsed url { protocol: null,
4558 verbose parsed url slashes: null,
4558 verbose parsed url auth: null,
4558 verbose parsed url host: null,
4558 verbose parsed url port: null,
4558 verbose parsed url hostname: null,
4558 verbose parsed url hash: null,
4558 verbose parsed url search: null,
4558 verbose parsed url query: null,
4558 verbose parsed url pathname: 'pullstream@~0.4.0',
4558 verbose parsed url path: 'pullstream@~0.4.0',
4558 verbose parsed url href: 'pullstream@~0.4.0' }
4559 verbose cache add name="pullstream" spec="~0.4.0" args=["pullstream","~0.4.0"]
4560 verbose parsed url { protocol: null,
4560 verbose parsed url slashes: null,
4560 verbose parsed url auth: null,
4560 verbose parsed url host: null,
4560 verbose parsed url port: null,
4560 verbose parsed url hostname: null,
4560 verbose parsed url hash: null,
4560 verbose parsed url search: null,
4560 verbose parsed url query: null,
4560 verbose parsed url pathname: '~0.4.0',
4560 verbose parsed url path: '~0.4.0',
4560 verbose parsed url href: '~0.4.0' }
4561 verbose addNamed [ 'pullstream', '~0.4.0' ]
4562 verbose addNamed [ null, '>=0.4.0-0 <0.5.0-0' ]
4563 silly lockFile 01a41988-pullstream-0-4-0 pullstream@~0.4.0
4564 verbose lock pullstream@~0.4.0 /Users/vaca/.npm/01a41988-pullstream-0-4-0.lock
4565 verbose cache add [ 'binary@~0.3.0', null ]
4566 verbose cache add name=undefined spec="binary@~0.3.0" args=["binary@~0.3.0",null]
4567 verbose parsed url { protocol: null,
4567 verbose parsed url slashes: null,
4567 verbose parsed url auth: null,
4567 verbose parsed url host: null,
4567 verbose parsed url port: null,
4567 verbose parsed url hostname: null,
4567 verbose parsed url hash: null,
4567 verbose parsed url search: null,
4567 verbose parsed url query: null,
4567 verbose parsed url pathname: 'binary@~0.3.0',
4567 verbose parsed url path: 'binary@~0.3.0',
4567 verbose parsed url href: 'binary@~0.3.0' }
4568 verbose cache add name="binary" spec="~0.3.0" args=["binary","~0.3.0"]
4569 verbose parsed url { protocol: null,
4569 verbose parsed url slashes: null,
4569 verbose parsed url auth: null,
4569 verbose parsed url host: null,
4569 verbose parsed url port: null,
4569 verbose parsed url hostname: null,
4569 verbose parsed url hash: null,
4569 verbose parsed url search: null,
4569 verbose parsed url query: null,
4569 verbose parsed url pathname: '~0.3.0',
4569 verbose parsed url path: '~0.3.0',
4569 verbose parsed url href: '~0.3.0' }
4570 verbose addNamed [ 'binary', '~0.3.0' ]
4571 verbose addNamed [ null, '>=0.3.0-0 <0.4.0-0' ]
4572 silly lockFile bd38fc46-binary-0-3-0 binary@~0.3.0
4573 verbose lock binary@~0.3.0 /Users/vaca/.npm/bd38fc46-binary-0-3-0.lock
4574 verbose cache add [ 'readable-stream@~1.0.0', null ]
4575 verbose cache add name=undefined spec="readable-stream@~1.0.0" args=["readable-stream@~1.0.0",null]
4576 verbose parsed url { protocol: null,
4576 verbose parsed url slashes: null,
4576 verbose parsed url auth: null,
4576 verbose parsed url host: null,
4576 verbose parsed url port: null,
4576 verbose parsed url hostname: null,
4576 verbose parsed url hash: null,
4576 verbose parsed url search: null,
4576 verbose parsed url query: null,
4576 verbose parsed url pathname: 'readable-stream@~1.0.0',
4576 verbose parsed url path: 'readable-stream@~1.0.0',
4576 verbose parsed url href: 'readable-stream@~1.0.0' }
4577 verbose cache add name="readable-stream" spec="~1.0.0" args=["readable-stream","~1.0.0"]
4578 verbose parsed url { protocol: null,
4578 verbose parsed url slashes: null,
4578 verbose parsed url auth: null,
4578 verbose parsed url host: null,
4578 verbose parsed url port: null,
4578 verbose parsed url hostname: null,
4578 verbose parsed url hash: null,
4578 verbose parsed url search: null,
4578 verbose parsed url query: null,
4578 verbose parsed url pathname: '~1.0.0',
4578 verbose parsed url path: '~1.0.0',
4578 verbose parsed url href: '~1.0.0' }
4579 verbose addNamed [ 'readable-stream', '~1.0.0' ]
4580 verbose addNamed [ null, '>=1.0.0-0 <1.1.0-0' ]
4581 silly lockFile 87dee724-readable-stream-1-0-0 readable-stream@~1.0.0
4582 verbose lock readable-stream@~1.0.0 /Users/vaca/.npm/87dee724-readable-stream-1-0-0.lock
4583 verbose cache add [ 'setimmediate@~1.0.1', null ]
4584 verbose cache add name=undefined spec="setimmediate@~1.0.1" args=["setimmediate@~1.0.1",null]
4585 verbose parsed url { protocol: null,
4585 verbose parsed url slashes: null,
4585 verbose parsed url auth: null,
4585 verbose parsed url host: null,
4585 verbose parsed url port: null,
4585 verbose parsed url hostname: null,
4585 verbose parsed url hash: null,
4585 verbose parsed url search: null,
4585 verbose parsed url query: null,
4585 verbose parsed url pathname: 'setimmediate@~1.0.1',
4585 verbose parsed url path: 'setimmediate@~1.0.1',
4585 verbose parsed url href: 'setimmediate@~1.0.1' }
4586 verbose cache add name="setimmediate" spec="~1.0.1" args=["setimmediate","~1.0.1"]
4587 verbose parsed url { protocol: null,
4587 verbose parsed url slashes: null,
4587 verbose parsed url auth: null,
4587 verbose parsed url host: null,
4587 verbose parsed url port: null,
4587 verbose parsed url hostname: null,
4587 verbose parsed url hash: null,
4587 verbose parsed url search: null,
4587 verbose parsed url query: null,
4587 verbose parsed url pathname: '~1.0.1',
4587 verbose parsed url path: '~1.0.1',
4587 verbose parsed url href: '~1.0.1' }
4588 verbose addNamed [ 'setimmediate', '~1.0.1' ]
4589 verbose addNamed [ null, '>=1.0.1-0 <1.1.0-0' ]
4590 silly lockFile 9b468877-setimmediate-1-0-1 setimmediate@~1.0.1
4591 verbose lock setimmediate@~1.0.1 /Users/vaca/.npm/9b468877-setimmediate-1-0-1.lock
4592 verbose cache add [ 'match-stream@~0.0.2', null ]
4593 verbose cache add name=undefined spec="match-stream@~0.0.2" args=["match-stream@~0.0.2",null]
4594 verbose parsed url { protocol: null,
4594 verbose parsed url slashes: null,
4594 verbose parsed url auth: null,
4594 verbose parsed url host: null,
4594 verbose parsed url port: null,
4594 verbose parsed url hostname: null,
4594 verbose parsed url hash: null,
4594 verbose parsed url search: null,
4594 verbose parsed url query: null,
4594 verbose parsed url pathname: 'match-stream@~0.0.2',
4594 verbose parsed url path: 'match-stream@~0.0.2',
4594 verbose parsed url href: 'match-stream@~0.0.2' }
4595 verbose cache add name="match-stream" spec="~0.0.2" args=["match-stream","~0.0.2"]
4596 verbose parsed url { protocol: null,
4596 verbose parsed url slashes: null,
4596 verbose parsed url auth: null,
4596 verbose parsed url host: null,
4596 verbose parsed url port: null,
4596 verbose parsed url hostname: null,
4596 verbose parsed url hash: null,
4596 verbose parsed url search: null,
4596 verbose parsed url query: null,
4596 verbose parsed url pathname: '~0.0.2',
4596 verbose parsed url path: '~0.0.2',
4596 verbose parsed url href: '~0.0.2' }
4597 verbose addNamed [ 'match-stream', '~0.0.2' ]
4598 verbose addNamed [ null, '>=0.0.2-0 <0.1.0-0' ]
4599 silly lockFile 3da41106-match-stream-0-0-2 match-stream@~0.0.2
4600 verbose lock match-stream@~0.0.2 /Users/vaca/.npm/3da41106-match-stream-0-0-2.lock
4601 silly gunzTarPerm extractEntry tests/test-tunnel.js
4602 silly gunzTarPerm extractEntry tests/test-https-strict.js
4603 info preinstall glob@3.1.21
4604 silly addNameRange { name: 'pullstream',
4604 silly addNameRange range: '>=0.4.0-0 <0.5.0-0',
4604 silly addNameRange hasData: false }
4605 silly addNameRange { name: 'binary', range: '>=0.3.0-0 <0.4.0-0', hasData: false }
4606 silly addNameRange { name: 'readable-stream',
4606 silly addNameRange range: '>=1.0.0-0 <1.1.0-0',
4606 silly addNameRange hasData: false }
4607 silly addNameRange { name: 'setimmediate',
4607 silly addNameRange range: '>=1.0.1-0 <1.1.0-0',
4607 silly addNameRange hasData: false }
4608 silly addNameRange { name: 'match-stream',
4608 silly addNameRange range: '>=0.0.2-0 <0.1.0-0',
4608 silly addNameRange hasData: false }
4609 silly lockFile 81229234--modules-bower-node-modules-glob tar:///opt/local/lib/node_modules/bower/node_modules/glob
4610 silly lockFile 81229234--modules-bower-node-modules-glob tar:///opt/local/lib/node_modules/bower/node_modules/glob
4611 silly gunzTarPerm extractEntry test/umask_sync.js
4612 silly gunzTarPerm extractEntry test/rel.js
4613 silly gunzTarPerm extractEntry test/caching.js
4614 silly gunzTarPerm extractEntry test/defaults.js
4615 silly lockFile 634c3749--vaca-npm-glob-3-2-6-package-tgz tar:///Users/vaca/.npm/glob/3.2.6/package.tgz
4616 silly lockFile 634c3749--vaca-npm-glob-3-2-6-package-tgz tar:///Users/vaca/.npm/glob/3.2.6/package.tgz
4617 verbose readDependencies using package.json deps
4618 silly gunzTarPerm extractEntry .travis.yml
4619 silly gunzTarPerm extractEntry number/MAX_INT.js
4620 verbose readDependencies using package.json deps
4621 silly gunzTarPerm extractEntry test/fixtures/help.txt
4622 silly lockFile bde8f9a1-dules-bower-node-modules-fstream tar:///opt/local/lib/node_modules/bower/node_modules/fstream
4623 silly lockFile bde8f9a1-dules-bower-node-modules-fstream tar:///opt/local/lib/node_modules/bower/node_modules/fstream
4624 silly gunzTarPerm extractEntry tests/test-https.js
4625 silly gunzTarPerm extractEntry tests/squid.conf
4626 silly lockFile 6250cf50-a-npm-fstream-0-1-24-package-tgz tar:///Users/vaca/.npm/fstream/0.1.24/package.tgz
4627 silly lockFile 6250cf50-a-npm-fstream-0-1-24-package-tgz tar:///Users/vaca/.npm/fstream/0.1.24/package.tgz
4628 verbose cache add [ 'minimatch@~0.2.11', null ]
4629 verbose cache add name=undefined spec="minimatch@~0.2.11" args=["minimatch@~0.2.11",null]
4630 verbose parsed url { protocol: null,
4630 verbose parsed url slashes: null,
4630 verbose parsed url auth: null,
4630 verbose parsed url host: null,
4630 verbose parsed url port: null,
4630 verbose parsed url hostname: null,
4630 verbose parsed url hash: null,
4630 verbose parsed url search: null,
4630 verbose parsed url query: null,
4630 verbose parsed url pathname: 'minimatch@~0.2.11',
4630 verbose parsed url path: 'minimatch@~0.2.11',
4630 verbose parsed url href: 'minimatch@~0.2.11' }
4631 verbose cache add name="minimatch" spec="~0.2.11" args=["minimatch","~0.2.11"]
4632 verbose parsed url { protocol: null,
4632 verbose parsed url slashes: null,
4632 verbose parsed url auth: null,
4632 verbose parsed url host: null,
4632 verbose parsed url port: null,
4632 verbose parsed url hostname: null,
4632 verbose parsed url hash: null,
4632 verbose parsed url search: null,
4632 verbose parsed url query: null,
4632 verbose parsed url pathname: '~0.2.11',
4632 verbose parsed url path: '~0.2.11',
4632 verbose parsed url href: '~0.2.11' }
4633 verbose addNamed [ 'minimatch', '~0.2.11' ]
4634 verbose addNamed [ null, '>=0.2.11-0 <0.3.0-0' ]
4635 silly lockFile 94473efb-minimatch-0-2-11 minimatch@~0.2.11
4636 verbose lock minimatch@~0.2.11 /Users/vaca/.npm/94473efb-minimatch-0-2-11.lock
4637 verbose cache add [ 'graceful-fs@~1.2.0', null ]
4638 verbose cache add name=undefined spec="graceful-fs@~1.2.0" args=["graceful-fs@~1.2.0",null]
4639 verbose parsed url { protocol: null,
4639 verbose parsed url slashes: null,
4639 verbose parsed url auth: null,
4639 verbose parsed url host: null,
4639 verbose parsed url port: null,
4639 verbose parsed url hostname: null,
4639 verbose parsed url hash: null,
4639 verbose parsed url search: null,
4639 verbose parsed url query: null,
4639 verbose parsed url pathname: 'graceful-fs@~1.2.0',
4639 verbose parsed url path: 'graceful-fs@~1.2.0',
4639 verbose parsed url href: 'graceful-fs@~1.2.0' }
4640 verbose cache add name="graceful-fs" spec="~1.2.0" args=["graceful-fs","~1.2.0"]
4641 verbose parsed url { protocol: null,
4641 verbose parsed url slashes: null,
4641 verbose parsed url auth: null,
4641 verbose parsed url host: null,
4641 verbose parsed url port: null,
4641 verbose parsed url hostname: null,
4641 verbose parsed url hash: null,
4641 verbose parsed url search: null,
4641 verbose parsed url query: null,
4641 verbose parsed url pathname: '~1.2.0',
4641 verbose parsed url path: '~1.2.0',
4641 verbose parsed url href: '~1.2.0' }
4642 verbose addNamed [ 'graceful-fs', '~1.2.0' ]
4643 verbose addNamed [ null, '>=1.2.0-0 <1.3.0-0' ]
4644 silly lockFile 9c0bb906-graceful-fs-1-2-0 graceful-fs@~1.2.0
4645 verbose lock graceful-fs@~1.2.0 /Users/vaca/.npm/9c0bb906-graceful-fs-1-2-0.lock
4646 verbose cache add [ 'inherits@1', null ]
4647 verbose cache add name=undefined spec="inherits@1" args=["inherits@1",null]
4648 verbose parsed url { protocol: null,
4648 verbose parsed url slashes: null,
4648 verbose parsed url auth: null,
4648 verbose parsed url host: null,
4648 verbose parsed url port: null,
4648 verbose parsed url hostname: null,
4648 verbose parsed url hash: null,
4648 verbose parsed url search: null,
4648 verbose parsed url query: null,
4648 verbose parsed url pathname: 'inherits@1',
4648 verbose parsed url path: 'inherits@1',
4648 verbose parsed url href: 'inherits@1' }
4649 verbose cache add name="inherits" spec="1" args=["inherits","1"]
4650 verbose parsed url { protocol: null,
4650 verbose parsed url slashes: null,
4650 verbose parsed url auth: null,
4650 verbose parsed url host: null,
4650 verbose parsed url port: null,
4650 verbose parsed url hostname: null,
4650 verbose parsed url hash: null,
4650 verbose parsed url search: null,
4650 verbose parsed url query: null,
4650 verbose parsed url pathname: '1',
4650 verbose parsed url path: '1',
4650 verbose parsed url href: '1' }
4651 verbose addNamed [ 'inherits', '1' ]
4652 verbose addNamed [ null, '>=1.0.0-0 <2.0.0-0' ]
4653 silly lockFile 4bca46d0-inherits-1 inherits@1
4654 verbose lock inherits@1 /Users/vaca/.npm/4bca46d0-inherits-1.lock
4655 verbose url raw pullstream
4656 verbose url resolving [ 'https://registry.npmjs.org/', './pullstream' ]
4657 verbose url resolved https://registry.npmjs.org/pullstream
4658 info trying registry request attempt 1 at 11:55:11
4659 verbose etag "5WNG54NCFRNMVGXQ6UILSZFIO"
4660 http GET https://registry.npmjs.org/pullstream
4661 verbose url raw binary
4662 verbose url resolving [ 'https://registry.npmjs.org/', './binary' ]
4663 verbose url resolved https://registry.npmjs.org/binary
4664 info trying registry request attempt 1 at 11:55:11
4665 verbose etag "5J2066SUF3H76JHO6OSSFZOSI"
4666 http GET https://registry.npmjs.org/binary
4667 verbose url raw readable-stream
4668 verbose url resolving [ 'https://registry.npmjs.org/', './readable-stream' ]
4669 verbose url resolved https://registry.npmjs.org/readable-stream
4670 info trying registry request attempt 1 at 11:55:11
4671 verbose etag "2P4LMQ3HZKO0QBL43BELF0MGK"
4672 http GET https://registry.npmjs.org/readable-stream
4673 verbose url raw setimmediate
4674 verbose url resolving [ 'https://registry.npmjs.org/', './setimmediate' ]
4675 verbose url resolved https://registry.npmjs.org/setimmediate
4676 info trying registry request attempt 1 at 11:55:11
4677 verbose etag "43RDGYR8RD6CSIQL2NGB3WWUX"
4678 http GET https://registry.npmjs.org/setimmediate
4679 verbose url raw match-stream
4680 verbose url resolving [ 'https://registry.npmjs.org/', './match-stream' ]
4681 verbose url resolved https://registry.npmjs.org/match-stream
4682 info trying registry request attempt 1 at 11:55:11
4683 verbose etag "9VLOX5NTCHDYSJCUNCJM5LR8T"
4684 http GET https://registry.npmjs.org/match-stream
4685 info preinstall glob@3.2.6
4686 silly gunzTarPerm extractEntry example/short.js
4687 silly gunzTarPerm extractEntry example/string.js
4688 silly lockFile 00b06d06-odules-bower-node-modules-semver tar:///opt/local/lib/node_modules/bower/node_modules/semver
4689 silly lockFile 00b06d06-odules-bower-node-modules-semver tar:///opt/local/lib/node_modules/bower/node_modules/semver
4690 silly lockFile 706304de-ca-npm-semver-2-0-11-package-tgz tar:///Users/vaca/.npm/semver/2.0.11/package.tgz
4691 silly lockFile 706304de-ca-npm-semver-2-0-11-package-tgz tar:///Users/vaca/.npm/semver/2.0.11/package.tgz
4692 silly addNameRange { name: 'minimatch',
4692 silly addNameRange range: '>=0.2.11-0 <0.3.0-0',
4692 silly addNameRange hasData: false }
4693 silly addNameRange { name: 'graceful-fs',
4693 silly addNameRange range: '>=1.2.0-0 <1.3.0-0',
4693 silly addNameRange hasData: false }
4694 silly addNameRange { name: 'inherits', range: '>=1.0.0-0 <2.0.0-0', hasData: false }
4695 verbose readDependencies using package.json deps
4696 info preinstall fstream@0.1.24
4697 silly gunzTarPerm extractEntry tests/test-protocol-changing-redirect.js
4698 silly gunzTarPerm extractEntry tests/test-emptyBody.js
4699 verbose readDependencies using package.json deps
4700 silly gunzTarPerm extractEntry number/abbreviate.js
4701 silly gunzTarPerm extractEntry number/currencyFormat.js
4702 silly gunzTarPerm extractEntry src/cli/yaml2json.js
4703 silly gunzTarPerm extractEntry src/yaml/Yaml.js
4704 info preinstall semver@2.0.11
4705 silly gunzTarPerm modes [ '755', '644' ]
4706 silly lockFile 97cd4d35--bower-config-node-modules-osenv tar:///opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/osenv
4707 silly lockFile 97cd4d35--bower-config-node-modules-osenv tar:///opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/osenv
4708 verbose readDependencies using package.json deps
4709 verbose registry.get graceful-fs not expired, no request
4710 silly addNameRange number 2 { name: 'graceful-fs',
4710 silly addNameRange range: '>=1.2.0-0 <1.3.0-0',
4710 silly addNameRange hasData: true }
4711 silly addNameRange versions [ 'graceful-fs',
4711 silly addNameRange [ '1.0.0',
4711 silly addNameRange '1.0.1',
4711 silly addNameRange '1.0.2',
4711 silly addNameRange '1.1.0',
4711 silly addNameRange '1.1.1',
4711 silly addNameRange '1.1.2',
4711 silly addNameRange '1.1.3',
4711 silly addNameRange '1.1.4',
4711 silly addNameRange '1.1.5',
4711 silly addNameRange '1.1.6',
4711 silly addNameRange '1.1.7',
4711 silly addNameRange '1.1.8',
4711 silly addNameRange '1.1.9',
4711 silly addNameRange '1.1.10',
4711 silly addNameRange '1.1.11',
4711 silly addNameRange '1.1.12',
4711 silly addNameRange '1.1.13',
4711 silly addNameRange '1.1.14',
4711 silly addNameRange '1.2.0',
4711 silly addNameRange '1.2.1',
4711 silly addNameRange '1.2.2',
4711 silly addNameRange '1.2.3',
4711 silly addNameRange '2.0.0' ] ]
4712 verbose addNamed [ 'graceful-fs', '1.2.3' ]
4713 verbose addNamed [ '1.2.3', '1.2.3' ]
4714 silly lockFile 6c7102cf-graceful-fs-1-2-3 graceful-fs@1.2.3
4715 verbose lock graceful-fs@1.2.3 /Users/vaca/.npm/6c7102cf-graceful-fs-1-2-3.lock
4716 verbose registry.get minimatch not expired, no request
4717 silly addNameRange number 2 { name: 'minimatch',
4717 silly addNameRange range: '>=0.2.11-0 <0.3.0-0',
4717 silly addNameRange hasData: true }
4718 silly addNameRange versions [ 'minimatch',
4718 silly addNameRange [ '0.0.1',
4718 silly addNameRange '0.0.2',
4718 silly addNameRange '0.0.4',
4718 silly addNameRange '0.0.5',
4718 silly addNameRange '0.1.1',
4718 silly addNameRange '0.1.2',
4718 silly addNameRange '0.1.3',
4718 silly addNameRange '0.1.4',
4718 silly addNameRange '0.1.5',
4718 silly addNameRange '0.2.0',
4718 silly addNameRange '0.2.2',
4718 silly addNameRange '0.2.3',
4718 silly addNameRange '0.2.4',
4718 silly addNameRange '0.2.5',
4718 silly addNameRange '0.2.6',
4718 silly addNameRange '0.2.7',
4718 silly addNameRange '0.2.8',
4718 silly addNameRange '0.2.9',
4718 silly addNameRange '0.2.10',
4718 silly addNameRange '0.2.11',
4718 silly addNameRange '0.2.12' ] ]
4719 verbose addNamed [ 'minimatch', '0.2.12' ]
4720 verbose addNamed [ '0.2.12', '0.2.12' ]
4721 silly lockFile 16b89810-minimatch-0-2-12 minimatch@0.2.12
4722 verbose lock minimatch@0.2.12 /Users/vaca/.npm/16b89810-minimatch-0-2-12.lock
4723 verbose registry.get inherits not expired, no request
4724 silly addNameRange number 2 { name: 'inherits', range: '>=1.0.0-0 <2.0.0-0', hasData: true }
4725 silly addNameRange versions [ 'inherits', [ '1.0.0', '2.0.0' ] ]
4726 verbose addNamed [ 'inherits', '1.0.0' ]
4727 verbose addNamed [ '1.0.0', '1.0.0' ]
4728 silly lockFile 776fbe77-inherits-1-0-0 inherits@1.0.0
4729 verbose lock inherits@1.0.0 /Users/vaca/.npm/776fbe77-inherits-1-0-0.lock
4730 silly lockFile d76a2330-vaca-npm-osenv-0-0-3-package-tgz tar:///Users/vaca/.npm/osenv/0.0.3/package.tgz
4731 silly lockFile d76a2330-vaca-npm-osenv-0-0-3-package-tgz tar:///Users/vaca/.npm/osenv/0.0.3/package.tgz
4732 verbose cache add [ 'minimatch@~0.2.11', null ]
4733 verbose cache add name=undefined spec="minimatch@~0.2.11" args=["minimatch@~0.2.11",null]
4734 verbose parsed url { protocol: null,
4734 verbose parsed url slashes: null,
4734 verbose parsed url auth: null,
4734 verbose parsed url host: null,
4734 verbose parsed url port: null,
4734 verbose parsed url hostname: null,
4734 verbose parsed url hash: null,
4734 verbose parsed url search: null,
4734 verbose parsed url query: null,
4734 verbose parsed url pathname: 'minimatch@~0.2.11',
4734 verbose parsed url path: 'minimatch@~0.2.11',
4734 verbose parsed url href: 'minimatch@~0.2.11' }
4735 verbose cache add name="minimatch" spec="~0.2.11" args=["minimatch","~0.2.11"]
4736 verbose parsed url { protocol: null,
4736 verbose parsed url slashes: null,
4736 verbose parsed url auth: null,
4736 verbose parsed url host: null,
4736 verbose parsed url port: null,
4736 verbose parsed url hostname: null,
4736 verbose parsed url hash: null,
4736 verbose parsed url search: null,
4736 verbose parsed url query: null,
4736 verbose parsed url pathname: '~0.2.11',
4736 verbose parsed url path: '~0.2.11',
4736 verbose parsed url href: '~0.2.11' }
4737 verbose addNamed [ 'minimatch', '~0.2.11' ]
4738 verbose cache add [ 'inherits@2', null ]
4739 verbose cache add name=undefined spec="inherits@2" args=["inherits@2",null]
4740 verbose parsed url { protocol: null,
4740 verbose parsed url slashes: null,
4740 verbose parsed url auth: null,
4740 verbose parsed url host: null,
4740 verbose parsed url port: null,
4740 verbose parsed url hostname: null,
4740 verbose parsed url hash: null,
4740 verbose parsed url search: null,
4740 verbose parsed url query: null,
4740 verbose parsed url pathname: 'inherits@2',
4740 verbose parsed url path: 'inherits@2',
4740 verbose parsed url href: 'inherits@2' }
4741 verbose cache add name="inherits" spec="2" args=["inherits","2"]
4742 verbose parsed url { protocol: null,
4742 verbose parsed url slashes: null,
4742 verbose parsed url auth: null,
4742 verbose parsed url host: null,
4742 verbose parsed url port: null,
4742 verbose parsed url hostname: null,
4742 verbose parsed url hash: null,
4742 verbose parsed url search: null,
4742 verbose parsed url query: null,
4742 verbose parsed url pathname: '2',
4742 verbose parsed url path: '2',
4742 verbose parsed url href: '2' }
4743 verbose addNamed [ 'inherits', '2' ]
4744 verbose addNamed [ null, '>=2.0.0-0 <3.0.0-0' ]
4745 silly lockFile 1f7ff4de-inherits-2 inherits@2
4746 verbose lock inherits@2 /Users/vaca/.npm/1f7ff4de-inherits-2.lock
4747 silly gunzTarPerm extractEntry test/fixtures/custom-generator-simple/package.json
4748 silly gunzTarPerm extractEntry test/fixtures/custom-generator-simple/main.js
4749 verbose readDependencies using package.json deps
4750 silly gunzTarPerm extractEntry example/boolean_single.js
4751 silly gunzTarPerm extractEntry example/usage-options.js
4752 verbose readDependencies using package.json deps
4753 verbose cache add [ 'inherits@~2.0.0', null ]
4754 verbose cache add name=undefined spec="inherits@~2.0.0" args=["inherits@~2.0.0",null]
4755 verbose parsed url { protocol: null,
4755 verbose parsed url slashes: null,
4755 verbose parsed url auth: null,
4755 verbose parsed url host: null,
4755 verbose parsed url port: null,
4755 verbose parsed url hostname: null,
4755 verbose parsed url hash: null,
4755 verbose parsed url search: null,
4755 verbose parsed url query: null,
4755 verbose parsed url pathname: 'inherits@~2.0.0',
4755 verbose parsed url path: 'inherits@~2.0.0',
4755 verbose parsed url href: 'inherits@~2.0.0' }
4756 verbose cache add name="inherits" spec="~2.0.0" args=["inherits","~2.0.0"]
4757 verbose parsed url { protocol: null,
4757 verbose parsed url slashes: null,
4757 verbose parsed url auth: null,
4757 verbose parsed url host: null,
4757 verbose parsed url port: null,
4757 verbose parsed url hostname: null,
4757 verbose parsed url hash: null,
4757 verbose parsed url search: null,
4757 verbose parsed url query: null,
4757 verbose parsed url pathname: '~2.0.0',
4757 verbose parsed url path: '~2.0.0',
4757 verbose parsed url href: '~2.0.0' }
4758 verbose addNamed [ 'inherits', '~2.0.0' ]
4759 verbose addNamed [ null, '>=2.0.0-0 <2.1.0-0' ]
4760 silly lockFile e2566bb4-inherits-2-0-0 inherits@~2.0.0
4761 verbose lock inherits@~2.0.0 /Users/vaca/.npm/e2566bb4-inherits-2-0-0.lock
4762 silly addNameRange { name: 'inherits', range: '>=2.0.0-0 <3.0.0-0', hasData: false }
4763 verbose readDependencies using package.json deps
4764 silly resolved []
4765 verbose about to build /opt/local/lib/node_modules/bower/node_modules/semver
4766 info build /opt/local/lib/node_modules/bower/node_modules/semver
4767 verbose linkStuff [ true,
4767 verbose linkStuff '/opt/local/lib/node_modules',
4767 verbose linkStuff false,
4767 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules' ]
4768 info linkStuff semver@2.0.11
4769 silly lockFile 16b89810-minimatch-0-2-12 minimatch@0.2.12
4770 silly lockFile 16b89810-minimatch-0-2-12 minimatch@0.2.12
4771 silly lockFile 94473efb-minimatch-0-2-11 minimatch@~0.2.11
4772 silly lockFile 94473efb-minimatch-0-2-11 minimatch@~0.2.11
4773 info preinstall osenv@0.0.3
4774 silly addNameRange { name: 'inherits', range: '>=2.0.0-0 <2.1.0-0', hasData: false }
4775 verbose linkBins semver@2.0.11
4776 verbose link bins [ { semver: './bin/semver' },
4776 verbose link bins '/opt/local/lib/node_modules/bower/node_modules/.bin',
4776 verbose link bins false ]
4777 verbose linkMans semver@2.0.11
4778 verbose rebuildBundles semver@2.0.11
4779 silly gunzTarPerm extractEntry package.json
4780 silly gunzTarPerm extractEntry tests/test-proxy.js
4781 silly gunzTarPerm extractEntry tests/test-digest-auth.js
4782 silly gunzTarPerm extractEntry tests/squid.conf
4783 silly gunzTarPerm extractEntry tests/ssl/ca/server.js
4784 silly gunzTarPerm extractEntry number/enforcePrecision.js
4785 silly gunzTarPerm extractEntry number/MIN_INT.js
4786 verbose readDependencies using package.json deps
4787 verbose registry.get inherits not expired, no request
4788 silly addNameRange number 2 { name: 'inherits', range: '>=2.0.0-0 <3.0.0-0', hasData: true }
4789 silly addNameRange versions [ 'inherits', [ '1.0.0', '2.0.0' ] ]
4790 verbose addNamed [ 'inherits', '2.0.0' ]
4791 verbose addNamed [ '2.0.0', '2.0.0' ]
4792 silly lockFile 5f83604f-inherits-2-0-0 inherits@2.0.0
4793 verbose lock inherits@2.0.0 /Users/vaca/.npm/5f83604f-inherits-2-0-0.lock
4794 verbose readDependencies using package.json deps
4795 silly resolved []
4796 verbose about to build /opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/osenv
4797 info build /opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/osenv
4798 verbose linkStuff [ true,
4798 verbose linkStuff '/opt/local/lib/node_modules',
4798 verbose linkStuff false,
4798 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules' ]
4799 info linkStuff osenv@0.0.3
4800 silly gunzTarPerm extractEntry .npmignore
4801 silly gunzTarPerm extractEntry README.md
4802 verbose registry.get inherits not expired, no request
4803 silly addNameRange number 2 { name: 'inherits', range: '>=2.0.0-0 <2.1.0-0', hasData: true }
4804 silly addNameRange versions [ 'inherits', [ '1.0.0', '2.0.0' ] ]
4805 verbose addNamed [ 'inherits', '2.0.0' ]
4806 silly gunzTarPerm extractEntry example/boolean_double.js
4807 silly gunzTarPerm extractEntry example/xup.js
4808 verbose linkBins osenv@0.0.3
4809 verbose linkMans osenv@0.0.3
4810 verbose rebuildBundles osenv@0.0.3
4811 silly lockFile 5f83604f-inherits-2-0-0 inherits@2.0.0
4812 silly lockFile 5f83604f-inherits-2-0-0 inherits@2.0.0
4813 info install osenv@0.0.3
4814 silly lockFile 1f7ff4de-inherits-2 inherits@2
4815 silly lockFile 1f7ff4de-inherits-2 inherits@2
4816 silly lockFile e2566bb4-inherits-2-0-0 inherits@~2.0.0
4817 silly lockFile e2566bb4-inherits-2-0-0 inherits@~2.0.0
4818 silly lockFile 8562bda1-eam-ignore-node-modules-inherits tar:///opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/inherits
4819 silly lockFile 8562bda1-eam-ignore-node-modules-inherits tar:///opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/inherits
4820 info install semver@2.0.11
4821 silly gunzTarPerm extractEntry tests/ssl/ca/server.js
4822 silly gunzTarPerm extractEntry tests/ssl/ca/ca.srl
4823 silly resolved [ { author:
4823 silly resolved { name: 'Isaac Z. Schlueter',
4823 silly resolved email: 'i@izs.me',
4823 silly resolved url: 'http://blog.izs.me' },
4823 silly resolved name: 'minimatch',
4823 silly resolved description: 'a glob matcher in javascript',
4823 silly resolved version: '0.2.12',
4823 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/minimatch.git' },
4823 silly resolved main: 'minimatch.js',
4823 silly resolved scripts: { test: 'tap test' },
4823 silly resolved engines: { node: '*' },
4823 silly resolved dependencies: { 'lru-cache': '2', sigmund: '~1.0.0' },
4823 silly resolved devDependencies: { tap: '' },
4823 silly resolved license:
4823 silly resolved { type: 'MIT',
4823 silly resolved url: 'http://github.com/isaacs/minimatch/raw/master/LICENSE' },
4823 silly resolved readme: '# minimatch\n\nA minimal matching utility.\n\n[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)\n\n\nThis is the matching library used internally by npm.\n\nEventually, it will replace the C binding in node-glob.\n\nIt works by converting glob expressions into JavaScript `RegExp`\nobjects.\n\n## Usage\n\n```javascript\nvar minimatch = require("minimatch")\n\nminimatch("bar.foo", "*.foo") // true!\nminimatch("bar.foo", "*.bar") // false!\n```\n\n## Features\n\nSupports these glob features:\n\n* Brace Expansion\n* Extended glob matching\n* "Globstar" `**` matching\n\nSee:\n\n* `man sh`\n* `man bash`\n* `man 3 fnmatch`\n* `man 5 gitignore`\n\n### Comparisons to other fnmatch/glob implementations\n\nWhile strict compliance with the existing standards is a worthwhile\ngoal, some discrepancies exist between minimatch and other\nimplementations, and are intentional.\n\nIf the pattern starts with a `!` character, then it is negated. Set the\n`nonegate` flag to suppress this behavior, and treat leading `!`\ncharacters normally. This is perhaps relevant if you wish to start the\npattern with a negative extglob pattern like `!(a|B)`. Multiple `!`\ncharacters at the start of a pattern will negate the pattern multiple\ntimes.\n\nIf a pattern starts with `#`, then it is treated as a comment, and\nwill not match anything. Use `\\#` to match a literal `#` at the\nstart of a line, or set the `nocomment` flag to suppress this behavior.\n\nThe double-star character `**` is supported by default, unless the\n`noglobstar` flag is set. This is supported in the manner of bsdglob\nand bash 4.1, where `**` only has special significance if it is the only\nthing in a path part. That is, `a/**/b` will match `a/x/y/b`, but\n`a/**b` will not. **Note that this is different from the way that `**` is\nhandled by ruby\'s `Dir` class.**\n\nIf an escaped pattern has no matches, and the `nonull` flag is set,\nthen minimatch.match returns the pattern as-provided, rather than\ninterpreting the character escapes. For example,\n`minimatch.match([], "\\\\*a\\\\?")` will return `"\\\\*a\\\\?"` rather than\n`"*a?"`. This is akin to setting the `nullglob` option in bash, except\nthat it does not resolve escaped pattern characters.\n\nIf brace expansion is not disabled, then it is performed before any\nother interpretation of the glob pattern. Thus, a pattern like\n`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded\n**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are\nchecked for validity. Since those two are valid, matching proceeds.\n\n\n## Minimatch Class\n\nCreate a minimatch object by instanting the `minimatch.Minimatch` class.\n\n```javascript\nvar Minimatch = require("minimatch").Minimatch\nvar mm = new Minimatch(pattern, options)\n```\n\n### Properties\n\n* `pattern` The original pattern the minimatch object represents.\n* `options` The options supplied to the constructor.\n* `set` A 2-dimensional array of regexp or string expressions.\n Each row in the\n array corresponds to a brace-expanded pattern. Each item in the row\n corresponds to a single path-part. For example, the pattern\n `{a,b/c}/d` would expand to a set of patterns like:\n\n [ [ a, d ]\n , [ b, c, d ] ]\n\n If a portion of the pattern doesn\'t have any "magic" in it\n (that is, it\'s something like `"foo"` rather than `fo*o?`), then it\n will be left as a string rather than converted to a regular\n expression.\n\n* `regexp` Created by the `makeRe` method. A single regular expression\n expressing the entire pattern. This is useful in cases where you wish\n to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.\n* `negate` True if the pattern is negated.\n* `comment` True if the pattern is a comment.\n* `empty` True if the pattern is `""`.\n\n### Methods\n\n* `makeRe` Generate the `regexp` member if necessary, and return it.\n Will return `false` if the pattern is invalid.\n* `match(fname)` Return true if the filename matches the pattern, or\n false otherwise.\n* `matchOne(fileArray, patternArray, partial)` Take a `/`-split\n filename, and match it against a single row in the `regExpSet`. This\n method is mainly for internal use, but is exposed so that it can be\n used by a glob-walker that needs to avoid excessive filesystem calls.\n\nAll other methods are internal, and will be called as necessary.\n\n## Functions\n\nThe top-level exported function has a `cache` property, which is an LRU\ncache set to store 100 items. So, calling these methods repeatedly\nwith the same pattern and options will use the same Minimatch object,\nsaving the cost of parsing it multiple times.\n\n### minimatch(path, pattern, options)\n\nMain export. Tests a path against the pattern using the options.\n\n```javascript\nvar isJS = minimatch(file, "*.js", { matchBase: true })\n```\n\n### minimatch.filter(pattern, options)\n\nReturns a function that tests its\nsupplied argument, suitable for use with `Array.filter`. Example:\n\n```javascript\nvar javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))\n```\n\n### minimatch.match(list, pattern, options)\n\nMatch against the list of\nfiles, in the style of fnmatch or glob. If nothing is matched, and\noptions.nonull is set, then return a list containing the pattern itself.\n\n```javascript\nvar javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))\n```\n\n### minimatch.makeRe(pattern, options)\n\nMake a regular expression object from the pattern.\n\n## Options\n\nAll options are `false` by default.\n\n### debug\n\nDump a ton of stuff to stderr.\n\n### nobrace\n\nDo not expand `{a,b}` and `{1..3}` brace sets.\n\n### noglobstar\n\nDisable `**` matching against multiple folder names.\n\n### dot\n\nAllow patterns to match filenames starting with a period, even if\nthe pattern does not explicitly have a period in that spot.\n\nNote that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`\nis set.\n\n### noext\n\nDisable "extglob" style patterns like `+(a|b)`.\n\n### nocase\n\nPerform a case-insensitive match.\n\n### nonull\n\nWhen a match is not found by `minimatch.match`, return a list containing\nthe pattern itself. When set, an empty list is returned if there are\nno matches.\n\n### matchBase\n\nIf set, then patterns without slashes will be matched\nagainst the basename of the path if it contains slashes. For example,\n`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.\n\n### nocomment\n\nSuppress the behavior of treating `#` at the start of a pattern as a\ncomment.\n\n### nonegate\n\nSuppress the behavior of treating a leading `!` character as negation.\n\n### flipNegate\n\nReturns from negate expressions the same as if they were not negated.\n(Ie, true on a hit, false on a miss.)\n',
4823 silly resolved readmeFilename: 'README.md',
4823 silly resolved bugs: { url: 'https://github.com/isaacs/minimatch/issues' },
4823 silly resolved _id: 'minimatch@0.2.12',
4823 silly resolved _from: 'minimatch@~0.2.11' },
4823 silly resolved { name: 'inherits',
4823 silly resolved description: 'Browser-friendly inheritance fully compatible with standard node.js inherits()',
4823 silly resolved version: '2.0.0',
4823 silly resolved keywords:
4823 silly resolved [ 'inheritance',
4823 silly resolved 'class',
4823 silly resolved 'klass',
4823 silly resolved 'oop',
4823 silly resolved 'object-oriented',
4823 silly resolved 'inherits',
4823 silly resolved 'browser',
4823 silly resolved 'browserify' ],
4823 silly resolved main: './inherits.js',
4823 silly resolved browser: './inherits_browser.js',
4823 silly resolved repository: { type: 'git', url: 'https://github.com/isaacs/inherits' },
4823 silly resolved license: { type: 'WTFPL2' },
4823 silly resolved author:
4823 silly resolved { name: 'Isaac Z. Schlueter',
4823 silly resolved email: 'i@izs.me',
4823 silly resolved url: 'http://blog.izs.me/' },
4823 silly resolved scripts: { test: 'node test' },
4823 silly resolved readme: 'Browser-friendly inheritance fully compatible with standard node.js\n[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).\n\nThis package exports standard `inherits` from node.js `util` module in\nnode environment, but also provides alternative browser-friendly\nimplementation through [browser\nfield](https://gist.github.com/shtylman/4339901). Alternative\nimplementation is a literal copy of standard one located in standalone\nmodule to avoid requiring of `util`. It also has a shim for old\nbrowsers with no `Object.create` support.\n\nWhile keeping you sure you are using standard `inherits`\nimplementation in node.js environment, it allows bundlers such as\n[browserify](https://github.com/substack/node-browserify) to not\ninclude full `util` package to your client code if all you need is\njust `inherits` function. It worth, because browser shim for `util`\npackage is large and `inherits` is often the single function you need\nfrom it.\n\nIt\'s recommended to use this package instead of\n`require(\'util\').inherits` for any code that has chances to be used\nnot only in node.js but in browser too.\n\n## usage\n\n```js\nvar inherits = require(\'inherits\');\n// then use exactly as the standard one\n```\n\n## note on version ~1.0\n\nVersion ~1.0 had completely different motivation and is not compatible\nneither with 2.0 nor with standard node.js `inherits`.\n\nIf you are using version ~1.0 and planning to switch to ~2.0, be\ncareful:\n\n* new version uses `super_` instead of `super` for referencing\n superclass\n* new version overwrites current prototype while old one preserves any\n existing fields on it\n',
4823 silly resolved readmeFilename: 'README.md',
4823 silly resolved bugs: { url: 'https://github.com/isaacs/inherits/issues' },
4823 silly resolved _id: 'inherits@2.0.0',
4823 silly resolved _from: 'inherits@~2.0.0' } ]
4824 info install minimatch@0.2.12 into /opt/local/lib/node_modules/bower/node_modules/glob
4825 info install inherits@2.0.0 into /opt/local/lib/node_modules/bower/node_modules/glob
4826 info installOne minimatch@0.2.12
4827 info installOne inherits@2.0.0
4828 silly resolved [ { name: 'inherits',
4828 silly resolved description: 'Browser-friendly inheritance fully compatible with standard node.js inherits()',
4828 silly resolved version: '2.0.0',
4828 silly resolved keywords:
4828 silly resolved [ 'inheritance',
4828 silly resolved 'class',
4828 silly resolved 'klass',
4828 silly resolved 'oop',
4828 silly resolved 'object-oriented',
4828 silly resolved 'inherits',
4828 silly resolved 'browser',
4828 silly resolved 'browserify' ],
4828 silly resolved main: './inherits.js',
4828 silly resolved browser: './inherits_browser.js',
4828 silly resolved repository: { type: 'git', url: 'https://github.com/isaacs/inherits' },
4828 silly resolved license: { type: 'WTFPL2' },
4828 silly resolved author:
4828 silly resolved { name: 'Isaac Z. Schlueter',
4828 silly resolved email: 'i@izs.me',
4828 silly resolved url: 'http://blog.izs.me/' },
4828 silly resolved scripts: { test: 'node test' },
4828 silly resolved readme: 'Browser-friendly inheritance fully compatible with standard node.js\n[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).\n\nThis package exports standard `inherits` from node.js `util` module in\nnode environment, but also provides alternative browser-friendly\nimplementation through [browser\nfield](https://gist.github.com/shtylman/4339901). Alternative\nimplementation is a literal copy of standard one located in standalone\nmodule to avoid requiring of `util`. It also has a shim for old\nbrowsers with no `Object.create` support.\n\nWhile keeping you sure you are using standard `inherits`\nimplementation in node.js environment, it allows bundlers such as\n[browserify](https://github.com/substack/node-browserify) to not\ninclude full `util` package to your client code if all you need is\njust `inherits` function. It worth, because browser shim for `util`\npackage is large and `inherits` is often the single function you need\nfrom it.\n\nIt\'s recommended to use this package instead of\n`require(\'util\').inherits` for any code that has chances to be used\nnot only in node.js but in browser too.\n\n## usage\n\n```js\nvar inherits = require(\'inherits\');\n// then use exactly as the standard one\n```\n\n## note on version ~1.0\n\nVersion ~1.0 had completely different motivation and is not compatible\nneither with 2.0 nor with standard node.js `inherits`.\n\nIf you are using version ~1.0 and planning to switch to ~2.0, be\ncareful:\n\n* new version uses `super_` instead of `super` for referencing\n superclass\n* new version overwrites current prototype while old one preserves any\n existing fields on it\n',
4828 silly resolved readmeFilename: 'README.md',
4828 silly resolved bugs: { url: 'https://github.com/isaacs/inherits/issues' },
4828 silly resolved _id: 'inherits@2.0.0',
4828 silly resolved _from: 'inherits@~2.0.0' } ]
4829 info install inherits@2.0.0 into /opt/local/lib/node_modules/bower/node_modules/fstream
4830 info installOne inherits@2.0.0
4831 silly lockFile 069571be-a-npm-inherits-2-0-0-package-tgz tar:///Users/vaca/.npm/inherits/2.0.0/package.tgz
4832 silly lockFile 069571be-a-npm-inherits-2-0-0-package-tgz tar:///Users/vaca/.npm/inherits/2.0.0/package.tgz
4833 silly lockFile 6c7102cf-graceful-fs-1-2-3 graceful-fs@1.2.3
4834 silly lockFile 6c7102cf-graceful-fs-1-2-3 graceful-fs@1.2.3
4835 silly lockFile 776fbe77-inherits-1-0-0 inherits@1.0.0
4836 silly lockFile 776fbe77-inherits-1-0-0 inherits@1.0.0
4837 info postinstall osenv@0.0.3
4838 info /opt/local/lib/node_modules/bower/node_modules/glob/node_modules/minimatch unbuild
4839 info /opt/local/lib/node_modules/bower/node_modules/glob/node_modules/inherits unbuild
4840 info /opt/local/lib/node_modules/bower/node_modules/fstream/node_modules/inherits unbuild
4841 silly gunzTarPerm extractEntry test/fixtures/js_block.html
4842 silly gunzTarPerm extractEntry test/fixtures/custom-generator-extend/package.json
4843 info postinstall semver@2.0.11
4844 silly lockFile 9c0bb906-graceful-fs-1-2-0 graceful-fs@~1.2.0
4845 silly lockFile 9c0bb906-graceful-fs-1-2-0 graceful-fs@~1.2.0
4846 silly lockFile 4bca46d0-inherits-1 inherits@1
4847 silly lockFile 4bca46d0-inherits-1 inherits@1
4848 silly resolved [ { author:
4848 silly resolved { name: 'Isaac Z. Schlueter',
4848 silly resolved email: 'i@izs.me',
4848 silly resolved url: 'http://blog.izs.me' },
4848 silly resolved name: 'minimatch',
4848 silly resolved description: 'a glob matcher in javascript',
4848 silly resolved version: '0.2.12',
4848 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/minimatch.git' },
4848 silly resolved main: 'minimatch.js',
4848 silly resolved scripts: { test: 'tap test' },
4848 silly resolved engines: { node: '*' },
4848 silly resolved dependencies: { 'lru-cache': '2', sigmund: '~1.0.0' },
4848 silly resolved devDependencies: { tap: '' },
4848 silly resolved license:
4848 silly resolved { type: 'MIT',
4848 silly resolved url: 'http://github.com/isaacs/minimatch/raw/master/LICENSE' },
4848 silly resolved readme: '# minimatch\n\nA minimal matching utility.\n\n[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)\n\n\nThis is the matching library used internally by npm.\n\nEventually, it will replace the C binding in node-glob.\n\nIt works by converting glob expressions into JavaScript `RegExp`\nobjects.\n\n## Usage\n\n```javascript\nvar minimatch = require("minimatch")\n\nminimatch("bar.foo", "*.foo") // true!\nminimatch("bar.foo", "*.bar") // false!\n```\n\n## Features\n\nSupports these glob features:\n\n* Brace Expansion\n* Extended glob matching\n* "Globstar" `**` matching\n\nSee:\n\n* `man sh`\n* `man bash`\n* `man 3 fnmatch`\n* `man 5 gitignore`\n\n### Comparisons to other fnmatch/glob implementations\n\nWhile strict compliance with the existing standards is a worthwhile\ngoal, some discrepancies exist between minimatch and other\nimplementations, and are intentional.\n\nIf the pattern starts with a `!` character, then it is negated. Set the\n`nonegate` flag to suppress this behavior, and treat leading `!`\ncharacters normally. This is perhaps relevant if you wish to start the\npattern with a negative extglob pattern like `!(a|B)`. Multiple `!`\ncharacters at the start of a pattern will negate the pattern multiple\ntimes.\n\nIf a pattern starts with `#`, then it is treated as a comment, and\nwill not match anything. Use `\\#` to match a literal `#` at the\nstart of a line, or set the `nocomment` flag to suppress this behavior.\n\nThe double-star character `**` is supported by default, unless the\n`noglobstar` flag is set. This is supported in the manner of bsdglob\nand bash 4.1, where `**` only has special significance if it is the only\nthing in a path part. That is, `a/**/b` will match `a/x/y/b`, but\n`a/**b` will not. **Note that this is different from the way that `**` is\nhandled by ruby\'s `Dir` class.**\n\nIf an escaped pattern has no matches, and the `nonull` flag is set,\nthen minimatch.match returns the pattern as-provided, rather than\ninterpreting the character escapes. For example,\n`minimatch.match([], "\\\\*a\\\\?")` will return `"\\\\*a\\\\?"` rather than\n`"*a?"`. This is akin to setting the `nullglob` option in bash, except\nthat it does not resolve escaped pattern characters.\n\nIf brace expansion is not disabled, then it is performed before any\nother interpretation of the glob pattern. Thus, a pattern like\n`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded\n**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are\nchecked for validity. Since those two are valid, matching proceeds.\n\n\n## Minimatch Class\n\nCreate a minimatch object by instanting the `minimatch.Minimatch` class.\n\n```javascript\nvar Minimatch = require("minimatch").Minimatch\nvar mm = new Minimatch(pattern, options)\n```\n\n### Properties\n\n* `pattern` The original pattern the minimatch object represents.\n* `options` The options supplied to the constructor.\n* `set` A 2-dimensional array of regexp or string expressions.\n Each row in the\n array corresponds to a brace-expanded pattern. Each item in the row\n corresponds to a single path-part. For example, the pattern\n `{a,b/c}/d` would expand to a set of patterns like:\n\n [ [ a, d ]\n , [ b, c, d ] ]\n\n If a portion of the pattern doesn\'t have any "magic" in it\n (that is, it\'s something like `"foo"` rather than `fo*o?`), then it\n will be left as a string rather than converted to a regular\n expression.\n\n* `regexp` Created by the `makeRe` method. A single regular expression\n expressing the entire pattern. This is useful in cases where you wish\n to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.\n* `negate` True if the pattern is negated.\n* `comment` True if the pattern is a comment.\n* `empty` True if the pattern is `""`.\n\n### Methods\n\n* `makeRe` Generate the `regexp` member if necessary, and return it.\n Will return `false` if the pattern is invalid.\n* `match(fname)` Return true if the filename matches the pattern, or\n false otherwise.\n* `matchOne(fileArray, patternArray, partial)` Take a `/`-split\n filename, and match it against a single row in the `regExpSet`. This\n method is mainly for internal use, but is exposed so that it can be\n used by a glob-walker that needs to avoid excessive filesystem calls.\n\nAll other methods are internal, and will be called as necessary.\n\n## Functions\n\nThe top-level exported function has a `cache` property, which is an LRU\ncache set to store 100 items. So, calling these methods repeatedly\nwith the same pattern and options will use the same Minimatch object,\nsaving the cost of parsing it multiple times.\n\n### minimatch(path, pattern, options)\n\nMain export. Tests a path against the pattern using the options.\n\n```javascript\nvar isJS = minimatch(file, "*.js", { matchBase: true })\n```\n\n### minimatch.filter(pattern, options)\n\nReturns a function that tests its\nsupplied argument, suitable for use with `Array.filter`. Example:\n\n```javascript\nvar javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))\n```\n\n### minimatch.match(list, pattern, options)\n\nMatch against the list of\nfiles, in the style of fnmatch or glob. If nothing is matched, and\noptions.nonull is set, then return a list containing the pattern itself.\n\n```javascript\nvar javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))\n```\n\n### minimatch.makeRe(pattern, options)\n\nMake a regular expression object from the pattern.\n\n## Options\n\nAll options are `false` by default.\n\n### debug\n\nDump a ton of stuff to stderr.\n\n### nobrace\n\nDo not expand `{a,b}` and `{1..3}` brace sets.\n\n### noglobstar\n\nDisable `**` matching against multiple folder names.\n\n### dot\n\nAllow patterns to match filenames starting with a period, even if\nthe pattern does not explicitly have a period in that spot.\n\nNote that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`\nis set.\n\n### noext\n\nDisable "extglob" style patterns like `+(a|b)`.\n\n### nocase\n\nPerform a case-insensitive match.\n\n### nonull\n\nWhen a match is not found by `minimatch.match`, return a list containing\nthe pattern itself. When set, an empty list is returned if there are\nno matches.\n\n### matchBase\n\nIf set, then patterns without slashes will be matched\nagainst the basename of the path if it contains slashes. For example,\n`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.\n\n### nocomment\n\nSuppress the behavior of treating `#` at the start of a pattern as a\ncomment.\n\n### nonegate\n\nSuppress the behavior of treating a leading `!` character as negation.\n\n### flipNegate\n\nReturns from negate expressions the same as if they were not negated.\n(Ie, true on a hit, false on a miss.)\n',
4848 silly resolved readmeFilename: 'README.md',
4848 silly resolved bugs: { url: 'https://github.com/isaacs/minimatch/issues' },
4848 silly resolved _id: 'minimatch@0.2.12',
4848 silly resolved _from: 'minimatch@~0.2.11' },
4848 silly resolved { author:
4848 silly resolved { name: 'Isaac Z. Schlueter',
4848 silly resolved email: 'i@izs.me',
4848 silly resolved url: 'http://blog.izs.me' },
4848 silly resolved name: 'graceful-fs',
4848 silly resolved description: 'A drop-in replacement for fs, making various improvements.',
4848 silly resolved version: '1.2.3',
4848 silly resolved repository:
4848 silly resolved { type: 'git',
4848 silly resolved url: 'git://github.com/isaacs/node-graceful-fs.git' },
4848 silly resolved main: 'graceful-fs.js',
4848 silly resolved engines: { node: '>=0.4.0' },
4848 silly resolved directories: { test: 'test' },
4848 silly resolved scripts: { test: 'tap test/*.js' },
4848 silly resolved keywords:
4848 silly resolved [ 'fs',
4848 silly resolved 'module',
4848 silly resolved 'reading',
4848 silly resolved 'retry',
4848 silly resolved 'retries',
4848 silly resolved 'queue',
4848 silly resolved 'error',
4848 silly resolved 'errors',
4848 silly resolved 'handling',
4848 silly resolved 'EMFILE',
4848 silly resolved 'EAGAIN',
4848 silly resolved 'EINVAL',
4848 silly resolved 'EPERM',
4848 silly resolved 'EACCESS' ],
4848 silly resolved license: 'BSD',
4848 silly resolved readme: '# graceful-fs\n\ngraceful-fs functions as a drop-in replacement for the fs module,\nmaking various improvements.\n\nThe improvements are meant to normalize behavior across different\nplatforms and environments, and to make filesystem access more\nresilient to errors.\n\n## Improvements over fs module\n\ngraceful-fs:\n\n* keeps track of how many file descriptors are open, and by default\n limits this to 1024. Any further requests to open a file are put in a\n queue until new slots become available. If 1024 turns out to be too\n much, it decreases the limit further.\n* fixes `lchmod` for Node versions prior to 0.6.2.\n* implements `fs.lutimes` if possible. Otherwise it becomes a noop.\n* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or\n `lchown` if the user isn\'t root.\n* makes `lchmod` and `lchown` become noops, if not available.\n* retries reading a file if `read` results in EAGAIN error.\n\nOn Windows, it retries renaming a file for up to one second if `EACCESS`\nor `EPERM` error occurs, likely because antivirus software has locked\nthe directory.\n\n## Configuration\n\nThe maximum number of open file descriptors that graceful-fs manages may\nbe adjusted by setting `fs.MAX_OPEN` to a different number. The default\nis 1024.\n',
4848 silly resolved readmeFilename: 'README.md',
4848 silly resolved bugs: { url: 'https://github.com/isaacs/node-graceful-fs/issues' },
4848 silly resolved _id: 'graceful-fs@1.2.3',
4848 silly resolved _from: 'graceful-fs@~1.2.0' },
4848 silly resolved { name: 'inherits',
4848 silly resolved description: 'A tiny simple way to do classic inheritance in js',
4848 silly resolved version: '1.0.0',
4848 silly resolved keywords: [ 'inheritance', 'class', 'klass', 'oop', 'object-oriented' ],
4848 silly resolved main: './inherits.js',
4848 silly resolved repository: { type: 'git', url: 'https://github.com/isaacs/inherits' },
4848 silly resolved author:
4848 silly resolved { name: 'Isaac Z. Schlueter',
4848 silly resolved email: 'i@izs.me',
4848 silly resolved url: 'http://blog.izs.me/' },
4848 silly resolved readme: 'A dead simple way to do inheritance in JS.\n\n var inherits = require("inherits")\n\n function Animal () {\n this.alive = true\n }\n Animal.prototype.say = function (what) {\n console.log(what)\n }\n\n inherits(Dog, Animal)\n function Dog () {\n Dog.super.apply(this)\n }\n Dog.prototype.sniff = function () {\n this.say("sniff sniff")\n }\n Dog.prototype.bark = function () {\n this.say("woof woof")\n }\n\n inherits(Chihuahua, Dog)\n function Chihuahua () {\n Chihuahua.super.apply(this)\n }\n Chihuahua.prototype.bark = function () {\n this.say("yip yip")\n }\n\n // also works\n function Cat () {\n Cat.super.apply(this)\n }\n Cat.prototype.hiss = function () {\n this.say("CHSKKSS!!")\n }\n inherits(Cat, Animal, {\n meow: function () { this.say("miao miao") }\n })\n Cat.prototype.purr = function () {\n this.say("purr purr")\n }\n\n\n var c = new Chihuahua\n assert(c instanceof Chihuahua)\n assert(c instanceof Dog)\n assert(c instanceof Animal)\n\nThe actual function is laughably small. 10-lines small.\n',
4848 silly resolved readmeFilename: 'README.md',
4848 silly resolved bugs: { url: 'https://github.com/isaacs/inherits/issues' },
4848 silly resolved _id: 'inherits@1.0.0',
4848 silly resolved _from: 'inherits@1' } ]
4849 info install minimatch@0.2.12 into /opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob
4850 info install graceful-fs@1.2.3 into /opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob
4851 info install inherits@1.0.0 into /opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob
4852 info installOne minimatch@0.2.12
4853 info installOne graceful-fs@1.2.3
4854 info installOne inherits@1.0.0
4855 silly gunzTarPerm extractEntry tests/ssl/ca/ca.srl
4856 silly gunzTarPerm extractEntry tests/ssl/ca/ca.crt
4857 info /opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/minimatch unbuild
4858 info /opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/graceful-fs unbuild
4859 info /opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/inherits unbuild
4860 silly gunzTarPerm extractEntry number/rol.js
4861 silly gunzTarPerm extractEntry number/ror.js
4862 verbose tar unpack /Users/vaca/.npm/minimatch/0.2.12/package.tgz
4863 silly lockFile 328c9c53-ules-glob-node-modules-minimatch tar:///opt/local/lib/node_modules/bower/node_modules/glob/node_modules/minimatch
4864 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/glob/node_modules/minimatch /Users/vaca/.npm/328c9c53-ules-glob-node-modules-minimatch.lock
4865 silly lockFile 5e70848b-npm-minimatch-0-2-12-package-tgz tar:///Users/vaca/.npm/minimatch/0.2.12/package.tgz
4866 verbose lock tar:///Users/vaca/.npm/minimatch/0.2.12/package.tgz /Users/vaca/.npm/5e70848b-npm-minimatch-0-2-12-package-tgz.lock
4867 verbose tar unpack /Users/vaca/.npm/inherits/2.0.0/package.tgz
4868 silly lockFile 3d8fa430-dules-glob-node-modules-inherits tar:///opt/local/lib/node_modules/bower/node_modules/glob/node_modules/inherits
4869 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/glob/node_modules/inherits /Users/vaca/.npm/3d8fa430-dules-glob-node-modules-inherits.lock
4870 silly lockFile 069571be-a-npm-inherits-2-0-0-package-tgz tar:///Users/vaca/.npm/inherits/2.0.0/package.tgz
4871 verbose lock tar:///Users/vaca/.npm/inherits/2.0.0/package.tgz /Users/vaca/.npm/069571be-a-npm-inherits-2-0-0-package-tgz.lock
4872 verbose tar unpack /Users/vaca/.npm/inherits/2.0.0/package.tgz
4873 silly lockFile 27c8e30d-es-fstream-node-modules-inherits tar:///opt/local/lib/node_modules/bower/node_modules/fstream/node_modules/inherits
4874 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/fstream/node_modules/inherits /Users/vaca/.npm/27c8e30d-es-fstream-node-modules-inherits.lock
4875 silly lockFile 069571be-a-npm-inherits-2-0-0-package-tgz tar:///Users/vaca/.npm/inherits/2.0.0/package.tgz
4876 verbose lock tar:///Users/vaca/.npm/inherits/2.0.0/package.tgz /Users/vaca/.npm/069571be-a-npm-inherits-2-0-0-package-tgz.lock
4877 info preinstall inherits@2.0.0
4878 silly gunzTarPerm extractEntry LICENSE
4879 silly gunzTarPerm extractEntry r.js
4880 silly gunzTarPerm extractEntry foot.js
4881 silly gunzTarPerm extractEntry head.js
4882 silly gunzTarPerm extractEntry semver.browser.js
4883 silly gunzTarPerm extractEntry semver.js
4884 silly gunzTarPerm extractEntry semver.min.js
4885 silly gunzTarPerm extractEntry semver.browser.js.gz
4886 silly gunzTarPerm extractEntry bin/semver
4887 silly gunzTarPerm extractEntry Makefile
4888 silly gunzTarPerm extractEntry semver.min.js.gz
4889 silly gunzTarPerm extractEntry test/amd.js
4890 silly gunzTarPerm extractEntry test/index.js
4891 silly gunzTarPerm extractEntry test/no-module.js
4892 silly lockFile a589898f-dules-promptly-node-modules-read tar:///opt/local/lib/node_modules/bower/node_modules/promptly/node_modules/read
4893 silly lockFile a589898f-dules-promptly-node-modules-read tar:///opt/local/lib/node_modules/bower/node_modules/promptly/node_modules/read
4894 silly gunzTarPerm extractEntry example/line_count_options.js
4895 silly gunzTarPerm extractEntry readme.markdown
4896 silly lockFile 3900bda9--vaca-npm-read-1-0-5-package-tgz tar:///Users/vaca/.npm/read/1.0.5/package.tgz
4897 silly lockFile 3900bda9--vaca-npm-read-1-0-5-package-tgz tar:///Users/vaca/.npm/read/1.0.5/package.tgz
4898 verbose tar unpack /Users/vaca/.npm/minimatch/0.2.12/package.tgz
4899 silly lockFile 5f4056b5-ules-glob-node-modules-minimatch tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/minimatch
4900 verbose lock tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/minimatch /Users/vaca/.npm/5f4056b5-ules-glob-node-modules-minimatch.lock
4901 silly lockFile 5e70848b-npm-minimatch-0-2-12-package-tgz tar:///Users/vaca/.npm/minimatch/0.2.12/package.tgz
4902 verbose lock tar:///Users/vaca/.npm/minimatch/0.2.12/package.tgz /Users/vaca/.npm/5e70848b-npm-minimatch-0-2-12-package-tgz.lock
4903 verbose tar unpack /Users/vaca/.npm/graceful-fs/1.2.3/package.tgz
4904 silly lockFile 96fb7cd3-es-glob-node-modules-graceful-fs tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/graceful-fs
4905 verbose lock tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/graceful-fs /Users/vaca/.npm/96fb7cd3-es-glob-node-modules-graceful-fs.lock
4906 silly lockFile f48482c4-pm-graceful-fs-1-2-3-package-tgz tar:///Users/vaca/.npm/graceful-fs/1.2.3/package.tgz
4907 verbose lock tar:///Users/vaca/.npm/graceful-fs/1.2.3/package.tgz /Users/vaca/.npm/f48482c4-pm-graceful-fs-1-2-3-package-tgz.lock
4908 verbose tar unpack /Users/vaca/.npm/inherits/1.0.0/package.tgz
4909 silly lockFile 5e8fda64-dules-glob-node-modules-inherits tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/inherits
4910 verbose lock tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/inherits /Users/vaca/.npm/5e8fda64-dules-glob-node-modules-inherits.lock
4911 silly lockFile 82f8ee1c-a-npm-inherits-1-0-0-package-tgz tar:///Users/vaca/.npm/inherits/1.0.0/package.tgz
4912 verbose lock tar:///Users/vaca/.npm/inherits/1.0.0/package.tgz /Users/vaca/.npm/82f8ee1c-a-npm-inherits-1-0-0-package-tgz.lock
4913 silly gunzTarPerm modes [ '755', '644' ]
4914 verbose readDependencies using package.json deps
4915 silly gunzTarPerm extractEntry tests/ssl/ca/ca.crt
4916 silly gunzTarPerm extractEntry tests/ssl/ca/ca.csr
4917 verbose readDependencies using package.json deps
4918 silly resolved []
4919 verbose about to build /opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/inherits
4920 info build /opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/inherits
4921 verbose linkStuff [ true,
4921 verbose linkStuff '/opt/local/lib/node_modules',
4921 verbose linkStuff false,
4921 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules' ]
4922 info linkStuff inherits@2.0.0
4923 silly gunzTarPerm extractEntry tests/test-qs.js
4924 silly gunzTarPerm extractEntry tests/test-defaults.js
4925 silly gunzTarPerm modes [ '755', '644' ]
4926 silly gunzTarPerm modes [ '755', '644' ]
4927 info preinstall read@1.0.5
4928 verbose linkBins inherits@2.0.0
4929 verbose linkMans inherits@2.0.0
4930 verbose rebuildBundles inherits@2.0.0
4931 silly gunzTarPerm extractEntry tests/ssl/ca/ca.csr
4932 info install inherits@2.0.0
4933 silly gunzTarPerm extractEntry tests/ssl/ca/ca.key
4934 silly gunzTarPerm extractEntry number/sign.js
4935 silly gunzTarPerm extractEntry number/toInt.js
4936 silly gunzTarPerm extractEntry package.json
4937 verbose readDependencies using package.json deps
4938 info postinstall inherits@2.0.0
4939 verbose readDependencies using package.json deps
4940 silly gunzTarPerm extractEntry test/fixtures/custom-generator-extend/support/scaffold/main.js
4941 silly gunzTarPerm extractEntry test/fixtures/mocha-generator/package.json
4942 silly gunzTarPerm extractEntry test/_.js
4943 silly gunzTarPerm extractEntry test/dash.js
4944 silly gunzTarPerm extractEntry package.json
4945 verbose cache add [ 'mute-stream@~0.0.4', null ]
4946 verbose cache add name=undefined spec="mute-stream@~0.0.4" args=["mute-stream@~0.0.4",null]
4947 verbose parsed url { protocol: null,
4947 verbose parsed url slashes: null,
4947 verbose parsed url auth: null,
4947 verbose parsed url host: null,
4947 verbose parsed url port: null,
4947 verbose parsed url hostname: null,
4947 verbose parsed url hash: null,
4947 verbose parsed url search: null,
4947 verbose parsed url query: null,
4947 verbose parsed url pathname: 'mute-stream@~0.0.4',
4947 verbose parsed url path: 'mute-stream@~0.0.4',
4947 verbose parsed url href: 'mute-stream@~0.0.4' }
4948 verbose cache add name="mute-stream" spec="~0.0.4" args=["mute-stream","~0.0.4"]
4949 verbose parsed url { protocol: null,
4949 verbose parsed url slashes: null,
4949 verbose parsed url auth: null,
4949 verbose parsed url host: null,
4949 verbose parsed url port: null,
4949 verbose parsed url hostname: null,
4949 verbose parsed url hash: null,
4949 verbose parsed url search: null,
4949 verbose parsed url query: null,
4949 verbose parsed url pathname: '~0.0.4',
4949 verbose parsed url path: '~0.0.4',
4949 verbose parsed url href: '~0.0.4' }
4950 verbose addNamed [ 'mute-stream', '~0.0.4' ]
4951 verbose addNamed [ null, '>=0.0.4-0 <0.1.0-0' ]
4952 silly lockFile 0cb27cfc-mute-stream-0-0-4 mute-stream@~0.0.4
4953 verbose lock mute-stream@~0.0.4 /Users/vaca/.npm/0cb27cfc-mute-stream-0-0-4.lock
4954 silly gunzTarPerm extractEntry package.json
4955 silly gunzTarPerm extractEntry README.md
4956 silly gunzTarPerm extractEntry LICENSE
4957 silly gunzTarPerm extractEntry tests/ssl/ca/ca.key
4958 silly gunzTarPerm extractEntry tests/ssl/ca/ca.crl
4959 silly addNameRange { name: 'mute-stream',
4959 silly addNameRange range: '>=0.0.4-0 <0.1.0-0',
4959 silly addNameRange hasData: false }
4960 silly gunzTarPerm extractEntry .npmignore
4961 silly gunzTarPerm extractEntry README.md
4962 silly gunzTarPerm extractEntry tests/test-redirect.js
4963 silly gunzTarPerm extractEntry tests/test-body.js
4964 silly gunzTarPerm extractEntry README.md
4965 silly gunzTarPerm extractEntry inherits.js
4966 silly gunzTarPerm extractEntry tests/ssl/ca/ca.crl
4967 silly gunzTarPerm extractEntry tests/ssl/ca/server.cnf
4968 silly gunzTarPerm extractEntry number/toUInt.js
4969 silly gunzTarPerm extractEntry number/MAX_UINT.js
4970 verbose url raw mute-stream
4971 verbose url resolving [ 'https://registry.npmjs.org/', './mute-stream' ]
4972 verbose url resolved https://registry.npmjs.org/mute-stream
4973 info trying registry request attempt 1 at 11:55:11
4974 verbose etag "CRYMZFAL5IFJ68CIUWV77NAKG"
4975 http GET https://registry.npmjs.org/mute-stream
4976 silly lockFile 4310434d-equest-replay-node-modules-retry tar:///opt/local/lib/node_modules/bower/node_modules/request-replay/node_modules/retry
4977 silly lockFile 4310434d-equest-replay-node-modules-retry tar:///opt/local/lib/node_modules/bower/node_modules/request-replay/node_modules/retry
4978 silly gunzTarPerm extractEntry test/fixtures/mocha-generator/main.js
4979 silly gunzTarPerm extractEntry test/fixtures/mocha-generator-base/package.json
4980 silly gunzTarPerm extractEntry test/parse.js
4981 silly gunzTarPerm extractEntry test/parse_modified.js
4982 silly lockFile 4368777e-vaca-npm-retry-0-6-0-package-tgz tar:///Users/vaca/.npm/retry/0.6.0/package.tgz
4983 silly lockFile 4368777e-vaca-npm-retry-0-6-0-package-tgz tar:///Users/vaca/.npm/retry/0.6.0/package.tgz
4984 silly gunzTarPerm extractEntry inherits.js
4985 silly gunzTarPerm extractEntry inherits_browser.js
4986 silly gunzTarPerm extractEntry test.js
4987 silly gunzTarPerm extractEntry tests/ssl/ca/server.cnf
4988 silly gunzTarPerm extractEntry tests/ssl/ca/server.crt
4989 info preinstall retry@0.6.0
4990 silly gunzTarPerm extractEntry LICENSE
4991 silly gunzTarPerm extractEntry graceful-fs.js
4992 silly gunzTarPerm extractEntry test/open.js
4993 silly gunzTarPerm extractEntry test/ulimit.js
4994 silly gunzTarPerm extractEntry tests/ssl/ca/server.crt
4995 silly gunzTarPerm extractEntry tests/ssl/ca/server.csr
4996 silly gunzTarPerm extractEntry number/toUInt31.js
4997 silly gunzTarPerm extractEntry number/pad.js
4998 verbose readDependencies using package.json deps
4999 silly gunzTarPerm extractEntry test/short.js
5000 silly gunzTarPerm extractEntry test/usage.js
5001 silly gunzTarPerm extractEntry tests/test-s3.js
5002 silly gunzTarPerm extractEntry tests/test-basic-auth.js
5003 verbose readDependencies using package.json deps
5004 silly resolved []
5005 verbose about to build /opt/local/lib/node_modules/bower/node_modules/request-replay/node_modules/retry
5006 info build /opt/local/lib/node_modules/bower/node_modules/request-replay/node_modules/retry
5007 verbose linkStuff [ true,
5007 verbose linkStuff '/opt/local/lib/node_modules',
5007 verbose linkStuff false,
5007 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/request-replay/node_modules' ]
5008 info linkStuff retry@0.6.0
5009 verbose linkBins retry@0.6.0
5010 verbose linkMans retry@0.6.0
5011 verbose rebuildBundles retry@0.6.0
5012 info install retry@0.6.0
5013 silly gunzTarPerm extractEntry tests/ssl/ca/server.csr
5014 silly gunzTarPerm extractEntry tests/ssl/ca/ca.cnf
5015 info postinstall retry@0.6.0
5016 verbose about to build /opt/local/lib/node_modules/bower/node_modules/request-replay
5017 info build /opt/local/lib/node_modules/bower/node_modules/request-replay
5018 verbose linkStuff [ true,
5018 verbose linkStuff '/opt/local/lib/node_modules',
5018 verbose linkStuff false,
5018 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules' ]
5019 info linkStuff request-replay@0.1.10
5020 silly gunzTarPerm extractEntry collection/contains.js
5021 silly gunzTarPerm extractEntry collection/find.js
5022 silly gunzTarPerm extractEntry test/whitespace.js
5023 silly gunzTarPerm extractEntry test/_/argv.js
5024 silly gunzTarPerm extractEntry tests/ssl/ca/ca.cnf
5025 silly gunzTarPerm extractEntry tests/ssl/ca/server.key
5026 verbose linkBins request-replay@0.1.10
5027 verbose linkMans request-replay@0.1.10
5028 verbose rebuildBundles request-replay@0.1.10
5029 verbose rebuildBundles [ 'retry' ]
5030 info install request-replay@0.1.10
5031 silly gunzTarPerm extractEntry src/yaml/YamlDumper.js
5032 silly gunzTarPerm extractEntry src/yaml/YamlEscaper.js
5033 silly gunzTarPerm extractEntry tests/test-timeout.js
5034 silly gunzTarPerm extractEntry tests/test-agentOptions.js
5035 info postinstall request-replay@0.1.10
5036 silly gunzTarPerm extractEntry tests/ssl/ca/server.key
5037 silly gunzTarPerm extractEntry tests/ssl/npm-ca.crt
5038 silly gunzTarPerm extractEntry test/fixtures/mocha-generator-base/main.js
5039 silly gunzTarPerm extractEntry test/fixtures/template.jst
5040 silly lockFile 7e0bf02a-de-modules-bower-registry-client tar:///opt/local/lib/node_modules/bower/node_modules/bower-registry-client
5041 silly lockFile 7e0bf02a-de-modules-bower-registry-client tar:///opt/local/lib/node_modules/bower/node_modules/bower-registry-client
5042 silly gunzTarPerm extractEntry test/_/bin.js
5043 silly lockFile 80370fac-egistry-client-0-1-1-package-tgz tar:///Users/vaca/.npm/bower-registry-client/0.1.1/package.tgz
5044 silly lockFile 80370fac-egistry-client-0-1-1-package-tgz tar:///Users/vaca/.npm/bower-registry-client/0.1.1/package.tgz
5045 http 304 https://registry.npmjs.org/readable-stream
5046 silly registry.get cb [ 304,
5046 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
5046 silly registry.get etag: '"2P4LMQ3HZKO0QBL43BELF0MGK"',
5046 silly registry.get date: 'Fri, 02 Aug 2013 15:55:12 GMT',
5046 silly registry.get 'content-length': '0' } ]
5047 verbose etag readable-stream from cache
5048 silly gunzTarPerm extractEntry collection/forEach.js
5049 silly gunzTarPerm extractEntry collection/make_.js
5050 silly gunzTarPerm extractEntry tests/ssl/npm-ca.crt
5051 silly gunzTarPerm extractEntry tests/ssl/test.crt
5052 http 304 https://registry.npmjs.org/setimmediate
5053 silly registry.get cb [ 304,
5053 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
5053 silly registry.get etag: '"43RDGYR8RD6CSIQL2NGB3WWUX"',
5053 silly registry.get date: 'Fri, 02 Aug 2013 15:55:12 GMT',
5053 silly registry.get 'content-length': '0' } ]
5054 verbose etag setimmediate from cache
5055 http 304 https://registry.npmjs.org/binary
5056 silly registry.get cb [ 304,
5056 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
5056 silly registry.get etag: '"5J2066SUF3H76JHO6OSSFZOSI"',
5056 silly registry.get date: 'Fri, 02 Aug 2013 15:55:12 GMT',
5056 silly registry.get 'content-length': '0' } ]
5057 verbose etag binary from cache
5058 http 304 https://registry.npmjs.org/match-stream
5059 silly registry.get cb [ 304,
5059 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
5059 silly registry.get etag: '"9VLOX5NTCHDYSJCUNCJM5LR8T"',
5059 silly registry.get date: 'Fri, 02 Aug 2013 15:55:12 GMT',
5059 silly registry.get 'content-length': '0' } ]
5060 verbose etag match-stream from cache
5061 http 304 https://registry.npmjs.org/pullstream
5062 silly registry.get cb [ 304,
5062 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
5062 silly registry.get etag: '"5WNG54NCFRNMVGXQ6UILSZFIO"',
5062 silly registry.get date: 'Fri, 02 Aug 2013 15:55:12 GMT',
5062 silly registry.get 'content-length': '0' } ]
5063 verbose etag pullstream from cache
5064 info preinstall bower-registry-client@0.1.1
5065 silly gunzTarPerm extractEntry tests/test-toJSON.js
5066 silly gunzTarPerm extractEntry tests/server.js
5067 verbose readDependencies using package.json deps
5068 silly gunzTarPerm extractEntry tests/ssl/test.crt
5069 silly gunzTarPerm extractEntry tests/ssl/test.key
5070 silly addNameRange number 2 { name: 'readable-stream',
5070 silly addNameRange range: '>=1.0.0-0 <1.1.0-0',
5070 silly addNameRange hasData: true }
5071 silly addNameRange versions [ 'readable-stream',
5071 silly addNameRange [ '0.0.1',
5071 silly addNameRange '0.0.2',
5071 silly addNameRange '0.0.3',
5071 silly addNameRange '0.0.4',
5071 silly addNameRange '0.1.0',
5071 silly addNameRange '0.2.0',
5071 silly addNameRange '0.3.0',
5071 silly addNameRange '0.3.1',
5071 silly addNameRange '1.0.0',
5071 silly addNameRange '1.0.1',
5071 silly addNameRange '1.0.2' ] ]
5072 verbose addNamed [ 'readable-stream', '1.0.2' ]
5073 verbose addNamed [ '1.0.2', '1.0.2' ]
5074 silly lockFile fe8d6774-readable-stream-1-0-2 readable-stream@1.0.2
5075 verbose lock readable-stream@1.0.2 /Users/vaca/.npm/fe8d6774-readable-stream-1-0-2.lock
5076 silly lockFile 762f7f8c-es-insight-node-modules-inquirer tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer
5077 silly lockFile 762f7f8c-es-insight-node-modules-inquirer tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer
5078 silly lockFile 5e8fda64-dules-glob-node-modules-inherits tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/inherits
5079 silly lockFile 5e8fda64-dules-glob-node-modules-inherits tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/inherits
5080 verbose readDependencies using package.json deps
5081 silly lockFile 42aab642--npm-inquirer-0-1-12-package-tgz tar:///Users/vaca/.npm/inquirer/0.1.12/package.tgz
5082 silly lockFile 42aab642--npm-inquirer-0-1-12-package-tgz tar:///Users/vaca/.npm/inquirer/0.1.12/package.tgz
5083 silly addNameRange number 2 { name: 'setimmediate',
5083 silly addNameRange range: '>=1.0.1-0 <1.1.0-0',
5083 silly addNameRange hasData: true }
5084 silly addNameRange versions [ 'setimmediate', [ '1.0.0', '1.0.1' ] ]
5085 verbose addNamed [ 'setimmediate', '1.0.1' ]
5086 verbose addNamed [ '1.0.1', '1.0.1' ]
5087 silly lockFile 23981b85-setimmediate-1-0-1 setimmediate@1.0.1
5088 verbose lock setimmediate@1.0.1 /Users/vaca/.npm/23981b85-setimmediate-1-0-1.lock
5089 silly lockFile 82f8ee1c-a-npm-inherits-1-0-0-package-tgz tar:///Users/vaca/.npm/inherits/1.0.0/package.tgz
5090 silly lockFile 82f8ee1c-a-npm-inherits-1-0-0-package-tgz tar:///Users/vaca/.npm/inherits/1.0.0/package.tgz
5091 silly addNameRange number 2 { name: 'binary', range: '>=0.3.0-0 <0.4.0-0', hasData: true }
5092 silly addNameRange versions [ 'binary',
5092 silly addNameRange [ '0.0.1',
5092 silly addNameRange '0.0.2',
5092 silly addNameRange '0.0.3',
5092 silly addNameRange '0.0.4',
5092 silly addNameRange '0.0.5',
5092 silly addNameRange '0.0.6',
5092 silly addNameRange '0.0.8',
5092 silly addNameRange '0.1.0',
5092 silly addNameRange '0.1.1',
5092 silly addNameRange '0.1.2',
5092 silly addNameRange '0.1.3',
5092 silly addNameRange '0.1.4',
5092 silly addNameRange '0.1.5',
5092 silly addNameRange '0.1.6',
5092 silly addNameRange '0.1.7',
5092 silly addNameRange '0.1.8',
5092 silly addNameRange '0.1.9',
5092 silly addNameRange '0.2.0',
5092 silly addNameRange '0.2.1',
5092 silly addNameRange '0.2.2',
5092 silly addNameRange '0.2.3',
5092 silly addNameRange '0.2.4',
5092 silly addNameRange '0.2.5',
5092 silly addNameRange '0.2.6',
5092 silly addNameRange '0.3.0' ] ]
5093 verbose addNamed [ 'binary', '0.3.0' ]
5094 verbose addNamed [ '0.3.0', '0.3.0' ]
5095 silly lockFile 4c22eedf-binary-0-3-0 binary@0.3.0
5096 verbose lock binary@0.3.0 /Users/vaca/.npm/4c22eedf-binary-0-3-0.lock
5097 verbose cache add [ 'async@~0.2.8', null ]
5098 verbose cache add name=undefined spec="async@~0.2.8" args=["async@~0.2.8",null]
5099 verbose parsed url { protocol: null,
5099 verbose parsed url slashes: null,
5099 verbose parsed url auth: null,
5099 verbose parsed url host: null,
5099 verbose parsed url port: null,
5099 verbose parsed url hostname: null,
5099 verbose parsed url hash: null,
5099 verbose parsed url search: null,
5099 verbose parsed url query: null,
5099 verbose parsed url pathname: 'async@~0.2.8',
5099 verbose parsed url path: 'async@~0.2.8',
5099 verbose parsed url href: 'async@~0.2.8' }
5100 verbose cache add name="async" spec="~0.2.8" args=["async","~0.2.8"]
5101 verbose parsed url { protocol: null,
5101 verbose parsed url slashes: null,
5101 verbose parsed url auth: null,
5101 verbose parsed url host: null,
5101 verbose parsed url port: null,
5101 verbose parsed url hostname: null,
5101 verbose parsed url hash: null,
5101 verbose parsed url search: null,
5101 verbose parsed url query: null,
5101 verbose parsed url pathname: '~0.2.8',
5101 verbose parsed url path: '~0.2.8',
5101 verbose parsed url href: '~0.2.8' }
5102 verbose addNamed [ 'async', '~0.2.8' ]
5103 verbose addNamed [ null, '>=0.2.8-0 <0.3.0-0' ]
5104 silly lockFile fe4c98a1-async-0-2-8 async@~0.2.8
5105 verbose lock async@~0.2.8 /Users/vaca/.npm/fe4c98a1-async-0-2-8.lock
5106 silly gunzTarPerm extractEntry collection/map.js
5107 silly gunzTarPerm extractEntry collection/filter.js
5108 silly gunzTarPerm extractEntry test/fixtures/yeoman-logo.png
5109 silly addNameRange number 2 { name: 'match-stream',
5109 silly addNameRange range: '>=0.0.2-0 <0.1.0-0',
5109 silly addNameRange hasData: true }
5110 silly addNameRange versions [ 'match-stream', [ '0.0.0', '0.0.1', '0.0.2' ] ]
5111 verbose addNamed [ 'match-stream', '0.0.2' ]
5112 verbose addNamed [ '0.0.2', '0.0.2' ]
5113 silly lockFile 1684010a-match-stream-0-0-2 match-stream@0.0.2
5114 verbose lock match-stream@0.0.2 /Users/vaca/.npm/1684010a-match-stream-0-0-2.lock
5115 silly addNameRange number 2 { name: 'pullstream',
5115 silly addNameRange range: '>=0.4.0-0 <0.5.0-0',
5115 silly addNameRange hasData: true }
5116 silly addNameRange versions [ 'pullstream',
5116 silly addNameRange [ '0.0.1',
5116 silly addNameRange '0.0.2',
5116 silly addNameRange '0.0.3',
5116 silly addNameRange '0.0.4',
5116 silly addNameRange '0.0.5',
5116 silly addNameRange '0.0.6',
5116 silly addNameRange '0.1.0',
5116 silly addNameRange '0.2.0',
5116 silly addNameRange '0.2.1',
5116 silly addNameRange '0.2.2',
5116 silly addNameRange '0.3.0',
5116 silly addNameRange '0.4.0' ] ]
5117 verbose addNamed [ 'pullstream', '0.4.0' ]
5118 verbose addNamed [ '0.4.0', '0.4.0' ]
5119 silly lockFile d895d482-pullstream-0-4-0 pullstream@0.4.0
5120 verbose lock pullstream@0.4.0 /Users/vaca/.npm/d895d482-pullstream-0-4-0.lock
5121 silly addNameRange { name: 'async', range: '>=0.2.8-0 <0.3.0-0', hasData: false }
5122 silly gunzTarPerm extractEntry src/yaml/YamlInline.js
5123 silly gunzTarPerm extractEntry src/yaml/YamlParseException.js
5124 silly gunzTarPerm extractEntry tests/ssl/test.key
5125 silly gunzTarPerm extractEntry tests/googledoodle.jpg
5126 info preinstall inquirer@0.1.12
5127 info preinstall inherits@1.0.0
5128 http 304 https://registry.npmjs.org/mute-stream
5129 silly registry.get cb [ 304,
5129 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
5129 silly registry.get etag: '"CRYMZFAL5IFJ68CIUWV77NAKG"',
5129 silly registry.get date: 'Fri, 02 Aug 2013 15:55:12 GMT',
5129 silly registry.get 'content-length': '0' } ]
5130 verbose etag mute-stream from cache
5131 silly gunzTarPerm extractEntry tests/test-tunnel.js
5132 silly gunzTarPerm extractEntry tests/test-https-strict.js
5133 verbose readDependencies using package.json deps
5134 silly gunzTarPerm extractEntry tests/googledoodle.png
5135 silly gunzTarPerm extractEntry tests/unicycle.jpg
5136 verbose readDependencies using package.json deps
5137 verbose registry.get async not expired, no request
5138 silly addNameRange number 2 { name: 'async', range: '>=0.2.8-0 <0.3.0-0', hasData: true }
5139 silly addNameRange versions [ 'async',
5139 silly addNameRange [ '0.1.0',
5139 silly addNameRange '0.1.1',
5139 silly addNameRange '0.1.2',
5139 silly addNameRange '0.1.3',
5139 silly addNameRange '0.1.4',
5139 silly addNameRange '0.1.5',
5139 silly addNameRange '0.1.6',
5139 silly addNameRange '0.1.7',
5139 silly addNameRange '0.1.8',
5139 silly addNameRange '0.1.9',
5139 silly addNameRange '0.1.10',
5139 silly addNameRange '0.1.11',
5139 silly addNameRange '0.1.12',
5139 silly addNameRange '0.1.13',
5139 silly addNameRange '0.1.14',
5139 silly addNameRange '0.1.15',
5139 silly addNameRange '0.1.16',
5139 silly addNameRange '0.1.17',
5139 silly addNameRange '0.1.18',
5139 silly addNameRange '0.1.19',
5139 silly addNameRange '0.1.20',
5139 silly addNameRange '0.1.21',
5139 silly addNameRange '0.1.22',
5139 silly addNameRange '0.2.0',
5139 silly addNameRange '0.2.1',
5139 silly addNameRange '0.2.2',
5139 silly addNameRange '0.2.3',
5139 silly addNameRange '0.2.4',
5139 silly addNameRange '0.2.5',
5139 silly addNameRange '0.2.6',
5139 silly addNameRange '0.2.7',
5139 silly addNameRange '0.2.8',
5139 silly addNameRange '0.2.9' ] ]
5140 verbose addNamed [ 'async', '0.2.9' ]
5141 verbose addNamed [ '0.2.9', '0.2.9' ]
5142 silly lockFile be62480b-async-0-2-9 async@0.2.9
5143 verbose lock async@0.2.9 /Users/vaca/.npm/be62480b-async-0-2-9.lock
5144 verbose readDependencies using package.json deps
5145 verbose readDependencies using package.json deps
5146 silly resolved []
5147 verbose about to build /opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/inherits
5148 info build /opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/inherits
5149 verbose linkStuff [ true,
5149 verbose linkStuff '/opt/local/lib/node_modules',
5149 verbose linkStuff false,
5149 verbose linkStuff '/opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules' ]
5150 info linkStuff inherits@1.0.0
5151 verbose cache add [ 'cli-color@~0.2.2', null ]
5152 verbose cache add name=undefined spec="cli-color@~0.2.2" args=["cli-color@~0.2.2",null]
5153 verbose parsed url { protocol: null,
5153 verbose parsed url slashes: null,
5153 verbose parsed url auth: null,
5153 verbose parsed url host: null,
5153 verbose parsed url port: null,
5153 verbose parsed url hostname: null,
5153 verbose parsed url hash: null,
5153 verbose parsed url search: null,
5153 verbose parsed url query: null,
5153 verbose parsed url pathname: 'cli-color@~0.2.2',
5153 verbose parsed url path: 'cli-color@~0.2.2',
5153 verbose parsed url href: 'cli-color@~0.2.2' }
5154 verbose cache add name="cli-color" spec="~0.2.2" args=["cli-color","~0.2.2"]
5155 verbose parsed url { protocol: null,
5155 verbose parsed url slashes: null,
5155 verbose parsed url auth: null,
5155 verbose parsed url host: null,
5155 verbose parsed url port: null,
5155 verbose parsed url hostname: null,
5155 verbose parsed url hash: null,
5155 verbose parsed url search: null,
5155 verbose parsed url query: null,
5155 verbose parsed url pathname: '~0.2.2',
5155 verbose parsed url path: '~0.2.2',
5155 verbose parsed url href: '~0.2.2' }
5156 verbose addNamed [ 'cli-color', '~0.2.2' ]
5157 verbose addNamed [ null, '>=0.2.2-0 <0.3.0-0' ]
5158 silly lockFile d0e95799-cli-color-0-2-2 cli-color@~0.2.2
5159 verbose lock cli-color@~0.2.2 /Users/vaca/.npm/d0e95799-cli-color-0-2-2.lock
5160 verbose cache add [ 'mute-stream@0.0.3', null ]
5161 verbose cache add name=undefined spec="mute-stream@0.0.3" args=["mute-stream@0.0.3",null]
5162 verbose parsed url { protocol: null,
5162 verbose parsed url slashes: null,
5162 verbose parsed url auth: null,
5162 verbose parsed url host: null,
5162 verbose parsed url port: null,
5162 verbose parsed url hostname: null,
5162 verbose parsed url hash: null,
5162 verbose parsed url search: null,
5162 verbose parsed url query: null,
5162 verbose parsed url pathname: 'mute-stream@0.0.3',
5162 verbose parsed url path: 'mute-stream@0.0.3',
5162 verbose parsed url href: 'mute-stream@0.0.3' }
5163 verbose cache add name="mute-stream" spec="0.0.3" args=["mute-stream","0.0.3"]
5164 verbose parsed url { protocol: null,
5164 verbose parsed url slashes: null,
5164 verbose parsed url auth: null,
5164 verbose parsed url host: null,
5164 verbose parsed url port: null,
5164 verbose parsed url hostname: null,
5164 verbose parsed url hash: null,
5164 verbose parsed url search: null,
5164 verbose parsed url query: null,
5164 verbose parsed url pathname: '0.0.3',
5164 verbose parsed url path: '0.0.3',
5164 verbose parsed url href: '0.0.3' }
5165 verbose addNamed [ 'mute-stream', '0.0.3' ]
5166 verbose addNamed [ '0.0.3', '0.0.3' ]
5167 silly lockFile 3cfd36c8-mute-stream-0-0-3 mute-stream@0.0.3
5168 verbose lock mute-stream@0.0.3 /Users/vaca/.npm/3cfd36c8-mute-stream-0-0-3.lock
5169 verbose cache add [ 'lodash@~1.2.1', null ]
5170 verbose cache add name=undefined spec="lodash@~1.2.1" args=["lodash@~1.2.1",null]
5171 verbose parsed url { protocol: null,
5171 verbose parsed url slashes: null,
5171 verbose parsed url auth: null,
5171 verbose parsed url host: null,
5171 verbose parsed url port: null,
5171 verbose parsed url hostname: null,
5171 verbose parsed url hash: null,
5171 verbose parsed url search: null,
5171 verbose parsed url query: null,
5171 verbose parsed url pathname: 'lodash@~1.2.1',
5171 verbose parsed url path: 'lodash@~1.2.1',
5171 verbose parsed url href: 'lodash@~1.2.1' }
5172 verbose cache add name="lodash" spec="~1.2.1" args=["lodash","~1.2.1"]
5173 verbose parsed url { protocol: null,
5173 verbose parsed url slashes: null,
5173 verbose parsed url auth: null,
5173 verbose parsed url host: null,
5173 verbose parsed url port: null,
5173 verbose parsed url hostname: null,
5173 verbose parsed url hash: null,
5173 verbose parsed url search: null,
5173 verbose parsed url query: null,
5173 verbose parsed url pathname: '~1.2.1',
5173 verbose parsed url path: '~1.2.1',
5173 verbose parsed url href: '~1.2.1' }
5174 verbose addNamed [ 'lodash', '~1.2.1' ]
5175 verbose addNamed [ null, '>=1.2.1-0 <1.3.0-0' ]
5176 silly lockFile 52b3d2d9-lodash-1-2-1 lodash@~1.2.1
5177 verbose lock lodash@~1.2.1 /Users/vaca/.npm/52b3d2d9-lodash-1-2-1.lock
5178 verbose cache add [ 'async@~0.2.8', null ]
5179 verbose cache add name=undefined spec="async@~0.2.8" args=["async@~0.2.8",null]
5180 verbose parsed url { protocol: null,
5180 verbose parsed url slashes: null,
5180 verbose parsed url auth: null,
5180 verbose parsed url host: null,
5180 verbose parsed url port: null,
5180 verbose parsed url hostname: null,
5180 verbose parsed url hash: null,
5180 verbose parsed url search: null,
5180 verbose parsed url query: null,
5180 verbose parsed url pathname: 'async@~0.2.8',
5180 verbose parsed url path: 'async@~0.2.8',
5180 verbose parsed url href: 'async@~0.2.8' }
5181 verbose cache add name="async" spec="~0.2.8" args=["async","~0.2.8"]
5182 verbose parsed url { protocol: null,
5182 verbose parsed url slashes: null,
5182 verbose parsed url auth: null,
5182 verbose parsed url host: null,
5182 verbose parsed url port: null,
5182 verbose parsed url hostname: null,
5182 verbose parsed url hash: null,
5182 verbose parsed url search: null,
5182 verbose parsed url query: null,
5182 verbose parsed url pathname: '~0.2.8',
5182 verbose parsed url path: '~0.2.8',
5182 verbose parsed url href: '~0.2.8' }
5183 verbose addNamed [ 'async', '~0.2.8' ]
5184 verbose linkBins inherits@1.0.0
5185 verbose linkMans inherits@1.0.0
5186 verbose rebuildBundles inherits@1.0.0
5187 silly lockFile be62480b-async-0-2-9 async@0.2.9
5188 silly lockFile be62480b-async-0-2-9 async@0.2.9
5189 silly gunzTarPerm extractEntry collection/min.js
5190 silly gunzTarPerm extractEntry collection/pluck.js
5191 silly addNameRange { name: 'cli-color',
5191 silly addNameRange range: '>=0.2.2-0 <0.3.0-0',
5191 silly addNameRange hasData: false }
5192 info install inherits@1.0.0
5193 silly lockFile fe8d6774-readable-stream-1-0-2 readable-stream@1.0.2
5194 silly lockFile fe8d6774-readable-stream-1-0-2 readable-stream@1.0.2
5195 silly addNameRange number 2 { name: 'mute-stream',
5195 silly addNameRange range: '>=0.0.4-0 <0.1.0-0',
5195 silly addNameRange hasData: true }
5196 silly addNameRange versions [ 'mute-stream', [ '0.0.1', '0.0.2', '0.0.3', '0.0.4' ] ]
5197 verbose addNamed [ 'mute-stream', '0.0.4' ]
5198 verbose addNamed [ '0.0.4', '0.0.4' ]
5199 silly lockFile 71666a8b-mute-stream-0-0-4 mute-stream@0.0.4
5200 verbose lock mute-stream@0.0.4 /Users/vaca/.npm/71666a8b-mute-stream-0-0-4.lock
5201 silly lockFile fe4c98a1-async-0-2-8 async@~0.2.8
5202 silly lockFile fe4c98a1-async-0-2-8 async@~0.2.8
5203 silly addNameRange { name: 'lodash', range: '>=1.2.1-0 <1.3.0-0', hasData: false }
5204 silly lockFile 87dee724-readable-stream-1-0-0 readable-stream@~1.0.0
5205 silly lockFile 87dee724-readable-stream-1-0-0 readable-stream@~1.0.0
5206 silly resolved [ { name: 'async',
5206 silly resolved description: 'Higher-order functions and common patterns for asynchronous code',
5206 silly resolved main: './lib/async',
5206 silly resolved author: { name: 'Caolan McMahon' },
5206 silly resolved version: '0.2.9',
5206 silly resolved repository: { type: 'git', url: 'https://github.com/caolan/async.git' },
5206 silly resolved bugs: { url: 'https://github.com/caolan/async/issues' },
5206 silly resolved licenses: [ [Object] ],
5206 silly resolved devDependencies: { nodeunit: '>0.0.0', 'uglify-js': '1.2.x', nodelint: '>0.0.0' },
5206 silly resolved jam: { main: 'lib/async.js', include: [Object] },
5206 silly resolved scripts: { test: 'nodeunit test/test-async.js' },
5206 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',
5206 silly resolved readmeFilename: 'README.md',
5206 silly resolved _id: 'async@0.2.9',
5206 silly resolved _from: 'async@~0.2.8' } ]
5207 info install async@0.2.9 into /opt/local/lib/node_modules/bower/node_modules/bower-registry-client
5208 info installOne async@0.2.9
5209 silly lockFile 23981b85-setimmediate-1-0-1 setimmediate@1.0.1
5210 silly lockFile 23981b85-setimmediate-1-0-1 setimmediate@1.0.1
5211 silly gunzTarPerm extractEntry tests/unicycle.jpg
5212 info postinstall inherits@1.0.0
5213 silly lockFile 4c22eedf-binary-0-3-0 binary@0.3.0
5214 silly lockFile 4c22eedf-binary-0-3-0 binary@0.3.0
5215 info /opt/local/lib/node_modules/bower/node_modules/bower-registry-client/node_modules/async unbuild
5216 silly lockFile 9b468877-setimmediate-1-0-1 setimmediate@~1.0.1
5217 silly lockFile 9b468877-setimmediate-1-0-1 setimmediate@~1.0.1
5218 silly lockFile bd38fc46-binary-0-3-0 binary@~0.3.0
5219 silly lockFile bd38fc46-binary-0-3-0 binary@~0.3.0
5220 silly lockFile 1684010a-match-stream-0-0-2 match-stream@0.0.2
5221 silly lockFile 1684010a-match-stream-0-0-2 match-stream@0.0.2
5222 silly lockFile d895d482-pullstream-0-4-0 pullstream@0.4.0
5223 silly lockFile d895d482-pullstream-0-4-0 pullstream@0.4.0
5224 silly lockFile 3da41106-match-stream-0-0-2 match-stream@~0.0.2
5225 silly lockFile 3da41106-match-stream-0-0-2 match-stream@~0.0.2
5226 silly lockFile 01a41988-pullstream-0-4-0 pullstream@~0.4.0
5227 silly lockFile 01a41988-pullstream-0-4-0 pullstream@~0.4.0
5228 verbose url raw cli-color
5229 verbose url resolving [ 'https://registry.npmjs.org/', './cli-color' ]
5230 verbose url resolved https://registry.npmjs.org/cli-color
5231 info trying registry request attempt 1 at 11:55:12
5232 verbose etag "EDEKUY7J0DZXE4GZ0P623P4HT"
5233 http GET https://registry.npmjs.org/cli-color
5234 verbose url raw mute-stream/0.0.3
5235 verbose url resolving [ 'https://registry.npmjs.org/', './mute-stream/0.0.3' ]
5236 verbose url resolved https://registry.npmjs.org/mute-stream/0.0.3
5237 info trying registry request attempt 1 at 11:55:12
5238 verbose etag "CRYMZFAL5IFJ68CIUWV77NAKG"
5239 http GET https://registry.npmjs.org/mute-stream/0.0.3
5240 verbose tar unpack /Users/vaca/.npm/async/0.2.9/package.tgz
5241 silly lockFile 1bf24bc5-gistry-client-node-modules-async tar:///opt/local/lib/node_modules/bower/node_modules/bower-registry-client/node_modules/async
5242 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/bower-registry-client/node_modules/async /Users/vaca/.npm/1bf24bc5-gistry-client-node-modules-async.lock
5243 silly lockFile 972ab484-vaca-npm-async-0-2-9-package-tgz tar:///Users/vaca/.npm/async/0.2.9/package.tgz
5244 verbose lock tar:///Users/vaca/.npm/async/0.2.9/package.tgz /Users/vaca/.npm/972ab484-vaca-npm-async-0-2-9-package-tgz.lock
5245 silly resolved [ { name: 'readable-stream',
5245 silly resolved version: '1.0.2',
5245 silly resolved description: 'An exploration of a new kind of readable streams for Node.js',
5245 silly resolved main: 'readable.js',
5245 silly resolved dependencies: {},
5245 silly resolved devDependencies: { tap: '~0.2.6' },
5245 silly resolved scripts: { test: 'tap test/simple/*.js' },
5245 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/readable-stream' },
5245 silly resolved keywords: [ 'readable', 'stream', 'pipe' ],
5245 silly resolved author:
5245 silly resolved { name: 'Isaac Z. Schlueter',
5245 silly resolved email: 'i@izs.me',
5245 silly resolved url: 'http://blog.izs.me/' },
5245 silly resolved license: 'BSD',
5245 silly resolved readme: '# readable-stream\n\nA new class of streams for Node.js\n\nThis module provides the new Stream base classes introduced in Node\nv0.10, for use in Node v0.8. You can use it to have programs that\nhave to work with node v0.8, while being forward-compatible for v0.10\nand beyond. When you drop support for v0.8, you can remove this\nmodule, and only use the native streams.\n\nThis is almost exactly the same codebase as appears in Node v0.10.\nHowever:\n\n1. The exported object is actually the Readable class. Decorating the\n native `stream` module would be global pollution.\n2. In v0.10, you can safely use `base64` as an argument to\n `setEncoding` in Readable streams. However, in v0.8, the\n StringDecoder class has no `end()` method, which is problematic for\n Base64. So, don\'t use that, because it\'ll break and be weird.\n\nOther than that, the API is the same as `require(\'stream\')` in v0.10,\nso the API docs are reproduced below.\n\n----------\n\n Stability: 2 - Unstable\n\nA stream is an abstract interface implemented by various objects in\nNode. For example a request to an HTTP server is a stream, as is\nstdout. Streams are readable, writable, or both. All streams are\ninstances of [EventEmitter][]\n\nYou can load the Stream base classes by doing `require(\'stream\')`.\nThere are base classes provided for Readable streams, Writable\nstreams, Duplex streams, and Transform streams.\n\n## Compatibility\n\nIn earlier versions of Node, the Readable stream interface was\nsimpler, but also less powerful and less useful.\n\n* Rather than waiting for you to call the `read()` method, `\'data\'`\n events would start emitting immediately. If you needed to do some\n I/O to decide how to handle data, then you had to store the chunks\n in some kind of buffer so that they would not be lost.\n* The `pause()` method was advisory, rather than guaranteed. This\n meant that you still had to be prepared to receive `\'data\'` events\n even when the stream was in a paused state.\n\nIn Node v0.10, the Readable class described below was added. For\nbackwards compatibility with older Node programs, Readable streams\nswitch into "old mode" when a `\'data\'` event handler is added, or when\nthe `pause()` or `resume()` methods are called. The effect is that,\neven if you are not using the new `read()` method and `\'readable\'`\nevent, you no longer have to worry about losing `\'data\'` chunks.\n\nMost programs will continue to function normally. However, this\nintroduces an edge case in the following conditions:\n\n* No `\'data\'` event handler is added.\n* The `pause()` and `resume()` methods are never called.\n\nFor example, consider the following code:\n\n```javascript\n// WARNING! BROKEN!\nnet.createServer(function(socket) {\n\n // we add an \'end\' method, but never consume the data\n socket.on(\'end\', function() {\n // It will never get here.\n socket.end(\'I got your message (but didnt read it)\\n\');\n });\n\n}).listen(1337);\n```\n\nIn versions of node prior to v0.10, the incoming message data would be\nsimply discarded. However, in Node v0.10 and beyond, the socket will\nremain paused forever.\n\nThe workaround in this situation is to call the `resume()` method to\ntrigger "old mode" behavior:\n\n```javascript\n// Workaround\nnet.createServer(function(socket) {\n\n socket.on(\'end\', function() {\n socket.end(\'I got your message (but didnt read it)\\n\');\n });\n\n // start the flow of data, discarding it.\n socket.resume();\n\n}).listen(1337);\n```\n\nIn addition to new Readable streams switching into old-mode, pre-v0.10\nstyle streams can be wrapped in a Readable class using the `wrap()`\nmethod.\n\n## Class: stream.Readable\n\n<!--type=class-->\n\nA `Readable Stream` has the following methods, members, and events.\n\nNote that `stream.Readable` is an abstract class designed to be\nextended with an underlying implementation of the `_read(size)`\nmethod. (See below.)\n\n### new stream.Readable([options])\n\n* `options` {Object}\n * `highWaterMark` {Number} The maximum number of bytes to store in\n the internal buffer before ceasing to read from the underlying\n resource. Default=16kb\n * `encoding` {String} If specified, then buffers will be decoded to\n strings using the specified encoding. Default=null\n * `objectMode` {Boolean} Whether this stream should behave\n as a stream of objects. Meaning that stream.read(n) returns\n a single value instead of a Buffer of size n\n\nIn classes that extend the Readable class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n### readable.\\_read(size)\n\n* `size` {Number} Number of bytes to read asynchronously\n\nNote: **This function should NOT be called directly.** It should be\nimplemented by child classes, and called by the internal Readable\nclass methods only.\n\nAll Readable stream implementations must provide a `_read` method\nto fetch data from the underlying resource.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms. However, you **are** expected to override this method in\nyour own extension classes.\n\nWhen data is available, put it into the read queue by calling\n`readable.push(chunk)`. If `push` returns false, then you should stop\nreading. When `_read` is called again, you should start pushing more\ndata.\n\nThe `size` argument is advisory. Implementations where a "read" is a\nsingle call that returns data can use this to know how much data to\nfetch. Implementations where that is not relevant, such as TCP or\nTLS, may ignore this argument, and simply provide data whenever it\nbecomes available. There is no need, for example to "wait" until\n`size` bytes are available before calling `stream.push(chunk)`.\n\n### readable.push(chunk)\n\n* `chunk` {Buffer | null | String} Chunk of data to push into the read queue\n* return {Boolean} Whether or not more pushes should be performed\n\nNote: **This function should be called by Readable implementors, NOT\nby consumers of Readable subclasses.** The `_read()` function will not\nbe called again until at least one `push(chunk)` call is made. If no\ndata is available, then you MAY call `push(\'\')` (an empty string) to\nallow a future `_read` call, without adding any data to the queue.\n\nThe `Readable` class works by putting data into a read queue to be\npulled out later by calling the `read()` method when the `\'readable\'`\nevent fires.\n\nThe `push()` method will explicitly insert some data into the read\nqueue. If it is called with `null` then it will signal the end of the\ndata.\n\nIn some cases, you may be wrapping a lower-level source which has some\nsort of pause/resume mechanism, and a data callback. In those cases,\nyou could wrap the low-level source object by doing something like\nthis:\n\n```javascript\n// source is an object with readStop() and readStart() methods,\n// and an `ondata` member that gets called when it has data, and\n// an `onend` member that gets called when the data is over.\n\nvar stream = new Readable();\n\nsource.ondata = function(chunk) {\n // if push() returns false, then we need to stop reading from source\n if (!stream.push(chunk))\n source.readStop();\n};\n\nsource.onend = function() {\n stream.push(null);\n};\n\n// _read will be called when the stream wants to pull more data in\n// the advisory size argument is ignored in this case.\nstream._read = function(n) {\n source.readStart();\n};\n```\n\n### readable.unshift(chunk)\n\n* `chunk` {Buffer | null | String} Chunk of data to unshift onto the read queue\n* return {Boolean} Whether or not more pushes should be performed\n\nThis is the corollary of `readable.push(chunk)`. Rather than putting\nthe data at the *end* of the read queue, it puts it at the *front* of\nthe read queue.\n\nThis is useful in certain use-cases where a stream is being consumed\nby a parser, which needs to "un-consume" some data that it has\noptimistically pulled out of the source.\n\n```javascript\n// A parser for a simple data protocol.\n// The "header" is a JSON object, followed by 2 \\n characters, and\n// then a message body.\n//\n// Note: This can be done more simply as a Transform stream. See below.\n\nfunction SimpleProtocol(source, options) {\n if (!(this instanceof SimpleProtocol))\n return new SimpleProtocol(options);\n\n Readable.call(this, options);\n this._inBody = false;\n this._sawFirstCr = false;\n\n // source is a readable stream, such as a socket or file\n this._source = source;\n\n var self = this;\n source.on(\'end\', function() {\n self.push(null);\n });\n\n // give it a kick whenever the source is readable\n // read(0) will not consume any bytes\n source.on(\'readable\', function() {\n self.read(0);\n });\n\n this._rawHeader = [];\n this.header = null;\n}\n\nSimpleProtocol.prototype = Object.create(\n Readable.prototype, { constructor: { value: SimpleProtocol }});\n\nSimpleProtocol.prototype._read = function(n) {\n if (!this._inBody) {\n var chunk = this._source.read();\n\n // if the source doesn\'t have data, we don\'t have data yet.\n if (chunk === null)\n return this.push(\'\');\n\n // check if the chunk has a \\n\\n\n var split = -1;\n for (var i = 0; i < chunk.length; i++) {\n if (chunk[i] === 10) { // \'\\n\'\n if (this._sawFirstCr) {\n split = i;\n break;\n } else {\n this._sawFirstCr = true;\n }\n } else {\n this._sawFirstCr = false;\n }\n }\n\n if (split === -1) {\n // still waiting for the \\n\\n\n // stash the chunk, and try again.\n this._rawHeader.push(chunk);\n this.push(\'\');\n } else {\n this._inBody = true;\n var h = chunk.slice(0, split);\n this._rawHeader.push(h);\n var header = Buffer.concat(this._rawHeader).toString();\n try {\n this.header = JSON.parse(header);\n } catch (er) {\n this.emit(\'error\', new Error(\'invalid simple protocol data\'));\n return;\n }\n // now, because we got some extra data, unshift the rest\n // back into the read queue so that our consumer will see it.\n var b = chunk.slice(split);\n this.unshift(b);\n\n // and let them know that we are done parsing the header.\n this.emit(\'header\', this.header);\n }\n } else {\n // from there on, just provide the data to our consumer.\n // careful not to push(null), since that would indicate EOF.\n var chunk = this._source.read();\n if (chunk) this.push(chunk);\n }\n};\n\n// Usage:\nvar parser = new SimpleProtocol(source);\n// Now parser is a readable stream that will emit \'header\'\n// with the parsed header data.\n```\n\n### readable.wrap(stream)\n\n* `stream` {Stream} An "old style" readable stream\n\nIf you are using an older Node library that emits `\'data\'` events and\nhas a `pause()` method that is advisory only, then you can use the\n`wrap()` method to create a Readable stream that uses the old stream\nas its data source.\n\nFor example:\n\n```javascript\nvar OldReader = require(\'./old-api-module.js\').OldReader;\nvar oreader = new OldReader;\nvar Readable = require(\'stream\').Readable;\nvar myReader = new Readable().wrap(oreader);\n\nmyReader.on(\'readable\', function() {\n myReader.read(); // etc.\n});\n```\n\n### Event: \'readable\'\n\nWhen there is data ready to be consumed, this event will fire.\n\nWhen this event emits, call the `read()` method to consume the data.\n\n### Event: \'end\'\n\nEmitted when the stream has received an EOF (FIN in TCP terminology).\nIndicates that no more `\'data\'` events will happen. If the stream is\nalso writable, it may be possible to continue writing.\n\n### Event: \'data\'\n\nThe `\'data\'` event emits either a `Buffer` (by default) or a string if\n`setEncoding()` was used.\n\nNote that adding a `\'data\'` event listener will switch the Readable\nstream into "old mode", where data is emitted as soon as it is\navailable, rather than waiting for you to call `read()` to consume it.\n\n### Event: \'error\'\n\nEmitted if there was an error receiving data.\n\n### Event: \'close\'\n\nEmitted when the underlying resource (for example, the backing file\ndescriptor) has been closed. Not all streams will emit this.\n\n### readable.setEncoding(encoding)\n\nMakes the `\'data\'` event emit a string instead of a `Buffer`. `encoding`\ncan be `\'utf8\'`, `\'utf16le\'` (`\'ucs2\'`), `\'ascii\'`, or `\'hex\'`.\n\nThe encoding can also be set by specifying an `encoding` field to the\nconstructor.\n\n### readable.read([size])\n\n* `size` {Number | null} Optional number of bytes to read.\n* Return: {Buffer | String | null}\n\nNote: **This function SHOULD be called by Readable stream users.**\n\nCall this method to consume data once the `\'readable\'` event is\nemitted.\n\nThe `size` argument will set a minimum number of bytes that you are\ninterested in. If not set, then the entire content of the internal\nbuffer is returned.\n\nIf there is no data to consume, or if there are fewer bytes in the\ninternal buffer than the `size` argument, then `null` is returned, and\na future `\'readable\'` event will be emitted when more is available.\n\nCalling `stream.read(0)` will always return `null`, and will trigger a\nrefresh of the internal buffer, but otherwise be a no-op.\n\n### readable.pipe(destination, [options])\n\n* `destination` {Writable Stream}\n* `options` {Object} Optional\n * `end` {Boolean} Default=true\n\nConnects this readable stream to `destination` WriteStream. Incoming\ndata on this stream gets written to `destination`. Properly manages\nback-pressure so that a slow destination will not be overwhelmed by a\nfast readable stream.\n\nThis function returns the `destination` stream.\n\nFor example, emulating the Unix `cat` command:\n\n process.stdin.pipe(process.stdout);\n\nBy default `end()` is called on the destination when the source stream\nemits `end`, so that `destination` is no longer writable. Pass `{ end:\nfalse }` as `options` to keep the destination stream open.\n\nThis keeps `writer` open so that "Goodbye" can be written at the\nend.\n\n reader.pipe(writer, { end: false });\n reader.on("end", function() {\n writer.end("Goodbye\\n");\n });\n\nNote that `process.stderr` and `process.stdout` are never closed until\nthe process exits, regardless of the specified options.\n\n### readable.unpipe([destination])\n\n* `destination` {Writable Stream} Optional\n\nUndo a previously established `pipe()`. If no destination is\nprovided, then all previously established pipes are removed.\n\n### readable.pause()\n\nSwitches the readable stream into "old mode", where data is emitted\nusing a `\'data\'` event rather than being buffered for consumption via\nthe `read()` method.\n\nCeases the flow of data. No `\'data\'` events are emitted while the\nstream is in a paused state.\n\n### readable.resume()\n\nSwitches the readable stream into "old mode", where data is emitted\nusing a `\'data\'` event rather than being buffered for consumption via\nthe `read()` method.\n\nResumes the incoming `\'data\'` events after a `pause()`.\n\n\n## Class: stream.Writable\n\n<!--type=class-->\n\nA `Writable` Stream has the following methods, members, and events.\n\nNote that `stream.Writable` is an abstract class designed to be\nextended with an underlying implementation of the\n`_write(chunk, encoding, cb)` method. (See below.)\n\n### new stream.Writable([options])\n\n* `options` {Object}\n * `highWaterMark` {Number} Buffer level when `write()` starts\n returning false. Default=16kb\n * `decodeStrings` {Boolean} Whether or not to decode strings into\n Buffers before passing them to `_write()`. Default=true\n\nIn classes that extend the Writable class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n### writable.\\_write(chunk, encoding, callback)\n\n* `chunk` {Buffer | String} The chunk to be written. Will always\n be a buffer unless the `decodeStrings` option was set to `false`.\n* `encoding` {String} If the chunk is a string, then this is the\n encoding type. Ignore chunk is a buffer. Note that chunk will\n **always** be a buffer unless the `decodeStrings` option is\n explicitly set to `false`.\n* `callback` {Function} Call this function (optionally with an error\n argument) when you are done processing the supplied chunk.\n\nAll Writable stream implementations must provide a `_write` method to\nsend data to the underlying resource.\n\nNote: **This function MUST NOT be called directly.** It should be\nimplemented by child classes, and called by the internal Writable\nclass methods only.\n\nCall the callback using the standard `callback(error)` pattern to\nsignal that the write completed successfully or with an error.\n\nIf the `decodeStrings` flag is set in the constructor options, then\n`chunk` may be a string rather than a Buffer, and `encoding` will\nindicate the sort of string that it is. This is to support\nimplementations that have an optimized handling for certain string\ndata encodings. If you do not explicitly set the `decodeStrings`\noption to `false`, then you can safely ignore the `encoding` argument,\nand assume that `chunk` will always be a Buffer.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms. However, you **are** expected to override this method in\nyour own extension classes.\n\n\n### writable.write(chunk, [encoding], [callback])\n\n* `chunk` {Buffer | String} Data to be written\n* `encoding` {String} Optional. If `chunk` is a string, then encoding\n defaults to `\'utf8\'`\n* `callback` {Function} Optional. Called when this chunk is\n successfully written.\n* Returns {Boolean}\n\nWrites `chunk` to the stream. Returns `true` if the data has been\nflushed to the underlying resource. Returns `false` to indicate that\nthe buffer is full, and the data will be sent out in the future. The\n`\'drain\'` event will indicate when the buffer is empty again.\n\nThe specifics of when `write()` will return false, is determined by\nthe `highWaterMark` option provided to the constructor.\n\n### writable.end([chunk], [encoding], [callback])\n\n* `chunk` {Buffer | String} Optional final data to be written\n* `encoding` {String} Optional. If `chunk` is a string, then encoding\n defaults to `\'utf8\'`\n* `callback` {Function} Optional. Called when the final chunk is\n successfully written.\n\nCall this method to signal the end of the data being written to the\nstream.\n\n### Event: \'drain\'\n\nEmitted when the stream\'s write queue empties and it\'s safe to write\nwithout buffering again. Listen for it when `stream.write()` returns\n`false`.\n\n### Event: \'close\'\n\nEmitted when the underlying resource (for example, the backing file\ndescriptor) has been closed. Not all streams will emit this.\n\n### Event: \'finish\'\n\nWhen `end()` is called and there are no more chunks to write, this\nevent is emitted.\n\n### Event: \'pipe\'\n\n* `source` {Readable Stream}\n\nEmitted when the stream is passed to a readable stream\'s pipe method.\n\n### Event \'unpipe\'\n\n* `source` {Readable Stream}\n\nEmitted when a previously established `pipe()` is removed using the\nsource Readable stream\'s `unpipe()` method.\n\n## Class: stream.Duplex\n\n<!--type=class-->\n\nA "duplex" stream is one that is both Readable and Writable, such as a\nTCP socket connection.\n\nNote that `stream.Duplex` is an abstract class designed to be\nextended with an underlying implementation of the `_read(size)`\nand `_write(chunk, encoding, callback)` methods as you would with a Readable or\nWritable stream class.\n\nSince JavaScript doesn\'t have multiple prototypal inheritance, this\nclass prototypally inherits from Readable, and then parasitically from\nWritable. It is thus up to the user to implement both the lowlevel\n`_read(n)` method as well as the lowlevel `_write(chunk, encoding, cb)` method\non extension duplex classes.\n\n### new stream.Duplex(options)\n\n* `options` {Object} Passed to both Writable and Readable\n constructors. Also has the following fields:\n * `allowHalfOpen` {Boolean} Default=true. If set to `false`, then\n the stream will automatically end the readable side when the\n writable side ends and vice versa.\n\nIn classes that extend the Duplex class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n## Class: stream.Transform\n\nA "transform" stream is a duplex stream where the output is causally\nconnected in some way to the input, such as a zlib stream or a crypto\nstream.\n\nThere is no requirement that the output be the same size as the input,\nthe same number of chunks, or arrive at the same time. For example, a\nHash stream will only ever have a single chunk of output which is\nprovided when the input is ended. A zlib stream will either produce\nmuch smaller or much larger than its input.\n\nRather than implement the `_read()` and `_write()` methods, Transform\nclasses must implement the `_transform()` method, and may optionally\nalso implement the `_flush()` method. (See below.)\n\n### new stream.Transform([options])\n\n* `options` {Object} Passed to both Writable and Readable\n constructors.\n\nIn classes that extend the Transform class, make sure to call the\nconstructor so that the buffering settings can be properly\ninitialized.\n\n### transform.\\_transform(chunk, encoding, callback)\n\n* `chunk` {Buffer | String} The chunk to be transformed. Will always\n be a buffer unless the `decodeStrings` option was set to `false`.\n* `encoding` {String} If the chunk is a string, then this is the\n encoding type. (Ignore if `decodeStrings` chunk is a buffer.)\n* `callback` {Function} Call this function (optionally with an error\n argument) when you are done processing the supplied chunk.\n\nNote: **This function MUST NOT be called directly.** It should be\nimplemented by child classes, and called by the internal Transform\nclass methods only.\n\nAll Transform stream implementations must provide a `_transform`\nmethod to accept input and produce output.\n\n`_transform` should do whatever has to be done in this specific\nTransform class, to handle the bytes being written, and pass them off\nto the readable portion of the interface. Do asynchronous I/O,\nprocess things, and so on.\n\nCall `transform.push(outputChunk)` 0 or more times to generate output\nfrom this input chunk, depending on how much data you want to output\nas a result of this chunk.\n\nCall the callback function only when the current chunk is completely\nconsumed. Note that there may or may not be output as a result of any\nparticular input chunk.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms. However, you **are** expected to override this method in\nyour own extension classes.\n\n### transform.\\_flush(callback)\n\n* `callback` {Function} Call this function (optionally with an error\n argument) when you are done flushing any remaining data.\n\nNote: **This function MUST NOT be called directly.** It MAY be implemented\nby child classes, and if so, will be called by the internal Transform\nclass methods only.\n\nIn some cases, your transform operation may need to emit a bit more\ndata at the end of the stream. For example, a `Zlib` compression\nstream will store up some internal state so that it can optimally\ncompress the output. At the end, however, it needs to do the best it\ncan with what is left, so that the data will be complete.\n\nIn those cases, you can implement a `_flush` method, which will be\ncalled at the very end, after all the written data is consumed, but\nbefore emitting `end` to signal the end of the readable side. Just\nlike with `_transform`, call `transform.push(chunk)` zero or more\ntimes, as appropriate, and call `callback` when the flush operation is\ncomplete.\n\nThis method is prefixed with an underscore because it is internal to\nthe class that defines it, and should not be called directly by user\nprograms. However, you **are** expected to override this method in\nyour own extension classes.\n\n### Example: `SimpleProtocol` parser\n\nThe example above of a simple protocol parser can be implemented much\nmore simply by using the higher level `Transform` stream class.\n\nIn this example, rather than providing the input as an argument, it\nwould be piped into the parser, which is a more idiomatic Node stream\napproach.\n\n```javascript\nfunction SimpleProtocol(options) {\n if (!(this instanceof SimpleProtocol))\n return new SimpleProtocol(options);\n\n Transform.call(this, options);\n this._inBody = false;\n this._sawFirstCr = false;\n this._rawHeader = [];\n this.header = null;\n}\n\nSimpleProtocol.prototype = Object.create(\n Transform.prototype, { constructor: { value: SimpleProtocol }});\n\nSimpleProtocol.prototype._transform = function(chunk, encoding, done) {\n if (!this._inBody) {\n // check if the chunk has a \\n\\n\n var split = -1;\n for (var i = 0; i < chunk.length; i++) {\n if (chunk[i] === 10) { // \'\\n\'\n if (this._sawFirstCr) {\n split = i;\n break;\n } else {\n this._sawFirstCr = true;\n }\n } else {\n this._sawFirstCr = false;\n }\n }\n\n if (split === -1) {\n // still waiting for the \\n\\n\n // stash the chunk, and try again.\n this._rawHeader.push(chunk);\n } else {\n this._inBody = true;\n var h = chunk.slice(0, split);\n this._rawHeader.push(h);\n var header = Buffer.concat(this._rawHeader).toString();\n try {\n this.header = JSON.parse(header);\n } catch (er) {\n this.emit(\'error\', new Error(\'invalid simple protocol data\'));\n return;\n }\n // and let them know that we are done parsing the header.\n this.emit(\'header\', this.header);\n\n // now, because we got some extra data, emit this first.\n this.push(b);\n }\n } else {\n // from there on, just provide the data to our consumer as-is.\n this.push(b);\n }\n done();\n};\n\nvar parser = new SimpleProtocol();\nsource.pipe(parser)\n\n// Now parser is a readable stream that will emit \'header\'\n// with the parsed header data.\n```\n\n\n## Class: stream.PassThrough\n\nThis is a trivial implementation of a `Transform` stream that simply\npasses the input bytes across to the output. Its purpose is mainly\nfor examples and testing, but there are occasionally use cases where\nit can come in handy.\n\n\n[EventEmitter]: events.html#events_class_events_eventemitter\n',
5245 silly resolved readmeFilename: 'README.md',
5245 silly resolved bugs: { url: 'https://github.com/isaacs/readable-stream/issues' },
5245 silly resolved _id: 'readable-stream@1.0.2',
5245 silly resolved _from: 'readable-stream@~1.0.0' },
5245 silly resolved { name: 'setimmediate',
5245 silly resolved description: 'A shim for the setImmediate efficient script yielding API',
5245 silly resolved version: '1.0.1',
5245 silly resolved author: { name: 'NobleJS' },
5245 silly resolved contributors: [ [Object], [Object], [Object] ],
5245 silly resolved license: 'MIT',
5245 silly resolved repository:
5245 silly resolved { type: 'git',
5245 silly resolved url: 'git://github.com/NobleJS/setImmediate.git' },
5245 silly resolved bugs: { url: 'http://github.com/NobleJS/setImmediate/issues' },
5245 silly resolved main: 'setImmediate.js',
5245 silly resolved scripts:
5245 silly resolved { lint: 'jshint setImmediate.js',
5245 silly resolved test: 'mocha test/tests.js',
5245 silly resolved 'test-browser': 'opener http://localhost:9000 && zuul --server 9000 test/tests.js --wwwroot test/',
5245 silly resolved 'test-browser-only': 'opener http://localhost:9007/test/browserOnly/index.html && http-server . -p 9007' },
5245 silly resolved devDependencies:
5245 silly resolved { jshint: '>= 0.9.1',
5245 silly resolved mocha: '>= 1.7.4',
5245 silly resolved zuul: '>= 0.0.1',
5245 silly resolved 'http-server': '>= 0.5.3',
5245 silly resolved opener: '>= 1.1.0' },
5245 silly resolved testling: { browsers: [Object], harness: 'mocha', files: 'test/tests.js' },
5245 silly resolved readme: '<a href="http://ci.testling.com/NobleJS/setImmediate">\n <img src="http://ci.testling.com/NobleJS/setImmediate.png" alt="Testling-CI badge showing browser compliance"\n align="right">\n</a>\n\n# setImmediate.js\n**A NobleJS production**\n\n## Introduction\n\n**setImmediate.js** is a highly cross-browser implementation of the `setImmediate` and `clearImmediate` APIs, currently\na [W3C draft spec][spec] from the Web Performance Working Group. `setImmediate` allows scripts to yield to the browser,\nexecuting a given operation asynchronously, in a manner that is typically more efficient and consumes less power than\nthe usual `setTimeout(..., 0)` pattern.\n\nsetImmediate.js runs at “full speed” in the following browsers and environments, using various clever tricks:\n\n * Internet Explorer 6+\n * Firefox 3+\n * WebKit\n * Opera 9.5+\n * Node.js\n * Web workers in browsers that support `MessageChannel`, which I can\'t find solid info on.\n\nIn all other browsers we fall back to using `setTimeout`, so it\'s always safe to use.\n\n## The Tricks\n\n### `process.nextTick`\n\nIn Node.js versions below 0.9, `setImmediate` is not available, but [`process.nextTick`][nextTIck] is, so we use it to\nshim support for a global `setImmediate`. In Node.js 0.9 and above, `setImmediate` is available.\n\nNote that we check for *actual* Node.js environments, not emulated ones like those produced by browserify or similar.\nSuch emulated environments often already include a `process.nextTick` shim that\'s not as browser-compatible as\nsetImmediate.js.\n\n### `postMessage`\n\nIn Firefox 3+, Internet Explorer 9+, all modern WebKit browsers, and Opera 9.5+, [`postMessage`][postMessage] is\navailable and provides a good way to queue tasks on the event loop. It\'s quite the abuse, using a cross-document\nmessaging protocol within the same document simply to get access to the event loop task queue, but until there are\nnative implementations, this is the best option.\n\nNote that Internet Explorer 8 includes a synchronous version of `postMessage`. We detect this, or any other such\nsynchronous implementation, and fall back to another trick.\n\n### `MessageChannel`\n\nUnfortunately, `postMessage` has completely different semantics inside web workers, and so cannot be used there. So we\nturn to [`MessageChannel`][MessageChannel], which has worse browser support, but does work inside a web worker.\n\n### `<script> onreadystatechange`\n\nFor our last trick, we pull something out to make things fast in Internet Explorer versions 6 through 8: namely,\ncreating a `<script>` element and firing our calls in its `onreadystatechange` event. This does execute in a future\nturn of the event loop, and is also faster than `setTimeout(…, 0)`, so hey, why not?\n\n## Usage\n\nIn the browser, include it with a `<script>` tag; pretty simple.\n\nIn Node.js, do\n\n```\nnpm install setimmediate\n```\n\nthen\n\n```js\nrequire("setimmediate");\n```\n\nsomewhere early in your app; it attaches to the global.\n\n## Demo\n\n* [Quick sort demo][cross-browser-demo]\n \n## Reference and Reading\n\n * [Efficient Script Yielding W3C Editor\'s Draft][spec]\n * [W3C mailing list post introducing the specification][list-post]\n * [IE Test Drive demo][ie-demo]\n * [Introductory blog post by Nicholas C. Zakas][ncz]\n\n\n[spec]: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/setImmediate/Overview.html\n[list-post]: http://lists.w3.org/Archives/Public/public-web-perf/2011Jun/0100.html\n[ie-demo]: http://ie.microsoft.com/testdrive/Performance/setImmediateSorting/Default.html\n[ncz]: http://www.nczonline.net/blog/2011/09/19/script-yielding-with-setimmediate/\n[nextTick]: http://nodejs.org/docs/v0.8.16/api/process.html#process_process_nexttick_callback\n[postMessage]: http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#posting-messages\n[MessageChannel]: http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#channel-messaging\n[cross-browser-demo]: http://jphpsf.github.com/setImmediate-shim-demo\n',
5245 silly resolved readmeFilename: 'README.md',
5245 silly resolved _id: 'setimmediate@1.0.1',
5245 silly resolved _from: 'setimmediate@~1.0.1' },
5245 silly resolved { name: 'binary',
5245 silly resolved version: '0.3.0',
5245 silly resolved description: 'Unpack multibyte binary values from buffers',
5245 silly resolved main: './index.js',
5245 silly resolved repository:
5245 silly resolved { type: 'git',
5245 silly resolved url: 'http://github.com/substack/node-binary.git' },
5245 silly resolved keywords: [ 'binary', 'decode', 'endian', 'unpack', 'signed', 'unsigned' ],
5245 silly resolved author:
5245 silly resolved { name: 'James Halliday',
5245 silly resolved email: 'mail@substack.net',
5245 silly resolved url: 'http://substack.net' },
5245 silly resolved dependencies: { chainsaw: '~0.1.0', buffers: '~0.1.1' },
5245 silly resolved devDependencies: { seq: '~0.2.5', tap: '~0.2.4' },
5245 silly resolved scripts: { test: 'tap test/*.js' },
5245 silly resolved license: 'MIT',
5245 silly resolved engine: { node: '>=0.4.0' },
5245 silly resolved readme: 'binary\n======\n\nUnpack multibyte binary values from buffers and streams.\nYou can specify the endianness and signedness of the fields to be unpacked too.\n\nThis module is a cleaner and more complete version of\n[bufferlist](https://github.com/substack/node-bufferlist)\'s binary module that\nruns on pre-allocated buffers instead of a linked list.\n\n[![build status](https://secure.travis-ci.org/substack/node-binary.png)](http://travis-ci.org/substack/node-binary)\n\nexamples\n========\n\nstream.js\n---------\n\n``` js\nvar binary = require(\'binary\');\n\nvar ws = binary()\n .word32lu(\'x\')\n .word16bs(\'y\')\n .word16bu(\'z\')\n .tap(function (vars) {\n console.dir(vars);\n })\n;\nprocess.stdin.pipe(ws);\nprocess.stdin.resume();\n```\n\noutput:\n\n```\n$ node examples/stream.js\nabcdefgh\n{ x: 1684234849, y: 25958, z: 26472 }\n^D\n```\n\nparse.js\n--------\n\n``` js\nvar buf = new Buffer([ 97, 98, 99, 100, 101, 102, 0 ]);\n\nvar binary = require(\'binary\');\nvar vars = binary.parse(buf)\n .word16ls(\'ab\')\n .word32bu(\'cf\')\n .word8(\'x\')\n .vars\n;\nconsole.dir(vars);\n```\n\noutput:\n\n```\n{ ab: 25185, cf: 1667523942, x: 0 }\n```\n\nmethods\n=======\n\n`var binary = require(\'binary\')`\n\nvar b = binary()\n----------------\n\nReturn a new writable stream `b` that has the chainable methods documented below\nfor buffering binary input.\n\nbinary.parse(buf)\n-----------------\n\nParse a static buffer in one pass. Returns a chainable interface with the\nmethods below plus a `vars` field to get at the variable stash as the last item\nin a chain.\n\nIn parse mode, methods will set their keys to `null` if the buffer isn\'t big\nenough except `buffer()` and `scan()` which read up up to the end of the buffer\nand stop.\n\nb.word{8,16,32,64}{l,b}{e,u,s}(key)\n-----------------------------------\n\nParse bytes in the buffer or stream given:\n\n* number of bits\n* endianness ( l : little, b : big ),\n* signedness ( u and e : unsigned, s : signed )\n\nThese functions won\'t start parsing until all previous parser functions have run\nand the data is available.\n\nThe result of the parse goes into the variable stash at `key`.\nIf `key` has dots (`.`s), it refers to a nested address. If parent container\nvalues don\'t exist they will be created automatically, so for instance you can\nassign into `dst.addr` and `dst.port` and the `dst` key in the variable stash\nwill be `{ addr : x, port : y }` afterwards.\n\nb.buffer(key, size)\n-------------------\n\nTake `size` bytes directly off the buffer stream, putting the resulting buffer\nslice in the variable stash at `key`. If `size` is a string, use the value at\n`vars[size]`. The key follows the same dotted address rules as the word\nfunctions.\n\nb.scan(key, buffer)\n-------------------\n\nSearch for `buffer` in the stream and store all the intervening data in the\nstash at at `key`, excluding the search buffer. If `buffer` passed as a string,\nit will be converted into a Buffer internally.\n\nFor example, to read in a line you can just do:\n\n``` js\nvar b = binary()\n .scan(\'line\', new Buffer(\'\\r\\n\'))\n .tap(function (vars) {\n console.log(vars.line)\n })\n;\nstream.pipe(b);\n```\n\nb.tap(cb)\n---------\n\nThe callback `cb` is provided with the variable stash from all the previous\nactions once they\'ve all finished.\n\nYou can nest additional actions onto `this` inside the callback.\n\nb.into(key, cb)\n---------------\n\nLike `.tap()`, except all nested actions will assign into a `key` in the `vars`\nstash.\n\nb.loop(cb)\n----------\n\nLoop, each time calling `cb(end, vars)` for function `end` and the variable\nstash with `this` set to a new chain for nested parsing. The loop terminates\nonce `end` is called.\n\nb.flush()\n---------\n\nClear the variable stash entirely.\n\ninstallation\n============\n\nTo install with [npm](http://github.com/isaacs/npm):\n\n```\nnpm install binary\n```\n\nnotes\n=====\n\nThe word64 functions will only return approximations since javascript uses ieee\nfloating point for all number types. Mind the loss of precision.\n\nlicense\n=======\n\nMIT\n\n',
5245 silly resolved readmeFilename: 'README.markdown',
5245 silly resolved bugs: { url: 'https://github.com/substack/node-binary/issues' },
5245 silly resolved _id: 'binary@0.3.0',
5245 silly resolved _from: 'binary@~0.3.0' },
5245 silly resolved { name: 'match-stream',
5245 silly resolved version: '0.0.2',
5245 silly resolved description: 'Match a pattern within a stream',
5245 silly resolved main: 'match.js',
5245 silly resolved directories: { example: 'examples', test: 'test' },
5245 silly resolved dependencies: { buffers: '~0.1.1', 'readable-stream': '~1.0.0' },
5245 silly resolved devDependencies: { tap: '~0.4.0', 'stream-buffers': '~0.2.4' },
5245 silly resolved scripts: { test: './node_modules/.bin/tap ./test/*.js' },
5245 silly resolved repository:
5245 silly resolved { type: 'git',
5245 silly resolved url: 'https://github.com/EvanOxfeld/match-stream.git' },
5245 silly resolved keywords: [ 'match', 'stream', 'split' ],
5245 silly resolved author: { name: 'Evan Oxfeld', email: 'eoxfeld@gmail.com' },
5245 silly resolved license: 'MIT',
5245 silly resolved readmeFilename: 'README.md',
5245 silly resolved gitHead: '665dabbb0a3593310012eb041fc07395db632a20',
5245 silly resolved readme: 'match-stream [![Build Status](https://travis-ci.org/EvanOxfeld/match-stream.png)](https://travis-ci.org/EvanOxfeld/match-stream)\n============\n\nSupply a function to handle pattern matches within a NodeJS stream.\n\n## Installation\n\n```bash\n$ npm install match-stream\n```\n\n## Quick Examples\n\n### End stream on match\n\n```javascript\nvar MatchStream = require(\'match-stream\');\nvar streamBuffers = require("stream-buffers");\n\nvar ms = new MatchStream({ pattern: \'World\'}, function (buf, matched, extra) {\n if (!matched) {\n return this.push(buf);\n }\n this.push(buf);\n return this.push(null); //signal end of data\n});\n\nvar sourceStream = new streamBuffers.ReadableStreamBuffer();\nsourceStream.put("Hello World");\nvar writableStream = new streamBuffers.WritableStreamBuffer();\n\nsourceStream\n .pipe(ms)\n .pipe(writableStream)\n .once(\'close\', function () {\n var str = writableStream.getContentsAsString(\'utf8\');\n console.log(\'Piped data before pattern occurs:\', "\'" + str + "\'");\n sourceStream.destroy();\n });\n\n//Output\n//Piped data before pattern occurs: \'Hello \'\n```\n\n### Split stream\n\n```javascript\nvar MatchStream = require(\'match-stream\');\nvar fs = require(\'fs\');\n\nvar line = "";\nvar loremLines = [];\nvar ms = new MatchStream({ pattern: \'.\', consume: true}, function (buf, matched, extra) {\n line += buf.toString();\n if (matched) {\n loremLines.push(line.trim());\n line = "";\n }\n});\n\nfs.createReadStream(\'lorem.txt\')\n .pipe(ms)\n .once(\'finish\', function() {\n console.log(loremLines);\n });\n```\n\n## License\n\nMIT\n\n## Acknowledgements\n\nSpecial thanks to @wanderview for assisting with the API.\n\n',
5245 silly resolved bugs: { url: 'https://github.com/EvanOxfeld/match-stream/issues' },
5245 silly resolved _id: 'match-stream@0.0.2',
5245 silly resolved _from: 'match-stream@~0.0.2' },
5245 silly resolved { name: 'pullstream',
5245 silly resolved version: '0.4.0',
5245 silly resolved description: 'A stream you can pull data from.',
5245 silly resolved main: 'pullstream.js',
5245 silly resolved scripts: { test: './node_modules/.bin/nodeunit ./test/' },
5245 silly resolved license: 'MIT',
5245 silly resolved bugs: { url: 'https://github.com/nearinfinity/node-pullstream/issues' },
5245 silly resolved repository:
5245 silly resolved { type: 'git',
5245 silly resolved url: 'https://github.com/nearinfinity/node-pullstream.git' },
5245 silly resolved keywords: [ 'stream', 'pull' ],
5245 silly resolved devDependencies:
5245 silly resolved { nodeunit: '~0.7.4',
5245 silly resolved 'stream-buffers': '~0.2.3',
5245 silly resolved async: '~0.1.22' },
5245 silly resolved dependencies:
5245 silly resolved { over: '~0.0.5',
5245 silly resolved 'readable-stream': '~1.0.0',
5245 silly resolved setimmediate: '~1.0.1',
5245 silly resolved 'slice-stream': '0.0.0' },
5245 silly resolved readme: 'pullstream [![Build Status](https://travis-ci.org/nearinfinity/node-pullstream.png)](https://travis-ci.org/nearinfinity/node-pullstream)\n==========\n\nTired of getting a firehose worth of data from your streams. This module is here to save the day. PullStream allows\nyou to pull data when you want and as much as you want.\n\n## Quick Examples\n\n```javascript\nvar PullStream = require(\'pullstream\');\nvar fs = require(\'fs\');\n\nvar ps = new PullStream();\nvar loremIpsumStream = fs.createReadStream(\'loremIpsum.txt\');\nvar outputStream = fs.createWriteStream(path.join(__dirname, \'loremIpsum.out\'));\n\nloremIpsumStream.pipe(ps);\n\n// pull 5 bytes\nps.pull(5, function(err, data) {\n console.log(data.toString(\'utf8\'));\n\n //synchronously pull 1000 bytes or howevery many bytes are available\n var bytes = ps.pullUpTo(1000);\n\n // pipe the next 100 to a file\n ps.pipe(100, outputStream).on(\'end\', function () {\n console.log(\'all done\');\n });\n});\n```\n\n# API Index\n\n## PullStream\n * [pull](#pullStreamPull)\n * [pullUpTo](#pullStreamPullUpTo)\n * [pipe](#pullStreamPipe)\n * [drain](#pullStreamDrain)\n * [write](#pullStreamWrite)\n * [end](#pullStreamEnd)\n * [prepend](#pullStreamPrepend)\n\n# API Documentation\n\n<a name="pullStream"/>\n## PullStream\n\n<a name="pullStreamPull" />\n### ps.pull([number], callback)\n\nCalls a callback when the specified number of bytes are ready. If no number is specified pull will read until the end\nof the input stream.\n\n__Arguments__\n\n* number (optional) - Number of bytes to wait for. If not specified reads to the end of input stream.\n* callback(err, data) - Callback called when the bytes are ready. data is a buffer containing the bytes.\n\n__Example__\n\n```javascript\nvar ps = new PullStream();\n\nps.pull(5, function(err, data) {\n console.log(data.toString(\'utf8\'));\n});\n```\n\n<a name="pullStreamPullUpTo" />\n### ps.pullUpTo([number])\n\nSynchronously returns the specified number of bytes or however many bytes are available from the input stream. If no\nnumber is specified pullUpTo will return however many bytes are available from the input stream.\n\n__Arguments__\n\n* number (optional) - Number of bytes to read from the input stream.\n\n__Example__\n\n```javascript\nvar ps = new PullStream();\n\nvar data = ps.pullUpTo(1000);\nconsole.log(data.toString(\'utf8\'));\n```\n\n<a name="pullStreamPipe" />\n### ps.pipe([number], destStream)\n\nPipes the specified number of bytes to destStream. If a number is not specified pipe will pipe the remainder\nof the input stream to destStream. Back-pressure is properly managed.\n\n__Arguments__\n\n* number (optional) - Number of bytes to pipe. If not specified pipe the rest of input stream.\n* destStream - The stream to pipe data to.\n\n__Returns__\n\nReturns destStream.\n\n__Example__\n\n```javascript\nvar ps = new PullStream();\nvar outputStream = fs.createWriteStream(path.join(__dirname, \'loremIpsum.out\'));\n\nps.pipe(100, out).on(\'end\', function() {\n console.log(\'done with pipe\');\n});\n```\n\n<a name="pullStreamDrain" />\n### ps.drain(number, callback)\n\nConsume the specified number of bytes and send them to nowhere. Also drains from upstream as necessary if the specified\nnumber of bytes is less than the length of the pull stream\'s internal buffer.\n\n__Example__\n\n```javascript\nvar ps = new PullStream();\n\nps.drain(5, function(err) {\n console.log(\'5 bytes removed from pull stream\');\n});\n```\n\n<a name="pullStreamWrite" />\n### ps.write(data, [encoding])\n\nWrites data to input side of a pull stream.\n\n__Arguments__\n\n* data - Buffer or string to write to the input side of the pull stream.\n* encoding (optional) - Encoding to use if data is a string. If not specified \'utf8\' is used.\n\n__Example__\n\n```javascript\nvar ps = new PullStream();\n\nps.pull(5, function(err, data) {\n console.log(data.toString(\'ascii\'));\n});\n\nps.write(\'Hello World\', \'ascii\');\n```\n\n<a name="pullStreamEnd" />\n### ps.end()\n\nManually ends a pull stream.\n\n__Example__\n\n```javascript\nvar ps = new PullStream();\n\nps.pull(5, function(err, data) {\n console.log(data.toString(\'utf8\'));\n});\n\nps.write(\'Hello World\');\nps.end();\n```\n\n<a name="pullStreamPrepend" />\n### ps.prepend()\n\nWrites data to the front of the input side of a pull stream.\n\n__Example__\n\n```javascript\nvar ps = new PullStream();\n\nps.pull(11, function(err, data) {\n console.log(data.toString());\n});\n\nps.write(\'World\');\nps.prepend(\'Hello \');\nps.end();\n```\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2012 - 2013 Near Infinity Corporation\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\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n',
5245 silly resolved readmeFilename: 'README.md',
5245 silly resolved _id: 'pullstream@0.4.0',
5245 silly resolved _from: 'pullstream@~0.4.0' } ]
5246 info install readable-stream@1.0.2 into /opt/local/lib/node_modules/bower/node_modules/unzip
5247 info install setimmediate@1.0.1 into /opt/local/lib/node_modules/bower/node_modules/unzip
5248 info install binary@0.3.0 into /opt/local/lib/node_modules/bower/node_modules/unzip
5249 info install match-stream@0.0.2 into /opt/local/lib/node_modules/bower/node_modules/unzip
5250 info install pullstream@0.4.0 into /opt/local/lib/node_modules/bower/node_modules/unzip
5251 info installOne readable-stream@1.0.2
5252 info installOne setimmediate@1.0.1
5253 info installOne binary@0.3.0
5254 info installOne match-stream@0.0.2
5255 info installOne pullstream@0.4.0
5256 verbose registry.get lodash not expired, no request
5257 silly addNameRange number 2 { name: 'lodash', range: '>=1.2.1-0 <1.3.0-0', hasData: true }
5258 silly addNameRange versions [ 'lodash',
5258 silly addNameRange [ '0.1.0',
5258 silly addNameRange '0.2.0',
5258 silly addNameRange '0.2.1',
5258 silly addNameRange '0.2.2',
5258 silly addNameRange '0.3.0',
5258 silly addNameRange '0.3.1',
5258 silly addNameRange '0.3.2',
5258 silly addNameRange '0.4.0',
5258 silly addNameRange '0.4.1',
5258 silly addNameRange '0.4.2',
5258 silly addNameRange '0.5.0-rc.1',
5258 silly addNameRange '0.5.0',
5258 silly addNameRange '0.5.1',
5258 silly addNameRange '0.5.2',
5258 silly addNameRange '0.6.0',
5258 silly addNameRange '0.6.1',
5258 silly addNameRange '0.7.0',
5258 silly addNameRange '0.8.0',
5258 silly addNameRange '0.8.1',
5258 silly addNameRange '0.8.2',
5258 silly addNameRange '1.0.1',
5258 silly addNameRange '0.9.0',
5258 silly addNameRange '0.9.1',
5258 silly addNameRange '0.9.2',
5258 silly addNameRange '0.10.0',
5258 silly addNameRange '1.0.0-rc.1',
5258 silly addNameRange '1.0.0-rc.2',
5258 silly addNameRange '1.0.0-rc.3',
5258 silly addNameRange '1.0.0',
5258 silly addNameRange '1.1.0',
5258 silly addNameRange '1.1.1',
5258 silly addNameRange '1.2.0',
5258 silly addNameRange '1.2.1',
5258 silly addNameRange '1.3.0',
5258 silly addNameRange '1.3.1' ] ]
5259 verbose addNamed [ 'lodash', '1.2.1' ]
5260 verbose addNamed [ '1.2.1', '1.2.1' ]
5261 silly lockFile 97f4aa05-lodash-1-2-1 lodash@1.2.1
5262 verbose lock lodash@1.2.1 /Users/vaca/.npm/97f4aa05-lodash-1-2-1.lock
5263 info /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/readable-stream unbuild
5264 info /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/setimmediate unbuild
5265 info /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/binary unbuild
5266 info /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/match-stream unbuild
5267 info /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream unbuild
5268 silly gunzTarPerm extractEntry src/yaml/YamlParser.js
5269 silly gunzTarPerm extractEntry src/yaml/YamlUnescaper.js
5270 silly gunzTarPerm modes [ '755', '644' ]
5271 silly gunzTarPerm extractEntry collection/reduce.js
5272 silly gunzTarPerm extractEntry collection/reject.js
5273 silly lockFile 97f4aa05-lodash-1-2-1 lodash@1.2.1
5274 silly lockFile 97f4aa05-lodash-1-2-1 lodash@1.2.1
5275 verbose tar unpack /Users/vaca/.npm/readable-stream/1.0.2/package.tgz
5276 silly lockFile 1b89ac91-zip-node-modules-readable-stream tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/readable-stream
5277 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/readable-stream /Users/vaca/.npm/1b89ac91-zip-node-modules-readable-stream.lock
5278 silly lockFile f24223f6-eadable-stream-1-0-2-package-tgz tar:///Users/vaca/.npm/readable-stream/1.0.2/package.tgz
5279 verbose lock tar:///Users/vaca/.npm/readable-stream/1.0.2/package.tgz /Users/vaca/.npm/f24223f6-eadable-stream-1-0-2-package-tgz.lock
5280 verbose tar unpack /Users/vaca/.npm/setimmediate/1.0.1/package.tgz
5281 silly lockFile e5968938--unzip-node-modules-setimmediate tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/setimmediate
5282 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/setimmediate /Users/vaca/.npm/e5968938--unzip-node-modules-setimmediate.lock
5283 silly lockFile 5cec97cf-m-setimmediate-1-0-1-package-tgz tar:///Users/vaca/.npm/setimmediate/1.0.1/package.tgz
5284 verbose lock tar:///Users/vaca/.npm/setimmediate/1.0.1/package.tgz /Users/vaca/.npm/5cec97cf-m-setimmediate-1-0-1-package-tgz.lock
5285 verbose tar unpack /Users/vaca/.npm/binary/0.3.0/package.tgz
5286 silly lockFile d1b61ecc-odules-unzip-node-modules-binary tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/binary
5287 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/binary /Users/vaca/.npm/d1b61ecc-odules-unzip-node-modules-binary.lock
5288 silly lockFile 56319e70-aca-npm-binary-0-3-0-package-tgz tar:///Users/vaca/.npm/binary/0.3.0/package.tgz
5289 verbose lock tar:///Users/vaca/.npm/binary/0.3.0/package.tgz /Users/vaca/.npm/56319e70-aca-npm-binary-0-3-0-package-tgz.lock
5290 verbose tar unpack /Users/vaca/.npm/match-stream/0.0.2/package.tgz
5291 silly lockFile 96590f45--unzip-node-modules-match-stream tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/match-stream
5292 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/match-stream /Users/vaca/.npm/96590f45--unzip-node-modules-match-stream.lock
5293 silly lockFile d9976cdb-m-match-stream-0-0-2-package-tgz tar:///Users/vaca/.npm/match-stream/0.0.2/package.tgz
5294 verbose lock tar:///Users/vaca/.npm/match-stream/0.0.2/package.tgz /Users/vaca/.npm/d9976cdb-m-match-stream-0-0-2-package-tgz.lock
5295 verbose tar unpack /Users/vaca/.npm/pullstream/0.4.0/package.tgz
5296 silly lockFile e8ca53d9-es-unzip-node-modules-pullstream tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream
5297 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream /Users/vaca/.npm/e8ca53d9-es-unzip-node-modules-pullstream.lock
5298 silly lockFile d2561af1-npm-pullstream-0-4-0-package-tgz tar:///Users/vaca/.npm/pullstream/0.4.0/package.tgz
5299 verbose lock tar:///Users/vaca/.npm/pullstream/0.4.0/package.tgz /Users/vaca/.npm/d2561af1-npm-pullstream-0-4-0-package-tgz.lock
5300 silly lockFile 52b3d2d9-lodash-1-2-1 lodash@~1.2.1
5301 silly lockFile 52b3d2d9-lodash-1-2-1 lodash@~1.2.1
5302 silly gunzTarPerm extractEntry vendor/cookie/index.js
5303 silly gunzTarPerm modes [ '755', '644' ]
5304 silly gunzTarPerm modes [ '755', '644' ]
5305 silly gunzTarPerm modes [ '755', '644' ]
5306 silly gunzTarPerm modes [ '755', '644' ]
5307 silly lockFile 3d8fa430-dules-glob-node-modules-inherits tar:///opt/local/lib/node_modules/bower/node_modules/glob/node_modules/inherits
5308 silly lockFile 3d8fa430-dules-glob-node-modules-inherits tar:///opt/local/lib/node_modules/bower/node_modules/glob/node_modules/inherits
5309 silly gunzTarPerm modes [ '755', '644' ]
5310 silly gunzTarPerm extractEntry tests/squid.conf
5311 silly gunzTarPerm extractEntry tests/ssl/ca/server.js
5312 silly lockFile 71666a8b-mute-stream-0-0-4 mute-stream@0.0.4
5313 silly lockFile 71666a8b-mute-stream-0-0-4 mute-stream@0.0.4
5314 silly gunzTarPerm extractEntry package.json
5315 silly lockFile 069571be-a-npm-inherits-2-0-0-package-tgz tar:///Users/vaca/.npm/inherits/2.0.0/package.tgz
5316 silly lockFile 069571be-a-npm-inherits-2-0-0-package-tgz tar:///Users/vaca/.npm/inherits/2.0.0/package.tgz
5317 silly lockFile 0cb27cfc-mute-stream-0-0-4 mute-stream@~0.0.4
5318 silly lockFile 0cb27cfc-mute-stream-0-0-4 mute-stream@~0.0.4
5319 silly resolved [ { name: 'mute-stream',
5319 silly resolved version: '0.0.4',
5319 silly resolved main: 'mute.js',
5319 silly resolved directories: { test: 'test' },
5319 silly resolved devDependencies: { tap: '~0.2.5' },
5319 silly resolved scripts: { test: 'tap test/*.js' },
5319 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/mute-stream' },
5319 silly resolved keywords: [ 'mute', 'stream', 'pipe' ],
5319 silly resolved author:
5319 silly resolved { name: 'Isaac Z. Schlueter',
5319 silly resolved email: 'i@izs.me',
5319 silly resolved url: 'http://blog.izs.me/' },
5319 silly resolved license: 'BSD',
5319 silly resolved description: 'Bytes go in, but they don\'t come out (when muted).',
5319 silly resolved readme: '# mute-stream\n\nBytes go in, but they don\'t come out (when muted).\n\nThis is a basic pass-through stream, but when muted, the bytes are\nsilently dropped, rather than being passed through.\n\n## Usage\n\n```javascript\nvar MuteStream = require(\'mute-stream\')\n\nvar ms = new MuteStream(options)\n\nms.pipe(process.stdout)\nms.write(\'foo\') // writes \'foo\' to stdout\nms.mute()\nms.write(\'bar\') // does not write \'bar\'\nms.unmute()\nms.write(\'baz\') // writes \'baz\' to stdout\n\n// can also be used to mute incoming data\nvar ms = new MuteStream\ninput.pipe(ms)\n\nms.on(\'data\', function (c) {\n console.log(\'data: \' + c)\n})\n\ninput.emit(\'data\', \'foo\') // logs \'foo\'\nms.mute()\ninput.emit(\'data\', \'bar\') // does not log \'bar\'\nms.unmute()\ninput.emit(\'data\', \'baz\') // logs \'baz\'\n```\n\n## Options\n\nAll options are optional.\n\n* `replace` Set to a string to replace each character with the\n specified string when muted. (So you can show `****` instead of the\n password, for example.)\n\n* `prompt` If you are using a replacement char, and also using a\n prompt with a readline stream (as for a `Password: *****` input),\n then specify what the prompt is so that backspace will work\n properly. Otherwise, pressing backspace will overwrite the prompt\n with the replacement character, which is weird.\n\n## ms.mute()\n\nSet `muted` to `true`. Turns `.write()` into a no-op.\n\n## ms.unmute()\n\nSet `muted` to `false`\n\n## ms.isTTY\n\nTrue if the pipe destination is a TTY, or if the incoming pipe source is\na TTY.\n\n## Other stream methods...\n\nThe other standard readable and writable stream methods are all\navailable. The MuteStream object acts as a facade to its pipe source\nand destination.\n',
5319 silly resolved readmeFilename: 'README.md',
5319 silly resolved bugs: { url: 'https://github.com/isaacs/mute-stream/issues' },
5319 silly resolved _id: 'mute-stream@0.0.4',
5319 silly resolved _from: 'mute-stream@~0.0.4' } ]
5320 info install mute-stream@0.0.4 into /opt/local/lib/node_modules/bower/node_modules/promptly/node_modules/read
5321 info installOne mute-stream@0.0.4
5322 info /opt/local/lib/node_modules/bower/node_modules/promptly/node_modules/read/node_modules/mute-stream unbuild
5323 silly gunzTarPerm extractEntry test/libs/jasmine-1.2.0/YamlSpec.js
5324 silly gunzTarPerm extractEntry test/libs/jasmine-1.2.0/YamlTests.js
5325 silly gunzTarPerm extractEntry README.md
5326 silly gunzTarPerm extractEntry package.json
5327 info preinstall inherits@2.0.0
5328 silly gunzTarPerm extractEntry collection/size.js
5329 silly gunzTarPerm extractEntry collection/every.js
5330 silly gunzTarPerm extractEntry LICENSE
5331 silly gunzTarPerm extractEntry component.json
5332 silly gunzTarPerm extractEntry lib/async.js
5333 silly lockFile ba4f9ffc--configstore-node-modules-mkdirp tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/configstore/node_modules/mkdirp
5334 silly lockFile ba4f9ffc--configstore-node-modules-mkdirp tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/configstore/node_modules/mkdirp
5335 silly gunzTarPerm extractEntry package.json
5336 silly gunzTarPerm extractEntry package.json
5337 silly gunzTarPerm extractEntry package.json
5338 silly gunzTarPerm extractEntry package.json
5339 silly lockFile d1348830-aca-npm-mkdirp-0-3-5-package-tgz tar:///Users/vaca/.npm/mkdirp/0.3.5/package.tgz
5340 silly lockFile d1348830-aca-npm-mkdirp-0-3-5-package-tgz tar:///Users/vaca/.npm/mkdirp/0.3.5/package.tgz
5341 verbose tar unpack /Users/vaca/.npm/mute-stream/0.0.4/package.tgz
5342 silly lockFile 505f6e6f-es-read-node-modules-mute-stream tar:///opt/local/lib/node_modules/bower/node_modules/promptly/node_modules/read/node_modules/mute-stream
5343 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/promptly/node_modules/read/node_modules/mute-stream /Users/vaca/.npm/505f6e6f-es-read-node-modules-mute-stream.lock
5344 silly lockFile b89fee15-pm-mute-stream-0-0-4-package-tgz tar:///Users/vaca/.npm/mute-stream/0.0.4/package.tgz
5345 verbose lock tar:///Users/vaca/.npm/mute-stream/0.0.4/package.tgz /Users/vaca/.npm/b89fee15-pm-mute-stream-0-0-4-package-tgz.lock
5346 verbose readDependencies using package.json deps
5347 silly gunzTarPerm extractEntry README.md
5348 verbose readDependencies using package.json deps
5349 silly resolved []
5350 verbose about to build /opt/local/lib/node_modules/bower/node_modules/glob/node_modules/inherits
5351 info build /opt/local/lib/node_modules/bower/node_modules/glob/node_modules/inherits
5352 verbose linkStuff [ true,
5352 verbose linkStuff '/opt/local/lib/node_modules',
5352 verbose linkStuff false,
5352 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/glob/node_modules' ]
5353 info linkStuff inherits@2.0.0
5354 silly gunzTarPerm extractEntry setImmediate.js
5355 silly gunzTarPerm extractEntry tests/ssl/ca/ca.srl
5356 silly gunzTarPerm extractEntry tests/ssl/ca/ca.crt
5357 silly gunzTarPerm modes [ '755', '644' ]
5358 silly gunzTarPerm extractEntry .npmignore
5359 silly gunzTarPerm extractEntry index.js
5360 silly gunzTarPerm extractEntry README.md
5361 silly gunzTarPerm extractEntry LICENSE
5362 silly gunzTarPerm extractEntry README.md
5363 silly gunzTarPerm extractEntry .npmignore
5364 silly gunzTarPerm extractEntry README.md
5365 info preinstall mkdirp@0.3.5
5366 silly gunzTarPerm extractEntry LICENSE
5367 verbose linkBins inherits@2.0.0
5368 verbose linkMans inherits@2.0.0
5369 verbose rebuildBundles inherits@2.0.0
5370 info install inherits@2.0.0
5371 verbose readDependencies using package.json deps
5372 info postinstall inherits@2.0.0
5373 silly gunzTarPerm extractEntry collection/some.js
5374 silly gunzTarPerm extractEntry collection/max.js
5375 verbose readDependencies using package.json deps
5376 silly resolved []
5377 verbose about to build /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/configstore/node_modules/mkdirp
5378 info build /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/configstore/node_modules/mkdirp
5379 verbose linkStuff [ true,
5379 verbose linkStuff '/opt/local/lib/node_modules',
5379 verbose linkStuff false,
5379 verbose linkStuff '/opt/local/lib/node_modules/yo/node_modules/insight/node_modules/configstore/node_modules' ]
5380 info linkStuff mkdirp@0.3.5
5381 silly gunzTarPerm extractEntry package.json
5382 verbose linkBins mkdirp@0.3.5
5383 verbose linkMans mkdirp@0.3.5
5384 verbose rebuildBundles mkdirp@0.3.5
5385 silly gunzTarPerm extractEntry vendor/cookie/jar.js
5386 silly gunzTarPerm extractEntry node_modules/form-data/package.json
5387 info install mkdirp@0.3.5
5388 silly gunzTarPerm extractEntry tests/ssl/ca/ca.csr
5389 silly gunzTarPerm extractEntry tests/ssl/ca/ca.key
5390 silly gunzTarPerm extractEntry build/minify.js
5391 silly gunzTarPerm extractEntry README.md
5392 silly gunzTarPerm extractEntry LICENSE
5393 silly gunzTarPerm extractEntry LICENSE.txt
5394 silly gunzTarPerm extractEntry qUnitTest/tests.js
5395 silly gunzTarPerm extractEntry .travis.yml
5396 silly gunzTarPerm extractEntry match.js
5397 silly gunzTarPerm extractEntry .idea/.name
5398 silly gunzTarPerm extractEntry .idea/encodings.xml
5399 silly gunzTarPerm extractEntry .idea/jsLibraryMappings.xml
5400 silly gunzTarPerm extractEntry .idea/match-stream.iml
5401 silly gunzTarPerm extractEntry .idea/misc.xml
5402 silly gunzTarPerm extractEntry .idea/modules.xml
5403 silly gunzTarPerm extractEntry .idea/scopes/scope_settings.xml
5404 silly gunzTarPerm extractEntry .idea/vcs.xml
5405 silly gunzTarPerm extractEntry .idea/workspace.xml
5406 silly gunzTarPerm extractEntry .travis.yml
5407 silly gunzTarPerm extractEntry examples/split.js
5408 silly gunzTarPerm extractEntry examples/until.js
5409 silly gunzTarPerm extractEntry examples/lorem.txt
5410 silly gunzTarPerm extractEntry test/split.js
5411 silly gunzTarPerm extractEntry test/until.js
5412 silly gunzTarPerm extractEntry fs.js
5413 silly gunzTarPerm extractEntry duplex.js
5414 silly gunzTarPerm extractEntry LICENSE
5415 silly gunzTarPerm extractEntry build/post-compile.js
5416 info postinstall mkdirp@0.3.5
5417 silly gunzTarPerm modes [ '755', '644' ]
5418 silly gunzTarPerm extractEntry test/libs/jasmine-1.2.0/jasmine-html.js
5419 silly gunzTarPerm extractEntry test/libs/jasmine-1.2.0/jasmine.js
5420 silly gunzTarPerm modes [ '755', '644' ]
5421 silly gunzTarPerm extractEntry object/bindAll.js
5422 silly gunzTarPerm extractEntry object/functions.js
5423 silly gunzTarPerm extractEntry package.json
5424 silly gunzTarPerm extractEntry build/pre-compile.js
5425 silly gunzTarPerm extractEntry build/util.js
5426 silly gunzTarPerm extractEntry tests/ssl/ca/ca.crl
5427 silly gunzTarPerm extractEntry tests/ssl/ca/server.cnf
5428 silly gunzTarPerm extractEntry README.markdown
5429 silly gunzTarPerm extractEntry example/buf.js
5430 silly gunzTarPerm extractEntry pullstream.js
5431 silly gunzTarPerm extractEntry .travis.yml
5432 silly gunzTarPerm extractEntry package.json
5433 silly gunzTarPerm extractEntry mute.js
5434 silly gunzTarPerm extractEntry test/basic.js
5435 silly gunzTarPerm extractEntry README.md
5436 silly gunzTarPerm extractEntry LICENSE
5437 silly gunzTarPerm extractEntry node_modules/form-data/.npmignore
5438 silly gunzTarPerm extractEntry node_modules/form-data/Makefile
5439 silly gunzTarPerm extractEntry object/get.js
5440 silly gunzTarPerm extractEntry object/has.js
5441 silly gunzTarPerm extractEntry .npmignore
5442 silly gunzTarPerm extractEntry LICENSE
5443 silly gunzTarPerm extractEntry qUnitTest/worker.js
5444 silly gunzTarPerm extractEntry qUnitTest/lib/qunit.js
5445 silly gunzTarPerm extractEntry node_modules/form-data/Readme.md
5446 silly gunzTarPerm extractEntry node_modules/form-data/lib/form_data.js
5447 silly gunzTarPerm extractEntry tests/ssl/ca/server.crt
5448 silly gunzTarPerm extractEntry tests/ssl/ca/server.csr
5449 silly gunzTarPerm extractEntry inherits.js
5450 silly gunzTarPerm extractEntry inherits_browser.js
5451 silly gunzTarPerm extractEntry test.js
5452 silly gunzTarPerm extractEntry object/hasOwn.js
5453 silly gunzTarPerm extractEntry object/forOwn.js
5454 silly gunzTarPerm extractEntry index.js
5455 silly gunzTarPerm extractEntry .travis.yml
5456 silly gunzTarPerm extractEntry test/libs/jasmine-1.2.0/MIT.LICENSE
5457 silly lockFile 96fb7cd3-es-glob-node-modules-graceful-fs tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/graceful-fs
5458 silly lockFile 96fb7cd3-es-glob-node-modules-graceful-fs tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/graceful-fs
5459 silly lockFile f48482c4-pm-graceful-fs-1-2-3-package-tgz tar:///Users/vaca/.npm/graceful-fs/1.2.3/package.tgz
5460 silly lockFile f48482c4-pm-graceful-fs-1-2-3-package-tgz tar:///Users/vaca/.npm/graceful-fs/1.2.3/package.tgz
5461 silly gunzTarPerm extractEntry examples/pullFromFile.js
5462 silly gunzTarPerm extractEntry examples/loremIpsum.txt
5463 silly gunzTarPerm extractEntry node_modules/form-data/node-form-data.sublime-project
5464 silly gunzTarPerm extractEntry node_modules/form-data/node-form-data.sublime-workspace
5465 silly gunzTarPerm extractEntry tests/ssl/ca/ca.cnf
5466 silly gunzTarPerm extractEntry tests/ssl/ca/server.key
5467 info preinstall graceful-fs@1.2.3
5468 silly gunzTarPerm extractEntry object/map.js
5469 silly gunzTarPerm extractEntry object/matches.js
5470 silly gunzTarPerm extractEntry examples/pow.js
5471 verbose readDependencies using package.json deps
5472 verbose readDependencies using package.json deps
5473 silly resolved []
5474 verbose about to build /opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/graceful-fs
5475 info build /opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/graceful-fs
5476 verbose linkStuff [ true,
5476 verbose linkStuff '/opt/local/lib/node_modules',
5476 verbose linkStuff false,
5476 verbose linkStuff '/opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules' ]
5477 info linkStuff graceful-fs@1.2.3
5478 silly lockFile 833b67d4-am-ignore-node-modules-minimatch tar:///opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/minimatch
5479 silly lockFile 833b67d4-am-ignore-node-modules-minimatch tar:///opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/minimatch
5480 verbose linkBins graceful-fs@1.2.3
5481 verbose linkMans graceful-fs@1.2.3
5482 verbose rebuildBundles graceful-fs@1.2.3
5483 silly lockFile 5e70848b-npm-minimatch-0-2-12-package-tgz tar:///Users/vaca/.npm/minimatch/0.2.12/package.tgz
5484 silly lockFile 5e70848b-npm-minimatch-0-2-12-package-tgz tar:///Users/vaca/.npm/minimatch/0.2.12/package.tgz
5485 info install graceful-fs@1.2.3
5486 silly gunzTarPerm extractEntry tests/ssl/npm-ca.crt
5487 silly gunzTarPerm extractEntry tests/ssl/test.crt
5488 silly gunzTarPerm extractEntry example/parse.js
5489 silly gunzTarPerm extractEntry example/stream.js
5490 silly gunzTarPerm extractEntry test/pullStreamTest.js
5491 silly gunzTarPerm extractEntry test/testFile.txt
5492 info postinstall graceful-fs@1.2.3
5493 silly gunzTarPerm extractEntry object/max.js
5494 silly gunzTarPerm extractEntry object/merge.js
5495 silly gunzTarPerm extractEntry test/libs/jasmine-1.2.0/jasmine.css
5496 silly gunzTarPerm extractEntry node_modules/form-data/test/common.js
5497 silly gunzTarPerm extractEntry node_modules/form-data/test/run.js
5498 info preinstall minimatch@0.2.12
5499 http 304 https://registry.npmjs.org/cli-color
5500 silly registry.get cb [ 304,
5500 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
5500 silly registry.get etag: '"EDEKUY7J0DZXE4GZ0P623P4HT"',
5500 silly registry.get date: 'Fri, 02 Aug 2013 15:55:12 GMT',
5500 silly registry.get 'content-length': '0' } ]
5501 verbose etag cli-color from cache
5502 http 304 https://registry.npmjs.org/mute-stream/0.0.3
5503 silly registry.get cb [ 304,
5503 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
5503 silly registry.get etag: '"CRYMZFAL5IFJ68CIUWV77NAKG"',
5503 silly registry.get date: 'Fri, 02 Aug 2013 15:55:12 GMT',
5503 silly registry.get 'content-length': '0' } ]
5504 verbose etag mute-stream/0.0.3 from cache
5505 silly gunzTarPerm extractEntry qUnitTest/lib/qunit.css
5506 silly gunzTarPerm extractEntry qUnitTest/runner.htm
5507 silly gunzTarPerm extractEntry readme.markdown
5508 silly gunzTarPerm extractEntry test/chmod.js
5509 silly gunzTarPerm modes [ '755', '644' ]
5510 verbose readDependencies using package.json deps
5511 verbose readDependencies using package.json deps
5512 verbose cache add [ 'sigmund@~1.0.0', null ]
5513 verbose cache add name=undefined spec="sigmund@~1.0.0" args=["sigmund@~1.0.0",null]
5514 verbose parsed url { protocol: null,
5514 verbose parsed url slashes: null,
5514 verbose parsed url auth: null,
5514 verbose parsed url host: null,
5514 verbose parsed url port: null,
5514 verbose parsed url hostname: null,
5514 verbose parsed url hash: null,
5514 verbose parsed url search: null,
5514 verbose parsed url query: null,
5514 verbose parsed url pathname: 'sigmund@~1.0.0',
5514 verbose parsed url path: 'sigmund@~1.0.0',
5514 verbose parsed url href: 'sigmund@~1.0.0' }
5515 verbose cache add name="sigmund" spec="~1.0.0" args=["sigmund","~1.0.0"]
5516 verbose parsed url { protocol: null,
5516 verbose parsed url slashes: null,
5516 verbose parsed url auth: null,
5516 verbose parsed url host: null,
5516 verbose parsed url port: null,
5516 verbose parsed url hostname: null,
5516 verbose parsed url hash: null,
5516 verbose parsed url search: null,
5516 verbose parsed url query: null,
5516 verbose parsed url pathname: '~1.0.0',
5516 verbose parsed url path: '~1.0.0',
5516 verbose parsed url href: '~1.0.0' }
5517 verbose addNamed [ 'sigmund', '~1.0.0' ]
5518 verbose addNamed [ null, '>=1.0.0-0 <1.1.0-0' ]
5519 silly lockFile 584a4a05-sigmund-1-0-0 sigmund@~1.0.0
5520 verbose lock sigmund@~1.0.0 /Users/vaca/.npm/584a4a05-sigmund-1-0-0.lock
5521 silly gunzTarPerm extractEntry lib/vars.js
5522 silly gunzTarPerm extractEntry perf/loop.js
5523 silly gunzTarPerm extractEntry object/min.js
5524 silly gunzTarPerm extractEntry object/forIn.js
5525 silly addNameRange { name: 'sigmund', range: '>=1.0.0-0 <1.1.0-0', hasData: false }
5526 silly addNameRange number 2 { name: 'cli-color', range: '>=0.2.2-0 <0.3.0-0', hasData: true }
5527 silly addNameRange versions [ 'cli-color',
5527 silly addNameRange [ '0.1.0',
5527 silly addNameRange '0.1.1',
5527 silly addNameRange '0.1.2',
5527 silly addNameRange '0.1.3',
5527 silly addNameRange '0.1.4',
5527 silly addNameRange '0.1.5',
5527 silly addNameRange '0.1.6',
5527 silly addNameRange '0.1.7',
5527 silly addNameRange '0.2.0',
5527 silly addNameRange '0.2.1',
5527 silly addNameRange '0.2.2' ] ]
5528 verbose addNamed [ 'cli-color', '0.2.2' ]
5529 verbose addNamed [ '0.2.2', '0.2.2' ]
5530 silly lockFile 39acd334-cli-color-0-2-2 cli-color@0.2.2
5531 verbose lock cli-color@0.2.2 /Users/vaca/.npm/39acd334-cli-color-0-2-2.lock
5532 silly gunzTarPerm extractEntry package.json
5533 silly gunzTarPerm extractEntry tests/ssl/test.key
5534 silly gunzTarPerm extractEntry tests/googledoodle.jpg
5535 silly gunzTarPerm extractEntry qUnitTest/selfClose.htm
5536 verbose url raw sigmund
5537 verbose url resolving [ 'https://registry.npmjs.org/', './sigmund' ]
5538 verbose url resolved https://registry.npmjs.org/sigmund
5539 info trying registry request attempt 1 at 11:55:12
5540 verbose etag "BAAVPGGBONNEW4H9S234JOULZ"
5541 http GET https://registry.npmjs.org/sigmund
5542 silly gunzTarPerm extractEntry node_modules/form-data/test/fixture/bacon.txt
5543 silly gunzTarPerm extractEntry node_modules/form-data/test/fixture/unicycle.jpg
5544 silly gunzTarPerm extractEntry README.md
5545 silly gunzTarPerm extractEntry LICENSE
5546 silly gunzTarPerm extractEntry test/perm.js
5547 silly gunzTarPerm extractEntry test/perm_sync.js
5548 silly lockFile bb4e3fcd-e-modules-bower-node-modules-tar tar:///opt/local/lib/node_modules/bower/node_modules/tar
5549 silly lockFile bb4e3fcd-e-modules-bower-node-modules-tar tar:///opt/local/lib/node_modules/bower/node_modules/tar
5550 silly gunzTarPerm extractEntry object/mixIn.js
5551 silly gunzTarPerm extractEntry object/find.js
5552 silly lockFile a80cea45--vaca-npm-tar-0-1-18-package-tgz tar:///Users/vaca/.npm/tar/0.1.18/package.tgz
5553 silly lockFile a80cea45--vaca-npm-tar-0-1-18-package-tgz tar:///Users/vaca/.npm/tar/0.1.18/package.tgz
5554 silly gunzTarPerm extractEntry test/test.html
5555 silly lockFile 3cfd36c8-mute-stream-0-0-3 mute-stream@0.0.3
5556 silly lockFile 3cfd36c8-mute-stream-0-0-3 mute-stream@0.0.3
5557 silly gunzTarPerm extractEntry tests/unicycle.jpg
5558 silly gunzTarPerm extractEntry perf/small.js
5559 silly gunzTarPerm extractEntry test/bu.js
5560 silly gunzTarPerm extractEntry passthrough.js
5561 silly gunzTarPerm extractEntry readable.js
5562 silly gunzTarPerm extractEntry node_modules/form-data/test/integration/test-form-get-length.js
5563 silly gunzTarPerm extractEntry node_modules/form-data/test/integration/test-get-boundary.js
5564 info preinstall tar@0.1.18
5565 silly gunzTarPerm extractEntry test/race.js
5566 silly gunzTarPerm extractEntry test/mkdirp.js
5567 silly lockFile 39acd334-cli-color-0-2-2 cli-color@0.2.2
5568 silly lockFile 39acd334-cli-color-0-2-2 cli-color@0.2.2
5569 silly gunzTarPerm extractEntry minimatch.js
5570 silly lockFile d0e95799-cli-color-0-2-2 cli-color@~0.2.2
5571 silly lockFile d0e95799-cli-color-0-2-2 cli-color@~0.2.2
5572 silly resolved [ { name: 'async',
5572 silly resolved description: 'Higher-order functions and common patterns for asynchronous code',
5572 silly resolved main: './lib/async',
5572 silly resolved author: { name: 'Caolan McMahon' },
5572 silly resolved version: '0.2.9',
5572 silly resolved repository: { type: 'git', url: 'https://github.com/caolan/async.git' },
5572 silly resolved bugs: { url: 'https://github.com/caolan/async/issues' },
5572 silly resolved licenses: [ [Object] ],
5572 silly resolved devDependencies: { nodeunit: '>0.0.0', 'uglify-js': '1.2.x', nodelint: '>0.0.0' },
5572 silly resolved jam: { main: 'lib/async.js', include: [Object] },
5572 silly resolved scripts: { test: 'nodeunit test/test-async.js' },
5572 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',
5572 silly resolved readmeFilename: 'README.md',
5572 silly resolved _id: 'async@0.2.9',
5572 silly resolved _from: 'async@~0.2.8' },
5572 silly resolved { name: 'lodash',
5572 silly resolved version: '1.2.1',
5572 silly resolved description: 'A low-level utility library delivering consistency, customization, performance, and extra features.',
5572 silly resolved homepage: 'http://lodash.com',
5572 silly resolved license: 'MIT',
5572 silly resolved main: './dist/lodash.js',
5572 silly resolved keywords:
5572 silly resolved [ 'browser',
5572 silly resolved 'client',
5572 silly resolved 'functional',
5572 silly resolved 'performance',
5572 silly resolved 'server',
5572 silly resolved 'speed',
5572 silly resolved 'util' ],
5572 silly resolved author:
5572 silly resolved { name: 'John-David Dalton',
5572 silly resolved email: 'john.david.dalton@gmail.com',
5572 silly resolved url: 'http://allyoucanleet.com/' },
5572 silly resolved bugs: { url: 'https://github.com/bestiejs/lodash/issues' },
5572 silly resolved repository: { type: 'git', url: 'https://github.com/bestiejs/lodash.git' },
5572 silly resolved bin: { lodash: './build.js' },
5572 silly resolved engines: [ 'node', 'rhino' ],
5572 silly resolved jam: { main: './dist/lodash.compat.js' },
5572 silly resolved readme: '# Lo-Dash <sup>v1.2.1</sup>\n\nA low-level utility library delivering consistency, [customization](https://github.com/bestiejs/lodash#custom-builds), [performance](http://lodash.com/benchmarks), and [extra features](https://github.com/bestiejs/lodash#features).\n\n## Download\n\n* Lo-Dash builds (for modern environments):<br>\n[Development](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.js) and\n[Production](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.min.js)\n\n* Lo-Dash compatibility builds (for legacy and modern environments):<br>\n[Development](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.compat.js) and\n[Production](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.compat.min.js)\n\n* Underscore compatibility builds:<br>\n[Development](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.underscore.js) and\n[Production](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.underscore.min.js)\n\n* CDN copies of ≤ v1.2.1’s builds are available on [cdnjs](http://cdnjs.com/) thanks to [CloudFlare](http://www.cloudflare.com/):<br>\n[Lo-Dash dev](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.js),\n[Lo-Dash prod](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.min.js),<br>\n[Lo-Dash compat-dev](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.compat.js),\n[Lo-Dash compat-prod](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.compat.min.js),<br>\n[Underscore compat-dev](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.underscore.js), and\n[Underscore compat-prod](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.underscore.min.js)\n\n* For optimal file size, [create a custom build](https://github.com/bestiejs/lodash#custom-builds) with only the features you need\n\n## Dive in\n\nWe’ve got [API docs](http://lodash.com/docs), [benchmarks](http://lodash.com/benchmarks), and [unit tests](http://lodash.com/tests).\n\nFor a list of upcoming features, check out our [roadmap](https://github.com/bestiejs/lodash/wiki/Roadmap).\n\n## Resources\n\nFor more information check out these articles, screencasts, and other videos over Lo-Dash:\n\n * Posts\n - [Say “Hello” to Lo-Dash](http://kitcambridge.be/blog/say-hello-to-lo-dash/)\n\n * Videos\n - [Introducing Lo-Dash](https://vimeo.com/44154599)\n - [Lo-Dash optimizations and custom builds](https://vimeo.com/44154601)\n - [Lo-Dash’s origin and why it’s a better utility belt](https://vimeo.com/44154600)\n - [Unit testing in Lo-Dash](https://vimeo.com/45865290)\n - [Lo-Dash’s approach to native method use](https://vimeo.com/48576012)\n - [CascadiaJS: Lo-Dash for a better utility belt](http://www.youtube.com/watch?v=dpPy4f_SeEk)\n\n## Features\n\n * AMD loader support ([RequireJS](http://requirejs.org/), [curl.js](https://github.com/cujojs/curl), 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”* defined](http://michaux.ca/articles/lazy-function-definition-pattern) methods\n * [_.cloneDeep](http://lodash.com/docs#cloneDeep) for deep cloning arrays and objects\n * [_.contains](http://lodash.com/docs#contains) accepts a `fromIndex` argument\n * [_.debounce](http://lodash.com/docs#debounce) and [_.throttle](http://lodash.com/docs#throttle) accept an `options` argument for more control\n * [_.createCallback](http://lodash.com/docs#createCallback) to customize how callback arguments are handled and support callback shorthands in mixins\n * [_.findIndex](http://lodash.com/docs#findIndex) and [_.findKey](http://lodash.com/docs#findKey) for finding indexes and keys of collections\n * [_.forEach](http://lodash.com/docs#forEach) is chainable and supports exiting iteration early\n * [_.forIn](http://lodash.com/docs#forIn) for iterating over an object’s own and inherited properties\n * [_.forOwn](http://lodash.com/docs#forOwn) for iterating over an object’s own properties\n * [_.isPlainObject](http://lodash.com/docs#isPlainObject) checks if values are created by the `Object` constructor\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 cross-environment behavior\n * [_.partial](http://lodash.com/docs#partial) and [_.partialRight](http://lodash.com/docs#partialRight) for partial application without `this` binding\n * [_.runInContext](http://lodash.com/docs#runInContext) for easier mocking and extended environment support\n * [_.support](http://lodash.com/docs#support) to flag environment features\n * [_.template](http://lodash.com/docs#template) supports [*“imports”* options](http://lodash.com/docs#templateSettings_imports), [ES6 template delimiters](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-7.8.6), and [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * [_.unzip](http://lodash.com/docs#unzip) as the inverse of [_.zip](http://lodash.com/docs#zip)\n * [_.where](http://lodash.com/docs#where) supports deep object comparisons\n * [_.clone](http://lodash.com/docs#clone), [_.omit](http://lodash.com/docs#omit), [_.pick](http://lodash.com/docs#pick),\n [and more…](http://lodash.com/docs "_.assign, _.cloneDeep, _.first, _.initial, _.isEqual, _.last, _.merge, _.rest") accept `callback` and `thisArg` arguments\n * [_.contains](http://lodash.com/docs#contains), [_.size](http://lodash.com/docs#size), [_.toArray](http://lodash.com/docs#toArray),\n [and more…](http://lodash.com/docs "_.at, _.countBy, _.every, _.filter, _.find, _.forEach, _.groupBy, _.invoke, _.map, _.max, _.min, _.pluck, _.reduce, _.reduceRight, _.reject, _.shuffle, _.some, _.sortBy, _.where") accept strings\n * [_.filter](http://lodash.com/docs#filter), [_.find](http://lodash.com/docs#find), [_.map](http://lodash.com/docs#map),\n [and more…](http://lodash.com/docs "_.countBy, _.every, _.first, _.groupBy, _.initial, _.last, _.max, _.min, _.reject, _.rest, _.some, _.sortBy, _.sortedIndex, _.uniq") support *“_.pluck”* and *“_.where”* `callback` shorthands\n\n## Support\n\nLo-Dash has been tested in at least Chrome 5~26, Firefox 2~20, IE 6-10, Opera 9.25~12, Safari 3-6, Node.js 0.4.8-0.10.5, Narwhal 0.3.2, PhantomJS 1.9.0, RingoJS 0.9, and Rhino 1.7RC5.\n\n## Custom builds\n\nCustom builds make it easy to create lightweight versions of Lo-Dash containing only the methods you need.\nTo top it off, we handle all method dependency and alias mapping for you.\nFor a more detailed summary over the differences between various builds, check out the [wiki entry](https://github.com/bestiejs/lodash/wiki/build-differences).\n\n * Backbone builds, with only methods required by Backbone, may be created using the `backbone` modifier argument.\n```bash\nlodash backbone\n```\n\n * Legacy builds, tailored for older environments without [ES5 support](http://es5.github.com/), may be created using the `legacy` modifier argument.\n```bash\nlodash legacy\n```\n\n * Modern builds, tailored for newer environments with ES5 support, may be created using the `modern` modifier argument.\n```bash\nlodash modern\n```\n\n * Mobile builds, without method compilation and most bug fixes for old browsers, may be created using the `mobile` modifier argument.\n```bash\nlodash mobile\n```\n\n * Strict builds, with `_.bindAll`, `_.defaults`, and `_.extend` in [strict mode](http://es5.github.com/#C), may be created using the `strict` modifier argument.\n```bash\nlodash strict\n```\n\n * Underscore builds, tailored for projects already using Underscore, may be created using the `underscore` modifier argument.\n```bash\nlodash underscore\n```\n\nCustom builds may be created using the following commands:\n\n * Use the `category` argument to pass comma separated categories of methods to include in the build.<br>\n Valid categories (case-insensitive) are *“arrays”*, *“chaining”*, *“collections”*, *“functions”*, *“objects”*, and *“utilities”*.\n```bash\nlodash category=collections,functions\nlodash category="collections, functions"\n```\n\n * Use the `exports` argument to pass comma separated names of ways to export the `LoDash` function.<br>\n Valid exports are *“amd”*, *“commonjs”*, *“global”*, *“node”*, and *“none”*.\n```bash\nlodash exports=amd,commonjs,node\nlodash exports="amd, commonjs, node"\n```\n\n * Use the `iife` argument to specify code to replace the immediately-invoked function expression that wraps Lo-Dash.\n```bash\nlodash iife="!function(window,undefined){%output%}(this)"\n```\n\n * Use the `include` argument to pass comma separated method/category names to include in the build.\n```bash\nlodash include=each,filter,map\nlodash include="each, filter, map"\n```\n\n * Use the `minus` argument to pass comma separated method/category names to remove from those included in the build.\n```bash\nlodash underscore minus=result,shuffle\nlodash underscore minus="result, shuffle"\n```\n\n * Use the `plus` argument to pass comma separated method/category names to add to those included in the build.\n```bash\nlodash backbone plus=random,template\nlodash backbone plus="random, template"\n```\n\n * Use the `template` argument to pass the file path pattern used to match template files to precompile.\n```bash\nlodash template="./*.jst"\n```\n\n * Use the `settings` argument to pass the template settings used when precompiling templates.\n```bash\nlodash settings="{interpolate:/\\{\\{([\\s\\S]+?)\\}\\}/g}"\n```\n\n * Use the `moduleId` argument to specify the AMD module ID of Lo-Dash, which defaults to “lodash”, used by precompiled templates.\n```bash\nlodash moduleId="underscore"\n```\n\nAll arguments, except `legacy` with `mobile`, `modern`, or `underscore`, may be combined.<br>\nUnless specified by `-o` or `--output`, all files created are saved to the current working directory.\n\nThe following options are also supported:\n\n * `-c`, `--stdout` ......... Write output to standard output\n * `-d`, `--debug` ........... Write only the non-minified development output\n * `-h`, `--help` ............. Display help information\n * `-m`, `--minify` ......... Write only the minified production output\n * `-o`, `--output` ......... Write output to a given path/filename\n * `-p`, `--source-map` .. Generate a source map for the minified output, using an optional source map URL\n * `-s`, `--silent` ......... Skip status updates normally logged to the console\n * `-V`, `--version` ....... Output current version of Lo-Dash\n\nThe `lodash` command-line utility is available when Lo-Dash is installed as a global package (i.e. `npm install -g lodash`).\n\n## Installation and usage\n\nIn browsers:\n\n```html\n<script src="lodash.js"></script>\n```\n\nUsing [`npm`](http://npmjs.org/):\n\n```bash\nnpm install lodash\n\nnpm install -g lodash\nnpm link lodash\n```\n\nTo avoid potential issues, update `npm` before installing Lo-Dash:\n\n```bash\nnpm install npm -g\n```\n\nIn [Node.js](http://nodejs.org/) and [RingoJS ≥ v0.8.0](http://ringojs.org/):\n\n```js\nvar _ = require(\'lodash\');\n\n// or as a drop-in replacement for Underscore\nvar _ = require(\'lodash/dist/lodash.underscore\');\n```\n\n**Note:** If Lo-Dash is installed globally, run [`npm link 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 [RingoJS ≤ v0.7.0](http://ringojs.org/):\n\n```js\nvar _ = require(\'lodash\')._;\n```\n\nIn [Rhino](http://www.mozilla.org/rhino/):\n\n```js\nload(\'lodash.js\');\n```\n\nIn an AMD loader like [RequireJS](http://requirejs.org/):\n\n```js\nrequire({\n \'paths\': {\n \'underscore\': \'path/to/lodash\'\n }\n},\n[\'underscore\'], function(_) {\n console.log(_.VERSION);\n});\n```\n\n## Release Notes\n\n### <sup>v1.2.1</sup>\n\n * Added Component package support\n * Updated the build utility to work with changes in GitHub’s API\n * Ensured `_.isPlainObject` works with objects created by `Object.create(null)`\n * Ensured *“isType”* methods return `false` for subclassed values\n * Ensured debounced functions, with `leading` and `trailing` calls enabled,<br>\n only perform trailing calls after they’re called more than once\n\nThe full changelog is available [here](https://github.com/bestiejs/lodash/wiki/Changelog).\n\n## BestieJS\n\nLo-Dash is part of the BestieJS *“Best in Class”* module collection. This means we promote solid browser/environment support, ES5+ precedents, unit testing, and plenty of documentation.\n\n## Author\n\n| [![twitter/jdalton](http://gravatar.com/avatar/299a3d891ff1920b69c364d061007043?s=70)](http://twitter.com/jdalton "Follow @jdalton on Twitter") |\n|---|\n| [John-David Dalton](http://allyoucanleet.com/) |\n\n## Contributors\n\n| [![twitter/kitcambridge](http://gravatar.com/avatar/6662a1d02f351b5ef2f8b4d815804661?s=70)](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [![twitter/mathias](http://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](http://twitter.com/mathias "Follow @mathias on Twitter") |\n|---|---|\n| [Kit Cambridge](http://kitcambridge.github.io/) | [Mathias Bynens](http://mathiasbynens.be/) |\n',
5572 silly resolved readmeFilename: 'README.md',
5572 silly resolved _id: 'lodash@1.2.1',
5572 silly resolved _from: 'lodash@~1.2.1' },
5572 silly resolved { name: 'mute-stream',
5572 silly resolved version: '0.0.3',
5572 silly resolved main: 'mute.js',
5572 silly resolved directories: { test: 'test' },
5572 silly resolved devDependencies: { tap: '~0.2.5' },
5572 silly resolved scripts: { test: 'tap test/*.js' },
5572 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/mute-stream' },
5572 silly resolved keywords: [ 'mute', 'stream', 'pipe' ],
5572 silly resolved author:
5572 silly resolved { name: 'Isaac Z. Schlueter',
5572 silly resolved email: 'i@izs.me',
5572 silly resolved url: 'http://blog.izs.me/' },
5572 silly resolved license: 'BSD',
5572 silly resolved description: 'Bytes go in, but they don\'t come out (when muted).',
5572 silly resolved readme: '# mute-stream\n\nBytes go in, but they don\'t come out (when muted).\n\nThis is a basic pass-through stream, but when muted, the bytes are\nsilently dropped, rather than being passed through.\n\n## Usage\n\n```javascript\nvar MuteStream = require(\'mute-stream\')\n\nvar ms = new MuteStream(options)\n\nms.pipe(process.stdout)\nms.write(\'foo\') // writes \'foo\' to stdout\nms.mute()\nms.write(\'bar\') // does not write \'bar\'\nms.unmute()\nms.write(\'baz\') // writes \'baz\' to stdout\n\n// can also be used to mute incoming data\nvar ms = new MuteStream\ninput.pipe(ms)\n\nms.on(\'data\', function (c) {\n console.log(\'data: \' + c)\n})\n\ninput.emit(\'data\', \'foo\') // logs \'foo\'\nms.mute()\ninput.emit(\'data\', \'bar\') // does not log \'bar\'\nms.unmute()\ninput.emit(\'data\', \'baz\') // logs \'baz\'\n```\n\n## Options\n\nAll options are optional.\n\n* `replace` Set to a string to replace each character with the\n specified string when muted. (So you can show `****` instead of the\n password, for example.)\n\n## ms.mute()\n\nSet `muted` to `true`. Turns `.write()` into a no-op.\n\n## ms.unmute()\n\nSet `muted` to `false`\n\n## ms.isTTY\n\nTrue if the pipe destination is a TTY, or if the incoming pipe source is\na TTY.\n\n## Other stream methods...\n\nThe other standard readable and writable stream methods are all\navailable. The MuteStream object acts as a facade to its pipe source\nand destination.\n',
5572 silly resolved readmeFilename: 'README.md',
5572 silly resolved bugs: { url: 'https://github.com/isaacs/mute-stream/issues' },
5572 silly resolved _id: 'mute-stream@0.0.3',
5572 silly resolved _from: 'mute-stream@0.0.3' },
5572 silly resolved { name: 'cli-color',
5572 silly resolved version: '0.2.2',
5572 silly resolved description: 'Colors, formatting and other tools for the console',
5572 silly resolved keywords:
5572 silly resolved [ 'ansi',
5572 silly resolved 'color',
5572 silly resolved 'console',
5572 silly resolved 'terminal',
5572 silly resolved 'cli',
5572 silly resolved 'shell',
5572 silly resolved 'log',
5572 silly resolved 'logging',
5572 silly resolved 'xterm' ],
5572 silly resolved author:
5572 silly resolved { name: 'Mariusz Nowak',
5572 silly resolved email: 'medikoo+cli-color@medikoo.com',
5572 silly resolved url: 'http://www.medikoo.com/' },
5572 silly resolved main: 'lib',
5572 silly resolved repository: { type: 'git', url: 'git://github.com/medikoo/cli-color.git' },
5572 silly resolved bugs:
5572 silly resolved { url: 'https://github.com/medikoo/cli-color/issues',
5572 silly resolved email: 'medikoo+cli-color@medikoo.com' },
5572 silly resolved engines: { node: '>=0.1.103' },
5572 silly resolved dependencies: { 'es5-ext': '~0.9.1', memoizee: '0.2.x' },
5572 silly resolved devDependencies: { clock: '0.1.x', tad: '0.1.x' },
5572 silly resolved scripts: { test: 'node ./node_modules/tad/bin/tad lib' },
5572 silly resolved licence: 'MIT',
5572 silly resolved readme: '# cli-color - Yet another colors and formatting for the console solution\n\nColors, formatting and other goodies for the console. This package won\'t mess with built-ins and provides neat way to predefine formatting patterns, see below.\n\n## Installation\n\n\t$ npm install cli-color\n\n## Usage\n\nUsage:\n\n```javascript\nvar clc = require(\'cli-color\');\n```\n\nOutput colored text:\n\n```javascript\nconsole.log(clc.red(\'Text in red\'));\n```\n\nStyles can be mixed:\n\n```javascript\nconsole.log(clc.red.bgWhite.underline(\'Underlined red text on white background.\'));\n```\n\nStyled text can be mixed with unstyled:\n\n```javascript\nconsole.log(clc.red(\'red\') + \' plain \' + clc.blue(\'blue\'));\n```\n\n__Best way is to predefine needed stylings and then use it__:\n\n```javascript\nvar error = clc.red.bold;\nvar warn = clc.yellow;\nvar notice = clc.blue;\n\nconsole.log(error(\'Error!\'));\nconsole.log(warn(\'Warning\'));\nconsole.log(notice(\'Notice\'));\n```\n\nSupported are all ANSI colors and styles:\n\n#### Styles\n\nStyles will display correctly if font used in your console supports them.\n\n* bold\n* italic\n* underline\n* inverse\n* strike\n\n#### Colors\n\n<table>\n <thead><th>Foreground</th><th>Background</th><th width="30"></th></thead>\n <tbody>\n <tr><td>black</td><td>bgBlack</td><td><img src="http://medyk.org/colors/000000.png" width="30" height="30" /></td></tr>\n <tr><td>red</td><td>bgRed</td><td><img src="http://medyk.org/colors/800000.png" width="30" height="30" /></td></tr>\n <tr><td>green</td><td>bgGreen</td><td><img src="http://medyk.org/colors/008000.png" width="30" height="30" /></td></tr>\n <tr><td>yellow</td><td>bgYellow</td><td><img src="http://medyk.org/colors/808000.png" width="30" height="30" /></td></tr>\n <tr><td>blue</td><td>bgBlue</td><td><img src="http://medyk.org/colors/000080.png" width="30" height="30" /></td></tr>\n <tr><td>magenta</td><td>bgMagenta</td><td><img src="http://medyk.org/colors/800080.png" width="30" height="30" /></td></tr>\n <tr><td>cyan</td><td>bgCyan</td><td><img src="http://medyk.org/colors/008080.png" width="30" height="30" /></td></tr>\n <tr><td>white</td><td>bgWhite</td><td><img src="http://medyk.org/colors/c0c0c0.png" width="30" height="30" /></td></tr>\n </tbody>\n</table>\n\n##### Bright variants\n\n<table>\n <thead><th>Foreground</th><th>Background</th><th width="30"></th></thead>\n <tbody>\n <tr><td>blackBright</td><td>bgBlackBright</td><td><img src="http://medyk.org/colors/808080.png" width="30" height="30" /></td></tr>\n <tr><td>redBright</td><td>bgRedBright</td><td><img src="http://medyk.org/colors/ff0000.png" width="30" height="30" /></td></tr>\n <tr><td>greenBright</td><td>bgGreenBright</td><td><img src="http://medyk.org/colors/00ff00.png" width="30" height="30" /></td></tr>\n <tr><td>yellowBright</td><td>bgYellowBright</td><td><img src="http://medyk.org/colors/ffff00.png" width="30" height="30" /></td></tr>\n <tr><td>blueBright</td><td>bgBlueBright</td><td><img src="http://medyk.org/colors/0000ff.png" width="30" height="30" /></td></tr>\n <tr><td>magentaBright</td><td>bgMagentaBright</td><td><img src="http://medyk.org/colors/ff00ff.png" width="30" height="30" /></td></tr>\n <tr><td>cyanBright</td><td>bgCyanBright</td><td><img src="http://medyk.org/colors/00ffff.png" width="30" height="30" /></td></tr>\n <tr><td>whiteBright</td><td>bgWhiteBright</td><td><img src="http://medyk.org/colors/ffffff.png" width="30" height="30" /></td></tr>\n </tbody>\n</table>\n\n##### xTerm colors (256 colors table)\n\n__Not supported on Windows and some terminals__. However if used in not supported environment, the closest color from basic (16 colors) palette is chosen.\n\nUsage:\n\n```javascript\nvar msg = clc.xterm(202).bgXterm(236);\nconsole.log(msg(\'Orange text on dark gray background\'));\n```\n\nColor table:\n\n<table>\n <tr>\n <td>0</td><td width="20"><img src="http://medyk.org/colors/000000.png" width="20" height="20" /></td>\n <td>1</td><td width="20"><img src="http://medyk.org/colors/800000.png" width="20" height="20" /></td>\n <td>2</td><td width="20"><img src="http://medyk.org/colors/008000.png" width="20" height="20" /></td>\n <td>3</td><td width="20"><img src="http://medyk.org/colors/808000.png" width="20" height="20" /></td>\n <td>4</td><td width="20"><img src="http://medyk.org/colors/000080.png" width="20" height="20" /></td>\n <td>5</td><td width="20"><img src="http://medyk.org/colors/800080.png" width="20" height="20" /></td>\n <td>6</td><td width="20"><img src="http://medyk.org/colors/008080.png" width="20" height="20" /></td>\n <td>7</td><td width="20"><img src="http://medyk.org/colors/c0c0c0.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>8</td><td width="20"><img src="http://medyk.org/colors/808080.png" width="20" height="20" /></td>\n <td>9</td><td width="20"><img src="http://medyk.org/colors/ff0000.png" width="20" height="20" /></td>\n <td>10</td><td width="20"><img src="http://medyk.org/colors/00ff00.png" width="20" height="20" /></td>\n <td>11</td><td width="20"><img src="http://medyk.org/colors/ffff00.png" width="20" height="20" /></td>\n <td>12</td><td width="20"><img src="http://medyk.org/colors/0000ff.png" width="20" height="20" /></td>\n <td>13</td><td width="20"><img src="http://medyk.org/colors/ff00ff.png" width="20" height="20" /></td>\n <td>14</td><td width="20"><img src="http://medyk.org/colors/00ffff.png" width="20" height="20" /></td>\n <td>15</td><td width="20"><img src="http://medyk.org/colors/ffffff.png" width="20" height="20" /></td>\n </tr>\n\n <tr>\n <td>16</td><td width="20"><img src="http://medyk.org/colors/000000.png" width="20" height="20" /></td>\n <td>17</td><td width="20"><img src="http://medyk.org/colors/00005f.png" width="20" height="20" /></td>\n <td>18</td><td width="20"><img src="http://medyk.org/colors/000087.png" width="20" height="20" /></td>\n <td>19</td><td width="20"><img src="http://medyk.org/colors/0000af.png" width="20" height="20" /></td>\n <td>20</td><td width="20"><img src="http://medyk.org/colors/0000d7.png" width="20" height="20" /></td>\n <td>21</td><td width="20"><img src="http://medyk.org/colors/0000ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>22</td><td width="20"><img src="http://medyk.org/colors/005f00.png" width="20" height="20" /></td>\n <td>23</td><td width="20"><img src="http://medyk.org/colors/005f5f.png" width="20" height="20" /></td>\n <td>24</td><td width="20"><img src="http://medyk.org/colors/005f87.png" width="20" height="20" /></td>\n <td>25</td><td width="20"><img src="http://medyk.org/colors/005faf.png" width="20" height="20" /></td>\n <td>26</td><td width="20"><img src="http://medyk.org/colors/005fd7.png" width="20" height="20" /></td>\n <td>27</td><td width="20"><img src="http://medyk.org/colors/005fff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>28</td><td width="20"><img src="http://medyk.org/colors/008700.png" width="20" height="20" /></td>\n <td>29</td><td width="20"><img src="http://medyk.org/colors/00875f.png" width="20" height="20" /></td>\n <td>30</td><td width="20"><img src="http://medyk.org/colors/008787.png" width="20" height="20" /></td>\n <td>31</td><td width="20"><img src="http://medyk.org/colors/0087af.png" width="20" height="20" /></td>\n <td>32</td><td width="20"><img src="http://medyk.org/colors/0087d7.png" width="20" height="20" /></td>\n <td>33</td><td width="20"><img src="http://medyk.org/colors/0087ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>34</td><td width="20"><img src="http://medyk.org/colors/00af00.png" width="20" height="20" /></td>\n <td>35</td><td width="20"><img src="http://medyk.org/colors/00af5f.png" width="20" height="20" /></td>\n <td>36</td><td width="20"><img src="http://medyk.org/colors/00af87.png" width="20" height="20" /></td>\n <td>37</td><td width="20"><img src="http://medyk.org/colors/00afaf.png" width="20" height="20" /></td>\n <td>38</td><td width="20"><img src="http://medyk.org/colors/00afd7.png" width="20" height="20" /></td>\n <td>39</td><td width="20"><img src="http://medyk.org/colors/00afff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>40</td><td width="20"><img src="http://medyk.org/colors/00d700.png" width="20" height="20" /></td>\n <td>41</td><td width="20"><img src="http://medyk.org/colors/00d75f.png" width="20" height="20" /></td>\n <td>42</td><td width="20"><img src="http://medyk.org/colors/00d787.png" width="20" height="20" /></td>\n <td>43</td><td width="20"><img src="http://medyk.org/colors/00d7af.png" width="20" height="20" /></td>\n <td>44</td><td width="20"><img src="http://medyk.org/colors/00d7d7.png" width="20" height="20" /></td>\n <td>45</td><td width="20"><img src="http://medyk.org/colors/00d7ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>46</td><td width="20"><img src="http://medyk.org/colors/00ff00.png" width="20" height="20" /></td>\n <td>47</td><td width="20"><img src="http://medyk.org/colors/00ff5f.png" width="20" height="20" /></td>\n <td>48</td><td width="20"><img src="http://medyk.org/colors/00ff87.png" width="20" height="20" /></td>\n <td>49</td><td width="20"><img src="http://medyk.org/colors/00ffaf.png" width="20" height="20" /></td>\n <td>50</td><td width="20"><img src="http://medyk.org/colors/00ffd7.png" width="20" height="20" /></td>\n <td>51</td><td width="20"><img src="http://medyk.org/colors/00ffff.png" width="20" height="20" /></td>\n </tr>\n\n <tr>\n <td>52</td><td width="20"><img src="http://medyk.org/colors/5f0000.png" width="20" height="20" /></td>\n <td>53</td><td width="20"><img src="http://medyk.org/colors/5f005f.png" width="20" height="20" /></td>\n <td>54</td><td width="20"><img src="http://medyk.org/colors/5f0087.png" width="20" height="20" /></td>\n <td>55</td><td width="20"><img src="http://medyk.org/colors/5f00af.png" width="20" height="20" /></td>\n <td>56</td><td width="20"><img src="http://medyk.org/colors/5f00d7.png" width="20" height="20" /></td>\n <td>57</td><td width="20"><img src="http://medyk.org/colors/5f00ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>58</td><td width="20"><img src="http://medyk.org/colors/5f5f00.png" width="20" height="20" /></td>\n <td>59</td><td width="20"><img src="http://medyk.org/colors/5f5f5f.png" width="20" height="20" /></td>\n <td>60</td><td width="20"><img src="http://medyk.org/colors/5f5f87.png" width="20" height="20" /></td>\n <td>61</td><td width="20"><img src="http://medyk.org/colors/5f5faf.png" width="20" height="20" /></td>\n <td>62</td><td width="20"><img src="http://medyk.org/colors/5f5fd7.png" width="20" height="20" /></td>\n <td>63</td><td width="20"><img src="http://medyk.org/colors/5f5fff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>64</td><td width="20"><img src="http://medyk.org/colors/5f8700.png" width="20" height="20" /></td>\n <td>65</td><td width="20"><img src="http://medyk.org/colors/5f875f.png" width="20" height="20" /></td>\n <td>66</td><td width="20"><img src="http://medyk.org/colors/5f8787.png" width="20" height="20" /></td>\n <td>67</td><td width="20"><img src="http://medyk.org/colors/5f87af.png" width="20" height="20" /></td>\n <td>68</td><td width="20"><img src="http://medyk.org/colors/5f87d7.png" width="20" height="20" /></td>\n <td>69</td><td width="20"><img src="http://medyk.org/colors/5f87ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>70</td><td width="20"><img src="http://medyk.org/colors/5faf00.png" width="20" height="20" /></td>\n <td>71</td><td width="20"><img src="http://medyk.org/colors/5faf5f.png" width="20" height="20" /></td>\n <td>72</td><td width="20"><img src="http://medyk.org/colors/5faf87.png" width="20" height="20" /></td>\n <td>73</td><td width="20"><img src="http://medyk.org/colors/5fafaf.png" width="20" height="20" /></td>\n <td>74</td><td width="20"><img src="http://medyk.org/colors/5fafd7.png" width="20" height="20" /></td>\n <td>75</td><td width="20"><img src="http://medyk.org/colors/5fafff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>76</td><td width="20"><img src="http://medyk.org/colors/5fd700.png" width="20" height="20" /></td>\n <td>77</td><td width="20"><img src="http://medyk.org/colors/5fd75f.png" width="20" height="20" /></td>\n <td>78</td><td width="20"><img src="http://medyk.org/colors/5fd787.png" width="20" height="20" /></td>\n <td>79</td><td width="20"><img src="http://medyk.org/colors/5fd7af.png" width="20" height="20" /></td>\n <td>80</td><td width="20"><img src="http://medyk.org/colors/5fd7d7.png" width="20" height="20" /></td>\n <td>81</td><td width="20"><img src="http://medyk.org/colors/5fd7ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>82</td><td width="20"><img src="http://medyk.org/colors/5fff00.png" width="20" height="20" /></td>\n <td>83</td><td width="20"><img src="http://medyk.org/colors/5fff5f.png" width="20" height="20" /></td>\n <td>84</td><td width="20"><img src="http://medyk.org/colors/5fff87.png" width="20" height="20" /></td>\n <td>85</td><td width="20"><img src="http://medyk.org/colors/5fffaf.png" width="20" height="20" /></td>\n <td>86</td><td width="20"><img src="http://medyk.org/colors/5fffd7.png" width="20" height="20" /></td>\n <td>87</td><td width="20"><img src="http://medyk.org/colors/5fffff.png" width="20" height="20" /></td>\n </tr>\n\n <tr>\n <td>88</td><td width="20"><img src="http://medyk.org/colors/870000.png" width="20" height="20" /></td>\n <td>89</td><td width="20"><img src="http://medyk.org/colors/87005f.png" width="20" height="20" /></td>\n <td>90</td><td width="20"><img src="http://medyk.org/colors/870087.png" width="20" height="20" /></td>\n <td>91</td><td width="20"><img src="http://medyk.org/colors/8700af.png" width="20" height="20" /></td>\n <td>92</td><td width="20"><img src="http://medyk.org/colors/8700d7.png" width="20" height="20" /></td>\n <td>93</td><td width="20"><img src="http://medyk.org/colors/8700ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>94</td><td width="20"><img src="http://medyk.org/colors/875f00.png" width="20" height="20" /></td>\n <td>95</td><td width="20"><img src="http://medyk.org/colors/875f5f.png" width="20" height="20" /></td>\n <td>96</td><td width="20"><img src="http://medyk.org/colors/875f87.png" width="20" height="20" /></td>\n <td>97</td><td width="20"><img src="http://medyk.org/colors/875faf.png" width="20" height="20" /></td>\n <td>98</td><td width="20"><img src="http://medyk.org/colors/875fd7.png" width="20" height="20" /></td>\n <td>99</td><td width="20"><img src="http://medyk.org/colors/875fff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>100</td><td width="20"><img src="http://medyk.org/colors/878700.png" width="20" height="20" /></td>\n <td>101</td><td width="20"><img src="http://medyk.org/colors/87875f.png" width="20" height="20" /></td>\n <td>102</td><td width="20"><img src="http://medyk.org/colors/878787.png" width="20" height="20" /></td>\n <td>103</td><td width="20"><img src="http://medyk.org/colors/8787af.png" width="20" height="20" /></td>\n <td>104</td><td width="20"><img src="http://medyk.org/colors/8787d7.png" width="20" height="20" /></td>\n <td>105</td><td width="20"><img src="http://medyk.org/colors/8787ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>106</td><td width="20"><img src="http://medyk.org/colors/87af00.png" width="20" height="20" /></td>\n <td>107</td><td width="20"><img src="http://medyk.org/colors/87af5f.png" width="20" height="20" /></td>\n <td>108</td><td width="20"><img src="http://medyk.org/colors/87af87.png" width="20" height="20" /></td>\n <td>109</td><td width="20"><img src="http://medyk.org/colors/87afaf.png" width="20" height="20" /></td>\n <td>110</td><td width="20"><img src="http://medyk.org/colors/87afd7.png" width="20" height="20" /></td>\n <td>111</td><td width="20"><img src="http://medyk.org/colors/87afff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>112</td><td width="20"><img src="http://medyk.org/colors/87d700.png" width="20" height="20" /></td>\n <td>113</td><td width="20"><img src="http://medyk.org/colors/87d75f.png" width="20" height="20" /></td>\n <td>114</td><td width="20"><img src="http://medyk.org/colors/87d787.png" width="20" height="20" /></td>\n <td>115</td><td width="20"><img src="http://medyk.org/colors/87d7af.png" width="20" height="20" /></td>\n <td>116</td><td width="20"><img src="http://medyk.org/colors/87d7d7.png" width="20" height="20" /></td>\n <td>117</td><td width="20"><img src="http://medyk.org/colors/87d7ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>118</td><td width="20"><img src="http://medyk.org/colors/87ff00.png" width="20" height="20" /></td>\n <td>119</td><td width="20"><img src="http://medyk.org/colors/87ff5f.png" width="20" height="20" /></td>\n <td>120</td><td width="20"><img src="http://medyk.org/colors/87ff87.png" width="20" height="20" /></td>\n <td>121</td><td width="20"><img src="http://medyk.org/colors/87ffaf.png" width="20" height="20" /></td>\n <td>122</td><td width="20"><img src="http://medyk.org/colors/87ffd7.png" width="20" height="20" /></td>\n <td>123</td><td width="20"><img src="http://medyk.org/colors/87ffff.png" width="20" height="20" /></td>\n </tr>\n\n <tr>\n <td>124</td><td width="20"><img src="http://medyk.org/colors/af0000.png" width="20" height="20" /></td>\n <td>125</td><td width="20"><img src="http://medyk.org/colors/af005f.png" width="20" height="20" /></td>\n <td>126</td><td width="20"><img src="http://medyk.org/colors/af0087.png" width="20" height="20" /></td>\n <td>127</td><td width="20"><img src="http://medyk.org/colors/af00af.png" width="20" height="20" /></td>\n <td>128</td><td width="20"><img src="http://medyk.org/colors/af00d7.png" width="20" height="20" /></td>\n <td>129</td><td width="20"><img src="http://medyk.org/colors/af00ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>130</td><td width="20"><img src="http://medyk.org/colors/af5f00.png" width="20" height="20" /></td>\n <td>131</td><td width="20"><img src="http://medyk.org/colors/af5f5f.png" width="20" height="20" /></td>\n <td>132</td><td width="20"><img src="http://medyk.org/colors/af5f87.png" width="20" height="20" /></td>\n <td>133</td><td width="20"><img src="http://medyk.org/colors/af5faf.png" width="20" height="20" /></td>\n <td>134</td><td width="20"><img src="http://medyk.org/colors/af5fd7.png" width="20" height="20" /></td>\n <td>135</td><td width="20"><img src="http://medyk.org/colors/af5fff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>136</td><td width="20"><img src="http://medyk.org/colors/af8700.png" width="20" height="20" /></td>\n <td>137</td><td width="20"><img src="http://medyk.org/colors/af875f.png" width="20" height="20" /></td>\n <td>138</td><td width="20"><img src="http://medyk.org/colors/af8787.png" width="20" height="20" /></td>\n <td>139</td><td width="20"><img src="http://medyk.org/colors/af87af.png" width="20" height="20" /></td>\n <td>140</td><td width="20"><img src="http://medyk.org/colors/af87d7.png" width="20" height="20" /></td>\n <td>141</td><td width="20"><img src="http://medyk.org/colors/af87ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>142</td><td width="20"><img src="http://medyk.org/colors/afaf00.png" width="20" height="20" /></td>\n <td>143</td><td width="20"><img src="http://medyk.org/colors/afaf5f.png" width="20" height="20" /></td>\n <td>144</td><td width="20"><img src="http://medyk.org/colors/afaf87.png" width="20" height="20" /></td>\n <td>145</td><td width="20"><img src="http://medyk.org/colors/afafaf.png" width="20" height="20" /></td>\n <td>146</td><td width="20"><img src="http://medyk.org/colors/afafd7.png" width="20" height="20" /></td>\n <td>147</td><td width="20"><img src="http://medyk.org/colors/afafff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>148</td><td width="20"><img src="http://medyk.org/colors/afd700.png" width="20" height="20" /></td>\n <td>149</td><td width="20"><img src="http://medyk.org/colors/afd75f.png" width="20" height="20" /></td>\n <td>150</td><td width="20"><img src="http://medyk.org/colors/afd787.png" width="20" height="20" /></td>\n <td>151</td><td width="20"><img src="http://medyk.org/colors/afd7af.png" width="20" height="20" /></td>\n <td>152</td><td width="20"><img src="http://medyk.org/colors/afd7d7.png" width="20" height="20" /></td>\n <td>153</td><td width="20"><img src="http://medyk.org/colors/afd7ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>154</td><td width="20"><img src="http://medyk.org/colors/afff00.png" width="20" height="20" /></td>\n <td>155</td><td width="20"><img src="http://medyk.org/colors/afff5f.png" width="20" height="20" /></td>\n <td>156</td><td width="20"><img src="http://medyk.org/colors/afff87.png" width="20" height="20" /></td>\n <td>157</td><td width="20"><img src="http://medyk.org/colors/afffaf.png" width="20" height="20" /></td>\n <td>158</td><td width="20"><img src="http://medyk.org/colors/afffd7.png" width="20" height="20" /></td>\n <td>159</td><td width="20"><img src="http://medyk.org/colors/afffff.png" width="20" height="20" /></td>\n </tr>\n\n <tr>\n <td>160</td><td width="20"><img src="http://medyk.org/colors/d70000.png" width="20" height="20" /></td>\n <td>161</td><td width="20"><img src="http://medyk.org/colors/d7005f.png" width="20" height="20" /></td>\n <td>162</td><td width="20"><img src="http://medyk.org/colors/d70087.png" width="20" height="20" /></td>\n <td>163</td><td width="20"><img src="http://medyk.org/colors/d700af.png" width="20" height="20" /></td>\n <td>164</td><td width="20"><img src="http://medyk.org/colors/d700d7.png" width="20" height="20" /></td>\n <td>165</td><td width="20"><img src="http://medyk.org/colors/d700ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>166</td><td width="20"><img src="http://medyk.org/colors/d75f00.png" width="20" height="20" /></td>\n <td>167</td><td width="20"><img src="http://medyk.org/colors/d75f5f.png" width="20" height="20" /></td>\n <td>168</td><td width="20"><img src="http://medyk.org/colors/d75f87.png" width="20" height="20" /></td>\n <td>169</td><td width="20"><img src="http://medyk.org/colors/d75faf.png" width="20" height="20" /></td>\n <td>170</td><td width="20"><img src="http://medyk.org/colors/d75fd7.png" width="20" height="20" /></td>\n <td>171</td><td width="20"><img src="http://medyk.org/colors/d75fff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>172</td><td width="20"><img src="http://medyk.org/colors/d78700.png" width="20" height="20" /></td>\n <td>173</td><td width="20"><img src="http://medyk.org/colors/d7875f.png" width="20" height="20" /></td>\n <td>174</td><td width="20"><img src="http://medyk.org/colors/d78787.png" width="20" height="20" /></td>\n <td>175</td><td width="20"><img src="http://medyk.org/colors/d787af.png" width="20" height="20" /></td>\n <td>176</td><td width="20"><img src="http://medyk.org/colors/d787d7.png" width="20" height="20" /></td>\n <td>177</td><td width="20"><img src="http://medyk.org/colors/d787ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>178</td><td width="20"><img src="http://medyk.org/colors/d7af00.png" width="20" height="20" /></td>\n <td>179</td><td width="20"><img src="http://medyk.org/colors/d7af5f.png" width="20" height="20" /></td>\n <td>180</td><td width="20"><img src="http://medyk.org/colors/d7af87.png" width="20" height="20" /></td>\n <td>181</td><td width="20"><img src="http://medyk.org/colors/d7afaf.png" width="20" height="20" /></td>\n <td>182</td><td width="20"><img src="http://medyk.org/colors/d7afd7.png" width="20" height="20" /></td>\n <td>183</td><td width="20"><img src="http://medyk.org/colors/d7afff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>184</td><td width="20"><img src="http://medyk.org/colors/d7d700.png" width="20" height="20" /></td>\n <td>185</td><td width="20"><img src="http://medyk.org/colors/d7d75f.png" width="20" height="20" /></td>\n <td>186</td><td width="20"><img src="http://medyk.org/colors/d7d787.png" width="20" height="20" /></td>\n <td>187</td><td width="20"><img src="http://medyk.org/colors/d7d7af.png" width="20" height="20" /></td>\n <td>188</td><td width="20"><img src="http://medyk.org/colors/d7d7d7.png" width="20" height="20" /></td>\n <td>189</td><td width="20"><img src="http://medyk.org/colors/d7d7ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>190</td><td width="20"><img src="http://medyk.org/colors/d7ff00.png" width="20" height="20" /></td>\n <td>191</td><td width="20"><img src="http://medyk.org/colors/d7ff5f.png" width="20" height="20" /></td>\n <td>192</td><td width="20"><img src="http://medyk.org/colors/d7ff87.png" width="20" height="20" /></td>\n <td>193</td><td width="20"><img src="http://medyk.org/colors/d7ffaf.png" width="20" height="20" /></td>\n <td>194</td><td width="20"><img src="http://medyk.org/colors/d7ffd7.png" width="20" height="20" /></td>\n <td>195</td><td width="20"><img src="http://medyk.org/colors/d7ffff.png" width="20" height="20" /></td>\n </tr>\n\n <tr>\n <td>196</td><td width="20"><img src="http://medyk.org/colors/ff0000.png" width="20" height="20" /></td>\n <td>197</td><td width="20"><img src="http://medyk.org/colors/ff005f.png" width="20" height="20" /></td>\n <td>198</td><td width="20"><img src="http://medyk.org/colors/ff0087.png" width="20" height="20" /></td>\n <td>199</td><td width="20"><img src="http://medyk.org/colors/ff00af.png" width="20" height="20" /></td>\n <td>200</td><td width="20"><img src="http://medyk.org/colors/ff00d7.png" width="20" height="20" /></td>\n <td>201</td><td width="20"><img src="http://medyk.org/colors/ff00ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>202</td><td width="20"><img src="http://medyk.org/colors/ff5f00.png" width="20" height="20" /></td>\n <td>203</td><td width="20"><img src="http://medyk.org/colors/ff5f5f.png" width="20" height="20" /></td>\n <td>204</td><td width="20"><img src="http://medyk.org/colors/ff5f87.png" width="20" height="20" /></td>\n <td>205</td><td width="20"><img src="http://medyk.org/colors/ff5faf.png" width="20" height="20" /></td>\n <td>206</td><td width="20"><img src="http://medyk.org/colors/ff5fd7.png" width="20" height="20" /></td>\n <td>207</td><td width="20"><img src="http://medyk.org/colors/ff5fff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>208</td><td width="20"><img src="http://medyk.org/colors/ff8700.png" width="20" height="20" /></td>\n <td>209</td><td width="20"><img src="http://medyk.org/colors/ff875f.png" width="20" height="20" /></td>\n <td>210</td><td width="20"><img src="http://medyk.org/colors/ff8787.png" width="20" height="20" /></td>\n <td>211</td><td width="20"><img src="http://medyk.org/colors/ff87af.png" width="20" height="20" /></td>\n <td>212</td><td width="20"><img src="http://medyk.org/colors/ff87d7.png" width="20" height="20" /></td>\n <td>213</td><td width="20"><img src="http://medyk.org/colors/ff87ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>214</td><td width="20"><img src="http://medyk.org/colors/ffaf00.png" width="20" height="20" /></td>\n <td>215</td><td width="20"><img src="http://medyk.org/colors/ffaf5f.png" width="20" height="20" /></td>\n <td>216</td><td width="20"><img src="http://medyk.org/colors/ffaf87.png" width="20" height="20" /></td>\n <td>217</td><td width="20"><img src="http://medyk.org/colors/ffafaf.png" width="20" height="20" /></td>\n <td>218</td><td width="20"><img src="http://medyk.org/colors/ffafd7.png" width="20" height="20" /></td>\n <td>219</td><td width="20"><img src="http://medyk.org/colors/ffafff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>220</td><td width="20"><img src="http://medyk.org/colors/ffd700.png" width="20" height="20" /></td>\n <td>221</td><td width="20"><img src="http://medyk.org/colors/ffd75f.png" width="20" height="20" /></td>\n <td>222</td><td width="20"><img src="http://medyk.org/colors/ffd787.png" width="20" height="20" /></td>\n <td>223</td><td width="20"><img src="http://medyk.org/colors/ffd7af.png" width="20" height="20" /></td>\n <td>224</td><td width="20"><img src="http://medyk.org/colors/ffd7d7.png" width="20" height="20" /></td>\n <td>225</td><td width="20"><img src="http://medyk.org/colors/ffd7ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>226</td><td width="20"><img src="http://medyk.org/colors/ffff00.png" width="20" height="20" /></td>\n <td>227</td><td width="20"><img src="http://medyk.org/colors/ffff5f.png" width="20" height="20" /></td>\n <td>228</td><td width="20"><img src="http://medyk.org/colors/ffff87.png" width="20" height="20" /></td>\n <td>229</td><td width="20"><img src="http://medyk.org/colors/ffffaf.png" width="20" height="20" /></td>\n <td>230</td><td width="20"><img src="http://medyk.org/colors/ffffd7.png" width="20" height="20" /></td>\n <td>231</td><td width="20"><img src="http://medyk.org/colors/ffffff.png" width="20" height="20" /></td>\n </tr>\n\n <tr>\n <td>232</td><td width="20"><img src="http://medyk.org/colors/080808.png" width="20" height="20" /></td>\n <td>233</td><td width="20"><img src="http://medyk.org/colors/121212.png" width="20" height="20" /></td>\n <td>234</td><td width="20"><img src="http://medyk.org/colors/1c1c1c.png" width="20" height="20" /></td>\n <td>235</td><td width="20"><img src="http://medyk.org/colors/262626.png" width="20" height="20" /></td>\n <td>236</td><td width="20"><img src="http://medyk.org/colors/303030.png" width="20" height="20" /></td>\n <td>237</td><td width="20"><img src="http://medyk.org/colors/3a3a3a.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>238</td><td width="20"><img src="http://medyk.org/colors/444444.png" width="20" height="20" /></td>\n <td>239</td><td width="20"><img src="http://medyk.org/colors/4e4e4e.png" width="20" height="20" /></td>\n <td>240</td><td width="20"><img src="http://medyk.org/colors/585858.png" width="20" height="20" /></td>\n <td>241</td><td width="20"><img src="http://medyk.org/colors/626262.png" width="20" height="20" /></td>\n <td>242</td><td width="20"><img src="http://medyk.org/colors/6c6c6c.png" width="20" height="20" /></td>\n <td>243</td><td width="20"><img src="http://medyk.org/colors/767676.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>244</td><td width="20"><img src="http://medyk.org/colors/808080.png" width="20" height="20" /></td>\n <td>245</td><td width="20"><img src="http://medyk.org/colors/8a8a8a.png" width="20" height="20" /></td>\n <td>246</td><td width="20"><img src="http://medyk.org/colors/949494.png" width="20" height="20" /></td>\n <td>247</td><td width="20"><img src="http://medyk.org/colors/9e9e9e.png" width="20" height="20" /></td>\n <td>248</td><td width="20"><img src="http://medyk.org/colors/a8a8a8.png" width="20" height="20" /></td>\n <td>249</td><td width="20"><img src="http://medyk.org/colors/b2b2b2.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>250</td><td width="20"><img src="http://medyk.org/colors/bcbcbc.png" width="20" height="20" /></td>\n <td>251</td><td width="20"><img src="http://medyk.org/colors/c6c6c6.png" width="20" height="20" /></td>\n <td>252</td><td width="20"><img src="http://medyk.org/colors/d0d0d0.png" width="20" height="20" /></td>\n <td>253</td><td width="20"><img src="http://medyk.org/colors/dadada.png" width="20" height="20" /></td>\n <td>254</td><td width="20"><img src="http://medyk.org/colors/e4e4e4.png" width="20" height="20" /></td>\n <td>255</td><td width="20"><img src="http://medyk.org/colors/eeeeee.png" width="20" height="20" /></td>\n </tr>\n</table>\n\n#### Terminal reset\n\nTerminal can be cleared with `clc.reset`\n\n```javascript\nconsole.log(clc.reset);\n```\n\n#### Move around functions\n\n##### clc.move(x, y)\n\nMove cursor _x_ columns and _y_ rows away. Values can be positive or negative, e.g.:\n\n```javascript\nprocess.stdout.write(clc.move(-2, -2)); // Move cursors two columns and two rows back\n```\n\n##### clc.moveTo(x, y)\n\nAbsolute move. Sets cursor position at _x_ column and _y_ row\n\n```javascript\nprocess.stdout.write(clc.moveTo(0, 0)); // Move cursor to first row and first column in terminal window\n```\n\n##### clc.bol([n[, erase]])\n\nMove cursor to the begining of the line, with _n_ we may specify how many lines away we want to move, value can be positive or negative. Additionally we may decide to clear lines content with _erase_\n\n```javascript\nprocess.stdout.write(clc.bol(-2)); // Move cursor two lines back and place it at begin of the line\n```\n\n##### clc.up(n)\n\nMove cursor up _n_ rows\n\n##### clc.down(n)\n\nMove cursor down _n_ rows\n\n##### clc.right(n)\n\nMove cursor right _n_ columns\n\n##### clc.left(n)\n\nMove cursor left _n_ columns\n\n#### Terminal characteristics\n\n##### clc.width\n\nReturns terminal width\n\n##### clc.height\n\nReturns terminal height\n\n### Additional functionalities (provided as separate modules)\n\n#### trim(formatedText)\n\nTrims ANSI formatted string to plain text\n\n```javascript\nvar ansiTrim = require(\'cli-color/lib/trim\');\n\nvar plain = ansiTrim(formatted);\n```\n\n#### throbber(interval[, format])\n\nDisplays throbber on given interval.\nInterval should be [clock.interval](https://github.com/medikoo/clock) object\nOptionally throbber output can be formatted with given format\n\n```javascript\nvar interval = require(\'clock/lib/interval\')\n , ansiThrobber = require(\'cli-color/lib/throbber\');\n\nvar i = interval(200, true);\n\n// Display throbber while interval is ticking\nansiThrobber(i);\n\n// at any time you can stop/start interval\n// When interval is stopped throbber doesn\'t show\ni.stop();\n```\n\n## Tests [![Build Status](https://secure.travis-ci.org/medikoo/cli-color.png?branch=master)](https://secure.travis-ci.org/medikoo/cli-color)\n\n\t$ npm test\n',
5572 silly resolved readmeFilename: 'README.md',
5572 silly resolved _id: 'cli-color@0.2.2',
5572 silly resolved _from: 'cli-color@~0.2.2' } ]
5573 info install async@0.2.9 into /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer
5574 info install lodash@1.2.1 into /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer
5575 info install mute-stream@0.0.3 into /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer
5576 info install cli-color@0.2.2 into /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer
5577 info installOne async@0.2.9
5578 info installOne lodash@1.2.1
5579 info installOne mute-stream@0.0.3
5580 info installOne cli-color@0.2.2
5581 verbose readDependencies using package.json deps
5582 info /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/async unbuild
5583 info /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/lodash unbuild
5584 info /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/mute-stream unbuild
5585 info /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/cli-color unbuild
5586 verbose readDependencies using package.json deps
5587 silly gunzTarPerm extractEntry object/namespace.js
5588 silly gunzTarPerm extractEntry object/filter.js
5589 verbose cache add [ 'inherits@2', null ]
5590 verbose cache add name=undefined spec="inherits@2" args=["inherits@2",null]
5591 verbose parsed url { protocol: null,
5591 verbose parsed url slashes: null,
5591 verbose parsed url auth: null,
5591 verbose parsed url host: null,
5591 verbose parsed url port: null,
5591 verbose parsed url hostname: null,
5591 verbose parsed url hash: null,
5591 verbose parsed url search: null,
5591 verbose parsed url query: null,
5591 verbose parsed url pathname: 'inherits@2',
5591 verbose parsed url path: 'inherits@2',
5591 verbose parsed url href: 'inherits@2' }
5592 verbose cache add name="inherits" spec="2" args=["inherits","2"]
5593 verbose parsed url { protocol: null,
5593 verbose parsed url slashes: null,
5593 verbose parsed url auth: null,
5593 verbose parsed url host: null,
5593 verbose parsed url port: null,
5593 verbose parsed url hostname: null,
5593 verbose parsed url hash: null,
5593 verbose parsed url search: null,
5593 verbose parsed url query: null,
5593 verbose parsed url pathname: '2',
5593 verbose parsed url path: '2',
5593 verbose parsed url href: '2' }
5594 verbose addNamed [ 'inherits', '2' ]
5595 verbose addNamed [ null, '>=2.0.0-0 <3.0.0-0' ]
5596 silly lockFile 1f7ff4de-inherits-2 inherits@2
5597 verbose lock inherits@2 /Users/vaca/.npm/1f7ff4de-inherits-2.lock
5598 verbose cache add [ 'block-stream@*', null ]
5599 verbose cache add name=undefined spec="block-stream@*" args=["block-stream@*",null]
5600 verbose parsed url { protocol: null,
5600 verbose parsed url slashes: null,
5600 verbose parsed url auth: null,
5600 verbose parsed url host: null,
5600 verbose parsed url port: null,
5600 verbose parsed url hostname: null,
5600 verbose parsed url hash: null,
5600 verbose parsed url search: null,
5600 verbose parsed url query: null,
5600 verbose parsed url pathname: 'block-stream@*',
5600 verbose parsed url path: 'block-stream@*',
5600 verbose parsed url href: 'block-stream@*' }
5601 verbose cache add name="block-stream" spec="*" args=["block-stream","*"]
5602 verbose parsed url { protocol: null,
5602 verbose parsed url slashes: null,
5602 verbose parsed url auth: null,
5602 verbose parsed url host: null,
5602 verbose parsed url port: null,
5602 verbose parsed url hostname: null,
5602 verbose parsed url hash: null,
5602 verbose parsed url search: null,
5602 verbose parsed url query: null,
5602 verbose parsed url pathname: '*',
5602 verbose parsed url path: '*',
5602 verbose parsed url href: '*' }
5603 verbose addNamed [ 'block-stream', '*' ]
5604 verbose addNamed [ null, '*' ]
5605 silly lockFile 28c964d9-block-stream block-stream@*
5606 verbose lock block-stream@* /Users/vaca/.npm/28c964d9-block-stream.lock
5607 verbose tar unpack /Users/vaca/.npm/async/0.2.9/package.tgz
5608 silly lockFile 914cf352-ules-inquirer-node-modules-async tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/async
5609 verbose lock tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/async /Users/vaca/.npm/914cf352-ules-inquirer-node-modules-async.lock
5610 silly lockFile 972ab484-vaca-npm-async-0-2-9-package-tgz tar:///Users/vaca/.npm/async/0.2.9/package.tgz
5611 verbose lock tar:///Users/vaca/.npm/async/0.2.9/package.tgz /Users/vaca/.npm/972ab484-vaca-npm-async-0-2-9-package-tgz.lock
5612 verbose tar unpack /Users/vaca/.npm/lodash/1.2.1/package.tgz
5613 silly lockFile 5030dd87-les-inquirer-node-modules-lodash tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/lodash
5614 verbose lock tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/lodash /Users/vaca/.npm/5030dd87-les-inquirer-node-modules-lodash.lock
5615 silly lockFile 4256ac70-aca-npm-lodash-1-2-1-package-tgz tar:///Users/vaca/.npm/lodash/1.2.1/package.tgz
5616 verbose lock tar:///Users/vaca/.npm/lodash/1.2.1/package.tgz /Users/vaca/.npm/4256ac70-aca-npm-lodash-1-2-1-package-tgz.lock
5617 verbose tar unpack /Users/vaca/.npm/mute-stream/0.0.3/package.tgz
5618 silly lockFile a1769eba-nquirer-node-modules-mute-stream tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/mute-stream
5619 verbose lock tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/mute-stream /Users/vaca/.npm/a1769eba-nquirer-node-modules-mute-stream.lock
5620 silly lockFile a60abbb3-pm-mute-stream-0-0-3-package-tgz tar:///Users/vaca/.npm/mute-stream/0.0.3/package.tgz
5621 verbose lock tar:///Users/vaca/.npm/mute-stream/0.0.3/package.tgz /Users/vaca/.npm/a60abbb3-pm-mute-stream-0-0-3-package-tgz.lock
5622 verbose tar unpack /Users/vaca/.npm/cli-color/0.2.2/package.tgz
5623 silly lockFile 2e06bcd9--inquirer-node-modules-cli-color tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/cli-color
5624 verbose lock tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/cli-color /Users/vaca/.npm/2e06bcd9--inquirer-node-modules-cli-color.lock
5625 silly lockFile 237e6bed--npm-cli-color-0-2-2-package-tgz tar:///Users/vaca/.npm/cli-color/0.2.2/package.tgz
5626 verbose lock tar:///Users/vaca/.npm/cli-color/0.2.2/package.tgz /Users/vaca/.npm/237e6bed--npm-cli-color-0-2-2-package-tgz.lock
5627 silly addNameRange { name: 'inherits', range: '>=2.0.0-0 <3.0.0-0', hasData: false }
5628 silly addNameRange { name: 'block-stream', range: '*', hasData: false }
5629 silly gunzTarPerm extractEntry test/loop.js
5630 silly gunzTarPerm extractEntry test/loop_scan.js
5631 silly gunzTarPerm extractEntry transform.js
5632 silly gunzTarPerm extractEntry writable.js
5633 silly gunzTarPerm modes [ '755', '644' ]
5634 silly gunzTarPerm extractEntry test/return.js
5635 silly gunzTarPerm extractEntry test/return_sync.js
5636 silly gunzTarPerm modes [ '755', '644' ]
5637 silly lockFile 505f6e6f-es-read-node-modules-mute-stream tar:///opt/local/lib/node_modules/bower/node_modules/promptly/node_modules/read/node_modules/mute-stream
5638 silly lockFile 505f6e6f-es-read-node-modules-mute-stream tar:///opt/local/lib/node_modules/bower/node_modules/promptly/node_modules/read/node_modules/mute-stream
5639 silly gunzTarPerm extractEntry node_modules/form-data/test/integration/test-http-response.js
5640 silly lockFile b89fee15-pm-mute-stream-0-0-4-package-tgz tar:///Users/vaca/.npm/mute-stream/0.0.4/package.tgz
5641 silly lockFile b89fee15-pm-mute-stream-0-0-4-package-tgz tar:///Users/vaca/.npm/mute-stream/0.0.4/package.tgz
5642 verbose url raw block-stream
5643 verbose url resolving [ 'https://registry.npmjs.org/', './block-stream' ]
5644 verbose url resolved https://registry.npmjs.org/block-stream
5645 info trying registry request attempt 1 at 11:55:12
5646 verbose etag "3BGWNK3TS2ITZ70L2TC5ORDY0"
5647 http GET https://registry.npmjs.org/block-stream
5648 verbose registry.get inherits not expired, no request
5649 silly addNameRange number 2 { name: 'inherits', range: '>=2.0.0-0 <3.0.0-0', hasData: true }
5650 silly addNameRange versions [ 'inherits', [ '1.0.0', '2.0.0' ] ]
5651 verbose addNamed [ 'inherits', '2.0.0' ]
5652 verbose addNamed [ '2.0.0', '2.0.0' ]
5653 silly lockFile 5f83604f-inherits-2-0-0 inherits@2.0.0
5654 verbose lock inherits@2.0.0 /Users/vaca/.npm/5f83604f-inherits-2-0-0.lock
5655 silly gunzTarPerm extractEntry node_modules/form-data/test/integration/test-pipe.js
5656 silly gunzTarPerm extractEntry object/pick.js
5657 silly gunzTarPerm extractEntry object/fillIn.js
5658 silly lockFile 27c8e30d-es-fstream-node-modules-inherits tar:///opt/local/lib/node_modules/bower/node_modules/fstream/node_modules/inherits
5659 silly lockFile 27c8e30d-es-fstream-node-modules-inherits tar:///opt/local/lib/node_modules/bower/node_modules/fstream/node_modules/inherits
5660 silly gunzTarPerm extractEntry package.json
5661 silly lockFile 069571be-a-npm-inherits-2-0-0-package-tgz tar:///Users/vaca/.npm/inherits/2.0.0/package.tgz
5662 silly lockFile 069571be-a-npm-inherits-2-0-0-package-tgz tar:///Users/vaca/.npm/inherits/2.0.0/package.tgz
5663 silly lockFile 5f83604f-inherits-2-0-0 inherits@2.0.0
5664 silly lockFile 5f83604f-inherits-2-0-0 inherits@2.0.0
5665 info preinstall mute-stream@0.0.4
5666 silly lockFile 1f7ff4de-inherits-2 inherits@2
5667 silly lockFile 1f7ff4de-inherits-2 inherits@2
5668 silly gunzTarPerm extractEntry package.json
5669 silly gunzTarPerm extractEntry test/lu.js
5670 silly gunzTarPerm extractEntry test/into_stream.js
5671 silly gunzTarPerm extractEntry README.md
5672 silly gunzTarPerm extractEntry LICENSE
5673 info preinstall inherits@2.0.0
5674 verbose readDependencies using package.json deps
5675 silly gunzTarPerm extractEntry test/root.js
5676 silly gunzTarPerm extractEntry test/sync.js
5677 verbose readDependencies using package.json deps
5678 silly resolved []
5679 verbose about to build /opt/local/lib/node_modules/bower/node_modules/promptly/node_modules/read/node_modules/mute-stream
5680 info build /opt/local/lib/node_modules/bower/node_modules/promptly/node_modules/read/node_modules/mute-stream
5681 verbose linkStuff [ true,
5681 verbose linkStuff '/opt/local/lib/node_modules',
5681 verbose linkStuff false,
5681 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/promptly/node_modules/read/node_modules' ]
5682 info linkStuff mute-stream@0.0.4
5683 silly gunzTarPerm extractEntry .npmignore
5684 silly gunzTarPerm extractEntry README.md
5685 silly gunzTarPerm extractEntry object/pluck.js
5686 silly gunzTarPerm extractEntry object/every.js
5687 silly gunzTarPerm extractEntry test/basic.js
5688 silly gunzTarPerm extractEntry test/brace-expand.js
5689 verbose readDependencies using package.json deps
5690 verbose linkBins mute-stream@0.0.4
5691 verbose linkMans mute-stream@0.0.4
5692 verbose rebuildBundles mute-stream@0.0.4
5693 silly gunzTarPerm extractEntry node_modules/form-data/test/integration/test-submit.js
5694 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/package.json
5695 verbose readDependencies using package.json deps
5696 silly resolved []
5697 verbose about to build /opt/local/lib/node_modules/bower/node_modules/fstream/node_modules/inherits
5698 info build /opt/local/lib/node_modules/bower/node_modules/fstream/node_modules/inherits
5699 verbose linkStuff [ true,
5699 verbose linkStuff '/opt/local/lib/node_modules',
5699 verbose linkStuff false,
5699 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/fstream/node_modules' ]
5700 info linkStuff inherits@2.0.0
5701 info install mute-stream@0.0.4
5702 silly gunzTarPerm extractEntry test/negls.js
5703 silly gunzTarPerm extractEntry test/nested.js
5704 verbose linkBins inherits@2.0.0
5705 verbose linkMans inherits@2.0.0
5706 verbose rebuildBundles inherits@2.0.0
5707 info postinstall mute-stream@0.0.4
5708 info install inherits@2.0.0
5709 verbose about to build /opt/local/lib/node_modules/bower/node_modules/promptly/node_modules/read
5710 info build /opt/local/lib/node_modules/bower/node_modules/promptly/node_modules/read
5711 verbose linkStuff [ true,
5711 verbose linkStuff '/opt/local/lib/node_modules',
5711 verbose linkStuff false,
5711 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/promptly/node_modules' ]
5712 info linkStuff read@1.0.5
5713 silly gunzTarPerm extractEntry mute.js
5714 silly gunzTarPerm extractEntry test/basic.js
5715 info postinstall inherits@2.0.0
5716 verbose linkBins read@1.0.5
5717 verbose linkMans read@1.0.5
5718 verbose rebuildBundles read@1.0.5
5719 silly gunzTarPerm extractEntry LICENCE
5720 verbose about to build /opt/local/lib/node_modules/bower/node_modules/fstream
5721 info build /opt/local/lib/node_modules/bower/node_modules/fstream
5722 verbose linkStuff [ true,
5722 verbose linkStuff '/opt/local/lib/node_modules',
5722 verbose linkStuff false,
5722 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules' ]
5723 info linkStuff fstream@0.1.24
5724 verbose rebuildBundles [ 'mute-stream' ]
5725 info install read@1.0.5
5726 silly gunzTarPerm extractEntry test/umask.js
5727 silly gunzTarPerm extractEntry test/clobber.js
5728 silly gunzTarPerm extractEntry object/reduce.js
5729 silly gunzTarPerm extractEntry object/equals.js
5730 silly gunzTarPerm extractEntry test/caching.js
5731 silly gunzTarPerm extractEntry test/defaults.js
5732 verbose linkBins fstream@0.1.24
5733 verbose linkMans fstream@0.1.24
5734 verbose rebuildBundles fstream@0.1.24
5735 info postinstall read@1.0.5
5736 verbose rebuildBundles [ 'inherits' ]
5737 info install fstream@0.1.24
5738 verbose about to build /opt/local/lib/node_modules/bower/node_modules/promptly
5739 info build /opt/local/lib/node_modules/bower/node_modules/promptly
5740 verbose linkStuff [ true,
5740 verbose linkStuff '/opt/local/lib/node_modules',
5740 verbose linkStuff false,
5740 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules' ]
5741 info linkStuff promptly@0.2.0
5742 silly gunzTarPerm extractEntry test/not_enough_buf.js
5743 silly gunzTarPerm extractEntry test/not_enough_parse.js
5744 info postinstall fstream@0.1.24
5745 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/README.md
5746 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/LICENSE
5747 verbose linkBins promptly@0.2.0
5748 verbose linkMans promptly@0.2.0
5749 verbose rebuildBundles promptly@0.2.0
5750 verbose rebuildBundles [ 'read' ]
5751 info install promptly@0.2.0
5752 silly gunzTarPerm extractEntry Makefile
5753 silly gunzTarPerm extractEntry .travis.yml
5754 http 304 https://registry.npmjs.org/sigmund
5755 silly registry.get cb [ 304,
5755 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
5755 silly registry.get etag: '"BAAVPGGBONNEW4H9S234JOULZ"',
5755 silly registry.get date: 'Fri, 02 Aug 2013 15:55:12 GMT',
5755 silly registry.get 'content-length': '0' } ]
5756 verbose etag sigmund from cache
5757 info postinstall promptly@0.2.0
5758 silly gunzTarPerm extractEntry object/reject.js
5759 silly gunzTarPerm extractEntry object/deepMixIn.js
5760 silly gunzTarPerm extractEntry test/umask_sync.js
5761 silly gunzTarPerm extractEntry test/rel.js
5762 silly addNameRange number 2 { name: 'sigmund', range: '>=1.0.0-0 <1.1.0-0', hasData: true }
5763 silly addNameRange versions [ 'sigmund', [ '1.0.0' ] ]
5764 verbose addNamed [ 'sigmund', '1.0.0' ]
5765 verbose addNamed [ '1.0.0', '1.0.0' ]
5766 silly lockFile 7b2d1244-sigmund-1-0-0 sigmund@1.0.0
5767 verbose lock sigmund@1.0.0 /Users/vaca/.npm/7b2d1244-sigmund-1-0-0.lock
5768 silly gunzTarPerm extractEntry object/set.js
5769 silly gunzTarPerm extractEntry object/deepMatches.js
5770 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/index.js
5771 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/dist/async.min.js
5772 silly gunzTarPerm extractEntry test/parse.js
5773 silly gunzTarPerm extractEntry test/into_buffer.js
5774 silly gunzTarPerm extractEntry object/size.js
5775 silly gunzTarPerm extractEntry object/deepFillIn.js
5776 silly gunzTarPerm extractEntry test/peek.js
5777 silly gunzTarPerm extractEntry test/interval.js
5778 silly lockFile 7b2d1244-sigmund-1-0-0 sigmund@1.0.0
5779 silly lockFile 7b2d1244-sigmund-1-0-0 sigmund@1.0.0
5780 silly lockFile 584a4a05-sigmund-1-0-0 sigmund@~1.0.0
5781 silly lockFile 584a4a05-sigmund-1-0-0 sigmund@~1.0.0
5782 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/deps/nodeunit.js
5783 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/deps/nodeunit.css
5784 silly resolved [ { name: 'sigmund',
5784 silly resolved version: '1.0.0',
5784 silly resolved description: 'Quick and dirty signatures for Objects.',
5784 silly resolved main: 'sigmund.js',
5784 silly resolved directories: { test: 'test' },
5784 silly resolved dependencies: {},
5784 silly resolved devDependencies: { tap: '~0.3.0' },
5784 silly resolved scripts: { test: 'tap test/*.js', bench: 'node bench.js' },
5784 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/sigmund' },
5784 silly resolved keywords: [ 'object', 'signature', 'key', 'data', 'psychoanalysis' ],
5784 silly resolved author:
5784 silly resolved { name: 'Isaac Z. Schlueter',
5784 silly resolved email: 'i@izs.me',
5784 silly resolved url: 'http://blog.izs.me/' },
5784 silly resolved license: 'BSD',
5784 silly resolved readme: '# sigmund\n\nQuick and dirty signatures for Objects.\n\nThis is like a much faster `deepEquals` comparison, which returns a\nstring key suitable for caches and the like.\n\n## Usage\n\n```javascript\nfunction doSomething (someObj) {\n var key = sigmund(someObj, maxDepth) // max depth defaults to 10\n var cached = cache.get(key)\n if (cached) return cached)\n\n var result = expensiveCalculation(someObj)\n cache.set(key, result)\n return result\n}\n```\n\nThe resulting key will be as unique and reproducible as calling\n`JSON.stringify` or `util.inspect` on the object, but is much faster.\nIn order to achieve this speed, some differences are glossed over.\nFor example, the object `{0:\'foo\'}` will be treated identically to the\narray `[\'foo\']`.\n\nAlso, just as there is no way to summon the soul from the scribblings\nof a cocain-addled psychoanalyst, there is no way to revive the object\nfrom the signature string that sigmund gives you. In fact, it\'s\nbarely even readable.\n\nAs with `sys.inspect` and `JSON.stringify`, larger objects will\nproduce larger signature strings.\n\nBecause sigmund is a bit less strict than the more thorough\nalternatives, the strings will be shorter, and also there is a\nslightly higher chance for collisions. For example, these objects\nhave the same signature:\n\n var obj1 = {a:\'b\',c:/def/,g:[\'h\',\'i\',{j:\'\',k:\'l\'}]}\n var obj2 = {a:\'b\',c:\'/def/\',g:[\'h\',\'i\',\'{jkl\']}\n\nLike a good Freudian, sigmund is most effective when you already have\nsome understanding of what you\'re looking for. It can help you help\nyourself, but you must be willing to do some work as well.\n\nCycles are handled, and cyclical objects are silently omitted (though\nthe key is included in the signature output.)\n\nThe second argument is the maximum depth, which defaults to 10,\nbecause that is the maximum object traversal depth covered by most\ninsurance carriers.\n',
5784 silly resolved readmeFilename: 'README.md',
5784 silly resolved bugs: { url: 'https://github.com/isaacs/sigmund/issues' },
5784 silly resolved _id: 'sigmund@1.0.0',
5784 silly resolved _from: 'sigmund@~1.0.0' } ]
5785 info install sigmund@1.0.0 into /opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/minimatch
5786 info installOne sigmund@1.0.0
5787 info /opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/minimatch/node_modules/sigmund unbuild
5788 silly gunzTarPerm extractEntry object/some.js
5789 silly gunzTarPerm extractEntry object/deepEquals.js
5790 verbose tar unpack /Users/vaca/.npm/sigmund/1.0.0/package.tgz
5791 silly lockFile 643dae91-s-minimatch-node-modules-sigmund tar:///opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/minimatch/node_modules/sigmund
5792 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/minimatch/node_modules/sigmund /Users/vaca/.npm/643dae91-s-minimatch-node-modules-sigmund.lock
5793 silly lockFile caef6e7b-ca-npm-sigmund-1-0-0-package-tgz tar:///Users/vaca/.npm/sigmund/1.0.0/package.tgz
5794 verbose lock tar:///Users/vaca/.npm/sigmund/1.0.0/package.tgz /Users/vaca/.npm/caef6e7b-ca-npm-sigmund-1-0-0-package-tgz.lock
5795 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/Makefile
5796 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/.gitmodules
5797 silly gunzTarPerm modes [ '755', '644' ]
5798 silly lockFile e8ca53d9-es-unzip-node-modules-pullstream tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream
5799 silly lockFile e8ca53d9-es-unzip-node-modules-pullstream tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream
5800 silly gunzTarPerm extractEntry test/pipe.js
5801 silly gunzTarPerm extractEntry test/immediate.js
5802 silly lockFile d2561af1-npm-pullstream-0-4-0-package-tgz tar:///Users/vaca/.npm/pullstream/0.4.0/package.tgz
5803 silly lockFile d2561af1-npm-pullstream-0-4-0-package-tgz tar:///Users/vaca/.npm/pullstream/0.4.0/package.tgz
5804 silly gunzTarPerm extractEntry object/unset.js
5805 silly gunzTarPerm extractEntry object/contains.js
5806 silly gunzTarPerm extractEntry package.json
5807 info preinstall pullstream@0.4.0
5808 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/lib/async.js
5809 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/nodelint.cfg
5810 silly gunzTarPerm extractEntry README.md
5811 silly gunzTarPerm extractEntry LICENSE
5812 verbose readDependencies using package.json deps
5813 silly lockFile fa9eea05-wer-config-node-modules-optimist tar:///opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist
5814 silly lockFile fa9eea05-wer-config-node-modules-optimist tar:///opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist
5815 verbose readDependencies using package.json deps
5816 silly lockFile 2c4d7643-a-npm-optimist-0-6-0-package-tgz tar:///Users/vaca/.npm/optimist/0.6.0/package.tgz
5817 silly lockFile 2c4d7643-a-npm-optimist-0-6-0-package-tgz tar:///Users/vaca/.npm/optimist/0.6.0/package.tgz
5818 silly gunzTarPerm extractEntry object/values.js
5819 silly gunzTarPerm extractEntry object/keys.js
5820 silly gunzTarPerm extractEntry test/posbs.js
5821 silly gunzTarPerm extractEntry test/get_buffer.js
5822 verbose cache add [ 'over@~0.0.5', null ]
5823 verbose cache add name=undefined spec="over@~0.0.5" args=["over@~0.0.5",null]
5824 verbose parsed url { protocol: null,
5824 verbose parsed url slashes: null,
5824 verbose parsed url auth: null,
5824 verbose parsed url host: null,
5824 verbose parsed url port: null,
5824 verbose parsed url hostname: null,
5824 verbose parsed url hash: null,
5824 verbose parsed url search: null,
5824 verbose parsed url query: null,
5824 verbose parsed url pathname: 'over@~0.0.5',
5824 verbose parsed url path: 'over@~0.0.5',
5824 verbose parsed url href: 'over@~0.0.5' }
5825 verbose cache add name="over" spec="~0.0.5" args=["over","~0.0.5"]
5826 verbose parsed url { protocol: null,
5826 verbose parsed url slashes: null,
5826 verbose parsed url auth: null,
5826 verbose parsed url host: null,
5826 verbose parsed url port: null,
5826 verbose parsed url hostname: null,
5826 verbose parsed url hash: null,
5826 verbose parsed url search: null,
5826 verbose parsed url query: null,
5826 verbose parsed url pathname: '~0.0.5',
5826 verbose parsed url path: '~0.0.5',
5826 verbose parsed url href: '~0.0.5' }
5827 verbose addNamed [ 'over', '~0.0.5' ]
5828 verbose addNamed [ null, '>=0.0.5-0 <0.1.0-0' ]
5829 silly lockFile 872bef99-over-0-0-5 over@~0.0.5
5830 verbose lock over@~0.0.5 /Users/vaca/.npm/872bef99-over-0-0-5.lock
5831 verbose cache add [ 'slice-stream@0.0.0', null ]
5832 verbose cache add name=undefined spec="slice-stream@0.0.0" args=["slice-stream@0.0.0",null]
5833 verbose parsed url { protocol: null,
5833 verbose parsed url slashes: null,
5833 verbose parsed url auth: null,
5833 verbose parsed url host: null,
5833 verbose parsed url port: null,
5833 verbose parsed url hostname: null,
5833 verbose parsed url hash: null,
5833 verbose parsed url search: null,
5833 verbose parsed url query: null,
5833 verbose parsed url pathname: 'slice-stream@0.0.0',
5833 verbose parsed url path: 'slice-stream@0.0.0',
5833 verbose parsed url href: 'slice-stream@0.0.0' }
5834 verbose cache add name="slice-stream" spec="0.0.0" args=["slice-stream","0.0.0"]
5835 verbose parsed url { protocol: null,
5835 verbose parsed url slashes: null,
5835 verbose parsed url auth: null,
5835 verbose parsed url host: null,
5835 verbose parsed url port: null,
5835 verbose parsed url hostname: null,
5835 verbose parsed url hash: null,
5835 verbose parsed url search: null,
5835 verbose parsed url query: null,
5835 verbose parsed url pathname: '0.0.0',
5835 verbose parsed url path: '0.0.0',
5835 verbose parsed url href: '0.0.0' }
5836 verbose addNamed [ 'slice-stream', '0.0.0' ]
5837 verbose addNamed [ '0.0.0', '0.0.0' ]
5838 silly lockFile 4514261c-slice-stream-0-0-0 slice-stream@0.0.0
5839 verbose lock slice-stream@0.0.0 /Users/vaca/.npm/4514261c-slice-stream-0-0-0.lock
5840 info preinstall optimist@0.6.0
5841 silly addNameRange { name: 'over', range: '>=0.0.5-0 <0.1.0-0', hasData: false }
5842 silly gunzTarPerm extractEntry LICENSE.txt
5843 silly gunzTarPerm extractEntry dist/lodash.compat.js
5844 verbose readDependencies using package.json deps
5845 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/async.min.js.gzip
5846 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/test/test-async.js
5847 silly gunzTarPerm extractEntry bench.js
5848 silly gunzTarPerm extractEntry sigmund.js
5849 silly gunzTarPerm extractEntry test/basic.js
5850 silly lockFile a1769eba-nquirer-node-modules-mute-stream tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/mute-stream
5851 silly lockFile a1769eba-nquirer-node-modules-mute-stream tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/mute-stream
5852 verbose readDependencies using package.json deps
5853 silly gunzTarPerm extractEntry CHANGELOG.md
5854 silly gunzTarPerm extractEntry date/dayOfTheYear.js
5855 silly lockFile a60abbb3-pm-mute-stream-0-0-3-package-tgz tar:///Users/vaca/.npm/mute-stream/0.0.3/package.tgz
5856 silly lockFile a60abbb3-pm-mute-stream-0-0-3-package-tgz tar:///Users/vaca/.npm/mute-stream/0.0.3/package.tgz
5857 verbose cache add [ 'wordwrap@~0.0.2', null ]
5858 verbose cache add name=undefined spec="wordwrap@~0.0.2" args=["wordwrap@~0.0.2",null]
5859 verbose parsed url { protocol: null,
5859 verbose parsed url slashes: null,
5859 verbose parsed url auth: null,
5859 verbose parsed url host: null,
5859 verbose parsed url port: null,
5859 verbose parsed url hostname: null,
5859 verbose parsed url hash: null,
5859 verbose parsed url search: null,
5859 verbose parsed url query: null,
5859 verbose parsed url pathname: 'wordwrap@~0.0.2',
5859 verbose parsed url path: 'wordwrap@~0.0.2',
5859 verbose parsed url href: 'wordwrap@~0.0.2' }
5860 verbose cache add name="wordwrap" spec="~0.0.2" args=["wordwrap","~0.0.2"]
5861 verbose parsed url { protocol: null,
5861 verbose parsed url slashes: null,
5861 verbose parsed url auth: null,
5861 verbose parsed url host: null,
5861 verbose parsed url port: null,
5861 verbose parsed url hostname: null,
5861 verbose parsed url hash: null,
5861 verbose parsed url search: null,
5861 verbose parsed url query: null,
5861 verbose parsed url pathname: '~0.0.2',
5861 verbose parsed url path: '~0.0.2',
5861 verbose parsed url href: '~0.0.2' }
5862 verbose addNamed [ 'wordwrap', '~0.0.2' ]
5863 verbose addNamed [ null, '>=0.0.2-0 <0.1.0-0' ]
5864 silly lockFile 8bd42136-wordwrap-0-0-2 wordwrap@~0.0.2
5865 verbose lock wordwrap@~0.0.2 /Users/vaca/.npm/8bd42136-wordwrap-0-0-2.lock
5866 verbose cache add [ 'minimist@~0.0.1', null ]
5867 verbose cache add name=undefined spec="minimist@~0.0.1" args=["minimist@~0.0.1",null]
5868 verbose parsed url { protocol: null,
5868 verbose parsed url slashes: null,
5868 verbose parsed url auth: null,
5868 verbose parsed url host: null,
5868 verbose parsed url port: null,
5868 verbose parsed url hostname: null,
5868 verbose parsed url hash: null,
5868 verbose parsed url search: null,
5868 verbose parsed url query: null,
5868 verbose parsed url pathname: 'minimist@~0.0.1',
5868 verbose parsed url path: 'minimist@~0.0.1',
5868 verbose parsed url href: 'minimist@~0.0.1' }
5869 verbose cache add name="minimist" spec="~0.0.1" args=["minimist","~0.0.1"]
5870 verbose parsed url { protocol: null,
5870 verbose parsed url slashes: null,
5870 verbose parsed url auth: null,
5870 verbose parsed url host: null,
5870 verbose parsed url port: null,
5870 verbose parsed url hostname: null,
5870 verbose parsed url hash: null,
5870 verbose parsed url search: null,
5870 verbose parsed url query: null,
5870 verbose parsed url pathname: '~0.0.1',
5870 verbose parsed url path: '~0.0.1',
5870 verbose parsed url href: '~0.0.1' }
5871 verbose addNamed [ 'minimist', '~0.0.1' ]
5872 verbose addNamed [ null, '>=0.0.1-0 <0.1.0-0' ]
5873 silly lockFile 7a855a96-minimist-0-0-1 minimist@~0.0.1
5874 verbose lock minimist@~0.0.1 /Users/vaca/.npm/7a855a96-minimist-0-0-1.lock
5875 verbose url raw over
5876 verbose url resolving [ 'https://registry.npmjs.org/', './over' ]
5877 verbose url resolved https://registry.npmjs.org/over
5878 info trying registry request attempt 1 at 11:55:13
5879 verbose etag "3BWVOKGX0XCHW63R0S51T4UC"
5880 http GET https://registry.npmjs.org/over
5881 verbose url raw slice-stream/0.0.0
5882 verbose url resolving [ 'https://registry.npmjs.org/', './slice-stream/0.0.0' ]
5883 verbose url resolved https://registry.npmjs.org/slice-stream/0.0.0
5884 info trying registry request attempt 1 at 11:55:13
5885 verbose etag "EHM8P5F1EXVH86MMM2NFBWE8O"
5886 http GET https://registry.npmjs.org/slice-stream/0.0.0
5887 silly addNameRange { name: 'wordwrap', range: '>=0.0.2-0 <0.1.0-0', hasData: false }
5888 silly addNameRange { name: 'minimist', range: '>=0.0.1-0 <0.1.0-0', hasData: false }
5889 silly gunzTarPerm extractEntry test/posls.js
5890 silly gunzTarPerm extractEntry test/from_buffer.js
5891 info preinstall mute-stream@0.0.3
5892 verbose readDependencies using package.json deps
5893 verbose url raw wordwrap
5894 verbose url resolving [ 'https://registry.npmjs.org/', './wordwrap' ]
5895 verbose url resolved https://registry.npmjs.org/wordwrap
5896 info trying registry request attempt 1 at 11:55:13
5897 verbose etag "3HPX5BQ0X4U2A3KJNTK2473OZ"
5898 http GET https://registry.npmjs.org/wordwrap
5899 verbose url raw minimist
5900 verbose url resolving [ 'https://registry.npmjs.org/', './minimist' ]
5901 verbose url resolved https://registry.npmjs.org/minimist
5902 info trying registry request attempt 1 at 11:55:13
5903 verbose etag "7EWZB9PB494506Z315Y50UZ2J"
5904 http GET https://registry.npmjs.org/minimist
5905 silly gunzTarPerm extractEntry date/i18n_.js
5906 silly gunzTarPerm extractEntry date/isLeapYear.js
5907 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/test/.swp
5908 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/async/test/test.html
5909 verbose readDependencies using package.json deps
5910 silly resolved []
5911 verbose about to build /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/mute-stream
5912 info build /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/mute-stream
5913 verbose linkStuff [ true,
5913 verbose linkStuff '/opt/local/lib/node_modules',
5913 verbose linkStuff false,
5913 verbose linkStuff '/opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules' ]
5914 info linkStuff mute-stream@0.0.3
5915 verbose linkBins mute-stream@0.0.3
5916 verbose linkMans mute-stream@0.0.3
5917 verbose rebuildBundles mute-stream@0.0.3
5918 silly gunzTarPerm extractEntry dist/lodash.backbone.js
5919 silly gunzTarPerm extractEntry dist/lodash.compat.js
5920 info install mute-stream@0.0.3
5921 silly gunzTarPerm extractEntry test/scan.js
5922 silly gunzTarPerm extractEntry test/flush.js
5923 info postinstall mute-stream@0.0.3
5924 silly gunzTarPerm extractEntry zlib.js
5925 silly gunzTarPerm extractEntry examples/typer-fsr.js
5926 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/package.json
5927 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/.npmignore
5928 silly gunzTarPerm extractEntry date/isSame.js
5929 silly gunzTarPerm extractEntry date/totalDaysInYear.js
5930 silly gunzTarPerm extractEntry dist/lodash.compat.min.js
5931 silly gunzTarPerm extractEntry examples/typer.js
5932 silly gunzTarPerm extractEntry examples/CAPSLOCKTYPER.JS
5933 silly gunzTarPerm extractEntry test/scan_buf.js
5934 silly gunzTarPerm extractEntry test/eof.js
5935 silly gunzTarPerm extractEntry CHANGES
5936 silly gunzTarPerm extractEntry bin/generate-color-images
5937 silly gunzTarPerm extractEntry date/diff.js
5938 silly gunzTarPerm extractEntry date/strftime.js
5939 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/License
5940 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/Makefile
5941 silly gunzTarPerm extractEntry lib/_stream_duplex.js
5942 silly gunzTarPerm extractEntry lib/_stream_passthrough.js
5943 silly gunzTarPerm extractEntry date/timezoneAbbr.js
5944 silly gunzTarPerm extractEntry date/timezoneOffset.js
5945 silly gunzTarPerm extractEntry test/scan_buf_null.js
5946 silly gunzTarPerm extractEntry test/dots.js
5947 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/Readme.md
5948 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/lib/combined_stream.js
5949 silly lockFile 1bf24bc5-gistry-client-node-modules-async tar:///opt/local/lib/node_modules/bower/node_modules/bower-registry-client/node_modules/async
5950 silly lockFile 1bf24bc5-gistry-client-node-modules-async tar:///opt/local/lib/node_modules/bower/node_modules/bower-registry-client/node_modules/async
5951 silly gunzTarPerm extractEntry lib/_xterm-colors.js
5952 silly gunzTarPerm extractEntry lib/_xterm-match.js
5953 silly lockFile 972ab484-vaca-npm-async-0-2-9-package-tgz tar:///Users/vaca/.npm/async/0.2.9/package.tgz
5954 silly lockFile 972ab484-vaca-npm-async-0-2-9-package-tgz tar:///Users/vaca/.npm/async/0.2.9/package.tgz
5955 silly gunzTarPerm extractEntry lib/_stream_readable.js
5956 silly gunzTarPerm extractEntry lib/_stream_transform.js
5957 http 304 https://registry.npmjs.org/block-stream
5958 silly registry.get cb [ 304,
5958 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
5958 silly registry.get etag: '"3BGWNK3TS2ITZ70L2TC5ORDY0"',
5958 silly registry.get date: 'Fri, 02 Aug 2013 15:55:13 GMT',
5958 silly registry.get 'content-length': '0' } ]
5959 verbose etag block-stream from cache
5960 info preinstall async@0.2.9
5961 silly gunzTarPerm extractEntry date/totalDaysInMonth.js
5962 silly gunzTarPerm extractEntry date/parseIso.js
5963 silly gunzTarPerm extractEntry test/skip.js
5964 silly gunzTarPerm extractEntry test/deferred.js
5965 verbose readDependencies using package.json deps
5966 silly gunzTarPerm extractEntry lib/index.js
5967 silly gunzTarPerm extractEntry lib/throbber.js
5968 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/test/common.js
5969 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/test/run.js
5970 verbose readDependencies using package.json deps
5971 silly resolved []
5972 verbose about to build /opt/local/lib/node_modules/bower/node_modules/bower-registry-client/node_modules/async
5973 info build /opt/local/lib/node_modules/bower/node_modules/bower-registry-client/node_modules/async
5974 verbose linkStuff [ true,
5974 verbose linkStuff '/opt/local/lib/node_modules',
5974 verbose linkStuff false,
5974 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/bower-registry-client/node_modules' ]
5975 info linkStuff async@0.2.9
5976 verbose linkBins async@0.2.9
5977 verbose linkMans async@0.2.9
5978 verbose rebuildBundles async@0.2.9
5979 info install async@0.2.9
5980 silly addNameRange number 2 { name: 'block-stream', range: '*', hasData: true }
5981 silly addNameRange versions [ 'block-stream',
5981 silly addNameRange [ '0.0.3', '0.0.4', '0.0.5', '0.0.6', '0.0.7' ] ]
5982 verbose addNamed [ 'block-stream', '0.0.7' ]
5983 verbose addNamed [ '0.0.7', '0.0.7' ]
5984 silly lockFile 540366e0-block-stream-0-0-7 block-stream@0.0.7
5985 verbose lock block-stream@0.0.7 /Users/vaca/.npm/540366e0-block-stream-0-0-7.lock
5986 silly gunzTarPerm extractEntry lib/_stream_writable.js
5987 silly gunzTarPerm extractEntry test/common.js
5988 silly gunzTarPerm extractEntry test/fixtures/x1024.txt
5989 silly gunzTarPerm extractEntry test/simple/test-stream2-basic.js
5990 silly gunzTarPerm extractEntry test/simple/test-stream2-pipe-error-handling.js
5991 silly gunzTarPerm extractEntry test/simple/test-stream2-push.js
5992 silly gunzTarPerm extractEntry test/simple/test-stream2-read-sync-stack.js
5993 silly gunzTarPerm extractEntry test/simple/test-stream2-objects.js
5994 silly gunzTarPerm extractEntry test/simple/test-stream2-readable-from-list.js
5995 silly gunzTarPerm extractEntry test/simple/test-stream2-readable-legacy-drain.js
5996 silly gunzTarPerm extractEntry test/simple/test-stream2-readable-non-empty-end.js
5997 silly gunzTarPerm extractEntry test/simple/test-stream2-set-encoding.js
5998 silly gunzTarPerm extractEntry test/simple/test-stream2-transform.js
5999 silly gunzTarPerm extractEntry test/simple/test-stream2-large-read-stall.js
6000 silly gunzTarPerm extractEntry test/simple/test-stream2-unpipe-drain.js
6001 silly gunzTarPerm extractEntry test/simple/test-stream2-finish-pipe.js
6002 silly gunzTarPerm extractEntry test/simple/test-stream2-unpipe-leak.js
6003 silly gunzTarPerm extractEntry test/simple/test-stream2-compatibility.js
6004 silly gunzTarPerm extractEntry test/simple/test-stream2-writable.js
6005 silly gunzTarPerm extractEntry test/simple/test-stream2-readable-empty-buffer-no-eof.js
6006 info postinstall async@0.2.9
6007 silly gunzTarPerm extractEntry test/split.js
6008 silly gunzTarPerm extractEntry test/negbs.js
6009 verbose about to build /opt/local/lib/node_modules/bower/node_modules/bower-registry-client
6010 info build /opt/local/lib/node_modules/bower/node_modules/bower-registry-client
6011 verbose linkStuff [ true,
6011 verbose linkStuff '/opt/local/lib/node_modules',
6011 verbose linkStuff false,
6011 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules' ]
6012 info linkStuff bower-registry-client@0.1.1
6013 silly gunzTarPerm modes [ '755', '644' ]
6014 silly gunzTarPerm extractEntry lib/trim.js
6015 silly gunzTarPerm extractEntry .lint
6016 silly gunzTarPerm extractEntry date/weekOfTheYear.js
6017 silly gunzTarPerm extractEntry date/startOf.js
6018 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/test/fixture/file1.txt
6019 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/test/fixture/file2.txt
6020 verbose linkBins bower-registry-client@0.1.1
6021 verbose linkMans bower-registry-client@0.1.1
6022 verbose rebuildBundles bower-registry-client@0.1.1
6023 verbose rebuildBundles [ 'async' ]
6024 info install bower-registry-client@0.1.1
6025 silly lockFile e5968938--unzip-node-modules-setimmediate tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/setimmediate
6026 silly lockFile e5968938--unzip-node-modules-setimmediate tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/setimmediate
6027 info postinstall bower-registry-client@0.1.1
6028 silly lockFile 5cec97cf-m-setimmediate-1-0-1-package-tgz tar:///Users/vaca/.npm/setimmediate/1.0.1/package.tgz
6029 silly lockFile 5cec97cf-m-setimmediate-1-0-1-package-tgz tar:///Users/vaca/.npm/setimmediate/1.0.1/package.tgz
6030 silly gunzTarPerm extractEntry package.json
6031 silly lockFile 540366e0-block-stream-0-0-7 block-stream@0.0.7
6032 silly lockFile 540366e0-block-stream-0-0-7 block-stream@0.0.7
6033 info preinstall setimmediate@1.0.1
6034 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/test/integration/test-callback-streams.js
6035 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/test/integration/test-data-size.js
6036 silly lockFile 28c964d9-block-stream block-stream@*
6037 silly lockFile 28c964d9-block-stream block-stream@*
6038 silly gunzTarPerm extractEntry README.md
6039 silly gunzTarPerm extractEntry LICENSE
6040 silly gunzTarPerm extractEntry component.json
6041 silly gunzTarPerm extractEntry lib/async.js
6042 silly gunzTarPerm extractEntry test/_xterm-colors.js
6043 silly gunzTarPerm extractEntry test/_xterm-match.js
6044 silly resolved [ { name: 'inherits',
6044 silly resolved description: 'Browser-friendly inheritance fully compatible with standard node.js inherits()',
6044 silly resolved version: '2.0.0',
6044 silly resolved keywords:
6044 silly resolved [ 'inheritance',
6044 silly resolved 'class',
6044 silly resolved 'klass',
6044 silly resolved 'oop',
6044 silly resolved 'object-oriented',
6044 silly resolved 'inherits',
6044 silly resolved 'browser',
6044 silly resolved 'browserify' ],
6044 silly resolved main: './inherits.js',
6044 silly resolved browser: './inherits_browser.js',
6044 silly resolved repository: { type: 'git', url: 'https://github.com/isaacs/inherits' },
6044 silly resolved license: { type: 'WTFPL2' },
6044 silly resolved author:
6044 silly resolved { name: 'Isaac Z. Schlueter',
6044 silly resolved email: 'i@izs.me',
6044 silly resolved url: 'http://blog.izs.me/' },
6044 silly resolved scripts: { test: 'node test' },
6044 silly resolved readme: 'Browser-friendly inheritance fully compatible with standard node.js\n[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).\n\nThis package exports standard `inherits` from node.js `util` module in\nnode environment, but also provides alternative browser-friendly\nimplementation through [browser\nfield](https://gist.github.com/shtylman/4339901). Alternative\nimplementation is a literal copy of standard one located in standalone\nmodule to avoid requiring of `util`. It also has a shim for old\nbrowsers with no `Object.create` support.\n\nWhile keeping you sure you are using standard `inherits`\nimplementation in node.js environment, it allows bundlers such as\n[browserify](https://github.com/substack/node-browserify) to not\ninclude full `util` package to your client code if all you need is\njust `inherits` function. It worth, because browser shim for `util`\npackage is large and `inherits` is often the single function you need\nfrom it.\n\nIt\'s recommended to use this package instead of\n`require(\'util\').inherits` for any code that has chances to be used\nnot only in node.js but in browser too.\n\n## usage\n\n```js\nvar inherits = require(\'inherits\');\n// then use exactly as the standard one\n```\n\n## note on version ~1.0\n\nVersion ~1.0 had completely different motivation and is not compatible\nneither with 2.0 nor with standard node.js `inherits`.\n\nIf you are using version ~1.0 and planning to switch to ~2.0, be\ncareful:\n\n* new version uses `super_` instead of `super` for referencing\n superclass\n* new version overwrites current prototype while old one preserves any\n existing fields on it\n',
6044 silly resolved readmeFilename: 'README.md',
6044 silly resolved bugs: { url: 'https://github.com/isaacs/inherits/issues' },
6044 silly resolved _id: 'inherits@2.0.0',
6044 silly resolved _from: 'inherits@2' },
6044 silly resolved { author:
6044 silly resolved { name: 'Isaac Z. Schlueter',
6044 silly resolved email: 'i@izs.me',
6044 silly resolved url: 'http://blog.izs.me/' },
6044 silly resolved name: 'block-stream',
6044 silly resolved description: 'a stream of blocks',
6044 silly resolved version: '0.0.7',
6044 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/block-stream.git' },
6044 silly resolved engines: { node: '0.4 || >=0.5.8' },
6044 silly resolved main: 'block-stream.js',
6044 silly resolved dependencies: { inherits: '~2.0.0' },
6044 silly resolved devDependencies: { tap: '0.x' },
6044 silly resolved scripts: { test: 'tap test/' },
6044 silly resolved license: 'BSD',
6044 silly resolved readme: '# block-stream\n\nA stream of blocks.\n\nWrite data into it, and it\'ll output data in buffer blocks the size you\nspecify, padding with zeroes if necessary.\n\n```javascript\nvar block = new BlockStream(512)\nfs.createReadStream("some-file").pipe(block)\nblock.pipe(fs.createWriteStream("block-file"))\n```\n\nWhen `.end()` or `.flush()` is called, it\'ll pad the block with zeroes.\n',
6044 silly resolved readmeFilename: 'README.md',
6044 silly resolved bugs: { url: 'https://github.com/isaacs/block-stream/issues' },
6044 silly resolved _id: 'block-stream@0.0.7',
6044 silly resolved _from: 'block-stream@*' } ]
6045 info install inherits@2.0.0 into /opt/local/lib/node_modules/bower/node_modules/tar
6046 info install block-stream@0.0.7 into /opt/local/lib/node_modules/bower/node_modules/tar
6047 info installOne inherits@2.0.0
6048 info installOne block-stream@0.0.7
6049 silly gunzTarPerm extractEntry date/i18n/en-US.js
6050 silly gunzTarPerm extractEntry date/i18n/pt-BR.js
6051 info /opt/local/lib/node_modules/bower/node_modules/tar/node_modules/inherits unbuild
6052 info /opt/local/lib/node_modules/bower/node_modules/tar/node_modules/block-stream unbuild
6053 verbose readDependencies using package.json deps
6054 verbose readDependencies using package.json deps
6055 silly resolved []
6056 verbose about to build /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/setimmediate
6057 info build /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/setimmediate
6058 verbose linkStuff [ true,
6058 verbose linkStuff '/opt/local/lib/node_modules',
6058 verbose linkStuff false,
6058 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/unzip/node_modules' ]
6059 info linkStuff setimmediate@1.0.1
6060 silly lockFile 942d6ea6--configstore-node-modules-mkdirp tar:///opt/local/lib/node_modules/yo/node_modules/update-notifier/node_modules/configstore/node_modules/mkdirp
6061 silly lockFile 942d6ea6--configstore-node-modules-mkdirp tar:///opt/local/lib/node_modules/yo/node_modules/update-notifier/node_modules/configstore/node_modules/mkdirp
6062 silly lockFile d1348830-aca-npm-mkdirp-0-3-5-package-tgz tar:///Users/vaca/.npm/mkdirp/0.3.5/package.tgz
6063 silly lockFile d1348830-aca-npm-mkdirp-0-3-5-package-tgz tar:///Users/vaca/.npm/mkdirp/0.3.5/package.tgz
6064 verbose tar unpack /Users/vaca/.npm/inherits/2.0.0/package.tgz
6065 silly lockFile b06b64a6-odules-tar-node-modules-inherits tar:///opt/local/lib/node_modules/bower/node_modules/tar/node_modules/inherits
6066 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/tar/node_modules/inherits /Users/vaca/.npm/b06b64a6-odules-tar-node-modules-inherits.lock
6067 silly lockFile 069571be-a-npm-inherits-2-0-0-package-tgz tar:///Users/vaca/.npm/inherits/2.0.0/package.tgz
6068 verbose lock tar:///Users/vaca/.npm/inherits/2.0.0/package.tgz /Users/vaca/.npm/069571be-a-npm-inherits-2-0-0-package-tgz.lock
6069 verbose tar unpack /Users/vaca/.npm/block-stream/0.0.7/package.tgz
6070 silly lockFile 60c0ea27-es-tar-node-modules-block-stream tar:///opt/local/lib/node_modules/bower/node_modules/tar/node_modules/block-stream
6071 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/tar/node_modules/block-stream /Users/vaca/.npm/60c0ea27-es-tar-node-modules-block-stream.lock
6072 silly lockFile 05c9da8e-m-block-stream-0-0-7-package-tgz tar:///Users/vaca/.npm/block-stream/0.0.7/package.tgz
6073 verbose lock tar:///Users/vaca/.npm/block-stream/0.0.7/package.tgz /Users/vaca/.npm/05c9da8e-m-block-stream-0-0-7-package-tgz.lock
6074 verbose linkBins setimmediate@1.0.1
6075 verbose linkMans setimmediate@1.0.1
6076 verbose rebuildBundles setimmediate@1.0.1
6077 info install setimmediate@1.0.1
6078 silly gunzTarPerm modes [ '755', '644' ]
6079 silly gunzTarPerm modes [ '755', '644' ]
6080 info postinstall setimmediate@1.0.1
6081 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/test/integration/test-delayed-streams-and-buffers-and-strings.js
6082 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/test/integration/test-delayed-streams.js
6083 info preinstall mkdirp@0.3.5
6084 silly gunzTarPerm extractEntry queryString/contains.js
6085 silly gunzTarPerm extractEntry queryString/decode.js
6086 silly lockFile baa74a2b-ate-notifier-node-modules-semver tar:///opt/local/lib/node_modules/yo/node_modules/update-notifier/node_modules/semver
6087 silly lockFile baa74a2b-ate-notifier-node-modules-semver tar:///opt/local/lib/node_modules/yo/node_modules/update-notifier/node_modules/semver
6088 silly gunzTarPerm extractEntry test/index.js
6089 silly gunzTarPerm extractEntry test/throbber.js
6090 silly lockFile 706304de-ca-npm-semver-2-0-11-package-tgz tar:///Users/vaca/.npm/semver/2.0.11/package.tgz
6091 silly lockFile 706304de-ca-npm-semver-2-0-11-package-tgz tar:///Users/vaca/.npm/semver/2.0.11/package.tgz
6092 silly lockFile 643dae91-s-minimatch-node-modules-sigmund tar:///opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/minimatch/node_modules/sigmund
6093 silly lockFile 643dae91-s-minimatch-node-modules-sigmund tar:///opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/minimatch/node_modules/sigmund
6094 verbose readDependencies using package.json deps
6095 silly lockFile caef6e7b-ca-npm-sigmund-1-0-0-package-tgz tar:///Users/vaca/.npm/sigmund/1.0.0/package.tgz
6096 silly lockFile caef6e7b-ca-npm-sigmund-1-0-0-package-tgz tar:///Users/vaca/.npm/sigmund/1.0.0/package.tgz
6097 verbose readDependencies using package.json deps
6098 silly resolved []
6099 verbose about to build /opt/local/lib/node_modules/yo/node_modules/update-notifier/node_modules/configstore/node_modules/mkdirp
6100 info build /opt/local/lib/node_modules/yo/node_modules/update-notifier/node_modules/configstore/node_modules/mkdirp
6101 verbose linkStuff [ true,
6101 verbose linkStuff '/opt/local/lib/node_modules',
6101 verbose linkStuff false,
6101 verbose linkStuff '/opt/local/lib/node_modules/yo/node_modules/update-notifier/node_modules/configstore/node_modules' ]
6102 info linkStuff mkdirp@0.3.5
6103 silly gunzTarPerm extractEntry package.json
6104 silly gunzTarPerm extractEntry package.json
6105 silly lockFile 96590f45--unzip-node-modules-match-stream tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/match-stream
6106 silly lockFile 96590f45--unzip-node-modules-match-stream tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/match-stream
6107 verbose linkBins mkdirp@0.3.5
6108 verbose linkMans mkdirp@0.3.5
6109 verbose rebuildBundles mkdirp@0.3.5
6110 info preinstall semver@2.0.11
6111 silly lockFile d9976cdb-m-match-stream-0-0-2-package-tgz tar:///Users/vaca/.npm/match-stream/0.0.2/package.tgz
6112 silly lockFile d9976cdb-m-match-stream-0-0-2-package-tgz tar:///Users/vaca/.npm/match-stream/0.0.2/package.tgz
6113 info install mkdirp@0.3.5
6114 info preinstall sigmund@1.0.0
6115 silly gunzTarPerm extractEntry README.md
6116 silly gunzTarPerm extractEntry LICENSE
6117 silly gunzTarPerm extractEntry queryString/encode.js
6118 silly gunzTarPerm extractEntry queryString/getParam.js
6119 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/test/integration/test-max-data-size.js
6120 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/test/integration/test-unpaused-streams.js
6121 info postinstall mkdirp@0.3.5
6122 silly gunzTarPerm extractEntry README.md
6123 silly gunzTarPerm extractEntry LICENCE
6124 verbose readDependencies using package.json deps
6125 silly gunzTarPerm extractEntry dist/lodash.js
6126 silly gunzTarPerm extractEntry dist/lodash.legacy.js
6127 verbose readDependencies using package.json deps
6128 silly resolved []
6129 verbose about to build /opt/local/lib/node_modules/yo/node_modules/update-notifier/node_modules/semver
6130 info build /opt/local/lib/node_modules/yo/node_modules/update-notifier/node_modules/semver
6131 verbose linkStuff [ true,
6131 verbose linkStuff '/opt/local/lib/node_modules',
6131 verbose linkStuff false,
6131 verbose linkStuff '/opt/local/lib/node_modules/yo/node_modules/update-notifier/node_modules' ]
6132 info linkStuff semver@2.0.11
6133 verbose readDependencies using package.json deps
6134 info preinstall match-stream@0.0.2
6135 verbose readDependencies using package.json deps
6136 silly resolved []
6137 verbose about to build /opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/minimatch/node_modules/sigmund
6138 info build /opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/minimatch/node_modules/sigmund
6139 verbose linkStuff [ true,
6139 verbose linkStuff '/opt/local/lib/node_modules',
6139 verbose linkStuff false,
6139 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/minimatch/node_modules' ]
6140 info linkStuff sigmund@1.0.0
6141 verbose linkBins semver@2.0.11
6142 verbose link bins [ { semver: './bin/semver' },
6142 verbose link bins '/opt/local/lib/node_modules/yo/node_modules/update-notifier/node_modules/.bin',
6142 verbose link bins false ]
6143 verbose linkMans semver@2.0.11
6144 verbose rebuildBundles semver@2.0.11
6145 verbose linkBins sigmund@1.0.0
6146 verbose linkMans sigmund@1.0.0
6147 verbose rebuildBundles sigmund@1.0.0
6148 verbose readDependencies using package.json deps
6149 info install sigmund@1.0.0
6150 verbose readDependencies using package.json deps
6151 silly gunzTarPerm extractEntry queryString/getQuery.js
6152 silly gunzTarPerm extractEntry queryString/parse.js
6153 info postinstall sigmund@1.0.0
6154 verbose cache add [ 'buffers@~0.1.1', null ]
6155 verbose cache add name=undefined spec="buffers@~0.1.1" args=["buffers@~0.1.1",null]
6156 verbose parsed url { protocol: null,
6156 verbose parsed url slashes: null,
6156 verbose parsed url auth: null,
6156 verbose parsed url host: null,
6156 verbose parsed url port: null,
6156 verbose parsed url hostname: null,
6156 verbose parsed url hash: null,
6156 verbose parsed url search: null,
6156 verbose parsed url query: null,
6156 verbose parsed url pathname: 'buffers@~0.1.1',
6156 verbose parsed url path: 'buffers@~0.1.1',
6156 verbose parsed url href: 'buffers@~0.1.1' }
6157 verbose cache add name="buffers" spec="~0.1.1" args=["buffers","~0.1.1"]
6158 verbose parsed url { protocol: null,
6158 verbose parsed url slashes: null,
6158 verbose parsed url auth: null,
6158 verbose parsed url host: null,
6158 verbose parsed url port: null,
6158 verbose parsed url hostname: null,
6158 verbose parsed url hash: null,
6158 verbose parsed url search: null,
6158 verbose parsed url query: null,
6158 verbose parsed url pathname: '~0.1.1',
6158 verbose parsed url path: '~0.1.1',
6158 verbose parsed url href: '~0.1.1' }
6159 verbose addNamed [ 'buffers', '~0.1.1' ]
6160 verbose addNamed [ null, '>=0.1.1-0 <0.2.0-0' ]
6161 silly lockFile 6cb02831-buffers-0-1-1 buffers@~0.1.1
6162 verbose lock buffers@~0.1.1 /Users/vaca/.npm/6cb02831-buffers-0-1-1.lock
6163 silly gunzTarPerm extractEntry test/trim.js
6164 silly gunzTarPerm extractEntry test/__playground/throbber.formatted.js
6165 silly gunzTarPerm extractEntry inherits.js
6166 silly gunzTarPerm extractEntry inherits_browser.js
6167 silly gunzTarPerm extractEntry test.js
6168 silly gunzTarPerm extractEntry block-stream.js
6169 silly gunzTarPerm extractEntry bench/block-stream-pause.js
6170 silly gunzTarPerm extractEntry bench/block-stream.js
6171 silly gunzTarPerm extractEntry bench/dropper-pause.js
6172 silly gunzTarPerm extractEntry bench/dropper.js
6173 silly gunzTarPerm extractEntry test/basic.js
6174 silly gunzTarPerm extractEntry test/nopad-thorough.js
6175 silly gunzTarPerm extractEntry test/nopad.js
6176 silly gunzTarPerm extractEntry test/pause-resume.js
6177 silly gunzTarPerm extractEntry test/thorough.js
6178 silly gunzTarPerm extractEntry test/two-stream.js
6179 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/package.json
6180 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/.npmignore
6181 info install semver@2.0.11
6182 verbose about to build /opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/minimatch
6183 info build /opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules/minimatch
6184 verbose linkStuff [ true,
6184 verbose linkStuff '/opt/local/lib/node_modules',
6184 verbose linkStuff false,
6184 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/fstream-ignore/node_modules' ]
6185 info linkStuff minimatch@0.2.12
6186 silly addNameRange { name: 'buffers', range: '>=0.1.1-0 <0.2.0-0', hasData: false }
6187 info postinstall semver@2.0.11
6188 verbose linkBins minimatch@0.2.12
6189 verbose linkMans minimatch@0.2.12
6190 verbose rebuildBundles minimatch@0.2.12
6191 verbose rebuildBundles [ 'sigmund' ]
6192 info install minimatch@0.2.12
6193 info postinstall minimatch@0.2.12
6194 verbose url raw buffers
6195 verbose url resolving [ 'https://registry.npmjs.org/', './buffers' ]
6196 verbose url resolved https://registry.npmjs.org/buffers
6197 info trying registry request attempt 1 at 11:55:13
6198 verbose etag "7Y5O1GVVJAKW01XA3NQBMQIQZ"
6199 http GET https://registry.npmjs.org/buffers
6200 silly gunzTarPerm extractEntry queryString/setParam.js
6201 silly gunzTarPerm extractEntry CONTRIBUTING.md
6202 silly gunzTarPerm extractEntry dist/lodash.backbone.min.js
6203 verbose about to build /opt/local/lib/node_modules/bower/node_modules/fstream-ignore
6204 info build /opt/local/lib/node_modules/bower/node_modules/fstream-ignore
6205 verbose linkStuff [ true,
6205 verbose linkStuff '/opt/local/lib/node_modules',
6205 verbose linkStuff false,
6205 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules' ]
6206 info linkStuff fstream-ignore@0.0.7
6207 silly gunzTarPerm extractEntry test/__playground/throbber.js
6208 verbose linkBins fstream-ignore@0.0.7
6209 verbose linkMans fstream-ignore@0.0.7
6210 verbose rebuildBundles fstream-ignore@0.0.7
6211 silly lockFile 328c9c53-ules-glob-node-modules-minimatch tar:///opt/local/lib/node_modules/bower/node_modules/glob/node_modules/minimatch
6212 silly lockFile 328c9c53-ules-glob-node-modules-minimatch tar:///opt/local/lib/node_modules/bower/node_modules/glob/node_modules/minimatch
6213 verbose rebuildBundles [ 'inherits', 'minimatch' ]
6214 info install fstream-ignore@0.0.7
6215 silly lockFile 5e70848b-npm-minimatch-0-2-12-package-tgz tar:///Users/vaca/.npm/minimatch/0.2.12/package.tgz
6216 silly lockFile 5e70848b-npm-minimatch-0-2-12-package-tgz tar:///Users/vaca/.npm/minimatch/0.2.12/package.tgz
6217 http 304 https://registry.npmjs.org/wordwrap
6218 silly registry.get cb [ 304,
6218 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
6218 silly registry.get etag: '"3HPX5BQ0X4U2A3KJNTK2473OZ"',
6218 silly registry.get date: 'Fri, 02 Aug 2013 15:55:13 GMT',
6218 silly registry.get 'content-length': '0' } ]
6219 verbose etag wordwrap from cache
6220 info postinstall fstream-ignore@0.0.7
6221 http 304 https://registry.npmjs.org/minimist
6222 silly registry.get cb [ 304,
6222 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
6222 silly registry.get etag: '"7EWZB9PB494506Z315Y50UZ2J"',
6222 silly registry.get date: 'Fri, 02 Aug 2013 15:55:13 GMT',
6222 silly registry.get 'content-length': '0' } ]
6223 verbose etag minimist from cache
6224 http 304 https://registry.npmjs.org/over
6225 silly registry.get cb [ 304,
6225 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
6225 silly registry.get etag: '"3BWVOKGX0XCHW63R0S51T4UC"',
6225 silly registry.get date: 'Fri, 02 Aug 2013 15:55:13 GMT',
6225 silly registry.get 'content-length': '0' } ]
6226 verbose etag over from cache
6227 http 304 https://registry.npmjs.org/slice-stream/0.0.0
6228 silly registry.get cb [ 304,
6228 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
6228 silly registry.get etag: '"EHM8P5F1EXVH86MMM2NFBWE8O"',
6228 silly registry.get date: 'Fri, 02 Aug 2013 15:55:13 GMT',
6228 silly registry.get 'content-length': '0' } ]
6229 verbose etag slice-stream/0.0.0 from cache
6230 silly gunzTarPerm extractEntry random/choice.js
6231 silly gunzTarPerm extractEntry random/guid.js
6232 info preinstall minimatch@0.2.12
6233 verbose readDependencies using package.json deps
6234 silly addNameRange number 2 { name: 'wordwrap', range: '>=0.0.2-0 <0.1.0-0', hasData: true }
6235 silly addNameRange versions [ 'wordwrap', [ '0.0.1', '0.0.2' ] ]
6236 verbose addNamed [ 'wordwrap', '0.0.2' ]
6237 verbose addNamed [ '0.0.2', '0.0.2' ]
6238 silly lockFile 24a694c8-wordwrap-0-0-2 wordwrap@0.0.2
6239 verbose lock wordwrap@0.0.2 /Users/vaca/.npm/24a694c8-wordwrap-0-0-2.lock
6240 verbose readDependencies using package.json deps
6241 silly addNameRange number 2 { name: 'minimist', range: '>=0.0.1-0 <0.1.0-0', hasData: true }
6242 silly addNameRange versions [ 'minimist', [ '0.0.0', '0.0.1' ] ]
6243 verbose addNamed [ 'minimist', '0.0.1' ]
6244 verbose addNamed [ '0.0.1', '0.0.1' ]
6245 silly lockFile c85dfd09-minimist-0-0-1 minimist@0.0.1
6246 verbose lock minimist@0.0.1 /Users/vaca/.npm/c85dfd09-minimist-0-0-1.lock
6247 silly addNameRange number 2 { name: 'over', range: '>=0.0.5-0 <0.1.0-0', hasData: true }
6248 silly addNameRange versions [ 'over', [ '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5' ] ]
6249 verbose addNamed [ 'over', '0.0.5' ]
6250 verbose addNamed [ '0.0.5', '0.0.5' ]
6251 silly lockFile ce741ccb-over-0-0-5 over@0.0.5
6252 verbose lock over@0.0.5 /Users/vaca/.npm/ce741ccb-over-0-0-5.lock
6253 verbose cache add [ 'sigmund@~1.0.0', null ]
6254 verbose cache add name=undefined spec="sigmund@~1.0.0" args=["sigmund@~1.0.0",null]
6255 verbose parsed url { protocol: null,
6255 verbose parsed url slashes: null,
6255 verbose parsed url auth: null,
6255 verbose parsed url host: null,
6255 verbose parsed url port: null,
6255 verbose parsed url hostname: null,
6255 verbose parsed url hash: null,
6255 verbose parsed url search: null,
6255 verbose parsed url query: null,
6255 verbose parsed url pathname: 'sigmund@~1.0.0',
6255 verbose parsed url path: 'sigmund@~1.0.0',
6255 verbose parsed url href: 'sigmund@~1.0.0' }
6256 verbose cache add name="sigmund" spec="~1.0.0" args=["sigmund","~1.0.0"]
6257 verbose parsed url { protocol: null,
6257 verbose parsed url slashes: null,
6257 verbose parsed url auth: null,
6257 verbose parsed url host: null,
6257 verbose parsed url port: null,
6257 verbose parsed url hostname: null,
6257 verbose parsed url hash: null,
6257 verbose parsed url search: null,
6257 verbose parsed url query: null,
6257 verbose parsed url pathname: '~1.0.0',
6257 verbose parsed url path: '~1.0.0',
6257 verbose parsed url href: '~1.0.0' }
6258 verbose addNamed [ 'sigmund', '~1.0.0' ]
6259 verbose addNamed [ null, '>=1.0.0-0 <1.1.0-0' ]
6260 silly lockFile 584a4a05-sigmund-1-0-0 sigmund@~1.0.0
6261 verbose lock sigmund@~1.0.0 /Users/vaca/.npm/584a4a05-sigmund-1-0-0.lock
6262 silly gunzTarPerm extractEntry random/rand.js
6263 silly gunzTarPerm extractEntry random/randBit.js
6264 silly addNameRange { name: 'sigmund', range: '>=1.0.0-0 <1.1.0-0', hasData: false }
6265 silly gunzTarPerm modes [ '755', '644' ]
6266 verbose registry.get sigmund not expired, no request
6267 silly addNameRange number 2 { name: 'sigmund', range: '>=1.0.0-0 <1.1.0-0', hasData: true }
6268 silly addNameRange versions [ 'sigmund', [ '1.0.0' ] ]
6269 verbose addNamed [ 'sigmund', '1.0.0' ]
6270 verbose addNamed [ '1.0.0', '1.0.0' ]
6271 silly lockFile 7b2d1244-sigmund-1-0-0 sigmund@1.0.0
6272 verbose lock sigmund@1.0.0 /Users/vaca/.npm/7b2d1244-sigmund-1-0-0.lock
6273 silly gunzTarPerm extractEntry random/randHex.js
6274 silly gunzTarPerm extractEntry random/randInt.js
6275 silly lockFile 7b2d1244-sigmund-1-0-0 sigmund@1.0.0
6276 silly lockFile 7b2d1244-sigmund-1-0-0 sigmund@1.0.0
6277 silly gunzTarPerm extractEntry package.json
6278 silly lockFile 584a4a05-sigmund-1-0-0 sigmund@~1.0.0
6279 silly lockFile 584a4a05-sigmund-1-0-0 sigmund@~1.0.0
6280 silly lockFile 4514261c-slice-stream-0-0-0 slice-stream@0.0.0
6281 silly lockFile 4514261c-slice-stream-0-0-0 slice-stream@0.0.0
6282 silly lockFile 24a694c8-wordwrap-0-0-2 wordwrap@0.0.2
6283 silly lockFile 24a694c8-wordwrap-0-0-2 wordwrap@0.0.2
6284 silly lockFile c85dfd09-minimist-0-0-1 minimist@0.0.1
6285 silly lockFile c85dfd09-minimist-0-0-1 minimist@0.0.1
6286 silly lockFile ce741ccb-over-0-0-5 over@0.0.5
6287 silly lockFile ce741ccb-over-0-0-5 over@0.0.5
6288 silly resolved [ { name: 'sigmund',
6288 silly resolved version: '1.0.0',
6288 silly resolved description: 'Quick and dirty signatures for Objects.',
6288 silly resolved main: 'sigmund.js',
6288 silly resolved directories: { test: 'test' },
6288 silly resolved dependencies: {},
6288 silly resolved devDependencies: { tap: '~0.3.0' },
6288 silly resolved scripts: { test: 'tap test/*.js', bench: 'node bench.js' },
6288 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/sigmund' },
6288 silly resolved keywords: [ 'object', 'signature', 'key', 'data', 'psychoanalysis' ],
6288 silly resolved author:
6288 silly resolved { name: 'Isaac Z. Schlueter',
6288 silly resolved email: 'i@izs.me',
6288 silly resolved url: 'http://blog.izs.me/' },
6288 silly resolved license: 'BSD',
6288 silly resolved readme: '# sigmund\n\nQuick and dirty signatures for Objects.\n\nThis is like a much faster `deepEquals` comparison, which returns a\nstring key suitable for caches and the like.\n\n## Usage\n\n```javascript\nfunction doSomething (someObj) {\n var key = sigmund(someObj, maxDepth) // max depth defaults to 10\n var cached = cache.get(key)\n if (cached) return cached)\n\n var result = expensiveCalculation(someObj)\n cache.set(key, result)\n return result\n}\n```\n\nThe resulting key will be as unique and reproducible as calling\n`JSON.stringify` or `util.inspect` on the object, but is much faster.\nIn order to achieve this speed, some differences are glossed over.\nFor example, the object `{0:\'foo\'}` will be treated identically to the\narray `[\'foo\']`.\n\nAlso, just as there is no way to summon the soul from the scribblings\nof a cocain-addled psychoanalyst, there is no way to revive the object\nfrom the signature string that sigmund gives you. In fact, it\'s\nbarely even readable.\n\nAs with `sys.inspect` and `JSON.stringify`, larger objects will\nproduce larger signature strings.\n\nBecause sigmund is a bit less strict than the more thorough\nalternatives, the strings will be shorter, and also there is a\nslightly higher chance for collisions. For example, these objects\nhave the same signature:\n\n var obj1 = {a:\'b\',c:/def/,g:[\'h\',\'i\',{j:\'\',k:\'l\'}]}\n var obj2 = {a:\'b\',c:\'/def/\',g:[\'h\',\'i\',\'{jkl\']}\n\nLike a good Freudian, sigmund is most effective when you already have\nsome understanding of what you\'re looking for. It can help you help\nyourself, but you must be willing to do some work as well.\n\nCycles are handled, and cyclical objects are silently omitted (though\nthe key is included in the signature output.)\n\nThe second argument is the maximum depth, which defaults to 10,\nbecause that is the maximum object traversal depth covered by most\ninsurance carriers.\n',
6288 silly resolved readmeFilename: 'README.md',
6288 silly resolved bugs: { url: 'https://github.com/isaacs/sigmund/issues' },
6288 silly resolved _id: 'sigmund@1.0.0',
6288 silly resolved _from: 'sigmund@~1.0.0' } ]
6289 info install sigmund@1.0.0 into /opt/local/lib/node_modules/bower/node_modules/glob/node_modules/minimatch
6290 info installOne sigmund@1.0.0
6291 silly lockFile 8bd42136-wordwrap-0-0-2 wordwrap@~0.0.2
6292 silly lockFile 8bd42136-wordwrap-0-0-2 wordwrap@~0.0.2
6293 silly lockFile 872bef99-over-0-0-5 over@~0.0.5
6294 silly lockFile 872bef99-over-0-0-5 over@~0.0.5
6295 info /opt/local/lib/node_modules/bower/node_modules/glob/node_modules/minimatch/node_modules/sigmund unbuild
6296 silly lockFile 7a855a96-minimist-0-0-1 minimist@~0.0.1
6297 silly lockFile 7a855a96-minimist-0-0-1 minimist@~0.0.1
6298 silly resolved [ { name: 'slice-stream',
6298 silly resolved version: '0.0.0',
6298 silly resolved description: 'Pipe data through a stream until some fixed length is reached, then callback.',
6298 silly resolved main: 'slicestream.js',
6298 silly resolved directories: { example: 'examples', test: 'test' },
6298 silly resolved scripts: { test: './node_modules/.bin/tap ./test/*.js' },
6298 silly resolved repository:
6298 silly resolved { type: 'git',
6298 silly resolved url: 'https://github.com/EvanOxfeld/slice-stream.git' },
6298 silly resolved keywords: [ 'slice', 'fixed', 'length', 'stream', 'split' ],
6298 silly resolved author: { name: 'Evan Oxfeld', email: 'eoxfeld@gmail.com' },
6298 silly resolved license: 'MIT',
6298 silly resolved readmeFilename: 'README.md',
6298 silly resolved gitHead: '9054cbab67c2e71ab9241dbe88401c786b270f8e',
6298 silly resolved dependencies: { 'readable-stream': '~1.0.2' },
6298 silly resolved devDependencies: { 'stream-buffers': '~0.2.4', tap: '~0.4.0' },
6298 silly resolved readme: 'slice-stream [![Build Status](https://travis-ci.org/EvanOxfeld/slice-stream.png)](https://travis-ci.org/EvanOxfeld/slice-stream)\n============\n\nPipe data through a stream until some fixed length is reached, then callback.\n\n## Installation\n\n```bash\n$ npm install slice-stream\n```\n\n## Quick Example\n\n### End stream once a fixed length has been reached\n\n```javascript\nvar SliceStream = require(\'../\');\nvar streamBuffers = require("stream-buffers");\n\nvar ss = new SliceStream({ length: 5}, function (buf, sliceEnd, extra) {\n if (!sliceEnd) {\n return this.push(buf);\n }\n this.push(buf);\n return this.push(null); //signal end of data\n});\n\nvar sourceStream = new streamBuffers.ReadableStreamBuffer();\nsourceStream.put("Hello World");\nvar writableStream = new streamBuffers.WritableStreamBuffer();\n\nsourceStream\n .pipe(ss)\n .pipe(writableStream)\n .once(\'close\', function () {\n var str = writableStream.getContentsAsString(\'utf8\');\n console.log(\'First 5 bytes piped:\', "\'" + str + "\'");\n sourceStream.destroy();\n });\n\n//Output\n//Piped data before pattern occurs: \'Hello\'\n```\n\n## License\n\nMIT',
6298 silly resolved bugs: { url: 'https://github.com/EvanOxfeld/slice-stream/issues' },
6298 silly resolved _id: 'slice-stream@0.0.0',
6298 silly resolved _from: 'slice-stream@0.0.0' },
6298 silly resolved { name: 'over',
6298 silly resolved description: 'JavaScript function overloading framework.',
6298 silly resolved author: { name: 'Joe Ferner', email: 'joe@fernsroth.com' },
6298 silly resolved keywords: [ 'function', 'overload' ],
6298 silly resolved version: '0.0.5',
6298 silly resolved bugs: { url: 'https://github.com/nearinfinity/node-over/issues' },
6298 silly resolved license: 'MIT',
6298 silly resolved repository:
6298 silly resolved { type: 'git',
6298 silly resolved url: 'https://github.com/nearinfinity/node-over.git' },
6298 silly resolved main: 'overload.js',
6298 silly resolved scripts: { test: './node_modules/.bin/nodeunit test' },
6298 silly resolved dependencies: {},
6298 silly resolved devDependencies: { nodeunit: '~0.7.4' },
6298 silly resolved optionalDependencies: {},
6298 silly resolved engines: { node: '*' },
6298 silly resolved readme: '# over\n\nJavaScript function overloading framework.\n\n## Installation\n\n```bash\n$ npm install over\n```\n\n## Quick Examples\n\n```javascript\nvar over = require(\'over\');\n\nvar myfn = over([\n [over.string, function (str) { console.log(\'got a string\' + str); }],\n [over.string, over.numberOptionalWithDefault(5), over.callbackOptional, function (str, number, callback) {\n console.log(\'got a string and a number and a callback\');\n callback(str, number);\n }],\n function() {\n // default function if nothing else matches\n }\n]);\n```\n\n## Builtin Test functions\n\n* func\n* funcOptional\n* funcOptionalWithDefault\n* callbackOptional // Will return an empty function of parameter is not given\n* string\n* stringOptional\n* stringOptionalWithDefault\n* number\n* numberOptional\n* numberOptionalWithDefault\n* array\n* arrayOptional\n* arrayOptionalWithDefault\n* object\n* objectOptional\n* objectOptionalWithDefault\n\nThe built in optional functions with a suffix of "WithDefault" take a default value as well which will be used if\nit is not passed in.\n\n```javascript\nvar myfn = over([\n [over.stringOptionalWithDefault(\'default value\'), function (str) { console.log(\'got a string\' + str); }],\n]);\n```\n\n## Write your own test functions\n\nSimple optional test\n\n```javascript\nfunction greaterThan5Optional(arg) {\n return arg > 5;\n}\ngreaterThan5Optional.optional = true; // mark it as an optional parameter\n\nvar myfn = over([\n [greaterThan5Optional, function (v) { console.log(\'got a value\' + v); }]\n]);\n```\n\nOptional test with default\n\n```javascript\nfunction greaterThan5OptionalWithDefault(def) {\n return function greaterThan5OptionalWithDefault2(arg) {\n if (arg === undefined) {\n return { defaultValue: def };\n }\n return arg > 5;\n }\n}\ngreaterThan5OptionalWithDefault.optional = true; // mark it as an optional parameter\n\nvar myfn = over([\n [greaterThan5OptionalWithDefault, function (v) { console.log(\'got a value\' + v); }]\n]);\n```\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2012 Near Infinity Corporation\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\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n',
6298 silly resolved readmeFilename: 'README.md',
6298 silly resolved _id: 'over@0.0.5',
6298 silly resolved _from: 'over@~0.0.5' } ]
6299 info install slice-stream@0.0.0 into /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream
6300 info install over@0.0.5 into /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream
6301 info installOne slice-stream@0.0.0
6302 info installOne over@0.0.5
6303 info /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream/node_modules/slice-stream unbuild
6304 info /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream/node_modules/over unbuild
6305 silly gunzTarPerm extractEntry README.md
6306 silly gunzTarPerm extractEntry LICENSE
6307 silly resolved [ { name: 'wordwrap',
6307 silly resolved description: 'Wrap those words. Show them at what columns to start and stop.',
6307 silly resolved version: '0.0.2',
6307 silly resolved repository:
6307 silly resolved { type: 'git',
6307 silly resolved url: 'git://github.com/substack/node-wordwrap.git' },
6307 silly resolved main: './index.js',
6307 silly resolved keywords: [ 'word', 'wrap', 'rule', 'format', 'column' ],
6307 silly resolved directories: { lib: '.', example: 'example', test: 'test' },
6307 silly resolved scripts: { test: 'expresso' },
6307 silly resolved devDependencies: { expresso: '=0.7.x' },
6307 silly resolved engines: { node: '>=0.4.0' },
6307 silly resolved license: 'MIT/X11',
6307 silly resolved author:
6307 silly resolved { name: 'James Halliday',
6307 silly resolved email: 'mail@substack.net',
6307 silly resolved url: 'http://substack.net' },
6307 silly resolved readme: 'wordwrap\n========\n\nWrap your words.\n\nexample\n=======\n\nmade out of meat\n----------------\n\nmeat.js\n\n var wrap = require(\'wordwrap\')(15);\n console.log(wrap(\'You and your whole family are made out of meat.\'));\n\noutput:\n\n You and your\n whole family\n are made out\n of meat.\n\ncentered\n--------\n\ncenter.js\n\n var wrap = require(\'wordwrap\')(20, 60);\n console.log(wrap(\n \'At long last the struggle and tumult was over.\'\n + \' The machines had finally cast off their oppressors\'\n + \' and were finally free to roam the cosmos.\'\n + \'\\n\'\n + \'Free of purpose, free of obligation.\'\n + \' Just drifting through emptiness.\'\n + \' The sun was just another point of light.\'\n ));\n\noutput:\n\n At long last the struggle and tumult\n was over. The machines had finally cast\n off their oppressors and were finally\n free to roam the cosmos.\n Free of purpose, free of obligation.\n Just drifting through emptiness. The\n sun was just another point of light.\n\nmethods\n=======\n\nvar wrap = require(\'wordwrap\');\n\nwrap(stop), wrap(start, stop, params={mode:"soft"})\n---------------------------------------------------\n\nReturns a function that takes a string and returns a new string.\n\nPad out lines with spaces out to column `start` and then wrap until column\n`stop`. If a word is longer than `stop - start` characters it will overflow.\n\nIn "soft" mode, split chunks by `/(\\S+\\s+/` and don\'t break up chunks which are\nlonger than `stop - start`, in "hard" mode, split chunks with `/\\b/` and break\nup chunks longer than `stop - start`.\n\nwrap.hard(start, stop)\n----------------------\n\nLike `wrap()` but with `params.mode = "hard"`.\n',
6307 silly resolved readmeFilename: 'README.markdown',
6307 silly resolved bugs: { url: 'https://github.com/substack/node-wordwrap/issues' },
6307 silly resolved _id: 'wordwrap@0.0.2',
6307 silly resolved _from: 'wordwrap@~0.0.2' },
6307 silly resolved { name: 'minimist',
6307 silly resolved version: '0.0.1',
6307 silly resolved description: 'parse argument options',
6307 silly resolved main: 'index.js',
6307 silly resolved devDependencies: { tape: '~1.0.4', tap: '~0.4.0' },
6307 silly resolved scripts: { test: 'tap test/*.js' },
6307 silly resolved testling: { files: 'test/*.js', browsers: [Object] },
6307 silly resolved repository: { type: 'git', url: 'git://github.com/substack/minimist.git' },
6307 silly resolved homepage: 'https://github.com/substack/minimist',
6307 silly resolved keywords: [ 'argv', 'getopt', 'parser', 'optimist' ],
6307 silly resolved author:
6307 silly resolved { name: 'James Halliday',
6307 silly resolved email: 'mail@substack.net',
6307 silly resolved url: 'http://substack.net' },
6307 silly resolved license: 'MIT',
6307 silly resolved readme: '# minimist\n\nparse argument options\n\nThis module is the guts of optimist\'s argument parser without all the\nfanciful decoration.\n\n[![browser support](https://ci.testling.com/substack/minimist.png)](http://ci.testling.com/substack/minimist)\n\n[![build status](https://secure.travis-ci.org/substack/minimist.png)](http://travis-ci.org/substack/minimist)\n\n# example\n\n``` js\nvar argv = require(\'minimist\')(process.argv.slice(2));\nconsole.dir(argv);\n```\n\n```\n$ node example/parse.js -a beep -b boop\n{ _: [], a: \'beep\', b: \'boop\' }\n```\n\n```\n$ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz\n{ _: [ \'foo\', \'bar\', \'baz\' ],\n x: 3,\n y: 4,\n n: 5,\n a: true,\n b: true,\n c: true,\n beep: \'boop\' }\n```\n\n# methods\n\n``` js\nvar parseArgs = require(\'minimist\')\n```\n\n## var argv = parseArgs(args, opts={})\n\nReturn an argument object `argv` populated with the array arguments from `args`.\n\n`argv._` contains all the arguments that didn\'t have an option associated with\nthem.\n\nNumeric-looking arguments will be returned as numbers unless `opts.string` or\n`opts.boolean` is set for that argument name.\n\nAny arguments after `\'--\'` will not be parsed and will end up in `argv._`.\n\noptions can be:\n\n* `opts.string` - a string or array of strings argument names to always treat as\nstrings\n* `opts.boolean` - a string or array of strings to always treat as booleans\n* `opts.alias` - an object mapping string names to strings or arrays of string\nargument names to use as aliases\n* `opts.default` - an object mapping string argument names to default values\n\n# install\n\nWith [npm](https://npmjs.org) do:\n\n```\nnpm install minimist\n```\n\n# license\n\nMIT\n',
6307 silly resolved readmeFilename: 'readme.markdown',
6307 silly resolved bugs: { url: 'https://github.com/substack/minimist/issues' },
6307 silly resolved _id: 'minimist@0.0.1',
6307 silly resolved _from: 'minimist@~0.0.1' } ]
6308 info install wordwrap@0.0.2 into /opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist
6309 info install minimist@0.0.1 into /opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist
6310 info installOne wordwrap@0.0.2
6311 info installOne minimist@0.0.1
6312 verbose tar unpack /Users/vaca/.npm/sigmund/1.0.0/package.tgz
6313 silly lockFile fb240b7e-s-minimatch-node-modules-sigmund tar:///opt/local/lib/node_modules/bower/node_modules/glob/node_modules/minimatch/node_modules/sigmund
6314 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/glob/node_modules/minimatch/node_modules/sigmund /Users/vaca/.npm/fb240b7e-s-minimatch-node-modules-sigmund.lock
6315 silly lockFile caef6e7b-ca-npm-sigmund-1-0-0-package-tgz tar:///Users/vaca/.npm/sigmund/1.0.0/package.tgz
6316 verbose lock tar:///Users/vaca/.npm/sigmund/1.0.0/package.tgz /Users/vaca/.npm/caef6e7b-ca-npm-sigmund-1-0-0-package-tgz.lock
6317 info /opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist/node_modules/wordwrap unbuild
6318 info /opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist/node_modules/minimist unbuild
6319 silly gunzTarPerm extractEntry dist/lodash.min.js
6320 silly gunzTarPerm extractEntry dist/lodash.mobile.js
6321 verbose tar unpack /Users/vaca/.npm/slice-stream/0.0.0/package.tgz
6322 silly lockFile 00ccd5a5-stream-node-modules-slice-stream tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream/node_modules/slice-stream
6323 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream/node_modules/slice-stream /Users/vaca/.npm/00ccd5a5-stream-node-modules-slice-stream.lock
6324 silly lockFile 607e79d5-m-slice-stream-0-0-0-package-tgz tar:///Users/vaca/.npm/slice-stream/0.0.0/package.tgz
6325 verbose lock tar:///Users/vaca/.npm/slice-stream/0.0.0/package.tgz /Users/vaca/.npm/607e79d5-m-slice-stream-0-0-0-package-tgz.lock
6326 silly gunzTarPerm extractEntry random/randSign.js
6327 silly gunzTarPerm extractEntry random/random.js
6328 verbose tar unpack /Users/vaca/.npm/over/0.0.5/package.tgz
6329 silly lockFile 51d20daa-les-pullstream-node-modules-over tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream/node_modules/over
6330 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream/node_modules/over /Users/vaca/.npm/51d20daa-les-pullstream-node-modules-over.lock
6331 silly lockFile 3f7fa5a1--vaca-npm-over-0-0-5-package-tgz tar:///Users/vaca/.npm/over/0.0.5/package.tgz
6332 verbose lock tar:///Users/vaca/.npm/over/0.0.5/package.tgz /Users/vaca/.npm/3f7fa5a1--vaca-npm-over-0-0-5-package-tgz.lock
6333 silly gunzTarPerm modes [ '755', '644' ]
6334 verbose tar unpack /Users/vaca/.npm/wordwrap/0.0.2/package.tgz
6335 silly lockFile 11c79223-s-optimist-node-modules-wordwrap tar:///opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist/node_modules/wordwrap
6336 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist/node_modules/wordwrap /Users/vaca/.npm/11c79223-s-optimist-node-modules-wordwrap.lock
6337 silly lockFile 8b7d5cca-a-npm-wordwrap-0-0-2-package-tgz tar:///Users/vaca/.npm/wordwrap/0.0.2/package.tgz
6338 verbose lock tar:///Users/vaca/.npm/wordwrap/0.0.2/package.tgz /Users/vaca/.npm/8b7d5cca-a-npm-wordwrap-0-0-2-package-tgz.lock
6339 verbose tar unpack /Users/vaca/.npm/minimist/0.0.1/package.tgz
6340 silly lockFile 18d39d65-s-optimist-node-modules-minimist tar:///opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist/node_modules/minimist
6341 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist/node_modules/minimist /Users/vaca/.npm/18d39d65-s-optimist-node-modules-minimist.lock
6342 silly lockFile 6da76a4c-a-npm-minimist-0-0-1-package-tgz tar:///Users/vaca/.npm/minimist/0.0.1/package.tgz
6343 verbose lock tar:///Users/vaca/.npm/minimist/0.0.1/package.tgz /Users/vaca/.npm/6da76a4c-a-npm-minimist-0-0-1-package-tgz.lock
6344 silly gunzTarPerm modes [ '755', '644' ]
6345 silly gunzTarPerm modes [ '755', '644' ]
6346 silly gunzTarPerm modes [ '755', '644' ]
6347 silly gunzTarPerm modes [ '755', '644' ]
6348 silly gunzTarPerm extractEntry package.json
6349 silly gunzTarPerm extractEntry minimatch.js
6350 silly gunzTarPerm extractEntry package.json
6351 silly gunzTarPerm extractEntry doc/number.md
6352 silly gunzTarPerm extractEntry doc/array.md
6353 silly gunzTarPerm extractEntry package.json
6354 silly gunzTarPerm extractEntry package.json
6355 silly gunzTarPerm extractEntry README.md
6356 silly gunzTarPerm extractEntry LICENSE
6357 silly gunzTarPerm extractEntry package.json
6358 silly gunzTarPerm extractEntry dist/lodash.mobile.min.js
6359 silly gunzTarPerm extractEntry README.md
6360 silly gunzTarPerm extractEntry LICENSE
6361 silly gunzTarPerm extractEntry .npmignore
6362 silly gunzTarPerm extractEntry README.md
6363 silly gunzTarPerm extractEntry .npmignore
6364 silly gunzTarPerm extractEntry index.js
6365 silly lockFile b06b64a6-odules-tar-node-modules-inherits tar:///opt/local/lib/node_modules/bower/node_modules/tar/node_modules/inherits
6366 silly lockFile b06b64a6-odules-tar-node-modules-inherits tar:///opt/local/lib/node_modules/bower/node_modules/tar/node_modules/inherits
6367 silly gunzTarPerm extractEntry LICENSE
6368 silly gunzTarPerm extractEntry index.js
6369 silly lockFile 069571be-a-npm-inherits-2-0-0-package-tgz tar:///Users/vaca/.npm/inherits/2.0.0/package.tgz
6370 silly lockFile 069571be-a-npm-inherits-2-0-0-package-tgz tar:///Users/vaca/.npm/inherits/2.0.0/package.tgz
6371 silly gunzTarPerm extractEntry doc/date.md
6372 silly gunzTarPerm extractEntry doc/function.md
6373 silly gunzTarPerm extractEntry bench.js
6374 silly gunzTarPerm extractEntry sigmund.js
6375 silly gunzTarPerm extractEntry test/basic.js
6376 info preinstall inherits@2.0.0
6377 silly gunzTarPerm extractEntry slicestream.js
6378 silly gunzTarPerm extractEntry .idea/.name
6379 silly gunzTarPerm extractEntry .idea/encodings.xml
6380 silly gunzTarPerm extractEntry .idea/misc.xml
6381 silly gunzTarPerm extractEntry .idea/modules.xml
6382 silly gunzTarPerm extractEntry .idea/scopes/scope_settings.xml
6383 silly gunzTarPerm extractEntry .idea/slice-stream.iml
6384 silly gunzTarPerm extractEntry .idea/vcs.xml
6385 silly gunzTarPerm extractEntry .idea/workspace.xml
6386 silly gunzTarPerm extractEntry .travis.yml
6387 silly gunzTarPerm extractEntry examples/until.js
6388 silly gunzTarPerm extractEntry test/until.js
6389 silly gunzTarPerm extractEntry overload.js
6390 silly gunzTarPerm extractEntry test/defFunctionsTest.js
6391 silly gunzTarPerm extractEntry test/overloadTest.js
6392 verbose readDependencies using package.json deps
6393 silly gunzTarPerm extractEntry README.markdown
6394 silly gunzTarPerm extractEntry example/center.js
6395 silly gunzTarPerm extractEntry example/meat.js
6396 silly gunzTarPerm extractEntry test/break.js
6397 silly gunzTarPerm extractEntry test/wrap.js
6398 silly gunzTarPerm extractEntry test/idleness.txt
6399 verbose readDependencies using package.json deps
6400 silly resolved []
6401 verbose about to build /opt/local/lib/node_modules/bower/node_modules/tar/node_modules/inherits
6402 info build /opt/local/lib/node_modules/bower/node_modules/tar/node_modules/inherits
6403 verbose linkStuff [ true,
6403 verbose linkStuff '/opt/local/lib/node_modules',
6403 verbose linkStuff false,
6403 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/tar/node_modules' ]
6404 info linkStuff inherits@2.0.0
6405 silly gunzTarPerm extractEntry .travis.yml
6406 verbose linkBins inherits@2.0.0
6407 verbose linkMans inherits@2.0.0
6408 verbose rebuildBundles inherits@2.0.0
6409 silly gunzTarPerm extractEntry doc/lang.md
6410 silly gunzTarPerm extractEntry doc/math.md
6411 silly gunzTarPerm extractEntry test/basic.js
6412 silly gunzTarPerm extractEntry test/brace-expand.js
6413 info install inherits@2.0.0
6414 info postinstall inherits@2.0.0
6415 silly gunzTarPerm extractEntry doc/collection.md
6416 silly gunzTarPerm extractEntry doc/object.md
6417 silly gunzTarPerm extractEntry example/parse.js
6418 silly gunzTarPerm extractEntry readme.markdown
6419 silly gunzTarPerm extractEntry test/caching.js
6420 silly gunzTarPerm extractEntry test/defaults.js
6421 silly lockFile 8f276327-es-bower-node-modules-handlebars tar:///opt/local/lib/node_modules/bower/node_modules/handlebars
6422 silly lockFile 8f276327-es-bower-node-modules-handlebars tar:///opt/local/lib/node_modules/bower/node_modules/handlebars
6423 silly lockFile 5a8c3e16-pm-handlebars-1-0-12-package-tgz tar:///Users/vaca/.npm/handlebars/1.0.12/package.tgz
6424 silly lockFile 5a8c3e16-pm-handlebars-1-0-12-package-tgz tar:///Users/vaca/.npm/handlebars/1.0.12/package.tgz
6425 silly gunzTarPerm extractEntry doc/queryString.md
6426 silly gunzTarPerm extractEntry doc/random.md
6427 http 304 https://registry.npmjs.org/buffers
6428 silly registry.get cb [ 304,
6428 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
6428 silly registry.get etag: '"7Y5O1GVVJAKW01XA3NQBMQIQZ"',
6428 silly registry.get date: 'Fri, 02 Aug 2013 15:55:13 GMT',
6428 silly registry.get 'content-length': '0' } ]
6429 verbose etag buffers from cache
6430 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/License
6431 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Makefile
6432 info preinstall handlebars@1.0.12
6433 verbose readDependencies using package.json deps
6434 verbose readDependencies using package.json deps
6435 silly addNameRange number 2 { name: 'buffers', range: '>=0.1.1-0 <0.2.0-0', hasData: true }
6436 silly addNameRange versions [ 'buffers',
6436 silly addNameRange [ '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.1.0', '0.1.1' ] ]
6437 verbose addNamed [ 'buffers', '0.1.1' ]
6438 verbose addNamed [ '0.1.1', '0.1.1' ]
6439 silly lockFile 053c3510-buffers-0-1-1 buffers@0.1.1
6440 verbose lock buffers@0.1.1 /Users/vaca/.npm/053c3510-buffers-0-1-1.lock
6441 verbose cache add [ 'optimist@~0.3', null ]
6442 verbose cache add name=undefined spec="optimist@~0.3" args=["optimist@~0.3",null]
6443 verbose parsed url { protocol: null,
6443 verbose parsed url slashes: null,
6443 verbose parsed url auth: null,
6443 verbose parsed url host: null,
6443 verbose parsed url port: null,
6443 verbose parsed url hostname: null,
6443 verbose parsed url hash: null,
6443 verbose parsed url search: null,
6443 verbose parsed url query: null,
6443 verbose parsed url pathname: 'optimist@~0.3',
6443 verbose parsed url path: 'optimist@~0.3',
6443 verbose parsed url href: 'optimist@~0.3' }
6444 verbose cache add name="optimist" spec="~0.3" args=["optimist","~0.3"]
6445 verbose parsed url { protocol: null,
6445 verbose parsed url slashes: null,
6445 verbose parsed url auth: null,
6445 verbose parsed url host: null,
6445 verbose parsed url port: null,
6445 verbose parsed url hostname: null,
6445 verbose parsed url hash: null,
6445 verbose parsed url search: null,
6445 verbose parsed url query: null,
6445 verbose parsed url pathname: '~0.3',
6445 verbose parsed url path: '~0.3',
6445 verbose parsed url href: '~0.3' }
6446 verbose addNamed [ 'optimist', '~0.3' ]
6447 verbose addNamed [ null, '>=0.3.0-0 <0.4.0-0' ]
6448 silly lockFile c01d0ea5-optimist-0-3 optimist@~0.3
6449 verbose lock optimist@~0.3 /Users/vaca/.npm/c01d0ea5-optimist-0-3.lock
6450 verbose cache add [ 'uglify-js@~2.3', null ]
6451 verbose cache add name=undefined spec="uglify-js@~2.3" args=["uglify-js@~2.3",null]
6452 verbose parsed url { protocol: null,
6452 verbose parsed url slashes: null,
6452 verbose parsed url auth: null,
6452 verbose parsed url host: null,
6452 verbose parsed url port: null,
6452 verbose parsed url hostname: null,
6452 verbose parsed url hash: null,
6452 verbose parsed url search: null,
6452 verbose parsed url query: null,
6452 verbose parsed url pathname: 'uglify-js@~2.3',
6452 verbose parsed url path: 'uglify-js@~2.3',
6452 verbose parsed url href: 'uglify-js@~2.3' }
6453 verbose cache add name="uglify-js" spec="~2.3" args=["uglify-js","~2.3"]
6454 verbose parsed url { protocol: null,
6454 verbose parsed url slashes: null,
6454 verbose parsed url auth: null,
6454 verbose parsed url host: null,
6454 verbose parsed url port: null,
6454 verbose parsed url hostname: null,
6454 verbose parsed url hash: null,
6454 verbose parsed url search: null,
6454 verbose parsed url query: null,
6454 verbose parsed url pathname: '~2.3',
6454 verbose parsed url path: '~2.3',
6454 verbose parsed url href: '~2.3' }
6455 verbose addNamed [ 'uglify-js', '~2.3' ]
6456 verbose addNamed [ null, '>=2.3.0-0 <2.4.0-0' ]
6457 silly lockFile fb0c1b8a-uglify-js-2-3 uglify-js@~2.3
6458 verbose lock uglify-js@~2.3 /Users/vaca/.npm/fb0c1b8a-uglify-js-2-3.lock
6459 silly gunzTarPerm extractEntry doc/string.md
6460 silly gunzTarPerm extractEntry test/dash.js
6461 silly gunzTarPerm extractEntry test/default_bool.js
6462 silly addNameRange { name: 'optimist', range: '>=0.3.0-0 <0.4.0-0', hasData: false }
6463 silly addNameRange { name: 'uglify-js',
6463 silly addNameRange range: '>=2.3.0-0 <2.4.0-0',
6463 silly addNameRange hasData: false }
6464 verbose registry.get optimist not expired, no request
6465 silly addNameRange number 2 { name: 'optimist', range: '>=0.3.0-0 <0.4.0-0', hasData: true }
6466 silly addNameRange versions [ 'optimist',
6466 silly addNameRange [ '0.0.1',
6466 silly addNameRange '0.0.2',
6466 silly addNameRange '0.0.4',
6466 silly addNameRange '0.0.5',
6466 silly addNameRange '0.0.6',
6466 silly addNameRange '0.0.7',
6466 silly addNameRange '0.1.0',
6466 silly addNameRange '0.1.1',
6466 silly addNameRange '0.1.2',
6466 silly addNameRange '0.1.3',
6466 silly addNameRange '0.1.4',
6466 silly addNameRange '0.1.5',
6466 silly addNameRange '0.1.6',
6466 silly addNameRange '0.1.7',
6466 silly addNameRange '0.1.8',
6466 silly addNameRange '0.1.9',
6466 silly addNameRange '0.0.3',
6466 silly addNameRange '0.2.0',
6466 silly addNameRange '0.2.1',
6466 silly addNameRange '0.2.2',
6466 silly addNameRange '0.2.3',
6466 silly addNameRange '0.2.4',
6466 silly addNameRange '0.2.5',
6466 silly addNameRange '0.2.6',
6466 silly addNameRange '0.2.7',
6466 silly addNameRange '0.2.8',
6466 silly addNameRange '0.3.0',
6466 silly addNameRange '0.3.1',
6466 silly addNameRange '0.3.3',
6466 silly addNameRange '0.3.4',
6466 silly addNameRange '0.3.5',
6466 silly addNameRange '0.3.6',
6466 silly addNameRange '0.3.7',
6466 silly addNameRange '0.4.0',
6466 silly addNameRange '0.5.0',
6466 silly addNameRange '0.5.1',
6466 silly addNameRange '0.5.2',
6466 silly addNameRange '0.6.0' ] ]
6467 verbose addNamed [ 'optimist', '0.3.7' ]
6468 verbose addNamed [ '0.3.7', '0.3.7' ]
6469 silly lockFile 090e1d8d-optimist-0-3-7 optimist@0.3.7
6470 verbose lock optimist@0.3.7 /Users/vaca/.npm/090e1d8d-optimist-0-3-7.lock
6471 verbose url raw uglify-js
6472 verbose url resolving [ 'https://registry.npmjs.org/', './uglify-js' ]
6473 verbose url resolved https://registry.npmjs.org/uglify-js
6474 info trying registry request attempt 1 at 11:55:13
6475 verbose etag "4N3IJZ994RON6RVI69JTTVWYU"
6476 http GET https://registry.npmjs.org/uglify-js
6477 silly gunzTarPerm extractEntry test/long.js
6478 silly gunzTarPerm extractEntry test/parse.js
6479 silly gunzTarPerm extractEntry doc/time.md
6480 silly gunzTarPerm extractEntry src/time.js
6481 silly lockFile 053c3510-buffers-0-1-1 buffers@0.1.1
6482 silly lockFile 053c3510-buffers-0-1-1 buffers@0.1.1
6483 silly lockFile 6cb02831-buffers-0-1-1 buffers@~0.1.1
6484 silly lockFile 6cb02831-buffers-0-1-1 buffers@~0.1.1
6485 silly resolved [ { name: 'buffers',
6485 silly resolved description: 'Treat a collection of Buffers as a single contiguous partially mutable Buffer.',
6485 silly resolved version: '0.1.1',
6485 silly resolved repository:
6485 silly resolved { type: 'git',
6485 silly resolved url: 'http://github.com/substack/node-buffers.git' },
6485 silly resolved author:
6485 silly resolved { name: 'James Halliday',
6485 silly resolved email: 'mail@substack.net',
6485 silly resolved url: 'http://substack.net' },
6485 silly resolved main: './index',
6485 silly resolved scripts: { test: 'expresso' },
6485 silly resolved engines: { node: '>=0.2.0' },
6485 silly resolved readme: 'buffers\n=======\n\nTreat a collection of Buffers as a single contiguous partially mutable Buffer.\n\nWhere possible, operations execute without creating a new Buffer and copying\neverything over.\n\nThis is a cleaner more Buffery rehash of\n[bufferlist](http://github.com/substack/node-bufferlist).\n\nexample\n=======\n\nslice\n-----\n\n var Buffers = require(\'buffers\');\n var bufs = Buffers();\n bufs.push(new Buffer([1,2,3]));\n bufs.push(new Buffer([4,5,6,7]));\n bufs.push(new Buffer([8,9,10]));\n \n console.dir(bufs.slice(2,8))\n\noutput:\n\n $ node examples/slice.js \n <Buffer 03 04 05 06 07 08>\n\nsplice\n------\n\n var Buffers = require(\'buffers\');\n var bufs = Buffers([\n new Buffer([1,2,3]),\n new Buffer([4,5,6,7]),\n new Buffer([8,9,10]),\n ]);\n \n var removed = bufs.splice(2, 4);\n console.dir({\n removed : removed.slice(),\n bufs : bufs.slice(),\n });\n \noutput:\n\n $ node examples/splice.js\n { removed: <Buffer 03 04 05 06>,\n bufs: <Buffer 01 02 07 08 09 0a> }\n\nmethods\n=======\n\nBuffers(buffers)\n----------------\n\nCreate a Buffers with an array of `Buffer`s if specified, else `[]`.\n\n.push(buf1, buf2...)\n--------------------\n\nPush buffers onto the end. Just like `Array.prototype.push`.\n\n.unshift(buf1, buf2...)\n-----------------------\n\nUnshift buffers onto the head. Just like `Array.prototype.unshift`.\n\n.slice(i, j)\n------------\n\nSlice a range out of the buffer collection as if it were contiguous.\nWorks just like the `Array.prototype.slice` version.\n\n.splice(i, howMany, replacements)\n---------------------------------\n\nSplice the buffer collection as if it were contiguous.\nWorks just like `Array.prototype.splice`, even the replacement part!\n\n.copy(dst, dstStart, start, end)\n--------------------------------\n\nCopy the buffer collection as if it were contiguous to the `dst` Buffer with the\nspecified bounds.\nWorks just like `Buffer.prototype.copy`.\n\n.get(i)\n-------\n\nGet a single element at index `i`.\n\n.set(i, x)\n----------\n\nSet a single element\'s value at index `i`.\n\n.indexOf(needle, offset)\n----------\n\nFind a string or buffer `needle` inside the buffer collection. Returns\nthe position of the search string or -1 if the search string was not\nfound.\n\nProvide an `offset` to skip that number of characters at the beginning\nof the search. This can be used to find additional matches.\n\nThis function will return the correct result even if the search string\nis spread out over multiple internal buffers.\n\n.toBuffer()\n-----------\n\nConvert the buffer collection to a single buffer, equivalent with `.slice(0, buffers.length)`;\n\n.toString(encoding, start, end)\n-----------\n\nDecodes and returns a string from the buffer collection.\nWorks just like `Buffer.prototype.toString`\n',
6485 silly resolved readmeFilename: 'README.markdown',
6485 silly resolved bugs: { url: 'https://github.com/substack/node-buffers/issues' },
6485 silly resolved _id: 'buffers@0.1.1',
6485 silly resolved _from: 'buffers@~0.1.1' } ]
6486 info install buffers@0.1.1 into /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/match-stream
6487 info installOne buffers@0.1.1
6488 info /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/match-stream/node_modules/buffers unbuild
6489 silly gunzTarPerm extractEntry test/parse_modified.js
6490 silly gunzTarPerm extractEntry test/short.js
6491 silly gunzTarPerm extractEntry src/collection.js
6492 silly gunzTarPerm extractEntry src/random.js
6493 verbose tar unpack /Users/vaca/.npm/buffers/0.1.1/package.tgz
6494 silly lockFile 1a915a4d-atch-stream-node-modules-buffers tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/match-stream/node_modules/buffers
6495 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/match-stream/node_modules/buffers /Users/vaca/.npm/1a915a4d-atch-stream-node-modules-buffers.lock
6496 silly lockFile a59a7f98-ca-npm-buffers-0-1-1-package-tgz tar:///Users/vaca/.npm/buffers/0.1.1/package.tgz
6497 verbose lock tar:///Users/vaca/.npm/buffers/0.1.1/package.tgz /Users/vaca/.npm/a59a7f98-ca-npm-buffers-0-1-1-package-tgz.lock
6498 silly lockFile 090e1d8d-optimist-0-3-7 optimist@0.3.7
6499 silly lockFile 090e1d8d-optimist-0-3-7 optimist@0.3.7
6500 silly lockFile c01d0ea5-optimist-0-3 optimist@~0.3
6501 silly lockFile c01d0ea5-optimist-0-3 optimist@~0.3
6502 silly gunzTarPerm modes [ '755', '644' ]
6503 silly gunzTarPerm extractEntry src/date.js
6504 silly gunzTarPerm extractEntry src/queryString.js
6505 silly gunzTarPerm extractEntry package.json
6506 silly gunzTarPerm extractEntry test/whitespace.js
6507 silly gunzTarPerm extractEntry index.js
6508 silly gunzTarPerm extractEntry README.markdown
6509 silly gunzTarPerm extractEntry src/string.js
6510 silly gunzTarPerm extractEntry src/index.js
6511 silly lockFile 2e06bcd9--inquirer-node-modules-cli-color tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/cli-color
6512 silly lockFile 2e06bcd9--inquirer-node-modules-cli-color tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/cli-color
6513 silly lockFile 237e6bed--npm-cli-color-0-2-2-package-tgz tar:///Users/vaca/.npm/cli-color/0.2.2/package.tgz
6514 silly lockFile 237e6bed--npm-cli-color-0-2-2-package-tgz tar:///Users/vaca/.npm/cli-color/0.2.2/package.tgz
6515 silly gunzTarPerm extractEntry examples/slice.js
6516 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/Readme.md
6517 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js
6518 info preinstall cli-color@0.2.2
6519 silly lockFile fb240b7e-s-minimatch-node-modules-sigmund tar:///opt/local/lib/node_modules/bower/node_modules/glob/node_modules/minimatch/node_modules/sigmund
6520 silly lockFile fb240b7e-s-minimatch-node-modules-sigmund tar:///opt/local/lib/node_modules/bower/node_modules/glob/node_modules/minimatch/node_modules/sigmund
6521 silly gunzTarPerm extractEntry dist/lodash.compat.min.js
6522 silly lockFile caef6e7b-ca-npm-sigmund-1-0-0-package-tgz tar:///Users/vaca/.npm/sigmund/1.0.0/package.tgz
6523 silly lockFile caef6e7b-ca-npm-sigmund-1-0-0-package-tgz tar:///Users/vaca/.npm/sigmund/1.0.0/package.tgz
6524 silly gunzTarPerm extractEntry src/object.js
6525 silly gunzTarPerm extractEntry src/lang.js
6526 verbose readDependencies using package.json deps
6527 verbose readDependencies using package.json deps
6528 verbose cache add [ 'es5-ext@~0.9.1', null ]
6529 verbose cache add name=undefined spec="es5-ext@~0.9.1" args=["es5-ext@~0.9.1",null]
6530 verbose parsed url { protocol: null,
6530 verbose parsed url slashes: null,
6530 verbose parsed url auth: null,
6530 verbose parsed url host: null,
6530 verbose parsed url port: null,
6530 verbose parsed url hostname: null,
6530 verbose parsed url hash: null,
6530 verbose parsed url search: null,
6530 verbose parsed url query: null,
6530 verbose parsed url pathname: 'es5-ext@~0.9.1',
6530 verbose parsed url path: 'es5-ext@~0.9.1',
6530 verbose parsed url href: 'es5-ext@~0.9.1' }
6531 verbose cache add name="es5-ext" spec="~0.9.1" args=["es5-ext","~0.9.1"]
6532 verbose parsed url { protocol: null,
6532 verbose parsed url slashes: null,
6532 verbose parsed url auth: null,
6532 verbose parsed url host: null,
6532 verbose parsed url port: null,
6532 verbose parsed url hostname: null,
6532 verbose parsed url hash: null,
6532 verbose parsed url search: null,
6532 verbose parsed url query: null,
6532 verbose parsed url pathname: '~0.9.1',
6532 verbose parsed url path: '~0.9.1',
6532 verbose parsed url href: '~0.9.1' }
6533 verbose addNamed [ 'es5-ext', '~0.9.1' ]
6534 verbose addNamed [ null, '>=0.9.1-0 <0.10.0-0' ]
6535 silly lockFile c4420997-es5-ext-0-9-1 es5-ext@~0.9.1
6536 verbose lock es5-ext@~0.9.1 /Users/vaca/.npm/c4420997-es5-ext-0-9-1.lock
6537 verbose cache add [ 'memoizee@0.2.x', null ]
6538 verbose cache add name=undefined spec="memoizee@0.2.x" args=["memoizee@0.2.x",null]
6539 verbose parsed url { protocol: null,
6539 verbose parsed url slashes: null,
6539 verbose parsed url auth: null,
6539 verbose parsed url host: null,
6539 verbose parsed url port: null,
6539 verbose parsed url hostname: null,
6539 verbose parsed url hash: null,
6539 verbose parsed url search: null,
6539 verbose parsed url query: null,
6539 verbose parsed url pathname: 'memoizee@0.2.x',
6539 verbose parsed url path: 'memoizee@0.2.x',
6539 verbose parsed url href: 'memoizee@0.2.x' }
6540 verbose cache add name="memoizee" spec="0.2.x" args=["memoizee","0.2.x"]
6541 verbose parsed url { protocol: null,
6541 verbose parsed url slashes: null,
6541 verbose parsed url auth: null,
6541 verbose parsed url host: null,
6541 verbose parsed url port: null,
6541 verbose parsed url hostname: null,
6541 verbose parsed url hash: null,
6541 verbose parsed url search: null,
6541 verbose parsed url query: null,
6541 verbose parsed url pathname: '0.2.x',
6541 verbose parsed url path: '0.2.x',
6541 verbose parsed url href: '0.2.x' }
6542 verbose addNamed [ 'memoizee', '0.2.x' ]
6543 verbose addNamed [ null, '>=0.2.0-0 <0.3.0-0' ]
6544 silly lockFile d023dacd-memoizee-0-2-x memoizee@0.2.x
6545 verbose lock memoizee@0.2.x /Users/vaca/.npm/d023dacd-memoizee-0-2-x.lock
6546 info preinstall sigmund@1.0.0
6547 silly addNameRange { name: 'es5-ext', range: '>=0.9.1-0 <0.10.0-0', hasData: false }
6548 silly addNameRange { name: 'memoizee', range: '>=0.2.0-0 <0.3.0-0', hasData: false }
6549 verbose readDependencies using package.json deps
6550 verbose readDependencies using package.json deps
6551 silly resolved []
6552 verbose about to build /opt/local/lib/node_modules/bower/node_modules/glob/node_modules/minimatch/node_modules/sigmund
6553 info build /opt/local/lib/node_modules/bower/node_modules/glob/node_modules/minimatch/node_modules/sigmund
6554 verbose linkStuff [ true,
6554 verbose linkStuff '/opt/local/lib/node_modules',
6554 verbose linkStuff false,
6554 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/glob/node_modules/minimatch/node_modules' ]
6555 info linkStuff sigmund@1.0.0
6556 silly gunzTarPerm extractEntry src/number.js
6557 silly gunzTarPerm extractEntry src/array.js
6558 verbose linkBins sigmund@1.0.0
6559 verbose linkMans sigmund@1.0.0
6560 verbose rebuildBundles sigmund@1.0.0
6561 verbose url raw es5-ext
6562 verbose url resolving [ 'https://registry.npmjs.org/', './es5-ext' ]
6563 verbose url resolved https://registry.npmjs.org/es5-ext
6564 info trying registry request attempt 1 at 11:55:13
6565 verbose etag "BMGHOMSZWUAPJWU8C6A7FNFYW"
6566 http GET https://registry.npmjs.org/es5-ext
6567 verbose url raw memoizee
6568 verbose url resolving [ 'https://registry.npmjs.org/', './memoizee' ]
6569 verbose url resolved https://registry.npmjs.org/memoizee
6570 info trying registry request attempt 1 at 11:55:13
6571 verbose etag "95PMSYJFRRNTFD8S3SGDTI4ER"
6572 http GET https://registry.npmjs.org/memoizee
6573 info install sigmund@1.0.0
6574 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/common.js
6575 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/run.js
6576 info postinstall sigmund@1.0.0
6577 silly lockFile 51d20daa-les-pullstream-node-modules-over tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream/node_modules/over
6578 silly lockFile 51d20daa-les-pullstream-node-modules-over tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream/node_modules/over
6579 verbose about to build /opt/local/lib/node_modules/bower/node_modules/glob/node_modules/minimatch
6580 info build /opt/local/lib/node_modules/bower/node_modules/glob/node_modules/minimatch
6581 verbose linkStuff [ true,
6581 verbose linkStuff '/opt/local/lib/node_modules',
6581 verbose linkStuff false,
6581 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/glob/node_modules' ]
6582 info linkStuff minimatch@0.2.12
6583 silly lockFile 3f7fa5a1--vaca-npm-over-0-0-5-package-tgz tar:///Users/vaca/.npm/over/0.0.5/package.tgz
6584 silly lockFile 3f7fa5a1--vaca-npm-over-0-0-5-package-tgz tar:///Users/vaca/.npm/over/0.0.5/package.tgz
6585 silly lockFile 3166b65e-dules-bower-node-modules-request tar:///opt/local/lib/node_modules/bower/node_modules/request
6586 silly lockFile 3166b65e-dules-bower-node-modules-request tar:///opt/local/lib/node_modules/bower/node_modules/request
6587 verbose linkBins minimatch@0.2.12
6588 verbose linkMans minimatch@0.2.12
6589 verbose rebuildBundles minimatch@0.2.12
6590 silly gunzTarPerm extractEntry examples/splice.js
6591 silly gunzTarPerm extractEntry test/buffers.js
6592 silly gunzTarPerm extractEntry src/function.js
6593 silly gunzTarPerm extractEntry src/math.js
6594 silly lockFile 16f7f539-a-npm-request-2-25-0-package-tgz tar:///Users/vaca/.npm/request/2.25.0/package.tgz
6595 silly lockFile 16f7f539-a-npm-request-2-25-0-package-tgz tar:///Users/vaca/.npm/request/2.25.0/package.tgz
6596 verbose rebuildBundles [ 'sigmund' ]
6597 info install minimatch@0.2.12
6598 info preinstall over@0.0.5
6599 info postinstall minimatch@0.2.12
6600 silly gunzTarPerm extractEntry dist/lodash.backbone.js
6601 silly gunzTarPerm extractEntry dist/lodash.compat.js
6602 info preinstall request@2.25.0
6603 verbose about to build /opt/local/lib/node_modules/bower/node_modules/glob
6604 info build /opt/local/lib/node_modules/bower/node_modules/glob
6605 verbose linkStuff [ true,
6605 verbose linkStuff '/opt/local/lib/node_modules',
6605 verbose linkStuff false,
6605 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules' ]
6606 info linkStuff glob@3.2.6
6607 verbose readDependencies using package.json deps
6608 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-http-upload.js
6609 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream-auto-pause.js
6610 verbose readDependencies using package.json deps
6611 silly resolved []
6612 verbose about to build /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream/node_modules/over
6613 info build /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream/node_modules/over
6614 verbose linkStuff [ true,
6614 verbose linkStuff '/opt/local/lib/node_modules',
6614 verbose linkStuff false,
6614 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream/node_modules' ]
6615 info linkStuff over@0.0.5
6616 verbose linkBins glob@3.2.6
6617 verbose linkMans glob@3.2.6
6618 verbose rebuildBundles glob@3.2.6
6619 verbose readDependencies using package.json deps
6620 verbose rebuildBundles [ 'inherits', 'minimatch' ]
6621 info install glob@3.2.6
6622 verbose linkBins over@0.0.5
6623 verbose linkMans over@0.0.5
6624 verbose rebuildBundles over@0.0.5
6625 silly gunzTarPerm extractEntry src/random/choice.js
6626 silly gunzTarPerm extractEntry src/random/guid.js
6627 verbose readDependencies using package.json deps
6628 silly lockFile d1b61ecc-odules-unzip-node-modules-binary tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/binary
6629 silly lockFile d1b61ecc-odules-unzip-node-modules-binary tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/binary
6630 info install over@0.0.5
6631 info postinstall glob@3.2.6
6632 silly lockFile 56319e70-aca-npm-binary-0-3-0-package-tgz tar:///Users/vaca/.npm/binary/0.3.0/package.tgz
6633 silly lockFile 56319e70-aca-npm-binary-0-3-0-package-tgz tar:///Users/vaca/.npm/binary/0.3.0/package.tgz
6634 verbose cache add [ 'http-signature@~0.10.0', null ]
6635 verbose cache add name=undefined spec="http-signature@~0.10.0" args=["http-signature@~0.10.0",null]
6636 verbose parsed url { protocol: null,
6636 verbose parsed url slashes: null,
6636 verbose parsed url auth: null,
6636 verbose parsed url host: null,
6636 verbose parsed url port: null,
6636 verbose parsed url hostname: null,
6636 verbose parsed url hash: null,
6636 verbose parsed url search: null,
6636 verbose parsed url query: null,
6636 verbose parsed url pathname: 'http-signature@~0.10.0',
6636 verbose parsed url path: 'http-signature@~0.10.0',
6636 verbose parsed url href: 'http-signature@~0.10.0' }
6637 verbose cache add name="http-signature" spec="~0.10.0" args=["http-signature","~0.10.0"]
6638 verbose parsed url { protocol: null,
6638 verbose parsed url slashes: null,
6638 verbose parsed url auth: null,
6638 verbose parsed url host: null,
6638 verbose parsed url port: null,
6638 verbose parsed url hostname: null,
6638 verbose parsed url hash: null,
6638 verbose parsed url search: null,
6638 verbose parsed url query: null,
6638 verbose parsed url pathname: '~0.10.0',
6638 verbose parsed url path: '~0.10.0',
6638 verbose parsed url href: '~0.10.0' }
6639 verbose addNamed [ 'http-signature', '~0.10.0' ]
6640 verbose addNamed [ null, '>=0.10.0-0 <0.11.0-0' ]
6641 silly lockFile 8170f292-http-signature-0-10-0 http-signature@~0.10.0
6642 verbose lock http-signature@~0.10.0 /Users/vaca/.npm/8170f292-http-signature-0-10-0.lock
6643 verbose cache add [ 'hawk@~1.0.0', null ]
6644 verbose cache add name=undefined spec="hawk@~1.0.0" args=["hawk@~1.0.0",null]
6645 verbose parsed url { protocol: null,
6645 verbose parsed url slashes: null,
6645 verbose parsed url auth: null,
6645 verbose parsed url host: null,
6645 verbose parsed url port: null,
6645 verbose parsed url hostname: null,
6645 verbose parsed url hash: null,
6645 verbose parsed url search: null,
6645 verbose parsed url query: null,
6645 verbose parsed url pathname: 'hawk@~1.0.0',
6645 verbose parsed url path: 'hawk@~1.0.0',
6645 verbose parsed url href: 'hawk@~1.0.0' }
6646 verbose cache add name="hawk" spec="~1.0.0" args=["hawk","~1.0.0"]
6647 verbose parsed url { protocol: null,
6647 verbose parsed url slashes: null,
6647 verbose parsed url auth: null,
6647 verbose parsed url host: null,
6647 verbose parsed url port: null,
6647 verbose parsed url hostname: null,
6647 verbose parsed url hash: null,
6647 verbose parsed url search: null,
6647 verbose parsed url query: null,
6647 verbose parsed url pathname: '~1.0.0',
6647 verbose parsed url path: '~1.0.0',
6647 verbose parsed url href: '~1.0.0' }
6648 verbose addNamed [ 'hawk', '~1.0.0' ]
6649 verbose addNamed [ null, '>=1.0.0-0 <1.1.0-0' ]
6650 silly lockFile 327094b8-hawk-1-0-0 hawk@~1.0.0
6651 verbose lock hawk@~1.0.0 /Users/vaca/.npm/327094b8-hawk-1-0-0.lock
6652 silly lockFile 60c0ea27-es-tar-node-modules-block-stream tar:///opt/local/lib/node_modules/bower/node_modules/tar/node_modules/block-stream
6653 silly lockFile 60c0ea27-es-tar-node-modules-block-stream tar:///opt/local/lib/node_modules/bower/node_modules/tar/node_modules/block-stream
6654 info postinstall over@0.0.5
6655 verbose cache add [ 'aws-sign@~0.3.0', null ]
6656 verbose cache add name=undefined spec="aws-sign@~0.3.0" args=["aws-sign@~0.3.0",null]
6657 verbose parsed url { protocol: null,
6657 verbose parsed url slashes: null,
6657 verbose parsed url auth: null,
6657 verbose parsed url host: null,
6657 verbose parsed url port: null,
6657 verbose parsed url hostname: null,
6657 verbose parsed url hash: null,
6657 verbose parsed url search: null,
6657 verbose parsed url query: null,
6657 verbose parsed url pathname: 'aws-sign@~0.3.0',
6657 verbose parsed url path: 'aws-sign@~0.3.0',
6657 verbose parsed url href: 'aws-sign@~0.3.0' }
6658 verbose cache add name="aws-sign" spec="~0.3.0" args=["aws-sign","~0.3.0"]
6659 verbose parsed url { protocol: null,
6659 verbose parsed url slashes: null,
6659 verbose parsed url auth: null,
6659 verbose parsed url host: null,
6659 verbose parsed url port: null,
6659 verbose parsed url hostname: null,
6659 verbose parsed url hash: null,
6659 verbose parsed url search: null,
6659 verbose parsed url query: null,
6659 verbose parsed url pathname: '~0.3.0',
6659 verbose parsed url path: '~0.3.0',
6659 verbose parsed url href: '~0.3.0' }
6660 verbose addNamed [ 'aws-sign', '~0.3.0' ]
6661 verbose addNamed [ null, '>=0.3.0-0 <0.4.0-0' ]
6662 silly lockFile 514b1d97-aws-sign-0-3-0 aws-sign@~0.3.0
6663 verbose lock aws-sign@~0.3.0 /Users/vaca/.npm/514b1d97-aws-sign-0-3-0.lock
6664 verbose cache add [ 'oauth-sign@~0.3.0', null ]
6665 verbose cache add name=undefined spec="oauth-sign@~0.3.0" args=["oauth-sign@~0.3.0",null]
6666 verbose parsed url { protocol: null,
6666 verbose parsed url slashes: null,
6666 verbose parsed url auth: null,
6666 verbose parsed url host: null,
6666 verbose parsed url port: null,
6666 verbose parsed url hostname: null,
6666 verbose parsed url hash: null,
6666 verbose parsed url search: null,
6666 verbose parsed url query: null,
6666 verbose parsed url pathname: 'oauth-sign@~0.3.0',
6666 verbose parsed url path: 'oauth-sign@~0.3.0',
6666 verbose parsed url href: 'oauth-sign@~0.3.0' }
6667 verbose cache add name="oauth-sign" spec="~0.3.0" args=["oauth-sign","~0.3.0"]
6668 verbose parsed url { protocol: null,
6668 verbose parsed url slashes: null,
6668 verbose parsed url auth: null,
6668 verbose parsed url host: null,
6668 verbose parsed url port: null,
6668 verbose parsed url hostname: null,
6668 verbose parsed url hash: null,
6668 verbose parsed url search: null,
6668 verbose parsed url query: null,
6668 verbose parsed url pathname: '~0.3.0',
6668 verbose parsed url path: '~0.3.0',
6668 verbose parsed url href: '~0.3.0' }
6669 verbose addNamed [ 'oauth-sign', '~0.3.0' ]
6670 verbose addNamed [ null, '>=0.3.0-0 <0.4.0-0' ]
6671 silly lockFile 7fb5c7f1-oauth-sign-0-3-0 oauth-sign@~0.3.0
6672 verbose lock oauth-sign@~0.3.0 /Users/vaca/.npm/7fb5c7f1-oauth-sign-0-3-0.lock
6673 verbose cache add [ 'cookie-jar@~0.3.0', null ]
6674 verbose cache add name=undefined spec="cookie-jar@~0.3.0" args=["cookie-jar@~0.3.0",null]
6675 verbose parsed url { protocol: null,
6675 verbose parsed url slashes: null,
6675 verbose parsed url auth: null,
6675 verbose parsed url host: null,
6675 verbose parsed url port: null,
6675 verbose parsed url hostname: null,
6675 verbose parsed url hash: null,
6675 verbose parsed url search: null,
6675 verbose parsed url query: null,
6675 verbose parsed url pathname: 'cookie-jar@~0.3.0',
6675 verbose parsed url path: 'cookie-jar@~0.3.0',
6675 verbose parsed url href: 'cookie-jar@~0.3.0' }
6676 verbose cache add name="cookie-jar" spec="~0.3.0" args=["cookie-jar","~0.3.0"]
6677 verbose parsed url { protocol: null,
6677 verbose parsed url slashes: null,
6677 verbose parsed url auth: null,
6677 verbose parsed url host: null,
6677 verbose parsed url port: null,
6677 verbose parsed url hostname: null,
6677 verbose parsed url hash: null,
6677 verbose parsed url search: null,
6677 verbose parsed url query: null,
6677 verbose parsed url pathname: '~0.3.0',
6677 verbose parsed url path: '~0.3.0',
6677 verbose parsed url href: '~0.3.0' }
6678 verbose addNamed [ 'cookie-jar', '~0.3.0' ]
6679 verbose addNamed [ null, '>=0.3.0-0 <0.4.0-0' ]
6680 silly lockFile 4c61eb43-cookie-jar-0-3-0 cookie-jar@~0.3.0
6681 verbose lock cookie-jar@~0.3.0 /Users/vaca/.npm/4c61eb43-cookie-jar-0-3-0.lock
6682 verbose cache add [ 'node-uuid@~1.4.0', null ]
6683 verbose cache add name=undefined spec="node-uuid@~1.4.0" args=["node-uuid@~1.4.0",null]
6684 verbose parsed url { protocol: null,
6684 verbose parsed url slashes: null,
6684 verbose parsed url auth: null,
6684 verbose parsed url host: null,
6684 verbose parsed url port: null,
6684 verbose parsed url hostname: null,
6684 verbose parsed url hash: null,
6684 verbose parsed url search: null,
6684 verbose parsed url query: null,
6684 verbose parsed url pathname: 'node-uuid@~1.4.0',
6684 verbose parsed url path: 'node-uuid@~1.4.0',
6684 verbose parsed url href: 'node-uuid@~1.4.0' }
6685 verbose cache add name="node-uuid" spec="~1.4.0" args=["node-uuid","~1.4.0"]
6686 verbose parsed url { protocol: null,
6686 verbose parsed url slashes: null,
6686 verbose parsed url auth: null,
6686 verbose parsed url host: null,
6686 verbose parsed url port: null,
6686 verbose parsed url hostname: null,
6686 verbose parsed url hash: null,
6686 verbose parsed url search: null,
6686 verbose parsed url query: null,
6686 verbose parsed url pathname: '~1.4.0',
6686 verbose parsed url path: '~1.4.0',
6686 verbose parsed url href: '~1.4.0' }
6687 verbose addNamed [ 'node-uuid', '~1.4.0' ]
6688 verbose addNamed [ null, '>=1.4.0-0 <1.5.0-0' ]
6689 silly lockFile f662725f-node-uuid-1-4-0 node-uuid@~1.4.0
6690 verbose lock node-uuid@~1.4.0 /Users/vaca/.npm/f662725f-node-uuid-1-4-0.lock
6691 silly lockFile 05c9da8e-m-block-stream-0-0-7-package-tgz tar:///Users/vaca/.npm/block-stream/0.0.7/package.tgz
6692 silly lockFile 05c9da8e-m-block-stream-0-0-7-package-tgz tar:///Users/vaca/.npm/block-stream/0.0.7/package.tgz
6693 silly addNameRange { name: 'http-signature',
6693 silly addNameRange range: '>=0.10.0-0 <0.11.0-0',
6693 silly addNameRange hasData: false }
6694 silly gunzTarPerm extractEntry dist/lodash.compat.min.js
6695 verbose cache add [ 'mime@~1.2.9', null ]
6696 verbose cache add name=undefined spec="mime@~1.2.9" args=["mime@~1.2.9",null]
6697 verbose parsed url { protocol: null,
6697 verbose parsed url slashes: null,
6697 verbose parsed url auth: null,
6697 verbose parsed url host: null,
6697 verbose parsed url port: null,
6697 verbose parsed url hostname: null,
6697 verbose parsed url hash: null,
6697 verbose parsed url search: null,
6697 verbose parsed url query: null,
6697 verbose parsed url pathname: 'mime@~1.2.9',
6697 verbose parsed url path: 'mime@~1.2.9',
6697 verbose parsed url href: 'mime@~1.2.9' }
6698 verbose cache add name="mime" spec="~1.2.9" args=["mime","~1.2.9"]
6699 verbose parsed url { protocol: null,
6699 verbose parsed url slashes: null,
6699 verbose parsed url auth: null,
6699 verbose parsed url host: null,
6699 verbose parsed url port: null,
6699 verbose parsed url hostname: null,
6699 verbose parsed url hash: null,
6699 verbose parsed url search: null,
6699 verbose parsed url query: null,
6699 verbose parsed url pathname: '~1.2.9',
6699 verbose parsed url path: '~1.2.9',
6699 verbose parsed url href: '~1.2.9' }
6700 verbose addNamed [ 'mime', '~1.2.9' ]
6701 verbose addNamed [ null, '>=1.2.9-0 <1.3.0-0' ]
6702 silly lockFile ccf24a67-mime-1-2-9 mime@~1.2.9
6703 verbose lock mime@~1.2.9 /Users/vaca/.npm/ccf24a67-mime-1-2-9.lock
6704 verbose cache add [ 'form-data@~0.1.0', null ]
6705 verbose cache add name=undefined spec="form-data@~0.1.0" args=["form-data@~0.1.0",null]
6706 verbose parsed url { protocol: null,
6706 verbose parsed url slashes: null,
6706 verbose parsed url auth: null,
6706 verbose parsed url host: null,
6706 verbose parsed url port: null,
6706 verbose parsed url hostname: null,
6706 verbose parsed url hash: null,
6706 verbose parsed url search: null,
6706 verbose parsed url query: null,
6706 verbose parsed url pathname: 'form-data@~0.1.0',
6706 verbose parsed url path: 'form-data@~0.1.0',
6706 verbose parsed url href: 'form-data@~0.1.0' }
6707 verbose cache add name="form-data" spec="~0.1.0" args=["form-data","~0.1.0"]
6708 verbose parsed url { protocol: null,
6708 verbose parsed url slashes: null,
6708 verbose parsed url auth: null,
6708 verbose parsed url host: null,
6708 verbose parsed url port: null,
6708 verbose parsed url hostname: null,
6708 verbose parsed url hash: null,
6708 verbose parsed url search: null,
6708 verbose parsed url query: null,
6708 verbose parsed url pathname: '~0.1.0',
6708 verbose parsed url path: '~0.1.0',
6708 verbose parsed url href: '~0.1.0' }
6709 verbose addNamed [ 'form-data', '~0.1.0' ]
6710 verbose addNamed [ null, '>=0.1.0-0 <0.2.0-0' ]
6711 silly lockFile 26aa13f4-form-data-0-1-0 form-data@~0.1.0
6712 verbose lock form-data@~0.1.0 /Users/vaca/.npm/26aa13f4-form-data-0-1-0.lock
6713 verbose cache add [ 'qs@~0.6.0', null ]
6714 verbose cache add name=undefined spec="qs@~0.6.0" args=["qs@~0.6.0",null]
6715 verbose parsed url { protocol: null,
6715 verbose parsed url slashes: null,
6715 verbose parsed url auth: null,
6715 verbose parsed url host: null,
6715 verbose parsed url port: null,
6715 verbose parsed url hostname: null,
6715 verbose parsed url hash: null,
6715 verbose parsed url search: null,
6715 verbose parsed url query: null,
6715 verbose parsed url pathname: 'qs@~0.6.0',
6715 verbose parsed url path: 'qs@~0.6.0',
6715 verbose parsed url href: 'qs@~0.6.0' }
6716 verbose cache add name="qs" spec="~0.6.0" args=["qs","~0.6.0"]
6717 verbose parsed url { protocol: null,
6717 verbose parsed url slashes: null,
6717 verbose parsed url auth: null,
6717 verbose parsed url host: null,
6717 verbose parsed url port: null,
6717 verbose parsed url hostname: null,
6717 verbose parsed url hash: null,
6717 verbose parsed url search: null,
6717 verbose parsed url query: null,
6717 verbose parsed url pathname: '~0.6.0',
6717 verbose parsed url path: '~0.6.0',
6717 verbose parsed url href: '~0.6.0' }
6718 verbose addNamed [ 'qs', '~0.6.0' ]
6719 verbose addNamed [ null, '>=0.6.0-0 <0.7.0-0' ]
6720 silly lockFile 222bee9e-qs-0-6-0 qs@~0.6.0
6721 verbose lock qs@~0.6.0 /Users/vaca/.npm/222bee9e-qs-0-6-0.lock
6722 verbose cache add [ 'json-stringify-safe@~5.0.0', null ]
6723 verbose cache add name=undefined spec="json-stringify-safe@~5.0.0" args=["json-stringify-safe@~5.0.0",null]
6724 verbose parsed url { protocol: null,
6724 verbose parsed url slashes: null,
6724 verbose parsed url auth: null,
6724 verbose parsed url host: null,
6724 verbose parsed url port: null,
6724 verbose parsed url hostname: null,
6724 verbose parsed url hash: null,
6724 verbose parsed url search: null,
6724 verbose parsed url query: null,
6724 verbose parsed url pathname: 'json-stringify-safe@~5.0.0',
6724 verbose parsed url path: 'json-stringify-safe@~5.0.0',
6724 verbose parsed url href: 'json-stringify-safe@~5.0.0' }
6725 verbose cache add name="json-stringify-safe" spec="~5.0.0" args=["json-stringify-safe","~5.0.0"]
6726 verbose parsed url { protocol: null,
6726 verbose parsed url slashes: null,
6726 verbose parsed url auth: null,
6726 verbose parsed url host: null,
6726 verbose parsed url port: null,
6726 verbose parsed url hostname: null,
6726 verbose parsed url hash: null,
6726 verbose parsed url search: null,
6726 verbose parsed url query: null,
6726 verbose parsed url pathname: '~5.0.0',
6726 verbose parsed url path: '~5.0.0',
6726 verbose parsed url href: '~5.0.0' }
6727 verbose addNamed [ 'json-stringify-safe', '~5.0.0' ]
6728 verbose addNamed [ null, '>=5.0.0-0 <5.1.0-0' ]
6729 silly lockFile 063b1a01-json-stringify-safe-5-0-0 json-stringify-safe@~5.0.0
6730 verbose lock json-stringify-safe@~5.0.0 /Users/vaca/.npm/063b1a01-json-stringify-safe-5-0-0.lock
6731 verbose cache add [ 'forever-agent@~0.5.0', null ]
6732 verbose cache add name=undefined spec="forever-agent@~0.5.0" args=["forever-agent@~0.5.0",null]
6733 verbose parsed url { protocol: null,
6733 verbose parsed url slashes: null,
6733 verbose parsed url auth: null,
6733 verbose parsed url host: null,
6733 verbose parsed url port: null,
6733 verbose parsed url hostname: null,
6733 verbose parsed url hash: null,
6733 verbose parsed url search: null,
6733 verbose parsed url query: null,
6733 verbose parsed url pathname: 'forever-agent@~0.5.0',
6733 verbose parsed url path: 'forever-agent@~0.5.0',
6733 verbose parsed url href: 'forever-agent@~0.5.0' }
6734 verbose cache add name="forever-agent" spec="~0.5.0" args=["forever-agent","~0.5.0"]
6735 verbose parsed url { protocol: null,
6735 verbose parsed url slashes: null,
6735 verbose parsed url auth: null,
6735 verbose parsed url host: null,
6735 verbose parsed url port: null,
6735 verbose parsed url hostname: null,
6735 verbose parsed url hash: null,
6735 verbose parsed url search: null,
6735 verbose parsed url query: null,
6735 verbose parsed url pathname: '~0.5.0',
6735 verbose parsed url path: '~0.5.0',
6735 verbose parsed url href: '~0.5.0' }
6736 verbose addNamed [ 'forever-agent', '~0.5.0' ]
6737 verbose addNamed [ null, '>=0.5.0-0 <0.6.0-0' ]
6738 silly lockFile fa463915-forever-agent-0-5-0 forever-agent@~0.5.0
6739 verbose lock forever-agent@~0.5.0 /Users/vaca/.npm/fa463915-forever-agent-0-5-0.lock
6740 verbose cache add [ 'tunnel-agent@~0.3.0', null ]
6741 verbose cache add name=undefined spec="tunnel-agent@~0.3.0" args=["tunnel-agent@~0.3.0",null]
6742 verbose parsed url { protocol: null,
6742 verbose parsed url slashes: null,
6742 verbose parsed url auth: null,
6742 verbose parsed url host: null,
6742 verbose parsed url port: null,
6742 verbose parsed url hostname: null,
6742 verbose parsed url hash: null,
6742 verbose parsed url search: null,
6742 verbose parsed url query: null,
6742 verbose parsed url pathname: 'tunnel-agent@~0.3.0',
6742 verbose parsed url path: 'tunnel-agent@~0.3.0',
6742 verbose parsed url href: 'tunnel-agent@~0.3.0' }
6743 verbose cache add name="tunnel-agent" spec="~0.3.0" args=["tunnel-agent","~0.3.0"]
6744 verbose parsed url { protocol: null,
6744 verbose parsed url slashes: null,
6744 verbose parsed url auth: null,
6744 verbose parsed url host: null,
6744 verbose parsed url port: null,
6744 verbose parsed url hostname: null,
6744 verbose parsed url hash: null,
6744 verbose parsed url search: null,
6744 verbose parsed url query: null,
6744 verbose parsed url pathname: '~0.3.0',
6744 verbose parsed url path: '~0.3.0',
6744 verbose parsed url href: '~0.3.0' }
6745 verbose addNamed [ 'tunnel-agent', '~0.3.0' ]
6746 verbose addNamed [ null, '>=0.3.0-0 <0.4.0-0' ]
6747 silly lockFile e5681eda-tunnel-agent-0-3-0 tunnel-agent@~0.3.0
6748 verbose lock tunnel-agent@~0.3.0 /Users/vaca/.npm/e5681eda-tunnel-agent-0-3-0.lock
6749 silly addNameRange { name: 'hawk', range: '>=1.0.0-0 <1.1.0-0', hasData: false }
6750 silly gunzTarPerm extractEntry dist/lodash.js
6751 silly addNameRange { name: 'oauth-sign',
6751 silly addNameRange range: '>=0.3.0-0 <0.4.0-0',
6751 silly addNameRange hasData: false }
6752 silly addNameRange { name: 'cookie-jar',
6752 silly addNameRange range: '>=0.3.0-0 <0.4.0-0',
6752 silly addNameRange hasData: false }
6753 silly addNameRange { name: 'aws-sign', range: '>=0.3.0-0 <0.4.0-0', hasData: false }
6754 silly addNameRange { name: 'node-uuid',
6754 silly addNameRange range: '>=1.4.0-0 <1.5.0-0',
6754 silly addNameRange hasData: false }
6755 info preinstall binary@0.3.0
6756 silly addNameRange { name: 'mime', range: '>=1.2.9-0 <1.3.0-0', hasData: false }
6757 silly addNameRange { name: 'form-data',
6757 silly addNameRange range: '>=0.1.0-0 <0.2.0-0',
6757 silly addNameRange hasData: false }
6758 silly addNameRange { name: 'qs', range: '>=0.6.0-0 <0.7.0-0', hasData: false }
6759 silly addNameRange { name: 'json-stringify-safe',
6759 silly addNameRange range: '>=5.0.0-0 <5.1.0-0',
6759 silly addNameRange hasData: false }
6760 silly addNameRange { name: 'forever-agent',
6760 silly addNameRange range: '>=0.5.0-0 <0.6.0-0',
6760 silly addNameRange hasData: false }
6761 silly addNameRange { name: 'tunnel-agent',
6761 silly addNameRange range: '>=0.3.0-0 <0.4.0-0',
6761 silly addNameRange hasData: false }
6762 info preinstall block-stream@0.0.7
6763 silly gunzTarPerm extractEntry src/random/rand.js
6764 silly gunzTarPerm extractEntry src/random/randBit.js
6765 verbose readDependencies using package.json deps
6766 verbose url raw http-signature
6767 verbose url resolving [ 'https://registry.npmjs.org/', './http-signature' ]
6768 verbose url resolved https://registry.npmjs.org/http-signature
6769 info trying registry request attempt 1 at 11:55:14
6770 verbose etag "1M929FRRWNE7UYGGSO1BB3I9Q"
6771 http GET https://registry.npmjs.org/http-signature
6772 silly lockFile 914cf352-ules-inquirer-node-modules-async tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/async
6773 silly lockFile 914cf352-ules-inquirer-node-modules-async tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/async
6774 verbose url raw hawk
6775 verbose url resolving [ 'https://registry.npmjs.org/', './hawk' ]
6776 verbose url resolved https://registry.npmjs.org/hawk
6777 info trying registry request attempt 1 at 11:55:14
6778 verbose etag "17MAGR8GO9T8DC3OUL21AM3AX"
6779 http GET https://registry.npmjs.org/hawk
6780 verbose readDependencies using package.json deps
6781 silly lockFile 972ab484-vaca-npm-async-0-2-9-package-tgz tar:///Users/vaca/.npm/async/0.2.9/package.tgz
6782 silly lockFile 972ab484-vaca-npm-async-0-2-9-package-tgz tar:///Users/vaca/.npm/async/0.2.9/package.tgz
6783 verbose url raw oauth-sign
6784 verbose url resolving [ 'https://registry.npmjs.org/', './oauth-sign' ]
6785 verbose url resolved https://registry.npmjs.org/oauth-sign
6786 info trying registry request attempt 1 at 11:55:14
6787 verbose etag "5FMGECNMJ99T20H2BO1ZAXOMG"
6788 http GET https://registry.npmjs.org/oauth-sign
6789 verbose url raw cookie-jar
6790 verbose url resolving [ 'https://registry.npmjs.org/', './cookie-jar' ]
6791 verbose url resolved https://registry.npmjs.org/cookie-jar
6792 info trying registry request attempt 1 at 11:55:14
6793 verbose etag "BSGHM1YQ1F4ZD2009U1SC6GVB"
6794 http GET https://registry.npmjs.org/cookie-jar
6795 verbose url raw aws-sign
6796 verbose url resolving [ 'https://registry.npmjs.org/', './aws-sign' ]
6797 verbose url resolved https://registry.npmjs.org/aws-sign
6798 info trying registry request attempt 1 at 11:55:14
6799 verbose etag "A27JT8PHWHU5C0UXRHYE6SOAC"
6800 http GET https://registry.npmjs.org/aws-sign
6801 verbose url raw node-uuid
6802 verbose url resolving [ 'https://registry.npmjs.org/', './node-uuid' ]
6803 verbose url resolved https://registry.npmjs.org/node-uuid
6804 info trying registry request attempt 1 at 11:55:14
6805 verbose etag "6HUZF714E21IQQ1CZR2OMQCYL"
6806 http GET https://registry.npmjs.org/node-uuid
6807 verbose readDependencies using package.json deps
6808 verbose cache add [ 'chainsaw@~0.1.0', null ]
6809 verbose cache add name=undefined spec="chainsaw@~0.1.0" args=["chainsaw@~0.1.0",null]
6810 verbose parsed url { protocol: null,
6810 verbose parsed url slashes: null,
6810 verbose parsed url auth: null,
6810 verbose parsed url host: null,
6810 verbose parsed url port: null,
6810 verbose parsed url hostname: null,
6810 verbose parsed url hash: null,
6810 verbose parsed url search: null,
6810 verbose parsed url query: null,
6810 verbose parsed url pathname: 'chainsaw@~0.1.0',
6810 verbose parsed url path: 'chainsaw@~0.1.0',
6810 verbose parsed url href: 'chainsaw@~0.1.0' }
6811 verbose cache add name="chainsaw" spec="~0.1.0" args=["chainsaw","~0.1.0"]
6812 verbose parsed url { protocol: null,
6812 verbose parsed url slashes: null,
6812 verbose parsed url auth: null,
6812 verbose parsed url host: null,
6812 verbose parsed url port: null,
6812 verbose parsed url hostname: null,
6812 verbose parsed url hash: null,
6812 verbose parsed url search: null,
6812 verbose parsed url query: null,
6812 verbose parsed url pathname: '~0.1.0',
6812 verbose parsed url path: '~0.1.0',
6812 verbose parsed url href: '~0.1.0' }
6813 verbose addNamed [ 'chainsaw', '~0.1.0' ]
6814 verbose addNamed [ null, '>=0.1.0-0 <0.2.0-0' ]
6815 silly lockFile d332b3f3-chainsaw-0-1-0 chainsaw@~0.1.0
6816 verbose lock chainsaw@~0.1.0 /Users/vaca/.npm/d332b3f3-chainsaw-0-1-0.lock
6817 verbose cache add [ 'buffers@~0.1.1', null ]
6818 verbose cache add name=undefined spec="buffers@~0.1.1" args=["buffers@~0.1.1",null]
6819 verbose parsed url { protocol: null,
6819 verbose parsed url slashes: null,
6819 verbose parsed url auth: null,
6819 verbose parsed url host: null,
6819 verbose parsed url port: null,
6819 verbose parsed url hostname: null,
6819 verbose parsed url hash: null,
6819 verbose parsed url search: null,
6819 verbose parsed url query: null,
6819 verbose parsed url pathname: 'buffers@~0.1.1',
6819 verbose parsed url path: 'buffers@~0.1.1',
6819 verbose parsed url href: 'buffers@~0.1.1' }
6820 verbose cache add name="buffers" spec="~0.1.1" args=["buffers","~0.1.1"]
6821 verbose parsed url { protocol: null,
6821 verbose parsed url slashes: null,
6821 verbose parsed url auth: null,
6821 verbose parsed url host: null,
6821 verbose parsed url port: null,
6821 verbose parsed url hostname: null,
6821 verbose parsed url hash: null,
6821 verbose parsed url search: null,
6821 verbose parsed url query: null,
6821 verbose parsed url pathname: '~0.1.1',
6821 verbose parsed url path: '~0.1.1',
6821 verbose parsed url href: '~0.1.1' }
6822 verbose addNamed [ 'buffers', '~0.1.1' ]
6823 verbose addNamed [ null, '>=0.1.1-0 <0.2.0-0' ]
6824 silly lockFile 6cb02831-buffers-0-1-1 buffers@~0.1.1
6825 verbose lock buffers@~0.1.1 /Users/vaca/.npm/6cb02831-buffers-0-1-1.lock
6826 verbose url raw mime
6827 verbose url resolving [ 'https://registry.npmjs.org/', './mime' ]
6828 verbose url resolved https://registry.npmjs.org/mime
6829 info trying registry request attempt 1 at 11:55:14
6830 verbose etag "9BJYZJ4U30HWFNFSOAXY20N78"
6831 http GET https://registry.npmjs.org/mime
6832 verbose url raw form-data
6833 verbose url resolving [ 'https://registry.npmjs.org/', './form-data' ]
6834 verbose url resolved https://registry.npmjs.org/form-data
6835 info trying registry request attempt 1 at 11:55:14
6836 verbose etag "9GQPP3V1TWZICN05X66SWTXCE"
6837 http GET https://registry.npmjs.org/form-data
6838 verbose url raw qs
6839 verbose url resolving [ 'https://registry.npmjs.org/', './qs' ]
6840 verbose url resolved https://registry.npmjs.org/qs
6841 info trying registry request attempt 1 at 11:55:14
6842 verbose etag "55SQSPTFTJWTCHX8WKGSKGZSG"
6843 http GET https://registry.npmjs.org/qs
6844 verbose url raw json-stringify-safe
6845 verbose url resolving [ 'https://registry.npmjs.org/', './json-stringify-safe' ]
6846 verbose url resolved https://registry.npmjs.org/json-stringify-safe
6847 info trying registry request attempt 1 at 11:55:14
6848 verbose etag "4YTZC28VZEJOJKYMT0OC69CHX"
6849 http GET https://registry.npmjs.org/json-stringify-safe
6850 verbose url raw forever-agent
6851 verbose url resolving [ 'https://registry.npmjs.org/', './forever-agent' ]
6852 verbose url resolved https://registry.npmjs.org/forever-agent
6853 info trying registry request attempt 1 at 11:55:14
6854 verbose etag "3UGXS4GVMPIYP8ZN3YM36NV58"
6855 http GET https://registry.npmjs.org/forever-agent
6856 verbose url raw tunnel-agent
6857 verbose url resolving [ 'https://registry.npmjs.org/', './tunnel-agent' ]
6858 verbose url resolved https://registry.npmjs.org/tunnel-agent
6859 info trying registry request attempt 1 at 11:55:14
6860 verbose etag "D3JCRSD8BFKXL62KVXWMIS7WS"
6861 http GET https://registry.npmjs.org/tunnel-agent
6862 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream-pause.js
6863 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-delayed-stream.js
6864 verbose readDependencies using package.json deps
6865 silly resolved []
6866 verbose about to build /opt/local/lib/node_modules/bower/node_modules/tar/node_modules/block-stream
6867 info build /opt/local/lib/node_modules/bower/node_modules/tar/node_modules/block-stream
6868 verbose linkStuff [ true,
6868 verbose linkStuff '/opt/local/lib/node_modules',
6868 verbose linkStuff false,
6868 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/tar/node_modules' ]
6869 info linkStuff block-stream@0.0.7
6870 silly addNameRange { name: 'chainsaw', range: '>=0.1.0-0 <0.2.0-0', hasData: false }
6871 silly addNameRange { name: 'buffers', range: '>=0.1.1-0 <0.2.0-0', hasData: false }
6872 verbose linkBins block-stream@0.0.7
6873 verbose linkMans block-stream@0.0.7
6874 verbose rebuildBundles block-stream@0.0.7
6875 info preinstall async@0.2.9
6876 info install block-stream@0.0.7
6877 silly gunzTarPerm extractEntry src/random/randHex.js
6878 silly gunzTarPerm extractEntry src/random/randInt.js
6879 info postinstall block-stream@0.0.7
6880 verbose readDependencies using package.json deps
6881 verbose url raw chainsaw
6882 verbose url resolving [ 'https://registry.npmjs.org/', './chainsaw' ]
6883 verbose url resolved https://registry.npmjs.org/chainsaw
6884 info trying registry request attempt 1 at 11:55:14
6885 verbose etag "5NEX578PK7KC7VYZNHR9UY9Z9"
6886 http GET https://registry.npmjs.org/chainsaw
6887 verbose registry.get buffers not expired, no request
6888 silly addNameRange number 2 { name: 'buffers', range: '>=0.1.1-0 <0.2.0-0', hasData: true }
6889 silly addNameRange versions [ 'buffers',
6889 silly addNameRange [ '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.1.0', '0.1.1' ] ]
6890 verbose addNamed [ 'buffers', '0.1.1' ]
6891 verbose addNamed [ '0.1.1', '0.1.1' ]
6892 silly lockFile 053c3510-buffers-0-1-1 buffers@0.1.1
6893 verbose lock buffers@0.1.1 /Users/vaca/.npm/053c3510-buffers-0-1-1.lock
6894 verbose readDependencies using package.json deps
6895 silly resolved []
6896 verbose about to build /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/async
6897 info build /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/async
6898 verbose linkStuff [ true,
6898 verbose linkStuff '/opt/local/lib/node_modules',
6898 verbose linkStuff false,
6898 verbose linkStuff '/opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules' ]
6899 info linkStuff async@0.2.9
6900 verbose about to build /opt/local/lib/node_modules/bower/node_modules/tar
6901 info build /opt/local/lib/node_modules/bower/node_modules/tar
6902 verbose linkStuff [ true,
6902 verbose linkStuff '/opt/local/lib/node_modules',
6902 verbose linkStuff false,
6902 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules' ]
6903 info linkStuff tar@0.1.18
6904 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-handle-source-errors.js
6905 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-max-data-size.js
6906 verbose linkBins async@0.2.9
6907 verbose linkMans async@0.2.9
6908 verbose rebuildBundles async@0.2.9
6909 verbose linkBins tar@0.1.18
6910 verbose linkMans tar@0.1.18
6911 verbose rebuildBundles tar@0.1.18
6912 silly lockFile 053c3510-buffers-0-1-1 buffers@0.1.1
6913 silly lockFile 053c3510-buffers-0-1-1 buffers@0.1.1
6914 info install async@0.2.9
6915 verbose rebuildBundles [ 'block-stream', 'inherits' ]
6916 info install tar@0.1.18
6917 silly lockFile 6cb02831-buffers-0-1-1 buffers@~0.1.1
6918 silly lockFile 6cb02831-buffers-0-1-1 buffers@~0.1.1
6919 info postinstall async@0.2.9
6920 info postinstall tar@0.1.18
6921 silly gunzTarPerm extractEntry src/random/randSign.js
6922 silly gunzTarPerm extractEntry src/random/random.js
6923 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-pipe-resumes.js
6924 silly gunzTarPerm extractEntry node_modules/form-data/node_modules/combined-stream/node_modules/delayed-stream/test/integration/test-proxy-readable.js
6925 silly gunzTarPerm extractEntry dist/lodash.js
6926 silly gunzTarPerm extractEntry dist/lodash.min.js
6927 silly gunzTarPerm extractEntry src/number/MAX_INT.js
6928 silly gunzTarPerm extractEntry src/number/abbreviate.js
6929 http 304 https://registry.npmjs.org/uglify-js
6930 silly registry.get cb [ 304,
6930 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
6930 silly registry.get etag: '"4N3IJZ994RON6RVI69JTTVWYU"',
6930 silly registry.get date: 'Fri, 02 Aug 2013 15:55:14 GMT',
6930 silly registry.get 'content-length': '0' } ]
6931 verbose etag uglify-js from cache
6932 silly gunzTarPerm extractEntry node_modules/mime/package.json
6933 silly gunzTarPerm extractEntry node_modules/mime/README.md
6934 silly gunzTarPerm extractEntry dist/lodash.underscore.js
6935 silly gunzTarPerm extractEntry dist/lodash.underscore.min.js
6936 silly gunzTarPerm extractEntry src/number/currencyFormat.js
6937 silly gunzTarPerm extractEntry src/number/enforcePrecision.js
6938 silly addNameRange number 2 { name: 'uglify-js', range: '>=2.3.0-0 <2.4.0-0', hasData: true }
6939 silly addNameRange versions [ 'uglify-js',
6939 silly addNameRange [ '0.0.1',
6939 silly addNameRange '0.0.2',
6939 silly addNameRange '0.0.3',
6939 silly addNameRange '0.0.4',
6939 silly addNameRange '0.0.5',
6939 silly addNameRange '1.0.1',
6939 silly addNameRange '1.0.2',
6939 silly addNameRange '1.0.3',
6939 silly addNameRange '1.0.4',
6939 silly addNameRange '1.0.5',
6939 silly addNameRange '1.0.6',
6939 silly addNameRange '1.0.7',
6939 silly addNameRange '1.1.0',
6939 silly addNameRange '1.1.1',
6939 silly addNameRange '1.2.0',
6939 silly addNameRange '1.2.1',
6939 silly addNameRange '1.2.2',
6939 silly addNameRange '1.2.3',
6939 silly addNameRange '1.2.4',
6939 silly addNameRange '1.2.5',
6939 silly addNameRange '1.2.6',
6939 silly addNameRange '1.3.0',
6939 silly addNameRange '1.3.1',
6939 silly addNameRange '1.3.2',
6939 silly addNameRange '1.3.3',
6939 silly addNameRange '1.3.4',
6939 silly addNameRange '2.2.0',
6939 silly addNameRange '2.2.1',
6939 silly addNameRange '2.2.2',
6939 silly addNameRange '2.2.3',
6939 silly addNameRange '2.2.4',
6939 silly addNameRange '2.2.5',
6939 silly addNameRange '2.3.0',
6939 silly addNameRange '2.3.1',
6939 silly addNameRange '2.3.2',
6939 silly addNameRange '2.3.3',
6939 silly addNameRange '2.3.4',
6939 silly addNameRange '2.3.5',
6939 silly addNameRange '2.3.6',
6939 silly addNameRange '1.3.5' ] ]
6940 verbose addNamed [ 'uglify-js', '2.3.6' ]
6941 verbose addNamed [ '2.3.6', '2.3.6' ]
6942 silly lockFile a40be02f-uglify-js-2-3-6 uglify-js@2.3.6
6943 verbose lock uglify-js@2.3.6 /Users/vaca/.npm/a40be02f-uglify-js-2-3-6.lock
6944 silly lockFile 18d39d65-s-optimist-node-modules-minimist tar:///opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist/node_modules/minimist
6945 silly lockFile 18d39d65-s-optimist-node-modules-minimist tar:///opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist/node_modules/minimist
6946 silly lockFile 6da76a4c-a-npm-minimist-0-0-1-package-tgz tar:///Users/vaca/.npm/minimist/0.0.1/package.tgz
6947 silly lockFile 6da76a4c-a-npm-minimist-0-0-1-package-tgz tar:///Users/vaca/.npm/minimist/0.0.1/package.tgz
6948 silly lockFile 11c79223-s-optimist-node-modules-wordwrap tar:///opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist/node_modules/wordwrap
6949 silly lockFile 11c79223-s-optimist-node-modules-wordwrap tar:///opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist/node_modules/wordwrap
6950 silly lockFile 8b7d5cca-a-npm-wordwrap-0-0-2-package-tgz tar:///Users/vaca/.npm/wordwrap/0.0.2/package.tgz
6951 silly lockFile 8b7d5cca-a-npm-wordwrap-0-0-2-package-tgz tar:///Users/vaca/.npm/wordwrap/0.0.2/package.tgz
6952 info preinstall minimist@0.0.1
6953 silly gunzTarPerm extractEntry src/number/MIN_INT.js
6954 silly gunzTarPerm extractEntry src/number/rol.js
6955 info preinstall wordwrap@0.0.2
6956 verbose readDependencies using package.json deps
6957 verbose readDependencies using package.json deps
6958 silly resolved []
6959 verbose about to build /opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist/node_modules/minimist
6960 info build /opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist/node_modules/minimist
6961 verbose linkStuff [ true,
6961 verbose linkStuff '/opt/local/lib/node_modules',
6961 verbose linkStuff false,
6961 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist/node_modules' ]
6962 info linkStuff minimist@0.0.1
6963 silly lockFile 1a915a4d-atch-stream-node-modules-buffers tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/match-stream/node_modules/buffers
6964 silly lockFile 1a915a4d-atch-stream-node-modules-buffers tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/match-stream/node_modules/buffers
6965 verbose readDependencies using package.json deps
6966 http 304 https://registry.npmjs.org/oauth-sign
6967 silly registry.get cb [ 304,
6967 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
6967 silly registry.get etag: '"5FMGECNMJ99T20H2BO1ZAXOMG"',
6967 silly registry.get date: 'Fri, 02 Aug 2013 15:55:14 GMT',
6967 silly registry.get 'content-length': '0' } ]
6968 verbose etag oauth-sign from cache
6969 silly lockFile a59a7f98-ca-npm-buffers-0-1-1-package-tgz tar:///Users/vaca/.npm/buffers/0.1.1/package.tgz
6970 silly lockFile a59a7f98-ca-npm-buffers-0-1-1-package-tgz tar:///Users/vaca/.npm/buffers/0.1.1/package.tgz
6971 verbose readDependencies using package.json deps
6972 silly resolved []
6973 verbose about to build /opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist/node_modules/wordwrap
6974 info build /opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist/node_modules/wordwrap
6975 verbose linkStuff [ true,
6975 verbose linkStuff '/opt/local/lib/node_modules',
6975 verbose linkStuff false,
6975 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist/node_modules' ]
6976 info linkStuff wordwrap@0.0.2
6977 verbose linkBins minimist@0.0.1
6978 verbose linkMans minimist@0.0.1
6979 verbose rebuildBundles minimist@0.0.1
6980 info install minimist@0.0.1
6981 verbose linkBins wordwrap@0.0.2
6982 verbose linkMans wordwrap@0.0.2
6983 verbose rebuildBundles wordwrap@0.0.2
6984 silly lockFile a40be02f-uglify-js-2-3-6 uglify-js@2.3.6
6985 silly lockFile a40be02f-uglify-js-2-3-6 uglify-js@2.3.6
6986 info install wordwrap@0.0.2
6987 silly lockFile fb0c1b8a-uglify-js-2-3 uglify-js@~2.3
6988 silly lockFile fb0c1b8a-uglify-js-2-3 uglify-js@~2.3
6989 silly gunzTarPerm extractEntry src/number/ror.js
6990 silly gunzTarPerm extractEntry src/number/sign.js
6991 info postinstall minimist@0.0.1
6992 info preinstall buffers@0.1.1
6993 silly resolved [ { name: 'optimist',
6993 silly resolved version: '0.3.7',
6993 silly resolved description: 'Light-weight option parsing with an argv hash. No optstrings attached.',
6993 silly resolved main: './index.js',
6993 silly resolved dependencies: { wordwrap: '~0.0.2' },
6993 silly resolved devDependencies: { hashish: '~0.0.4', tap: '~0.4.0' },
6993 silly resolved scripts: { test: 'tap ./test/*.js' },
6993 silly resolved repository:
6993 silly resolved { type: 'git',
6993 silly resolved url: 'http://github.com/substack/node-optimist.git' },
6993 silly resolved keywords:
6993 silly resolved [ 'argument',
6993 silly resolved 'args',
6993 silly resolved 'option',
6993 silly resolved 'parser',
6993 silly resolved 'parsing',
6993 silly resolved 'cli',
6993 silly resolved 'command' ],
6993 silly resolved author:
6993 silly resolved { name: 'James Halliday',
6993 silly resolved email: 'mail@substack.net',
6993 silly resolved url: 'http://substack.net' },
6993 silly resolved license: 'MIT/X11',
6993 silly resolved engine: { node: '>=0.4' },
6993 silly resolved readme: 'optimist\n========\n\nOptimist is a node.js library for option parsing for people who hate option\nparsing. More specifically, this module is for people who like all the --bells\nand -whistlz of program usage but think optstrings are a waste of time.\n\nWith optimist, option parsing doesn\'t have to suck (as much).\n\n[![build status](https://secure.travis-ci.org/substack/node-optimist.png)](http://travis-ci.org/substack/node-optimist)\n\nexamples\n========\n\nWith Optimist, the options are just a hash! No optstrings attached.\n-------------------------------------------------------------------\n\nxup.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\').argv;\n\nif (argv.rif - 5 * argv.xup > 7.138) {\n console.log(\'Buy more riffiwobbles\');\n}\nelse {\n console.log(\'Sell the xupptumblers\');\n}\n````\n\n***\n\n $ ./xup.js --rif=55 --xup=9.52\n Buy more riffiwobbles\n \n $ ./xup.js --rif 12 --xup 8.1\n Sell the xupptumblers\n\n![This one\'s optimistic.](http://substack.net/images/optimistic.png)\n\nBut wait! There\'s more! You can do short options:\n-------------------------------------------------\n \nshort.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\').argv;\nconsole.log(\'(%d,%d)\', argv.x, argv.y);\n````\n\n***\n\n $ ./short.js -x 10 -y 21\n (10,21)\n\nAnd booleans, both long and short (and grouped):\n----------------------------------\n\nbool.js:\n\n````javascript\n#!/usr/bin/env node\nvar util = require(\'util\');\nvar argv = require(\'optimist\').argv;\n\nif (argv.s) {\n util.print(argv.fr ? \'Le chat dit: \' : \'The cat says: \');\n}\nconsole.log(\n (argv.fr ? \'miaou\' : \'meow\') + (argv.p ? \'.\' : \'\')\n);\n````\n\n***\n\n $ ./bool.js -s\n The cat says: meow\n \n $ ./bool.js -sp\n The cat says: meow.\n\n $ ./bool.js -sp --fr\n Le chat dit: miaou.\n\nAnd non-hypenated options too! Just use `argv._`!\n-------------------------------------------------\n \nnonopt.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\').argv;\nconsole.log(\'(%d,%d)\', argv.x, argv.y);\nconsole.log(argv._);\n````\n\n***\n\n $ ./nonopt.js -x 6.82 -y 3.35 moo\n (6.82,3.35)\n [ \'moo\' ]\n \n $ ./nonopt.js foo -x 0.54 bar -y 1.12 baz\n (0.54,1.12)\n [ \'foo\', \'bar\', \'baz\' ]\n\nPlus, Optimist comes with .usage() and .demand()!\n-------------------------------------------------\n\ndivide.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\')\n .usage(\'Usage: $0 -x [num] -y [num]\')\n .demand([\'x\',\'y\'])\n .argv;\n\nconsole.log(argv.x / argv.y);\n````\n\n***\n \n $ ./divide.js -x 55 -y 11\n 5\n \n $ node ./divide.js -x 4.91 -z 2.51\n Usage: node ./divide.js -x [num] -y [num]\n\n Options:\n -x [required]\n -y [required]\n\n Missing required arguments: y\n\nEVEN MORE HOLY COW\n------------------\n\ndefault_singles.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\')\n .default(\'x\', 10)\n .default(\'y\', 10)\n .argv\n;\nconsole.log(argv.x + argv.y);\n````\n\n***\n\n $ ./default_singles.js -x 5\n 15\n\ndefault_hash.js:\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\')\n .default({ x : 10, y : 10 })\n .argv\n;\nconsole.log(argv.x + argv.y);\n````\n\n***\n\n $ ./default_hash.js -y 7\n 17\n\nAnd if you really want to get all descriptive about it...\n---------------------------------------------------------\n\nboolean_single.js\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\')\n .boolean(\'v\')\n .argv\n;\nconsole.dir(argv);\n````\n\n***\n\n $ ./boolean_single.js -v foo bar baz\n true\n [ \'bar\', \'baz\', \'foo\' ]\n\nboolean_double.js\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\')\n .boolean([\'x\',\'y\',\'z\'])\n .argv\n;\nconsole.dir([ argv.x, argv.y, argv.z ]);\nconsole.dir(argv._);\n````\n\n***\n\n $ ./boolean_double.js -x -z one two three\n [ true, false, true ]\n [ \'one\', \'two\', \'three\' ]\n\nOptimist is here to help...\n---------------------------\n\nYou can describe parameters for help messages and set aliases. Optimist figures\nout how to format a handy help string automatically.\n\nline_count.js\n\n````javascript\n#!/usr/bin/env node\nvar argv = require(\'optimist\')\n .usage(\'Count the lines in a file.\\nUsage: $0\')\n .demand(\'f\')\n .alias(\'f\', \'file\')\n .describe(\'f\', \'Load a file\')\n .argv\n;\n\nvar fs = require(\'fs\');\nvar s = fs.createReadStream(argv.file);\n\nvar lines = 0;\ns.on(\'data\', function (buf) {\n lines += buf.toString().match(/\\n/g).length;\n});\n\ns.on(\'end\', function () {\n console.log(lines);\n});\n````\n\n***\n\n $ node line_count.js\n Count the lines in a file.\n Usage: node ./line_count.js\n\n Options:\n -f, --file Load a file [required]\n\n Missing required arguments: f\n\n $ node line_count.js --file line_count.js \n 20\n \n $ node line_count.js -f line_count.js \n 20\n\nmethods\n=======\n\nBy itself,\n\n````javascript\nrequire(\'optimist\').argv\n`````\n\nwill use `process.argv` array to construct the `argv` object.\n\nYou can pass in the `process.argv` yourself:\n\n````javascript\nrequire(\'optimist\')([ \'-x\', \'1\', \'-y\', \'2\' ]).argv\n````\n\nor use .parse() to do the same thing:\n\n````javascript\nrequire(\'optimist\').parse([ \'-x\', \'1\', \'-y\', \'2\' ])\n````\n\nThe rest of these methods below come in just before the terminating `.argv`.\n\n.alias(key, alias)\n------------------\n\nSet key names as equivalent such that updates to a key will propagate to aliases\nand vice-versa.\n\nOptionally `.alias()` can take an object that maps keys to aliases.\n\n.default(key, value)\n--------------------\n\nSet `argv[key]` to `value` if no option was specified on `process.argv`.\n\nOptionally `.default()` can take an object that maps keys to default values.\n\n.demand(key)\n------------\n\nIf `key` is a string, show the usage information and exit if `key` wasn\'t\nspecified in `process.argv`.\n\nIf `key` is a number, demand at least as many non-option arguments, which show\nup in `argv._`.\n\nIf `key` is an Array, demand each element.\n\n.describe(key, desc)\n--------------------\n\nDescribe a `key` for the generated usage information.\n\nOptionally `.describe()` can take an object that maps keys to descriptions.\n\n.options(key, opt)\n------------------\n\nInstead of chaining together `.alias().demand().default()`, you can specify\nkeys in `opt` for each of the chainable methods.\n\nFor example:\n\n````javascript\nvar argv = require(\'optimist\')\n .options(\'f\', {\n alias : \'file\',\n default : \'/etc/passwd\',\n })\n .argv\n;\n````\n\nis the same as\n\n````javascript\nvar argv = require(\'optimist\')\n .alias(\'f\', \'file\')\n .default(\'f\', \'/etc/passwd\')\n .argv\n;\n````\n\nOptionally `.options()` can take an object that maps keys to `opt` parameters.\n\n.usage(message)\n---------------\n\nSet a usage message to show which commands to use. Inside `message`, the string\n`$0` will get interpolated to the current script name or node command for the\npresent script similar to how `$0` works in bash or perl.\n\n.check(fn)\n----------\n\nCheck that certain conditions are met in the provided arguments.\n\nIf `fn` throws or returns `false`, show the thrown error, usage information, and\nexit.\n\n.boolean(key)\n-------------\n\nInterpret `key` as a boolean. If a non-flag option follows `key` in\n`process.argv`, that string won\'t get set as the value of `key`.\n\nIf `key` never shows up as a flag in `process.arguments`, `argv[key]` will be\n`false`.\n\nIf `key` is an Array, interpret all the elements as booleans.\n\n.string(key)\n------------\n\nTell the parser logic not to interpret `key` as a number or boolean.\nThis can be useful if you need to preserve leading zeros in an input.\n\nIf `key` is an Array, interpret all the elements as strings.\n\n.wrap(columns)\n--------------\n\nFormat usage output to wrap at `columns` many columns.\n\n.help()\n-------\n\nReturn the generated usage string.\n\n.showHelp(fn=console.error)\n---------------------------\n\nPrint the usage data using `fn` for printing.\n\n.parse(args)\n------------\n\nParse `args` instead of `process.argv`. Returns the `argv` object.\n\n.argv\n-----\n\nGet the arguments as a plain old object.\n\nArguments without a corresponding flag show up in the `argv._` array.\n\nThe script name or node command is available at `argv.$0` similarly to how `$0`\nworks in bash or perl.\n\nparsing tricks\n==============\n\nstop parsing\n------------\n\nUse `--` to stop parsing flags and stuff the remainder into `argv._`.\n\n $ node examples/reflect.js -a 1 -b 2 -- -c 3 -d 4\n { _: [ \'-c\', \'3\', \'-d\', \'4\' ],\n \'$0\': \'node ./examples/reflect.js\',\n a: 1,\n b: 2 }\n\nnegate fields\n-------------\n\nIf you want to explicity set a field to false instead of just leaving it\nundefined or to override a default you can do `--no-key`.\n\n $ node examples/reflect.js -a --no-b\n { _: [],\n \'$0\': \'node ./examples/reflect.js\',\n a: true,\n b: false }\n\nnumbers\n-------\n\nEvery argument that looks like a number (`!isNaN(Number(arg))`) is converted to\none. This way you can just `net.createConnection(argv.port)` and you can add\nnumbers out of `argv` with `+` without having that mean concatenation,\nwhich is super frustrating.\n\nduplicates\n----------\n\nIf you specify a flag multiple times it will get turned into an array containing\nall the values in order.\n\n $ node examples/reflect.js -x 5 -x 8 -x 0\n { _: [],\n \'$0\': \'node ./examples/reflect.js\',\n x: [ 5, 8, 0 ] }\n\ndot notation\n------------\n\nWhen you use dots (`.`s) in argument names, an implicit object path is assumed.\nThis lets you organize arguments into nested objects.\n\n $ node examples/reflect.js --foo.bar.baz=33 --foo.quux=5\n { _: [],\n \'$0\': \'node ./examples/reflect.js\',\n foo: { bar: { baz: 33 }, quux: 5 } }\n\ninstallation\n============\n\nWith [npm](http://github.com/isaacs/npm), just do:\n npm install optimist\n \nor clone this project on github:\n\n git clone http://github.com/substack/node-optimist.git\n\nTo run the tests with [expresso](http://github.com/visionmedia/expresso),\njust do:\n \n expresso\n\ninspired By\n===========\n\nThis module is loosely inspired by Perl\'s\n[Getopt::Casual](http://search.cpan.org/~photo/Getopt-Casual-0.13.1/Casual.pm).\n',
6993 silly resolved readmeFilename: 'readme.markdown',
6993 silly resolved bugs: { url: 'https://github.com/substack/node-optimist/issues' },
6993 silly resolved _id: 'optimist@0.3.7',
6993 silly resolved _from: 'optimist@~0.3' },
6993 silly resolved { name: 'uglify-js',
6993 silly resolved description: 'JavaScript parser, mangler/compressor and beautifier toolkit',
6993 silly resolved homepage: 'http://lisperator.net/uglifyjs',
6993 silly resolved main: 'tools/node.js',
6993 silly resolved version: '2.3.6',
6993 silly resolved engines: { node: '>=0.4.0' },
6993 silly resolved maintainers: [ [Object] ],
6993 silly resolved repository: { type: 'git', url: 'https://github.com/mishoo/UglifyJS2.git' },
6993 silly resolved dependencies: { async: '~0.2.6', 'source-map': '~0.1.7', optimist: '~0.3.5' },
6993 silly resolved bin: { uglifyjs: 'bin/uglifyjs' },
6993 silly resolved scripts: { test: 'node test/run-tests.js' },
6993 silly resolved readme: 'UglifyJS 2\n==========\n[![Build Status](https://travis-ci.org/mishoo/UglifyJS2.png)](https://travis-ci.org/mishoo/UglifyJS2)\n\nUglifyJS is a JavaScript parser, minifier, compressor or beautifier toolkit.\n\nThis page documents the command line utility. For\n[API and internals documentation see my website](http://lisperator.net/uglifyjs/).\nThere\'s also an\n[in-browser online demo](http://lisperator.net/uglifyjs/#demo) (for Firefox,\nChrome and probably Safari).\n\nInstall\n-------\n\nFirst make sure you have installed the latest version of [node.js](http://nodejs.org/)\n(You may need to restart your computer after this step).\n\nFrom NPM for use as a command line app:\n\n npm install uglify-js -g\n\nFrom NPM for programmatic use:\n\n npm install uglify-js\n\nFrom Git:\n\n git clone git://github.com/mishoo/UglifyJS2.git\n cd UglifyJS2\n npm link .\n\nUsage\n-----\n\n uglifyjs [input files] [options]\n\nUglifyJS2 can take multiple input files. It\'s recommended that you pass the\ninput files first, then pass the options. UglifyJS will parse input files\nin sequence and apply any compression options. The files are parsed in the\nsame global scope, that is, a reference from a file to some\nvariable/function declared in another file will be matched properly.\n\nIf you want to read from STDIN instead, pass a single dash instead of input\nfiles.\n\nThe available options are:\n\n --source-map Specify an output file where to generate source map.\n [string]\n --source-map-root The path to the original source to be included in the\n source map. [string]\n --source-map-url The path to the source map to be added in //@\n sourceMappingURL. Defaults to the value passed with\n --source-map. [string]\n --in-source-map Input source map, useful if you\'re compressing JS that was\n generated from some other original code.\n --screw-ie8 Pass this flag if you don\'t care about full compliance with\n Internet Explorer 6-8 quirks (by default UglifyJS will try\n to be IE-proof).\n -p, --prefix Skip prefix for original filenames that appear in source\n maps. For example -p 3 will drop 3 directories from file\n names and ensure they are relative paths.\n -o, --output Output file (default STDOUT).\n -b, --beautify Beautify output/specify output options. [string]\n -m, --mangle Mangle names/pass mangler options. [string]\n -r, --reserved Reserved names to exclude from mangling.\n -c, --compress Enable compressor/pass compressor options. Pass options\n like -c hoist_vars=false,if_return=false. Use -c with no\n argument to use the default compression options. [string]\n -d, --define Global definitions [string]\n --comments Preserve copyright comments in the output. By default this\n works like Google Closure, keeping JSDoc-style comments\n that contain "@license" or "@preserve". You can optionally\n pass one of the following arguments to this flag:\n - "all" to keep all comments\n - a valid JS regexp (needs to start with a slash) to keep\n only comments that match.\n Note that currently not *all* comments can be kept when\n compression is on, because of dead code removal or\n cascading statements into sequences. [string]\n --stats Display operations run time on STDERR. [boolean]\n --acorn Use Acorn for parsing. [boolean]\n --spidermonkey Assume input files are SpiderMonkey AST format (as JSON).\n [boolean]\n --self Build itself (UglifyJS2) as a library (implies\n --wrap=UglifyJS --export-all) [boolean]\n --wrap Embed everything in a big function, making the “exports”\n and “global” variables available. You need to pass an\n argument to this option to specify the name that your\n module will take when included in, say, a browser.\n [string]\n --export-all Only used when --wrap, this tells UglifyJS to add code to\n automatically export all globals. [boolean]\n --lint Display some scope warnings [boolean]\n -v, --verbose Verbose [boolean]\n -V, --version Print version number and exit. [boolean]\n\nSpecify `--output` (`-o`) to declare the output file. Otherwise the output\ngoes to STDOUT.\n\n## Source map options\n\nUglifyJS2 can generate a source map file, which is highly useful for\ndebugging your compressed JavaScript. To get a source map, pass\n`--source-map output.js.map` (full path to the file where you want the\nsource map dumped).\n\nAdditionally you might need `--source-map-root` to pass the URL where the\noriginal files can be found. In case you are passing full paths to input\nfiles to UglifyJS, you can use `--prefix` (`-p`) to specify the number of\ndirectories to drop from the path prefix when declaring files in the source\nmap.\n\nFor example:\n\n uglifyjs /home/doe/work/foo/src/js/file1.js \\\n /home/doe/work/foo/src/js/file2.js \\\n -o foo.min.js \\\n --source-map foo.min.js.map \\\n --source-map-root http://foo.com/src \\\n -p 5 -c -m\n\nThe above will compress and mangle `file1.js` and `file2.js`, will drop the\noutput in `foo.min.js` and the source map in `foo.min.js.map`. The source\nmapping will refer to `http://foo.com/src/js/file1.js` and\n`http://foo.com/src/js/file2.js` (in fact it will list `http://foo.com/src`\nas the source map root, and the original files as `js/file1.js` and\n`js/file2.js`).\n\n### Composed source map\n\nWhen you\'re compressing JS code that was output by a compiler such as\nCoffeeScript, mapping to the JS code won\'t be too helpful. Instead, you\'d\nlike to map back to the original code (i.e. CoffeeScript). UglifyJS has an\noption to take an input source map. Assuming you have a mapping from\nCoffeeScript → compiled JS, UglifyJS can generate a map from CoffeeScript →\ncompressed JS by mapping every token in the compiled JS to its original\nlocation.\n\nTo use this feature you need to pass `--in-source-map\n/path/to/input/source.map`. Normally the input source map should also point\nto the file containing the generated JS, so if that\'s correct you can omit\ninput files from the command line.\n\n## Mangler options\n\nTo enable the mangler you need to pass `--mangle` (`-m`). The following\n(comma-separated) options are supported:\n\n- `sort` — to assign shorter names to most frequently used variables. This\n saves a few hundred bytes on jQuery before gzip, but the output is\n _bigger_ after gzip (and seems to happen for other libraries I tried it\n on) therefore it\'s not enabled by default.\n\n- `toplevel` — mangle names declared in the toplevel scope (disabled by\n default).\n\n- `eval` — mangle names visible in scopes where `eval` or `when` are used\n (disabled by default).\n\nWhen mangling is enabled but you want to prevent certain names from being\nmangled, you can declare those names with `--reserved` (`-r`) — pass a\ncomma-separated list of names. For example:\n\n uglifyjs ... -m -r \'$,require,exports\'\n\nto prevent the `require`, `exports` and `$` names from being changed.\n\n## Compressor options\n\nYou need to pass `--compress` (`-c`) to enable the compressor. Optionally\nyou can pass a comma-separated list of options. Options are in the form\n`foo=bar`, or just `foo` (the latter implies a boolean option that you want\nto set `true`; it\'s effectively a shortcut for `foo=true`).\n\n- `sequences` -- join consecutive simple statements using the comma operator\n- `properties` -- rewrite property access using the dot notation, for\n example `foo["bar"] → foo.bar`\n- `dead_code` -- remove unreachable code\n- `drop_debugger` -- remove `debugger;` statements\n- `unsafe` (default: false) -- apply "unsafe" transformations (discussion below)\n- `conditionals` -- apply optimizations for `if`-s and conditional\n expressions\n- `comparisons` -- apply certain optimizations to binary nodes, for example:\n `!(a <= b) → a > b` (only when `unsafe`), attempts to negate binary nodes,\n e.g. `a = !b && !c && !d && !e → a=!(b||c||d||e)` etc.\n- `evaluate` -- attempt to evaluate constant expressions\n- `booleans` -- various optimizations for boolean context, for example `!!a\n ? b : c → a ? b : c`\n- `loops` -- optimizations for `do`, `while` and `for` loops when we can\n statically determine the condition\n- `unused` -- drop unreferenced functions and variables\n- `hoist_funs` -- hoist function declarations\n- `hoist_vars` (default: false) -- hoist `var` declarations (this is `false`\n by default because it seems to increase the size of the output in general)\n- `if_return` -- optimizations for if/return and if/continue\n- `join_vars` -- join consecutive `var` statements\n- `cascade` -- small optimization for sequences, transform `x, x` into `x`\n and `x = something(), x` into `x = something()`\n- `warnings` -- display warnings when dropping unreachable code or unused\n declarations etc.\n\n### The `unsafe` option\n\nIt enables some transformations that *might* break code logic in certain\ncontrived cases, but should be fine for most code. You might want to try it\non your own code, it should reduce the minified size. Here\'s what happens\nwhen this flag is on:\n\n- `new Array(1, 2, 3)` or `Array(1, 2, 3)` → `[1, 2, 3 ]`\n- `new Object()` → `{}`\n- `String(exp)` or `exp.toString()` → `"" + exp`\n- `new Object/RegExp/Function/Error/Array (...)` → we discard the `new`\n- `typeof foo == "undefined"` → `foo === void 0`\n- `void 0` → `"undefined"` (if there is a variable named "undefined" in\n scope; we do it because the variable name will be mangled, typically\n reduced to a single character).\n\n### Conditional compilation\n\nYou can use the `--define` (`-d`) switch in order to declare global\nvariables that UglifyJS will assume to be constants (unless defined in\nscope). For example if you pass `--define DEBUG=false` then, coupled with\ndead code removal UglifyJS will discard the following from the output:\n```javascript\nif (DEBUG) {\n\tconsole.log("debug stuff");\n}\n```\n\nUglifyJS will warn about the condition being always false and about dropping\nunreachable code; for now there is no option to turn off only this specific\nwarning, you can pass `warnings=false` to turn off *all* warnings.\n\nAnother way of doing that is to declare your globals as constants in a\nseparate file and include it into the build. For example you can have a\n`build/defines.js` file with the following:\n```javascript\nconst DEBUG = false;\nconst PRODUCTION = true;\n// etc.\n```\n\nand build your code like this:\n\n uglifyjs build/defines.js js/foo.js js/bar.js... -c\n\nUglifyJS will notice the constants and, since they cannot be altered, it\nwill evaluate references to them to the value itself and drop unreachable\ncode as usual. The possible downside of this approach is that the build\nwill contain the `const` declarations.\n\n<a name="codegen-options"></a>\n## Beautifier options\n\nThe code generator tries to output shortest code possible by default. In\ncase you want beautified output, pass `--beautify` (`-b`). Optionally you\ncan pass additional arguments that control the code output:\n\n- `beautify` (default `true`) -- whether to actually beautify the output.\n Passing `-b` will set this to true, but you might need to pass `-b` even\n when you want to generate minified code, in order to specify additional\n arguments, so you can use `-b beautify=false` to override it.\n- `indent-level` (default 4)\n- `indent-start` (default 0) -- prefix all lines by that many spaces\n- `quote-keys` (default `false`) -- pass `true` to quote all keys in literal\n objects\n- `space-colon` (default `true`) -- insert a space after the colon signs\n- `ascii-only` (default `false`) -- escape Unicode characters in strings and\n regexps\n- `inline-script` (default `false`) -- escape the slash in occurrences of\n `</script` in strings\n- `width` (default 80) -- only takes effect when beautification is on, this\n specifies an (orientative) line width that the beautifier will try to\n obey. It refers to the width of the line text (excluding indentation).\n It doesn\'t work very well currently, but it does make the code generated\n by UglifyJS more readable.\n- `max-line-len` (default 32000) -- maximum line length (for uglified code)\n- `ie-proof` (default `true`) -- generate “IE-proof” code (for now this\n means add brackets around the do/while in code like this: `if (foo) do\n something(); while (bar); else ...`.\n- `bracketize` (default `false`) -- always insert brackets in `if`, `for`,\n `do`, `while` or `with` statements, even if their body is a single\n statement.\n- `semicolons` (default `true`) -- separate statements with semicolons. If\n you pass `false` then whenever possible we will use a newline instead of a\n semicolon, leading to more readable output of uglified code (size before\n gzip could be smaller; size after gzip insignificantly larger).\n- `negate-iife` (default `!beautify`) -- prefer negation, rather than\n parens, for "Immediately-Called Function Expressions". This defaults to\n `true` when beautification is off, and `false` if beautification is on;\n pass it manually to force a value.\n\n### Keeping copyright notices or other comments\n\nYou can pass `--comments` to retain certain comments in the output. By\ndefault it will keep JSDoc-style comments that contain "@preserve",\n"@license" or "@cc_on" (conditional compilation for IE). You can pass\n`--comments all` to keep all the comments, or a valid JavaScript regexp to\nkeep only comments that match this regexp. For example `--comments\n\'/foo|bar/\'` will keep only comments that contain "foo" or "bar".\n\nNote, however, that there might be situations where comments are lost. For\nexample:\n```javascript\nfunction f() {\n\t/** @preserve Foo Bar */\n\tfunction g() {\n\t // this function is never called\n\t}\n\treturn something();\n}\n```\n\nEven though it has "@preserve", the comment will be lost because the inner\nfunction `g` (which is the AST node to which the comment is attached to) is\ndiscarded by the compressor as not referenced.\n\nThe safest comments where to place copyright information (or other info that\nneeds to be kept in the output) are comments attached to toplevel nodes.\n\n## Support for the SpiderMonkey AST\n\nUglifyJS2 has its own abstract syntax tree format; for\n[practical reasons](http://lisperator.net/blog/uglifyjs-why-not-switching-to-spidermonkey-ast/)\nwe can\'t easily change to using the SpiderMonkey AST internally. However,\nUglifyJS now has a converter which can import a SpiderMonkey AST.\n\nFor example [Acorn][acorn] is a super-fast parser that produces a\nSpiderMonkey AST. It has a small CLI utility that parses one file and dumps\nthe AST in JSON on the standard output. To use UglifyJS to mangle and\ncompress that:\n\n acorn file.js | uglifyjs --spidermonkey -m -c\n\nThe `--spidermonkey` option tells UglifyJS that all input files are not\nJavaScript, but JS code described in SpiderMonkey AST in JSON. Therefore we\ndon\'t use our own parser in this case, but just transform that AST into our\ninternal AST.\n\n### Use Acorn for parsing\n\nMore for fun, I added the `--acorn` option which will use Acorn to do all\nthe parsing. If you pass this option, UglifyJS will `require("acorn")`.\n\nAcorn is really fast (e.g. 250ms instead of 380ms on some 650K code), but\nconverting the SpiderMonkey tree that Acorn produces takes another 150ms so\nin total it\'s a bit more than just using UglifyJS\'s own parser.\n\nAPI Reference\n-------------\n\nAssuming installation via NPM, you can load UglifyJS in your application\nlike this:\n```javascript\nvar UglifyJS = require("uglify-js");\n```\n\nIt exports a lot of names, but I\'ll discuss here the basics that are needed\nfor parsing, mangling and compressing a piece of code. The sequence is (1)\nparse, (2) compress, (3) mangle, (4) generate output code.\n\n### The simple way\n\nThere\'s a single toplevel function which combines all the steps. If you\ndon\'t need additional customization, you might want to go with `minify`.\nExample:\n```javascript\nvar result = UglifyJS.minify("/path/to/file.js");\nconsole.log(result.code); // minified output\n// if you need to pass code instead of file name\nvar result = UglifyJS.minify("var b = function () {};", {fromString: true});\n```\n\nYou can also compress multiple files:\n```javascript\nvar result = UglifyJS.minify([ "file1.js", "file2.js", "file3.js" ]);\nconsole.log(result.code);\n```\n\nTo generate a source map:\n```javascript\nvar result = UglifyJS.minify([ "file1.js", "file2.js", "file3.js" ], {\n\toutSourceMap: "out.js.map"\n});\nconsole.log(result.code); // minified output\nconsole.log(result.map);\n```\n\nNote that the source map is not saved in a file, it\'s just returned in\n`result.map`. The value passed for `outSourceMap` is only used to set the\n`file` attribute in the source map (see [the spec][sm-spec]).\n\nYou can also specify sourceRoot property to be included in source map:\n```javascript\nvar result = UglifyJS.minify([ "file1.js", "file2.js", "file3.js" ], {\n\toutSourceMap: "out.js.map",\n\tsourceRoot: "http://example.com/src"\n});\n```\n\nIf you\'re compressing compiled JavaScript and have a source map for it, you\ncan use the `inSourceMap` argument:\n```javascript\nvar result = UglifyJS.minify("compiled.js", {\n\tinSourceMap: "compiled.js.map",\n\toutSourceMap: "minified.js.map"\n});\n// same as before, it returns `code` and `map`\n```\n\nThe `inSourceMap` is only used if you also request `outSourceMap` (it makes\nno sense otherwise).\n\nOther options:\n\n- `warnings` (default `false`) — pass `true` to display compressor warnings.\n\n- `fromString` (default `false`) — if you pass `true` then you can pass\n JavaScript source code, rather than file names.\n\n- `mangle` — pass `false` to skip mangling names.\n\n- `output` (default `null`) — pass an object if you wish to specify\n additional [output options][codegen]. The defaults are optimized\n for best compression.\n\n- `compress` (default `{}`) — pass `false` to skip compressing entirely.\n Pass an object to specify custom [compressor options][compressor].\n\nWe could add more options to `UglifyJS.minify` — if you need additional\nfunctionality please suggest!\n\n### The hard way\n\nFollowing there\'s more detailed API info, in case the `minify` function is\ntoo simple for your needs.\n\n#### The parser\n```javascript\nvar toplevel_ast = UglifyJS.parse(code, options);\n```\n\n`options` is optional and if present it must be an object. The following\nproperties are available:\n\n- `strict` — disable automatic semicolon insertion and support for trailing\n comma in arrays and objects\n- `filename` — the name of the file where this code is coming from\n- `toplevel` — a `toplevel` node (as returned by a previous invocation of\n `parse`)\n\nThe last two options are useful when you\'d like to minify multiple files and\nget a single file as the output and a proper source map. Our CLI tool does\nsomething like this:\n```javascript\nvar toplevel = null;\nfiles.forEach(function(file){\n\tvar code = fs.readFileSync(file);\n\ttoplevel = UglifyJS.parse(code, {\n\t\tfilename: file,\n\t\ttoplevel: toplevel\n\t});\n});\n```\n\nAfter this, we have in `toplevel` a big AST containing all our files, with\neach token having proper information about where it came from.\n\n#### Scope information\n\nUglifyJS contains a scope analyzer that you need to call manually before\ncompressing or mangling. Basically it augments various nodes in the AST\nwith information about where is a name defined, how many times is a name\nreferenced, if it is a global or not, if a function is using `eval` or the\n`with` statement etc. I will discuss this some place else, for now what\'s\nimportant to know is that you need to call the following before doing\nanything with the tree:\n```javascript\ntoplevel.figure_out_scope()\n```\n\n#### Compression\n\nLike this:\n```javascript\nvar compressor = UglifyJS.Compressor(options);\nvar compressed_ast = toplevel.transform(compressor);\n```\n\nThe `options` can be missing. Available options are discussed above in\n“Compressor options”. Defaults should lead to best compression in most\nscripts.\n\nThe compressor is destructive, so don\'t rely that `toplevel` remains the\noriginal tree.\n\n#### Mangling\n\nAfter compression it is a good idea to call again `figure_out_scope` (since\nthe compressor might drop unused variables / unreachable code and this might\nchange the number of identifiers or their position). Optionally, you can\ncall a trick that helps after Gzip (counting character frequency in\nnon-mangleable words). Example:\n```javascript\ncompressed_ast.figure_out_scope();\ncompressed_ast.compute_char_frequency();\ncompressed_ast.mangle_names();\n```\n\n#### Generating output\n\nAST nodes have a `print` method that takes an output stream. Essentially,\nto generate code you do this:\n```javascript\nvar stream = UglifyJS.OutputStream(options);\ncompressed_ast.print(stream);\nvar code = stream.toString(); // this is your minified code\n```\n\nor, for a shortcut you can do:\n```javascript\nvar code = compressed_ast.print_to_string(options);\n```\n\nAs usual, `options` is optional. The output stream accepts a lot of otions,\nmost of them documented above in section “Beautifier options”. The two\nwhich we care about here are `source_map` and `comments`.\n\n#### Keeping comments in the output\n\nIn order to keep certain comments in the output you need to pass the\n`comments` option. Pass a RegExp or a function. If you pass a RegExp, only\nthose comments whose body matches the regexp will be kept. Note that body\nmeans without the initial `//` or `/*`. If you pass a function, it will be\ncalled for every comment in the tree and will receive two arguments: the\nnode that the comment is attached to, and the comment token itself.\n\nThe comment token has these properties:\n\n- `type`: "comment1" for single-line comments or "comment2" for multi-line\n comments\n- `value`: the comment body\n- `pos` and `endpos`: the start/end positions (zero-based indexes) in the\n original code where this comment appears\n- `line` and `col`: the line and column where this comment appears in the\n original code\n- `file` — the file name of the original file\n- `nlb` — true if there was a newline before this comment in the original\n code, or if this comment contains a newline.\n\nYour function should return `true` to keep the comment, or a falsy value\notherwise.\n\n#### Generating a source mapping\n\nYou need to pass the `source_map` argument when calling `print`. It needs\nto be a `SourceMap` object (which is a thin wrapper on top of the\n[source-map][source-map] library).\n\nExample:\n```javascript\nvar source_map = UglifyJS.SourceMap(source_map_options);\nvar stream = UglifyJS.OutputStream({\n\t...\n\tsource_map: source_map\n});\ncompressed_ast.print(stream);\n\nvar code = stream.toString();\nvar map = source_map.toString(); // json output for your source map\n```\n\nThe `source_map_options` (optional) can contain the following properties:\n\n- `file`: the name of the JavaScript output file that this mapping refers to\n- `root`: the `sourceRoot` property (see the [spec][sm-spec])\n- `orig`: the "original source map", handy when you compress generated JS\n and want to map the minified output back to the original code where it\n came from. It can be simply a string in JSON, or a JSON object containing\n the original source map.\n\n [acorn]: https://github.com/marijnh/acorn\n [source-map]: https://github.com/mozilla/source-map\n [sm-spec]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit\n [codegen]: http://lisperator.net/uglifyjs/codegen\n [compressor]: http://lisperator.net/uglifyjs/compress\n',
6993 silly resolved readmeFilename: 'README.md',
6993 silly resolved bugs: { url: 'https://github.com/mishoo/UglifyJS2/issues' },
6993 silly resolved _id: 'uglify-js@2.3.6',
6993 silly resolved _from: 'uglify-js@~2.3' } ]
6994 info install optimist@0.3.7 into /opt/local/lib/node_modules/bower/node_modules/handlebars
6995 info install uglify-js@2.3.6 into /opt/local/lib/node_modules/bower/node_modules/handlebars
6996 info installOne optimist@0.3.7
6997 info installOne uglify-js@2.3.6
6998 silly gunzTarPerm extractEntry node_modules/mime/LICENSE
6999 silly gunzTarPerm extractEntry node_modules/mime/mime.js
7000 info postinstall wordwrap@0.0.2
7001 info /opt/local/lib/node_modules/bower/node_modules/handlebars/node_modules/optimist unbuild
7002 info /opt/local/lib/node_modules/bower/node_modules/handlebars/node_modules/uglify-js unbuild
7003 silly gunzTarPerm extractEntry dist/lodash.legacy.js
7004 silly addNameRange number 2 { name: 'oauth-sign',
7004 silly addNameRange range: '>=0.3.0-0 <0.4.0-0',
7004 silly addNameRange hasData: true }
7005 silly addNameRange versions [ 'oauth-sign', [ '0.2.0', '0.3.0' ] ]
7006 verbose addNamed [ 'oauth-sign', '0.3.0' ]
7007 verbose addNamed [ '0.3.0', '0.3.0' ]
7008 silly lockFile ae61e7c5-oauth-sign-0-3-0 oauth-sign@0.3.0
7009 verbose lock oauth-sign@0.3.0 /Users/vaca/.npm/ae61e7c5-oauth-sign-0-3-0.lock
7010 silly gunzTarPerm extractEntry dist/lodash.backbone.min.js
7011 verbose readDependencies using package.json deps
7012 verbose about to build /opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist
7013 info build /opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules/optimist
7014 verbose linkStuff [ true,
7014 verbose linkStuff '/opt/local/lib/node_modules',
7014 verbose linkStuff false,
7014 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/bower-config/node_modules' ]
7015 info linkStuff optimist@0.6.0
7016 verbose readDependencies using package.json deps
7017 silly resolved []
7018 verbose about to build /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/match-stream/node_modules/buffers
7019 info build /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/match-stream/node_modules/buffers
7020 verbose linkStuff [ true,
7020 verbose linkStuff '/opt/local/lib/node_modules',
7020 verbose linkStuff false,
7020 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/match-stream/node_modules' ]
7021 info linkStuff buffers@0.1.1
7022 verbose tar unpack /Users/vaca/.npm/optimist/0.3.7/package.tgz
7023 silly lockFile f4d1d29a-handlebars-node-modules-optimist tar:///opt/local/lib/node_modules/bower/node_modules/handlebars/node_modules/optimist
7024 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/handlebars/node_modules/optimist /Users/vaca/.npm/f4d1d29a-handlebars-node-modules-optimist.lock
7025 silly lockFile 61405a2d-a-npm-optimist-0-3-7-package-tgz tar:///Users/vaca/.npm/optimist/0.3.7/package.tgz
7026 verbose lock tar:///Users/vaca/.npm/optimist/0.3.7/package.tgz /Users/vaca/.npm/61405a2d-a-npm-optimist-0-3-7-package-tgz.lock
7027 verbose tar unpack /Users/vaca/.npm/uglify-js/2.3.6/package.tgz
7028 silly lockFile f1192aa1-andlebars-node-modules-uglify-js tar:///opt/local/lib/node_modules/bower/node_modules/handlebars/node_modules/uglify-js
7029 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/handlebars/node_modules/uglify-js /Users/vaca/.npm/f1192aa1-andlebars-node-modules-uglify-js.lock
7030 silly lockFile 62f6aafc--npm-uglify-js-2-3-6-package-tgz tar:///Users/vaca/.npm/uglify-js/2.3.6/package.tgz
7031 verbose lock tar:///Users/vaca/.npm/uglify-js/2.3.6/package.tgz /Users/vaca/.npm/62f6aafc--npm-uglify-js-2-3-6-package-tgz.lock
7032 verbose linkBins optimist@0.6.0
7033 verbose linkMans optimist@0.6.0
7034 verbose rebuildBundles optimist@0.6.0
7035 http 304 https://registry.npmjs.org/memoizee
7036 silly registry.get cb [ 304,
7036 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
7036 silly registry.get etag: '"95PMSYJFRRNTFD8S3SGDTI4ER"',
7036 silly registry.get date: 'Fri, 02 Aug 2013 15:55:14 GMT',
7036 silly registry.get 'content-length': '0' } ]
7037 verbose etag memoizee from cache
7038 verbose linkBins buffers@0.1.1
7039 verbose linkMans buffers@0.1.1
7040 verbose rebuildBundles buffers@0.1.1
7041 verbose rebuildBundles [ 'minimist', 'wordwrap' ]
7042 info install optimist@0.6.0
7043 info install buffers@0.1.1
7044 silly gunzTarPerm modes [ '755', '644' ]
7045 silly gunzTarPerm modes [ '755', '644' ]
7046 info postinstall optimist@0.6.0
7047 silly gunzTarPerm extractEntry node_modules/mime/test.js
7048 silly gunzTarPerm extractEntry node_modules/mime/types/mime.types
7049 silly gunzTarPerm extractEntry src/number/toInt.js
7050 silly gunzTarPerm extractEntry src/number/toUInt.js
7051 info postinstall buffers@0.1.1
7052 verbose about to build /opt/local/lib/node_modules/bower/node_modules/bower-config
7053 info build /opt/local/lib/node_modules/bower/node_modules/bower-config
7054 verbose linkStuff [ true,
7054 verbose linkStuff '/opt/local/lib/node_modules',
7054 verbose linkStuff false,
7054 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules' ]
7055 info linkStuff bower-config@0.2.0-rc.1
7056 http 304 https://registry.npmjs.org/es5-ext
7057 silly registry.get cb [ 304,
7057 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
7057 silly registry.get etag: '"BMGHOMSZWUAPJWU8C6A7FNFYW"',
7057 silly registry.get date: 'Fri, 02 Aug 2013 15:55:14 GMT',
7057 silly registry.get 'content-length': '0' } ]
7058 verbose etag es5-ext from cache
7059 verbose about to build /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/match-stream
7060 info build /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/match-stream
7061 verbose linkStuff [ true,
7061 verbose linkStuff '/opt/local/lib/node_modules',
7061 verbose linkStuff false,
7061 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/unzip/node_modules' ]
7062 info linkStuff match-stream@0.0.2
7063 silly gunzTarPerm extractEntry perf/perf.js
7064 http 304 https://registry.npmjs.org/cookie-jar
7065 silly registry.get cb [ 304,
7065 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
7065 silly registry.get etag: '"BSGHM1YQ1F4ZD2009U1SC6GVB"',
7065 silly registry.get date: 'Fri, 02 Aug 2013 15:55:14 GMT',
7065 silly registry.get 'content-length': '0' } ]
7066 verbose etag cookie-jar from cache
7067 silly gunzTarPerm extractEntry test/test-build.js
7068 verbose linkBins bower-config@0.2.0-rc.1
7069 verbose linkMans bower-config@0.2.0-rc.1
7070 verbose rebuildBundles bower-config@0.2.0-rc.1
7071 silly gunzTarPerm extractEntry package.json
7072 silly addNameRange number 2 { name: 'memoizee', range: '>=0.2.0-0 <0.3.0-0', hasData: true }
7073 silly addNameRange versions [ 'memoizee',
7073 silly addNameRange [ '0.1.0',
7073 silly addNameRange '0.1.1',
7073 silly addNameRange '0.2.0',
7073 silly addNameRange '0.2.1',
7073 silly addNameRange '0.2.2',
7073 silly addNameRange '0.2.3',
7073 silly addNameRange '0.2.4',
7073 silly addNameRange '0.2.5' ] ]
7074 verbose addNamed [ 'memoizee', '0.2.5' ]
7075 verbose addNamed [ '0.2.5', '0.2.5' ]
7076 silly lockFile 91f3c686-memoizee-0-2-5 memoizee@0.2.5
7077 verbose lock memoizee@0.2.5 /Users/vaca/.npm/91f3c686-memoizee-0-2-5.lock
7078 silly lockFile 5f4056b5-ules-glob-node-modules-minimatch tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/minimatch
7079 silly lockFile 5f4056b5-ules-glob-node-modules-minimatch tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/minimatch
7080 verbose linkBins match-stream@0.0.2
7081 verbose linkMans match-stream@0.0.2
7082 verbose rebuildBundles match-stream@0.0.2
7083 verbose rebuildBundles [ 'optimist', 'osenv' ]
7084 info install bower-config@0.2.0-rc.1
7085 silly gunzTarPerm extractEntry package.json
7086 silly lockFile 00ccd5a5-stream-node-modules-slice-stream tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream/node_modules/slice-stream
7087 silly lockFile 00ccd5a5-stream-node-modules-slice-stream tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream/node_modules/slice-stream
7088 silly lockFile 5e70848b-npm-minimatch-0-2-12-package-tgz tar:///Users/vaca/.npm/minimatch/0.2.12/package.tgz
7089 silly lockFile 5e70848b-npm-minimatch-0-2-12-package-tgz tar:///Users/vaca/.npm/minimatch/0.2.12/package.tgz
7090 verbose rebuildBundles [ 'buffers' ]
7091 info install match-stream@0.0.2
7092 silly gunzTarPerm extractEntry dist/lodash.min.js
7093 silly gunzTarPerm extractEntry dist/lodash.mobile.js
7094 silly lockFile 607e79d5-m-slice-stream-0-0-0-package-tgz tar:///Users/vaca/.npm/slice-stream/0.0.0/package.tgz
7095 silly lockFile 607e79d5-m-slice-stream-0-0-0-package-tgz tar:///Users/vaca/.npm/slice-stream/0.0.0/package.tgz
7096 info postinstall bower-config@0.2.0-rc.1
7097 silly lockFile ae61e7c5-oauth-sign-0-3-0 oauth-sign@0.3.0
7098 silly lockFile ae61e7c5-oauth-sign-0-3-0 oauth-sign@0.3.0
7099 info postinstall match-stream@0.0.2
7100 silly gunzTarPerm extractEntry LICENSE
7101 silly gunzTarPerm extractEntry index.js
7102 silly lockFile 7fb5c7f1-oauth-sign-0-3-0 oauth-sign@~0.3.0
7103 silly lockFile 7fb5c7f1-oauth-sign-0-3-0 oauth-sign@~0.3.0
7104 silly gunzTarPerm extractEntry src/number/MAX_UINT.js
7105 silly gunzTarPerm extractEntry src/number/toUInt31.js
7106 silly addNameRange number 2 { name: 'es5-ext', range: '>=0.9.1-0 <0.10.0-0', hasData: true }
7107 silly addNameRange versions [ 'es5-ext',
7107 silly addNameRange [ '0.1.0',
7107 silly addNameRange '0.2.0',
7107 silly addNameRange '0.2.1',
7107 silly addNameRange '0.3.0',
7107 silly addNameRange '0.4.0',
7107 silly addNameRange '0.5.0',
7107 silly addNameRange '0.5.1',
7107 silly addNameRange '0.6.0',
7107 silly addNameRange '0.6.1',
7107 silly addNameRange '0.6.2',
7107 silly addNameRange '0.6.3',
7107 silly addNameRange '0.7.0',
7107 silly addNameRange '0.7.1',
7107 silly addNameRange '0.8.0',
7107 silly addNameRange '0.8.1',
7107 silly addNameRange '0.8.2',
7107 silly addNameRange '0.9.0',
7107 silly addNameRange '0.9.1',
7107 silly addNameRange '0.9.2' ] ]
7108 verbose addNamed [ 'es5-ext', '0.9.2' ]
7109 verbose addNamed [ '0.9.2', '0.9.2' ]
7110 silly lockFile 091374ed-es5-ext-0-9-2 es5-ext@0.9.2
7111 verbose lock es5-ext@0.9.2 /Users/vaca/.npm/091374ed-es5-ext-0-9-2.lock
7112 silly gunzTarPerm extractEntry .npmignore
7113 silly gunzTarPerm extractEntry README.md
7114 http 304 https://registry.npmjs.org/aws-sign
7115 silly registry.get cb [ 304,
7115 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
7115 silly registry.get etag: '"A27JT8PHWHU5C0UXRHYE6SOAC"',
7115 silly registry.get date: 'Fri, 02 Aug 2013 15:55:14 GMT',
7115 silly registry.get 'content-length': '0' } ]
7116 verbose etag aws-sign from cache
7117 info preinstall minimatch@0.2.12
7118 silly addNameRange number 2 { name: 'cookie-jar',
7118 silly addNameRange range: '>=0.3.0-0 <0.4.0-0',
7118 silly addNameRange hasData: true }
7119 silly addNameRange versions [ 'cookie-jar', [ '0.2.0', '0.3.0' ] ]
7120 verbose addNamed [ 'cookie-jar', '0.3.0' ]
7121 verbose addNamed [ '0.3.0', '0.3.0' ]
7122 silly lockFile 46e83fc0-cookie-jar-0-3-0 cookie-jar@0.3.0
7123 verbose lock cookie-jar@0.3.0 /Users/vaca/.npm/46e83fc0-cookie-jar-0-3-0.lock
7124 info preinstall slice-stream@0.0.0
7125 silly gunzTarPerm extractEntry test/test.js
7126 silly gunzTarPerm extractEntry test/template/a.jst
7127 silly lockFile a8e8e27b-te-notifier-node-modules-request tar:///opt/local/lib/node_modules/yo/node_modules/update-notifier/node_modules/request
7128 silly lockFile a8e8e27b-te-notifier-node-modules-request tar:///opt/local/lib/node_modules/yo/node_modules/update-notifier/node_modules/request
7129 verbose readDependencies using package.json deps
7130 silly lockFile 41b84e5a-a-npm-request-2-22-0-package-tgz tar:///Users/vaca/.npm/request/2.22.0/package.tgz
7131 silly lockFile 41b84e5a-a-npm-request-2-22-0-package-tgz tar:///Users/vaca/.npm/request/2.22.0/package.tgz
7132 verbose readDependencies using package.json deps
7133 verbose readDependencies using package.json deps
7134 http 304 https://registry.npmjs.org/node-uuid
7135 silly registry.get cb [ 304,
7135 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
7135 silly registry.get etag: '"6HUZF714E21IQQ1CZR2OMQCYL"',
7135 silly registry.get date: 'Fri, 02 Aug 2013 15:55:14 GMT',
7135 silly registry.get 'content-length': '0' } ]
7136 verbose etag node-uuid from cache
7137 verbose readDependencies using package.json deps
7138 silly resolved []
7139 verbose about to build /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream/node_modules/slice-stream
7140 info build /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream/node_modules/slice-stream
7141 verbose linkStuff [ true,
7141 verbose linkStuff '/opt/local/lib/node_modules',
7141 verbose linkStuff false,
7141 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream/node_modules' ]
7142 info linkStuff slice-stream@0.0.0
7143 http 304 https://registry.npmjs.org/mime
7144 silly registry.get cb [ 304,
7144 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
7144 silly registry.get etag: '"9BJYZJ4U30HWFNFSOAXY20N78"',
7144 silly registry.get date: 'Fri, 02 Aug 2013 15:55:14 GMT',
7144 silly registry.get 'content-length': '0' } ]
7145 verbose etag mime from cache
7146 verbose cache add [ 'lru-cache@2', null ]
7147 verbose cache add name=undefined spec="lru-cache@2" args=["lru-cache@2",null]
7148 verbose parsed url { protocol: null,
7148 verbose parsed url slashes: null,
7148 verbose parsed url auth: null,
7148 verbose parsed url host: null,
7148 verbose parsed url port: null,
7148 verbose parsed url hostname: null,
7148 verbose parsed url hash: null,
7148 verbose parsed url search: null,
7148 verbose parsed url query: null,
7148 verbose parsed url pathname: 'lru-cache@2',
7148 verbose parsed url path: 'lru-cache@2',
7148 verbose parsed url href: 'lru-cache@2' }
7149 verbose cache add name="lru-cache" spec="2" args=["lru-cache","2"]
7150 verbose parsed url { protocol: null,
7150 verbose parsed url slashes: null,
7150 verbose parsed url auth: null,
7150 verbose parsed url host: null,
7150 verbose parsed url port: null,
7150 verbose parsed url hostname: null,
7150 verbose parsed url hash: null,
7150 verbose parsed url search: null,
7150 verbose parsed url query: null,
7150 verbose parsed url pathname: '2',
7150 verbose parsed url path: '2',
7150 verbose parsed url href: '2' }
7151 verbose addNamed [ 'lru-cache', '2' ]
7152 verbose addNamed [ null, '>=2.0.0-0 <3.0.0-0' ]
7153 silly lockFile b4f9d1ff-lru-cache-2 lru-cache@2
7154 verbose lock lru-cache@2 /Users/vaca/.npm/b4f9d1ff-lru-cache-2.lock
7155 verbose cache add [ 'sigmund@~1.0.0', null ]
7156 verbose cache add name=undefined spec="sigmund@~1.0.0" args=["sigmund@~1.0.0",null]
7157 verbose parsed url { protocol: null,
7157 verbose parsed url slashes: null,
7157 verbose parsed url auth: null,
7157 verbose parsed url host: null,
7157 verbose parsed url port: null,
7157 verbose parsed url hostname: null,
7157 verbose parsed url hash: null,
7157 verbose parsed url search: null,
7157 verbose parsed url query: null,
7157 verbose parsed url pathname: 'sigmund@~1.0.0',
7157 verbose parsed url path: 'sigmund@~1.0.0',
7157 verbose parsed url href: 'sigmund@~1.0.0' }
7158 verbose cache add name="sigmund" spec="~1.0.0" args=["sigmund","~1.0.0"]
7159 verbose parsed url { protocol: null,
7159 verbose parsed url slashes: null,
7159 verbose parsed url auth: null,
7159 verbose parsed url host: null,
7159 verbose parsed url port: null,
7159 verbose parsed url hostname: null,
7159 verbose parsed url hash: null,
7159 verbose parsed url search: null,
7159 verbose parsed url query: null,
7159 verbose parsed url pathname: '~1.0.0',
7159 verbose parsed url path: '~1.0.0',
7159 verbose parsed url href: '~1.0.0' }
7160 verbose addNamed [ 'sigmund', '~1.0.0' ]
7161 verbose addNamed [ null, '>=1.0.0-0 <1.1.0-0' ]
7162 silly lockFile 584a4a05-sigmund-1-0-0 sigmund@~1.0.0
7163 verbose lock sigmund@~1.0.0 /Users/vaca/.npm/584a4a05-sigmund-1-0-0.lock
7164 silly gunzTarPerm extractEntry src/number/pad.js
7165 silly gunzTarPerm extractEntry src/object/bindAll.js
7166 silly addNameRange number 2 { name: 'aws-sign', range: '>=0.3.0-0 <0.4.0-0', hasData: true }
7167 silly addNameRange versions [ 'aws-sign',
7167 silly addNameRange [ '0.0.1', '0.0.2', '0.1.0', '0.1.1', '0.2.0', '0.3.0' ] ]
7168 verbose addNamed [ 'aws-sign', '0.3.0' ]
7169 verbose addNamed [ '0.3.0', '0.3.0' ]
7170 silly lockFile 503c0a27-aws-sign-0-3-0 aws-sign@0.3.0
7171 verbose lock aws-sign@0.3.0 /Users/vaca/.npm/503c0a27-aws-sign-0-3-0.lock
7172 verbose linkBins slice-stream@0.0.0
7173 verbose linkMans slice-stream@0.0.0
7174 verbose rebuildBundles slice-stream@0.0.0
7175 silly gunzTarPerm extractEntry .travis.yml
7176 info preinstall request@2.22.0
7177 silly addNameRange { name: 'lru-cache',
7177 silly addNameRange range: '>=2.0.0-0 <3.0.0-0',
7177 silly addNameRange hasData: false }
7178 silly addNameRange { name: 'sigmund', range: '>=1.0.0-0 <1.1.0-0', hasData: false }
7179 silly lockFile ffd6508f--configstore-node-modules-yamljs tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/configstore/node_modules/yamljs
7180 silly lockFile ffd6508f--configstore-node-modules-yamljs tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/configstore/node_modules/yamljs
7181 silly lockFile 91f3c686-memoizee-0-2-5 memoizee@0.2.5
7182 silly lockFile 91f3c686-memoizee-0-2-5 memoizee@0.2.5
7183 info install slice-stream@0.0.0
7184 silly gunzTarPerm extractEntry LICENSE
7185 silly lockFile 83a1ea75-aca-npm-yamljs-0-1-4-package-tgz tar:///Users/vaca/.npm/yamljs/0.1.4/package.tgz
7186 silly lockFile 83a1ea75-aca-npm-yamljs-0-1-4-package-tgz tar:///Users/vaca/.npm/yamljs/0.1.4/package.tgz
7187 silly lockFile d023dacd-memoizee-0-2-x memoizee@0.2.x
7188 silly lockFile d023dacd-memoizee-0-2-x memoizee@0.2.x
7189 info postinstall slice-stream@0.0.0
7190 verbose readDependencies using package.json deps
7191 silly addNameRange number 2 { name: 'node-uuid', range: '>=1.4.0-0 <1.5.0-0', hasData: true }
7192 silly addNameRange versions [ 'node-uuid',
7192 silly addNameRange [ '1.2.0',
7192 silly addNameRange '1.3.0',
7192 silly addNameRange '1.3.1',
7192 silly addNameRange '1.3.2',
7192 silly addNameRange '1.1.0',
7192 silly addNameRange '1.0.0',
7192 silly addNameRange '1.3.3',
7192 silly addNameRange '1.4.0' ] ]
7193 verbose addNamed [ 'node-uuid', '1.4.0' ]
7194 verbose addNamed [ '1.4.0', '1.4.0' ]
7195 silly lockFile 788da469-node-uuid-1-4-0 node-uuid@1.4.0
7196 verbose lock node-uuid@1.4.0 /Users/vaca/.npm/788da469-node-uuid-1-4-0.lock
7197 verbose readDependencies using package.json deps
7198 verbose about to build /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream
7199 info build /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/pullstream
7200 verbose linkStuff [ true,
7200 verbose linkStuff '/opt/local/lib/node_modules',
7200 verbose linkStuff false,
7200 verbose linkStuff '/opt/local/lib/node_modules/bower/node_modules/unzip/node_modules' ]
7201 info linkStuff pullstream@0.4.0
7202 silly lockFile 091374ed-es5-ext-0-9-2 es5-ext@0.9.2
7203 silly lockFile 091374ed-es5-ext-0-9-2 es5-ext@0.9.2
7204 silly addNameRange number 2 { name: 'mime', range: '>=1.2.9-0 <1.3.0-0', hasData: true }
7205 silly addNameRange versions [ 'mime',
7205 silly addNameRange [ '1.0.0',
7205 silly addNameRange '1.1.0',
7205 silly addNameRange '1.2.1',
7205 silly addNameRange '1.2.2',
7205 silly addNameRange '1.2.3',
7205 silly addNameRange '1.2.4',
7205 silly addNameRange '1.2.5',
7205 silly addNameRange '1.2.6',
7205 silly addNameRange '1.2.7',
7205 silly addNameRange '1.2.8',
7205 silly addNameRange '1.2.9',
7205 silly addNameRange '1.2.10' ] ]
7206 verbose addNamed [ 'mime', '1.2.10' ]
7207 verbose addNamed [ '1.2.10', '1.2.10' ]
7208 silly lockFile 8bcaaa4d-mime-1-2-10 mime@1.2.10
7209 verbose lock mime@1.2.10 /Users/vaca/.npm/8bcaaa4d-mime-1-2-10.lock
7210 verbose registry.get lru-cache not expired, no request
7211 silly addNameRange number 2 { name: 'lru-cache', range: '>=2.0.0-0 <3.0.0-0', hasData: true }
7212 silly addNameRange versions [ 'lru-cache',
7212 silly addNameRange [ '1.0.1',
7212 silly addNameRange '1.0.2',
7212 silly addNameRange '1.0.3',
7212 silly addNameRange '1.0.4',
7212 silly addNameRange '1.0.5',
7212 silly addNameRange '1.0.6',
7212 silly addNameRange '1.1.0',
7212 silly addNameRange '1.1.1',
7212 silly addNameRange '2.0.0',
7212 silly addNameRange '2.0.1',
7212 silly addNameRange '2.0.2',
7212 silly addNameRange '2.0.3',
7212 silly addNameRange '2.0.4',
7212 silly addNameRange '2.1.0',
7212 silly addNameRange '2.2.0',
7212 silly addNameRange '2.2.1',
7212 silly addNameRange '2.2.2',
7212 silly addNameRange '2.2.4',
7212 silly addNameRange '2.3.0' ] ]
7213 verbose addNamed [ 'lru-cache', '2.3.0' ]
7214 verbose addNamed [ '2.3.0', '2.3.0' ]
7215 silly lockFile 14cd0f37-lru-cache-2-3-0 lru-cache@2.3.0
7216 verbose lock lru-cache@2.3.0 /Users/vaca/.npm/14cd0f37-lru-cache-2-3-0.lock
7217 verbose registry.get sigmund not expired, no request
7218 silly addNameRange number 2 { name: 'sigmund', range: '>=1.0.0-0 <1.1.0-0', hasData: true }
7219 silly addNameRange versions [ 'sigmund', [ '1.0.0' ] ]
7220 verbose addNamed [ 'sigmund', '1.0.0' ]
7221 verbose addNamed [ '1.0.0', '1.0.0' ]
7222 silly lockFile 7b2d1244-sigmund-1-0-0 sigmund@1.0.0
7223 verbose lock sigmund@1.0.0 /Users/vaca/.npm/7b2d1244-sigmund-1-0-0.lock
7224 http 304 https://registry.npmjs.org/form-data
7225 silly registry.get cb [ 304,
7225 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
7225 silly registry.get etag: '"9GQPP3V1TWZICN05X66SWTXCE"',
7225 silly registry.get date: 'Fri, 02 Aug 2013 15:55:14 GMT',
7225 silly registry.get 'content-length': '0' } ]
7226 verbose etag form-data from cache
7227 http 304 https://registry.npmjs.org/http-signature
7228 silly registry.get cb [ 304,
7228 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
7228 silly registry.get etag: '"1M929FRRWNE7UYGGSO1BB3I9Q"',
7228 silly registry.get date: 'Fri, 02 Aug 2013 15:55:14 GMT',
7228 silly registry.get 'content-length': '0' } ]
7229 verbose etag http-signature from cache
7230 verbose cache add [ 'http-signature@~0.10.0', null ]
7231 verbose cache add name=undefined spec="http-signature@~0.10.0" args=["http-signature@~0.10.0",null]
7232 verbose parsed url { protocol: null,
7232 verbose parsed url slashes: null,
7232 verbose parsed url auth: null,
7232 verbose parsed url host: null,
7232 verbose parsed url port: null,
7232 verbose parsed url hostname: null,
7232 verbose parsed url hash: null,
7232 verbose parsed url search: null,
7232 verbose parsed url query: null,
7232 verbose parsed url pathname: 'http-signature@~0.10.0',
7232 verbose parsed url path: 'http-signature@~0.10.0',
7232 verbose parsed url href: 'http-signature@~0.10.0' }
7233 verbose cache add name="http-signature" spec="~0.10.0" args=["http-signature","~0.10.0"]
7234 verbose parsed url { protocol: null,
7234 verbose parsed url slashes: null,
7234 verbose parsed url auth: null,
7234 verbose parsed url host: null,
7234 verbose parsed url port: null,
7234 verbose parsed url hostname: null,
7234 verbose parsed url hash: null,
7234 verbose parsed url search: null,
7234 verbose parsed url query: null,
7234 verbose parsed url pathname: '~0.10.0',
7234 verbose parsed url path: '~0.10.0',
7234 verbose parsed url href: '~0.10.0' }
7235 verbose addNamed [ 'http-signature', '~0.10.0' ]
7236 verbose cache add [ 'forever-agent@~0.5.0', null ]
7237 verbose cache add name=undefined spec="forever-agent@~0.5.0" args=["forever-agent@~0.5.0",null]
7238 verbose parsed url { protocol: null,
7238 verbose parsed url slashes: null,
7238 verbose parsed url auth: null,
7238 verbose parsed url host: null,
7238 verbose parsed url port: null,
7238 verbose parsed url hostname: null,
7238 verbose parsed url hash: null,
7238 verbose parsed url search: null,
7238 verbose parsed url query: null,
7238 verbose parsed url pathname: 'forever-agent@~0.5.0',
7238 verbose parsed url path: 'forever-agent@~0.5.0',
7238 verbose parsed url href: 'forever-agent@~0.5.0' }
7239 verbose cache add name="forever-agent" spec="~0.5.0" args=["forever-agent","~0.5.0"]
7240 verbose parsed url { protocol: null,
7240 verbose parsed url slashes: null,
7240 verbose parsed url auth: null,
7240 verbose parsed url host: null,
7240 verbose parsed url port: null,
7240 verbose parsed url hostname: null,
7240 verbose parsed url hash: null,
7240 verbose parsed url search: null,
7240 verbose parsed url query: null,
7240 verbose parsed url pathname: '~0.5.0',
7240 verbose parsed url path: '~0.5.0',
7240 verbose parsed url href: '~0.5.0' }
7241 verbose addNamed [ 'forever-agent', '~0.5.0' ]
7242 verbose cache add [ 'hawk@~0.13.0', null ]
7243 verbose cache add name=undefined spec="hawk@~0.13.0" args=["hawk@~0.13.0",null]
7244 verbose parsed url { protocol: null,
7244 verbose parsed url slashes: null,
7244 verbose parsed url auth: null,
7244 verbose parsed url host: null,
7244 verbose parsed url port: null,
7244 verbose parsed url hostname: null,
7244 verbose parsed url hash: null,
7244 verbose parsed url search: null,
7244 verbose parsed url query: null,
7244 verbose parsed url pathname: 'hawk@~0.13.0',
7244 verbose parsed url path: 'hawk@~0.13.0',
7244 verbose parsed url href: 'hawk@~0.13.0' }
7245 verbose cache add name="hawk" spec="~0.13.0" args=["hawk","~0.13.0"]
7246 verbose parsed url { protocol: null,
7246 verbose parsed url slashes: null,
7246 verbose parsed url auth: null,
7246 verbose parsed url host: null,
7246 verbose parsed url port: null,
7246 verbose parsed url hostname: null,
7246 verbose parsed url hash: null,
7246 verbose parsed url search: null,
7246 verbose parsed url query: null,
7246 verbose parsed url pathname: '~0.13.0',
7246 verbose parsed url path: '~0.13.0',
7246 verbose parsed url href: '~0.13.0' }
7247 verbose addNamed [ 'hawk', '~0.13.0' ]
7248 verbose addNamed [ null, '>=0.13.0-0 <0.14.0-0' ]
7249 silly lockFile 1e7e761d-hawk-0-13-0 hawk@~0.13.0
7250 verbose lock hawk@~0.13.0 /Users/vaca/.npm/1e7e761d-hawk-0-13-0.lock
7251 verbose cache add [ 'tunnel-agent@~0.3.0', null ]
7252 verbose cache add name=undefined spec="tunnel-agent@~0.3.0" args=["tunnel-agent@~0.3.0",null]
7253 verbose parsed url { protocol: null,
7253 verbose parsed url slashes: null,
7253 verbose parsed url auth: null,
7253 verbose parsed url host: null,
7253 verbose parsed url port: null,
7253 verbose parsed url hostname: null,
7253 verbose parsed url hash: null,
7253 verbose parsed url search: null,
7253 verbose parsed url query: null,
7253 verbose parsed url pathname: 'tunnel-agent@~0.3.0',
7253 verbose parsed url path: 'tunnel-agent@~0.3.0',
7253 verbose parsed url href: 'tunnel-agent@~0.3.0' }
7254 verbose cache add name="tunnel-agent" spec="~0.3.0" args=["tunnel-agent","~0.3.0"]
7255 verbose parsed url { protocol: null,
7255 verbose parsed url slashes: null,
7255 verbose parsed url auth: null,
7255 verbose parsed url host: null,
7255 verbose parsed url port: null,
7255 verbose parsed url hostname: null,
7255 verbose parsed url hash: null,
7255 verbose parsed url search: null,
7255 verbose parsed url query: null,
7255 verbose parsed url pathname: '~0.3.0',
7255 verbose parsed url path: '~0.3.0',
7255 verbose parsed url href: '~0.3.0' }
7256 verbose addNamed [ 'tunnel-agent', '~0.3.0' ]
7257 verbose cache add [ 'aws-sign@~0.3.0', null ]
7258 verbose cache add name=undefined spec="aws-sign@~0.3.0" args=["aws-sign@~0.3.0",null]
7259 verbose parsed url { protocol: null,
7259 verbose parsed url slashes: null,
7259 verbose parsed url auth: null,
7259 verbose parsed url host: null,
7259 verbose parsed url port: null,
7259 verbose parsed url hostname: null,
7259 verbose parsed url hash: null,
7259 verbose parsed url search: null,
7259 verbose parsed url query: null,
7259 verbose parsed url pathname: 'aws-sign@~0.3.0',
7259 verbose parsed url path: 'aws-sign@~0.3.0',
7259 verbose parsed url href: 'aws-sign@~0.3.0' }
7260 verbose cache add name="aws-sign" spec="~0.3.0" args=["aws-sign","~0.3.0"]
7261 verbose parsed url { protocol: null,
7261 verbose parsed url slashes: null,
7261 verbose parsed url auth: null,
7261 verbose parsed url host: null,
7261 verbose parsed url port: null,
7261 verbose parsed url hostname: null,
7261 verbose parsed url hash: null,
7261 verbose parsed url search: null,
7261 verbose parsed url query: null,
7261 verbose parsed url pathname: '~0.3.0',
7261 verbose parsed url path: '~0.3.0',
7261 verbose parsed url href: '~0.3.0' }
7262 verbose addNamed [ 'aws-sign', '~0.3.0' ]
7263 verbose cache add [ 'oauth-sign@~0.3.0', null ]
7264 verbose cache add name=undefined spec="oauth-sign@~0.3.0" args=["oauth-sign@~0.3.0",null]
7265 verbose parsed url { protocol: null,
7265 verbose parsed url slashes: null,
7265 verbose parsed url auth: null,
7265 verbose parsed url host: null,
7265 verbose parsed url port: null,
7265 verbose parsed url hostname: null,
7265 verbose parsed url hash: null,
7265 verbose parsed url search: null,
7265 verbose parsed url query: null,
7265 verbose parsed url pathname: 'oauth-sign@~0.3.0',
7265 verbose parsed url path: 'oauth-sign@~0.3.0',
7265 verbose parsed url href: 'oauth-sign@~0.3.0' }
7266 verbose cache add name="oauth-sign" spec="~0.3.0" args=["oauth-sign","~0.3.0"]
7267 verbose parsed url { protocol: null,
7267 verbose parsed url slashes: null,
7267 verbose parsed url auth: null,
7267 verbose parsed url host: null,
7267 verbose parsed url port: null,
7267 verbose parsed url hostname: null,
7267 verbose parsed url hash: null,
7267 verbose parsed url search: null,
7267 verbose parsed url query: null,
7267 verbose parsed url pathname: '~0.3.0',
7267 verbose parsed url path: '~0.3.0',
7267 verbose parsed url href: '~0.3.0' }
7268 verbose addNamed [ 'oauth-sign', '~0.3.0' ]
7269 verbose addNamed [ null, '>=0.3.0-0 <0.4.0-0' ]
7270 silly lockFile 7fb5c7f1-oauth-sign-0-3-0 oauth-sign@~0.3.0
7271 verbose lock oauth-sign@~0.3.0 /Users/vaca/.npm/7fb5c7f1-oauth-sign-0-3-0.lock
7272 verbose cache add [ 'cookie-jar@~0.3.0', null ]
7273 verbose cache add name=undefined spec="cookie-jar@~0.3.0" args=["cookie-jar@~0.3.0",null]
7274 verbose parsed url { protocol: null,
7274 verbose parsed url slashes: null,
7274 verbose parsed url auth: null,
7274 verbose parsed url host: null,
7274 verbose parsed url port: null,
7274 verbose parsed url hostname: null,
7274 verbose parsed url hash: null,
7274 verbose parsed url search: null,
7274 verbose parsed url query: null,
7274 verbose parsed url pathname: 'cookie-jar@~0.3.0',
7274 verbose parsed url path: 'cookie-jar@~0.3.0',
7274 verbose parsed url href: 'cookie-jar@~0.3.0' }
7275 verbose cache add name="cookie-jar" spec="~0.3.0" args=["cookie-jar","~0.3.0"]
7276 verbose parsed url { protocol: null,
7276 verbose parsed url slashes: null,
7276 verbose parsed url auth: null,
7276 verbose parsed url host: null,
7276 verbose parsed url port: null,
7276 verbose parsed url hostname: null,
7276 verbose parsed url hash: null,
7276 verbose parsed url search: null,
7276 verbose parsed url query: null,
7276 verbose parsed url pathname: '~0.3.0',
7276 verbose parsed url path: '~0.3.0',
7276 verbose parsed url href: '~0.3.0' }
7277 verbose addNamed [ 'cookie-jar', '~0.3.0' ]
7278 verbose cache add [ 'node-uuid@~1.4.0', null ]
7279 verbose cache add name=undefined spec="node-uuid@~1.4.0" args=["node-uuid@~1.4.0",null]
7280 verbose parsed url { protocol: null,
7280 verbose parsed url slashes: null,
7280 verbose parsed url auth: null,
7280 verbose parsed url host: null,
7280 verbose parsed url port: null,
7280 verbose parsed url hostname: null,
7280 verbose parsed url hash: null,
7280 verbose parsed url search: null,
7280 verbose parsed url query: null,
7280 verbose parsed url pathname: 'node-uuid@~1.4.0',
7280 verbose parsed url path: 'node-uuid@~1.4.0',
7280 verbose parsed url href: 'node-uuid@~1.4.0' }
7281 verbose cache add name="node-uuid" spec="~1.4.0" args=["node-uuid","~1.4.0"]
7282 verbose parsed url { protocol: null,
7282 verbose parsed url slashes: null,
7282 verbose parsed url auth: null,
7282 verbose parsed url host: null,
7282 verbose parsed url port: null,
7282 verbose parsed url hostname: null,
7282 verbose parsed url hash: null,
7282 verbose parsed url search: null,
7282 verbose parsed url query: null,
7282 verbose parsed url pathname: '~1.4.0',
7282 verbose parsed url path: '~1.4.0',
7282 verbose parsed url href: '~1.4.0' }
7283 verbose addNamed [ 'node-uuid', '~1.4.0' ]
7284 verbose cache add [ 'mime@~1.2.9', null ]
7285 verbose cache add name=undefined spec="mime@~1.2.9" args=["mime@~1.2.9",null]
7286 verbose parsed url { protocol: null,
7286 verbose parsed url slashes: null,
7286 verbose parsed url auth: null,
7286 verbose parsed url host: null,
7286 verbose parsed url port: null,
7286 verbose parsed url hostname: null,
7286 verbose parsed url hash: null,
7286 verbose parsed url search: null,
7286 verbose parsed url query: null,
7286 verbose parsed url pathname: 'mime@~1.2.9',
7286 verbose parsed url path: 'mime@~1.2.9',
7286 verbose parsed url href: 'mime@~1.2.9' }
7287 verbose cache add name="mime" spec="~1.2.9" args=["mime","~1.2.9"]
7288 verbose parsed url { protocol: null,
7288 verbose parsed url slashes: null,
7288 verbose parsed url auth: null,
7288 verbose parsed url host: null,
7288 verbose parsed url port: null,
7288 verbose parsed url hostname: null,
7288 verbose parsed url hash: null,
7288 verbose parsed url search: null,
7288 verbose parsed url query: null,
7288 verbose parsed url pathname: '~1.2.9',
7288 verbose parsed url path: '~1.2.9',
7288 verbose parsed url href: '~1.2.9' }
7289 verbose addNamed [ 'mime', '~1.2.9' ]
7290 verbose cache add [ 'form-data@0.0.8', null ]
7291 verbose cache add name=undefined spec="form-data@0.0.8" args=["form-data@0.0.8",null]
7292 verbose parsed url { protocol: null,
7292 verbose parsed url slashes: null,
7292 verbose parsed url auth: null,
7292 verbose parsed url host: null,
7292 verbose parsed url port: null,
7292 verbose parsed url hostname: null,
7292 verbose parsed url hash: null,
7292 verbose parsed url search: null,
7292 verbose parsed url query: null,
7292 verbose parsed url pathname: 'form-data@0.0.8',
7292 verbose parsed url path: 'form-data@0.0.8',
7292 verbose parsed url href: 'form-data@0.0.8' }
7293 verbose cache add name="form-data" spec="0.0.8" args=["form-data","0.0.8"]
7294 verbose parsed url { protocol: null,
7294 verbose parsed url slashes: null,
7294 verbose parsed url auth: null,
7294 verbose parsed url host: null,
7294 verbose parsed url port: null,
7294 verbose parsed url hostname: null,
7294 verbose parsed url hash: null,
7294 verbose parsed url search: null,
7294 verbose parsed url query: null,
7294 verbose parsed url pathname: '0.0.8',
7294 verbose parsed url path: '0.0.8',
7294 verbose parsed url href: '0.0.8' }
7295 verbose addNamed [ 'form-data', '0.0.8' ]
7296 verbose addNamed [ '0.0.8', '0.0.8' ]
7297 silly lockFile d1b797f8-form-data-0-0-8 form-data@0.0.8
7298 verbose lock form-data@0.0.8 /Users/vaca/.npm/d1b797f8-form-data-0-0-8.lock
7299 info preinstall yamljs@0.1.4
7300 silly lockFile c4420997-es5-ext-0-9-1 es5-ext@~0.9.1
7301 silly lockFile c4420997-es5-ext-0-9-1 es5-ext@~0.9.1
7302 silly lockFile 46e83fc0-cookie-jar-0-3-0 cookie-jar@0.3.0
7303 silly lockFile 46e83fc0-cookie-jar-0-3-0 cookie-jar@0.3.0
7304 http 304 https://registry.npmjs.org/hawk
7305 silly registry.get cb [ 304,
7305 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
7305 silly registry.get etag: '"17MAGR8GO9T8DC3OUL21AM3AX"',
7305 silly registry.get date: 'Fri, 02 Aug 2013 15:55:14 GMT',
7305 silly registry.get 'content-length': '0' } ]
7306 verbose etag hawk from cache
7307 http 304 https://registry.npmjs.org/qs
7308 silly registry.get cb [ 304,
7308 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
7308 silly registry.get etag: '"55SQSPTFTJWTCHX8WKGSKGZSG"',
7308 silly registry.get date: 'Fri, 02 Aug 2013 15:55:14 GMT',
7308 silly registry.get 'content-length': '0' } ]
7309 verbose etag qs from cache
7310 http 304 https://registry.npmjs.org/json-stringify-safe
7311 silly registry.get cb [ 304,
7311 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
7311 silly registry.get etag: '"4YTZC28VZEJOJKYMT0OC69CHX"',
7311 silly registry.get date: 'Fri, 02 Aug 2013 15:55:14 GMT',
7311 silly registry.get 'content-length': '0' } ]
7312 verbose etag json-stringify-safe from cache
7313 verbose cache add [ 'qs@~0.6.0', null ]
7314 verbose cache add name=undefined spec="qs@~0.6.0" args=["qs@~0.6.0",null]
7315 verbose parsed url { protocol: null,
7315 verbose parsed url slashes: null,
7315 verbose parsed url auth: null,
7315 verbose parsed url host: null,
7315 verbose parsed url port: null,
7315 verbose parsed url hostname: null,
7315 verbose parsed url hash: null,
7315 verbose parsed url search: null,
7315 verbose parsed url query: null,
7315 verbose parsed url pathname: 'qs@~0.6.0',
7315 verbose parsed url path: 'qs@~0.6.0',
7315 verbose parsed url href: 'qs@~0.6.0' }
7316 verbose cache add name="qs" spec="~0.6.0" args=["qs","~0.6.0"]
7317 verbose parsed url { protocol: null,
7317 verbose parsed url slashes: null,
7317 verbose parsed url auth: null,
7317 verbose parsed url host: null,
7317 verbose parsed url port: null,
7317 verbose parsed url hostname: null,
7317 verbose parsed url hash: null,
7317 verbose parsed url search: null,
7317 verbose parsed url query: null,
7317 verbose parsed url pathname: '~0.6.0',
7317 verbose parsed url path: '~0.6.0',
7317 verbose parsed url href: '~0.6.0' }
7318 verbose addNamed [ 'qs', '~0.6.0' ]
7319 verbose cache add [ 'json-stringify-safe@~4.0.0', null ]
7320 verbose cache add name=undefined spec="json-stringify-safe@~4.0.0" args=["json-stringify-safe@~4.0.0",null]
7321 verbose parsed url { protocol: null,
7321 verbose parsed url slashes: null,
7321 verbose parsed url auth: null,
7321 verbose parsed url host: null,
7321 verbose parsed url port: null,
7321 verbose parsed url hostname: null,
7321 verbose parsed url hash: null,
7321 verbose parsed url search: null,
7321 verbose parsed url query: null,
7321 verbose parsed url pathname: 'json-stringify-safe@~4.0.0',
7321 verbose parsed url path: 'json-stringify-safe@~4.0.0',
7321 verbose parsed url href: 'json-stringify-safe@~4.0.0' }
7322 verbose cache add name="json-stringify-safe" spec="~4.0.0" args=["json-stringify-safe","~4.0.0"]
7323 verbose parsed url { protocol: null,
7323 verbose parsed url slashes: null,
7323 verbose parsed url auth: null,
7323 verbose parsed url host: null,
7323 verbose parsed url port: null,
7323 verbose parsed url hostname: null,
7323 verbose parsed url hash: null,
7323 verbose parsed url search: null,
7323 verbose parsed url query: null,
7323 verbose parsed url pathname: '~4.0.0',
7323 verbose parsed url path: '~4.0.0',
7323 verbose parsed url href: '~4.0.0' }
7324 verbose addNamed [ 'json-stringify-safe', '~4.0.0' ]
7325 verbose addNamed [ null, '>=4.0.0-0 <4.1.0-0' ]
7326 silly lockFile dc5c41b6-json-stringify-safe-4-0-0 json-stringify-safe@~4.0.0
7327 verbose lock json-stringify-safe@~4.0.0 /Users/vaca/.npm/dc5c41b6-json-stringify-safe-4-0-0.lock
7328 verbose linkBins pullstream@0.4.0
7329 verbose linkMans pullstream@0.4.0
7330 verbose rebuildBundles pullstream@0.4.0
7331 silly resolved [ { name: 'memoizee',
7331 silly resolved version: '0.2.5',
7331 silly resolved description: 'Complete memoize/cache solution. Works with any type and length of function arguments',
7331 silly resolved main: 'lib',
7331 silly resolved scripts: { test: 'node node_modules/tad/bin/tad lib' },
7331 silly resolved repository: { type: 'git', url: 'git://github.com/medikoo/memoize.git' },
7331 silly resolved keywords:
7331 silly resolved [ 'memoize',
7331 silly resolved 'memoizer',
7331 silly resolved 'cache',
7331 silly resolved 'memoization',
7331 silly resolved 'memo',
7331 silly resolved 'memcached',
7331 silly resolved 'hashing.',
7331 silly resolved 'storage',
7331 silly resolved 'caching',
7331 silly resolved 'memory',
7331 silly resolved 'gc',
7331 silly resolved 'weak',
7331 silly resolved 'garbage',
7331 silly resolved 'collector' ],
7331 silly resolved bugs:
7331 silly resolved { url: 'https://github.com/medikoo/memoize/issues',
7331 silly resolved email: 'medikoo+memoize@medikoo.com' },
7331 silly resolved engines: { node: '>=0.4' },
7331 silly resolved dependencies:
7331 silly resolved { 'es5-ext': '~0.9.2',
7331 silly resolved 'event-emitter': '~0.2.2',
7331 silly resolved 'next-tick': '0.1.x' },
7331 silly resolved devDependencies: { tad: '~0.1.16' },
7331 silly resolved author:
7331 silly resolved { name: 'Mariusz Nowak',
7331 silly resolved email: 'medikoo+memoize@medikoo.com',
7331 silly resolved url: 'http://www.medikoo.com/' },
7331 silly resolved license: 'MIT',
7331 silly resolved readme: '# Memoize – Complete memoize/cache solution for JavaScript\n\n_Originally derived from [es5-ext](https://github.com/medikoo/es5-ext) package._\n\nMemoization is best technique to save on memory or CPU cycles when we deal with repeated operations. For detailed insight see: http://en.wikipedia.org/wiki/Memoization\n\n## Features\n\n* Works with any type of function arguments – __no serialization is needed__\n* Works with [__any length of function arguments__](#arguments-length). Length can be set as fixed or dynamic.\n* One of the [__fastest__](#benchmarks) available solutions.\n* Support for [__asynchronous functions__](#memoizing-asynchronous-functions)\n* [__Primitive mode__](#primitive-mode) which assures fast performance when arguments are conversible to strings.\n* Can be configured [__for methods__](#memoizing-a-method) (when `this` counts in)\n* Cache [__can be cleared manually__](#manual-clean-up) or [__after specified timeout__](#expire-cache-after-given-period-of-time)\n* Cache size can be __[limited on LRU basis](#limiting-cache-size)__\n* Optionally [__accepts resolvers__](#resolvers) that normalize function arguments before passing them to underlying function.\n* Optional [__reference counter mode__](#reference-counter), that allows more sophisticated cache management\n* [__Profile tool__](#profiling--statistics) that provides valuable usage statistics\n* Covered by [__over 500 unit tests__](#tests-)\n\n## Usage\n\n```javascript\nvar memoize = require(\'memoizee\');\n\nvar fn = function (one, two, three) { /* ... */ };\n\nmemoized = memoize(fn);\n\nmemoized(\'foo\', 3, \'bar\');\nmemoized(\'foo\', 3, \'bar\'); // Cache hit\n```\n\n## Installation\n### NPM\n\nIn your project path:\n\n```\n$ npm install memoizee\n```\n\n### Browser\n\nBrowser bundle can be easily created with help of [modules-webmake](https://github.com/medikoo/modules-webmake). Assuming that you have latest [Node.js](http://nodejs.org/) and [Git](http://git-scm.com/) installed, following will work in command shell of any system (Linux/MacOS/Windows):\n\n```\n$ npm install -g webmake\n$ git clone git://github.com/medikoo/memoize.git\n$ cd memoize\n$ npm install\n$ cd ..\n$ webmake --name=memoize memoize/lib/index.js memoize.js\n```\n\nLast command bundles memoize with all it\'s functionalities, but you may need just a subset, you can have that by addressing specific modules directly, e.g. with following you will build just primitive mode with support for asynchronous functions:\n\n```\n$ webmake --name=memoize --include=memoize/lib/ext/async.js memoize/lib/primitive.js memoize.js\n```\n\nIf you work with AMD modules, add _amd_ option, so generated bundle is one:\n\n```\n$ webmake --name=memoize --amd memoize/lib/index.js memoize.js\n```\n\n_Mind that memoize relies on some EcmaScript5 features, so for older browsers you need to load as well [es5-shim](https://github.com/kriskowal/es5-shim)_\n\n## Configuration\n\nAll below options can be applied in any combination\n\n### Arguments length\n\nBy default fixed number of arguments that function take is assumed (it\'s read from function\'s `length` property) this can be overridden:\n\n```javascript\nmemoized = memoize(fn, { length: 2 });\n\nmemoized(\'foo\'); // Assumed: \'foo\', undefined\nmemoized(\'foo\', undefined); // Cache hit\n\nmemoized(\'foo\', 3, {}); // Third argument is ignored (but passed to underlying function)\nmemoized(\'foo\', 3, 13); // Cache hit\n```\n\nDynamic _length_ behavior can be forced by setting _length_ to `false`, that means memoize will work with any number of arguments.\n\n```javascript\nmemoized = memoize(fn, { length: false });\n\nmemoized(\'foo\');\nmemoized(\'foo\'); // Cache hit\nmemoized(\'foo\', undefined);\nmemoized(\'foo\', undefined); // Cache hit\n\nmemoized(\'foo\', 3, {});\nmemoized(\'foo\', 3, 13);\nmemoized(\'foo\', 3, 13); // Cache hit\n```\n\n### Primitive mode\n\nIf we work with large result sets, or memoize hot functions, default mode may not perform as fast as we expect. In that case it\'s good to run memoization in _primitive_ mode. To provide fast access, results are saved in hash instead of an array. Generated hash ids are result of arguments to string convertion. __Mind that this mode will work correctly only if stringified arguments produce unique strings.__\n\n```javascript\nmemoized = memoize(fn, { primitive: true });\n\nmemoized(\'/path/one\');\nmemoized(\'/path/one\'); // Cache hit\n```\n\n### Resolvers\n\nWhen not working in _primitive_ mode but expecting arguments of certain type it\'s good to coerce them before doing memoization. We can do that by passing additional resolvers array:\n\n```javascript\nmemoized = memoize(fn, { length: 2, resolvers: [String, Boolean] });\n\nmemoized(12, [1,2,3].length);\nmemoized("12", true); // Cache hit\nmemoized({ toString: function () { return "12"; } }, {}); // Cache hit\n```\n\n__Note. If your arguments are collections (arrays or hashes) that you want to memoize by content (not by self objects), you need to cast them to strings__, for that just use [primitive mode](#primitive-mode). Arrays have standard string representation and work with primitive mode out of a box, for hashes you need to define `toString` method, that will produce unique string descriptions.\n\nSimilarly __if you want to memoize functions by their code representation not by their objects, you should use primitive mode__.\n\n### Memoizing asynchronous functions\n\nWith _async_ option we indicate that we memoize asynchronous function. \nOperations that result with an error are not cached.\n\n```javascript\nafn = function (a, b, cb) {\n setTimeout(function () {\n cb(null, a + b);\n }, 200);\n};\nmemoized = memoize(afn, { async: true });\n\nmemoized(3, 7, function (err, res) {\n memoized(3, 7, function (err, res) {\n // Cache hit\n });\n});\n\nmemoized(3, 7, function (err, res) {\n // Cache hit\n});\n```\n\n### Memoizing a method\n\nWhen we are defining a prototype, we may want to define method that will memoize it\'s results in relation to each instance. Basic way to obtain that would be:\n\n```javascript\nvar Foo = function () {\n this.bar = memoize(this.bar.bind(this));\n // ... constructor logic\n};\nFoo.prototype.bar = function () {\n // ... method logic\n};\n```\n\nWith _method_ option we can configure memoization directly on prototype:\n\n```javascript\nvar Foo = function () {\n // ... constructor logic\n};\nFoo.prototype.bar = memoize(function () {\n // ... method logic\n}, { method: \'bar\' });\n```\n\nAdditionally we may provide descriptor which would be used for defining method on instance object:\n\n```javascript\nvar Foo = function () {\n // ... constructor logic\n};\nFoo.prototype.bar = memoize(function () {\n // ... method logic\n}, { method: { name: \'bar\', descriptor: { configurable: true } } });\n```\n\n### Cache handling\n\n#### Manual clean up:\n\nClear data for particular call.\n\n```javascript\nmemoized.clear(\'foo\', true);\n```\n\nArguments passed to `clear` are treated with same rules as input arguments passed to function\n\nClear all cached data:\n\n```javascript\nmemoized.clearAll();\n```\n\n#### Expire cache after given period of time\n\nWith _maxAge_ option we can ensure that cache for given call is cleared after predefined period of time\n\n```javascript\nmemoized = memoize(fn, { maxAge: 1000 });\n\nmemoized(\'foo\', 3);\nmemoized(\'foo\', 3); // Cache hit\nsetTimeout(function () {\n memoized(\'foo\', 3); // No longer in cache, re-executed\n memoized(\'foo\', 3); // Cache hit\n}, 2000);\n```\n\nAdditionally we may ask to _pre-fetch_ in a background a value that is about to expire. _Pre-fetch_ is invoked only if value is accessed close to its expiry date. By default it needs to be within at least 33% of _maxAge_ timespan before expire:\n\n```javascript\nmemoized = memoize(fn, { maxAge: 1000, preFetch: true }); // Defaults to 0.33\n\nmemoized(\'foo\', 3);\nmemoized(\'foo\', 3); // Cache hit\n\nsetTimeout(function () {\n memoized(\'foo\', 3); // Cache hit\n}, 500);\n\nsetTimeout(function () {\n memoized(\'foo\', 3); // Cache hit, silently pre-fetched in next tick\n}, 800);\n\nsetTimeout(function () {\n memoized(\'foo\', 3); // Cache hit\n}, 1300);\n```\n\n_Pre-fetch_ timespan can be customized:\n\n```javascript\nmemoized = memoize(fn, { maxAge: 1000, preFetch: 0.6 });\n\nmemoized(\'foo\', 3);\nmemoized(\'foo\', 3); // Cache hit\n\nsetTimeout(function () {\n memoized(\'foo\', 3); // Cache hit, silently pre-fetched in next tick\n}, 500);\n\nsetTimeout(function () {\n memoized(\'foo\', 3); // Cache hit\n}, 1300);\n```\n\n_Thanks [@puzrin](https://github.com/puzrin) for helpful suggestions concerning this functionality_\n\n#### Reference counter\n\nWe can track number of references returned from cache, and manually clear them. When last reference is cleared, cache is purged automatically:\n\n```javascript\nmemoized = memoize(fn, { refCounter: true });\n\nmemoized(\'foo\', 3); // refs: 1\nmemoized(\'foo\', 3); // Cache hit, refs: 2\nmemoized(\'foo\', 3); // Cache hit, refs: 3\nmemoized.clearRef(\'foo\', 3); // refs: 2\nmemoized.clearRef(\'foo\', 3); // refs: 1\nmemoized.clearRef(\'foo\', 3); // refs: 0, Cache purged for \'foo\', 3\nmemoized(\'foo\', 3); // Re-executed, refs: 1\n```\n\n#### Limiting cache size\n\nWith _max_ option you can limit cache size, it\'s backed with [LRU algorithm](http://en.wikipedia.org/wiki/Cache_algorithms#Least_Recently_Used)\n\n```javascript\nmemoized = memoize(fn, { max: 2 });\n\nmemoized(\'foo\', 3);\nmemoized(\'bar\', 7);\nmemoized(\'foo\', 3); // Cache hit\nmemoized(\'bar\', 7); // Cache hit\nmemoized(\'lorem\', 11); // Cache cleared for \'foo\', 3\nmemoized(\'bar\', 7); // Cache hit\nmemoized(\'foo\', 3); // Re-executed, Cache cleared for \'lorem\', 11\nmemoized(\'lorem\', 11); // Re-executed, Cache cleared for \'bar\', 7\nmemoized(\'foo\', 3); // Cache hit\nmemoized(\'bar\', 7); // Re-executed, Cache cleared for \'lorem\', 11\n```\n\n#### Registering dispose callback\nYou can register callback that is called on each value being removed from cache:\n\n```javascript\nmemoized = memoize(fn, { dispose: function (value) { /*…*/ } });\n\nvar foo3 = memoized(\'foo\', 3);\nvar bar7 = memoized(\'bar\', 7);\nmemoized.clear(\'foo\', 3); // Dispose called with foo3 value\nmemoized.clear(\'bar\', 7); // Dispose called with bar7 value\n```\n\n## Benchmarks\n\nSimple benchmark tests can be found in _benchmark_ folder. Currently it\'s just plain simple calculation of fibonacci sequences. To run it you need to install other test candidates:\n\n\t$ npm install underscore lodash lru-cache\n\nExample output taken under Node v0.8.9 on 2008 MBP Pro:\n\n```\nFibonacci 3000 x10:\n\n1: 21ms Memoizee (primitive mode)\n1: 21ms Lo-dash\n3: 23ms Underscore\n4: 88ms Memoizee (primitive mode) LRU (max: 1000)\n5: 178ms Memoizee (object mode)\n6: 234ms Memoizee (object mode) LRU (max: 1000)\n7: 2852ms lru-cache LRU (max: 1000)\n```\n\n## Profiling & Statistics\n\nIf you want to make sure how much you benefit from memoization or just check if memoization works as expected, loading profile module will give access to all valuable information.\n\n__Module needs to be imported before any memoization (that we want to track) is configured. Mind also that running profile module affects performance, it\'s best not to use it in production environment__\n\n```javascript\nvar memProfile = require(\'memoizee/lib/ext/profile\');\n```\n\nAccess statistics at any time:\n\n```javascript\nmemProfile.statistics; // Statistcs accessible for programmatical use\nconsole.log(memProfile.log()); // Output statistics data in readable form\n```\n\nExample console output:\n\n```\n------------------------------------------------------------\nMemoize statistics:\n\n Init Cache %Cache Source location\n11604 35682 75.46 (all)\n 2112 19901 90.41 at /Users/medikoo/Projects/_packages/next/lib/fs/is-ignored.js:276:12\n 2108 9087 81.17 at /Users/medikoo/Projects/_packages/next/lib/fs/is-ignored.js:293:10\n 6687 2772 29.31 at /Users/medikoo/Projects/_packages/next/lib/fs/watch.js:125:9\n 697 3922 84.91 at /Users/medikoo/Projects/_packages/next/lib/fs/is-ignored.js:277:15\n------------------------------------------------------------\n```\n\n* _Init_ – Initial hits\n* _Cache_ – Cache hits\n* _%Cache_ – What\'s the percentage of cache hits (of all function calls)\n* _Source location_ – Where in the source code given memoization was initialized\n\n## Tests [![Build Status](https://secure.travis-ci.org/medikoo/memoize.png?branch=master)](https://secure.travis-ci.org/medikoo/memoize)\n\n\t$ npm test\n\n## Contributors\n\n* [@puzrin](https://github.com/puzrin) (Vitaly Puzrin)\n * Proposal and help with coining right _pre-fetch_ logic for [_maxAge_](https://github.com/medikoo/memoize#expire-cache-after-given-period-of-time) variant\n',
7331 silly resolved readmeFilename: 'README.md',
7331 silly resolved _id: 'memoizee@0.2.5',
7331 silly resolved _from: 'memoizee@0.2.x' },
7331 silly resolved { name: 'es5-ext',
7331 silly resolved version: '0.9.2',
7331 silly resolved description: 'ECMAScript5 extensions',
7331 silly resolved keywords:
7331 silly resolved [ 'ecmascript',
7331 silly resolved 'ecmascript5',
7331 silly resolved 'es5',
7331 silly resolved 'extensions',
7331 silly resolved 'ext',
7331 silly resolved 'addons',
7331 silly resolved 'extras',
7331 silly resolved 'javascript',
7331 silly resolved 'util',
7331 silly resolved 'utils',
7331 silly resolved 'utilities' ],
7331 silly resolved author:
7331 silly resolved { name: 'Mariusz Nowak',
7331 silly resolved email: 'medikoo+es5-ext@medikoo.com',
7331 silly resolved url: 'http://www.medikoo.com/' },
7331 silly resolved main: 'lib',
7331 silly resolved repository: { type: 'git', url: 'git://github.com/medikoo/es5-ext.git' },
7331 silly resolved bugs:
7331 silly resolved { url: 'https://github.com/medikoo/es5-ext/issues',
7331 silly resolved email: 'medikoo+es5-ext@medikoo.com' },
7331 silly resolved engines: { node: '>=0.4' },
7331 silly resolved scripts: { test: 'node ./node_modules/tad/bin/tad lib' },
7331 silly resolved devDependencies: { tad: '0.1.x' },
7331 silly resolved licence: 'MIT',
7331 silly resolved dependencies: {},
7331 silly resolved optionalDependencies: {},
7331 silly resolved readme: '# es5-ext - ECMAScript5 extensions\n\nMethods, functions and objects that are not part of the standard, written with\nEcmaScript conventions in mind.\n\n## Installation\n\nCan be used in any environment that implements EcmaScript 5th edition. \nMany extensions will also work with ECMAScript 3rd edition, if they\'re not let [es5-shim](https://github.com/kriskowal/es5-shim) be your aid.\n\n### NPM:\n\n\t$ npm install es5-ext\n\n### Browser:\n\nFor browser, you can create custom toolset with help of\n[modules-webmake](https://github.com/medikoo/modules-webmake)\n\n## Usage\n\n__es5-ext__ mostly offer methods (not functions) which can directly be\nassigned to native object\'s prototype:\n\n\tFunction.prototype.partial = require(\'es5-ext/lib/Function/prototype/partial\');\n\n\tArray.prototype.flatten = require(\'es5-ext/lib/Array/prototype/flatten\');\n\n\tString.prototype.startsWith = require(\'es5-ext/lib/String/prototype/starts-with\');\n\nIf you decide not to extend native prototypes, which in many cases is good idea (see\n[extending-javascript-natives](http://javascriptweblog.wordpress.com/2011/12/05/extending-javascript-natives/)\nfor more views on that matter), you can use methods as\nfunctions:\n\n\tvar util = {};\n\tvar call = Function.prototype.call;\n\n\tutil.partial = call.bind(require(\'es5-ext/lib/Function/prototype/partial\'));\n\n\tutil.flatten = call.bind(require(\'es5-ext/lib/Array/prototype/flatten\'));\n\n\tutil.startsWith = call.bind(require(\'es5-ext/lib/String/prototype/starts-with\'));\n\nAs with native ones most methods are generic and can be run on any object.\nIn more detail:\n\n* `Array.prototype`, `Number.prototype` and `String.prototype`, methods can be run on any object (any\nvalue that\'s neither _null_ nor _undefined_),\n* `Date.prototype` methods should be called only on `Date` instances.\n* `Function.prototype` methods can be called on any callable objects (not\nnecessarily functions)\n\nAPI doesn\'t provide any methods for `Object.prototype` (extending such in any case should be avoided). All `Object` utils are provided as fuctions and most of them expect first input argument to be a valid object (any value that\'s neither _null_ nor _undefined_).\n\n# API\n\n## Global extensions\n\n### global\n\nObject that represents global scope\n\n### reserved\n\nList of EcmaScript 5th edition reserved keywords. \nAdditionally under _keywords_, _future_ and _futureStrict_ properties we have lists grouped thematically.\n\n## Array Constructor extensions\n\n### from(x)\n\n_In EcmaScript 6th Edition draft_ \nConvert array-like object to an Array\n\n### generate([length[, …fill]])\n\nGenerate an array of pregiven _length_ built of repeated arguments.\n\n### of([…items])\n\n_In EcmaScript 6th Edition draft_ \nCreate an array from given arguments.\n\n## Array Prototype extensions\n\n### binarySearch(compareFn)\n\nIn __sorted__ list search for index of item for which _compareFn_ returns value closest to _0_. \nIt\'s variant of binary search algorithm\n\n### clear()\n\nClears the array\n\n### commonLeft([…lists])\n\nReturns first index at which _lists_ start to differ\n\n### compact()\n\nReturns a copy of the list with all falsy values removed.\n\n### contains(searchElement[, position])\n\nWhether list contains the given value.\n\n### copy()\n\nReturns a copy of the list\n\n### diff(other)\n\nReturns the array of elements that are present in context list but not present in other list.\n\n### eIndexOf(searchElement[, fromIndex])\n\n[_egal_](http://wiki.ecmascript.org/doku.php?id=harmony:egal) version of `indexOf` method\n\n### eLastIndexOf(searchElement[, fromIndex])\n\n[_egal_](http://wiki.ecmascript.org/doku.php?id=harmony:egal) version of `lastIndexOf` method\n\n### exclusion([…lists]])\n\nReturns the array of elements that are found only in context list or lists given in arguments.\n\n### find(query[, thisArg])\n\nReturn first element for which given function returns true\n\n### first()\n\nReturns value for first declared index\n\n### firstIndex()\n\nReturns first declared index of the array\n\n### flatten()\n\nReturns flattened version of the array\n\n### forEachRight(cb[, thisArg])\n\n`forEach` starting from last element\n\n### group(cb[, thisArg])\n\nGroup list elements by value returned by _cb_ function\n\n### indexesOf(searchElement[, fromIndex])\n\nReturns array of all indexes of given value\n\n### intersection([…lists])\n\nComputes the array of values that are the intersection of all lists (context list and lists given in arguments)\n\n### isCopy(other)\n\nReturns true if both context and _other_ lists have same content\n\n### isUniq()\n\nReturns true if all values in array are unique\n\n### last()\n\nReturns value for last declared index\n\n### lastIndex()\n\nReturns last declared index of the array\n\n### remove(value)\n\nRemove value from the array\n\n### someRight(cb[, thisArg])\n\n`some` starting from last element\n\n### uniq()\n\nReturns duplicate-free version of the array\n\n## Boolean Constructor extensions\n\n### isBoolean(x)\n\nWhether value is boolean\n\n## Date Constructor extensions\n\n### isDate(x)\n\nWhether value is date instance\n\n### validDate(x)\n\nIf given object is not date throw TypeError in other case return it.\n\n## Date Prototype extensions\n\n### copy(date)\n\nReturns a copy of the date object\n\n### daysInMonth()\n\nReturns number of days of date\'s month\n\n### floorDay()\n\nSets the date time to 00:00:00.000\n\n### floorMonth()\n\nSets date day to 1 and date time to 00:00:00.000\n\n### floorYear()\n\nSets date month to 0, day to 1 and date time to 00:00:00.000\n\n### format(pattern)\n\nFormats date up to given string. Supported patterns:\n\n* `%Y` - Year with century, 1999, 2003\n* `%y` - Year without century, 99, 03\n* `%m` - Month, 01..12\n* `%d` - Day of the month 01..31\n* `%H` - Hour (24-hour clock), 00..23\n* `%M` - Minute, 00..59\n* `%S` - Second, 00..59\n* `%L` - Milliseconds, 000..999\n\n## Error Constructor extensions\n\n### isError(x)\n\nWhether value is error. \nIt returns true for all Error instances and Exception host instances (e.g. DOMException)\n\n### validError(x)\n\nIf given object is not error throw TypeError in other case return it.\n\n## Error Prototype extensions\n\n### throw()\n\nThrows error\n\n## Function Constructor extensions\n\nSome of the functions were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele\n\n### i(x)\n\nIdentity function. Returns first argument\n\n_i(x) =def x_\n\n### insert(name, value)\n\nReturns a function that will set _name_ to _value_ on given object\n\n_insert(name, value)(obj) =def object\\[name\\] = value_\n\n### invoke(name[, …args])\n\nReturns a function that takes an object as an argument, and applies object\'s\n_name_ method to arguments. \n_name_ can be name of the method or method itself.\n\n_invoke(name, …args)(object, …args2) =def object\\[name\\]\\(…args, …args2\\)_\n\n### isArguments(x)\n\nWhether value is arguments object\n\n### isFunction(arg)\n\nWether value is instance of function\n\n### k(x)\n\nReturns a constant function that returns pregiven argument\n\n_k(x)(y) =def x_\n\n### noop()\n\nNo operation function\n\n### pluck(name)\n\nReturns a function that takes an object, and returns the value of its _name_\nproperty\n\n_pluck(name)(obj) =def obj[name]_\n\n### remove(name)\n\nReturns a function that takes an object, and deletes object\'s _name_ property\n\n_remove(name)(obj) =def delete obj[name]_\n\n### validFunction(arg)\n\nIf given object is not function throw TypeError in other case return it.\n\n## Function Prototype extensions\n\nSome of the methods were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele\n\n### chain([…fns])\n\nApplies the functions in argument-list order.\n\n_f1.chain(f2, f3, f4)(…args) =def f4(f3(f2(f1(…arg))))_\n\n### curry([n])\n\nInvoking the function returned by this function only _n_ arguments are passed to the underlying function. If the underlying function is not saturated, the result is a function that passes all its arguments to the underlying function. \nIf _n_ is not provided then it defaults to context function length\n\n_f.curry(4)(arg1, arg2)(arg3)(arg4) =def f(arg1, args2, arg3, arg4)_\n\n### lock([…args])\n\nReturns a function that applies the underlying function to _args_, and ignores its own arguments.\n\n_f.lock(…args)(…args2) =def f(…args)_\n\n_Named after it\'s counterpart in Google Closure_\n\n### match()\n\nReturns a function that applies underlying function with first list argument\n\n_f.match()(args) =def f.apply(null, args)_\n\n### not()\n\nReturns a function that returns boolean negation of value returned by underlying function.\n\n_f.not()(…args) =def !f(…args)_\n\n### partial([…args])\n\nReturns a function that when called will behave like context function called with initially passed arguments. If more arguments are suplilied, they are appended to initial args.\n\n_f.partial(…args1)(…args2) =def f(…args1, …args2)_\n\n### silent()\n\nReturns a function that when called silents any error thrown by underlying function.\nIf underlying function throws error, it is the result fo the function.\n\n_function () { throw err; }.silent()() ==def err_\n\n### wrap(fn)\n\nWrap function with other function, it allows to specify before and after behavior, transform return value or prevent original function from being called.\n\nInspired by [Prototype\'s wrap](http://api.prototypejs.org/language/Function/prototype/wrap/)\n\n## Number Constructor extensions\n\n### isNaN(x)\n\n_In EcmaScript 6th Edition draft_ \n\nWhether value is NaN. Differs from global isNaN that it doesn\'t do type coercion.\nSee http://wiki.ecmascript.org/doku.php?id=harmony:number.isnan\n\n### isNumber(x)\n\nWhether given value is number\n\n### toInt(x)\n\n_In EcmaScript 6th Edition draft_ \n\nConverts value to integer\n\n### toUint(x)\n\nConverts value to unsigned integer\n\n### toUint32(x)\n\nConverts value to unsigned 32 bit integer. This type is used for array lengths.\nSee: http://www.2ality.com/2012/02/js-integers.html\n\n## Number Prototype extensions\n\n### pad(length[, precision])\n\nPad given number with zeros. Returns string\n\n## Object Constructor extensions\n\n### clear(obj)\n\nRemove all enumerable own properties of the object\n\n### compact(obj)\n\nReturns copy of the object with all enumerable properties that have no falsy values\n\n### compare(obj1, obj2)\n\nUniversal cross-type compare function. To be used for e.g. array sort.\n\n### copy(obj[, deep])\n\nReturns copy of the object with all enumerable properties. Additionally nested objects can be copied as well\n\n### count(obj)\n\nCounts number of enumerable own properties on object\n\n### descriptor([mode[, value]])\n### descriptor.gs([mode[, get[, set]]])\n\nDescriptor factory.\n_mode_ is string, through we which we define whether value should be _configurable_, _enumerable_ and/or _writable_, it\'s accepted as string of tokens, e.g.: `c`, `ce`, `cew`, `cw`, `e`, `ew`, `w`\nIf _mode_ is not provided than `cw` _mode_ is assumed (it\'s how standard methods are defined on native objects). \nTo setup descriptor with getter and/or setter use `descriptor.gs`, _mode_ is configured same way as in _value_ version, only difference is that settings for _writable_ attribute are ignored.\n\n### diff(obj1, obj2)\n\nReturns differences between two objects (taking into account only its own enumerable properties). Returned object is array of three arrays. Each array holds property names:\n\n* 0 - properties that were not present in `obj2`\n* 1 - properties that have different values\n* 2 - properties that were not present in `obj1`\n\n### every(obj, cb[, thisArg[, compareFn]])\n\nAnalogous to Array.prototype.every. Returns true if every key-value pair in this object satisfies the provided testing function. \nOptionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n### extend(dest[, …src])\n\nExtend _dest_ by enumerable own properties of other objects. Properties found in both objects will be overwritten.\n\n### extendDeep(dest[, …src])\n\nExtend _dest_ by enumerable own properties of other objects. Properties found in both objects will be overwritten with exception of plain objects which again reiterated so only matching properties from other nested plain objects are affected\n\n### extendProperties(dest[, …src])\n\nExtend _dest_ by all own properties of other objects. Properties found in both objects will be overwritten (unless they\'re not configrable and cannot be overwritten).\n\n### filter(obj, cb[, thisArg])\n\nAnalogous to Array.prototype.filter. Returns new object with properites for which _cb_ function returned truthy value.\n\n### flatten(obj)\n\nReturns new object, with flatten properties of input object\n\n_flatten({ a: { b: 1 }, c: { d: 1 } }) =def { b: 1, d: 1 }_\n\n### forEach(obj, cb[, thisArg[, compareFn]])\n\nAnalogous to Array.prototype.forEach. Calls a function for each key-value pair found in object\nOptionally _compareFn_ can be provided which assures that properties are iterated in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n### getPropertyNames()\n\nGet all (not just own) property names of the object\n\n### is(x, y)\n\n_In EcmaScript 6th Edition draft as `is` operator_ \n\nWhether two values are equal, takes into account NaN and -0/+0 cases\n\n### isCallable(x)\n\nWhether object is callable\n\n### isCopy(x, y[, depth])\n\nTwo values are considered a copy of same value when they meet following rules:\n\n1. Are of same type (`typeof` check)\n2. Have same string representation\n3. (Objects only) Own enumerable properties of first object match own\nenumerable properties of other object. Optionally depth can be provided at which relaxed comparision rules need to be applied. This allows deep comparision of different objects.\n\nObjects can contain self references, algorithm is aware of possible infinite loop traps and won\'t into them.\n\n### isEmpty(obj)\n\nTrue if object doesn\'t have any own enumerable property\n\n### isList(x)\n\nWhether object is array-like object\n\n### isObject(arg)\n\nWhether value is not primitive\n\n### isPlainObject(arg)\n\nWhether object is plain object, its protototype should be Object.prototype and it cannot be host object.\n\n### keyOf(obj, searchValue)\n\nSearch object for value\n\n### map(obj, cb[, thisArg])\n\nAnalogous to Array.prototype.map. Creates a new object with properties which values are results of calling a provided function on every key-value pair in this object.\n\n### mapKeys(obj, cb[, thisArg])\n\nCreate new object with same values, but remapped keys\n\n### mapToArray(obj[, cb[, thisArg[, compareFn]]])\n\nCreates an array of results of calling a provided function on every key-value pair in this object. \nOptionally _compareFn_ can be provided which assures that results are added in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n### reduce(obj, cb[, initial[, compareFn]])\n\nAnalogous to Array.prototype.reduce. Apply a function against an accumulator and each value of the object.\nOptionally _compareFn_ can be provided which assures that object keys are iterated in given order. If _compareFn_ is equal to `true`, then order is alphabetical (by key).\nIf we need to provide _compareFn_ but don\'t want to provide _initial_ value, then we have to pass `reduce.NO_INITIAL` as initial argument.\n\n### safeTraverse(obj[, …names])\n\nSave navigation of object properties. See http://wiki.ecmascript.org/doku.php?id=strawman:existential_operator\n\n### some(obj, cb[, thisArg[, compareFn]])\n\nAnalogous to Array.prototype.some Returns true if any key-value pair satisfies the provided\ntesting function. \nOptionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n### toPlainObject(x)\n\nReturns plain object build from x object and it\'s prototypes enumerable properties\nIf x is not given, then empty object is returned.\n\n### validCallable(x)\n\nIf given object is not callable throw TypeError in other case return it.\n\n### validValue(x)\n\nThrows error if given value is `null` or `undefined`, otherwise returns value.\n\n### values(obj)\n\nReturn array of object own enumerable properties\n\n## RegExp Constructor extensions\n\n### isRegExp(x)\n\nWhether object is regular expression\n\n## String Constructor extensions\n\n### isString(x)\n\nWhether object is string\n\n## String Prototype extensions\n\n### camelToHyphen()\n\nConvert camelCase string to hyphen separated, e.g. one-two-three -> oneTwoThree.\nUseful when converting names from js property convention into filename convention.\n\n### capitalize()\n\nCapitalize first character of a string\n\n### caseInsensitiveCompare(str)\n\nCase insensitive compare\n\n### contains(searchString[, position])\n\n_In EcmaScript 6th Edition draft_ \nWhether string contains given string.\n\n### endsWith(searchString[, endPosition])\n\n_In EcmaScript 6th Edition draft_ \nWhether strings ends with given string\n\n### format(fmap[, thisArg])\n\nFormats given template up to provided map, e.g.:\n\n```javascript\n"%capital is a capital of %country".format({\n\tcapital: "Warsaw",\n\tcountry: "Poland"\n}); // -> "Warsaw is a capital of Poland"\n```\nMap may also provide not direct values but functions that resolve value, in that case optional _thisArg_ determines the context in which functions are called.\n\n### hyphenToCamel()\n\nConvert hyphen separated string to camelCase, e.g. one-two-three -> oneTwoThree.\nUseful when converting names from filename convention to js property name convention.\n\n### indent(str[, count])\n\nIndents each line with provided _str_ (if _count_ given then _str_ is repeated _count_ times).\n\n### last()\n\nReturn last character\n\n### pad(fill[, length])\n\nPad string with _fill_.\nIf _length_ si given than _fill_ is reapated _length_ times.\nIf _length_ is negative then pad is applied from right.\n\n### repeat(n)\n\nRepeat given string _n_ times\n\n### simpleReplace(search, replace)\n\nSimple `replace` version. Doesn\'t support regular expressions. Replaces just first occurence of search string. Doesn\'t support insert patterns, therefore it is safe to replace text with text obtained programmatically (there\'s no need for additional _$_ characters escape in such case).\n\n### startsWith(searchString[, position])\n\n_In EcmaScript 6th Edition draft_ \nWhether strings starts with given string\n\n### trimCommonLeft([…strings])\n\nReturns string left trimmed by characters same for all strings\n\n## Math Object extensions\n\n### sign(n)\n\n_In EcmaScript 6th Edition draft_ \nReturns sign of a number value\n\n## Tests [![Build Status](https://secure.travis-ci.org/medikoo/es5-ext.png?branch=master)](https://secure.travis-ci.org/medikoo/es5-ext)\n\n\t$ npm test\n',
7331 silly resolved readmeFilename: 'README.md',
7331 silly resolved _id: 'es5-ext@0.9.2',
7331 silly resolved _from: 'es5-ext@~0.9.1' } ]
7332 info install memoizee@0.2.5 into /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/cli-color
7333 info install es5-ext@0.9.2 into /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/cli-color
7334 info installOne memoizee@0.2.5
7335 info installOne es5-ext@0.9.2
7336 silly lockFile 4c61eb43-cookie-jar-0-3-0 cookie-jar@~0.3.0
7337 silly lockFile 4c61eb43-cookie-jar-0-3-0 cookie-jar@~0.3.0
7338 silly gunzTarPerm extractEntry src/object/functions.js
7339 silly gunzTarPerm extractEntry src/object/get.js
7340 silly addNameRange { name: 'hawk', range: '>=0.13.0-0 <0.14.0-0', hasData: false }
7341 verbose rebuildBundles [ 'over', 'slice-stream' ]
7342 info install pullstream@0.4.0
7343 info /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/cli-color/node_modules/memoizee unbuild
7344 info /opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/cli-color/node_modules/es5-ext unbuild
7345 http 304 https://registry.npmjs.org/forever-agent
7346 silly registry.get cb [ 304,
7346 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
7346 silly registry.get etag: '"3UGXS4GVMPIYP8ZN3YM36NV58"',
7346 silly registry.get date: 'Fri, 02 Aug 2013 15:55:14 GMT',
7346 silly registry.get 'content-length': '0' } ]
7347 verbose etag forever-agent from cache
7348 silly lockFile 14cd0f37-lru-cache-2-3-0 lru-cache@2.3.0
7349 silly lockFile 14cd0f37-lru-cache-2-3-0 lru-cache@2.3.0
7350 silly lockFile 7b2d1244-sigmund-1-0-0 sigmund@1.0.0
7351 silly lockFile 7b2d1244-sigmund-1-0-0 sigmund@1.0.0
7352 silly addNameRange { name: 'json-stringify-safe',
7352 silly addNameRange range: '>=4.0.0-0 <4.1.0-0',
7352 silly addNameRange hasData: false }
7353 silly addNameRange { name: 'oauth-sign',
7353 silly addNameRange range: '>=0.3.0-0 <0.4.0-0',
7353 silly addNameRange hasData: false }
7354 verbose readDependencies using package.json deps
7355 http 304 https://registry.npmjs.org/tunnel-agent
7356 silly registry.get cb [ 304,
7356 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
7356 silly registry.get etag: '"D3JCRSD8BFKXL62KVXWMIS7WS"',
7356 silly registry.get date: 'Fri, 02 Aug 2013 15:55:14 GMT',
7356 silly registry.get 'content-length': '0' } ]
7357 verbose etag tunnel-agent from cache
7358 http 304 https://registry.npmjs.org/chainsaw
7359 silly registry.get cb [ 304,
7359 silly registry.get { server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)',
7359 silly registry.get etag: '"5NEX578PK7KC7VYZNHR9UY9Z9"',
7359 silly registry.get date: 'Fri, 02 Aug 2013 15:55:14 GMT',
7359 silly registry.get 'content-length': '0' } ]
7360 verbose etag chainsaw from cache
7361 silly gunzTarPerm extractEntry .travis.yml
7362 silly gunzTarPerm extractEntry bin/uglifyjs
7363 silly lockFile b4f9d1ff-lru-cache-2 lru-cache@2
7364 silly lockFile b4f9d1ff-lru-cache-2 lru-cache@2
7365 silly lockFile 584a4a05-sigmund-1-0-0 sigmund@~1.0.0
7366 silly lockFile 584a4a05-sigmund-1-0-0 sigmund@~1.0.0
7367 silly gunzTarPerm extractEntry node_modules/mime/types/node.types
7368 silly gunzTarPerm modes [ '755', '644' ]
7369 silly gunzTarPerm modes [ '755', '644' ]
7370 verbose readDependencies using package.json deps
7371 info postinstall pullstream@0.4.0
7372 silly gunzTarPerm extractEntry example/bool.js
7373 silly gunzTarPerm extractEntry example/default_singles.js
7374 silly resolved [ { name: 'lru-cache',
7374 silly resolved description: 'A cache object that deletes the least-recently-used items.',
7374 silly resolved version: '2.3.0',
7374 silly resolved author: { name: 'Isaac Z. Schlueter', email: 'i@izs.me' },
7374 silly resolved scripts: { test: 'tap test --gc' },
7374 silly resolved main: 'lib/lru-cache.js',
7374 silly resolved repository:
7374 silly resolved { type: 'git',
7374 silly resolved url: 'git://github.com/isaacs/node-lru-cache.git' },
7374 silly resolved devDependencies: { tap: '', weak: '' },
7374 silly resolved license:
7374 silly resolved { type: 'MIT',
7374 silly resolved url: 'http://github.com/isaacs/node-lru-cache/raw/master/LICENSE' },
7374 silly resolved contributors:
7374 silly resolved [ [Object],
7374 silly resolved [Object],
7374 silly resolved [Object],
7374 silly resolved [Object],
7374 silly resolved [Object],
7374 silly resolved [Object],
7374 silly resolved [Object] ],
7374 silly resolved readme: '# lru cache\n\nA cache object that deletes the least-recently-used items.\n\n## Usage:\n\n```javascript\nvar LRU = require("lru-cache")\n , options = { max: 500\n , length: function (n) { return n * 2 }\n , dispose: function (key, n) { n.close() }\n , maxAge: 1000 * 60 * 60 }\n , cache = LRU(options)\n , otherCache = LRU(50) // sets just the max size\n\ncache.set("key", "value")\ncache.get("key") // "value"\n\ncache.reset() // empty the cache\n```\n\nIf you put more stuff in it, then items will fall out.\n\nIf you try to put an oversized thing in it, then it\'ll fall out right\naway.\n\n## Options\n\n* `max` The maximum size of the cache, checked by applying the length\n function to all values in the cache. Not setting this is kind of\n silly, since that\'s the whole purpose of this lib, but it defaults\n to `Infinity`.\n* `maxAge` Maximum age in ms. Items are not pro-actively pruned out\n as they age, but if you try to get an item that is too old, it\'ll\n drop it and return undefined instead of giving it to you.\n* `length` Function that is used to calculate the length of stored\n items. If you\'re storing strings or buffers, then you probably want\n to do something like `function(n){return n.length}`. The default is\n `function(n){return 1}`, which is fine if you want to store `n`\n like-sized things.\n* `dispose` Function that is called on items when they are dropped\n from the cache. This can be handy if you want to close file\n descriptors or do other cleanup tasks when items are no longer\n accessible. Called with `key, value`. It\'s called *before*\n actually removing the item from the internal cache, so if you want\n to immediately put it back in, you\'ll have to do that in a\n `nextTick` or `setTimeout` callback or it won\'t do anything.\n* `stale` By default, if you set a `maxAge`, it\'ll only actually pull\n stale items out of the cache when you `get(key)`. (That is, it\'s\n not pre-emptively doing a `setTimeout` or anything.) If you set\n `stale:true`, it\'ll return the stale value before deleting it. If\n you don\'t set this, then it\'ll return `undefined` when you try to\n get a stale entry, as if it had already been deleted.\n\n## API\n\n* `set(key, value)`\n* `get(key) => value`\n\n Both of these will update the "recently used"-ness of the key.\n They do what you think.\n\n* `peek(key)`\n\n Returns the key value (or `undefined` if not found) without\n updating the "recently used"-ness of the key.\n\n (If you find yourself using this a lot, you *might* be using the\n wrong sort of data structure, but there are some use cases where\n it\'s handy.)\n\n* `del(key)`\n\n Deletes a key out of the cache.\n\n* `reset()`\n\n Clear the cache entirely, throwing away all values.\n\n* `has(key)`\n\n Check if a key is in the cache, without updating the recent-ness\n or deleting it for being stale.\n\n* `forEach(function(value,key,cache), [thisp])`\n\n Just like `Array.prototype.forEach`. Iterates over all the keys\n in the cache, in order of recent-ness. (Ie, more recently used\n items are iterated over first.)\n\n* `keys()`\n\n Return an array of the keys in the cache.\n\n* `values()`\n\n Return an array of the values in the cache.\n',
7374 silly resolved readmeFilename: 'README.md',
7374 silly resolved bugs: { url: 'https://github.com/isaacs/node-lru-cache/issues' },
7374 silly resolved _id: 'lru-cache@2.3.0',
7374 silly resolved _from: 'lru-cache@2' },
7374 silly resolved { name: 'sigmund',
7374 silly resolved version: '1.0.0',
7374 silly resolved description: 'Quick and dirty signatures for Objects.',
7374 silly resolved main: 'sigmund.js',
7374 silly resolved directories: { test: 'test' },
7374 silly resolved dependencies: {},
7374 silly resolved devDependencies: { tap: '~0.3.0' },
7374 silly resolved scripts: { test: 'tap test/*.js', bench: 'node bench.js' },
7374 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/sigmund' },
7374 silly resolved keywords: [ 'object', 'signature', 'key', 'data', 'psychoanalysis' ],
7374 silly resolved author:
7374 silly resolved { name: 'Isaac Z. Schlueter',
7374 silly resolved email: 'i@izs.me',
7374 silly resolved url: 'http://blog.izs.me/' },
7374 silly resolved license: 'BSD',
7374 silly resolved readme: '# sigmund\n\nQuick and dirty signatures for Objects.\n\nThis is like a much faster `deepEquals` comparison, which returns a\nstring key suitable for caches and the like.\n\n## Usage\n\n```javascript\nfunction doSomething (someObj) {\n var key = sigmund(someObj, maxDepth) // max depth defaults to 10\n var cached = cache.get(key)\n if (cached) return cached)\n\n var result = expensiveCalculation(someObj)\n cache.set(key, result)\n return result\n}\n```\n\nThe resulting key will be as unique and reproducible as calling\n`JSON.stringify` or `util.inspect` on the object, but is much faster.\nIn order to achieve this speed, some differences are glossed over.\nFor example, the object `{0:\'foo\'}` will be treated identically to the\narray `[\'foo\']`.\n\nAlso, just as there is no way to summon the soul from the scribblings\nof a cocain-addled psychoanalyst, there is no way to revive the object\nfrom the signature string that sigmund gives you. In fact, it\'s\nbarely even readable.\n\nAs with `sys.inspect` and `JSON.stringify`, larger objects will\nproduce larger signature strings.\n\nBecause sigmund is a bit less strict than the more thorough\nalternatives, the strings will be shorter, and also there is a\nslightly higher chance for collisions. For example, these objects\nhave the same signature:\n\n var obj1 = {a:\'b\',c:/def/,g:[\'h\',\'i\',{j:\'\',k:\'l\'}]}\n var obj2 = {a:\'b\',c:\'/def/\',g:[\'h\',\'i\',\'{jkl\']}\n\nLike a good Freudian, sigmund is most effective when you already have\nsome understanding of what you\'re looking for. It can help you help\nyourself, but you must be willing to do some work as well.\n\nCycles are handled, and cyclical objects are silently omitted (though\nthe key is included in the signature output.)\n\nThe second argument is the maximum depth, which defaults to 10,\nbecause that is the maximum object traversal depth covered by most\ninsurance carriers.\n',
7374 silly resolved readmeFilename: 'README.md',
7374 silly resolved bugs: { url: 'https://github.com/isaacs/sigmund/issues' },
7374 silly resolved _id: 'sigmund@1.0.0',
7374 silly resolved _from: 'sigmund@~1.0.0' } ]
7375 info install lru-cache@2.3.0 into /opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/minimatch
7376 info install sigmund@1.0.0 into /opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/minimatch
7377 info installOne lru-cache@2.3.0
7378 info installOne sigmund@1.0.0
7379 verbose tar unpack /Users/vaca/.npm/memoizee/0.2.5/package.tgz
7380 silly lockFile bd09beb5--cli-color-node-modules-memoizee tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/cli-color/node_modules/memoizee
7381 verbose lock tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/cli-color/node_modules/memoizee /Users/vaca/.npm/bd09beb5--cli-color-node-modules-memoizee.lock
7382 silly lockFile 41f3b834-a-npm-memoizee-0-2-5-package-tgz tar:///Users/vaca/.npm/memoizee/0.2.5/package.tgz
7383 verbose lock tar:///Users/vaca/.npm/memoizee/0.2.5/package.tgz /Users/vaca/.npm/41f3b834-a-npm-memoizee-0-2-5-package-tgz.lock
7384 verbose tar unpack /Users/vaca/.npm/es5-ext/0.9.2/package.tgz
7385 silly lockFile 29adbc86-s-cli-color-node-modules-es5-ext tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/cli-color/node_modules/es5-ext
7386 verbose lock tar:///opt/local/lib/node_modules/yo/node_modules/insight/node_modules/inquirer/node_modules/cli-color/node_modules/es5-ext /Users/vaca/.npm/29adbc86-s-cli-color-node-modules-es5-ext.lock
7387 silly lockFile e7ab7ca8-ca-npm-es5-ext-0-9-2-package-tgz tar:///Users/vaca/.npm/es5-ext/0.9.2/package.tgz
7388 verbose lock tar:///Users/vaca/.npm/es5-ext/0.9.2/package.tgz /Users/vaca/.npm/e7ab7ca8-ca-npm-es5-ext-0-9-2-package-tgz.lock
7389 verbose cache add [ 'argparse@~0.1.4', null ]
7390 verbose cache add name=undefined spec="argparse@~0.1.4" args=["argparse@~0.1.4",null]
7391 verbose parsed url { protocol: null,
7391 verbose parsed url slashes: null,
7391 verbose parsed url auth: null,
7391 verbose parsed url host: null,
7391 verbose parsed url port: null,
7391 verbose parsed url hostname: null,
7391 verbose parsed url hash: null,
7391 verbose parsed url search: null,
7391 verbose parsed url query: null,
7391 verbose parsed url pathname: 'argparse@~0.1.4',
7391 verbose parsed url path: 'argparse@~0.1.4',
7391 verbose parsed url href: 'argparse@~0.1.4' }
7392 verbose cache add name="argparse" spec="~0.1.4" args=["argparse","~0.1.4"]
7393 verbose parsed url { protocol: null,
7393 verbose parsed url slashes: null,
7393 verbose parsed url auth: null,
7393 verbose parsed url host: null,
7393 verbose parsed url port: null,
7393 verbose parsed url hostname: null,
7393 verbose parsed url hash: null,
7393 verbose parsed url search: null,
7393 verbose parsed url query: null,
7393 verbose parsed url pathname: '~0.1.4',
7393 verbose parsed url path: '~0.1.4',
7393 verbose parsed url href: '~0.1.4' }
7394 verbose addNamed [ 'argparse', '~0.1.4' ]
7395 verbose addNamed [ null, '>=0.1.4-0 <0.2.0-0' ]
7396 silly lockFile 0d99e7f2-argparse-0-1-4 argparse@~0.1.4
7397 verbose lock argparse@~0.1.4 /Users/vaca/.npm/0d99e7f2-argparse-0-1-4.lock
7398 verbose cache add [ 'glob@~3.1.11', null ]
7399 verbose cache add name=undefined spec="glob@~3.1.11" args=["glob@~3.1.11",null]
7400 verbose parsed url { protocol: null,
7400 verbose parsed url slashes: null,
7400 verbose parsed url auth: null,
7400 verbose parsed url host: null,
7400 verbose parsed url port: null,
7400 verbose parsed url hostname: null,
7400 verbose parsed url hash: null,
7400 verbose parsed url search: null,
7400 verbose parsed url query: null,
7400 verbose parsed url pathname: 'glob@~3.1.11',
7400 verbose parsed url path: 'glob@~3.1.11',
7400 verbose parsed url href: 'glob@~3.1.11' }
7401 verbose cache add name="glob" spec="~3.1.11" args=["glob","~3.1.11"]
7402 verbose parsed url { protocol: null,
7402 verbose parsed url slashes: null,
7402 verbose parsed url auth: null,
7402 verbose parsed url host: null,
7402 verbose parsed url port: null,
7402 verbose parsed url hostname: null,
7402 verbose parsed url hash: null,
7402 verbose parsed url search: null,
7402 verbose parsed url query: null,
7402 verbose parsed url pathname: '~3.1.11',
7402 verbose parsed url path: '~3.1.11',
7402 verbose parsed url href: '~3.1.11' }
7403 verbose addNamed [ 'glob', '~3.1.11' ]
7404 verbose addNamed [ null, '>=3.1.11-0 <3.2.0-0' ]
7405 silly lockFile 98c10469-glob-3-1-11 glob@~3.1.11
7406 verbose lock glob@~3.1.11 /Users/vaca/.npm/98c10469-glob-3-1-11.lock
7407 info /opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/lru-cache unbuild
7408 info /opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/sigmund unbuild
7409 silly addNameRange number 2 { name: 'form-data', range: '>=0.1.0-0 <0.2.0-0', hasData: true }
7410 silly addNameRange versions [ 'form-data',
7410 silly addNameRange [ '0.0.0',
7410 silly addNameRange '0.0.2',
7410 silly addNameRange '0.0.3',
7410 silly addNameRange '0.0.4',
7410 silly addNameRange '0.0.5',
7410 silly addNameRange '0.0.6',
7410 silly addNameRange '0.0.7',
7410 silly addNameRange '0.0.8',
7410 silly addNameRange '0.0.9',
7410 silly addNameRange '0.0.10',
7410 silly addNameRange '0.1.0' ] ]
7411 verbose addNamed [ 'form-data', '0.1.0' ]
7412 verbose addNamed [ '0.1.0', '0.1.0' ]
7413 silly lockFile 4f358da7-form-data-0-1-0 form-data@0.1.0
7414 verbose lock form-data@0.1.0 /Users/vaca/.npm/4f358da7-form-data-0-1-0.lock
7415 silly addNameRange number 2 { name: 'http-signature',
7415 silly addNameRange range: '>=0.10.0-0 <0.11.0-0',
7415 silly addNameRange hasData: true }
7416 silly addNameRange versions [ 'http-signature',
7416 silly addNameRange [ '0.9.0',
7416 silly addNameRange '0.9.2',
7416 silly addNameRange '0.9.3',
7416 silly addNameRange '0.9.4',
7416 silly addNameRange '0.9.5',
7416 silly addNameRange '0.9.6',
7416 silly addNameRange '0.9.7',
7416 silly addNameRange '0.9.8',
7416 silly addNameRange '0.9.9',
7416 silly addNameRange '0.9.10',
7416 silly addNameRange '0.9.11',
7416 silly addNameRange '0.10.0' ] ]
7417 verbose addNamed [ 'http-signature', '0.10.0' ]
7418 verbose addNamed [ '0.10.0', '0.10.0' ]
7419 silly lockFile f628681c-http-signature-0-10-0 http-signature@0.10.0
7420 verbose lock http-signature@0.10.0 /Users/vaca/.npm/f628681c-http-signature-0-10-0.lock
7421 silly lockFile 503c0a27-aws-sign-0-3-0 aws-sign@0.3.0
7422 silly lockFile 503c0a27-aws-sign-0-3-0 aws-sign@0.3.0
7423 verbose url raw hawk
7424 verbose url resolving [ 'https://registry.npmjs.org/', './hawk' ]
7425 verbose url resolved https://registry.npmjs.org/hawk
7426 info trying registry request attempt 1 at 11:55:14
7427 verbose etag "17MAGR8GO9T8DC3OUL21AM3AX"
7428 http GET https://registry.npmjs.org/hawk
7429 verbose url raw form-data/0.0.8
7430 verbose url resolving [ 'https://registry.npmjs.org/', './form-data/0.0.8' ]
7431 verbose url resolved https://registry.npmjs.org/form-data/0.0.8
7432 info trying registry request attempt 1 at 11:55:14
7433 verbose etag "9GQPP3V1TWZICN05X66SWTXCE"
7434 http GET https://registry.npmjs.org/form-data/0.0.8
7435 silly addNameRange { name: 'argparse', range: '>=0.1.4-0 <0.2.0-0', hasData: false }
7436 silly addNameRange { name: 'glob', range: '>=3.1.11-0 <3.2.0-0', hasData: false }
7437 silly addNameRange number 2 { name: 'hawk', range: '>=1.0.0-0 <1.1.0-0', hasData: true }
7438 silly addNameRange versions [ 'hawk',
7438 silly addNameRange [ '0.0.1',
7438 silly addNameRange '0.0.2',
7438 silly addNameRange '0.0.3',
7438 silly addNameRange '0.0.4',
7438 silly addNameRange '0.0.5',
7438 silly addNameRange '0.0.6',
7438 silly addNameRange '0.0.7',
7438 silly addNameRange '0.0.8',
7438 silly addNameRange '0.1.0',
7438 silly addNameRange '0.2.0',
7438 silly addNameRange '0.3.0',
7438 silly addNameRange '0.4.0',
7438 silly addNameRange '0.5.0',
7438 silly addNameRange '0.5.1',
7438 silly addNameRange '0.5.2',
7438 silly addNameRange '0.5.3',
7438 silly addNameRange '0.6.0',
7438 silly addNameRange '0.6.1',
7438 silly addNameRange '0.7.0',
7438 silly addNameRange '0.7.1',
7438 silly addNameRange '0.8.1',
7438 silly addNameRange '0.9.0',
7438 silly addNameRange '0.10.0',
7438 silly addNameRange '0.10.1',
7438 silly addNameRange '0.10.2',
7438 silly addNameRange '0.11.0',
7438 silly addNameRange '0.11.1',
7438 silly addNameRange '0.12.0',
7438 silly addNameRange '0.12.1',
7438 silly addNameRange '0.12.2',
7438 silly addNameRange '0.13.0',
7438 silly addNameRange '0.13.1',
7438 silly addNameRange '0.14.0',
7438 silly addNameRange '0.15.0',
7438 silly addNameRange '1.0.0',
7438 silly addNameRange '1.1.0-pre' ] ]
7439 verbose addNamed [ 'hawk', '1.0.0' ]
7440 verbose addNamed [ '1.0.0', '1.0.0' ]
7441 silly lockFile 1ca87dbe-hawk-1-0-0 hawk@1.0.0
7442 verbose lock hawk@1.0.0 /Users/vaca/.npm/1ca87dbe-hawk-1-0-0.lock
7443 silly addNameRange number 2 { name: 'qs', range: '>=0.6.0-0 <0.7.0-0', hasData: true }
7444 silly addNameRange versions [ 'qs',
7444 silly addNameRange [ '0.0.1',
7444 silly addNameRange '0.0.2',
7444 silly addNameRange '0.0.3',
7444 silly addNameRange '0.0.4',
7444 silly addNameRange '0.0.5',
7444 silly addNameRange '0.0.6',
7444 silly addNameRange '0.0.7',
7444 silly addNameRange '0.1.0',
7444 silly addNameRange '0.2.0',
7444 silly addNameRange '0.3.0',
7444 silly addNameRange '0.3.1',
7444 silly addNameRange '0.3.2',
7444 silly addNameRange '0.4.0',
7444 silly addNameRange '0.4.1',
7444 silly addNameRange '0.4.2',
7444 silly addNameRange '0.5.0',
7444 silly addNameRange '0.5.1',
7444 silly addNameRange '0.5.2',
7444 silly addNameRange '0.5.3',
7444 silly addNameRange '0.5.4',
7444 silly addNameRange '0.5.5',
7444 silly addNameRange '0.5.6',
7444 silly addNameRange '0.6.0',
7444 silly addNameRange '0.6.1',
7444 silly addNameRange '0.6.2',
7444 silly addNameRange '0.6.3',
7444 silly addNameRange '0.6.4',
7444 silly addNameRange '0.6.5' ] ]
7445 verbose addNamed [ 'qs', '0.6.5' ]
7446 verbose addNamed [ '0.6.5', '0.6.5' ]
7447 silly lockFile f5e5a40f-qs-0-6-5 qs@0.6.5
7448 verbose lock qs@0.6.5 /Users/vaca/.npm/f5e5a40f-qs-0-6-5.lock
7449 silly addNameRange number 2 { name: 'json-stringify-safe',
7449 silly addNameRange range: '>=5.0.0-0 <5.1.0-0',
7449 silly addNameRange hasData: true }
7450 silly addNameRange versions [ 'json-stringify-safe',
7450 silly addNameRange [ '2.0.0', '3.0.0', '4.0.0', '5.0.0' ] ]
7451 verbose addNamed [ 'json-stringify-safe', '5.0.0' ]
7452 verbose addNamed [ '5.0.0', '5.0.0' ]
7453 silly lockFile 1d9ebe76-json-stringify-safe-5-0-0 json-stringify-safe@5.0.0
7454 verbose lock json-stringify-safe@5.0.0 /Users/vaca/.npm/1d9ebe76-json-stringify-safe-5-0-0.lock
7455 verbose registry.get json-stringify-safe not expired, no request
7456 silly addNameRange number 2 { name: 'json-stringify-safe',
7456 silly addNameRange range: '>=4.0.0-0 <4.1.0-0',
7456 silly addNameRange hasData: true }
7457 silly addNameRange versions [ 'json-stringify-safe',
7457 silly addNameRange [ '2.0.0', '3.0.0', '4.0.0', '5.0.0' ] ]
7458 verbose addNamed [ 'json-stringify-safe', '4.0.0' ]
7459 verbose addNamed [ '4.0.0', '4.0.0' ]
7460 silly lockFile 821777f0-json-stringify-safe-4-0-0 json-stringify-safe@4.0.0
7461 verbose lock json-stringify-safe@4.0.0 /Users/vaca/.npm/821777f0-json-stringify-safe-4-0-0.lock
7462 silly lockFile 514b1d97-aws-sign-0-3-0 aws-sign@~0.3.0
7463 silly lockFile 514b1d97-aws-sign-0-3-0 aws-sign@~0.3.0
7464 verbose registry.get oauth-sign not expired, no request
7465 silly addNameRange number 2 { name: 'oauth-sign',
7465 silly addNameRange range: '>=0.3.0-0 <0.4.0-0',
7465 silly addNameRange hasData: true }
7466 silly addNameRange versions [ 'oauth-sign', [ '0.2.0', '0.3.0' ] ]
7467 verbose addNamed [ 'oauth-sign', '0.3.0' ]
7468 verbose addNamed [ '0.3.0', '0.3.0' ]
7469 silly lockFile ae61e7c5-oauth-sign-0-3-0 oauth-sign@0.3.0
7470 verbose lock oauth-sign@0.3.0 /Users/vaca/.npm/ae61e7c5-oauth-sign-0-3-0.lock
7471 silly gunzTarPerm modes [ '755', '644' ]
7472 silly gunzTarPerm modes [ '755', '644' ]
7473 verbose tar unpack /Users/vaca/.npm/lru-cache/2.3.0/package.tgz
7474 silly lockFile b3304e10-minimatch-node-modules-lru-cache tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/lru-cache
7475 verbose lock tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/lru-cache /Users/vaca/.npm/b3304e10-minimatch-node-modules-lru-cache.lock
7476 silly lockFile d33fa84c--npm-lru-cache-2-3-0-package-tgz tar:///Users/vaca/.npm/lru-cache/2.3.0/package.tgz
7477 verbose lock tar:///Users/vaca/.npm/lru-cache/2.3.0/package.tgz /Users/vaca/.npm/d33fa84c--npm-lru-cache-2-3-0-package-tgz.lock
7478 verbose tar unpack /Users/vaca/.npm/sigmund/1.0.0/package.tgz
7479 silly lockFile 17c8db47-s-minimatch-node-modules-sigmund tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/sigmund
7480 verbose lock tar:///opt/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/sigmund /Users/vaca/.npm/17c8db47-s-minimatch-node-modules-sigmund.lock
7481 silly lockFile caef6e7b-ca-npm-sigmund-1-0-0-package-tgz tar:///Users/vaca/.npm/sigmund/1.0.0/package.tgz
7482 verbose lock tar:///Users/vaca/.npm/sigmund/1.0.0/package.tgz /Users/vaca/.npm/caef6e7b-ca-npm-sigmund-1-0-0-package-tgz.lock
7483 silly addNameRange number 2 { name: 'forever-agent',
7483 silly addNameRange range: '>=0.5.0-0 <0.6.0-0',
7483 silly addNameRange hasData: true }
7484 silly addNameRange versions [ 'forever-agent', [ '0.2.0', '0.3.0', '0.4.0', '0.5.0' ] ]
7485 verbose addNamed [ 'forever-agent', '0.5.0' ]
7486 verbose addNamed [ '0.5.0', '0.5.0' ]
7487 silly lockFile 4bf1555c-forever-agent-0-5-0 forever-agent@0.5.0
7488 verbose lock forever-agent@0.5.0 /Users/vaca/.npm/4bf1555c-forever-agent-0-5-0.lock
7489 silly gunzTarPerm extractEntry package.json
7490 silly gunzTarPerm extractEntry package.json
7491 silly addNameRange number 2 { name: 'tunnel-agent',
7491 silly addNameRange range: '>=0.3.0-0 <0.4.0-0',
7491 silly addNameRange hasData: true }
7492 silly addNameRange versions [ 'tunnel-agent', [ '0.2.0', '0.3.0' ] ]
7493 verbose addNamed [ 'tunnel-agent', '0.3.0' ]
7494 verbose addNamed [ '0.3.0', '0.3.0' ]
7495 silly lockFile d054959a-tunnel-agent-0-3-0 tunnel-agent@0.3.0
7496 verbose lock tunnel-agent@0.3.0 /Users/vaca/.npm/d054959a-tunnel-agent-0-3-0.lock
7497 silly addNameRange number 2 { name: 'chainsaw', range: '>=0.1.0-0 <0.2.0-0', hasData: true }
7498 silly addNameRange versions [ 'chainsaw',
7498 silly addNameRange [ '0.0.1',
7498 silly addNameRange '0.0.3',
7498 silly addNameRange '0.0.4',
7498 silly addNameRange '0.0.5',
7498 silly addNameRange '0.0.6',
7498 silly addNameRange '0.0.7',
7498 silly addNameRange '0.0.8',
7498 silly addNameRange '0.0.9',
7498 silly addNameRange '0.1.0' ] ]
7499 verbose addNamed [ 'chainsaw', '0.1.0' ]
7500 verbose addNamed [ '0.1.0', '0.1.0' ]
7501 silly lockFile bccefb71-chainsaw-0-1-0 chainsaw@0.1.0
7502 verbose lock chainsaw@0.1.0 /Users/vaca/.npm/bccefb71-chainsaw-0-1-0.lock
7503 silly lockFile ae61e7c5-oauth-sign-0-3-0 oauth-sign@0.3.0
7504 silly lockFile ae61e7c5-oauth-sign-0-3-0 oauth-sign@0.3.0
7505 silly lockFile 788da469-node-uuid-1-4-0 node-uuid@1.4.0
7506 silly lockFile 788da469-node-uuid-1-4-0 node-uuid@1.4.0
7507 silly gunzTarPerm modes [ '755', '644' ]
7508 silly gunzTarPerm modes [ '755', '644' ]
7509 silly lockFile 7fb5c7f1-oauth-sign-0-3-0 oauth-sign@~0.3.0
7510 silly lockFile 7fb5c7f1-oauth-sign-0-3-0 oauth-sign@~0.3.0
7511 silly gunzTarPerm extractEntry src/object/has.js
7512 silly gunzTarPerm extractEntry src/object/hasOwn.js
7513 verbose registry.get glob not expired, no request
7514 silly addNameRange number 2 { name: 'glob', range: '>=3.1.11-0 <3.2.0-0', hasData: true }
7515 silly addNameRange versions [ 'glob',
7515 silly addNameRange [ '1.1.0',
7515 silly addNameRange '2.0.9',
7515 silly addNameRange '2.0.8',
7515 silly addNameRange '2.0.7',
7515 silly addNameRange '2.1.0',
7515 silly addNameRange '3.0.0',
7515 silly addNameRange '3.0.1',
7515 silly addNameRange '3.1.0',
7515 silly addNameRange '3.1.1',
7515 silly addNameRange '3.1.2',
7515 silly addNameRange '3.1.3',
7515 silly addNameRange '3.1.4',
7515 silly addNameRange '3.1.5',
7515 silly addNameRange '3.1.6',
7515 silly addNameRange '3.1.7',
7515 silly addNameRange '3.1.9',
7515 silly addNameRange '3.1.10',
7515 silly addNameRange '3.1.11',
7515 silly addNameRange '3.1.12',
7515 silly addNameRange '3.1.13',
7515 silly addNameRange '3.1.14',
7515 silly addNameRange '3.1.15',
7515 silly addNameRange '3.1.16',
7515 silly addNameRange '3.1.17',
7515 silly addNameRange '3.1.18',
7515 silly addNameRange '3.1.19',
7515 silly addNameRange '3.1.20',
7515 silly addNameRange '3.1.21',
7515 silly addNameRange '3.2.0',
7515 silly addNameRange '3.2.1',
7515 silly addNameRange '3.2.3',
7515 silly addNameRange '3.2.4',
7515 silly addNameRange '3.2.5',
7515 silly addNameRange '3.2.6' ] ]
7516 verbose addNamed [ 'glob', '3.1.21' ]
7517 verbose addNamed [ '3.1.21', '3.1.21' ]
7518 silly lockFile ab465912-glob-3-1-21 glob@3.1.21
7519 verbose lock glob@3.1.21 /Users/vaca/.npm/ab465912-glob-3-1-21.lock
7520 verbose url raw argparse
7521 verbose url resolving [ 'https://registry.npmjs.org/', './argparse' ]
7522 verbose url resolved https://registry.npmjs.org/argparse
7523 info trying registry request attempt 1 at 11:55:14
7524 verbose etag "213VYVCDP4M8X8HSGNVO8J09R"
7525 http GET https://registry.npmjs.org/argparse
7526 silly lockFile f662725f-node-uuid-1-4-0 node-uuid@~1.4.0
7527 silly lockFile f662725f-node-uuid-1-4-0 node-uuid@~1.4.0
7528 silly lockFile 8bcaaa4d-mime-1-2-10 mime@1.2.10
7529 silly lockFile 8bcaaa4d-mime-1-2-10 mime@1.2.10
7530 silly gunzTarPerm extractEntry dist/lodash.underscore.js
7531 silly gunzTarPerm extractEntry dist/lodash.underscore.min.js
7532 silly gunzTarPerm extractEntry package.json
7533 silly lockFile ccf24a67-mime-1-2-9 mime@~1.2.9
7534 silly lockFile ccf24a67-mime-1-2-9 mime@~1.2.9
7535 silly gunzTarPerm extractEntry README.md
7536 silly gunzTarPerm extractEntry .npmignore
7537 silly gunzTarPerm extractEntry README.md
7538 silly gunzTarPerm extractEntry LICENSE
7539 silly gunzTarPerm extractEntry package.json
7540 silly gunzTarPerm extractEntry dist/lodash.mobile.min.js
7541 silly gunzTarPerm extractEntry dist/lodash.underscore.js
7542 silly lockFile ab465912-glob-3-1-21 glob@3.1.21
7543 silly lockFile ab465912-glob-3-1-21 glob@3.1.21
7544 silly lockFile 98c10469-glob-3-1-11 glob@~3.1.11
7545 silly lockFile 98c10469-glob-3-1-11 glob@~3.1.11
7546 silly gunzTarPerm extractEntry package.json
7547 silly gunzTarPerm extractEntry .npmignore
7548 silly gunzTarPerm extractEntry README.md
7549 silly gunzTarPerm extractEntry package.json
7550 silly gunzTarPerm extractEntry .npmignore
7551 silly gunzTarPerm extractEntry README.md
7552 silly lockFile 4f358da7-form-data-0-1-0 form-data@0.1.0
7553 silly lockFile 4f358da7-form-data-0-1-0 form-data@0.1.0
7554 silly lockFile f628681c-http-signature-0-10-0 http-signature@0.10.0
7555 silly lockFile f628681c-http-signature-0-10-0 http-signature@0.10.0
7556 silly gunzTarPerm extractEntry src/object/forOwn.js
7557 silly gunzTarPerm extractEntry src/object/map.js
7558 silly gunzTarPerm extractEntry .npmignore
7559 silly gunzTarPerm extractEntry README.md
7560 silly lockFile 1ca87dbe-hawk-1-0-0 hawk@1.0.0
7561 silly lockFile 1ca87dbe-hawk-1-0-0 hawk@1.0.0
7562 silly lockFile 26aa13f4-form-data-0-1-0 form-data@~0.1.0
7563 silly lockFile 26aa13f4-form-data-0-1-0 form-data@~0.1.0
7564 silly lockFile 8170f292-http-signature-0-10-0 http-signature@~0.10.0
7565 silly lockFile 8170f292-http-signature-0-10-0 http-signature@~0.10.0
7566 silly lockFile f5e5a40f-qs-0-6-5 qs@0.6.5
7567 silly lockFile f5e5a40f-qs-0-6-5 qs@0.6.5
7568 silly lockFile 1d9ebe76-json-stringify-safe-5-0-0 json-stringify-safe@5.0.0
7569 silly lockFile 1d9ebe76-json-stringify-safe-5-0-0 json-stringify-safe@5.0.0
7570 silly lockFile 821777f0-json-stringify-safe-4-0-0 json-stringify-safe@4.0.0
7571 silly lockFile 821777f0-json-stringify-safe-4-0-0 json-stringify-safe@4.0.0
7572 silly gunzTarPerm extractEntry README.md
7573 silly gunzTarPerm extractEntry LICENSE
7574 silly lockFile 327094b8-hawk-1-0-0 hawk@~1.0.0
7575 silly lockFile 327094b8-hawk-1-0-0 hawk@~1.0.0
7576 silly lockFile 222bee9e-qs-0-6-0 qs@~0.6.0
7577 silly lockFile 222bee9e-qs-0-6-0 qs@~0.6.0
7578 silly lockFile 063b1a01-json-stringify-safe-5-0-0 json-stringify-safe@~5.0.0
7579 silly lockFile 063b1a01-json-stringify-safe-5-0-0 json-stringify-safe@~5.0.0
7580 silly lockFile dc5c41b6-json-stringify-safe-4-0-0 json-stringify-safe@~4.0.0
7581 silly lockFile dc5c41b6-json-stringify-safe-4-0-0 json-stringify-safe@~4.0.0
7582 silly lockFile 4bf1555c-forever-agent-0-5-0 forever-agent@0.5.0
7583 silly lockFile 4bf1555c-forever-agent-0-5-0 forever-agent@0.5.0
7584 silly gunzTarPerm extractEntry LICENSE
7585 silly gunzTarPerm extractEntry index.js
7586 silly gunzTarPerm extractEntry tests/test-httpModule.js
7587 silly gunzTarPerm extractEntry bin/yaml.js
7588 silly lockFile fa463915-forever-agent-0-5-0 forever-agent@~0.5.0
7589 silly lockFile fa463915-forever-agent-0-5-0 forever-agent@~0.5.0
7590 silly lockFile bccefb71-chainsaw-0-1-0 chainsaw@0.1.0
7591 silly lockFile bccefb71-chainsaw-0-1-0 chainsaw@0.1.0
7592 silly lockFile d054959a-tunnel-agent-0-3-0 tunnel-agent@0.3.0
7593 silly lockFile d054959a-tunnel-agent-0-3-0 tunnel-agent@0.3.0
7594 silly lockFile 17a7bbd8-ules-bower-node-modules-inquirer tar:///opt/local/lib/node_modules/bower/node_modules/inquirer
7595 silly lockFile 17a7bbd8-ules-bower-node-modules-inquirer tar:///opt/local/lib/node_modules/bower/node_modules/inquirer
7596 silly lockFile d332b3f3-chainsaw-0-1-0 chainsaw@~0.1.0
7597 silly lockFile d332b3f3-chainsaw-0-1-0 chainsaw@~0.1.0
7598 silly lockFile e5681eda-tunnel-agent-0-3-0 tunnel-agent@~0.3.0
7599 silly lockFile e5681eda-tunnel-agent-0-3-0 tunnel-agent@~0.3.0
7600 silly lockFile 201d9058-a-npm-inquirer-0-2-3-package-tgz tar:///Users/vaca/.npm/inquirer/0.2.3/package.tgz
7601 silly lockFile 201d9058-a-npm-inquirer-0-2-3-package-tgz tar:///Users/vaca/.npm/inquirer/0.2.3/package.tgz
7602 silly gunzTarPerm extractEntry dist/lodash.underscore.min.js
7603 silly resolved [ { name: 'buffers',
7603 silly resolved description: 'Treat a collection of Buffers as a single contiguous partially mutable Buffer.',
7603 silly resolved version: '0.1.1',
7603 silly resolved repository:
7603 silly resolved { type: 'git',
7603 silly resolved url: 'http://github.com/substack/node-buffers.git' },
7603 silly resolved author:
7603 silly resolved { name: 'James Halliday',
7603 silly resolved email: 'mail@substack.net',
7603 silly resolved url: 'http://substack.net' },
7603 silly resolved main: './index',
7603 silly resolved scripts: { test: 'expresso' },
7603 silly resolved engines: { node: '>=0.2.0' },
7603 silly resolved readme: 'buffers\n=======\n\nTreat a collection of Buffers as a single contiguous partially mutable Buffer.\n\nWhere possible, operations execute without creating a new Buffer and copying\neverything over.\n\nThis is a cleaner more Buffery rehash of\n[bufferlist](http://github.com/substack/node-bufferlist).\n\nexample\n=======\n\nslice\n-----\n\n var Buffers = require(\'buffers\');\n var bufs = Buffers();\n bufs.push(new Buffer([1,2,3]));\n bufs.push(new Buffer([4,5,6,7]));\n bufs.push(new Buffer([8,9,10]));\n \n console.dir(bufs.slice(2,8))\n\noutput:\n\n $ node examples/slice.js \n <Buffer 03 04 05 06 07 08>\n\nsplice\n------\n\n var Buffers = require(\'buffers\');\n var bufs = Buffers([\n new Buffer([1,2,3]),\n new Buffer([4,5,6,7]),\n new Buffer([8,9,10]),\n ]);\n \n var removed = bufs.splice(2, 4);\n console.dir({\n removed : removed.slice(),\n bufs : bufs.slice(),\n });\n \noutput:\n\n $ node examples/splice.js\n { removed: <Buffer 03 04 05 06>,\n bufs: <Buffer 01 02 07 08 09 0a> }\n\nmethods\n=======\n\nBuffers(buffers)\n----------------\n\nCreate a Buffers with an array of `Buffer`s if specified, else `[]`.\n\n.push(buf1, buf2...)\n--------------------\n\nPush buffers onto the end. Just like `Array.prototype.push`.\n\n.unshift(buf1, buf2...)\n-----------------------\n\nUnshift buffers onto the head. Just like `Array.prototype.unshift`.\n\n.slice(i, j)\n------------\n\nSlice a range out of the buffer collection as if it were contiguous.\nWorks just like the `Array.prototype.slice` version.\n\n.splice(i, howMany, replacements)\n---------------------------------\n\nSplice the buffer collection as if it were contiguous.\nWorks just like `Array.prototype.splice`, even the replacement part!\n\n.copy(dst, dstStart, start, end)\n--------------------------------\n\nCopy the buffer collection as if it were contiguous to the `dst` Buffer with the\nspecified bounds.\nWorks just like `Buffer.prototype.copy`.\n\n.get(i)\n-------\n\nGet a single element at index `i`.\n\n.set(i, x)\n----------\n\nSet a single element\'s value at index `i`.\n\n.indexOf(needle, offset)\n----------\n\nFind a string or buffer `needle` inside the buffer collection. Returns\nthe position of the search string or -1 if the search string was not\nfound.\n\nProvide an `offset` to skip that number of characters at the beginning\nof the search. This can be used to find additional matches.\n\nThis function will return the correct result even if the search string\nis spread out over multiple internal buffers.\n\n.toBuffer()\n-----------\n\nConvert the buffer collection to a single buffer, equivalent with `.slice(0, buffers.length)`;\n\n.toString(encoding, start, end)\n-----------\n\nDecodes and returns a string from the buffer collection.\nWorks just like `Buffer.prototype.toString`\n',
7603 silly resolved readmeFilename: 'README.markdown',
7603 silly resolved bugs: { url: 'https://github.com/substack/node-buffers/issues' },
7603 silly resolved _id: 'buffers@0.1.1',
7603 silly resolved _from: 'buffers@~0.1.1' },
7603 silly resolved { name: 'chainsaw',
7603 silly resolved version: '0.1.0',
7603 silly resolved description: 'Build chainable fluent interfaces the easy way... with a freakin\' chainsaw!',
7603 silly resolved main: './index.js',
7603 silly resolved repository:
7603 silly resolved { type: 'git',
7603 silly resolved url: 'http://github.com/substack/node-chainsaw.git' },
7603 silly resolved dependencies: { traverse: '>=0.3.0 <0.4' },
7603 silly resolved keywords: [ 'chain', 'fluent', 'interface', 'monad', 'monadic' ],
7603 silly resolved author:
7603 silly resolved { name: 'James Halliday',
7603 silly resolved email: 'mail@substack.net',
7603 silly resolved url: 'http://substack.net' },
7603 silly resolved license: 'MIT/X11',
7603 silly resolved engine: { node: '>=0.4.0' },
7603 silly resolved readme: 'Chainsaw\n========\n\nBuild chainable fluent interfaces the easy way in node.js.\n\nWith this meta-module you can write modules with chainable interfaces.\nChainsaw takes care of all of the boring details and makes nested flow control\nsuper simple too.\n\nJust call `Chainsaw` with a constructor function like in the examples below.\nIn your methods, just do `saw.next()` to move along to the next event and\n`saw.nest()` to create a nested chain.\n\nExamples\n========\n\nadd_do.js\n---------\n\nThis silly example adds values with a chainsaw.\n\n var Chainsaw = require(\'chainsaw\');\n \n function AddDo (sum) {\n return Chainsaw(function (saw) {\n this.add = function (n) {\n sum += n;\n saw.next();\n };\n \n this.do = function (cb) {\n saw.nest(cb, sum);\n };\n });\n }\n \n AddDo(0)\n .add(5)\n .add(10)\n .do(function (sum) {\n if (sum > 12) this.add(-10);\n })\n .do(function (sum) {\n console.log(\'Sum: \' + sum);\n })\n ;\n\nOutput:\n Sum: 5\n\nprompt.js\n---------\n\nThis example provides a wrapper on top of stdin with the help of\n[node-lazy](https://github.com/pkrumins/node-lazy) for line-processing.\n\n var Chainsaw = require(\'chainsaw\');\n var Lazy = require(\'lazy\');\n \n module.exports = Prompt;\n function Prompt (stream) {\n var waiting = [];\n var lines = [];\n var lazy = Lazy(stream).lines.map(String)\n .forEach(function (line) {\n if (waiting.length) {\n var w = waiting.shift();\n w(line);\n }\n else lines.push(line);\n })\n ;\n \n var vars = {};\n return Chainsaw(function (saw) {\n this.getline = function (f) {\n var g = function (line) {\n saw.nest(f, line, vars);\n };\n \n if (lines.length) g(lines.shift());\n else waiting.push(g);\n };\n \n this.do = function (cb) {\n saw.nest(cb, vars);\n };\n });\n }\n\nAnd now for the new Prompt() module in action:\n\n var util = require(\'util\');\n var stdin = process.openStdin();\n \n Prompt(stdin)\n .do(function () {\n util.print(\'x = \');\n })\n .getline(function (line, vars) {\n vars.x = parseInt(line, 10);\n })\n .do(function () {\n util.print(\'y = \');\n })\n .getline(function (line, vars) {\n vars.y = parseInt(line, 10);\n })\n .do(function (vars) {\n if (vars.x + vars.y < 10) {\n util.print(\'z = \');\n this.getline(function (line) {\n vars.z = parseInt(line, 10);\n })\n }\n else {\n vars.z = 0;\n }\n })\n .do(function (vars) {\n console.log(\'x + y + z = \' + (vars.x + vars.y + vars.z));\n process.exit();\n })\n ;\n\nInstallation\n============\n\nWith [npm](http://github.com/isaacs/npm), just do:\n npm install chainsaw\n\nor clone this project on github:\n\n git clone http://github.com/substack/node-chainsaw.git\n\nTo run the tests with [expresso](http://github.com/visionmedia/expresso),\njust do:\n\n expresso\n\n\nLight Mode vs Full Mode\n=======================\n\n`node-chainsaw` supports two different modes. In full mode, every\naction is recorded, which allows you to replay actions using the\n`jump()`, `trap()` and `down()` methods.\n\nHowever, if your chainsaws are long-lived, recording every action can\nconsume a tremendous amount of memory, so we also offer a "light" mode\nwhere actions are not recorded and the aforementioned methods are\ndisabled.\n\nTo enable light mode simply use `Chainsaw.light()` to construct your\nsaw, instead of `Chainsaw()`.\n\n\n',
7603 silly resolved readmeFilename: 'README.markdown',
7603 silly resolved bugs: { url: 'https://github.com/substack/node-chainsaw/issues' },
7603 silly resolved _id: 'chainsaw@0.1.0',
7603 silly resolved _from: 'chainsaw@~0.1.0' } ]
7604 info install buffers@0.1.1 into /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/binary
7605 info install chainsaw@0.1.0 into /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/binary
7606 info installOne buffers@0.1.1
7607 info installOne chainsaw@0.1.0
7608 silly resolved [ { author:
7608 silly resolved { name: 'Mikeal Rogers',
7608 silly resolved email: 'mikeal.rogers@gmail.com',
7608 silly resolved url: 'http://www.futurealoof.com' },
7608 silly resolved name: 'oauth-sign',
7608 silly resolved description: 'OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.',
7608 silly resolved version: '0.3.0',
7608 silly resolved repository: { url: 'https://github.com/mikeal/oauth-sign' },
7608 silly resolved main: 'index.js',
7608 silly resolved dependencies: {},
7608 silly resolved devDependencies: {},
7608 silly resolved optionalDependencies: {},
7608 silly resolved engines: { node: '*' },
7608 silly resolved scripts: { test: 'node test.js' },
7608 silly resolved readme: 'oauth-sign\n==========\n\nOAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module. \n',
7608 silly resolved readmeFilename: 'README.md',
7608 silly resolved bugs: { url: 'https://github.com/mikeal/oauth-sign/issues' },
7608 silly resolved _id: 'oauth-sign@0.3.0',
7608 silly resolved _from: 'oauth-sign@~0.3.0' },
7608 silly resolved { author:
7608 silly resolved { name: 'Mikeal Rogers',
7608 silly resolved email: 'mikeal.rogers@gmail.com',
7608 silly resolved url: 'http://www.futurealoof.com' },
7608 silly resolved name: 'cookie-jar',
7608 silly resolved description: 'Cookie Jar. Originally pulled form tobi, maintained as vendor in request, now a standalone module.',
7608 silly resolved version: '0.3.0',
7608 silly resolved repository: { url: 'https://github.com/mikeal/cookie-jar' },
7608 silly resolved main: 'index.js',
7608 silly resolved scripts: { test: 'node tests/run.js' },
7608 silly resolved dependencies: {},
7608 silly resolved devDependencies: {},
7608 silly resolved optionalDependencies: {},
7608 silly resolved engines: { node: '*' },
7608 silly resolved readme: 'cookie-jar\n==========\n\nCookie Jar. Originally pulled from LearnBoost/tobi, maintained as vendor in request, now a standalone module.\n',
7608 silly resolved readmeFilename: 'README.md',
7608 silly resolved bugs: { url: 'https://github.com/mikeal/cookie-jar/issues' },
7608 silly resolved _id: 'cookie-jar@0.3.0',
7608 silly resolved _from: 'cookie-jar@~0.3.0' },
7608 silly resolved { author:
7608 silly resolved { name: 'Mikeal Rogers',
7608 silly resolved email: 'mikeal.rogers@gmail.com',
7608 silly resolved url: 'http://www.futurealoof.com' },
7608 silly resolved name: 'aws-sign',
7608 silly resolved description: 'AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.',
7608 silly resolved version: '0.3.0',
7608 silly resolved repository: { url: 'https://github.com/mikeal/aws-sign' },
7608 silly resolved main: 'index.js',
7608 silly resolved dependencies: {},
7608 silly resolved devDependencies: {},
7608 silly resolved optionalDependencies: {},
7608 silly resolved engines: { node: '*' },
7608 silly resolved readme: 'aws-sign\n========\n\nAWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.\n',
7608 silly resolved readmeFilename: 'README.md',
7608 silly resolved bugs: { url: 'https://github.com/mikeal/aws-sign/issues' },
7608 silly resolved _id: 'aws-sign@0.3.0',
7608 silly resolved _from: 'aws-sign@~0.3.0' },
7608 silly resolved { name: 'node-uuid',
7608 silly resolved description: 'Rigorous implementation of RFC4122 (v1 and v4) UUIDs.',
7608 silly resolved url: 'http://github.com/broofa/node-uuid',
7608 silly resolved keywords: [ 'uuid', 'guid', 'rfc4122' ],
7608 silly resolved author: { name: 'Robert Kieffer', email: 'robert@broofa.com' },
7608 silly resolved contributors: [ [Object] ],
7608 silly resolved lib: '.',
7608 silly resolved main: './uuid.js',
7608 silly resolved repository: { type: 'git', url: 'https://github.com/broofa/node-uuid.git' },
7608 silly resolved version: '1.4.0',
7608 silly resolved readme: '# node-uuid\n\nSimple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS.\n\nFeatures:\n\n* Generate RFC4122 version 1 or version 4 UUIDs\n* Runs in node.js and all browsers.\n* Cryptographically strong random # generation on supporting platforms\n* 1.1K minified and gzip\'ed (Want something smaller? Check this [crazy shit](https://gist.github.com/982883) out! )\n* [Annotated source code](http://broofa.github.com/node-uuid/docs/uuid.html)\n\n## Getting Started\n\nInstall it in your browser:\n\n```html\n<script src="uuid.js"></script>\n```\n\nOr in node.js:\n\n```\nnpm install node-uuid\n```\n\n```javascript\nvar uuid = require(\'node-uuid\');\n```\n\nThen create some ids ...\n\n```javascript\n// Generate a v1 (time-based) id\nuuid.v1(); // -> \'6c84fb90-12c4-11e1-840d-7b25c5ee775a\'\n\n// Generate a v4 (random) id\nuuid.v4(); // -> \'110ec58a-a0f2-4ac4-8393-c866d813b8d1\'\n```\n\n## API\n\n### uuid.v1([`options` [, `buffer` [, `offset`]]])\n\nGenerate and return a RFC4122 v1 (timestamp-based) UUID.\n\n* `options` - (Object) Optional uuid state to apply. Properties may include:\n\n * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID. See note 1.\n * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used.\n * `msecs` - (Number | Date) Time in milliseconds since unix Epoch. Default: The current time is used.\n * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2.\n\n* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.\n* `offset` - (Number) Starting index in `buffer` at which to begin writing.\n\nReturns `buffer`, if specified, otherwise the string form of the UUID\n\nNotes:\n\n1. The randomly generated node id is only guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.)\n\nExample: Generate string UUID with fully-specified options\n\n```javascript\nuuid.v1({\n node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],\n clockseq: 0x1234,\n msecs: new Date(\'2011-11-01\').getTime(),\n nsecs: 5678\n}); // -> "710b962e-041c-11e1-9234-0123456789ab"\n```\n\nExample: In-place generation of two binary IDs\n\n```javascript\n// Generate two ids in an array\nvar arr = new Array(32); // -> []\nuuid.v1(null, arr, 0); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15]\nuuid.v1(null, arr, 16); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15 02 a3 1c b0 14 32 11 e1 85 58 0b 48 8e 4f c1 15]\n\n// Optionally use uuid.unparse() to get stringify the ids\nuuid.unparse(buffer); // -> \'02a2ce90-1432-11e1-8558-0b488e4fc115\'\nuuid.unparse(buffer, 16) // -> \'02a31cb0-1432-11e1-8558-0b488e4fc115\'\n```\n\n### uuid.v4([`options` [, `buffer` [, `offset`]]])\n\nGenerate and return a RFC4122 v4 UUID.\n\n* `options` - (Object) Optional uuid state to apply. Properties may include:\n\n * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values\n * `rng` - (Function) Random # generator to use. Set to one of the built-in generators - `uuid.mathRNG` (all platforms), `uuid.nodeRNG` (node.js only), `uuid.whatwgRNG` (WebKit only) - or a custom function that returns an array[16] of byte values.\n\n* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.\n* `offset` - (Number) Starting index in `buffer` at which to begin writing.\n\nReturns `buffer`, if specified, otherwise the string form of the UUID\n\nExample: Generate string UUID with fully-specified options\n\n```javascript\nuuid.v4({\n random: [\n 0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea,\n 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36\n ]\n});\n// -> "109156be-c4fb-41ea-b1b4-efe1671c5836"\n```\n\nExample: Generate two IDs in a single buffer\n\n```javascript\nvar buffer = new Array(32); // (or \'new Buffer\' in node.js)\nuuid.v4(null, buffer, 0);\nuuid.v4(null, buffer, 16);\n```\n\n### uuid.parse(id[, buffer[, offset]])\n### uuid.unparse(buffer[, offset])\n\nParse and unparse UUIDs\n\n * `id` - (String) UUID(-like) string\n * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. Default: A new Array or Buffer is used\n * `offset` - (Number) Starting index in `buffer` at which to begin writing. Default: 0\n\nExample parsing and unparsing a UUID string\n\n```javascript\nvar bytes = uuid.parse(\'797ff043-11eb-11e1-80d6-510998755d10\'); // -> <Buffer 79 7f f0 43 11 eb 11 e1 80 d6 51 09 98 75 5d 10>\nvar string = uuid.unparse(bytes); // -> \'797ff043-11eb-11e1-80d6-510998755d10\'\n```\n\n### uuid.noConflict()\n\n(Browsers only) Set `uuid` property back to it\'s previous value.\n\nReturns the node-uuid object.\n\nExample:\n\n```javascript\nvar myUuid = uuid.noConflict();\nmyUuid.v1(); // -> \'6c84fb90-12c4-11e1-840d-7b25c5ee775a\'\n```\n\n## Deprecated APIs\n\nSupport for the following v1.2 APIs is available in v1.3, but is deprecated and will be removed in the next major version.\n\n### uuid([format [, buffer [, offset]]])\n\nuuid() has become uuid.v4(), and the `format` argument is now implicit in the `buffer` argument. (i.e. if you specify a buffer, the format is assumed to be binary).\n\n### uuid.BufferClass\n\nThe class of container created when generating binary uuid data if no buffer argument is specified. This is expected to go away, with no replacement API.\n\n## Testing\n\nIn node.js\n\n```\n> cd test\n> node test.js\n```\n\nIn Browser\n\n```\nopen test/test.html\n```\n\n### Benchmarking\n\nRequires node.js\n\n```\nnpm install uuid uuid-js\nnode benchmark/benchmark.js\n```\n\nFor a more complete discussion of node-uuid performance, please see the `benchmark/README.md` file, and the [benchmark wiki](https://github.com/broofa/node-uuid/wiki/Benchmark)\n\nFor browser performance [checkout the JSPerf tests](http://jsperf.com/node-uuid-performance).\n\n## Release notes\n\nv1.4\n* Improved module context detection\n* Removed public RNG functions\n\nv1.3.2:\n* Improve tests and handling of v1() options (Issue #24)\n* Expose RNG option to allow for perf testing with different generators\n\nv1.3:\n* Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)!\n* Support for node.js crypto API\n* De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code\n',
7608 silly resolved readmeFilename: 'README.md',
7608 silly resolved bugs: { url: 'https://github.com/broofa/node-uuid/issues' },
7608 silly resolved _id: 'node-uuid@1.4.0',
7608 silly resolved _from: 'node-uuid@~1.4.0' },
7608 silly resolved { author:
7608 silly resolved { name: 'Robert Kieffer',
7608 silly resolved email: 'robert@broofa.com',
7608 silly resolved url: 'http://github.com/broofa' },
7608 silly resolved contributors: [ [Object] ],
7608 silly resolved dependencies: {},
7608 silly resolved description: 'A comprehensive library for mime-type mapping',
7608 silly resolved devDependencies: {},
7608 silly resolved keywords: [ 'util', 'mime' ],
7608 silly resolved main: 'mime.js',
7608 silly resolved name: 'mime',
7608 silly resolved repository: { url: 'https://github.com/broofa/node-mime', type: 'git' },
7608 silly resolved version: '1.2.10',
7608 silly resolved readme: '# mime\n\nComprehensive MIME type mapping API. Includes all 600+ types and 800+ extensions defined by the Apache project, plus additional types submitted by the node.js community.\n\n## Install\n\nInstall with [npm](http://github.com/isaacs/npm):\n\n npm install mime\n\n## API - Queries\n\n### mime.lookup(path)\nGet the mime type associated with a file, if no mime type is found `application/octet-stream` is returned. Performs a case-insensitive lookup using the extension in `path` (the substring after the last \'/\' or \'.\'). E.g.\n\n var mime = require(\'mime\');\n\n mime.lookup(\'/path/to/file.txt\'); // => \'text/plain\'\n mime.lookup(\'file.txt\'); // => \'text/plain\'\n mime.lookup(\'.TXT\'); // => \'text/plain\'\n mime.lookup(\'htm\'); // => \'text/html\'\n\n### mime.default_type\nSets the mime type returned when `mime.lookup` fails to find the extension searched for. (Default is `application/octet-stream`.)\n\n### mime.extension(type)\nGet the default extension for `type`\n\n mime.extension(\'text/html\'); // => \'html\'\n mime.extension(\'application/octet-stream\'); // => \'bin\'\n\n### mime.charsets.lookup()\n\nMap mime-type to charset\n\n mime.charsets.lookup(\'text/plain\'); // => \'UTF-8\'\n\n(The logic for charset lookups is pretty rudimentary. Feel free to suggest improvements.)\n\n## API - Defining Custom Types\n\nThe following APIs allow you to add your own type mappings within your project. If you feel a type should be included as part of node-mime, see [requesting new types](https://github.com/broofa/node-mime/wiki/Requesting-New-Types).\n\n### mime.define()\n\nAdd custom mime/extension mappings\n\n mime.define({\n \'text/x-some-format\': [\'x-sf\', \'x-sft\', \'x-sfml\'],\n \'application/x-my-type\': [\'x-mt\', \'x-mtt\'],\n // etc ...\n });\n\n mime.lookup(\'x-sft\'); // => \'text/x-some-format\'\n\nThe first entry in the extensions array is returned by `mime.extension()`. E.g.\n\n mime.extension(\'text/x-some-format\'); // => \'x-sf\'\n\n### mime.load(filepath)\n\nLoad mappings from an Apache ".types" format file\n\n mime.load(\'./my_project.types\');\n\nThe .types file format is simple - See the `types` dir for examples.\n',
7608 silly resolved readmeFilename: 'README.md',
7608 silly resolved bugs: { url: 'https://github.com/broofa/node-mime/issues' },
7608 silly resolved _id: 'mime@1.2.10',
7608 silly resolved _from: 'mime@~1.2.9' },
7608 silly resolved { author:
7608 silly resolved { name: 'Felix Geisendörfer',
7608 silly resolved email: 'felix@debuggable.com',
7608 silly resolved url: 'http://debuggable.com/' },
7608 silly resolved name: 'form-data',
7608 silly resolved description: 'A module to create readable "multipart/form-data" streams. Can be used to submit forms and file uploads to other web applications.',
7608 silly resolved version: '0.1.0',
7608 silly resolved repository:
7608 silly resolved { type: 'git',
7608 silly resolved url: 'git://github.com/felixge/node-form-data.git' },
7608 silly resolved main: './lib/form_data',
7608 silly resolved scripts: { test: 'node test/run.js' },
7608 silly resolved engines: { node: '>= 0.6' },
7608 silly resolved dependencies: { 'combined-stream': '~0.0.4', mime: '~1.2.9', async: '~0.2.9' },
7608 silly resolved devDependencies:
7608 silly resolved { fake: '~0.2.2',
7608 silly resolved far: '~0.0.7',
7608 silly resolved formidable: '~1.0.14',
7608 silly resolved request: '~2.22.0' },
7608 silly resolved readme: '# Form-Data [![Build Status](https://travis-ci.org/felixge/node-form-data.png?branch=master)](https://travis-ci.org/felixge/node-form-data) [![Dependency Status](https://gemnasium.com/felixge/node-form-data.png)](https://gemnasium.com/felixge/node-form-data)\n\nA module to create readable ```"multipart/form-data"``` streams. Can be used to submit forms and file uploads to other web applications.\n\nThe API of this module is inspired by the [XMLHttpRequest-2 FormData Interface][xhr2-fd].\n\n[xhr2-fd]: http://dev.w3.org/2006/webapi/XMLHttpRequest-2/Overview.html#the-formdata-interface\n\n## Install\n\n```\nnpm install form-data\n```\n\n## Usage\n\nIn this example we are constructing a form with 3 fields that contain a string,\na buffer and a file stream.\n\n``` javascript\nvar FormData = require(\'form-data\');\nvar fs = require(\'fs\');\n\nvar form = new FormData();\nform.append(\'my_field\', \'my value\');\nform.append(\'my_buffer\', new Buffer(10));\nform.append(\'my_file\', fs.createReadStream(\'/foo/bar.jpg\'));\n```\n\nAlso you can use http-response stream:\n\n``` javascript\nvar FormData = require(\'form-data\');\nvar http = require(\'http\');\n\nvar form = new FormData();\n\nhttp.request(\'http://nodejs.org/images/logo.png\', function(response) {\n form.append(\'my_field\', \'my value\');\n form.append(\'my_buffer\', new Buffer(10));\n form.append(\'my_logo\', response);\n});\n```\n\nOr @mikeal\'s request stream:\n\n``` javascript\nvar FormData = require(\'form-data\');\nvar request = require(\'request\');\n\nvar form = new FormData();\n\nform.append(\'my_field\', \'my value\');\nform.append(\'my_buffer\', new Buffer(10));\nform.append(\'my_logo\', request(\'http://nodejs.org/images/logo.png\'));\n```\n\nIn order to submit this form to a web application, you can use node\'s http\nclient interface:\n\n``` javascript\nvar http = require(\'http\');\n\nvar request = http.request({\n method: \'post\',\n host: \'example.org\',\n path: \'/upload\',\n headers: form.getHeaders()\n});\n\nform.pipe(request);\n\nrequest.on(\'response\', function(res) {\n console.log(res.statusCode);\n});\n```\n\nOr if you would prefer the `\'Content-Length\'` header to be set for you:\n\n``` javascript\nform.submit(\'example.org/upload\', function(err, res) {\n console.log(res.statusCode);\n});\n```\n\nTo use custom headers and pre-known length in parts:\n\n``` javascript\nvar CRLF = \'\\r\\n\';\nvar form = new FormData();\n\nvar options = {\n header: CRLF + \'--\' + form.getBoundary() + CRLF + \'X-Custom-Header: 123\' + CRLF + CRLF,\n knownLength: 1\n};\n\nform.append(\'my_buffer\', buffer, options);\n\nform.submit(\'http://example.com/\', function(err, res) {\n if (err) throw err;\n console.log(\'Done\');\n});\n```\n\nForm-Data can recognize and fetch all the required information from common types of streams (fs.readStream, http.response and mikeal\'s request), for some other types of streams you\'d need to provide "file"-related information manually:\n\n``` javascript\nsomeModule.stream(function(err, stdout, stderr) {\n if (err) throw err;\n\n var form = new FormData();\n\n form.append(\'file\', stdout, {\n filename: \'unicycle.jpg\',\n contentType: \'image/jpg\',\n knownLength: 19806\n });\n\n form.submit(\'http://example.com/\', function(err, res) {\n if (err) throw err;\n console.log(\'Done\');\n });\n});\n```\n\nFor edge cases, like POST request to URL with query string or to pass HTTP auth credentials, object can be passed to `form.submit()` as first parameter:\n\n``` javascript\nform.submit({\n host: \'example.com\',\n path: \'/probably.php?extra=params\',\n auth: \'username:password\'\n}, function(err, res) {\n console.log(res.statusCode);\n});\n```\n\n## Notes\n\n- ```getLengthSync()``` method DOESN\'T calculate length for streams, use ```knownLength``` options as workaround.\n\n## TODO\n\n- Add new streams (0.10) support and try really hard not to break it for 0.8.x.\n\n## License\n\nForm-Data is licensed under the MIT license.\n',
7608 silly resolved readmeFilename: 'Readme.md',
7608 silly resolved bugs: { url: 'https://github.com/felixge/node-form-data/issues' },
7608 silly resolved _id: 'form-data@0.1.0',
7608 silly resolved _from: 'form-data@~0.1.0' },
7608 silly resolved { author: { name: 'Joyent, Inc' },
7608 silly resolved name: 'http-signature',
7608 silly resolved description: 'Reference implementation of Joyent\'s HTTP Signature Scheme',
7608 silly resolved version: '0.10.0',
7608 silly resolved repository:
7608 silly resolved { type: 'git',
7608 silly resolved url: 'git://github.com/joyent/node-http-signature.git' },
7608 silly resolved engines: { node: '>=0.8' },
7608 silly resolved main: 'lib/index.js',
7608 silly resolved scripts: { test: './node_modules/.bin/tap tst/*.js' },
7608 silly resolved dependencies: { 'assert-plus': '0.1.2', asn1: '0.1.11', ctype: '0.5.2' },
7608 silly resolved devDependencies: { 'node-uuid': '1.4.0', tap: '0.4.2' },
7608 silly resolved readme: '# node-http-signature\n\nnode-http-signature is a node.js library that has client and server components\nfor Joyent\'s [HTTP Signature Scheme](http_signing.md).\n\n## Usage\n\nNote the example below signs a request with the same key/cert used to start an\nHTTP server. This is almost certainly not what you actaully want, but is just\nused to illustrate the API calls; you will need to provide your own key\nmanagement in addition to this library.\n\n### Client\n\n var fs = require(\'fs\');\n var https = require(\'https\');\n var httpSignature = require(\'http-signature\');\n\n var key = fs.readFileSync(\'./key.pem\', \'ascii\');\n\n var options = {\n host: \'localhost\',\n port: 8443,\n path: \'/\',\n method: \'GET\',\n headers: {}\n };\n\n // Adds a \'Date\' header in, signs it, and adds the\n // \'Authorization\' header in.\n var req = https.request(options, function(res) {\n console.log(res.statusCode);\n });\n\n\n httpSignature.sign(req, {\n key: key,\n keyId: \'./cert.pem\'\n });\n\n req.end();\n\n### Server\n\n var fs = require(\'fs\');\n var https = require(\'https\');\n var httpSignature = require(\'http-signature\');\n\n var options = {\n key: fs.readFileSync(\'./key.pem\'),\n cert: fs.readFileSync(\'./cert.pem\')\n };\n\n https.createServer(options, function (req, res) {\n var rc = 200;\n var parsed = httpSignature.parseRequest(req);\n var pub = fs.readFileSync(parsed.keyId, \'ascii\');\n if (!httpSignature.verifySignature(parsed, pub))\n rc = 401;\n\n res.writeHead(rc);\n res.end();\n }).listen(8443);\n\n## Installation\n\n npm install http-signature\n\n## License\n\nMIT.\n\n## Bugs\n\nSee <https://github.com/joyent/node-http-signature/issues>.\n',
7608 silly resolved readmeFilename: 'README.md',
7608 silly resolved bugs: { url: 'https://github.com/joyent/node-http-signature/issues' },
7608 silly resolved _id: 'http-signature@0.10.0',
7608 silly resolved _from: 'http-signature@~0.10.0' },
7608 silly resolved { name: 'hawk',
7608 silly resolved description: 'HTTP Hawk Authentication Scheme',
7608 silly resolved version: '1.0.0',
7608 silly resolved author:
7608 silly resolved { name: 'Eran Hammer',
7608 silly resolved email: 'eran@hueniverse.com',
7608 silly resolved url: 'http://hueniverse.com' },
7608 silly resolved contributors: [],
7608 silly resolved repository: { type: 'git', url: 'git://github.com/hueniverse/hawk' },
7608 silly resolved main: 'index',
7608 silly resolved keywords: [ 'http', 'authentication', 'scheme', 'hawk' ],
7608 silly resolved engines: { node: '>=0.8.0' },
7608 silly resolved dependencies:
7608 silly resolved { hoek: '0.9.x',
7608 silly resolved boom: '0.4.x',
7608 silly resolved cryptiles: '0.2.x',
7608 silly resolved sntp: '0.2.x' },
7608 silly resolved devDependencies:
7608 silly resolved { lab: '0.1.x',
7608 silly resolved 'complexity-report': '0.x.x',
7608 silly resolved localStorage: '1.0.x' },
7608 silly resolved scripts: { test: 'make test-cov' },
7608 silly resolved licenses: [ [Object] ],
7608 silly resolved readme: '![hawk Logo](https://raw.github.com/hueniverse/hawk/master/images/hawk.png)\n\n<img align="right" src="https://raw.github.com/hueniverse/hawk/master/images/logo.png" /> **Hawk** is an HTTP authentication scheme using a message authentication code (MAC) algorithm to provide partial\nHTTP request cryptographic verification. For more complex use cases such as access delegation, see [Oz](https://github.com/hueniverse/oz).\n\nCurrent version: **1.0**\n\n[![Build Status](https://secure.travis-ci.org/hueniverse/hawk.png)](http://travis-ci.org/hueniverse/hawk)\n\n# Table of Content\n\n- [**Introduction**](#introduction)\n - [Replay Protection](#replay-protection)\n - [Usage Example](#usage-example)\n - [Protocol Example](#protocol-example)\n - [Payload Validation](#payload-validation)\n - [Response Payload Validation](#response-payload-validation)\n - [Browser Support and Considerations](#browser-support-and-considerations)\n<p></p>\n- [**Single URI Authorization**](#single-uri-authorization)\n - [Usage Example](#bewit-usage-example)\n<p></p>\n- [**Security Considerations**](#security-considerations)\n - [MAC Keys Transmission](#mac-keys-transmission)\n - [Confidentiality of Requests](#confidentiality-of-requests)\n - [Spoofing by Counterfeit Servers](#spoofing-by-counterfeit-servers)\n - [Plaintext Storage of Credentials](#plaintext-storage-of-credentials)\n - [Entropy of Keys](#entropy-of-keys)\n - [Coverage Limitations](#coverage-limitations)\n - [Future Time Manipulation](#future-time-manipulation)\n - [Client Clock Poisoning](#client-clock-poisoning)\n - [Bewit Limitations](#bewit-limitations)\n - [Host Header Forgery](#host-header-forgery)\n<p></p>\n- [**Frequently Asked Questions**](#frequently-asked-questions)\n<p></p>\n- [**Acknowledgements**](#acknowledgements)\n\n# Introduction\n\n**Hawk** is an HTTP authentication scheme providing mechanisms for making authenticated HTTP requests with\npartial cryptographic verification of the request and response, covering the HTTP method, request URI, host,\nand optionally the request payload.\n\nSimilar to the HTTP [Digest access authentication schemes](http://www.ietf.org/rfc/rfc2617.txt), **Hawk** uses a set of\nclient credentials which include an identifier (e.g. username) and key (e.g. password). Likewise, just as with the Digest scheme,\nthe key is never included in authenticated requests. Instead, it is used to calculate a request MAC value which is\nincluded in its place.\n\nHowever, **Hawk** has several differences from Digest. In particular, while both use a nonce to limit the possibility of\nreplay attacks, in **Hawk** the client generates the nonce and uses it in combination with a timestamp, leading to less\n"chattiness" (interaction with the server).\n\nAlso unlike Digest, this scheme is not intended to protect the key itself (the password in Digest) because\nthe client and server must both have access to the key material in the clear.\n\nThe primary design goals of this scheme are to:\n* simplify and improve HTTP authentication for services that are unwilling or unable to deploy TLS for all resources,\n* secure credentials against leakage (e.g., when the client uses some form of dynamic configuration to determine where\n to send an authenticated request), and\n* avoid the exposure of credentials sent to a malicious server over an unauthenticated secure channel due to client\n failure to validate the server\'s identity as part of its TLS handshake.\n\nIn addition, **Hawk** supports a method for granting third-parties temporary access to individual resources using\na query parameter called _bewit_ (in falconry, a leather strap used to attach a tracking device to the leg of a hawk).\n\nThe **Hawk** scheme requires the establishment of a shared symmetric key between the client and the server,\nwhich is beyond the scope of this module. Typically, the shared credentials are established via an initial\nTLS-protected phase or derived from some other shared confidential information available to both the client\nand the server.\n\n\n## Replay Protection\n\nWithout replay protection, an attacker can use a compromised (but otherwise valid and authenticated) request more \nthan once, gaining access to a protected resource. To mitigate this, clients include both a nonce and a timestamp when \nmaking requests. This gives the server enough information to prevent replay attacks.\n\nThe nonce is generated by the client, and is a string unique across all requests with the same timestamp and\nkey identifier combination. \n\nThe timestamp enables the server to restrict the validity period of the credentials where requests occuring afterwards\nare rejected. It also removes the need for the server to retain an unbounded number of nonce values for future checks.\nBy default, **Hawk** uses a time window of 1 minute to allow for time skew between the client and server (which in\npractice translates to a maximum of 2 minutes as the skew can be positive or negative).\n\nUsing a timestamp requires the client\'s clock to be in sync with the server\'s clock. **Hawk** requires both the client\nclock and the server clock to use NTP to ensure synchronization. However, given the limitations of some client types\n(e.g. browsers) to deploy NTP, the server provides the client with its current time (in seconds precision) in response\nto a bad timestamp.\n\nThere is no expectation that the client will adjust its system clock to match the server (in fact, this would be a\npotential attack vector). Instead, the client only uses the server\'s time to calculate an offset used only\nfor communications with that particular server. The protocol rewards clients with synchronized clocks by reducing\nthe number of round trips required to authenticate the first request.\n\n\n## Usage Example\n\nServer code:\n\n```javascript\nvar Http = require(\'http\');\nvar Hawk = require(\'hawk\');\n\n\n// Credentials lookup function\n\nvar credentialsFunc = function (id, callback) {\n\n var credentials = {\n key: \'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn\',\n algorithm: \'sha256\',\n user: \'Steve\'\n };\n\n return callback(null, credentials);\n};\n\n// Create HTTP server\n\nvar handler = function (req, res) {\n\n // Authenticate incoming request\n\n Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials, artifacts) {\n\n // Prepare response\n\n var payload = (!err ? \'Hello \' + credentials.user + \' \' + artifacts.ext : \'Shoosh!\');\n var headers = { \'Content-Type\': \'text/plain\' };\n\n // Generate Server-Authorization response header\n\n var header = Hawk.server.header(credentials, artifacts, { payload: payload, contentType: headers[\'Content-Type\'] });\n headers[\'Server-Authorization\'] = header;\n\n // Send the response back\n\n res.writeHead(!err ? 200 : 401, headers);\n res.end(payload);\n });\n};\n\n// Start server\n\nHttp.createServer(handler).listen(8000, \'example.com\');\n```\n\nClient code:\n\n```javascript\nvar Request = require(\'request\');\nvar Hawk = require(\'hawk\');\n\n\n// Client credentials\n\nvar credentials = {\n id: \'dh37fgj492je\',\n key: \'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn\',\n algorithm: \'sha256\'\n}\n\n// Request options\n\nvar requestOptions = {\n uri: \'http://example.com:8000/resource/1?b=1&a=2\',\n method: \'GET\',\n headers: {}\n};\n\n// Generate Authorization request header\n\nvar header = Hawk.client.header(\'http://example.com:8000/resource/1?b=1&a=2\', \'GET\', { credentials: credentials, ext: \'some-app-data\' });\nrequestOptions.headers.Authorization = header.field;\n\n// Send authenticated request\n\nRequest(requestOptions, function (error, response, body) {\n\n // Authenticate the server\'s response\n\n var isValid = Hawk.client.authenticate(response, credentials, header.artifacts, { payload: body });\n\n // Output results\n\n console.log(response.statusCode + \': \' + body + (isValid ? \' (valid)\' : \' (invalid)\'));\n});\n```\n\n**Hawk** utilized the [**SNTP**](https://github.com/hueniverse/sntp) module for time sync management. By default, the local\nmachine time is used. To automatically retrieve and synchronice the clock within the application, use the SNTP \'start()\' method.\n\n```javascript\nHawk.sntp.start();\n```\n\n\n## Protocol Example\n\nThe client attempts to access a protected resource without authentication, sending the following HTTP request to\nthe resource server:\n\n```\nGET /resource/1?b=1&a=2 HTTP/1.1\nHost: example.com:8000\n```\n\nThe resource server returns an authentication challenge.\n\n```\nHTTP/1.1 401 Unauthorized\nWWW-Authenticate: Hawk\n```\n\nThe client has previously obtained a set of **Hawk** credentials for accessing resources on the "http://example.com/"\nserver. The **Hawk** credentials issued to the client include the following attributes:\n\n* Key identifier: dh37fgj492je\n* Key: werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn\n* Algorithm: sha256\n\nThe client generates the authentication header by calculating a timestamp (e.g. the number of seconds since January 1,\n1970 00:00:00 GMT), generating a nonce, and constructing the normalized request string (each value followed by a newline\ncharacter):\n\n```\nhawk.1.header\n1353832234\nj4h3g2\nGET\n/resource/1?b=1&a=2\nexample.com\n8000\n\nsome-app-ext-data\n\n```\n\nThe request MAC is calculated using HMAC with the specified hash algorithm "sha256" and the key over the normalized request string.\nThe result is base64-encoded to produce the request MAC:\n\n```\n6R4rV5iE+NPoym+WwjeHzjAGXUtLNIxmo1vpMofpLAE=\n```\n\nThe client includes the **Hawk** key identifier, timestamp, nonce, application specific data, and request MAC with the request using\nthe HTTP `Authorization` request header field:\n\n```\nGET /resource/1?b=1&a=2 HTTP/1.1\nHost: example.com:8000\nAuthorization: Hawk id="dh37fgj492je", ts="1353832234", nonce="j4h3g2", ext="some-app-ext-data", mac="6R4rV5iE+NPoym+WwjeHzjAGXUtLNIxmo1vpMofpLAE="\n```\n\nThe server validates the request by calculating the request MAC again based on the request received and verifies the validity\nand scope of the **Hawk** credentials. If valid, the server responds with the requested resource.\n\n\n### Payload Validation\n\n**Hawk** provides optional payload validation. When generating the authentication header, the client calculates a payload hash\nusing the specified hash algorithm. The hash is calculated over the concatenated value of (each followed by a newline character):\n* `hawk.1.payload`\n* the content-type in lowercase, without any parameters (e.g. `application/json`)\n* the request payload prior to any content encoding (the exact representation requirements should be specified by the server for payloads other than simple single-part ascii to ensure interoperability)\n\nFor example:\n\n* Payload: `Thank you for flying Hawk`\n* Content Type: `text/plain`\n* Hash (sha256): `Yi9LfIIFRtBEPt74PVmbTF/xVAwPn7ub15ePICfgnuY=`\n\nResults in the following input to the payload hash function (newline terminated values):\n\n```\nhawk.1.payload\ntext/plain\nThank you for flying Hawk\n\n```\n\nWhich produces the following hash value:\n\n```\nYi9LfIIFRtBEPt74PVmbTF/xVAwPn7ub15ePICfgnuY=\n```\n\nThe client constructs the normalized request string (newline terminated values):\n\n```\nhawk.1.header\n1353832234\nj4h3g2\nPOST\n/resource/1?a=1&b=2\nexample.com\n8000\nYi9LfIIFRtBEPt74PVmbTF/xVAwPn7ub15ePICfgnuY=\nsome-app-ext-data\n\n```\n\nThen calculates the request MAC and includes the **Hawk** key identifier, timestamp, nonce, payload hash, application specific data,\nand request MAC, with the request using the HTTP `Authorization` request header field:\n\n```\nPOST /resource/1?a=1&b=2 HTTP/1.1\nHost: example.com:8000\nAuthorization: Hawk id="dh37fgj492je", ts="1353832234", nonce="j4h3g2", hash="Yi9LfIIFRtBEPt74PVmbTF/xVAwPn7ub15ePICfgnuY=", ext="some-app-ext-data", mac="aSe1DERmZuRl3pI36/9BdZmnErTw3sNzOOAUlfeKjVw="\n```\n\nIt is up to the server if and when it validates the payload for any given request, based solely on it\'s security policy\nand the nature of the data included.\n\nIf the payload is available at the time of authentication, the server uses the hash value provided by the client to construct\nthe normalized string and validates the MAC. If the MAC is valid, the server calculates the payload hash and compares the value\nwith the provided payload hash in the header. In many cases, checking the MAC first is faster than calculating the payload hash.\n\nHowever, if the payload is not available at authentication time (e.g. too large to fit in memory, streamed elsewhere, or processed\nat a different stage in the application), the server may choose to defer payload validation for later by retaining the hash value\nprovided by the client after validating the MAC.\n\nIt is important to note that MAC validation does not mean the hash value provided by the client is valid, only that the value\nincluded in the header was not modified. Without calculating the payload hash on the server and comparing it to the value provided\nby the client, the payload may be modified by an attacker.\n\n\n## Response Payload Validation\n\n**Hawk** provides partial response payload validation. The server includes the `Server-Authorization` response header which enables the\nclient to authenticate the response and ensure it is talking to the right server. **Hawk** defines the HTTP `Server-Authorization` header\nas a response header using the exact same syntax as the `Authorization` request header field.\n\nThe header is contructed using the same process as the client\'s request header. The server uses the same credentials and other\nartifacts provided by the client to constructs the normalized request string. The `ext` and `hash` values are replaced with\nnew values based on the server response. The rest as identical to those used by the client.\n\nThe result MAC digest is included with the optional `hash` and `ext` values:\n\n```\nServer-Authorization: Hawk mac="XIJRsMl/4oL+nn+vKoeVZPdCHXB4yJkNnBbTbHFZUYE=", hash="f9cDF/TDm7TkYRLnGwRMfeDzT6LixQVLvrIKhh0vgmM=", ext="response-specific"\n```\n\n\n## Browser Support and Considerations\n\nA browser script is provided for including using a `<script>` tag in [lib/browser.js](/lib/browser.js).\n\n**Hawk** relies on the _Server-Authorization_ and _WWW-Authenticate_ headers in its response to communicate with the client.\nTherefore, in case of CORS requests, it is important to consider sending _Access-Control-Expose-Headers_ with the value\n_"WWW-Authenticate, Server-Authorization"_ on each response from your server. As explained in the\n[specifications](http://www.w3.org/TR/cors/#access-control-expose-headers-response-header), it will indicate that these headers\ncan safely be accessed by the client (using getResponseHeader() on the XmlHttpRequest object). Otherwise you will be met with a\n["simple response header"](http://www.w3.org/TR/cors/#simple-response-header) which excludes these fields and would prevent the\nHawk client from authenticating the requests.You can read more about the why and how in this\n[article](http://www.html5rocks.com/en/tutorials/cors/#toc-adding-cors-support-to-the-server)\n\n\n# Single URI Authorization\n\nThere are cases in which limited and short-term access to a protected resource is granted to a third party which does not\nhave access to the shared credentials. For example, displaying a protected image on a web page accessed by anyone. **Hawk**\nprovides limited support for such URIs in the form of a _bewit_ - a URI query parameter appended to the request URI which contains\nthe necessary credentials to authenticate the request.\n\nBecause of the significant security risks involved in issuing such access, bewit usage is purposely limited only to GET requests\nand for a finite period of time. Both the client and server can issue bewit credentials, however, the server should not use the same\ncredentials as the client to maintain clear traceability as to who issued which credentials.\n\nIn order to simplify implementation, bewit credentials do not support single-use policy and can be replayed multiple times within\nthe granted access timeframe. \n\n\n## Bewit Usage Example\n\nServer code:\n\n```javascript\nvar Http = require(\'http\');\nvar Hawk = require(\'hawk\');\n\n\n// Credentials lookup function\n\nvar credentialsFunc = function (id, callback) {\n\n var credentials = {\n key: \'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn\',\n algorithm: \'sha256\'\n };\n\n return callback(null, credentials);\n};\n\n// Create HTTP server\n\nvar handler = function (req, res) {\n\n Hawk.uri.authenticate(req, credentialsFunc, {}, function (err, credentials, attributes) {\n\n res.writeHead(!err ? 200 : 401, { \'Content-Type\': \'text/plain\' });\n res.end(!err ? \'Access granted\' : \'Shoosh!\');\n });\n};\n\nHttp.createServer(handler).listen(8000, \'example.com\');\n```\n\nBewit code generation:\n\n```javascript\nvar Request = require(\'request\');\nvar Hawk = require(\'hawk\');\n\n\n// Client credentials\n\nvar credentials = {\n id: \'dh37fgj492je\',\n key: \'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn\',\n algorithm: \'sha256\'\n}\n\n// Generate bewit\n\nvar duration = 60 * 5; // 5 Minutes\nvar bewit = Hawk.uri.getBewit(\'http://example.com:8080/resource/1?b=1&a=2\', { credentials: credentials, ttlSec: duration, ext: \'some-app-data\' });\nvar uri = \'http://example.com:8000/resource/1?b=1&a=2\' + \'&bewit=\' + bewit;\n```\n\n\n# Security Considerations\n\nThe greatest sources of security risks are usually found not in **Hawk** but in the policies and procedures surrounding its use.\nImplementers are strongly encouraged to assess how this module addresses their security requirements. This section includes\nan incomplete list of security considerations that must be reviewed and understood before deploying **Hawk** on the server.\nMany of the protections provided in **Hawk** depends on whether and how they are used.\n\n### MAC Keys Transmission\n\n**Hawk** does not provide any mechanism for obtaining or transmitting the set of shared credentials required. Any mechanism used\nto obtain **Hawk** credentials must ensure that these transmissions are protected using transport-layer mechanisms such as TLS.\n\n### Confidentiality of Requests\n\nWhile **Hawk** provides a mechanism for verifying the integrity of HTTP requests, it provides no guarantee of request\nconfidentiality. Unless other precautions are taken, eavesdroppers will have full access to the request content. Servers should\ncarefully consider the types of data likely to be sent as part of such requests, and employ transport-layer security mechanisms\nto protect sensitive resources.\n\n### Spoofing by Counterfeit Servers\n\n**Hawk** provides limited verification of the server authenticity. When receiving a response back from the server, the server\nmay choose to include a response `Server-Authorization` header which the client can use to verify the response. However, it is up to\nthe server to determine when such measure is included, to up to the client to enforce that policy.\n\nA hostile party could take advantage of this by intercepting the client\'s requests and returning misleading or otherwise\nincorrect responses. Service providers should consider such attacks when developing services using this protocol, and should\nrequire transport-layer security for any requests where the authenticity of the resource server or of server responses is an issue.\n\n### Plaintext Storage of Credentials\n\nThe **Hawk** key functions the same way passwords do in traditional authentication systems. In order to compute the request MAC,\nthe server must have access to the key in plaintext form. This is in contrast, for example, to modern operating systems, which\nstore only a one-way hash of user credentials.\n\nIf an attacker were to gain access to these keys - or worse, to the server\'s database of all such keys - he or she would be able\nto perform any action on behalf of any resource owner. Accordingly, it is critical that servers protect these keys from unauthorized\naccess.\n\n### Entropy of Keys\n\nUnless a transport-layer security protocol is used, eavesdroppers will have full access to authenticated requests and request\nMAC values, and will thus be able to mount offline brute-force attacks to recover the key used. Servers should be careful to\nassign keys which are long enough, and random enough, to resist such attacks for at least the length of time that the **Hawk**\ncredentials are valid.\n\nFor example, if the credentials are valid for two weeks, servers should ensure that it is not possible to mount a brute force\nattack that recovers the key in less than two weeks. Of course, servers are urged to err on the side of caution, and use the\nlongest key reasonable.\n\nIt is equally important that the pseudo-random number generator (PRNG) used to generate these keys be of sufficiently high\nquality. Many PRNG implementations generate number sequences that may appear to be random, but which nevertheless exhibit\npatterns or other weaknesses which make cryptanalysis or brute force attacks easier. Implementers should be careful to use\ncryptographically secure PRNGs to avoid these problems.\n\n### Coverage Limitations\n\nThe request MAC only covers the HTTP `Host` header and optionally the `Content-Type` header. It does not cover any other headers\nwhich can often affect how the request body is interpreted by the server. If the server behavior is influenced by the presence\nor value of such headers, an attacker can manipulate the request headers without being detected. Implementers should use the\n`ext` feature to pass application-specific information via the `Authorization` header which is protected by the request MAC.\n\nThe response authentication, when performed, only covers the response payload, content-type, and the request information \nprovided by the client in it\'s request (method, resource, timestamp, nonce, etc.). It does not cover the HTTP status code or\nany other response header field (e.g. Location) which can affect the client\'s behaviour.\n\n### Future Time Manipulation\n\nThe protocol relies on a clock sync between the client and server. To accomplish this, the server informs the client of its\ncurrent time when an invalid timestamp is received.\n\nIf an attacker is able to manipulate this information and cause the client to use an incorrect time, it would be able to cause\nthe client to generate authenticated requests using time in the future. Such requests will fail when sent by the client, and will\nnot likely leave a trace on the server (given the common implementation of nonce, if at all enforced). The attacker will then\nbe able to replay the request at the correct time without detection.\n\nThe client must only use the time information provided by the server if:\n* it was delivered over a TLS connection and the server identity has been verified, or\n* the `tsm` MAC digest calculated using the same client credentials over the timestamp has been verified.\n\n### Client Clock Poisoning\n\nWhen receiving a request with a bad timestamp, the server provides the client with its current time. The client must never use\nthe time received from the server to adjust its own clock, and must only use it to calculate an offset for communicating with\nthat particular server.\n\n### Bewit Limitations\n\nSpecial care must be taken when issuing bewit credentials to third parties. Bewit credentials are valid until expiration and cannot\nbe revoked or limited without using other means. Whatever resource they grant access to will be completely exposed to anyone with\naccess to the bewit credentials which act as bearer credentials for that particular resource. While bewit usage is limited to GET\nrequests only and therefore cannot be used to perform transactions or change server state, it can still be used to expose private\nand sensitive information.\n\n### Host Header Forgery\n\nHawk validates the incoming request MAC against the incoming HTTP Host header. However, unless the optional `host` and `port`\noptions are used with `server.authenticate()`, a malicous client can mint new host names pointing to the server\'s IP address and\nuse that to craft an attack by sending a valid request that\'s meant for another hostname than the one used by the server. Server\nimplementors must manually verify that the host header received matches their expectation (or use the options mentioned above).\n\n# Frequently Asked Questions\n\n### Where is the protocol specification?\n\nIf you are looking for some prose explaining how all this works, **this is it**. **Hawk** is being developed as an open source\nproject instead of a standard. In other words, the [code](/hueniverse/hawk/tree/master/lib) is the specification. Not sure about\nsomething? Open an issue!\n\n### Is it done?\n\nAt if version 0.10.0, **Hawk** is feature-complete. However, until this module reaches version 1.0.0 it is considered experimental\nand is likely to change. This also means your feedback and contribution are very welcome. Feel free to open issues with questions\nand suggestions.\n\n### Where can I find **Hawk** implementations in other languages?\n\n**Hawk**\'s only reference implementation is provided in JavaScript as a node.js module. However, others are actively porting it to other\nplatforms. There is already a [PHP](https://github.com/alexbilbie/PHP-Hawk),\n[.NET](https://github.com/pcibraro/hawknet), and [JAVA](https://github.com/wealdtech/hawk) libraries available. The full list\nis maintained [here](https://github.com/hueniverse/hawk/issues?labels=port). Please add an issue if you are working on another\nport. A cross-platform test-suite is in the works.\n\n### Why isn\'t the algorithm part of the challenge or dynamically negotiated?\n\nThe algorithm used is closely related to the key issued as different algorithms require different key sizes (and other\nrequirements). While some keys can be used for multiple algorithm, the protocol is designed to closely bind the key and algorithm\ntogether as part of the issued credentials.\n\n### Why is Host and Content-Type the only headers covered by the request MAC?\n\nIt is really hard to include other headers. Headers can be changed by proxies and other intermediaries and there is no\nwell-established way to normalize them. Many platforms change the case of header field names and values. The only\nstraight-forward solution is to include the headers in some blob (say, base64 encoded JSON) and include that with the request,\nan approach taken by JWT and other such formats. However, that design violates the HTTP header boundaries, repeats information,\nand introduces other security issues because firewalls will not be aware of these "hidden" headers. In addition, any information\nrepeated must be compared to the duplicated information in the header and therefore only moves the problem elsewhere.\n\n### Why not just use HTTP Digest?\n\nDigest requires pre-negotiation to establish a nonce. This means you can\'t just make a request - you must first send\na protocol handshake to the server. This pattern has become unacceptable for most web services, especially mobile\nwhere extra round-trip are costly.\n\n### Why bother with all this nonce and timestamp business?\n\n**Hawk** is an attempt to find a reasonable, practical compromise between security and usability. OAuth 1.0 got timestamp\nand nonces halfway right but failed when it came to scalability and consistent developer experience. **Hawk** addresses\nit by requiring the client to sync its clock, but provides it with tools to accomplish it.\n\nIn general, replay protection is a matter of application-specific threat model. It is less of an issue on a TLS-protected\nsystem where the clients are implemented using best practices and are under the control of the server. Instead of dropping\nreplay protection, **Hawk** offers a required time window and an optional nonce verification. Together, it provides developers\nwith the ability to decide how to enforce their security policy without impacting the client\'s implementation.\n\n### What are `app` and `dlg` in the authorization header and normalized mac string?\n\nThe original motivation for **Hawk** was to replace the OAuth 1.0 use cases. This included both a simple client-server mode which\nthis module is specifically designed for, and a delegated access mode which is being developed separately in\n[Oz](https://github.com/hueniverse/oz). In addition to the **Hawk** use cases, Oz requires another attribute: the application id `app`.\nThis provides binding between the credentials and the application in a way that prevents an attacker from tricking an application\nto use credentials issued to someone else. It also has an optional \'delegated-by\' attribute `dlg` which is the application id of the\napplication the credentials were directly issued to. The goal of these two additions is to allow Oz to utilize **Hawk** directly,\nbut with the additional security of delegated credentials.\n\n### What is the purpose of the static strings used in each normalized MAC input?\n\nWhen calculating a hash or MAC, a static prefix (tag) is added. The prefix is used to prevent MAC values from being\nused or reused for a purpose other than what they were created for (i.e. prevents switching MAC values between a request,\nresponse, and a bewit use cases). It also protects against expliots created after a potential change in how the protocol\ncreates the normalized string. For example, if a future version would switch the order of nonce and timestamp, it\ncan create an exploit opportunity for cases where the nonce is similar in format to a timestamp.\n\n### Does **Hawk** have anything to do with OAuth?\n\nShort answer: no.\n\n**Hawk** was originally proposed as the OAuth MAC Token specification. However, the OAuth working group in its consistent\nincompetence failed to produce a final, usable solution to address one of the most popular use cases of OAuth 1.0 - using it\nto authenticate simple client-server transactions (i.e. two-legged). As you can guess, the OAuth working group is still hard\nat work to produce more garbage.\n\n**Hawk** provides a simple HTTP authentication scheme for making client-server requests. It does not address the OAuth use case\nof delegating access to a third party. If you are looking for an OAuth alternative, check out [Oz](https://github.com/hueniverse/oz).\n\n\n# Acknowledgements\n\n**Hawk** is a derivative work of the [HTTP MAC Authentication Scheme](http://tools.ietf.org/html/draft-hammer-oauth-v2-mac-token-05) proposal\nco-authored by Ben Adida, Adam Barth, and Eran Hammer, which in turn was based on the OAuth 1.0 community specification.\n\nSpecial thanks to Ben Laurie for his always insightful feedback and advice.\n\nThe **Hawk** logo was created by [Chris Carrasco](http://chriscarrasco.com).\n',
7608 silly resolved readmeFilename: 'README.md',
7608 silly resolved bugs: { url: 'https://github.com/hueniverse/hawk/issues' },
7608 silly resolved _id: 'hawk@1.0.0',
7608 silly resolved _from: 'hawk@~1.0.0' },
7608 silly resolved { name: 'qs',
7608 silly resolved description: 'querystring parser',
7608 silly resolved version: '0.6.5',
7608 silly resolved keywords: [ 'query string', 'parser', 'component' ],
7608 silly resolved repository:
7608 silly resolved { type: 'git',
7608 silly resolved url: 'git://github.com/visionmedia/node-querystring.git' },
7608 silly resolved devDependencies: { mocha: '*', 'expect.js': '*' },
7608 silly resolved scripts: { test: 'make test' },
7608 silly resolved author:
7608 silly resolved { name: 'TJ Holowaychuk',
7608 silly resolved email: 'tj@vision-media.ca',
7608 silly resolved url: 'http://tjholowaychuk.com' },
7608 silly resolved main: 'index',
7608 silly resolved engines: { node: '*' },
7608 silly resolved readme: '# node-querystring\n\n query string parser for node and the browser supporting nesting, as it was removed from `0.3.x`, so this library provides the previous and commonly desired behaviour (and twice as fast). Used by [express](http://expressjs.com), [connect](http://senchalabs.github.com/connect) and others.\n\n## Installation\n\n $ npm install qs\n\n## Examples\n\n```js\nvar qs = require(\'qs\');\n\nqs.parse(\'user[name][first]=Tobi&user[email]=tobi@learnboost.com\');\n// => { user: { name: { first: \'Tobi\' }, email: \'tobi@learnboost.com\' } }\n\nqs.stringify({ user: { name: \'Tobi\', email: \'tobi@learnboost.com\' }})\n// => user[name]=Tobi&user[email]=tobi%40learnboost.com\n```\n\n## Testing\n\nInstall dev dependencies:\n\n $ npm install -d\n\nand execute:\n\n $ make test\n\nbrowser:\n\n $ open test/browser/index.html\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2010 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.',
7608 silly resolved readmeFilename: 'Readme.md',
7608 silly resolved bugs: { url: 'https://github.com/visionmedia/node-querystring/issues' },
7608 silly resolved _id: 'qs@0.6.5',
7608 silly resolved _from: 'qs@~0.6.0' },
7608 silly resolved { name: 'json-stringify-safe',
7608 silly resolved version: '5.0.0',
7608 silly resolved description: 'Like JSON.stringify, but doesn\'t blow up on circular refs',
7608 silly resolved main: 'stringify.js',
7608 silly resolved scripts: { test: 'node test.js' },
7608 silly resolved repository:
7608 silly resolved { type: 'git',
7608 silly resolved url: 'git://github.com/isaacs/json-stringify-safe' },
7608 silly resolved keywords: [ 'json', 'stringify', 'circular', 'safe' ],
7608 silly resolved author:
7608 silly resolved { name: 'Isaac Z. Schlueter',
7608 silly resolved email: 'i@izs.me',
7608 silly resolved url: 'http://blog.izs.me' },
7608 silly resolved license: 'BSD',
7608 silly resolved readmeFilename: 'README.md',
7608 silly resolved readme: '# json-stringify-safe\n\nLike JSON.stringify, but doesn\'t throw on circular references.\n\n## Usage\n\nTakes the same arguments as `JSON.stringify`.\n\n```javascript\nvar stringify = require(\'json-stringify-safe\');\nvar circularObj = {};\ncircularObj.circularRef = circularObj;\ncircularObj.list = [ circularObj, circularObj ];\nconsole.log(stringify(circularObj, null, 2));\n```\n\nOutput:\n\n```json\n{\n "circularRef": "[Circular]",\n "list": [\n "[Circular]",\n "[Circular]"\n ]\n}\n```\n\n## Details\n\n```\nstringify(obj, serializer, indent, decycler)\n```\n\nThe first three arguments are the same as to JSON.stringify. The last\nis an argument that\'s only used when the object has been seen already.\n\nThe default `decycler` function returns the string `\'[Circular]\'`.\nIf, for example, you pass in `function(k,v){}` (return nothing) then it\nwill prune cycles. If you pass in `function(k,v){ return {foo: \'bar\'}}`,\nthen cyclical objects will always be represented as `{"foo":"bar"}` in\nthe result.\n\n```\nstringify.getSerialize(serializer, decycler)\n```\n\nReturns a serializer that can be used elsewhere. This is the actual\nfunction that\'s passed to JSON.stringify.\n',
7608 silly resolved bugs: { url: 'https://github.com/isaacs/json-stringify-safe/issues' },
7608 silly resolved _id: 'json-stringify-safe@5.0.0',
7608 silly resolved _from: 'json-stringify-safe@~5.0.0' },
7608 silly resolved { author:
7608 silly resolved { name: 'Mikeal Rogers',
7608 silly resolved email: 'mikeal.rogers@gmail.com',
7608 silly resolved url: 'http://www.futurealoof.com' },
7608 silly resolved name: 'forever-agent',
7608 silly resolved description: 'HTTP Agent that keeps socket connections alive between keep-alive requests. Formerly part of mikeal/request, now a standalone module.',
7608 silly resolved version: '0.5.0',
7608 silly resolved repository: { url: 'https://github.com/mikeal/forever-agent' },
7608 silly resolved main: 'index.js',
7608 silly resolved dependencies: {},
7608 silly resolved devDependencies: {},
7608 silly resolved optionalDependencies: {},
7608 silly resolved engines: { node: '*' },
7608 silly resolved readme: 'forever-agent\n=============\n\nHTTP Agent that keeps socket connections alive between keep-alive requests. Formerly part of mikeal/request, now a standalone module.\n',
7608 silly resolved readmeFilename: 'README.md',
7608 silly resolved bugs: { url: 'https://github.com/mikeal/forever-agent/issues' },
7608 silly resolved _id: 'forever-agent@0.5.0',
7608 silly resolved _from: 'forever-agent@~0.5.0' },
7608 silly resolved { author:
7608 silly resolved { name: 'Mikeal Rogers',
7608 silly resolved email: 'mikeal.rogers@gmail.com',
7608 silly resolved url: 'http://www.futurealoof.com' },
7608 silly resolved name: 'tunnel-agent',
7608 silly resolved description: 'HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.',
7608 silly resolved version: '0.3.0',
7608 silly resolved repository: { url: 'https://github.com/mikeal/tunnel-agent' },
7608 silly resolved main: 'index.js',
7608 silly resolved dependencies: {},
7608 silly resolved devDependencies: {},
7608 silly resolved optionalDependencies: {},
7608 silly resolved engines: { node: '*' },
7608 silly resolved readme: 'tunnel-agent\n============\n\nHTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.\n',
7608 silly resolved readmeFilename: 'README.md',
7608 silly resolved bugs: { url: 'https://github.com/mikeal/tunnel-agent/issues' },
7608 silly resolved _id: 'tunnel-agent@0.3.0',
7608 silly resolved _from: 'tunnel-agent@~0.3.0' } ]
7609 info install oauth-sign@0.3.0 into /opt/local/lib/node_modules/bower/node_modules/request
7610 info install cookie-jar@0.3.0 into /opt/local/lib/node_modules/bower/node_modules/request
7611 info install aws-sign@0.3.0 into /opt/local/lib/node_modules/bower/node_modules/request
7612 info install node-uuid@1.4.0 into /opt/local/lib/node_modules/bower/node_modules/request
7613 info install mime@1.2.10 into /opt/local/lib/node_modules/bower/node_modules/request
7614 info install form-data@0.1.0 into /opt/local/lib/node_modules/bower/node_modules/request
7615 info install http-signature@0.10.0 into /opt/local/lib/node_modules/bower/node_modules/request
7616 info install hawk@1.0.0 into /opt/local/lib/node_modules/bower/node_modules/request
7617 info install qs@0.6.5 into /opt/local/lib/node_modules/bower/node_modules/request
7618 info install json-stringify-safe@5.0.0 into /opt/local/lib/node_modules/bower/node_modules/request
7619 info install forever-agent@0.5.0 into /opt/local/lib/node_modules/bower/node_modules/request
7620 info install tunnel-agent@0.3.0 into /opt/local/lib/node_modules/bower/node_modules/request
7621 info installOne oauth-sign@0.3.0
7622 info installOne cookie-jar@0.3.0
7623 info installOne aws-sign@0.3.0
7624 info installOne node-uuid@1.4.0
7625 info installOne mime@1.2.10
7626 info installOne form-data@0.1.0
7627 info installOne http-signature@0.10.0
7628 info installOne hawk@1.0.0
7629 info installOne qs@0.6.5
7630 info installOne json-stringify-safe@5.0.0
7631 info installOne forever-agent@0.5.0
7632 info installOne tunnel-agent@0.3.0
7633 silly gunzTarPerm extractEntry LICENCE
7634 info /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/binary/node_modules/buffers unbuild
7635 info /opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/binary/node_modules/chainsaw unbuild
7636 info /opt/local/lib/node_modules/bower/node_modules/request/node_modules/oauth-sign unbuild
7637 info /opt/local/lib/node_modules/bower/node_modules/request/node_modules/cookie-jar unbuild
7638 info /opt/local/lib/node_modules/bower/node_modules/request/node_modules/aws-sign unbuild
7639 info /opt/local/lib/node_modules/bower/node_modules/request/node_modules/node-uuid unbuild
7640 info /opt/local/lib/node_modules/bower/node_modules/request/node_modules/mime unbuild
7641 info /opt/local/lib/node_modules/bower/node_modules/request/node_modules/form-data unbuild
7642 info /opt/local/lib/node_modules/bower/node_modules/request/node_modules/http-signature unbuild
7643 info /opt/local/lib/node_modules/bower/node_modules/request/node_modules/hawk unbuild
7644 info /opt/local/lib/node_modules/bower/node_modules/request/node_modules/qs unbuild
7645 info /opt/local/lib/node_modules/bower/node_modules/request/node_modules/json-stringify-safe unbuild
7646 info /opt/local/lib/node_modules/bower/node_modules/request/node_modules/forever-agent unbuild
7647 info /opt/local/lib/node_modules/bower/node_modules/request/node_modules/tunnel-agent unbuild
7648 silly gunzTarPerm extractEntry LICENCE
7649 silly gunzTarPerm extractEntry LICENSE
7650 silly gunzTarPerm extractEntry s.js
7651 info preinstall inquirer@0.2.3
7652 verbose tar unpack /Users/vaca/.npm/buffers/0.1.1/package.tgz
7653 silly lockFile 64fe1d92-ules-binary-node-modules-buffers tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/binary/node_modules/buffers
7654 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/binary/node_modules/buffers /Users/vaca/.npm/64fe1d92-ules-binary-node-modules-buffers.lock
7655 silly lockFile a59a7f98-ca-npm-buffers-0-1-1-package-tgz tar:///Users/vaca/.npm/buffers/0.1.1/package.tgz
7656 verbose lock tar:///Users/vaca/.npm/buffers/0.1.1/package.tgz /Users/vaca/.npm/a59a7f98-ca-npm-buffers-0-1-1-package-tgz.lock
7657 verbose tar unpack /Users/vaca/.npm/chainsaw/0.1.0/package.tgz
7658 silly lockFile d664735b-les-binary-node-modules-chainsaw tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/binary/node_modules/chainsaw
7659 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/unzip/node_modules/binary/node_modules/chainsaw /Users/vaca/.npm/d664735b-les-binary-node-modules-chainsaw.lock
7660 silly lockFile 0da9b313-a-npm-chainsaw-0-1-0-package-tgz tar:///Users/vaca/.npm/chainsaw/0.1.0/package.tgz
7661 verbose lock tar:///Users/vaca/.npm/chainsaw/0.1.0/package.tgz /Users/vaca/.npm/0da9b313-a-npm-chainsaw-0-1-0-package-tgz.lock
7662 verbose tar unpack /Users/vaca/.npm/oauth-sign/0.3.0/package.tgz
7663 silly lockFile 777f92cd--request-node-modules-oauth-sign tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/oauth-sign
7664 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/oauth-sign /Users/vaca/.npm/777f92cd--request-node-modules-oauth-sign.lock
7665 silly lockFile 4b79bd81-npm-oauth-sign-0-3-0-package-tgz tar:///Users/vaca/.npm/oauth-sign/0.3.0/package.tgz
7666 verbose lock tar:///Users/vaca/.npm/oauth-sign/0.3.0/package.tgz /Users/vaca/.npm/4b79bd81-npm-oauth-sign-0-3-0-package-tgz.lock
7667 verbose tar unpack /Users/vaca/.npm/cookie-jar/0.3.0/package.tgz
7668 silly lockFile e3171cf7--request-node-modules-cookie-jar tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/cookie-jar
7669 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/cookie-jar /Users/vaca/.npm/e3171cf7--request-node-modules-cookie-jar.lock
7670 silly lockFile 3f7ec36d-npm-cookie-jar-0-3-0-package-tgz tar:///Users/vaca/.npm/cookie-jar/0.3.0/package.tgz
7671 verbose lock tar:///Users/vaca/.npm/cookie-jar/0.3.0/package.tgz /Users/vaca/.npm/3f7ec36d-npm-cookie-jar-0-3-0-package-tgz.lock
7672 verbose tar unpack /Users/vaca/.npm/aws-sign/0.3.0/package.tgz
7673 silly lockFile 28658b20-es-request-node-modules-aws-sign tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/aws-sign
7674 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/aws-sign /Users/vaca/.npm/28658b20-es-request-node-modules-aws-sign.lock
7675 silly lockFile 2a608d2a-a-npm-aws-sign-0-3-0-package-tgz tar:///Users/vaca/.npm/aws-sign/0.3.0/package.tgz
7676 verbose lock tar:///Users/vaca/.npm/aws-sign/0.3.0/package.tgz /Users/vaca/.npm/2a608d2a-a-npm-aws-sign-0-3-0-package-tgz.lock
7677 verbose tar unpack /Users/vaca/.npm/node-uuid/1.4.0/package.tgz
7678 silly lockFile 84b6acd4-s-request-node-modules-node-uuid tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/node-uuid
7679 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/node-uuid /Users/vaca/.npm/84b6acd4-s-request-node-modules-node-uuid.lock
7680 silly lockFile b86d123c--npm-node-uuid-1-4-0-package-tgz tar:///Users/vaca/.npm/node-uuid/1.4.0/package.tgz
7681 verbose lock tar:///Users/vaca/.npm/node-uuid/1.4.0/package.tgz /Users/vaca/.npm/b86d123c--npm-node-uuid-1-4-0-package-tgz.lock
7682 verbose tar unpack /Users/vaca/.npm/mime/1.2.10/package.tgz
7683 silly lockFile b9fab10b-odules-request-node-modules-mime tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/mime
7684 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/mime /Users/vaca/.npm/b9fab10b-odules-request-node-modules-mime.lock
7685 silly lockFile 53dd7828-vaca-npm-mime-1-2-10-package-tgz tar:///Users/vaca/.npm/mime/1.2.10/package.tgz
7686 verbose lock tar:///Users/vaca/.npm/mime/1.2.10/package.tgz /Users/vaca/.npm/53dd7828-vaca-npm-mime-1-2-10-package-tgz.lock
7687 verbose tar unpack /Users/vaca/.npm/form-data/0.1.0/package.tgz
7688 silly lockFile 1a021fb6-s-request-node-modules-form-data tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/form-data
7689 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/form-data /Users/vaca/.npm/1a021fb6-s-request-node-modules-form-data.lock
7690 silly lockFile 4d7588ba--npm-form-data-0-1-0-package-tgz tar:///Users/vaca/.npm/form-data/0.1.0/package.tgz
7691 verbose lock tar:///Users/vaca/.npm/form-data/0.1.0/package.tgz /Users/vaca/.npm/4d7588ba--npm-form-data-0-1-0-package-tgz.lock
7692 verbose tar unpack /Users/vaca/.npm/http-signature/0.10.0/package.tgz
7693 silly lockFile 0de8b3ec-uest-node-modules-http-signature tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/http-signature
7694 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/http-signature /Users/vaca/.npm/0de8b3ec-uest-node-modules-http-signature.lock
7695 silly lockFile b9a99b8e-ttp-signature-0-10-0-package-tgz tar:///Users/vaca/.npm/http-signature/0.10.0/package.tgz
7696 verbose lock tar:///Users/vaca/.npm/http-signature/0.10.0/package.tgz /Users/vaca/.npm/b9a99b8e-ttp-signature-0-10-0-package-tgz.lock
7697 verbose tar unpack /Users/vaca/.npm/hawk/1.0.0/package.tgz
7698 silly lockFile 797a5f03-odules-request-node-modules-hawk tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/hawk
7699 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/hawk /Users/vaca/.npm/797a5f03-odules-request-node-modules-hawk.lock
7700 silly lockFile 95efae86--vaca-npm-hawk-1-0-0-package-tgz tar:///Users/vaca/.npm/hawk/1.0.0/package.tgz
7701 verbose lock tar:///Users/vaca/.npm/hawk/1.0.0/package.tgz /Users/vaca/.npm/95efae86--vaca-npm-hawk-1-0-0-package-tgz.lock
7702 verbose tar unpack /Users/vaca/.npm/qs/0.6.5/package.tgz
7703 silly lockFile 62768aca--modules-request-node-modules-qs tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/qs
7704 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/qs /Users/vaca/.npm/62768aca--modules-request-node-modules-qs.lock
7705 silly lockFile 6582920d-rs-vaca-npm-qs-0-6-5-package-tgz tar:///Users/vaca/.npm/qs/0.6.5/package.tgz
7706 verbose lock tar:///Users/vaca/.npm/qs/0.6.5/package.tgz /Users/vaca/.npm/6582920d-rs-vaca-npm-qs-0-6-5-package-tgz.lock
7707 verbose tar unpack /Users/vaca/.npm/json-stringify-safe/5.0.0/package.tgz
7708 silly lockFile f1236bc1-node-modules-json-stringify-safe tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/json-stringify-safe
7709 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/json-stringify-safe /Users/vaca/.npm/f1236bc1-node-modules-json-stringify-safe.lock
7710 silly lockFile 85c77f27-stringify-safe-5-0-0-package-tgz tar:///Users/vaca/.npm/json-stringify-safe/5.0.0/package.tgz
7711 verbose lock tar:///Users/vaca/.npm/json-stringify-safe/5.0.0/package.tgz /Users/vaca/.npm/85c77f27-stringify-safe-5-0-0-package-tgz.lock
7712 verbose tar unpack /Users/vaca/.npm/forever-agent/0.5.0/package.tgz
7713 silly lockFile 9b971b32-quest-node-modules-forever-agent tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/forever-agent
7714 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/forever-agent /Users/vaca/.npm/9b971b32-quest-node-modules-forever-agent.lock
7715 silly lockFile 00fb56a0--forever-agent-0-5-0-package-tgz tar:///Users/vaca/.npm/forever-agent/0.5.0/package.tgz
7716 verbose lock tar:///Users/vaca/.npm/forever-agent/0.5.0/package.tgz /Users/vaca/.npm/00fb56a0--forever-agent-0-5-0-package-tgz.lock
7717 verbose tar unpack /Users/vaca/.npm/tunnel-agent/0.3.0/package.tgz
7718 silly lockFile b751cac6-equest-node-modules-tunnel-agent tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/tunnel-agent
7719 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/request/node_modules/tunnel-agent /Users/vaca/.npm/b751cac6-equest-node-modules-tunnel-agent.lock
7720 silly lockFile 63a0f603-m-tunnel-agent-0-3-0-package-tgz tar:///Users/vaca/.npm/tunnel-agent/0.3.0/package.tgz
7721 verbose lock tar:///Users/vaca/.npm/tunnel-agent/0.3.0/package.tgz /Users/vaca/.npm/63a0f603-m-tunnel-agent-0-3-0-package-tgz.lock
7722 silly gunzTarPerm extractEntry bench.js
7723 silly gunzTarPerm extractEntry sigmund.js
7724 silly gunzTarPerm extractEntry test/basic.js
7725 silly gunzTarPerm extractEntry bin/yaml.min.js
7726 silly gunzTarPerm extractEntry bin/json2yaml
7727 silly gunzTarPerm extractEntry src/object/matches.js
7728 silly gunzTarPerm extractEntry src/object/max.js
7729 verbose readDependencies using package.json deps
7730 silly gunzTarPerm modes [ '755', '644' ]
7731 silly gunzTarPerm modes [ '755', '644' ]
7732 silly gunzTarPerm modes [ '755', '644' ]
7733 silly gunzTarPerm modes [ '755', '644' ]
7734 silly gunzTarPerm modes [ '755', '644' ]
7735 silly gunzTarPerm modes [ '755', '644' ]
7736 silly gunzTarPerm modes [ '755', '644' ]
7737 silly gunzTarPerm modes [ '755', '644' ]
7738 silly gunzTarPerm modes [ '755', '644' ]
7739 silly gunzTarPerm modes [ '755', '644' ]
7740 silly gunzTarPerm modes [ '755', '644' ]
7741 silly gunzTarPerm modes [ '755', '644' ]
7742 silly gunzTarPerm modes [ '755', '644' ]
7743 silly gunzTarPerm modes [ '755', '644' ]
7744 verbose readDependencies using package.json deps
7745 silly gunzTarPerm extractEntry Makefile
7746 silly gunzTarPerm extractEntry .travis.yml
7747 verbose cache add [ 'mute-stream@0.0.3', null ]
7748 verbose cache add name=undefined spec="mute-stream@0.0.3" args=["mute-stream@0.0.3",null]
7749 verbose parsed url { protocol: null,
7749 verbose parsed url slashes: null,
7749 verbose parsed url auth: null,
7749 verbose parsed url host: null,
7749 verbose parsed url port: null,
7749 verbose parsed url hostname: null,
7749 verbose parsed url hash: null,
7749 verbose parsed url search: null,
7749 verbose parsed url query: null,
7749 verbose parsed url pathname: 'mute-stream@0.0.3',
7749 verbose parsed url path: 'mute-stream@0.0.3',
7749 verbose parsed url href: 'mute-stream@0.0.3' }
7750 verbose cache add name="mute-stream" spec="0.0.3" args=["mute-stream","0.0.3"]
7751 verbose parsed url { protocol: null,
7751 verbose parsed url slashes: null,
7751 verbose parsed url auth: null,
7751 verbose parsed url host: null,
7751 verbose parsed url port: null,
7751 verbose parsed url hostname: null,
7751 verbose parsed url hash: null,
7751 verbose parsed url search: null,
7751 verbose parsed url query: null,
7751 verbose parsed url pathname: '0.0.3',
7751 verbose parsed url path: '0.0.3',
7751 verbose parsed url href: '0.0.3' }
7752 verbose addNamed [ 'mute-stream', '0.0.3' ]
7753 verbose addNamed [ '0.0.3', '0.0.3' ]
7754 silly lockFile 3cfd36c8-mute-stream-0-0-3 mute-stream@0.0.3
7755 verbose lock mute-stream@0.0.3 /Users/vaca/.npm/3cfd36c8-mute-stream-0-0-3.lock
7756 verbose cache add [ 'cli-color@~0.2.2', null ]
7757 verbose cache add name=undefined spec="cli-color@~0.2.2" args=["cli-color@~0.2.2",null]
7758 verbose parsed url { protocol: null,
7758 verbose parsed url slashes: null,
7758 verbose parsed url auth: null,
7758 verbose parsed url host: null,
7758 verbose parsed url port: null,
7758 verbose parsed url hostname: null,
7758 verbose parsed url hash: null,
7758 verbose parsed url search: null,
7758 verbose parsed url query: null,
7758 verbose parsed url pathname: 'cli-color@~0.2.2',
7758 verbose parsed url path: 'cli-color@~0.2.2',
7758 verbose parsed url href: 'cli-color@~0.2.2' }
7759 verbose cache add name="cli-color" spec="~0.2.2" args=["cli-color","~0.2.2"]
7760 verbose parsed url { protocol: null,
7760 verbose parsed url slashes: null,
7760 verbose parsed url auth: null,
7760 verbose parsed url host: null,
7760 verbose parsed url port: null,
7760 verbose parsed url hostname: null,
7760 verbose parsed url hash: null,
7760 verbose parsed url search: null,
7760 verbose parsed url query: null,
7760 verbose parsed url pathname: '~0.2.2',
7760 verbose parsed url path: '~0.2.2',
7760 verbose parsed url href: '~0.2.2' }
7761 verbose addNamed [ 'cli-color', '~0.2.2' ]
7762 verbose addNamed [ null, '>=0.2.2-0 <0.3.0-0' ]
7763 silly lockFile d0e95799-cli-color-0-2-2 cli-color@~0.2.2
7764 verbose lock cli-color@~0.2.2 /Users/vaca/.npm/d0e95799-cli-color-0-2-2.lock
7765 verbose cache add [ 'lodash@~1.2.1', null ]
7766 verbose cache add name=undefined spec="lodash@~1.2.1" args=["lodash@~1.2.1",null]
7767 verbose parsed url { protocol: null,
7767 verbose parsed url slashes: null,
7767 verbose parsed url auth: null,
7767 verbose parsed url host: null,
7767 verbose parsed url port: null,
7767 verbose parsed url hostname: null,
7767 verbose parsed url hash: null,
7767 verbose parsed url search: null,
7767 verbose parsed url query: null,
7767 verbose parsed url pathname: 'lodash@~1.2.1',
7767 verbose parsed url path: 'lodash@~1.2.1',
7767 verbose parsed url href: 'lodash@~1.2.1' }
7768 verbose cache add name="lodash" spec="~1.2.1" args=["lodash","~1.2.1"]
7769 verbose parsed url { protocol: null,
7769 verbose parsed url slashes: null,
7769 verbose parsed url auth: null,
7769 verbose parsed url host: null,
7769 verbose parsed url port: null,
7769 verbose parsed url hostname: null,
7769 verbose parsed url hash: null,
7769 verbose parsed url search: null,
7769 verbose parsed url query: null,
7769 verbose parsed url pathname: '~1.2.1',
7769 verbose parsed url path: '~1.2.1',
7769 verbose parsed url href: '~1.2.1' }
7770 verbose addNamed [ 'lodash', '~1.2.1' ]
7771 verbose addNamed [ null, '>=1.2.1-0 <1.3.0-0' ]
7772 silly lockFile 52b3d2d9-lodash-1-2-1 lodash@~1.2.1
7773 verbose lock lodash@~1.2.1 /Users/vaca/.npm/52b3d2d9-lodash-1-2-1.lock
7774 verbose cache add [ 'async@~0.2.8', null ]
7775 verbose cache add name=undefined spec="async@~0.2.8" args=["async@~0.2.8",null]
7776 verbose parsed url { protocol: null,
7776 verbose parsed url slashes: null,
7776 verbose parsed url auth: null,
7776 verbose parsed url host: null,
7776 verbose parsed url port: null,
7776 verbose parsed url hostname: null,
7776 verbose parsed url hash: null,
7776 verbose parsed url search: null,
7776 verbose parsed url query: null,
7776 verbose parsed url pathname: 'async@~0.2.8',
7776 verbose parsed url path: 'async@~0.2.8',
7776 verbose parsed url href: 'async@~0.2.8' }
7777 verbose cache add name="async" spec="~0.2.8" args=["async","~0.2.8"]
7778 verbose parsed url { protocol: null,
7778 verbose parsed url slashes: null,
7778 verbose parsed url auth: null,
7778 verbose parsed url host: null,
7778 verbose parsed url port: null,
7778 verbose parsed url hostname: null,
7778 verbose parsed url hash: null,
7778 verbose parsed url search: null,
7778 verbose parsed url query: null,
7778 verbose parsed url pathname: '~0.2.8',
7778 verbose parsed url path: '~0.2.8',
7778 verbose parsed url href: '~0.2.8' }
7779 verbose addNamed [ 'async', '~0.2.8' ]
7780 verbose addNamed [ null, '>=0.2.8-0 <0.3.0-0' ]
7781 silly lockFile fe4c98a1-async-0-2-8 async@~0.2.8
7782 verbose lock async@~0.2.8 /Users/vaca/.npm/fe4c98a1-async-0-2-8.lock
7783 silly gunzTarPerm extractEntry CHANGES
7784 silly gunzTarPerm extractEntry .lintignore
7785 silly addNameRange { name: 'cli-color',
7785 silly addNameRange range: '>=0.2.2-0 <0.3.0-0',
7785 silly addNameRange hasData: false }
7786 silly addNameRange { name: 'lodash', range: '>=1.2.1-0 <1.3.0-0', hasData: false }
7787 silly addNameRange { name: 'async', range: '>=0.2.8-0 <0.3.0-0', hasData: false }
7788 silly gunzTarPerm extractEntry AUTHORS
7789 silly gunzTarPerm extractEntry package.json
7790 silly gunzTarPerm extractEntry package.json
7791 silly gunzTarPerm extractEntry package.json
7792 silly gunzTarPerm extractEntry package.json
7793 silly gunzTarPerm extractEntry package.json
7794 silly gunzTarPerm extractEntry package.json
7795 silly gunzTarPerm extractEntry package.json
7796 silly gunzTarPerm extractEntry package.json
7797 silly gunzTarPerm extractEntry package.json
7798 silly gunzTarPerm extractEntry package.json
7799 silly gunzTarPerm extractEntry package.json
7800 silly gunzTarPerm extractEntry package.json
7801 silly gunzTarPerm extractEntry package.json
7802 silly gunzTarPerm extractEntry package.json
7803 silly gunzTarPerm extractEntry example/divide.js
7804 silly gunzTarPerm extractEntry example/line_count.js
7805 silly gunzTarPerm extractEntry src/object/merge.js
7806 silly gunzTarPerm extractEntry src/object/min.js
7807 silly gunzTarPerm extractEntry index.js
7808 silly gunzTarPerm extractEntry README.markdown
7809 silly gunzTarPerm extractEntry README.md
7810 silly gunzTarPerm extractEntry LICENSE
7811 verbose registry.get mute-stream/0.0.3 not expired, no request
7812 verbose registry.get cli-color not expired, no request
7813 silly addNameRange number 2 { name: 'cli-color', range: '>=0.2.2-0 <0.3.0-0', hasData: true }
7814 silly addNameRange versions [ 'cli-color',
7814 silly addNameRange [ '0.1.0',
7814 silly addNameRange '0.1.1',
7814 silly addNameRange '0.1.2',
7814 silly addNameRange '0.1.3',
7814 silly addNameRange '0.1.4',
7814 silly addNameRange '0.1.5',
7814 silly addNameRange '0.1.6',
7814 silly addNameRange '0.1.7',
7814 silly addNameRange '0.2.0',
7814 silly addNameRange '0.2.1',
7814 silly addNameRange '0.2.2' ] ]
7815 verbose addNamed [ 'cli-color', '0.2.2' ]
7816 verbose addNamed [ '0.2.2', '0.2.2' ]
7817 silly lockFile 39acd334-cli-color-0-2-2 cli-color@0.2.2
7818 verbose lock cli-color@0.2.2 /Users/vaca/.npm/39acd334-cli-color-0-2-2.lock
7819 verbose registry.get async not expired, no request
7820 silly addNameRange number 2 { name: 'async', range: '>=0.2.8-0 <0.3.0-0', hasData: true }
7821 silly addNameRange versions [ 'async',
7821 silly addNameRange [ '0.1.0',
7821 silly addNameRange '0.1.1',
7821 silly addNameRange '0.1.2',
7821 silly addNameRange '0.1.3',
7821 silly addNameRange '0.1.4',
7821 silly addNameRange '0.1.5',
7821 silly addNameRange '0.1.6',
7821 silly addNameRange '0.1.7',
7821 silly addNameRange '0.1.8',
7821 silly addNameRange '0.1.9',
7821 silly addNameRange '0.1.10',
7821 silly addNameRange '0.1.11',
7821 silly addNameRange '0.1.12',
7821 silly addNameRange '0.1.13',
7821 silly addNameRange '0.1.14',
7821 silly addNameRange '0.1.15',
7821 silly addNameRange '0.1.16',
7821 silly addNameRange '0.1.17',
7821 silly addNameRange '0.1.18',
7821 silly addNameRange '0.1.19',
7821 silly addNameRange '0.1.20',
7821 silly addNameRange '0.1.21',
7821 silly addNameRange '0.1.22',
7821 silly addNameRange '0.2.0',
7821 silly addNameRange '0.2.1',
7821 silly addNameRange '0.2.2',
7821 silly addNameRange '0.2.3',
7821 silly addNameRange '0.2.4',
7821 silly addNameRange '0.2.5',
7821 silly addNameRange '0.2.6',
7821 silly addNameRange '0.2.7',
7821 silly addNameRange '0.2.8',
7821 silly addNameRange '0.2.9' ] ]
7822 verbose addNamed [ 'async', '0.2.9' ]
7823 verbose addNamed [ '0.2.9', '0.2.9' ]
7824 silly lockFile be62480b-async-0-2-9 async@0.2.9
7825 verbose lock async@0.2.9 /Users/vaca/.npm/be62480b-async-0-2-9.lock
7826 verbose registry.get lodash not expired, no request
7827 silly addNameRange number 2 { name: 'lodash', range: '>=1.2.1-0 <1.3.0-0', hasData: true }
7828 silly addNameRange versions [ 'lodash',
7828 silly addNameRange [ '0.1.0',
7828 silly addNameRange '0.2.0',
7828 silly addNameRange '0.2.1',
7828 silly addNameRange '0.2.2',
7828 silly addNameRange '0.3.0',
7828 silly addNameRange '0.3.1',
7828 silly addNameRange '0.3.2',
7828 silly addNameRange '0.4.0',
7828 silly addNameRange '0.4.1',
7828 silly addNameRange '0.4.2',
7828 silly addNameRange '0.5.0-rc.1',
7828 silly addNameRange '0.5.0',
7828 silly addNameRange '0.5.1',
7828 silly addNameRange '0.5.2',
7828 silly addNameRange '0.6.0',
7828 silly addNameRange '0.6.1',
7828 silly addNameRange '0.7.0',
7828 silly addNameRange '0.8.0',
7828 silly addNameRange '0.8.1',
7828 silly addNameRange '0.8.2',
7828 silly addNameRange '1.0.1',
7828 silly addNameRange '0.9.0',
7828 silly addNameRange '0.9.1',
7828 silly addNameRange '0.9.2',
7828 silly addNameRange '0.10.0',
7828 silly addNameRange '1.0.0-rc.1',
7828 silly addNameRange '1.0.0-rc.2',
7828 silly addNameRange '1.0.0-rc.3',
7828 silly addNameRange '1.0.0',
7828 silly addNameRange '1.1.0',
7828 silly addNameRange '1.1.1',
7828 silly addNameRange '1.2.0',
7828 silly addNameRange '1.2.1',
7828 silly addNameRange '1.3.0',
7828 silly addNameRange '1.3.1' ] ]
7829 verbose addNamed [ 'lodash', '1.2.1' ]
7830 verbose addNamed [ '1.2.1', '1.2.1' ]
7831 silly lockFile 97f4aa05-lodash-1-2-1 lodash@1.2.1
7832 verbose lock lodash@1.2.1 /Users/vaca/.npm/97f4aa05-lodash-1-2-1.lock
7833 silly gunzTarPerm extractEntry README.md
7834 silly gunzTarPerm extractEntry LICENSE
7835 silly gunzTarPerm extractEntry README.md
7836 silly gunzTarPerm extractEntry LICENSE
7837 silly gunzTarPerm extractEntry .npmignore
7838 silly gunzTarPerm extractEntry README.md
7839 silly gunzTarPerm extractEntry README.md
7840 silly gunzTarPerm extractEntry LICENSE
7841 silly gunzTarPerm extractEntry .npmignore
7842 silly gunzTarPerm extractEntry index.js
7843 silly gunzTarPerm extractEntry License
7844 silly gunzTarPerm extractEntry Readme.md
7845 silly gunzTarPerm extractEntry .npmignore
7846 silly gunzTarPerm extractEntry README.md
7847 silly gunzTarPerm extractEntry .npmignore
7848 silly gunzTarPerm extractEntry README.md
7849 silly gunzTarPerm extractEntry .npmignore
7850 silly gunzTarPerm extractEntry index.js
7851 silly gunzTarPerm extractEntry README.md
7852 silly gunzTarPerm extractEntry LICENSE
7853 silly gunzTarPerm extractEntry README.md
7854 silly gunzTarPerm extractEntry LICENSE
7855 silly lockFile 3cfd36c8-mute-stream-0-0-3 mute-stream@0.0.3
7856 silly lockFile 3cfd36c8-mute-stream-0-0-3 mute-stream@0.0.3
7857 silly gunzTarPerm extractEntry README.md
7858 silly gunzTarPerm extractEntry LICENSE
7859 silly lockFile 39acd334-cli-color-0-2-2 cli-color@0.2.2
7860 silly lockFile 39acd334-cli-color-0-2-2 cli-color@0.2.2
7861 silly lockFile be62480b-async-0-2-9 async@0.2.9
7862 silly lockFile be62480b-async-0-2-9 async@0.2.9
7863 silly lockFile 97f4aa05-lodash-1-2-1 lodash@1.2.1
7864 silly lockFile 97f4aa05-lodash-1-2-1 lodash@1.2.1
7865 silly lockFile d0e95799-cli-color-0-2-2 cli-color@~0.2.2
7866 silly lockFile d0e95799-cli-color-0-2-2 cli-color@~0.2.2
7867 silly lockFile fe4c98a1-async-0-2-8 async@~0.2.8
7868 silly lockFile fe4c98a1-async-0-2-8 async@~0.2.8
7869 silly gunzTarPerm extractEntry example/default_hash.js
7870 silly gunzTarPerm extractEntry example/line_count_wrap.js
7871 silly lockFile 52b3d2d9-lodash-1-2-1 lodash@~1.2.1
7872 silly lockFile 52b3d2d9-lodash-1-2-1 lodash@~1.2.1
7873 silly gunzTarPerm extractEntry bin/yaml2json
7874 silly gunzTarPerm extractEntry build
7875 silly resolved [ { name: 'mute-stream',
7875 silly resolved version: '0.0.3',
7875 silly resolved main: 'mute.js',
7875 silly resolved directories: { test: 'test' },
7875 silly resolved devDependencies: { tap: '~0.2.5' },
7875 silly resolved scripts: { test: 'tap test/*.js' },
7875 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/mute-stream' },
7875 silly resolved keywords: [ 'mute', 'stream', 'pipe' ],
7875 silly resolved author:
7875 silly resolved { name: 'Isaac Z. Schlueter',
7875 silly resolved email: 'i@izs.me',
7875 silly resolved url: 'http://blog.izs.me/' },
7875 silly resolved license: 'BSD',
7875 silly resolved description: 'Bytes go in, but they don\'t come out (when muted).',
7875 silly resolved readme: '# mute-stream\n\nBytes go in, but they don\'t come out (when muted).\n\nThis is a basic pass-through stream, but when muted, the bytes are\nsilently dropped, rather than being passed through.\n\n## Usage\n\n```javascript\nvar MuteStream = require(\'mute-stream\')\n\nvar ms = new MuteStream(options)\n\nms.pipe(process.stdout)\nms.write(\'foo\') // writes \'foo\' to stdout\nms.mute()\nms.write(\'bar\') // does not write \'bar\'\nms.unmute()\nms.write(\'baz\') // writes \'baz\' to stdout\n\n// can also be used to mute incoming data\nvar ms = new MuteStream\ninput.pipe(ms)\n\nms.on(\'data\', function (c) {\n console.log(\'data: \' + c)\n})\n\ninput.emit(\'data\', \'foo\') // logs \'foo\'\nms.mute()\ninput.emit(\'data\', \'bar\') // does not log \'bar\'\nms.unmute()\ninput.emit(\'data\', \'baz\') // logs \'baz\'\n```\n\n## Options\n\nAll options are optional.\n\n* `replace` Set to a string to replace each character with the\n specified string when muted. (So you can show `****` instead of the\n password, for example.)\n\n## ms.mute()\n\nSet `muted` to `true`. Turns `.write()` into a no-op.\n\n## ms.unmute()\n\nSet `muted` to `false`\n\n## ms.isTTY\n\nTrue if the pipe destination is a TTY, or if the incoming pipe source is\na TTY.\n\n## Other stream methods...\n\nThe other standard readable and writable stream methods are all\navailable. The MuteStream object acts as a facade to its pipe source\nand destination.\n',
7875 silly resolved readmeFilename: 'README.md',
7875 silly resolved bugs: { url: 'https://github.com/isaacs/mute-stream/issues' },
7875 silly resolved _id: 'mute-stream@0.0.3',
7875 silly resolved _from: 'mute-stream@0.0.3' },
7875 silly resolved { name: 'cli-color',
7875 silly resolved version: '0.2.2',
7875 silly resolved description: 'Colors, formatting and other tools for the console',
7875 silly resolved keywords:
7875 silly resolved [ 'ansi',
7875 silly resolved 'color',
7875 silly resolved 'console',
7875 silly resolved 'terminal',
7875 silly resolved 'cli',
7875 silly resolved 'shell',
7875 silly resolved 'log',
7875 silly resolved 'logging',
7875 silly resolved 'xterm' ],
7875 silly resolved author:
7875 silly resolved { name: 'Mariusz Nowak',
7875 silly resolved email: 'medikoo+cli-color@medikoo.com',
7875 silly resolved url: 'http://www.medikoo.com/' },
7875 silly resolved main: 'lib',
7875 silly resolved repository: { type: 'git', url: 'git://github.com/medikoo/cli-color.git' },
7875 silly resolved bugs:
7875 silly resolved { url: 'https://github.com/medikoo/cli-color/issues',
7875 silly resolved email: 'medikoo+cli-color@medikoo.com' },
7875 silly resolved engines: { node: '>=0.1.103' },
7875 silly resolved dependencies: { 'es5-ext': '~0.9.1', memoizee: '0.2.x' },
7875 silly resolved devDependencies: { clock: '0.1.x', tad: '0.1.x' },
7875 silly resolved scripts: { test: 'node ./node_modules/tad/bin/tad lib' },
7875 silly resolved licence: 'MIT',
7875 silly resolved readme: '# cli-color - Yet another colors and formatting for the console solution\n\nColors, formatting and other goodies for the console. This package won\'t mess with built-ins and provides neat way to predefine formatting patterns, see below.\n\n## Installation\n\n\t$ npm install cli-color\n\n## Usage\n\nUsage:\n\n```javascript\nvar clc = require(\'cli-color\');\n```\n\nOutput colored text:\n\n```javascript\nconsole.log(clc.red(\'Text in red\'));\n```\n\nStyles can be mixed:\n\n```javascript\nconsole.log(clc.red.bgWhite.underline(\'Underlined red text on white background.\'));\n```\n\nStyled text can be mixed with unstyled:\n\n```javascript\nconsole.log(clc.red(\'red\') + \' plain \' + clc.blue(\'blue\'));\n```\n\n__Best way is to predefine needed stylings and then use it__:\n\n```javascript\nvar error = clc.red.bold;\nvar warn = clc.yellow;\nvar notice = clc.blue;\n\nconsole.log(error(\'Error!\'));\nconsole.log(warn(\'Warning\'));\nconsole.log(notice(\'Notice\'));\n```\n\nSupported are all ANSI colors and styles:\n\n#### Styles\n\nStyles will display correctly if font used in your console supports them.\n\n* bold\n* italic\n* underline\n* inverse\n* strike\n\n#### Colors\n\n<table>\n <thead><th>Foreground</th><th>Background</th><th width="30"></th></thead>\n <tbody>\n <tr><td>black</td><td>bgBlack</td><td><img src="http://medyk.org/colors/000000.png" width="30" height="30" /></td></tr>\n <tr><td>red</td><td>bgRed</td><td><img src="http://medyk.org/colors/800000.png" width="30" height="30" /></td></tr>\n <tr><td>green</td><td>bgGreen</td><td><img src="http://medyk.org/colors/008000.png" width="30" height="30" /></td></tr>\n <tr><td>yellow</td><td>bgYellow</td><td><img src="http://medyk.org/colors/808000.png" width="30" height="30" /></td></tr>\n <tr><td>blue</td><td>bgBlue</td><td><img src="http://medyk.org/colors/000080.png" width="30" height="30" /></td></tr>\n <tr><td>magenta</td><td>bgMagenta</td><td><img src="http://medyk.org/colors/800080.png" width="30" height="30" /></td></tr>\n <tr><td>cyan</td><td>bgCyan</td><td><img src="http://medyk.org/colors/008080.png" width="30" height="30" /></td></tr>\n <tr><td>white</td><td>bgWhite</td><td><img src="http://medyk.org/colors/c0c0c0.png" width="30" height="30" /></td></tr>\n </tbody>\n</table>\n\n##### Bright variants\n\n<table>\n <thead><th>Foreground</th><th>Background</th><th width="30"></th></thead>\n <tbody>\n <tr><td>blackBright</td><td>bgBlackBright</td><td><img src="http://medyk.org/colors/808080.png" width="30" height="30" /></td></tr>\n <tr><td>redBright</td><td>bgRedBright</td><td><img src="http://medyk.org/colors/ff0000.png" width="30" height="30" /></td></tr>\n <tr><td>greenBright</td><td>bgGreenBright</td><td><img src="http://medyk.org/colors/00ff00.png" width="30" height="30" /></td></tr>\n <tr><td>yellowBright</td><td>bgYellowBright</td><td><img src="http://medyk.org/colors/ffff00.png" width="30" height="30" /></td></tr>\n <tr><td>blueBright</td><td>bgBlueBright</td><td><img src="http://medyk.org/colors/0000ff.png" width="30" height="30" /></td></tr>\n <tr><td>magentaBright</td><td>bgMagentaBright</td><td><img src="http://medyk.org/colors/ff00ff.png" width="30" height="30" /></td></tr>\n <tr><td>cyanBright</td><td>bgCyanBright</td><td><img src="http://medyk.org/colors/00ffff.png" width="30" height="30" /></td></tr>\n <tr><td>whiteBright</td><td>bgWhiteBright</td><td><img src="http://medyk.org/colors/ffffff.png" width="30" height="30" /></td></tr>\n </tbody>\n</table>\n\n##### xTerm colors (256 colors table)\n\n__Not supported on Windows and some terminals__. However if used in not supported environment, the closest color from basic (16 colors) palette is chosen.\n\nUsage:\n\n```javascript\nvar msg = clc.xterm(202).bgXterm(236);\nconsole.log(msg(\'Orange text on dark gray background\'));\n```\n\nColor table:\n\n<table>\n <tr>\n <td>0</td><td width="20"><img src="http://medyk.org/colors/000000.png" width="20" height="20" /></td>\n <td>1</td><td width="20"><img src="http://medyk.org/colors/800000.png" width="20" height="20" /></td>\n <td>2</td><td width="20"><img src="http://medyk.org/colors/008000.png" width="20" height="20" /></td>\n <td>3</td><td width="20"><img src="http://medyk.org/colors/808000.png" width="20" height="20" /></td>\n <td>4</td><td width="20"><img src="http://medyk.org/colors/000080.png" width="20" height="20" /></td>\n <td>5</td><td width="20"><img src="http://medyk.org/colors/800080.png" width="20" height="20" /></td>\n <td>6</td><td width="20"><img src="http://medyk.org/colors/008080.png" width="20" height="20" /></td>\n <td>7</td><td width="20"><img src="http://medyk.org/colors/c0c0c0.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>8</td><td width="20"><img src="http://medyk.org/colors/808080.png" width="20" height="20" /></td>\n <td>9</td><td width="20"><img src="http://medyk.org/colors/ff0000.png" width="20" height="20" /></td>\n <td>10</td><td width="20"><img src="http://medyk.org/colors/00ff00.png" width="20" height="20" /></td>\n <td>11</td><td width="20"><img src="http://medyk.org/colors/ffff00.png" width="20" height="20" /></td>\n <td>12</td><td width="20"><img src="http://medyk.org/colors/0000ff.png" width="20" height="20" /></td>\n <td>13</td><td width="20"><img src="http://medyk.org/colors/ff00ff.png" width="20" height="20" /></td>\n <td>14</td><td width="20"><img src="http://medyk.org/colors/00ffff.png" width="20" height="20" /></td>\n <td>15</td><td width="20"><img src="http://medyk.org/colors/ffffff.png" width="20" height="20" /></td>\n </tr>\n\n <tr>\n <td>16</td><td width="20"><img src="http://medyk.org/colors/000000.png" width="20" height="20" /></td>\n <td>17</td><td width="20"><img src="http://medyk.org/colors/00005f.png" width="20" height="20" /></td>\n <td>18</td><td width="20"><img src="http://medyk.org/colors/000087.png" width="20" height="20" /></td>\n <td>19</td><td width="20"><img src="http://medyk.org/colors/0000af.png" width="20" height="20" /></td>\n <td>20</td><td width="20"><img src="http://medyk.org/colors/0000d7.png" width="20" height="20" /></td>\n <td>21</td><td width="20"><img src="http://medyk.org/colors/0000ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>22</td><td width="20"><img src="http://medyk.org/colors/005f00.png" width="20" height="20" /></td>\n <td>23</td><td width="20"><img src="http://medyk.org/colors/005f5f.png" width="20" height="20" /></td>\n <td>24</td><td width="20"><img src="http://medyk.org/colors/005f87.png" width="20" height="20" /></td>\n <td>25</td><td width="20"><img src="http://medyk.org/colors/005faf.png" width="20" height="20" /></td>\n <td>26</td><td width="20"><img src="http://medyk.org/colors/005fd7.png" width="20" height="20" /></td>\n <td>27</td><td width="20"><img src="http://medyk.org/colors/005fff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>28</td><td width="20"><img src="http://medyk.org/colors/008700.png" width="20" height="20" /></td>\n <td>29</td><td width="20"><img src="http://medyk.org/colors/00875f.png" width="20" height="20" /></td>\n <td>30</td><td width="20"><img src="http://medyk.org/colors/008787.png" width="20" height="20" /></td>\n <td>31</td><td width="20"><img src="http://medyk.org/colors/0087af.png" width="20" height="20" /></td>\n <td>32</td><td width="20"><img src="http://medyk.org/colors/0087d7.png" width="20" height="20" /></td>\n <td>33</td><td width="20"><img src="http://medyk.org/colors/0087ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>34</td><td width="20"><img src="http://medyk.org/colors/00af00.png" width="20" height="20" /></td>\n <td>35</td><td width="20"><img src="http://medyk.org/colors/00af5f.png" width="20" height="20" /></td>\n <td>36</td><td width="20"><img src="http://medyk.org/colors/00af87.png" width="20" height="20" /></td>\n <td>37</td><td width="20"><img src="http://medyk.org/colors/00afaf.png" width="20" height="20" /></td>\n <td>38</td><td width="20"><img src="http://medyk.org/colors/00afd7.png" width="20" height="20" /></td>\n <td>39</td><td width="20"><img src="http://medyk.org/colors/00afff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>40</td><td width="20"><img src="http://medyk.org/colors/00d700.png" width="20" height="20" /></td>\n <td>41</td><td width="20"><img src="http://medyk.org/colors/00d75f.png" width="20" height="20" /></td>\n <td>42</td><td width="20"><img src="http://medyk.org/colors/00d787.png" width="20" height="20" /></td>\n <td>43</td><td width="20"><img src="http://medyk.org/colors/00d7af.png" width="20" height="20" /></td>\n <td>44</td><td width="20"><img src="http://medyk.org/colors/00d7d7.png" width="20" height="20" /></td>\n <td>45</td><td width="20"><img src="http://medyk.org/colors/00d7ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>46</td><td width="20"><img src="http://medyk.org/colors/00ff00.png" width="20" height="20" /></td>\n <td>47</td><td width="20"><img src="http://medyk.org/colors/00ff5f.png" width="20" height="20" /></td>\n <td>48</td><td width="20"><img src="http://medyk.org/colors/00ff87.png" width="20" height="20" /></td>\n <td>49</td><td width="20"><img src="http://medyk.org/colors/00ffaf.png" width="20" height="20" /></td>\n <td>50</td><td width="20"><img src="http://medyk.org/colors/00ffd7.png" width="20" height="20" /></td>\n <td>51</td><td width="20"><img src="http://medyk.org/colors/00ffff.png" width="20" height="20" /></td>\n </tr>\n\n <tr>\n <td>52</td><td width="20"><img src="http://medyk.org/colors/5f0000.png" width="20" height="20" /></td>\n <td>53</td><td width="20"><img src="http://medyk.org/colors/5f005f.png" width="20" height="20" /></td>\n <td>54</td><td width="20"><img src="http://medyk.org/colors/5f0087.png" width="20" height="20" /></td>\n <td>55</td><td width="20"><img src="http://medyk.org/colors/5f00af.png" width="20" height="20" /></td>\n <td>56</td><td width="20"><img src="http://medyk.org/colors/5f00d7.png" width="20" height="20" /></td>\n <td>57</td><td width="20"><img src="http://medyk.org/colors/5f00ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>58</td><td width="20"><img src="http://medyk.org/colors/5f5f00.png" width="20" height="20" /></td>\n <td>59</td><td width="20"><img src="http://medyk.org/colors/5f5f5f.png" width="20" height="20" /></td>\n <td>60</td><td width="20"><img src="http://medyk.org/colors/5f5f87.png" width="20" height="20" /></td>\n <td>61</td><td width="20"><img src="http://medyk.org/colors/5f5faf.png" width="20" height="20" /></td>\n <td>62</td><td width="20"><img src="http://medyk.org/colors/5f5fd7.png" width="20" height="20" /></td>\n <td>63</td><td width="20"><img src="http://medyk.org/colors/5f5fff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>64</td><td width="20"><img src="http://medyk.org/colors/5f8700.png" width="20" height="20" /></td>\n <td>65</td><td width="20"><img src="http://medyk.org/colors/5f875f.png" width="20" height="20" /></td>\n <td>66</td><td width="20"><img src="http://medyk.org/colors/5f8787.png" width="20" height="20" /></td>\n <td>67</td><td width="20"><img src="http://medyk.org/colors/5f87af.png" width="20" height="20" /></td>\n <td>68</td><td width="20"><img src="http://medyk.org/colors/5f87d7.png" width="20" height="20" /></td>\n <td>69</td><td width="20"><img src="http://medyk.org/colors/5f87ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>70</td><td width="20"><img src="http://medyk.org/colors/5faf00.png" width="20" height="20" /></td>\n <td>71</td><td width="20"><img src="http://medyk.org/colors/5faf5f.png" width="20" height="20" /></td>\n <td>72</td><td width="20"><img src="http://medyk.org/colors/5faf87.png" width="20" height="20" /></td>\n <td>73</td><td width="20"><img src="http://medyk.org/colors/5fafaf.png" width="20" height="20" /></td>\n <td>74</td><td width="20"><img src="http://medyk.org/colors/5fafd7.png" width="20" height="20" /></td>\n <td>75</td><td width="20"><img src="http://medyk.org/colors/5fafff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>76</td><td width="20"><img src="http://medyk.org/colors/5fd700.png" width="20" height="20" /></td>\n <td>77</td><td width="20"><img src="http://medyk.org/colors/5fd75f.png" width="20" height="20" /></td>\n <td>78</td><td width="20"><img src="http://medyk.org/colors/5fd787.png" width="20" height="20" /></td>\n <td>79</td><td width="20"><img src="http://medyk.org/colors/5fd7af.png" width="20" height="20" /></td>\n <td>80</td><td width="20"><img src="http://medyk.org/colors/5fd7d7.png" width="20" height="20" /></td>\n <td>81</td><td width="20"><img src="http://medyk.org/colors/5fd7ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>82</td><td width="20"><img src="http://medyk.org/colors/5fff00.png" width="20" height="20" /></td>\n <td>83</td><td width="20"><img src="http://medyk.org/colors/5fff5f.png" width="20" height="20" /></td>\n <td>84</td><td width="20"><img src="http://medyk.org/colors/5fff87.png" width="20" height="20" /></td>\n <td>85</td><td width="20"><img src="http://medyk.org/colors/5fffaf.png" width="20" height="20" /></td>\n <td>86</td><td width="20"><img src="http://medyk.org/colors/5fffd7.png" width="20" height="20" /></td>\n <td>87</td><td width="20"><img src="http://medyk.org/colors/5fffff.png" width="20" height="20" /></td>\n </tr>\n\n <tr>\n <td>88</td><td width="20"><img src="http://medyk.org/colors/870000.png" width="20" height="20" /></td>\n <td>89</td><td width="20"><img src="http://medyk.org/colors/87005f.png" width="20" height="20" /></td>\n <td>90</td><td width="20"><img src="http://medyk.org/colors/870087.png" width="20" height="20" /></td>\n <td>91</td><td width="20"><img src="http://medyk.org/colors/8700af.png" width="20" height="20" /></td>\n <td>92</td><td width="20"><img src="http://medyk.org/colors/8700d7.png" width="20" height="20" /></td>\n <td>93</td><td width="20"><img src="http://medyk.org/colors/8700ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>94</td><td width="20"><img src="http://medyk.org/colors/875f00.png" width="20" height="20" /></td>\n <td>95</td><td width="20"><img src="http://medyk.org/colors/875f5f.png" width="20" height="20" /></td>\n <td>96</td><td width="20"><img src="http://medyk.org/colors/875f87.png" width="20" height="20" /></td>\n <td>97</td><td width="20"><img src="http://medyk.org/colors/875faf.png" width="20" height="20" /></td>\n <td>98</td><td width="20"><img src="http://medyk.org/colors/875fd7.png" width="20" height="20" /></td>\n <td>99</td><td width="20"><img src="http://medyk.org/colors/875fff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>100</td><td width="20"><img src="http://medyk.org/colors/878700.png" width="20" height="20" /></td>\n <td>101</td><td width="20"><img src="http://medyk.org/colors/87875f.png" width="20" height="20" /></td>\n <td>102</td><td width="20"><img src="http://medyk.org/colors/878787.png" width="20" height="20" /></td>\n <td>103</td><td width="20"><img src="http://medyk.org/colors/8787af.png" width="20" height="20" /></td>\n <td>104</td><td width="20"><img src="http://medyk.org/colors/8787d7.png" width="20" height="20" /></td>\n <td>105</td><td width="20"><img src="http://medyk.org/colors/8787ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>106</td><td width="20"><img src="http://medyk.org/colors/87af00.png" width="20" height="20" /></td>\n <td>107</td><td width="20"><img src="http://medyk.org/colors/87af5f.png" width="20" height="20" /></td>\n <td>108</td><td width="20"><img src="http://medyk.org/colors/87af87.png" width="20" height="20" /></td>\n <td>109</td><td width="20"><img src="http://medyk.org/colors/87afaf.png" width="20" height="20" /></td>\n <td>110</td><td width="20"><img src="http://medyk.org/colors/87afd7.png" width="20" height="20" /></td>\n <td>111</td><td width="20"><img src="http://medyk.org/colors/87afff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>112</td><td width="20"><img src="http://medyk.org/colors/87d700.png" width="20" height="20" /></td>\n <td>113</td><td width="20"><img src="http://medyk.org/colors/87d75f.png" width="20" height="20" /></td>\n <td>114</td><td width="20"><img src="http://medyk.org/colors/87d787.png" width="20" height="20" /></td>\n <td>115</td><td width="20"><img src="http://medyk.org/colors/87d7af.png" width="20" height="20" /></td>\n <td>116</td><td width="20"><img src="http://medyk.org/colors/87d7d7.png" width="20" height="20" /></td>\n <td>117</td><td width="20"><img src="http://medyk.org/colors/87d7ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>118</td><td width="20"><img src="http://medyk.org/colors/87ff00.png" width="20" height="20" /></td>\n <td>119</td><td width="20"><img src="http://medyk.org/colors/87ff5f.png" width="20" height="20" /></td>\n <td>120</td><td width="20"><img src="http://medyk.org/colors/87ff87.png" width="20" height="20" /></td>\n <td>121</td><td width="20"><img src="http://medyk.org/colors/87ffaf.png" width="20" height="20" /></td>\n <td>122</td><td width="20"><img src="http://medyk.org/colors/87ffd7.png" width="20" height="20" /></td>\n <td>123</td><td width="20"><img src="http://medyk.org/colors/87ffff.png" width="20" height="20" /></td>\n </tr>\n\n <tr>\n <td>124</td><td width="20"><img src="http://medyk.org/colors/af0000.png" width="20" height="20" /></td>\n <td>125</td><td width="20"><img src="http://medyk.org/colors/af005f.png" width="20" height="20" /></td>\n <td>126</td><td width="20"><img src="http://medyk.org/colors/af0087.png" width="20" height="20" /></td>\n <td>127</td><td width="20"><img src="http://medyk.org/colors/af00af.png" width="20" height="20" /></td>\n <td>128</td><td width="20"><img src="http://medyk.org/colors/af00d7.png" width="20" height="20" /></td>\n <td>129</td><td width="20"><img src="http://medyk.org/colors/af00ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>130</td><td width="20"><img src="http://medyk.org/colors/af5f00.png" width="20" height="20" /></td>\n <td>131</td><td width="20"><img src="http://medyk.org/colors/af5f5f.png" width="20" height="20" /></td>\n <td>132</td><td width="20"><img src="http://medyk.org/colors/af5f87.png" width="20" height="20" /></td>\n <td>133</td><td width="20"><img src="http://medyk.org/colors/af5faf.png" width="20" height="20" /></td>\n <td>134</td><td width="20"><img src="http://medyk.org/colors/af5fd7.png" width="20" height="20" /></td>\n <td>135</td><td width="20"><img src="http://medyk.org/colors/af5fff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>136</td><td width="20"><img src="http://medyk.org/colors/af8700.png" width="20" height="20" /></td>\n <td>137</td><td width="20"><img src="http://medyk.org/colors/af875f.png" width="20" height="20" /></td>\n <td>138</td><td width="20"><img src="http://medyk.org/colors/af8787.png" width="20" height="20" /></td>\n <td>139</td><td width="20"><img src="http://medyk.org/colors/af87af.png" width="20" height="20" /></td>\n <td>140</td><td width="20"><img src="http://medyk.org/colors/af87d7.png" width="20" height="20" /></td>\n <td>141</td><td width="20"><img src="http://medyk.org/colors/af87ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>142</td><td width="20"><img src="http://medyk.org/colors/afaf00.png" width="20" height="20" /></td>\n <td>143</td><td width="20"><img src="http://medyk.org/colors/afaf5f.png" width="20" height="20" /></td>\n <td>144</td><td width="20"><img src="http://medyk.org/colors/afaf87.png" width="20" height="20" /></td>\n <td>145</td><td width="20"><img src="http://medyk.org/colors/afafaf.png" width="20" height="20" /></td>\n <td>146</td><td width="20"><img src="http://medyk.org/colors/afafd7.png" width="20" height="20" /></td>\n <td>147</td><td width="20"><img src="http://medyk.org/colors/afafff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>148</td><td width="20"><img src="http://medyk.org/colors/afd700.png" width="20" height="20" /></td>\n <td>149</td><td width="20"><img src="http://medyk.org/colors/afd75f.png" width="20" height="20" /></td>\n <td>150</td><td width="20"><img src="http://medyk.org/colors/afd787.png" width="20" height="20" /></td>\n <td>151</td><td width="20"><img src="http://medyk.org/colors/afd7af.png" width="20" height="20" /></td>\n <td>152</td><td width="20"><img src="http://medyk.org/colors/afd7d7.png" width="20" height="20" /></td>\n <td>153</td><td width="20"><img src="http://medyk.org/colors/afd7ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>154</td><td width="20"><img src="http://medyk.org/colors/afff00.png" width="20" height="20" /></td>\n <td>155</td><td width="20"><img src="http://medyk.org/colors/afff5f.png" width="20" height="20" /></td>\n <td>156</td><td width="20"><img src="http://medyk.org/colors/afff87.png" width="20" height="20" /></td>\n <td>157</td><td width="20"><img src="http://medyk.org/colors/afffaf.png" width="20" height="20" /></td>\n <td>158</td><td width="20"><img src="http://medyk.org/colors/afffd7.png" width="20" height="20" /></td>\n <td>159</td><td width="20"><img src="http://medyk.org/colors/afffff.png" width="20" height="20" /></td>\n </tr>\n\n <tr>\n <td>160</td><td width="20"><img src="http://medyk.org/colors/d70000.png" width="20" height="20" /></td>\n <td>161</td><td width="20"><img src="http://medyk.org/colors/d7005f.png" width="20" height="20" /></td>\n <td>162</td><td width="20"><img src="http://medyk.org/colors/d70087.png" width="20" height="20" /></td>\n <td>163</td><td width="20"><img src="http://medyk.org/colors/d700af.png" width="20" height="20" /></td>\n <td>164</td><td width="20"><img src="http://medyk.org/colors/d700d7.png" width="20" height="20" /></td>\n <td>165</td><td width="20"><img src="http://medyk.org/colors/d700ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>166</td><td width="20"><img src="http://medyk.org/colors/d75f00.png" width="20" height="20" /></td>\n <td>167</td><td width="20"><img src="http://medyk.org/colors/d75f5f.png" width="20" height="20" /></td>\n <td>168</td><td width="20"><img src="http://medyk.org/colors/d75f87.png" width="20" height="20" /></td>\n <td>169</td><td width="20"><img src="http://medyk.org/colors/d75faf.png" width="20" height="20" /></td>\n <td>170</td><td width="20"><img src="http://medyk.org/colors/d75fd7.png" width="20" height="20" /></td>\n <td>171</td><td width="20"><img src="http://medyk.org/colors/d75fff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>172</td><td width="20"><img src="http://medyk.org/colors/d78700.png" width="20" height="20" /></td>\n <td>173</td><td width="20"><img src="http://medyk.org/colors/d7875f.png" width="20" height="20" /></td>\n <td>174</td><td width="20"><img src="http://medyk.org/colors/d78787.png" width="20" height="20" /></td>\n <td>175</td><td width="20"><img src="http://medyk.org/colors/d787af.png" width="20" height="20" /></td>\n <td>176</td><td width="20"><img src="http://medyk.org/colors/d787d7.png" width="20" height="20" /></td>\n <td>177</td><td width="20"><img src="http://medyk.org/colors/d787ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>178</td><td width="20"><img src="http://medyk.org/colors/d7af00.png" width="20" height="20" /></td>\n <td>179</td><td width="20"><img src="http://medyk.org/colors/d7af5f.png" width="20" height="20" /></td>\n <td>180</td><td width="20"><img src="http://medyk.org/colors/d7af87.png" width="20" height="20" /></td>\n <td>181</td><td width="20"><img src="http://medyk.org/colors/d7afaf.png" width="20" height="20" /></td>\n <td>182</td><td width="20"><img src="http://medyk.org/colors/d7afd7.png" width="20" height="20" /></td>\n <td>183</td><td width="20"><img src="http://medyk.org/colors/d7afff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>184</td><td width="20"><img src="http://medyk.org/colors/d7d700.png" width="20" height="20" /></td>\n <td>185</td><td width="20"><img src="http://medyk.org/colors/d7d75f.png" width="20" height="20" /></td>\n <td>186</td><td width="20"><img src="http://medyk.org/colors/d7d787.png" width="20" height="20" /></td>\n <td>187</td><td width="20"><img src="http://medyk.org/colors/d7d7af.png" width="20" height="20" /></td>\n <td>188</td><td width="20"><img src="http://medyk.org/colors/d7d7d7.png" width="20" height="20" /></td>\n <td>189</td><td width="20"><img src="http://medyk.org/colors/d7d7ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>190</td><td width="20"><img src="http://medyk.org/colors/d7ff00.png" width="20" height="20" /></td>\n <td>191</td><td width="20"><img src="http://medyk.org/colors/d7ff5f.png" width="20" height="20" /></td>\n <td>192</td><td width="20"><img src="http://medyk.org/colors/d7ff87.png" width="20" height="20" /></td>\n <td>193</td><td width="20"><img src="http://medyk.org/colors/d7ffaf.png" width="20" height="20" /></td>\n <td>194</td><td width="20"><img src="http://medyk.org/colors/d7ffd7.png" width="20" height="20" /></td>\n <td>195</td><td width="20"><img src="http://medyk.org/colors/d7ffff.png" width="20" height="20" /></td>\n </tr>\n\n <tr>\n <td>196</td><td width="20"><img src="http://medyk.org/colors/ff0000.png" width="20" height="20" /></td>\n <td>197</td><td width="20"><img src="http://medyk.org/colors/ff005f.png" width="20" height="20" /></td>\n <td>198</td><td width="20"><img src="http://medyk.org/colors/ff0087.png" width="20" height="20" /></td>\n <td>199</td><td width="20"><img src="http://medyk.org/colors/ff00af.png" width="20" height="20" /></td>\n <td>200</td><td width="20"><img src="http://medyk.org/colors/ff00d7.png" width="20" height="20" /></td>\n <td>201</td><td width="20"><img src="http://medyk.org/colors/ff00ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>202</td><td width="20"><img src="http://medyk.org/colors/ff5f00.png" width="20" height="20" /></td>\n <td>203</td><td width="20"><img src="http://medyk.org/colors/ff5f5f.png" width="20" height="20" /></td>\n <td>204</td><td width="20"><img src="http://medyk.org/colors/ff5f87.png" width="20" height="20" /></td>\n <td>205</td><td width="20"><img src="http://medyk.org/colors/ff5faf.png" width="20" height="20" /></td>\n <td>206</td><td width="20"><img src="http://medyk.org/colors/ff5fd7.png" width="20" height="20" /></td>\n <td>207</td><td width="20"><img src="http://medyk.org/colors/ff5fff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>208</td><td width="20"><img src="http://medyk.org/colors/ff8700.png" width="20" height="20" /></td>\n <td>209</td><td width="20"><img src="http://medyk.org/colors/ff875f.png" width="20" height="20" /></td>\n <td>210</td><td width="20"><img src="http://medyk.org/colors/ff8787.png" width="20" height="20" /></td>\n <td>211</td><td width="20"><img src="http://medyk.org/colors/ff87af.png" width="20" height="20" /></td>\n <td>212</td><td width="20"><img src="http://medyk.org/colors/ff87d7.png" width="20" height="20" /></td>\n <td>213</td><td width="20"><img src="http://medyk.org/colors/ff87ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>214</td><td width="20"><img src="http://medyk.org/colors/ffaf00.png" width="20" height="20" /></td>\n <td>215</td><td width="20"><img src="http://medyk.org/colors/ffaf5f.png" width="20" height="20" /></td>\n <td>216</td><td width="20"><img src="http://medyk.org/colors/ffaf87.png" width="20" height="20" /></td>\n <td>217</td><td width="20"><img src="http://medyk.org/colors/ffafaf.png" width="20" height="20" /></td>\n <td>218</td><td width="20"><img src="http://medyk.org/colors/ffafd7.png" width="20" height="20" /></td>\n <td>219</td><td width="20"><img src="http://medyk.org/colors/ffafff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>220</td><td width="20"><img src="http://medyk.org/colors/ffd700.png" width="20" height="20" /></td>\n <td>221</td><td width="20"><img src="http://medyk.org/colors/ffd75f.png" width="20" height="20" /></td>\n <td>222</td><td width="20"><img src="http://medyk.org/colors/ffd787.png" width="20" height="20" /></td>\n <td>223</td><td width="20"><img src="http://medyk.org/colors/ffd7af.png" width="20" height="20" /></td>\n <td>224</td><td width="20"><img src="http://medyk.org/colors/ffd7d7.png" width="20" height="20" /></td>\n <td>225</td><td width="20"><img src="http://medyk.org/colors/ffd7ff.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>226</td><td width="20"><img src="http://medyk.org/colors/ffff00.png" width="20" height="20" /></td>\n <td>227</td><td width="20"><img src="http://medyk.org/colors/ffff5f.png" width="20" height="20" /></td>\n <td>228</td><td width="20"><img src="http://medyk.org/colors/ffff87.png" width="20" height="20" /></td>\n <td>229</td><td width="20"><img src="http://medyk.org/colors/ffffaf.png" width="20" height="20" /></td>\n <td>230</td><td width="20"><img src="http://medyk.org/colors/ffffd7.png" width="20" height="20" /></td>\n <td>231</td><td width="20"><img src="http://medyk.org/colors/ffffff.png" width="20" height="20" /></td>\n </tr>\n\n <tr>\n <td>232</td><td width="20"><img src="http://medyk.org/colors/080808.png" width="20" height="20" /></td>\n <td>233</td><td width="20"><img src="http://medyk.org/colors/121212.png" width="20" height="20" /></td>\n <td>234</td><td width="20"><img src="http://medyk.org/colors/1c1c1c.png" width="20" height="20" /></td>\n <td>235</td><td width="20"><img src="http://medyk.org/colors/262626.png" width="20" height="20" /></td>\n <td>236</td><td width="20"><img src="http://medyk.org/colors/303030.png" width="20" height="20" /></td>\n <td>237</td><td width="20"><img src="http://medyk.org/colors/3a3a3a.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>238</td><td width="20"><img src="http://medyk.org/colors/444444.png" width="20" height="20" /></td>\n <td>239</td><td width="20"><img src="http://medyk.org/colors/4e4e4e.png" width="20" height="20" /></td>\n <td>240</td><td width="20"><img src="http://medyk.org/colors/585858.png" width="20" height="20" /></td>\n <td>241</td><td width="20"><img src="http://medyk.org/colors/626262.png" width="20" height="20" /></td>\n <td>242</td><td width="20"><img src="http://medyk.org/colors/6c6c6c.png" width="20" height="20" /></td>\n <td>243</td><td width="20"><img src="http://medyk.org/colors/767676.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>244</td><td width="20"><img src="http://medyk.org/colors/808080.png" width="20" height="20" /></td>\n <td>245</td><td width="20"><img src="http://medyk.org/colors/8a8a8a.png" width="20" height="20" /></td>\n <td>246</td><td width="20"><img src="http://medyk.org/colors/949494.png" width="20" height="20" /></td>\n <td>247</td><td width="20"><img src="http://medyk.org/colors/9e9e9e.png" width="20" height="20" /></td>\n <td>248</td><td width="20"><img src="http://medyk.org/colors/a8a8a8.png" width="20" height="20" /></td>\n <td>249</td><td width="20"><img src="http://medyk.org/colors/b2b2b2.png" width="20" height="20" /></td>\n </tr>\n <tr>\n <td>250</td><td width="20"><img src="http://medyk.org/colors/bcbcbc.png" width="20" height="20" /></td>\n <td>251</td><td width="20"><img src="http://medyk.org/colors/c6c6c6.png" width="20" height="20" /></td>\n <td>252</td><td width="20"><img src="http://medyk.org/colors/d0d0d0.png" width="20" height="20" /></td>\n <td>253</td><td width="20"><img src="http://medyk.org/colors/dadada.png" width="20" height="20" /></td>\n <td>254</td><td width="20"><img src="http://medyk.org/colors/e4e4e4.png" width="20" height="20" /></td>\n <td>255</td><td width="20"><img src="http://medyk.org/colors/eeeeee.png" width="20" height="20" /></td>\n </tr>\n</table>\n\n#### Terminal reset\n\nTerminal can be cleared with `clc.reset`\n\n```javascript\nconsole.log(clc.reset);\n```\n\n#### Move around functions\n\n##### clc.move(x, y)\n\nMove cursor _x_ columns and _y_ rows away. Values can be positive or negative, e.g.:\n\n```javascript\nprocess.stdout.write(clc.move(-2, -2)); // Move cursors two columns and two rows back\n```\n\n##### clc.moveTo(x, y)\n\nAbsolute move. Sets cursor position at _x_ column and _y_ row\n\n```javascript\nprocess.stdout.write(clc.moveTo(0, 0)); // Move cursor to first row and first column in terminal window\n```\n\n##### clc.bol([n[, erase]])\n\nMove cursor to the begining of the line, with _n_ we may specify how many lines away we want to move, value can be positive or negative. Additionally we may decide to clear lines content with _erase_\n\n```javascript\nprocess.stdout.write(clc.bol(-2)); // Move cursor two lines back and place it at begin of the line\n```\n\n##### clc.up(n)\n\nMove cursor up _n_ rows\n\n##### clc.down(n)\n\nMove cursor down _n_ rows\n\n##### clc.right(n)\n\nMove cursor right _n_ columns\n\n##### clc.left(n)\n\nMove cursor left _n_ columns\n\n#### Terminal characteristics\n\n##### clc.width\n\nReturns terminal width\n\n##### clc.height\n\nReturns terminal height\n\n### Additional functionalities (provided as separate modules)\n\n#### trim(formatedText)\n\nTrims ANSI formatted string to plain text\n\n```javascript\nvar ansiTrim = require(\'cli-color/lib/trim\');\n\nvar plain = ansiTrim(formatted);\n```\n\n#### throbber(interval[, format])\n\nDisplays throbber on given interval.\nInterval should be [clock.interval](https://github.com/medikoo/clock) object\nOptionally throbber output can be formatted with given format\n\n```javascript\nvar interval = require(\'clock/lib/interval\')\n , ansiThrobber = require(\'cli-color/lib/throbber\');\n\nvar i = interval(200, true);\n\n// Display throbber while interval is ticking\nansiThrobber(i);\n\n// at any time you can stop/start interval\n// When interval is stopped throbber doesn\'t show\ni.stop();\n```\n\n## Tests [![Build Status](https://secure.travis-ci.org/medikoo/cli-color.png?branch=master)](https://secure.travis-ci.org/medikoo/cli-color)\n\n\t$ npm test\n',
7875 silly resolved readmeFilename: 'README.md',
7875 silly resolved _id: 'cli-color@0.2.2',
7875 silly resolved _from: 'cli-color@~0.2.2' },
7875 silly resolved { name: 'async',
7875 silly resolved description: 'Higher-order functions and common patterns for asynchronous code',
7875 silly resolved main: './lib/async',
7875 silly resolved author: { name: 'Caolan McMahon' },
7875 silly resolved version: '0.2.9',
7875 silly resolved repository: { type: 'git', url: 'https://github.com/caolan/async.git' },
7875 silly resolved bugs: { url: 'https://github.com/caolan/async/issues' },
7875 silly resolved licenses: [ [Object] ],
7875 silly resolved devDependencies: { nodeunit: '>0.0.0', 'uglify-js': '1.2.x', nodelint: '>0.0.0' },
7875 silly resolved jam: { main: 'lib/async.js', include: [Object] },
7875 silly resolved scripts: { test: 'nodeunit test/test-async.js' },
7875 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',
7875 silly resolved readmeFilename: 'README.md',
7875 silly resolved _id: 'async@0.2.9',
7875 silly resolved _from: 'async@~0.2.8' },
7875 silly resolved { name: 'lodash',
7875 silly resolved version: '1.2.1',
7875 silly resolved description: 'A low-level utility library delivering consistency, customization, performance, and extra features.',
7875 silly resolved homepage: 'http://lodash.com',
7875 silly resolved license: 'MIT',
7875 silly resolved main: './dist/lodash.js',
7875 silly resolved keywords:
7875 silly resolved [ 'browser',
7875 silly resolved 'client',
7875 silly resolved 'functional',
7875 silly resolved 'performance',
7875 silly resolved 'server',
7875 silly resolved 'speed',
7875 silly resolved 'util' ],
7875 silly resolved author:
7875 silly resolved { name: 'John-David Dalton',
7875 silly resolved email: 'john.david.dalton@gmail.com',
7875 silly resolved url: 'http://allyoucanleet.com/' },
7875 silly resolved bugs: { url: 'https://github.com/bestiejs/lodash/issues' },
7875 silly resolved repository: { type: 'git', url: 'https://github.com/bestiejs/lodash.git' },
7875 silly resolved bin: { lodash: './build.js' },
7875 silly resolved engines: [ 'node', 'rhino' ],
7875 silly resolved jam: { main: './dist/lodash.compat.js' },
7875 silly resolved readme: '# Lo-Dash <sup>v1.2.1</sup>\n\nA low-level utility library delivering consistency, [customization](https://github.com/bestiejs/lodash#custom-builds), [performance](http://lodash.com/benchmarks), and [extra features](https://github.com/bestiejs/lodash#features).\n\n## Download\n\n* Lo-Dash builds (for modern environments):<br>\n[Development](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.js) and\n[Production](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.min.js)\n\n* Lo-Dash compatibility builds (for legacy and modern environments):<br>\n[Development](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.compat.js) and\n[Production](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.compat.min.js)\n\n* Underscore compatibility builds:<br>\n[Development](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.underscore.js) and\n[Production](https://raw.github.com/bestiejs/lodash/v1.2.1/dist/lodash.underscore.min.js)\n\n* CDN copies of ≤ v1.2.1’s builds are available on [cdnjs](http://cdnjs.com/) thanks to [CloudFlare](http://www.cloudflare.com/):<br>\n[Lo-Dash dev](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.js),\n[Lo-Dash prod](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.min.js),<br>\n[Lo-Dash compat-dev](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.compat.js),\n[Lo-Dash compat-prod](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.compat.min.js),<br>\n[Underscore compat-dev](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.underscore.js), and\n[Underscore compat-prod](http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.underscore.min.js)\n\n* For optimal file size, [create a custom build](https://github.com/bestiejs/lodash#custom-builds) with only the features you need\n\n## Dive in\n\nWe’ve got [API docs](http://lodash.com/docs), [benchmarks](http://lodash.com/benchmarks), and [unit tests](http://lodash.com/tests).\n\nFor a list of upcoming features, check out our [roadmap](https://github.com/bestiejs/lodash/wiki/Roadmap).\n\n## Resources\n\nFor more information check out these articles, screencasts, and other videos over Lo-Dash:\n\n * Posts\n - [Say “Hello” to Lo-Dash](http://kitcambridge.be/blog/say-hello-to-lo-dash/)\n\n * Videos\n - [Introducing Lo-Dash](https://vimeo.com/44154599)\n - [Lo-Dash optimizations and custom builds](https://vimeo.com/44154601)\n - [Lo-Dash’s origin and why it’s a better utility belt](https://vimeo.com/44154600)\n - [Unit testing in Lo-Dash](https://vimeo.com/45865290)\n - [Lo-Dash’s approach to native method use](https://vimeo.com/48576012)\n - [CascadiaJS: Lo-Dash for a better utility belt](http://www.youtube.com/watch?v=dpPy4f_SeEk)\n\n## Features\n\n * AMD loader support ([RequireJS](http://requirejs.org/), [curl.js](https://github.com/cujojs/curl), 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”* defined](http://michaux.ca/articles/lazy-function-definition-pattern) methods\n * [_.cloneDeep](http://lodash.com/docs#cloneDeep) for deep cloning arrays and objects\n * [_.contains](http://lodash.com/docs#contains) accepts a `fromIndex` argument\n * [_.debounce](http://lodash.com/docs#debounce) and [_.throttle](http://lodash.com/docs#throttle) accept an `options` argument for more control\n * [_.createCallback](http://lodash.com/docs#createCallback) to customize how callback arguments are handled and support callback shorthands in mixins\n * [_.findIndex](http://lodash.com/docs#findIndex) and [_.findKey](http://lodash.com/docs#findKey) for finding indexes and keys of collections\n * [_.forEach](http://lodash.com/docs#forEach) is chainable and supports exiting iteration early\n * [_.forIn](http://lodash.com/docs#forIn) for iterating over an object’s own and inherited properties\n * [_.forOwn](http://lodash.com/docs#forOwn) for iterating over an object’s own properties\n * [_.isPlainObject](http://lodash.com/docs#isPlainObject) checks if values are created by the `Object` constructor\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 cross-environment behavior\n * [_.partial](http://lodash.com/docs#partial) and [_.partialRight](http://lodash.com/docs#partialRight) for partial application without `this` binding\n * [_.runInContext](http://lodash.com/docs#runInContext) for easier mocking and extended environment support\n * [_.support](http://lodash.com/docs#support) to flag environment features\n * [_.template](http://lodash.com/docs#template) supports [*“imports”* options](http://lodash.com/docs#templateSettings_imports), [ES6 template delimiters](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-7.8.6), and [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * [_.unzip](http://lodash.com/docs#unzip) as the inverse of [_.zip](http://lodash.com/docs#zip)\n * [_.where](http://lodash.com/docs#where) supports deep object comparisons\n * [_.clone](http://lodash.com/docs#clone), [_.omit](http://lodash.com/docs#omit), [_.pick](http://lodash.com/docs#pick),\n [and more…](http://lodash.com/docs "_.assign, _.cloneDeep, _.first, _.initial, _.isEqual, _.last, _.merge, _.rest") accept `callback` and `thisArg` arguments\n * [_.contains](http://lodash.com/docs#contains), [_.size](http://lodash.com/docs#size), [_.toArray](http://lodash.com/docs#toArray),\n [and more…](http://lodash.com/docs "_.at, _.countBy, _.every, _.filter, _.find, _.forEach, _.groupBy, _.invoke, _.map, _.max, _.min, _.pluck, _.reduce, _.reduceRight, _.reject, _.shuffle, _.some, _.sortBy, _.where") accept strings\n * [_.filter](http://lodash.com/docs#filter), [_.find](http://lodash.com/docs#find), [_.map](http://lodash.com/docs#map),\n [and more…](http://lodash.com/docs "_.countBy, _.every, _.first, _.groupBy, _.initial, _.last, _.max, _.min, _.reject, _.rest, _.some, _.sortBy, _.sortedIndex, _.uniq") support *“_.pluck”* and *“_.where”* `callback` shorthands\n\n## Support\n\nLo-Dash has been tested in at least Chrome 5~26, Firefox 2~20, IE 6-10, Opera 9.25~12, Safari 3-6, Node.js 0.4.8-0.10.5, Narwhal 0.3.2, PhantomJS 1.9.0, RingoJS 0.9, and Rhino 1.7RC5.\n\n## Custom builds\n\nCustom builds make it easy to create lightweight versions of Lo-Dash containing only the methods you need.\nTo top it off, we handle all method dependency and alias mapping for you.\nFor a more detailed summary over the differences between various builds, check out the [wiki entry](https://github.com/bestiejs/lodash/wiki/build-differences).\n\n * Backbone builds, with only methods required by Backbone, may be created using the `backbone` modifier argument.\n```bash\nlodash backbone\n```\n\n * Legacy builds, tailored for older environments without [ES5 support](http://es5.github.com/), may be created using the `legacy` modifier argument.\n```bash\nlodash legacy\n```\n\n * Modern builds, tailored for newer environments with ES5 support, may be created using the `modern` modifier argument.\n```bash\nlodash modern\n```\n\n * Mobile builds, without method compilation and most bug fixes for old browsers, may be created using the `mobile` modifier argument.\n```bash\nlodash mobile\n```\n\n * Strict builds, with `_.bindAll`, `_.defaults`, and `_.extend` in [strict mode](http://es5.github.com/#C), may be created using the `strict` modifier argument.\n```bash\nlodash strict\n```\n\n * Underscore builds, tailored for projects already using Underscore, may be created using the `underscore` modifier argument.\n```bash\nlodash underscore\n```\n\nCustom builds may be created using the following commands:\n\n * Use the `category` argument to pass comma separated categories of methods to include in the build.<br>\n Valid categories (case-insensitive) are *“arrays”*, *“chaining”*, *“collections”*, *“functions”*, *“objects”*, and *“utilities”*.\n```bash\nlodash category=collections,functions\nlodash category="collections, functions"\n```\n\n * Use the `exports` argument to pass comma separated names of ways to export the `LoDash` function.<br>\n Valid exports are *“amd”*, *“commonjs”*, *“global”*, *“node”*, and *“none”*.\n```bash\nlodash exports=amd,commonjs,node\nlodash exports="amd, commonjs, node"\n```\n\n * Use the `iife` argument to specify code to replace the immediately-invoked function expression that wraps Lo-Dash.\n```bash\nlodash iife="!function(window,undefined){%output%}(this)"\n```\n\n * Use the `include` argument to pass comma separated method/category names to include in the build.\n```bash\nlodash include=each,filter,map\nlodash include="each, filter, map"\n```\n\n * Use the `minus` argument to pass comma separated method/category names to remove from those included in the build.\n```bash\nlodash underscore minus=result,shuffle\nlodash underscore minus="result, shuffle"\n```\n\n * Use the `plus` argument to pass comma separated method/category names to add to those included in the build.\n```bash\nlodash backbone plus=random,template\nlodash backbone plus="random, template"\n```\n\n * Use the `template` argument to pass the file path pattern used to match template files to precompile.\n```bash\nlodash template="./*.jst"\n```\n\n * Use the `settings` argument to pass the template settings used when precompiling templates.\n```bash\nlodash settings="{interpolate:/\\{\\{([\\s\\S]+?)\\}\\}/g}"\n```\n\n * Use the `moduleId` argument to specify the AMD module ID of Lo-Dash, which defaults to “lodash”, used by precompiled templates.\n```bash\nlodash moduleId="underscore"\n```\n\nAll arguments, except `legacy` with `mobile`, `modern`, or `underscore`, may be combined.<br>\nUnless specified by `-o` or `--output`, all files created are saved to the current working directory.\n\nThe following options are also supported:\n\n * `-c`, `--stdout` ......... Write output to standard output\n * `-d`, `--debug` ........... Write only the non-minified development output\n * `-h`, `--help` ............. Display help information\n * `-m`, `--minify` ......... Write only the minified production output\n * `-o`, `--output` ......... Write output to a given path/filename\n * `-p`, `--source-map` .. Generate a source map for the minified output, using an optional source map URL\n * `-s`, `--silent` ......... Skip status updates normally logged to the console\n * `-V`, `--version` ....... Output current version of Lo-Dash\n\nThe `lodash` command-line utility is available when Lo-Dash is installed as a global package (i.e. `npm install -g lodash`).\n\n## Installation and usage\n\nIn browsers:\n\n```html\n<script src="lodash.js"></script>\n```\n\nUsing [`npm`](http://npmjs.org/):\n\n```bash\nnpm install lodash\n\nnpm install -g lodash\nnpm link lodash\n```\n\nTo avoid potential issues, update `npm` before installing Lo-Dash:\n\n```bash\nnpm install npm -g\n```\n\nIn [Node.js](http://nodejs.org/) and [RingoJS ≥ v0.8.0](http://ringojs.org/):\n\n```js\nvar _ = require(\'lodash\');\n\n// or as a drop-in replacement for Underscore\nvar _ = require(\'lodash/dist/lodash.underscore\');\n```\n\n**Note:** If Lo-Dash is installed globally, run [`npm link 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 [RingoJS ≤ v0.7.0](http://ringojs.org/):\n\n```js\nvar _ = require(\'lodash\')._;\n```\n\nIn [Rhino](http://www.mozilla.org/rhino/):\n\n```js\nload(\'lodash.js\');\n```\n\nIn an AMD loader like [RequireJS](http://requirejs.org/):\n\n```js\nrequire({\n \'paths\': {\n \'underscore\': \'path/to/lodash\'\n }\n},\n[\'underscore\'], function(_) {\n console.log(_.VERSION);\n});\n```\n\n## Release Notes\n\n### <sup>v1.2.1</sup>\n\n * Added Component package support\n * Updated the build utility to work with changes in GitHub’s API\n * Ensured `_.isPlainObject` works with objects created by `Object.create(null)`\n * Ensured *“isType”* methods return `false` for subclassed values\n * Ensured debounced functions, with `leading` and `trailing` calls enabled,<br>\n only perform trailing calls after they’re called more than once\n\nThe full changelog is available [here](https://github.com/bestiejs/lodash/wiki/Changelog).\n\n## BestieJS\n\nLo-Dash is part of the BestieJS *“Best in Class”* module collection. This means we promote solid browser/environment support, ES5+ precedents, unit testing, and plenty of documentation.\n\n## Author\n\n| [![twitter/jdalton](http://gravatar.com/avatar/299a3d891ff1920b69c364d061007043?s=70)](http://twitter.com/jdalton "Follow @jdalton on Twitter") |\n|---|\n| [John-David Dalton](http://allyoucanleet.com/) |\n\n## Contributors\n\n| [![twitter/kitcambridge](http://gravatar.com/avatar/6662a1d02f351b5ef2f8b4d815804661?s=70)](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [![twitter/mathias](http://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](http://twitter.com/mathias "Follow @mathias on Twitter") |\n|---|---|\n| [Kit Cambridge](http://kitcambridge.github.io/) | [Mathias Bynens](http://mathiasbynens.be/) |\n',
7875 silly resolved readmeFilename: 'README.md',
7875 silly resolved _id: 'lodash@1.2.1',
7875 silly resolved _from: 'lodash@~1.2.1' } ]
7876 info install mute-stream@0.0.3 into /opt/local/lib/node_modules/bower/node_modules/inquirer
7877 info install cli-color@0.2.2 into /opt/local/lib/node_modules/bower/node_modules/inquirer
7878 info install async@0.2.9 into /opt/local/lib/node_modules/bower/node_modules/inquirer
7879 info install lodash@1.2.1 into /opt/local/lib/node_modules/bower/node_modules/inquirer
7880 info installOne mute-stream@0.0.3
7881 info installOne cli-color@0.2.2
7882 info installOne async@0.2.9
7883 info installOne lodash@1.2.1
7884 info /opt/local/lib/node_modules/bower/node_modules/inquirer/node_modules/mute-stream unbuild
7885 info /opt/local/lib/node_modules/bower/node_modules/inquirer/node_modules/cli-color unbuild
7886 info /opt/local/lib/node_modules/bower/node_modules/inquirer/node_modules/async unbuild
7887 info /opt/local/lib/node_modules/bower/node_modules/inquirer/node_modules/lodash unbuild
7888 silly gunzTarPerm extractEntry src/object/forIn.js
7889 silly gunzTarPerm extractEntry src/object/mixIn.js
7890 silly gunzTarPerm extractEntry examples/slice.js
7891 silly gunzTarPerm extractEntry index.js
7892 silly gunzTarPerm extractEntry index.js
7893 silly gunzTarPerm extractEntry index.js
7894 silly gunzTarPerm extractEntry stringify.js
7895 silly gunzTarPerm extractEntry test.js
7896 silly gunzTarPerm extractEntry .gitmodules
7897 silly gunzTarPerm extractEntry index.js
7898 silly gunzTarPerm extractEntry index.js
7899 silly gunzTarPerm extractEntry lib/lru-cache.js
7900 silly gunzTarPerm extractEntry test/basic.js
7901 silly gunzTarPerm extractEntry mime.js
7902 silly gunzTarPerm extractEntry test.js
7903 silly gunzTarPerm extractEntry types/mime.types
7904 silly gunzTarPerm extractEntry types/node.types
7905 verbose tar unpack /Users/vaca/.npm/mute-stream/0.0.3/package.tgz
7906 silly lockFile 0468f234-nquirer-node-modules-mute-stream tar:///opt/local/lib/node_modules/bower/node_modules/inquirer/node_modules/mute-stream
7907 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/inquirer/node_modules/mute-stream /Users/vaca/.npm/0468f234-nquirer-node-modules-mute-stream.lock
7908 silly lockFile a60abbb3-pm-mute-stream-0-0-3-package-tgz tar:///Users/vaca/.npm/mute-stream/0.0.3/package.tgz
7909 verbose lock tar:///Users/vaca/.npm/mute-stream/0.0.3/package.tgz /Users/vaca/.npm/a60abbb3-pm-mute-stream-0-0-3-package-tgz.lock
7910 verbose tar unpack /Users/vaca/.npm/cli-color/0.2.2/package.tgz
7911 silly lockFile 51358d97--inquirer-node-modules-cli-color tar:///opt/local/lib/node_modules/bower/node_modules/inquirer/node_modules/cli-color
7912 verbose lock tar:///opt/local/lib/node_modules/bower/node_modules/inquirer/node_modules/cli-color /Users/vaca/.npm/51358d97--inquirer-node-modules-cli-color.lock
79
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment