Skip to content

Instantly share code, notes, and snippets.

@sundaymtn
Created February 5, 2014 17:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sundaymtn/8829073 to your computer and use it in GitHub Desktop.
Save sundaymtn/8829073 to your computer and use it in GitHub Desktop.
npm log from installing hubot-hipchat, first error appears to be with node-stringprep
This file has been truncated, but you can view the full file.
4002 info linkStuff node-uuid@1.4.1
4003 verbose linkBins node-uuid@1.4.1
4004 verbose linkMans node-uuid@1.4.1
4005 verbose rebuildBundles node-uuid@1.4.1
4006 info preinstall mime@1.2.11
4007 info install node-uuid@1.4.1
4008 http 304 https://registry.npmjs.org/stream-combiner
4009 silly registry.get cb [ 304,
4009 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4009 silly registry.get server: 'Apache',
4009 silly registry.get connection: 'Keep-Alive',
4009 silly registry.get 'keep-alive': 'timeout=10, max=45',
4009 silly registry.get etag: '"1H1S9EMQS4TE81WLH6CYPYR4A"',
4009 silly registry.get 'cache-control': 'max-age=1',
4009 silly registry.get vary: 'Accept' } ]
4010 verbose etag stream-combiner from cache
4011 info postinstall node-uuid@1.4.1
4012 verbose readDependencies using package.json deps
4013 verbose readDependencies using package.json deps
4014 silly resolved []
4015 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/mime
4016 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/mime
4017 verbose linkStuff [ false,
4017 verbose linkStuff false,
4017 verbose linkStuff false,
4017 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules' ]
4018 info linkStuff mime@1.2.11
4019 verbose linkBins mime@1.2.11
4020 verbose linkMans mime@1.2.11
4021 verbose rebuildBundles mime@1.2.11
4022 info install mime@1.2.11
4023 info postinstall mime@1.2.11
4024 silly lockFile 861d90d6-browser-resolve-1-2-2 browser-resolve@1.2.2
4025 silly lockFile 861d90d6-browser-resolve-1-2-2 browser-resolve@1.2.2
4026 silly lockFile 5a998fce-browser-resolve-1-2-1 browser-resolve@~1.2.1
4027 silly lockFile 5a998fce-browser-resolve-1-2-1 browser-resolve@~1.2.1
4028 silly addNameRange number 2 { name: 'stream-combiner',
4028 silly addNameRange range: '>=0.0.2-0 <0.1.0-0',
4028 silly addNameRange hasData: true }
4029 silly addNameRange versions [ 'stream-combiner', [ '0.0.0', '0.0.1', '0.0.2', '0.0.4' ] ]
4030 verbose addNamed [ 'stream-combiner', '0.0.4' ]
4031 verbose addNamed [ '0.0.4', '0.0.4' ]
4032 silly lockFile 1441c6a3-stream-combiner-0-0-4 stream-combiner@0.0.4
4033 verbose lock stream-combiner@0.0.4 /home/scarter/.npm/1441c6a3-stream-combiner-0-0-4.lock
4034 silly lockFile 8b6da3d1-duplexer-0-1-1 duplexer@0.1.1
4035 silly lockFile 8b6da3d1-duplexer-0-1-1 duplexer@0.1.1
4036 silly lockFile 6114aed3-duplexer-0-1-1 duplexer@~0.1.1
4037 silly lockFile 6114aed3-duplexer-0-1-1 duplexer@~0.1.1
4038 silly lockFile 9761ed0d-insert-module-globals-2-3-4 insert-module-globals@2.3.4
4039 silly lockFile 9761ed0d-insert-module-globals-2-3-4 insert-module-globals@2.3.4
4040 silly lockFile 5f861e33-insert-module-globals-2-3-0 insert-module-globals@~2.3.0
4041 silly lockFile 5f861e33-insert-module-globals-2-3-0 insert-module-globals@~2.3.0
4042 silly gunzTarPerm extractEntry test/parser-position.js
4043 silly gunzTarPerm extractEntry test/script-close-better.js
4044 silly lockFile 1441c6a3-stream-combiner-0-0-4 stream-combiner@0.0.4
4045 silly lockFile 1441c6a3-stream-combiner-0-0-4 stream-combiner@0.0.4
4046 silly gunzTarPerm extractEntry test/script.js
4047 silly gunzTarPerm extractEntry test/self-closing-child-strict.js
4048 silly lockFile 09587d05-stream-combiner-0-0-2 stream-combiner@~0.0.2
4049 silly lockFile 09587d05-stream-combiner-0-0-2 stream-combiner@~0.0.2
4050 silly lockFile e6d8c2aa-ules-brfs-node-modules-escodegen tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen
4051 silly lockFile e6d8c2aa-ules-brfs-node-modules-escodegen tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen
4052 silly lockFile d2d34f1d-npm-escodegen-0-0-17-package-tgz tar:///home/scarter/.npm/escodegen/0.0.17/package.tgz
4053 silly lockFile d2d34f1d-npm-escodegen-0-0-17-package-tgz tar:///home/scarter/.npm/escodegen/0.0.17/package.tgz
4054 silly lockFile d4cd329e-er-npm-tls-connect-0-2-2-package tar:///home/scarter/.npm/tls-connect/0.2.2/package
4055 silly lockFile d4cd329e-er-npm-tls-connect-0-2-2-package tar:///home/scarter/.npm/tls-connect/0.2.2/package
4056 silly lockFile 1f25971c-pm-tls-connect-0-2-2-package-tgz tar:///home/scarter/.npm/tls-connect/0.2.2/package.tgz
4057 silly lockFile 1f25971c-pm-tls-connect-0-2-2-package-tgz tar:///home/scarter/.npm/tls-connect/0.2.2/package.tgz
4058 info preinstall escodegen@0.0.17
4059 verbose chmod /home/scarter/.npm/tls-connect/0.2.2/package.tgz 644
4060 verbose chown /home/scarter/.npm/tls-connect/0.2.2/package.tgz [ 576, 10 ]
4061 silly lockFile 154af9b3-ls-connect-tls-connect-0-2-2-tgz https://registry.npmjs.org/tls-connect/-/tls-connect-0.2.2.tgz
4062 silly lockFile 154af9b3-ls-connect-tls-connect-0-2-2-tgz https://registry.npmjs.org/tls-connect/-/tls-connect-0.2.2.tgz
4063 verbose readDependencies using package.json deps
4064 silly lockFile 6cd49193-tls-connect-0-2-2 tls-connect@0.2.2
4065 silly lockFile 6cd49193-tls-connect-0-2-2 tls-connect@0.2.2
4066 verbose readDependencies using package.json deps
4067 silly lockFile 853e49db-tls-connect-0-2-0 tls-connect@~0.2.0
4068 silly lockFile 853e49db-tls-connect-0-2-0 tls-connect@~0.2.0
4069 silly resolved [ { name: 'node-stringprep',
4069 silly resolved version: '0.2.3',
4069 silly resolved main: 'index.js',
4069 silly resolved description: 'ICU StringPrep profiles',
4069 silly resolved keywords: [ 'unicode', 'stringprep', 'icu' ],
4069 silly resolved scripts: { test: 'grunt test', install: 'node-gyp rebuild' },
4069 silly resolved dependencies: { nan: '~0.7.0', bindings: '~1.1.1' },
4069 silly resolved devDependencies:
4069 silly resolved { proxyquire: '~0.5.2',
4069 silly resolved 'grunt-mocha-cli': '~1.3.0',
4069 silly resolved 'grunt-contrib-jshint': '~0.7.2',
4069 silly resolved should: '~2.1.1',
4069 silly resolved grunt: '~0.4.2' },
4069 silly resolved repository:
4069 silly resolved { type: 'git',
4069 silly resolved path: 'git://github.com/node-xmpp/node-stringprep.git' },
4069 silly resolved homepage: 'http://github.com/node-xmpp/node-stringprep',
4069 silly resolved bugs: { url: 'http://github.com/node-xmpp/node-stringprep/issues' },
4069 silly resolved author:
4069 silly resolved { name: 'Lloyd Watkin',
4069 silly resolved email: 'lloyd@evilprofessor.co.uk',
4069 silly resolved url: 'http://evilprofessor.co.uk' },
4069 silly resolved licenses: [ [Object] ],
4069 silly resolved engines: { node: '>=0.8' },
4069 silly resolved gypfile: true,
4069 silly resolved readme: '# node-stringprep #\n\n[![Build Status](https://travis-ci.org/node-xmpp/node-stringprep.png)](https://travis-ci.org/node-xmpp/node-stringprep)\n\n[Flattr this!](https://flattr.com/thing/44598/node-stringprep)\n\n## Purpose ##\n\nExposes predefined Unicode normalization functions that are required by many protocols. This is just a binding to [ICU](http://icu-project.org/), which is [said to be fast.](http://ayena.de/node/74)\n\n## Installation ##\n\n npm i node-stringprep\n\nIf `libicu` isn\'t available installation will gracefully fail and javascript fallbacks will be used.\n\n### Debian ###\n\n apt-get install libicu-dev\n\n### Gentoo ###\n\nemerge icu\n\n### OSX ###\n#### MacPorts ####\n port install icu +devel\n\n#### Boxen ####\n\n sudo ln -s /opt/boxen/homebrew/Cellar/icu4c/52.1/bin/icu-config /usr/local/bin/icu-config\n sudo ln -s /opt/boxen/homebrew/Cellar/icu4c/52.1/include/* /usr/local/include\n \n#### Homebrew ####\n brew install icu4c\n ln -s /usr/local/Cellar/icu4c/<VERSION>/bin/icu-config /usr/local/bin/icu-config\n ln -s /usr/local/Cellar/icu4c/<VERSION>/include/* /usr/local/include\n\nIf experiencing issues with \'homebrew\' installing version 50.1 of icu4c, try the following:\n\n brew search icu4c\n brew tap homebrew/versions\n brew versions icu4c\n cd $(brew --prefix) && git pull --rebase\n git checkout c25fd2f $(brew --prefix)/Library/Formula/icu4c.rb\n brew install icu4c\n\n## Usage ##\n\n var StringPrep = require(\'node-stringprep\').StringPrep;\n var prep = new StringPrep(\'nameprep\');\n prep.prepare(\'Äffchen\') // => \'äffchen\'\n\nFor a list of supported profiles, see [node-stringprep.cc](http://github.com/astro/node-stringprep/blob/master/node-stringprep.cc#L160)\n\nJavascript fallbacks can be disabled/enabled using the following methods on the `StringPrep` object:\n\n```javascript\nvar prep = new StringPrep(\'resourceprep\')\nprep.disableJsFallbacks()\nprep.enableJsFallbacks()\n```\n\nJavascript fallbacks are enabled by default. You can also check to see if native `icu` bindings can/will be used by calling the `isNative()` method:\n\n```javascript\nvar prep = new StringPrep(\'resourceprep\')\nprep.isNative() // true or false\n```\n',
4069 silly resolved readmeFilename: 'README.markdown',
4069 silly resolved _id: 'node-stringprep@0.2.3',
4069 silly resolved _from: 'node-stringprep@~0.2.0' },
4069 silly resolved { name: 'tls-connect',
4069 silly resolved version: '0.2.2',
4069 silly resolved description: 'tls.connect fallback',
4069 silly resolved main: 'starttls.js',
4069 silly resolved scripts: { test: 'echo "Error: no test specified" && exit 1' },
4069 silly resolved repository:
4069 silly resolved { type: 'git',
4069 silly resolved url: 'git://github.com/dodo/node-tls-connect.git' },
4069 silly resolved keywords: [ 'tls', 'connect', 'drop', 'in', 'replacement', 'patch' ],
4069 silly resolved author: { name: '▟ ▖▟ ▖' },
4069 silly resolved license: 'MIT',
4069 silly resolved bugs: { url: 'https://github.com/dodo/node-tls-connect/issues' },
4069 silly resolved readme: '\n*This Package holds a patch for nodejs >=0.11*\n\nto opt-in until nodejs merges this (or not) you can use this package as a drop-in replacement.\n\n```bash\nnpm install tls-connect\n```\n\nThis works also on node < 0.11 because it\'s using createSecurePair instead of TLSSocket then.\n',
4069 silly resolved readmeFilename: 'README.md',
4069 silly resolved homepage: 'https://github.com/dodo/node-tls-connect',
4069 silly resolved _id: 'tls-connect@0.2.2',
4069 silly resolved dist: { shasum: '61823f9d87210addc858a08f203a786022bba345' },
4069 silly resolved _from: 'tls-connect@~0.2.0',
4069 silly resolved _resolved: 'https://registry.npmjs.org/tls-connect/-/tls-connect-0.2.2.tgz' } ]
4070 info install node-stringprep@0.2.3 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core
4071 info install tls-connect@0.2.2 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core
4072 info installOne node-stringprep@0.2.3
4073 info installOne tls-connect@0.2.2
4074 verbose cache add [ 'esprima@~1.0.2', null ]
4075 verbose cache add name=undefined spec="esprima@~1.0.2" args=["esprima@~1.0.2",null]
4076 verbose parsed url { protocol: null,
4076 verbose parsed url slashes: null,
4076 verbose parsed url auth: null,
4076 verbose parsed url host: null,
4076 verbose parsed url port: null,
4076 verbose parsed url hostname: null,
4076 verbose parsed url hash: null,
4076 verbose parsed url search: null,
4076 verbose parsed url query: null,
4076 verbose parsed url pathname: 'esprima@~1.0.2',
4076 verbose parsed url path: 'esprima@~1.0.2',
4076 verbose parsed url href: 'esprima@~1.0.2' }
4077 verbose cache add name="esprima" spec="~1.0.2" args=["esprima","~1.0.2"]
4078 verbose parsed url { protocol: null,
4078 verbose parsed url slashes: null,
4078 verbose parsed url auth: null,
4078 verbose parsed url host: null,
4078 verbose parsed url port: null,
4078 verbose parsed url hostname: null,
4078 verbose parsed url hash: null,
4078 verbose parsed url search: null,
4078 verbose parsed url query: null,
4078 verbose parsed url pathname: '~1.0.2',
4078 verbose parsed url path: '~1.0.2',
4078 verbose parsed url href: '~1.0.2' }
4079 verbose addNamed [ 'esprima', '~1.0.2' ]
4080 verbose cache add [ 'estraverse@~0.0.4', null ]
4081 verbose cache add name=undefined spec="estraverse@~0.0.4" args=["estraverse@~0.0.4",null]
4082 verbose parsed url { protocol: null,
4082 verbose parsed url slashes: null,
4082 verbose parsed url auth: null,
4082 verbose parsed url host: null,
4082 verbose parsed url port: null,
4082 verbose parsed url hostname: null,
4082 verbose parsed url hash: null,
4082 verbose parsed url search: null,
4082 verbose parsed url query: null,
4082 verbose parsed url pathname: 'estraverse@~0.0.4',
4082 verbose parsed url path: 'estraverse@~0.0.4',
4082 verbose parsed url href: 'estraverse@~0.0.4' }
4083 verbose cache add name="estraverse" spec="~0.0.4" args=["estraverse","~0.0.4"]
4084 verbose parsed url { protocol: null,
4084 verbose parsed url slashes: null,
4084 verbose parsed url auth: null,
4084 verbose parsed url host: null,
4084 verbose parsed url port: null,
4084 verbose parsed url hostname: null,
4084 verbose parsed url hash: null,
4084 verbose parsed url search: null,
4084 verbose parsed url query: null,
4084 verbose parsed url pathname: '~0.0.4',
4084 verbose parsed url path: '~0.0.4',
4084 verbose parsed url href: '~0.0.4' }
4085 verbose addNamed [ 'estraverse', '~0.0.4' ]
4086 verbose addNamed [ null, '>=0.0.4-0 <0.1.0-0' ]
4087 silly lockFile 8dde2dd5-estraverse-0-0-4 estraverse@~0.0.4
4088 verbose lock estraverse@~0.0.4 /home/scarter/.npm/8dde2dd5-estraverse-0-0-4.lock
4089 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep unbuild
4090 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/tls-connect unbuild
4091 verbose cache add [ 'source-map@>= 0.1.2', null ]
4092 verbose cache add name=undefined spec="source-map@>= 0.1.2" args=["source-map@>= 0.1.2",null]
4093 verbose parsed url { protocol: null,
4093 verbose parsed url slashes: null,
4093 verbose parsed url auth: null,
4093 verbose parsed url host: null,
4093 verbose parsed url port: null,
4093 verbose parsed url hostname: null,
4093 verbose parsed url hash: null,
4093 verbose parsed url search: null,
4093 verbose parsed url query: null,
4093 verbose parsed url pathname: 'source-map@%3E=%200.1.2',
4093 verbose parsed url path: 'source-map@%3E=%200.1.2',
4093 verbose parsed url href: 'source-map@%3E=%200.1.2' }
4094 verbose cache add name="source-map" spec=">= 0.1.2" args=["source-map",">= 0.1.2"]
4095 verbose parsed url { protocol: null,
4095 verbose parsed url slashes: null,
4095 verbose parsed url auth: null,
4095 verbose parsed url host: null,
4095 verbose parsed url port: null,
4095 verbose parsed url hostname: null,
4095 verbose parsed url hash: null,
4095 verbose parsed url search: null,
4095 verbose parsed url query: null,
4095 verbose parsed url pathname: '%3E=%200.1.2',
4095 verbose parsed url path: '%3E=%200.1.2',
4095 verbose parsed url href: '%3E=%200.1.2' }
4096 verbose addNamed [ 'source-map', '>= 0.1.2' ]
4097 verbose addNamed [ null, '>=0.1.2' ]
4098 silly lockFile aeafb391-source-map-0-1-2 source-map@>= 0.1.2
4099 verbose lock source-map@>= 0.1.2 /home/scarter/.npm/aeafb391-source-map-0-1-2.lock
4100 silly addNameRange { name: 'estraverse',
4100 silly addNameRange range: '>=0.0.4-0 <0.1.0-0',
4100 silly addNameRange hasData: false }
4101 silly addNameRange { name: 'source-map', range: '>=0.1.2', hasData: false }
4102 verbose tar unpack /home/scarter/.npm/node-stringprep/0.2.3/package.tgz
4103 silly lockFile 98981e52-ore-node-modules-node-stringprep tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep
4104 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep /home/scarter/.npm/98981e52-ore-node-modules-node-stringprep.lock
4105 silly lockFile 3b796d5e-ode-stringprep-0-2-3-package-tgz tar:///home/scarter/.npm/node-stringprep/0.2.3/package.tgz
4106 verbose lock tar:///home/scarter/.npm/node-stringprep/0.2.3/package.tgz /home/scarter/.npm/3b796d5e-ode-stringprep-0-2-3-package-tgz.lock
4107 verbose tar unpack /home/scarter/.npm/tls-connect/0.2.2/package.tgz
4108 silly lockFile ba032b09-pp-core-node-modules-tls-connect tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/tls-connect
4109 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/tls-connect /home/scarter/.npm/ba032b09-pp-core-node-modules-tls-connect.lock
4110 silly lockFile 1f25971c-pm-tls-connect-0-2-2-package-tgz tar:///home/scarter/.npm/tls-connect/0.2.2/package.tgz
4111 verbose lock tar:///home/scarter/.npm/tls-connect/0.2.2/package.tgz /home/scarter/.npm/1f25971c-pm-tls-connect-0-2-2-package-tgz.lock
4112 silly gunzTarPerm modes [ '755', '644' ]
4113 silly gunzTarPerm modes [ '755', '644' ]
4114 verbose url raw estraverse
4115 verbose url resolving [ 'https://registry.npmjs.org/', './estraverse' ]
4116 verbose url resolved https://registry.npmjs.org/estraverse
4117 info trying registry request attempt 1 at 12:24:38
4118 verbose etag "AAI6SV3MY5K65O2VQ2IV1GJ1A"
4119 http GET https://registry.npmjs.org/estraverse
4120 verbose url raw source-map
4121 verbose url resolving [ 'https://registry.npmjs.org/', './source-map' ]
4122 verbose url resolved https://registry.npmjs.org/source-map
4123 info trying registry request attempt 1 at 12:24:38
4124 verbose etag "BNS3YXOHVY2ZEGQ1UCH53OD83"
4125 http GET https://registry.npmjs.org/source-map
4126 silly gunzTarPerm extractEntry package.json
4127 silly gunzTarPerm extractEntry package.json
4128 silly gunzTarPerm extractEntry .npmignore
4129 silly gunzTarPerm extractEntry LICENSE
4130 silly gunzTarPerm extractEntry README.md
4131 silly gunzTarPerm extractEntry _tls_wrap-0.11.10.js
4132 silly gunzTarPerm extractEntry Gruntfile.js
4133 silly gunzTarPerm extractEntry index.js
4134 silly gunzTarPerm extractEntry _tls_wrap-patch.js
4135 silly gunzTarPerm extractEntry binding.gyp
4136 silly gunzTarPerm extractEntry .jshintrc
4137 silly gunzTarPerm extractEntry starttls.js
4138 silly gunzTarPerm extractEntry allow-tls-server-connections.patch
4139 silly gunzTarPerm extractEntry .travis.yml
4140 silly gunzTarPerm extractEntry node-stringprep.cc
4141 silly gunzTarPerm extractEntry README.markdown
4142 silly gunzTarPerm extractEntry test/fallback.js
4143 silly gunzTarPerm extractEntry test/leakcheck.js
4144 silly gunzTarPerm extractEntry wscript
4145 silly lockFile c5d2389b-equest-node-modules-tough-cookie tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/tough-cookie
4146 silly lockFile c5d2389b-equest-node-modules-tough-cookie tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/tough-cookie
4147 silly lockFile bcdcef5a--tough-cookie-0-12-1-package-tgz tar:///home/scarter/.npm/tough-cookie/0.12.1/package.tgz
4148 silly lockFile bcdcef5a--tough-cookie-0-12-1-package-tgz tar:///home/scarter/.npm/tough-cookie/0.12.1/package.tgz
4149 info preinstall tough-cookie@0.12.1
4150 verbose readDependencies using package.json deps
4151 verbose readDependencies using package.json deps
4152 verbose cache add [ 'punycode@>=0.2.0', null ]
4153 verbose cache add name=undefined spec="punycode@>=0.2.0" args=["punycode@>=0.2.0",null]
4154 verbose parsed url { protocol: null,
4154 verbose parsed url slashes: null,
4154 verbose parsed url auth: null,
4154 verbose parsed url host: null,
4154 verbose parsed url port: null,
4154 verbose parsed url hostname: null,
4154 verbose parsed url hash: null,
4154 verbose parsed url search: null,
4154 verbose parsed url query: null,
4154 verbose parsed url pathname: 'punycode@%3E=0.2.0',
4154 verbose parsed url path: 'punycode@%3E=0.2.0',
4154 verbose parsed url href: 'punycode@%3E=0.2.0' }
4155 verbose cache add name="punycode" spec=">=0.2.0" args=["punycode",">=0.2.0"]
4156 verbose parsed url { protocol: null,
4156 verbose parsed url slashes: null,
4156 verbose parsed url auth: null,
4156 verbose parsed url host: null,
4156 verbose parsed url port: null,
4156 verbose parsed url hostname: null,
4156 verbose parsed url hash: null,
4156 verbose parsed url search: null,
4156 verbose parsed url query: null,
4156 verbose parsed url pathname: '%3E=0.2.0',
4156 verbose parsed url path: '%3E=0.2.0',
4156 verbose parsed url href: '%3E=0.2.0' }
4157 verbose addNamed [ 'punycode', '>=0.2.0' ]
4158 verbose addNamed [ null, '>=0.2.0' ]
4159 silly lockFile a6886041-punycode-0-2-0 punycode@>=0.2.0
4160 verbose lock punycode@>=0.2.0 /home/scarter/.npm/a6886041-punycode-0-2-0.lock
4161 silly addNameRange { name: 'punycode', range: '>=0.2.0', hasData: false }
4162 verbose url raw punycode
4163 verbose url resolving [ 'https://registry.npmjs.org/', './punycode' ]
4164 verbose url resolved https://registry.npmjs.org/punycode
4165 info trying registry request attempt 1 at 12:24:38
4166 verbose etag "CKGZ9UQO3RPAFD5YUPD3H4LQ9"
4167 http GET https://registry.npmjs.org/punycode
4168 silly lockFile 98981e52-ore-node-modules-node-stringprep tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep
4169 silly lockFile 98981e52-ore-node-modules-node-stringprep tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep
4170 silly lockFile 3b796d5e-ode-stringprep-0-2-3-package-tgz tar:///home/scarter/.npm/node-stringprep/0.2.3/package.tgz
4171 silly lockFile 3b796d5e-ode-stringprep-0-2-3-package-tgz tar:///home/scarter/.npm/node-stringprep/0.2.3/package.tgz
4172 info preinstall node-stringprep@0.2.3
4173 verbose readDependencies using package.json deps
4174 verbose readDependencies using package.json deps
4175 silly gunzTarPerm extractEntry test/self-closing-child.js
4176 silly gunzTarPerm extractEntry test/issue-23.js
4177 verbose cache add [ 'nan@~0.7.0', null ]
4178 verbose cache add name=undefined spec="nan@~0.7.0" args=["nan@~0.7.0",null]
4179 verbose parsed url { protocol: null,
4179 verbose parsed url slashes: null,
4179 verbose parsed url auth: null,
4179 verbose parsed url host: null,
4179 verbose parsed url port: null,
4179 verbose parsed url hostname: null,
4179 verbose parsed url hash: null,
4179 verbose parsed url search: null,
4179 verbose parsed url query: null,
4179 verbose parsed url pathname: 'nan@~0.7.0',
4179 verbose parsed url path: 'nan@~0.7.0',
4179 verbose parsed url href: 'nan@~0.7.0' }
4180 verbose cache add name="nan" spec="~0.7.0" args=["nan","~0.7.0"]
4181 verbose parsed url { protocol: null,
4181 verbose parsed url slashes: null,
4181 verbose parsed url auth: null,
4181 verbose parsed url host: null,
4181 verbose parsed url port: null,
4181 verbose parsed url hostname: null,
4181 verbose parsed url hash: null,
4181 verbose parsed url search: null,
4181 verbose parsed url query: null,
4181 verbose parsed url pathname: '~0.7.0',
4181 verbose parsed url path: '~0.7.0',
4181 verbose parsed url href: '~0.7.0' }
4182 verbose addNamed [ 'nan', '~0.7.0' ]
4183 verbose cache add [ 'bindings@~1.1.1', null ]
4184 verbose cache add name=undefined spec="bindings@~1.1.1" args=["bindings@~1.1.1",null]
4185 verbose parsed url { protocol: null,
4185 verbose parsed url slashes: null,
4185 verbose parsed url auth: null,
4185 verbose parsed url host: null,
4185 verbose parsed url port: null,
4185 verbose parsed url hostname: null,
4185 verbose parsed url hash: null,
4185 verbose parsed url search: null,
4185 verbose parsed url query: null,
4185 verbose parsed url pathname: 'bindings@~1.1.1',
4185 verbose parsed url path: 'bindings@~1.1.1',
4185 verbose parsed url href: 'bindings@~1.1.1' }
4186 verbose cache add name="bindings" spec="~1.1.1" args=["bindings","~1.1.1"]
4187 verbose parsed url { protocol: null,
4187 verbose parsed url slashes: null,
4187 verbose parsed url auth: null,
4187 verbose parsed url host: null,
4187 verbose parsed url port: null,
4187 verbose parsed url hostname: null,
4187 verbose parsed url hash: null,
4187 verbose parsed url search: null,
4187 verbose parsed url query: null,
4187 verbose parsed url pathname: '~1.1.1',
4187 verbose parsed url path: '~1.1.1',
4187 verbose parsed url href: '~1.1.1' }
4188 verbose addNamed [ 'bindings', '~1.1.1' ]
4189 silly lockFile ba032b09-pp-core-node-modules-tls-connect tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/tls-connect
4190 silly lockFile ba032b09-pp-core-node-modules-tls-connect tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/tls-connect
4191 silly lockFile 1f25971c-pm-tls-connect-0-2-2-package-tgz tar:///home/scarter/.npm/tls-connect/0.2.2/package.tgz
4192 silly lockFile 1f25971c-pm-tls-connect-0-2-2-package-tgz tar:///home/scarter/.npm/tls-connect/0.2.2/package.tgz
4193 info preinstall tls-connect@0.2.2
4194 verbose readDependencies using package.json deps
4195 verbose readDependencies using package.json deps
4196 silly resolved []
4197 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/tls-connect
4198 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/tls-connect
4199 verbose linkStuff [ false,
4199 verbose linkStuff false,
4199 verbose linkStuff false,
4199 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules' ]
4200 info linkStuff tls-connect@0.2.2
4201 verbose linkBins tls-connect@0.2.2
4202 verbose linkMans tls-connect@0.2.2
4203 verbose rebuildBundles tls-connect@0.2.2
4204 info install tls-connect@0.2.2
4205 info postinstall tls-connect@0.2.2
4206 silly lockFile 510e9726-odules-request-node-modules-hawk tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk
4207 silly lockFile 510e9726-odules-request-node-modules-hawk tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk
4208 silly lockFile c9f1e287-arter-npm-hawk-1-0-0-package-tgz tar:///home/scarter/.npm/hawk/1.0.0/package.tgz
4209 silly lockFile c9f1e287-arter-npm-hawk-1-0-0-package-tgz tar:///home/scarter/.npm/hawk/1.0.0/package.tgz
4210 info preinstall hawk@1.0.0
4211 verbose readDependencies using package.json deps
4212 verbose readDependencies using package.json deps
4213 verbose cache add [ 'hoek@0.9.x', null ]
4214 verbose cache add name=undefined spec="hoek@0.9.x" args=["hoek@0.9.x",null]
4215 verbose parsed url { protocol: null,
4215 verbose parsed url slashes: null,
4215 verbose parsed url auth: null,
4215 verbose parsed url host: null,
4215 verbose parsed url port: null,
4215 verbose parsed url hostname: null,
4215 verbose parsed url hash: null,
4215 verbose parsed url search: null,
4215 verbose parsed url query: null,
4215 verbose parsed url pathname: 'hoek@0.9.x',
4215 verbose parsed url path: 'hoek@0.9.x',
4215 verbose parsed url href: 'hoek@0.9.x' }
4216 verbose cache add name="hoek" spec="0.9.x" args=["hoek","0.9.x"]
4217 verbose parsed url { protocol: null,
4217 verbose parsed url slashes: null,
4217 verbose parsed url auth: null,
4217 verbose parsed url host: null,
4217 verbose parsed url port: null,
4217 verbose parsed url hostname: null,
4217 verbose parsed url hash: null,
4217 verbose parsed url search: null,
4217 verbose parsed url query: null,
4217 verbose parsed url pathname: '0.9.x',
4217 verbose parsed url path: '0.9.x',
4217 verbose parsed url href: '0.9.x' }
4218 verbose addNamed [ 'hoek', '0.9.x' ]
4219 verbose addNamed [ null, '>=0.9.0-0 <0.10.0-0' ]
4220 silly lockFile 58ccaf9a-hoek-0-9-x hoek@0.9.x
4221 verbose lock hoek@0.9.x /home/scarter/.npm/58ccaf9a-hoek-0-9-x.lock
4222 verbose cache add [ 'boom@0.4.x', null ]
4223 verbose cache add name=undefined spec="boom@0.4.x" args=["boom@0.4.x",null]
4224 verbose parsed url { protocol: null,
4224 verbose parsed url slashes: null,
4224 verbose parsed url auth: null,
4224 verbose parsed url host: null,
4224 verbose parsed url port: null,
4224 verbose parsed url hostname: null,
4224 verbose parsed url hash: null,
4224 verbose parsed url search: null,
4224 verbose parsed url query: null,
4224 verbose parsed url pathname: 'boom@0.4.x',
4224 verbose parsed url path: 'boom@0.4.x',
4224 verbose parsed url href: 'boom@0.4.x' }
4225 verbose cache add name="boom" spec="0.4.x" args=["boom","0.4.x"]
4226 verbose parsed url { protocol: null,
4226 verbose parsed url slashes: null,
4226 verbose parsed url auth: null,
4226 verbose parsed url host: null,
4226 verbose parsed url port: null,
4226 verbose parsed url hostname: null,
4226 verbose parsed url hash: null,
4226 verbose parsed url search: null,
4226 verbose parsed url query: null,
4226 verbose parsed url pathname: '0.4.x',
4226 verbose parsed url path: '0.4.x',
4226 verbose parsed url href: '0.4.x' }
4227 verbose addNamed [ 'boom', '0.4.x' ]
4228 verbose addNamed [ null, '>=0.4.0-0 <0.5.0-0' ]
4229 silly lockFile 225d04ea-boom-0-4-x boom@0.4.x
4230 verbose lock boom@0.4.x /home/scarter/.npm/225d04ea-boom-0-4-x.lock
4231 silly addNameRange { name: 'hoek', range: '>=0.9.0-0 <0.10.0-0', hasData: false }
4232 silly addNameRange { name: 'boom', range: '>=0.4.0-0 <0.5.0-0', hasData: false }
4233 verbose cache add [ 'cryptiles@0.2.x', null ]
4234 verbose cache add name=undefined spec="cryptiles@0.2.x" args=["cryptiles@0.2.x",null]
4235 verbose parsed url { protocol: null,
4235 verbose parsed url slashes: null,
4235 verbose parsed url auth: null,
4235 verbose parsed url host: null,
4235 verbose parsed url port: null,
4235 verbose parsed url hostname: null,
4235 verbose parsed url hash: null,
4235 verbose parsed url search: null,
4235 verbose parsed url query: null,
4235 verbose parsed url pathname: 'cryptiles@0.2.x',
4235 verbose parsed url path: 'cryptiles@0.2.x',
4235 verbose parsed url href: 'cryptiles@0.2.x' }
4236 verbose cache add name="cryptiles" spec="0.2.x" args=["cryptiles","0.2.x"]
4237 verbose parsed url { protocol: null,
4237 verbose parsed url slashes: null,
4237 verbose parsed url auth: null,
4237 verbose parsed url host: null,
4237 verbose parsed url port: null,
4237 verbose parsed url hostname: null,
4237 verbose parsed url hash: null,
4237 verbose parsed url search: null,
4237 verbose parsed url query: null,
4237 verbose parsed url pathname: '0.2.x',
4237 verbose parsed url path: '0.2.x',
4237 verbose parsed url href: '0.2.x' }
4238 verbose addNamed [ 'cryptiles', '0.2.x' ]
4239 verbose addNamed [ null, '>=0.2.0-0 <0.3.0-0' ]
4240 silly lockFile 75d7e584-cryptiles-0-2-x cryptiles@0.2.x
4241 verbose lock cryptiles@0.2.x /home/scarter/.npm/75d7e584-cryptiles-0-2-x.lock
4242 silly addNameRange { name: 'cryptiles',
4242 silly addNameRange range: '>=0.2.0-0 <0.3.0-0',
4242 silly addNameRange hasData: false }
4243 verbose cache add [ 'sntp@0.2.x', null ]
4244 verbose cache add name=undefined spec="sntp@0.2.x" args=["sntp@0.2.x",null]
4245 verbose parsed url { protocol: null,
4245 verbose parsed url slashes: null,
4245 verbose parsed url auth: null,
4245 verbose parsed url host: null,
4245 verbose parsed url port: null,
4245 verbose parsed url hostname: null,
4245 verbose parsed url hash: null,
4245 verbose parsed url search: null,
4245 verbose parsed url query: null,
4245 verbose parsed url pathname: 'sntp@0.2.x',
4245 verbose parsed url path: 'sntp@0.2.x',
4245 verbose parsed url href: 'sntp@0.2.x' }
4246 verbose cache add name="sntp" spec="0.2.x" args=["sntp","0.2.x"]
4247 verbose parsed url { protocol: null,
4247 verbose parsed url slashes: null,
4247 verbose parsed url auth: null,
4247 verbose parsed url host: null,
4247 verbose parsed url port: null,
4247 verbose parsed url hostname: null,
4247 verbose parsed url hash: null,
4247 verbose parsed url search: null,
4247 verbose parsed url query: null,
4247 verbose parsed url pathname: '0.2.x',
4247 verbose parsed url path: '0.2.x',
4247 verbose parsed url href: '0.2.x' }
4248 verbose addNamed [ 'sntp', '0.2.x' ]
4249 verbose addNamed [ null, '>=0.2.0-0 <0.3.0-0' ]
4250 silly lockFile b35a0361-sntp-0-2-x sntp@0.2.x
4251 verbose lock sntp@0.2.x /home/scarter/.npm/b35a0361-sntp-0-2-x.lock
4252 silly gunzTarPerm extractEntry test/self-closing-tag.js
4253 silly gunzTarPerm extractEntry test/index.js
4254 verbose url raw hoek
4255 verbose url resolving [ 'https://registry.npmjs.org/', './hoek' ]
4256 verbose url resolved https://registry.npmjs.org/hoek
4257 info trying registry request attempt 1 at 12:24:38
4258 verbose etag "35O3Y5X0YUTDZP2PJNLDDQPZU"
4259 http GET https://registry.npmjs.org/hoek
4260 silly addNameRange { name: 'sntp', range: '>=0.2.0-0 <0.3.0-0', hasData: false }
4261 verbose url raw cryptiles
4262 verbose url resolving [ 'https://registry.npmjs.org/', './cryptiles' ]
4263 verbose url resolved https://registry.npmjs.org/cryptiles
4264 info trying registry request attempt 1 at 12:24:38
4265 verbose etag "E8CJFBP1PN4V4IYR058PDSSYU"
4266 http GET https://registry.npmjs.org/cryptiles
4267 silly gunzTarPerm extractEntry test/stray-ending.js
4268 silly gunzTarPerm extractEntry test/flush.js
4269 verbose url raw boom
4270 verbose url resolving [ 'https://registry.npmjs.org/', './boom' ]
4271 verbose url resolved https://registry.npmjs.org/boom
4272 info trying registry request attempt 1 at 12:24:38
4273 verbose etag "EFVHAI917WYBMZ59CZRM5TX1S"
4274 http GET https://registry.npmjs.org/boom
4275 silly gunzTarPerm extractEntry test/trailing-attribute-no-value.js
4276 silly gunzTarPerm extractEntry test/entity-mega.js
4277 silly gunzTarPerm extractEntry test/trailing-non-whitespace.js
4278 silly gunzTarPerm extractEntry test/entities.js
4279 verbose url raw sntp
4280 verbose url resolving [ 'https://registry.npmjs.org/', './sntp' ]
4281 verbose url resolved https://registry.npmjs.org/sntp
4282 info trying registry request attempt 1 at 12:24:38
4283 verbose etag "8VD35U7JU50NF5K8OT4S4KW0Y"
4284 http GET https://registry.npmjs.org/sntp
4285 silly gunzTarPerm extractEntry test/unclosed-root.js
4286 silly gunzTarPerm extractEntry test/end_empty_stream.js
4287 silly gunzTarPerm extractEntry test/unquoted.js
4288 silly gunzTarPerm extractEntry test/emoji.js
4289 silly gunzTarPerm extractEntry test/utf8-split.js
4290 silly gunzTarPerm extractEntry test/duplicate-attribute.js
4291 silly gunzTarPerm extractEntry test/xmlns-as-tag-name.js
4292 silly gunzTarPerm extractEntry test/cyrillic.js
4293 silly gunzTarPerm extractEntry test/xmlns-issue-41.js
4294 silly gunzTarPerm extractEntry test/cdata.js
4295 silly gunzTarPerm extractEntry test/xmlns-rebinding.js
4296 silly gunzTarPerm extractEntry test/cdata-multiple.js
4297 silly gunzTarPerm extractEntry test/xmlns-strict.js
4298 silly gunzTarPerm extractEntry test/cdata-fake-end.js
4299 silly gunzTarPerm extractEntry test/xmlns-unbound-element.js
4300 silly gunzTarPerm extractEntry test/cdata-end-split.js
4301 silly gunzTarPerm extractEntry test/xmlns-unbound.js
4302 silly gunzTarPerm extractEntry test/cdata-chunked.js
4303 silly gunzTarPerm extractEntry test/xmlns-xml-default-ns.js
4304 silly gunzTarPerm extractEntry test/case.js
4305 silly gunzTarPerm extractEntry test/xmlns-xml-default-prefix-attribute.js
4306 silly gunzTarPerm extractEntry test/buffer-overrun.js
4307 silly gunzTarPerm extractEntry test/xmlns-xml-default-prefix.js
4308 silly gunzTarPerm extractEntry test/attribute-no-space.js
4309 silly gunzTarPerm extractEntry test/xmlns-xml-default-redefine.js
4310 silly gunzTarPerm extractEntry test/issue-84.js
4311 silly lockFile 8eb7b379-ode-modules-ltx-node-modules-sax tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/ltx/node_modules/sax
4312 silly lockFile 8eb7b379-ode-modules-ltx-node-modules-sax tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/ltx/node_modules/sax
4313 silly lockFile ec5de420-carter-npm-sax-0-6-0-package-tgz tar:///home/scarter/.npm/sax/0.6.0/package.tgz
4314 silly lockFile ec5de420-carter-npm-sax-0-6-0-package-tgz tar:///home/scarter/.npm/sax/0.6.0/package.tgz
4315 info preinstall sax@0.6.0
4316 verbose readDependencies using package.json deps
4317 verbose readDependencies using package.json deps
4318 silly resolved []
4319 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/ltx/node_modules/sax
4320 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/ltx/node_modules/sax
4321 verbose linkStuff [ false,
4321 verbose linkStuff false,
4321 verbose linkStuff false,
4321 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/ltx/node_modules' ]
4322 info linkStuff sax@0.6.0
4323 verbose linkBins sax@0.6.0
4324 verbose linkMans sax@0.6.0
4325 verbose rebuildBundles sax@0.6.0
4326 info install sax@0.6.0
4327 info postinstall sax@0.6.0
4328 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/ltx
4329 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/ltx
4330 verbose linkStuff [ false,
4330 verbose linkStuff false,
4330 verbose linkStuff false,
4330 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules' ]
4331 info linkStuff ltx@0.3.4
4332 verbose linkBins ltx@0.3.4
4333 verbose linkMans ltx@0.3.4
4334 verbose rebuildBundles ltx@0.3.4
4335 verbose rebuildBundles [ 'sax' ]
4336 info install ltx@0.3.4
4337 silly gunzTarPerm modes [ '755', '644' ]
4338 info postinstall ltx@0.3.4
4339 silly gunzTarPerm extractEntry package.json
4340 silly gunzTarPerm extractEntry .npmignore
4341 silly gunzTarPerm extractEntry README.md
4342 silly gunzTarPerm extractEntry LICENSE
4343 silly gunzTarPerm extractEntry index.js
4344 silly gunzTarPerm extractEntry .travis.yml
4345 silly gunzTarPerm extractEntry images/hawk.png
4346 silly gunzTarPerm extractEntry images/logo.png
4347 silly gunzTarPerm extractEntry Makefile
4348 silly gunzTarPerm extractEntry lib/browser.js
4349 silly gunzTarPerm extractEntry lib/client.js
4350 silly gunzTarPerm extractEntry lib/crypto.js
4351 silly gunzTarPerm extractEntry lib/index.js
4352 silly gunzTarPerm extractEntry lib/server.js
4353 silly gunzTarPerm extractEntry lib/utils.js
4354 silly gunzTarPerm extractEntry test/browser.js
4355 silly gunzTarPerm extractEntry test/client.js
4356 silly gunzTarPerm extractEntry test/crypto.js
4357 silly gunzTarPerm extractEntry test/index.js
4358 silly gunzTarPerm extractEntry test/message.js
4359 silly gunzTarPerm extractEntry test/readme.js
4360 http 304 https://registry.npmjs.org/deep-equal
4361 silly registry.get cb [ 304,
4361 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4361 silly registry.get server: 'Apache',
4361 silly registry.get connection: 'Keep-Alive',
4361 silly registry.get 'keep-alive': 'timeout=10, max=44',
4361 silly registry.get etag: '"377Q8V0EVO1CBWK1TK5R0QA93"',
4361 silly registry.get 'cache-control': 'max-age=1',
4361 silly registry.get vary: 'Accept' } ]
4362 verbose etag deep-equal from cache
4363 http 304 https://registry.npmjs.org/inherits
4364 silly registry.get cb [ 304,
4364 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4364 silly registry.get server: 'Apache',
4364 silly registry.get connection: 'Keep-Alive',
4364 silly registry.get 'keep-alive': 'timeout=10, max=43',
4364 silly registry.get etag: '"5YT9BHEIBGCI2E0CGXSDZHV5B"',
4364 silly registry.get 'cache-control': 'max-age=1',
4364 silly registry.get vary: 'Accept' } ]
4365 verbose etag inherits from cache
4366 http 304 https://registry.npmjs.org/JSONStream
4367 silly registry.get cb [ 304,
4367 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4367 silly registry.get server: 'Apache',
4367 silly registry.get connection: 'Keep-Alive',
4367 silly registry.get 'keep-alive': 'timeout=10, max=44',
4367 silly registry.get etag: '"1ETCIQDFJDOUU5NIH0R6M93E4"',
4367 silly registry.get 'cache-control': 'max-age=1',
4367 silly registry.get vary: 'Accept' } ]
4368 verbose etag JSONStream from cache
4369 http 304 https://registry.npmjs.org/umd
4370 silly registry.get cb [ 304,
4370 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4370 silly registry.get server: 'Apache',
4370 silly registry.get connection: 'Keep-Alive',
4370 silly registry.get 'keep-alive': 'timeout=10, max=44',
4370 silly registry.get etag: '"A68ZEJZI42Q74WIOXOO0WNQ1Z"',
4370 silly registry.get 'cache-control': 'max-age=1',
4370 silly registry.get vary: 'Accept' } ]
4371 verbose etag umd from cache
4372 silly addNameRange number 2 { name: 'inherits', range: '>=2.0.1-0 <2.1.0-0', hasData: true }
4373 silly addNameRange versions [ 'inherits', [ '1.0.0', '2.0.0', '2.0.1' ] ]
4374 verbose addNamed [ 'inherits', '2.0.1' ]
4375 verbose addNamed [ '2.0.1', '2.0.1' ]
4376 silly lockFile 2b2e8f1b-inherits-2-0-1 inherits@2.0.1
4377 verbose lock inherits@2.0.1 /home/scarter/.npm/2b2e8f1b-inherits-2-0-1.lock
4378 silly addNameRange number 2 { name: 'deep-equal',
4378 silly addNameRange range: '>=0.1.0-0 <0.2.0-0',
4378 silly addNameRange hasData: true }
4379 silly addNameRange versions [ 'deep-equal',
4379 silly addNameRange [ '0.0.0', '0.1.0', '0.1.1', '0.1.2', '0.2.0', '0.2.1' ] ]
4380 verbose addNamed [ 'deep-equal', '0.1.2' ]
4381 verbose addNamed [ '0.1.2', '0.1.2' ]
4382 silly lockFile 0d13b97f-deep-equal-0-1-2 deep-equal@0.1.2
4383 verbose lock deep-equal@0.1.2 /home/scarter/.npm/0d13b97f-deep-equal-0-1-2.lock
4384 silly addNameRange number 2 { name: 'JSONStream',
4384 silly addNameRange range: '>=0.7.1-0 <0.8.0-0',
4384 silly addNameRange hasData: true }
4385 silly addNameRange versions [ 'JSONStream',
4385 silly addNameRange [ '0.0.0',
4385 silly addNameRange '0.1.0',
4385 silly addNameRange '0.1.1',
4385 silly addNameRange '0.1.2',
4385 silly addNameRange '0.1.3',
4385 silly addNameRange '0.2.0',
4385 silly addNameRange '0.2.1',
4385 silly addNameRange '0.2.2',
4385 silly addNameRange '0.2.3',
4385 silly addNameRange '0.3.0',
4385 silly addNameRange '0.3.1',
4385 silly addNameRange '0.3.2',
4385 silly addNameRange '0.3.3',
4385 silly addNameRange '0.4.0',
4385 silly addNameRange '0.4.1',
4385 silly addNameRange '0.4.2',
4385 silly addNameRange '0.4.3',
4385 silly addNameRange '0.4.4',
4385 silly addNameRange '0.5.0',
4385 silly addNameRange '0.6.0',
4385 silly addNameRange '0.6.1',
4385 silly addNameRange '0.6.2',
4385 silly addNameRange '0.6.3',
4385 silly addNameRange '0.6.4',
4385 silly addNameRange '0.7.0',
4385 silly addNameRange '0.7.1' ] ]
4386 verbose addNamed [ 'JSONStream', '0.7.1' ]
4387 verbose addNamed [ '0.7.1', '0.7.1' ]
4388 silly lockFile 478c31a3-JSONStream-0-7-1 JSONStream@0.7.1
4389 verbose lock JSONStream@0.7.1 /home/scarter/.npm/478c31a3-JSONStream-0-7-1.lock
4390 silly addNameRange number 2 { name: 'umd', range: '>=2.0.0-0 <2.1.0-0', hasData: true }
4391 silly addNameRange versions [ 'umd',
4391 silly addNameRange [ '1.0.0',
4391 silly addNameRange '1.1.0',
4391 silly addNameRange '1.1.1',
4391 silly addNameRange '1.2.0',
4391 silly addNameRange '1.2.1',
4391 silly addNameRange '1.3.0',
4391 silly addNameRange '1.3.1',
4391 silly addNameRange '2.0.0' ] ]
4392 verbose addNamed [ 'umd', '2.0.0' ]
4393 verbose addNamed [ '2.0.0', '2.0.0' ]
4394 silly lockFile 14512508-umd-2-0-0 umd@2.0.0
4395 verbose lock umd@2.0.0 /home/scarter/.npm/14512508-umd-2-0-0.lock
4396 http 304 https://registry.npmjs.org/concat-stream
4397 silly registry.get cb [ 304,
4397 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4397 silly registry.get server: 'Apache',
4397 silly registry.get connection: 'Keep-Alive',
4397 silly registry.get 'keep-alive': 'timeout=10, max=43',
4397 silly registry.get etag: '"2QEXDYLFCFAM5Q8EMLF10GNEN"',
4397 silly registry.get 'cache-control': 'max-age=1',
4397 silly registry.get vary: 'Accept' } ]
4398 verbose etag concat-stream from cache
4399 silly gunzTarPerm extractEntry test/server.js
4400 silly gunzTarPerm extractEntry test/uri.js
4401 silly lockFile 0d13b97f-deep-equal-0-1-2 deep-equal@0.1.2
4402 silly lockFile 0d13b97f-deep-equal-0-1-2 deep-equal@0.1.2
4403 silly lockFile a04f6826-deep-equal-0-1-0 deep-equal@~0.1.0
4404 silly lockFile a04f6826-deep-equal-0-1-0 deep-equal@~0.1.0
4405 silly lockFile 2b2e8f1b-inherits-2-0-1 inherits@2.0.1
4406 silly lockFile 2b2e8f1b-inherits-2-0-1 inherits@2.0.1
4407 silly lockFile 098ef39f-inherits-2-0-1 inherits@~2.0.1
4408 silly lockFile 098ef39f-inherits-2-0-1 inherits@~2.0.1
4409 silly lockFile 478c31a3-JSONStream-0-7-1 JSONStream@0.7.1
4410 silly lockFile 478c31a3-JSONStream-0-7-1 JSONStream@0.7.1
4411 silly addNameRange number 2 { name: 'concat-stream',
4411 silly addNameRange range: '>=1.4.1-0 <1.5.0-0',
4411 silly addNameRange hasData: true }
4412 silly addNameRange versions [ 'concat-stream',
4412 silly addNameRange [ '0.0.1',
4412 silly addNameRange '0.0.2',
4412 silly addNameRange '0.0.3',
4412 silly addNameRange '0.0.4',
4412 silly addNameRange '0.0.5',
4412 silly addNameRange '0.0.6',
4412 silly addNameRange '0.0.7',
4412 silly addNameRange '0.0.8',
4412 silly addNameRange '0.0.9',
4412 silly addNameRange '0.1.0',
4412 silly addNameRange '0.1.1',
4412 silly addNameRange '1.0.0',
4412 silly addNameRange '1.0.1',
4412 silly addNameRange '1.1.0',
4412 silly addNameRange '1.2.0',
4412 silly addNameRange '1.2.1',
4412 silly addNameRange '1.3.0',
4412 silly addNameRange '1.3.1',
4412 silly addNameRange '1.4.0',
4412 silly addNameRange '1.4.1' ] ]
4413 verbose addNamed [ 'concat-stream', '1.4.1' ]
4414 verbose addNamed [ '1.4.1', '1.4.1' ]
4415 silly lockFile 751dcae3-concat-stream-1-4-1 concat-stream@1.4.1
4416 verbose lock concat-stream@1.4.1 /home/scarter/.npm/751dcae3-concat-stream-1-4-1.lock
4417 silly lockFile f1b37b0b-JSONStream-0-7-1 JSONStream@~0.7.1
4418 silly lockFile f1b37b0b-JSONStream-0-7-1 JSONStream@~0.7.1
4419 silly gunzTarPerm extractEntry test/utils.js
4420 silly gunzTarPerm extractEntry example/usage.js
4421 silly lockFile 14512508-umd-2-0-0 umd@2.0.0
4422 silly lockFile 14512508-umd-2-0-0 umd@2.0.0
4423 silly lockFile 0ea80ff3-umd-2-0-0 umd@~2.0.0
4424 silly lockFile 0ea80ff3-umd-2-0-0 umd@~2.0.0
4425 silly lockFile 9d5c6459-ode-xmpp-node-modules-node-expat tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-expat
4426 silly lockFile 9d5c6459-ode-xmpp-node-modules-node-expat tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-expat
4427 silly lockFile dfc40b19-npm-node-expat-2-1-4-package-tgz tar:///home/scarter/.npm/node-expat/2.1.4/package.tgz
4428 silly lockFile dfc40b19-npm-node-expat-2-1-4-package-tgz tar:///home/scarter/.npm/node-expat/2.1.4/package.tgz
4429 info preinstall node-expat@2.1.4
4430 verbose readDependencies using package.json deps
4431 verbose readDependencies using package.json deps
4432 verbose cache add [ 'nan@~0.6.0', null ]
4433 verbose cache add name=undefined spec="nan@~0.6.0" args=["nan@~0.6.0",null]
4434 verbose parsed url { protocol: null,
4434 verbose parsed url slashes: null,
4434 verbose parsed url auth: null,
4434 verbose parsed url host: null,
4434 verbose parsed url port: null,
4434 verbose parsed url hostname: null,
4434 verbose parsed url hash: null,
4434 verbose parsed url search: null,
4434 verbose parsed url query: null,
4434 verbose parsed url pathname: 'nan@~0.6.0',
4434 verbose parsed url path: 'nan@~0.6.0',
4434 verbose parsed url href: 'nan@~0.6.0' }
4435 verbose cache add name="nan" spec="~0.6.0" args=["nan","~0.6.0"]
4436 verbose parsed url { protocol: null,
4436 verbose parsed url slashes: null,
4436 verbose parsed url auth: null,
4436 verbose parsed url host: null,
4436 verbose parsed url port: null,
4436 verbose parsed url hostname: null,
4436 verbose parsed url hash: null,
4436 verbose parsed url search: null,
4436 verbose parsed url query: null,
4436 verbose parsed url pathname: '~0.6.0',
4436 verbose parsed url path: '~0.6.0',
4436 verbose parsed url href: '~0.6.0' }
4437 verbose addNamed [ 'nan', '~0.6.0' ]
4438 verbose addNamed [ null, '>=0.6.0-0 <0.7.0-0' ]
4439 silly lockFile bb2a8d25-nan-0-6-0 nan@~0.6.0
4440 verbose lock nan@~0.6.0 /home/scarter/.npm/bb2a8d25-nan-0-6-0.lock
4441 silly addNameRange { name: 'nan', range: '>=0.6.0-0 <0.7.0-0', hasData: false }
4442 verbose url raw nan
4443 verbose url resolving [ 'https://registry.npmjs.org/', './nan' ]
4444 verbose url resolved https://registry.npmjs.org/nan
4445 info trying registry request attempt 1 at 12:24:38
4446 verbose etag "9UECXC57D7P4LHUYG2GZ8I49F"
4447 http GET https://registry.npmjs.org/nan
4448 silly lockFile 751dcae3-concat-stream-1-4-1 concat-stream@1.4.1
4449 silly lockFile 751dcae3-concat-stream-1-4-1 concat-stream@1.4.1
4450 silly lockFile 369ea520-concat-stream-1-4-1 concat-stream@~1.4.1
4451 silly lockFile 369ea520-concat-stream-1-4-1 concat-stream@~1.4.1
4452 silly lockFile 2f4dc8d7-odules-request-node-modules-hawk tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk
4453 silly lockFile 2f4dc8d7-odules-request-node-modules-hawk tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk
4454 silly lockFile c9f1e287-arter-npm-hawk-1-0-0-package-tgz tar:///home/scarter/.npm/hawk/1.0.0/package.tgz
4455 silly lockFile c9f1e287-arter-npm-hawk-1-0-0-package-tgz tar:///home/scarter/.npm/hawk/1.0.0/package.tgz
4456 info preinstall hawk@1.0.0
4457 verbose readDependencies using package.json deps
4458 verbose readDependencies using package.json deps
4459 verbose cache add [ 'hoek@0.9.x', null ]
4460 verbose cache add name=undefined spec="hoek@0.9.x" args=["hoek@0.9.x",null]
4461 verbose parsed url { protocol: null,
4461 verbose parsed url slashes: null,
4461 verbose parsed url auth: null,
4461 verbose parsed url host: null,
4461 verbose parsed url port: null,
4461 verbose parsed url hostname: null,
4461 verbose parsed url hash: null,
4461 verbose parsed url search: null,
4461 verbose parsed url query: null,
4461 verbose parsed url pathname: 'hoek@0.9.x',
4461 verbose parsed url path: 'hoek@0.9.x',
4461 verbose parsed url href: 'hoek@0.9.x' }
4462 verbose cache add name="hoek" spec="0.9.x" args=["hoek","0.9.x"]
4463 verbose parsed url { protocol: null,
4463 verbose parsed url slashes: null,
4463 verbose parsed url auth: null,
4463 verbose parsed url host: null,
4463 verbose parsed url port: null,
4463 verbose parsed url hostname: null,
4463 verbose parsed url hash: null,
4463 verbose parsed url search: null,
4463 verbose parsed url query: null,
4463 verbose parsed url pathname: '0.9.x',
4463 verbose parsed url path: '0.9.x',
4463 verbose parsed url href: '0.9.x' }
4464 verbose addNamed [ 'hoek', '0.9.x' ]
4465 verbose cache add [ 'boom@0.4.x', null ]
4466 verbose cache add name=undefined spec="boom@0.4.x" args=["boom@0.4.x",null]
4467 verbose parsed url { protocol: null,
4467 verbose parsed url slashes: null,
4467 verbose parsed url auth: null,
4467 verbose parsed url host: null,
4467 verbose parsed url port: null,
4467 verbose parsed url hostname: null,
4467 verbose parsed url hash: null,
4467 verbose parsed url search: null,
4467 verbose parsed url query: null,
4467 verbose parsed url pathname: 'boom@0.4.x',
4467 verbose parsed url path: 'boom@0.4.x',
4467 verbose parsed url href: 'boom@0.4.x' }
4468 verbose cache add name="boom" spec="0.4.x" args=["boom","0.4.x"]
4469 verbose parsed url { protocol: null,
4469 verbose parsed url slashes: null,
4469 verbose parsed url auth: null,
4469 verbose parsed url host: null,
4469 verbose parsed url port: null,
4469 verbose parsed url hostname: null,
4469 verbose parsed url hash: null,
4469 verbose parsed url search: null,
4469 verbose parsed url query: null,
4469 verbose parsed url pathname: '0.4.x',
4469 verbose parsed url path: '0.4.x',
4469 verbose parsed url href: '0.4.x' }
4470 verbose addNamed [ 'boom', '0.4.x' ]
4471 verbose cache add [ 'cryptiles@0.2.x', null ]
4472 verbose cache add name=undefined spec="cryptiles@0.2.x" args=["cryptiles@0.2.x",null]
4473 verbose parsed url { protocol: null,
4473 verbose parsed url slashes: null,
4473 verbose parsed url auth: null,
4473 verbose parsed url host: null,
4473 verbose parsed url port: null,
4473 verbose parsed url hostname: null,
4473 verbose parsed url hash: null,
4473 verbose parsed url search: null,
4473 verbose parsed url query: null,
4473 verbose parsed url pathname: 'cryptiles@0.2.x',
4473 verbose parsed url path: 'cryptiles@0.2.x',
4473 verbose parsed url href: 'cryptiles@0.2.x' }
4474 verbose cache add name="cryptiles" spec="0.2.x" args=["cryptiles","0.2.x"]
4475 verbose parsed url { protocol: null,
4475 verbose parsed url slashes: null,
4475 verbose parsed url auth: null,
4475 verbose parsed url host: null,
4475 verbose parsed url port: null,
4475 verbose parsed url hostname: null,
4475 verbose parsed url hash: null,
4475 verbose parsed url search: null,
4475 verbose parsed url query: null,
4475 verbose parsed url pathname: '0.2.x',
4475 verbose parsed url path: '0.2.x',
4475 verbose parsed url href: '0.2.x' }
4476 verbose addNamed [ 'cryptiles', '0.2.x' ]
4477 verbose cache add [ 'sntp@0.2.x', null ]
4478 verbose cache add name=undefined spec="sntp@0.2.x" args=["sntp@0.2.x",null]
4479 verbose parsed url { protocol: null,
4479 verbose parsed url slashes: null,
4479 verbose parsed url auth: null,
4479 verbose parsed url host: null,
4479 verbose parsed url port: null,
4479 verbose parsed url hostname: null,
4479 verbose parsed url hash: null,
4479 verbose parsed url search: null,
4479 verbose parsed url query: null,
4479 verbose parsed url pathname: 'sntp@0.2.x',
4479 verbose parsed url path: 'sntp@0.2.x',
4479 verbose parsed url href: 'sntp@0.2.x' }
4480 verbose cache add name="sntp" spec="0.2.x" args=["sntp","0.2.x"]
4481 verbose parsed url { protocol: null,
4481 verbose parsed url slashes: null,
4481 verbose parsed url auth: null,
4481 verbose parsed url host: null,
4481 verbose parsed url port: null,
4481 verbose parsed url hostname: null,
4481 verbose parsed url hash: null,
4481 verbose parsed url search: null,
4481 verbose parsed url query: null,
4481 verbose parsed url pathname: '0.2.x',
4481 verbose parsed url path: '0.2.x',
4481 verbose parsed url href: '0.2.x' }
4482 verbose addNamed [ 'sntp', '0.2.x' ]
4483 http 304 https://registry.npmjs.org/parents
4484 silly registry.get cb [ 304,
4484 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4484 silly registry.get server: 'Apache',
4484 silly registry.get connection: 'Keep-Alive',
4484 silly registry.get 'keep-alive': 'timeout=10, max=43',
4484 silly registry.get etag: '"D347QCGR6OS30LNMA67IAPUXK"',
4484 silly registry.get 'cache-control': 'max-age=1',
4484 silly registry.get vary: 'Accept' } ]
4485 verbose etag parents from cache
4486 http 304 https://registry.npmjs.org/os-browserify
4487 silly registry.get cb [ 304,
4487 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4487 silly registry.get server: 'Apache',
4487 silly registry.get connection: 'Keep-Alive',
4487 silly registry.get 'keep-alive': 'timeout=10, max=43',
4487 silly registry.get etag: '"61X0UFRU78ZTJK5XF87SXF3PJ"',
4487 silly registry.get 'cache-control': 'max-age=1',
4487 silly registry.get vary: 'Accept' } ]
4488 verbose etag os-browserify from cache
4489 silly addNameRange number 2 { name: 'parents', range: '>=0.0.1-0 <0.1.0-0', hasData: true }
4490 silly addNameRange versions [ 'parents', [ '0.0.0', '0.0.1', '0.0.2' ] ]
4491 verbose addNamed [ 'parents', '0.0.2' ]
4492 verbose addNamed [ '0.0.2', '0.0.2' ]
4493 silly lockFile d58b9a7e-parents-0-0-2 parents@0.0.2
4494 verbose lock parents@0.0.2 /home/scarter/.npm/d58b9a7e-parents-0-0-2.lock
4495 silly addNameRange number 2 { name: 'os-browserify',
4495 silly addNameRange range: '>=0.1.1-0 <0.2.0-0',
4495 silly addNameRange hasData: true }
4496 silly addNameRange versions [ 'os-browserify', [ '0.1.0', '0.1.1' ] ]
4497 verbose addNamed [ 'os-browserify', '0.1.1' ]
4498 verbose addNamed [ '0.1.1', '0.1.1' ]
4499 silly lockFile f3facbbe-os-browserify-0-1-1 os-browserify@0.1.1
4500 verbose lock os-browserify@0.1.1 /home/scarter/.npm/f3facbbe-os-browserify-0-1-1.lock
4501 silly lockFile d58b9a7e-parents-0-0-2 parents@0.0.2
4502 silly lockFile d58b9a7e-parents-0-0-2 parents@0.0.2
4503 silly lockFile c7835cd8-parents-0-0-1 parents@~0.0.1
4504 silly lockFile c7835cd8-parents-0-0-1 parents@~0.0.1
4505 silly lockFile f3facbbe-os-browserify-0-1-1 os-browserify@0.1.1
4506 silly lockFile f3facbbe-os-browserify-0-1-1 os-browserify@0.1.1
4507 silly lockFile 4baa140a-os-browserify-0-1-1 os-browserify@~0.1.1
4508 silly lockFile 4baa140a-os-browserify-0-1-1 os-browserify@~0.1.1
4509 http 304 https://registry.npmjs.org/assert
4510 silly registry.get cb [ 304,
4510 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4510 silly registry.get server: 'Apache',
4510 silly registry.get connection: 'Keep-Alive',
4510 silly registry.get 'keep-alive': 'timeout=10, max=43',
4510 silly registry.get etag: '"52PWPN4EWU0B4G84HCRFR5MXF"',
4510 silly registry.get 'cache-control': 'max-age=1',
4510 silly registry.get vary: 'Accept' } ]
4511 verbose etag assert from cache
4512 silly addNameRange number 2 { name: 'assert', range: '>=1.1.0-0 <1.2.0-0', hasData: true }
4513 silly addNameRange versions [ 'assert',
4513 silly addNameRange [ '0.4.9', '1.0.0', '1.0.1', '1.0.2', '1.0.3', '1.1.0' ] ]
4514 verbose addNamed [ 'assert', '1.1.0' ]
4515 verbose addNamed [ '1.1.0', '1.1.0' ]
4516 silly lockFile d04a4a3d-assert-1-1-0 assert@1.1.0
4517 verbose lock assert@1.1.0 /home/scarter/.npm/d04a4a3d-assert-1-1-0.lock
4518 http 304 https://registry.npmjs.org/constants-browserify
4519 silly registry.get cb [ 304,
4519 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4519 silly registry.get server: 'Apache',
4519 silly registry.get connection: 'Keep-Alive',
4519 silly registry.get 'keep-alive': 'timeout=10, max=42',
4519 silly registry.get etag: '"BP1WV0ZMRG9S649OYDNZ98GDO"',
4519 silly registry.get 'cache-control': 'max-age=1',
4519 silly registry.get vary: 'Accept' } ]
4520 verbose etag constants-browserify from cache
4521 silly addNameRange number 2 { name: 'constants-browserify',
4521 silly addNameRange range: '>=0.0.1-0 <0.1.0-0',
4521 silly addNameRange hasData: true }
4522 silly addNameRange versions [ 'constants-browserify', [ '0.0.0', '0.0.1' ] ]
4523 verbose addNamed [ 'constants-browserify', '0.0.1' ]
4524 verbose addNamed [ '0.0.1', '0.0.1' ]
4525 silly lockFile a3bc0fe1-constants-browserify-0-0-1 constants-browserify@0.0.1
4526 verbose lock constants-browserify@0.0.1 /home/scarter/.npm/a3bc0fe1-constants-browserify-0-0-1.lock
4527 silly lockFile d04a4a3d-assert-1-1-0 assert@1.1.0
4528 silly lockFile d04a4a3d-assert-1-1-0 assert@1.1.0
4529 silly lockFile e2a44147-assert-1-1-0 assert@~1.1.0
4530 silly lockFile e2a44147-assert-1-1-0 assert@~1.1.0
4531 silly lockFile a3bc0fe1-constants-browserify-0-0-1 constants-browserify@0.0.1
4532 silly lockFile a3bc0fe1-constants-browserify-0-0-1 constants-browserify@0.0.1
4533 silly lockFile 5d75bf11-constants-browserify-0-0-1 constants-browserify@~0.0.1
4534 silly lockFile 5d75bf11-constants-browserify-0-0-1 constants-browserify@~0.0.1
4535 http 304 https://registry.npmjs.org/vm-browserify
4536 silly registry.get cb [ 304,
4536 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4536 silly registry.get server: 'Apache',
4536 silly registry.get connection: 'Keep-Alive',
4536 silly registry.get 'keep-alive': 'timeout=10, max=42',
4536 silly registry.get etag: '"9G4NUXB9MVLP9539CT2RMBRRN"',
4536 silly registry.get 'cache-control': 'max-age=1',
4536 silly registry.get vary: 'Accept' } ]
4537 verbose etag vm-browserify from cache
4538 silly addNameRange number 2 { name: 'vm-browserify',
4538 silly addNameRange range: '>=0.0.1-0 <0.1.0-0',
4538 silly addNameRange hasData: true }
4539 silly addNameRange versions [ 'vm-browserify',
4539 silly addNameRange [ '0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4' ] ]
4540 verbose addNamed [ 'vm-browserify', '0.0.4' ]
4541 verbose addNamed [ '0.0.4', '0.0.4' ]
4542 silly lockFile ec9152ed-vm-browserify-0-0-4 vm-browserify@0.0.4
4543 verbose lock vm-browserify@0.0.4 /home/scarter/.npm/ec9152ed-vm-browserify-0-0-4.lock
4544 silly lockFile ec9152ed-vm-browserify-0-0-4 vm-browserify@0.0.4
4545 silly lockFile ec9152ed-vm-browserify-0-0-4 vm-browserify@0.0.4
4546 silly lockFile 10637342-vm-browserify-0-0-1 vm-browserify@~0.0.1
4547 silly lockFile 10637342-vm-browserify-0-0-1 vm-browserify@~0.0.1
4548 http 304 https://registry.npmjs.org/zlib-browserify
4549 silly registry.get cb [ 304,
4549 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4549 silly registry.get server: 'Apache',
4549 silly registry.get connection: 'Keep-Alive',
4549 silly registry.get 'keep-alive': 'timeout=10, max=42',
4549 silly registry.get etag: '"3H1EOS1STNCPPV36TSE9RY2L9"',
4549 silly registry.get 'cache-control': 'max-age=1',
4549 silly registry.get vary: 'Accept' } ]
4550 verbose etag zlib-browserify from cache
4551 http 304 https://registry.npmjs.org/events
4552 silly registry.get cb [ 304,
4552 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4552 silly registry.get server: 'Apache',
4552 silly registry.get connection: 'Keep-Alive',
4552 silly registry.get 'keep-alive': 'timeout=10, max=42',
4552 silly registry.get etag: '"ETCMI7IUJ4HXPLEAXG2G4T1ZW"',
4552 silly registry.get 'cache-control': 'max-age=1',
4552 silly registry.get vary: 'Accept' } ]
4553 verbose etag events from cache
4554 silly addNameRange number 2 { name: 'zlib-browserify',
4554 silly addNameRange range: '>=0.0.3-0 <0.1.0-0',
4554 silly addNameRange hasData: true }
4555 silly addNameRange versions [ 'zlib-browserify', [ '0.0.1', '0.0.2', '0.0.3' ] ]
4556 verbose addNamed [ 'zlib-browserify', '0.0.3' ]
4557 verbose addNamed [ '0.0.3', '0.0.3' ]
4558 silly lockFile 27355bc8-zlib-browserify-0-0-3 zlib-browserify@0.0.3
4559 verbose lock zlib-browserify@0.0.3 /home/scarter/.npm/27355bc8-zlib-browserify-0-0-3.lock
4560 silly addNameRange number 2 { name: 'events', range: '>=1.0.0-0 <1.1.0-0', hasData: true }
4561 silly addNameRange versions [ 'events',
4561 silly addNameRange [ '0.1.0', '0.1.1', '0.2.0', '0.3.0', '0.4.0', '0.5.0', '1.0.0' ] ]
4562 verbose addNamed [ 'events', '1.0.0' ]
4563 verbose addNamed [ '1.0.0', '1.0.0' ]
4564 silly lockFile f85bbf59-events-1-0-0 events@1.0.0
4565 verbose lock events@1.0.0 /home/scarter/.npm/f85bbf59-events-1-0-0.lock
4566 silly lockFile f85bbf59-events-1-0-0 events@1.0.0
4567 silly lockFile f85bbf59-events-1-0-0 events@1.0.0
4568 silly lockFile b4957559-events-1-0-0 events@~1.0.0
4569 silly lockFile b4957559-events-1-0-0 events@~1.0.0
4570 silly lockFile 27355bc8-zlib-browserify-0-0-3 zlib-browserify@0.0.3
4571 silly lockFile 27355bc8-zlib-browserify-0-0-3 zlib-browserify@0.0.3
4572 silly lockFile 2fd92963-zlib-browserify-0-0-3 zlib-browserify@~0.0.3
4573 silly lockFile 2fd92963-zlib-browserify-0-0-3 zlib-browserify@~0.0.3
4574 http 304 https://registry.npmjs.org/console-browserify
4575 silly registry.get cb [ 304,
4575 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4575 silly registry.get server: 'Apache',
4575 silly registry.get connection: 'Keep-Alive',
4575 silly registry.get 'keep-alive': 'timeout=10, max=42',
4575 silly registry.get etag: '"4FCFGFHYTMGXQLQT7IJ4BJS9Q"',
4575 silly registry.get 'cache-control': 'max-age=1',
4575 silly registry.get vary: 'Accept' } ]
4576 verbose etag console-browserify from cache
4577 silly addNameRange number 2 { name: 'console-browserify',
4577 silly addNameRange range: '>=1.0.1-0 <1.1.0-0',
4577 silly addNameRange hasData: true }
4578 silly addNameRange versions [ 'console-browserify',
4578 silly addNameRange [ '0.1.0',
4578 silly addNameRange '0.1.1',
4578 silly addNameRange '0.1.2',
4578 silly addNameRange '0.1.3',
4578 silly addNameRange '0.1.4',
4578 silly addNameRange '0.1.5',
4578 silly addNameRange '0.1.6',
4578 silly addNameRange '1.0.1',
4578 silly addNameRange '1.0.2',
4578 silly addNameRange '1.0.3' ] ]
4579 verbose addNamed [ 'console-browserify', '1.0.3' ]
4580 verbose addNamed [ '1.0.3', '1.0.3' ]
4581 silly lockFile 0c95e4dd-console-browserify-1-0-3 console-browserify@1.0.3
4582 verbose lock console-browserify@1.0.3 /home/scarter/.npm/0c95e4dd-console-browserify-1-0-3.lock
4583 silly lockFile 0c95e4dd-console-browserify-1-0-3 console-browserify@1.0.3
4584 silly lockFile 0c95e4dd-console-browserify-1-0-3 console-browserify@1.0.3
4585 silly lockFile 5a70c29f-console-browserify-1-0-1 console-browserify@~1.0.1
4586 silly lockFile 5a70c29f-console-browserify-1-0-1 console-browserify@~1.0.1
4587 http 304 https://registry.npmjs.org/native-buffer-browserify
4588 silly registry.get cb [ 304,
4588 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4588 silly registry.get server: 'Apache',
4588 silly registry.get connection: 'Keep-Alive',
4588 silly registry.get 'keep-alive': 'timeout=10, max=41',
4588 silly registry.get etag: '"1V7YY9NYFWOFWOX0619O1S8X7"',
4588 silly registry.get 'cache-control': 'max-age=1',
4588 silly registry.get vary: 'Accept' } ]
4589 verbose etag native-buffer-browserify from cache
4590 silly addNameRange number 2 { name: 'native-buffer-browserify',
4590 silly addNameRange range: '>=2.0.0-0 <2.1.0-0',
4590 silly addNameRange hasData: true }
4591 silly addNameRange versions [ 'native-buffer-browserify',
4591 silly addNameRange [ '0.3.0',
4591 silly addNameRange '0.5.0',
4591 silly addNameRange '1.0.0',
4591 silly addNameRange '1.0.1',
4591 silly addNameRange '1.0.2',
4591 silly addNameRange '1.0.3',
4591 silly addNameRange '1.1.0',
4591 silly addNameRange '1.2.0',
4591 silly addNameRange '1.2.1',
4591 silly addNameRange '1.2.2',
4591 silly addNameRange '1.2.3',
4591 silly addNameRange '1.2.4',
4591 silly addNameRange '2.0.0',
4591 silly addNameRange '2.0.2',
4591 silly addNameRange '2.0.3',
4591 silly addNameRange '2.0.5',
4591 silly addNameRange '2.0.7',
4591 silly addNameRange '2.0.8',
4591 silly addNameRange '2.0.9',
4591 silly addNameRange '2.0.10',
4591 silly addNameRange '2.0.12',
4591 silly addNameRange '2.0.13',
4591 silly addNameRange '2.0.14',
4591 silly addNameRange '2.0.15',
4591 silly addNameRange '2.0.16',
4591 silly addNameRange '2.0.17',
4591 silly addNameRange '2.1.0' ] ]
4592 verbose addNamed [ 'native-buffer-browserify', '2.0.17' ]
4593 verbose addNamed [ '2.0.17', '2.0.17' ]
4594 silly lockFile fb2b4b21-native-buffer-browserify-2-0-17 native-buffer-browserify@2.0.17
4595 verbose lock native-buffer-browserify@2.0.17 /home/scarter/.npm/fb2b4b21-native-buffer-browserify-2-0-17.lock
4596 silly lockFile fb2b4b21-native-buffer-browserify-2-0-17 native-buffer-browserify@2.0.17
4597 silly lockFile fb2b4b21-native-buffer-browserify-2-0-17 native-buffer-browserify@2.0.17
4598 silly lockFile c0e97340-native-buffer-browserify-2-0-0 native-buffer-browserify@~2.0.0
4599 silly lockFile c0e97340-native-buffer-browserify-2-0-0 native-buffer-browserify@~2.0.0
4600 http 304 https://registry.npmjs.org/url
4601 silly registry.get cb [ 304,
4601 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4601 silly registry.get server: 'Apache',
4601 silly registry.get connection: 'Keep-Alive',
4601 silly registry.get 'keep-alive': 'timeout=10, max=41',
4601 silly registry.get etag: '"57ZAH96GNPZ00UU974X2HE484"',
4601 silly registry.get 'cache-control': 'max-age=1',
4601 silly registry.get vary: 'Accept' } ]
4602 verbose etag url from cache
4603 silly addNameRange number 2 { name: 'url', range: '>=0.7.9-0 <0.8.0-0', hasData: true }
4604 silly addNameRange versions [ 'url', [ '0.4.9', '0.7.9' ] ]
4605 verbose addNamed [ 'url', '0.7.9' ]
4606 verbose addNamed [ '0.7.9', '0.7.9' ]
4607 silly lockFile 8679e697-url-0-7-9 url@0.7.9
4608 verbose lock url@0.7.9 /home/scarter/.npm/8679e697-url-0-7-9.lock
4609 http 304 https://registry.npmjs.org/https-browserify
4610 silly registry.get cb [ 304,
4610 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4610 silly registry.get server: 'Apache',
4610 silly registry.get connection: 'Keep-Alive',
4610 silly registry.get 'keep-alive': 'timeout=10, max=41',
4610 silly registry.get etag: '"8K83IY26CCQOQX8V26M5KVL9E"',
4610 silly registry.get 'cache-control': 'max-age=1',
4610 silly registry.get vary: 'Accept' } ]
4611 verbose etag https-browserify from cache
4612 silly lockFile 8679e697-url-0-7-9 url@0.7.9
4613 silly lockFile 8679e697-url-0-7-9 url@0.7.9
4614 silly lockFile db8d1f84-url-0-7-9 url@~0.7.9
4615 silly lockFile db8d1f84-url-0-7-9 url@~0.7.9
4616 silly addNameRange number 2 { name: 'https-browserify',
4616 silly addNameRange range: '>=0.0.0-0 <0.1.0-0',
4616 silly addNameRange hasData: true }
4617 silly addNameRange versions [ 'https-browserify', [ '0.0.0' ] ]
4618 verbose addNamed [ 'https-browserify', '0.0.0' ]
4619 verbose addNamed [ '0.0.0', '0.0.0' ]
4620 silly lockFile f270e13f-https-browserify-0-0-0 https-browserify@0.0.0
4621 verbose lock https-browserify@0.0.0 /home/scarter/.npm/f270e13f-https-browserify-0-0-0.lock
4622 silly lockFile f270e13f-https-browserify-0-0-0 https-browserify@0.0.0
4623 silly lockFile f270e13f-https-browserify-0-0-0 https-browserify@0.0.0
4624 silly lockFile 52e184be-https-browserify-0-0-0 https-browserify@~0.0.0
4625 silly lockFile 52e184be-https-browserify-0-0-0 https-browserify@~0.0.0
4626 http 304 https://registry.npmjs.org/string_decoder
4627 silly registry.get cb [ 304,
4627 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4627 silly registry.get server: 'Apache',
4627 silly registry.get connection: 'Keep-Alive',
4627 silly registry.get 'keep-alive': 'timeout=10, max=40',
4627 silly registry.get etag: '"6XA6Q928OY0ELMPIE6WPN3EOD"',
4627 silly registry.get 'cache-control': 'max-age=1',
4627 silly registry.get vary: 'Accept' } ]
4628 verbose etag string_decoder from cache
4629 silly addNameRange number 2 { name: 'string_decoder',
4629 silly addNameRange range: '>=0.0.0-0 <0.1.0-0',
4629 silly addNameRange hasData: true }
4630 silly addNameRange versions [ 'string_decoder',
4630 silly addNameRange [ '0.0.0', '0.0.1', '0.10.24', '0.11.10', '0.10.25', '0.11.10-1' ] ]
4631 verbose addNamed [ 'string_decoder', '0.0.1' ]
4632 verbose addNamed [ '0.0.1', '0.0.1' ]
4633 silly lockFile 17d84064-string-decoder-0-0-1 string_decoder@0.0.1
4634 verbose lock string_decoder@0.0.1 /home/scarter/.npm/17d84064-string-decoder-0-0-1.lock
4635 http 304 https://registry.npmjs.org/path-browserify
4636 silly registry.get cb [ 304,
4636 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4636 silly registry.get server: 'Apache',
4636 silly registry.get connection: 'Keep-Alive',
4636 silly registry.get 'keep-alive': 'timeout=10, max=41',
4636 silly registry.get etag: '"EPRU5729P4T0HPT7R9CHY0AP9"',
4636 silly registry.get 'cache-control': 'max-age=1',
4636 silly registry.get vary: 'Accept' } ]
4637 verbose etag path-browserify from cache
4638 silly addNameRange number 2 { name: 'path-browserify',
4638 silly addNameRange range: '>=0.0.0-0 <0.1.0-0',
4638 silly addNameRange hasData: true }
4639 silly addNameRange versions [ 'path-browserify', [ '0.0.0' ] ]
4640 verbose addNamed [ 'path-browserify', '0.0.0' ]
4641 verbose addNamed [ '0.0.0', '0.0.0' ]
4642 silly lockFile b8b47691-path-browserify-0-0-0 path-browserify@0.0.0
4643 verbose lock path-browserify@0.0.0 /home/scarter/.npm/b8b47691-path-browserify-0-0-0.lock
4644 silly lockFile b8b47691-path-browserify-0-0-0 path-browserify@0.0.0
4645 silly lockFile b8b47691-path-browserify-0-0-0 path-browserify@0.0.0
4646 silly lockFile 6ef47a7e-path-browserify-0-0-0 path-browserify@~0.0.0
4647 silly lockFile 6ef47a7e-path-browserify-0-0-0 path-browserify@~0.0.0
4648 silly lockFile 17d84064-string-decoder-0-0-1 string_decoder@0.0.1
4649 silly lockFile 17d84064-string-decoder-0-0-1 string_decoder@0.0.1
4650 silly lockFile e9924591-string-decoder-0-0-0 string_decoder@~0.0.0
4651 silly lockFile e9924591-string-decoder-0-0-0 string_decoder@~0.0.0
4652 http 304 https://registry.npmjs.org/stream-browserify
4653 silly registry.get cb [ 304,
4653 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4653 silly registry.get server: 'Apache',
4653 silly registry.get connection: 'Keep-Alive',
4653 silly registry.get 'keep-alive': 'timeout=10, max=41',
4653 silly registry.get etag: '"7Q73MAPVKI1MD40GNPZNCLOP"',
4653 silly registry.get 'cache-control': 'max-age=1',
4653 silly registry.get vary: 'Accept' } ]
4654 verbose etag stream-browserify from cache
4655 silly addNameRange number 2 { name: 'stream-browserify',
4655 silly addNameRange range: '>=0.1.0-0 <0.2.0-0',
4655 silly addNameRange hasData: true }
4656 silly addNameRange versions [ 'stream-browserify',
4656 silly addNameRange [ '0.0.0',
4656 silly addNameRange '0.0.1',
4656 silly addNameRange '0.0.2',
4656 silly addNameRange '0.0.3',
4656 silly addNameRange '0.0.4',
4656 silly addNameRange '0.1.0',
4656 silly addNameRange '0.1.1',
4656 silly addNameRange '0.1.2',
4656 silly addNameRange '0.1.3' ] ]
4657 verbose addNamed [ 'stream-browserify', '0.1.3' ]
4658 verbose addNamed [ '0.1.3', '0.1.3' ]
4659 silly lockFile f1850327-stream-browserify-0-1-3 stream-browserify@0.1.3
4660 verbose lock stream-browserify@0.1.3 /home/scarter/.npm/f1850327-stream-browserify-0-1-3.lock
4661 silly lockFile f1850327-stream-browserify-0-1-3 stream-browserify@0.1.3
4662 silly lockFile f1850327-stream-browserify-0-1-3 stream-browserify@0.1.3
4663 silly lockFile 33bc267f-stream-browserify-0-1-0 stream-browserify@~0.1.0
4664 silly lockFile 33bc267f-stream-browserify-0-1-0 stream-browserify@~0.1.0
4665 http 304 https://registry.npmjs.org/http-browserify
4666 silly registry.get cb [ 304,
4666 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4666 silly registry.get server: 'Apache',
4666 silly registry.get connection: 'Keep-Alive',
4666 silly registry.get 'keep-alive': 'timeout=10, max=40',
4666 silly registry.get etag: '"ABFGYR4NJI6NC3V1YH5S1SE6F"',
4666 silly registry.get 'cache-control': 'max-age=1',
4666 silly registry.get vary: 'Accept' } ]
4667 verbose etag http-browserify from cache
4668 silly addNameRange number 2 { name: 'http-browserify',
4668 silly addNameRange range: '>=1.1.0-0 <1.2.0-0',
4668 silly addNameRange hasData: true }
4669 silly addNameRange versions [ 'http-browserify',
4669 silly addNameRange [ '0.0.0',
4669 silly addNameRange '0.0.1',
4669 silly addNameRange '0.0.2',
4669 silly addNameRange '0.0.3',
4669 silly addNameRange '0.1.0',
4669 silly addNameRange '0.1.1',
4669 silly addNameRange '0.1.2',
4669 silly addNameRange '0.1.3',
4669 silly addNameRange '0.1.4',
4669 silly addNameRange '0.1.5',
4669 silly addNameRange '0.1.6',
4669 silly addNameRange '0.1.7',
4669 silly addNameRange '0.1.8',
4669 silly addNameRange '0.1.9',
4669 silly addNameRange '0.1.10',
4669 silly addNameRange '0.1.11',
4669 silly addNameRange '0.1.12',
4669 silly addNameRange '0.1.13',
4669 silly addNameRange '0.1.14',
4669 silly addNameRange '0.2.1',
4669 silly addNameRange '0.2.2',
4669 silly addNameRange '0.3.0',
4669 silly addNameRange '1.0.0',
4669 silly addNameRange '1.0.1',
4669 silly addNameRange '1.0.2',
4669 silly addNameRange '1.1.0' ] ]
4670 verbose addNamed [ 'http-browserify', '1.1.0' ]
4671 verbose addNamed [ '1.1.0', '1.1.0' ]
4672 silly lockFile 796c1365-http-browserify-1-1-0 http-browserify@1.1.0
4673 verbose lock http-browserify@1.1.0 /home/scarter/.npm/796c1365-http-browserify-1-1-0.lock
4674 http 304 https://registry.npmjs.org/punycode
4675 silly registry.get cb [ 304,
4675 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4675 silly registry.get server: 'Apache',
4675 silly registry.get connection: 'Keep-Alive',
4675 silly registry.get 'keep-alive': 'timeout=10, max=39',
4675 silly registry.get etag: '"CKGZ9UQO3RPAFD5YUPD3H4LQ9"',
4675 silly registry.get 'cache-control': 'max-age=1',
4675 silly registry.get vary: 'Accept' } ]
4676 verbose etag punycode from cache
4677 silly addNameRange number 2 { name: 'punycode', range: '>=1.2.3-0 <1.3.0-0', hasData: true }
4678 silly addNameRange versions [ 'punycode',
4678 silly addNameRange [ '0.0.1',
4678 silly addNameRange '0.0.2',
4678 silly addNameRange '0.0.1337',
4678 silly addNameRange '0.1.0',
4678 silly addNameRange '0.1.1',
4678 silly addNameRange '0.1.2',
4678 silly addNameRange '0.2.0',
4678 silly addNameRange '0.2.1',
4678 silly addNameRange '0.2.2',
4678 silly addNameRange '0.3.0',
4678 silly addNameRange '1.0.0',
4678 silly addNameRange '1.1.0',
4678 silly addNameRange '1.1.1',
4678 silly addNameRange '1.2.0',
4678 silly addNameRange '1.2.1',
4678 silly addNameRange '1.2.2',
4678 silly addNameRange '1.2.3' ] ]
4679 verbose addNamed [ 'punycode', '1.2.3' ]
4680 verbose addNamed [ '1.2.3', '1.2.3' ]
4681 silly lockFile 674b1c35-punycode-1-2-3 punycode@1.2.3
4682 verbose lock punycode@1.2.3 /home/scarter/.npm/674b1c35-punycode-1-2-3.lock
4683 silly lockFile 796c1365-http-browserify-1-1-0 http-browserify@1.1.0
4684 silly lockFile 796c1365-http-browserify-1-1-0 http-browserify@1.1.0
4685 silly lockFile 10db5fed-http-browserify-1-1-0 http-browserify@~1.1.0
4686 silly lockFile 10db5fed-http-browserify-1-1-0 http-browserify@~1.1.0
4687 silly lockFile 674b1c35-punycode-1-2-3 punycode@1.2.3
4688 silly lockFile 674b1c35-punycode-1-2-3 punycode@1.2.3
4689 silly lockFile 57fa6ee7-punycode-1-2-3 punycode@~1.2.3
4690 silly lockFile 57fa6ee7-punycode-1-2-3 punycode@~1.2.3
4691 http 304 https://registry.npmjs.org/domain-browser
4692 silly registry.get cb [ 304,
4692 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
4692 silly registry.get server: 'Apache',
4692 silly registry.get connection: 'Keep-Alive',
4692 silly registry.get 'keep-alive': 'timeout=10, max=40',
4692 silly registry.get etag: '"36H3M528N827MHS2FHDMIF88R"',
4692 silly registry.get 'cache-control': 'max-age=1',
4692 silly registry.get vary: 'Accept' } ]
4693 verbose etag domain-browser from cache
4694 silly addNameRange number 2 { name: 'domain-browser',
4694 silly addNameRange range: '>=1.1.0-0 <1.2.0-0',
4694 silly addNameRange hasData: true }
4695 silly addNameRange versions [ 'domain-browser', [ '1.0.0', '1.0.1', '1.1.0', '1.1.1' ] ]
4696 verbose addNamed [ 'domain-browser', '1.1.1' ]
4697 verbose addNamed [ '1.1.1', '1.1.1' ]
4698 silly lockFile 9c4d36e8-domain-browser-1-1-1 domain-browser@1.1.1
4699 verbose lock domain-browser@1.1.1 /home/scarter/.npm/9c4d36e8-domain-browser-1-1-1.lock
4700 http 304 https://registry.npmjs.org/timers-browserify
4701 silly registry.get cb [ 304,
4701 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:38 GMT',
4701 silly registry.get server: 'Apache',
4701 silly registry.get connection: 'Keep-Alive',
4701 silly registry.get 'keep-alive': 'timeout=10, max=40',
4701 silly registry.get etag: '"D97TZLL8TVE0O0SZKVLNP2585"',
4701 silly registry.get 'cache-control': 'max-age=1',
4701 silly registry.get vary: 'Accept' } ]
4702 verbose etag timers-browserify from cache
4703 silly addNameRange number 2 { name: 'timers-browserify',
4703 silly addNameRange range: '>=1.0.1-0 <1.1.0-0',
4703 silly addNameRange hasData: true }
4704 silly addNameRange versions [ 'timers-browserify', [ '0.0.0', '1.0.0', '1.0.1' ] ]
4705 verbose addNamed [ 'timers-browserify', '1.0.1' ]
4706 verbose addNamed [ '1.0.1', '1.0.1' ]
4707 silly lockFile 0aad66a2-timers-browserify-1-0-1 timers-browserify@1.0.1
4708 verbose lock timers-browserify@1.0.1 /home/scarter/.npm/0aad66a2-timers-browserify-1-0-1.lock
4709 silly lockFile 9c4d36e8-domain-browser-1-1-1 domain-browser@1.1.1
4710 silly lockFile 9c4d36e8-domain-browser-1-1-1 domain-browser@1.1.1
4711 silly lockFile 0aad66a2-timers-browserify-1-0-1 timers-browserify@1.0.1
4712 silly lockFile 0aad66a2-timers-browserify-1-0-1 timers-browserify@1.0.1
4713 silly lockFile 9321cd73-domain-browser-1-1-0 domain-browser@~1.1.0
4714 silly lockFile 9321cd73-domain-browser-1-1-0 domain-browser@~1.1.0
4715 silly lockFile 20f025d3-timers-browserify-1-0-1 timers-browserify@~1.0.1
4716 silly lockFile 20f025d3-timers-browserify-1-0-1 timers-browserify@~1.0.1
4717 http 304 https://registry.npmjs.org/tty-browserify
4718 silly registry.get cb [ 304,
4718 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
4718 silly registry.get server: 'Apache',
4718 silly registry.get connection: 'Keep-Alive',
4718 silly registry.get 'keep-alive': 'timeout=10, max=39',
4718 silly registry.get etag: '"77UW8UE9AZTHVZPKD1T9WX9UZ"',
4718 silly registry.get 'cache-control': 'max-age=1',
4718 silly registry.get vary: 'Accept' } ]
4719 verbose etag tty-browserify from cache
4720 silly addNameRange number 2 { name: 'tty-browserify',
4720 silly addNameRange range: '>=0.0.0-0 <0.1.0-0',
4720 silly addNameRange hasData: true }
4721 silly addNameRange versions [ 'tty-browserify', [ '0.0.0' ] ]
4722 verbose addNamed [ 'tty-browserify', '0.0.0' ]
4723 verbose addNamed [ '0.0.0', '0.0.0' ]
4724 silly lockFile 03e68594-tty-browserify-0-0-0 tty-browserify@0.0.0
4725 verbose lock tty-browserify@0.0.0 /home/scarter/.npm/03e68594-tty-browserify-0-0-0.lock
4726 silly lockFile 03e68594-tty-browserify-0-0-0 tty-browserify@0.0.0
4727 silly lockFile 03e68594-tty-browserify-0-0-0 tty-browserify@0.0.0
4728 silly lockFile b22de093-tty-browserify-0-0-0 tty-browserify@~0.0.0
4729 silly lockFile b22de093-tty-browserify-0-0-0 tty-browserify@~0.0.0
4730 http 304 https://registry.npmjs.org/minimist
4731 silly registry.get cb [ 304,
4731 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
4731 silly registry.get server: 'Apache',
4731 silly registry.get connection: 'Keep-Alive',
4731 silly registry.get 'keep-alive': 'timeout=10, max=39',
4731 silly registry.get etag: '"3SR60G34VYFBNTLGA3EM08FHY"',
4731 silly registry.get 'cache-control': 'max-age=1',
4731 silly registry.get vary: 'Accept' } ]
4732 verbose etag minimist from cache
4733 silly addNameRange number 2 { name: 'minimist', range: '>=0.0.5-0 <0.1.0-0', hasData: true }
4734 silly addNameRange versions [ 'minimist',
4734 silly addNameRange [ '0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5' ] ]
4735 verbose addNamed [ 'minimist', '0.0.5' ]
4736 verbose addNamed [ '0.0.5', '0.0.5' ]
4737 silly lockFile 7b943d62-minimist-0-0-5 minimist@0.0.5
4738 verbose lock minimist@0.0.5 /home/scarter/.npm/7b943d62-minimist-0-0-5.lock
4739 silly lockFile 7b943d62-minimist-0-0-5 minimist@0.0.5
4740 silly lockFile 7b943d62-minimist-0-0-5 minimist@0.0.5
4741 silly lockFile 6d04f4c5-minimist-0-0-5 minimist@~0.0.5
4742 silly lockFile 6d04f4c5-minimist-0-0-5 minimist@~0.0.5
4743 http 304 https://registry.npmjs.org/crypto-browserify
4744 silly registry.get cb [ 304,
4744 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
4744 silly registry.get server: 'Apache',
4744 silly registry.get connection: 'Keep-Alive',
4744 silly registry.get 'keep-alive': 'timeout=10, max=39',
4744 silly registry.get etag: '"9QD2XNEK3SNMBU6IPVPEQ4MWE"',
4744 silly registry.get 'cache-control': 'max-age=1',
4744 silly registry.get vary: 'Accept' } ]
4745 verbose etag crypto-browserify from cache
4746 silly addNameRange number 2 { name: 'crypto-browserify',
4746 silly addNameRange range: '>=1.0.9-0 <1.1.0-0',
4746 silly addNameRange hasData: true }
4747 silly addNameRange versions [ 'crypto-browserify',
4747 silly addNameRange [ '0.0.0',
4747 silly addNameRange '0.0.1',
4747 silly addNameRange '0.1.0',
4747 silly addNameRange '0.1.1',
4747 silly addNameRange '0.1.2',
4747 silly addNameRange '0.2.0',
4747 silly addNameRange '0.2.1',
4747 silly addNameRange '0.2.2',
4747 silly addNameRange '0.2.3',
4747 silly addNameRange '0.3.0',
4747 silly addNameRange '0.4.0',
4747 silly addNameRange '1.0.0',
4747 silly addNameRange '1.0.1',
4747 silly addNameRange '1.0.2',
4747 silly addNameRange '1.0.3',
4747 silly addNameRange '1.0.4',
4747 silly addNameRange '1.0.5',
4747 silly addNameRange '1.0.6',
4747 silly addNameRange '1.0.7',
4747 silly addNameRange '1.0.8',
4747 silly addNameRange '1.0.9',
4747 silly addNameRange '2.0.0',
4747 silly addNameRange '2.1.0' ] ]
4748 verbose addNamed [ 'crypto-browserify', '1.0.9' ]
4749 verbose addNamed [ '1.0.9', '1.0.9' ]
4750 silly lockFile 64f0a183-crypto-browserify-1-0-9 crypto-browserify@1.0.9
4751 verbose lock crypto-browserify@1.0.9 /home/scarter/.npm/64f0a183-crypto-browserify-1-0-9.lock
4752 http 304 https://registry.npmjs.org/util
4753 silly registry.get cb [ 304,
4753 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
4753 silly registry.get server: 'Apache',
4753 silly registry.get connection: 'Keep-Alive',
4753 silly registry.get 'keep-alive': 'timeout=10, max=40',
4753 silly registry.get etag: '"4OQN5D6C1OKYFHZ3J5A510QVW"',
4753 silly registry.get 'cache-control': 'max-age=1',
4753 silly registry.get vary: 'Accept' } ]
4754 verbose etag util from cache
4755 silly lockFile 64f0a183-crypto-browserify-1-0-9 crypto-browserify@1.0.9
4756 silly lockFile 64f0a183-crypto-browserify-1-0-9 crypto-browserify@1.0.9
4757 silly addNameRange number 2 { name: 'util', range: '>=0.10.1-0 <0.11.0-0', hasData: true }
4758 silly addNameRange versions [ 'util', [ '0.4.9', '0.10.0', '0.10.1', '0.10.2' ] ]
4759 verbose addNamed [ 'util', '0.10.2' ]
4760 verbose addNamed [ '0.10.2', '0.10.2' ]
4761 silly lockFile 1f2381aa-util-0-10-2 util@0.10.2
4762 verbose lock util@0.10.2 /home/scarter/.npm/1f2381aa-util-0-10-2.lock
4763 silly lockFile d2334d35-crypto-browserify-1-0-9 crypto-browserify@~1.0.9
4764 silly lockFile d2334d35-crypto-browserify-1-0-9 crypto-browserify@~1.0.9
4765 silly lockFile 1f2381aa-util-0-10-2 util@0.10.2
4766 silly lockFile 1f2381aa-util-0-10-2 util@0.10.2
4767 silly lockFile 7808a7c6-util-0-10-1 util@~0.10.1
4768 silly lockFile 7808a7c6-util-0-10-1 util@~0.10.1
4769 http 304 https://registry.npmjs.org/defined
4770 silly registry.get cb [ 304,
4770 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
4770 silly registry.get server: 'Apache',
4770 silly registry.get connection: 'Keep-Alive',
4770 silly registry.get 'keep-alive': 'timeout=10, max=38',
4770 silly registry.get etag: '"MPWWWSC2W0E8TC9F6SN1QW41"',
4770 silly registry.get 'cache-control': 'max-age=1',
4770 silly registry.get vary: 'Accept' } ]
4771 verbose etag defined from cache
4772 silly addNameRange number 2 { name: 'defined', range: '>=0.0.0-0 <0.1.0-0', hasData: true }
4773 silly addNameRange versions [ 'defined', [ '0.0.0' ] ]
4774 verbose addNamed [ 'defined', '0.0.0' ]
4775 verbose addNamed [ '0.0.0', '0.0.0' ]
4776 silly lockFile 09d7042a-defined-0-0-0 defined@0.0.0
4777 verbose lock defined@0.0.0 /home/scarter/.npm/09d7042a-defined-0-0-0.lock
4778 silly lockFile 09d7042a-defined-0-0-0 defined@0.0.0
4779 silly lockFile 09d7042a-defined-0-0-0 defined@0.0.0
4780 silly lockFile d0fd0d9a-defined-0-0-0 defined@~0.0.0
4781 silly lockFile d0fd0d9a-defined-0-0-0 defined@~0.0.0
4782 silly resolved [ { name: 'through',
4782 silly resolved version: '2.3.4',
4782 silly resolved description: 'simplified stream contsruction',
4782 silly resolved main: 'index.js',
4782 silly resolved scripts: { test: 'set -e; for t in test/*.js; do node $t; done' },
4782 silly resolved devDependencies: { 'stream-spec': '~0.3.5', tape: '~0.2.2' },
4782 silly resolved keywords: [ 'stream', 'streams', 'user-streams', 'pipe' ],
4782 silly resolved author:
4782 silly resolved { name: 'Dominic Tarr',
4782 silly resolved email: 'dominic.tarr@gmail.com',
4782 silly resolved url: 'dominictarr.com' },
4782 silly resolved license: 'MIT',
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'https://github.com/dominictarr/through.git' },
4782 silly resolved homepage: 'http://github.com/dominictarr/through',
4782 silly resolved testling: { browsers: [Object], files: 'test/*.js' },
4782 silly resolved readme: '#through\n\n[![build status](https://secure.travis-ci.org/dominictarr/through.png)](http://travis-ci.org/dominictarr/through)\n\nEasy way to create a `Stream` that is both `readable` and `writable`. \n\n* Pass in optional `write` and `end` methods.\n* `through` takes care of pause/resume logic if you use `this.queue(data)` instead of `this.emit(\'data\', data)`.\n* Use `this.pause()` and `this.resume()` to manage flow.\n* Check `this.paused` to see current flow state. (`write` always returns `!this.paused`).\n\nThis function is the basis for most of the synchronous streams in \n[event-stream](http://github.com/dominictarr/event-stream).\n\n``` js\nvar through = require(\'through\')\n\nthrough(function write(data) {\n this.queue(data) //data *must* not be null\n },\n function end () { //optional\n this.queue(null)\n })\n```\n\nOr, can also be used _without_ buffering on pause, use `this.emit(\'data\', data)`,\nand this.emit(\'end\')\n\n``` js\nvar through = require(\'through\')\n\nthrough(function write(data) {\n this.emit(\'data\', data)\n //this.pause() \n },\n function end () { //optional\n this.emit(\'end\')\n })\n```\n\n## Extended Options\n\nYou will probably not need these 99% of the time.\n\n### autoDestroy=false\n\nBy default, `through` emits close when the writable\nand readable side of the stream has ended.\nIf that is not desired, set `autoDestroy=false`.\n\n``` js\nvar through = require(\'through\')\n\n//like this\nvar ts = through(write, end, {autoDestroy: false})\n//or like this\nvar ts = through(write, end)\nts.autoDestroy = false\n```\n\n## License\n\nMIT / Apache2\n',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/dominictarr/through/issues' },
4782 silly resolved _id: 'through@2.3.4',
4782 silly resolved _from: 'through@~2.3.4' },
4782 silly resolved { name: 'deps-sort',
4782 silly resolved version: '0.1.1',
4782 silly resolved description: 'sort module-deps output for deterministic browserify bundles',
4782 silly resolved main: 'index.js',
4782 silly resolved bin: { 'deps-sort': 'bin/cmd.js' },
4782 silly resolved dependencies: { through: '~2.3.4', JSONStream: '~0.6.4', minimist: '~0.0.1' },
4782 silly resolved devDependencies: { tap: '~0.4.0' },
4782 silly resolved scripts: { test: 'tap test/*.js' },
4782 silly resolved repository: { type: 'git', url: 'git://github.com/substack/deps-sort.git' },
4782 silly resolved homepage: 'https://github.com/substack/deps-sort',
4782 silly resolved keywords:
4782 silly resolved [ 'dependency',
4782 silly resolved 'graph',
4782 silly resolved 'browser',
4782 silly resolved 'browserify',
4782 silly resolved 'module-deps',
4782 silly resolved 'browser-pack',
4782 silly resolved 'sorted',
4782 silly resolved 'determinism' ],
4782 silly resolved author:
4782 silly resolved { name: 'James Halliday',
4782 silly resolved email: 'mail@substack.net',
4782 silly resolved url: 'http://substack.net' },
4782 silly resolved license: 'MIT',
4782 silly resolved readme: '# deps-sort\n\nsort [module-deps](https://npmjs.org/package/module-deps) output for deterministic\nbrowserify bundles\n\n# example\n\n## command-line\n\n```\n$ for((i=0;i<5;i++)); do module-deps main.js | deps-sort | browser-pack | md5sum; done\ne9e630de2c62953140357db0444c3c3a -\ne9e630de2c62953140357db0444c3c3a -\ne9e630de2c62953140357db0444c3c3a -\ne9e630de2c62953140357db0444c3c3a -\ne9e630de2c62953140357db0444c3c3a -\n```\n\nor using `browserify --deps` on a [voxeljs](http://voxeljs.com/) project:\n\n```\n$ for((i=0;i<5;i++)); do browserify --deps browser.js | deps-sort | browser-pack | md5sum; done\nfb418c74b53ba2e4cef7d01808b848e6 -\nfb418c74b53ba2e4cef7d01808b848e6 -\nfb418c74b53ba2e4cef7d01808b848e6 -\nfb418c74b53ba2e4cef7d01808b848e6 -\nfb418c74b53ba2e4cef7d01808b848e6 -\n```\n\n## api\n\nTo use this module programmatically, write streaming object data and read\nstreaming object data:\n\n``` js\nvar sort = require(\'../\')();\nvar JSONStream = require(\'JSONStream\');\nvar parse = JSONStream.parse([ true ]);\nvar stringify = JSONStream.stringify();\n\nprocess.stdin.pipe(parse).pipe(sort).pipe(stringify).pipe(process.stdout);\n```\n\n# methods\n\n``` js\nvar depsSort = require(\'deps-sort\');\n```\n\n## var stream = depsSort(opts)\n\nReturn a new through `stream` that should get written\n[module-deps](https://npmjs.org/package/module-deps) objects and will output\nsorted objects.\n\n`opts` can be:\n\n* `opts.index` - when true, for each module-deps row, insert `row.index` with\nthe numeric index and `row.indexDeps` like `row.deps` but mapping require\nstrings to row indices\n\n# install\n\nWith [npm](https://npmjs.org) do:\n\n```\nnpm install deps-sort\n```\n\n# license\n\nMIT\n',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/substack/deps-sort/issues' },
4782 silly resolved _id: 'deps-sort@0.1.1',
4782 silly resolved _from: 'deps-sort@~0.1.1' },
4782 silly resolved { name: 'shell-quote',
4782 silly resolved version: '0.0.1',
4782 silly resolved description: 'quote and parse shell commands',
4782 silly resolved main: 'index.js',
4782 silly resolved directories: { example: 'example', test: 'test' },
4782 silly resolved devDependencies: { tap: '~0.2.5' },
4782 silly resolved scripts: { test: 'tap test' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'http://github.com/substack/node-shell-quote.git' },
4782 silly resolved keywords: [ 'shell', 'command', 'quote', 'parse' ],
4782 silly resolved author:
4782 silly resolved { name: 'James Halliday',
4782 silly resolved email: 'mail@substack.net',
4782 silly resolved url: 'http://substack.net' },
4782 silly resolved license: 'MIT',
4782 silly resolved engine: { node: '>=0.4' },
4782 silly resolved readme: 'shell-quote\n===========\n\nParse and quote shell commands.\n\n[![build status](https://secure.travis-ci.org/substack/node-shell-quote.png)](http://travis-ci.org/substack/node-shell-quote)\n\nexample\n=======\n\nquote\n-----\n\n``` js\nvar quote = require(\'shell-quote\').quote;\nvar s = quote([ \'a\', \'b c d\', \'$f\', \'"g"\' ]);\nconsole.log(s);\n```\n\noutput\n\n```\na \'b c d\' \\$f \'"g"\'\n```\n\nparse\n-----\n\n``` js`\nvar parse = require(\'shell-quote\').parse;\nvar xs = parse(\'a "b c" \\\\$def \\\'it\\\\\\\'s great\\\'\');\nconsole.dir(xs);\n```\n\noutput\n\n```\n[ \'a\', \'b c\', \'\\\\$def\', \'it\\\'s great\' ]\n```\n\nmethods\n=======\n\n``` js\nvar quote = require(\'shell-quote\').quote;\nvar parse = require(\'shell-quote\').parse;\n```\n\nquote(args)\n-----------\n\nReturn a quoted string for the array `args` suitable for using in shell\ncommands.\n\nparse(cmd)\n----------\n\nReturn an array of arguments from the quoted string `cmd`.\n\ninstall\n=======\n\nWith [npm](http://npmjs.org) do:\n\n```\nnpm install shell-quote\n```\n\nlicense\n=======\n\nMIT\n',
4782 silly resolved readmeFilename: 'README.markdown',
4782 silly resolved bugs: { url: 'https://github.com/substack/node-shell-quote/issues' },
4782 silly resolved homepage: 'https://github.com/substack/node-shell-quote',
4782 silly resolved _id: 'shell-quote@0.0.1',
4782 silly resolved _from: 'shell-quote@~0.0.1' },
4782 silly resolved { name: 'browser-pack',
4782 silly resolved version: '2.0.1',
4782 silly resolved description: 'pack node-style source files from a json stream into a browser bundle',
4782 silly resolved main: 'index.js',
4782 silly resolved bin: { 'browser-pack': 'bin/cmd.js' },
4782 silly resolved dependencies:
4782 silly resolved { JSONStream: '~0.6.4',
4782 silly resolved through: '~2.3.4',
4782 silly resolved 'combine-source-map': '~0.3.0' },
4782 silly resolved devDependencies:
4782 silly resolved { tap: '~0.4.0',
4782 silly resolved tape: '~0.2.2',
4782 silly resolved 'uglify-js': '1.3.5',
4782 silly resolved 'convert-source-map': '~0.3.1',
4782 silly resolved 'parse-base64vlq-mappings': '~0.1.1' },
4782 silly resolved scripts: { test: 'tap test/*.js', prepublish: 'node bin/prepublish.js' },
4782 silly resolved testling: { files: 'test/*.js', browsers: [Object] },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/substack/browser-pack.git' },
4782 silly resolved homepage: 'https://github.com/substack/browser-pack',
4782 silly resolved keywords:
4782 silly resolved [ 'browser',
4782 silly resolved 'bundle',
4782 silly resolved 'commonjs',
4782 silly resolved 'commonj-esque',
4782 silly resolved 'exports',
4782 silly resolved 'module.exports',
4782 silly resolved 'require' ],
4782 silly resolved author:
4782 silly resolved { name: 'James Halliday',
4782 silly resolved email: 'mail@substack.net',
4782 silly resolved url: 'http://substack.net' },
4782 silly resolved license: 'MIT',
4782 silly resolved readme: '# browser-pack\n\npack node-style source files from a json stream into a browser bundle\n\n[![browser support](http://ci.testling.com/substack/browser-pack.png)](http://ci.testling.com/substack/browser-pack)\n\n[![build status](https://secure.travis-ci.org/substack/browser-pack.png)](http://travis-ci.org/substack/browser-pack)\n\n# example\n\njson input:\n\n``` json\n[\n {\n "id": "a1b5af78",\n "source": "console.log(require(\'./foo\')(5))",\n "deps": { "./foo": "b8f69fa5" },\n "entry": true\n },\n {\n "id": "b8f69fa5",\n "source": "module.exports = function (n) { return n * 111 }",\n "deps": {}\n }\n]\n```\n\nbundle script:\n\n``` js\nvar pack = require(\'browser-pack\')();\nprocess.stdin.pipe(pack).pipe(process.stdout);\nprocess.stdin.resume();\n```\n\noutput:\n\n```\n$ browser-pack < input.json\n(function(p,c,e){function r(n){if(!c[n]){c[n]={exports:{}};p[n][0](function(x){return r(p[n][1][x])},c[n],c[n].exports);}return c[n].exports}for(var i=0;i<e.length;i++)r(e[i]);return r})({"a1b5af78":[function(require,module,exports){console.log(require(\'./foo\')(5))},{"./foo":"b8f69fa5"}],"b8f69fa5":[function(require,module,exports){module.exports = function (n) { return n * 111 }},{}]},{},["a1b5af78","b8f69fa5"])\n```\n\n# methods\n\n``` js\nvar pack = require(\'browser-pack\');\n```\n\n## pack(opts)\n\nReturn a through stream that takes a stream of json input and produces a stream\nof javascript output. This module does not export its internal `require()`\nfunction but you can prepend `\'var require=\'` to the stream contents to get the\nrequire function. `require()` will return `undefined` when a module hasn\'t been\ndefined to support splitting up modules across several bundles with custom\nfallback logic.\n\nIf `opts.raw` is given, the writable end of the stream will expect objects to be\nwritten to it instead of expecting a stream of json text it will need to parse.\n\nIf `opts.sourceMapPrefix` is given and source maps are computed, the\n`opts.sourceMapPrefix` string will be used instead of `//#`.\n\nAdditionally, rows with a truthy `entry` may have an `order` field that\ndetermines the numeric index to execute the entries in.\n\nYou can specify a custom prelude with `opts.prelude` but you should really know\nwhat you\'re doing first. See the `prelude.js` file in this repo for the default\nprelude. If you specify a custom prelude, you must also specify a valid\n`opts.preludePath` to the prelude source file for sourcemaps to work.\n\n# install\n\nWith [npm](https://npmjs.org), to get the library do:\n\n```\nnpm install browser-pack\n```\n\nand to get the command-line tool do:\n\n```\nnpm install -g browser-pack\n```\n\n# license\n\nMIT\n',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/substack/browser-pack/issues' },
4782 silly resolved _id: 'browser-pack@2.0.1',
4782 silly resolved _from: 'browser-pack@~2.0.0' },
4782 silly resolved { name: 'module-deps',
4782 silly resolved version: '1.2.2',
4782 silly resolved description: 'walk the dependency graph to generate json output that can be fed into browser-pack',
4782 silly resolved main: 'index.js',
4782 silly resolved bin: { 'module-deps': 'cmd.js' },
4782 silly resolved dependencies:
4782 silly resolved { through: '~2.3.4',
4782 silly resolved JSONStream: '~0.7.1',
4782 silly resolved 'browser-resolve': '~1.2.2',
4782 silly resolved resolve: '~0.6.0',
4782 silly resolved detective: '~2.1.2',
4782 silly resolved 'concat-stream': '~1.4.1',
4782 silly resolved minimist: '~0.0.5',
4782 silly resolved parents: '0.0.2' },
4782 silly resolved devDependencies: { tape: '~2.3.2', 'browser-pack': '~0.0.0' },
4782 silly resolved scripts: { test: 'tape test/*.js' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/substack/module-deps.git' },
4782 silly resolved homepage: 'https://github.com/substack/module-deps',
4782 silly resolved keywords:
4782 silly resolved [ 'dependency',
4782 silly resolved 'graph',
4782 silly resolved 'browser',
4782 silly resolved 'require',
4782 silly resolved 'module',
4782 silly resolved 'exports',
4782 silly resolved 'json' ],
4782 silly resolved author:
4782 silly resolved { name: 'James Halliday',
4782 silly resolved email: 'mail@substack.net',
4782 silly resolved url: 'http://substack.net' },
4782 silly resolved engines: { node: '>= 0.6' },
4782 silly resolved license: 'MIT',
4782 silly resolved readme: '# module-deps\n\nwalk the dependency graph to generate json output that can be fed into\n[browser-pack](https://github.com/substack/browser-pack)\n\n[![build status](https://secure.travis-ci.org/substack/module-deps.png)](http://travis-ci.org/substack/module-deps)\n\n# example\n\n``` js\nvar mdeps = require(\'module-deps\');\nvar JSONStream = require(\'JSONStream\');\n\nvar stringify = JSONStream.stringify();\nstringify.pipe(process.stdout);\n\nvar file = __dirname + \'/files/main.js\';\nmdeps(file).pipe(stringify);\n```\n\noutput:\n\n```\n$ node example/deps.js\n[\n{"id":"/home/substack/projects/module-deps/example/files/main.js","source":"var foo = require(\'./foo\');\\nconsole.log(\'main: \' + foo(5));\\n","entry":true,"deps":{"./foo":"/home/substack/projects/module-deps/example/files/foo.js"}}\n,\n{"id":"/home/substack/projects/module-deps/example/files/foo.js","source":"var bar = require(\'./bar\');\\n\\nmodule.exports = function (n) {\\n return n * 111 + bar(n);\\n};\\n","deps":{"./bar":"/home/substack/projects/module-deps/example/files/bar.js"}}\n,\n{"id":"/home/substack/projects/module-deps/example/files/bar.js","source":"module.exports = function (n) {\\n return n * 100;\\n};\\n","deps":{}}\n]\n```\n\nand you can feed this json data into\n[browser-pack](https://github.com/substack/browser-pack):\n\n```\n$ node example/deps.js | browser-pack | node\nmain: 1055\n```\n\n# usage\n\n```\nusage: module-deps [files]\n\n generate json output from each entry file\n\n```\n\n# methods\n\n``` js\nvar mdeps = require(\'module-deps\')\n```\n\n## mdeps(files, opts={})\n\nReturn a readable stream of javascript objects from an array of filenames\n`files`.\n\nEach file in `files` can be a string filename or a stream.\n\nOptionally pass in some `opts`:\n\n* opts.transform - a string or array of string transforms (see below)\n\n* opts.transformKey - an array path of strings showing where to look in the\npackage.json for source transformations. If falsy, don\'t look at the\npackage.json at all.\n\n* opts.resolve - custom resolve function using the\n`opts.resolve(id, parent, cb)` signature that\n[browser-resolve](https://github.com/shtylman/node-browser-resolve) has\n\n* opts.filter - a function (id) to skip resolution of some module `id` strings.\nIf defined, `opts.filter(id)` should return truthy for all the ids to include\nand falsey for all the ids to skip.\n\n* opts.packageFilter - transform the parsed package.json contents before using\nthe values. `opts.packageFilter(pkg)` should return the new `pkg` object to use.\n\n* opts.noParse - an array of absolute paths to not parse for dependencies. Use\nthis for large dependencies like jquery or threejs which take forever to parse.\n\n* opts.cache - an object mapping filenames to file objects to skip costly io\n\n* opts.packageCache - an object mapping filenames to their parent package.json\ncontents for browser fields, main entries, and transforms\n\n# transforms\n\nmodule-deps can be configured to run source transformations on files before\nparsing them for `require()` calls. These transforms are useful if you want to\ncompile a language like [coffeescript](http://coffeescript.org/) on the fly or\nif you want to load static assets into your bundle by parsing the AST for\n`fs.readFileSync()` calls.\n\nIf the transform is a function, it should take the `file` name as an argument\nand return a through stream that will be written file contents and should output\nthe new transformed file contents.\n\nIf the transform is a string, it is treated as a module name that will resolve\nto a module that is expected to follow this format:\n\n``` js\nvar through = require(\'through\');\nmodule.exports = function (file) { return through() };\n```\n\nYou don\'t necessarily need to use the\n[through](https://github.com/dominictarr/through) module to create a\nreadable/writable filter stream for transforming file contents, but this is an\neasy way to do it.\n\nWhen you call `mdeps()` with an `opts.transform`, the transformations you\nspecify will not be run for any files in node_modules/. This is because modules\nyou include should be self-contained and not need to worry about guarding\nthemselves against transformations that may happen upstream.\n\nModules can apply their own transformations by setting a transformation pipeline\nin their package.json at the `opts.transformKey` path. These transformations\nonly apply to the files directly in the module itself, not to the module\'s\ndependants nor to its dependencies.\n\n# install\n\nWith [npm](http://npmjs.org), to get the module do:\n\n```\nnpm install module-deps\n```\n\nand to get the `module-deps` command do:\n\n```\nnpm install -g module-deps\n```\n\n# license\n\nMIT\n',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/substack/module-deps/issues' },
4782 silly resolved _id: 'module-deps@1.2.2',
4782 silly resolved _from: 'module-deps@~1.2.2' },
4782 silly resolved { name: 'querystring',
4782 silly resolved id: 'querystring',
4782 silly resolved version: '0.2.0',
4782 silly resolved description: 'Node\'s querystring module for all engines.',
4782 silly resolved keywords: [ 'commonjs', 'query', 'querystring' ],
4782 silly resolved author: { name: 'Irakli Gozalishvili', email: 'rfobic@gmail.com' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/Gozala/querystring.git',
4782 silly resolved web: 'https://github.com/Gozala/querystring' },
4782 silly resolved bugs: { url: 'http://github.com/Gozala/querystring/issues/' },
4782 silly resolved devDependencies:
4782 silly resolved { test: '~0.x.0',
4782 silly resolved phantomify: '~0.x.0',
4782 silly resolved retape: '~0.x.0',
4782 silly resolved tape: '~0.1.5' },
4782 silly resolved engines: { node: '>=0.4.x' },
4782 silly resolved scripts:
4782 silly resolved { test: 'npm run test-node && npm run test-browser && npm run test-tap',
4782 silly resolved 'test-browser': 'node ./node_modules/phantomify/bin/cmd.js ./test/common-index.js',
4782 silly resolved 'test-node': 'node ./test/common-index.js',
4782 silly resolved 'test-tap': 'node ./test/tap-index.js' },
4782 silly resolved testling: { files: 'test/tap-index.js', browsers: [Object] },
4782 silly resolved licenses: [ [Object] ],
4782 silly resolved readme: '# querystring\n\n[![Build Status](https://secure.travis-ci.org/Gozala/querystring.png)](http://travis-ci.org/Gozala/querystring)\n\n\n[![Browser support](http://ci.testling.com/Gozala/querystring.png)](http://ci.testling.com/Gozala/querystring)\n\n\n\nNode\'s querystring module for all engines.\n\n## Install ##\n\n npm install querystring\n\n',
4782 silly resolved readmeFilename: 'Readme.md',
4782 silly resolved homepage: 'https://github.com/Gozala/querystring',
4782 silly resolved _id: 'querystring@0.2.0',
4782 silly resolved dist: { shasum: '716d5b87eb42331db503fbfc4c9126d2246a0a3f' },
4782 silly resolved _from: 'https://github.com/substack/querystring/archive/0.2.0-ie8.tar.gz',
4782 silly resolved _resolved: 'https://github.com/substack/querystring/archive/0.2.0-ie8.tar.gz' },
4782 silly resolved { name: 'syntax-error',
4782 silly resolved version: '0.0.1',
4782 silly resolved description: 'detect and report syntax errors in source code strings',
4782 silly resolved main: 'index.js',
4782 silly resolved bin: {},
4782 silly resolved directories: { example: 'example', test: 'test' },
4782 silly resolved dependencies: { esprima: '~0.9.9' },
4782 silly resolved devDependencies: { tap: '~0.3.0' },
4782 silly resolved scripts: { test: 'tap test/*.js' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/substack/node-syntax-error.git' },
4782 silly resolved homepage: 'https://github.com/substack/node-syntax-error',
4782 silly resolved keywords: [ 'syntax', 'error', 'esprima', 'stack', 'line', 'column' ],
4782 silly resolved author:
4782 silly resolved { name: 'James Halliday',
4782 silly resolved email: 'mail@substack.net',
4782 silly resolved url: 'http://substack.net' },
4782 silly resolved license: 'MIT',
4782 silly resolved engine: { node: '>=0.6' },
4782 silly resolved readme: '# syntax-error\n\nDetect and report syntax errors in source code strings.\n\n[![build status](https://secure.travis-ci.org/substack/node-syntax-error.png)](http://travis-ci.org/substack/node-syntax-error)\n\nWhen you type `node src.js` you get a friendly error report about exactly where\nthe syntax error is. This module lets you check for syntax errors and report\nthem in a similarly friendly format that wrapping a try/catch around\n`Function()` or `vm.runInNewContext()` doesn\'t get you.\n\n# example\n\n``` js\nvar fs = require(\'fs\');\nvar check = require(\'syntax-error\');\n\nvar file = __dirname + \'/src.js\';\nvar src = fs.readFileSync(file);\n\nvar err = check(src, file);\nif (err) {\n console.error(\'ERROR DETECTED\' + Array(62).join(\'!\'));\n console.error(err);\n console.error(Array(76).join(\'-\'));\n}\n```\n\n***\n\n```\n$ node check.js\nERROR DETECTED!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n/home/substack/projects/node-syntax-error/example/src.js:5\n if (Array.isArray(x) res.push.apply(res, x);\n ^\nParseError: Unexpected identifier\n---------------------------------------------------------------------------\n```\n\n# methods\n\n``` js\nvar check = require(\'syntax-error\')\n```\n\n## var err = check(src, file)\n\nCheck the source code string `src` for syntax errors.\nOptionally you can specify a filename `file` that will show up in the output.\n\nIf `src` has a syntax error, return an error object `err` that can be printed or\nstringified.\n\nIf there are no syntax errors in `src`, return `undefined`.\n\n## err.toString()\n\nReturn the long string description with a source snippet and a `^` under\npointing exactly where the error was detected.\n\n# attributes\n\n## err.message\n\nshort string description of the error type\n\n## err.line\n\nline number of the error in the original source (indexing starts at 1)\n\n## err.column\n\ncolumn number of the error in the original source (indexing starts at 1)\n\n# install\n\nWith [npm](http://npmjs.org) do:\n\n```\nnpm install syntax-error\n```\n\n# license\n\nMIT\n',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/substack/node-syntax-error/issues' },
4782 silly resolved _id: 'syntax-error@0.0.1',
4782 silly resolved _from: 'syntax-error@~0.0.0' },
4782 silly resolved { name: 'browser-resolve',
4782 silly resolved version: '1.2.2',
4782 silly resolved description: 'resolve which handles browser field support in package.json',
4782 silly resolved main: 'index.js',
4782 silly resolved scripts: { test: 'mocha test/*.js' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/shtylman/node-browser-resolve.git' },
4782 silly resolved keywords: [ 'resolve', 'browser' ],
4782 silly resolved author: { name: 'Roman Shtylman', email: 'shtylman@gmail.com' },
4782 silly resolved license: 'MIT',
4782 silly resolved dependencies: { resolve: '0.6.1' },
4782 silly resolved devDependencies: { mocha: '1.14.0' },
4782 silly resolved readme: '# browser-resolve [![Build Status](https://travis-ci.org/defunctzombie/node-browser-resolve.png?branch=master)](https://travis-ci.org/defunctzombie/node-browser-resolve)\n\nnode.js resolve algorithm with [browser](https://gist.github.com/defunctzombie/4339901) field support.\n\n## api\n\n### resolve(pkg, opts={}, cb)\n\nResolve a module path and call `cb(err, path)`\n\nOptions:\n\n* filename - the calling filename where the require call originated (in the source)\n* paths - require.paths array to use if nothing is found on the normal node_modules recursive walk\n* packageFilter - transform the parsed package.json contents before looking at the "main" field\n* modules - object with module id/name -> path mappings to consult before doing manual resolution (use to provide core modules)\n\n## basic usage\n\nyou can resolve files like `require.resolve()`:\n``` js\nvar resolve = require(\'browser-resolve\');\nresolve(\'../\', { filename: __filename }, function(err, path) {\n console.log(path);\n});\n```\n\n```\n$ node example/resolve.js\n/home/substack/projects/node-browser-resolve/index.js\n```\n\n## core modules\n\nBy default, core modules (http, dgram, etc) will return their same name as the path. If you want to have specific paths returned, specify a `modules` property in the options object.\n\n``` js\nvar shims = {\n http: \'/your/path/to/http.js\'\n};\n\nvar resolve = require(\'browser-resolve\');\nresolve(\'fs\', { modules: shims }, function(err, path) {\n console.log(path);\n});\n```\n\n```\n$ node example/builtin.js\n/home/substack/projects/node-browser-resolve/builtin/fs.js\n```\n\n## browser field\nbrowser-specific versions of modules\n\n``` js\n{\n "name": "custom",\n "version": "0.0.0",\n "browser": {\n "./main.js": "custom.js"\n }\n}\n```\n\n``` js\nvar resolve = require(\'browser-resolve\');\nvar parent = { filename: __dirname + \'/custom/file.js\' };\nresolve(\'./main.js\', parent, function(err, path) {\n console.log(path);\n});\n```\n\n```\n$ node example/custom.js\n/home/substack/projects/node-browser-resolve/example/custom/custom.js\n```\n\n## skip\n\nYou can skip over dependencies by setting a\n[browser field](https://gist.github.com/defunctzombie/4339901)\nvalue to `false`:\n\n``` json\n{\n "name": "skip",\n "version": "0.0.0",\n "browser": {\n "tar": false\n }\n}\n```\n\nThis is handy if you have code like:\n\n``` js\nvar tar = require(\'tar\');\n\nexports.add = function (a, b) {\n return a + b;\n};\n\nexports.parse = function () {\n return tar.Parse();\n};\n```\n\nso that `require(\'tar\')` will just return `{}` in the browser because you don\'t\nintend to support the `.parse()` export in a browser environment.\n\n``` js\nvar resolve = require(\'browser-resolve\');\nvar parent = { filename: __dirname + \'/skip/main.js\' };\nresolve(\'tar\', parent, function(err, path) {\n console.log(path);\n});\n```\n\n```\n$ node example/skip.js\n/home/substack/projects/node-browser-resolve/empty.js\n```\n\n# license\n\nMIT\n\n# upgrade notes\n\nPrior to v1.x this library provided shims for node core modules. These have since been removed. If you want to have alternative core modules provided, use the `modules` option when calling resolve.\n\nThis was done to allow package managers to choose which shims they want to use without browser-resolve being the central point of update.\n',
4782 silly resolved readmeFilename: 'README.md',
4782 silly resolved bugs: { url: 'https://github.com/shtylman/node-browser-resolve/issues' },
4782 silly resolved homepage: 'https://github.com/shtylman/node-browser-resolve',
4782 silly resolved _id: 'browser-resolve@1.2.2',
4782 silly resolved _from: 'browser-resolve@~1.2.1' },
4782 silly resolved { name: 'duplexer',
4782 silly resolved version: '0.1.1',
4782 silly resolved description: 'Creates a duplex stream',
4782 silly resolved keywords: [],
4782 silly resolved author: { name: 'Raynos', email: 'raynos2@gmail.com' },
4782 silly resolved repository: { type: 'git', url: 'git://github.com/Raynos/duplexer.git' },
4782 silly resolved main: 'index',
4782 silly resolved homepage: 'https://github.com/Raynos/duplexer',
4782 silly resolved contributors: [ [Object] ],
4782 silly resolved bugs:
4782 silly resolved { url: 'https://github.com/Raynos/duplexer/issues',
4782 silly resolved email: 'raynos2@gmail.com' },
4782 silly resolved devDependencies: { tape: '0.3.3', through: '~0.1.4' },
4782 silly resolved licenses: [ [Object] ],
4782 silly resolved scripts: { test: 'node test' },
4782 silly resolved testling: { files: 'test/index.js', browsers: [Object] },
4782 silly resolved readme: '# duplexer\n\n[![build status][1]][2] [![dependency status][3]][4]\n\n[![browser support][5]][6]\n\nCreates a duplex stream\n\nTaken from [event-stream][7]\n\n## duplex (writeStream, readStream)\n\nTakes a writable stream and a readable stream and makes them appear as a readable writable stream.\n\nIt is assumed that the two streams are connected to each other in some way.\n\n## Example\n\n```js\nvar grep = cp.exec(\'grep Stream\')\n\nduplex(grep.stdin, grep.stdout)\n```\n\n## Installation\n\n`npm install duplexer`\n\n## Tests\n\n`npm test`\n\n## Contributors\n\n - Dominictarr\n - Raynos\n - samccone\n\n## MIT Licenced\n\n [1]: https://secure.travis-ci.org/Raynos/duplexer.png\n [2]: https://travis-ci.org/Raynos/duplexer\n [3]: https://david-dm.org/Raynos/duplexer.png\n [4]: https://david-dm.org/Raynos/duplexer\n [5]: https://ci.testling.com/Raynos/duplexer.png\n [6]: https://ci.testling.com/Raynos/duplexer\n [7]: https://github.com/dominictarr/event-stream#duplex-writestream-readstream\n',
4782 silly resolved readmeFilename: 'README.md',
4782 silly resolved _id: 'duplexer@0.1.1',
4782 silly resolved _from: 'duplexer@~0.1.1' },
4782 silly resolved { name: 'insert-module-globals',
4782 silly resolved version: '2.3.4',
4782 silly resolved description: 'insert implicit module globals into a module-deps stream',
4782 silly resolved main: 'index.js',
4782 silly resolved bin: { 'insert-module-globals': 'bin/cmd.js' },
4782 silly resolved dependencies:
4782 silly resolved { commondir: '~0.0.1',
4782 silly resolved 'lexical-scope': '~0.0.14',
4782 silly resolved process: '~0.5.1',
4782 silly resolved through: '~2.3.4',
4782 silly resolved duplexer: '~0.1.1',
4782 silly resolved JSONStream: '~0.7.1',
4782 silly resolved defined: '0.0.0',
4782 silly resolved 'native-buffer-browserify': '~2.0.15',
4782 silly resolved browserify: '~3.24.1' },
4782 silly resolved devDependencies:
4782 silly resolved { tap: '~0.4.0',
4782 silly resolved 'browser-pack': '~0.10.2',
4782 silly resolved 'module-deps': '~1.0.2' },
4782 silly resolved scripts: { test: 'tap test/*.js' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/substack/insert-module-globals.git' },
4782 silly resolved homepage: 'https://github.com/substack/insert-module-globals',
4782 silly resolved keywords:
4782 silly resolved [ '__filename',
4782 silly resolved '__dirname',
4782 silly resolved 'global',
4782 silly resolved 'process',
4782 silly resolved 'module-deps',
4782 silly resolved 'browser-pack',
4782 silly resolved 'browserify' ],
4782 silly resolved author:
4782 silly resolved { name: 'James Halliday',
4782 silly resolved email: 'mail@substack.net',
4782 silly resolved url: 'http://substack.net' },
4782 silly resolved license: 'MIT',
4782 silly resolved readme: '# insert-module-globals\n\ninsert implicit module globals\n(`__filename`, `__dirname`, `process`, `global`, and `Buffer`)\ninto a module bundle stream generated by\n[module-deps](https://github.com/substack/module-deps)\n\n[![build status](https://secure.travis-ci.org/substack/insert-module-globals.png)](http://travis-ci.org/substack/insert-module-globals)\n\n# example\n\n``` js\nvar mdeps = require(\'module-deps\');\nvar bpack = require(\'browser-pack\');\nvar insert = require(\'insert-module-globals\');\n\nvar files = [ __dirname + \'/files/main.js\' ];\nmdeps(files)\n .pipe(insert(files))\n .pipe(bpack({ raw: true }))\n .pipe(process.stdout)\n;\n```\n\n```\n$ node example/insert.js | node\nin main.js: {"__filename":"/main.js","__dirname":"/"}\nin foo/index.js: {"__filename":"/foo/index.js","__dirname":"/foo"}\n```\n\nor use the command-line scripts:\n\n```\n$ module-deps main.js | insert-module-globals main.js | browser-pack | node\nin main.js: {"__filename":"/main.js","__dirname":"/"}\nin foo/index.js: {"__filename":"/foo/index.js","__dirname":"/foo"}\n```\n\n# methods\n\n``` js\nvar insertGlobals = require(\'insert-module-globals\')\n```\n\n## var insert = insertGlobals(files, opts)\n\nInsert globals for an array of entry `files`. The `files` array is used to\nrebase the `__filename` and `__dirname` names or you can pass in an\n`opts.basedir` explicitly.\n\nYou can pass in a custom `opts.resolve(id, parent, cb)` function. By default\n[browser-resolve](https://github.com/shtylman/node-browser-resolve) is used for\nthe `opts.resolve`.\n\nWhen `opts.always` is truthy, wrap every file with all the global variables\nwithout parsing. This is handy because parsing the scope can take a long time,\nso you can prioritize fast builds over saving bytes in the final output.\n\nYou can use a custom `opts.commondir` parameter to use a custom normalization\nfor __dirname and __filename resolving or `false` to turn normalization off.\n\nReturn a through stream `insert` that expects input from the format written by\n[module-deps](https://github.com/substack/module-deps). The `insert` stream will\noutput data that can be fed into\n[browser-pack](https://github.com/substack/browser-pack).\n\n# usage\n\n```\nusage: insert-module-globals [files]\n```\n\n# install\n\nWith [npm](https://npmjs.org), to get the library do:\n\n```\nnpm install insert-module-globals\n```\n\nand to get the bin script do:\n\n```\nnpm install -g insert-module-globals\n```\n\n# insert custom globals.\n\n`insert-module-globals` can also insert arbitary globals into files.\nPass in an object of functions as the `vars` option.\n\n``` js\nvar vars = {\n process: function (row, basedir) {\n return {\n id: "path/to/custom_process.js",\n source: customProcessContent\n }\n },\n Buffer: function (row, basedir) {\n return {\n id: "path/to/custom_buffer.js,\n source: customProcessContent,\n //suffix is optional\n //it\'s used to extract the value from the module.\n //it becomes: require(...).Buffer in this case.\n suffix: \'.Buffer\'\n }\n },\n Math: function () {\n //if you return a string,\n //it\'s simply set as the value.\n return \'{}\'\n //^ any attempt to use Math[x] will throw!\n }\n}\n\nmdeps(files)\n .pipe(insert(files, {vars: vars}))\n .pipe(bpack({ raw: true }))\n .pipe(process.stdout)\n```\n\n\n# license\n\nMIT\n',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/substack/insert-module-globals/issues' },
4782 silly resolved _id: 'insert-module-globals@2.3.4',
4782 silly resolved _from: 'insert-module-globals@~2.3.0' },
4782 silly resolved { name: 'stream-combiner',
4782 silly resolved version: '0.0.4',
4782 silly resolved homepage: 'https://github.com/dominictarr/stream-combiner',
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/dominictarr/stream-combiner.git' },
4782 silly resolved dependencies: { duplexer: '~0.1.1' },
4782 silly resolved devDependencies: { tape: '~2.3.0', 'event-stream': '~3.0.7' },
4782 silly resolved scripts: { test: 'set -e; for t in test/*.js; do node $t; done' },
4782 silly resolved author:
4782 silly resolved { name: '\'Dominic Tarr\'',
4782 silly resolved email: 'dominic.tarr@gmail.com',
4782 silly resolved url: 'http://dominictarr.com' },
4782 silly resolved license: 'MIT',
4782 silly resolved readme: '# stream-combiner\n\n<img src=https://secure.travis-ci.org/dominictarr/stream-combiner.png?branch=master>\n\n## Combine (stream1,...,streamN)\n\nTurn a pipeline into a single stream. `pipeline` returns a stream that writes to the first stream\nand reads from the last stream. \n\nListening for \'error\' will recieve errors from all streams inside the pipe.\n\n``` js\n var Combine = require(\'stream-combiner\')\n var es = require(\'event-stream\')\n\n Combine( //connect streams together with `pipe`\n process.openStdin(), //open stdin\n es.split(), //split stream to break on newlines\n es.map(function (data, callback) {//turn this async function into a stream\n callback(null\n , inspect(JSON.parse(data))) //render it nicely\n }),\n process.stdout // pipe it to stdout !\n )\n```\n\n## License\n\nMIT\n',
4782 silly resolved readmeFilename: 'README.md',
4782 silly resolved description: '<img src=https://secure.travis-ci.org/dominictarr/stream-combiner.png?branch=master>',
4782 silly resolved bugs: { url: 'https://github.com/dominictarr/stream-combiner/issues' },
4782 silly resolved _id: 'stream-combiner@0.0.4',
4782 silly resolved _from: 'stream-combiner@~0.0.2' },
4782 silly resolved { name: 'deep-equal',
4782 silly resolved version: '0.1.2',
4782 silly resolved description: 'node\'s assert.deepEqual algorithm',
4782 silly resolved main: 'index.js',
4782 silly resolved directories: { lib: '.', example: 'example', test: 'test' },
4782 silly resolved scripts: { test: 'tape test/*.js' },
4782 silly resolved devDependencies: { tape: '~2.3.2' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'http://github.com/substack/node-deep-equal.git' },
4782 silly resolved keywords: [ 'equality', 'equal', 'compare' ],
4782 silly resolved author:
4782 silly resolved { name: 'James Halliday',
4782 silly resolved email: 'mail@substack.net',
4782 silly resolved url: 'http://substack.net' },
4782 silly resolved license: 'MIT',
4782 silly resolved testling: { files: 'test/*.js', browsers: [Object] },
4782 silly resolved readme: '# deep-equal\n\nNode\'s `assert.deepEqual() algorithm` as a standalone module.\n\nThis module is around [5 times faster](https://gist.github.com/2790507)\nthan wrapping `assert.deepEqual()` in a `try/catch`.\n\n[![browser support](https://ci.testling.com/substack/node-deep-equal.png)](https://ci.testling.com/substack/node-deep-equal)\n\n[![build status](https://secure.travis-ci.org/substack/node-deep-equal.png)](https://travis-ci.org/substack/node-deep-equal)\n\n# example\n\n``` js\nvar equal = require(\'deep-equal\');\nconsole.dir([\n equal(\n { a : [ 2, 3 ], b : [ 4 ] },\n { a : [ 2, 3 ], b : [ 4 ] }\n ),\n equal(\n { x : 5, y : [6] },\n { x : 5, y : 6 }\n )\n]);\n```\n\n# methods\n\n``` js\nvar deepEqual = require(\'deep-equal\')\n```\n\n## deepEqual(a, b, opts)\n\nCompare objects `a` and `b`, returning whether they are equal according to a\nrecursive equality algorithm.\n\nIf `opts.strict` is `true`, use strict equality (`===`) to compare leaf nodes.\nThe default is to use coercive equality (`==`) because that\'s how\n`assert.deepEqual()` works by default.\n\n# install\n\nWith [npm](http://npmjs.org) do:\n\n```\nnpm install deep-equal\n```\n\n# test\n\nWith [npm](http://npmjs.org) do:\n\n```\nnpm test\n```\n\n# license\n\nMIT. Derived largely from node\'s assert module.\n',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/substack/node-deep-equal/issues' },
4782 silly resolved homepage: 'https://github.com/substack/node-deep-equal',
4782 silly resolved _id: 'deep-equal@0.1.2',
4782 silly resolved _from: 'deep-equal@~0.1.0' },
4782 silly resolved { name: 'inherits',
4782 silly resolved description: 'Browser-friendly inheritance fully compatible with standard node.js inherits()',
4782 silly resolved version: '2.0.1',
4782 silly resolved keywords:
4782 silly resolved [ 'inheritance',
4782 silly resolved 'class',
4782 silly resolved 'klass',
4782 silly resolved 'oop',
4782 silly resolved 'object-oriented',
4782 silly resolved 'inherits',
4782 silly resolved 'browser',
4782 silly resolved 'browserify' ],
4782 silly resolved main: './inherits.js',
4782 silly resolved browser: './inherits_browser.js',
4782 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/inherits' },
4782 silly resolved license: 'ISC',
4782 silly resolved scripts: { test: 'node test' },
4782 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',
4782 silly resolved readmeFilename: 'README.md',
4782 silly resolved bugs: { url: 'https://github.com/isaacs/inherits/issues' },
4782 silly resolved homepage: 'https://github.com/isaacs/inherits',
4782 silly resolved _id: 'inherits@2.0.1',
4782 silly resolved _from: 'inherits@~2.0.1' },
4782 silly resolved { name: 'JSONStream',
4782 silly resolved version: '0.7.1',
4782 silly resolved description: 'rawStream.pipe(JSONStream.parse()).pipe(streamOfObjects)',
4782 silly resolved homepage: 'http://github.com/dominictarr/JSONStream',
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/dominictarr/JSONStream.git' },
4782 silly resolved dependencies: { jsonparse: '0.0.5', through: '~2.2.7' },
4782 silly resolved devDependencies:
4782 silly resolved { 'it-is': '~1',
4782 silly resolved assertions: '~2.2.2',
4782 silly resolved render: '~0.1.1',
4782 silly resolved trees: '~0.0.3',
4782 silly resolved 'event-stream': '~0.7.0',
4782 silly resolved tape: '~0.3.3' },
4782 silly resolved author:
4782 silly resolved { name: 'Dominic Tarr',
4782 silly resolved email: 'dominic.tarr@gmail.com',
4782 silly resolved url: 'http://bit.ly/dominictarr' },
4782 silly resolved scripts: { test: 'set -e; for t in test/*.js; do echo \'***\' $t \'***\'; node $t; done' },
4782 silly resolved optionalDependencies: {},
4782 silly resolved engines: { node: '*' },
4782 silly resolved readme: '# JSONStream\n\nstreaming JSON.parse and stringify\n\n<img src=https://secure.travis-ci.org/dominictarr/JSONStream.png?branch=master>\n\n## example\n\n``` js\n\nvar request = require(\'request\')\n , JSONStream = require(\'JSONStream\')\n , es = require(\'event-stream\')\n\nvar parser = JSONStream.parse([\'rows\', true])\n , req = request({url: \'http://isaacs.couchone.com/registry/_all_docs\'})\n , logger = es.mapSync(function (data) {\n console.error(data)\n return data\n })\n\n request({url: \'http://isaacs.couchone.com/registry/_all_docs\'})\n .pipe(JSONStream.parse(\'rows.*\'))\n .pipe(es.mapSync(function (data) {\n console.error(data)\n return data\n }))\n```\n\n## JSONStream.parse(path)\n\nparse stream of values that match a path\n\n``` js\n JSONStream.parse(\'rows.*.doc\')\n```\n\nThe `..` operator is the recursive descent operator from [JSONPath](http://goessner.net/articles/JsonPath/), which will match a child at any depth (see examples below).\n\nIf your keys have keys that include `.` or `*` etc, use an array instead.\n`[\'row\', true, /^doc/]`.\n\nIf you use an array, `RegExp`s, booleans, and/or functions. The `..` operator is also available in array representation, using `{recurse: true}`.\nany object that matches the path will be emitted as \'data\' (and `pipe`d down stream)\n\nIf `path` is empty or null, no \'data\' events are emitted.\n\n### Examples\n\nquery a couchdb view:\n\n``` bash\ncurl -sS localhost:5984/tests/_all_docs&include_docs=true\n```\nyou will get something like this:\n\n``` js\n{"total_rows":129,"offset":0,"rows":[\n { "id":"change1_0.6995461115147918"\n , "key":"change1_0.6995461115147918"\n , "value":{"rev":"1-e240bae28c7bb3667f02760f6398d508"}\n , "doc":{\n "_id": "change1_0.6995461115147918"\n , "_rev": "1-e240bae28c7bb3667f02760f6398d508","hello":1}\n },\n { "id":"change2_0.6995461115147918"\n , "key":"change2_0.6995461115147918"\n , "value":{"rev":"1-13677d36b98c0c075145bb8975105153"}\n , "doc":{\n "_id":"change2_0.6995461115147918"\n , "_rev":"1-13677d36b98c0c075145bb8975105153"\n , "hello":2\n }\n },\n]}\n\n```\n\nwe are probably most interested in the `rows.*.docs`\n\ncreate a `Stream` that parses the documents from the feed like this:\n\n``` js\nvar stream = JSONStream.parse([\'rows\', true, \'doc\']) //rows, ANYTHING, doc\n\nstream.on(\'data\', function(data) {\n console.log(\'received:\', data);\n});\n\nstream.on(\'root\', function(root, count) {\n if (!count) {\n console.log(\'no matches found:\', root);\n }\n});\n```\nawesome!\n\n\n`JSONStream.parser(\'docs..value\')` \n(or `JSONStream.parser([\'docs\', {recurse: true}, \'value\'])` using an array)\nwill emit every `value` object that is a child, grand-child, etc. of the \n`docs` object. In this example, it will match exactly 5 times at various depth\nlevels, emitting 0, 1, 2, 3 and 4 as results.\n\n```js\n{\n "total": 5,\n "docs": [\n {\n "key": {\n "value": 0,\n "some": "property"\n }\n },\n {"value": 1},\n {"value": 2},\n {"blbl": [{}, {"a":0, "b":1, "value":3}, 10]},\n {"value": 4}\n ]\n}\n```\n\n## JSONStream.stringify(open, sep, close)\n\nCreate a writable stream.\n\nyou may pass in custom `open`, `close`, and `seperator` strings.\nBut, by default, `JSONStream.stringify()` will create an array,\n(with default options `open=\'[\\n\', sep=\'\\n,\\n\', close=\'\\n]\\n\'`)\n\nIf you call `JSONStream.stringify(false)`\nthe elements will only be seperated by a newline.\n\nIf you only write one item this will be valid JSON.\n\nIf you write many items,\nyou can use a `RegExp` to split it into valid chunks.\n\n## JSONStream.stringifyObject(open, sep, close)\n\nVery much like `JSONStream.stringify`,\nbut creates a writable stream for objects instead of arrays.\n\nAccordingly, `open=\'{\\n\', sep=\'\\n,\\n\', close=\'\\n}\\n\'`.\n\nWhen you `.write()` to the stream you must supply an array with `[ key, data ]`\nas the first argument.\n\n## numbers\n\nThere are occasional problems parsing and unparsing very precise numbers.\n\nI have opened an issue here:\n\nhttps://github.com/creationix/jsonparse/issues/2\n\n+1\n\n## Acknowlegements\n\nthis module depends on https://github.com/creationix/jsonparse\nby Tim Caswell\nand also thanks to Florent Jaby for teaching me about parsing with:\nhttps://github.com/Floby/node-json-streams\n\n## license\n\nMIT / APACHE2\n',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/dominictarr/JSONStream/issues' },
4782 silly resolved _id: 'JSONStream@0.7.1',
4782 silly resolved _from: 'JSONStream@~0.7.1' },
4782 silly resolved { name: 'umd',
4782 silly resolved version: '2.0.0',
4782 silly resolved description: 'Universal Module Definition for use in automated build systems',
4782 silly resolved bin: { umd: './bin/cli.js' },
4782 silly resolved dependencies:
4782 silly resolved { rfile: '~1.0.0',
4782 silly resolved ruglify: '~1.0.0',
4782 silly resolved through: '~2.3.4',
4782 silly resolved 'uglify-js': '~2.4.0' },
4782 silly resolved devDependencies: { linify: '~1.0.1', mocha: '*' },
4782 silly resolved scripts: { test: 'mocha -R spec', prepublish: 'linify transform bin' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'https://github.com/ForbesLindesay/umd.git' },
4782 silly resolved author: { name: 'ForbesLindesay' },
4782 silly resolved license: 'MIT',
4782 silly resolved readme: '# umd\n<img src="http://i.imgur.com/ypw29XY.png" align="right"/>\n\nUniversal Module Definition for use in automated build systems\n\n - simple synchronous wrapping of a string\n - optional wrapping of a "stream" with genuine streaming\n - `return` style module support\n - CommonJS support\n - prevents internal UMDs from conflicting\n\n[![Build Status](https://travis-ci.org/ForbesLindesay/umd.png?branch=master)](https://travis-ci.org/ForbesLindesay/umd)\n[![Dependency Status](https://gemnasium.com/ForbesLindesay/umd.png)](https://gemnasium.com/ForbesLindesay/umd)\n[![NPM version](https://badge.fury.io/js/umd.png)](http://badge.fury.io/js/umd)\n\n## Source Format\n\nIn order for the UMD wrapper to work the source code for your module should `return` the export, e.g.\n\n```javascript\nfunction method() {\n //code\n}\nmethod.helper = function () {\n //code\n}\nreturn method;\n```\n\nFor examples, see the examples directory. The CommonJS module format is also supported by passing true as the second argument to methods.\n\n## API\n\n### umd(name, [commonJS = false], [source])\n\n The `name` should the the name of the module. Use a string like name, all lower case with hyphens instead of spaces.\n\n If CommonJS is `true` then it will accept CommonJS source instead of source code which `return`s the module.\n\n If `source` is provided and is a string, then it is wrapped in umd and returned as a string. If it is not provided, a duplex stream is returned which wraps the modules (see examples/build.js).\n\n Both commonJS and source are optional and can be provided in either order.\n\n### umd.prelude(module, [commonJS = false])\n\n return the text which will be inserted before a module.\n\n### umd.postlude(module, [commonJS = false])\n\n return the text which will be inserted after a module.\n\n## Command Line\n\n```\nUsage: umd <name> <source> <destination> [options]\n\nPipe Usage: umd <name> [options] < source > destination\n\nOptions:\n\n -h --help Display usage information\n -c --commonJS Use CommonJS module format\n ```\n\n## License\n\n MIT\n',
4782 silly resolved readmeFilename: 'README.md',
4782 silly resolved bugs: { url: 'https://github.com/ForbesLindesay/umd/issues' },
4782 silly resolved homepage: 'https://github.com/ForbesLindesay/umd',
4782 silly resolved _id: 'umd@2.0.0',
4782 silly resolved _from: 'umd@~2.0.0' },
4782 silly resolved { name: 'concat-stream',
4782 silly resolved description: 'writable stream that concatenates strings or binary data and calls a callback with the result',
4782 silly resolved tags: [ 'stream', 'simple', 'util', 'utility' ],
4782 silly resolved version: '1.4.1',
4782 silly resolved author: { name: 'Max Ogden', email: 'max@maxogden.com' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'http://github.com/maxogden/node-concat-stream.git' },
4782 silly resolved bugs: { url: 'http://github.com/maxogden/node-concat-stream/issues' },
4782 silly resolved engines: [ 'node >= 0.8' ],
4782 silly resolved main: 'index.js',
4782 silly resolved scripts: { test: 'tape test/*.js test/server/*.js' },
4782 silly resolved license: 'MIT',
4782 silly resolved dependencies:
4782 silly resolved { inherits: '~2.0.1',
4782 silly resolved typedarray: '~0.0.5',
4782 silly resolved 'readable-stream': '~1.1.9' },
4782 silly resolved devDependencies: { tape: '~2.3.2' },
4782 silly resolved testling: { files: 'test/*.js', browsers: [Object] },
4782 silly resolved readme: '# concat-stream\n\nWritable stream that concatenates strings or binary data and calls a callback with the result. Not a transform stream -- more of a stream sink.\n\n[![NPM](https://nodei.co/npm/concat-stream.png)](https://nodei.co/npm/concat-stream/)\n\n[![browser support](https://ci.testling.com/maxogden/concat-stream.png)](https://ci.testling.com/maxogden/concat-stream)\n\n### examples\n\n#### Buffers\n\n```js\nvar concat = require(\'concat-stream\')\nvar fs = require(\'fs\')\n \nvar read = fs.createReadStream(\'readme.md\')\nvar write = concat(function(data) {\n // data is all of readme.md as a Buffer\n})\n \nread.pipe(write)\n```\n\n#### Arrays\n\n```js\nvar write = concat(function(data) {})\nwrite.write([1,2,3])\nwrite.write([4,5,6])\nwrite.end()\n// data will be [1,2,3,4,5,6] in the above callback\n```\n\n#### Uint8Arrays\n\n```js\nvar write = concat(function(data) {})\nvar a = new Uint8Array(3)\na[0] = 97; a[1] = 98; a[2] = 99\nwrite.write(a)\nwrite.write(\'!\')\nwrite.end(Buffer(\'!!1\'))\n```\n\nSee `test/` for more examples\n\n# methods\n\n```js\nvar concat = require(\'concat-stream\')\n```\n\n## var writable = concat(opts={}, cb)\n\nReturn a `writable` stream that will fire `cb(data)` with all of the data that\nwas written to the stream. Data can be written to `writable` as strings,\nBuffers, arrays of byte integers, and Uint8Arrays. \n\nBy default `concat-stream` will give you back the same data type as the type of the first buffer written to the stream. Use `opts.encoding` to set what format `data` should be returned as, e.g. if you if you don\'t want to rely on the built-in type checking or for some other reason.\n\n* `string` - get a string\n* `buffer` - get back a Buffer\n* `array` - get an array of byte integers\n* `uint8array`, `u8`, `uint8` - get back a Uint8Array\n* `object`, get back an array of Objects\n\nIf you don\'t specify an encoding, and the types can\'t be inferred (e.g. you write things that aren\'t int he list above), it will try to convert concat them into a `Buffer`.\n\n# license\n\nMIT LICENSE\n',
4782 silly resolved readmeFilename: 'readme.md',
4782 silly resolved homepage: 'https://github.com/maxogden/node-concat-stream',
4782 silly resolved _id: 'concat-stream@1.4.1',
4782 silly resolved _from: 'concat-stream@~1.4.1' },
4782 silly resolved { name: 'parents',
4782 silly resolved version: '0.0.2',
4782 silly resolved description: 'return all the parent directories for a directory',
4782 silly resolved main: 'index.js',
4782 silly resolved bin: {},
4782 silly resolved directories: { example: 'example', test: 'test' },
4782 silly resolved dependencies: {},
4782 silly resolved devDependencies: { tap: '~0.2.5' },
4782 silly resolved scripts: { test: 'tap test/*.js' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/substack/node-parents.git' },
4782 silly resolved homepage: 'https://github.com/substack/node-parents',
4782 silly resolved keywords: [ 'directory', 'parent', 'path', 'tree' ],
4782 silly resolved author:
4782 silly resolved { name: 'James Halliday',
4782 silly resolved email: 'mail@substack.net',
4782 silly resolved url: 'http://substack.net' },
4782 silly resolved license: 'MIT',
4782 silly resolved engine: { node: '>=0.6' },
4782 silly resolved readme: '# parents\n\nReturn all the parent directories of a directory, inclusive of that directory.\n\n[![build status](https://secure.travis-ci.org/substack/node-parents.png)](http://travis-ci.org/substack/node-parents)\n\n# example\n\n## dirname\n\n``` js\nvar parents = require(\'parents\');\nvar dirs = parents(__dirname);\nconsole.dir(dirs);\n```\n\n***\n\n```\n[ \'/home/substack/projects/node-parents/example\',\n \'/home/substack/projects/node-parents\',\n \'/home/substack/projects\',\n \'/home/substack\',\n \'/home\',\n \'/\' ]\n```\n\n## win32\n\n``` js\nvar parents = require(\'parents\');\nvar dir = \'C:\\\\Program Files\\\\Maxis\\\\Sim City 2000\\\\cities\';\n\nvar dirs = parents(dir, { platform : \'win32\' });\nconsole.dir(dirs);\n```\n\n***\n\n```\n[ \'C:\\\\Program Files\\\\Maxis\\\\Sim City 2000\\\\cities\',\n \'C:\\\\Program Files\\\\Maxis\\\\Sim City 2000\',\n \'C:\\\\Program Files\\\\Maxis\',\n \'C:\\\\Program Files\',\n \'C:\' ]\n```\n\n# methods\n\n``` js\nvar parents = require(\'parents\')\n```\n\n## parents(dir, opts)\n\nReturn an array of the parent directories of `dir`, including and starting with\n`dir`. If a `dir` isn\'t specified, `process.cwd()` will be used.\n\nOptionally specify an `opts.platform` to control whether the separator and paths\nworks the unixy way with `\'/\'` or the windowsy way where sometimes things use\n`\'/\'` and sometimes they use `\'\\\\\'` and also there are leading drive letters and\nother exotic features. If `opts.platform` isn\'t specified, `process.platform`\nwill be used. Anything that matches `/^win/` will use the windowsy behavior.\n\n# install\n\nWith [npm](http://npmjs.org) do:\n\n```\nnpm install parents\n```\n\n# licence\n\nMIT\n',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/substack/node-parents/issues' },
4782 silly resolved _id: 'parents@0.0.2',
4782 silly resolved _from: 'parents@~0.0.1' },
4782 silly resolved { name: 'os-browserify',
4782 silly resolved version: '0.1.1',
4782 silly resolved author: { name: 'Drew Young' },
4782 silly resolved main: 'main.js',
4782 silly resolved browser: 'browser.js',
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'http://github.com/drewyoung1/os-browserify.git' },
4782 silly resolved readme: 'os-browserify\n=============',
4782 silly resolved readmeFilename: 'README.md',
4782 silly resolved description: 'os-browserify =============',
4782 silly resolved bugs: { url: 'https://github.com/drewyoung1/os-browserify/issues' },
4782 silly resolved homepage: 'https://github.com/drewyoung1/os-browserify',
4782 silly resolved _id: 'os-browserify@0.1.1',
4782 silly resolved _from: 'os-browserify@~0.1.1' },
4782 silly resolved { name: 'assert',
4782 silly resolved description: 'commonjs assert - node.js api compatible',
4782 silly resolved keywords: [ 'assert' ],
4782 silly resolved version: '1.1.0',
4782 silly resolved homepage: 'https://github.com/defunctzombie/commonjs-assert',
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/defunctzombie/commonjs-assert.git' },
4782 silly resolved main: './assert.js',
4782 silly resolved dependencies: { util: '0.10.2' },
4782 silly resolved devDependencies: { zuul: '~1.0.9', mocha: '1.14.0' },
4782 silly resolved scripts: { test: 'mocha --ui qunit test.js && zuul -- test.js' },
4782 silly resolved readme: '# assert\n\n[![Build Status](https://travis-ci.org/defunctzombie/commonjs-assert.png?branch=master)](https://travis-ci.org/defunctzombie/commonjs-assert)\n\nThis module is used for writing unit tests for your applications, you can access it with require(\'assert\').\n\nThe API is derived from the [commonjs 1.0 unit testing](http://wiki.commonjs.org/wiki/Unit_Testing/1.0) spec and the [node.js assert module](http://nodejs.org/api/assert.html)\n\n## assert.fail(actual, expected, message, operator)\nThrows an exception that displays the values for actual and expected separated by the provided operator.\n\n## assert(value, message), assert.ok(value, [message])\nTests if value is truthy, it is equivalent to assert.equal(true, !!value, message);\n\n## assert.equal(actual, expected, [message])\nTests shallow, coercive equality with the equal comparison operator ( == ).\n\n## assert.notEqual(actual, expected, [message])\nTests shallow, coercive non-equality with the not equal comparison operator ( != ).\n\n## assert.deepEqual(actual, expected, [message])\nTests for deep equality.\n\n## assert.notDeepEqual(actual, expected, [message])\nTests for any deep inequality.\n\n## assert.strictEqual(actual, expected, [message])\nTests strict equality, as determined by the strict equality operator ( === )\n\n## assert.notStrictEqual(actual, expected, [message])\nTests strict non-equality, as determined by the strict not equal operator ( !== )\n\n## assert.throws(block, [error], [message])\nExpects block to throw an error. error can be constructor, regexp or validation function.\n\nValidate instanceof using constructor:\n\n```javascript\nassert.throws(function() { throw new Error("Wrong value"); }, Error);\n```\n\nValidate error message using RegExp:\n\n```javascript\nassert.throws(function() { throw new Error("Wrong value"); }, /value/);\n```\n\nCustom error validation:\n\n```javascript\nassert.throws(function() {\n throw new Error("Wrong value");\n}, function(err) {\n if ( (err instanceof Error) && /value/.test(err) ) {\n return true;\n }\n}, "unexpected error");\n```\n\n## assert.doesNotThrow(block, [message])\nExpects block not to throw an error, see assert.throws for details.\n\n## assert.ifError(value)\nTests if value is not a false value, throws if it is a true value. Useful when testing the first argument, error in callbacks.\n',
4782 silly resolved readmeFilename: 'README.md',
4782 silly resolved bugs: { url: 'https://github.com/defunctzombie/commonjs-assert/issues' },
4782 silly resolved _id: 'assert@1.1.0',
4782 silly resolved _from: 'assert@~1.1.0' },
4782 silly resolved { name: 'constants-browserify',
4782 silly resolved description: 'node\'s constants module for the browser',
4782 silly resolved version: '0.0.1',
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/juliangruber/constants-browserify.git' },
4782 silly resolved homepage: 'https://github.com/juliangruber/constants-browserify',
4782 silly resolved main: 'constants.json',
4782 silly resolved dependencies: {},
4782 silly resolved keywords: [ 'constants', 'node', 'browser', 'browserify' ],
4782 silly resolved author:
4782 silly resolved { name: 'Julian Gruber',
4782 silly resolved email: 'julian@juliangruber.com',
4782 silly resolved url: 'http://juliangruber.com' },
4782 silly resolved license: 'MIT',
4782 silly resolved readme: '\n# constants-browserify\n\nNode\'s `constants` module for the browser.\n\n## Usage\n\nTo use with browserify cli:\n\n```bash\n$ browserify -r constants:constants-browserify script.js\n```\n\nTo use with browserify api:\n\n```js\nbrowserify()\n .require(\'constants-browserify\', { expose: \'constants\' })\n .add(__dirname + \'/script.js\')\n .bundle()\n // ...\n```\n\n## Installation\n\nWith [npm](http://npmjs.org) do\n\n```bash\n$ npm install constants-browserify\n```\n\n## License\n\nCopyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the "Software"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n',
4782 silly resolved readmeFilename: 'README.md',
4782 silly resolved bugs: { url: 'https://github.com/juliangruber/constants-browserify/issues' },
4782 silly resolved _id: 'constants-browserify@0.0.1',
4782 silly resolved _from: 'constants-browserify@~0.0.1' },
4782 silly resolved { name: 'vm-browserify',
4782 silly resolved version: '0.0.4',
4782 silly resolved description: 'vm module for the browser',
4782 silly resolved main: 'index.js',
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'http://github.com/substack/vm-browserify.git' },
4782 silly resolved keywords: [ 'vm', 'browser', 'eval' ],
4782 silly resolved dependencies: { indexof: '0.0.1' },
4782 silly resolved devDependencies: { tape: '~2.3.2' },
4782 silly resolved author:
4782 silly resolved { name: 'James Halliday',
4782 silly resolved email: 'mail@substack.net',
4782 silly resolved url: 'http://substack.net' },
4782 silly resolved scripts: { test: 'tap test/*.js' },
4782 silly resolved license: 'MIT',
4782 silly resolved testling: { files: 'test/*.js', browsers: [Object] },
4782 silly resolved readme: '# vm-browserify\n\nemulate node\'s vm module for the browser\n\n[![testling badge](https://ci.testling.com/substack/vm-browserify.png)](https://ci.testling.com/substack/vm-browserify)\n\n# example\n\nJust write some client-side javascript:\n\n``` js\nvar vm = require(\'vm\');\n\n$(function () {\n var res = vm.runInNewContext(\'a + 5\', { a : 100 });\n $(\'#res\').text(res);\n});\n```\n\ncompile it with [browserify](http://github.com/substack/node-browserify):\n\n```\nbrowserify entry.js -o bundle.js\n```\n\nthen whip up some html:\n\n``` html\n<html>\n <head>\n <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>\n <script src="/bundle.js"></script>\n </head>\n <body>\n result = <span id="res"></span>\n </body>\n</html>\n```\n\nand when you load the page you should see:\n\n```\nresult = 105\n```\n\n# methods\n\n## vm.runInNewContext(code, context={})\n\nEvaluate some `code` in a new iframe with a `context`.\n\nContexts are like wrapping your code in a `with()` except slightly less terrible\nbecause the code is sandboxed into a new iframe.\n\n# install\n\nThis module is depended upon by browserify, so you should just be able to\n`require(\'vm\')` and it will just work. However if you want to use this module\ndirectly you can install it with [npm](http://npmjs.org):\n\n```\nnpm install vm-browserify\n```\n\n# license\n\nMIT\n',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/substack/vm-browserify/issues' },
4782 silly resolved homepage: 'https://github.com/substack/vm-browserify',
4782 silly resolved _id: 'vm-browserify@0.0.4',
4782 silly resolved _from: 'vm-browserify@~0.0.1' },
4782 silly resolved { name: 'events',
4782 silly resolved id: 'events',
4782 silly resolved version: '1.0.0',
4782 silly resolved description: 'Node\'s event emitter for all engines.',
4782 silly resolved keywords: [ 'events', 'eventEmitter', 'eventDispatcher', 'listeners' ],
4782 silly resolved author:
4782 silly resolved { name: 'Irakli Gozalishvili',
4782 silly resolved email: 'rfobic@gmail.com',
4782 silly resolved url: 'http://jeditoolkit.com' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/Gozala/events.git',
4782 silly resolved web: 'https://github.com/Gozala/events' },
4782 silly resolved bugs: { url: 'http://github.com/Gozala/events/issues/' },
4782 silly resolved main: './events.js',
4782 silly resolved engines: { node: '>=0.4.x' },
4782 silly resolved devDependencies: { mocha: '1.15.1', zuul: '~1.0.6' },
4782 silly resolved scripts: { test: 'mocha --ui qunit -- tests/index.js && zuul -- tests/index.js' },
4782 silly resolved licenses: [ [Object] ],
4782 silly resolved readme: '# events [![Build Status](https://travis-ci.org/Gozala/events.png?branch=master)](https://travis-ci.org/Gozala/events)\n\nNode\'s event emitter for all engines.\n\n## Install ##\n\n```\nnpm install events\n```\n\n## Require ##\n\n```javascript\nvar EventEmitter = require(\'events\').EventEmitter\n```\n\n## Usage ##\n\nSee the [node.js event emitter docs](http://nodejs.org/api/events.html)\n',
4782 silly resolved readmeFilename: 'Readme.md',
4782 silly resolved homepage: 'https://github.com/Gozala/events',
4782 silly resolved _id: 'events@1.0.0',
4782 silly resolved _from: 'events@~1.0.0' },
4782 silly resolved { name: 'zlib-browserify',
4782 silly resolved version: '0.0.3',
4782 silly resolved description: 'Wrapper for zlib.js to allow for browserifyication',
4782 silly resolved main: 'index.js',
4782 silly resolved directories: { test: 'test' },
4782 silly resolved dependencies: { tape: '~0.2.2' },
4782 silly resolved devDependencies: { tap: '~0.3.3' },
4782 silly resolved scripts: { test: './node_modules/.bin/tap test/*.test.js' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/brianloveswords/zlib-browserify.git' },
4782 silly resolved keywords: [ 'zlib', 'browserify' ],
4782 silly resolved author: { name: 'Brian J. Brennan' },
4782 silly resolved license: 'MIT',
4782 silly resolved gitHead: '4be9419f0e8e9dec9629c8a538b33a4efd7df17b',
4782 silly resolved readmeFilename: 'readme.md',
4782 silly resolved readme: '# zlib-browserify [![Build Status](https://travis-ci.org/brianloveswords/zlib-browserify.png?branch=master)](https://travis-ci.org/brianloveswords/zlib-browserify)\n\nZlib in yo\' browser.\n\n# What is this?\n\nThis is a very small wrapper for https://github.com/imaya/zlib.js. Fixes\nsome very minor API inconsistencies. Only implements `inflate`,\n`deflate`, `gzip` and `gunzip` so if you\'re doing anything extra fancy\nyou\'re out of luck for now.\n\n# Run tests\n\n```bash\n$ npm test\n```\n\n# Test methodology (a.k.a, "why doesn\'t the output match node\'s zlib?")\n\n(zlibA = native, zlibB = browserified)\n\nPretending these are sync, I do the following to test:\n\n```js\nassert(zlibB.inflate(zlibA.deflate(\'test\')) === "test");\nassert(zlibA.inflate(zlibB.deflate(\'test\')) === "test");\n...\n```\n\nand so on for each of the methods supported. Note, I do **not** do \n\n```js\nassert(zlibA.deflate(\'test\') === zlibB.deflate(\'test\'));\n```\n\nBecause node\'s deflate and the imaya\'s version do not seem to use the\nsame defaults for compression level. I haven\'t figured out how to change\nit yet. Anyway, rest assured, while `deflate` does not return the same\noutput, this is fully interoperable with node\'s native zlib.\n\n# License\n\nMIT\n',
4782 silly resolved bugs: { url: 'https://github.com/brianloveswords/zlib-browserify/issues' },
4782 silly resolved homepage: 'https://github.com/brianloveswords/zlib-browserify',
4782 silly resolved _id: 'zlib-browserify@0.0.3',
4782 silly resolved _from: 'zlib-browserify@~0.0.3' },
4782 silly resolved { name: 'console-browserify',
4782 silly resolved version: '1.0.3',
4782 silly resolved description: 'Emulate console for all the browsers',
4782 silly resolved keywords: [],
4782 silly resolved author: { name: 'Raynos', email: 'raynos2@gmail.com' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/Raynos/console-browserify.git' },
4782 silly resolved main: 'index',
4782 silly resolved homepage: 'https://github.com/Raynos/console-browserify',
4782 silly resolved contributors: [ [Object] ],
4782 silly resolved bugs:
4782 silly resolved { url: 'https://github.com/Raynos/console-browserify/issues',
4782 silly resolved email: 'raynos2@gmail.com' },
4782 silly resolved dependencies: {},
4782 silly resolved devDependencies:
4782 silly resolved { tape: '~2.3.0',
4782 silly resolved browserify: 'https://github.com/raynos/node-browserify/tarball/master',
4782 silly resolved testem: '~0.2.55',
4782 silly resolved jsonify: '0.0.0' },
4782 silly resolved licenses: [ [Object] ],
4782 silly resolved scripts:
4782 silly resolved { test: 'node ./test',
4782 silly resolved build: 'browserify test/index.js -o test/static/bundle.js',
4782 silly resolved testem: 'testem' },
4782 silly resolved testling: { files: 'test/index.js', browsers: [Object] },
4782 silly resolved readme: '# console-browserify\n\n[![build status][1]][2]\n\n[![browser support][3]][4]\n\nEmulate console for all the browsers\n\n## Example\n\n```js\nvar console = require("console-browserify")\n\nconsole.log("hello world!")\n```\n\n## Installation\n\n`npm install console-browserify`\n\n## Contributors\n\n - Raynos\n\n## MIT Licenced\n\n\n\n [1]: https://secure.travis-ci.org/Raynos/console-browserify.png\n [2]: http://travis-ci.org/Raynos/console-browserify\n [3]: http://ci.testling.com/Raynos/console-browserify.png\n [4]: http://ci.testling.com/Raynos/console-browserify\n',
4782 silly resolved readmeFilename: 'README.md',
4782 silly resolved _id: 'console-browserify@1.0.3',
4782 silly resolved _from: 'console-browserify@~1.0.1' },
4782 silly resolved { name: 'native-buffer-browserify',
4782 silly resolved version: '2.0.17',
4782 silly resolved description: 'buffer module compatibility for browserify (backed by ArrayBuffer so its fast!)',
4782 silly resolved main: 'index.js',
4782 silly resolved dependencies: { 'base64-js': '~0.0.4', ieee754: '~1.1.1' },
4782 silly resolved devDependencies: { benchmark: '*', browserify: '3.x', tape: '*' },
4782 silly resolved scripts:
4782 silly resolved { test: 'tape test/*.js',
4782 silly resolved prepublish: './bundle.sh',
4782 silly resolved perf: 'cd perf/solo && browserify --debug readUInt32BE.js > bundle.js && open index.html' },
4782 silly resolved testling: { files: 'test/*.js', browsers: [Object] },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/feross/native-buffer-browserify.git' },
4782 silly resolved keywords:
4782 silly resolved [ 'buffer',
4782 silly resolved 'browserify',
4782 silly resolved 'compatible',
4782 silly resolved 'browser',
4782 silly resolved 'arraybuffer',
4782 silly resolved 'uint8array',
4782 silly resolved 'dataview' ],
4782 silly resolved author:
4782 silly resolved { name: 'Feross Aboukhadijeh',
4782 silly resolved email: 'feross@feross.org',
4782 silly resolved url: 'http://feross.org/' },
4782 silly resolved contributors: [ [Object], [Object] ],
4782 silly resolved license: 'MIT',
4782 silly resolved readme: '# native-buffer-browserify\n[![Build Status](http://img.shields.io/travis/feross/native-buffer-browserify.svg)](https://travis-ci.org/feross/native-buffer-browserify)\n[![NPM Version](http://img.shields.io/npm/v/native-buffer-browserify.svg)](https://npmjs.org/package/native-buffer-browserify)\n[![NPM](http://img.shields.io/npm/dm/native-buffer-browserify.svg)](https://npmjs.org/package/native-buffer-browserify)\n[![Gittip](http://img.shields.io/gittip/feross.svg)](https://www.gittip.com/feross/)\n\nThe buffer module from [node.js](http://nodejs.org/), but for browsers. This is a fork of [buffer-browserify](https://github.com/toots/buffer-browserify).\n\n[![testling badge](https://ci.testling.com/feross/native-buffer-browserify.png)](https://ci.testling.com/feross/native-buffer-browserify)\n\n## usage\n\nWhen you `require(\'buffer\')` or reference the `Buffer` global in [browserify](http://github.com/substack/node-browserify), this module will automatically be loaded.\n\nIf you want to manually install it for some reason, do:\n\n```\nnpm install native-buffer-browserify\n```\n\n## features\n\n- **Backed by Typed Arrays (`Uint8Array` and `ArrayBuffer`) (not `Object`, so it\'s fast)**\n- **Bundle size is nearly half of the original `buffer-browserify` (35KB vs 65KB!)**\n- **Excellent browser support (IE 6+, Chrome 4+, Firefox 3+, Safari 5.1+, Opera 11+, iOS).**\n- Preserves Node API exactly.\n- Faster pretty much across the board (see perf results below)\n- `.slice()` returns instances of the same type (Buffer)\n- Square-bracket `buf[4]` notation works, even in old browsers like IE6!\n- Does not modify any browser prototypes.\n- All tests from the original `buffer-browserify` project pass, plus additional ones.\n\n## how does it work?\n\nThe `Buffer` constructor returns instances of `Uint8Array` that are augmented with function properties for all the Buffer API functions. We use `Uint8Array` so that square bracket notation works as expected -- it returns a single octet.\n\nBy augmenting the instances, we can avoid modifying the `Uint8Array` prototype.\n\n## important differences\n\n### use `Buffer.isBuffer` instead of `instanceof Buffer`\n\nThe Buffer constructor returns a `Uint8Array` (as discussed above) for performance reasons, so `instanceof Buffer` won\'t work. In node `Buffer.isBuffer` just does `instanceof Buffer`, but in browserify we use a `Buffer.isBuffer` shim that detects our special `Uint8Array`-based Buffers.\n\n### don\'t rely on `slice()` to modify the memory of the parent buffer\n\nIf the browser is using the Typed Array implementation then modifying a buffer created by `slice()` will modify the original memory, [just like in Node](http://nodejs.org/api/buffer.html#buffer_buf_slice_start_end). But for the Object implementation (used in unsupported browsers), this is not possible. Therefore, do not rely on this behavior until browser support gets better. (Note: currently even Firefox isn\'t using the Typed Array implementation because of [this bug](https://bugzilla.mozilla.org/show_bug.cgi?id=952403).)\n\n## performance\n\nSee perf tests in `/perf`.\n\n```\n# Chrome 33\n\nNewBuffer#bracket-notation x 11,194,815 ops/sec ±1.73% (64 runs sampled)\nOldBuffer#bracket-notation x 9,546,694 ops/sec ±0.76% (67 runs sampled)\nFastest is NewBuffer#bracket-notation\n\nNewBuffer#concat x 949,714 ops/sec ±2.48% (63 runs sampled)\nOldBuffer#concat x 634,906 ops/sec ±0.42% (68 runs sampled)\nFastest is NewBuffer#concat\n\nNewBuffer#copy x 15,436,458 ops/sec ±1.74% (67 runs sampled)\nOldBuffer#copy x 3,990,346 ops/sec ±0.42% (68 runs sampled)\nFastest is NewBuffer#copy\n\nNewBuffer#readDoubleBE x 1,132,954 ops/sec ±2.36% (65 runs sampled)\nOldBuffer#readDoubleBE x 846,337 ops/sec ±0.58% (68 runs sampled)\nFastest is NewBuffer#readDoubleBE\n\nNewBuffer#new x 1,419,300 ops/sec ±3.50% (66 runs sampled)\nUint8Array#new x 3,898,573 ops/sec ±0.88% (67 runs sampled) (used internally by NewBuffer)\nOldBuffer#new x 2,284,568 ops/sec ±0.57% (67 runs sampled)\nFastest is Uint8Array#new\n\nNewBuffer#readFloatBE x 1,203,763 ops/sec ±1.81% (68 runs sampled)\nOldBuffer#readFloatBE x 954,923 ops/sec ±0.66% (70 runs sampled)\nFastest is NewBuffer#readFloatBE\n\nNewBuffer#readUInt32LE x 750,341 ops/sec ±1.70% (66 runs sampled)\nOldBuffer#readUInt32LE x 1,408,478 ops/sec ±0.60% (68 runs sampled)\nFastest is OldBuffer#readUInt32LE\n\nNewBuffer#slice x 1,802,870 ops/sec ±1.87% (64 runs sampled)\nOldBuffer#slice x 1,725,928 ops/sec ±0.74% (68 runs sampled)\nFastest is NewBuffer#slice\n\nNewBuffer#writeFloatBE x 830,407 ops/sec ±3.09% (66 runs sampled)\nOldBuffer#writeFloatBE x 508,446 ops/sec ±0.49% (69 runs sampled)\nFastest is NewBuffer#writeFloatBE\n\n# Node 0.11\n\nNewBuffer#bracket-notation x 10,912,085 ops/sec ±0.89% (92 runs sampled)\nOldBuffer#bracket-notation x 9,051,638 ops/sec ±0.84% (92 runs sampled)\nBuffer#bracket-notation x 10,721,608 ops/sec ±0.63% (91 runs sampled)\nFastest is NewBuffer#bracket-notation\n\nNewBuffer#concat x 1,438,825 ops/sec ±1.80% (91 runs sampled)\nOldBuffer#concat x 888,614 ops/sec ±2.09% (93 runs sampled)\nBuffer#concat x 1,832,307 ops/sec ±1.20% (90 runs sampled)\nFastest is Buffer#concat\n\nNewBuffer#copy x 5,987,167 ops/sec ±0.85% (94 runs sampled)\nOldBuffer#copy x 3,892,165 ops/sec ±1.28% (93 runs sampled)\nBuffer#copy x 11,208,889 ops/sec ±0.76% (91 runs sampled)\nFastest is Buffer#copy\n\nNewBuffer#readDoubleBE x 1,057,233 ops/sec ±1.28% (88 runs sampled)\nOldBuffer#readDoubleBE x 4,094 ops/sec ±1.09% (86 runs sampled)\nBuffer#readDoubleBE x 1,587,308 ops/sec ±0.87% (84 runs sampled)\nFastest is Buffer#readDoubleBE\n\nNewBuffer#new x 739,791 ops/sec ±0.89% (89 runs sampled)\nUint8Array#new x 2,745,243 ops/sec ±0.95% (91 runs sampled)\nOldBuffer#new x 2,604,537 ops/sec ±0.93% (88 runs sampled)\nBuffer#new x 1,836,218 ops/sec ±0.74% (92 runs sampled)\nFastest is Uint8Array#new\n\nNewBuffer#readFloatBE x 1,111,263 ops/sec ±0.41% (97 runs sampled)\nOldBuffer#readFloatBE x 4,026 ops/sec ±1.24% (90 runs sampled)\nBuffer#readFloatBE x 1,611,800 ops/sec ±0.58% (96 runs sampled)\nFastest is Buffer#readFloatBE\n\nNewBuffer#readUInt32LE x 502,024 ops/sec ±0.59% (94 runs sampled)\nOldBuffer#readUInt32LE x 1,259,028 ops/sec ±0.79% (87 runs sampled)\nBuffer#readUInt32LE x 2,778,635 ops/sec ±0.46% (97 runs sampled)\nFastest is Buffer#readUInt32LE\n\nNewBuffer#slice x 1,174,908 ops/sec ±1.47% (89 runs sampled)\nOldBuffer#slice x 2,396,302 ops/sec ±4.36% (86 runs sampled)\nBuffer#slice x 2,994,029 ops/sec ±0.79% (89 runs sampled)\nFastest is Buffer#slice\n\nNewBuffer#writeFloatBE x 721,081 ops/sec ±1.10% (86 runs sampled)\nOldBuffer#writeFloatBE x 4,020 ops/sec ±1.04% (92 runs sampled)\nBuffer#writeFloatBE x 1,811,134 ops/sec ±0.67% (91 runs sampled)\nFastest is Buffer#writeFloatBE\n```\n\n## license\n\nMIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org), Romain Beauxis, and other contributors.\n',
4782 silly resolved readmeFilename: 'README.md',
4782 silly resolved bugs: { url: 'https://github.com/feross/native-buffer-browserify/issues' },
4782 silly resolved homepage: 'https://github.com/feross/native-buffer-browserify',
4782 silly resolved _id: 'native-buffer-browserify@2.0.17',
4782 silly resolved _from: 'native-buffer-browserify@~2.0.0' },
4782 silly resolved { author: { name: 'Joyent', url: 'http://www.joyent.com' },
4782 silly resolved name: 'url',
4782 silly resolved description: 'Node.JS url module',
4782 silly resolved keywords: [ 'ender', 'pakmanager', 'url' ],
4782 silly resolved publishConfig: { registry: 'http://registry.npmjs.org' },
4782 silly resolved version: '0.7.9',
4782 silly resolved homepage: 'http://nodejs.org/api/url.html',
4782 silly resolved repository: { type: 'git', url: 'git://github.com/coolaj86/node.git' },
4782 silly resolved main: './url.js',
4782 silly resolved directories: { lib: '.' },
4782 silly resolved engines: { node: '>= 0.2.0', ender: '>= 0.5.0' },
4782 silly resolved dependencies: { querystring: '>=0.1.0 <0.2.0', punycode: '>=1.0.0 <1.1.0' },
4782 silly resolved devDependencies: {},
4782 silly resolved bugs: { url: 'https://github.com/coolaj86/node/issues' },
4782 silly resolved readme: 'ERROR: No README data found!',
4782 silly resolved _id: 'url@0.7.9',
4782 silly resolved _from: 'url@~0.7.9' },
4782 silly resolved { name: 'https-browserify',
4782 silly resolved version: '0.0.0',
4782 silly resolved description: 'https module compatability for browserify',
4782 silly resolved main: 'index.js',
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/substack/https-browserify.git' },
4782 silly resolved homepage: 'https://github.com/substack/https-browserify',
4782 silly resolved keywords: [ 'https', 'browser', 'browserify' ],
4782 silly resolved author:
4782 silly resolved { name: 'James Halliday',
4782 silly resolved email: 'mail@substack.net',
4782 silly resolved url: 'http://substack.net' },
4782 silly resolved license: 'MIT',
4782 silly resolved readme: '# https-browserify\n\nhttps module compatability for browserify\n\n# example\n\n``` js\nvar https = require(\'https-browserify\');\nvar r = https.request(\'https://github.com\');\nr.on(\'request\', function (res) {\n console.log(res);\n});\n```\n\n# methods\n\nThe API is the same as the client portion of the\n[node core https module](http://nodejs.org/docs/latest/api/https.html).\n\n# license\n\nMIT\n',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/substack/https-browserify/issues' },
4782 silly resolved _id: 'https-browserify@0.0.0',
4782 silly resolved _from: 'https-browserify@~0.0.0' },
4782 silly resolved { name: 'path-browserify',
4782 silly resolved version: '0.0.0',
4782 silly resolved description: 'the path module from node core for browsers',
4782 silly resolved main: 'index.js',
4782 silly resolved dependencies: {},
4782 silly resolved devDependencies: { tape: '~1.0.4' },
4782 silly resolved scripts: { test: 'tape test/*.js' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/substack/path-browserify.git' },
4782 silly resolved homepage: 'https://github.com/substack/path-browserify',
4782 silly resolved keywords: [ 'path', 'browser', 'browserify' ],
4782 silly resolved author:
4782 silly resolved { name: 'James Halliday',
4782 silly resolved email: 'mail@substack.net',
4782 silly resolved url: 'http://substack.net' },
4782 silly resolved license: 'MIT',
4782 silly resolved readme: '# path-browserify\n\nthe path module from node core for browsers\n',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/substack/path-browserify/issues' },
4782 silly resolved _id: 'path-browserify@0.0.0',
4782 silly resolved _from: 'path-browserify@~0.0.0' },
4782 silly resolved { name: 'string_decoder',
4782 silly resolved version: '0.0.1',
4782 silly resolved description: 'the string_decoder module from node core for browsers',
4782 silly resolved main: 'index.js',
4782 silly resolved dependencies: {},
4782 silly resolved devDependencies: { tap: '~0.4.8' },
4782 silly resolved scripts: { test: 'tap test/simple/*.js' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/substack/string_decoder.git' },
4782 silly resolved homepage: 'https://github.com/substack/string_decoder',
4782 silly resolved keywords: [ 'string', 'decoder', 'browser', 'browserify' ],
4782 silly resolved author:
4782 silly resolved { name: 'James Halliday',
4782 silly resolved email: 'mail@substack.net',
4782 silly resolved url: 'http://substack.net' },
4782 silly resolved license: 'MIT',
4782 silly resolved readme: '**string_decoder.js** (`require(\'string_decoder\')`) from Node.js core\n\nCopyright Joyent, Inc. and other Node contributors. See LICENCE file for details.\n\nVersion numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. **Prefer the stable version over the unstable.**\n\nThe *build/* directory contains a build script that will scrape the source from the [joyent/node](https://github.com/joyent/node) repo given a specific Node version.',
4782 silly resolved readmeFilename: 'README.md',
4782 silly resolved bugs: { url: 'https://github.com/substack/string_decoder/issues' },
4782 silly resolved _id: 'string_decoder@0.0.1',
4782 silly resolved _from: 'string_decoder@~0.0.0' },
4782 silly resolved { name: 'stream-browserify',
4782 silly resolved version: '0.1.3',
4782 silly resolved description: 'the stream module from node core for browsers',
4782 silly resolved main: 'index.js',
4782 silly resolved dependencies: { inherits: '~2.0.1', process: '~0.5.1' },
4782 silly resolved devDependencies: { typedarray: '~0.0.5', tape: '~2.3.2' },
4782 silly resolved scripts: { test: 'tape test/*.js' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/substack/stream-browserify.git' },
4782 silly resolved homepage: 'https://github.com/substack/stream-browserify',
4782 silly resolved keywords: [ 'stream', 'browser', 'browserify' ],
4782 silly resolved author:
4782 silly resolved { name: 'James Halliday',
4782 silly resolved email: 'mail@substack.net',
4782 silly resolved url: 'http://substack.net' },
4782 silly resolved license: 'MIT',
4782 silly resolved testling: { files: 'test/*.js', browsers: [Object] },
4782 silly resolved readme: '# stream-browserify\n\nthe stream module from node core, for browsers!\n\n[![build status](https://secure.travis-ci.org/substack/stream-browserify.png)](http://travis-ci.org/substack/stream-browserify)\n\n[![testling badge](https://ci.testling.com/substack/stream-browserify.png)](https://ci.testling.com/substack/stream-browserify)\n\n# methods\n\nConsult the node core\n[documentation on streams](http://nodejs.org/docs/latest/api/stream.html).\n\n# install\n\nWith [npm](https://npmjs.org) do:\n\n```\nnpm install stream-browserify\n```\n\nbut if you are using browserify you will get this module automatically when you\ndo `require(\'stream\')`.\n\n# license\n\nMIT\n',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/substack/stream-browserify/issues' },
4782 silly resolved _id: 'stream-browserify@0.1.3',
4782 silly resolved _from: 'stream-browserify@~0.1.0' },
4782 silly resolved { name: 'http-browserify',
4782 silly resolved version: '1.1.0',
4782 silly resolved description: 'http module compatability for browserify',
4782 silly resolved main: 'index.js',
4782 silly resolved browserify: 'index.js',
4782 silly resolved directories: { lib: '.', example: 'example', test: 'test' },
4782 silly resolved scripts: { test: 'tape test/*.js' },
4782 silly resolved dependencies: { Base64: '~0.2.0', inherits: '~2.0.1' },
4782 silly resolved devDependencies: { ecstatic: '~0.1.6', tape: '~2.3.2' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'http://github.com/substack/http-browserify.git' },
4782 silly resolved keywords: [ 'http', 'browserify', 'compatible', 'meatless', 'browser' ],
4782 silly resolved author:
4782 silly resolved { name: 'James Halliday',
4782 silly resolved email: 'mail@substack.net',
4782 silly resolved url: 'http://substack.net' },
4782 silly resolved license: 'MIT/X11',
4782 silly resolved readme: 'http-browserify\n===============\n\nThe\n[http](http://nodejs.org/docs/v0.4.10/api/all.html#hTTP) module from node.js,\nbut for browsers.\n\nWhen you `require(\'http\')` in\n[browserify](http://github.com/substack/node-browserify),\nthis module will be loaded.\n\nexample\n=======\n\n````javascript\nvar http = require(\'http\');\n\nhttp.get({ path : \'/beep\' }, function (res) {\n var div = document.getElementById(\'result\');\n div.innerHTML += \'GET /beep<br>\';\n \n res.on(\'data\', function (buf) {\n div.innerHTML += buf;\n });\n \n res.on(\'end\', function () {\n div.innerHTML += \'<br>__END__\';\n });\n});\n````\n\nhttp methods\n============\n\nvar http = require(\'http\');\n\nvar req = http.request(options, cb)\n-----------------------------------\n\n`options` can have:\n\n* method\n* path\n* headers={}, as an object mapping key names to string or Array values\n* host=window.location.host\n* port=window.location.port\n\nThe callback will be called with the response object.\n\nvar req = http.get(options, cb)\n-------------------------------\n\nA shortcut for\n\n````javascript\noptions.method = \'GET\';\nvar req = http.request(options, cb);\nreq.end();\n````\n\nrequest methods\n===============\n\nreq.setHeader(key, value)\n-------------------------\n\nSet an http header.\n\nreq.write(data)\n---------------\n\nWrite some data to the request body.\n\nreq.end(data)\n-------------\n\nClose and send the request body, optionally with additional `data` to append.\n\nresponse methods\n================\n\nres.getHeader(key)\n------------------\n\nReturn an http header, if set. `key` is case-insensitive.\n\nresponse attributes\n===================\n\n* res.statusCode, the numeric http response code\n* res.headers, an object with all lowercase keys\n\nresponse events\n---------------\n\n* data\n* end\n* error\n\ncompatibility\n=============\n\nThis module has been tested and works with:\n\n* Internet Explorer 5.5, 6, 7, 8, 9\n* Firefox 3.5\n* Chrome 7.0\n* Opera 10.6\n* Safari 5.0\n\nMultipart streaming responses are buffered in all versions of Internet Explorer\nand are somewhat buffered in Opera. In all the other browsers you get a nice\nunbuffered stream of `"data"` events when you send down a content-type of\n`multipart/octet-stream` or similar.\n\nprotip\n======\n\nYou can do:\n\n````javascript\nvar bundle = browserify({\n require : { http : \'http-browserify\' }\n});\n````\n\nin order to map "http-browserify" over `require(\'http\')` in your browserified\nsource.\n',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/substack/http-browserify/issues' },
4782 silly resolved homepage: 'https://github.com/substack/http-browserify',
4782 silly resolved _id: 'http-browserify@1.1.0',
4782 silly resolved _from: 'http-browserify@~1.1.0' },
4782 silly resolved { name: 'punycode',
4782 silly resolved version: '1.2.3',
4782 silly resolved description: 'A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.',
4782 silly resolved homepage: 'http://mths.be/punycode',
4782 silly resolved main: 'punycode.js',
4782 silly resolved keywords: [ 'punycode', 'unicode', 'idn', 'idna', 'dns', 'url', 'domain' ],
4782 silly resolved licenses: [ [Object], [Object] ],
4782 silly resolved author:
4782 silly resolved { name: 'Mathias Bynens',
4782 silly resolved email: 'mathias@qiwi.be',
4782 silly resolved url: 'http://mathiasbynens.be/' },
4782 silly resolved contributors: [ [Object], [Object] ],
4782 silly resolved bugs: { url: 'https://github.com/bestiejs/punycode.js/issues' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'https://github.com/bestiejs/punycode.js.git' },
4782 silly resolved engines: [ 'node', 'rhino' ],
4782 silly resolved directories: { doc: 'docs', test: 'tests' },
4782 silly resolved scripts: { test: 'node tests/tests.js' },
4782 silly resolved devDependencies:
4782 silly resolved { grunt: '~0.4.1',
4782 silly resolved 'grunt-contrib-uglify': '~0.2.2',
4782 silly resolved 'grunt-shell': '~0.2.2',
4782 silly resolved istanbul: '~0.1.37',
4782 silly resolved 'qunit-clib': '~1.3.0',
4782 silly resolved qunitjs: '~1.11.0',
4782 silly resolved requirejs: '~2.1.6' },
4782 silly resolved readme: 'ERROR: No README data found!',
4782 silly resolved _id: 'punycode@1.2.3',
4782 silly resolved _from: 'punycode@~1.2.3' },
4782 silly resolved { title: 'Node\'s [domain module](http://nodejs.org/api/domain.html) for the web browser',
4782 silly resolved name: 'domain-browser',
4782 silly resolved version: '1.1.1',
4782 silly resolved description: 'Note, this is merely an evented try...catch with the same API as node. Nothing more.',
4782 silly resolved homepage: 'https://github.com/bevry/domain-browser',
4782 silly resolved license: { type: 'MIT' },
4782 silly resolved badges:
4782 silly resolved { travis: true,
4782 silly resolved npm: true,
4782 silly resolved gittip: 'bevry',
4782 silly resolved flattr: '344188/balupton-on-Flattr',
4782 silly resolved paypal: 'QB8GQPZAH84N6' },
4782 silly resolved keywords:
4782 silly resolved [ 'domain',
4782 silly resolved 'trycatch',
4782 silly resolved 'try',
4782 silly resolved 'catch',
4782 silly resolved 'node-compat',
4782 silly resolved 'ender.js',
4782 silly resolved 'component',
4782 silly resolved 'component.io',
4782 silly resolved 'umd',
4782 silly resolved 'amd',
4782 silly resolved 'require.js',
4782 silly resolved 'browser' ],
4782 silly resolved browsers: true,
4782 silly resolved author:
4782 silly resolved { name: 'Bevry Pty Ltd',
4782 silly resolved email: 'us@bevry.me',
4782 silly resolved url: 'http://bevry.me' },
4782 silly resolved maintainers: [ [Object] ],
4782 silly resolved contributors: [ [Object] ],
4782 silly resolved bugs: { url: 'https://github.com/bevry/domain-browser/issues' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'http://github.com/bevry/domain-browser.git' },
4782 silly resolved engines: { node: '>=0.4', npm: '>=1.2' },
4782 silly resolved directories: { lib: './' },
4782 silly resolved main: './index.js',
4782 silly resolved devDependencies:
4782 silly resolved { projectz: '~0.3.2',
4782 silly resolved chai: '~1.8.1',
4782 silly resolved joe: '~1.3.2',
4782 silly resolved 'joe-reporter-console': '~1.2.1' },
4782 silly resolved scripts: { test: 'node ./test.js' },
4782 silly resolved readme: '\n<!-- TITLE/ -->\n\n# Node\'s [domain module](http://nodejs.org/api/domain.html) for the web browser\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n[![Build Status](http://img.shields.io/travis-ci/bevry/domain-browser.png?branch=master)](http://travis-ci.org/bevry/domain-browser "Check this project\'s build status on TravisCI")\n[![NPM version](http://badge.fury.io/js/domain-browser.png)](https://npmjs.org/package/domain-browser "View this project on NPM")\n[![Gittip donate button](http://img.shields.io/gittip/bevry.png)](https://www.gittip.com/bevry/ "Donate weekly to this project using Gittip")\n[![Flattr donate button](http://img.shields.io/flattr/donate.png?color=yellow)](http://flattr.com/thing/344188/balupton-on-Flattr "Donate monthly to this project using Flattr")\n[![PayPayl donate button](http://img.shields.io/paypal/donate.png?color=yellow)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QB8GQPZAH84N6 "Donate once-off to this project using Paypal")\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nNote, this is merely an evented try...catch with the same API as node. Nothing more.\n\n<!-- /DESCRIPTION -->\n\n\n<!-- INSTALL/ -->\n\n## Install\n\n### [Node](http://nodejs.org/)\n- Use: `require(\'domain-browser\')`\n- Install: `npm install --save domain-browser`\n\n### [Browserify](http://browserify.org/)\n- Use: `require(\'domain-browser\')`\n- Install: `npm install --save domain-browser`\n- CDN URL: `//wzrd.in/bundle/domain-browser@1.1.1`\n\n### [Ender](http://ender.jit.su/)\n- Use: `require(\'domain-browser\')`\n- Install: `ender add domain-browser`\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n## History\n[Discover the change history by heading on over to the `HISTORY.md` file.](https://github.com/bevry/domain-browser/blob/master/HISTORY.md#files)\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n## Backers\n\n### Maintainers\n\nThese amazing people are maintaining this project:\n\n- Benjamin Lupton <b@lupton.cc> (https://github.com/balupton)\n\n### Sponsors\n\nNo sponsors yet! Will you be the first?\n\n[![Gittip donate button](http://img.shields.io/gittip/bevry.png)](https://www.gittip.com/bevry/ "Donate weekly to this project using Gittip")\n[![Flattr donate button](http://img.shields.io/flattr/donate.png?color=yellow)](http://flattr.com/thing/344188/balupton-on-Flattr "Donate monthly to this project using Flattr")\n[![PayPayl donate button](http://img.shields.io/paypal/donate.png?color=yellow)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QB8GQPZAH84N6 "Donate once-off to this project using Paypal")\n\n### Contributors\n\nThese amazing people have contributed code to this project:\n\n- [Benjamin Lupton](https://github.com/balupton) <b@lupton.cc> — [view contributions](https://github.com/bevry/domain-browser/commits?author=balupton)\n\n[Become a contributor!](https://github.com/bevry/domain-browser/blob/master/CONTRIBUTING.md#files)\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n## License\n\nLicensed under the incredibly [permissive](http://en.wikipedia.org/wiki/Permissive_free_software_licence) [MIT license](http://creativecommons.org/licenses/MIT/)\n\nCopyright &copy; Bevry Pty Ltd <us@bevry.me> (http://bevry.me)\n\n<!-- /LICENSE -->\n\n\n',
4782 silly resolved readmeFilename: 'README.md',
4782 silly resolved _id: 'domain-browser@1.1.1',
4782 silly resolved _from: 'domain-browser@~1.1.0' },
4782 silly resolved { author:
4782 silly resolved { name: 'J. Ryan Stinnett',
4782 silly resolved email: 'jryans@gmail.com',
4782 silly resolved url: 'http://convolv.es/' },
4782 silly resolved name: 'timers-browserify',
4782 silly resolved description: 'timers module for browserify',
4782 silly resolved version: '1.0.1',
4782 silly resolved homepage: 'https://github.com/jryans/timers-browserify',
4782 silly resolved bugs: { url: 'https://github.com/jryans/timers-browserify/issues' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/jryans/timers-browserify.git' },
4782 silly resolved main: 'main.js',
4782 silly resolved dependencies: { process: '~0.5.1' },
4782 silly resolved devDependencies: { connect: '~2.3.0', browserify: '~1.10.16' },
4782 silly resolved optionalDependencies: {},
4782 silly resolved engines: { node: '>=0.6.0' },
4782 silly resolved keywords: [ 'timers', 'browserify', 'browser' ],
4782 silly resolved licenses: [ [Object] ],
4782 silly resolved readme: '# Overview\n\nAdds support for the `timers` module to browserify.\n\n## Wait, isn\'t it already supported in the browser?\n\nThe public methods of the `timers` module are:\n\n* `setTimeout(callback, delay, [arg], [...])`\n* `clearTimeout(timeoutId)`\n* `setInterval(callback, delay, [arg], [...])`\n* `clearInterval(intervalId)`\n\nand indeed, browsers support these already.\n\n## So, why does this exist?\n\nThe `timers` module also includes some private methods used in other built-in\nNode.js modules:\n\n* `enroll(item, delay)`\n* `unenroll(item)`\n* `active(item)`\n\nThese are used to efficiently support a large quanity of timers with the same\ntimeouts by creating only a few timers under the covers.\n\n# License\n\n[MIT](http://jryans.mit-license.org/)\n',
4782 silly resolved readmeFilename: 'README.md',
4782 silly resolved _id: 'timers-browserify@1.0.1',
4782 silly resolved _from: 'timers-browserify@~1.0.1' },
4782 silly resolved { name: 'tty-browserify',
4782 silly resolved version: '0.0.0',
4782 silly resolved description: 'the tty module from node core for browsers',
4782 silly resolved main: 'index.js',
4782 silly resolved dependencies: {},
4782 silly resolved devDependencies: { tape: '~1.0.4' },
4782 silly resolved scripts: { test: 'tape test/*.js' },
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/substack/tty-browserify.git' },
4782 silly resolved homepage: 'https://github.com/substack/tty-browserify',
4782 silly resolved keywords: [ 'tty', 'browser', 'browserify' ],
4782 silly resolved author:
4782 silly resolved { name: 'James Halliday',
4782 silly resolved email: 'mail@substack.net',
4782 silly resolved url: 'http://substack.net' },
4782 silly resolved license: 'MIT',
4782 silly resolved readme: '# tty-browserify\n',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/substack/tty-browserify/issues' },
4782 silly resolved _id: 'tty-browserify@0.0.0',
4782 silly resolved _from: 'tty-browserify@~0.0.0' },
4782 silly resolved { name: 'minimist',
4782 silly resolved version: '0.0.5',
4782 silly resolved description: 'parse argument options',
4782 silly resolved main: 'index.js',
4782 silly resolved devDependencies: { tape: '~1.0.4', tap: '~0.4.0' },
4782 silly resolved scripts: { test: 'tap test/*.js' },
4782 silly resolved testling: { files: 'test/*.js', browsers: [Object] },
4782 silly resolved repository: { type: 'git', url: 'git://github.com/substack/minimist.git' },
4782 silly resolved homepage: 'https://github.com/substack/minimist',
4782 silly resolved keywords: [ 'argv', 'getopt', 'parser', 'optimist' ],
4782 silly resolved author:
4782 silly resolved { name: 'James Halliday',
4782 silly resolved email: 'mail@substack.net',
4782 silly resolved url: 'http://substack.net' },
4782 silly resolved license: 'MIT',
4782 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',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/substack/minimist/issues' },
4782 silly resolved _id: 'minimist@0.0.5',
4782 silly resolved _from: 'minimist@~0.0.5' },
4782 silly resolved { author:
4782 silly resolved { name: 'Dominic Tarr',
4782 silly resolved email: 'dominic.tarr@gmail.com',
4782 silly resolved url: 'dominictarr.com' },
4782 silly resolved name: 'crypto-browserify',
4782 silly resolved description: 'partial implementation of crypto for the browser',
4782 silly resolved version: '1.0.9',
4782 silly resolved homepage: 'https://github.com/dominictarr/crypto-browserify',
4782 silly resolved repository:
4782 silly resolved { type: 'git',
4782 silly resolved url: 'git://github.com/dominictarr/crypto-browserify.git' },
4782 silly resolved scripts: { test: 'node test/node.js' },
4782 silly resolved engines: { node: '*' },
4782 silly resolved dependencies: {},
4782 silly resolved devDependencies: { brfs: '~0.0.8', tape: '~1.0.4' },
4782 silly resolved testling: { files: 'test/browser.js', browsers: [Object] },
4782 silly resolved optionalDependencies: {},
4782 silly resolved license: 'MIT',
4782 silly resolved readme: '# crypto-browserify\n\nA (partial) port of `crypto` to the browser.\n\n\n[![travis](https://secure.travis-ci.org/dominictarr/crypto-browserify.png?branch=master)](https://travis-ci.org/dominictarr/crypto-browserify)\n\n[![browser support](http://ci.testling.com/dominictarr/crypto-browserify.png)](http://ci.testling.com/dominictarr/crypto-browserify)\n\n\nBasically, I found some crypto implemented in JS lieing on the internet somewhere\nand wrapped it in the part of the `crypto` api that I am currently using.\n\nIn a way that will be compatible with [browserify](https://github.com/substack/node-browserify/).\n\nI will extend this if I need more features, or if anyone else wants to extend this,\nI will add you as a maintainer.\n\nProvided that you agree that it should replicate the [node.js/crypto](http://nodejs.org/api/crypto.html) api exactly, of course.\n\n',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/dominictarr/crypto-browserify/issues' },
4782 silly resolved _id: 'crypto-browserify@1.0.9',
4782 silly resolved _from: 'crypto-browserify@~1.0.9' },
4782 silly resolved { author: { name: 'Joyent', url: 'http://www.joyent.com' },
4782 silly resolved name: 'util',
4782 silly resolved description: 'Node.JS util module',
4782 silly resolved keywords: [ 'util' ],
4782 silly resolved version: '0.10.2',
4782 silly resolved homepage: 'https://github.com/defunctzombie/node-util',
4782 silly resolved repository: { type: 'git', url: 'git://github.com/defunctzombie/node-util' },
4782 silly resolved main: './util.js',
4782 silly resolved scripts: { test: 'node test/node/*.js && zuul test/browser/*.js' },
4782 silly resolved dependencies: { inherits: '2.0.1' },
4782 silly resolved devDependencies: { zuul: '~1.0.9' },
4782 silly resolved browser: { './support/isBuffer.js': './support/isBufferBrowser.js' },
4782 silly resolved readme: '# util\n\n[![Build Status](https://travis-ci.org/defunctzombie/node-util.png?branch=master)](https://travis-ci.org/defunctzombie/node-util)\n\nnode.js [util](http://nodejs.org/api/util.html) module as a module\n\n## install via [npm](npmjs.org)\n\n```shell\nnpm install util\n```\n\n## browser support\n\nThis module also works in modern browsers. If you need legacy browser support you will need to polyfill ES5 features.\n',
4782 silly resolved readmeFilename: 'README.md',
4782 silly resolved bugs: { url: 'https://github.com/defunctzombie/node-util/issues' },
4782 silly resolved _id: 'util@0.10.2',
4782 silly resolved _from: 'util@~0.10.1' },
4782 silly resolved { name: 'defined',
4782 silly resolved version: '0.0.0',
4782 silly resolved description: 'return the first argument that is `!== undefined`',
4782 silly resolved main: 'index.js',
4782 silly resolved directories: { example: 'example', test: 'test' },
4782 silly resolved dependencies: {},
4782 silly resolved devDependencies: { tap: '~0.3.0', tape: '~0.0.2' },
4782 silly resolved scripts: { test: 'tap test/*.js' },
4782 silly resolved repository: { type: 'git', url: 'git://github.com/substack/defined.git' },
4782 silly resolved homepage: 'https://github.com/substack/defined',
4782 silly resolved keywords: [ 'undefined', 'short-circuit', '||', 'or', '//', 'defined-or' ],
4782 silly resolved author:
4782 silly resolved { name: 'James Halliday',
4782 silly resolved email: 'mail@substack.net',
4782 silly resolved url: 'http://substack.net' },
4782 silly resolved license: 'MIT',
4782 silly resolved readme: '# defined\n\nreturn the first argument that is `!== undefined`\n\n[![build status](https://secure.travis-ci.org/substack/defined.png)](http://travis-ci.org/substack/defined)\n\nMost of the time when I chain together `||`s, I actually just want the first\nitem that is not `undefined`, not the first non-falsy item.\n\nThis module is like the defined-or (`//`) operator in perl 5.10+.\n\n# example\n\n``` js\nvar defined = require(\'defined\');\nvar opts = { y : false, w : 4 };\nvar x = defined(opts.x, opts.y, opts.w, 100);\nconsole.log(x);\n```\n\n```\n$ node example/defined.js\nfalse\n```\n\nThe return value is `false` because `false` is the first item that is\n`!== undefined`.\n\n# methods\n\n``` js\nvar defined = require(\'defined\')\n```\n\n## var x = defined(a, b, c...)\n\nReturn the first item in the argument list `a, b, c...` that is `!== undefined`.\n\nIf all the items are `=== undefined`, return undefined.\n\n# install\n\nWith [npm](https://npmjs.org) do:\n\n```\nnpm install defined\n```\n\n# license\n\nMIT\n',
4782 silly resolved readmeFilename: 'readme.markdown',
4782 silly resolved bugs: { url: 'https://github.com/substack/defined/issues' },
4782 silly resolved _id: 'defined@0.0.0',
4782 silly resolved _from: 'defined@~0.0.0' } ]
4783 info install through@2.3.4 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4784 info install deps-sort@0.1.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4785 info install shell-quote@0.0.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4786 info install browser-pack@2.0.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4787 info install module-deps@1.2.2 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4788 info install querystring@0.2.0 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4789 info install syntax-error@0.0.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4790 info install browser-resolve@1.2.2 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4791 info install duplexer@0.1.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4792 info install insert-module-globals@2.3.4 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4793 info install stream-combiner@0.0.4 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4794 info install deep-equal@0.1.2 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4795 info install inherits@2.0.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4796 info install JSONStream@0.7.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4797 info install umd@2.0.0 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4798 info install concat-stream@1.4.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4799 info install parents@0.0.2 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4800 info install os-browserify@0.1.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4801 info install assert@1.1.0 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4802 info install constants-browserify@0.0.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4803 info install vm-browserify@0.0.4 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4804 info install events@1.0.0 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4805 info install zlib-browserify@0.0.3 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4806 info install console-browserify@1.0.3 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4807 info install native-buffer-browserify@2.0.17 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4808 info install url@0.7.9 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4809 info install https-browserify@0.0.0 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4810 info install path-browserify@0.0.0 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4811 info install string_decoder@0.0.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4812 info install stream-browserify@0.1.3 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4813 info install http-browserify@1.1.0 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4814 info install punycode@1.2.3 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4815 info install domain-browser@1.1.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4816 info install timers-browserify@1.0.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4817 info install tty-browserify@0.0.0 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4818 info install minimist@0.0.5 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4819 info install crypto-browserify@1.0.9 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4820 info install util@0.10.2 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4821 info install defined@0.0.0 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify
4822 info installOne through@2.3.4
4823 info installOne deps-sort@0.1.1
4824 info installOne shell-quote@0.0.1
4825 info installOne browser-pack@2.0.1
4826 info installOne module-deps@1.2.2
4827 info installOne querystring@0.2.0
4828 info installOne syntax-error@0.0.1
4829 info installOne browser-resolve@1.2.2
4830 info installOne duplexer@0.1.1
4831 info installOne insert-module-globals@2.3.4
4832 info installOne stream-combiner@0.0.4
4833 info installOne deep-equal@0.1.2
4834 info installOne inherits@2.0.1
4835 info installOne JSONStream@0.7.1
4836 info installOne umd@2.0.0
4837 info installOne concat-stream@1.4.1
4838 info installOne parents@0.0.2
4839 info installOne os-browserify@0.1.1
4840 info installOne assert@1.1.0
4841 info installOne constants-browserify@0.0.1
4842 info installOne vm-browserify@0.0.4
4843 info installOne events@1.0.0
4844 info installOne zlib-browserify@0.0.3
4845 info installOne console-browserify@1.0.3
4846 info installOne native-buffer-browserify@2.0.17
4847 info installOne url@0.7.9
4848 info installOne https-browserify@0.0.0
4849 info installOne path-browserify@0.0.0
4850 info installOne string_decoder@0.0.1
4851 info installOne stream-browserify@0.1.3
4852 info installOne http-browserify@1.1.0
4853 info installOne punycode@1.2.3
4854 info installOne domain-browser@1.1.1
4855 info installOne timers-browserify@1.0.1
4856 info installOne tty-browserify@0.0.0
4857 info installOne minimist@0.0.5
4858 info installOne crypto-browserify@1.0.9
4859 info installOne util@0.10.2
4860 info installOne defined@0.0.0
4861 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/through unbuild
4862 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/deps-sort unbuild
4863 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/shell-quote unbuild
4864 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/browser-pack unbuild
4865 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/module-deps unbuild
4866 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/querystring unbuild
4867 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/syntax-error unbuild
4868 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/browser-resolve unbuild
4869 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/duplexer unbuild
4870 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/insert-module-globals unbuild
4871 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/stream-combiner unbuild
4872 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/deep-equal unbuild
4873 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/inherits unbuild
4874 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/JSONStream unbuild
4875 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/umd unbuild
4876 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/concat-stream unbuild
4877 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/parents unbuild
4878 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/os-browserify unbuild
4879 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/assert unbuild
4880 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/constants-browserify unbuild
4881 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/vm-browserify unbuild
4882 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/events unbuild
4883 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/zlib-browserify unbuild
4884 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/console-browserify unbuild
4885 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/native-buffer-browserify unbuild
4886 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/url unbuild
4887 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/https-browserify unbuild
4888 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/path-browserify unbuild
4889 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/string_decoder unbuild
4890 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/stream-browserify unbuild
4891 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/http-browserify unbuild
4892 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/punycode unbuild
4893 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/domain-browser unbuild
4894 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/timers-browserify unbuild
4895 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/tty-browserify unbuild
4896 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/minimist unbuild
4897 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/crypto-browserify unbuild
4898 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/util unbuild
4899 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/defined unbuild
4900 verbose tar unpack /home/scarter/.npm/through/2.3.4/package.tgz
4901 silly lockFile 8f9292f8--browserify-node-modules-through tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/through
4902 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/through /home/scarter/.npm/8f9292f8--browserify-node-modules-through.lock
4903 silly lockFile dab34d4c-er-npm-through-2-3-4-package-tgz tar:///home/scarter/.npm/through/2.3.4/package.tgz
4904 verbose lock tar:///home/scarter/.npm/through/2.3.4/package.tgz /home/scarter/.npm/dab34d4c-er-npm-through-2-3-4-package-tgz.lock
4905 verbose tar unpack /home/scarter/.npm/deps-sort/0.1.1/package.tgz
4906 silly lockFile 0b7bd3db-rowserify-node-modules-deps-sort tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/deps-sort
4907 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/deps-sort /home/scarter/.npm/0b7bd3db-rowserify-node-modules-deps-sort.lock
4908 silly lockFile ffc6371d--npm-deps-sort-0-1-1-package-tgz tar:///home/scarter/.npm/deps-sort/0.1.1/package.tgz
4909 verbose lock tar:///home/scarter/.npm/deps-sort/0.1.1/package.tgz /home/scarter/.npm/ffc6371d--npm-deps-sort-0-1-1-package-tgz.lock
4910 verbose tar unpack /home/scarter/.npm/shell-quote/0.0.1/package.tgz
4911 silly lockFile 9fff233b-wserify-node-modules-shell-quote tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/shell-quote
4912 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/shell-quote /home/scarter/.npm/9fff233b-wserify-node-modules-shell-quote.lock
4913 silly lockFile 25508cab-pm-shell-quote-0-0-1-package-tgz tar:///home/scarter/.npm/shell-quote/0.0.1/package.tgz
4914 verbose lock tar:///home/scarter/.npm/shell-quote/0.0.1/package.tgz /home/scarter/.npm/25508cab-pm-shell-quote-0-0-1-package-tgz.lock
4915 verbose tar unpack /home/scarter/.npm/browser-pack/2.0.1/package.tgz
4916 silly lockFile 7a3a44f7-serify-node-modules-browser-pack tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/browser-pack
4917 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/browser-pack /home/scarter/.npm/7a3a44f7-serify-node-modules-browser-pack.lock
4918 silly lockFile c76258f3-m-browser-pack-2-0-1-package-tgz tar:///home/scarter/.npm/browser-pack/2.0.1/package.tgz
4919 verbose lock tar:///home/scarter/.npm/browser-pack/2.0.1/package.tgz /home/scarter/.npm/c76258f3-m-browser-pack-2-0-1-package-tgz.lock
4920 verbose tar unpack /home/scarter/.npm/module-deps/1.2.2/package.tgz
4921 silly lockFile f6ff1f49-wserify-node-modules-module-deps tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/module-deps
4922 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/module-deps /home/scarter/.npm/f6ff1f49-wserify-node-modules-module-deps.lock
4923 silly lockFile 5375befd-pm-module-deps-1-2-2-package-tgz tar:///home/scarter/.npm/module-deps/1.2.2/package.tgz
4924 verbose lock tar:///home/scarter/.npm/module-deps/1.2.2/package.tgz /home/scarter/.npm/5375befd-pm-module-deps-1-2-2-package-tgz.lock
4925 verbose tar unpack /home/scarter/.npm/querystring/0.2.0/package.tgz
4926 silly lockFile 80430b1c-wserify-node-modules-querystring tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/querystring
4927 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/querystring /home/scarter/.npm/80430b1c-wserify-node-modules-querystring.lock
4928 silly lockFile 3e276024-pm-querystring-0-2-0-package-tgz tar:///home/scarter/.npm/querystring/0.2.0/package.tgz
4929 verbose lock tar:///home/scarter/.npm/querystring/0.2.0/package.tgz /home/scarter/.npm/3e276024-pm-querystring-0-2-0-package-tgz.lock
4930 verbose tar unpack /home/scarter/.npm/syntax-error/0.0.1/package.tgz
4931 silly lockFile 0ca3bc78-serify-node-modules-syntax-error tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/syntax-error
4932 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/syntax-error /home/scarter/.npm/0ca3bc78-serify-node-modules-syntax-error.lock
4933 silly lockFile 0f62d69b-m-syntax-error-0-0-1-package-tgz tar:///home/scarter/.npm/syntax-error/0.0.1/package.tgz
4934 verbose lock tar:///home/scarter/.npm/syntax-error/0.0.1/package.tgz /home/scarter/.npm/0f62d69b-m-syntax-error-0-0-1-package-tgz.lock
4935 verbose tar unpack /home/scarter/.npm/browser-resolve/1.2.2/package.tgz
4936 silly lockFile e66087fc-ify-node-modules-browser-resolve tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/browser-resolve
4937 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/browser-resolve /home/scarter/.npm/e66087fc-ify-node-modules-browser-resolve.lock
4938 silly lockFile 74a5b8aa-rowser-resolve-1-2-2-package-tgz tar:///home/scarter/.npm/browser-resolve/1.2.2/package.tgz
4939 verbose lock tar:///home/scarter/.npm/browser-resolve/1.2.2/package.tgz /home/scarter/.npm/74a5b8aa-rowser-resolve-1-2-2-package-tgz.lock
4940 verbose tar unpack /home/scarter/.npm/duplexer/0.1.1/package.tgz
4941 silly lockFile 3ca1afb2-browserify-node-modules-duplexer tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/duplexer
4942 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/duplexer /home/scarter/.npm/3ca1afb2-browserify-node-modules-duplexer.lock
4943 silly lockFile 59a049c1-r-npm-duplexer-0-1-1-package-tgz tar:///home/scarter/.npm/duplexer/0.1.1/package.tgz
4944 verbose lock tar:///home/scarter/.npm/duplexer/0.1.1/package.tgz /home/scarter/.npm/59a049c1-r-npm-duplexer-0-1-1-package-tgz.lock
4945 verbose tar unpack /home/scarter/.npm/insert-module-globals/2.3.4/package.tgz
4946 silly lockFile fc38ebf8-de-modules-insert-module-globals tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/insert-module-globals
4947 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/insert-module-globals /home/scarter/.npm/fc38ebf8-de-modules-insert-module-globals.lock
4948 silly lockFile a6bc8578-module-globals-2-3-4-package-tgz tar:///home/scarter/.npm/insert-module-globals/2.3.4/package.tgz
4949 verbose lock tar:///home/scarter/.npm/insert-module-globals/2.3.4/package.tgz /home/scarter/.npm/a6bc8578-module-globals-2-3-4-package-tgz.lock
4950 verbose tar unpack /home/scarter/.npm/stream-combiner/0.0.4/package.tgz
4951 silly lockFile 354aa30a-ify-node-modules-stream-combiner tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/stream-combiner
4952 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/stream-combiner /home/scarter/.npm/354aa30a-ify-node-modules-stream-combiner.lock
4953 silly lockFile 55d124d9-tream-combiner-0-0-4-package-tgz tar:///home/scarter/.npm/stream-combiner/0.0.4/package.tgz
4954 verbose lock tar:///home/scarter/.npm/stream-combiner/0.0.4/package.tgz /home/scarter/.npm/55d124d9-tream-combiner-0-0-4-package-tgz.lock
4955 verbose tar unpack /home/scarter/.npm/deep-equal/0.1.2/package.tgz
4956 silly lockFile 12d332b3-owserify-node-modules-deep-equal tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/deep-equal
4957 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/deep-equal /home/scarter/.npm/12d332b3-owserify-node-modules-deep-equal.lock
4958 silly lockFile 8df9a9ad-npm-deep-equal-0-1-2-package-tgz tar:///home/scarter/.npm/deep-equal/0.1.2/package.tgz
4959 verbose lock tar:///home/scarter/.npm/deep-equal/0.1.2/package.tgz /home/scarter/.npm/8df9a9ad-npm-deep-equal-0-1-2-package-tgz.lock
4960 verbose tar unpack /home/scarter/.npm/inherits/2.0.1/package.tgz
4961 silly lockFile 304a675e-browserify-node-modules-inherits tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/inherits
4962 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/inherits /home/scarter/.npm/304a675e-browserify-node-modules-inherits.lock
4963 silly lockFile b96f0855-r-npm-inherits-2-0-1-package-tgz tar:///home/scarter/.npm/inherits/2.0.1/package.tgz
4964 verbose lock tar:///home/scarter/.npm/inherits/2.0.1/package.tgz /home/scarter/.npm/b96f0855-r-npm-inherits-2-0-1-package-tgz.lock
4965 verbose tar unpack /home/scarter/.npm/JSONStream/0.7.1/package.tgz
4966 silly lockFile 14a10123-owserify-node-modules-JSONStream tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/JSONStream
4967 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/JSONStream /home/scarter/.npm/14a10123-owserify-node-modules-JSONStream.lock
4968 silly lockFile df15cdc6-npm-JSONStream-0-7-1-package-tgz tar:///home/scarter/.npm/JSONStream/0.7.1/package.tgz
4969 verbose lock tar:///home/scarter/.npm/JSONStream/0.7.1/package.tgz /home/scarter/.npm/df15cdc6-npm-JSONStream-0-7-1-package-tgz.lock
4970 verbose tar unpack /home/scarter/.npm/umd/2.0.0/package.tgz
4971 silly lockFile 7eae7ddc-ules-browserify-node-modules-umd tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/umd
4972 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/umd /home/scarter/.npm/7eae7ddc-ules-browserify-node-modules-umd.lock
4973 silly lockFile bd4f0674-carter-npm-umd-2-0-0-package-tgz tar:///home/scarter/.npm/umd/2.0.0/package.tgz
4974 verbose lock tar:///home/scarter/.npm/umd/2.0.0/package.tgz /home/scarter/.npm/bd4f0674-carter-npm-umd-2-0-0-package-tgz.lock
4975 verbose tar unpack /home/scarter/.npm/concat-stream/1.4.1/package.tgz
4976 silly lockFile 5df2d500-erify-node-modules-concat-stream tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/concat-stream
4977 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/concat-stream /home/scarter/.npm/5df2d500-erify-node-modules-concat-stream.lock
4978 silly lockFile b75be74e--concat-stream-1-4-1-package-tgz tar:///home/scarter/.npm/concat-stream/1.4.1/package.tgz
4979 verbose lock tar:///home/scarter/.npm/concat-stream/1.4.1/package.tgz /home/scarter/.npm/b75be74e--concat-stream-1-4-1-package-tgz.lock
4980 verbose tar unpack /home/scarter/.npm/parents/0.0.2/package.tgz
4981 silly lockFile 794e7c01--browserify-node-modules-parents tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/parents
4982 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/parents /home/scarter/.npm/794e7c01--browserify-node-modules-parents.lock
4983 silly lockFile 646d790f-er-npm-parents-0-0-2-package-tgz tar:///home/scarter/.npm/parents/0.0.2/package.tgz
4984 verbose lock tar:///home/scarter/.npm/parents/0.0.2/package.tgz /home/scarter/.npm/646d790f-er-npm-parents-0-0-2-package-tgz.lock
4985 verbose tar unpack /home/scarter/.npm/os-browserify/0.1.1/package.tgz
4986 silly lockFile 72f199c5-erify-node-modules-os-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/os-browserify
4987 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/os-browserify /home/scarter/.npm/72f199c5-erify-node-modules-os-browserify.lock
4988 silly lockFile a7bbb686--os-browserify-0-1-1-package-tgz tar:///home/scarter/.npm/os-browserify/0.1.1/package.tgz
4989 verbose lock tar:///home/scarter/.npm/os-browserify/0.1.1/package.tgz /home/scarter/.npm/a7bbb686--os-browserify-0-1-1-package-tgz.lock
4990 verbose tar unpack /home/scarter/.npm/assert/1.1.0/package.tgz
4991 silly lockFile 35c996b5-s-browserify-node-modules-assert tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/assert
4992 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/assert /home/scarter/.npm/35c996b5-s-browserify-node-modules-assert.lock
4993 silly lockFile d04785a8-ter-npm-assert-1-1-0-package-tgz tar:///home/scarter/.npm/assert/1.1.0/package.tgz
4994 verbose lock tar:///home/scarter/.npm/assert/1.1.0/package.tgz /home/scarter/.npm/d04785a8-ter-npm-assert-1-1-0-package-tgz.lock
4995 verbose tar unpack /home/scarter/.npm/constants-browserify/0.0.1/package.tgz
4996 silly lockFile 0e6f7058-ode-modules-constants-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/constants-browserify
4997 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/constants-browserify /home/scarter/.npm/0e6f7058-ode-modules-constants-browserify.lock
4998 silly lockFile f13221b3-nts-browserify-0-0-1-package-tgz tar:///home/scarter/.npm/constants-browserify/0.0.1/package.tgz
4999 verbose lock tar:///home/scarter/.npm/constants-browserify/0.0.1/package.tgz /home/scarter/.npm/f13221b3-nts-browserify-0-0-1-package-tgz.lock
5000 verbose tar unpack /home/scarter/.npm/vm-browserify/0.0.4/package.tgz
5001 silly lockFile f4e4cda1-erify-node-modules-vm-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/vm-browserify
5002 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/vm-browserify /home/scarter/.npm/f4e4cda1-erify-node-modules-vm-browserify.lock
5003 silly lockFile b2567fb0--vm-browserify-0-0-4-package-tgz tar:///home/scarter/.npm/vm-browserify/0.0.4/package.tgz
5004 verbose lock tar:///home/scarter/.npm/vm-browserify/0.0.4/package.tgz /home/scarter/.npm/b2567fb0--vm-browserify-0-0-4-package-tgz.lock
5005 verbose tar unpack /home/scarter/.npm/events/1.0.0/package.tgz
5006 silly lockFile 5d72ccd1-s-browserify-node-modules-events tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/events
5007 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/events /home/scarter/.npm/5d72ccd1-s-browserify-node-modules-events.lock
5008 silly lockFile 8b93cd27-ter-npm-events-1-0-0-package-tgz tar:///home/scarter/.npm/events/1.0.0/package.tgz
5009 verbose lock tar:///home/scarter/.npm/events/1.0.0/package.tgz /home/scarter/.npm/8b93cd27-ter-npm-events-1-0-0-package-tgz.lock
5010 verbose tar unpack /home/scarter/.npm/zlib-browserify/0.0.3/package.tgz
5011 silly lockFile 9d4e3e88-ify-node-modules-zlib-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/zlib-browserify
5012 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/zlib-browserify /home/scarter/.npm/9d4e3e88-ify-node-modules-zlib-browserify.lock
5013 silly lockFile 4b52bb8c-lib-browserify-0-0-3-package-tgz tar:///home/scarter/.npm/zlib-browserify/0.0.3/package.tgz
5014 verbose lock tar:///home/scarter/.npm/zlib-browserify/0.0.3/package.tgz /home/scarter/.npm/4b52bb8c-lib-browserify-0-0-3-package-tgz.lock
5015 verbose tar unpack /home/scarter/.npm/console-browserify/1.0.3/package.tgz
5016 silly lockFile 588ffc7c--node-modules-console-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/console-browserify
5017 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/console-browserify /home/scarter/.npm/588ffc7c--node-modules-console-browserify.lock
5018 silly lockFile 595ba8fc-ole-browserify-1-0-3-package-tgz tar:///home/scarter/.npm/console-browserify/1.0.3/package.tgz
5019 verbose lock tar:///home/scarter/.npm/console-browserify/1.0.3/package.tgz /home/scarter/.npm/595ba8fc-ole-browserify-1-0-3-package-tgz.lock
5020 verbose tar unpack /home/scarter/.npm/native-buffer-browserify/2.0.17/package.tgz
5021 silly lockFile 37bbf997-modules-native-buffer-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/native-buffer-browserify
5022 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/native-buffer-browserify /home/scarter/.npm/37bbf997-modules-native-buffer-browserify.lock
5023 silly lockFile 5db809fd-er-browserify-2-0-17-package-tgz tar:///home/scarter/.npm/native-buffer-browserify/2.0.17/package.tgz
5024 verbose lock tar:///home/scarter/.npm/native-buffer-browserify/2.0.17/package.tgz /home/scarter/.npm/5db809fd-er-browserify-2-0-17-package-tgz.lock
5025 verbose tar unpack /home/scarter/.npm/url/0.7.9/package.tgz
5026 silly lockFile 75b5b377-ules-browserify-node-modules-url tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/url
5027 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/url /home/scarter/.npm/75b5b377-ules-browserify-node-modules-url.lock
5028 silly lockFile 383c0db5-carter-npm-url-0-7-9-package-tgz tar:///home/scarter/.npm/url/0.7.9/package.tgz
5029 verbose lock tar:///home/scarter/.npm/url/0.7.9/package.tgz /home/scarter/.npm/383c0db5-carter-npm-url-0-7-9-package-tgz.lock
5030 verbose tar unpack /home/scarter/.npm/https-browserify/0.0.0/package.tgz
5031 silly lockFile 3d33e60c-fy-node-modules-https-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/https-browserify
5032 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/https-browserify /home/scarter/.npm/3d33e60c-fy-node-modules-https-browserify.lock
5033 silly lockFile 39c17a0f-tps-browserify-0-0-0-package-tgz tar:///home/scarter/.npm/https-browserify/0.0.0/package.tgz
5034 verbose lock tar:///home/scarter/.npm/https-browserify/0.0.0/package.tgz /home/scarter/.npm/39c17a0f-tps-browserify-0-0-0-package-tgz.lock
5035 verbose tar unpack /home/scarter/.npm/path-browserify/0.0.0/package.tgz
5036 silly lockFile 15b1781a-ify-node-modules-path-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/path-browserify
5037 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/path-browserify /home/scarter/.npm/15b1781a-ify-node-modules-path-browserify.lock
5038 silly lockFile 6c2308ee-ath-browserify-0-0-0-package-tgz tar:///home/scarter/.npm/path-browserify/0.0.0/package.tgz
5039 verbose lock tar:///home/scarter/.npm/path-browserify/0.0.0/package.tgz /home/scarter/.npm/6c2308ee-ath-browserify-0-0-0-package-tgz.lock
5040 verbose tar unpack /home/scarter/.npm/string_decoder/0.0.1/package.tgz
5041 silly lockFile 79dbab6e-rify-node-modules-string-decoder tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/string_decoder
5042 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/string_decoder /home/scarter/.npm/79dbab6e-rify-node-modules-string-decoder.lock
5043 silly lockFile 2cc27f49-string-decoder-0-0-1-package-tgz tar:///home/scarter/.npm/string_decoder/0.0.1/package.tgz
5044 verbose lock tar:///home/scarter/.npm/string_decoder/0.0.1/package.tgz /home/scarter/.npm/2cc27f49-string-decoder-0-0-1-package-tgz.lock
5045 verbose tar unpack /home/scarter/.npm/stream-browserify/0.1.3/package.tgz
5046 silly lockFile 8852442b-y-node-modules-stream-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/stream-browserify
5047 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/stream-browserify /home/scarter/.npm/8852442b-y-node-modules-stream-browserify.lock
5048 silly lockFile f0aa6196-eam-browserify-0-1-3-package-tgz tar:///home/scarter/.npm/stream-browserify/0.1.3/package.tgz
5049 verbose lock tar:///home/scarter/.npm/stream-browserify/0.1.3/package.tgz /home/scarter/.npm/f0aa6196-eam-browserify-0-1-3-package-tgz.lock
5050 verbose tar unpack /home/scarter/.npm/http-browserify/1.1.0/package.tgz
5051 silly lockFile 94cf4a35-ify-node-modules-http-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/http-browserify
5052 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/http-browserify /home/scarter/.npm/94cf4a35-ify-node-modules-http-browserify.lock
5053 silly lockFile d90ef02f-ttp-browserify-1-1-0-package-tgz tar:///home/scarter/.npm/http-browserify/1.1.0/package.tgz
5054 verbose lock tar:///home/scarter/.npm/http-browserify/1.1.0/package.tgz /home/scarter/.npm/d90ef02f-ttp-browserify-1-1-0-package-tgz.lock
5055 verbose tar unpack /home/scarter/.npm/punycode/1.2.3/package.tgz
5056 silly lockFile 3ca23b04-browserify-node-modules-punycode tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/punycode
5057 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/punycode /home/scarter/.npm/3ca23b04-browserify-node-modules-punycode.lock
5058 silly lockFile 94baf463-r-npm-punycode-1-2-3-package-tgz tar:///home/scarter/.npm/punycode/1.2.3/package.tgz
5059 verbose lock tar:///home/scarter/.npm/punycode/1.2.3/package.tgz /home/scarter/.npm/94baf463-r-npm-punycode-1-2-3-package-tgz.lock
5060 verbose tar unpack /home/scarter/.npm/domain-browser/1.1.1/package.tgz
5061 silly lockFile 6f14b709-rify-node-modules-domain-browser tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/domain-browser
5062 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/domain-browser /home/scarter/.npm/6f14b709-rify-node-modules-domain-browser.lock
5063 silly lockFile 3d7c5b26-domain-browser-1-1-1-package-tgz tar:///home/scarter/.npm/domain-browser/1.1.1/package.tgz
5064 verbose lock tar:///home/scarter/.npm/domain-browser/1.1.1/package.tgz /home/scarter/.npm/3d7c5b26-domain-browser-1-1-1-package-tgz.lock
5065 verbose tar unpack /home/scarter/.npm/timers-browserify/1.0.1/package.tgz
5066 silly lockFile 3c426c28-y-node-modules-timers-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/timers-browserify
5067 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/timers-browserify /home/scarter/.npm/3c426c28-y-node-modules-timers-browserify.lock
5068 silly lockFile eec3b3c2-ers-browserify-1-0-1-package-tgz tar:///home/scarter/.npm/timers-browserify/1.0.1/package.tgz
5069 verbose lock tar:///home/scarter/.npm/timers-browserify/1.0.1/package.tgz /home/scarter/.npm/eec3b3c2-ers-browserify-1-0-1-package-tgz.lock
5070 verbose tar unpack /home/scarter/.npm/tty-browserify/0.0.0/package.tgz
5071 silly lockFile 31b47386-rify-node-modules-tty-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/tty-browserify
5072 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/tty-browserify /home/scarter/.npm/31b47386-rify-node-modules-tty-browserify.lock
5073 silly lockFile 20578c33-tty-browserify-0-0-0-package-tgz tar:///home/scarter/.npm/tty-browserify/0.0.0/package.tgz
5074 verbose lock tar:///home/scarter/.npm/tty-browserify/0.0.0/package.tgz /home/scarter/.npm/20578c33-tty-browserify-0-0-0-package-tgz.lock
5075 verbose tar unpack /home/scarter/.npm/minimist/0.0.5/package.tgz
5076 silly lockFile d9bf1b7d-browserify-node-modules-minimist tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/minimist
5077 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/minimist /home/scarter/.npm/d9bf1b7d-browserify-node-modules-minimist.lock
5078 silly lockFile ff31e8fd-r-npm-minimist-0-0-5-package-tgz tar:///home/scarter/.npm/minimist/0.0.5/package.tgz
5079 verbose lock tar:///home/scarter/.npm/minimist/0.0.5/package.tgz /home/scarter/.npm/ff31e8fd-r-npm-minimist-0-0-5-package-tgz.lock
5080 verbose tar unpack /home/scarter/.npm/crypto-browserify/1.0.9/package.tgz
5081 silly lockFile 2b2995db-y-node-modules-crypto-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/crypto-browserify
5082 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/crypto-browserify /home/scarter/.npm/2b2995db-y-node-modules-crypto-browserify.lock
5083 silly lockFile 1e9a6b1b-pto-browserify-1-0-9-package-tgz tar:///home/scarter/.npm/crypto-browserify/1.0.9/package.tgz
5084 verbose lock tar:///home/scarter/.npm/crypto-browserify/1.0.9/package.tgz /home/scarter/.npm/1e9a6b1b-pto-browserify-1-0-9-package-tgz.lock
5085 verbose tar unpack /home/scarter/.npm/util/0.10.2/package.tgz
5086 silly lockFile dcfbb4a9-les-browserify-node-modules-util tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/util
5087 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/util /home/scarter/.npm/dcfbb4a9-les-browserify-node-modules-util.lock
5088 silly lockFile 236318bd-rter-npm-util-0-10-2-package-tgz tar:///home/scarter/.npm/util/0.10.2/package.tgz
5089 verbose lock tar:///home/scarter/.npm/util/0.10.2/package.tgz /home/scarter/.npm/236318bd-rter-npm-util-0-10-2-package-tgz.lock
5090 verbose tar unpack /home/scarter/.npm/defined/0.0.0/package.tgz
5091 silly lockFile e1e9b294--browserify-node-modules-defined tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/defined
5092 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/defined /home/scarter/.npm/e1e9b294--browserify-node-modules-defined.lock
5093 silly lockFile 7425cda6-er-npm-defined-0-0-0-package-tgz tar:///home/scarter/.npm/defined/0.0.0/package.tgz
5094 verbose lock tar:///home/scarter/.npm/defined/0.0.0/package.tgz /home/scarter/.npm/7425cda6-er-npm-defined-0-0-0-package-tgz.lock
5095 http 304 https://registry.npmjs.org/combined-stream
5096 silly registry.get cb [ 304,
5096 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
5096 silly registry.get server: 'Apache',
5096 silly registry.get connection: 'Keep-Alive',
5096 silly registry.get 'keep-alive': 'timeout=10, max=38',
5096 silly registry.get etag: '"CUAIVAL7O1ZHRFQ6715ZX8440"',
5096 silly registry.get 'cache-control': 'max-age=1',
5096 silly registry.get vary: 'Accept' } ]
5097 verbose etag combined-stream from cache
5098 silly gunzTarPerm modes [ '755', '644' ]
5099 silly gunzTarPerm modes [ '755', '644' ]
5100 silly gunzTarPerm modes [ '755', '644' ]
5101 silly gunzTarPerm modes [ '755', '644' ]
5102 silly gunzTarPerm modes [ '755', '644' ]
5103 silly gunzTarPerm modes [ '755', '644' ]
5104 silly gunzTarPerm modes [ '755', '644' ]
5105 silly gunzTarPerm modes [ '755', '644' ]
5106 silly gunzTarPerm modes [ '755', '644' ]
5107 silly gunzTarPerm modes [ '755', '644' ]
5108 silly gunzTarPerm modes [ '755', '644' ]
5109 silly gunzTarPerm modes [ '755', '644' ]
5110 silly gunzTarPerm modes [ '755', '644' ]
5111 silly gunzTarPerm modes [ '755', '644' ]
5112 silly gunzTarPerm modes [ '755', '644' ]
5113 silly gunzTarPerm modes [ '755', '644' ]
5114 silly gunzTarPerm modes [ '755', '644' ]
5115 silly gunzTarPerm modes [ '755', '644' ]
5116 silly gunzTarPerm modes [ '755', '644' ]
5117 silly gunzTarPerm modes [ '755', '644' ]
5118 silly gunzTarPerm modes [ '755', '644' ]
5119 silly gunzTarPerm modes [ '755', '644' ]
5120 silly gunzTarPerm modes [ '755', '644' ]
5121 silly gunzTarPerm modes [ '755', '644' ]
5122 silly gunzTarPerm modes [ '755', '644' ]
5123 silly gunzTarPerm modes [ '755', '644' ]
5124 silly gunzTarPerm modes [ '755', '644' ]
5125 silly gunzTarPerm modes [ '755', '644' ]
5126 silly gunzTarPerm modes [ '755', '644' ]
5127 silly gunzTarPerm modes [ '755', '644' ]
5128 silly gunzTarPerm modes [ '755', '644' ]
5129 silly gunzTarPerm modes [ '755', '644' ]
5130 silly gunzTarPerm modes [ '755', '644' ]
5131 silly gunzTarPerm modes [ '755', '644' ]
5132 silly gunzTarPerm modes [ '755', '644' ]
5133 silly gunzTarPerm modes [ '755', '644' ]
5134 silly gunzTarPerm modes [ '755', '644' ]
5135 silly gunzTarPerm modes [ '755', '644' ]
5136 silly gunzTarPerm modes [ '755', '644' ]
5137 silly gunzTarPerm extractEntry package.json
5138 http 304 https://registry.npmjs.org/async
5139 silly registry.get cb [ 304,
5139 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
5139 silly registry.get server: 'Apache',
5139 silly registry.get connection: 'Keep-Alive',
5139 silly registry.get 'keep-alive': 'timeout=10, max=38',
5139 silly registry.get etag: '"DVS7UEZ0CQKAALAG5PZBBNSWX"',
5139 silly registry.get 'cache-control': 'max-age=1',
5139 silly registry.get vary: 'Accept' } ]
5140 verbose etag async from cache
5141 silly addNameRange number 2 { name: 'combined-stream',
5141 silly addNameRange range: '>=0.0.4-0 <0.1.0-0',
5141 silly addNameRange hasData: true }
5142 silly addNameRange versions [ 'combined-stream',
5142 silly addNameRange [ '0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4' ] ]
5143 verbose addNamed [ 'combined-stream', '0.0.4' ]
5144 verbose addNamed [ '0.0.4', '0.0.4' ]
5145 silly lockFile fa19b583-combined-stream-0-0-4 combined-stream@0.0.4
5146 verbose lock combined-stream@0.0.4 /home/scarter/.npm/fa19b583-combined-stream-0-0-4.lock
5147 silly gunzTarPerm extractEntry package.json
5148 silly gunzTarPerm extractEntry package.json
5149 silly gunzTarPerm extractEntry package.json
5150 silly gunzTarPerm extractEntry package.json
5151 silly gunzTarPerm extractEntry package.json
5152 silly gunzTarPerm extractEntry package.json
5153 silly gunzTarPerm extractEntry package.json
5154 silly gunzTarPerm extractEntry package.json
5155 silly gunzTarPerm extractEntry package.json
5156 silly gunzTarPerm extractEntry package.json
5157 silly gunzTarPerm extractEntry package.json
5158 silly gunzTarPerm extractEntry package.json
5159 silly gunzTarPerm extractEntry package.json
5160 silly gunzTarPerm extractEntry package.json
5161 silly gunzTarPerm extractEntry package.json
5162 silly gunzTarPerm extractEntry package.json
5163 silly gunzTarPerm extractEntry package.json
5164 silly gunzTarPerm extractEntry package.json
5165 silly gunzTarPerm extractEntry package.json
5166 silly gunzTarPerm extractEntry package.json
5167 silly gunzTarPerm extractEntry package.json
5168 silly gunzTarPerm extractEntry package.json
5169 silly gunzTarPerm extractEntry package.json
5170 silly gunzTarPerm extractEntry package.json
5171 silly gunzTarPerm extractEntry package.json
5172 silly gunzTarPerm extractEntry package.json
5173 silly gunzTarPerm extractEntry package.json
5174 silly gunzTarPerm extractEntry package.json
5175 silly gunzTarPerm extractEntry package.json
5176 silly gunzTarPerm extractEntry package.json
5177 silly gunzTarPerm extractEntry package.json
5178 silly gunzTarPerm extractEntry package.json
5179 silly gunzTarPerm extractEntry package.json
5180 silly gunzTarPerm extractEntry package.json
5181 silly gunzTarPerm extractEntry package.json
5182 silly gunzTarPerm extractEntry package.json
5183 silly gunzTarPerm extractEntry package.json
5184 silly gunzTarPerm extractEntry package.json
5185 silly gunzTarPerm extractEntry index.js
5186 silly gunzTarPerm extractEntry .travis.yml
5187 silly gunzTarPerm extractEntry LICENSE
5188 silly gunzTarPerm extractEntry index.js
5189 silly gunzTarPerm extractEntry index.js
5190 silly gunzTarPerm extractEntry .travis.yml
5191 silly gunzTarPerm extractEntry .npmignore
5192 silly gunzTarPerm extractEntry LICENSE
5193 silly gunzTarPerm extractEntry cmd.js
5194 silly gunzTarPerm extractEntry index.js
5195 silly gunzTarPerm extractEntry decode.js
5196 silly gunzTarPerm extractEntry encode.js
5197 silly gunzTarPerm extractEntry LICENSE
5198 silly gunzTarPerm extractEntry index.js
5199 silly gunzTarPerm extractEntry .npmignore
5200 silly gunzTarPerm extractEntry README.md
5201 silly gunzTarPerm extractEntry .npmignore
5202 silly gunzTarPerm extractEntry README.md
5203 silly gunzTarPerm extractEntry .npmignore
5204 silly gunzTarPerm extractEntry README.md
5205 silly gunzTarPerm extractEntry .npmignore
5206 silly gunzTarPerm extractEntry LICENSE
5207 silly gunzTarPerm extractEntry index.js
5208 silly gunzTarPerm extractEntry .travis.yml
5209 silly gunzTarPerm extractEntry README.md
5210 silly gunzTarPerm extractEntry LICENSE
5211 silly gunzTarPerm extractEntry .npmignore
5212 silly gunzTarPerm extractEntry index.js
5213 silly gunzTarPerm extractEntry .npmignore
5214 silly gunzTarPerm extractEntry README.md
5215 silly gunzTarPerm extractEntry .npmignore
5216 silly gunzTarPerm extractEntry LICENSE
5217 silly gunzTarPerm extractEntry LICENSE
5218 silly gunzTarPerm extractEntry index.js
5219 silly gunzTarPerm extractEntry .npmignore
5220 silly gunzTarPerm extractEntry README.md
5221 silly gunzTarPerm extractEntry .npmignore
5222 silly gunzTarPerm extractEntry README.md
5223 silly gunzTarPerm extractEntry README.md
5224 silly gunzTarPerm extractEntry build.sh
5225 silly gunzTarPerm extractEntry LICENSE
5226 silly gunzTarPerm extractEntry index.js
5227 silly gunzTarPerm extractEntry .npmignore
5228 silly gunzTarPerm extractEntry events.js
5229 silly gunzTarPerm extractEntry .npmignore
5230 silly gunzTarPerm extractEntry LICENSE
5231 silly gunzTarPerm extractEntry README.md
5232 silly gunzTarPerm extractEntry LICENSE
5233 silly gunzTarPerm extractEntry .npmignore
5234 silly gunzTarPerm extractEntry README.md
5235 silly gunzTarPerm extractEntry url.js
5236 silly gunzTarPerm extractEntry LICENSE
5237 silly gunzTarPerm extractEntry index.js
5238 silly gunzTarPerm extractEntry LICENSE
5239 silly gunzTarPerm extractEntry index.js
5240 silly gunzTarPerm extractEntry .npmignore
5241 silly gunzTarPerm extractEntry README.md
5242 silly gunzTarPerm extractEntry LICENSE
5243 silly gunzTarPerm extractEntry writable.js
5244 silly gunzTarPerm extractEntry index.js
5245 silly gunzTarPerm extractEntry inject.js
5246 silly gunzTarPerm extractEntry .npmignore
5247 silly gunzTarPerm extractEntry README.md
5248 silly gunzTarPerm extractEntry .npmignore
5249 silly gunzTarPerm extractEntry README.md
5250 silly gunzTarPerm extractEntry LICENSE
5251 silly gunzTarPerm extractEntry index.js
5252 silly gunzTarPerm extractEntry LICENSE
5253 silly gunzTarPerm extractEntry index.js
5254 silly gunzTarPerm extractEntry .npmignore
5255 silly gunzTarPerm extractEntry LICENSE
5256 silly gunzTarPerm extractEntry .npmignore
5257 silly gunzTarPerm extractEntry README.md
5258 silly gunzTarPerm extractEntry LICENSE
5259 silly gunzTarPerm extractEntry index.js
5260 silly gunzTarPerm extractEntry punycode.js
5261 silly gunzTarPerm extractEntry punycode.min.js
5262 silly gunzTarPerm extractEntry LICENSE-GPL.txt
5263 silly gunzTarPerm extractEntry LICENSE-MIT.txt
5264 silly gunzTarPerm extractEntry vendor/docdown/README.md
5265 silly gunzTarPerm extractEntry vendor/docdown/LICENSE.txt
5266 silly gunzTarPerm extractEntry vendor/docdown/doc/README.md
5267 silly gunzTarPerm extractEntry vendor/docdown/doc/parse.php
5268 silly gunzTarPerm extractEntry vendor/docdown/docdown.php
5269 silly gunzTarPerm extractEntry vendor/docdown/src/DocDown/Alias.php
5270 silly gunzTarPerm extractEntry vendor/docdown/src/DocDown/Entry.php
5271 silly gunzTarPerm extractEntry vendor/docdown/src/DocDown/Generator.php
5272 silly addNameRange number 2 { name: 'async', range: '>=0.2.9-0 <0.3.0-0', hasData: true }
5273 silly addNameRange versions [ 'async',
5273 silly addNameRange [ '0.1.0',
5273 silly addNameRange '0.1.1',
5273 silly addNameRange '0.1.2',
5273 silly addNameRange '0.1.3',
5273 silly addNameRange '0.1.4',
5273 silly addNameRange '0.1.5',
5273 silly addNameRange '0.1.6',
5273 silly addNameRange '0.1.7',
5273 silly addNameRange '0.1.8',
5273 silly addNameRange '0.1.9',
5273 silly addNameRange '0.1.10',
5273 silly addNameRange '0.1.11',
5273 silly addNameRange '0.1.12',
5273 silly addNameRange '0.1.13',
5273 silly addNameRange '0.1.14',
5273 silly addNameRange '0.1.15',
5273 silly addNameRange '0.1.16',
5273 silly addNameRange '0.1.17',
5273 silly addNameRange '0.1.18',
5273 silly addNameRange '0.1.19',
5273 silly addNameRange '0.1.20',
5273 silly addNameRange '0.1.21',
5273 silly addNameRange '0.1.22',
5273 silly addNameRange '0.2.0',
5273 silly addNameRange '0.2.1',
5273 silly addNameRange '0.2.2',
5273 silly addNameRange '0.2.3',
5273 silly addNameRange '0.2.4',
5273 silly addNameRange '0.2.5',
5273 silly addNameRange '0.2.6',
5273 silly addNameRange '0.2.7',
5273 silly addNameRange '0.2.8',
5273 silly addNameRange '0.2.9',
5273 silly addNameRange '0.2.10' ] ]
5274 verbose addNamed [ 'async', '0.2.10' ]
5275 verbose addNamed [ '0.2.10', '0.2.10' ]
5276 silly lockFile 098b530d-async-0-2-10 async@0.2.10
5277 verbose lock async@0.2.10 /home/scarter/.npm/098b530d-async-0-2-10.lock
5278 http 304 https://registry.npmjs.org/nan
5279 silly registry.get cb [ 304,
5279 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
5279 silly registry.get server: 'Apache',
5279 silly registry.get connection: 'Keep-Alive',
5279 silly registry.get 'keep-alive': 'timeout=10, max=38',
5279 silly registry.get etag: '"9UECXC57D7P4LHUYG2GZ8I49F"',
5279 silly registry.get 'cache-control': 'max-age=1',
5279 silly registry.get vary: 'Accept' } ]
5280 verbose etag nan from cache
5281 silly gunzTarPerm extractEntry LICENSE.APACHE2
5282 silly gunzTarPerm extractEntry LICENSE.MIT
5283 silly gunzTarPerm extractEntry inherits.js
5284 silly gunzTarPerm extractEntry inherits_browser.js
5285 silly gunzTarPerm extractEntry browser.js
5286 silly gunzTarPerm extractEntry main.js
5287 silly gunzTarPerm extractEntry readme.markdown
5288 silly lockFile fa19b583-combined-stream-0-0-4 combined-stream@0.0.4
5289 silly lockFile fa19b583-combined-stream-0-0-4 combined-stream@0.0.4
5290 silly gunzTarPerm extractEntry bin/cmd.js
5291 silly gunzTarPerm extractEntry example/sort.js
5292 silly gunzTarPerm extractEntry README.markdown
5293 silly gunzTarPerm extractEntry example/parse.js
5294 silly gunzTarPerm extractEntry .travis.yml
5295 silly gunzTarPerm extractEntry example/check.js
5296 silly gunzTarPerm extractEntry LICENCE
5297 silly gunzTarPerm extractEntry index.js
5298 silly gunzTarPerm extractEntry LICENSE
5299 silly gunzTarPerm extractEntry index.js
5300 silly gunzTarPerm extractEntry empty.js
5301 silly gunzTarPerm extractEntry index.js
5302 silly gunzTarPerm extractEntry example/cmp.js
5303 silly gunzTarPerm extractEntry lib/is_arguments.js
5304 silly gunzTarPerm extractEntry .travis.yml
5305 silly gunzTarPerm extractEntry LICENSE.APACHE2
5306 silly gunzTarPerm extractEntry LICENSE
5307 silly gunzTarPerm extractEntry index.js
5308 silly gunzTarPerm extractEntry .travis.yml
5309 silly gunzTarPerm extractEntry example/dirname.js
5310 silly gunzTarPerm extractEntry assert.js
5311 silly gunzTarPerm extractEntry test.js
5312 silly gunzTarPerm extractEntry .travis.yml
5313 silly gunzTarPerm extractEntry .zuul.yml
5314 silly gunzTarPerm extractEntry .travis.yml
5315 silly gunzTarPerm extractEntry .zuul.yml
5316 silly gunzTarPerm extractEntry constants.json
5317 silly gunzTarPerm extractEntry example/run/bundle.js
5318 silly gunzTarPerm extractEntry example/run/entry.js
5319 silly gunzTarPerm extractEntry example/run/server.js
5320 silly gunzTarPerm extractEntry example/run/index.html
5321 silly gunzTarPerm extractEntry readme.markdown
5322 silly gunzTarPerm extractEntry test/vm.js
5323 silly gunzTarPerm extractEntry index.js
5324 silly gunzTarPerm extractEntry zlib.js
5325 silly gunzTarPerm extractEntry readme.markdown
5326 silly gunzTarPerm extractEntry LICENSE
5327 silly gunzTarPerm extractEntry index.js
5328 silly gunzTarPerm extractEntry example/get/main.js
5329 silly gunzTarPerm extractEntry main.js
5330 silly gunzTarPerm extractEntry LICENSE.md
5331 silly gunzTarPerm extractEntry readme.markdown
5332 silly gunzTarPerm extractEntry .travis.yml
5333 silly gunzTarPerm extractEntry example/parse.js
5334 silly gunzTarPerm extractEntry sha256.js
5335 silly gunzTarPerm extractEntry helpers.js
5336 silly gunzTarPerm extractEntry util.js
5337 silly gunzTarPerm extractEntry .travis.yml
5338 silly gunzTarPerm extractEntry .zuul.yml
5339 silly gunzTarPerm extractEntry support/isBuffer.js
5340 silly gunzTarPerm extractEntry support/isBufferBrowser.js
5341 silly gunzTarPerm extractEntry test/browser/inspect.js
5342 silly gunzTarPerm extractEntry test/browser/is.js
5343 silly gunzTarPerm extractEntry test/node/debug.js
5344 silly gunzTarPerm extractEntry test/node/format.js
5345 silly gunzTarPerm extractEntry test/node/inspect.js
5346 silly gunzTarPerm extractEntry test/node/log.js
5347 silly gunzTarPerm extractEntry test/node/util.js
5348 silly lockFile 97e270a8-combined-stream-0-0-4 combined-stream@~0.0.4
5349 silly lockFile 97e270a8-combined-stream-0-0-4 combined-stream@~0.0.4
5350 silly gunzTarPerm extractEntry .travis.yml
5351 silly gunzTarPerm extractEntry example/defined.js
5352 silly gunzTarPerm extractEntry _prelude.js
5353 silly gunzTarPerm extractEntry index.js
5354 silly gunzTarPerm extractEntry .travis.yml
5355 silly gunzTarPerm extractEntry example/deps.js
5356 silly gunzTarPerm extractEntry index.js
5357 silly gunzTarPerm extractEntry .travis.yml
5358 silly gunzTarPerm extractEntry index.js
5359 silly gunzTarPerm extractEntry .travis.yml
5360 silly gunzTarPerm extractEntry index.js
5361 silly gunzTarPerm extractEntry readme.md
5362 silly gunzTarPerm extractEntry LICENCE
5363 silly gunzTarPerm extractEntry index.js
5364 http 304 https://registry.npmjs.org/ctype/0.5.2
5365 silly registry.get cb [ 304,
5365 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
5365 silly registry.get server: 'Apache',
5365 silly registry.get connection: 'Keep-Alive',
5365 silly registry.get 'keep-alive': 'timeout=10, max=37',
5365 silly registry.get etag: '"34JT7515ZF1SV8FFCJ2N2AXYW"',
5365 silly registry.get 'cache-control': 'max-age=1',
5365 silly registry.get vary: 'Accept' } ]
5366 verbose etag ctype/0.5.2 from cache
5367 http 304 https://registry.npmjs.org/bindings
5368 silly registry.get cb [ 304,
5368 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
5368 silly registry.get server: 'Apache',
5368 silly registry.get connection: 'Keep-Alive',
5368 silly registry.get 'keep-alive': 'timeout=10, max=39',
5368 silly registry.get etag: '"BTQDAND2YFII0C4X8C6L0I5ZN"',
5368 silly registry.get 'cache-control': 'max-age=1',
5368 silly registry.get vary: 'Accept' } ]
5369 verbose etag bindings from cache
5370 silly gunzTarPerm extractEntry bundle.js
5371 silly gunzTarPerm extractEntry duplex.js
5372 silly gunzTarPerm extractEntry index.js
5373 silly gunzTarPerm extractEntry readable.js
5374 silly gunzTarPerm extractEntry transform.js
5375 silly gunzTarPerm extractEntry passthrough.js
5376 silly gunzTarPerm extractEntry test/array_buffer.js
5377 silly gunzTarPerm extractEntry readme.markdown
5378 silly gunzTarPerm extractEntry .travis.yml
5379 silly gunzTarPerm extractEntry index.js
5380 silly gunzTarPerm extractEntry test.js
5381 silly gunzTarPerm extractEntry index.js
5382 silly addNameRange number 2 { name: 'nan', range: '>=0.7.0-0 <0.8.0-0', hasData: true }
5383 silly addNameRange versions [ 'nan',
5383 silly addNameRange [ '0.3.0-wip',
5383 silly addNameRange '0.3.0-wip2',
5383 silly addNameRange '0.3.0',
5383 silly addNameRange '0.3.1',
5383 silly addNameRange '0.3.2',
5383 silly addNameRange '0.4.0',
5383 silly addNameRange '0.4.1',
5383 silly addNameRange '0.4.2',
5383 silly addNameRange '0.4.3',
5383 silly addNameRange '0.4.4',
5383 silly addNameRange '0.5.0',
5383 silly addNameRange '0.5.1',
5383 silly addNameRange '0.5.2',
5383 silly addNameRange '0.6.0',
5383 silly addNameRange '0.7.0',
5383 silly addNameRange '0.7.1',
5383 silly addNameRange '0.8.0' ] ]
5384 verbose addNamed [ 'nan', '0.7.1' ]
5385 verbose addNamed [ '0.7.1', '0.7.1' ]
5386 silly lockFile f54c0d1e-nan-0-7-1 nan@0.7.1
5387 verbose lock nan@0.7.1 /home/scarter/.npm/f54c0d1e-nan-0-7-1.lock
5388 silly gunzTarPerm extractEntry .travis.yml
5389 silly gunzTarPerm extractEntry test/index.js
5390 silly gunzTarPerm extractEntry .travis.yml
5391 silly gunzTarPerm extractEntry test/index.js
5392 silly gunzTarPerm extractEntry .travis.yml
5393 silly gunzTarPerm extractEntry example/builtin.js
5394 silly gunzTarPerm extractEntry LICENSE.MIT
5395 silly gunzTarPerm extractEntry examples/all_docs.js
5396 silly gunzTarPerm extractEntry template.js
5397 silly gunzTarPerm extractEntry .travis.yml
5398 silly gunzTarPerm extractEntry History.md
5399 silly gunzTarPerm extractEntry Readme.md
5400 silly gunzTarPerm extractEntry .travis.yml
5401 silly addNameRange number 2 { name: 'bindings', range: '>=1.1.1-0 <1.2.0-0', hasData: true }
5402 silly addNameRange versions [ 'bindings',
5402 silly addNameRange [ '0.0.1',
5402 silly addNameRange '0.1.0',
5402 silly addNameRange '0.1.1',
5402 silly addNameRange '0.2.0',
5402 silly addNameRange '0.2.1',
5402 silly addNameRange '0.2.2',
5402 silly addNameRange '0.2.3',
5402 silly addNameRange '0.2.4',
5402 silly addNameRange '0.3.0',
5402 silly addNameRange '0.4.0',
5402 silly addNameRange '1.0.0',
5402 silly addNameRange '1.1.0',
5402 silly addNameRange '1.1.1' ] ]
5403 verbose addNamed [ 'bindings', '1.1.1' ]
5404 verbose addNamed [ '1.1.1', '1.1.1' ]
5405 silly lockFile 52dd60a7-bindings-1-1-1 bindings@1.1.1
5406 verbose lock bindings@1.1.1 /home/scarter/.npm/52dd60a7-bindings-1-1-1.lock
5407 silly gunzTarPerm extractEntry build/package.json
5408 silly gunzTarPerm extractEntry build/.npmignore
5409 silly gunzTarPerm extractEntry example/enroll/server.js
5410 silly gunzTarPerm extractEntry example/enroll/build.sh
5411 silly gunzTarPerm extractEntry index.js
5412 silly gunzTarPerm extractEntry sha.js
5413 silly gunzTarPerm extractEntry example/quote.js
5414 silly gunzTarPerm extractEntry test/parse.js
5415 silly gunzTarPerm extractEntry example/files/bar.js
5416 silly gunzTarPerm extractEntry example/files/foo.js
5417 silly gunzTarPerm extractEntry example/files/main.js
5418 silly gunzTarPerm extractEntry example/files/xyz.js
5419 silly gunzTarPerm extractEntry readme.markdown
5420 silly gunzTarPerm extractEntry test/bundle.js
5421 silly gunzTarPerm extractEntry test/filter.js
5422 silly gunzTarPerm extractEntry test/noparse.js
5423 silly gunzTarPerm extractEntry test/pkg_filter.js
5424 silly gunzTarPerm extractEntry test/stream.js
5425 silly gunzTarPerm extractEntry test/tr_whole_package.js
5426 silly gunzTarPerm extractEntry test/tr_fn.js
5427 silly gunzTarPerm extractEntry test/tr_global.js
5428 silly gunzTarPerm extractEntry test/tr_module.js
5429 silly gunzTarPerm extractEntry test/tr_rel.js
5430 silly gunzTarPerm extractEntry test/tr_sh.js
5431 silly gunzTarPerm extractEntry test/deps.js
5432 silly gunzTarPerm extractEntry test/unicode.js
5433 silly gunzTarPerm extractEntry test/tr_2dep_module.js
5434 silly gunzTarPerm extractEntry test/files/bar.js
5435 silly gunzTarPerm extractEntry test/files/foo.js
5436 silly gunzTarPerm extractEntry test/files/main.js
5437 silly gunzTarPerm extractEntry test/files/filterable.js
5438 silly gunzTarPerm extractEntry test/files/xyz.js
5439 silly gunzTarPerm extractEntry test/files/tr_2dep_module/f.js
5440 silly gunzTarPerm extractEntry test/files/tr_2dep_module/main.js
5441 silly gunzTarPerm extractEntry test/files/tr_2dep_module/node_modules/g/package.json
5442 silly gunzTarPerm extractEntry test/files/tr_2dep_module/node_modules/g/index.js
5443 silly gunzTarPerm extractEntry test/files/tr_2dep_module/node_modules/g/node_modules/insert-ggg/index.js
5444 silly gunzTarPerm extractEntry test/files/tr_2dep_module/node_modules/insert-aaa/index.js
5445 silly gunzTarPerm extractEntry test/files/tr_2dep_module/node_modules/insert-bbb/index.js
5446 silly gunzTarPerm extractEntry test/files/tr_2dep_module/node_modules/m/package.json
5447 silly gunzTarPerm extractEntry test/files/tr_2dep_module/node_modules/m/index.js
5448 silly gunzTarPerm extractEntry test/files/tr_2dep_module/node_modules/m/node_modules/insert-mmm/index.js
5449 silly gunzTarPerm extractEntry test/files/pkg_filter/package.json
5450 silly gunzTarPerm extractEntry test/files/pkg_filter/one.js
5451 silly gunzTarPerm extractEntry test/files/pkg_filter/test.js
5452 silly gunzTarPerm extractEntry test/files/pkg_filter/two.js
5453 silly gunzTarPerm extractEntry test/files/tr_module/package.json
5454 silly gunzTarPerm extractEntry test/files/tr_module/f.js
5455 silly gunzTarPerm extractEntry test/files/tr_module/index.js
5456 silly gunzTarPerm extractEntry test/files/tr_module/main.js
5457 silly gunzTarPerm extractEntry test/files/tr_module/xxx.js
5458 silly gunzTarPerm extractEntry test/files/tr_rel/package.json
5459 silly gunzTarPerm extractEntry test/files/tr_rel/xxx.js
5460 silly gunzTarPerm extractEntry test/files/tr_rel/subdir/main.js
5461 silly gunzTarPerm extractEntry test/files/tr_sh/f.js
5462 silly gunzTarPerm extractEntry test/files/tr_sh/main.js
5463 silly gunzTarPerm extractEntry test/files/tr_sh/tr_a.js
5464 silly gunzTarPerm extractEntry test/files/tr_sh/tr_b.js
5465 silly gunzTarPerm extractEntry test/files/tr_sh/node_modules/g/package.json
5466 silly gunzTarPerm extractEntry test/files/tr_sh/node_modules/g/index.js
5467 silly gunzTarPerm extractEntry test/files/tr_sh/node_modules/g/tr_g.js
5468 silly gunzTarPerm extractEntry test/files/tr_sh/node_modules/m/index.js
5469 silly gunzTarPerm extractEntry test/files/tr_whole_package/f.js
5470 silly gunzTarPerm extractEntry test/files/tr_whole_package/main.js
5471 silly gunzTarPerm extractEntry test/files/tr_whole_package/node_modules/algo/package.json
5472 silly gunzTarPerm extractEntry test/files/tr_whole_package/node_modules/algo/index.js
5473 silly gunzTarPerm extractEntry test/files/tr_whole_package/node_modules/algo/lib/decrement.js
5474 silly gunzTarPerm extractEntry test/files/tr_whole_package/node_modules/algo/node_modules/insert-ggg/index.js
5475 silly gunzTarPerm extractEntry test/files/unicode/bar.js
5476 silly gunzTarPerm extractEntry test/files/unicode/foo.js
5477 silly gunzTarPerm extractEntry test/files/unicode/main.js
5478 silly gunzTarPerm extractEntry test/files/tr_global/package.json
5479 silly gunzTarPerm extractEntry test/files/tr_global/main.js
5480 silly gunzTarPerm extractEntry prelude.js
5481 silly gunzTarPerm extractEntry test/comment.js
5482 silly gunzTarPerm extractEntry bench/results.txt
5483 silly gunzTarPerm extractEntry bench/run.sh
5484 silly gunzTarPerm extractEntry test/array.js
5485 silly gunzTarPerm extractEntry test/buffer.js
5486 silly gunzTarPerm extractEntry .testem.json
5487 silly gunzTarPerm extractEntry .travis.yml
5488 silly gunzTarPerm extractEntry LICENSE.md
5489 silly gunzTarPerm extractEntry readme.markdown
5490 silly gunzTarPerm extractEntry example/src.js
5491 silly gunzTarPerm extractEntry readme.markdown
5492 silly gunzTarPerm extractEntry test.js
5493 silly gunzTarPerm extractEntry example/win32.js
5494 silly gunzTarPerm extractEntry readme.markdown
5495 silly gunzTarPerm extractEntry readme.markdown
5496 silly gunzTarPerm extractEntry test/dash.js
5497 silly gunzTarPerm extractEntry readme.markdown
5498 silly gunzTarPerm extractEntry test/def.js
5499 silly lockFile 098b530d-async-0-2-10 async@0.2.10
5500 silly lockFile 098b530d-async-0-2-10 async@0.2.10
5501 silly lockFile 5d51c871-async-0-2-9 async@~0.2.9
5502 silly lockFile 5d51c871-async-0-2-9 async@~0.2.9
5503 silly gunzTarPerm extractEntry readme.markdown
5504 silly gunzTarPerm extractEntry test/auto-destroy.js
5505 silly gunzTarPerm extractEntry lib/keys.js
5506 silly gunzTarPerm extractEntry readme.markdown
5507 silly gunzTarPerm extractEntry example/get/server.js
5508 silly gunzTarPerm extractEntry example/get/index.html
5509 silly resolved [ { author:
5509 silly resolved { name: 'Felix Geisendörfer',
5509 silly resolved email: 'felix@debuggable.com',
5509 silly resolved url: 'http://debuggable.com/' },
5509 silly resolved name: 'combined-stream',
5509 silly resolved description: 'A stream that emits multiple other streams one after another.',
5509 silly resolved version: '0.0.4',
5509 silly resolved homepage: 'https://github.com/felixge/node-combined-stream',
5509 silly resolved repository:
5509 silly resolved { type: 'git',
5509 silly resolved url: 'git://github.com/felixge/node-combined-stream.git' },
5509 silly resolved main: './lib/combined_stream',
5509 silly resolved engines: { node: '*' },
5509 silly resolved dependencies: { 'delayed-stream': '0.0.5' },
5509 silly resolved devDependencies: { far: '0.0.1' },
5509 silly resolved readme: '# combined-stream\n\nA stream that emits multiple other streams one after another.\n\n## Installation\n\n``` bash\nnpm install combined-stream\n```\n\n## Usage\n\nHere is a simple example that shows how you can use combined-stream to combine\ntwo files into one:\n\n``` javascript\nvar CombinedStream = require(\'combined-stream\');\nvar fs = require(\'fs\');\n\nvar combinedStream = CombinedStream.create();\ncombinedStream.append(fs.createReadStream(\'file1.txt\'));\ncombinedStream.append(fs.createReadStream(\'file2.txt\'));\n\ncombinedStream.pipe(fs.createWriteStream(\'combined.txt\'));\n```\n\nWhile the example above works great, it will pause all source streams until\nthey are needed. If you don\'t want that to happen, you can set `pauseStreams`\nto `false`:\n\n``` javascript\nvar CombinedStream = require(\'combined-stream\');\nvar fs = require(\'fs\');\n\nvar combinedStream = CombinedStream.create({pauseStreams: false});\ncombinedStream.append(fs.createReadStream(\'file1.txt\'));\ncombinedStream.append(fs.createReadStream(\'file2.txt\'));\n\ncombinedStream.pipe(fs.createWriteStream(\'combined.txt\'));\n```\n\nHowever, what if you don\'t have all the source streams yet, or you don\'t want\nto allocate the resources (file descriptors, memory, etc.) for them right away?\nWell, in that case you can simply provide a callback that supplies the stream\nby calling a `next()` function:\n\n``` javascript\nvar CombinedStream = require(\'combined-stream\');\nvar fs = require(\'fs\');\n\nvar combinedStream = CombinedStream.create();\ncombinedStream.append(function(next) {\n next(fs.createReadStream(\'file1.txt\'));\n});\ncombinedStream.append(function(next) {\n next(fs.createReadStream(\'file2.txt\'));\n});\n\ncombinedStream.pipe(fs.createWriteStream(\'combined.txt\'));\n```\n\n## API\n\n### CombinedStream.create([options])\n\nReturns a new combined stream object. Available options are:\n\n* `maxDataSize`\n* `pauseStreams`\n\nThe effect of those options is described below.\n\n### combinedStream.pauseStreams = true\n\nWhether to apply back pressure to the underlaying streams. If set to `false`,\nthe underlaying streams will never be paused. If set to `true`, the\nunderlaying streams will be paused right after being appended, as well as when\n`delayedStream.pipe()` wants to throttle.\n\n### combinedStream.maxDataSize = 2 * 1024 * 1024\n\nThe maximum amount of bytes (or characters) to buffer for all source streams.\nIf this value is exceeded, `combinedStream` emits an `\'error\'` event.\n\n### combinedStream.dataSize = 0\n\nThe amount of bytes (or characters) currently buffered by `combinedStream`.\n\n### combinedStream.append(stream)\n\nAppends the given `stream` to the combinedStream object. If `pauseStreams` is\nset to `true, this stream will also be paused right away.\n\n`streams` can also be a function that takes one parameter called `next`. `next`\nis a function that must be invoked in order to provide the `next` stream, see\nexample above.\n\nRegardless of how the `stream` is appended, combined-stream always attaches an\n`\'error\'` listener to it, so you don\'t have to do that manually.\n\nSpecial case: `stream` can also be a String or Buffer.\n\n### combinedStream.write(data)\n\nYou should not call this, `combinedStream` takes care of piping the appended\nstreams into itself for you.\n\n### combinedStream.resume()\n\nCauses `combinedStream` to start drain the streams it manages. The function is\nidempotent, and also emits a `\'resume\'` event each time which usually goes to\nthe stream that is currently being drained.\n\n### combinedStream.pause();\n\nIf `combinedStream.pauseStreams` is set to `false`, this does nothing.\nOtherwise a `\'pause\'` event is emitted, this goes to the stream that is\ncurrently being drained, so you can use it to apply back pressure.\n\n### combinedStream.end();\n\nSets `combinedStream.writable` to false, emits an `\'end\'` event, and removes\nall streams from the queue.\n\n### combinedStream.destroy();\n\nSame as `combinedStream.end()`, except it emits a `\'close\'` event instead of\n`\'end\'`.\n\n## License\n\ncombined-stream is licensed under the MIT license.\n',
5509 silly resolved readmeFilename: 'Readme.md',
5509 silly resolved bugs: { url: 'https://github.com/felixge/node-combined-stream/issues' },
5509 silly resolved _id: 'combined-stream@0.0.4',
5509 silly resolved _from: 'combined-stream@~0.0.4' },
5509 silly resolved { name: 'async',
5509 silly resolved description: 'Higher-order functions and common patterns for asynchronous code',
5509 silly resolved main: './lib/async',
5509 silly resolved author: { name: 'Caolan McMahon' },
5509 silly resolved version: '0.2.10',
5509 silly resolved repository: { type: 'git', url: 'https://github.com/caolan/async.git' },
5509 silly resolved bugs: { url: 'https://github.com/caolan/async/issues' },
5509 silly resolved licenses: [ [Object] ],
5509 silly resolved devDependencies: { nodeunit: '>0.0.0', 'uglify-js': '1.2.x', nodelint: '>0.0.0' },
5509 silly resolved jam: { main: 'lib/async.js', include: [Object] },
5509 silly resolved scripts: { test: 'nodeunit test/test-async.js' },
5509 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* [eachSeries](#eachSeries)\n* [eachLimit](#eachLimit)\n* [map](#map)\n* [mapSeries](#mapSeries)\n* [mapLimit](#mapLimit)\n* [filter](#filter)\n* [filterSeries](#filterSeries)\n* [reject](#reject)\n* [rejectSeries](#rejectSeries)\n* [reduce](#reduce)\n* [reduceRight](#reduceRight)\n* [detect](#detect)\n* [detectSeries](#detectSeries)\n* [sortBy](#sortBy)\n* [some](#some)\n* [every](#every)\n* [concat](#concat)\n* [concatSeries](#concatSeries)\n\n### Control Flow\n\n* [series](#series)\n* [parallel](#parallel)\n* [parallelLimit](#parallellimittasks-limit-callback)\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* [applyEachSeries](#applyEachSeries)\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.mapLimit([\'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',
5509 silly resolved readmeFilename: 'README.md',
5509 silly resolved homepage: 'https://github.com/caolan/async',
5509 silly resolved _id: 'async@0.2.10',
5509 silly resolved _from: 'async@~0.2.9' } ]
5510 info install combined-stream@0.0.4 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/form-data
5511 info install async@0.2.10 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/form-data
5512 info installOne combined-stream@0.0.4
5513 info installOne async@0.2.10
5514 silly resolved [ { author:
5514 silly resolved { name: 'Felix Geisendörfer',
5514 silly resolved email: 'felix@debuggable.com',
5514 silly resolved url: 'http://debuggable.com/' },
5514 silly resolved name: 'combined-stream',
5514 silly resolved description: 'A stream that emits multiple other streams one after another.',
5514 silly resolved version: '0.0.4',
5514 silly resolved homepage: 'https://github.com/felixge/node-combined-stream',
5514 silly resolved repository:
5514 silly resolved { type: 'git',
5514 silly resolved url: 'git://github.com/felixge/node-combined-stream.git' },
5514 silly resolved main: './lib/combined_stream',
5514 silly resolved engines: { node: '*' },
5514 silly resolved dependencies: { 'delayed-stream': '0.0.5' },
5514 silly resolved devDependencies: { far: '0.0.1' },
5514 silly resolved readme: '# combined-stream\n\nA stream that emits multiple other streams one after another.\n\n## Installation\n\n``` bash\nnpm install combined-stream\n```\n\n## Usage\n\nHere is a simple example that shows how you can use combined-stream to combine\ntwo files into one:\n\n``` javascript\nvar CombinedStream = require(\'combined-stream\');\nvar fs = require(\'fs\');\n\nvar combinedStream = CombinedStream.create();\ncombinedStream.append(fs.createReadStream(\'file1.txt\'));\ncombinedStream.append(fs.createReadStream(\'file2.txt\'));\n\ncombinedStream.pipe(fs.createWriteStream(\'combined.txt\'));\n```\n\nWhile the example above works great, it will pause all source streams until\nthey are needed. If you don\'t want that to happen, you can set `pauseStreams`\nto `false`:\n\n``` javascript\nvar CombinedStream = require(\'combined-stream\');\nvar fs = require(\'fs\');\n\nvar combinedStream = CombinedStream.create({pauseStreams: false});\ncombinedStream.append(fs.createReadStream(\'file1.txt\'));\ncombinedStream.append(fs.createReadStream(\'file2.txt\'));\n\ncombinedStream.pipe(fs.createWriteStream(\'combined.txt\'));\n```\n\nHowever, what if you don\'t have all the source streams yet, or you don\'t want\nto allocate the resources (file descriptors, memory, etc.) for them right away?\nWell, in that case you can simply provide a callback that supplies the stream\nby calling a `next()` function:\n\n``` javascript\nvar CombinedStream = require(\'combined-stream\');\nvar fs = require(\'fs\');\n\nvar combinedStream = CombinedStream.create();\ncombinedStream.append(function(next) {\n next(fs.createReadStream(\'file1.txt\'));\n});\ncombinedStream.append(function(next) {\n next(fs.createReadStream(\'file2.txt\'));\n});\n\ncombinedStream.pipe(fs.createWriteStream(\'combined.txt\'));\n```\n\n## API\n\n### CombinedStream.create([options])\n\nReturns a new combined stream object. Available options are:\n\n* `maxDataSize`\n* `pauseStreams`\n\nThe effect of those options is described below.\n\n### combinedStream.pauseStreams = true\n\nWhether to apply back pressure to the underlaying streams. If set to `false`,\nthe underlaying streams will never be paused. If set to `true`, the\nunderlaying streams will be paused right after being appended, as well as when\n`delayedStream.pipe()` wants to throttle.\n\n### combinedStream.maxDataSize = 2 * 1024 * 1024\n\nThe maximum amount of bytes (or characters) to buffer for all source streams.\nIf this value is exceeded, `combinedStream` emits an `\'error\'` event.\n\n### combinedStream.dataSize = 0\n\nThe amount of bytes (or characters) currently buffered by `combinedStream`.\n\n### combinedStream.append(stream)\n\nAppends the given `stream` to the combinedStream object. If `pauseStreams` is\nset to `true, this stream will also be paused right away.\n\n`streams` can also be a function that takes one parameter called `next`. `next`\nis a function that must be invoked in order to provide the `next` stream, see\nexample above.\n\nRegardless of how the `stream` is appended, combined-stream always attaches an\n`\'error\'` listener to it, so you don\'t have to do that manually.\n\nSpecial case: `stream` can also be a String or Buffer.\n\n### combinedStream.write(data)\n\nYou should not call this, `combinedStream` takes care of piping the appended\nstreams into itself for you.\n\n### combinedStream.resume()\n\nCauses `combinedStream` to start drain the streams it manages. The function is\nidempotent, and also emits a `\'resume\'` event each time which usually goes to\nthe stream that is currently being drained.\n\n### combinedStream.pause();\n\nIf `combinedStream.pauseStreams` is set to `false`, this does nothing.\nOtherwise a `\'pause\'` event is emitted, this goes to the stream that is\ncurrently being drained, so you can use it to apply back pressure.\n\n### combinedStream.end();\n\nSets `combinedStream.writable` to false, emits an `\'end\'` event, and removes\nall streams from the queue.\n\n### combinedStream.destroy();\n\nSame as `combinedStream.end()`, except it emits a `\'close\'` event instead of\n`\'end\'`.\n\n## License\n\ncombined-stream is licensed under the MIT license.\n',
5514 silly resolved readmeFilename: 'Readme.md',
5514 silly resolved bugs: { url: 'https://github.com/felixge/node-combined-stream/issues' },
5514 silly resolved _id: 'combined-stream@0.0.4',
5514 silly resolved _from: 'combined-stream@~0.0.4' },
5514 silly resolved { name: 'async',
5514 silly resolved description: 'Higher-order functions and common patterns for asynchronous code',
5514 silly resolved main: './lib/async',
5514 silly resolved author: { name: 'Caolan McMahon' },
5514 silly resolved version: '0.2.10',
5514 silly resolved repository: { type: 'git', url: 'https://github.com/caolan/async.git' },
5514 silly resolved bugs: { url: 'https://github.com/caolan/async/issues' },
5514 silly resolved licenses: [ [Object] ],
5514 silly resolved devDependencies: { nodeunit: '>0.0.0', 'uglify-js': '1.2.x', nodelint: '>0.0.0' },
5514 silly resolved jam: { main: 'lib/async.js', include: [Object] },
5514 silly resolved scripts: { test: 'nodeunit test/test-async.js' },
5514 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* [eachSeries](#eachSeries)\n* [eachLimit](#eachLimit)\n* [map](#map)\n* [mapSeries](#mapSeries)\n* [mapLimit](#mapLimit)\n* [filter](#filter)\n* [filterSeries](#filterSeries)\n* [reject](#reject)\n* [rejectSeries](#rejectSeries)\n* [reduce](#reduce)\n* [reduceRight](#reduceRight)\n* [detect](#detect)\n* [detectSeries](#detectSeries)\n* [sortBy](#sortBy)\n* [some](#some)\n* [every](#every)\n* [concat](#concat)\n* [concatSeries](#concatSeries)\n\n### Control Flow\n\n* [series](#series)\n* [parallel](#parallel)\n* [parallelLimit](#parallellimittasks-limit-callback)\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* [applyEachSeries](#applyEachSeries)\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.mapLimit([\'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',
5514 silly resolved readmeFilename: 'README.md',
5514 silly resolved homepage: 'https://github.com/caolan/async',
5514 silly resolved _id: 'async@0.2.10',
5514 silly resolved _from: 'async@~0.2.9' } ]
5515 info install combined-stream@0.0.4 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/form-data
5516 info install async@0.2.10 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/form-data
5517 info installOne combined-stream@0.0.4
5518 info installOne async@0.2.10
5519 silly gunzTarPerm extractEntry History.md
5520 silly gunzTarPerm extractEntry License.md
5521 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/form-data/node_modules/combined-stream unbuild
5522 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/form-data/node_modules/async unbuild
5523 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/form-data/node_modules/combined-stream unbuild
5524 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/form-data/node_modules/async unbuild
5525 silly gunzTarPerm extractEntry build/build.js
5526 silly gunzTarPerm extractEntry build/files.js
5527 silly gunzTarPerm extractEntry build/test-replacements.js
5528 silly gunzTarPerm extractEntry test/common.js
5529 silly gunzTarPerm extractEntry test/simple/test-string-decoder-end.js
5530 silly gunzTarPerm extractEntry test/simple/test-string-decoder.js
5531 verbose tar unpack /home/scarter/.npm/combined-stream/0.0.4/package.tgz
5532 silly lockFile c552e8d1-ata-node-modules-combined-stream tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/form-data/node_modules/combined-stream
5533 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/form-data/node_modules/combined-stream /home/scarter/.npm/c552e8d1-ata-node-modules-combined-stream.lock
5534 silly lockFile 18c8eddd-ombined-stream-0-0-4-package-tgz tar:///home/scarter/.npm/combined-stream/0.0.4/package.tgz
5535 verbose lock tar:///home/scarter/.npm/combined-stream/0.0.4/package.tgz /home/scarter/.npm/18c8eddd-ombined-stream-0-0-4-package-tgz.lock
5536 verbose tar unpack /home/scarter/.npm/async/0.2.10/package.tgz
5537 silly lockFile 67819565-les-form-data-node-modules-async tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/form-data/node_modules/async
5538 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/form-data/node_modules/async /home/scarter/.npm/67819565-les-form-data-node-modules-async.lock
5539 silly lockFile 9d095224-ter-npm-async-0-2-10-package-tgz tar:///home/scarter/.npm/async/0.2.10/package.tgz
5540 verbose lock tar:///home/scarter/.npm/async/0.2.10/package.tgz /home/scarter/.npm/9d095224-ter-npm-async-0-2-10-package-tgz.lock
5541 verbose tar unpack /home/scarter/.npm/async/0.2.10/package.tgz
5542 silly lockFile 99f88387-les-form-data-node-modules-async tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/form-data/node_modules/async
5543 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/form-data/node_modules/async /home/scarter/.npm/99f88387-les-form-data-node-modules-async.lock
5544 silly lockFile 9d095224-ter-npm-async-0-2-10-package-tgz tar:///home/scarter/.npm/async/0.2.10/package.tgz
5545 verbose lock tar:///home/scarter/.npm/async/0.2.10/package.tgz /home/scarter/.npm/9d095224-ter-npm-async-0-2-10-package-tgz.lock
5546 verbose tar unpack /home/scarter/.npm/combined-stream/0.0.4/package.tgz
5547 silly lockFile 111fe23f-ata-node-modules-combined-stream tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/form-data/node_modules/combined-stream
5548 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/form-data/node_modules/combined-stream /home/scarter/.npm/111fe23f-ata-node-modules-combined-stream.lock
5549 silly lockFile 18c8eddd-ombined-stream-0-0-4-package-tgz tar:///home/scarter/.npm/combined-stream/0.0.4/package.tgz
5550 verbose lock tar:///home/scarter/.npm/combined-stream/0.0.4/package.tgz /home/scarter/.npm/18c8eddd-ombined-stream-0-0-4-package-tgz.lock
5551 silly gunzTarPerm extractEntry test/quote.js
5552 silly gunzTarPerm extractEntry example/enroll/index.html
5553 silly gunzTarPerm extractEntry example/enroll/js/browserify.js
5554 silly lockFile f54c0d1e-nan-0-7-1 nan@0.7.1
5555 silly lockFile f54c0d1e-nan-0-7-1 nan@0.7.1
5556 silly gunzTarPerm extractEntry test/index.js
5557 silly gunzTarPerm extractEntry test/static/test-adapter.js
5558 silly gunzTarPerm extractEntry readme.md
5559 silly gunzTarPerm extractEntry test/zlib.test.js
5560 silly gunzTarPerm extractEntry rng.js
5561 silly lockFile 9df25a33-nan-0-7-0 nan@~0.7.0
5562 silly lockFile 9df25a33-nan-0-7-0 nan@~0.7.0
5563 silly gunzTarPerm extractEntry test/only_execute_entries.js
5564 silly gunzTarPerm extractEntry test/order.js
5565 silly gunzTarPerm extractEntry bin/cmd.js
5566 silly gunzTarPerm extractEntry example/insert.js
5567 silly gunzTarPerm extractEntry test/cmp.js
5568 silly gunzTarPerm extractEntry test/dirname.js
5569 silly gunzTarPerm extractEntry test/win32.js
5570 silly gunzTarPerm extractEntry test/infer.js
5571 silly gunzTarPerm extractEntry test/nothing.js
5572 silly gunzTarPerm extractEntry bin/cli.js
5573 silly gunzTarPerm extractEntry test/index.js
5574 http 304 https://registry.npmjs.org/assert-plus/0.1.2
5575 silly registry.get cb [ 304,
5575 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
5575 silly registry.get server: 'Apache',
5575 silly registry.get connection: 'Keep-Alive',
5575 silly registry.get 'keep-alive': 'timeout=10, max=37',
5575 silly registry.get etag: '"88MXD7CWM63EKTXI5QT29PHUS"',
5575 silly registry.get 'cache-control': 'max-age=1',
5575 silly registry.get vary: 'Accept' } ]
5576 verbose etag assert-plus/0.1.2 from cache
5577 silly gunzTarPerm extractEntry md5.js
5578 silly gunzTarPerm modes [ '755', '644' ]
5579 silly gunzTarPerm modes [ '755', '644' ]
5580 silly gunzTarPerm extractEntry test/buffering.js
5581 silly gunzTarPerm extractEntry test/end.js
5582 silly gunzTarPerm extractEntry test/check.js
5583 silly gunzTarPerm extractEntry test/sources/check.js
5584 silly lockFile c556016e-ctype-0-5-2 ctype@0.5.2
5585 silly lockFile c556016e-ctype-0-5-2 ctype@0.5.2
5586 silly gunzTarPerm extractEntry example/custom.js
5587 silly gunzTarPerm extractEntry example/resolve.js
5588 silly gunzTarPerm extractEntry example/skip.js
5589 silly gunzTarPerm extractEntry example/custom/package.json
5590 silly gunzTarPerm extractEntry example/custom/custom.js
5591 silly gunzTarPerm extractEntry example/custom/main.js
5592 silly gunzTarPerm extractEntry example/skip/package.json
5593 silly gunzTarPerm extractEntry example/skip/main.js
5594 silly gunzTarPerm extractEntry test/core.js
5595 silly gunzTarPerm extractEntry test/false.js
5596 silly gunzTarPerm extractEntry test/local-coffee.js
5597 silly gunzTarPerm extractEntry test/local.js
5598 silly gunzTarPerm extractEntry test/modules-coffee.js
5599 silly gunzTarPerm extractEntry test/modules.js
5600 silly gunzTarPerm extractEntry test/fixtures/foo.js
5601 silly gunzTarPerm extractEntry test/fixtures-coffee/foo.coffee
5602 silly gunzTarPerm extractEntry test/mocha.opts
5603 silly gunzTarPerm extractEntry .travis.yml
5604 silly gunzTarPerm extractEntry bundle.sh
5605 silly gunzTarPerm extractEntry readme.markdown
5606 silly gunzTarPerm extractEntry test/bool.js
5607 silly gunzTarPerm extractEntry package.json
5608 silly gunzTarPerm extractEntry Readme.md
5609 silly gunzTarPerm extractEntry test/common-index.js
5610 silly gunzTarPerm extractEntry package.json
5611 silly gunzTarPerm extractEntry example/enroll/js/main.js
5612 silly gunzTarPerm extractEntry test/pack.js
5613 silly gunzTarPerm extractEntry test/static/index.html
5614 silly gunzTarPerm extractEntry .npmignore
5615 silly gunzTarPerm extractEntry License
5616 silly gunzTarPerm extractEntry test/index.js
5617 http 304 https://registry.npmjs.org/asn1/0.1.11
5618 silly registry.get cb [ 304,
5618 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
5618 silly registry.get server: 'Apache',
5618 silly registry.get connection: 'Keep-Alive',
5618 silly registry.get 'keep-alive': 'timeout=10, max=37',
5618 silly registry.get etag: '"C5IH5IVMID31ZH3I1KZF8TYCI"',
5618 silly registry.get 'cache-control': 'max-age=1',
5618 silly registry.get vary: 'Accept' } ]
5619 verbose etag asn1/0.1.11 from cache
5620 silly gunzTarPerm extractEntry test/default_bool.js
5621 silly gunzTarPerm extractEntry README.md
5622 silly gunzTarPerm extractEntry LICENSE
5623 silly gunzTarPerm extractEntry component.json
5624 silly gunzTarPerm extractEntry lib/async.js
5625 silly gunzTarPerm extractEntry test/doubledot2.js
5626 silly gunzTarPerm extractEntry test/empty.js
5627 silly gunzTarPerm extractEntry readme.markdown
5628 silly gunzTarPerm extractEntry .travis.yml
5629 silly gunzTarPerm extractEntry tests/add-listeners.js
5630 silly gunzTarPerm extractEntry tests/legacy-compat.js
5631 silly gunzTarPerm extractEntry tests/listeners-side-effects.js
5632 silly gunzTarPerm extractEntry tests/listeners.js
5633 silly gunzTarPerm extractEntry tests/index.js
5634 silly gunzTarPerm extractEntry tests/modify-in-emit.js
5635 silly gunzTarPerm extractEntry tests/num-args.js
5636 silly gunzTarPerm extractEntry tests/once.js
5637 silly gunzTarPerm extractEntry tests/remove-all-listeners.js
5638 silly gunzTarPerm extractEntry tests/remove-listeners.js
5639 silly gunzTarPerm extractEntry tests/common.js
5640 silly gunzTarPerm extractEntry tests/set-max-listeners-side-effects.js
5641 silly gunzTarPerm extractEntry tests/check-listener-leaks.js
5642 silly gunzTarPerm extractEntry tests/subclass.js
5643 silly gunzTarPerm extractEntry tests/max-listeners.js
5644 silly lockFile 3d33e60c-fy-node-modules-https-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/https-browserify
5645 silly lockFile 3d33e60c-fy-node-modules-https-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/https-browserify
5646 silly gunzTarPerm extractEntry perf/bracket-notation.js
5647 silly gunzTarPerm extractEntry perf/bundle.js
5648 silly gunzTarPerm extractEntry test/index.js
5649 silly gunzTarPerm extractEntry test/tap-index.js
5650 silly gunzTarPerm extractEntry test/objects.js
5651 silly lockFile 39c17a0f-tps-browserify-0-0-0-package-tgz tar:///home/scarter/.npm/https-browserify/0.0.0/package.tgz
5652 silly lockFile 39c17a0f-tps-browserify-0-0-0-package-tgz tar:///home/scarter/.npm/https-browserify/0.0.0/package.tgz
5653 silly lockFile 52dd60a7-bindings-1-1-1 bindings@1.1.1
5654 silly lockFile 52dd60a7-bindings-1-1-1 bindings@1.1.1
5655 silly lockFile 31b47386-rify-node-modules-tty-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/tty-browserify
5656 silly lockFile 31b47386-rify-node-modules-tty-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/tty-browserify
5657 silly gunzTarPerm extractEntry example/files/main.js
5658 silly gunzTarPerm extractEntry example/files/foo/index.js
5659 silly lockFile cc1512d6-bindings-1-1-1 bindings@~1.1.1
5660 silly lockFile cc1512d6-bindings-1-1-1 bindings@~1.1.1
5661 silly lockFile 20578c33-tty-browserify-0-0-0-package-tgz tar:///home/scarter/.npm/tty-browserify/0.0.0/package.tgz
5662 silly lockFile 20578c33-tty-browserify-0-0-0-package-tgz tar:///home/scarter/.npm/tty-browserify/0.0.0/package.tgz
5663 silly resolved [ { name: 'nan',
5663 silly resolved version: '0.7.1',
5663 silly resolved description: 'Native Abstractions for Node.js: C++ header for Node 0.8->0.12 compatibility',
5663 silly resolved main: 'include_dirs.js',
5663 silly resolved repository: { type: 'git', url: 'git://github.com/rvagg/nan.git' },
5663 silly resolved contributors: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
5663 silly resolved license: 'MIT',
5663 silly resolved readme: 'Native Abstractions for Node.js\n===============================\n\n**A header file filled with macro and utility goodness for making add-on development for Node.js easier across versions 0.8, 0.10 and 0.11, and eventually 0.12.**\n\n***Current version: 0.7.1*** *(See [nan.h](https://github.com/rvagg/nan/blob/master/nan.h) for complete ChangeLog)*\n\n[![NPM](https://nodei.co/npm/nan.png?downloads=true)](https://nodei.co/npm/nan/) [![NPM](https://nodei.co/npm-dl/nan.png?months=6)](https://nodei.co/npm/nan/)\n\nThanks to the crazy changes in V8 (and some in Node core), keeping native addons compiling happily across versions, particularly 0.10 to 0.11/0.12, is a minor nightmare. The goal of this project is to store all logic necessary to develop native Node.js addons without having to inspect `NODE_MODULE_VERSION` and get yourself into a macro-tangle.\n\nThis project also contains some helper utilities that make addon development a bit more pleasant.\n\n * **[News & Updates](#news)**\n * **[Usage](#usage)**\n * **[Example](#example)**\n * **[API](#api)**\n\n<a name="news"></a>\n## News & Updates\n\n### Dec-2013: NanCString and NanRawString\n\nTwo new functions have been introduced to replace the functionality that\'s been provided by `NanFromV8String` until now. NanCString has sensible defaults so it\'s super easy to fetch a null-terminated c-style string out of a `v8::String`. `NanFromV8String` is still around and has defaults that allow you to pass a single handle to fetch a `char*` while `NanRawString` requires a little more attention to arguments.\n\n### Nov-2013: Node 0.11.9+ breaking V8 change\n\nThe version of V8 that\'s shipping with Node 0.11.9+ has changed the signature for new `Local`s to: `v8::Local<T>::New(isolate, value)`, i.e. introducing the `isolate` argument and therefore breaking all new `Local` declarations for previous versions. NAN 0.6+ now includes a `NanNewLocal<T>(value)` that can be used in place to work around this incompatibility and maintain compatibility with 0.8->0.11.9+ (minus a few early 0.11 releases).\n\nFor example, if you wanted to return a `null` on a callback you will have to change the argument from `v8::Local<v8::Value>::New(v8::Null())` to `NanNewLocal<v8::Value>(v8::Null())`.\n\n### Nov-2013: Change to binding.gyp `"include_dirs"` for NAN\n\nInclusion of NAN in a project\'s binding.gyp is now greatly simplified. You can now just use `"<!(node -e \\"require(\'nan\')\\")"` in your `"include_dirs"`, see example below (note Windows needs the quoting around `require` to be just right: `"require(\'nan\')"` with appropriate `\\` escaping).\n\n<a name="usage"></a>\n## Usage\n\nSimply add **NAN** as a dependency in the *package.json* of your Node addon:\n\n``` bash\n$ npm install --save nan\n```\n\nPull in the path to **NAN** in your *binding.gyp* so that you can use `#include "nan.h"` in your *.cpp* files:\n\n``` python\n"include_dirs" : [\n "<!(node -e \\"require(\'nan\')\\")"\n]\n```\n\nThis works like a `-I<path-to-NAN>` when compiling your addon.\n\n<a name="example"></a>\n## Example\n\nSee **[LevelDOWN](https://github.com/rvagg/node-leveldown/pull/48)** for a full example of **NAN** in use.\n\nFor a simpler example, see the **[async pi estimation example](https://github.com/rvagg/nan/tree/master/examples/async_pi_estimate)** in the examples directory for full code and an explanation of what this Monte Carlo Pi estimation example does. Below are just some parts of the full example that illustrate the use of **NAN**.\n\nCompare to the current 0.10 version of this example, found in the [node-addon-examples](https://github.com/rvagg/node-addon-examples/tree/master/9_async_work) repository and also a 0.11 version of the same found [here](https://github.com/kkoopa/node-addon-examples/tree/5c01f58fc993377a567812597e54a83af69686d7/9_async_work).\n\nNote that there is no embedded version sniffing going on here and also the async work is made much simpler, see below for details on the `NanAsyncWorker` class.\n\n```c++\n// addon.cc\n#include <node.h>\n#include "nan.h"\n// ...\n\nusing namespace v8;\n\nvoid InitAll(Handle<Object> exports) {\n exports->Set(NanSymbol("calculateSync"),\n FunctionTemplate::New(CalculateSync)->GetFunction());\n\n exports->Set(NanSymbol("calculateAsync"),\n FunctionTemplate::New(CalculateAsync)->GetFunction());\n}\n\nNODE_MODULE(addon, InitAll)\n```\n\n```c++\n// sync.h\n#include <node.h>\n#include "nan.h"\n\nNAN_METHOD(CalculateSync);\n```\n\n```c++\n// sync.cc\n#include <node.h>\n#include "nan.h"\n#include "sync.h"\n// ...\n\nusing namespace v8;\n\n// Simple synchronous access to the `Estimate()` function\nNAN_METHOD(CalculateSync) {\n NanScope();\n\n // expect a number as the first argument\n int points = args[0]->Uint32Value();\n double est = Estimate(points);\n\n NanReturnValue(Number::New(est));\n}\n```\n\n```c++\n// async.cc\n#include <node.h>\n#include "nan.h"\n#include "async.h"\n\n// ...\n\nusing namespace v8;\n\nclass PiWorker : public NanAsyncWorker {\n public:\n PiWorker(NanCallback *callback, int points)\n : NanAsyncWorker(callback), points(points) {}\n ~PiWorker() {}\n\n // Executed inside the worker-thread.\n // It is not safe to access V8, or V8 data structures\n // here, so everything we need for input and output\n // should go on `this`.\n void Execute () {\n estimate = Estimate(points);\n }\n\n // Executed when the async work is complete\n // this function will be run inside the main event loop\n // so it is safe to use V8 again\n void HandleOKCallback () {\n NanScope();\n\n Local<Value> argv[] = {\n Local<Value>::New(Null())\n , Number::New(estimate)\n };\n\n callback->Call(2, argv);\n };\n\n private:\n int points;\n double estimate;\n};\n\n// Asynchronous access to the `Estimate()` function\nNAN_METHOD(CalculateAsync) {\n NanScope();\n\n int points = args[0]->Uint32Value();\n NanCallback *callback = new NanCallback(args[1].As<Function>());\n\n NanAsyncQueueWorker(new PiWorker(callback, points));\n NanReturnUndefined();\n}\n```\n\n<a name="api"></a>\n## API\n\n * <a href="#api_nan_method"><b><code>NAN_METHOD</code></b></a>\n * <a href="#api_nan_getter"><b><code>NAN_GETTER</code></b></a>\n * <a href="#api_nan_setter"><b><code>NAN_SETTER</code></b></a>\n * <a href="#api_nan_property_getter"><b><code>NAN_PROPERTY_GETTER</code></b></a>\n * <a href="#api_nan_property_setter"><b><code>NAN_PROPERTY_SETTER</code></b></a>\n * <a href="#api_nan_property_enumerator"><b><code>NAN_PROPERTY_ENUMERATOR</code></b></a>\n * <a href="#api_nan_property_deleter"><b><code>NAN_PROPERTY_DELETER</code></b></a>\n * <a href="#api_nan_property_query"><b><code>NAN_PROPERTY_QUERY</code></b></a>\n * <a href="#api_nan_index_getter"><b><code>NAN_INDEX_GETTER</code></b></a>\n * <a href="#api_nan_index_setter"><b><code>NAN_INDEX_SETTER</code></b></a>\n * <a href="#api_nan_index_enumerator"><b><code>NAN_INDEX_ENUMERATOR</code></b></a>\n * <a href="#api_nan_index_deleter"><b><code>NAN_INDEX_DELETER</code></b></a>\n * <a href="#api_nan_index_query"><b><code>NAN_INDEX_QUERY</code></b></a>\n * <a href="#api_nan_weak_callback"><b><code>NAN_WEAK_CALLBACK</code></b></a>\n * <a href="#api_nan_deprecated"><b><code>NAN_DEPRECATED</code></b></a>\n * <a href="#api_nan_inline"><b><code>NAN_INLINE</code></b></a> \n * <a href="#api_nan_new_local"><b><code>NanNewLocal</code></b></a>\n * <a href="#api_nan_return_value"><b><code>NanReturnValue</code></b></a>\n * <a href="#api_nan_return_undefined"><b><code>NanReturnUndefined</code></b></a>\n * <a href="#api_nan_return_null"><b><code>NanReturnNull</code></b></a>\n * <a href="#api_nan_return_empty_string"><b><code>NanReturnEmptyString</code></b></a>\n * <a href="#api_nan_scope"><b><code>NanScope</code></b></a>\n * <a href="#api_nan_locker"><b><code>NanLocker</code></b></a>\n * <a href="#api_nan_unlocker"><b><code>NanUnlocker</code></b></a>\n * <a href="#api_nan_get_internal_field_pointer"><b><code>NanGetInternalFieldPointer</code></b></a>\n * <a href="#api_nan_set_internal_field_pointer"><b><code>NanSetInternalFieldPointer</code></b></a>\n * <a href="#api_nan_object_wrap_handle"><b><code>NanObjectWrapHandle</code></b></a>\n * <a href="#api_nan_make_weak"><b><code>NanMakeWeak</code></b></a>\n * <a href="#api_nan_symbol"><b><code>NanSymbol</code></b></a>\n * <a href="#api_nan_get_pointer_safe"><b><code>NanGetPointerSafe</code></b></a>\n * <a href="#api_nan_set_pointer_safe"><b><code>NanSetPointerSafe</code></b></a>\n * <a href="#api_nan_raw_string"><b><code>NanRawString</code></b></a>\n * <a href="#api_nan_c_string"><b><code>NanCString</code></b></a>\n * <a href="#api_nan_from_v8_string"><b><code>NanFromV8String</code></b></a>\n * <a href="#api_nan_boolean_option_value"><b><code>NanBooleanOptionValue</code></b></a>\n * <a href="#api_nan_uint32_option_value"><b><code>NanUInt32OptionValue</code></b></a>\n * <a href="#api_nan_error"><b><code>NanError</code></b>, <b><code>NanTypeError</code></b>, <b><code>NanRangeError</code></b></a>\n * <a href="#api_nan_throw_error"><b><code>NanThrowError</code></b>, <b><code>NanThrowTypeError</code></b>, <b><code>NanThrowRangeError</code></b>, <b><code>NanThrowError(Handle<Value>)</code></b>, <b><code>NanThrowError(Handle<Value>, int)</code></b></a>\n * <a href="#api_nan_new_buffer_handle"><b><code>NanNewBufferHandle(char *, size_t, FreeCallback, void *)</code></b>, <b><code>NanNewBufferHandle(char *, uint32_t)</code></b>, <b><code>NanNewBufferHandle(uint32_t)</code></b></a>\n * <a href="#api_nan_buffer_use"><b><code>NanBufferUse(char *, uint32_t)</code></b></a>\n * <a href="#api_nan_new_context_handle"><b><code>NanNewContextHandle</code></b></a>\n * <a href="#api_nan_has_instance"><b><code>NanHasInstance</code></b></a>\n * <a href="#api_nan_persistent_to_local"><b><code>NanPersistentToLocal</code></b></a>\n * <a href="#api_nan_dispose"><b><code>NanDispose</code></b></a>\n * <a href="#api_nan_assign_persistent"><b><code>NanAssignPersistent</code></b></a>\n * <a href="#api_nan_init_persistent"><b><code>NanInitPersistent</code></b></a>\n * <a href="#api_nan_callback"><b><code>NanCallback</code></b></a>\n * <a href="#api_nan_async_worker"><b><code>NanAsyncWorker</code></b></a>\n * <a href="#api_nan_async_queue_worker"><b><code>NanAsyncQueueWorker</code></b></a>\n\n<a name="api_nan_method"></a>\n### NAN_METHOD(methodname)\n\nUse `NAN_METHOD` to define your V8 accessible methods:\n\n```c++\n// .h:\nclass Foo : public node::ObjectWrap {\n ...\n\n static NAN_METHOD(Bar);\n static NAN_METHOD(Baz);\n}\n\n\n// .cc:\nNAN_METHOD(Foo::Bar) {\n ...\n}\n\nNAN_METHOD(Foo::Baz) {\n ...\n}\n```\n\nThe reason for this macro is because of the method signature change in 0.11:\n\n```c++\n// 0.10 and below:\nHandle<Value> name(const Arguments& args)\n\n// 0.11 and above\nvoid name(const FunctionCallbackInfo<Value>& args)\n```\n\nThe introduction of `FunctionCallbackInfo` brings additional complications:\n\n<a name="api_nan_getter"></a>\n### NAN_GETTER(methodname)\n\nUse `NAN_GETTER` to declare your V8 accessible getters. You get a `Local<String>` `property` and an appropriately typed `args` object that can act like the `args` argument to a `NAN_METHOD` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_GETTER`.\n\n<a name="api_nan_setter"></a>\n### NAN_SETTER(methodname)\n\nUse `NAN_SETTER` to declare your V8 accessible setters. Same as `NAN_GETTER` but you also get a `Local<Value>` `value` object to work with.\n\n<a name="api_nan_property_getter"></a>\n### NAN_PROPERTY_GETTER(cbname)\nUse `NAN_PROPERTY_GETTER` to declare your V8 accessible property getters. You get a `Local<String>` `property` and an appropriately typed `args` object that can act similar to the `args` argument to a `NAN_METHOD` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_PROPERTY_GETTER`.\n\n<a name="api_nan_property_setter"></a>\n### NAN_PROPERTY_SETTER(cbname)\nUse `NAN_PROPERTY_SETTER` to declare your V8 accessible property setters. Same as `NAN_PROPERTY_GETTER` but you also get a `Local<Value>` `value` object to work with.\n\n<a name="api_nan_property_enumerator"></a>\n### NAN_PROPERTY_ENUMERATOR(cbname)\nUse `NAN_PROPERTY_ENUMERATOR` to declare your V8 accessible property enumerators. You get an appropriately typed `args` object like the `args` argument to a `NAN_PROPERTY_GETTER` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_PROPERTY_ENUMERATOR`.\n\n<a name="api_nan_property_deleter"></a>\n### NAN_PROPERTY_DELETER(cbname)\nUse `NAN_PROPERTY_DELETER` to declare your V8 accessible property deleters. Same as `NAN_PROPERTY_GETTER`.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_PROPERTY_DELETER`.\n\n<a name="api_nan_property_query"></a>\n### NAN_PROPERTY_QUERY(cbname)\nUse `NAN_PROPERTY_QUERY` to declare your V8 accessible property queries. Same as `NAN_PROPERTY_GETTER`.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_PROPERTY_QUERY`.\n\n<a name="api_nan_index_getter"></a>\n### NAN_INDEX_GETTER(cbname)\nUse `NAN_INDEX_GETTER` to declare your V8 accessible index getters. You get a `uint32_t` `index` and an appropriately typed `args` object that can act similar to the `args` argument to a `NAN_METHOD` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_INDEX_GETTER`.\n\n<a name="api_nan_index_setter"></a>\n### NAN_INDEX_SETTER(cbname)\nUse `NAN_INDEX_SETTER` to declare your V8 accessible index setters. Same as `NAN_INDEX_GETTER` but you also get a `Local<Value>` `value` object to work with.\n\n<a name="api_nan_index_enumerator"></a>\n### NAN_INDEX_ENUMERATOR(cbname)\nUse `NAN_INDEX_ENUMERATOR` to declare your V8 accessible index enumerators. You get an appropriately typed `args` object like the `args` argument to a `NAN_INDEX_GETTER` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_INDEX_ENUMERATOR`.\n\n<a name="api_nan_index_deleter"></a>\n### NAN_INDEX_DELETER(cbname)\nUse `NAN_INDEX_DELETER` to declare your V8 accessible index deleters. Same as `NAN_INDEX_GETTER`.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_INDEX_DELETER`.\n\n<a name="api_nan_index_query"></a>\n### NAN_INDEX_QUERY(cbname)\nUse `NAN_INDEX_QUERY` to declare your V8 accessible index queries. Same as `NAN_INDEX_GETTER`.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_INDEX_QUERY`.\n\n<a name="api_nan_weak_callback"></a>\n### NAN_WEAK_CALLBACK(type, cbname)\n\nUse `NAN_WEAK_CALLBACK` to declare your V8 WeakReference callbacks. There is an object argument accessible through `NAN_WEAK_CALLBACK_OBJECT`. The `type` argument gives the type of the `data` argument, accessible through `NAN_WEAK_CALLBACK_DATA(type)`.\n\n```c++\nstatic NAN_WEAK_CALLBACK(BufferReference*, WeakCheck) {\n if (NAN_WEAK_CALLBACK_DATA(BufferReference*)->noLongerNeeded_) {\n delete NAN_WEAK_CALLBACK_DATA(BufferReference*);\n } else {\n // Still in use, revive, prevent GC\n NanMakeWeak(NAN_WEAK_CALLBACK_OBJECT, NAN_WEAK_CALLBACK_DATA(BufferReference*), &WeakCheck);\n }\n}\n```\n\n<a name="api_nan_deprecated"></a>\n### NAN_DEPRECATED(declarator)\nDeclares a function as deprecated. Identical to `V8_DEPRECATED`.\n\n```c++\nstatic NAN_DEPRECATED(NAN_METHOD(foo)) {\n ...\n}\n```\n\n<a name="api_nan_inline"></a>\n### NAN_INLINE(declarator)\nInlines a function. Identical to `V8_INLINE`.\n\n```c++\nstatic NAN_INLINE(int foo(int bar)) {\n ...\n}\n```\n\n<a name="api_nan_new_local"></a>\n### NanNewLocal&lt;T&gt;(Handle&lt;Value&gt;)\n\nUse `NanNewLocal` in place of `v8::Local<T>::New(...)` as this function\nrequires an `isolate` argument in recent versions of V8 but not in older versions.\n\n```c++\nNanNewLocal<v8::Value>(v8::Null())\n```\n\n<a name="api_nan_return_value"></a>\n### NanReturnValue(Handle&lt;Value&gt;)\n\nUse `NanReturnValue` when you want to return a value from your V8 accessible method:\n\n```c++\nNAN_METHOD(Foo::Bar) {\n ...\n\n NanReturnValue(String::New("FooBar!"));\n}\n```\n\nNo `return` statement required.\n\n<a name="api_nan_return_undefined"></a>\n### NanReturnUndefined()\n\nUse `NanReturnUndefined` when you don\'t want to return anything from your V8 accessible method:\n\n```c++\nNAN_METHOD(Foo::Baz) {\n ...\n\n NanReturnUndefined();\n}\n```\n\n<a name="api_nan_return_null"></a>\n### NanReturnNull()\n\nUse `NanReturnNull` when you want to return `Null` from your V8 accessible method:\n\n```c++\nNAN_METHOD(Foo::Baz) {\n ...\n\n NanReturnNull();\n}\n```\n\n<a name="api_nan_return_empty_string"></a>\n### NanReturnEmptyString()\n\nUse `NanReturnEmptyString` when you want to return an empty `String` from your V8 accessible method:\n\n```c++\nNAN_METHOD(Foo::Baz) {\n ...\n\n NanReturnEmptyString();\n}\n```\n\n<a name="api_nan_scope"></a>\n### NanScope()\n\nThe introduction of `isolate` references for many V8 calls in Node 0.11 makes `NanScope()` necessary, use it in place of `HandleScope scope`:\n\n```c++\nNAN_METHOD(Foo::Bar) {\n NanScope();\n\n NanReturnValue(String::New("FooBar!"));\n}\n```\n\n<a name="api_nan_locker"></a>\n### NanLocker()\n\nThe introduction of `isolate` references for many V8 calls in Node 0.11 makes `NanLocker()` necessary, use it in place of `Locker locker`:\n\n```c++\nNAN_METHOD(Foo::Bar) {\n NanLocker();\n ...\n NanUnlocker();\n}\n```\n\n<a name="api_nan_unlocker"></a>\n### NanUnlocker()\n\nThe introduction of `isolate` references for many V8 calls in Node 0.11 makes `NanUnlocker()` necessary, use it in place of `Unlocker unlocker`:\n\n```c++\nNAN_METHOD(Foo::Bar) {\n NanLocker();\n ...\n NanUnlocker();\n}\n```\n\n<a name="api_nan_get_internal_field_pointer"></a>\n### void * NanGetInternalFieldPointer(Handle&lt;Object&gt;, int)\n\nGets a pointer to the internal field with at `index` from a V8 `Object` handle.\n\n```c++\nLocal<Object> obj;\n...\nNanGetInternalFieldPointer(obj, 0);\n```\n<a name="api_nan_set_internal_field_pointer"></a>\n### void NanSetInternalFieldPointer(Handle&lt;Object&gt;, int, void *)\n\nSets the value of the internal field at `index` on a V8 `Object` handle.\n\n```c++\nstatic Persistent<Function> dataWrapperCtor;\n...\nLocal<Object> wrapper = NanPersistentToLocal(dataWrapperCtor)->NewInstance();\nNanSetInternalFieldPointer(wrapper, 0, this);\n```\n\n<a name="api_nan_object_wrap_handle"></a>\n### Local&lt;Object&gt; NanObjectWrapHandle(Object)\n\nWhen you want to fetch the V8 object handle from a native object you\'ve wrapped with Node\'s `ObjectWrap`, you should use `NanObjectWrapHandle`:\n\n```c++\nNanObjectWrapHandle(iterator)->Get(String::NewSymbol("end"))\n```\n\n<a name="api_nan_make_weak"></a>\n### NanMakeWeak(Persistent&lt;T&gt;, parameter, callback)\n\nMake a persistent reference weak.\n\n<a name="api_nan_symbol"></a>\n### String NanSymbol(char *)\n\nThis isn\'t strictly about compatibility, it\'s just an easier way to create string symbol objects (i.e. `String::NewSymbol(x)`), for getting and setting object properties, or names of objects.\n\n```c++\nbool foo = false;\nif (obj->Has(NanSymbol("foo")))\n foo = optionsObj->Get(NanSymbol("foo"))->BooleanValue()\n```\n\n<a name="api_nan_get_pointer_safe"></a>\n### Type NanGetPointerSafe(Type *[, Type])\n\nA helper for getting values from optional pointers. If the pointer is `NULL`, the function returns the optional default value, which defaults to `0`. Otherwise, the function returns the value the pointer points to.\n\n```c++\nchar *plugh(uint32_t *optional) {\n char res[] = "xyzzy";\n uint32_t param = NanGetPointerSafe<uint32_t>(optional, 0x1337);\n switch (param) {\n ...\n }\n NanSetPointerSafe<uint32_t>(optional, 0xDEADBEEF);\n} \n```\n\n<a name="api_nan_set_pointer_safe"></a>\n### bool NanSetPointerSafe(Type *, Type)\n\nA helper for setting optional argument pointers. If the pointer is `NULL`, the function simply return `false`. Otherwise, the value is assigned to the variable the pointer points to.\n\n```c++\nconst char *plugh(size_t *outputsize) {\n char res[] = "xyzzy";\n if !(NanSetPointerSafe<size_t>(outputsize, strlen(res) + 1)) {\n ...\n }\n\n ...\n}\n```\n\n<a name="api_nan_raw_string"></a>\n### void* NanRawString(Handle&lt;Value&gt;, enum Nan::Encoding, size_t *, void *, size_t, int)\n\nWhen you want to convert a V8 `String` to a `char*` buffer, use `NanRawString`. You have to supply an encoding as well as a pointer to a variable that will be assigned the number of bytes in the returned string. It is also possible to supply a buffer and its length to the function in order not to have a new buffer allocated. The final argument allows setting `String::WriteOptions`.\nJust remember that you\'ll end up with an object that you\'ll need to `delete[]` at some point unless you supply your own buffer:\n\n```c++\nsize_t count;\nvoid* decoded = NanRawString(args[1], Nan::BASE64, &count, NULL, 0, String::HINT_MANY_WRITES_EXPECTED);\nchar param_copy[count];\nmemcpy(param_copy, decoded, count);\ndelete[] decoded;\n```\n\n<a name="api_nan_c_string"></a>\n### char* NanCString(Handle&lt;Value&gt;, size_t *[, char *, size_t, int])\n\nWhen you want to convert a V8 `String` to a null-terminated C `char*` use `NanCString`. The resulting `char*` will be UTF-8-encoded, and you need to supply a pointer to a variable that will be assigned the number of bytes in the returned string. It is also possible to supply a buffer and its length to the function in order not to have a new buffer allocated. The final argument allows optionally setting `String::WriteOptions`, which default to `v8::String::NO_OPTIONS`.\nJust remember that you\'ll end up with an object that you\'ll need to `delete[]` at some point unless you supply your own buffer:\n\n```c++\nsize_t count;\nchar* name = NanCString(args[0], &count);\n```\n\n<a name="api_nan_from_v8_string"></a>\n### char* NanFromV8String(Handle&lt;Value&gt;[, enum Nan::Encoding, size_t *, char *, size_t, int])\n\nA convenience function that uses `NanRawString()` to convert a V8 `String` to a `char*`. Defaults to UTF8 encoding and no null-termination.\n\n```c++\nsize_t count;\nchar* name = NanFromV8String(args[0]);\n```\n\n<a name="api_nan_boolean_option_value"></a>\n### bool NanBooleanOptionValue(Handle&lt;Value&gt;, Handle&lt;String&gt;[, bool])\n\nWhen you have an "options" object that you need to fetch properties from, boolean options can be fetched with this pair. They check first if the object exists (`IsEmpty`), then if the object has the given property (`Has`) then they get and convert/coerce the property to a `bool`.\n\nThe optional last parameter is the *default* value, which is `false` if left off:\n\n```c++\n// `foo` is false unless the user supplies a truthy value for it\nbool foo = NanBooleanOptionValue(optionsObj, NanSymbol("foo"));\n// `bar` is true unless the user supplies a falsy value for it\nbool bar = NanBooleanOptionValueDefTrue(optionsObj, NanSymbol("bar"), true);\n```\n\n<a name="api_nan_uint32_option_value"></a>\n### uint32_t NanUInt32OptionValue(Handle&lt;Value&gt;, Handle&lt;String&gt;, uint32_t)\n\nSimilar to `NanBooleanOptionValue`, use `NanUInt32OptionValue` to fetch an integer option from your options object. Can be any kind of JavaScript `Number` and it will be coerced to an unsigned 32-bit integer.\n\nRequires all 3 arguments as a default is not optional:\n\n```c++\nuint32_t count = NanUInt32OptionValue(optionsObj, NanSymbol("count"), 1024);\n```\n\n<a name="api_nan_error"></a>\n### NanError(message), NanTypeError(message), NanRangeError(message)\n\nFor making `Error`, `TypeError` and `RangeError` objects.\n\n```c++\nLocal<Value> res = NanError("you must supply a callback argument");\n```\n\n<a name="api_nan_throw_error"></a>\n### NanThrowError(message), NanThrowTypeError(message), NanThrowRangeError(message), NanThrowError(Local&lt;Value&gt;), NanThrowError(Local&lt;Value&gt;, int)\n\nFor throwing `Error`, `TypeError` and `RangeError` objects. You should `return` this call:\n\n```c++\nreturn NanThrowError("you must supply a callback argument");\n```\n\nCan also handle any custom object you may want to throw. If used with the error code argument, it will add the supplied error code to the error object as a property called `code`.\n\n<a name="api_nan_new_buffer_handle"></a>\n### Local&lt;Object&gt; NanNewBufferHandle(char *, uint32_t), Local&lt;Object&gt; NanNewBufferHandle(uint32_t)\n\nThe `Buffer` API has changed a little in Node 0.11, this helper provides consistent access to `Buffer` creation:\n\n```c++\nNanNewBufferHandle((char*)value.data(), value.size());\n```\n\nCan also be used to initialize a `Buffer` with just a `size` argument.\n\nCan also be supplied with a `NAN_WEAK_CALLBACK` and a hint for the garbage collector, when dealing with weak references.\n\n<a name="api_nan_buffer_use"></a>\n### Local&lt;Object&gt; NanBufferUse(char*, uint32_t)\n\n`Buffer::New(char*, uint32_t)` prior to 0.11 would make a copy of the data.\nWhile it was possible to get around this, it required a shim by passing a\ncallback. So the new API `Buffer::Use(char*, uint32_t)` was introduced to remove\nneeding to use this shim.\n\n`NanBufferUse` uses the `char*` passed as the backing data, and will free the\nmemory automatically when the weak callback is called. Keep this in mind, as\ncareless use can lead to "double free or corruption" and other cryptic failures.\n\n<a name="api_nan_has_instance"></a>\n### bool NanHasInstance(Persistent&lt;FunctionTemplate&gt;&, Handle&lt;Value&gt;)\n\nCan be used to check the type of an object to determine it is of a particular class you have already defined and have a `Persistent<FunctionTemplate>` handle for.\n\n<a name="api_nan_persistent_to_local"></a>\n### Local&lt;Type&gt; NanPersistentToLocal(Persistent&lt;Type&gt;&)\n\nAside from `FunctionCallbackInfo`, the biggest and most painful change to V8 in Node 0.11 is the many restrictions now placed on `Persistent` handles. They are difficult to assign and difficult to fetch the original value out of.\n\nUse `NanPersistentToLocal` to convert a `Persistent` handle back to a `Local` handle.\n\n```c++\nLocal<Object> handle = NanPersistentToLocal(persistentHandle);\n```\n\n<a href="#api_nan_new_context_handle">\n### Local&lt;Context&gt; NanNewContextHandle([ExtensionConfiguration*, Handle&lt;ObjectTemplate&gt;, Handle&lt;Value&gt;])\nCreates a new `Local<Context>` handle.\n\n```c++\nLocal<FunctionTemplate> ftmpl = FunctionTemplate::New();\nLocal<ObjectTemplate> otmpl = ftmpl->InstanceTemplate();\nLocal<Context> ctx = NanNewContextHandle(NULL, otmpl);\n```\n\n<a name="api_nan_dispose"></a>\n### void NanDispose(Persistent&lt;T&gt; &)\n\nUse `NanDispose` to dispose a `Persistent` handle.\n\n```c++\nNanDispose(persistentHandle);\n```\n\n<a name="api_nan_assign_persistent"></a>\n### NanAssignPersistent(type, handle, object)\n\nUse `NanAssignPersistent` to assign a non-`Persistent` handle to a `Persistent` one. You can no longer just declare a `Persistent` handle and assign directly to it later, you have to `Reset` it in Node 0.11, so this makes it easier.\n\nIn general it is now better to place anything you want to protect from V8\'s garbage collector as properties of a generic `Object` and then assign that to a `Persistent`. This works in older versions of Node also if you use `NanAssignPersistent`:\n\n```c++\nPersistent<Object> persistentHandle;\n\n...\n\nLocal<Object> obj = Object::New();\nobj->Set(NanSymbol("key"), keyHandle); // where keyHandle might be a Local<String>\nNanAssignPersistent(Object, persistentHandle, obj)\n```\n\n<a name="api_nan_init_persistent"></a>\n### NanInitPersistent(type, name, object)\n\nUser `NanInitPersistent` to declare and initialize a new `Persistent` with the supplied object. The assignment operator for `Persistent` is no longer public in Node 0.11, so this macro makes it easier to declare and initializing a new `Persistent`. See <a href="#api_nan_assign_persistent"><b><code>NanAssignPersistent</code></b></a> for more information.\n\n```c++\nLocal<Object> obj = Object::New();\nobj->Set(NanSymbol("key"), keyHandle); // where keyHandle might be a Local<String>\nNanInitPersistent(Object, persistentHandle, obj);\n```\n\n<a name="api_nan_callback"></a>\n### NanCallback\n\nBecause of the difficulties imposed by the changes to `Persistent` handles in V8 in Node 0.11, creating `Persistent` versions of your `Handle<Function>` is annoyingly tricky. `NanCallback` makes it easier by taking your handle, making it persistent until the `NanCallback` is deleted and even providing a handy `Call()` method to fetch and execute the callback `Function`.\n\n```c++\nLocal<Function> callbackHandle = args[0].As<Function>();\nNanCallback *callback = new NanCallback(callbackHandle);\n// pass `callback` around and it\'s safe from GC until you:\ndelete callback;\n```\n\nYou can execute the callback like so:\n\n```c++\n// no arguments:\ncallback->Call(0, NULL);\n\n// an error argument:\nHandle<Value> argv[] = {\n Exception::Error(String::New("fail!"))\n};\ncallback->Call(1, argv);\n\n// a success argument:\nHandle<Value> argv[] = {\n Null(),\n String::New("w00t!")\n};\ncallback->Call(2, argv);\n```\n\n`NanCallback` also has a `Local<Function> GetCallback()` method that you can use\nto fetch a local handle to the underlying callback function, as well as a\n`void SetFunction(Handle<Function>)` for setting the callback on the\n`NanCallback`. Additionally a generic constructor is available for using\n`NanCallback` without performing heap allocations.\n\n<a name="api_nan_async_worker"></a>\n### NanAsyncWorker\n\n`NanAsyncWorker` is an abstract class that you can subclass to have much of the annoying async queuing and handling taken care of for you. It can even store arbitrary V8 objects for you and have them persist while the async work is in progress.\n\nSee a rough outline of the implementation:\n\n```c++\nclass NanAsyncWorker {\npublic:\n NanAsyncWorker (NanCallback *callback);\n\n // Clean up persistent handles and delete the *callback\n virtual ~NanAsyncWorker ();\n\n // Check the `char *errmsg` property and call HandleOKCallback()\n // or HandleErrorCallback depending on whether it has been set or not\n virtual void WorkComplete ();\n\n // You must implement this to do some async work. If there is an\n // error then allocate `errmsg` to to a message and the callback will\n // be passed that string in an Error object\n virtual void Execute ();\n\n // Save a V8 object in a Persistent handle to protect it from GC\n void SavePersistent(const char *key, Local<Object> &obj);\n\n // Fetch a stored V8 object (don\'t call from within `Execute()`)\n Local<Object> GetFromPersistent(const char *key);\n\nprotected:\n // Set this if there is an error, otherwise it\'s NULL\n const char *errmsg;\n\n // Default implementation calls the callback function with no arguments.\n // Override this to return meaningful data\n virtual void HandleOKCallback ();\n\n // Default implementation calls the callback function with an Error object\n // wrapping the `errmsg` string\n virtual void HandleErrorCallback ();\n};\n```\n\n<a name="api_nan_async_queue_worker"></a>\n### NanAsyncQueueWorker(NanAsyncWorker *)\n\n`NanAsyncQueueWorker` will run a `NanAsyncWorker` asynchronously via libuv. Both the *execute* and *after_work* steps are taken care of for you&mdash;most of the logic for this is embedded in `NanAsyncWorker`.\n\n### Contributors\n\nNAN is only possible due to the excellent work of the following contributors:\n\n<table><tbody>\n<tr><th align="left">Rod Vagg</th><td><a href="https://github.com/rvagg">GitHub/rvagg</a></td><td><a href="http://twitter.com/rvagg">Twitter/@rvagg</a></td></tr>\n<tr><th align="left">Benjamin Byholm</th><td><a href="https://github.com/kkoopa/">GitHub/kkoopa</a></td></tr>\n<tr><th align="left">Trevor Norris</th><td><a href="https://github.com/trevnorris">GitHub/trevnorris</a></td><td><a href="http://twitter.com/trevnorris">Twitter/@trevnorris</a></td></tr>\n<tr><th align="left">Nathan Rajlich</th><td><a href="https://github.com/TooTallNate">GitHub/TooTallNate</a></td><td><a href="http://twitter.com/TooTallNate">Twitter/@TooTallNate</a></td></tr>\n<tr><th align="left">Brett Lawson</th><td><a href="https://github.com/brett19">GitHub/brett19</a></td><td><a href="http://twitter.com/brett19x">Twitter/@brett19x</a></td></tr>\n<tr><th align="left">Ben Noordhuis</th><td><a href="https://github.com/bnoordhuis">GitHub/bnoordhuis</a></td><td><a href="http://twitter.com/bnoordhuis">Twitter/@bnoordhuis</a></td></tr>\n</tbody></table>\n\nLicence &amp; copyright\n-----------------------\n\nCopyright (c) 2013 NAN contributors (listed above).\n\nNative Abstractions for Node.js is licensed under an MIT +no-false-attribs license. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details.\n',
5663 silly resolved readmeFilename: 'README.md',
5663 silly resolved bugs: { url: 'https://github.com/rvagg/nan/issues' },
5663 silly resolved homepage: 'https://github.com/rvagg/nan',
5663 silly resolved _id: 'nan@0.7.1',
5663 silly resolved _from: 'nan@~0.7.0' },
5663 silly resolved { name: 'bindings',
5663 silly resolved description: 'Helper module for loading your native module\'s .node file',
5663 silly resolved keywords: [ 'native', 'addon', 'bindings', 'gyp', 'waf', 'c', 'c++' ],
5663 silly resolved version: '1.1.1',
5663 silly resolved author:
5663 silly resolved { name: 'Nathan Rajlich',
5663 silly resolved email: 'nathan@tootallnate.net',
5663 silly resolved url: 'http://tootallnate.net' },
5663 silly resolved repository:
5663 silly resolved { type: 'git',
5663 silly resolved url: 'git://github.com/TooTallNate/node-bindings.git' },
5663 silly resolved main: './bindings.js',
5663 silly resolved readme: 'node-bindings\n=============\n### Helper module for loading your native module\'s .node file\n\nThis is a helper module for authors of Node.js native addon modules.\nIt is basically the "swiss army knife" of `require()`ing your native module\'s\n`.node` file.\n\nThroughout the course of Node\'s native addon history, addons have ended up being\ncompiled in a variety of different places, depending on which build tool and which\nversion of node was used. To make matters worse, now the _gyp_ build tool can\nproduce either a _Release_ or _Debug_ build, each being built into different\nlocations.\n\nThis module checks _all_ the possible locations that a native addon would be built\nat, and returns the first one that loads successfully.\n\n\nInstallation\n------------\n\nInstall with `npm`:\n\n``` bash\n$ npm install bindings\n```\n\nOr add it to the `"dependencies"` section of your _package.json_ file.\n\n\nExample\n-------\n\n`require()`ing the proper bindings file for the current node version, platform\nand architecture is as simple as:\n\n``` js\nvar bindings = require(\'bindings\')(\'binding.node\')\n\n// Use your bindings defined in your C files\nbindings.your_c_function()\n```\n\n\nNice Error Output\n-----------------\n\nWhen the `.node` file could not be loaded, `node-bindings` throws an Error with\na nice error message telling you exactly what was tried. You can also check the\n`err.tries` Array property.\n\n```\nError: Could not load the bindings file. Tried:\n → /Users/nrajlich/ref/build/binding.node\n → /Users/nrajlich/ref/build/Debug/binding.node\n → /Users/nrajlich/ref/build/Release/binding.node\n → /Users/nrajlich/ref/out/Debug/binding.node\n → /Users/nrajlich/ref/Debug/binding.node\n → /Users/nrajlich/ref/out/Release/binding.node\n → /Users/nrajlich/ref/Release/binding.node\n → /Users/nrajlich/ref/build/default/binding.node\n → /Users/nrajlich/ref/compiled/0.8.2/darwin/x64/binding.node\n at bindings (/Users/nrajlich/ref/node_modules/bindings/bindings.js:84:13)\n at Object.<anonymous> (/Users/nrajlich/ref/lib/ref.js:5:47)\n at Module._compile (module.js:449:26)\n at Object.Module._extensions..js (module.js:467:10)\n at Module.load (module.js:356:32)\n at Function.Module._load (module.js:312:12)\n ...\n```\n\n\nLicense\n-------\n\n(The MIT License)\n\nCopyright (c) 2012 Nathan Rajlich &lt;nathan@tootallnate.net&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.\n',
5663 silly resolved readmeFilename: 'README.md',
5663 silly resolved bugs: { url: 'https://github.com/TooTallNate/node-bindings/issues' },
5663 silly resolved homepage: 'https://github.com/TooTallNate/node-bindings',
5663 silly resolved _id: 'bindings@1.1.1',
5663 silly resolved _from: 'bindings@~1.1.1' } ]
5664 info install nan@0.7.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep
5665 info install bindings@1.1.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep
5666 info installOne nan@0.7.1
5667 info installOne bindings@1.1.1
5668 silly resolved [ { name: 'nan',
5668 silly resolved version: '0.7.1',
5668 silly resolved description: 'Native Abstractions for Node.js: C++ header for Node 0.8->0.12 compatibility',
5668 silly resolved main: 'include_dirs.js',
5668 silly resolved repository: { type: 'git', url: 'git://github.com/rvagg/nan.git' },
5668 silly resolved contributors: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
5668 silly resolved license: 'MIT',
5668 silly resolved readme: 'Native Abstractions for Node.js\n===============================\n\n**A header file filled with macro and utility goodness for making add-on development for Node.js easier across versions 0.8, 0.10 and 0.11, and eventually 0.12.**\n\n***Current version: 0.7.1*** *(See [nan.h](https://github.com/rvagg/nan/blob/master/nan.h) for complete ChangeLog)*\n\n[![NPM](https://nodei.co/npm/nan.png?downloads=true)](https://nodei.co/npm/nan/) [![NPM](https://nodei.co/npm-dl/nan.png?months=6)](https://nodei.co/npm/nan/)\n\nThanks to the crazy changes in V8 (and some in Node core), keeping native addons compiling happily across versions, particularly 0.10 to 0.11/0.12, is a minor nightmare. The goal of this project is to store all logic necessary to develop native Node.js addons without having to inspect `NODE_MODULE_VERSION` and get yourself into a macro-tangle.\n\nThis project also contains some helper utilities that make addon development a bit more pleasant.\n\n * **[News & Updates](#news)**\n * **[Usage](#usage)**\n * **[Example](#example)**\n * **[API](#api)**\n\n<a name="news"></a>\n## News & Updates\n\n### Dec-2013: NanCString and NanRawString\n\nTwo new functions have been introduced to replace the functionality that\'s been provided by `NanFromV8String` until now. NanCString has sensible defaults so it\'s super easy to fetch a null-terminated c-style string out of a `v8::String`. `NanFromV8String` is still around and has defaults that allow you to pass a single handle to fetch a `char*` while `NanRawString` requires a little more attention to arguments.\n\n### Nov-2013: Node 0.11.9+ breaking V8 change\n\nThe version of V8 that\'s shipping with Node 0.11.9+ has changed the signature for new `Local`s to: `v8::Local<T>::New(isolate, value)`, i.e. introducing the `isolate` argument and therefore breaking all new `Local` declarations for previous versions. NAN 0.6+ now includes a `NanNewLocal<T>(value)` that can be used in place to work around this incompatibility and maintain compatibility with 0.8->0.11.9+ (minus a few early 0.11 releases).\n\nFor example, if you wanted to return a `null` on a callback you will have to change the argument from `v8::Local<v8::Value>::New(v8::Null())` to `NanNewLocal<v8::Value>(v8::Null())`.\n\n### Nov-2013: Change to binding.gyp `"include_dirs"` for NAN\n\nInclusion of NAN in a project\'s binding.gyp is now greatly simplified. You can now just use `"<!(node -e \\"require(\'nan\')\\")"` in your `"include_dirs"`, see example below (note Windows needs the quoting around `require` to be just right: `"require(\'nan\')"` with appropriate `\\` escaping).\n\n<a name="usage"></a>\n## Usage\n\nSimply add **NAN** as a dependency in the *package.json* of your Node addon:\n\n``` bash\n$ npm install --save nan\n```\n\nPull in the path to **NAN** in your *binding.gyp* so that you can use `#include "nan.h"` in your *.cpp* files:\n\n``` python\n"include_dirs" : [\n "<!(node -e \\"require(\'nan\')\\")"\n]\n```\n\nThis works like a `-I<path-to-NAN>` when compiling your addon.\n\n<a name="example"></a>\n## Example\n\nSee **[LevelDOWN](https://github.com/rvagg/node-leveldown/pull/48)** for a full example of **NAN** in use.\n\nFor a simpler example, see the **[async pi estimation example](https://github.com/rvagg/nan/tree/master/examples/async_pi_estimate)** in the examples directory for full code and an explanation of what this Monte Carlo Pi estimation example does. Below are just some parts of the full example that illustrate the use of **NAN**.\n\nCompare to the current 0.10 version of this example, found in the [node-addon-examples](https://github.com/rvagg/node-addon-examples/tree/master/9_async_work) repository and also a 0.11 version of the same found [here](https://github.com/kkoopa/node-addon-examples/tree/5c01f58fc993377a567812597e54a83af69686d7/9_async_work).\n\nNote that there is no embedded version sniffing going on here and also the async work is made much simpler, see below for details on the `NanAsyncWorker` class.\n\n```c++\n// addon.cc\n#include <node.h>\n#include "nan.h"\n// ...\n\nusing namespace v8;\n\nvoid InitAll(Handle<Object> exports) {\n exports->Set(NanSymbol("calculateSync"),\n FunctionTemplate::New(CalculateSync)->GetFunction());\n\n exports->Set(NanSymbol("calculateAsync"),\n FunctionTemplate::New(CalculateAsync)->GetFunction());\n}\n\nNODE_MODULE(addon, InitAll)\n```\n\n```c++\n// sync.h\n#include <node.h>\n#include "nan.h"\n\nNAN_METHOD(CalculateSync);\n```\n\n```c++\n// sync.cc\n#include <node.h>\n#include "nan.h"\n#include "sync.h"\n// ...\n\nusing namespace v8;\n\n// Simple synchronous access to the `Estimate()` function\nNAN_METHOD(CalculateSync) {\n NanScope();\n\n // expect a number as the first argument\n int points = args[0]->Uint32Value();\n double est = Estimate(points);\n\n NanReturnValue(Number::New(est));\n}\n```\n\n```c++\n// async.cc\n#include <node.h>\n#include "nan.h"\n#include "async.h"\n\n// ...\n\nusing namespace v8;\n\nclass PiWorker : public NanAsyncWorker {\n public:\n PiWorker(NanCallback *callback, int points)\n : NanAsyncWorker(callback), points(points) {}\n ~PiWorker() {}\n\n // Executed inside the worker-thread.\n // It is not safe to access V8, or V8 data structures\n // here, so everything we need for input and output\n // should go on `this`.\n void Execute () {\n estimate = Estimate(points);\n }\n\n // Executed when the async work is complete\n // this function will be run inside the main event loop\n // so it is safe to use V8 again\n void HandleOKCallback () {\n NanScope();\n\n Local<Value> argv[] = {\n Local<Value>::New(Null())\n , Number::New(estimate)\n };\n\n callback->Call(2, argv);\n };\n\n private:\n int points;\n double estimate;\n};\n\n// Asynchronous access to the `Estimate()` function\nNAN_METHOD(CalculateAsync) {\n NanScope();\n\n int points = args[0]->Uint32Value();\n NanCallback *callback = new NanCallback(args[1].As<Function>());\n\n NanAsyncQueueWorker(new PiWorker(callback, points));\n NanReturnUndefined();\n}\n```\n\n<a name="api"></a>\n## API\n\n * <a href="#api_nan_method"><b><code>NAN_METHOD</code></b></a>\n * <a href="#api_nan_getter"><b><code>NAN_GETTER</code></b></a>\n * <a href="#api_nan_setter"><b><code>NAN_SETTER</code></b></a>\n * <a href="#api_nan_property_getter"><b><code>NAN_PROPERTY_GETTER</code></b></a>\n * <a href="#api_nan_property_setter"><b><code>NAN_PROPERTY_SETTER</code></b></a>\n * <a href="#api_nan_property_enumerator"><b><code>NAN_PROPERTY_ENUMERATOR</code></b></a>\n * <a href="#api_nan_property_deleter"><b><code>NAN_PROPERTY_DELETER</code></b></a>\n * <a href="#api_nan_property_query"><b><code>NAN_PROPERTY_QUERY</code></b></a>\n * <a href="#api_nan_index_getter"><b><code>NAN_INDEX_GETTER</code></b></a>\n * <a href="#api_nan_index_setter"><b><code>NAN_INDEX_SETTER</code></b></a>\n * <a href="#api_nan_index_enumerator"><b><code>NAN_INDEX_ENUMERATOR</code></b></a>\n * <a href="#api_nan_index_deleter"><b><code>NAN_INDEX_DELETER</code></b></a>\n * <a href="#api_nan_index_query"><b><code>NAN_INDEX_QUERY</code></b></a>\n * <a href="#api_nan_weak_callback"><b><code>NAN_WEAK_CALLBACK</code></b></a>\n * <a href="#api_nan_deprecated"><b><code>NAN_DEPRECATED</code></b></a>\n * <a href="#api_nan_inline"><b><code>NAN_INLINE</code></b></a> \n * <a href="#api_nan_new_local"><b><code>NanNewLocal</code></b></a>\n * <a href="#api_nan_return_value"><b><code>NanReturnValue</code></b></a>\n * <a href="#api_nan_return_undefined"><b><code>NanReturnUndefined</code></b></a>\n * <a href="#api_nan_return_null"><b><code>NanReturnNull</code></b></a>\n * <a href="#api_nan_return_empty_string"><b><code>NanReturnEmptyString</code></b></a>\n * <a href="#api_nan_scope"><b><code>NanScope</code></b></a>\n * <a href="#api_nan_locker"><b><code>NanLocker</code></b></a>\n * <a href="#api_nan_unlocker"><b><code>NanUnlocker</code></b></a>\n * <a href="#api_nan_get_internal_field_pointer"><b><code>NanGetInternalFieldPointer</code></b></a>\n * <a href="#api_nan_set_internal_field_pointer"><b><code>NanSetInternalFieldPointer</code></b></a>\n * <a href="#api_nan_object_wrap_handle"><b><code>NanObjectWrapHandle</code></b></a>\n * <a href="#api_nan_make_weak"><b><code>NanMakeWeak</code></b></a>\n * <a href="#api_nan_symbol"><b><code>NanSymbol</code></b></a>\n * <a href="#api_nan_get_pointer_safe"><b><code>NanGetPointerSafe</code></b></a>\n * <a href="#api_nan_set_pointer_safe"><b><code>NanSetPointerSafe</code></b></a>\n * <a href="#api_nan_raw_string"><b><code>NanRawString</code></b></a>\n * <a href="#api_nan_c_string"><b><code>NanCString</code></b></a>\n * <a href="#api_nan_from_v8_string"><b><code>NanFromV8String</code></b></a>\n * <a href="#api_nan_boolean_option_value"><b><code>NanBooleanOptionValue</code></b></a>\n * <a href="#api_nan_uint32_option_value"><b><code>NanUInt32OptionValue</code></b></a>\n * <a href="#api_nan_error"><b><code>NanError</code></b>, <b><code>NanTypeError</code></b>, <b><code>NanRangeError</code></b></a>\n * <a href="#api_nan_throw_error"><b><code>NanThrowError</code></b>, <b><code>NanThrowTypeError</code></b>, <b><code>NanThrowRangeError</code></b>, <b><code>NanThrowError(Handle<Value>)</code></b>, <b><code>NanThrowError(Handle<Value>, int)</code></b></a>\n * <a href="#api_nan_new_buffer_handle"><b><code>NanNewBufferHandle(char *, size_t, FreeCallback, void *)</code></b>, <b><code>NanNewBufferHandle(char *, uint32_t)</code></b>, <b><code>NanNewBufferHandle(uint32_t)</code></b></a>\n * <a href="#api_nan_buffer_use"><b><code>NanBufferUse(char *, uint32_t)</code></b></a>\n * <a href="#api_nan_new_context_handle"><b><code>NanNewContextHandle</code></b></a>\n * <a href="#api_nan_has_instance"><b><code>NanHasInstance</code></b></a>\n * <a href="#api_nan_persistent_to_local"><b><code>NanPersistentToLocal</code></b></a>\n * <a href="#api_nan_dispose"><b><code>NanDispose</code></b></a>\n * <a href="#api_nan_assign_persistent"><b><code>NanAssignPersistent</code></b></a>\n * <a href="#api_nan_init_persistent"><b><code>NanInitPersistent</code></b></a>\n * <a href="#api_nan_callback"><b><code>NanCallback</code></b></a>\n * <a href="#api_nan_async_worker"><b><code>NanAsyncWorker</code></b></a>\n * <a href="#api_nan_async_queue_worker"><b><code>NanAsyncQueueWorker</code></b></a>\n\n<a name="api_nan_method"></a>\n### NAN_METHOD(methodname)\n\nUse `NAN_METHOD` to define your V8 accessible methods:\n\n```c++\n// .h:\nclass Foo : public node::ObjectWrap {\n ...\n\n static NAN_METHOD(Bar);\n static NAN_METHOD(Baz);\n}\n\n\n// .cc:\nNAN_METHOD(Foo::Bar) {\n ...\n}\n\nNAN_METHOD(Foo::Baz) {\n ...\n}\n```\n\nThe reason for this macro is because of the method signature change in 0.11:\n\n```c++\n// 0.10 and below:\nHandle<Value> name(const Arguments& args)\n\n// 0.11 and above\nvoid name(const FunctionCallbackInfo<Value>& args)\n```\n\nThe introduction of `FunctionCallbackInfo` brings additional complications:\n\n<a name="api_nan_getter"></a>\n### NAN_GETTER(methodname)\n\nUse `NAN_GETTER` to declare your V8 accessible getters. You get a `Local<String>` `property` and an appropriately typed `args` object that can act like the `args` argument to a `NAN_METHOD` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_GETTER`.\n\n<a name="api_nan_setter"></a>\n### NAN_SETTER(methodname)\n\nUse `NAN_SETTER` to declare your V8 accessible setters. Same as `NAN_GETTER` but you also get a `Local<Value>` `value` object to work with.\n\n<a name="api_nan_property_getter"></a>\n### NAN_PROPERTY_GETTER(cbname)\nUse `NAN_PROPERTY_GETTER` to declare your V8 accessible property getters. You get a `Local<String>` `property` and an appropriately typed `args` object that can act similar to the `args` argument to a `NAN_METHOD` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_PROPERTY_GETTER`.\n\n<a name="api_nan_property_setter"></a>\n### NAN_PROPERTY_SETTER(cbname)\nUse `NAN_PROPERTY_SETTER` to declare your V8 accessible property setters. Same as `NAN_PROPERTY_GETTER` but you also get a `Local<Value>` `value` object to work with.\n\n<a name="api_nan_property_enumerator"></a>\n### NAN_PROPERTY_ENUMERATOR(cbname)\nUse `NAN_PROPERTY_ENUMERATOR` to declare your V8 accessible property enumerators. You get an appropriately typed `args` object like the `args` argument to a `NAN_PROPERTY_GETTER` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_PROPERTY_ENUMERATOR`.\n\n<a name="api_nan_property_deleter"></a>\n### NAN_PROPERTY_DELETER(cbname)\nUse `NAN_PROPERTY_DELETER` to declare your V8 accessible property deleters. Same as `NAN_PROPERTY_GETTER`.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_PROPERTY_DELETER`.\n\n<a name="api_nan_property_query"></a>\n### NAN_PROPERTY_QUERY(cbname)\nUse `NAN_PROPERTY_QUERY` to declare your V8 accessible property queries. Same as `NAN_PROPERTY_GETTER`.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_PROPERTY_QUERY`.\n\n<a name="api_nan_index_getter"></a>\n### NAN_INDEX_GETTER(cbname)\nUse `NAN_INDEX_GETTER` to declare your V8 accessible index getters. You get a `uint32_t` `index` and an appropriately typed `args` object that can act similar to the `args` argument to a `NAN_METHOD` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_INDEX_GETTER`.\n\n<a name="api_nan_index_setter"></a>\n### NAN_INDEX_SETTER(cbname)\nUse `NAN_INDEX_SETTER` to declare your V8 accessible index setters. Same as `NAN_INDEX_GETTER` but you also get a `Local<Value>` `value` object to work with.\n\n<a name="api_nan_index_enumerator"></a>\n### NAN_INDEX_ENUMERATOR(cbname)\nUse `NAN_INDEX_ENUMERATOR` to declare your V8 accessible index enumerators. You get an appropriately typed `args` object like the `args` argument to a `NAN_INDEX_GETTER` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_INDEX_ENUMERATOR`.\n\n<a name="api_nan_index_deleter"></a>\n### NAN_INDEX_DELETER(cbname)\nUse `NAN_INDEX_DELETER` to declare your V8 accessible index deleters. Same as `NAN_INDEX_GETTER`.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_INDEX_DELETER`.\n\n<a name="api_nan_index_query"></a>\n### NAN_INDEX_QUERY(cbname)\nUse `NAN_INDEX_QUERY` to declare your V8 accessible index queries. Same as `NAN_INDEX_GETTER`.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_INDEX_QUERY`.\n\n<a name="api_nan_weak_callback"></a>\n### NAN_WEAK_CALLBACK(type, cbname)\n\nUse `NAN_WEAK_CALLBACK` to declare your V8 WeakReference callbacks. There is an object argument accessible through `NAN_WEAK_CALLBACK_OBJECT`. The `type` argument gives the type of the `data` argument, accessible through `NAN_WEAK_CALLBACK_DATA(type)`.\n\n```c++\nstatic NAN_WEAK_CALLBACK(BufferReference*, WeakCheck) {\n if (NAN_WEAK_CALLBACK_DATA(BufferReference*)->noLongerNeeded_) {\n delete NAN_WEAK_CALLBACK_DATA(BufferReference*);\n } else {\n // Still in use, revive, prevent GC\n NanMakeWeak(NAN_WEAK_CALLBACK_OBJECT, NAN_WEAK_CALLBACK_DATA(BufferReference*), &WeakCheck);\n }\n}\n```\n\n<a name="api_nan_deprecated"></a>\n### NAN_DEPRECATED(declarator)\nDeclares a function as deprecated. Identical to `V8_DEPRECATED`.\n\n```c++\nstatic NAN_DEPRECATED(NAN_METHOD(foo)) {\n ...\n}\n```\n\n<a name="api_nan_inline"></a>\n### NAN_INLINE(declarator)\nInlines a function. Identical to `V8_INLINE`.\n\n```c++\nstatic NAN_INLINE(int foo(int bar)) {\n ...\n}\n```\n\n<a name="api_nan_new_local"></a>\n### NanNewLocal&lt;T&gt;(Handle&lt;Value&gt;)\n\nUse `NanNewLocal` in place of `v8::Local<T>::New(...)` as this function\nrequires an `isolate` argument in recent versions of V8 but not in older versions.\n\n```c++\nNanNewLocal<v8::Value>(v8::Null())\n```\n\n<a name="api_nan_return_value"></a>\n### NanReturnValue(Handle&lt;Value&gt;)\n\nUse `NanReturnValue` when you want to return a value from your V8 accessible method:\n\n```c++\nNAN_METHOD(Foo::Bar) {\n ...\n\n NanReturnValue(String::New("FooBar!"));\n}\n```\n\nNo `return` statement required.\n\n<a name="api_nan_return_undefined"></a>\n### NanReturnUndefined()\n\nUse `NanReturnUndefined` when you don\'t want to return anything from your V8 accessible method:\n\n```c++\nNAN_METHOD(Foo::Baz) {\n ...\n\n NanReturnUndefined();\n}\n```\n\n<a name="api_nan_return_null"></a>\n### NanReturnNull()\n\nUse `NanReturnNull` when you want to return `Null` from your V8 accessible method:\n\n```c++\nNAN_METHOD(Foo::Baz) {\n ...\n\n NanReturnNull();\n}\n```\n\n<a name="api_nan_return_empty_string"></a>\n### NanReturnEmptyString()\n\nUse `NanReturnEmptyString` when you want to return an empty `String` from your V8 accessible method:\n\n```c++\nNAN_METHOD(Foo::Baz) {\n ...\n\n NanReturnEmptyString();\n}\n```\n\n<a name="api_nan_scope"></a>\n### NanScope()\n\nThe introduction of `isolate` references for many V8 calls in Node 0.11 makes `NanScope()` necessary, use it in place of `HandleScope scope`:\n\n```c++\nNAN_METHOD(Foo::Bar) {\n NanScope();\n\n NanReturnValue(String::New("FooBar!"));\n}\n```\n\n<a name="api_nan_locker"></a>\n### NanLocker()\n\nThe introduction of `isolate` references for many V8 calls in Node 0.11 makes `NanLocker()` necessary, use it in place of `Locker locker`:\n\n```c++\nNAN_METHOD(Foo::Bar) {\n NanLocker();\n ...\n NanUnlocker();\n}\n```\n\n<a name="api_nan_unlocker"></a>\n### NanUnlocker()\n\nThe introduction of `isolate` references for many V8 calls in Node 0.11 makes `NanUnlocker()` necessary, use it in place of `Unlocker unlocker`:\n\n```c++\nNAN_METHOD(Foo::Bar) {\n NanLocker();\n ...\n NanUnlocker();\n}\n```\n\n<a name="api_nan_get_internal_field_pointer"></a>\n### void * NanGetInternalFieldPointer(Handle&lt;Object&gt;, int)\n\nGets a pointer to the internal field with at `index` from a V8 `Object` handle.\n\n```c++\nLocal<Object> obj;\n...\nNanGetInternalFieldPointer(obj, 0);\n```\n<a name="api_nan_set_internal_field_pointer"></a>\n### void NanSetInternalFieldPointer(Handle&lt;Object&gt;, int, void *)\n\nSets the value of the internal field at `index` on a V8 `Object` handle.\n\n```c++\nstatic Persistent<Function> dataWrapperCtor;\n...\nLocal<Object> wrapper = NanPersistentToLocal(dataWrapperCtor)->NewInstance();\nNanSetInternalFieldPointer(wrapper, 0, this);\n```\n\n<a name="api_nan_object_wrap_handle"></a>\n### Local&lt;Object&gt; NanObjectWrapHandle(Object)\n\nWhen you want to fetch the V8 object handle from a native object you\'ve wrapped with Node\'s `ObjectWrap`, you should use `NanObjectWrapHandle`:\n\n```c++\nNanObjectWrapHandle(iterator)->Get(String::NewSymbol("end"))\n```\n\n<a name="api_nan_make_weak"></a>\n### NanMakeWeak(Persistent&lt;T&gt;, parameter, callback)\n\nMake a persistent reference weak.\n\n<a name="api_nan_symbol"></a>\n### String NanSymbol(char *)\n\nThis isn\'t strictly about compatibility, it\'s just an easier way to create string symbol objects (i.e. `String::NewSymbol(x)`), for getting and setting object properties, or names of objects.\n\n```c++\nbool foo = false;\nif (obj->Has(NanSymbol("foo")))\n foo = optionsObj->Get(NanSymbol("foo"))->BooleanValue()\n```\n\n<a name="api_nan_get_pointer_safe"></a>\n### Type NanGetPointerSafe(Type *[, Type])\n\nA helper for getting values from optional pointers. If the pointer is `NULL`, the function returns the optional default value, which defaults to `0`. Otherwise, the function returns the value the pointer points to.\n\n```c++\nchar *plugh(uint32_t *optional) {\n char res[] = "xyzzy";\n uint32_t param = NanGetPointerSafe<uint32_t>(optional, 0x1337);\n switch (param) {\n ...\n }\n NanSetPointerSafe<uint32_t>(optional, 0xDEADBEEF);\n} \n```\n\n<a name="api_nan_set_pointer_safe"></a>\n### bool NanSetPointerSafe(Type *, Type)\n\nA helper for setting optional argument pointers. If the pointer is `NULL`, the function simply return `false`. Otherwise, the value is assigned to the variable the pointer points to.\n\n```c++\nconst char *plugh(size_t *outputsize) {\n char res[] = "xyzzy";\n if !(NanSetPointerSafe<size_t>(outputsize, strlen(res) + 1)) {\n ...\n }\n\n ...\n}\n```\n\n<a name="api_nan_raw_string"></a>\n### void* NanRawString(Handle&lt;Value&gt;, enum Nan::Encoding, size_t *, void *, size_t, int)\n\nWhen you want to convert a V8 `String` to a `char*` buffer, use `NanRawString`. You have to supply an encoding as well as a pointer to a variable that will be assigned the number of bytes in the returned string. It is also possible to supply a buffer and its length to the function in order not to have a new buffer allocated. The final argument allows setting `String::WriteOptions`.\nJust remember that you\'ll end up with an object that you\'ll need to `delete[]` at some point unless you supply your own buffer:\n\n```c++\nsize_t count;\nvoid* decoded = NanRawString(args[1], Nan::BASE64, &count, NULL, 0, String::HINT_MANY_WRITES_EXPECTED);\nchar param_copy[count];\nmemcpy(param_copy, decoded, count);\ndelete[] decoded;\n```\n\n<a name="api_nan_c_string"></a>\n### char* NanCString(Handle&lt;Value&gt;, size_t *[, char *, size_t, int])\n\nWhen you want to convert a V8 `String` to a null-terminated C `char*` use `NanCString`. The resulting `char*` will be UTF-8-encoded, and you need to supply a pointer to a variable that will be assigned the number of bytes in the returned string. It is also possible to supply a buffer and its length to the function in order not to have a new buffer allocated. The final argument allows optionally setting `String::WriteOptions`, which default to `v8::String::NO_OPTIONS`.\nJust remember that you\'ll end up with an object that you\'ll need to `delete[]` at some point unless you supply your own buffer:\n\n```c++\nsize_t count;\nchar* name = NanCString(args[0], &count);\n```\n\n<a name="api_nan_from_v8_string"></a>\n### char* NanFromV8String(Handle&lt;Value&gt;[, enum Nan::Encoding, size_t *, char *, size_t, int])\n\nA convenience function that uses `NanRawString()` to convert a V8 `String` to a `char*`. Defaults to UTF8 encoding and no null-termination.\n\n```c++\nsize_t count;\nchar* name = NanFromV8String(args[0]);\n```\n\n<a name="api_nan_boolean_option_value"></a>\n### bool NanBooleanOptionValue(Handle&lt;Value&gt;, Handle&lt;String&gt;[, bool])\n\nWhen you have an "options" object that you need to fetch properties from, boolean options can be fetched with this pair. They check first if the object exists (`IsEmpty`), then if the object has the given property (`Has`) then they get and convert/coerce the property to a `bool`.\n\nThe optional last parameter is the *default* value, which is `false` if left off:\n\n```c++\n// `foo` is false unless the user supplies a truthy value for it\nbool foo = NanBooleanOptionValue(optionsObj, NanSymbol("foo"));\n// `bar` is true unless the user supplies a falsy value for it\nbool bar = NanBooleanOptionValueDefTrue(optionsObj, NanSymbol("bar"), true);\n```\n\n<a name="api_nan_uint32_option_value"></a>\n### uint32_t NanUInt32OptionValue(Handle&lt;Value&gt;, Handle&lt;String&gt;, uint32_t)\n\nSimilar to `NanBooleanOptionValue`, use `NanUInt32OptionValue` to fetch an integer option from your options object. Can be any kind of JavaScript `Number` and it will be coerced to an unsigned 32-bit integer.\n\nRequires all 3 arguments as a default is not optional:\n\n```c++\nuint32_t count = NanUInt32OptionValue(optionsObj, NanSymbol("count"), 1024);\n```\n\n<a name="api_nan_error"></a>\n### NanError(message), NanTypeError(message), NanRangeError(message)\n\nFor making `Error`, `TypeError` and `RangeError` objects.\n\n```c++\nLocal<Value> res = NanError("you must supply a callback argument");\n```\n\n<a name="api_nan_throw_error"></a>\n### NanThrowError(message), NanThrowTypeError(message), NanThrowRangeError(message), NanThrowError(Local&lt;Value&gt;), NanThrowError(Local&lt;Value&gt;, int)\n\nFor throwing `Error`, `TypeError` and `RangeError` objects. You should `return` this call:\n\n```c++\nreturn NanThrowError("you must supply a callback argument");\n```\n\nCan also handle any custom object you may want to throw. If used with the error code argument, it will add the supplied error code to the error object as a property called `code`.\n\n<a name="api_nan_new_buffer_handle"></a>\n### Local&lt;Object&gt; NanNewBufferHandle(char *, uint32_t), Local&lt;Object&gt; NanNewBufferHandle(uint32_t)\n\nThe `Buffer` API has changed a little in Node 0.11, this helper provides consistent access to `Buffer` creation:\n\n```c++\nNanNewBufferHandle((char*)value.data(), value.size());\n```\n\nCan also be used to initialize a `Buffer` with just a `size` argument.\n\nCan also be supplied with a `NAN_WEAK_CALLBACK` and a hint for the garbage collector, when dealing with weak references.\n\n<a name="api_nan_buffer_use"></a>\n### Local&lt;Object&gt; NanBufferUse(char*, uint32_t)\n\n`Buffer::New(char*, uint32_t)` prior to 0.11 would make a copy of the data.\nWhile it was possible to get around this, it required a shim by passing a\ncallback. So the new API `Buffer::Use(char*, uint32_t)` was introduced to remove\nneeding to use this shim.\n\n`NanBufferUse` uses the `char*` passed as the backing data, and will free the\nmemory automatically when the weak callback is called. Keep this in mind, as\ncareless use can lead to "double free or corruption" and other cryptic failures.\n\n<a name="api_nan_has_instance"></a>\n### bool NanHasInstance(Persistent&lt;FunctionTemplate&gt;&, Handle&lt;Value&gt;)\n\nCan be used to check the type of an object to determine it is of a particular class you have already defined and have a `Persistent<FunctionTemplate>` handle for.\n\n<a name="api_nan_persistent_to_local"></a>\n### Local&lt;Type&gt; NanPersistentToLocal(Persistent&lt;Type&gt;&)\n\nAside from `FunctionCallbackInfo`, the biggest and most painful change to V8 in Node 0.11 is the many restrictions now placed on `Persistent` handles. They are difficult to assign and difficult to fetch the original value out of.\n\nUse `NanPersistentToLocal` to convert a `Persistent` handle back to a `Local` handle.\n\n```c++\nLocal<Object> handle = NanPersistentToLocal(persistentHandle);\n```\n\n<a href="#api_nan_new_context_handle">\n### Local&lt;Context&gt; NanNewContextHandle([ExtensionConfiguration*, Handle&lt;ObjectTemplate&gt;, Handle&lt;Value&gt;])\nCreates a new `Local<Context>` handle.\n\n```c++\nLocal<FunctionTemplate> ftmpl = FunctionTemplate::New();\nLocal<ObjectTemplate> otmpl = ftmpl->InstanceTemplate();\nLocal<Context> ctx = NanNewContextHandle(NULL, otmpl);\n```\n\n<a name="api_nan_dispose"></a>\n### void NanDispose(Persistent&lt;T&gt; &)\n\nUse `NanDispose` to dispose a `Persistent` handle.\n\n```c++\nNanDispose(persistentHandle);\n```\n\n<a name="api_nan_assign_persistent"></a>\n### NanAssignPersistent(type, handle, object)\n\nUse `NanAssignPersistent` to assign a non-`Persistent` handle to a `Persistent` one. You can no longer just declare a `Persistent` handle and assign directly to it later, you have to `Reset` it in Node 0.11, so this makes it easier.\n\nIn general it is now better to place anything you want to protect from V8\'s garbage collector as properties of a generic `Object` and then assign that to a `Persistent`. This works in older versions of Node also if you use `NanAssignPersistent`:\n\n```c++\nPersistent<Object> persistentHandle;\n\n...\n\nLocal<Object> obj = Object::New();\nobj->Set(NanSymbol("key"), keyHandle); // where keyHandle might be a Local<String>\nNanAssignPersistent(Object, persistentHandle, obj)\n```\n\n<a name="api_nan_init_persistent"></a>\n### NanInitPersistent(type, name, object)\n\nUser `NanInitPersistent` to declare and initialize a new `Persistent` with the supplied object. The assignment operator for `Persistent` is no longer public in Node 0.11, so this macro makes it easier to declare and initializing a new `Persistent`. See <a href="#api_nan_assign_persistent"><b><code>NanAssignPersistent</code></b></a> for more information.\n\n```c++\nLocal<Object> obj = Object::New();\nobj->Set(NanSymbol("key"), keyHandle); // where keyHandle might be a Local<String>\nNanInitPersistent(Object, persistentHandle, obj);\n```\n\n<a name="api_nan_callback"></a>\n### NanCallback\n\nBecause of the difficulties imposed by the changes to `Persistent` handles in V8 in Node 0.11, creating `Persistent` versions of your `Handle<Function>` is annoyingly tricky. `NanCallback` makes it easier by taking your handle, making it persistent until the `NanCallback` is deleted and even providing a handy `Call()` method to fetch and execute the callback `Function`.\n\n```c++\nLocal<Function> callbackHandle = args[0].As<Function>();\nNanCallback *callback = new NanCallback(callbackHandle);\n// pass `callback` around and it\'s safe from GC until you:\ndelete callback;\n```\n\nYou can execute the callback like so:\n\n```c++\n// no arguments:\ncallback->Call(0, NULL);\n\n// an error argument:\nHandle<Value> argv[] = {\n Exception::Error(String::New("fail!"))\n};\ncallback->Call(1, argv);\n\n// a success argument:\nHandle<Value> argv[] = {\n Null(),\n String::New("w00t!")\n};\ncallback->Call(2, argv);\n```\n\n`NanCallback` also has a `Local<Function> GetCallback()` method that you can use\nto fetch a local handle to the underlying callback function, as well as a\n`void SetFunction(Handle<Function>)` for setting the callback on the\n`NanCallback`. Additionally a generic constructor is available for using\n`NanCallback` without performing heap allocations.\n\n<a name="api_nan_async_worker"></a>\n### NanAsyncWorker\n\n`NanAsyncWorker` is an abstract class that you can subclass to have much of the annoying async queuing and handling taken care of for you. It can even store arbitrary V8 objects for you and have them persist while the async work is in progress.\n\nSee a rough outline of the implementation:\n\n```c++\nclass NanAsyncWorker {\npublic:\n NanAsyncWorker (NanCallback *callback);\n\n // Clean up persistent handles and delete the *callback\n virtual ~NanAsyncWorker ();\n\n // Check the `char *errmsg` property and call HandleOKCallback()\n // or HandleErrorCallback depending on whether it has been set or not\n virtual void WorkComplete ();\n\n // You must implement this to do some async work. If there is an\n // error then allocate `errmsg` to to a message and the callback will\n // be passed that string in an Error object\n virtual void Execute ();\n\n // Save a V8 object in a Persistent handle to protect it from GC\n void SavePersistent(const char *key, Local<Object> &obj);\n\n // Fetch a stored V8 object (don\'t call from within `Execute()`)\n Local<Object> GetFromPersistent(const char *key);\n\nprotected:\n // Set this if there is an error, otherwise it\'s NULL\n const char *errmsg;\n\n // Default implementation calls the callback function with no arguments.\n // Override this to return meaningful data\n virtual void HandleOKCallback ();\n\n // Default implementation calls the callback function with an Error object\n // wrapping the `errmsg` string\n virtual void HandleErrorCallback ();\n};\n```\n\n<a name="api_nan_async_queue_worker"></a>\n### NanAsyncQueueWorker(NanAsyncWorker *)\n\n`NanAsyncQueueWorker` will run a `NanAsyncWorker` asynchronously via libuv. Both the *execute* and *after_work* steps are taken care of for you&mdash;most of the logic for this is embedded in `NanAsyncWorker`.\n\n### Contributors\n\nNAN is only possible due to the excellent work of the following contributors:\n\n<table><tbody>\n<tr><th align="left">Rod Vagg</th><td><a href="https://github.com/rvagg">GitHub/rvagg</a></td><td><a href="http://twitter.com/rvagg">Twitter/@rvagg</a></td></tr>\n<tr><th align="left">Benjamin Byholm</th><td><a href="https://github.com/kkoopa/">GitHub/kkoopa</a></td></tr>\n<tr><th align="left">Trevor Norris</th><td><a href="https://github.com/trevnorris">GitHub/trevnorris</a></td><td><a href="http://twitter.com/trevnorris">Twitter/@trevnorris</a></td></tr>\n<tr><th align="left">Nathan Rajlich</th><td><a href="https://github.com/TooTallNate">GitHub/TooTallNate</a></td><td><a href="http://twitter.com/TooTallNate">Twitter/@TooTallNate</a></td></tr>\n<tr><th align="left">Brett Lawson</th><td><a href="https://github.com/brett19">GitHub/brett19</a></td><td><a href="http://twitter.com/brett19x">Twitter/@brett19x</a></td></tr>\n<tr><th align="left">Ben Noordhuis</th><td><a href="https://github.com/bnoordhuis">GitHub/bnoordhuis</a></td><td><a href="http://twitter.com/bnoordhuis">Twitter/@bnoordhuis</a></td></tr>\n</tbody></table>\n\nLicence &amp; copyright\n-----------------------\n\nCopyright (c) 2013 NAN contributors (listed above).\n\nNative Abstractions for Node.js is licensed under an MIT +no-false-attribs license. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details.\n',
5668 silly resolved readmeFilename: 'README.md',
5668 silly resolved bugs: { url: 'https://github.com/rvagg/nan/issues' },
5668 silly resolved homepage: 'https://github.com/rvagg/nan',
5668 silly resolved _id: 'nan@0.7.1',
5668 silly resolved _from: 'nan@~0.7.0' },
5668 silly resolved { name: 'bindings',
5668 silly resolved description: 'Helper module for loading your native module\'s .node file',
5668 silly resolved keywords: [ 'native', 'addon', 'bindings', 'gyp', 'waf', 'c', 'c++' ],
5668 silly resolved version: '1.1.1',
5668 silly resolved author:
5668 silly resolved { name: 'Nathan Rajlich',
5668 silly resolved email: 'nathan@tootallnate.net',
5668 silly resolved url: 'http://tootallnate.net' },
5668 silly resolved repository:
5668 silly resolved { type: 'git',
5668 silly resolved url: 'git://github.com/TooTallNate/node-bindings.git' },
5668 silly resolved main: './bindings.js',
5668 silly resolved readme: 'node-bindings\n=============\n### Helper module for loading your native module\'s .node file\n\nThis is a helper module for authors of Node.js native addon modules.\nIt is basically the "swiss army knife" of `require()`ing your native module\'s\n`.node` file.\n\nThroughout the course of Node\'s native addon history, addons have ended up being\ncompiled in a variety of different places, depending on which build tool and which\nversion of node was used. To make matters worse, now the _gyp_ build tool can\nproduce either a _Release_ or _Debug_ build, each being built into different\nlocations.\n\nThis module checks _all_ the possible locations that a native addon would be built\nat, and returns the first one that loads successfully.\n\n\nInstallation\n------------\n\nInstall with `npm`:\n\n``` bash\n$ npm install bindings\n```\n\nOr add it to the `"dependencies"` section of your _package.json_ file.\n\n\nExample\n-------\n\n`require()`ing the proper bindings file for the current node version, platform\nand architecture is as simple as:\n\n``` js\nvar bindings = require(\'bindings\')(\'binding.node\')\n\n// Use your bindings defined in your C files\nbindings.your_c_function()\n```\n\n\nNice Error Output\n-----------------\n\nWhen the `.node` file could not be loaded, `node-bindings` throws an Error with\na nice error message telling you exactly what was tried. You can also check the\n`err.tries` Array property.\n\n```\nError: Could not load the bindings file. Tried:\n → /Users/nrajlich/ref/build/binding.node\n → /Users/nrajlich/ref/build/Debug/binding.node\n → /Users/nrajlich/ref/build/Release/binding.node\n → /Users/nrajlich/ref/out/Debug/binding.node\n → /Users/nrajlich/ref/Debug/binding.node\n → /Users/nrajlich/ref/out/Release/binding.node\n → /Users/nrajlich/ref/Release/binding.node\n → /Users/nrajlich/ref/build/default/binding.node\n → /Users/nrajlich/ref/compiled/0.8.2/darwin/x64/binding.node\n at bindings (/Users/nrajlich/ref/node_modules/bindings/bindings.js:84:13)\n at Object.<anonymous> (/Users/nrajlich/ref/lib/ref.js:5:47)\n at Module._compile (module.js:449:26)\n at Object.Module._extensions..js (module.js:467:10)\n at Module.load (module.js:356:32)\n at Function.Module._load (module.js:312:12)\n ...\n```\n\n\nLicense\n-------\n\n(The MIT License)\n\nCopyright (c) 2012 Nathan Rajlich &lt;nathan@tootallnate.net&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.\n',
5668 silly resolved readmeFilename: 'README.md',
5668 silly resolved bugs: { url: 'https://github.com/TooTallNate/node-bindings/issues' },
5668 silly resolved homepage: 'https://github.com/TooTallNate/node-bindings',
5668 silly resolved _id: 'bindings@1.1.1',
5668 silly resolved _from: 'bindings@~1.1.1' } ]
5669 info install nan@0.7.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep
5670 info install bindings@1.1.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep
5671 info installOne nan@0.7.1
5672 info installOne bindings@1.1.1
5673 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/nan unbuild
5674 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/bindings unbuild
5675 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/nan unbuild
5676 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/bindings unbuild
5677 silly gunzTarPerm extractEntry test/dotted.js
5678 silly gunzTarPerm extractEntry test/long.js
5679 info preinstall https-browserify@0.0.0
5680 silly lockFile 46222085-assert-plus-0-1-2 assert-plus@0.1.2
5681 silly lockFile 46222085-assert-plus-0-1-2 assert-plus@0.1.2
5682 silly gunzTarPerm extractEntry Makefile
5683 silly gunzTarPerm extractEntry Readme.md
5684 info preinstall tty-browserify@0.0.0
5685 silly lockFile 72f199c5-erify-node-modules-os-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/os-browserify
5686 silly lockFile 72f199c5-erify-node-modules-os-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/os-browserify
5687 verbose tar unpack /home/scarter/.npm/nan/0.7.1/package.tgz
5688 silly lockFile bd789738-node-stringprep-node-modules-nan tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/nan
5689 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/nan /home/scarter/.npm/bd789738-node-stringprep-node-modules-nan.lock
5690 silly lockFile 71ed87c2-carter-npm-nan-0-7-1-package-tgz tar:///home/scarter/.npm/nan/0.7.1/package.tgz
5691 verbose lock tar:///home/scarter/.npm/nan/0.7.1/package.tgz /home/scarter/.npm/71ed87c2-carter-npm-nan-0-7-1-package-tgz.lock
5692 verbose tar unpack /home/scarter/.npm/bindings/1.1.1/package.tgz
5693 silly lockFile b4fbb496-stringprep-node-modules-bindings tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/bindings
5694 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/bindings /home/scarter/.npm/b4fbb496-stringprep-node-modules-bindings.lock
5695 silly lockFile bd11ce6d-r-npm-bindings-1-1-1-package-tgz tar:///home/scarter/.npm/bindings/1.1.1/package.tgz
5696 verbose lock tar:///home/scarter/.npm/bindings/1.1.1/package.tgz /home/scarter/.npm/bd11ce6d-r-npm-bindings-1-1-1-package-tgz.lock
5697 verbose tar unpack /home/scarter/.npm/nan/0.7.1/package.tgz
5698 silly lockFile eb785753-node-stringprep-node-modules-nan tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/nan
5699 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/nan /home/scarter/.npm/eb785753-node-stringprep-node-modules-nan.lock
5700 silly lockFile 71ed87c2-carter-npm-nan-0-7-1-package-tgz tar:///home/scarter/.npm/nan/0.7.1/package.tgz
5701 verbose lock tar:///home/scarter/.npm/nan/0.7.1/package.tgz /home/scarter/.npm/71ed87c2-carter-npm-nan-0-7-1-package-tgz.lock
5702 verbose tar unpack /home/scarter/.npm/bindings/1.1.1/package.tgz
5703 silly lockFile e7259339-stringprep-node-modules-bindings tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/bindings
5704 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/bindings /home/scarter/.npm/e7259339-stringprep-node-modules-bindings.lock
5705 silly lockFile bd11ce6d-r-npm-bindings-1-1-1-package-tgz tar:///home/scarter/.npm/bindings/1.1.1/package.tgz
5706 verbose lock tar:///home/scarter/.npm/bindings/1.1.1/package.tgz /home/scarter/.npm/bd11ce6d-r-npm-bindings-1-1-1-package-tgz.lock
5707 silly gunzTarPerm extractEntry test/raw.js
5708 silly gunzTarPerm extractEntry test/source-maps-existing.js
5709 silly gunzTarPerm extractEntry test/test2.js
5710 silly gunzTarPerm extractEntry test/fn.js
5711 silly lockFile a7bbb686--os-browserify-0-1-1-package-tgz tar:///home/scarter/.npm/os-browserify/0.1.1/package.tgz
5712 silly lockFile a7bbb686--os-browserify-0-1-1-package-tgz tar:///home/scarter/.npm/os-browserify/0.1.1/package.tgz
5713 verbose readDependencies using package.json deps
5714 silly gunzTarPerm extractEntry example/bundle.js
5715 silly gunzTarPerm extractEntry example/test.js
5716 silly gunzTarPerm extractEntry readme.markdown
5717 silly lockFile 0e6f7058-ode-modules-constants-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/constants-browserify
5718 silly lockFile 0e6f7058-ode-modules-constants-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/constants-browserify
5719 verbose readDependencies using package.json deps
5720 silly resolved []
5721 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/https-browserify
5722 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/https-browserify
5723 verbose linkStuff [ false,
5723 verbose linkStuff false,
5723 verbose linkStuff false,
5723 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
5724 info linkStuff https-browserify@0.0.0
5725 verbose linkBins https-browserify@0.0.0
5726 verbose linkMans https-browserify@0.0.0
5727 verbose rebuildBundles https-browserify@0.0.0
5728 verbose readDependencies using package.json deps
5729 silly lockFile f13221b3-nts-browserify-0-0-1-package-tgz tar:///home/scarter/.npm/constants-browserify/0.0.1/package.tgz
5730 silly lockFile f13221b3-nts-browserify-0-0-1-package-tgz tar:///home/scarter/.npm/constants-browserify/0.0.1/package.tgz
5731 info install https-browserify@0.0.0
5732 silly gunzTarPerm modes [ '755', '644' ]
5733 silly gunzTarPerm modes [ '755', '644' ]
5734 verbose readDependencies using package.json deps
5735 silly resolved []
5736 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/tty-browserify
5737 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/tty-browserify
5738 verbose linkStuff [ false,
5738 verbose linkStuff false,
5738 verbose linkStuff false,
5738 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
5739 info linkStuff tty-browserify@0.0.0
5740 verbose linkBins tty-browserify@0.0.0
5741 verbose linkMans tty-browserify@0.0.0
5742 verbose rebuildBundles tty-browserify@0.0.0
5743 silly gunzTarPerm extractEntry test/string.js
5744 silly gunzTarPerm extractEntry test/typedarray.js
5745 info install tty-browserify@0.0.0
5746 info preinstall os-browserify@0.1.1
5747 info postinstall https-browserify@0.0.0
5748 silly lockFile 15b1781a-ify-node-modules-path-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/path-browserify
5749 silly lockFile 15b1781a-ify-node-modules-path-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/path-browserify
5750 info postinstall tty-browserify@0.0.0
5751 silly gunzTarPerm extractEntry lib/combined_stream.js
5752 silly gunzTarPerm extractEntry test/common.js
5753 info preinstall constants-browserify@0.0.1
5754 silly lockFile 6c2308ee-ath-browserify-0-0-0-package-tgz tar:///home/scarter/.npm/path-browserify/0.0.0/package.tgz
5755 silly lockFile 6c2308ee-ath-browserify-0-0-0-package-tgz tar:///home/scarter/.npm/path-browserify/0.0.0/package.tgz
5756 silly gunzTarPerm extractEntry test/parse.js
5757 silly gunzTarPerm extractEntry test/parse_modified.js
5758 verbose readDependencies using package.json deps
5759 silly gunzTarPerm extractEntry package.json
5760 verbose readDependencies using package.json deps
5761 silly resolved []
5762 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/os-browserify
5763 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/os-browserify
5764 verbose linkStuff [ false,
5764 verbose linkStuff false,
5764 verbose linkStuff false,
5764 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
5765 info linkStuff os-browserify@0.1.1
5766 verbose linkBins os-browserify@0.1.1
5767 verbose linkMans os-browserify@0.1.1
5768 verbose rebuildBundles os-browserify@0.1.1
5769 silly gunzTarPerm extractEntry package.json
5770 silly gunzTarPerm extractEntry test/doubledot1.js
5771 silly gunzTarPerm extractEntry test/multiple_objects.js
5772 verbose readDependencies using package.json deps
5773 info install os-browserify@0.1.1
5774 silly gunzTarPerm extractEntry test/source-maps.js
5775 silly gunzTarPerm extractEntry test/this.js
5776 verbose readDependencies using package.json deps
5777 silly resolved []
5778 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/constants-browserify
5779 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/constants-browserify
5780 verbose linkStuff [ false,
5780 verbose linkStuff false,
5780 verbose linkStuff false,
5780 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
5781 info linkStuff constants-browserify@0.0.1
5782 verbose linkBins constants-browserify@0.0.1
5783 verbose linkMans constants-browserify@0.0.1
5784 verbose rebuildBundles constants-browserify@0.0.1
5785 silly lockFile 75b5b377-ules-browserify-node-modules-url tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/url
5786 silly lockFile 75b5b377-ules-browserify-node-modules-url tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/url
5787 info preinstall path-browserify@0.0.0
5788 silly gunzTarPerm extractEntry test/always.js
5789 silly gunzTarPerm extractEntry test/global.js
5790 silly lockFile 304a675e-browserify-node-modules-inherits tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/inherits
5791 silly lockFile 304a675e-browserify-node-modules-inherits tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/inherits
5792 info install constants-browserify@0.0.1
5793 info postinstall os-browserify@0.1.1
5794 silly lockFile 383c0db5-carter-npm-url-0-7-9-package-tgz tar:///home/scarter/.npm/url/0.7.9/package.tgz
5795 silly lockFile 383c0db5-carter-npm-url-0-7-9-package-tgz tar:///home/scarter/.npm/url/0.7.9/package.tgz
5796 silly gunzTarPerm extractEntry README.md
5797 silly gunzTarPerm extractEntry LICENSE
5798 silly gunzTarPerm extractEntry include_dirs.js
5799 silly gunzTarPerm extractEntry .dntrc
5800 silly gunzTarPerm extractEntry build/config.gypi
5801 silly gunzTarPerm extractEntry nan.h
5802 silly lockFile b96f0855-r-npm-inherits-2-0-1-package-tgz tar:///home/scarter/.npm/inherits/2.0.1/package.tgz
5803 silly lockFile b96f0855-r-npm-inherits-2-0-1-package-tgz tar:///home/scarter/.npm/inherits/2.0.1/package.tgz
5804 silly gunzTarPerm extractEntry README.md
5805 silly gunzTarPerm extractEntry bindings.js
5806 silly gunzTarPerm extractEntry example/index.html
5807 silly gunzTarPerm extractEntry test/package.json
5808 http 304 https://registry.npmjs.org/esprima
5809 silly registry.get cb [ 304,
5809 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
5809 silly registry.get server: 'Apache',
5809 silly registry.get connection: 'Keep-Alive',
5809 silly registry.get 'keep-alive': 'timeout=10, max=37',
5809 silly registry.get etag: '"1XEAFB3KMLI834M19LDKCT90B"',
5809 silly registry.get 'cache-control': 'max-age=1',
5809 silly registry.get vary: 'Accept' } ]
5810 verbose etag esprima from cache
5811 silly gunzTarPerm extractEntry test/server/ls.js
5812 info postinstall constants-browserify@0.0.1
5813 verbose readDependencies using package.json deps
5814 verbose readDependencies using package.json deps
5815 silly resolved []
5816 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/path-browserify
5817 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/path-browserify
5818 verbose linkStuff [ false,
5818 verbose linkStuff false,
5818 verbose linkStuff false,
5818 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
5819 info linkStuff path-browserify@0.0.0
5820 verbose linkBins path-browserify@0.0.0
5821 verbose linkMans path-browserify@0.0.0
5822 verbose rebuildBundles path-browserify@0.0.0
5823 silly lockFile 0b7bd3db-rowserify-node-modules-deps-sort tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/deps-sort
5824 silly lockFile 0b7bd3db-rowserify-node-modules-deps-sort tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/deps-sort
5825 http 304 https://registry.npmjs.org/punycode
5826 silly registry.get cb [ 304,
5826 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
5826 silly registry.get server: 'Apache',
5826 silly registry.get connection: 'Keep-Alive',
5826 silly registry.get 'keep-alive': 'timeout=10, max=36',
5826 silly registry.get etag: '"CKGZ9UQO3RPAFD5YUPD3H4LQ9"',
5826 silly registry.get 'cache-control': 'max-age=1',
5826 silly registry.get vary: 'Accept' } ]
5827 verbose etag punycode from cache
5828 http 304 https://registry.npmjs.org/source-map
5829 silly registry.get cb [ 304,
5829 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
5829 silly registry.get server: 'Apache',
5829 silly registry.get connection: 'Keep-Alive',
5829 silly registry.get 'keep-alive': 'timeout=10, max=38',
5829 silly registry.get etag: '"BNS3YXOHVY2ZEGQ1UCH53OD83"',
5829 silly registry.get 'cache-control': 'max-age=1',
5829 silly registry.get vary: 'Accept' } ]
5830 verbose etag source-map from cache
5831 info install path-browserify@0.0.0
5832 info preinstall url@0.7.9
5833 silly gunzTarPerm extractEntry test/run.js
5834 silly gunzTarPerm extractEntry test/fixture/file1.txt
5835 silly gunzTarPerm extractEntry test/fixture/file2.txt
5836 silly gunzTarPerm extractEntry test/integration/test-callback-streams.js
5837 silly gunzTarPerm extractEntry test/integration/test-data-size.js
5838 silly gunzTarPerm extractEntry test/integration/test-delayed-streams-and-buffers-and-strings.js
5839 silly gunzTarPerm extractEntry test/integration/test-delayed-streams.js
5840 silly gunzTarPerm extractEntry test/integration/test-empty-string.js
5841 silly gunzTarPerm extractEntry test/integration/test-is-stream-like.js
5842 silly gunzTarPerm extractEntry test/integration/test-max-data-size.js
5843 silly gunzTarPerm extractEntry test/integration/test-unpaused-streams.js
5844 silly lockFile ffc6371d--npm-deps-sort-0-1-1-package-tgz tar:///home/scarter/.npm/deps-sort/0.1.1/package.tgz
5845 silly lockFile ffc6371d--npm-deps-sort-0-1-1-package-tgz tar:///home/scarter/.npm/deps-sort/0.1.1/package.tgz
5846 info preinstall inherits@2.0.1
5847 silly gunzTarPerm extractEntry test/short.js
5848 silly gunzTarPerm extractEntry test/whitespace.js
5849 info postinstall path-browserify@0.0.0
5850 silly lockFile 6f14b709-rify-node-modules-domain-browser tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/domain-browser
5851 silly lockFile 6f14b709-rify-node-modules-domain-browser tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/domain-browser
5852 silly lockFile 41ecb821-asn1-0-1-11 asn1@0.1.11
5853 silly lockFile 41ecb821-asn1-0-1-11 asn1@0.1.11
5854 silly gunzTarPerm extractEntry test/insert.js
5855 silly gunzTarPerm extractEntry test/always/main.js
5856 verbose readDependencies using package.json deps
5857 silly lockFile 3d7c5b26-domain-browser-1-1-1-package-tgz tar:///home/scarter/.npm/domain-browser/1.1.1/package.tgz
5858 silly lockFile 3d7c5b26-domain-browser-1-1-1-package-tgz tar:///home/scarter/.npm/domain-browser/1.1.1/package.tgz
5859 silly resolved [ { name: 'ctype',
5859 silly resolved version: '0.5.2',
5859 silly resolved description: 'read and write binary structures and data types',
5859 silly resolved homepage: 'https://github.com/rmustacc/node-ctype',
5859 silly resolved author: { name: 'Robert Mustacchi', email: 'rm@fingolfin.org' },
5859 silly resolved engines: { node: '>= 0.4' },
5859 silly resolved main: 'ctype.js',
5859 silly resolved readme: 'Node-CType is a way to read and write binary data in structured and easy to use\nformat. Its name comes from the C header file.\n\nTo get started, simply clone the repository or use npm to install it. Once it is\nthere, simply require it.\n\ngit clone git://github.com/rmustacc/node-ctype\nnpm install ctype\nvar mod_ctype = require(\'ctype\')\n\n\nThere are two APIs that you can use, depending on what abstraction you\'d like.\nThe low level API let\'s you read and write individual integers and floats from\nbuffers. The higher level API let\'s you read and write structures of these. To\nillustrate this, let\'s looks look at how we would read and write a binary\nencoded x,y point.\n\nIn C we would define this structure as follows:\n\ntypedef struct point {\n\tuint16_t\tp_x;\n\tuint16_t\tp_y;\n} point_t;\n\nTo read a binary encoded point from a Buffer, we first need to create a CType\nparser (where we specify the endian and other options) and add the typedef.\n\nvar parser = new mod_ctype.Parser({ endian: \'big\' });\nparser.typedef(\'point_t\', [\n\t{ x: { type: \'uint16_t\' } },\n\t{ y: { type: \'uint16_t\' } }\n]);\n\nFrom here, given a buffer buf and an offset into it, we can read a point.\n\nvar out = parser.readData([ { point: { type: \'point_t\' } } ], buffer, 0);\nconsole.log(out);\n{ point: { x: 23, y: 42 } }\n\nAnother way to get the same information would be to use the low level methods.\nNote that these require you to manually deal with the offset. Here\'s how we\'d\nget the same values of x and y from the buffer.\n\nvar x = mod_ctype.ruint16(buf, \'big\', 0);\nvar y = mod_ctype.ruint16(buf, \'big\', 2);\nconsole.log(x + \', \' + y);\n23, 42\n\nThe true power of this API comes from the ability to define and nest typedefs,\njust as you would in C. By default, the following types are defined by default.\nNote that they return a Number, unless indicated otherwise.\n\n * int8_t\n * int16_t\n * int32_t\n * int64_t (returns an array where val[0] << 32 + val[1] would be the value)\n * uint8_t\n * uint16_t\n * uint32_t\n * uint64_t (returns an array where val[0] << 32 + val[1] would be the value)\n * float\n * double\n * char (either returns a buffer with that character or a uint8_t)\n * char[] (returns an object with the buffer and the number of characters read which is either the total amount requested or until the first 0)\n\n\nctf2json integration:\n\nNode-CType supports consuming the output of ctf2json. Once you read in a JSON file,\nall you have to do to add all the definitions it contains is:\n\nvar data, parser;\ndata = JSON.parse(parsedJSONData);\nparser = mod_ctype.parseCTF(data, { endian: \'big\' });\n\nFor more documentation, see the file README.old. Full documentation is in the\nprocess of being rewritten as a series of manual pages which will be available\nin the repository and online for viewing.\n\nTo read the ctio manual page simple run, from the root of the workspace:\n\nman -Mman -s 3ctype ctio\n',
5859 silly resolved readmeFilename: 'README',
5859 silly resolved _id: 'ctype@0.5.2',
5859 silly resolved _from: 'ctype@0.5.2' },
5859 silly resolved { author: { name: 'Mark Cavage', email: 'mcavage@gmail.com' },
5859 silly resolved name: 'assert-plus',
5859 silly resolved description: 'Extra assertions on top of node\'s assert module',
5859 silly resolved version: '0.1.2',
5859 silly resolved main: './assert.js',
5859 silly resolved dependencies: {},
5859 silly resolved devDependencies: {},
5859 silly resolved optionalDependencies: {},
5859 silly resolved engines: { node: '>=0.6' },
5859 silly resolved readme: '# node-assert-plus\n\nThis library is a super small wrapper over node\'s assert module that has two\nthings: (1) the ability to disable assertions with the environment variable\nNODE_NDEBUG, and (2) some API wrappers for argument testing. Like\n`assert.string(myArg, \'myArg\')`. As a simple example, most of my code looks\nlike this:\n\n var assert = require(\'assert-plus\');\n\n function fooAccount(options, callback) {\n\t assert.object(options, \'options\');\n\t\tassert.number(options.id, \'options.id);\n\t\tassert.bool(options.isManager, \'options.isManager\');\n\t\tassert.string(options.name, \'options.name\');\n\t\tassert.arrayOfString(options.email, \'options.email\');\n\t\tassert.func(callback, \'callback\');\n\n // Do stuff\n\t\tcallback(null, {});\n }\n\n# API\n\nAll methods that *aren\'t* part of node\'s core assert API are simply assumed to\ntake an argument, and then a string \'name\' that\'s not a message; `AssertionError`\nwill be thrown if the assertion fails with a message like:\n\n AssertionError: foo (string) is required\n\tat test (/home/mark/work/foo/foo.js:3:9)\n\tat Object.<anonymous> (/home/mark/work/foo/foo.js:15:1)\n\tat Module._compile (module.js:446:26)\n\tat Object..js (module.js:464:10)\n\tat Module.load (module.js:353:31)\n\tat Function._load (module.js:311:12)\n\tat Array.0 (module.js:484:10)\n\tat EventEmitter._tickCallback (node.js:190:38)\n\nfrom:\n\n function test(foo) {\n\t assert.string(foo, \'foo\');\n }\n\nThere you go. You can check that arrays are of a homogenous type with `Arrayof$Type`:\n\n function test(foo) {\n\t assert.arrayOfString(foo, \'foo\');\n }\n\nYou can assert IFF an argument is not `undefined` (i.e., an optional arg):\n\n assert.optionalString(foo, \'foo\');\n\nLastly, you can opt-out of assertion checking altogether by setting the\nenvironment variable `NODE_NDEBUG=1`. This is pseudo-useful if you have\nlots of assertions, and don\'t want to pay `typeof ()` taxes to v8 in\nproduction.\n\nThe complete list of APIs is:\n\n* assert.bool\n* assert.buffer\n* assert.func\n* assert.number\n* assert.object\n* assert.string\n* assert.arrayOfBool\n* assert.arrayOfFunc\n* assert.arrayOfNumber\n* assert.arrayOfObject\n* assert.arrayOfString\n* assert.optionalBool\n* assert.optionalBuffer\n* assert.optionalFunc\n* assert.optionalNumber\n* assert.optionalObject\n* assert.optionalString\n* assert.optionalArrayOfBool\n* assert.optionalArrayOfFunc\n* assert.optionalArrayOfNumber\n* assert.optionalArrayOfObject\n* assert.optionalArrayOfString\n* assert.AssertionError\n* assert.fail\n* assert.ok\n* assert.equal\n* assert.notEqual\n* assert.deepEqual\n* assert.notDeepEqual\n* assert.strictEqual\n* assert.notStrictEqual\n* assert.throws\n* assert.doesNotThrow\n* assert.ifError\n\n# Installation\n\n npm install assert-plus\n\n## License\n\nThe MIT License (MIT)\nCopyright (c) 2012 Mark Cavage\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the "Software"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n## Bugs\n\nSee <https://github.com/mcavage/node-assert-plus/issues>.\n',
5859 silly resolved readmeFilename: 'README.md',
5859 silly resolved _id: 'assert-plus@0.1.2',
5859 silly resolved _from: 'assert-plus@0.1.2' },
5859 silly resolved { author: { name: 'Mark Cavage', email: 'mcavage@gmail.com' },
5859 silly resolved contributors: [ [Object], [Object] ],
5859 silly resolved name: 'asn1',
5859 silly resolved description: 'Contains parsers and serializers for ASN.1 (currently BER only)',
5859 silly resolved version: '0.1.11',
5859 silly resolved repository: { type: 'git', url: 'git://github.com/mcavage/node-asn1.git' },
5859 silly resolved main: 'lib/index.js',
5859 silly resolved engines: { node: '>=0.4.9' },
5859 silly resolved dependencies: {},
5859 silly resolved devDependencies: { tap: '0.1.4' },
5859 silly resolved scripts:
5859 silly resolved { pretest: 'which gjslint; if [[ "$?" = 0 ]] ; then gjslint --nojsdoc -r lib -r tst; else echo "Missing gjslint. Skipping lint"; fi',
5859 silly resolved test: './node_modules/.bin/tap ./tst' },
5859 silly resolved readme: 'node-asn1 is a library for encoding and decoding ASN.1 datatypes in pure JS.\nCurrently BER encoding is supported; at some point I\'ll likely have to do DER.\n\n## Usage\n\nMostly, if you\'re *actually* needing to read and write ASN.1, you probably don\'t\nneed this readme to explain what and why. If you have no idea what ASN.1 is,\nsee this: ftp://ftp.rsa.com/pub/pkcs/ascii/layman.asc\n\nThe source is pretty much self-explanatory, and has read/write methods for the\ncommon types out there.\n\n### Decoding\n\nThe following reads an ASN.1 sequence with a boolean.\n\n var Ber = require(\'asn1\').Ber;\n\n var reader = new Ber.Reader(new Buffer([0x30, 0x03, 0x01, 0x01, 0xff]));\n\n reader.readSequence();\n console.log(\'Sequence len: \' + reader.length);\n if (reader.peek() === Ber.Boolean)\n console.log(reader.readBoolean());\n\n### Encoding\n\nThe following generates the same payload as above.\n\n var Ber = require(\'asn1\').Ber;\n\n var writer = new Ber.Writer();\n\n writer.startSequence();\n writer.writeBoolean(true);\n writer.endSequence();\n\n console.log(writer.buffer);\n\n## Installation\n\n npm install asn1\n\n## License\n\nMIT.\n\n## Bugs\n\nSee <https://github.com/mcavage/node-asn1/issues>.\n',
5859 silly resolved readmeFilename: 'README.md',
5859 silly resolved bugs: { url: 'https://github.com/mcavage/node-asn1/issues' },
5859 silly resolved homepage: 'https://github.com/mcavage/node-asn1',
5859 silly resolved _id: 'asn1@0.1.11',
5859 silly resolved _from: 'asn1@0.1.11' } ]
5860 info install ctype@0.5.2 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature
5861 info install assert-plus@0.1.2 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature
5862 info install asn1@0.1.11 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature
5863 info installOne ctype@0.5.2
5864 info installOne assert-plus@0.1.2
5865 info installOne asn1@0.1.11
5866 silly resolved [ { name: 'ctype',
5866 silly resolved version: '0.5.2',
5866 silly resolved description: 'read and write binary structures and data types',
5866 silly resolved homepage: 'https://github.com/rmustacc/node-ctype',
5866 silly resolved author: { name: 'Robert Mustacchi', email: 'rm@fingolfin.org' },
5866 silly resolved engines: { node: '>= 0.4' },
5866 silly resolved main: 'ctype.js',
5866 silly resolved readme: 'Node-CType is a way to read and write binary data in structured and easy to use\nformat. Its name comes from the C header file.\n\nTo get started, simply clone the repository or use npm to install it. Once it is\nthere, simply require it.\n\ngit clone git://github.com/rmustacc/node-ctype\nnpm install ctype\nvar mod_ctype = require(\'ctype\')\n\n\nThere are two APIs that you can use, depending on what abstraction you\'d like.\nThe low level API let\'s you read and write individual integers and floats from\nbuffers. The higher level API let\'s you read and write structures of these. To\nillustrate this, let\'s looks look at how we would read and write a binary\nencoded x,y point.\n\nIn C we would define this structure as follows:\n\ntypedef struct point {\n\tuint16_t\tp_x;\n\tuint16_t\tp_y;\n} point_t;\n\nTo read a binary encoded point from a Buffer, we first need to create a CType\nparser (where we specify the endian and other options) and add the typedef.\n\nvar parser = new mod_ctype.Parser({ endian: \'big\' });\nparser.typedef(\'point_t\', [\n\t{ x: { type: \'uint16_t\' } },\n\t{ y: { type: \'uint16_t\' } }\n]);\n\nFrom here, given a buffer buf and an offset into it, we can read a point.\n\nvar out = parser.readData([ { point: { type: \'point_t\' } } ], buffer, 0);\nconsole.log(out);\n{ point: { x: 23, y: 42 } }\n\nAnother way to get the same information would be to use the low level methods.\nNote that these require you to manually deal with the offset. Here\'s how we\'d\nget the same values of x and y from the buffer.\n\nvar x = mod_ctype.ruint16(buf, \'big\', 0);\nvar y = mod_ctype.ruint16(buf, \'big\', 2);\nconsole.log(x + \', \' + y);\n23, 42\n\nThe true power of this API comes from the ability to define and nest typedefs,\njust as you would in C. By default, the following types are defined by default.\nNote that they return a Number, unless indicated otherwise.\n\n * int8_t\n * int16_t\n * int32_t\n * int64_t (returns an array where val[0] << 32 + val[1] would be the value)\n * uint8_t\n * uint16_t\n * uint32_t\n * uint64_t (returns an array where val[0] << 32 + val[1] would be the value)\n * float\n * double\n * char (either returns a buffer with that character or a uint8_t)\n * char[] (returns an object with the buffer and the number of characters read which is either the total amount requested or until the first 0)\n\n\nctf2json integration:\n\nNode-CType supports consuming the output of ctf2json. Once you read in a JSON file,\nall you have to do to add all the definitions it contains is:\n\nvar data, parser;\ndata = JSON.parse(parsedJSONData);\nparser = mod_ctype.parseCTF(data, { endian: \'big\' });\n\nFor more documentation, see the file README.old. Full documentation is in the\nprocess of being rewritten as a series of manual pages which will be available\nin the repository and online for viewing.\n\nTo read the ctio manual page simple run, from the root of the workspace:\n\nman -Mman -s 3ctype ctio\n',
5866 silly resolved readmeFilename: 'README',
5866 silly resolved _id: 'ctype@0.5.2',
5866 silly resolved _from: 'ctype@0.5.2' },
5866 silly resolved { author: { name: 'Mark Cavage', email: 'mcavage@gmail.com' },
5866 silly resolved name: 'assert-plus',
5866 silly resolved description: 'Extra assertions on top of node\'s assert module',
5866 silly resolved version: '0.1.2',
5866 silly resolved main: './assert.js',
5866 silly resolved dependencies: {},
5866 silly resolved devDependencies: {},
5866 silly resolved optionalDependencies: {},
5866 silly resolved engines: { node: '>=0.6' },
5866 silly resolved readme: '# node-assert-plus\n\nThis library is a super small wrapper over node\'s assert module that has two\nthings: (1) the ability to disable assertions with the environment variable\nNODE_NDEBUG, and (2) some API wrappers for argument testing. Like\n`assert.string(myArg, \'myArg\')`. As a simple example, most of my code looks\nlike this:\n\n var assert = require(\'assert-plus\');\n\n function fooAccount(options, callback) {\n\t assert.object(options, \'options\');\n\t\tassert.number(options.id, \'options.id);\n\t\tassert.bool(options.isManager, \'options.isManager\');\n\t\tassert.string(options.name, \'options.name\');\n\t\tassert.arrayOfString(options.email, \'options.email\');\n\t\tassert.func(callback, \'callback\');\n\n // Do stuff\n\t\tcallback(null, {});\n }\n\n# API\n\nAll methods that *aren\'t* part of node\'s core assert API are simply assumed to\ntake an argument, and then a string \'name\' that\'s not a message; `AssertionError`\nwill be thrown if the assertion fails with a message like:\n\n AssertionError: foo (string) is required\n\tat test (/home/mark/work/foo/foo.js:3:9)\n\tat Object.<anonymous> (/home/mark/work/foo/foo.js:15:1)\n\tat Module._compile (module.js:446:26)\n\tat Object..js (module.js:464:10)\n\tat Module.load (module.js:353:31)\n\tat Function._load (module.js:311:12)\n\tat Array.0 (module.js:484:10)\n\tat EventEmitter._tickCallback (node.js:190:38)\n\nfrom:\n\n function test(foo) {\n\t assert.string(foo, \'foo\');\n }\n\nThere you go. You can check that arrays are of a homogenous type with `Arrayof$Type`:\n\n function test(foo) {\n\t assert.arrayOfString(foo, \'foo\');\n }\n\nYou can assert IFF an argument is not `undefined` (i.e., an optional arg):\n\n assert.optionalString(foo, \'foo\');\n\nLastly, you can opt-out of assertion checking altogether by setting the\nenvironment variable `NODE_NDEBUG=1`. This is pseudo-useful if you have\nlots of assertions, and don\'t want to pay `typeof ()` taxes to v8 in\nproduction.\n\nThe complete list of APIs is:\n\n* assert.bool\n* assert.buffer\n* assert.func\n* assert.number\n* assert.object\n* assert.string\n* assert.arrayOfBool\n* assert.arrayOfFunc\n* assert.arrayOfNumber\n* assert.arrayOfObject\n* assert.arrayOfString\n* assert.optionalBool\n* assert.optionalBuffer\n* assert.optionalFunc\n* assert.optionalNumber\n* assert.optionalObject\n* assert.optionalString\n* assert.optionalArrayOfBool\n* assert.optionalArrayOfFunc\n* assert.optionalArrayOfNumber\n* assert.optionalArrayOfObject\n* assert.optionalArrayOfString\n* assert.AssertionError\n* assert.fail\n* assert.ok\n* assert.equal\n* assert.notEqual\n* assert.deepEqual\n* assert.notDeepEqual\n* assert.strictEqual\n* assert.notStrictEqual\n* assert.throws\n* assert.doesNotThrow\n* assert.ifError\n\n# Installation\n\n npm install assert-plus\n\n## License\n\nThe MIT License (MIT)\nCopyright (c) 2012 Mark Cavage\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the "Software"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n## Bugs\n\nSee <https://github.com/mcavage/node-assert-plus/issues>.\n',
5866 silly resolved readmeFilename: 'README.md',
5866 silly resolved _id: 'assert-plus@0.1.2',
5866 silly resolved _from: 'assert-plus@0.1.2' },
5866 silly resolved { author: { name: 'Mark Cavage', email: 'mcavage@gmail.com' },
5866 silly resolved contributors: [ [Object], [Object] ],
5866 silly resolved name: 'asn1',
5866 silly resolved description: 'Contains parsers and serializers for ASN.1 (currently BER only)',
5866 silly resolved version: '0.1.11',
5866 silly resolved repository: { type: 'git', url: 'git://github.com/mcavage/node-asn1.git' },
5866 silly resolved main: 'lib/index.js',
5866 silly resolved engines: { node: '>=0.4.9' },
5866 silly resolved dependencies: {},
5866 silly resolved devDependencies: { tap: '0.1.4' },
5866 silly resolved scripts:
5866 silly resolved { pretest: 'which gjslint; if [[ "$?" = 0 ]] ; then gjslint --nojsdoc -r lib -r tst; else echo "Missing gjslint. Skipping lint"; fi',
5866 silly resolved test: './node_modules/.bin/tap ./tst' },
5866 silly resolved readme: 'node-asn1 is a library for encoding and decoding ASN.1 datatypes in pure JS.\nCurrently BER encoding is supported; at some point I\'ll likely have to do DER.\n\n## Usage\n\nMostly, if you\'re *actually* needing to read and write ASN.1, you probably don\'t\nneed this readme to explain what and why. If you have no idea what ASN.1 is,\nsee this: ftp://ftp.rsa.com/pub/pkcs/ascii/layman.asc\n\nThe source is pretty much self-explanatory, and has read/write methods for the\ncommon types out there.\n\n### Decoding\n\nThe following reads an ASN.1 sequence with a boolean.\n\n var Ber = require(\'asn1\').Ber;\n\n var reader = new Ber.Reader(new Buffer([0x30, 0x03, 0x01, 0x01, 0xff]));\n\n reader.readSequence();\n console.log(\'Sequence len: \' + reader.length);\n if (reader.peek() === Ber.Boolean)\n console.log(reader.readBoolean());\n\n### Encoding\n\nThe following generates the same payload as above.\n\n var Ber = require(\'asn1\').Ber;\n\n var writer = new Ber.Writer();\n\n writer.startSequence();\n writer.writeBoolean(true);\n writer.endSequence();\n\n console.log(writer.buffer);\n\n## Installation\n\n npm install asn1\n\n## License\n\nMIT.\n\n## Bugs\n\nSee <https://github.com/mcavage/node-asn1/issues>.\n',
5866 silly resolved readmeFilename: 'README.md',
5866 silly resolved bugs: { url: 'https://github.com/mcavage/node-asn1/issues' },
5866 silly resolved homepage: 'https://github.com/mcavage/node-asn1',
5866 silly resolved _id: 'asn1@0.1.11',
5866 silly resolved _from: 'asn1@0.1.11' } ]
5867 info install ctype@0.5.2 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature
5868 info install assert-plus@0.1.2 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature
5869 info install asn1@0.1.11 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature
5870 info installOne ctype@0.5.2
5871 info installOne assert-plus@0.1.2
5872 info installOne asn1@0.1.11
5873 silly gunzTarPerm extractEntry test/multiple_objects_error.js
5874 silly gunzTarPerm extractEntry test/parsejson.js
5875 verbose readDependencies using package.json deps
5876 verbose readDependencies using package.json deps
5877 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules/ctype unbuild
5878 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules/assert-plus unbuild
5879 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules/asn1 unbuild
5880 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules/ctype unbuild
5881 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules/assert-plus unbuild
5882 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules/asn1 unbuild
5883 silly addNameRange number 2 { name: 'esprima', range: '>=1.0.2-0 <1.1.0-0', hasData: true }
5884 silly addNameRange versions [ 'esprima',
5884 silly addNameRange [ '0.7.0',
5884 silly addNameRange '0.8.0',
5884 silly addNameRange '0.8.1',
5884 silly addNameRange '0.8.2',
5884 silly addNameRange '0.9.0',
5884 silly addNameRange '0.9.1',
5884 silly addNameRange '0.9.2',
5884 silly addNameRange '0.9.3',
5884 silly addNameRange '0.9.4',
5884 silly addNameRange '0.9.5',
5884 silly addNameRange '0.9.6',
5884 silly addNameRange '0.9.7',
5884 silly addNameRange '0.9.8',
5884 silly addNameRange '0.9.9',
5884 silly addNameRange '1.0.0',
5884 silly addNameRange '1.0.1',
5884 silly addNameRange '1.0.2',
5884 silly addNameRange '1.0.3',
5884 silly addNameRange '1.0.4' ] ]
5885 verbose addNamed [ 'esprima', '1.0.4' ]
5886 verbose addNamed [ '1.0.4', '1.0.4' ]
5887 silly lockFile 758953aa-esprima-1-0-4 esprima@1.0.4
5888 verbose lock esprima@1.0.4 /home/scarter/.npm/758953aa-esprima-1-0-4.lock
5889 info preinstall deps-sort@0.1.1
5890 verbose readDependencies using package.json deps
5891 silly resolved []
5892 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/inherits
5893 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/inherits
5894 verbose linkStuff [ false,
5894 verbose linkStuff false,
5894 verbose linkStuff false,
5894 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
5895 info linkStuff inherits@2.0.1
5896 verbose linkBins inherits@2.0.1
5897 verbose linkMans inherits@2.0.1
5898 verbose rebuildBundles inherits@2.0.1
5899 silly gunzTarPerm extractEntry test/unicode.js
5900 silly gunzTarPerm extractEntry bin/cmd.js
5901 verbose cache add [ 'querystring@>=0.1.0 <0.2.0', null ]
5902 verbose cache add name=undefined spec="querystring@>=0.1.0 <0.2.0" args=["querystring@>=0.1.0 <0.2.0",null]
5903 verbose parsed url { protocol: null,
5903 verbose parsed url slashes: null,
5903 verbose parsed url auth: null,
5903 verbose parsed url host: null,
5903 verbose parsed url port: null,
5903 verbose parsed url hostname: null,
5903 verbose parsed url hash: null,
5903 verbose parsed url search: null,
5903 verbose parsed url query: null,
5903 verbose parsed url pathname: 'querystring@%3E=0.1.0%20%3C0.2.0',
5903 verbose parsed url path: 'querystring@%3E=0.1.0%20%3C0.2.0',
5903 verbose parsed url href: 'querystring@%3E=0.1.0%20%3C0.2.0' }
5904 verbose cache add name="querystring" spec=">=0.1.0 <0.2.0" args=["querystring",">=0.1.0 <0.2.0"]
5905 verbose parsed url { protocol: null,
5905 verbose parsed url slashes: null,
5905 verbose parsed url auth: null,
5905 verbose parsed url host: null,
5905 verbose parsed url port: null,
5905 verbose parsed url hostname: null,
5905 verbose parsed url hash: null,
5905 verbose parsed url search: null,
5905 verbose parsed url query: null,
5905 verbose parsed url pathname: '%3E=0.1.0%20%3C0.2.0',
5905 verbose parsed url path: '%3E=0.1.0%20%3C0.2.0',
5905 verbose parsed url href: '%3E=0.1.0%20%3C0.2.0' }
5906 verbose addNamed [ 'querystring', '>=0.1.0 <0.2.0' ]
5907 verbose addNamed [ null, '>=0.1.0 <0.2.0-0' ]
5908 silly lockFile aaf8e055-querystring-0-1-0-0-2-0 querystring@>=0.1.0 <0.2.0
5909 verbose lock querystring@>=0.1.0 <0.2.0 /home/scarter/.npm/aaf8e055-querystring-0-1-0-0-2-0.lock
5910 verbose cache add [ 'punycode@>=1.0.0 <1.1.0', null ]
5911 verbose cache add name=undefined spec="punycode@>=1.0.0 <1.1.0" args=["punycode@>=1.0.0 <1.1.0",null]
5912 verbose parsed url { protocol: null,
5912 verbose parsed url slashes: null,
5912 verbose parsed url auth: null,
5912 verbose parsed url host: null,
5912 verbose parsed url port: null,
5912 verbose parsed url hostname: null,
5912 verbose parsed url hash: null,
5912 verbose parsed url search: null,
5912 verbose parsed url query: null,
5912 verbose parsed url pathname: 'punycode@%3E=1.0.0%20%3C1.1.0',
5912 verbose parsed url path: 'punycode@%3E=1.0.0%20%3C1.1.0',
5912 verbose parsed url href: 'punycode@%3E=1.0.0%20%3C1.1.0' }
5913 verbose cache add name="punycode" spec=">=1.0.0 <1.1.0" args=["punycode",">=1.0.0 <1.1.0"]
5914 verbose parsed url { protocol: null,
5914 verbose parsed url slashes: null,
5914 verbose parsed url auth: null,
5914 verbose parsed url host: null,
5914 verbose parsed url port: null,
5914 verbose parsed url hostname: null,
5914 verbose parsed url hash: null,
5914 verbose parsed url search: null,
5914 verbose parsed url query: null,
5914 verbose parsed url pathname: '%3E=1.0.0%20%3C1.1.0',
5914 verbose parsed url path: '%3E=1.0.0%20%3C1.1.0',
5914 verbose parsed url href: '%3E=1.0.0%20%3C1.1.0' }
5915 verbose addNamed [ 'punycode', '>=1.0.0 <1.1.0' ]
5916 verbose addNamed [ null, '>=1.0.0 <1.1.0-0' ]
5917 silly lockFile fdddb44b-punycode-1-0-0-1-1-0 punycode@>=1.0.0 <1.1.0
5918 verbose lock punycode@>=1.0.0 <1.1.0 /home/scarter/.npm/fdddb44b-punycode-1-0-0-1-1-0.lock
5919 info install inherits@2.0.1
5920 silly lockFile e1e9b294--browserify-node-modules-defined tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/defined
5921 silly lockFile e1e9b294--browserify-node-modules-defined tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/defined
5922 silly lockFile 354aa30a-ify-node-modules-stream-combiner tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/stream-combiner
5923 silly lockFile 354aa30a-ify-node-modules-stream-combiner tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/stream-combiner
5924 silly addNameRange number 2 { name: 'punycode', range: '>=0.2.0', hasData: true }
5925 silly addNameRange versions [ 'punycode',
5925 silly addNameRange [ '0.0.1',
5925 silly addNameRange '0.0.2',
5925 silly addNameRange '0.0.1337',
5925 silly addNameRange '0.1.0',
5925 silly addNameRange '0.1.1',
5925 silly addNameRange '0.1.2',
5925 silly addNameRange '0.2.0',
5925 silly addNameRange '0.2.1',
5925 silly addNameRange '0.2.2',
5925 silly addNameRange '0.3.0',
5925 silly addNameRange '1.0.0',
5925 silly addNameRange '1.1.0',
5925 silly addNameRange '1.1.1',
5925 silly addNameRange '1.2.0',
5925 silly addNameRange '1.2.1',
5925 silly addNameRange '1.2.2',
5925 silly addNameRange '1.2.3' ] ]
5926 verbose addNamed [ 'punycode', '1.2.3' ]
5927 verbose addNamed [ '1.2.3', '1.2.3' ]
5928 silly lockFile 674b1c35-punycode-1-2-3 punycode@1.2.3
5929 verbose lock punycode@1.2.3 /home/scarter/.npm/674b1c35-punycode-1-2-3.lock
5930 silly addNameRange number 2 { name: 'source-map', range: '>=0.1.2', hasData: true }
5931 silly addNameRange versions [ 'source-map',
5931 silly addNameRange [ '0.0.0',
5931 silly addNameRange '0.1.0',
5931 silly addNameRange '0.1.1',
5931 silly addNameRange '0.1.2',
5931 silly addNameRange '0.1.3',
5931 silly addNameRange '0.1.4',
5931 silly addNameRange '0.1.5',
5931 silly addNameRange '0.1.6',
5931 silly addNameRange '0.1.7',
5931 silly addNameRange '0.1.8',
5931 silly addNameRange '0.1.9',
5931 silly addNameRange '0.1.10',
5931 silly addNameRange '0.1.11',
5931 silly addNameRange '0.1.12',
5931 silly addNameRange '0.1.13',
5931 silly addNameRange '0.1.14',
5931 silly addNameRange '0.1.15',
5931 silly addNameRange '0.1.16',
5931 silly addNameRange '0.1.17',
5931 silly addNameRange '0.1.18',
5931 silly addNameRange '0.1.19',
5931 silly addNameRange '0.1.20',
5931 silly addNameRange '0.1.21',
5931 silly addNameRange '0.1.22',
5931 silly addNameRange '0.1.23',
5931 silly addNameRange '0.1.24',
5931 silly addNameRange '0.1.25',
5931 silly addNameRange '0.1.26',
5931 silly addNameRange '0.1.27',
5931 silly addNameRange '0.1.28',
5931 silly addNameRange '0.1.29',
5931 silly addNameRange '0.1.30',
5931 silly addNameRange '0.1.31' ] ]
5932 verbose addNamed [ 'source-map', '0.1.31' ]
5933 verbose addNamed [ '0.1.31', '0.1.31' ]
5934 silly lockFile da25d7af-source-map-0-1-31 source-map@0.1.31
5935 verbose lock source-map@0.1.31 /home/scarter/.npm/da25d7af-source-map-0-1-31.lock
5936 verbose tar unpack /home/scarter/.npm/ctype/0.5.2/package.tgz
5937 silly lockFile 65b76c33-ttp-signature-node-modules-ctype tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules/ctype
5938 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules/ctype /home/scarter/.npm/65b76c33-ttp-signature-node-modules-ctype.lock
5939 silly lockFile 8a0a71ce-rter-npm-ctype-0-5-2-package-tgz tar:///home/scarter/.npm/ctype/0.5.2/package.tgz
5940 verbose lock tar:///home/scarter/.npm/ctype/0.5.2/package.tgz /home/scarter/.npm/8a0a71ce-rter-npm-ctype-0-5-2-package-tgz.lock
5941 info preinstall domain-browser@1.1.1
5942 verbose tar unpack /home/scarter/.npm/assert-plus/0.1.2/package.tgz
5943 silly lockFile bfc4705e-gnature-node-modules-assert-plus tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules/assert-plus
5944 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules/assert-plus /home/scarter/.npm/bfc4705e-gnature-node-modules-assert-plus.lock
5945 silly lockFile e287f105-pm-assert-plus-0-1-2-package-tgz tar:///home/scarter/.npm/assert-plus/0.1.2/package.tgz
5946 verbose lock tar:///home/scarter/.npm/assert-plus/0.1.2/package.tgz /home/scarter/.npm/e287f105-pm-assert-plus-0-1-2-package-tgz.lock
5947 verbose tar unpack /home/scarter/.npm/asn1/0.1.11/package.tgz
5948 silly lockFile ed1c1d02-http-signature-node-modules-asn1 tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules/asn1
5949 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules/asn1 /home/scarter/.npm/ed1c1d02-http-signature-node-modules-asn1.lock
5950 silly lockFile fdb2d902-rter-npm-asn1-0-1-11-package-tgz tar:///home/scarter/.npm/asn1/0.1.11/package.tgz
5951 verbose lock tar:///home/scarter/.npm/asn1/0.1.11/package.tgz /home/scarter/.npm/fdb2d902-rter-npm-asn1-0-1-11-package-tgz.lock
5952 verbose tar unpack /home/scarter/.npm/ctype/0.5.2/package.tgz
5953 silly lockFile 9b2fbcca-ttp-signature-node-modules-ctype tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules/ctype
5954 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules/ctype /home/scarter/.npm/9b2fbcca-ttp-signature-node-modules-ctype.lock
5955 silly lockFile 8a0a71ce-rter-npm-ctype-0-5-2-package-tgz tar:///home/scarter/.npm/ctype/0.5.2/package.tgz
5956 verbose lock tar:///home/scarter/.npm/ctype/0.5.2/package.tgz /home/scarter/.npm/8a0a71ce-rter-npm-ctype-0-5-2-package-tgz.lock
5957 verbose tar unpack /home/scarter/.npm/assert-plus/0.1.2/package.tgz
5958 silly lockFile b8bb0aa5-gnature-node-modules-assert-plus tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules/assert-plus
5959 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules/assert-plus /home/scarter/.npm/b8bb0aa5-gnature-node-modules-assert-plus.lock
5960 silly lockFile e287f105-pm-assert-plus-0-1-2-package-tgz tar:///home/scarter/.npm/assert-plus/0.1.2/package.tgz
5961 verbose lock tar:///home/scarter/.npm/assert-plus/0.1.2/package.tgz /home/scarter/.npm/e287f105-pm-assert-plus-0-1-2-package-tgz.lock
5962 verbose tar unpack /home/scarter/.npm/asn1/0.1.11/package.tgz
5963 silly lockFile 16376815-http-signature-node-modules-asn1 tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules/asn1
5964 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules/asn1 /home/scarter/.npm/16376815-http-signature-node-modules-asn1.lock
5965 silly lockFile fdb2d902-rter-npm-asn1-0-1-11-package-tgz tar:///home/scarter/.npm/asn1/0.1.11/package.tgz
5966 verbose lock tar:///home/scarter/.npm/asn1/0.1.11/package.tgz /home/scarter/.npm/fdb2d902-rter-npm-asn1-0-1-11-package-tgz.lock
5967 silly lockFile 7425cda6-er-npm-defined-0-0-0-package-tgz tar:///home/scarter/.npm/defined/0.0.0/package.tgz
5968 silly lockFile 7425cda6-er-npm-defined-0-0-0-package-tgz tar:///home/scarter/.npm/defined/0.0.0/package.tgz
5969 silly lockFile 3ca1afb2-browserify-node-modules-duplexer tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/duplexer
5970 silly lockFile 3ca1afb2-browserify-node-modules-duplexer tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/duplexer
5971 silly lockFile 55d124d9-tream-combiner-0-0-4-package-tgz tar:///home/scarter/.npm/stream-combiner/0.0.4/package.tgz
5972 silly lockFile 55d124d9-tream-combiner-0-0-4-package-tgz tar:///home/scarter/.npm/stream-combiner/0.0.4/package.tgz
5973 silly addNameRange { name: 'querystring',
5973 silly addNameRange range: '>=0.1.0 <0.2.0-0',
5973 silly addNameRange hasData: false }
5974 silly addNameRange { name: 'punycode', range: '>=1.0.0 <1.1.0-0', hasData: false }
5975 verbose readDependencies using package.json deps
5976 info postinstall inherits@2.0.1
5977 silly lockFile 59a049c1-r-npm-duplexer-0-1-1-package-tgz tar:///home/scarter/.npm/duplexer/0.1.1/package.tgz
5978 silly lockFile 59a049c1-r-npm-duplexer-0-1-1-package-tgz tar:///home/scarter/.npm/duplexer/0.1.1/package.tgz
5979 http 304 https://registry.npmjs.org/estraverse
5980 silly registry.get cb [ 304,
5980 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
5980 silly registry.get server: 'Apache',
5980 silly registry.get connection: 'Keep-Alive',
5980 silly registry.get 'keep-alive': 'timeout=10, max=36',
5980 silly registry.get etag: '"AAI6SV3MY5K65O2VQ2IV1GJ1A"',
5980 silly registry.get 'cache-control': 'max-age=1',
5980 silly registry.get vary: 'Accept' } ]
5981 verbose etag estraverse from cache
5982 verbose readDependencies using package.json deps
5983 silly gunzTarPerm extractEntry test/browser.js
5984 silly gunzTarPerm extractEntry test/node.js
5985 silly lockFile 674b1c35-punycode-1-2-3 punycode@1.2.3
5986 silly lockFile 674b1c35-punycode-1-2-3 punycode@1.2.3
5987 silly gunzTarPerm modes [ '755', '644' ]
5988 verbose readDependencies using package.json deps
5989 silly gunzTarPerm modes [ '755', '644' ]
5990 silly gunzTarPerm modes [ '755', '644' ]
5991 verbose cache add [ 'JSONStream@~0.6.4', null ]
5992 verbose cache add name=undefined spec="JSONStream@~0.6.4" args=["JSONStream@~0.6.4",null]
5993 verbose parsed url { protocol: null,
5993 verbose parsed url slashes: null,
5993 verbose parsed url auth: null,
5993 verbose parsed url host: null,
5993 verbose parsed url port: null,
5993 verbose parsed url hostname: null,
5993 verbose parsed url hash: null,
5993 verbose parsed url search: null,
5993 verbose parsed url query: null,
5993 verbose parsed url pathname: 'JSONStream@~0.6.4',
5993 verbose parsed url path: 'JSONStream@~0.6.4',
5993 verbose parsed url href: 'JSONStream@~0.6.4' }
5994 verbose cache add name="JSONStream" spec="~0.6.4" args=["JSONStream","~0.6.4"]
5995 verbose parsed url { protocol: null,
5995 verbose parsed url slashes: null,
5995 verbose parsed url auth: null,
5995 verbose parsed url host: null,
5995 verbose parsed url port: null,
5995 verbose parsed url hostname: null,
5995 verbose parsed url hash: null,
5995 verbose parsed url search: null,
5995 verbose parsed url query: null,
5995 verbose parsed url pathname: '~0.6.4',
5995 verbose parsed url path: '~0.6.4',
5995 verbose parsed url href: '~0.6.4' }
5996 verbose addNamed [ 'JSONStream', '~0.6.4' ]
5997 verbose addNamed [ null, '>=0.6.4-0 <0.7.0-0' ]
5998 silly lockFile ca991f02-JSONStream-0-6-4 JSONStream@~0.6.4
5999 verbose lock JSONStream@~0.6.4 /home/scarter/.npm/ca991f02-JSONStream-0-6-4.lock
6000 silly lockFile a6886041-punycode-0-2-0 punycode@>=0.2.0
6001 silly lockFile a6886041-punycode-0-2-0 punycode@>=0.2.0
6002 verbose readDependencies using package.json deps
6003 silly resolved []
6004 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/domain-browser
6005 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/domain-browser
6006 verbose linkStuff [ false,
6006 verbose linkStuff false,
6006 verbose linkStuff false,
6006 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
6007 info linkStuff domain-browser@1.1.1
6008 verbose linkBins domain-browser@1.1.1
6009 verbose linkMans domain-browser@1.1.1
6010 verbose rebuildBundles domain-browser@1.1.1
6011 info preinstall defined@0.0.0
6012 silly lockFile 9fff233b-wserify-node-modules-shell-quote tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/shell-quote
6013 silly lockFile 9fff233b-wserify-node-modules-shell-quote tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/shell-quote
6014 info preinstall stream-combiner@0.0.4
6015 silly gunzTarPerm extractEntry test/global/filename.js
6016 silly gunzTarPerm extractEntry test/global/main.js
6017 silly resolved [ { name: 'punycode',
6017 silly resolved version: '1.2.3',
6017 silly resolved description: 'A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.',
6017 silly resolved homepage: 'http://mths.be/punycode',
6017 silly resolved main: 'punycode.js',
6017 silly resolved keywords: [ 'punycode', 'unicode', 'idn', 'idna', 'dns', 'url', 'domain' ],
6017 silly resolved licenses: [ [Object], [Object] ],
6017 silly resolved author:
6017 silly resolved { name: 'Mathias Bynens',
6017 silly resolved email: 'mathias@qiwi.be',
6017 silly resolved url: 'http://mathiasbynens.be/' },
6017 silly resolved contributors: [ [Object], [Object] ],
6017 silly resolved bugs: { url: 'https://github.com/bestiejs/punycode.js/issues' },
6017 silly resolved repository:
6017 silly resolved { type: 'git',
6017 silly resolved url: 'https://github.com/bestiejs/punycode.js.git' },
6017 silly resolved engines: [ 'node', 'rhino' ],
6017 silly resolved directories: { doc: 'docs', test: 'tests' },
6017 silly resolved scripts: { test: 'node tests/tests.js' },
6017 silly resolved devDependencies:
6017 silly resolved { grunt: '~0.4.1',
6017 silly resolved 'grunt-contrib-uglify': '~0.2.2',
6017 silly resolved 'grunt-shell': '~0.2.2',
6017 silly resolved istanbul: '~0.1.37',
6017 silly resolved 'qunit-clib': '~1.3.0',
6017 silly resolved qunitjs: '~1.11.0',
6017 silly resolved requirejs: '~2.1.6' },
6017 silly resolved readme: 'ERROR: No README data found!',
6017 silly resolved _id: 'punycode@1.2.3',
6017 silly resolved _from: 'punycode@>=0.2.0' } ]
6018 info install punycode@1.2.3 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/tough-cookie
6019 info installOne punycode@1.2.3
6020 info install domain-browser@1.1.1
6021 silly addNameRange { name: 'JSONStream',
6021 silly addNameRange range: '>=0.6.4-0 <0.7.0-0',
6021 silly addNameRange hasData: false }
6022 silly lockFile 25508cab-pm-shell-quote-0-0-1-package-tgz tar:///home/scarter/.npm/shell-quote/0.0.1/package.tgz
6023 silly lockFile 25508cab-pm-shell-quote-0-0-1-package-tgz tar:///home/scarter/.npm/shell-quote/0.0.1/package.tgz
6024 verbose url raw querystring
6025 verbose url resolving [ 'https://registry.npmjs.org/', './querystring' ]
6026 verbose url resolved https://registry.npmjs.org/querystring
6027 info trying registry request attempt 1 at 12:24:39
6028 verbose etag "CS5D8O5IF6RT7PPWTTUMGNOM6"
6029 http GET https://registry.npmjs.org/querystring
6030 verbose registry.get punycode not expired, no request
6031 silly addNameRange number 2 { name: 'punycode', range: '>=1.0.0 <1.1.0-0', hasData: true }
6032 silly addNameRange versions [ 'punycode',
6032 silly addNameRange [ '0.0.1',
6032 silly addNameRange '0.0.2',
6032 silly addNameRange '0.0.1337',
6032 silly addNameRange '0.1.0',
6032 silly addNameRange '0.1.1',
6032 silly addNameRange '0.1.2',
6032 silly addNameRange '0.2.0',
6032 silly addNameRange '0.2.1',
6032 silly addNameRange '0.2.2',
6032 silly addNameRange '0.3.0',
6032 silly addNameRange '1.0.0',
6032 silly addNameRange '1.1.0',
6032 silly addNameRange '1.1.1',
6032 silly addNameRange '1.2.0',
6032 silly addNameRange '1.2.1',
6032 silly addNameRange '1.2.2',
6032 silly addNameRange '1.2.3' ] ]
6033 verbose addNamed [ 'punycode', '1.0.0' ]
6034 verbose addNamed [ '1.0.0', '1.0.0' ]
6035 silly lockFile ee543fd2-punycode-1-0-0 punycode@1.0.0
6036 verbose lock punycode@1.0.0 /home/scarter/.npm/ee543fd2-punycode-1-0-0.lock
6037 info preinstall duplexer@0.1.1
6038 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/tough-cookie/node_modules/punycode unbuild
6039 info postinstall domain-browser@1.1.1
6040 verbose readDependencies using package.json deps
6041 silly gunzTarPerm extractEntry bin/prepublish.js
6042 silly gunzTarPerm extractEntry .travis.yml
6043 verbose readDependencies using package.json deps
6044 silly gunzTarPerm extractEntry package.json
6045 verbose readDependencies using package.json deps
6046 silly resolved []
6047 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/defined
6048 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/defined
6049 verbose linkStuff [ false,
6049 verbose linkStuff false,
6049 verbose linkStuff false,
6049 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
6050 info linkStuff defined@0.0.0
6051 verbose linkBins defined@0.0.0
6052 verbose linkMans defined@0.0.0
6053 verbose rebuildBundles defined@0.0.0
6054 verbose readDependencies using package.json deps
6055 verbose readDependencies using package.json deps
6056 silly resolved []
6057 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/stream-combiner
6058 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/stream-combiner
6059 verbose linkStuff [ false,
6059 verbose linkStuff false,
6059 verbose linkStuff false,
6059 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
6060 info linkStuff stream-combiner@0.0.4
6061 verbose linkBins stream-combiner@0.0.4
6062 verbose linkMans stream-combiner@0.0.4
6063 verbose rebuildBundles stream-combiner@0.0.4
6064 verbose tar unpack /home/scarter/.npm/punycode/1.2.3/package.tgz
6065 silly lockFile 3ef532f3-ugh-cookie-node-modules-punycode tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/tough-cookie/node_modules/punycode
6066 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/tough-cookie/node_modules/punycode /home/scarter/.npm/3ef532f3-ugh-cookie-node-modules-punycode.lock
6067 silly lockFile 94baf463-r-npm-punycode-1-2-3-package-tgz tar:///home/scarter/.npm/punycode/1.2.3/package.tgz
6068 verbose lock tar:///home/scarter/.npm/punycode/1.2.3/package.tgz /home/scarter/.npm/94baf463-r-npm-punycode-1-2-3-package-tgz.lock
6069 silly addNameRange number 2 { name: 'estraverse',
6069 silly addNameRange range: '>=0.0.4-0 <0.1.0-0',
6069 silly addNameRange hasData: true }
6070 silly addNameRange versions [ 'estraverse',
6070 silly addNameRange [ '0.0.1',
6070 silly addNameRange '0.0.2',
6070 silly addNameRange '0.0.3',
6070 silly addNameRange '0.0.4',
6070 silly addNameRange '1.0.0',
6070 silly addNameRange '1.1.0',
6070 silly addNameRange '1.1.1',
6070 silly addNameRange '1.1.2-1',
6070 silly addNameRange '1.2.0',
6070 silly addNameRange '1.3.0',
6070 silly addNameRange '1.3.1',
6070 silly addNameRange '1.3.2',
6070 silly addNameRange '1.4.0',
6070 silly addNameRange '1.5.0' ] ]
6071 verbose addNamed [ 'estraverse', '0.0.4' ]
6072 verbose addNamed [ '0.0.4', '0.0.4' ]
6073 silly lockFile d026175e-estraverse-0-0-4 estraverse@0.0.4
6074 verbose lock estraverse@0.0.4 /home/scarter/.npm/d026175e-estraverse-0-0-4.lock
6075 silly gunzTarPerm extractEntry package.json
6076 silly gunzTarPerm extractEntry package.json
6077 info install defined@0.0.0
6078 info preinstall shell-quote@0.0.1
6079 verbose readDependencies using package.json deps
6080 silly resolved []
6081 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/duplexer
6082 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/duplexer
6083 verbose linkStuff [ false,
6083 verbose linkStuff false,
6083 verbose linkStuff false,
6083 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
6084 info linkStuff duplexer@0.1.1
6085 verbose linkBins duplexer@0.1.1
6086 verbose linkMans duplexer@0.1.1
6087 verbose rebuildBundles duplexer@0.1.1
6088 info install stream-combiner@0.0.4
6089 verbose registry.get JSONStream not expired, no request
6090 silly addNameRange number 2 { name: 'JSONStream',
6090 silly addNameRange range: '>=0.6.4-0 <0.7.0-0',
6090 silly addNameRange hasData: true }
6091 silly addNameRange versions [ 'JSONStream',
6091 silly addNameRange [ '0.0.0',
6091 silly addNameRange '0.1.0',
6091 silly addNameRange '0.1.1',
6091 silly addNameRange '0.1.2',
6091 silly addNameRange '0.1.3',
6091 silly addNameRange '0.2.0',
6091 silly addNameRange '0.2.1',
6091 silly addNameRange '0.2.2',
6091 silly addNameRange '0.2.3',
6091 silly addNameRange '0.3.0',
6091 silly addNameRange '0.3.1',
6091 silly addNameRange '0.3.2',
6091 silly addNameRange '0.3.3',
6091 silly addNameRange '0.4.0',
6091 silly addNameRange '0.4.1',
6091 silly addNameRange '0.4.2',
6091 silly addNameRange '0.4.3',
6091 silly addNameRange '0.4.4',
6091 silly addNameRange '0.5.0',
6091 silly addNameRange '0.6.0',
6091 silly addNameRange '0.6.1',
6091 silly addNameRange '0.6.2',
6091 silly addNameRange '0.6.3',
6091 silly addNameRange '0.6.4',
6091 silly addNameRange '0.7.0',
6091 silly addNameRange '0.7.1' ] ]
6092 verbose addNamed [ 'JSONStream', '0.6.4' ]
6093 verbose addNamed [ '0.6.4', '0.6.4' ]
6094 silly lockFile 77c35b93-JSONStream-0-6-4 JSONStream@0.6.4
6095 verbose lock JSONStream@0.6.4 /home/scarter/.npm/77c35b93-JSONStream-0-6-4.lock
6096 info install duplexer@0.1.1
6097 silly gunzTarPerm extractEntry test/simple.js
6098 silly gunzTarPerm extractEntry test/vectors/byte0096.dat
6099 info postinstall defined@0.0.0
6100 info postinstall stream-combiner@0.0.4
6101 silly gunzTarPerm extractEntry test/stringify.js
6102 silly gunzTarPerm extractEntry test/stringify_object.js
6103 silly gunzTarPerm extractEntry README.md
6104 silly gunzTarPerm extractEntry assert.js
6105 silly lockFile 758953aa-esprima-1-0-4 esprima@1.0.4
6106 silly lockFile 758953aa-esprima-1-0-4 esprima@1.0.4
6107 verbose readDependencies using package.json deps
6108 info postinstall duplexer@0.1.1
6109 silly gunzTarPerm extractEntry README
6110 silly gunzTarPerm extractEntry LICENSE
6111 silly gunzTarPerm extractEntry .npmignore
6112 silly gunzTarPerm extractEntry README.md
6113 silly lockFile de249c7a-esprima-1-0-2 esprima@~1.0.2
6114 silly lockFile de249c7a-esprima-1-0-2 esprima@~1.0.2
6115 verbose readDependencies using package.json deps
6116 silly resolved []
6117 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/shell-quote
6118 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/shell-quote
6119 verbose linkStuff [ false,
6119 verbose linkStuff false,
6119 verbose linkStuff false,
6119 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
6120 info linkStuff shell-quote@0.0.1
6121 verbose linkBins shell-quote@0.0.1
6122 verbose linkMans shell-quote@0.0.1
6123 verbose rebuildBundles shell-quote@0.0.1
6124 silly lockFile 12d332b3-owserify-node-modules-deep-equal tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/deep-equal
6125 silly lockFile 12d332b3-owserify-node-modules-deep-equal tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/deep-equal
6126 silly gunzTarPerm extractEntry test/insert/buffer.js
6127 silly gunzTarPerm extractEntry test/insert/main.js
6128 silly resolved [ { name: 'esprima',
6128 silly resolved description: 'ECMAScript parsing infrastructure for multipurpose analysis',
6128 silly resolved homepage: 'http://esprima.org',
6128 silly resolved main: 'esprima.js',
6128 silly resolved bin:
6128 silly resolved { esparse: './bin/esparse.js',
6128 silly resolved esvalidate: './bin/esvalidate.js' },
6128 silly resolved files:
6128 silly resolved [ 'bin',
6128 silly resolved 'test/run.js',
6128 silly resolved 'test/runner.js',
6128 silly resolved 'test/test.js',
6128 silly resolved 'test/compat.js',
6128 silly resolved 'test/reflect.js',
6128 silly resolved 'esprima.js' ],
6128 silly resolved version: '1.0.4',
6128 silly resolved engines: { node: '>=0.4.0' },
6128 silly resolved maintainers: [ [Object] ],
6128 silly resolved repository: { type: 'git', url: 'http://github.com/ariya/esprima.git' },
6128 silly resolved licenses: [ [Object] ],
6128 silly resolved keywords: [ 'ast', 'ecmascript', 'javascript', 'parser', 'syntax' ],
6128 silly resolved scripts:
6128 silly resolved { test: 'node test/run.js',
6128 silly resolved benchmark: 'node test/benchmarks.js',
6128 silly resolved 'benchmark-quick': 'node test/benchmarks.js quick' },
6128 silly resolved readme: '**Esprima** ([esprima.org](http://esprima.org)) is a high performance,\nstandard-compliant [ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm)\nparser written in ECMAScript (also popularly known as\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript>JavaScript)).\nEsprima is created and maintained by [Ariya Hidayat](http://twitter.com/ariyahidayat),\nwith the help of [many contributors](https://github.com/ariya/esprima/contributors).\n\nEsprima runs on web browsers (IE 6+, Firefox 1+, Safari 3+, Chrome 1+, Konqueror 4.6+, Opera 8+) as well as\n[Node.js](http://nodejs.org).\n\n### Features\n\n- Full support for [ECMAScript 5.1](http://www.ecma-international.org/publications/standards/Ecma-262.htm)(ECMA-262)\n- Sensible [syntax tree format](http://esprima.org/doc/index.html#ast) compatible with Mozilla\n[Parser AST](https://developer.mozilla.org/en/SpiderMonkey/Parser_API)\n- Heavily tested (> 550 [unit tests](http://esprima.org/test/) with solid 100% statement coverage)\n- Optional tracking of syntax node location (index-based and line-column)\n- Experimental support for ES6/Harmony (module, class, destructuring, ...)\n\nEsprima is blazing fast (see the [benchmark suite](http://esprima.org/test/benchmarks.html)).\nIt is up to 3x faster than UglifyJS v1 and it is still [competitive](http://esprima.org/test/compare.html)\nwith the new generation of fast parsers.\n\n### Applications\n\nEsprima serves as the basis for many popular JavaScript development tools:\n\n- Code coverage analysis: [node-cover](https://github.com/itay/node-cover), [Istanbul](https://github.com/yahoo/Istanbul)\n- Documentation tool: [JFDoc](https://github.com/thejohnfreeman/jfdoc), [JSDuck](https://github.com/senchalabs/jsduck)\n- Language extension: [LLJS](http://mbebenita.github.com/LLJS/) (low-level JS),\n[Sweet.js](http://sweetjs.org/) (macro)\n- ES6/Harmony transpiler: [Six](https://github.com/matthewrobb/six), [Harmonizr](https://github.com/jdiamond/harmonizr)\n- Eclipse Orion smart editing ([outline view](https://github.com/aclement/esprima-outline), [content assist](http://contraptionsforprogramming.blogspot.com/2012/02/better-javascript-content-assist-in.html))\n- Source code modification: [Esmorph](https://github.com/ariya/esmorph), [Code Painter](https://github.com/fawek/codepainter),\n- Source transformation: [node-falafel](https://github.com/substack/node-falafel), [Esmangle](https://github.com/Constellation/esmangle), [escodegen](https://github.com/Constellation/escodegen)\n\n### Questions?\n- [Documentation](http://esprima.org/doc)\n- [Issue tracker](http://issues.esprima.org): [known problems](http://code.google.com/p/esprima/issues/list?q=Defect)\nand [future plans](http://code.google.com/p/esprima/issues/list?q=Enhancement)\n- [Mailing list](http://groups.google.com/group/esprima)\n- [Contribution guide](http://esprima.org/doc/index.html#contribution)\n\nFollow [@Esprima](http://twitter.com/Esprima) on Twitter to get the\ndevelopment updates.\nFeedback and contribution are welcomed!\n\n### License\n\nCopyright (C) 2012, 2011 [Ariya Hidayat](http://ariya.ofilabs.com/about)\n and other contributors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\nTHIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n',
6128 silly resolved readmeFilename: 'README.md',
6128 silly resolved bugs: { url: 'https://github.com/ariya/esprima/issues' },
6128 silly resolved _id: 'esprima@1.0.4',
6128 silly resolved _from: 'esprima@~1.0.2' } ]
6129 info install esprima@1.0.4 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/falafel
6130 info installOne esprima@1.0.4
6131 info install shell-quote@0.0.1
6132 silly lockFile 8df9a9ad-npm-deep-equal-0-1-2-package-tgz tar:///home/scarter/.npm/deep-equal/0.1.2/package.tgz
6133 silly lockFile 8df9a9ad-npm-deep-equal-0-1-2-package-tgz tar:///home/scarter/.npm/deep-equal/0.1.2/package.tgz
6134 silly lockFile da25d7af-source-map-0-1-31 source-map@0.1.31
6135 silly lockFile da25d7af-source-map-0-1-31 source-map@0.1.31
6136 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/falafel/node_modules/esprima unbuild
6137 silly lockFile aeafb391-source-map-0-1-2 source-map@>= 0.1.2
6138 silly lockFile aeafb391-source-map-0-1-2 source-map@>= 0.1.2
6139 silly gunzTarPerm extractEntry readme.markdown
6140 silly gunzTarPerm extractEntry example/foo.js
6141 info postinstall shell-quote@0.0.1
6142 http 304 https://registry.npmjs.org/boom
6143 silly registry.get cb [ 304,
6143 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
6143 silly registry.get server: 'Apache',
6143 silly registry.get connection: 'Keep-Alive',
6143 silly registry.get 'keep-alive': 'timeout=10, max=35',
6143 silly registry.get etag: '"EFVHAI917WYBMZ59CZRM5TX1S"',
6143 silly registry.get 'cache-control': 'max-age=1',
6143 silly registry.get vary: 'Accept' } ]
6144 verbose etag boom from cache
6145 http 304 https://registry.npmjs.org/hoek
6146 silly registry.get cb [ 304,
6146 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
6146 silly registry.get server: 'Apache',
6146 silly registry.get connection: 'Keep-Alive',
6146 silly registry.get 'keep-alive': 'timeout=10, max=36',
6146 silly registry.get etag: '"35O3Y5X0YUTDZP2PJNLDDQPZU"',
6146 silly registry.get 'cache-control': 'max-age=1',
6146 silly registry.get vary: 'Accept' } ]
6147 verbose etag hoek from cache
6148 http 304 https://registry.npmjs.org/cryptiles
6149 silly registry.get cb [ 304,
6149 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
6149 silly registry.get server: 'Apache',
6149 silly registry.get connection: 'Keep-Alive',
6149 silly registry.get 'keep-alive': 'timeout=10, max=36',
6149 silly registry.get etag: '"E8CJFBP1PN4V4IYR058PDSSYU"',
6149 silly registry.get 'cache-control': 'max-age=1',
6149 silly registry.get vary: 'Accept' } ]
6150 verbose etag cryptiles from cache
6151 http 304 https://registry.npmjs.org/sntp
6152 silly registry.get cb [ 304,
6152 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
6152 silly registry.get server: 'Apache',
6152 silly registry.get connection: 'Keep-Alive',
6152 silly registry.get 'keep-alive': 'timeout=10, max=37',
6152 silly registry.get etag: '"8VD35U7JU50NF5K8OT4S4KW0Y"',
6152 silly registry.get 'cache-control': 'max-age=1',
6152 silly registry.get vary: 'Accept' } ]
6153 verbose etag sntp from cache
6154 http 304 https://registry.npmjs.org/nan
6155 silly registry.get cb [ 304,
6155 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:39 GMT',
6155 silly registry.get server: 'Apache',
6155 silly registry.get connection: 'Keep-Alive',
6155 silly registry.get 'keep-alive': 'timeout=10, max=35',
6155 silly registry.get etag: '"9UECXC57D7P4LHUYG2GZ8I49F"',
6155 silly registry.get 'cache-control': 'max-age=1',
6155 silly registry.get vary: 'Accept' } ]
6156 verbose etag nan from cache
6157 silly lockFile 794e7c01--browserify-node-modules-parents tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/parents
6158 silly lockFile 794e7c01--browserify-node-modules-parents tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/parents
6159 verbose tar unpack /home/scarter/.npm/esprima/1.0.4/package.tgz
6160 silly lockFile f11f2ce5-les-falafel-node-modules-esprima tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/falafel/node_modules/esprima
6161 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/falafel/node_modules/esprima /home/scarter/.npm/f11f2ce5-les-falafel-node-modules-esprima.lock
6162 silly lockFile d1fd8229-er-npm-esprima-1-0-4-package-tgz tar:///home/scarter/.npm/esprima/1.0.4/package.tgz
6163 verbose lock tar:///home/scarter/.npm/esprima/1.0.4/package.tgz /home/scarter/.npm/d1fd8229-er-npm-esprima-1-0-4-package-tgz.lock
6164 silly lockFile 646d790f-er-npm-parents-0-0-2-package-tgz tar:///home/scarter/.npm/parents/0.0.2/package.tgz
6165 silly lockFile 646d790f-er-npm-parents-0-0-2-package-tgz tar:///home/scarter/.npm/parents/0.0.2/package.tgz
6166 info preinstall deep-equal@0.1.2
6167 silly lockFile 0ca3bc78-serify-node-modules-syntax-error tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/syntax-error
6168 silly lockFile 0ca3bc78-serify-node-modules-syntax-error tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/syntax-error
6169 silly lockFile 0f62d69b-m-syntax-error-0-0-1-package-tgz tar:///home/scarter/.npm/syntax-error/0.0.1/package.tgz
6170 silly lockFile 0f62d69b-m-syntax-error-0-0-1-package-tgz tar:///home/scarter/.npm/syntax-error/0.0.1/package.tgz
6171 silly gunzTarPerm extractEntry ctio.js
6172 silly gunzTarPerm modes [ '755', '644' ]
6173 verbose readDependencies using package.json deps
6174 silly gunzTarPerm extractEntry ctf.js
6175 silly lockFile ee543fd2-punycode-1-0-0 punycode@1.0.0
6176 silly lockFile ee543fd2-punycode-1-0-0 punycode@1.0.0
6177 silly gunzTarPerm extractEntry LICENSE
6178 silly gunzTarPerm extractEntry lib/index.js
6179 info preinstall parents@0.0.2
6180 verbose readDependencies using package.json deps
6181 silly resolved []
6182 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/deep-equal
6183 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/deep-equal
6184 verbose linkStuff [ false,
6184 verbose linkStuff false,
6184 verbose linkStuff false,
6184 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
6185 info linkStuff deep-equal@0.1.2
6186 verbose linkBins deep-equal@0.1.2
6187 verbose linkMans deep-equal@0.1.2
6188 verbose rebuildBundles deep-equal@0.1.2
6189 silly gunzTarPerm extractEntry test/insert/foo/buf.js
6190 silly gunzTarPerm extractEntry test/insert/foo/index.js
6191 silly gunzTarPerm extractEntry test/destroy_missing.js
6192 silly gunzTarPerm extractEntry test/test.js
6193 silly lockFile fdddb44b-punycode-1-0-0-1-1-0 punycode@>=1.0.0 <1.1.0
6194 silly lockFile fdddb44b-punycode-1-0-0-1-1-0 punycode@>=1.0.0 <1.1.0
6195 silly lockFile 7eae7ddc-ules-browserify-node-modules-umd tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/umd
6196 silly lockFile 7eae7ddc-ules-browserify-node-modules-umd tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/umd
6197 silly lockFile d026175e-estraverse-0-0-4 estraverse@0.0.4
6198 silly lockFile d026175e-estraverse-0-0-4 estraverse@0.0.4
6199 silly addNameRange number 2 { name: 'boom', range: '>=0.4.0-0 <0.5.0-0', hasData: true }
6200 silly addNameRange versions [ 'boom',
6200 silly addNameRange [ '0.0.1',
6200 silly addNameRange '0.0.2',
6200 silly addNameRange '0.1.0',
6200 silly addNameRange '0.2.0',
6200 silly addNameRange '0.2.1',
6200 silly addNameRange '0.3.0',
6200 silly addNameRange '0.3.1',
6200 silly addNameRange '0.3.2',
6200 silly addNameRange '0.3.3',
6200 silly addNameRange '0.3.4',
6200 silly addNameRange '0.3.5',
6200 silly addNameRange '0.3.6',
6200 silly addNameRange '0.3.7',
6200 silly addNameRange '0.3.8',
6200 silly addNameRange '0.4.0',
6200 silly addNameRange '0.4.1',
6200 silly addNameRange '0.4.2',
6200 silly addNameRange '1.0.0',
6200 silly addNameRange '1.0.1',
6200 silly addNameRange '1.0.2',
6200 silly addNameRange '1.1.0',
6200 silly addNameRange '1.1.1',
6200 silly addNameRange '1.1.2',
6200 silly addNameRange '1.2.0',
6200 silly addNameRange '1.2.1',
6200 silly addNameRange '2.0.0' ] ]
6201 verbose addNamed [ 'boom', '0.4.2' ]
6202 verbose addNamed [ '0.4.2', '0.4.2' ]
6203 silly lockFile 5b106bb4-boom-0-4-2 boom@0.4.2
6204 verbose lock boom@0.4.2 /home/scarter/.npm/5b106bb4-boom-0-4-2.lock
6205 info install deep-equal@0.1.2
6206 silly addNameRange number 2 { name: 'cryptiles', range: '>=0.2.0-0 <0.3.0-0', hasData: true }
6207 silly addNameRange versions [ 'cryptiles',
6207 silly addNameRange [ '0.0.1',
6207 silly addNameRange '0.0.2',
6207 silly addNameRange '0.1.0',
6207 silly addNameRange '0.1.1',
6207 silly addNameRange '0.1.2',
6207 silly addNameRange '0.1.3',
6207 silly addNameRange '0.2.0',
6207 silly addNameRange '0.2.1',
6207 silly addNameRange '0.2.2',
6207 silly addNameRange '1.0.0',
6207 silly addNameRange '1.0.1',
6207 silly addNameRange '2.0.0' ] ]
6208 verbose addNamed [ 'cryptiles', '0.2.2' ]
6209 verbose addNamed [ '0.2.2', '0.2.2' ]
6210 silly lockFile d1e460c8-cryptiles-0-2-2 cryptiles@0.2.2
6211 verbose lock cryptiles@0.2.2 /home/scarter/.npm/d1e460c8-cryptiles-0-2-2.lock
6212 silly addNameRange number 2 { name: 'sntp', range: '>=0.2.0-0 <0.3.0-0', hasData: true }
6213 silly addNameRange versions [ 'sntp',
6213 silly addNameRange [ '0.0.0',
6213 silly addNameRange '0.0.1',
6213 silly addNameRange '0.1.0',
6213 silly addNameRange '0.1.1',
6213 silly addNameRange '0.1.2',
6213 silly addNameRange '0.1.3',
6213 silly addNameRange '0.1.4',
6213 silly addNameRange '0.2.0',
6213 silly addNameRange '0.2.1',
6213 silly addNameRange '0.2.2',
6213 silly addNameRange '0.2.3',
6213 silly addNameRange '0.2.4',
6213 silly addNameRange '1.0.0',
6213 silly addNameRange '1.0.1',
6213 silly addNameRange '1.0.2' ] ]
6214 verbose addNamed [ 'sntp', '0.2.4' ]
6215 verbose addNamed [ '0.2.4', '0.2.4' ]
6216 silly lockFile 92c13a43-sntp-0-2-4 sntp@0.2.4
6217 verbose lock sntp@0.2.4 /home/scarter/.npm/92c13a43-sntp-0-2-4.lock
6218 silly addNameRange number 2 { name: 'hoek', range: '>=0.9.0-0 <0.10.0-0', hasData: true }
6219 silly addNameRange versions [ 'hoek',
6219 silly addNameRange [ '0.0.1',
6219 silly addNameRange '0.0.2',
6219 silly addNameRange '0.0.3',
6219 silly addNameRange '0.0.4',
6219 silly addNameRange '0.0.5',
6219 silly addNameRange '0.0.6',
6219 silly addNameRange '0.0.7',
6219 silly addNameRange '0.0.8',
6219 silly addNameRange '0.0.9',
6219 silly addNameRange '0.0.10',
6219 silly addNameRange '0.0.11',
6219 silly addNameRange '0.0.12',
6219 silly addNameRange '0.0.13',
6219 silly addNameRange '0.0.14',
6219 silly addNameRange '0.0.15',
6219 silly addNameRange '0.0.16',
6219 silly addNameRange '0.0.17',
6219 silly addNameRange '0.0.18',
6219 silly addNameRange '0.0.19',
6219 silly addNameRange '0.0.21',
6219 silly addNameRange '0.1.0',
6219 silly addNameRange '0.2.0',
6219 silly addNameRange '0.3.0',
6219 silly addNameRange '0.4.0',
6219 silly addNameRange '0.4.1',
6219 silly addNameRange '0.4.2',
6219 silly addNameRange '0.4.3',
6219 silly addNameRange '0.4.4',
6219 silly addNameRange '0.4.5',
6219 silly addNameRange '0.5.0',
6219 silly addNameRange '0.6.0',
6219 silly addNameRange '0.6.1',
6219 silly addNameRange '0.6.2',
6219 silly addNameRange '0.7.0',
6219 silly addNameRange '0.7.1',
6219 silly addNameRange '0.7.2',
6219 silly addNameRange '0.7.3',
6219 silly addNameRange '0.7.4',
6219 silly addNameRange '0.7.5',
6219 silly addNameRange '0.7.6',
6219 silly addNameRange '0.8.0',
6219 silly addNameRange '0.8.1',
6219 silly addNameRange '0.8.2',
6219 silly addNameRange '0.8.3',
6219 silly addNameRange '0.8.4',
6219 silly addNameRange '0.8.5',
6219 silly addNameRange '0.9.0',
6219 silly addNameRange '0.9.1',
6219 silly addNameRange '0.10.0',
6219 silly addNameRange '1.0.0',
6219 silly addNameRange '1.0.1',
6219 silly addNameRange '1.0.2',
6219 silly addNameRange '1.0.3',
6219 silly addNameRange '1.1.0',
6219 silly addNameRange '1.1.1',
6219 silly addNameRange '1.1.2',
6219 silly addNameRange '1.2.0',
6219 silly addNameRange '1.3.0',
6219 silly addNameRange '1.4.0',
6219 silly addNameRange '1.4.1' ] ]
6220 verbose addNamed [ 'hoek', '0.9.1' ]
6221 verbose addNamed [ '0.9.1', '0.9.1' ]
6222 silly lockFile 8ffbae6b-hoek-0-9-1 hoek@0.9.1
6223 verbose lock hoek@0.9.1 /home/scarter/.npm/8ffbae6b-hoek-0-9-1.lock
6224 silly lockFile bd4f0674-carter-npm-umd-2-0-0-package-tgz tar:///home/scarter/.npm/umd/2.0.0/package.tgz
6225 silly lockFile bd4f0674-carter-npm-umd-2-0-0-package-tgz tar:///home/scarter/.npm/umd/2.0.0/package.tgz
6226 silly addNameRange number 2 { name: 'nan', range: '>=0.6.0-0 <0.7.0-0', hasData: true }
6227 silly addNameRange versions [ 'nan',
6227 silly addNameRange [ '0.3.0-wip',
6227 silly addNameRange '0.3.0-wip2',
6227 silly addNameRange '0.3.0',
6227 silly addNameRange '0.3.1',
6227 silly addNameRange '0.3.2',
6227 silly addNameRange '0.4.0',
6227 silly addNameRange '0.4.1',
6227 silly addNameRange '0.4.2',
6227 silly addNameRange '0.4.3',
6227 silly addNameRange '0.4.4',
6227 silly addNameRange '0.5.0',
6227 silly addNameRange '0.5.1',
6227 silly addNameRange '0.5.2',
6227 silly addNameRange '0.6.0',
6227 silly addNameRange '0.7.0',
6227 silly addNameRange '0.7.1',
6227 silly addNameRange '0.8.0' ] ]
6228 verbose addNamed [ 'nan', '0.6.0' ]
6229 verbose addNamed [ '0.6.0', '0.6.0' ]
6230 silly lockFile fb2e119c-nan-0-6-0 nan@0.6.0
6231 verbose lock nan@0.6.0 /home/scarter/.npm/fb2e119c-nan-0-6-0.lock
6232 silly lockFile 8dde2dd5-estraverse-0-0-4 estraverse@~0.0.4
6233 silly lockFile 8dde2dd5-estraverse-0-0-4 estraverse@~0.0.4
6234 silly lockFile 77c35b93-JSONStream-0-6-4 JSONStream@0.6.4
6235 silly lockFile 77c35b93-JSONStream-0-6-4 JSONStream@0.6.4
6236 info preinstall syntax-error@0.0.1
6237 silly gunzTarPerm extractEntry example/output.js
6238 silly gunzTarPerm extractEntry example/self.js
6239 silly resolved [ { name: 'esprima',
6239 silly resolved description: 'ECMAScript parsing infrastructure for multipurpose analysis',
6239 silly resolved homepage: 'http://esprima.org',
6239 silly resolved main: 'esprima.js',
6239 silly resolved bin:
6239 silly resolved { esparse: './bin/esparse.js',
6239 silly resolved esvalidate: './bin/esvalidate.js' },
6239 silly resolved files:
6239 silly resolved [ 'bin',
6239 silly resolved 'test/run.js',
6239 silly resolved 'test/runner.js',
6239 silly resolved 'test/test.js',
6239 silly resolved 'test/compat.js',
6239 silly resolved 'test/reflect.js',
6239 silly resolved 'esprima.js' ],
6239 silly resolved version: '1.0.4',
6239 silly resolved engines: { node: '>=0.4.0' },
6239 silly resolved maintainers: [ [Object] ],
6239 silly resolved repository: { type: 'git', url: 'http://github.com/ariya/esprima.git' },
6239 silly resolved licenses: [ [Object] ],
6239 silly resolved keywords: [ 'ast', 'ecmascript', 'javascript', 'parser', 'syntax' ],
6239 silly resolved scripts:
6239 silly resolved { test: 'node test/run.js',
6239 silly resolved benchmark: 'node test/benchmarks.js',
6239 silly resolved 'benchmark-quick': 'node test/benchmarks.js quick' },
6239 silly resolved readme: '**Esprima** ([esprima.org](http://esprima.org)) is a high performance,\nstandard-compliant [ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm)\nparser written in ECMAScript (also popularly known as\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript>JavaScript)).\nEsprima is created and maintained by [Ariya Hidayat](http://twitter.com/ariyahidayat),\nwith the help of [many contributors](https://github.com/ariya/esprima/contributors).\n\nEsprima runs on web browsers (IE 6+, Firefox 1+, Safari 3+, Chrome 1+, Konqueror 4.6+, Opera 8+) as well as\n[Node.js](http://nodejs.org).\n\n### Features\n\n- Full support for [ECMAScript 5.1](http://www.ecma-international.org/publications/standards/Ecma-262.htm)(ECMA-262)\n- Sensible [syntax tree format](http://esprima.org/doc/index.html#ast) compatible with Mozilla\n[Parser AST](https://developer.mozilla.org/en/SpiderMonkey/Parser_API)\n- Heavily tested (> 550 [unit tests](http://esprima.org/test/) with solid 100% statement coverage)\n- Optional tracking of syntax node location (index-based and line-column)\n- Experimental support for ES6/Harmony (module, class, destructuring, ...)\n\nEsprima is blazing fast (see the [benchmark suite](http://esprima.org/test/benchmarks.html)).\nIt is up to 3x faster than UglifyJS v1 and it is still [competitive](http://esprima.org/test/compare.html)\nwith the new generation of fast parsers.\n\n### Applications\n\nEsprima serves as the basis for many popular JavaScript development tools:\n\n- Code coverage analysis: [node-cover](https://github.com/itay/node-cover), [Istanbul](https://github.com/yahoo/Istanbul)\n- Documentation tool: [JFDoc](https://github.com/thejohnfreeman/jfdoc), [JSDuck](https://github.com/senchalabs/jsduck)\n- Language extension: [LLJS](http://mbebenita.github.com/LLJS/) (low-level JS),\n[Sweet.js](http://sweetjs.org/) (macro)\n- ES6/Harmony transpiler: [Six](https://github.com/matthewrobb/six), [Harmonizr](https://github.com/jdiamond/harmonizr)\n- Eclipse Orion smart editing ([outline view](https://github.com/aclement/esprima-outline), [content assist](http://contraptionsforprogramming.blogspot.com/2012/02/better-javascript-content-assist-in.html))\n- Source code modification: [Esmorph](https://github.com/ariya/esmorph), [Code Painter](https://github.com/fawek/codepainter),\n- Source transformation: [node-falafel](https://github.com/substack/node-falafel), [Esmangle](https://github.com/Constellation/esmangle), [escodegen](https://github.com/Constellation/escodegen)\n\n### Questions?\n- [Documentation](http://esprima.org/doc)\n- [Issue tracker](http://issues.esprima.org): [known problems](http://code.google.com/p/esprima/issues/list?q=Defect)\nand [future plans](http://code.google.com/p/esprima/issues/list?q=Enhancement)\n- [Mailing list](http://groups.google.com/group/esprima)\n- [Contribution guide](http://esprima.org/doc/index.html#contribution)\n\nFollow [@Esprima](http://twitter.com/Esprima) on Twitter to get the\ndevelopment updates.\nFeedback and contribution are welcomed!\n\n### License\n\nCopyright (C) 2012, 2011 [Ariya Hidayat](http://ariya.ofilabs.com/about)\n and other contributors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\nTHIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n',
6239 silly resolved readmeFilename: 'README.md',
6239 silly resolved bugs: { url: 'https://github.com/ariya/esprima/issues' },
6239 silly resolved _id: 'esprima@1.0.4',
6239 silly resolved _from: 'esprima@~1.0.2' },
6239 silly resolved { name: 'source-map',
6239 silly resolved description: 'Generates and consumes source maps',
6239 silly resolved version: '0.1.31',
6239 silly resolved homepage: 'https://github.com/mozilla/source-map',
6239 silly resolved author: { name: 'Nick Fitzgerald', email: 'nfitzgerald@mozilla.com' },
6239 silly resolved contributors:
6239 silly resolved [ [Object],
6239 silly resolved [Object],
6239 silly resolved [Object],
6239 silly resolved [Object],
6239 silly resolved [Object],
6239 silly resolved [Object],
6239 silly resolved [Object],
6239 silly resolved [Object],
6239 silly resolved [Object],
6239 silly resolved [Object],
6239 silly resolved [Object],
6239 silly resolved [Object],
6239 silly resolved [Object],
6239 silly resolved [Object],
6239 silly resolved [Object],
6239 silly resolved [Object] ],
6239 silly resolved repository: { type: 'git', url: 'http://github.com/mozilla/source-map.git' },
6239 silly resolved directories: { lib: './lib' },
6239 silly resolved main: './lib/source-map.js',
6239 silly resolved engines: { node: '>=0.8.0' },
6239 silly resolved licenses: [ [Object] ],
6239 silly resolved dependencies: { amdefine: '>=0.0.4' },
6239 silly resolved devDependencies: { dryice: '>=0.4.8' },
6239 silly resolved scripts:
6239 silly resolved { test: 'node test/run-tests.js',
6239 silly resolved build: 'node Makefile.dryice.js' },
6239 silly resolved readme: '# Source Map\n\nThis is a library to generate and consume the source map format\n[described here][format].\n\nThis library is written in the Asynchronous Module Definition format, and works\nin the following environments:\n\n* Modern Browsers supporting ECMAScript 5 (either after the build, or with an\n AMD loader such as RequireJS)\n\n* Inside Firefox (as a JSM file, after the build)\n\n* With NodeJS versions 0.8.X and higher\n\n## Node\n\n $ npm install source-map\n\n## Building from Source (for everywhere else)\n\nInstall Node and then run\n\n $ git clone https://fitzgen@github.com/mozilla/source-map.git\n $ cd source-map\n $ npm link .\n\nNext, run\n\n $ node Makefile.dryice.js\n\nThis should spew a bunch of stuff to stdout, and create the following files:\n\n* `dist/source-map.js` - The unminified browser version.\n\n* `dist/source-map.min.js` - The minified browser version.\n\n* `dist/SourceMap.jsm` - The JavaScript Module for inclusion in Firefox source.\n\n## Examples\n\n### Consuming a source map\n\n var rawSourceMap = {\n version: 3,\n file: \'min.js\',\n names: [\'bar\', \'baz\', \'n\'],\n sources: [\'one.js\', \'two.js\'],\n sourceRoot: \'http://example.com/www/js/\',\n mappings: \'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA\'\n };\n\n var smc = new SourceMapConsumer(rawSourceMap);\n\n console.log(smc.sources);\n // [ \'http://example.com/www/js/one.js\',\n // \'http://example.com/www/js/two.js\' ]\n\n console.log(smc.originalPositionFor({\n line: 2,\n column: 28\n }));\n // { source: \'http://example.com/www/js/two.js\',\n // line: 2,\n // column: 10,\n // name: \'n\' }\n\n console.log(smc.generatedPositionFor({\n source: \'http://example.com/www/js/two.js\',\n line: 2,\n column: 10\n }));\n // { line: 2, column: 28 }\n\n smc.eachMapping(function (m) {\n // ...\n });\n\n### Generating a source map\n\nIn depth guide:\n[**Compiling to JavaScript, and Debugging with Source Maps**](https://hacks.mozilla.org/2013/05/compiling-to-javascript-and-debugging-with-source-maps/)\n\n#### With SourceNode (high level API)\n\n function compile(ast) {\n switch (ast.type) {\n case \'BinaryExpression\':\n return new SourceNode(\n ast.location.line,\n ast.location.column,\n ast.location.source,\n [compile(ast.left), " + ", compile(ast.right)]\n );\n case \'Literal\':\n return new SourceNode(\n ast.location.line,\n ast.location.column,\n ast.location.source,\n String(ast.value)\n );\n // ...\n default:\n throw new Error("Bad AST");\n }\n }\n\n var ast = parse("40 + 2", "add.js");\n console.log(compile(ast).toStringWithSourceMap({\n file: \'add.js\'\n }));\n // { code: \'40 + 2\',\n // map: [object SourceMapGenerator] }\n\n#### With SourceMapGenerator (low level API)\n\n var map = new SourceMapGenerator({\n file: "source-mapped.js"\n });\n\n map.addMapping({\n generated: {\n line: 10,\n column: 35\n },\n source: "foo.js",\n original: {\n line: 33,\n column: 2\n },\n name: "christopher"\n });\n\n console.log(map.toString());\n // \'{"version":3,"file":"source-mapped.js","sources":["foo.js"],"names":["christopher"],"mappings":";;;;;;;;;mCAgCEA"}\'\n\n## API\n\nGet a reference to the module:\n\n // NodeJS\n var sourceMap = require(\'source-map\');\n\n // Browser builds\n var sourceMap = window.sourceMap;\n\n // Inside Firefox\n let sourceMap = {};\n Components.utils.import(\'resource:///modules/devtools/SourceMap.jsm\', sourceMap);\n\n### SourceMapConsumer\n\nA SourceMapConsumer instance represents a parsed source map which we can query\nfor information about the original file positions by giving it a file position\nin the generated source.\n\n#### new SourceMapConsumer(rawSourceMap)\n\nThe only parameter is the raw source map (either as a string which can be\n`JSON.parse`\'d, or an object). According to the spec, source maps have the\nfollowing attributes:\n\n* `version`: Which version of the source map spec this map is following.\n\n* `sources`: An array of URLs to the original source files.\n\n* `names`: An array of identifiers which can be referrenced by individual\n mappings.\n\n* `sourceRoot`: Optional. The URL root from which all sources are relative.\n\n* `sourcesContent`: Optional. An array of contents of the original source files.\n\n* `mappings`: A string of base64 VLQs which contain the actual mappings.\n\n* `file`: The generated filename this source map is associated with.\n\n#### SourceMapConsumer.prototype.originalPositionFor(generatedPosition)\n\nReturns the original source, line, and column information for the generated\nsource\'s line and column positions provided. The only argument is an object with\nthe following properties:\n\n* `line`: The line number in the generated source.\n\n* `column`: The column number in the generated source.\n\nand an object is returned with the following properties:\n\n* `source`: The original source file, or null if this information is not\n available.\n\n* `line`: The line number in the original source, or null if this information is\n not available.\n\n* `column`: The column number in the original source, or null or null if this\n information is not available.\n\n* `name`: The original identifier, or null if this information is not available.\n\n#### SourceMapConsumer.prototype.generatedPositionFor(originalPosition)\n\nReturns the generated line and column information for the original source,\nline, and column positions provided. The only argument is an object with\nthe following properties:\n\n* `source`: The filename of the original source.\n\n* `line`: The line number in the original source.\n\n* `column`: The column number in the original source.\n\nand an object is returned with the following properties:\n\n* `line`: The line number in the generated source, or null.\n\n* `column`: The column number in the generated source, or null.\n\n#### SourceMapConsumer.prototype.sourceContentFor(source)\n\nReturns the original source content for the source provided. The only\nargument is the URL of the original source file.\n\n#### SourceMapConsumer.prototype.eachMapping(callback, context, order)\n\nIterate over each mapping between an original source/line/column and a\ngenerated line/column in this source map.\n\n* `callback`: The function that is called with each mapping. Mappings have the\n form `{ source, generatedLine, generatedColumn, originalLine, originalColumn,\n name }`\n\n* `context`: Optional. If specified, this object will be the value of `this`\n every time that `callback` is called.\n\n* `order`: Either `SourceMapConsumer.GENERATED_ORDER` or\n `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to iterate over\n the mappings sorted by the generated file\'s line/column order or the\n original\'s source/line/column order, respectively. Defaults to\n `SourceMapConsumer.GENERATED_ORDER`.\n\n### SourceMapGenerator\n\nAn instance of the SourceMapGenerator represents a source map which is being\nbuilt incrementally.\n\n#### new SourceMapGenerator(startOfSourceMap)\n\nTo create a new one, you must pass an object with the following properties:\n\n* `file`: The filename of the generated source that this source map is\n associated with.\n\n* `sourceRoot`: An optional root for all relative URLs in this source map.\n\n#### SourceMapGenerator.fromSourceMap(sourceMapConsumer)\n\nCreates a new SourceMapGenerator based on a SourceMapConsumer\n\n* `sourceMapConsumer` The SourceMap.\n\n#### SourceMapGenerator.prototype.addMapping(mapping)\n\nAdd a single mapping from original source line and column to the generated\nsource\'s line and column for this source map being created. The mapping object\nshould have the following properties:\n\n* `generated`: An object with the generated line and column positions.\n\n* `original`: An object with the original line and column positions.\n\n* `source`: The original source file (relative to the sourceRoot).\n\n* `name`: An optional original token name for this mapping.\n\n#### SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent)\n\nSet the source content for an original source file.\n\n* `sourceFile` the URL of the original source file.\n\n* `sourceContent` the content of the source file.\n\n#### SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile])\n\nApplies a SourceMap for a source file to the SourceMap.\nEach mapping to the supplied source file is rewritten using the\nsupplied SourceMap. Note: The resolution for the resulting mappings\nis the minimium of this map and the supplied map.\n\n* `sourceMapConsumer`: The SourceMap to be applied.\n\n* `sourceFile`: Optional. The filename of the source file.\n If omitted, sourceMapConsumer.file will be used.\n\n#### SourceMapGenerator.prototype.toString()\n\nRenders the source map being generated to a string.\n\n### SourceNode\n\nSourceNodes provide a way to abstract over interpolating and/or concatenating\nsnippets of generated JavaScript source code, while maintaining the line and\ncolumn information associated between those snippets and the original source\ncode. This is useful as the final intermediate representation a compiler might\nuse before outputting the generated JS and source map.\n\n#### new SourceNode(line, column, source[, chunk[, name]])\n\n* `line`: The original line number associated with this source node, or null if\n it isn\'t associated with an original line.\n\n* `column`: The original column number associated with this source node, or null\n if it isn\'t associated with an original column.\n\n* `source`: The original source\'s filename.\n\n* `chunk`: Optional. Is immediately passed to `SourceNode.prototype.add`, see\n below.\n\n* `name`: Optional. The original identifier.\n\n#### SourceNode.fromStringWithSourceMap(code, sourceMapConsumer)\n\nCreates a SourceNode from generated code and a SourceMapConsumer.\n\n* `code`: The generated code\n\n* `sourceMapConsumer` The SourceMap for the generated code\n\n#### SourceNode.prototype.add(chunk)\n\nAdd a chunk of generated JS to this source node.\n\n* `chunk`: A string snippet of generated JS code, another instance of\n `SourceNode`, or an array where each member is one of those things.\n\n#### SourceNode.prototype.prepend(chunk)\n\nPrepend a chunk of generated JS to this source node.\n\n* `chunk`: A string snippet of generated JS code, another instance of\n `SourceNode`, or an array where each member is one of those things.\n\n#### SourceNode.prototype.setSourceContent(sourceFile, sourceContent)\n\nSet the source content for a source file. This will be added to the\n`SourceMap` in the `sourcesContent` field.\n\n* `sourceFile`: The filename of the source file\n\n* `sourceContent`: The content of the source file\n\n#### SourceNode.prototype.walk(fn)\n\nWalk over the tree of JS snippets in this node and its children. The walking\nfunction is called once for each snippet of JS and is passed that snippet and\nthe its original associated source\'s line/column location.\n\n* `fn`: The traversal function.\n\n#### SourceNode.prototype.walkSourceContents(fn)\n\nWalk over the tree of SourceNodes. The walking function is called for each\nsource file content and is passed the filename and source content.\n\n* `fn`: The traversal function.\n\n#### SourceNode.prototype.join(sep)\n\nLike `Array.prototype.join` except for SourceNodes. Inserts the separator\nbetween each of this source node\'s children.\n\n* `sep`: The separator.\n\n#### SourceNode.prototype.replaceRight(pattern, replacement)\n\nCall `String.prototype.replace` on the very right-most source snippet. Useful\nfor trimming whitespace from the end of a source node, etc.\n\n* `pattern`: The pattern to replace.\n\n* `replacement`: The thing to replace the pattern with.\n\n#### SourceNode.prototype.toString()\n\nReturn the string representation of this source node. Walks over the tree and\nconcatenates all the various snippets together to one string.\n\n### SourceNode.prototype.toStringWithSourceMap(startOfSourceMap)\n\nReturns the string representation of this tree of source nodes, plus a\nSourceMapGenerator which contains all the mappings between the generated and\noriginal sources.\n\nThe arguments are the same as those to `new SourceMapGenerator`.\n\n## Tests\n\n[![Build Status](https://travis-ci.org/mozilla/source-map.png?branch=master)](https://travis-ci.org/mozilla/source-map)\n\nInstall NodeJS version 0.8.0 or greater, then run `node test/run-tests.js`.\n\nTo add new tests, create a new file named `test/test-<your new test name>.js`\nand export your test functions with names that start with "test", for example\n\n exports["test doing the foo bar"] = function (assert, util) {\n ...\n };\n\nThe new test will be located automatically when you run the suite.\n\nThe `util` argument is the test utility module located at `test/source-map/util`.\n\nThe `assert` argument is a cut down version of node\'s assert module. You have\naccess to the following assertion functions:\n\n* `doesNotThrow`\n\n* `equal`\n\n* `ok`\n\n* `strictEqual`\n\n* `throws`\n\n(The reason for the restricted set of test functions is because we need the\ntests to run inside Firefox\'s test suite as well and so the assert module is\nshimmed in that environment. See `build/assert-shim.js`.)\n\n[format]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit\n[feature]: https://wiki.mozilla.org/DevTools/Features/SourceMap\n[Dryice]: https://github.com/mozilla/dryice\n',
6239 silly resolved readmeFilename: 'README.md',
6239 silly resolved bugs: { url: 'https://github.com/mozilla/source-map/issues' },
6239 silly resolved _id: 'source-map@0.1.31',
6239 silly resolved _from: 'source-map@>= 0.1.2' },
6239 silly resolved { name: 'estraverse',
6239 silly resolved description: 'ECMAScript JS AST traversal functions',
6239 silly resolved homepage: 'http://github.com/Constellation/estraverse.html',
6239 silly resolved main: 'estraverse.js',
6239 silly resolved version: '0.0.4',
6239 silly resolved engines: { node: '>=0.4.0' },
6239 silly resolved maintainers: [ [Object] ],
6239 silly resolved repository:
6239 silly resolved { type: 'git',
6239 silly resolved url: 'http://github.com/Constellation/estraverse.git' },
6239 silly resolved devDependencies: { mocha: '*', chai: '*' },
6239 silly resolved licenses: [ [Object] ],
6239 silly resolved scripts: { test: './node_modules/.bin/mocha' },
6239 silly resolved readme: 'Estraverse ([estraverse](http://github.com/Constellation/estraverse)) is\n[ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm)\ntraversal functions from [esmangle project](http://github.com/Constellation/esmangle).\n\n### License\n\nCopyright (C) 2012 [Yusuke Suzuki](http://github.com/Constellation)\n (twitter: [@Constellation](http://twitter.com/Constellation)) and other contributors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\nTHIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n',
6239 silly resolved readmeFilename: 'README.md',
6239 silly resolved bugs: { url: 'https://github.com/Constellation/estraverse/issues' },
6239 silly resolved _id: 'estraverse@0.0.4',
6239 silly resolved _from: 'estraverse@~0.0.4' } ]
6240 info install esprima@1.0.4 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen
6241 info install source-map@0.1.31 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen
6242 info install estraverse@0.0.4 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen
6243 info installOne esprima@1.0.4
6244 info installOne source-map@0.1.31
6245 info installOne estraverse@0.0.4
6246 silly lockFile ca991f02-JSONStream-0-6-4 JSONStream@~0.6.4
6247 silly lockFile ca991f02-JSONStream-0-6-4 JSONStream@~0.6.4
6248 verbose readDependencies using package.json deps
6249 info postinstall deep-equal@0.1.2
6250 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen/node_modules/esprima unbuild
6251 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen/node_modules/source-map unbuild
6252 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen/node_modules/estraverse unbuild
6253 silly gunzTarPerm extractEntry package.json
6254 silly resolved [ { name: 'JSONStream',
6254 silly resolved version: '0.6.4',
6254 silly resolved description: 'rawStream.pipe(JSONStream.parse()).pipe(streamOfObjects)',
6254 silly resolved homepage: 'http://github.com/dominictarr/JSONStream',
6254 silly resolved repository:
6254 silly resolved { type: 'git',
6254 silly resolved url: 'git://github.com/dominictarr/JSONStream.git' },
6254 silly resolved dependencies: { jsonparse: '0.0.5', through: '~2.2.7' },
6254 silly resolved devDependencies:
6254 silly resolved { 'it-is': '~1',
6254 silly resolved assertions: '~2.2.2',
6254 silly resolved render: '~0.1.1',
6254 silly resolved trees: '~0.0.3',
6254 silly resolved 'event-stream': '~0.7.0',
6254 silly resolved tape: '~0.2.2' },
6254 silly resolved author:
6254 silly resolved { name: 'Dominic Tarr',
6254 silly resolved email: 'dominic.tarr@gmail.com',
6254 silly resolved url: 'http://bit.ly/dominictarr' },
6254 silly resolved scripts: { test: 'set -e; for t in test/*.js; do echo \'***\' $t \'***\'; node $t; done' },
6254 silly resolved optionalDependencies: {},
6254 silly resolved engines: { node: '*' },
6254 silly resolved readme: '# JSONStream\n\nstreaming JSON.parse and stringify\n\n<img src=https://secure.travis-ci.org/dominictarr/JSONStream.png?branch=master>\n\n## example\n\n``` js\n\nvar request = require(\'request\')\n , JSONStream = require(\'JSONStream\')\n , es = require(\'event-stream\')\n\nvar parser = JSONStream.parse([\'rows\', true])\n , req = request({url: \'http://isaacs.couchone.com/registry/_all_docs\'})\n , logger = es.mapSync(function (data) {\n console.error(data)\n return data\n })\n\n request({url: \'http://isaacs.couchone.com/registry/_all_docs\'})\n .pipe(JSONStream.parse(\'rows.*\'))\n .pipe(es.mapSync(function (data) {\n console.error(data)\n return data\n }))\n```\n\n## JSONStream.parse(path)\n\nparse stream of values that match a path\n\n``` js\n JSONStream.parse(\'rows.*.doc\')\n```\n\nIf your keys have keys that include `.` or `*` etc, use an array instead.\n`[\'row\', true, /^doc/]`.\n\nIf you use an array, `RegExp`s, booleans, and/or functions.\nany object that matches the path will be emitted as \'data\' (and `pipe`d down stream)\n\nIf `path` is empty or null, no \'data\' events are emitted.\n\n### Example\n\nquery a couchdb view:\n\n``` bash\ncurl -sS localhost:5984/tests/_all_docs&include_docs=true\n```\nyou will get something like this:\n\n``` js\n{"total_rows":129,"offset":0,"rows":[\n { "id":"change1_0.6995461115147918"\n , "key":"change1_0.6995461115147918"\n , "value":{"rev":"1-e240bae28c7bb3667f02760f6398d508"}\n , "doc":{\n "_id": "change1_0.6995461115147918"\n , "_rev": "1-e240bae28c7bb3667f02760f6398d508","hello":1}\n },\n { "id":"change2_0.6995461115147918"\n , "key":"change2_0.6995461115147918"\n , "value":{"rev":"1-13677d36b98c0c075145bb8975105153"}\n , "doc":{\n "_id":"change2_0.6995461115147918"\n , "_rev":"1-13677d36b98c0c075145bb8975105153"\n , "hello":2\n }\n },\n]}\n\n```\n\nwe are probably most interested in the `rows.*.docs`\n\ncreate a `Stream` that parses the documents from the feed like this:\n\n``` js\nvar stream = JSONStream.parse([\'rows\', true, \'doc\']) //rows, ANYTHING, doc\n\nstream.on(\'data\', function(data) {\n console.log(\'received:\', data);\n});\n\nstream.on(\'root\', function(root, count) {\n if (!count) {\n console.log(\'no matches found:\', root);\n }\n});\n```\nawesome!\n\n## JSONStream.stringify(open, sep, close)\n\nCreate a writable stream.\n\nyou may pass in custom `open`, `close`, and `seperator` strings.\nBut, by default, `JSONStream.stringify()` will create an array,\n(with default options `open=\'[\\n\', sep=\'\\n,\\n\', close=\'\\n]\\n\'`)\n\nIf you call `JSONStream.stringify(false)`\nthe elements will only be seperated by a newline.\n\nIf you only write one item this will be valid JSON.\n\nIf you write many items,\nyou can use a `RegExp` to split it into valid chunks.\n\n## JSONStream.stringifyObject(open, sep, close)\n\nVery much like `JSONStream.stringify`,\nbut creates a writable stream for objects instead of arrays.\n\nAccordingly, `open=\'{\\n\', sep=\'\\n,\\n\', close=\'\\n}\\n\'`.\n\nWhen you `.write()` to the stream you must supply an array with `[ key, data ]`\nas the first argument.\n\n## numbers\n\nThere are occasional problems parsing and unparsing very precise numbers.\n\nI have opened an issue here:\n\nhttps://github.com/creationix/jsonparse/issues/2\n\n+1\n\n## Acknowlegements\n\nthis module depends on https://github.com/creationix/jsonparse\nby Tim Caswell\nand also thanks to Florent Jaby for teaching me about parsing with:\nhttps://github.com/Floby/node-json-streams\n\n## license\n\nMIT / APACHE2\n',
6254 silly resolved readmeFilename: 'readme.markdown',
6254 silly resolved bugs: { url: 'https://github.com/dominictarr/JSONStream/issues' },
6254 silly resolved _id: 'JSONStream@0.6.4',
6254 silly resolved _from: 'JSONStream@~0.6.4' } ]
6255 info install JSONStream@0.6.4 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/deps-sort
6256 info installOne JSONStream@0.6.4
6257 verbose readDependencies using package.json deps
6258 silly resolved []
6259 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/parents
6260 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/parents
6261 verbose linkStuff [ false,
6261 verbose linkStuff false,
6261 verbose linkStuff false,
6261 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
6262 info linkStuff parents@0.0.2
6263 verbose linkBins parents@0.0.2
6264 verbose link bins [ {},
6264 verbose link bins '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/.bin',
6264 verbose link bins false ]
6265 verbose linkMans parents@0.0.2
6266 verbose rebuildBundles parents@0.0.2
6267 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/deps-sort/node_modules/JSONStream unbuild
6268 info install parents@0.0.2
6269 info preinstall umd@2.0.0
6270 verbose readDependencies using package.json deps
6271 verbose readDependencies using package.json deps
6272 verbose tar unpack /home/scarter/.npm/esprima/1.0.4/package.tgz
6273 silly lockFile 53588d32-s-escodegen-node-modules-esprima tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen/node_modules/esprima
6274 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen/node_modules/esprima /home/scarter/.npm/53588d32-s-escodegen-node-modules-esprima.lock
6275 silly lockFile d1fd8229-er-npm-esprima-1-0-4-package-tgz tar:///home/scarter/.npm/esprima/1.0.4/package.tgz
6276 verbose lock tar:///home/scarter/.npm/esprima/1.0.4/package.tgz /home/scarter/.npm/d1fd8229-er-npm-esprima-1-0-4-package-tgz.lock
6277 verbose tar unpack /home/scarter/.npm/estraverse/0.0.4/package.tgz
6278 silly lockFile 2b0b3dd7-scodegen-node-modules-estraverse tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen/node_modules/estraverse
6279 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen/node_modules/estraverse /home/scarter/.npm/2b0b3dd7-scodegen-node-modules-estraverse.lock
6280 silly lockFile c8131057-npm-estraverse-0-0-4-package-tgz tar:///home/scarter/.npm/estraverse/0.0.4/package.tgz
6281 verbose lock tar:///home/scarter/.npm/estraverse/0.0.4/package.tgz /home/scarter/.npm/c8131057-npm-estraverse-0-0-4-package-tgz.lock
6282 verbose tar unpack /home/scarter/.npm/source-map/0.1.31/package.tgz
6283 silly lockFile affeae44-scodegen-node-modules-source-map tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen/node_modules/source-map
6284 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen/node_modules/source-map /home/scarter/.npm/affeae44-scodegen-node-modules-source-map.lock
6285 silly lockFile d2044e93-pm-source-map-0-1-31-package-tgz tar:///home/scarter/.npm/source-map/0.1.31/package.tgz
6286 verbose lock tar:///home/scarter/.npm/source-map/0.1.31/package.tgz /home/scarter/.npm/d2044e93-pm-source-map-0-1-31-package-tgz.lock
6287 info postinstall parents@0.0.2
6288 silly gunzTarPerm extractEntry lib/ber/errors.js
6289 silly gunzTarPerm extractEntry lib/ber/index.js
6290 silly gunzTarPerm extractEntry test/vectors/Readme.txt
6291 silly gunzTarPerm extractEntry test/vectors/byte-hashes.sha1
6292 silly gunzTarPerm extractEntry README.md
6293 silly gunzTarPerm extractEntry esprima.js
6294 verbose tar unpack /home/scarter/.npm/JSONStream/0.6.4/package.tgz
6295 silly lockFile f5cc39f3-eps-sort-node-modules-JSONStream tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/deps-sort/node_modules/JSONStream
6296 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/deps-sort/node_modules/JSONStream /home/scarter/.npm/f5cc39f3-eps-sort-node-modules-JSONStream.lock
6297 silly lockFile 2912a938-npm-JSONStream-0-6-4-package-tgz tar:///home/scarter/.npm/JSONStream/0.6.4/package.tgz
6298 verbose lock tar:///home/scarter/.npm/JSONStream/0.6.4/package.tgz /home/scarter/.npm/2912a938-npm-JSONStream-0-6-4-package-tgz.lock
6299 verbose cache add [ 'esprima@~0.9.9', null ]
6300 verbose cache add name=undefined spec="esprima@~0.9.9" args=["esprima@~0.9.9",null]
6301 verbose parsed url { protocol: null,
6301 verbose parsed url slashes: null,
6301 verbose parsed url auth: null,
6301 verbose parsed url host: null,
6301 verbose parsed url port: null,
6301 verbose parsed url hostname: null,
6301 verbose parsed url hash: null,
6301 verbose parsed url search: null,
6301 verbose parsed url query: null,
6301 verbose parsed url pathname: 'esprima@~0.9.9',
6301 verbose parsed url path: 'esprima@~0.9.9',
6301 verbose parsed url href: 'esprima@~0.9.9' }
6302 verbose cache add name="esprima" spec="~0.9.9" args=["esprima","~0.9.9"]
6303 verbose parsed url { protocol: null,
6303 verbose parsed url slashes: null,
6303 verbose parsed url auth: null,
6303 verbose parsed url host: null,
6303 verbose parsed url port: null,
6303 verbose parsed url hostname: null,
6303 verbose parsed url hash: null,
6303 verbose parsed url search: null,
6303 verbose parsed url query: null,
6303 verbose parsed url pathname: '~0.9.9',
6303 verbose parsed url path: '~0.9.9',
6303 verbose parsed url href: '~0.9.9' }
6304 verbose addNamed [ 'esprima', '~0.9.9' ]
6305 verbose addNamed [ null, '>=0.9.9-0 <0.10.0-0' ]
6306 silly lockFile c716a742-esprima-0-9-9 esprima@~0.9.9
6307 verbose lock esprima@~0.9.9 /home/scarter/.npm/c716a742-esprima-0-9-9.lock
6308 verbose readDependencies using package.json deps
6309 silly lockFile 588ffc7c--node-modules-console-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/console-browserify
6310 silly lockFile 588ffc7c--node-modules-console-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/console-browserify
6311 silly gunzTarPerm extractEntry test/browser.js
6312 silly gunzTarPerm extractEntry test/two-ways.js
6313 verbose readDependencies using package.json deps
6314 http 304 https://registry.npmjs.org/querystring
6315 silly registry.get cb [ 304,
6315 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:40 GMT',
6315 silly registry.get server: 'Apache',
6315 silly registry.get connection: 'Keep-Alive',
6315 silly registry.get 'keep-alive': 'timeout=10, max=34',
6315 silly registry.get etag: '"CS5D8O5IF6RT7PPWTTUMGNOM6"',
6315 silly registry.get 'cache-control': 'max-age=1',
6315 silly registry.get vary: 'Accept' } ]
6316 verbose etag querystring from cache
6317 silly gunzTarPerm modes [ '755', '644' ]
6318 silly gunzTarPerm modes [ '755', '644' ]
6319 silly addNameRange { name: 'esprima', range: '>=0.9.9-0 <0.10.0-0', hasData: false }
6320 silly lockFile 595ba8fc-ole-browserify-1-0-3-package-tgz tar:///home/scarter/.npm/console-browserify/1.0.3/package.tgz
6321 silly lockFile 595ba8fc-ole-browserify-1-0-3-package-tgz tar:///home/scarter/.npm/console-browserify/1.0.3/package.tgz
6322 verbose cache add [ 'rfile@~1.0.0', null ]
6323 verbose cache add name=undefined spec="rfile@~1.0.0" args=["rfile@~1.0.0",null]
6324 verbose parsed url { protocol: null,
6324 verbose parsed url slashes: null,
6324 verbose parsed url auth: null,
6324 verbose parsed url host: null,
6324 verbose parsed url port: null,
6324 verbose parsed url hostname: null,
6324 verbose parsed url hash: null,
6324 verbose parsed url search: null,
6324 verbose parsed url query: null,
6324 verbose parsed url pathname: 'rfile@~1.0.0',
6324 verbose parsed url path: 'rfile@~1.0.0',
6324 verbose parsed url href: 'rfile@~1.0.0' }
6325 verbose cache add name="rfile" spec="~1.0.0" args=["rfile","~1.0.0"]
6326 verbose parsed url { protocol: null,
6326 verbose parsed url slashes: null,
6326 verbose parsed url auth: null,
6326 verbose parsed url host: null,
6326 verbose parsed url port: null,
6326 verbose parsed url hostname: null,
6326 verbose parsed url hash: null,
6326 verbose parsed url search: null,
6326 verbose parsed url query: null,
6326 verbose parsed url pathname: '~1.0.0',
6326 verbose parsed url path: '~1.0.0',
6326 verbose parsed url href: '~1.0.0' }
6327 verbose addNamed [ 'rfile', '~1.0.0' ]
6328 verbose addNamed [ null, '>=1.0.0-0 <1.1.0-0' ]
6329 silly lockFile f7448db8-rfile-1-0-0 rfile@~1.0.0
6330 verbose lock rfile@~1.0.0 /home/scarter/.npm/f7448db8-rfile-1-0-0.lock
6331 verbose cache add [ 'ruglify@~1.0.0', null ]
6332 verbose cache add name=undefined spec="ruglify@~1.0.0" args=["ruglify@~1.0.0",null]
6333 verbose parsed url { protocol: null,
6333 verbose parsed url slashes: null,
6333 verbose parsed url auth: null,
6333 verbose parsed url host: null,
6333 verbose parsed url port: null,
6333 verbose parsed url hostname: null,
6333 verbose parsed url hash: null,
6333 verbose parsed url search: null,
6333 verbose parsed url query: null,
6333 verbose parsed url pathname: 'ruglify@~1.0.0',
6333 verbose parsed url path: 'ruglify@~1.0.0',
6333 verbose parsed url href: 'ruglify@~1.0.0' }
6334 verbose cache add name="ruglify" spec="~1.0.0" args=["ruglify","~1.0.0"]
6335 verbose parsed url { protocol: null,
6335 verbose parsed url slashes: null,
6335 verbose parsed url auth: null,
6335 verbose parsed url host: null,
6335 verbose parsed url port: null,
6335 verbose parsed url hostname: null,
6335 verbose parsed url hash: null,
6335 verbose parsed url search: null,
6335 verbose parsed url query: null,
6335 verbose parsed url pathname: '~1.0.0',
6335 verbose parsed url path: '~1.0.0',
6335 verbose parsed url href: '~1.0.0' }
6336 verbose addNamed [ 'ruglify', '~1.0.0' ]
6337 verbose addNamed [ null, '>=1.0.0-0 <1.1.0-0' ]
6338 silly lockFile 79f60705-ruglify-1-0-0 ruglify@~1.0.0
6339 verbose lock ruglify@~1.0.0 /home/scarter/.npm/79f60705-ruglify-1-0-0.lock
6340 silly gunzTarPerm modes [ '755', '644' ]
6341 verbose cache add [ 'uglify-js@~2.4.0', null ]
6342 verbose cache add name=undefined spec="uglify-js@~2.4.0" args=["uglify-js@~2.4.0",null]
6343 verbose parsed url { protocol: null,
6343 verbose parsed url slashes: null,
6343 verbose parsed url auth: null,
6343 verbose parsed url host: null,
6343 verbose parsed url port: null,
6343 verbose parsed url hostname: null,
6343 verbose parsed url hash: null,
6343 verbose parsed url search: null,
6343 verbose parsed url query: null,
6343 verbose parsed url pathname: 'uglify-js@~2.4.0',
6343 verbose parsed url path: 'uglify-js@~2.4.0',
6343 verbose parsed url href: 'uglify-js@~2.4.0' }
6344 verbose cache add name="uglify-js" spec="~2.4.0" args=["uglify-js","~2.4.0"]
6345 verbose parsed url { protocol: null,
6345 verbose parsed url slashes: null,
6345 verbose parsed url auth: null,
6345 verbose parsed url host: null,
6345 verbose parsed url port: null,
6345 verbose parsed url hostname: null,
6345 verbose parsed url hash: null,
6345 verbose parsed url search: null,
6345 verbose parsed url query: null,
6345 verbose parsed url pathname: '~2.4.0',
6345 verbose parsed url path: '~2.4.0',
6345 verbose parsed url href: '~2.4.0' }
6346 verbose addNamed [ 'uglify-js', '~2.4.0' ]
6347 verbose addNamed [ null, '>=2.4.0-0 <2.5.0-0' ]
6348 silly lockFile 1d881e0f-uglify-js-2-4-0 uglify-js@~2.4.0
6349 verbose lock uglify-js@~2.4.0 /home/scarter/.npm/1d881e0f-uglify-js-2-4-0.lock
6350 silly gunzTarPerm extractEntry ctype.js
6351 silly gunzTarPerm extractEntry CHANGELOG
6352 silly gunzTarPerm extractEntry example/input.json
6353 silly gunzTarPerm extractEntry example/sourcemap/output.js
6354 silly addNameRange { name: 'rfile', range: '>=1.0.0-0 <1.1.0-0', hasData: false }
6355 silly addNameRange { name: 'ruglify', range: '>=1.0.0-0 <1.1.0-0', hasData: false }
6356 silly lockFile b4fbb496-stringprep-node-modules-bindings tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/bindings
6357 silly lockFile b4fbb496-stringprep-node-modules-bindings tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/bindings
6358 silly addNameRange { name: 'uglify-js',
6358 silly addNameRange range: '>=2.4.0-0 <2.5.0-0',
6358 silly addNameRange hasData: false }
6359 silly lockFile bd11ce6d-r-npm-bindings-1-1-1-package-tgz tar:///home/scarter/.npm/bindings/1.1.1/package.tgz
6360 silly lockFile bd11ce6d-r-npm-bindings-1-1-1-package-tgz tar:///home/scarter/.npm/bindings/1.1.1/package.tgz
6361 silly lockFile 8f9292f8--browserify-node-modules-through tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/through
6362 silly lockFile 8f9292f8--browserify-node-modules-through tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/through
6363 info preinstall console-browserify@1.0.3
6364 silly lockFile d1e460c8-cryptiles-0-2-2 cryptiles@0.2.2
6365 silly lockFile d1e460c8-cryptiles-0-2-2 cryptiles@0.2.2
6366 silly lockFile 92c13a43-sntp-0-2-4 sntp@0.2.4
6367 silly lockFile 92c13a43-sntp-0-2-4 sntp@0.2.4
6368 silly lockFile 8ffbae6b-hoek-0-9-1 hoek@0.9.1
6369 silly lockFile 8ffbae6b-hoek-0-9-1 hoek@0.9.1
6370 silly lockFile 5b106bb4-boom-0-4-2 boom@0.4.2
6371 silly lockFile 5b106bb4-boom-0-4-2 boom@0.4.2
6372 silly gunzTarPerm extractEntry package.json
6373 verbose registry.get esprima not expired, no request
6374 silly addNameRange number 2 { name: 'esprima', range: '>=0.9.9-0 <0.10.0-0', hasData: true }
6375 silly addNameRange versions [ 'esprima',
6375 silly addNameRange [ '0.7.0',
6375 silly addNameRange '0.8.0',
6375 silly addNameRange '0.8.1',
6375 silly addNameRange '0.8.2',
6375 silly addNameRange '0.9.0',
6375 silly addNameRange '0.9.1',
6375 silly addNameRange '0.9.2',
6375 silly addNameRange '0.9.3',
6375 silly addNameRange '0.9.4',
6375 silly addNameRange '0.9.5',
6375 silly addNameRange '0.9.6',
6375 silly addNameRange '0.9.7',
6375 silly addNameRange '0.9.8',
6375 silly addNameRange '0.9.9',
6375 silly addNameRange '1.0.0',
6375 silly addNameRange '1.0.1',
6375 silly addNameRange '1.0.2',
6375 silly addNameRange '1.0.3',
6375 silly addNameRange '1.0.4' ] ]
6376 verbose addNamed [ 'esprima', '0.9.9' ]
6377 verbose addNamed [ '0.9.9', '0.9.9' ]
6378 silly lockFile 13b89ba0-esprima-0-9-9 esprima@0.9.9
6379 verbose lock esprima@0.9.9 /home/scarter/.npm/13b89ba0-esprima-0-9-9.lock
6380 silly lockFile dab34d4c-er-npm-through-2-3-4-package-tgz tar:///home/scarter/.npm/through/2.3.4/package.tgz
6381 silly lockFile dab34d4c-er-npm-through-2-3-4-package-tgz tar:///home/scarter/.npm/through/2.3.4/package.tgz
6382 silly lockFile 75d7e584-cryptiles-0-2-x cryptiles@0.2.x
6383 silly lockFile 75d7e584-cryptiles-0-2-x cryptiles@0.2.x
6384 silly lockFile b35a0361-sntp-0-2-x sntp@0.2.x
6385 silly lockFile b35a0361-sntp-0-2-x sntp@0.2.x
6386 silly lockFile 58ccaf9a-hoek-0-9-x hoek@0.9.x
6387 silly lockFile 58ccaf9a-hoek-0-9-x hoek@0.9.x
6388 silly lockFile 225d04ea-boom-0-4-x boom@0.4.x
6389 silly lockFile 225d04ea-boom-0-4-x boom@0.4.x
6390 silly gunzTarPerm extractEntry package.json
6391 silly gunzTarPerm extractEntry package.json
6392 silly lockFile 35c996b5-s-browserify-node-modules-assert tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/assert
6393 silly lockFile 35c996b5-s-browserify-node-modules-assert tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/assert
6394 silly addNameRange number 2 { name: 'querystring', range: '>=0.1.0 <0.2.0-0', hasData: true }
6395 silly addNameRange versions [ 'querystring', [ '0.0.1', '0.0.4', '0.1.0', '0.2.0' ] ]
6396 verbose addNamed [ 'querystring', '0.1.0' ]
6397 verbose addNamed [ '0.1.0', '0.1.0' ]
6398 silly lockFile 44e924ef-querystring-0-1-0 querystring@0.1.0
6399 verbose lock querystring@0.1.0 /home/scarter/.npm/44e924ef-querystring-0-1-0.lock
6400 silly resolved [ { name: 'cryptiles',
6400 silly resolved description: 'General purpose crypto utilities',
6400 silly resolved version: '0.2.2',
6400 silly resolved author:
6400 silly resolved { name: 'Eran Hammer',
6400 silly resolved email: 'eran@hueniverse.com',
6400 silly resolved url: 'http://hueniverse.com' },
6400 silly resolved contributors: [],
6400 silly resolved repository: { type: 'git', url: 'git://github.com/hueniverse/cryptiles' },
6400 silly resolved main: 'index',
6400 silly resolved keywords: [ 'cryptography', 'security', 'utilites' ],
6400 silly resolved engines: { node: '>=0.8.0' },
6400 silly resolved dependencies: { boom: '0.4.x' },
6400 silly resolved devDependencies: { lab: '0.1.x', 'complexity-report': '0.x.x' },
6400 silly resolved scripts: { test: 'make test-cov' },
6400 silly resolved licenses: [ [Object] ],
6400 silly resolved readme: 'cryptiles\n=========\n\nGeneral purpose crypto utilities\n\n[![Build Status](https://secure.travis-ci.org/hueniverse/cryptiles.png)](http://travis-ci.org/hueniverse/cryptiles)\n',
6400 silly resolved readmeFilename: 'README.md',
6400 silly resolved bugs: { url: 'https://github.com/hueniverse/cryptiles/issues' },
6400 silly resolved homepage: 'https://github.com/hueniverse/cryptiles',
6400 silly resolved _id: 'cryptiles@0.2.2',
6400 silly resolved _from: 'cryptiles@0.2.x' },
6400 silly resolved { name: 'sntp',
6400 silly resolved description: 'SNTP Client',
6400 silly resolved version: '0.2.4',
6400 silly resolved author:
6400 silly resolved { name: 'Eran Hammer',
6400 silly resolved email: 'eran@hueniverse.com',
6400 silly resolved url: 'http://hueniverse.com' },
6400 silly resolved contributors: [],
6400 silly resolved repository: { type: 'git', url: 'git://github.com/hueniverse/sntp' },
6400 silly resolved main: 'index',
6400 silly resolved keywords: [ 'sntp', 'ntp', 'time' ],
6400 silly resolved engines: { node: '>=0.8.0' },
6400 silly resolved dependencies: { hoek: '0.9.x' },
6400 silly resolved devDependencies: { lab: '0.1.x', 'complexity-report': '0.x.x' },
6400 silly resolved scripts: { test: 'make test-cov' },
6400 silly resolved licenses: [ [Object] ],
6400 silly resolved readme: '# sntp\n\nAn SNTP v4 client (RFC4330) for node. Simpy connects to the NTP or SNTP server requested and returns the server time\nalong with the roundtrip duration and clock offset. To adjust the local time to the NTP time, add the returned `t` offset\nto the local time.\n\n[![Build Status](https://secure.travis-ci.org/hueniverse/sntp.png)](http://travis-ci.org/hueniverse/sntp)\n\n# Usage\n\n```javascript\nvar Sntp = require(\'sntp\');\n\n// All options are optional\n\nvar options = {\n host: \'nist1-sj.ustiming.org\', // Defaults to pool.ntp.org\n port: 123, // Defaults to 123 (NTP)\n resolveReference: true, // Default to false (not resolving)\n timeout: 1000 // Defaults to zero (no timeout)\n};\n\n// Request server time\n\nSntp.time(options, function (err, time) {\n\n if (err) {\n console.log(\'Failed: \' + err.message);\n process.exit(1);\n }\n\n console.log(\'Local clock is off by: \' + time.t + \' milliseconds\');\n process.exit(0);\n});\n```\n\nIf an application needs to maintain continuous time synchronization, the module provides a stateful method for\nquerying the current offset only when the last one is too old (defaults to daily).\n\n```javascript\n// Request offset once\n\nSntp.offset(function (err, offset) {\n\n console.log(offset); // New (served fresh)\n\n // Request offset again\n\n Sntp.offset(function (err, offset) {\n\n console.log(offset); // Identical (served from cache)\n });\n});\n```\n\nTo set a background offset refresh, start the interval and use the provided now() method. If for any reason the\nclient fails to obtain an up-to-date offset, the current system clock is used.\n\n```javascript\nvar before = Sntp.now(); // System time without offset\n\nSntp.start(function () {\n\n var now = Sntp.now(); // With offset\n Sntp.stop();\n});\n```\n\n',
6400 silly resolved readmeFilename: 'README.md',
6400 silly resolved bugs: { url: 'https://github.com/hueniverse/sntp/issues' },
6400 silly resolved homepage: 'https://github.com/hueniverse/sntp',
6400 silly resolved _id: 'sntp@0.2.4',
6400 silly resolved _from: 'sntp@0.2.x' },
6400 silly resolved { name: 'hoek',
6400 silly resolved description: 'General purpose node utilities',
6400 silly resolved version: '0.9.1',
6400 silly resolved author:
6400 silly resolved { name: 'Eran Hammer',
6400 silly resolved email: 'eran@hueniverse.com',
6400 silly resolved url: 'http://hueniverse.com' },
6400 silly resolved contributors: [ [Object] ],
6400 silly resolved repository: { type: 'git', url: 'git://github.com/spumko/hoek' },
6400 silly resolved main: 'index',
6400 silly resolved keywords: [ 'utilities' ],
6400 silly resolved engines: { node: '>=0.8.0' },
6400 silly resolved dependencies: {},
6400 silly resolved devDependencies: { lab: '0.1.x', 'complexity-report': '0.x.x' },
6400 silly resolved scripts: { test: 'make test-cov' },
6400 silly resolved licenses: [ [Object] ],
6400 silly resolved readme: '<a href="https://github.com/spumko"><img src="https://raw.github.com/spumko/spumko/master/images/from.png" align="right" /></a>\r\n![hoek Logo](https://raw.github.com/spumko/hoek/master/images/hoek.png)\r\n\r\nGeneral purpose node utilities\r\n\r\n[![Build Status](https://secure.travis-ci.org/spumko/hoek.png)](http://travis-ci.org/spumko/hoek)\r\n\r\n# Table of Contents\r\n\r\n* [Introduction](#introduction "Introduction")\r\n* [Object](#object "Object")\r\n * [clone](#cloneobj "clone")\r\n * [merge](#mergetarget-source-isnulloverride-ismergearrays "merge")\r\n * [applyToDefaults](#applytodefaultsdefaults-options "applyToDefaults")\r\n * [unique](#uniquearray-key "unique")\r\n * [mapToObject](#maptoobjectarray-key "mapToObject")\r\n * [intersect](#intersectarray1-array2 "intersect")\r\n * [matchKeys](#matchkeysobj-keys "matchKeys")\r\n * [flatten](#flattenarray-target "flatten")\r\n * [removeKeys](#removekeysobject-keys "removeKeys")\r\n * [reach](#reachobj-chain "reach")\r\n * [inheritAsync](#inheritasyncself-obj-keys "inheritAsync")\r\n * [rename](#renameobj-from-to "rename")\r\n* [Timer](#timer "Timer")\r\n* [Binary Encoding/Decoding](#binary "Binary Encoding/Decoding")\r\n * [base64urlEncode](#binary64urlEncodevalue "binary64urlEncode")\r\n * [base64urlDecode](#binary64urlDecodevalue "binary64urlDecode")\r\n* [Escaping Characters](#escaped "Escaping Characters")\r\n * [escapeHtml](#escapeHtmlstring "escapeHtml")\r\n * [escapeHeaderAttribute](#escapeHeaderAttributeattribute "escapeHeaderAttribute")\r\n * [escapeRegex](#escapeRegexstring "escapeRegex")\r\n* [Errors](#errors "Errors")\r\n * [assert](#assertmessage "assert")\r\n * [abort](#abortmessage "abort")\r\n * [displayStack](#displayStackslice "displayStack")\r\n * [callStack](#callStackslice "callStack")\r\n * [toss](#tosscondition "toss")\r\n* [Load files](#load-files "Load Files")\r\n * [loadPackage](#loadPackagedir "loadpackage")\r\n * [loadDirModules](#loadDirModulespath-excludefiles-target "loaddirmodules")\r\n\r\n\r\n\r\n# Introduction\r\n\r\nThe *Hoek* general purpose node utilities library is used to aid in a variety of manners. It comes with useful methods for Arrays (clone, merge, applyToDefaults), Objects (removeKeys, copy), Asserting and more. \r\n\r\nFor example, to use Hoek to set configuration with default options:\r\n```javascript\r\nvar Hoek = require(\'hoek\');\r\n\r\nvar default = {url : "www.github.com", port : "8000", debug : true}\r\n\r\nvar config = Hoek.applyToDefaults(default, {port : "3000", admin : true});\r\n\r\n// In this case, config would be { url: \'www.github.com\', port: \'3000\', debug: true, admin: true }\r\n```\r\n\r\nUnder each of the sections (such as Array), there are subsections which correspond to Hoek methods. Each subsection will explain how to use the corresponding method. In each js excerpt below, the var Hoek = require(\'hoek\') is omitted for brevity.\r\n\r\n## Object\r\n\r\nHoek provides several helpful methods for objects and arrays.\r\n\r\n### clone(obj)\r\n\r\nThis method is used to clone an object or an array. A *deep copy* is made (duplicates everything, including values that are objects). \r\n\r\n```javascript\r\n\r\nvar nestedObj = {\r\n w: /^something$/ig,\r\n x: {\r\n a: [1, 2, 3],\r\n b: 123456,\r\n c: new Date()\r\n },\r\n y: \'y\',\r\n z: new Date()\r\n };\r\n\r\nvar copy = Hoek.clone(nestedObj);\r\n\r\ncopy.x.b = 100;\r\n\r\nconsole.log(copy.y) // results in \'y\'\r\nconsole.log(nestedObj.x.b) // results in 123456\r\nconsole.log(copy.x.b) // results in 100\r\n```\r\n\r\n### merge(target, source, isNullOverride, isMergeArrays)\r\nisNullOverride, isMergeArrays default to true\r\n\r\nMerge all the properties of source into target, source wins in conflic, and by default null and undefined from source are applied\r\n\r\n\r\n```javascript\r\n\r\nvar target = {a: 1, b : 2}\r\nvar source = {a: 0, c: 5}\r\nvar source2 = {a: null, c: 5}\r\n\r\nvar targetArray = [1, 2, 3];\r\nvar sourceArray = [4, 5];\r\n\r\nvar newTarget = Hoek.merge(target, source); // results in {a: 0, b: 2, c: 5}\r\nnewTarget = Hoek.merge(target, source2); // results in {a: null, b: 2, c: 5}\r\nnewTarget = Hoek.merge(target, source2, false); // results in {a: 1, b: 2, c: 5}\r\n\r\nnewTarget = Hoek.merge(targetArray, sourceArray) // results in [1, 2, 3, 4, 5]\r\nnewTarget = Hoek.merge(targetArray, sourceArray, true, false) // results in [4, 5]\r\n\r\n\r\n\r\n\r\n```\r\n\r\n### applyToDefaults(defaults, options)\r\n\r\nApply options to a copy of the defaults\r\n\r\n```javascript\r\n\r\nvar defaults = {host: "localhost", port: 8000};\r\nvar options = {port: 8080};\r\n\r\nvar config = Hoek.applyToDefaults(defaults, options); // results in {host: "localhost", port: 8080};\r\n\r\n\r\n```\r\n\r\n### unique(array, key)\r\n\r\nRemove duplicate items from Array\r\n\r\n```javascript\r\n\r\nvar array = [1, 2, 2, 3, 3, 4, 5, 6];\r\n\r\nvar newArray = Hoek.unique(array); // results in [1,2,3,4,5,6];\r\n\r\narray = [{id: 1}, {id: 1}, {id: 2}];\r\n\r\nnewArray = Hoek.unique(array, "id") // results in [{id: 1}, {id: 2}]\r\n\r\n```\r\n\r\n### mapToObject(array, key)\r\n\r\nConvert an Array into an Object\r\n\r\n```javascript\r\n\r\nvar array = [1,2,3];\r\nvar newObject = Hoek.mapToObject(array); // results in [{"1": true}, {"2": true}, {"3": true}]\r\n\r\narray = [{id: 1}, {id: 2}];\r\nnewObject = Hoek.mapToObject(array, "id") // results in [{"id": 1}, {"id": 2}]\r\n\r\n```\r\n### intersect(array1, array2)\r\n\r\nFind the common unique items in two arrays\r\n\r\n```javascript\r\n\r\nvar array1 = [1, 2, 3];\r\nvar array2 = [1, 4, 5];\r\n\r\nvar newArray = Hoek.intersect(array1, array2) // results in [1]\r\n\r\n```\r\n\r\n### matchKeys(obj, keys) \r\n\r\nFind which keys are present\r\n\r\n```javascript\r\n\r\nvar obj = {a: 1, b: 2, c: 3};\r\nvar keys = ["a", "e"];\r\n\r\nHoek.matchKeys(obj, keys) // returns ["a"]\r\n\r\n```\r\n\r\n### flatten(array, target)\r\n\r\nFlatten an array\r\n\r\n```javascript\r\n\r\nvar array = [1, 2, 3];\r\nvar target = [4, 5]; \r\n\r\nvar flattenedArray = Hoek.flatten(array, target) // results in [4, 5, 1, 2, 3];\r\n\r\n```\r\n\r\n### removeKeys(object, keys)\r\n\r\nRemove keys\r\n\r\n```javascript\r\n\r\nvar object = {a: 1, b: 2, c: 3, d: 4};\r\n\r\nvar keys = ["a", "b"];\r\n\r\nHoek.removeKeys(object, keys) // object is now {c: 3, d: 4}\r\n\r\n```\r\n\r\n### reach(obj, chain)\r\n\r\nConverts an object key chain string to reference\r\n\r\n```javascript\r\n\r\nvar chain = \'a.b.c\';\r\nvar obj = {a : {b : { c : 1}}};\r\n\r\nHoek.reach(obj, chain) // returns 1\r\n\r\n```\r\n\r\n### inheritAsync(self, obj, keys) \r\n\r\nInherits a selected set of methods from an object, wrapping functions in asynchronous syntax and catching errors\r\n\r\n```javascript\r\n\r\nvar targetFunc = function () { };\r\n\r\nvar proto = {\r\n a: function () {\r\n return \'a!\';\r\n },\r\n b: function () {\r\n return \'b!\';\r\n },\r\n c: function () {\r\n throw new Error(\'c!\');\r\n }\r\n };\r\n\r\nvar keys = [\'a\', \'c\'];\r\n\r\nHoek.inheritAsync(targetFunc, proto, [\'a\', \'c\']);\r\n\r\nvar target = new targetFunc();\r\n\r\ntarget.a(function(err, result){console.log(result)} // returns \'a!\' \r\n\r\ntarget.c(function(err, result){console.log(result)} // returns undefined\r\n\r\ntarget.b(function(err, result){console.log(result)} // gives error: Object [object Object] has no method \'b\'\r\n\r\n```\r\n\r\n### rename(obj, from, to)\r\n\r\nRename a key of an object\r\n\r\n```javascript\r\n\r\nvar obj = {a : 1, b : 2};\r\n\r\nHoek.rename(obj, "a", "c"); // obj is now {c : 1, b : 2}\r\n\r\n```\r\n\r\n\r\n# Timer\r\n\r\nA Timer object. Initializing a new timer object sets the ts to the number of milliseconds elapsed since 1 January 1970 00:00:00 UTC.\r\n\r\n```javascript\r\n\r\n\r\nexample : \r\n\r\n\r\nvar timerObj = new Hoek.Timer();\r\nconsole.log("Time is now: " + timerObj.ts)\r\nconsole.log("Elapsed time from initialization: " + timerObj.elapsed() + \'milliseconds\')\r\n\r\n```\r\n\r\n# Binary Encoding/Decoding\r\n\r\n### base64urlEncode(value)\r\n\r\nEncodes value in Base64 or URL encoding\r\n\r\n### base64urlDecode(value)\r\n\r\nDecodes data in Base64 or URL encoding.\r\n# Escaping Characters\r\n\r\nHoek provides convenient methods for escaping html characters. The escaped characters are as followed:\r\n\r\n```javascript\r\n\r\ninternals.htmlEscaped = {\r\n \'&\': \'&amp;\',\r\n \'<\': \'&lt;\',\r\n \'>\': \'&gt;\',\r\n \'"\': \'&quot;\',\r\n "\'": \'&#x27;\',\r\n \'`\': \'&#x60;\'\r\n};\r\n\r\n```\r\n\r\n### escapeHtml(string)\r\n\r\n```javascript\r\n\r\nvar string = \'<html> hey </html>\';\r\nvar escapedString = Hoek.escapeHtml(string); // returns &lt;html&gt; hey &lt;/html&gt;\r\n\r\n```\r\n\r\n### escapeHeaderAttribute(attribute)\r\n\r\nEscape attribute value for use in HTTP header\r\n\r\n```javascript\r\n\r\nvar a = Hoek.escapeHeaderAttribute(\'I said "go w\\\\o me"\'); //returns I said \\"go w\\\\o me\\"\r\n\r\n\r\n```\r\n\r\n\r\n### escapeRegex(string)\r\n\r\nEscape string for Regex construction\r\n\r\n```javascript\r\n\r\nvar a = Hoek.escapeRegex(\'4^f$s.4*5+-_?%=#!:@|~\\\\/`"(>)[<]d{}s,\'); // returns 4\\^f\\$s\\.4\\*5\\+\\-_\\?%\\=#\\!\\:@\\|~\\\\\\/`"\\(>\\)\\[<\\]d\\{\\}s\\,\r\n\r\n\r\n\r\n```\r\n\r\n# Errors\r\n\r\n### assert(message)\r\n\r\n```javascript\r\n\r\nvar a = 1, b =2;\r\n\r\nHoek.assert(a === b, \'a should equal b\'); // ABORT: a should equal b\r\n\r\n```\r\n\r\n### abort(message)\r\n\r\nFirst checks if process.env.NODE_ENV === \'test\', and if so, throws error message. Otherwise,\r\ndisplays most recent stack and then exits process.\r\n\r\n\r\n\r\n### displayStack(slice)\r\n\r\nDisplays the trace stack\r\n\r\n```javascript\r\n\r\nvar stack = Hoek.displayStack();\r\nconsole.log(stack) // returns something like:\r\n\r\n[ \'null (/Users/user/Desktop/hoek/test.js:4:18)\',\r\n \'Module._compile (module.js:449:26)\',\r\n \'Module._extensions..js (module.js:467:10)\',\r\n \'Module.load (module.js:356:32)\',\r\n \'Module._load (module.js:312:12)\',\r\n \'Module.runMain (module.js:492:10)\',\r\n \'startup.processNextTick.process._tickCallback (node.js:244:9)\' ]\r\n\r\n```\r\n\r\n### callStack(slice)\r\n\r\nReturns a trace stack array.\r\n\r\n```javascript\r\n\r\nvar stack = Hoek.callStack();\r\nconsole.log(stack) // returns something like:\r\n\r\n[ [ \'/Users/user/Desktop/hoek/test.js\', 4, 18, null, false ],\r\n [ \'module.js\', 449, 26, \'Module._compile\', false ],\r\n [ \'module.js\', 467, 10, \'Module._extensions..js\', false ],\r\n [ \'module.js\', 356, 32, \'Module.load\', false ],\r\n [ \'module.js\', 312, 12, \'Module._load\', false ],\r\n [ \'module.js\', 492, 10, \'Module.runMain\', false ],\r\n [ \'node.js\',\r\n 244,\r\n 9,\r\n \'startup.processNextTick.process._tickCallback\',\r\n false ] ]\r\n\r\n\r\n```\r\n\r\n### toss(condition)\r\n\r\ntoss(condition /*, [message], callback */)\r\n\r\nReturn an error as first argument of a callback\r\n\r\n\r\n# Load Files\r\n\r\n### loadPackage(dir)\r\n\r\nLoad and parse package.json process root or given directory\r\n\r\n```javascript\r\n\r\nvar pack = Hoek.loadPackage(); // pack.name === \'hoek\'\r\n\r\n```\r\n\r\n### loadDirModules(path, excludeFiles, target) \r\n\r\nLoads modules from a given path; option to exclude files (array).\r\n\r\n\r\n\r\n\r\n',
6400 silly resolved readmeFilename: 'README.md',
6400 silly resolved bugs: { url: 'https://github.com/spumko/hoek/issues' },
6400 silly resolved homepage: 'https://github.com/spumko/hoek',
6400 silly resolved _id: 'hoek@0.9.1',
6400 silly resolved _from: 'hoek@0.9.x' },
6400 silly resolved { name: 'boom',
6400 silly resolved description: 'HTTP-friendly error objects',
6400 silly resolved version: '0.4.2',
6400 silly resolved author:
6400 silly resolved { name: 'Eran Hammer',
6400 silly resolved email: 'eran@hueniverse.com',
6400 silly resolved url: 'http://hueniverse.com' },
6400 silly resolved contributors: [],
6400 silly resolved repository: { type: 'git', url: 'git://github.com/spumko/boom' },
6400 silly resolved main: 'index',
6400 silly resolved keywords: [ 'error', 'http' ],
6400 silly resolved engines: { node: '>=0.8.0' },
6400 silly resolved dependencies: { hoek: '0.9.x' },
6400 silly resolved devDependencies: { lab: '0.1.x', 'complexity-report': '0.x.x' },
6400 silly resolved scripts: { test: 'make test-cov' },
6400 silly resolved licenses: [ [Object] ],
6400 silly resolved readme: '<a href="https://github.com/spumko"><img src="https://raw.github.com/spumko/spumko/master/images/from.png" align="right" /></a>\n![boom Logo](https://raw.github.com/spumko/boom/master/images/boom.png)\n\nHTTP-friendly error objects\n\n[![Build Status](https://secure.travis-ci.org/spumko/boom.png)](http://travis-ci.org/spumko/boom)\n',
6400 silly resolved readmeFilename: 'README.md',
6400 silly resolved bugs: { url: 'https://github.com/spumko/boom/issues' },
6400 silly resolved homepage: 'https://github.com/spumko/boom',
6400 silly resolved _id: 'boom@0.4.2',
6400 silly resolved _from: 'boom@0.4.x' } ]
6401 info install cryptiles@0.2.2 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk
6402 info install sntp@0.2.4 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk
6403 info install hoek@0.9.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk
6404 info install boom@0.4.2 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk
6405 info installOne cryptiles@0.2.2
6406 info installOne sntp@0.2.4
6407 info installOne hoek@0.9.1
6408 info installOne boom@0.4.2
6409 silly resolved [ { name: 'cryptiles',
6409 silly resolved description: 'General purpose crypto utilities',
6409 silly resolved version: '0.2.2',
6409 silly resolved author:
6409 silly resolved { name: 'Eran Hammer',
6409 silly resolved email: 'eran@hueniverse.com',
6409 silly resolved url: 'http://hueniverse.com' },
6409 silly resolved contributors: [],
6409 silly resolved repository: { type: 'git', url: 'git://github.com/hueniverse/cryptiles' },
6409 silly resolved main: 'index',
6409 silly resolved keywords: [ 'cryptography', 'security', 'utilites' ],
6409 silly resolved engines: { node: '>=0.8.0' },
6409 silly resolved dependencies: { boom: '0.4.x' },
6409 silly resolved devDependencies: { lab: '0.1.x', 'complexity-report': '0.x.x' },
6409 silly resolved scripts: { test: 'make test-cov' },
6409 silly resolved licenses: [ [Object] ],
6409 silly resolved readme: 'cryptiles\n=========\n\nGeneral purpose crypto utilities\n\n[![Build Status](https://secure.travis-ci.org/hueniverse/cryptiles.png)](http://travis-ci.org/hueniverse/cryptiles)\n',
6409 silly resolved readmeFilename: 'README.md',
6409 silly resolved bugs: { url: 'https://github.com/hueniverse/cryptiles/issues' },
6409 silly resolved homepage: 'https://github.com/hueniverse/cryptiles',
6409 silly resolved _id: 'cryptiles@0.2.2',
6409 silly resolved _from: 'cryptiles@0.2.x' },
6409 silly resolved { name: 'sntp',
6409 silly resolved description: 'SNTP Client',
6409 silly resolved version: '0.2.4',
6409 silly resolved author:
6409 silly resolved { name: 'Eran Hammer',
6409 silly resolved email: 'eran@hueniverse.com',
6409 silly resolved url: 'http://hueniverse.com' },
6409 silly resolved contributors: [],
6409 silly resolved repository: { type: 'git', url: 'git://github.com/hueniverse/sntp' },
6409 silly resolved main: 'index',
6409 silly resolved keywords: [ 'sntp', 'ntp', 'time' ],
6409 silly resolved engines: { node: '>=0.8.0' },
6409 silly resolved dependencies: { hoek: '0.9.x' },
6409 silly resolved devDependencies: { lab: '0.1.x', 'complexity-report': '0.x.x' },
6409 silly resolved scripts: { test: 'make test-cov' },
6409 silly resolved licenses: [ [Object] ],
6409 silly resolved readme: '# sntp\n\nAn SNTP v4 client (RFC4330) for node. Simpy connects to the NTP or SNTP server requested and returns the server time\nalong with the roundtrip duration and clock offset. To adjust the local time to the NTP time, add the returned `t` offset\nto the local time.\n\n[![Build Status](https://secure.travis-ci.org/hueniverse/sntp.png)](http://travis-ci.org/hueniverse/sntp)\n\n# Usage\n\n```javascript\nvar Sntp = require(\'sntp\');\n\n// All options are optional\n\nvar options = {\n host: \'nist1-sj.ustiming.org\', // Defaults to pool.ntp.org\n port: 123, // Defaults to 123 (NTP)\n resolveReference: true, // Default to false (not resolving)\n timeout: 1000 // Defaults to zero (no timeout)\n};\n\n// Request server time\n\nSntp.time(options, function (err, time) {\n\n if (err) {\n console.log(\'Failed: \' + err.message);\n process.exit(1);\n }\n\n console.log(\'Local clock is off by: \' + time.t + \' milliseconds\');\n process.exit(0);\n});\n```\n\nIf an application needs to maintain continuous time synchronization, the module provides a stateful method for\nquerying the current offset only when the last one is too old (defaults to daily).\n\n```javascript\n// Request offset once\n\nSntp.offset(function (err, offset) {\n\n console.log(offset); // New (served fresh)\n\n // Request offset again\n\n Sntp.offset(function (err, offset) {\n\n console.log(offset); // Identical (served from cache)\n });\n});\n```\n\nTo set a background offset refresh, start the interval and use the provided now() method. If for any reason the\nclient fails to obtain an up-to-date offset, the current system clock is used.\n\n```javascript\nvar before = Sntp.now(); // System time without offset\n\nSntp.start(function () {\n\n var now = Sntp.now(); // With offset\n Sntp.stop();\n});\n```\n\n',
6409 silly resolved readmeFilename: 'README.md',
6409 silly resolved bugs: { url: 'https://github.com/hueniverse/sntp/issues' },
6409 silly resolved homepage: 'https://github.com/hueniverse/sntp',
6409 silly resolved _id: 'sntp@0.2.4',
6409 silly resolved _from: 'sntp@0.2.x' },
6409 silly resolved { name: 'hoek',
6409 silly resolved description: 'General purpose node utilities',
6409 silly resolved version: '0.9.1',
6409 silly resolved author:
6409 silly resolved { name: 'Eran Hammer',
6409 silly resolved email: 'eran@hueniverse.com',
6409 silly resolved url: 'http://hueniverse.com' },
6409 silly resolved contributors: [ [Object] ],
6409 silly resolved repository: { type: 'git', url: 'git://github.com/spumko/hoek' },
6409 silly resolved main: 'index',
6409 silly resolved keywords: [ 'utilities' ],
6409 silly resolved engines: { node: '>=0.8.0' },
6409 silly resolved dependencies: {},
6409 silly resolved devDependencies: { lab: '0.1.x', 'complexity-report': '0.x.x' },
6409 silly resolved scripts: { test: 'make test-cov' },
6409 silly resolved licenses: [ [Object] ],
6409 silly resolved readme: '<a href="https://github.com/spumko"><img src="https://raw.github.com/spumko/spumko/master/images/from.png" align="right" /></a>\r\n![hoek Logo](https://raw.github.com/spumko/hoek/master/images/hoek.png)\r\n\r\nGeneral purpose node utilities\r\n\r\n[![Build Status](https://secure.travis-ci.org/spumko/hoek.png)](http://travis-ci.org/spumko/hoek)\r\n\r\n# Table of Contents\r\n\r\n* [Introduction](#introduction "Introduction")\r\n* [Object](#object "Object")\r\n * [clone](#cloneobj "clone")\r\n * [merge](#mergetarget-source-isnulloverride-ismergearrays "merge")\r\n * [applyToDefaults](#applytodefaultsdefaults-options "applyToDefaults")\r\n * [unique](#uniquearray-key "unique")\r\n * [mapToObject](#maptoobjectarray-key "mapToObject")\r\n * [intersect](#intersectarray1-array2 "intersect")\r\n * [matchKeys](#matchkeysobj-keys "matchKeys")\r\n * [flatten](#flattenarray-target "flatten")\r\n * [removeKeys](#removekeysobject-keys "removeKeys")\r\n * [reach](#reachobj-chain "reach")\r\n * [inheritAsync](#inheritasyncself-obj-keys "inheritAsync")\r\n * [rename](#renameobj-from-to "rename")\r\n* [Timer](#timer "Timer")\r\n* [Binary Encoding/Decoding](#binary "Binary Encoding/Decoding")\r\n * [base64urlEncode](#binary64urlEncodevalue "binary64urlEncode")\r\n * [base64urlDecode](#binary64urlDecodevalue "binary64urlDecode")\r\n* [Escaping Characters](#escaped "Escaping Characters")\r\n * [escapeHtml](#escapeHtmlstring "escapeHtml")\r\n * [escapeHeaderAttribute](#escapeHeaderAttributeattribute "escapeHeaderAttribute")\r\n * [escapeRegex](#escapeRegexstring "escapeRegex")\r\n* [Errors](#errors "Errors")\r\n * [assert](#assertmessage "assert")\r\n * [abort](#abortmessage "abort")\r\n * [displayStack](#displayStackslice "displayStack")\r\n * [callStack](#callStackslice "callStack")\r\n * [toss](#tosscondition "toss")\r\n* [Load files](#load-files "Load Files")\r\n * [loadPackage](#loadPackagedir "loadpackage")\r\n * [loadDirModules](#loadDirModulespath-excludefiles-target "loaddirmodules")\r\n\r\n\r\n\r\n# Introduction\r\n\r\nThe *Hoek* general purpose node utilities library is used to aid in a variety of manners. It comes with useful methods for Arrays (clone, merge, applyToDefaults), Objects (removeKeys, copy), Asserting and more. \r\n\r\nFor example, to use Hoek to set configuration with default options:\r\n```javascript\r\nvar Hoek = require(\'hoek\');\r\n\r\nvar default = {url : "www.github.com", port : "8000", debug : true}\r\n\r\nvar config = Hoek.applyToDefaults(default, {port : "3000", admin : true});\r\n\r\n// In this case, config would be { url: \'www.github.com\', port: \'3000\', debug: true, admin: true }\r\n```\r\n\r\nUnder each of the sections (such as Array), there are subsections which correspond to Hoek methods. Each subsection will explain how to use the corresponding method. In each js excerpt below, the var Hoek = require(\'hoek\') is omitted for brevity.\r\n\r\n## Object\r\n\r\nHoek provides several helpful methods for objects and arrays.\r\n\r\n### clone(obj)\r\n\r\nThis method is used to clone an object or an array. A *deep copy* is made (duplicates everything, including values that are objects). \r\n\r\n```javascript\r\n\r\nvar nestedObj = {\r\n w: /^something$/ig,\r\n x: {\r\n a: [1, 2, 3],\r\n b: 123456,\r\n c: new Date()\r\n },\r\n y: \'y\',\r\n z: new Date()\r\n };\r\n\r\nvar copy = Hoek.clone(nestedObj);\r\n\r\ncopy.x.b = 100;\r\n\r\nconsole.log(copy.y) // results in \'y\'\r\nconsole.log(nestedObj.x.b) // results in 123456\r\nconsole.log(copy.x.b) // results in 100\r\n```\r\n\r\n### merge(target, source, isNullOverride, isMergeArrays)\r\nisNullOverride, isMergeArrays default to true\r\n\r\nMerge all the properties of source into target, source wins in conflic, and by default null and undefined from source are applied\r\n\r\n\r\n```javascript\r\n\r\nvar target = {a: 1, b : 2}\r\nvar source = {a: 0, c: 5}\r\nvar source2 = {a: null, c: 5}\r\n\r\nvar targetArray = [1, 2, 3];\r\nvar sourceArray = [4, 5];\r\n\r\nvar newTarget = Hoek.merge(target, source); // results in {a: 0, b: 2, c: 5}\r\nnewTarget = Hoek.merge(target, source2); // results in {a: null, b: 2, c: 5}\r\nnewTarget = Hoek.merge(target, source2, false); // results in {a: 1, b: 2, c: 5}\r\n\r\nnewTarget = Hoek.merge(targetArray, sourceArray) // results in [1, 2, 3, 4, 5]\r\nnewTarget = Hoek.merge(targetArray, sourceArray, true, false) // results in [4, 5]\r\n\r\n\r\n\r\n\r\n```\r\n\r\n### applyToDefaults(defaults, options)\r\n\r\nApply options to a copy of the defaults\r\n\r\n```javascript\r\n\r\nvar defaults = {host: "localhost", port: 8000};\r\nvar options = {port: 8080};\r\n\r\nvar config = Hoek.applyToDefaults(defaults, options); // results in {host: "localhost", port: 8080};\r\n\r\n\r\n```\r\n\r\n### unique(array, key)\r\n\r\nRemove duplicate items from Array\r\n\r\n```javascript\r\n\r\nvar array = [1, 2, 2, 3, 3, 4, 5, 6];\r\n\r\nvar newArray = Hoek.unique(array); // results in [1,2,3,4,5,6];\r\n\r\narray = [{id: 1}, {id: 1}, {id: 2}];\r\n\r\nnewArray = Hoek.unique(array, "id") // results in [{id: 1}, {id: 2}]\r\n\r\n```\r\n\r\n### mapToObject(array, key)\r\n\r\nConvert an Array into an Object\r\n\r\n```javascript\r\n\r\nvar array = [1,2,3];\r\nvar newObject = Hoek.mapToObject(array); // results in [{"1": true}, {"2": true}, {"3": true}]\r\n\r\narray = [{id: 1}, {id: 2}];\r\nnewObject = Hoek.mapToObject(array, "id") // results in [{"id": 1}, {"id": 2}]\r\n\r\n```\r\n### intersect(array1, array2)\r\n\r\nFind the common unique items in two arrays\r\n\r\n```javascript\r\n\r\nvar array1 = [1, 2, 3];\r\nvar array2 = [1, 4, 5];\r\n\r\nvar newArray = Hoek.intersect(array1, array2) // results in [1]\r\n\r\n```\r\n\r\n### matchKeys(obj, keys) \r\n\r\nFind which keys are present\r\n\r\n```javascript\r\n\r\nvar obj = {a: 1, b: 2, c: 3};\r\nvar keys = ["a", "e"];\r\n\r\nHoek.matchKeys(obj, keys) // returns ["a"]\r\n\r\n```\r\n\r\n### flatten(array, target)\r\n\r\nFlatten an array\r\n\r\n```javascript\r\n\r\nvar array = [1, 2, 3];\r\nvar target = [4, 5]; \r\n\r\nvar flattenedArray = Hoek.flatten(array, target) // results in [4, 5, 1, 2, 3];\r\n\r\n```\r\n\r\n### removeKeys(object, keys)\r\n\r\nRemove keys\r\n\r\n```javascript\r\n\r\nvar object = {a: 1, b: 2, c: 3, d: 4};\r\n\r\nvar keys = ["a", "b"];\r\n\r\nHoek.removeKeys(object, keys) // object is now {c: 3, d: 4}\r\n\r\n```\r\n\r\n### reach(obj, chain)\r\n\r\nConverts an object key chain string to reference\r\n\r\n```javascript\r\n\r\nvar chain = \'a.b.c\';\r\nvar obj = {a : {b : { c : 1}}};\r\n\r\nHoek.reach(obj, chain) // returns 1\r\n\r\n```\r\n\r\n### inheritAsync(self, obj, keys) \r\n\r\nInherits a selected set of methods from an object, wrapping functions in asynchronous syntax and catching errors\r\n\r\n```javascript\r\n\r\nvar targetFunc = function () { };\r\n\r\nvar proto = {\r\n a: function () {\r\n return \'a!\';\r\n },\r\n b: function () {\r\n return \'b!\';\r\n },\r\n c: function () {\r\n throw new Error(\'c!\');\r\n }\r\n };\r\n\r\nvar keys = [\'a\', \'c\'];\r\n\r\nHoek.inheritAsync(targetFunc, proto, [\'a\', \'c\']);\r\n\r\nvar target = new targetFunc();\r\n\r\ntarget.a(function(err, result){console.log(result)} // returns \'a!\' \r\n\r\ntarget.c(function(err, result){console.log(result)} // returns undefined\r\n\r\ntarget.b(function(err, result){console.log(result)} // gives error: Object [object Object] has no method \'b\'\r\n\r\n```\r\n\r\n### rename(obj, from, to)\r\n\r\nRename a key of an object\r\n\r\n```javascript\r\n\r\nvar obj = {a : 1, b : 2};\r\n\r\nHoek.rename(obj, "a", "c"); // obj is now {c : 1, b : 2}\r\n\r\n```\r\n\r\n\r\n# Timer\r\n\r\nA Timer object. Initializing a new timer object sets the ts to the number of milliseconds elapsed since 1 January 1970 00:00:00 UTC.\r\n\r\n```javascript\r\n\r\n\r\nexample : \r\n\r\n\r\nvar timerObj = new Hoek.Timer();\r\nconsole.log("Time is now: " + timerObj.ts)\r\nconsole.log("Elapsed time from initialization: " + timerObj.elapsed() + \'milliseconds\')\r\n\r\n```\r\n\r\n# Binary Encoding/Decoding\r\n\r\n### base64urlEncode(value)\r\n\r\nEncodes value in Base64 or URL encoding\r\n\r\n### base64urlDecode(value)\r\n\r\nDecodes data in Base64 or URL encoding.\r\n# Escaping Characters\r\n\r\nHoek provides convenient methods for escaping html characters. The escaped characters are as followed:\r\n\r\n```javascript\r\n\r\ninternals.htmlEscaped = {\r\n \'&\': \'&amp;\',\r\n \'<\': \'&lt;\',\r\n \'>\': \'&gt;\',\r\n \'"\': \'&quot;\',\r\n "\'": \'&#x27;\',\r\n \'`\': \'&#x60;\'\r\n};\r\n\r\n```\r\n\r\n### escapeHtml(string)\r\n\r\n```javascript\r\n\r\nvar string = \'<html> hey </html>\';\r\nvar escapedString = Hoek.escapeHtml(string); // returns &lt;html&gt; hey &lt;/html&gt;\r\n\r\n```\r\n\r\n### escapeHeaderAttribute(attribute)\r\n\r\nEscape attribute value for use in HTTP header\r\n\r\n```javascript\r\n\r\nvar a = Hoek.escapeHeaderAttribute(\'I said "go w\\\\o me"\'); //returns I said \\"go w\\\\o me\\"\r\n\r\n\r\n```\r\n\r\n\r\n### escapeRegex(string)\r\n\r\nEscape string for Regex construction\r\n\r\n```javascript\r\n\r\nvar a = Hoek.escapeRegex(\'4^f$s.4*5+-_?%=#!:@|~\\\\/`"(>)[<]d{}s,\'); // returns 4\\^f\\$s\\.4\\*5\\+\\-_\\?%\\=#\\!\\:@\\|~\\\\\\/`"\\(>\\)\\[<\\]d\\{\\}s\\,\r\n\r\n\r\n\r\n```\r\n\r\n# Errors\r\n\r\n### assert(message)\r\n\r\n```javascript\r\n\r\nvar a = 1, b =2;\r\n\r\nHoek.assert(a === b, \'a should equal b\'); // ABORT: a should equal b\r\n\r\n```\r\n\r\n### abort(message)\r\n\r\nFirst checks if process.env.NODE_ENV === \'test\', and if so, throws error message. Otherwise,\r\ndisplays most recent stack and then exits process.\r\n\r\n\r\n\r\n### displayStack(slice)\r\n\r\nDisplays the trace stack\r\n\r\n```javascript\r\n\r\nvar stack = Hoek.displayStack();\r\nconsole.log(stack) // returns something like:\r\n\r\n[ \'null (/Users/user/Desktop/hoek/test.js:4:18)\',\r\n \'Module._compile (module.js:449:26)\',\r\n \'Module._extensions..js (module.js:467:10)\',\r\n \'Module.load (module.js:356:32)\',\r\n \'Module._load (module.js:312:12)\',\r\n \'Module.runMain (module.js:492:10)\',\r\n \'startup.processNextTick.process._tickCallback (node.js:244:9)\' ]\r\n\r\n```\r\n\r\n### callStack(slice)\r\n\r\nReturns a trace stack array.\r\n\r\n```javascript\r\n\r\nvar stack = Hoek.callStack();\r\nconsole.log(stack) // returns something like:\r\n\r\n[ [ \'/Users/user/Desktop/hoek/test.js\', 4, 18, null, false ],\r\n [ \'module.js\', 449, 26, \'Module._compile\', false ],\r\n [ \'module.js\', 467, 10, \'Module._extensions..js\', false ],\r\n [ \'module.js\', 356, 32, \'Module.load\', false ],\r\n [ \'module.js\', 312, 12, \'Module._load\', false ],\r\n [ \'module.js\', 492, 10, \'Module.runMain\', false ],\r\n [ \'node.js\',\r\n 244,\r\n 9,\r\n \'startup.processNextTick.process._tickCallback\',\r\n false ] ]\r\n\r\n\r\n```\r\n\r\n### toss(condition)\r\n\r\ntoss(condition /*, [message], callback */)\r\n\r\nReturn an error as first argument of a callback\r\n\r\n\r\n# Load Files\r\n\r\n### loadPackage(dir)\r\n\r\nLoad and parse package.json process root or given directory\r\n\r\n```javascript\r\n\r\nvar pack = Hoek.loadPackage(); // pack.name === \'hoek\'\r\n\r\n```\r\n\r\n### loadDirModules(path, excludeFiles, target) \r\n\r\nLoads modules from a given path; option to exclude files (array).\r\n\r\n\r\n\r\n\r\n',
6409 silly resolved readmeFilename: 'README.md',
6409 silly resolved bugs: { url: 'https://github.com/spumko/hoek/issues' },
6409 silly resolved homepage: 'https://github.com/spumko/hoek',
6409 silly resolved _id: 'hoek@0.9.1',
6409 silly resolved _from: 'hoek@0.9.x' },
6409 silly resolved { name: 'boom',
6409 silly resolved description: 'HTTP-friendly error objects',
6409 silly resolved version: '0.4.2',
6409 silly resolved author:
6409 silly resolved { name: 'Eran Hammer',
6409 silly resolved email: 'eran@hueniverse.com',
6409 silly resolved url: 'http://hueniverse.com' },
6409 silly resolved contributors: [],
6409 silly resolved repository: { type: 'git', url: 'git://github.com/spumko/boom' },
6409 silly resolved main: 'index',
6409 silly resolved keywords: [ 'error', 'http' ],
6409 silly resolved engines: { node: '>=0.8.0' },
6409 silly resolved dependencies: { hoek: '0.9.x' },
6409 silly resolved devDependencies: { lab: '0.1.x', 'complexity-report': '0.x.x' },
6409 silly resolved scripts: { test: 'make test-cov' },
6409 silly resolved licenses: [ [Object] ],
6409 silly resolved readme: '<a href="https://github.com/spumko"><img src="https://raw.github.com/spumko/spumko/master/images/from.png" align="right" /></a>\n![boom Logo](https://raw.github.com/spumko/boom/master/images/boom.png)\n\nHTTP-friendly error objects\n\n[![Build Status](https://secure.travis-ci.org/spumko/boom.png)](http://travis-ci.org/spumko/boom)\n',
6409 silly resolved readmeFilename: 'README.md',
6409 silly resolved bugs: { url: 'https://github.com/spumko/boom/issues' },
6409 silly resolved homepage: 'https://github.com/spumko/boom',
6409 silly resolved _id: 'boom@0.4.2',
6409 silly resolved _from: 'boom@0.4.x' } ]
6410 info install cryptiles@0.2.2 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk
6411 info install sntp@0.2.4 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk
6412 info install hoek@0.9.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk
6413 info install boom@0.4.2 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk
6414 info installOne cryptiles@0.2.2
6415 info installOne sntp@0.2.4
6416 info installOne hoek@0.9.1
6417 info installOne boom@0.4.2
6418 silly gunzTarPerm extractEntry test/vectors/byte-hashes.sha256
6419 silly gunzTarPerm extractEntry test/vectors/byte0000.dat
6420 silly lockFile d04785a8-ter-npm-assert-1-1-0-package-tgz tar:///home/scarter/.npm/assert/1.1.0/package.tgz
6421 silly lockFile d04785a8-ter-npm-assert-1-1-0-package-tgz tar:///home/scarter/.npm/assert/1.1.0/package.tgz
6422 verbose readDependencies using package.json deps
6423 verbose url raw rfile
6424 verbose url resolving [ 'https://registry.npmjs.org/', './rfile' ]
6425 verbose url resolved https://registry.npmjs.org/rfile
6426 info trying registry request attempt 1 at 12:24:40
6427 verbose etag "2BXGZRHB5O8L3XUNFR7MEQTON"
6428 http GET https://registry.npmjs.org/rfile
6429 verbose url raw ruglify
6430 verbose url resolving [ 'https://registry.npmjs.org/', './ruglify' ]
6431 verbose url resolved https://registry.npmjs.org/ruglify
6432 info trying registry request attempt 1 at 12:24:40
6433 verbose etag "5IPVG99SD73V2NXNAML051A5I"
6434 http GET https://registry.npmjs.org/ruglify
6435 silly lockFile fb2e119c-nan-0-6-0 nan@0.6.0
6436 silly lockFile fb2e119c-nan-0-6-0 nan@0.6.0
6437 silly gunzTarPerm extractEntry lib/ber/reader.js
6438 silly gunzTarPerm extractEntry lib/ber/types.js
6439 silly gunzTarPerm extractEntry lib/ber/writer.js
6440 silly gunzTarPerm extractEntry tst/ber/reader.test.js
6441 silly gunzTarPerm extractEntry tst/ber/writer.test.js
6442 info preinstall bindings@1.1.1
6443 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/cryptiles unbuild
6444 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/sntp unbuild
6445 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/hoek unbuild
6446 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/boom unbuild
6447 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/cryptiles unbuild
6448 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/sntp unbuild
6449 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/hoek unbuild
6450 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/boom unbuild
6451 silly gunzTarPerm extractEntry bin/esparse.js
6452 silly gunzTarPerm extractEntry test/gen.js
6453 silly gunzTarPerm extractEntry test/fixtures/all_npm.json
6454 verbose readDependencies using package.json deps
6455 silly resolved []
6456 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/console-browserify
6457 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/console-browserify
6458 verbose linkStuff [ false,
6458 verbose linkStuff false,
6458 verbose linkStuff false,
6458 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
6459 info linkStuff console-browserify@1.0.3
6460 verbose linkBins console-browserify@1.0.3
6461 verbose linkMans console-browserify@1.0.3
6462 verbose rebuildBundles console-browserify@1.0.3
6463 silly gunzTarPerm modes [ '755', '644' ]
6464 verbose url raw uglify-js
6465 verbose url resolving [ 'https://registry.npmjs.org/', './uglify-js' ]
6466 verbose url resolved https://registry.npmjs.org/uglify-js
6467 info trying registry request attempt 1 at 12:24:40
6468 verbose etag "7OSI8FILTFVUV6LE0Y0CDC7DD"
6469 http GET https://registry.npmjs.org/uglify-js
6470 silly lockFile bb2a8d25-nan-0-6-0 nan@~0.6.0
6471 silly lockFile bb2a8d25-nan-0-6-0 nan@~0.6.0
6472 silly gunzTarPerm extractEntry README.md
6473 silly gunzTarPerm extractEntry estraverse.js
6474 info preinstall through@2.3.4
6475 info install console-browserify@1.0.3
6476 silly resolved [ { name: 'nan',
6476 silly resolved version: '0.6.0',
6476 silly resolved description: 'Native Abstractions for Node.js: C++ header for Node 0.8->0.12 compatibility',
6476 silly resolved main: 'include_dirs.js',
6476 silly resolved repository: { type: 'git', url: 'git://github.com/rvagg/nan.git' },
6476 silly resolved contributors: [ [Object], [Object], [Object], [Object] ],
6476 silly resolved license: 'MIT',
6476 silly resolved readme: 'Native Abstractions for Node.js\n===============================\n\n**A header file filled with macro and utility goodness for making add-on development for Node.js easier across versions 0.8, 0.10 and 0.11, and eventually 0.12.**\n\n***Current version: 0.6.0*** *(See [nan.h](https://github.com/rvagg/nan/blob/master/nan.h) for complete ChangeLog)*\n\n[![NPM](https://nodei.co/npm/nan.png?downloads=true)](https://nodei.co/npm/nan/) [![NPM](https://nodei.co/npm-dl/nan.png?months=6)](https://nodei.co/npm/nan/)\n\nThanks to the crazy changes in V8 (and some in Node core), keeping native addons compiling happily across versions, particularly 0.10 to 0.11/0.12, is a minor nightmare. The goal of this project is to store all logic necessary to develop native Node.js addons without having to inspect `NODE_MODULE_VERSION` and get yourself into a macro-tangle.\n\nThis project also contains some helper utilities that make addon development a bit more pleasant.\n\n * **[News & Updates](#news)**\n * **[Usage](#usage)**\n * **[Example](#example)**\n * **[API](#api)**\n\n<a name="news"></a>\n## News & Updates\n\n### Nov-2013: Node 0.11.9+ breaking V8 change\n\nThe version of V8 that\'s shipping with Node 0.11.9+ has changed the signature for new `Local`s to: `v8::Local<T>::New(isolate, value)`, i.e. introducing the `isolate` argument and therefore breaking all new `Local` declarations for previous versions. NAN 0.6+ now includes a `NanNewLocal<T>(value)` that can be used in place to work around this incompatibility and maintain compatibility with 0.8->0.11.9+ (minus a few early 0.11 releases).\n\nFor example, if you wanted to return a `null` on a callback you will have to change the argument from `v8::Local<v8::Value>::New(v8::Null())` to `NanNewLocal<v8::Value>(v8::Null())`.\n\n### Nov-2013: Change to binding.gyp `"include_dirs"` for NAN\n\nInclusion of NAN in a project\'s binding.gyp is now greatly simplified. You can now just use `"<!(node -e \\"require(\'nan\')\\")"` in your `"include_dirs"`, see example below.\n\n<a name="usage"></a>\n## Usage\n\nSimply add **NAN** as a dependency in the *package.json* of your Node addon:\n\n``` bash\n$ npm install --save nan\n```\n\nPull in the path to **NAN** in your *binding.gyp* so that you can use `#include "nan.h"` in your *.cpp* files:\n\n``` python\n"include_dirs" : [\n "<!(node -e \\"require(\'nan\')\\")"\n]\n```\n\nThis works like a `-I<path-to-NAN>` when compiling your addon.\n\n<a name="example"></a>\n## Example\n\nSee **[LevelDOWN](https://github.com/rvagg/node-leveldown/pull/48)** for a full example of **NAN** in use.\n\nFor a simpler example, see the **[async pi estimation example](https://github.com/rvagg/nan/tree/master/examples/async_pi_estimate)** in the examples directory for full code and an explanation of what this Monte Carlo Pi estimation example does. Below are just some parts of the full example that illustrate the use of **NAN**.\n\nCompare to the current 0.10 version of this example, found in the [node-addon-examples](https://github.com/rvagg/node-addon-examples/tree/master/9_async_work) repository and also a 0.11 version of the same found [here](https://github.com/kkoopa/node-addon-examples/tree/5c01f58fc993377a567812597e54a83af69686d7/9_async_work).\n\nNote that there is no embedded version sniffing going on here and also the async work is made much simpler, see below for details on the `NanAsyncWorker` class.\n\n```c++\n// addon.cc\n#include <node.h>\n#include "nan.h"\n// ...\n\nusing namespace v8;\n\nvoid InitAll(Handle<Object> exports) {\n exports->Set(NanSymbol("calculateSync"),\n FunctionTemplate::New(CalculateSync)->GetFunction());\n\n exports->Set(NanSymbol("calculateAsync"),\n FunctionTemplate::New(CalculateAsync)->GetFunction());\n}\n\nNODE_MODULE(addon, InitAll)\n```\n\n```c++\n// sync.h\n#include <node.h>\n#include "nan.h"\n\nNAN_METHOD(CalculateSync);\n```\n\n```c++\n// sync.cc\n#include <node.h>\n#include "nan.h"\n#include "sync.h"\n// ...\n\nusing namespace v8;\n\n// Simple synchronous access to the `Estimate()` function\nNAN_METHOD(CalculateSync) {\n NanScope();\n\n // expect a number as the first argument\n int points = args[0]->Uint32Value();\n double est = Estimate(points);\n\n NanReturnValue(Number::New(est));\n}\n```\n\n```c++\n// async.cc\n#include <node.h>\n#include "nan.h"\n#include "async.h"\n\n// ...\n\nusing namespace v8;\n\nclass PiWorker : public NanAsyncWorker {\n public:\n PiWorker(NanCallback *callback, int points)\n : NanAsyncWorker(callback), points(points) {}\n ~PiWorker() {}\n\n // Executed inside the worker-thread.\n // It is not safe to access V8, or V8 data structures\n // here, so everything we need for input and output\n // should go on `this`.\n void Execute () {\n estimate = Estimate(points);\n }\n\n // Executed when the async work is complete\n // this function will be run inside the main event loop\n // so it is safe to use V8 again\n void HandleOKCallback () {\n NanScope();\n\n Local<Value> argv[] = {\n Local<Value>::New(Null())\n , Number::New(estimate)\n };\n\n callback->Call(2, argv);\n };\n\n private:\n int points;\n double estimate;\n};\n\n// Asynchronous access to the `Estimate()` function\nNAN_METHOD(CalculateAsync) {\n NanScope();\n\n int points = args[0]->Uint32Value();\n NanCallback *callback = new NanCallback(args[1].As<Function>());\n\n NanAsyncQueueWorker(new PiWorker(callback, points));\n NanReturnUndefined();\n}\n```\n\n<a name="api"></a>\n## API\n\n * <a href="#api_nan_method"><b><code>NAN_METHOD</code></b></a>\n * <a href="#api_nan_getter"><b><code>NAN_GETTER</code></b></a>\n * <a href="#api_nan_setter"><b><code>NAN_SETTER</code></b></a>\n * <a href="#api_nan_property_getter"><b><code>NAN_PROPERTY_GETTER</code></b></a>\n * <a href="#api_nan_property_setter"><b><code>NAN_PROPERTY_SETTER</code></b></a>\n * <a href="#api_nan_property_enumerator"><b><code>NAN_PROPERTY_ENUMERATOR</code></b></a>\n * <a href="#api_nan_property_deleter"><b><code>NAN_PROPERTY_DELETER</code></b></a>\n * <a href="#api_nan_property_query"><b><code>NAN_PROPERTY_QUERY</code></b></a>\n * <a href="#api_nan_index_getter"><b><code>NAN_INDEX_GETTER</code></b></a>\n * <a href="#api_nan_index_setter"><b><code>NAN_INDEX_SETTER</code></b></a>\n * <a href="#api_nan_index_enumerator"><b><code>NAN_INDEX_ENUMERATOR</code></b></a>\n * <a href="#api_nan_index_deleter"><b><code>NAN_INDEX_DELETER</code></b></a>\n * <a href="#api_nan_index_query"><b><code>NAN_INDEX_QUERY</code></b></a>\n * <a href="#api_nan_weak_callback"><b><code>NAN_WEAK_CALLBACK</code></b></a>\n * <a href="#api_nan_deprecated"><b><code>NAN_DEPRECATED</code></b></a>\n * <a href="#api_nan_inline"><b><code>NAN_INLINE</code></b></a> \n * <a href="#api_nan_new_local"><b><code>NanNewLocal</code></b></a>\n * <a href="#api_nan_return_value"><b><code>NanReturnValue</code></b></a>\n * <a href="#api_nan_return_undefined"><b><code>NanReturnUndefined</code></b></a>\n * <a href="#api_nan_return_null"><b><code>NanReturnNull</code></b></a>\n * <a href="#api_nan_return_empty_string"><b><code>NanReturnEmptyString</code></b></a>\n * <a href="#api_nan_scope"><b><code>NanScope</code></b></a>\n * <a href="#api_nan_locker"><b><code>NanLocker</code></b></a>\n * <a href="#api_nan_unlocker"><b><code>NanUnlocker</code></b></a>\n * <a href="#api_nan_get_internal_field_pointer"><b><code>NanGetInternalFieldPointer</code></b></a>\n * <a href="#api_nan_set_internal_field_pointer"><b><code>NanSetInternalFieldPointer</code></b></a>\n * <a href="#api_nan_object_wrap_handle"><b><code>NanObjectWrapHandle</code></b></a>\n * <a href="#api_nan_make_weak"><b><code>NanMakeWeak</code></b></a>\n * <a href="#api_nan_symbol"><b><code>NanSymbol</code></b></a>\n * <a href="#api_nan_get_pointer_safe"><b><code>NanGetPointerSafe</code></b></a>\n * <a href="#api_nan_set_pointer_safe"><b><code>NanSetPointerSafe</code></b></a>\n * <a href="#api_nan_from_v8_string"><b><code>NanFromV8String</code></b></a>\n * <a href="#api_nan_boolean_option_value"><b><code>NanBooleanOptionValue</code></b></a>\n * <a href="#api_nan_uint32_option_value"><b><code>NanUInt32OptionValue</code></b></a>\n * <a href="#api_nan_error"><b><code>NanError</code></b>, <b><code>NanTypeError</code></b>, <b><code>NanRangeError</code></b></a>\n * <a href="#api_nan_throw_error"><b><code>NanThrowError</code></b>, <b><code>NanThrowTypeError</code></b>, <b><code>NanThrowRangeError</code></b>, <b><code>NanThrowError(Handle<Value>)</code></b>, <b><code>NanThrowError(Handle<Value>, int)</code></b></a>\n * <a href="#api_nan_new_buffer_handle"><b><code>NanNewBufferHandle(char *, size_t, FreeCallback, void *)</code></b>, <b><code>NanNewBufferHandle(char *, uint32_t)</code></b>, <b><code>NanNewBufferHandle(uint32_t)</code></b></a>\n * <a href="#api_nan_buffer_use"><b><code>NanBufferUse(char *, uint32_t)</code></b></a>\n * <a href="#api_nan_new_context_handle"><b><code>NanNewContextHandle</code></b></a>\n * <a href="#api_nan_has_instance"><b><code>NanHasInstance</code></b></a>\n * <a href="#api_nan_persistent_to_local"><b><code>NanPersistentToLocal</code></b></a>\n * <a href="#api_nan_dispose"><b><code>NanDispose</code></b></a>\n * <a href="#api_nan_assign_persistent"><b><code>NanAssignPersistent</code></b></a>\n * <a href="#api_nan_init_persistent"><b><code>NanInitPersistent</code></b></a>\n * <a href="#api_nan_callback"><b><code>NanCallback</code></b></a>\n * <a href="#api_nan_async_worker"><b><code>NanAsyncWorker</code></b></a>\n * <a href="#api_nan_async_queue_worker"><b><code>NanAsyncQueueWorker</code></b></a>\n\n<a name="api_nan_method"></a>\n### NAN_METHOD(methodname)\n\nUse `NAN_METHOD` to define your V8 accessible methods:\n\n```c++\n// .h:\nclass Foo : public node::ObjectWrap {\n ...\n\n static NAN_METHOD(Bar);\n static NAN_METHOD(Baz);\n}\n\n\n// .cc:\nNAN_METHOD(Foo::Bar) {\n ...\n}\n\nNAN_METHOD(Foo::Baz) {\n ...\n}\n```\n\nThe reason for this macro is because of the method signature change in 0.11:\n\n```c++\n// 0.10 and below:\nHandle<Value> name(const Arguments& args)\n\n// 0.11 and above\nvoid name(const FunctionCallbackInfo<Value>& args)\n```\n\nThe introduction of `FunctionCallbackInfo` brings additional complications:\n\n<a name="api_nan_getter"></a>\n### NAN_GETTER(methodname)\n\nUse `NAN_GETTER` to declare your V8 accessible getters. You get a `Local<String>` `property` and an appropriately typed `args` object that can act like the `args` argument to a `NAN_METHOD` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_GETTER`.\n\n<a name="api_nan_setter"></a>\n### NAN_SETTER(methodname)\n\nUse `NAN_SETTER` to declare your V8 accessible setters. Same as `NAN_GETTER` but you also get a `Local<Value>` `value` object to work with.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_SETTER`.\n\n<a name="api_nan_property_getter"></a>\n### NAN_PROPERTY_GETTER(cbname)\nUse `NAN_PROPERTY_GETTER` to declare your V8 accessible property getters. You get a `Local<String>` `property` and an appropriately typed `args` object that can act similar to the `args` argument to a `NAN_METHOD` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_PROPERTY_GETTER`.\n\n<a name="api_nan_property_setter"></a>\n### NAN_PROPERTY_SETTER(cbname)\nUse `NAN_PROPERTY_SETTER` to declare your V8 accessible property setters. Same as `NAN_PROPERTY_GETTER` but you also get a `Local<Value>` `value` object to work with.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_PROPERTY_SETTER`.\n\n<a name="api_nan_property_enumerator"></a>\n### NAN_PROPERTY_ENUMERATOR(cbname)\nUse `NAN_PROPERTY_ENUMERATOR` to declare your V8 accessible property enumerators. You get an appropriately typed `args` object like the `args` argument to a `NAN_PROPERTY_GETTER` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_PROPERTY_ENUMERATOR`.\n\n<a name="api_nan_property_deleter"></a>\n### NAN_PROPERTY_DELETER(cbname)\nUse `NAN_PROPERTY_DELETER` to declare your V8 accessible property deleters. Same as `NAN_PROPERTY_GETTER`.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_PROPERTY_DELETER`.\n\n<a name="api_nan_property_query"></a>\n### NAN_PROPERTY_QUERY(cbname)\nUse `NAN_PROPERTY_QUERY` to declare your V8 accessible property queries. Same as `NAN_PROPERTY_GETTER`.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_PROPERTY_QUERY`.\n\n<a name="api_nan_index_getter"></a>\n### NAN_INDEX_GETTER(cbname)\nUse `NAN_INDEX_GETTER` to declare your V8 accessible index getters. You get a `uint32_t` `index` and an appropriately typed `args` object that can act similar to the `args` argument to a `NAN_METHOD` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_INDEX_GETTER`.\n\n<a name="api_nan_index_setter"></a>\n### NAN_INDEX_SETTER(cbname)\nUse `NAN_INDEX_SETTER` to declare your V8 accessible index setters. Same as `NAN_INDEX_GETTER` but you also get a `Local<Value>` `value` object to work with.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_INDEX_SETTER`.\n\n<a name="api_nan_index_enumerator"></a>\n### NAN_INDEX_ENUMERATOR(cbname)\nUse `NAN_INDEX_ENUMERATOR` to declare your V8 accessible index enumerators. You get an appropriately typed `args` object like the `args` argument to a `NAN_INDEX_GETTER` call.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_INDEX_ENUMERATOR`.\n\n<a name="api_nan_index_deleter"></a>\n### NAN_INDEX_DELETER(cbname)\nUse `NAN_INDEX_DELETER` to declare your V8 accessible index deleters. Same as `NAN_INDEX_GETTER`.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_INDEX_DELETER`.\n\n<a name="api_nan_index_query"></a>\n### NAN_INDEX_QUERY(cbname)\nUse `NAN_INDEX_QUERY` to declare your V8 accessible index queries. Same as `NAN_INDEX_GETTER`.\n\nYou can use `NanReturnNull()`, `NanReturnEmptyString()`, `NanReturnUndefined()` and `NanReturnValue()` in a `NAN_INDEX_QUERY`.\n\n<a name="api_nan_weak_callback"></a>\n### NAN_WEAK_CALLBACK(type, cbname)\n\nUse `NAN_WEAK_CALLBACK` to declare your V8 WeakReference callbacks. There is an object argument accessible through `NAN_WEAK_CALLBACK_OBJECT`. The `type` argument gives the type of the `data` argument, accessible through `NAN_WEAK_CALLBACK_DATA(type)`.\n\n```c++\nstatic NAN_WEAK_CALLBACK(BufferReference*, WeakCheck) {\n if (NAN_WEAK_CALLBACK_DATA(BufferReference*)->noLongerNeeded_) {\n delete NAN_WEAK_CALLBACK_DATA(BufferReference*);\n } else {\n // Still in use, revive, prevent GC\n NanMakeWeak(NAN_WEAK_CALLBACK_OBJECT, NAN_WEAK_CALLBACK_DATA(BufferReference*), &WeakCheck);\n }\n}\n```\n\n<a name="api_nan_deprecated"></a>\n### NAN_DEPRECATED(declarator)\nDeclares a function as deprecated. Identical to `V8_DEPRECATED`.\n\n```c++\nstatic NAN_DEPRECATED(NAN_METHOD(foo)) {\n ...\n}\n```\n\n<a name="api_nan_inline"></a>\n### NAN_INLINE(declarator)\nInlines a function. Identical to `V8_INLINE`.\n\n```c++\nstatic NAN_INLINE(int foo(int bar)) {\n ...\n}\n```\n\n<a name="api_nan_new_local"></a>\n### NanNewLocal&lt;T&gt;(Handle&lt;Value&gt;)\n\nUse `NanNewLocal` in place of `v8::Local<T>::New(...)` as this function\nrequires an `isolate` argument in recent versions of V8 but not in older versions.\n\n```c++\nNanNewLocal<v8::Value>(v8::Null())\n```\n\n<a name="api_nan_return_value"></a>\n### NanReturnValue(Handle&lt;Value&gt;)\n\nUse `NanReturnValue` when you want to return a value from your V8 accessible method:\n\n```c++\nNAN_METHOD(Foo::Bar) {\n ...\n\n NanReturnValue(String::New("FooBar!"));\n}\n```\n\nNo `return` statement required.\n\n<a name="api_nan_return_undefined"></a>\n### NanReturnUndefined()\n\nUse `NanReturnUndefined` when you don\'t want to return anything from your V8 accessible method:\n\n```c++\nNAN_METHOD(Foo::Baz) {\n ...\n\n NanReturnUndefined();\n}\n```\n\n<a name="api_nan_return_null"></a>\n### NanReturnNull()\n\nUse `NanReturnNull` when you want to return `Null` from your V8 accessible method:\n\n```c++\nNAN_METHOD(Foo::Baz) {\n ...\n\n NanReturnNull();\n}\n```\n\n<a name="api_nan_return_empty_string"></a>\n### NanReturnEmptyString()\n\nUse `NanReturnEmptyString` when you want to return an empty `String` from your V8 accessible method:\n\n```c++\nNAN_METHOD(Foo::Baz) {\n ...\n\n NanReturnEmptyString();\n}\n```\n\n<a name="api_nan_scope"></a>\n### NanScope()\n\nThe introduction of `isolate` references for many V8 calls in Node 0.11 makes `NanScope()` necessary, use it in place of `HandleScope scope`:\n\n```c++\nNAN_METHOD(Foo::Bar) {\n NanScope();\n\n NanReturnValue(String::New("FooBar!"));\n}\n```\n\n<a name="api_nan_locker"></a>\n### NanLocker()\n\nThe introduction of `isolate` references for many V8 calls in Node 0.11 makes `NanLocker()` necessary, use it in place of `Locker locker`:\n\n```c++\nNAN_METHOD(Foo::Bar) {\n NanLocker();\n ...\n NanUnlocker();\n}\n```\n\n<a name="api_nan_unlocker"></a>\n### NanUnlocker()\n\nThe introduction of `isolate` references for many V8 calls in Node 0.11 makes `NanUnlocker()` necessary, use it in place of `Unlocker unlocker`:\n\n```c++\nNAN_METHOD(Foo::Bar) {\n NanLocker();\n ...\n NanUnlocker();\n}\n```\n\n<a name="api_nan_get_internal_field_pointer"></a>\n### void * NanGetInternalFieldPointer(Handle&lt;Object&gt;, int)\n\nGets a pointer to the internal field with at `index` from a V8 `Object` handle.\n\n```c++\nLocal<Object> obj;\n...\nNanGetInternalFieldPointer(obj, 0);\n```\n<a name="api_nan_set_internal_field_pointer"></a>\n### void NanSetInternalFieldPointer(Handle&lt;Object&gt;, int, void *)\n\nSets the value of the internal field at `index` on a V8 `Object` handle.\n\n```c++\nstatic Persistent<Function> dataWrapperCtor;\n...\nLocal<Object> wrapper = NanPersistentToLocal(dataWrapperCtor)->NewInstance();\nNanSetInternalFieldPointer(wrapper, 0, this);\n```\n\n<a name="api_nan_object_wrap_handle"></a>\n### Local&lt;Object&gt; NanObjectWrapHandle(Object)\n\nWhen you want to fetch the V8 object handle from a native object you\'ve wrapped with Node\'s `ObjectWrap`, you should use `NanObjectWrapHandle`:\n\n```c++\nNanObjectWrapHandle(iterator)->Get(String::NewSymbol("end"))\n```\n\n<a name="api_nan_make_weak"></a>\n### NanMakeWeak(Persistent&lt;T&gt;, parameter, callback)\n\nMake a persistent reference weak.\n\n<a name="api_nan_symbol"></a>\n### String NanSymbol(char *)\n\nThis isn\'t strictly about compatibility, it\'s just an easier way to create string symbol objects (i.e. `String::NewSymbol(x)`), for getting and setting object properties, or names of objects.\n\n```c++\nbool foo = false;\nif (obj->Has(NanSymbol("foo")))\n foo = optionsObj->Get(NanSymbol("foo"))->BooleanValue()\n```\n\n<a name="api_nan_get_pointer_safe"></a>\n### Type NanGetPointerSafe(Type *[, Type])\n\nA helper for getting values from optional pointers. If the pointer is `NULL`, the function returns the optional default value, which defaults to `0`. Otherwise, the function returns the value the pointer points to.\n\n```c++\nchar *plugh(uint32_t *optional) {\n char res[] = "xyzzy";\n uint32_t param = NanGetPointerSafe<uint32_t>(optional, 0x1337);\n switch (param) {\n ...\n }\n NanSetPointerSafe<uint32_t>(optional, 0xDEADBEEF);\n} \n```\n\n<a name="api_nan_set_pointer_safe"></a>\n### bool NanSetPointerSafe(Type *, Type)\n\nA helper for setting optional argument pointers. If the pointer is `NULL`, the function simply return `false`. Otherwise, the value is assigned to the variable the pointer points to.\n\n```c++\nconst char *plugh(size_t *outputsize) {\n char res[] = "xyzzy";\n if !(NanSetPointerSafe<size_t>(outputsize, strlen(res) + 1)) {\n ...\n }\n\n ...\n}\n```\n\n<a name="api_nan_from_v8_string"></a>\n### char* NanFromV8String(Handle&lt;Value&gt;[, enum Nan::Encoding, size_t *, char *, size_t, int])\n\nWhen you want to convert a V8 `String` to a `char*` use `NanFromV8String`. It is possible to define an encoding that defaults to `Nan::UTF8` as well as a pointer to a variable that will be assigned the number of bytes in the returned string. It is also possible to supply a buffer and its length to the function in order not to have a new buffer allocated. The final argument allows optionally setting `String::WriteOptions`, which default to `String::HINT_MANY_WRITES_EXPECTED | String::NO_NULL_TERMINATION`.\nJust remember that you\'ll end up with an object that you\'ll need to `delete[]` at some point unless you supply your own buffer:\n\n```c++\nsize_t count;\nchar* name = NanFromV8String(args[0]);\nchar* decoded = NanFromV8String(args[1], Nan::BASE64, &count, NULL, 0, String::HINT_MANY_WRITES_EXPECTED);\nchar param_copy[count];\nmemcpy(param_copy, decoded, count);\ndelete[] decoded;\n```\n\n<a name="api_nan_boolean_option_value"></a>\n### bool NanBooleanOptionValue(Handle&lt;Value&gt;, Handle&lt;String&gt;[, bool])\n\nWhen you have an "options" object that you need to fetch properties from, boolean options can be fetched with this pair. They check first if the object exists (`IsEmpty`), then if the object has the given property (`Has`) then they get and convert/coerce the property to a `bool`.\n\nThe optional last parameter is the *default* value, which is `false` if left off:\n\n```c++\n// `foo` is false unless the user supplies a truthy value for it\nbool foo = NanBooleanOptionValue(optionsObj, NanSymbol("foo"));\n// `bar` is true unless the user supplies a falsy value for it\nbool bar = NanBooleanOptionValueDefTrue(optionsObj, NanSymbol("bar"), true);\n```\n\n<a name="api_nan_uint32_option_value"></a>\n### uint32_t NanUInt32OptionValue(Handle&lt;Value&gt;, Handle&lt;String&gt;, uint32_t)\n\nSimilar to `NanBooleanOptionValue`, use `NanUInt32OptionValue` to fetch an integer option from your options object. Can be any kind of JavaScript `Number` and it will be coerced to an unsigned 32-bit integer.\n\nRequires all 3 arguments as a default is not optional:\n\n```c++\nuint32_t count = NanUInt32OptionValue(optionsObj, NanSymbol("count"), 1024);\n```\n\n<a name="api_nan_error"></a>\n### NanError(message), NanTypeError(message), NanRangeError(message)\n\nFor making `Error`, `TypeError` and `RangeError` objects.\n\n```c++\nLocal<Value> res = NanError("you must supply a callback argument");\n```\n\n<a name="api_nan_throw_error"></a>\n### NanThrowError(message), NanThrowTypeError(message), NanThrowRangeError(message), NanThrowError(Local&lt;Value&gt;), NanThrowError(Local&lt;Value&gt;, int)\n\nFor throwing `Error`, `TypeError` and `RangeError` objects. You should `return` this call:\n\n```c++\nreturn NanThrowError("you must supply a callback argument");\n```\n\nCan also handle any custom object you may want to throw. If used with the error code argument, it will add the supplied error code to the error object as a property called `code`.\n\n<a name="api_nan_new_buffer_handle"></a>\n### Local&lt;Object&gt; NanNewBufferHandle(char *, uint32_t), Local&lt;Object&gt; NanNewBufferHandle(uint32_t)\n\nThe `Buffer` API has changed a little in Node 0.11, this helper provides consistent access to `Buffer` creation:\n\n```c++\nNanNewBufferHandle((char*)value.data(), value.size());\n```\n\nCan also be used to initialize a `Buffer` with just a `size` argument.\n\nCan also be supplied with a `NAN_WEAK_CALLBACK` and a hint for the garbage collector, when dealing with weak references.\n\n<a name="api_nan_buffer_use"></a>\n### Local&lt;Object&gt; NanBufferUse(char*, uint32_t)\n\n`Buffer::New(char*, uint32_t)` prior to 0.11 would make a copy of the data.\nWhile it was possible to get around this, it required a shim by passing a\ncallback. So the new API `Buffer::Use(char*, uint32_t)` was introduced to remove\nneeding to use this shim.\n\n`NanBufferUse` uses the `char*` passed as the backing data, and will free the\nmemory automatically when the weak callback is called. Keep this in mind, as\ncareless use can lead to "double free or corruption" and other cryptic failures.\n\n<a name="api_nan_has_instance"></a>\n### bool NanHasInstance(Persistent&lt;FunctionTemplate&gt;&, Handle&lt;Value&gt;)\n\nCan be used to check the type of an object to determine it is of a particular class you have already defined and have a `Persistent<FunctionTemplate>` handle for.\n\n<a name="api_nan_persistent_to_local"></a>\n### Local&lt;Type&gt; NanPersistentToLocal(Persistent&lt;Type&gt;&)\n\nAside from `FunctionCallbackInfo`, the biggest and most painful change to V8 in Node 0.11 is the many restrictions now placed on `Persistent` handles. They are difficult to assign and difficult to fetch the original value out of.\n\nUse `NanPersistentToLocal` to convert a `Persistent` handle back to a `Local` handle.\n\n```c++\nLocal<Object> handle = NanPersistentToLocal(persistentHandle);\n```\n\n<a href="#api_nan_new_context_handle">\n### Local&lt;Context&gt; NanNewContextHandle([ExtensionConfiguration*, Handle&lt;ObjectTemplate&gt;, Handle&lt;Value&gt;])\nCreates a new `Local<Context>` handle.\n\n```c++\nLocal<FunctionTemplate> ftmpl = FunctionTemplate::New();\nLocal<ObjectTemplate> otmpl = ftmpl->InstanceTemplate();\nLocal<Context> ctx = NanNewContextHandle(NULL, otmpl);\n```\n\n<a name="api_nan_dispose"></a>\n### void NanDispose(Persistent&lt;T&gt; &)\n\nUse `NanDispose` to dispose a `Persistent` handle.\n\n```c++\nNanDispose(persistentHandle);\n```\n\n<a name="api_nan_assign_persistent"></a>\n### NanAssignPersistent(type, handle, object)\n\nUse `NanAssignPersistent` to assign a non-`Persistent` handle to a `Persistent` one. You can no longer just declare a `Persistent` handle and assign directly to it later, you have to `Reset` it in Node 0.11, so this makes it easier.\n\nIn general it is now better to place anything you want to protect from V8\'s garbage collector as properties of a generic `Object` and then assign that to a `Persistent`. This works in older versions of Node also if you use `NanAssignPersistent`:\n\n```c++\nPersistent<Object> persistentHandle;\n\n...\n\nLocal<Object> obj = Object::New();\nobj->Set(NanSymbol("key"), keyHandle); // where keyHandle might be a Local<String>\nNanAssignPersistent(Object, persistentHandle, obj)\n```\n\n<a name="api_nan_init_persistent"></a>\n### NanInitPersistent(type, name, object)\n\nUser `NanInitPersistent` to declare and initialize a new `Persistent` with the supplied object. The assignment operator for `Persistent` is no longer public in Node 0.11, so this macro makes it easier to declare and initializing a new `Persistent`. See <a href="#api_nan_assign_persistent"><b><code>NanAssignPersistent</code></b></a> for more information.\n\n```c++\nLocal<Object> obj = Object::New();\nobj->Set(NanSymbol("key"), keyHandle); // where keyHandle might be a Local<String>\nNanInitPersistent(Object, persistentHandle, obj);\n```\n\n<a name="api_nan_callback"></a>\n### NanCallback\n\nBecause of the difficulties imposed by the changes to `Persistent` handles in V8 in Node 0.11, creating `Persistent` versions of your `Local<Function>` handles is annoyingly tricky. `NanCallback` makes it easier by taking your `Local` handle, making it persistent until the `NanCallback` is deleted and even providing a handy `Call()` method to fetch and execute the callback `Function`.\n\n```c++\nLocal<Function> callbackHandle = args[0].As<Function>();\nNanCallback *callback = new NanCallback(callbackHandle);\n// pass `callback` around and it\'s safe from GC until you:\ndelete callback;\n```\n\nYou can execute the callback like so:\n\n```c++\n// no arguments:\ncallback->Call(0, NULL);\n\n// an error argument:\nLocal<Value> argv[] = {\n Exception::Error(String::New("fail!"))\n};\ncallback->Call(1, argv);\n\n// a success argument:\nLocal<Value> argv[] = {\n Local<Value>::New(Null()),\n String::New("w00t!")\n};\ncallback->Call(2, argv);\n```\n\n`NanCallback` also has a `Local<Function> GetCallback()` method that you can use to fetch a local handle to the underlying callback function if you need it.\n\n<a name="api_nan_async_worker"></a>\n### NanAsyncWorker\n\n`NanAsyncWorker` is an abstract class that you can subclass to have much of the annoying async queuing and handling taken care of for you. It can even store arbitrary V8 objects for you and have them persist while the async work is in progress.\n\nSee a rough outline of the implementation:\n\n```c++\nclass NanAsyncWorker {\npublic:\n NanAsyncWorker (NanCallback *callback);\n\n // Clean up persistent handles and delete the *callback\n virtual ~NanAsyncWorker ();\n\n // Check the `char *errmsg` property and call HandleOKCallback()\n // or HandleErrorCallback depending on whether it has been set or not\n virtual void WorkComplete ();\n\n // You must implement this to do some async work. If there is an\n // error then allocate `errmsg` to to a message and the callback will\n // be passed that string in an Error object\n virtual void Execute ();\n\n // Save a V8 object in a Persistent handle to protect it from GC\n void SavePersistent(const char *key, Local<Object> &obj);\n\n // Fetch a stored V8 object (don\'t call from within `Execute()`)\n Local<Object> GetFromPersistent(const char *key);\n\nprotected:\n // Set this if there is an error, otherwise it\'s NULL\n const char *errmsg;\n\n // Default implementation calls the callback function with no arguments.\n // Override this to return meaningful data\n virtual void HandleOKCallback ();\n\n // Default implementation calls the callback function with an Error object\n // wrapping the `errmsg` string\n virtual void HandleErrorCallback ();\n};\n```\n\n<a name="api_nan_async_queue_worker"></a>\n### NanAsyncQueueWorker(NanAsyncWorker *)\n\n`NanAsyncQueueWorker` will run a `NanAsyncWorker` asynchronously via libuv. Both the *execute* and *after_work* steps are taken care of for you&mdash;most of the logic for this is embedded in `NanAsyncWorker`.\n\n### Contributors\n\nNAN is only possible due to the excellent work of the following contributors:\n\n<table><tbody>\n<tr><th align="left">Rod Vagg</th><td><a href="https://github.com/rvagg">GitHub/rvagg</a></td><td><a href="http://twitter.com/rvagg">Twitter/@rvagg</a></td></tr>\n<tr><th align="left">Benjamin Byholm</th><td><a href="https://github.com/kkoopa/">GitHub/kkoopa</a></td></tr>\n<tr><th align="left">Trevor Norris</th><td><a href="https://github.com/trevnorris">GitHub/trevnorris</a></td><td><a href="http://twitter.com/trevnorris">Twitter/@trevnorris</a></td></tr>\n<tr><th align="left">Nathan Rajlich</th><td><a href="https://github.com/TooTallNate">GitHub/TooTallNate</a></td><td><a href="http://twitter.com/TooTallNate">Twitter/@TooTallNate</a></td></tr>\n</tbody></table>\n\nLicence &amp; copyright\n-----------------------\n\nCopyright (c) 2013 NAN contributors (listed above).\n\nNative Abstractions for Node.js is licensed under an MIT +no-false-attribs license. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details.\n',
6476 silly resolved readmeFilename: 'README.md',
6476 silly resolved bugs: { url: 'https://github.com/rvagg/nan/issues' },
6476 silly resolved homepage: 'https://github.com/rvagg/nan',
6476 silly resolved _id: 'nan@0.6.0',
6476 silly resolved _from: 'nan@~0.6.0' } ]
6477 info install nan@0.6.0 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-expat
6478 info installOne nan@0.6.0
6479 silly gunzTarPerm extractEntry .npmignore
6480 silly gunzTarPerm extractEntry README.md
6481 silly gunzTarPerm extractEntry .npmignore
6482 silly gunzTarPerm extractEntry index.js
6483 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-expat/node_modules/nan unbuild
6484 verbose tar unpack /home/scarter/.npm/cryptiles/0.2.2/package.tgz
6485 silly lockFile ece66558-ules-hawk-node-modules-cryptiles tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/cryptiles
6486 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/cryptiles /home/scarter/.npm/ece66558-ules-hawk-node-modules-cryptiles.lock
6487 silly lockFile 7e4ce879--npm-cryptiles-0-2-2-package-tgz tar:///home/scarter/.npm/cryptiles/0.2.2/package.tgz
6488 verbose lock tar:///home/scarter/.npm/cryptiles/0.2.2/package.tgz /home/scarter/.npm/7e4ce879--npm-cryptiles-0-2-2-package-tgz.lock
6489 verbose readDependencies using package.json deps
6490 verbose tar unpack /home/scarter/.npm/sntp/0.2.4/package.tgz
6491 silly lockFile 8f78b9db-e-modules-hawk-node-modules-sntp tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/sntp
6492 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/sntp /home/scarter/.npm/8f78b9db-e-modules-hawk-node-modules-sntp.lock
6493 silly lockFile 67c7408c-arter-npm-sntp-0-2-4-package-tgz tar:///home/scarter/.npm/sntp/0.2.4/package.tgz
6494 verbose lock tar:///home/scarter/.npm/sntp/0.2.4/package.tgz /home/scarter/.npm/67c7408c-arter-npm-sntp-0-2-4-package-tgz.lock
6495 verbose tar unpack /home/scarter/.npm/hoek/0.9.1/package.tgz
6496 silly lockFile 9a912b45-e-modules-hawk-node-modules-hoek tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/hoek
6497 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/hoek /home/scarter/.npm/9a912b45-e-modules-hawk-node-modules-hoek.lock
6498 silly lockFile 24e7ea1f-arter-npm-hoek-0-9-1-package-tgz tar:///home/scarter/.npm/hoek/0.9.1/package.tgz
6499 verbose lock tar:///home/scarter/.npm/hoek/0.9.1/package.tgz /home/scarter/.npm/24e7ea1f-arter-npm-hoek-0-9-1-package-tgz.lock
6500 verbose tar unpack /home/scarter/.npm/boom/0.4.2/package.tgz
6501 silly lockFile 06e3e018-e-modules-hawk-node-modules-boom tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/boom
6502 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/boom /home/scarter/.npm/06e3e018-e-modules-hawk-node-modules-boom.lock
6503 silly lockFile e8d428d0-arter-npm-boom-0-4-2-package-tgz tar:///home/scarter/.npm/boom/0.4.2/package.tgz
6504 verbose lock tar:///home/scarter/.npm/boom/0.4.2/package.tgz /home/scarter/.npm/e8d428d0-arter-npm-boom-0-4-2-package-tgz.lock
6505 verbose tar unpack /home/scarter/.npm/cryptiles/0.2.2/package.tgz
6506 silly lockFile 7481fab7-ules-hawk-node-modules-cryptiles tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/cryptiles
6507 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/cryptiles /home/scarter/.npm/7481fab7-ules-hawk-node-modules-cryptiles.lock
6508 silly lockFile 7e4ce879--npm-cryptiles-0-2-2-package-tgz tar:///home/scarter/.npm/cryptiles/0.2.2/package.tgz
6509 verbose lock tar:///home/scarter/.npm/cryptiles/0.2.2/package.tgz /home/scarter/.npm/7e4ce879--npm-cryptiles-0-2-2-package-tgz.lock
6510 verbose tar unpack /home/scarter/.npm/sntp/0.2.4/package.tgz
6511 silly lockFile 057c3b5c-e-modules-hawk-node-modules-sntp tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/sntp
6512 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/sntp /home/scarter/.npm/057c3b5c-e-modules-hawk-node-modules-sntp.lock
6513 silly lockFile 67c7408c-arter-npm-sntp-0-2-4-package-tgz tar:///home/scarter/.npm/sntp/0.2.4/package.tgz
6514 verbose lock tar:///home/scarter/.npm/sntp/0.2.4/package.tgz /home/scarter/.npm/67c7408c-arter-npm-sntp-0-2-4-package-tgz.lock
6515 verbose tar unpack /home/scarter/.npm/hoek/0.9.1/package.tgz
6516 silly lockFile c62da9b8-e-modules-hawk-node-modules-hoek tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/hoek
6517 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/hoek /home/scarter/.npm/c62da9b8-e-modules-hawk-node-modules-hoek.lock
6518 silly lockFile 24e7ea1f-arter-npm-hoek-0-9-1-package-tgz tar:///home/scarter/.npm/hoek/0.9.1/package.tgz
6519 verbose lock tar:///home/scarter/.npm/hoek/0.9.1/package.tgz /home/scarter/.npm/24e7ea1f-arter-npm-hoek-0-9-1-package-tgz.lock
6520 verbose tar unpack /home/scarter/.npm/boom/0.4.2/package.tgz
6521 silly lockFile 50db0d93-e-modules-hawk-node-modules-boom tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/boom
6522 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/boom /home/scarter/.npm/50db0d93-e-modules-hawk-node-modules-boom.lock
6523 silly lockFile e8d428d0-arter-npm-boom-0-4-2-package-tgz tar:///home/scarter/.npm/boom/0.4.2/package.tgz
6524 verbose lock tar:///home/scarter/.npm/boom/0.4.2/package.tgz /home/scarter/.npm/e8d428d0-arter-npm-boom-0-4-2-package-tgz.lock
6525 info preinstall assert@1.1.0
6526 info postinstall console-browserify@1.0.3
6527 silly gunzTarPerm extractEntry man/man3ctype/ctio.3ctype
6528 silly gunzTarPerm extractEntry README.old
6529 verbose readDependencies using package.json deps
6530 silly resolved []
6531 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/bindings
6532 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/bindings
6533 verbose linkStuff [ false,
6533 verbose linkStuff false,
6533 verbose linkStuff false,
6533 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules' ]
6534 info linkStuff bindings@1.1.1
6535 verbose linkBins bindings@1.1.1
6536 verbose linkMans bindings@1.1.1
6537 verbose rebuildBundles bindings@1.1.1
6538 verbose readDependencies using package.json deps
6539 info install bindings@1.1.1
6540 silly gunzTarPerm extractEntry example/sourcemap/input.json
6541 verbose readDependencies using package.json deps
6542 silly resolved []
6543 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/through
6544 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/through
6545 verbose linkStuff [ false,
6545 verbose linkStuff false,
6545 verbose linkStuff false,
6545 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
6546 info linkStuff through@2.3.4
6547 verbose linkBins through@2.3.4
6548 verbose linkMans through@2.3.4
6549 verbose rebuildBundles through@2.3.4
6550 silly gunzTarPerm extractEntry package.json
6551 verbose tar unpack /home/scarter/.npm/nan/0.6.0/package.tgz
6552 silly lockFile 7b405393-ules-node-expat-node-modules-nan tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-expat/node_modules/nan
6553 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-expat/node_modules/nan /home/scarter/.npm/7b405393-ules-node-expat-node-modules-nan.lock
6554 silly lockFile 623b4e64-carter-npm-nan-0-6-0-package-tgz tar:///home/scarter/.npm/nan/0.6.0/package.tgz
6555 verbose lock tar:///home/scarter/.npm/nan/0.6.0/package.tgz /home/scarter/.npm/623b4e64-carter-npm-nan-0-6-0-package-tgz.lock
6556 silly gunzTarPerm modes [ '755', '644' ]
6557 silly gunzTarPerm modes [ '755', '644' ]
6558 silly gunzTarPerm modes [ '755', '644' ]
6559 silly gunzTarPerm modes [ '755', '644' ]
6560 silly gunzTarPerm extractEntry test/vectors/byte0001.dat
6561 silly gunzTarPerm extractEntry test/vectors/byte0002.dat
6562 info install through@2.3.4
6563 verbose readDependencies using package.json deps
6564 silly gunzTarPerm extractEntry perf/comparison/bracket-notation.js
6565 silly gunzTarPerm extractEntry perf/comparison/concat.js
6566 info postinstall bindings@1.1.1
6567 verbose readDependencies using package.json deps
6568 silly resolved []
6569 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/assert
6570 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/assert
6571 verbose linkStuff [ false,
6571 verbose linkStuff false,
6571 verbose linkStuff false,
6571 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
6572 info linkStuff assert@1.1.0
6573 verbose linkBins assert@1.1.0
6574 verbose linkMans assert@1.1.0
6575 verbose rebuildBundles assert@1.1.0
6576 info postinstall through@2.3.4
6577 info install assert@1.1.0
6578 silly gunzTarPerm modes [ '755', '644' ]
6579 silly gunzTarPerm extractEntry README.md
6580 silly gunzTarPerm extractEntry bindings.js
6581 silly lockFile 80430b1c-wserify-node-modules-querystring tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/querystring
6582 silly lockFile 80430b1c-wserify-node-modules-querystring tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/querystring
6583 silly gunzTarPerm extractEntry LICENSE.BSD
6584 info postinstall assert@1.1.0
6585 silly gunzTarPerm extractEntry package.json
6586 silly lockFile 3c426c28-y-node-modules-timers-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/timers-browserify
6587 silly lockFile 3c426c28-y-node-modules-timers-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/timers-browserify
6588 silly lockFile 3e276024-pm-querystring-0-2-0-package-tgz tar:///home/scarter/.npm/querystring/0.2.0/package.tgz
6589 silly lockFile 3e276024-pm-querystring-0-2-0-package-tgz tar:///home/scarter/.npm/querystring/0.2.0/package.tgz
6590 silly gunzTarPerm extractEntry .travis.yml
6591 silly gunzTarPerm extractEntry LICENSE.APACHE2
6592 silly gunzTarPerm extractEntry test/fixtures/depth.json
6593 silly lockFile f4e4cda1-erify-node-modules-vm-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/vm-browserify
6594 silly lockFile f4e4cda1-erify-node-modules-vm-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/vm-browserify
6595 silly lockFile 13b89ba0-esprima-0-9-9 esprima@0.9.9
6596 silly lockFile 13b89ba0-esprima-0-9-9 esprima@0.9.9
6597 silly gunzTarPerm extractEntry package.json
6598 silly gunzTarPerm extractEntry package.json
6599 silly gunzTarPerm extractEntry package.json
6600 silly lockFile eec3b3c2-ers-browserify-1-0-1-package-tgz tar:///home/scarter/.npm/timers-browserify/1.0.1/package.tgz
6601 silly lockFile eec3b3c2-ers-browserify-1-0-1-package-tgz tar:///home/scarter/.npm/timers-browserify/1.0.1/package.tgz
6602 silly gunzTarPerm extractEntry LICENSE
6603 silly lockFile b2567fb0--vm-browserify-0-0-4-package-tgz tar:///home/scarter/.npm/vm-browserify/0.0.4/package.tgz
6604 silly lockFile b2567fb0--vm-browserify-0-0-4-package-tgz tar:///home/scarter/.npm/vm-browserify/0.0.4/package.tgz
6605 silly lockFile c716a742-esprima-0-9-9 esprima@~0.9.9
6606 silly lockFile c716a742-esprima-0-9-9 esprima@~0.9.9
6607 silly lockFile 44e924ef-querystring-0-1-0 querystring@0.1.0
6608 silly lockFile 44e924ef-querystring-0-1-0 querystring@0.1.0
6609 silly resolved [ { name: 'esprima',
6609 silly resolved description: 'ECMAScript parsing infrastructure for multipurpose analysis',
6609 silly resolved homepage: 'http://esprima.org',
6609 silly resolved main: 'esprima.js',
6609 silly resolved bin: { esparse: './bin/esparse.js' },
6609 silly resolved version: '0.9.9',
6609 silly resolved engines: { node: '>=0.4.0' },
6609 silly resolved maintainers: [ [Object] ],
6609 silly resolved repository: { type: 'git', url: 'http://github.com/ariya/esprima.git' },
6609 silly resolved licenses: [ [Object] ],
6609 silly resolved scripts:
6609 silly resolved { test: 'node test/run.js',
6609 silly resolved benchmark: 'node test/benchmarks.js',
6609 silly resolved 'benchmark-quick': 'node test/benchmarks.js quick' },
6609 silly resolved readme: 'Esprima ([esprima.org](http://esprima.org)) is an educational\n[ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm)\n(also popularly known as [JavaScript](http://en.wikipedia.org/wiki/JavaScript>JavaScript))\nparsing infrastructure for multipurpose analysis. It is also written in ECMAScript.\n\nEsprima serves as a good basis for various tools such as source\nmodification ([Esmorph](https://github.com/ariya/esmorph)), coverage analyzer\n([node-cover](https://github.com/itay/node-cover) and\n[coveraje](https://github.com/coveraje/coveraje)),\nsource-to-source compiler ([Marv](https://github.com/Yoric/Marv-the-Tinker)),\nsyntax formatter ([Code Painter](https://github.com/fawek/codepainter)),\nand code generator ([escodegen](https://github.com/Constellation/escodegen)).\n\nEsprima can be used in a web browser:\n\n <script src="esprima.js"></script>\n\nor in a Node.js application via the package manager:\n\n npm install esprima\n\nEsprima parser output is compatible with Mozilla (SpiderMonkey)\n[Parser API](https://developer.mozilla.org/en/SpiderMonkey/Parser_API).\n\nA very simple example:\n\n esprima.parse(\'var answer=42\').body[0].declarations[0].init\n\nproduces the following object:\n\n { type: \'Literal\', value: 42 }\n\nEsprima is still in the development, for now please check\n[the wiki documentation](http://wiki.esprima.org).\n\nSince it is not comprehensive nor complete, refer to the\n[issue tracker](http://issues.esprima.org) for\n[known problems](http://code.google.com/p/esprima/issues/list?q=Defect)\nand [future plans](http://code.google.com/p/esprima/issues/list?q=Enhancement).\nEsprima is supported on [many browsers](http://code.google.com/p/esprima/wiki/BrowserCompatibility):\nIE 6+, Firefox 1+, Safari 3+, Chrome 1+, and Opera 8+.\n\nFeedback and contribution are welcomed! Please join the\n[mailing list](http://groups.google.com/group/esprima) and read the\n[contribution guide](http://code.google.com/p/esprima/wiki/ContributionGuide)\nfor further info.\n\n\n### License\n\nCopyright (C) 2012, 2011 [Ariya Hidayat](http://ariya.ofilabs.com/about)\n (twitter: [@ariyahidayat](http://twitter.com/ariyahidayat)) and other contributors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\nTHIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n',
6609 silly resolved readmeFilename: 'README.md',
6609 silly resolved bugs: { url: 'https://github.com/ariya/esprima/issues' },
6609 silly resolved _id: 'esprima@0.9.9',
6609 silly resolved _from: 'esprima@~0.9.9' } ]
6610 info install esprima@0.9.9 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/syntax-error
6611 info installOne esprima@0.9.9
6612 silly gunzTarPerm extractEntry package.json
6613 silly lockFile aaf8e055-querystring-0-1-0-0-2-0 querystring@>=0.1.0 <0.2.0
6614 silly lockFile aaf8e055-querystring-0-1-0-0-2-0 querystring@>=0.1.0 <0.2.0
6615 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/syntax-error/node_modules/esprima unbuild
6616 silly gunzTarPerm extractEntry .npmignore
6617 silly gunzTarPerm extractEntry README.md
6618 silly resolved [ { name: 'punycode',
6618 silly resolved version: '1.0.0',
6618 silly resolved description: 'A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.',
6618 silly resolved homepage: 'http://mths.be/punycode',
6618 silly resolved main: 'punycode.js',
6618 silly resolved keywords: [ 'punycode', 'unicode', 'idn', 'url', 'domain' ],
6618 silly resolved licenses: [ [Object], [Object] ],
6618 silly resolved author:
6618 silly resolved { name: 'Mathias Bynens',
6618 silly resolved email: 'mathias@qiwi.be',
6618 silly resolved url: 'http://mathiasbynens.be/' },
6618 silly resolved maintainers: [ [Object], [Object] ],
6618 silly resolved bugs: { url: 'https://github.com/bestiejs/punycode.js/issues' },
6618 silly resolved repository:
6618 silly resolved { type: 'git',
6618 silly resolved url: 'https://github.com/bestiejs/punycode.js.git' },
6618 silly resolved engines: [ 'node', 'rhino' ],
6618 silly resolved directories: { doc: 'docs', test: 'tests' },
6618 silly resolved readme: '# Punycode.js\n\nA robust Punycode converter that fully complies to [RFC 3492](http://tools.ietf.org/html/rfc3492) and [RFC 5891](http://tools.ietf.org/html/rfc5891), and works on nearly all JavaScript platforms.\n\nThis JavaScript library is the result of comparing, optimizing and documenting different open-source implementations of the Punycode algorithm:\n\n* [The C example code from RFC 3492](http://tools.ietf.org/html/rfc3492#appendix-C)\n* [`punycode.c` by _Markus W. Scherer_ (IBM)](http://opensource.apple.com/source/ICU/ICU-400.42/icuSources/common/punycode.c)\n* [`punycode.c` by _Ben Noordhuis_](https://github.com/bnoordhuis/punycode/blob/master/punycode.c)\n* [JavaScript implementation by _some_](http://stackoverflow.com/questions/183485/can-anyone-recommend-a-good-free-javascript-for-punycode-to-unicode-conversion/301287#301287)\n* [`punycode.js` by _Ben Noordhuis_](https://github.com/joyent/node/blob/426298c8c1c0d5b5224ac3658c41e7c2a3fe9377/lib/punycode.js) (note: [not fully compliant](https://github.com/joyent/node/issues/2072))\n\nThis project is [bundled](https://github.com/joyent/node/blob/master/lib/punycode.js) with [Node.js v0.6.2+](https://github.com/joyent/node/compare/975f1930b1...61e796decc).\n\n## Installation and usage\n\nIn a browser:\n\n~~~html\n<script src="punycode.js"></script>\n~~~\n\nVia [npm](http://npmjs.org/) (only required for Node.js releases older than v0.6.2):\n\n~~~bash\nnpm install punycode\n~~~\n\nIn [Narwhal](http://narwhaljs.org/), [Node.js](http://nodejs.org/), and [RingoJS](http://ringojs.org/):\n\n~~~js\nvar punycode = require(\'punycode\');\n~~~\n\nIn [Rhino](http://www.mozilla.org/rhino/):\n\n~~~js\nload(\'punycode.js\');\n~~~\n\nUsing an AMD loader like [RequireJS](http://requirejs.org/):\n\n~~~js\nrequire(\n {\n \'paths\': {\n \'punycode\': \'path/to/punycode\'\n }\n },\n [\'punycode\'],\n function(punycode) {\n console.log(punycode);\n }\n);\n~~~\n\nUsage example:\n\n~~~js\n\n// encode/decode domain names\npunycode.toASCII(\'mañana.com\'); // \'xn--maana-pta.com\'\npunycode.toUnicode(\'xn--maana-pta.com\'); // \'mañana.com\'\npunycode.toASCII(\'☃-⌘.com\'); // \'xn----dqo34k.com\'\npunycode.toUnicode(\'xn----dqo34k.com\'); // \'☃-⌘.com\'\n\n// encode/decode domain name parts\npunycode.encode(\'mañana\'); // \'maana-pta\'\npunycode.decode(\'maana-pta\'); // \'mañana\'\npunycode.encode(\'☃-⌘\'); // \'--dqo34k\'\npunycode.decode(\'--dqo34k\'); // \'☃-⌘\'\n~~~\n\n[Full API documentation is available.](https://github.com/bestiejs/punycode.js/tree/master/docs#readme)\n\n## Cloning this repo\n\nTo clone this repository including all submodules, using Git 1.6.5 or later:\n\n~~~ bash\ngit clone --recursive https://github.com/bestiejs/punycode.js.git\ncd punycode.js\n~~~\n\nFor older Git versions, just use:\n\n~~~ bash\ngit clone https://github.com/bestiejs/punycode.js.git\ncd punycode.js\ngit submodule update --init\n~~~\n\nFeel free to fork if you see possible improvements!\n\n## Authors\n\n* [Mathias Bynens](http://mathiasbynens.be/)\n [![twitter/mathias](http://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](http://twitter.com/mathias "Follow @mathias on Twitter")\n\n## Contributors\n\n* [John-David Dalton](http://allyoucanleet.com/)\n [![twitter/jdalton](http://gravatar.com/avatar/299a3d891ff1920b69c364d061007043?s=70)](http://twitter.com/jdalton "Follow @jdalton on Twitter")\n\n## License\n\nPunycode.js is dual licensed under the [MIT](http://mths.be/mit) and [GPL](http://mths.be/gpl) licenses.',
6618 silly resolved readmeFilename: 'README.md',
6618 silly resolved _id: 'punycode@1.0.0',
6618 silly resolved _from: 'punycode@>=1.0.0 <1.1.0' },
6618 silly resolved { name: 'querystring',
6618 silly resolved id: 'querystring',
6618 silly resolved version: '0.1.0',
6618 silly resolved description: 'Node\'s querystring module for all engines.',
6618 silly resolved keywords: [ 'commonjs', 'query', 'querystring' ],
6618 silly resolved author: { name: 'Irakli Gozalishvili', email: 'rfobic@gmail.com' },
6618 silly resolved repository:
6618 silly resolved { type: 'git',
6618 silly resolved url: 'git://github.com/Gozala/querystring.git',
6618 silly resolved web: 'https://github.com/Gozala/querystring' },
6618 silly resolved bugs: { url: 'http://github.com/Gozala/querystring/issues/' },
6618 silly resolved devDependencies: { test: '>=0.4.3' },
6618 silly resolved main: './querystring.js',
6618 silly resolved engines: { node: '>=0.4.x' },
6618 silly resolved scripts: { test: 'node tests/test-querystring.js' },
6618 silly resolved readme: '# querystring #\n\nNode\'s querystring module for all engines.\n\n## Install ##\n\n npm install querystring\n\n',
6618 silly resolved readmeFilename: 'Readme.md',
6618 silly resolved homepage: 'https://github.com/Gozala/querystring',
6618 silly resolved _id: 'querystring@0.1.0',
6618 silly resolved _from: 'querystring@>=0.1.0 <0.2.0' } ]
6619 info install punycode@1.0.0 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/url
6620 info install querystring@0.1.0 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/url
6621 info installOne punycode@1.0.0
6622 info installOne querystring@0.1.0
6623 info preinstall querystring@0.2.0
6624 silly gunzTarPerm extractEntry .npmignore
6625 silly gunzTarPerm extractEntry README.md
6626 silly gunzTarPerm extractEntry .npmignore
6627 silly gunzTarPerm extractEntry README.md
6628 silly gunzTarPerm extractEntry .npmignore
6629 silly gunzTarPerm extractEntry README.md
6630 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/url/node_modules/punycode unbuild
6631 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/url/node_modules/querystring unbuild
6632 info preinstall timers-browserify@1.0.1
6633 silly gunzTarPerm extractEntry bin/esvalidate.js
6634 silly gunzTarPerm extractEntry test/compat.js
6635 silly lockFile 9d4e3e88-ify-node-modules-zlib-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/zlib-browserify
6636 silly lockFile 9d4e3e88-ify-node-modules-zlib-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/zlib-browserify
6637 info preinstall vm-browserify@0.0.4
6638 silly lockFile 4b52bb8c-lib-browserify-0-0-3-package-tgz tar:///home/scarter/.npm/zlib-browserify/0.0.3/package.tgz
6639 silly lockFile 4b52bb8c-lib-browserify-0-0-3-package-tgz tar:///home/scarter/.npm/zlib-browserify/0.0.3/package.tgz
6640 verbose tar unpack /home/scarter/.npm/esprima/0.9.9/package.tgz
6641 silly lockFile 3de4e3db-yntax-error-node-modules-esprima tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/syntax-error/node_modules/esprima
6642 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/syntax-error/node_modules/esprima /home/scarter/.npm/3de4e3db-yntax-error-node-modules-esprima.lock
6643 silly lockFile 7bac0c58-er-npm-esprima-0-9-9-package-tgz tar:///home/scarter/.npm/esprima/0.9.9/package.tgz
6644 verbose lock tar:///home/scarter/.npm/esprima/0.9.9/package.tgz /home/scarter/.npm/7bac0c58-er-npm-esprima-0-9-9-package-tgz.lock
6645 silly gunzTarPerm extractEntry README.md
6646 silly gunzTarPerm extractEntry LICENSE
6647 silly gunzTarPerm extractEntry include_dirs.js
6648 silly gunzTarPerm extractEntry build/config.gypi
6649 silly gunzTarPerm extractEntry nan.h
6650 verbose readDependencies using package.json deps
6651 verbose tar unpack /home/scarter/.npm/punycode/1.0.0/package.tgz
6652 silly lockFile b6167b72-odules-url-node-modules-punycode tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/url/node_modules/punycode
6653 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/url/node_modules/punycode /home/scarter/.npm/b6167b72-odules-url-node-modules-punycode.lock
6654 silly lockFile 938d31e8-r-npm-punycode-1-0-0-package-tgz tar:///home/scarter/.npm/punycode/1.0.0/package.tgz
6655 verbose lock tar:///home/scarter/.npm/punycode/1.0.0/package.tgz /home/scarter/.npm/938d31e8-r-npm-punycode-1-0-0-package-tgz.lock
6656 verbose tar unpack /home/scarter/.npm/querystring/0.1.0/package.tgz
6657 silly lockFile 4d638f47-les-url-node-modules-querystring tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/url/node_modules/querystring
6658 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/url/node_modules/querystring /home/scarter/.npm/4d638f47-les-url-node-modules-querystring.lock
6659 silly lockFile 535723c7-pm-querystring-0-1-0-package-tgz tar:///home/scarter/.npm/querystring/0.1.0/package.tgz
6660 verbose lock tar:///home/scarter/.npm/querystring/0.1.0/package.tgz /home/scarter/.npm/535723c7-pm-querystring-0-1-0-package-tgz.lock
6661 verbose readDependencies using package.json deps
6662 verbose readDependencies using package.json deps
6663 silly resolved []
6664 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/querystring
6665 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/querystring
6666 verbose linkStuff [ false,
6666 verbose linkStuff false,
6666 verbose linkStuff false,
6666 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
6667 info linkStuff querystring@0.2.0
6668 verbose linkBins querystring@0.2.0
6669 verbose linkMans querystring@0.2.0
6670 verbose rebuildBundles querystring@0.2.0
6671 silly gunzTarPerm extractEntry LICENSE.MIT
6672 silly gunzTarPerm extractEntry examples/all_docs.js
6673 verbose readDependencies using package.json deps
6674 silly lockFile bfc4705e-gnature-node-modules-assert-plus tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules/assert-plus
6675 silly lockFile bfc4705e-gnature-node-modules-assert-plus tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules/assert-plus
6676 verbose readDependencies using package.json deps
6677 info install querystring@0.2.0
6678 silly gunzTarPerm extractEntry Makefile.dryice.js
6679 silly gunzTarPerm extractEntry .travis.yml
6680 verbose readDependencies using package.json deps
6681 silly gunzTarPerm modes [ '755', '644' ]
6682 silly lockFile e287f105-pm-assert-plus-0-1-2-package-tgz tar:///home/scarter/.npm/assert-plus/0.1.2/package.tgz
6683 silly lockFile e287f105-pm-assert-plus-0-1-2-package-tgz tar:///home/scarter/.npm/assert-plus/0.1.2/package.tgz
6684 verbose cache add [ 'process@~0.5.1', null ]
6685 verbose cache add name=undefined spec="process@~0.5.1" args=["process@~0.5.1",null]
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: 'process@~0.5.1',
6686 verbose parsed url path: 'process@~0.5.1',
6686 verbose parsed url href: 'process@~0.5.1' }
6687 verbose cache add name="process" spec="~0.5.1" args=["process","~0.5.1"]
6688 verbose parsed url { protocol: null,
6688 verbose parsed url slashes: null,
6688 verbose parsed url auth: null,
6688 verbose parsed url host: null,
6688 verbose parsed url port: null,
6688 verbose parsed url hostname: null,
6688 verbose parsed url hash: null,
6688 verbose parsed url search: null,
6688 verbose parsed url query: null,
6688 verbose parsed url pathname: '~0.5.1',
6688 verbose parsed url path: '~0.5.1',
6688 verbose parsed url href: '~0.5.1' }
6689 verbose addNamed [ 'process', '~0.5.1' ]
6690 verbose addNamed [ null, '>=0.5.1-0 <0.6.0-0' ]
6691 silly lockFile d6f67848-process-0-5-1 process@~0.5.1
6692 verbose lock process@~0.5.1 /home/scarter/.npm/d6f67848-process-0-5-1.lock
6693 silly lockFile 5df2d500-erify-node-modules-concat-stream tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/concat-stream
6694 silly lockFile 5df2d500-erify-node-modules-concat-stream tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/concat-stream
6695 info preinstall zlib-browserify@0.0.3
6696 silly gunzTarPerm modes [ '755', '644' ]
6697 verbose cache add [ 'indexof@0.0.1', null ]
6698 verbose cache add name=undefined spec="indexof@0.0.1" args=["indexof@0.0.1",null]
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: 'indexof@0.0.1',
6699 verbose parsed url path: 'indexof@0.0.1',
6699 verbose parsed url href: 'indexof@0.0.1' }
6700 verbose cache add name="indexof" spec="0.0.1" args=["indexof","0.0.1"]
6701 verbose parsed url { protocol: null,
6701 verbose parsed url slashes: null,
6701 verbose parsed url auth: null,
6701 verbose parsed url host: null,
6701 verbose parsed url port: null,
6701 verbose parsed url hostname: null,
6701 verbose parsed url hash: null,
6701 verbose parsed url search: null,
6701 verbose parsed url query: null,
6701 verbose parsed url pathname: '0.0.1',
6701 verbose parsed url path: '0.0.1',
6701 verbose parsed url href: '0.0.1' }
6702 verbose addNamed [ 'indexof', '0.0.1' ]
6703 verbose addNamed [ '0.0.1', '0.0.1' ]
6704 silly lockFile eb104ead-indexof-0-0-1 indexof@0.0.1
6705 verbose lock indexof@0.0.1 /home/scarter/.npm/eb104ead-indexof-0-0-1.lock
6706 silly lockFile b75be74e--concat-stream-1-4-1-package-tgz tar:///home/scarter/.npm/concat-stream/1.4.1/package.tgz
6707 silly lockFile b75be74e--concat-stream-1-4-1-package-tgz tar:///home/scarter/.npm/concat-stream/1.4.1/package.tgz
6708 info postinstall querystring@0.2.0
6709 silly addNameRange { name: 'process', range: '>=0.5.1-0 <0.6.0-0', hasData: false }
6710 silly gunzTarPerm extractEntry LICENSE
6711 silly gunzTarPerm extractEntry index.js
6712 verbose readDependencies using package.json deps
6713 info preinstall assert-plus@0.1.2
6714 silly gunzTarPerm extractEntry LICENSE
6715 silly gunzTarPerm extractEntry index.js
6716 silly gunzTarPerm extractEntry .travis.yml
6717 silly gunzTarPerm extractEntry Makefile
6718 silly gunzTarPerm extractEntry images/hoek.png
6719 silly gunzTarPerm extractEntry lib/escape.js
6720 silly gunzTarPerm extractEntry lib/index.js
6721 silly gunzTarPerm extractEntry test/escaper.js
6722 silly gunzTarPerm extractEntry test/index.js
6723 silly gunzTarPerm extractEntry test/modules/test1.js
6724 silly gunzTarPerm extractEntry test/modules/test2.js
6725 silly gunzTarPerm extractEntry test/modules/test3.js
6726 silly gunzTarPerm extractEntry LICENSE
6727 silly gunzTarPerm extractEntry index.js
6728 silly gunzTarPerm extractEntry LICENSE
6729 silly gunzTarPerm extractEntry index.js
6730 silly gunzTarPerm modes [ '755', '644' ]
6731 verbose readDependencies using package.json deps
6732 silly gunzTarPerm extractEntry package.json
6733 info preinstall concat-stream@1.4.1
6734 silly gunzTarPerm extractEntry package.json
6735 verbose cache add [ 'tape@~0.2.2', null ]
6736 verbose cache add name=undefined spec="tape@~0.2.2" args=["tape@~0.2.2",null]
6737 verbose parsed url { protocol: null,
6737 verbose parsed url slashes: null,
6737 verbose parsed url auth: null,
6737 verbose parsed url host: null,
6737 verbose parsed url port: null,
6737 verbose parsed url hostname: null,
6737 verbose parsed url hash: null,
6737 verbose parsed url search: null,
6737 verbose parsed url query: null,
6737 verbose parsed url pathname: 'tape@~0.2.2',
6737 verbose parsed url path: 'tape@~0.2.2',
6737 verbose parsed url href: 'tape@~0.2.2' }
6738 verbose cache add name="tape" spec="~0.2.2" args=["tape","~0.2.2"]
6739 verbose parsed url { protocol: null,
6739 verbose parsed url slashes: null,
6739 verbose parsed url auth: null,
6739 verbose parsed url host: null,
6739 verbose parsed url port: null,
6739 verbose parsed url hostname: null,
6739 verbose parsed url hash: null,
6739 verbose parsed url search: null,
6739 verbose parsed url query: null,
6739 verbose parsed url pathname: '~0.2.2',
6739 verbose parsed url path: '~0.2.2',
6739 verbose parsed url href: '~0.2.2' }
6740 verbose addNamed [ 'tape', '~0.2.2' ]
6741 verbose addNamed [ null, '>=0.2.2-0 <0.3.0-0' ]
6742 silly lockFile 0209fcdb-tape-0-2-2 tape@~0.2.2
6743 verbose lock tape@~0.2.2 /home/scarter/.npm/0209fcdb-tape-0-2-2.lock
6744 verbose readDependencies using package.json deps
6745 verbose url raw process
6746 verbose url resolving [ 'https://registry.npmjs.org/', './process' ]
6747 verbose url resolved https://registry.npmjs.org/process
6748 info trying registry request attempt 1 at 12:24:40
6749 verbose etag "23QAHWZPCGQ02NEYPE8PX0IOV"
6750 http GET https://registry.npmjs.org/process
6751 verbose readDependencies using package.json deps
6752 silly resolved []
6753 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules/assert-plus
6754 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules/assert-plus
6755 verbose linkStuff [ false,
6755 verbose linkStuff false,
6755 verbose linkStuff false,
6755 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules' ]
6756 info linkStuff assert-plus@0.1.2
6757 verbose linkBins assert-plus@0.1.2
6758 verbose linkMans assert-plus@0.1.2
6759 verbose rebuildBundles assert-plus@0.1.2
6760 silly addNameRange { name: 'tape', range: '>=0.2.2-0 <0.3.0-0', hasData: false }
6761 verbose readDependencies using package.json deps
6762 silly gunzTarPerm extractEntry README.md
6763 silly gunzTarPerm extractEntry esprima.js
6764 info install assert-plus@0.1.2
6765 verbose readDependencies using package.json deps
6766 silly gunzTarPerm extractEntry package.json
6767 silly gunzTarPerm extractEntry querystring.js
6768 silly gunzTarPerm extractEntry .History.md.un~
6769 info postinstall assert-plus@0.1.2
6770 silly gunzTarPerm extractEntry .travis.yml
6771 silly gunzTarPerm extractEntry Makefile
6772 verbose cache add [ 'typedarray@~0.0.5', null ]
6773 verbose cache add name=undefined spec="typedarray@~0.0.5" args=["typedarray@~0.0.5",null]
6774 verbose parsed url { protocol: null,
6774 verbose parsed url slashes: null,
6774 verbose parsed url auth: null,
6774 verbose parsed url host: null,
6774 verbose parsed url port: null,
6774 verbose parsed url hostname: null,
6774 verbose parsed url hash: null,
6774 verbose parsed url search: null,
6774 verbose parsed url query: null,
6774 verbose parsed url pathname: 'typedarray@~0.0.5',
6774 verbose parsed url path: 'typedarray@~0.0.5',
6774 verbose parsed url href: 'typedarray@~0.0.5' }
6775 verbose cache add name="typedarray" spec="~0.0.5" args=["typedarray","~0.0.5"]
6776 verbose parsed url { protocol: null,
6776 verbose parsed url slashes: null,
6776 verbose parsed url auth: null,
6776 verbose parsed url host: null,
6776 verbose parsed url port: null,
6776 verbose parsed url hostname: null,
6776 verbose parsed url hash: null,
6776 verbose parsed url search: null,
6776 verbose parsed url query: null,
6776 verbose parsed url pathname: '~0.0.5',
6776 verbose parsed url path: '~0.0.5',
6776 verbose parsed url href: '~0.0.5' }
6777 verbose addNamed [ 'typedarray', '~0.0.5' ]
6778 verbose addNamed [ null, '>=0.0.5-0 <0.1.0-0' ]
6779 silly lockFile 59795676-typedarray-0-0-5 typedarray@~0.0.5
6780 verbose lock typedarray@~0.0.5 /home/scarter/.npm/59795676-typedarray-0-0-5.lock
6781 verbose cache add [ 'readable-stream@~1.1.9', null ]
6782 verbose cache add name=undefined spec="readable-stream@~1.1.9" args=["readable-stream@~1.1.9",null]
6783 verbose parsed url { protocol: null,
6783 verbose parsed url slashes: null,
6783 verbose parsed url auth: null,
6783 verbose parsed url host: null,
6783 verbose parsed url port: null,
6783 verbose parsed url hostname: null,
6783 verbose parsed url hash: null,
6783 verbose parsed url search: null,
6783 verbose parsed url query: null,
6783 verbose parsed url pathname: 'readable-stream@~1.1.9',
6783 verbose parsed url path: 'readable-stream@~1.1.9',
6783 verbose parsed url href: 'readable-stream@~1.1.9' }
6784 verbose cache add name="readable-stream" spec="~1.1.9" args=["readable-stream","~1.1.9"]
6785 verbose parsed url { protocol: null,
6785 verbose parsed url slashes: null,
6785 verbose parsed url auth: null,
6785 verbose parsed url host: null,
6785 verbose parsed url port: null,
6785 verbose parsed url hostname: null,
6785 verbose parsed url hash: null,
6785 verbose parsed url search: null,
6785 verbose parsed url query: null,
6785 verbose parsed url pathname: '~1.1.9',
6785 verbose parsed url path: '~1.1.9',
6785 verbose parsed url href: '~1.1.9' }
6786 verbose addNamed [ 'readable-stream', '~1.1.9' ]
6787 verbose addNamed [ null, '>=1.1.9-0 <1.2.0-0' ]
6788 silly lockFile f517707b-readable-stream-1-1-9 readable-stream@~1.1.9
6789 verbose lock readable-stream@~1.1.9 /home/scarter/.npm/f517707b-readable-stream-1-1-9.lock
6790 silly gunzTarPerm extractEntry .travis.yml
6791 silly gunzTarPerm extractEntry Makefile
6792 silly gunzTarPerm extractEntry .travis.yml
6793 silly gunzTarPerm extractEntry Makefile
6794 silly gunzTarPerm extractEntry readme.markdown
6795 silly addNameRange { name: 'readable-stream',
6795 silly addNameRange range: '>=1.1.9-0 <1.2.0-0',
6795 silly addNameRange hasData: false }
6796 silly addNameRange { name: 'typedarray',
6796 silly addNameRange range: '>=0.0.5-0 <0.1.0-0',
6796 silly addNameRange hasData: false }
6797 silly gunzTarPerm extractEntry test/bool.js
6798 silly gunzTarPerm extractEntry .npmignore
6799 silly gunzTarPerm extractEntry README.md
6800 silly gunzTarPerm extractEntry cm
6801 verbose url raw indexof/0.0.1
6802 verbose url resolving [ 'https://registry.npmjs.org/', './indexof/0.0.1' ]
6803 verbose url resolved https://registry.npmjs.org/indexof/0.0.1
6804 info trying registry request attempt 1 at 12:24:40
6805 verbose etag "92ML2J7FXC28KZCHSGEXI8RH8"
6806 http GET https://registry.npmjs.org/indexof/0.0.1
6807 silly gunzTarPerm extractEntry lib/index.js
6808 silly gunzTarPerm extractEntry test/index.js
6809 silly gunzTarPerm extractEntry .package.json.un~
6810 silly gunzTarPerm extractEntry images/boom.png
6811 silly gunzTarPerm extractEntry lib/index.js
6812 silly gunzTarPerm extractEntry test/index.js
6813 silly gunzTarPerm extractEntry test/test2.js
6814 silly gunzTarPerm extractEntry test/fn.js
6815 verbose url raw tape
6816 verbose url resolving [ 'https://registry.npmjs.org/', './tape' ]
6817 verbose url resolved https://registry.npmjs.org/tape
6818 info trying registry request attempt 1 at 12:24:40
6819 verbose etag "5Q3V7U7JT70ZOLML71HUM4ZGT"
6820 http GET https://registry.npmjs.org/tape
6821 verbose url raw readable-stream
6822 verbose url resolving [ 'https://registry.npmjs.org/', './readable-stream' ]
6823 verbose url resolved https://registry.npmjs.org/readable-stream
6824 info trying registry request attempt 1 at 12:24:40
6825 verbose etag "DAE27EQLX3F3INP2VQNGUIHRZ"
6826 http GET https://registry.npmjs.org/readable-stream
6827 silly gunzTarPerm extractEntry examples/offset.js
6828 silly gunzTarPerm extractEntry examples/time.js
6829 silly gunzTarPerm extractEntry punycode.js
6830 silly lockFile d9bf1b7d-browserify-node-modules-minimist tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/minimist
6831 silly lockFile d9bf1b7d-browserify-node-modules-minimist tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/minimist
6832 silly gunzTarPerm extractEntry punycode.min.js
6833 silly lockFile ff31e8fd-r-npm-minimist-0-0-5-package-tgz tar:///home/scarter/.npm/minimist/0.0.5/package.tgz
6834 silly lockFile ff31e8fd-r-npm-minimist-0-0-5-package-tgz tar:///home/scarter/.npm/minimist/0.0.5/package.tgz
6835 silly lockFile 79dbab6e-rify-node-modules-string-decoder tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/string_decoder
6836 silly lockFile 79dbab6e-rify-node-modules-string-decoder tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/string_decoder
6837 info preinstall minimist@0.0.5
6838 silly gunzTarPerm extractEntry test/vectors/byte0003.dat
6839 silly gunzTarPerm extractEntry test/vectors/byte0004.dat
6840 silly gunzTarPerm extractEntry test/gen.js
6841 silly gunzTarPerm extractEntry test/empty.js
6842 silly lockFile 2cc27f49-string-decoder-0-0-1-package-tgz tar:///home/scarter/.npm/string_decoder/0.0.1/package.tgz
6843 silly lockFile 2cc27f49-string-decoder-0-0-1-package-tgz tar:///home/scarter/.npm/string_decoder/0.0.1/package.tgz
6844 silly gunzTarPerm extractEntry bin/esparse.js
6845 silly gunzTarPerm extractEntry changes
6846 silly gunzTarPerm extractEntry docs/README.md
6847 silly gunzTarPerm extractEntry docs/parse.php
6848 verbose readDependencies using package.json deps
6849 silly gunzTarPerm extractEntry lib/index.js
6850 silly gunzTarPerm extractEntry test/index.js
6851 silly gunzTarPerm extractEntry History.md
6852 silly gunzTarPerm extractEntry Readme.md
6853 verbose readDependencies using package.json deps
6854 silly resolved []
6855 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/minimist
6856 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/minimist
6857 verbose linkStuff [ false,
6857 verbose linkStuff false,
6857 verbose linkStuff false,
6857 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
6858 info linkStuff minimist@0.0.5
6859 verbose linkBins minimist@0.0.5
6860 verbose linkMans minimist@0.0.5
6861 verbose rebuildBundles minimist@0.0.5
6862 silly gunzTarPerm extractEntry CHANGELOG.md
6863 silly gunzTarPerm extractEntry build/assert-shim.js
6864 info preinstall string_decoder@0.0.1
6865 info install minimist@0.0.5
6866 silly lockFile e7259339-stringprep-node-modules-bindings tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/bindings
6867 silly lockFile e7259339-stringprep-node-modules-bindings tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/bindings
6868 verbose url raw typedarray
6869 verbose url resolving [ 'https://registry.npmjs.org/', './typedarray' ]
6870 verbose url resolved https://registry.npmjs.org/typedarray
6871 info trying registry request attempt 1 at 12:24:40
6872 verbose etag "2A9UG354BFKM3IB06B862L9UQ"
6873 http GET https://registry.npmjs.org/typedarray
6874 silly lockFile bd11ce6d-r-npm-bindings-1-1-1-package-tgz tar:///home/scarter/.npm/bindings/1.1.1/package.tgz
6875 silly lockFile bd11ce6d-r-npm-bindings-1-1-1-package-tgz tar:///home/scarter/.npm/bindings/1.1.1/package.tgz
6876 info postinstall minimist@0.0.5
6877 verbose readDependencies using package.json deps
6878 silly gunzTarPerm extractEntry test/vectors/byte0005.dat
6879 silly gunzTarPerm extractEntry test/vectors/byte0006.dat
6880 verbose readDependencies using package.json deps
6881 silly resolved []
6882 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/string_decoder
6883 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/string_decoder
6884 verbose linkStuff [ false,
6884 verbose linkStuff false,
6884 verbose linkStuff false,
6884 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
6885 info linkStuff string_decoder@0.0.1
6886 verbose linkBins string_decoder@0.0.1
6887 verbose linkMans string_decoder@0.0.1
6888 verbose rebuildBundles string_decoder@0.0.1
6889 silly gunzTarPerm extractEntry test/destroy_missing.js
6890 silly gunzTarPerm extractEntry test/parsejson.js
6891 info install string_decoder@0.0.1
6892 info preinstall bindings@1.1.1
6893 info postinstall string_decoder@0.0.1
6894 verbose readDependencies using package.json deps
6895 silly gunzTarPerm extractEntry build/mini-require.js
6896 silly gunzTarPerm extractEntry build/suffix-browser.js
6897 silly gunzTarPerm modes [ '755', '644' ]
6898 verbose readDependencies using package.json deps
6899 silly resolved []
6900 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/bindings
6901 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/bindings
6902 verbose linkStuff [ false,
6902 verbose linkStuff false,
6902 verbose linkStuff false,
6902 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules' ]
6903 info linkStuff bindings@1.1.1
6904 verbose linkBins bindings@1.1.1
6905 verbose linkMans bindings@1.1.1
6906 verbose rebuildBundles bindings@1.1.1
6907 info install bindings@1.1.1
6908 silly gunzTarPerm extractEntry .gitmodules
6909 silly gunzTarPerm extractEntry LICENSE-GPL.txt
6910 info postinstall bindings@1.1.1
6911 silly gunzTarPerm extractEntry test/stringify.js
6912 silly gunzTarPerm extractEntry test/stringify_object.js
6913 silly lockFile 2b0b3dd7-scodegen-node-modules-estraverse tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen/node_modules/estraverse
6914 silly lockFile 2b0b3dd7-scodegen-node-modules-estraverse tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen/node_modules/estraverse
6915 silly lockFile c8131057-npm-estraverse-0-0-4-package-tgz tar:///home/scarter/.npm/estraverse/0.0.4/package.tgz
6916 silly lockFile c8131057-npm-estraverse-0-0-4-package-tgz tar:///home/scarter/.npm/estraverse/0.0.4/package.tgz
6917 silly gunzTarPerm extractEntry perf/comparison/copy.js
6918 silly gunzTarPerm extractEntry perf/comparison/slice.js
6919 silly gunzTarPerm extractEntry test/vectors/byte0007.dat
6920 silly gunzTarPerm extractEntry test/vectors/byte0008.dat
6921 info preinstall estraverse@0.0.4
6922 silly gunzTarPerm extractEntry package.json
6923 verbose readDependencies using package.json deps
6924 silly gunzTarPerm extractEntry build/test-prefix.js
6925 silly gunzTarPerm extractEntry build/test-suffix.js
6926 verbose readDependencies using package.json deps
6927 silly resolved []
6928 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen/node_modules/estraverse
6929 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen/node_modules/estraverse
6930 verbose linkStuff [ false,
6930 verbose linkStuff false,
6930 verbose linkStuff false,
6930 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/brfs/node_modules/escodegen/node_modules' ]
6931 info linkStuff estraverse@0.0.4
6932 verbose linkBins estraverse@0.0.4
6933 verbose linkMans estraverse@0.0.4
6934 verbose rebuildBundles estraverse@0.0.4
6935 silly gunzTarPerm extractEntry perf/comparison/bundle.js
6936 info install estraverse@0.0.4
6937 silly gunzTarPerm extractEntry README.md
6938 silly gunzTarPerm extractEntry assert.js
6939 info postinstall estraverse@0.0.4
6940 silly gunzTarPerm extractEntry test/vectors/byte0009.dat
6941 silly gunzTarPerm extractEntry test/vectors/byte0010.dat
6942 silly gunzTarPerm extractEntry tests/test-querystring.js
6943 silly gunzTarPerm extractEntry tests/.test-querystring.js.un~
6944 silly gunzTarPerm extractEntry test/test.js
6945 silly gunzTarPerm extractEntry test/multiple_objects.js
6946 silly gunzTarPerm extractEntry build/prefix-source-map.jsm
6947 silly gunzTarPerm extractEntry build/prefix-utils.jsm
6948 silly gunzTarPerm extractEntry perf/comparison/readDoubleBE.js
6949 silly lockFile 8852442b-y-node-modules-stream-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/stream-browserify
6950 silly lockFile 8852442b-y-node-modules-stream-browserify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/stream-browserify
6951 silly gunzTarPerm extractEntry tools/jsl.conf
6952 silly gunzTarPerm extractEntry tools/jsstyle
6953 silly lockFile f0aa6196-eam-browserify-0-1-3-package-tgz tar:///home/scarter/.npm/stream-browserify/0.1.3/package.tgz
6954 silly lockFile f0aa6196-eam-browserify-0-1-3-package-tgz tar:///home/scarter/.npm/stream-browserify/0.1.3/package.tgz
6955 silly gunzTarPerm extractEntry test/two-ways.js
6956 silly gunzTarPerm extractEntry test/multiple_objects_error.js
6957 silly gunzTarPerm extractEntry test/vectors/byte0011.dat
6958 silly gunzTarPerm extractEntry test/vectors/byte0012.dat
6959 silly lockFile dcfbb4a9-les-browserify-node-modules-util tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/util
6960 silly lockFile dcfbb4a9-les-browserify-node-modules-util tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/util
6961 silly lockFile 236318bd-rter-npm-util-0-10-2-package-tgz tar:///home/scarter/.npm/util/0.10.2/package.tgz
6962 silly lockFile 236318bd-rter-npm-util-0-10-2-package-tgz tar:///home/scarter/.npm/util/0.10.2/package.tgz
6963 info preinstall stream-browserify@0.1.3
6964 silly gunzTarPerm extractEntry LICENSE-MIT.txt
6965 silly gunzTarPerm extractEntry .gitattributes
6966 info preinstall util@0.10.2
6967 verbose readDependencies using package.json deps
6968 silly gunzTarPerm extractEntry perf/comparison/readFloatBE.js
6969 silly gunzTarPerm extractEntry perf/comparison/readUInt32LE.js
6970 silly gunzTarPerm extractEntry build/suffix-source-map.jsm
6971 silly gunzTarPerm extractEntry build/suffix-utils.jsm
6972 verbose readDependencies using package.json deps
6973 silly gunzTarPerm extractEntry test/fixtures/all_npm.json
6974 verbose cache add [ 'process@~0.5.1', null ]
6975 verbose cache add name=undefined spec="process@~0.5.1" args=["process@~0.5.1",null]
6976 verbose parsed url { protocol: null,
6976 verbose parsed url slashes: null,
6976 verbose parsed url auth: null,
6976 verbose parsed url host: null,
6976 verbose parsed url port: null,
6976 verbose parsed url hostname: null,
6976 verbose parsed url hash: null,
6976 verbose parsed url search: null,
6976 verbose parsed url query: null,
6976 verbose parsed url pathname: 'process@~0.5.1',
6976 verbose parsed url path: 'process@~0.5.1',
6976 verbose parsed url href: 'process@~0.5.1' }
6977 verbose cache add name="process" spec="~0.5.1" args=["process","~0.5.1"]
6978 verbose parsed url { protocol: null,
6978 verbose parsed url slashes: null,
6978 verbose parsed url auth: null,
6978 verbose parsed url host: null,
6978 verbose parsed url port: null,
6978 verbose parsed url hostname: null,
6978 verbose parsed url hash: null,
6978 verbose parsed url search: null,
6978 verbose parsed url query: null,
6978 verbose parsed url pathname: '~0.5.1',
6978 verbose parsed url path: '~0.5.1',
6978 verbose parsed url href: '~0.5.1' }
6979 verbose addNamed [ 'process', '~0.5.1' ]
6980 verbose readDependencies using package.json deps
6981 verbose readDependencies using package.json deps
6982 silly resolved []
6983 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/util
6984 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/util
6985 verbose linkStuff [ false,
6985 verbose linkStuff false,
6985 verbose linkStuff false,
6985 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
6986 info linkStuff util@0.10.2
6987 verbose linkBins util@0.10.2
6988 verbose linkMans util@0.10.2
6989 verbose rebuildBundles util@0.10.2
6990 info install util@0.10.2
6991 silly lockFile ece66558-ules-hawk-node-modules-cryptiles tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/cryptiles
6992 silly lockFile ece66558-ules-hawk-node-modules-cryptiles tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/cryptiles
6993 silly lockFile 7e4ce879--npm-cryptiles-0-2-2-package-tgz tar:///home/scarter/.npm/cryptiles/0.2.2/package.tgz
6994 silly lockFile 7e4ce879--npm-cryptiles-0-2-2-package-tgz tar:///home/scarter/.npm/cryptiles/0.2.2/package.tgz
6995 info postinstall util@0.10.2
6996 silly gunzTarPerm extractEntry test/vectors/byte0013.dat
6997 silly gunzTarPerm extractEntry test/vectors/byte0014.dat
6998 info preinstall cryptiles@0.2.2
6999 silly gunzTarPerm extractEntry tests/tests.js
7000 silly gunzTarPerm extractEntry perf/comparison/writeFloatBE.js
7001 silly gunzTarPerm extractEntry perf/comparison/new.js
7002 silly gunzTarPerm extractEntry tst/ctf/tst.float.js
7003 silly gunzTarPerm extractEntry tst/ctf/tst.fail.js
7004 silly gunzTarPerm extractEntry lib/source-map.js
7005 silly gunzTarPerm extractEntry lib/source-map/array-set.js
7006 verbose readDependencies using package.json deps
7007 verbose readDependencies using package.json deps
7008 silly resolved []
7009 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/cryptiles
7010 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/cryptiles
7011 verbose linkStuff [ false,
7011 verbose linkStuff false,
7011 verbose linkStuff false,
7011 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules' ]
7012 info linkStuff cryptiles@0.2.2
7013 verbose linkBins cryptiles@0.2.2
7014 verbose linkMans cryptiles@0.2.2
7015 verbose rebuildBundles cryptiles@0.2.2
7016 silly lockFile 67819565-les-form-data-node-modules-async tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/form-data/node_modules/async
7017 silly lockFile 67819565-les-form-data-node-modules-async tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/form-data/node_modules/async
7018 silly gunzTarPerm extractEntry tests/index.html
7019 info install cryptiles@0.2.2
7020 silly lockFile 9d095224-ter-npm-async-0-2-10-package-tgz tar:///home/scarter/.npm/async/0.2.10/package.tgz
7021 silly lockFile 9d095224-ter-npm-async-0-2-10-package-tgz tar:///home/scarter/.npm/async/0.2.10/package.tgz
7022 silly gunzTarPerm extractEntry test/vectors/byte0015.dat
7023 silly gunzTarPerm extractEntry test/vectors/byte0016.dat
7024 info postinstall cryptiles@0.2.2
7025 silly lockFile fc38ebf8-de-modules-insert-module-globals tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/insert-module-globals
7026 silly lockFile fc38ebf8-de-modules-insert-module-globals tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/insert-module-globals
7027 info preinstall async@0.2.10
7028 silly lockFile a6bc8578-module-globals-2-3-4-package-tgz tar:///home/scarter/.npm/insert-module-globals/2.3.4/package.tgz
7029 silly lockFile a6bc8578-module-globals-2-3-4-package-tgz tar:///home/scarter/.npm/insert-module-globals/2.3.4/package.tgz
7030 silly gunzTarPerm extractEntry perf/comparison/index.html
7031 verbose readDependencies using package.json deps
7032 silly gunzTarPerm extractEntry perf/solo/bracket-notation.js
7033 verbose readDependencies using package.json deps
7034 silly resolved []
7035 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/form-data/node_modules/async
7036 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/form-data/node_modules/async
7037 verbose linkStuff [ false,
7037 verbose linkStuff false,
7037 verbose linkStuff false,
7037 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/form-data/node_modules' ]
7038 info linkStuff async@0.2.10
7039 verbose linkBins async@0.2.10
7040 verbose linkMans async@0.2.10
7041 verbose rebuildBundles async@0.2.10
7042 info preinstall insert-module-globals@2.3.4
7043 info install async@0.2.10
7044 silly lockFile b8bb0aa5-gnature-node-modules-assert-plus tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules/assert-plus
7045 silly lockFile b8bb0aa5-gnature-node-modules-assert-plus tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules/assert-plus
7046 info postinstall async@0.2.10
7047 silly lockFile e287f105-pm-assert-plus-0-1-2-package-tgz tar:///home/scarter/.npm/assert-plus/0.1.2/package.tgz
7048 silly lockFile e287f105-pm-assert-plus-0-1-2-package-tgz tar:///home/scarter/.npm/assert-plus/0.1.2/package.tgz
7049 verbose readDependencies using package.json deps
7050 silly gunzTarPerm extractEntry test/vectors/byte0017.dat
7051 silly gunzTarPerm extractEntry test/vectors/byte0018.dat
7052 verbose readDependencies using package.json deps
7053 silly gunzTarPerm extractEntry tests/run-tests.sh
7054 silly gunzTarPerm extractEntry vendor/docdown/.npmignore
7055 verbose cache add [ 'process@~0.5.1', null ]
7056 verbose cache add name=undefined spec="process@~0.5.1" args=["process@~0.5.1",null]
7057 verbose parsed url { protocol: null,
7057 verbose parsed url slashes: null,
7057 verbose parsed url auth: null,
7057 verbose parsed url host: null,
7057 verbose parsed url port: null,
7057 verbose parsed url hostname: null,
7057 verbose parsed url hash: null,
7057 verbose parsed url search: null,
7057 verbose parsed url query: null,
7057 verbose parsed url pathname: 'process@~0.5.1',
7057 verbose parsed url path: 'process@~0.5.1',
7057 verbose parsed url href: 'process@~0.5.1' }
7058 verbose cache add name="process" spec="~0.5.1" args=["process","~0.5.1"]
7059 verbose parsed url { protocol: null,
7059 verbose parsed url slashes: null,
7059 verbose parsed url auth: null,
7059 verbose parsed url host: null,
7059 verbose parsed url port: null,
7059 verbose parsed url hostname: null,
7059 verbose parsed url hash: null,
7059 verbose parsed url search: null,
7059 verbose parsed url query: null,
7059 verbose parsed url pathname: '~0.5.1',
7059 verbose parsed url path: '~0.5.1',
7059 verbose parsed url href: '~0.5.1' }
7060 verbose addNamed [ 'process', '~0.5.1' ]
7061 silly gunzTarPerm extractEntry lib/source-map/base64-vlq.js
7062 silly gunzTarPerm extractEntry lib/source-map/base64.js
7063 verbose cache add [ 'browserify@~3.24.1', null ]
7064 verbose cache add name=undefined spec="browserify@~3.24.1" args=["browserify@~3.24.1",null]
7065 verbose parsed url { protocol: null,
7065 verbose parsed url slashes: null,
7065 verbose parsed url auth: null,
7065 verbose parsed url host: null,
7065 verbose parsed url port: null,
7065 verbose parsed url hostname: null,
7065 verbose parsed url hash: null,
7065 verbose parsed url search: null,
7065 verbose parsed url query: null,
7065 verbose parsed url pathname: 'browserify@~3.24.1',
7065 verbose parsed url path: 'browserify@~3.24.1',
7065 verbose parsed url href: 'browserify@~3.24.1' }
7066 verbose cache add name="browserify" spec="~3.24.1" args=["browserify","~3.24.1"]
7067 verbose parsed url { protocol: null,
7067 verbose parsed url slashes: null,
7067 verbose parsed url auth: null,
7067 verbose parsed url host: null,
7067 verbose parsed url port: null,
7067 verbose parsed url hostname: null,
7067 verbose parsed url hash: null,
7067 verbose parsed url search: null,
7067 verbose parsed url query: null,
7067 verbose parsed url pathname: '~3.24.1',
7067 verbose parsed url path: '~3.24.1',
7067 verbose parsed url href: '~3.24.1' }
7068 verbose addNamed [ 'browserify', '~3.24.1' ]
7069 verbose addNamed [ null, '>=3.24.1-0 <3.25.0-0' ]
7070 silly lockFile 120fc39d-browserify-3-24-1 browserify@~3.24.1
7071 verbose lock browserify@~3.24.1 /home/scarter/.npm/120fc39d-browserify-3-24-1.lock
7072 info preinstall assert-plus@0.1.2
7073 silly gunzTarPerm modes [ '755', '644' ]
7074 verbose cache add [ 'commondir@~0.0.1', null ]
7075 verbose cache add name=undefined spec="commondir@~0.0.1" args=["commondir@~0.0.1",null]
7076 verbose parsed url { protocol: null,
7076 verbose parsed url slashes: null,
7076 verbose parsed url auth: null,
7076 verbose parsed url host: null,
7076 verbose parsed url port: null,
7076 verbose parsed url hostname: null,
7076 verbose parsed url hash: null,
7076 verbose parsed url search: null,
7076 verbose parsed url query: null,
7076 verbose parsed url pathname: 'commondir@~0.0.1',
7076 verbose parsed url path: 'commondir@~0.0.1',
7076 verbose parsed url href: 'commondir@~0.0.1' }
7077 verbose cache add name="commondir" spec="~0.0.1" args=["commondir","~0.0.1"]
7078 verbose parsed url { protocol: null,
7078 verbose parsed url slashes: null,
7078 verbose parsed url auth: null,
7078 verbose parsed url host: null,
7078 verbose parsed url port: null,
7078 verbose parsed url hostname: null,
7078 verbose parsed url hash: null,
7078 verbose parsed url search: null,
7078 verbose parsed url query: null,
7078 verbose parsed url pathname: '~0.0.1',
7078 verbose parsed url path: '~0.0.1',
7078 verbose parsed url href: '~0.0.1' }
7079 verbose addNamed [ 'commondir', '~0.0.1' ]
7080 verbose addNamed [ null, '>=0.0.1-0 <0.1.0-0' ]
7081 silly lockFile d18c18a5-commondir-0-0-1 commondir@~0.0.1
7082 verbose lock commondir@~0.0.1 /home/scarter/.npm/d18c18a5-commondir-0-0-1.lock
7083 silly gunzTarPerm extractEntry perf/solo/concat.js
7084 silly gunzTarPerm extractEntry perf/solo/copy.js
7085 verbose cache add [ 'lexical-scope@~0.0.14', null ]
7086 verbose cache add name=undefined spec="lexical-scope@~0.0.14" args=["lexical-scope@~0.0.14",null]
7087 verbose parsed url { protocol: null,
7087 verbose parsed url slashes: null,
7087 verbose parsed url auth: null,
7087 verbose parsed url host: null,
7087 verbose parsed url port: null,
7087 verbose parsed url hostname: null,
7087 verbose parsed url hash: null,
7087 verbose parsed url search: null,
7087 verbose parsed url query: null,
7087 verbose parsed url pathname: 'lexical-scope@~0.0.14',
7087 verbose parsed url path: 'lexical-scope@~0.0.14',
7087 verbose parsed url href: 'lexical-scope@~0.0.14' }
7088 verbose cache add name="lexical-scope" spec="~0.0.14" args=["lexical-scope","~0.0.14"]
7089 verbose parsed url { protocol: null,
7089 verbose parsed url slashes: null,
7089 verbose parsed url auth: null,
7089 verbose parsed url host: null,
7089 verbose parsed url port: null,
7089 verbose parsed url hostname: null,
7089 verbose parsed url hash: null,
7089 verbose parsed url search: null,
7089 verbose parsed url query: null,
7089 verbose parsed url pathname: '~0.0.14',
7089 verbose parsed url path: '~0.0.14',
7089 verbose parsed url href: '~0.0.14' }
7090 verbose addNamed [ 'lexical-scope', '~0.0.14' ]
7091 verbose addNamed [ null, '>=0.0.14-0 <0.1.0-0' ]
7092 silly lockFile 5d4839a6-lexical-scope-0-0-14 lexical-scope@~0.0.14
7093 verbose lock lexical-scope@~0.0.14 /home/scarter/.npm/5d4839a6-lexical-scope-0-0-14.lock
7094 silly addNameRange { name: 'browserify',
7094 silly addNameRange range: '>=3.24.1-0 <3.25.0-0',
7094 silly addNameRange hasData: false }
7095 silly lockFile 5d72ccd1-s-browserify-node-modules-events tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/events
7096 silly lockFile 5d72ccd1-s-browserify-node-modules-events tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/events
7097 silly addNameRange { name: 'commondir',
7097 silly addNameRange range: '>=0.0.1-0 <0.1.0-0',
7097 silly addNameRange hasData: false }
7098 silly lockFile 8b93cd27-ter-npm-events-1-0-0-package-tgz tar:///home/scarter/.npm/events/1.0.0/package.tgz
7099 silly lockFile 8b93cd27-ter-npm-events-1-0-0-package-tgz tar:///home/scarter/.npm/events/1.0.0/package.tgz
7100 verbose readDependencies using package.json deps
7101 silly addNameRange { name: 'lexical-scope',
7101 silly addNameRange range: '>=0.0.14-0 <0.1.0-0',
7101 silly addNameRange hasData: false }
7102 verbose readDependencies using package.json deps
7103 silly resolved []
7104 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules/assert-plus
7105 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules/assert-plus
7106 verbose linkStuff [ false,
7106 verbose linkStuff false,
7106 verbose linkStuff false,
7106 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules' ]
7107 info linkStuff assert-plus@0.1.2
7108 verbose linkBins assert-plus@0.1.2
7109 verbose linkMans assert-plus@0.1.2
7110 verbose rebuildBundles assert-plus@0.1.2
7111 info install assert-plus@0.1.2
7112 silly gunzTarPerm extractEntry package.json
7113 silly lockFile 7a3a44f7-serify-node-modules-browser-pack tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/browser-pack
7114 silly lockFile 7a3a44f7-serify-node-modules-browser-pack tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/browser-pack
7115 silly gunzTarPerm extractEntry lib/source-map/binary-search.js
7116 silly gunzTarPerm extractEntry lib/source-map/source-map-consumer.js
7117 silly gunzTarPerm extractEntry test/vectors/byte0019.dat
7118 silly gunzTarPerm extractEntry test/vectors/byte0020.dat
7119 verbose registry.get browserify not expired, no request
7120 silly addNameRange number 2 { name: 'browserify',
7120 silly addNameRange range: '>=3.24.1-0 <3.25.0-0',
7120 silly addNameRange hasData: true }
7121 silly addNameRange versions [ 'browserify',
7121 silly addNameRange [ '0.0.1',
7121 silly addNameRange '0.0.2',
7121 silly addNameRange '0.0.3',
7121 silly addNameRange '0.0.4',
7121 silly addNameRange '0.0.5',
7121 silly addNameRange '0.1.0',
7121 silly addNameRange '0.1.1',
7121 silly addNameRange '0.1.2',
7121 silly addNameRange '0.1.3',
7121 silly addNameRange '0.1.4',
7121 silly addNameRange '0.1.5',
7121 silly addNameRange '0.2.0',
7121 silly addNameRange '0.2.1',
7121 silly addNameRange '0.2.2',
7121 silly addNameRange '0.2.3',
7121 silly addNameRange '0.2.4',
7121 silly addNameRange '0.2.5',
7121 silly addNameRange '0.2.6',
7121 silly addNameRange '0.2.7',
7121 silly addNameRange '0.2.8',
7121 silly addNameRange '0.2.9',
7121 silly addNameRange '0.2.10',
7121 silly addNameRange '0.2.11',
7121 silly addNameRange '0.3.0',
7121 silly addNameRange '0.3.1',
7121 silly addNameRange '0.3.2',
7121 silly addNameRange '0.3.3',
7121 silly addNameRange '0.3.4',
7121 silly addNameRange '0.3.5',
7121 silly addNameRange '0.3.6',
7121 silly addNameRange '0.3.7',
7121 silly addNameRange '0.4.0',
7121 silly addNameRange '0.4.1',
7121 silly addNameRange '0.4.2',
7121 silly addNameRange '0.4.3',
7121 silly addNameRange '0.4.4',
7121 silly addNameRange '0.4.5',
7121 silly addNameRange '0.4.6',
7121 silly addNameRange '0.4.7',
7121 silly addNameRange '0.4.8',
7121 silly addNameRange '0.4.9',
7121 silly addNameRange '0.4.10',
7121 silly addNameRange '0.4.11',
7121 silly addNameRange '0.4.12',
7121 silly addNameRange '0.4.13',
7121 silly addNameRange '0.4.14',
7121 silly addNameRange '0.4.15',
7121 silly addNameRange '0.5.0',
7121 silly addNameRange '0.5.1',
7121 silly addNameRange '0.5.2',
7121 silly addNameRange '1.0.0',
7121 silly addNameRange '1.1.0',
7121 silly addNameRange '1.1.1',
7121 silly addNameRange '1.1.2',
7121 silly addNameRange '1.1.3',
7121 silly addNameRange '1.1.4',
7121 silly addNameRange '1.2.0',
7121 silly addNameRange '1.2.1',
7121 silly addNameRange '1.2.2',
7121 silly addNameRange '1.2.3',
7121 silly addNameRange '1.2.4',
7121 silly addNameRange '1.2.5',
7121 silly addNameRange '1.2.6',
7121 silly addNameRange '1.2.7',
7121 silly addNameRange '1.2.8',
7121 silly addNameRange '1.2.9',
7121 silly addNameRange '1.3.0',
7121 silly addNameRange '1.4.0',
7121 silly addNameRange '1.4.1',
7121 silly addNameRange '1.4.2',
7121 silly addNameRange '1.4.3',
7121 silly addNameRange '1.4.4',
7121 silly addNameRange '1.4.5',
7121 silly addNameRange '1.4.6',
7121 silly addNameRange '1.4.7',
7121 silly addNameRange '1.4.8',
7121 silly addNameRange '1.5.0',
7121 silly addNameRange '1.6.0',
7121 silly addNameRange '1.6.1',
7121 silly addNameRange '1.7.0',
7121 silly addNameRange '1.7.1',
7121 silly addNameRange '1.7.2',
7121 silly addNameRange '1.7.3',
7121 silly addNameRange '1.7.4',
7121 silly addNameRange '1.7.5',
7121 silly addNameRange '1.7.6',
7121 silly addNameRange '1.7.7',
7121 silly addNameRange '1.8.0',
7121 silly addNameRange '1.8.1',
7121 silly addNameRange '1.8.2',
7121 silly addNameRange '1.8.3',
7121 silly addNameRange '1.9.0',
7121 silly addNameRange '1.9.1',
7121 silly addNameRange '1.9.2',
7121 silly addNameRange '1.9.3',
7121 silly addNameRange '1.9.4',
7121 silly addNameRange '1.10.0',
7121 silly addNameRange '1.10.1',
7121 silly addNameRange '1.10.2',
7121 silly addNameRange '1.10.3',
7121 silly addNameRange '1.10.4',
7121 silly addNameRange '1.10.5',
7121 silly addNameRange '1.10.6',
7121 silly addNameRange '1.10.7',
7121 silly addNameRange '1.10.8',
7121 silly addNameRange '1.10.9',
7121 silly addNameRange '1.10.11',
7121 silly addNameRange '1.10.12',
7121 silly addNameRange '1.10.13',
7121 silly addNameRange '1.10.14',
7121 silly addNameRange '1.10.15',
7121 silly addNameRange '1.10.16',
7121 silly addNameRange '1.10.17',
7121 silly addNameRange '1.11.0',
7121 silly addNameRange '1.11.1',
7121 silly addNameRange '1.12.0',
7121 silly addNameRange '1.12.1',
7121 silly addNameRange '1.12.2',
7121 silly addNameRange '1.12.3',
7121 silly addNameRange '1.13.0',
7121 silly addNameRange '1.13.1',
7121 silly addNameRange '1.13.2',
7121 silly addNameRange '1.13.3',
7121 silly addNameRange '1.13.4',
7121 silly addNameRange '1.13.5',
7121 silly addNameRange '1.13.6',
7121 silly addNameRange '1.13.8',
7121 silly addNameRange '1.13.9',
7121 silly addNameRange '1.13.10',
7121 silly addNameRange '1.14.0',
7121 silly addNameRange '1.14.1',
7121 silly addNameRange '1.14.2',
7121 silly addNameRange '1.14.3',
7121 silly addNameRange '1.14.4',
7121 silly addNameRange '1.14.5',
7121 silly addNameRange '1.15.0',
7121 silly addNameRange '1.15.1',
7121 silly addNameRange '1.15.2',
7121 silly addNameRange '1.15.3',
7121 silly addNameRange '1.15.4',
7121 silly addNameRange '1.15.5',
7121 silly addNameRange '1.15.6',
7121 silly addNameRange '1.16.0',
7121 silly addNameRange '1.16.1',
7121 silly addNameRange '1.16.2',
7121 silly addNameRange '1.16.3',
7121 silly addNameRange '1.16.4',
7121 silly addNameRange '1.16.5',
7121 silly addNameRange '1.16.6',
7121 silly addNameRange '1.16.7',
7121 silly addNameRange '1.16.8',
7121 silly addNameRange '1.17.0',
7121 silly addNameRange '1.17.1',
7121 silly addNameRange '1.17.2',
7121 silly addNameRange '1.17.3',
7121 silly addNameRange '1.18.0',
7121 silly addNameRange '2.0.0',
7121 silly addNameRange '2.0.1',
7121 silly addNameRange '2.1.0',
7121 silly addNameRange '2.2.0',
7121 silly addNameRange '2.2.1',
7121 silly addNameRange '2.2.2',
7121 silly addNameRange '2.2.3',
7121 silly addNameRange '2.2.4',
7121 silly addNameRange '2.2.5',
7121 silly addNameRange '2.2.6',
7121 silly addNameRange '2.3.0',
7121 silly addNameRange '2.3.1',
7121 silly addNameRange '2.4.0',
7121 silly addNameRange '2.4.1',
7121 silly addNameRange '2.4.2',
7121 silly addNameRange '2.4.3',
7121 silly addNameRange '2.5.0',
7121 silly addNameRange '2.5.1',
7121 silly addNameRange '2.6.0',
7121 silly addNameRange '2.6.1',
7121 silly addNameRange '2.7.0',
7121 silly addNameRange '2.7.1',
7121 silly addNameRange '2.7.2',
7121 silly addNameRange '2.7.3',
7121 silly addNameRange '2.7.4',
7121 silly addNameRange '2.8.0',
7121 silly addNameRange '2.8.1',
7121 silly addNameRange '2.9.0',
7121 silly addNameRange '2.10.0',
7121 silly addNameRange '2.10.1',
7121 silly addNameRange '2.10.2',
7121 silly addNameRange '2.11.0',
7121 silly addNameRange '2.12.0',
7121 silly addNameRange '2.12.1',
7121 silly addNameRange '2.12.2',
7121 silly addNameRange '2.12.3',
7121 silly addNameRange '2.12.4',
7121 silly addNameRange '2.12.5',
7121 silly addNameRange '2.13.0',
7121 silly addNameRange '2.13.1',
7121 silly addNameRange '2.13.2',
7121 silly addNameRange '2.13.3',
7121 silly addNameRange '2.14.0',
7121 silly addNameRange '2.14.1',
7121 silly addNameRange '2.14.2',
7121 silly addNameRange '2.15.0',
7121 silly addNameRange '2.16.0',
7121 silly addNameRange '2.17.0',
7121 silly addNameRange '2.17.1',
7121 silly addNameRange '2.17.2',
7121 silly addNameRange '2.17.3',
7121 silly addNameRange '2.17.4',
7121 silly addNameRange '2.18.0',
7121 silly addNameRange '2.18.1',
7121 silly addNameRange '2.19.0',
7121 silly addNameRange '2.20.0',
7121 silly addNameRange '2.20.1',
7121 silly addNameRange '2.20.2',
7121 silly addNameRange '2.21.0',
7121 silly addNameRange '2.22.0',
7121 silly addNameRange '2.23.0',
7121 silly addNameRange '2.23.1',
7121 silly addNameRange '2.24.0',
7121 silly addNameRange '2.24.1',
7121 silly addNameRange '2.24.2',
7121 silly addNameRange '2.24.3',
7121 silly addNameRange '2.25.0',
7121 silly addNameRange '2.25.1',
7121 silly addNameRange '2.26.0',
7121 silly addNameRange '2.27.0',
7121 silly addNameRange '2.27.1',
7121 silly addNameRange '2.28.0',
7121 silly addNameRange '2.29.0',
7121 silly addNameRange '2.29.1',
7121 silly addNameRange '2.30.0',
7121 silly addNameRange '2.31.0',
7121 silly addNameRange '2.32.0',
7121 silly addNameRange '2.32.1',
7121 silly addNameRange '2.32.2',
7121 silly addNameRange '2.32.3',
7121 silly addNameRange '2.32.4',
7121 silly addNameRange '2.33.0',
7121 silly addNameRange '2.33.1',
7121 silly addNameRange '2.34.0',
7121 silly addNameRange '2.34.1',
7121 silly addNameRange '2.34.2',
7121 silly addNameRange '2.34.3',
7121 silly addNameRange '2.35.0',
7121 silly addNameRange '2.35.1',
7121 silly addNameRange '2.35.2',
7121 silly addNameRange '2.35.3',
7121 silly addNameRange '2.35.4',
7121 silly addNameRange '2.36.0',
7121 silly addNameRange '2.36.1',
7121 silly addNameRange '3.0.0',
7121 silly addNameRange '3.1.0',
7121 silly addNameRange '3.1.1',
7121 silly addNameRange '3.1.2',
7121 silly addNameRange '3.1.3',
7121 silly addNameRange '3.2.0',
7121 silly addNameRange '3.2.1',
7121 silly addNameRange '3.2.2',
7121 silly addNameRange '3.3.0',
7121 silly addNameRange '3.4.0',
7121 silly addNameRange '3.4.1',
7121 silly addNameRange '3.5.0',
7121 silly addNameRange '3.6.0',
7121 silly addNameRange '3.7.0',
7121 silly addNameRange '3.8.0',
7121 silly addNameRange '3.8.1',
7121 silly addNameRange '3.9.0',
7121 silly addNameRange '3.9.1',
7121 silly addNameRange '3.10.0',
7121 silly addNameRange '3.11.0',
7121 silly addNameRange '3.11.1',
7121 silly addNameRange '3.12.0',
7121 silly addNameRange '3.13.0',
7121 silly addNameRange '3.14.0',
7121 silly addNameRange '3.14.1',
7121 silly addNameRange '3.16.0',
7121 silly addNameRange '3.16.1',
7121 silly addNameRange '3.17.0',
7121 silly addNameRange '3.18.0',
7121 silly addNameRange '3.19.0',
7121 silly addNameRange '3.19.1',
7121 silly addNameRange '3.20.0',
7121 silly addNameRange '3.20.1',
7121 silly addNameRange '3.20.2',
7121 silly addNameRange '3.21.0',
7121 silly addNameRange '3.21.1',
7121 silly addNameRange '3.22.0',
7121 silly addNameRange '3.22.1',
7121 silly addNameRange '3.23.0',
7121 silly addNameRange '3.23.1',
7121 silly addNameRange '3.24.0',
7121 silly addNameRange '3.24.1',
7121 silly addNameRange '3.24.2',
7121 silly addNameRange '3.24.3',
7121 silly addNameRange '3.24.4',
7121 silly addNameRange '3.24.5',
7121 silly addNameRange '3.24.6',
7121 silly addNameRange '3.24.7',
7121 silly addNameRange '3.24.8',
7121 silly addNameRange '3.24.9',
7121 silly addNameRange '3.24.10',
7121 silly addNameRange '3.24.11' ] ]
7122 verbose addNamed [ 'browserify', '3.24.11' ]
7123 verbose addNamed [ '3.24.11', '3.24.11' ]
7124 silly lockFile 5c07c145-browserify-3-24-11 browserify@3.24.11
7125 verbose lock browserify@3.24.11 /home/scarter/.npm/5c07c145-browserify-3-24-11.lock
7126 silly lockFile c76258f3-m-browser-pack-2-0-1-package-tgz tar:///home/scarter/.npm/browser-pack/2.0.1/package.tgz
7127 silly lockFile c76258f3-m-browser-pack-2-0-1-package-tgz tar:///home/scarter/.npm/browser-pack/2.0.1/package.tgz
7128 silly gunzTarPerm extractEntry vendor/docdown/README.md
7129 silly gunzTarPerm extractEntry vendor/docdown/.gitattributes
7130 info preinstall events@1.0.0
7131 info postinstall assert-plus@0.1.2
7132 verbose url raw commondir
7133 verbose url resolving [ 'https://registry.npmjs.org/', './commondir' ]
7134 verbose url resolved https://registry.npmjs.org/commondir
7135 info trying registry request attempt 1 at 12:24:40
7136 verbose etag "6CLZ9IRGAEYHXI1W10BUHJBHF"
7137 http GET https://registry.npmjs.org/commondir
7138 verbose url raw lexical-scope
7139 verbose url resolving [ 'https://registry.npmjs.org/', './lexical-scope' ]
7140 verbose url resolved https://registry.npmjs.org/lexical-scope
7141 info trying registry request attempt 1 at 12:24:40
7142 verbose etag "4KF7X2VQA34IYXF7POTU094U9"
7143 http GET https://registry.npmjs.org/lexical-scope
7144 silly gunzTarPerm extractEntry .npmignore
7145 silly gunzTarPerm extractEntry README.md
7146 verbose readDependencies using package.json deps
7147 silly gunzTarPerm extractEntry perf/solo/slice.js
7148 silly gunzTarPerm extractEntry perf/solo/new.js
7149 info preinstall browser-pack@2.0.1
7150 verbose readDependencies using package.json deps
7151 silly resolved []
7152 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/events
7153 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/events
7154 verbose linkStuff [ false,
7154 verbose linkStuff false,
7154 verbose linkStuff false,
7154 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
7155 info linkStuff events@1.0.0
7156 verbose linkBins events@1.0.0
7157 verbose linkMans events@1.0.0
7158 verbose rebuildBundles events@1.0.0
7159 silly lockFile e66087fc-ify-node-modules-browser-resolve tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/browser-resolve
7160 silly lockFile e66087fc-ify-node-modules-browser-resolve tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/browser-resolve
7161 info install events@1.0.0
7162 silly lockFile 74a5b8aa-rowser-resolve-1-2-2-package-tgz tar:///home/scarter/.npm/browser-resolve/1.2.2/package.tgz
7163 silly lockFile 74a5b8aa-rowser-resolve-1-2-2-package-tgz tar:///home/scarter/.npm/browser-resolve/1.2.2/package.tgz
7164 silly lockFile ed1c1d02-http-signature-node-modules-asn1 tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules/asn1
7165 silly lockFile ed1c1d02-http-signature-node-modules-asn1 tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules/asn1
7166 verbose readDependencies using package.json deps
7167 info postinstall events@1.0.0
7168 silly gunzTarPerm extractEntry lib/source-map/source-map-generator.js
7169 silly gunzTarPerm extractEntry lib/source-map/source-node.js
7170 silly lockFile fdb2d902-rter-npm-asn1-0-1-11-package-tgz tar:///home/scarter/.npm/asn1/0.1.11/package.tgz
7171 silly lockFile fdb2d902-rter-npm-asn1-0-1-11-package-tgz tar:///home/scarter/.npm/asn1/0.1.11/package.tgz
7172 silly gunzTarPerm extractEntry vendor/docdown/LICENSE.txt
7173 silly gunzTarPerm extractEntry vendor/docdown/doc/README.md
7174 verbose readDependencies using package.json deps
7175 info preinstall browser-resolve@1.2.2
7176 verbose cache add [ 'JSONStream@~0.6.4', null ]
7177 verbose cache add name=undefined spec="JSONStream@~0.6.4" args=["JSONStream@~0.6.4",null]
7178 verbose parsed url { protocol: null,
7178 verbose parsed url slashes: null,
7178 verbose parsed url auth: null,
7178 verbose parsed url host: null,
7178 verbose parsed url port: null,
7178 verbose parsed url hostname: null,
7178 verbose parsed url hash: null,
7178 verbose parsed url search: null,
7178 verbose parsed url query: null,
7178 verbose parsed url pathname: 'JSONStream@~0.6.4',
7178 verbose parsed url path: 'JSONStream@~0.6.4',
7178 verbose parsed url href: 'JSONStream@~0.6.4' }
7179 verbose cache add name="JSONStream" spec="~0.6.4" args=["JSONStream","~0.6.4"]
7180 verbose parsed url { protocol: null,
7180 verbose parsed url slashes: null,
7180 verbose parsed url auth: null,
7180 verbose parsed url host: null,
7180 verbose parsed url port: null,
7180 verbose parsed url hostname: null,
7180 verbose parsed url hash: null,
7180 verbose parsed url search: null,
7180 verbose parsed url query: null,
7180 verbose parsed url pathname: '~0.6.4',
7180 verbose parsed url path: '~0.6.4',
7180 verbose parsed url href: '~0.6.4' }
7181 verbose addNamed [ 'JSONStream', '~0.6.4' ]
7182 verbose addNamed [ null, '>=0.6.4-0 <0.7.0-0' ]
7183 silly lockFile ca991f02-JSONStream-0-6-4 JSONStream@~0.6.4
7184 verbose lock JSONStream@~0.6.4 /home/scarter/.npm/ca991f02-JSONStream-0-6-4.lock
7185 silly gunzTarPerm extractEntry LICENSE
7186 silly gunzTarPerm extractEntry index.js
7187 info preinstall asn1@0.1.11
7188 verbose cache add [ 'combine-source-map@~0.3.0', null ]
7189 verbose cache add name=undefined spec="combine-source-map@~0.3.0" args=["combine-source-map@~0.3.0",null]
7190 verbose parsed url { protocol: null,
7190 verbose parsed url slashes: null,
7190 verbose parsed url auth: null,
7190 verbose parsed url host: null,
7190 verbose parsed url port: null,
7190 verbose parsed url hostname: null,
7190 verbose parsed url hash: null,
7190 verbose parsed url search: null,
7190 verbose parsed url query: null,
7190 verbose parsed url pathname: 'combine-source-map@~0.3.0',
7190 verbose parsed url path: 'combine-source-map@~0.3.0',
7190 verbose parsed url href: 'combine-source-map@~0.3.0' }
7191 verbose cache add name="combine-source-map" spec="~0.3.0" args=["combine-source-map","~0.3.0"]
7192 verbose parsed url { protocol: null,
7192 verbose parsed url slashes: null,
7192 verbose parsed url auth: null,
7192 verbose parsed url host: null,
7192 verbose parsed url port: null,
7192 verbose parsed url hostname: null,
7192 verbose parsed url hash: null,
7192 verbose parsed url search: null,
7192 verbose parsed url query: null,
7192 verbose parsed url pathname: '~0.3.0',
7192 verbose parsed url path: '~0.3.0',
7192 verbose parsed url href: '~0.3.0' }
7193 verbose addNamed [ 'combine-source-map', '~0.3.0' ]
7194 verbose addNamed [ null, '>=0.3.0-0 <0.4.0-0' ]
7195 silly lockFile d8ca0f08-combine-source-map-0-3-0 combine-source-map@~0.3.0
7196 verbose lock combine-source-map@~0.3.0 /home/scarter/.npm/d8ca0f08-combine-source-map-0-3-0.lock
7197 silly gunzTarPerm extractEntry perf/solo/bundle.js
7198 silly gunzTarPerm extractEntry perf/solo/readFloatBE.js
7199 silly gunzTarPerm extractEntry perf/solo/readUInt32BE.js
7200 silly gunzTarPerm extractEntry perf/solo/readUInt32LE.js
7201 silly gunzTarPerm extractEntry perf/solo/writeFloatBE.js
7202 silly gunzTarPerm extractEntry perf/solo/readDoubleBE.js
7203 silly gunzTarPerm extractEntry perf/solo/index.html
7204 silly gunzTarPerm extractEntry test/basic.js
7205 silly gunzTarPerm extractEntry test/buffer.js
7206 silly gunzTarPerm extractEntry test/deprecated.js
7207 silly gunzTarPerm extractEntry test/indexes.js
7208 silly gunzTarPerm extractEntry test/is-buffer.js
7209 silly gunzTarPerm extractEntry test/is-encoding.js
7210 silly gunzTarPerm extractEntry test/slice.js
7211 silly gunzTarPerm extractEntry test/utf16.js
7212 verbose readDependencies using package.json deps
7213 silly addNameRange { name: 'JSONStream',
7213 silly addNameRange range: '>=0.6.4-0 <0.7.0-0',
7213 silly addNameRange hasData: false }
7214 verbose readDependencies using package.json deps
7215 silly gunzTarPerm modes [ '755', '644' ]
7216 silly gunzTarPerm modes [ '755', '644' ]
7217 silly addNameRange { name: 'combine-source-map',
7217 silly addNameRange range: '>=0.3.0-0 <0.4.0-0',
7217 silly addNameRange hasData: false }
7218 verbose readDependencies using package.json deps
7219 verbose cache add [ 'resolve@0.6.1', null ]
7220 verbose cache add name=undefined spec="resolve@0.6.1" args=["resolve@0.6.1",null]
7221 verbose parsed url { protocol: null,
7221 verbose parsed url slashes: null,
7221 verbose parsed url auth: null,
7221 verbose parsed url host: null,
7221 verbose parsed url port: null,
7221 verbose parsed url hostname: null,
7221 verbose parsed url hash: null,
7221 verbose parsed url search: null,
7221 verbose parsed url query: null,
7221 verbose parsed url pathname: 'resolve@0.6.1',
7221 verbose parsed url path: 'resolve@0.6.1',
7221 verbose parsed url href: 'resolve@0.6.1' }
7222 verbose cache add name="resolve" spec="0.6.1" args=["resolve","0.6.1"]
7223 verbose parsed url { protocol: null,
7223 verbose parsed url slashes: null,
7223 verbose parsed url auth: null,
7223 verbose parsed url host: null,
7223 verbose parsed url port: null,
7223 verbose parsed url hostname: null,
7223 verbose parsed url hash: null,
7223 verbose parsed url search: null,
7223 verbose parsed url query: null,
7223 verbose parsed url pathname: '0.6.1',
7223 verbose parsed url path: '0.6.1',
7223 verbose parsed url href: '0.6.1' }
7224 verbose addNamed [ 'resolve', '0.6.1' ]
7225 verbose addNamed [ '0.6.1', '0.6.1' ]
7226 silly lockFile 249d2f87-resolve-0-6-1 resolve@0.6.1
7227 verbose lock resolve@0.6.1 /home/scarter/.npm/249d2f87-resolve-0-6-1.lock
7228 silly lockFile 3ca23b04-browserify-node-modules-punycode tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/punycode
7229 silly lockFile 3ca23b04-browserify-node-modules-punycode tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/punycode
7230 silly gunzTarPerm extractEntry lib/source-map/util.js
7231 silly gunzTarPerm extractEntry test/run-tests.js
7232 verbose readDependencies using package.json deps
7233 silly resolved []
7234 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules/asn1
7235 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules/asn1
7236 verbose linkStuff [ false,
7236 verbose linkStuff false,
7236 verbose linkStuff false,
7236 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/http-signature/node_modules' ]
7237 info linkStuff asn1@0.1.11
7238 verbose linkBins asn1@0.1.11
7239 verbose linkMans asn1@0.1.11
7240 verbose rebuildBundles asn1@0.1.11
7241 silly lockFile 94baf463-r-npm-punycode-1-2-3-package-tgz tar:///home/scarter/.npm/punycode/1.2.3/package.tgz
7242 silly lockFile 94baf463-r-npm-punycode-1-2-3-package-tgz tar:///home/scarter/.npm/punycode/1.2.3/package.tgz
7243 info install asn1@0.1.11
7244 verbose registry.get JSONStream not expired, no request
7245 silly addNameRange number 2 { name: 'JSONStream',
7245 silly addNameRange range: '>=0.6.4-0 <0.7.0-0',
7245 silly addNameRange hasData: true }
7246 silly addNameRange versions [ 'JSONStream',
7246 silly addNameRange [ '0.0.0',
7246 silly addNameRange '0.1.0',
7246 silly addNameRange '0.1.1',
7246 silly addNameRange '0.1.2',
7246 silly addNameRange '0.1.3',
7246 silly addNameRange '0.2.0',
7246 silly addNameRange '0.2.1',
7246 silly addNameRange '0.2.2',
7246 silly addNameRange '0.2.3',
7246 silly addNameRange '0.3.0',
7246 silly addNameRange '0.3.1',
7246 silly addNameRange '0.3.2',
7246 silly addNameRange '0.3.3',
7246 silly addNameRange '0.4.0',
7246 silly addNameRange '0.4.1',
7246 silly addNameRange '0.4.2',
7246 silly addNameRange '0.4.3',
7246 silly addNameRange '0.4.4',
7246 silly addNameRange '0.5.0',
7246 silly addNameRange '0.6.0',
7246 silly addNameRange '0.6.1',
7246 silly addNameRange '0.6.2',
7246 silly addNameRange '0.6.3',
7246 silly addNameRange '0.6.4',
7246 silly addNameRange '0.7.0',
7246 silly addNameRange '0.7.1' ] ]
7247 verbose addNamed [ 'JSONStream', '0.6.4' ]
7248 verbose addNamed [ '0.6.4', '0.6.4' ]
7249 silly lockFile 77c35b93-JSONStream-0-6-4 JSONStream@0.6.4
7250 verbose lock JSONStream@0.6.4 /home/scarter/.npm/77c35b93-JSONStream-0-6-4.lock
7251 info postinstall asn1@0.1.11
7252 silly gunzTarPerm extractEntry package.json
7253 verbose url raw combine-source-map
7254 verbose url resolving [ 'https://registry.npmjs.org/', './combine-source-map' ]
7255 verbose url resolved https://registry.npmjs.org/combine-source-map
7256 info trying registry request attempt 1 at 12:24:40
7257 verbose etag "APMAIF2755YTF3WHFZ3E98XF8"
7258 http GET https://registry.npmjs.org/combine-source-map
7259 silly gunzTarPerm extractEntry .travis.yml
7260 silly gunzTarPerm extractEntry Makefile
7261 silly lockFile 5c07c145-browserify-3-24-11 browserify@3.24.11
7262 silly lockFile 5c07c145-browserify-3-24-11 browserify@3.24.11
7263 silly gunzTarPerm extractEntry package.json
7264 info preinstall punycode@1.2.3
7265 silly lockFile 120fc39d-browserify-3-24-1 browserify@~3.24.1
7266 silly lockFile 120fc39d-browserify-3-24-1 browserify@~3.24.1
7267 silly lockFile 77c35b93-JSONStream-0-6-4 JSONStream@0.6.4
7268 silly lockFile 77c35b93-JSONStream-0-6-4 JSONStream@0.6.4
7269 silly gunzTarPerm modes [ '755', '644' ]
7270 silly lockFile ca991f02-JSONStream-0-6-4 JSONStream@~0.6.4
7271 silly lockFile ca991f02-JSONStream-0-6-4 JSONStream@~0.6.4
7272 silly gunzTarPerm extractEntry README.md
7273 silly gunzTarPerm extractEntry LICENSE
7274 silly gunzTarPerm extractEntry component.json
7275 silly gunzTarPerm extractEntry lib/async.js
7276 silly gunzTarPerm extractEntry test/vectors/byte0021.dat
7277 silly gunzTarPerm extractEntry test/vectors/byte0022.dat
7278 verbose readDependencies using package.json deps
7279 silly gunzTarPerm extractEntry .npmignore
7280 silly gunzTarPerm extractEntry README.md
7281 silly gunzTarPerm extractEntry test/source-map/test-api.js
7282 silly gunzTarPerm extractEntry test/source-map/test-array-set.js
7283 verbose readDependencies using package.json deps
7284 silly resolved []
7285 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/punycode
7286 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/punycode
7287 verbose linkStuff [ false,
7287 verbose linkStuff false,
7287 verbose linkStuff false,
7287 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules' ]
7288 info linkStuff punycode@1.2.3
7289 verbose linkBins punycode@1.2.3
7290 verbose linkMans punycode@1.2.3
7291 verbose rebuildBundles punycode@1.2.3
7292 info install punycode@1.2.3
7293 silly lockFile bd789738-node-stringprep-node-modules-nan tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/nan
7294 silly lockFile bd789738-node-stringprep-node-modules-nan tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/nan
7295 silly gunzTarPerm extractEntry lib/index.js
7296 silly gunzTarPerm extractEntry test/index.js
7297 silly lockFile 71ed87c2-carter-npm-nan-0-7-1-package-tgz tar:///home/scarter/.npm/nan/0.7.1/package.tgz
7298 silly lockFile 71ed87c2-carter-npm-nan-0-7-1-package-tgz tar:///home/scarter/.npm/nan/0.7.1/package.tgz
7299 info postinstall punycode@1.2.3
7300 silly lockFile 8f78b9db-e-modules-hawk-node-modules-sntp tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/sntp
7301 silly lockFile 8f78b9db-e-modules-hawk-node-modules-sntp tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/sntp
7302 silly lockFile 67c7408c-arter-npm-sntp-0-2-4-package-tgz tar:///home/scarter/.npm/sntp/0.2.4/package.tgz
7303 silly lockFile 67c7408c-arter-npm-sntp-0-2-4-package-tgz tar:///home/scarter/.npm/sntp/0.2.4/package.tgz
7304 verbose url raw resolve/0.6.1
7305 verbose url resolving [ 'https://registry.npmjs.org/', './resolve/0.6.1' ]
7306 verbose url resolved https://registry.npmjs.org/resolve/0.6.1
7307 info trying registry request attempt 1 at 12:24:40
7308 verbose etag "4WT20Y92ILJ6HGH9ABSX8O0AS"
7309 http GET https://registry.npmjs.org/resolve/0.6.1
7310 silly gunzTarPerm extractEntry tst/ctf/tst.int.js
7311 silly gunzTarPerm extractEntry tst/ctf/tst.psinfo.js
7312 info preinstall nan@0.7.1
7313 silly gunzTarPerm extractEntry LICENSE
7314 silly gunzTarPerm extractEntry lib/index.js
7315 info preinstall sntp@0.2.4
7316 silly gunzTarPerm extractEntry test/source-map/test-base64-vlq.js
7317 silly gunzTarPerm extractEntry test/source-map/test-base64.js
7318 verbose readDependencies using package.json deps
7319 verbose readDependencies using package.json deps
7320 silly resolved []
7321 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/nan
7322 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules/nan
7323 verbose linkStuff [ false,
7323 verbose linkStuff false,
7323 verbose linkStuff false,
7323 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep/node_modules' ]
7324 info linkStuff nan@0.7.1
7325 verbose linkBins nan@0.7.1
7326 verbose linkMans nan@0.7.1
7327 verbose rebuildBundles nan@0.7.1
7328 verbose readDependencies using package.json deps
7329 silly gunzTarPerm modes [ '755', '644' ]
7330 info install nan@0.7.1
7331 verbose readDependencies using package.json deps
7332 silly resolved []
7333 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/sntp
7334 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/sntp
7335 verbose linkStuff [ false,
7335 verbose linkStuff false,
7335 verbose linkStuff false,
7335 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules' ]
7336 info linkStuff sntp@0.2.4
7337 verbose linkBins sntp@0.2.4
7338 verbose linkMans sntp@0.2.4
7339 verbose rebuildBundles sntp@0.2.4
7340 info install sntp@0.2.4
7341 info postinstall nan@0.7.1
7342 info postinstall sntp@0.2.4
7343 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep
7344 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules/node-stringprep
7345 verbose linkStuff [ false,
7345 verbose linkStuff false,
7345 verbose linkStuff false,
7345 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-component/node_modules/node-xmpp-core/node_modules' ]
7346 info linkStuff node-stringprep@0.1.12
7347 verbose linkBins node-stringprep@0.1.12
7348 verbose linkMans node-stringprep@0.1.12
7349 verbose rebuildBundles node-stringprep@0.1.12
7350 silly gunzTarPerm extractEntry lib/ber/errors.js
7351 silly gunzTarPerm extractEntry lib/ber/index.js
7352 silly gunzTarPerm extractEntry test/source-map/test-binary-search.js
7353 silly gunzTarPerm extractEntry test/source-map/test-dog-fooding.js
7354 verbose rebuildBundles [ 'bindings', 'nan' ]
7355 info install node-stringprep@0.1.12
7356 silly gunzTarPerm extractEntry package.json
7357 verbose unsafe-perm in lifecycle true
7358 silly gunzTarPerm extractEntry vendor/docdown/doc/parse.php
7359 silly gunzTarPerm extractEntry vendor/docdown/docdown.php
7360 silly gunzTarPerm extractEntry .npmignore
7361 silly gunzTarPerm extractEntry README.md
7362 silly lockFile c552e8d1-ata-node-modules-combined-stream tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/form-data/node_modules/combined-stream
7363 silly lockFile c552e8d1-ata-node-modules-combined-stream tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/form-data/node_modules/combined-stream
7364 silly lockFile 18c8eddd-ombined-stream-0-0-4-package-tgz tar:///home/scarter/.npm/combined-stream/0.0.4/package.tgz
7365 silly lockFile 18c8eddd-ombined-stream-0-0-4-package-tgz tar:///home/scarter/.npm/combined-stream/0.0.4/package.tgz
7366 silly gunzTarPerm extractEntry package.json
7367 silly gunzTarPerm extractEntry test/source-map/test-source-map-consumer.js
7368 silly gunzTarPerm extractEntry test/source-map/test-source-map-generator.js
7369 silly gunzTarPerm extractEntry tst/ctf/tst.struct.js
7370 silly gunzTarPerm extractEntry tst/ctf/tst.typedef.js
7371 silly lockFile 06e3e018-e-modules-hawk-node-modules-boom tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/boom
7372 silly lockFile 06e3e018-e-modules-hawk-node-modules-boom tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/boom
7373 silly gunzTarPerm extractEntry lib/ber/reader.js
7374 silly gunzTarPerm extractEntry lib/ber/types.js
7375 silly gunzTarPerm extractEntry lib/ber/writer.js
7376 silly gunzTarPerm extractEntry tst/ber/reader.test.js
7377 silly gunzTarPerm extractEntry tst/ber/writer.test.js
7378 info preinstall combined-stream@0.0.4
7379 silly lockFile e8d428d0-arter-npm-boom-0-4-2-package-tgz tar:///home/scarter/.npm/boom/0.4.2/package.tgz
7380 silly lockFile e8d428d0-arter-npm-boom-0-4-2-package-tgz tar:///home/scarter/.npm/boom/0.4.2/package.tgz
7381 silly gunzTarPerm extractEntry punycode.js
7382 silly gunzTarPerm extractEntry punycode.min.js
7383 silly gunzTarPerm extractEntry LICENSE-GPL.txt
7384 silly gunzTarPerm extractEntry LICENSE-MIT.txt
7385 silly gunzTarPerm extractEntry vendor/docdown/README.md
7386 silly gunzTarPerm extractEntry vendor/docdown/LICENSE.txt
7387 silly gunzTarPerm extractEntry vendor/docdown/doc/README.md
7388 silly gunzTarPerm extractEntry vendor/docdown/doc/parse.php
7389 silly gunzTarPerm extractEntry vendor/docdown/docdown.php
7390 silly gunzTarPerm extractEntry vendor/docdown/src/DocDown/Alias.php
7391 silly gunzTarPerm extractEntry vendor/docdown/src/DocDown/Entry.php
7392 silly gunzTarPerm extractEntry vendor/docdown/src/DocDown/Generator.php
7393 verbose readDependencies using package.json deps
7394 silly gunzTarPerm extractEntry vendor/docdown/src/DocDown/Entry.php
7395 silly gunzTarPerm extractEntry vendor/docdown/src/DocDown/Generator.php
7396 silly gunzTarPerm extractEntry LICENSE
7397 silly gunzTarPerm extractEntry index.js
7398 verbose readDependencies using package.json deps
7399 silly gunzTarPerm extractEntry test/vectors/byte0023.dat
7400 silly gunzTarPerm extractEntry test/vectors/byte0024.dat
7401 info preinstall boom@0.4.2
7402 verbose cache add [ 'delayed-stream@0.0.5', null ]
7403 verbose cache add name=undefined spec="delayed-stream@0.0.5" args=["delayed-stream@0.0.5",null]
7404 verbose parsed url { protocol: null,
7404 verbose parsed url slashes: null,
7404 verbose parsed url auth: null,
7404 verbose parsed url host: null,
7404 verbose parsed url port: null,
7404 verbose parsed url hostname: null,
7404 verbose parsed url hash: null,
7404 verbose parsed url search: null,
7404 verbose parsed url query: null,
7404 verbose parsed url pathname: 'delayed-stream@0.0.5',
7404 verbose parsed url path: 'delayed-stream@0.0.5',
7404 verbose parsed url href: 'delayed-stream@0.0.5' }
7405 verbose cache add name="delayed-stream" spec="0.0.5" args=["delayed-stream","0.0.5"]
7406 verbose parsed url { protocol: null,
7406 verbose parsed url slashes: null,
7406 verbose parsed url auth: null,
7406 verbose parsed url host: null,
7406 verbose parsed url port: null,
7406 verbose parsed url hostname: null,
7406 verbose parsed url hash: null,
7406 verbose parsed url search: null,
7406 verbose parsed url query: null,
7406 verbose parsed url pathname: '0.0.5',
7406 verbose parsed url path: '0.0.5',
7406 verbose parsed url href: '0.0.5' }
7407 verbose addNamed [ 'delayed-stream', '0.0.5' ]
7408 verbose addNamed [ '0.0.5', '0.0.5' ]
7409 silly lockFile 1ace22b7-delayed-stream-0-0-5 delayed-stream@0.0.5
7410 verbose lock delayed-stream@0.0.5 /home/scarter/.npm/1ace22b7-delayed-stream-0-0-5.lock
7411 http 304 https://registry.npmjs.org/uglify-js
7412 silly registry.get cb [ 304,
7412 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:40 GMT',
7412 silly registry.get server: 'Apache',
7412 silly registry.get connection: 'Keep-Alive',
7412 silly registry.get 'keep-alive': 'timeout=10, max=50',
7412 silly registry.get etag: '"7OSI8FILTFVUV6LE0Y0CDC7DD"',
7412 silly registry.get 'cache-control': 'max-age=1',
7412 silly registry.get vary: 'Accept' } ]
7413 verbose etag uglify-js from cache
7414 verbose readDependencies using package.json deps
7415 verbose readDependencies using package.json deps
7416 silly resolved []
7417 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/boom
7418 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules/boom
7419 verbose linkStuff [ false,
7419 verbose linkStuff false,
7419 verbose linkStuff false,
7419 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/request/node_modules/hawk/node_modules' ]
7420 info linkStuff boom@0.4.2
7421 verbose linkBins boom@0.4.2
7422 verbose linkMans boom@0.4.2
7423 verbose rebuildBundles boom@0.4.2
7424 silly gunzTarPerm extractEntry test/source-map/test-source-node.js
7425 silly gunzTarPerm extractEntry test/source-map/util.js
7426 info install boom@0.4.2
7427 silly gunzTarPerm extractEntry vendor/qunit/package.json
7428 silly gunzTarPerm extractEntry test/vectors/byte0025.dat
7429 silly gunzTarPerm extractEntry test/vectors/byte0026.dat
7430 info postinstall boom@0.4.2
7431 silly gunzTarPerm extractEntry .travis.yml
7432 silly gunzTarPerm extractEntry Makefile
7433 silly gunzTarPerm modes [ '755', '644' ]
7434 verbose url raw delayed-stream/0.0.5
7435 verbose url resolving [ 'https://registry.npmjs.org/', './delayed-stream/0.0.5' ]
7436 verbose url resolved https://registry.npmjs.org/delayed-stream/0.0.5
7437 info trying registry request attempt 1 at 12:24:40
7438 verbose etag "2DGIV1SSWW1B6O4THG4C42EU1"
7439 http GET https://registry.npmjs.org/delayed-stream/0.0.5
7440 silly addNameRange number 2 { name: 'uglify-js', range: '>=2.4.0-0 <2.5.0-0', hasData: true }
7441 silly addNameRange versions [ 'uglify-js',
7441 silly addNameRange [ '0.0.1',
7441 silly addNameRange '0.0.2',
7441 silly addNameRange '0.0.3',
7441 silly addNameRange '0.0.4',
7441 silly addNameRange '0.0.5',
7441 silly addNameRange '1.0.1',
7441 silly addNameRange '1.0.2',
7441 silly addNameRange '1.0.3',
7441 silly addNameRange '1.0.4',
7441 silly addNameRange '1.0.5',
7441 silly addNameRange '1.0.6',
7441 silly addNameRange '1.0.7',
7441 silly addNameRange '1.1.0',
7441 silly addNameRange '1.1.1',
7441 silly addNameRange '1.2.0',
7441 silly addNameRange '1.2.1',
7441 silly addNameRange '1.2.2',
7441 silly addNameRange '1.2.3',
7441 silly addNameRange '1.2.4',
7441 silly addNameRange '1.2.5',
7441 silly addNameRange '1.2.6',
7441 silly addNameRange '1.3.0',
7441 silly addNameRange '1.3.1',
7441 silly addNameRange '1.3.2',
7441 silly addNameRange '1.3.3',
7441 silly addNameRange '1.3.4',
7441 silly addNameRange '2.2.0',
7441 silly addNameRange '2.2.1',
7441 silly addNameRange '2.2.2',
7441 silly addNameRange '2.2.3',
7441 silly addNameRange '2.2.4',
7441 silly addNameRange '2.2.5',
7441 silly addNameRange '2.3.0',
7441 silly addNameRange '2.3.1',
7441 silly addNameRange '2.3.2',
7441 silly addNameRange '2.3.3',
7441 silly addNameRange '2.3.4',
7441 silly addNameRange '2.3.5',
7441 silly addNameRange '2.3.6',
7441 silly addNameRange '1.3.5',
7441 silly addNameRange '2.4.0',
7441 silly addNameRange '2.4.1',
7441 silly addNameRange '2.4.2',
7441 silly addNameRange '2.4.3',
7441 silly addNameRange '2.4.4',
7441 silly addNameRange '2.4.5',
7441 silly addNameRange '2.4.6',
7441 silly addNameRange '2.4.7',
7441 silly addNameRange '2.4.8',
7441 silly addNameRange '2.4.9',
7441 silly addNameRange '2.4.10',
7441 silly addNameRange '2.4.11',
7441 silly addNameRange '2.4.12' ] ]
7442 verbose addNamed [ 'uglify-js', '2.4.12' ]
7443 verbose addNamed [ '2.4.12', '2.4.12' ]
7444 silly lockFile 1bc7e7b2-uglify-js-2-4-12 uglify-js@2.4.12
7445 verbose lock uglify-js@2.4.12 /home/scarter/.npm/1bc7e7b2-uglify-js-2-4-12.lock
7446 http 304 https://registry.npmjs.org/ruglify
7447 silly registry.get cb [ 304,
7447 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:40 GMT',
7447 silly registry.get server: 'Apache',
7447 silly registry.get connection: 'Keep-Alive',
7447 silly registry.get 'keep-alive': 'timeout=10, max=50',
7447 silly registry.get etag: '"5IPVG99SD73V2NXNAML051A5I"',
7447 silly registry.get 'cache-control': 'max-age=1',
7447 silly registry.get vary: 'Accept' } ]
7448 verbose etag ruglify from cache
7449 silly gunzTarPerm extractEntry package.json
7450 http 304 https://registry.npmjs.org/rfile
7451 silly registry.get cb [ 304,
7451 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:40 GMT',
7451 silly registry.get server: 'Apache',
7451 silly registry.get connection: 'Keep-Alive',
7451 silly registry.get 'keep-alive': 'timeout=10, max=50',
7451 silly registry.get etag: '"2BXGZRHB5O8L3XUNFR7MEQTON"',
7451 silly registry.get vary: 'Accept' } ]
7452 verbose etag rfile from cache
7453 silly gunzTarPerm extractEntry test/vectors/byte0027.dat
7454 silly gunzTarPerm extractEntry test/vectors/byte0028.dat
7455 silly gunzTarPerm modes [ '755', '644' ]
7456 silly lockFile 7b405393-ules-node-expat-node-modules-nan tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-expat/node_modules/nan
7457 silly lockFile 7b405393-ules-node-expat-node-modules-nan tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-expat/node_modules/nan
7458 silly gunzTarPerm extractEntry .npmignore
7459 silly gunzTarPerm extractEntry License
7460 silly lockFile 623b4e64-carter-npm-nan-0-6-0-package-tgz tar:///home/scarter/.npm/nan/0.6.0/package.tgz
7461 silly lockFile 623b4e64-carter-npm-nan-0-6-0-package-tgz tar:///home/scarter/.npm/nan/0.6.0/package.tgz
7462 silly gunzTarPerm extractEntry examples/offset.js
7463 silly gunzTarPerm extractEntry examples/time.js
7464 silly addNameRange number 2 { name: 'ruglify', range: '>=1.0.0-0 <1.1.0-0', hasData: true }
7465 silly addNameRange versions [ 'ruglify', [ '1.0.0' ] ]
7466 verbose addNamed [ 'ruglify', '1.0.0' ]
7467 verbose addNamed [ '1.0.0', '1.0.0' ]
7468 silly lockFile 616d5322-ruglify-1-0-0 ruglify@1.0.0
7469 verbose lock ruglify@1.0.0 /home/scarter/.npm/616d5322-ruglify-1-0-0.lock
7470 silly addNameRange number 2 { name: 'rfile', range: '>=1.0.0-0 <1.1.0-0', hasData: true }
7471 silly addNameRange versions [ 'rfile', [ '1.0.0' ] ]
7472 verbose addNamed [ 'rfile', '1.0.0' ]
7473 verbose addNamed [ '1.0.0', '1.0.0' ]
7474 silly lockFile eaf1a2de-rfile-1-0-0 rfile@1.0.0
7475 verbose lock rfile@1.0.0 /home/scarter/.npm/eaf1a2de-rfile-1-0-0.lock
7476 silly gunzTarPerm extractEntry tst/ctf/psinfo.json
7477 silly gunzTarPerm extractEntry tst/ctf/struct.json
7478 info preinstall nan@0.6.0
7479 silly gunzTarPerm extractEntry test/vectors/byte0029.dat
7480 silly gunzTarPerm extractEntry test/vectors/byte0030.dat
7481 silly gunzTarPerm extractEntry package.json
7482 verbose readDependencies using package.json deps
7483 verbose readDependencies using package.json deps
7484 silly resolved []
7485 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-expat/node_modules/nan
7486 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-expat/node_modules/nan
7487 verbose linkStuff [ false,
7487 verbose linkStuff false,
7487 verbose linkStuff false,
7487 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-expat/node_modules' ]
7488 info linkStuff nan@0.6.0
7489 verbose linkBins nan@0.6.0
7490 verbose linkMans nan@0.6.0
7491 verbose rebuildBundles nan@0.6.0
7492 silly gunzTarPerm extractEntry Makefile
7493 silly gunzTarPerm extractEntry Readme.md
7494 silly gunzTarPerm extractEntry README.md
7495 silly gunzTarPerm extractEntry LICENSE
7496 silly gunzTarPerm extractEntry include_dirs.js
7497 silly gunzTarPerm extractEntry .dntrc
7498 silly gunzTarPerm extractEntry build/config.gypi
7499 silly gunzTarPerm extractEntry nan.h
7500 info install nan@0.6.0
7501 silly gunzTarPerm extractEntry lib/index.js
7502 silly gunzTarPerm extractEntry test/index.js
7503 info postinstall nan@0.6.0
7504 silly gunzTarPerm extractEntry test/vectors/byte0031.dat
7505 silly gunzTarPerm extractEntry test/vectors/byte0032.dat
7506 silly gunzTarPerm modes [ '755', '644' ]
7507 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-expat
7508 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-expat
7509 verbose linkStuff [ false,
7509 verbose linkStuff false,
7509 verbose linkStuff false,
7509 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules' ]
7510 info linkStuff node-expat@2.1.4
7511 verbose linkBins node-expat@2.1.4
7512 verbose linkMans node-expat@2.1.4
7513 verbose rebuildBundles node-expat@2.1.4
7514 verbose rebuildBundles [ 'nan' ]
7515 info install node-expat@2.1.4
7516 silly lockFile 616d5322-ruglify-1-0-0 ruglify@1.0.0
7517 silly lockFile 616d5322-ruglify-1-0-0 ruglify@1.0.0
7518 silly lockFile 1bc7e7b2-uglify-js-2-4-12 uglify-js@2.4.12
7519 silly lockFile 1bc7e7b2-uglify-js-2-4-12 uglify-js@2.4.12
7520 silly lockFile 79f60705-ruglify-1-0-0 ruglify@~1.0.0
7521 silly lockFile 79f60705-ruglify-1-0-0 ruglify@~1.0.0
7522 silly gunzTarPerm extractEntry lib/combined_stream.js
7523 silly gunzTarPerm extractEntry test/common.js
7524 silly lockFile 1d881e0f-uglify-js-2-4-0 uglify-js@~2.4.0
7525 silly lockFile 1d881e0f-uglify-js-2-4-0 uglify-js@~2.4.0
7526 silly gunzTarPerm extractEntry package.json
7527 silly lockFile 7481fab7-ules-hawk-node-modules-cryptiles tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/cryptiles
7528 silly lockFile 7481fab7-ules-hawk-node-modules-cryptiles tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/cryptiles
7529 silly gunzTarPerm extractEntry test/vectors/byte0033.dat
7530 silly gunzTarPerm extractEntry test/vectors/byte0034.dat
7531 silly lockFile 7e4ce879--npm-cryptiles-0-2-2-package-tgz tar:///home/scarter/.npm/cryptiles/0.2.2/package.tgz
7532 silly lockFile 7e4ce879--npm-cryptiles-0-2-2-package-tgz tar:///home/scarter/.npm/cryptiles/0.2.2/package.tgz
7533 silly gunzTarPerm extractEntry .npmignore
7534 silly gunzTarPerm extractEntry README.md
7535 info preinstall cryptiles@0.2.2
7536 silly gunzTarPerm extractEntry test/run.js
7537 silly gunzTarPerm extractEntry test/fixture/file1.txt
7538 silly gunzTarPerm extractEntry test/fixture/file2.txt
7539 silly gunzTarPerm extractEntry test/integration/test-callback-streams.js
7540 silly gunzTarPerm extractEntry test/integration/test-data-size.js
7541 silly gunzTarPerm extractEntry test/integration/test-delayed-streams-and-buffers-and-strings.js
7542 silly gunzTarPerm extractEntry test/integration/test-delayed-streams.js
7543 silly gunzTarPerm extractEntry test/integration/test-empty-string.js
7544 silly gunzTarPerm extractEntry test/integration/test-is-stream-like.js
7545 silly gunzTarPerm extractEntry test/integration/test-max-data-size.js
7546 silly gunzTarPerm extractEntry test/integration/test-unpaused-streams.js
7547 verbose readDependencies using package.json deps
7548 silly gunzTarPerm extractEntry test/vectors/byte0035.dat
7549 silly gunzTarPerm extractEntry test/vectors/byte0036.dat
7550 silly gunzTarPerm extractEntry tst/ctf/float.json
7551 silly gunzTarPerm extractEntry tst/ctf/int.json
7552 verbose readDependencies using package.json deps
7553 silly resolved []
7554 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/cryptiles
7555 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/cryptiles
7556 verbose linkStuff [ false,
7556 verbose linkStuff false,
7556 verbose linkStuff false,
7556 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules' ]
7557 info linkStuff cryptiles@0.2.2
7558 verbose linkBins cryptiles@0.2.2
7559 verbose linkMans cryptiles@0.2.2
7560 verbose rebuildBundles cryptiles@0.2.2
7561 info install cryptiles@0.2.2
7562 silly gunzTarPerm extractEntry LICENSE
7563 silly gunzTarPerm extractEntry index.js
7564 info postinstall cryptiles@0.2.2
7565 silly gunzTarPerm extractEntry example/headers/main.js
7566 silly gunzTarPerm extractEntry example/headers/server.js
7567 silly gunzTarPerm extractEntry test/vectors/byte0037.dat
7568 silly gunzTarPerm extractEntry test/vectors/byte0038.dat
7569 silly gunzTarPerm extractEntry .travis.yml
7570 silly gunzTarPerm extractEntry Makefile
7571 silly gunzTarPerm extractEntry test/vectors/byte0039.dat
7572 silly gunzTarPerm extractEntry test/vectors/byte0040.dat
7573 http 304 https://registry.npmjs.org/process
7574 silly registry.get cb [ 304,
7574 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:40 GMT',
7574 silly registry.get server: 'Apache',
7574 silly registry.get connection: 'Keep-Alive',
7574 silly registry.get 'keep-alive': 'timeout=10, max=50',
7574 silly registry.get etag: '"23QAHWZPCGQ02NEYPE8PX0IOV"',
7574 silly registry.get 'cache-control': 'max-age=1',
7574 silly registry.get vary: 'Accept' } ]
7575 verbose etag process from cache
7576 silly gunzTarPerm extractEntry example/headers/index.html
7577 silly gunzTarPerm extractEntry example/json-stream/main.js
7578 silly gunzTarPerm extractEntry images/boom.png
7579 silly gunzTarPerm extractEntry lib/index.js
7580 silly gunzTarPerm extractEntry test/index.js
7581 silly gunzTarPerm extractEntry test/reflect.js
7582 silly gunzTarPerm extractEntry test/run.js
7583 silly gunzTarPerm extractEntry tst/ctf/typedef.json
7584 silly gunzTarPerm extractEntry tst/ctio/float/tst.rfloat.js
7585 silly addNameRange number 2 { name: 'process', range: '>=0.5.1-0 <0.6.0-0', hasData: true }
7586 silly addNameRange versions [ 'process', [ '0.4.9', '0.5.0', '0.5.1', '0.5.2', '0.6.0' ] ]
7587 verbose addNamed [ 'process', '0.5.2' ]
7588 verbose addNamed [ '0.5.2', '0.5.2' ]
7589 silly lockFile 75770b0f-process-0-5-2 process@0.5.2
7590 verbose lock process@0.5.2 /home/scarter/.npm/75770b0f-process-0-5-2.lock
7591 silly gunzTarPerm extractEntry test/vectors/byte0041.dat
7592 silly gunzTarPerm extractEntry test/vectors/byte0042.dat
7593 silly gunzTarPerm extractEntry example/json-stream/server.js
7594 silly gunzTarPerm extractEntry example/json-stream/data.json
7595 silly gunzTarPerm extractEntry test/vectors/byte0043.dat
7596 silly gunzTarPerm extractEntry test/vectors/byte0044.dat
7597 silly gunzTarPerm extractEntry example/json-stream/index.html
7598 silly lockFile eaf1a2de-rfile-1-0-0 rfile@1.0.0
7599 silly lockFile eaf1a2de-rfile-1-0-0 rfile@1.0.0
7600 silly gunzTarPerm extractEntry LICENSE.BSD
7601 silly gunzTarPerm extractEntry demo/checkenv.js
7602 silly lockFile f7448db8-rfile-1-0-0 rfile@~1.0.0
7603 silly lockFile f7448db8-rfile-1-0-0 rfile@~1.0.0
7604 silly lockFile 75770b0f-process-0-5-2 process@0.5.2
7605 silly lockFile 75770b0f-process-0-5-2 process@0.5.2
7606 silly resolved [ { name: 'ruglify',
7606 silly resolved version: '1.0.0',
7606 silly resolved description: '\'Require\' minified JavaScript as a string',
7606 silly resolved scripts: { test: 'mocha -R spec' },
7606 silly resolved repository:
7606 silly resolved { type: 'git',
7606 silly resolved url: 'https://github.com/ForbesLindesay/ruglify.git' },
7606 silly resolved keywords:
7606 silly resolved [ 'require',
7606 silly resolved 'file',
7606 silly resolved 'text',
7606 silly resolved 'relative',
7606 silly resolved 'module',
7606 silly resolved 'javascript',
7606 silly resolved 'uglify',
7606 silly resolved 'minify',
7606 silly resolved 'compress',
7606 silly resolved 'string' ],
7606 silly resolved author: { name: 'ForbesLindesay' },
7606 silly resolved license: 'MIT',
7606 silly resolved dependencies: { rfile: '~1.0', 'uglify-js': '~2.2' },
7606 silly resolved devDependencies: { mocha: '~1.8' },
7606 silly resolved readme: '# ruglify\r\n\r\n[![Build Status](https://secure.travis-ci.org/ForbesLindesay/ruglify.png)](http://travis-ci.org/ForbesLindesay/ruglify)\r\n[![Dependency Status](https://gemnasium.com/ForbesLindesay/ruglify.png)](https://gemnasium.com/ForbesLindesay/ruglify)\r\n\r\n"Require" minified JavaScript as a string\r\n\r\n## Installation\r\n\r\n```\r\nnpm install ruglify\r\n```\r\n\r\n## Usage\r\n\r\n```javascript\r\nvar ruglify = require(\'ruglify\');\r\nvar minifiedJQuery = ruglify(\'./jquery.js\');\r\nconsole.log(minifiedJQuery);\r\n```\r\n\r\nUses the same resolution algorithm as require for maximum simplicity. Built on top of [rfile](https://github.com/ForbesLindesay/rfile).\r\n\r\n## License\r\n\r\n MIT',
7606 silly resolved readmeFilename: 'README.md',
7606 silly resolved bugs: { url: 'https://github.com/ForbesLindesay/ruglify/issues' },
7606 silly resolved homepage: 'https://github.com/ForbesLindesay/ruglify',
7606 silly resolved _id: 'ruglify@1.0.0',
7606 silly resolved _from: 'ruglify@~1.0.0' },
7606 silly resolved { name: 'uglify-js',
7606 silly resolved description: 'JavaScript parser, mangler/compressor and beautifier toolkit',
7606 silly resolved homepage: 'http://lisperator.net/uglifyjs',
7606 silly resolved main: 'tools/node.js',
7606 silly resolved version: '2.4.12',
7606 silly resolved engines: { node: '>=0.4.0' },
7606 silly resolved maintainers: [ [Object] ],
7606 silly resolved repository: { type: 'git', url: 'https://github.com/mishoo/UglifyJS2.git' },
7606 silly resolved dependencies:
7606 silly resolved { async: '~0.2.6',
7606 silly resolved 'source-map': '~0.1.7',
7606 silly resolved optimist: '~0.3.5',
7606 silly resolved 'uglify-to-browserify': '~1.0.0' },
7606 silly resolved browserify: { transform: [Object] },
7606 silly resolved bin: { uglifyjs: 'bin/uglifyjs' },
7606 silly resolved scripts: { test: 'node test/run-tests.js' },
7606 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```\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\n with Internet Explorer 6-8 quirks (by default UglifyJS\n will try to be IE-proof). [boolean]\n --expr Parse a single expression, rather than a program (for\n parsing JSON) [boolean]\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. You can also\n specify -p relative, which will make UglifyJS figure out\n itself the relative paths between original sources, the\n source map and the output file. [string]\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 -e, --enclose Embed everything in a big function, with a configurable\n parameter/argument list. [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 --preamble Preamble to prepend to the output. You can use this to\n insert a comment, for example for licensing information.\n This will not be parsed, but the source map will adjust\n for its presence.\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```\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\n- `properties` -- rewrite property access using the dot notation, for\n example `foo["bar"] → foo.bar`\n\n- `dead_code` -- remove unreachable code\n\n- `drop_debugger` -- remove `debugger;` statements\n\n- `unsafe` (default: false) -- apply "unsafe" transformations (discussion below)\n\n- `conditionals` -- apply optimizations for `if`-s and conditional\n expressions\n\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\n- `evaluate` -- attempt to evaluate constant expressions\n\n- `booleans` -- various optimizations for boolean context, for example `!!a\n ? b : c → a ? b : c`\n\n- `loops` -- optimizations for `do`, `while` and `for` loops when we can\n statically determine the condition\n\n- `unused` -- drop unreferenced functions and variables\n\n- `hoist_funs` -- hoist function declarations\n\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\n- `if_return` -- optimizations for if/return and if/continue\n\n- `join_vars` -- join consecutive `var` statements\n\n- `cascade` -- small optimization for sequences, transform `x, x` into `x`\n and `x = something(), x` into `x = something()`\n\n- `warnings` -- display warnings when dropping unreachable code or unused\n declarations etc.\n\n- `negate_iife` -- negate "Immediately-Called Function Expressions"\n where the return value is discarded, to avoid the parens that the\n code generator would insert.\n\n- `pure_getters` -- the default is `false`. If you pass `true` for\n this, UglifyJS will assume that object property access\n (e.g. `foo.bar` or `foo["bar"]`) doesn\'t have any side effects.\n\n- `pure_funcs` -- default `null`. You can pass an array of names and\n UglifyJS will assume that those functions do not produce side\n effects. DANGER: will not check if the name is redefined in scope.\n An example case here, for instance `var q = Math.floor(a/b)`. If\n variable `q` is not used elsewhere, UglifyJS will drop it, but will\n still keep the `Math.floor(a/b)`, not knowing what it does. You can\n pass `pure_funcs: [ \'Math.floor\' ]` to let it know that this\n function won\'t produce any side effect, in which case the whole\n statement would get discarded. The current implementation adds some\n overhead (compression will be slower).\n\n- `drop_console` -- default `false`. Pass `true` to discard calls to\n `console.*` functions.\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- `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- `preamble` (default `null`) -- when passed it must be a string and\n it will be prepended to the output literally. The source map will\n adjust for this text. Can be used to insert a comment containing\n licensing information, for example.\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, "utf8");\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',
7606 silly resolved readmeFilename: 'README.md',
7606 silly resolved bugs: { url: 'https://github.com/mishoo/UglifyJS2/issues' },
7606 silly resolved _id: 'uglify-js@2.4.12',
7606 silly resolved _from: 'uglify-js@~2.4.0' },
7606 silly resolved { name: 'rfile',
7606 silly resolved version: '1.0.0',
7606 silly resolved description: 'Require a plain text or binary file in node.js',
7606 silly resolved main: 'index.js',
7606 silly resolved scripts: { test: 'mocha -R spec' },
7606 silly resolved repository:
7606 silly resolved { type: 'git',
7606 silly resolved url: 'https://github.com/ForbesLindesay/rfile.git' },
7606 silly resolved keywords: [ 'require', 'file', 'text', 'relative', 'module' ],
7606 silly resolved author: { name: 'ForbesLindesay' },
7606 silly resolved license: 'MIT',
7606 silly resolved readmeFilename: 'README.md',
7606 silly resolved gitHead: 'd82e3088d06d2a8ce94f51fa7536555c3947e74f',
7606 silly resolved dependencies: { callsite: '~1.0.0', resolve: '~0.3.0' },
7606 silly resolved devDependencies: { mocha: '~1.8' },
7606 silly resolved readme: '# rfile\r\n\r\n[![Build Status](https://secure.travis-ci.org/ForbesLindesay/rfile.png)](http://travis-ci.org/ForbesLindesay/rfile)\r\n[![Dependency Status](https://gemnasium.com/ForbesLindesay/rfile.png)](https://gemnasium.com/ForbesLindesay/rfile)\r\n\r\nrequire a plain text or binary file in node.js\r\n\r\n## Installation\r\n\r\n $ npm install rfile\r\n\r\n## Usage\r\n\r\n```javascript\r\nvar rfile = require(\'rfile\');\r\n\r\nvar text = rfile(\'./my-text-file.txt\');\r\nvar mochaReadme = rfile(\'mocha/readme.md\');\r\nvar mochaSource = rfile(\'mocha\');\r\nvar image = rfile(\'image.png\', {binary: true});\r\n```\r\n\r\n## API\r\n\r\n### rfile(pkg, options)\r\n\r\n Uses `rfile.resolve` (see below) to look up your file `pkg`. This means it supports all the same options as `rfile.resolve`. Having found the file, it does the following:\r\n\r\n```javascript\r\nreturn options.binary ? read(path) : fixup(read(path).toString());\r\n```\r\n\r\n `options.binary` defaults to `false` and `fixup` removes the UTF-8 BOM if present and removes any `\\r` characters (added to newlines on windows only).\r\n\r\n### rfile.resolve(pkg, options)\r\n\r\n Internally, [resolve](https://npmjs.org/package/resolve) is used to lookup your package, so it supports all the same options as that. In addition t defaults `basedir` to the directory of the function which called `rfile` or `rfile.resolve`.\r\n\r\n The additional option `exclude` is useful if you wanted to create a wrapper arround this. It specifies the filenames not to consider for `basedir` paths. For example, you could create a module called `ruglify` for requiring and minifying JavaScript in one go.\r\n\r\n ruglify.js\r\n```javascript\r\nvar rfile = require(\'rfile\');\r\nvar uglify require(\'uglify-js\').minify;\r\n\r\nmodule.exports = ruglify;\r\nfunction ruglify(path, options) {\r\n return minify(rfile.resolve(path, {exclude: [__filename]}), options).code;\r\n}\r\n```\r\n\r\n#### From `resolve`\r\n\r\n - opts.basedir - directory to begin resolving from (defaults to `__dirname` of the calling module for `rfile`)\r\n - opts.extensions - array of file extensions to search in order (defaults to `[\'.js\', \'.json\']` for `rfile`)\r\n - opts.readFile - how to read files asynchronously\r\n - opts.isFile - function to asynchronously test whether a file exists\r\n - opts.packageFilter - transform the parsed package.json contents before looking at the "main" field (useful for browserify etc.)\r\n - opts.paths - require.paths array to use if nothing is found on the normal node_modules recursive walk (probably don\'t use this)\r\n\r\n## Notes\r\n\r\nOne of the interesting features of this is that it respects the `main` field of package.json files. Say you had a module called `foo`, you could have a package.json like:\r\n\r\n```json\r\n{\r\n "name": "foo",\r\n "version": "1.0.0",\r\n "main": "./foo"\r\n}\r\n```\r\n\r\nYou might then have a `foo.js` file, containing the JavaScript code of the module, and a `foo.css` file containing the stylesheet for the module when used in the browser. Using `rfile` you could load the css by simply calling:\r\n\r\n```javascript\r\nrfile(\'foo\', {extensions: [\'.css\']});\r\n```\r\n\r\n## License\r\n\r\n MIT',
7606 silly resolved bugs: { url: 'https://github.com/ForbesLindesay/rfile/issues' },
7606 silly resolved homepage: 'https://github.com/ForbesLindesay/rfile',
7606 silly resolved _id: 'rfile@1.0.0',
7606 silly resolved _from: 'rfile@~1.0.0' } ]
7607 info install ruglify@1.0.0 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/umd
7608 info install uglify-js@2.4.12 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/umd
7609 info install rfile@1.0.0 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/umd
7610 info installOne ruglify@1.0.0
7611 info installOne uglify-js@2.4.12
7612 info installOne rfile@1.0.0
7613 silly gunzTarPerm extractEntry test/runner.js
7614 silly gunzTarPerm extractEntry test/test.js
7615 silly lockFile d6f67848-process-0-5-1 process@~0.5.1
7616 silly lockFile d6f67848-process-0-5-1 process@~0.5.1
7617 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/umd/node_modules/ruglify unbuild
7618 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/umd/node_modules/uglify-js unbuild
7619 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/umd/node_modules/rfile unbuild
7620 silly gunzTarPerm extractEntry test/vectors/byte0045.dat
7621 silly gunzTarPerm extractEntry test/vectors/byte0046.dat
7622 silly resolved [ { author: { name: 'Roman Shtylman', email: 'shtylman@gmail.com' },
7622 silly resolved name: 'process',
7622 silly resolved description: 'process information for node.js and browsers',
7622 silly resolved keywords: [ 'process' ],
7622 silly resolved version: '0.5.2',
7622 silly resolved repository:
7622 silly resolved { type: 'git',
7622 silly resolved url: 'git://github.com/shtylman/node-process.git' },
7622 silly resolved browser: './browser.js',
7622 silly resolved main: './index.js',
7622 silly resolved engines: { node: '>= 0.6.0' },
7622 silly resolved readme: '# process\n\n```require(\'process\');``` just like any other module.\n\nWorks in node.js and browsers via the browser.js shim provided with the module.\n\n## package manager notes\n\nIf you are writing a bundler to package modules for client side use, make sure you use the ```browser``` field hint in package.json.\n\nSee https://gist.github.com/4339901 for details.\n\nThe [browserify](https://github.com/substack/node-browserify) module will properly handle this field when bundling your files.\n\n\n',
7622 silly resolved readmeFilename: 'README.md',
7622 silly resolved bugs: { url: 'https://github.com/shtylman/node-process/issues' },
7622 silly resolved homepage: 'https://github.com/shtylman/node-process',
7622 silly resolved _id: 'process@0.5.2',
7622 silly resolved _from: 'process@~0.5.1' } ]
7623 info install process@0.5.2 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/timers-browserify
7624 info installOne process@0.5.2
7625 silly resolved [ { author: { name: 'Roman Shtylman', email: 'shtylman@gmail.com' },
7625 silly resolved name: 'process',
7625 silly resolved description: 'process information for node.js and browsers',
7625 silly resolved keywords: [ 'process' ],
7625 silly resolved version: '0.5.2',
7625 silly resolved repository:
7625 silly resolved { type: 'git',
7625 silly resolved url: 'git://github.com/shtylman/node-process.git' },
7625 silly resolved browser: './browser.js',
7625 silly resolved main: './index.js',
7625 silly resolved engines: { node: '>= 0.6.0' },
7625 silly resolved readme: '# process\n\n```require(\'process\');``` just like any other module.\n\nWorks in node.js and browsers via the browser.js shim provided with the module.\n\n## package manager notes\n\nIf you are writing a bundler to package modules for client side use, make sure you use the ```browser``` field hint in package.json.\n\nSee https://gist.github.com/4339901 for details.\n\nThe [browserify](https://github.com/substack/node-browserify) module will properly handle this field when bundling your files.\n\n\n',
7625 silly resolved readmeFilename: 'README.md',
7625 silly resolved bugs: { url: 'https://github.com/shtylman/node-process/issues' },
7625 silly resolved homepage: 'https://github.com/shtylman/node-process',
7625 silly resolved _id: 'process@0.5.2',
7625 silly resolved _from: 'process@~0.5.1' } ]
7626 info install process@0.5.2 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/stream-browserify
7627 info installOne process@0.5.2
7628 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/timers-browserify/node_modules/process unbuild
7629 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/stream-browserify/node_modules/process unbuild
7630 silly gunzTarPerm extractEntry example/json-stream/node_modules/JSONStream/package.json
7631 silly gunzTarPerm extractEntry example/json-stream/node_modules/JSONStream/index.js
7632 verbose tar unpack /home/scarter/.npm/ruglify/1.0.0/package.tgz
7633 silly lockFile 553a2b43-modules-umd-node-modules-ruglify tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/umd/node_modules/ruglify
7634 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/umd/node_modules/ruglify /home/scarter/.npm/553a2b43-modules-umd-node-modules-ruglify.lock
7635 silly lockFile 740ba724-er-npm-ruglify-1-0-0-package-tgz tar:///home/scarter/.npm/ruglify/1.0.0/package.tgz
7636 verbose lock tar:///home/scarter/.npm/ruglify/1.0.0/package.tgz /home/scarter/.npm/740ba724-er-npm-ruglify-1-0-0-package-tgz.lock
7637 verbose tar unpack /home/scarter/.npm/uglify-js/2.4.12/package.tgz
7638 silly lockFile e188ca4f-dules-umd-node-modules-uglify-js tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/umd/node_modules/uglify-js
7639 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/umd/node_modules/uglify-js /home/scarter/.npm/e188ca4f-dules-umd-node-modules-uglify-js.lock
7640 silly lockFile 4ecc9145-npm-uglify-js-2-4-12-package-tgz tar:///home/scarter/.npm/uglify-js/2.4.12/package.tgz
7641 verbose lock tar:///home/scarter/.npm/uglify-js/2.4.12/package.tgz /home/scarter/.npm/4ecc9145-npm-uglify-js-2-4-12-package-tgz.lock
7642 verbose tar unpack /home/scarter/.npm/rfile/1.0.0/package.tgz
7643 silly lockFile ef2e4ebc-e-modules-umd-node-modules-rfile tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/umd/node_modules/rfile
7644 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/umd/node_modules/rfile /home/scarter/.npm/ef2e4ebc-e-modules-umd-node-modules-rfile.lock
7645 silly lockFile 75b3d061-rter-npm-rfile-1-0-0-package-tgz tar:///home/scarter/.npm/rfile/1.0.0/package.tgz
7646 verbose lock tar:///home/scarter/.npm/rfile/1.0.0/package.tgz /home/scarter/.npm/75b3d061-rter-npm-rfile-1-0-0-package-tgz.lock
7647 http 304 https://registry.npmjs.org/readable-stream
7648 silly registry.get cb [ 304,
7648 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:40 GMT',
7648 silly registry.get server: 'Apache',
7648 silly registry.get connection: 'Keep-Alive',
7648 silly registry.get 'keep-alive': 'timeout=10, max=49',
7648 silly registry.get etag: '"DAE27EQLX3F3INP2VQNGUIHRZ"',
7648 silly registry.get 'cache-control': 'max-age=1',
7648 silly registry.get vary: 'Accept' } ]
7649 verbose etag readable-stream from cache
7650 verbose tar unpack /home/scarter/.npm/process/0.5.2/package.tgz
7651 silly lockFile 8824a424--browserify-node-modules-process tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/timers-browserify/node_modules/process
7652 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/timers-browserify/node_modules/process /home/scarter/.npm/8824a424--browserify-node-modules-process.lock
7653 silly lockFile b91de249-er-npm-process-0-5-2-package-tgz tar:///home/scarter/.npm/process/0.5.2/package.tgz
7654 verbose lock tar:///home/scarter/.npm/process/0.5.2/package.tgz /home/scarter/.npm/b91de249-er-npm-process-0-5-2-package-tgz.lock
7655 verbose tar unpack /home/scarter/.npm/process/0.5.2/package.tgz
7656 silly lockFile 17f6c075--browserify-node-modules-process tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/stream-browserify/node_modules/process
7657 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/stream-browserify/node_modules/process /home/scarter/.npm/17f6c075--browserify-node-modules-process.lock
7658 silly lockFile b91de249-er-npm-process-0-5-2-package-tgz tar:///home/scarter/.npm/process/0.5.2/package.tgz
7659 verbose lock tar:///home/scarter/.npm/process/0.5.2/package.tgz /home/scarter/.npm/b91de249-er-npm-process-0-5-2-package-tgz.lock
7660 silly gunzTarPerm modes [ '755', '644' ]
7661 silly gunzTarPerm modes [ '755', '644' ]
7662 silly gunzTarPerm modes [ '755', '644' ]
7663 silly gunzTarPerm modes [ '755', '644' ]
7664 silly gunzTarPerm extractEntry test/vectors/byte0047.dat
7665 silly gunzTarPerm extractEntry test/vectors/byte0048.dat
7666 silly gunzTarPerm extractEntry example/json-stream/node_modules/JSONStream/.travis.yml
7667 silly gunzTarPerm extractEntry example/json-stream/node_modules/JSONStream/LICENSE.APACHE2
7668 silly gunzTarPerm extractEntry package.json
7669 silly addNameRange number 2 { name: 'readable-stream',
7669 silly addNameRange range: '>=1.1.9-0 <1.2.0-0',
7669 silly addNameRange hasData: true }
7670 silly addNameRange versions [ 'readable-stream',
7670 silly addNameRange [ '0.0.1',
7670 silly addNameRange '0.0.2',
7670 silly addNameRange '0.0.3',
7670 silly addNameRange '0.0.4',
7670 silly addNameRange '0.1.0',
7670 silly addNameRange '0.2.0',
7670 silly addNameRange '0.3.0',
7670 silly addNameRange '0.3.1',
7670 silly addNameRange '1.0.0',
7670 silly addNameRange '1.0.1',
7670 silly addNameRange '1.0.2',
7670 silly addNameRange '1.0.15',
7670 silly addNameRange '1.0.17',
7670 silly addNameRange '1.1.7',
7670 silly addNameRange '1.1.8',
7670 silly addNameRange '1.1.9',
7670 silly addNameRange '1.0.24',
7670 silly addNameRange '1.0.25',
7670 silly addNameRange '1.1.10',
7670 silly addNameRange '1.0.25-1' ] ]
7671 verbose addNamed [ 'readable-stream', '1.1.10' ]
7672 verbose addNamed [ '1.1.10', '1.1.10' ]
7673 silly lockFile 987e367e-readable-stream-1-1-10 readable-stream@1.1.10
7674 verbose lock readable-stream@1.1.10 /home/scarter/.npm/987e367e-readable-stream-1-1-10.lock
7675 silly gunzTarPerm extractEntry package.json
7676 silly gunzTarPerm extractEntry package.json
7677 silly gunzTarPerm extractEntry package.json
7678 http 304 https://registry.npmjs.org/indexof/0.0.1
7679 silly registry.get cb [ 304,
7679 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:40 GMT',
7679 silly registry.get server: 'Apache',
7679 silly registry.get connection: 'Keep-Alive',
7679 silly registry.get 'keep-alive': 'timeout=10, max=50',
7679 silly registry.get etag: '"92ML2J7FXC28KZCHSGEXI8RH8"',
7679 silly registry.get 'cache-control': 'max-age=1',
7679 silly registry.get vary: 'Accept' } ]
7680 verbose etag indexof/0.0.1 from cache
7681 silly gunzTarPerm extractEntry .npmignore
7682 silly gunzTarPerm extractEntry README.md
7683 silly gunzTarPerm extractEntry .npmignore
7684 silly gunzTarPerm extractEntry README.md
7685 silly gunzTarPerm extractEntry .npmignore
7686 silly gunzTarPerm extractEntry README.md
7687 silly gunzTarPerm extractEntry test/vectors/byte0049.dat
7688 silly gunzTarPerm extractEntry test/vectors/byte0050.dat
7689 silly gunzTarPerm extractEntry README.md
7690 silly gunzTarPerm extractEntry LICENSE
7691 http 304 https://registry.npmjs.org/typedarray
7692 silly registry.get cb [ 304,
7692 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:40 GMT',
7692 silly registry.get server: 'Apache',
7692 silly registry.get connection: 'Keep-Alive',
7692 silly registry.get 'keep-alive': 'timeout=10, max=49',
7692 silly registry.get etag: '"2A9UG354BFKM3IB06B862L9UQ"',
7692 silly registry.get 'cache-control': 'max-age=1',
7692 silly registry.get vary: 'Accept' } ]
7693 verbose etag typedarray from cache
7694 silly gunzTarPerm extractEntry example/json-stream/node_modules/JSONStream/LICENSE.MIT
7695 silly gunzTarPerm extractEntry example/json-stream/node_modules/JSONStream/examples/all_docs.js
7696 silly gunzTarPerm extractEntry index.js
7697 silly gunzTarPerm extractEntry .travis.yml
7698 silly addNameRange number 2 { name: 'typedarray',
7698 silly addNameRange range: '>=0.0.5-0 <0.1.0-0',
7698 silly addNameRange hasData: true }
7699 silly addNameRange versions [ 'typedarray',
7699 silly addNameRange [ '0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5' ] ]
7700 verbose addNamed [ 'typedarray', '0.0.5' ]
7701 verbose addNamed [ '0.0.5', '0.0.5' ]
7702 silly lockFile 37402d2a-typedarray-0-0-5 typedarray@0.0.5
7703 verbose lock typedarray@0.0.5 /home/scarter/.npm/37402d2a-typedarray-0-0-5.lock
7704 silly gunzTarPerm extractEntry test/vectors/byte0051.dat
7705 silly gunzTarPerm extractEntry test/vectors/byte0052.dat
7706 silly gunzTarPerm extractEntry browser.js
7707 silly gunzTarPerm extractEntry index.js
7708 silly gunzTarPerm extractEntry LICENSE
7709 silly gunzTarPerm extractEntry index.js
7710 silly gunzTarPerm extractEntry .travis.yml
7711 http 304 https://registry.npmjs.org/tape
7712 silly registry.get cb [ 304,
7712 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:40 GMT',
7712 silly registry.get server: 'Apache',
7712 silly registry.get connection: 'Keep-Alive',
7712 silly registry.get 'keep-alive': 'timeout=10, max=49',
7712 silly registry.get etag: '"5Q3V7U7JT70ZOLML71HUM4ZGT"',
7712 silly registry.get 'cache-control': 'max-age=1',
7712 silly registry.get vary: 'Accept' } ]
7713 verbose etag tape from cache
7714 silly gunzTarPerm extractEntry example/json-stream/node_modules/JSONStream/readme.markdown
7715 silly gunzTarPerm extractEntry example/json-stream/node_modules/JSONStream/test/bool.js
7716 silly lockFile 987e367e-readable-stream-1-1-10 readable-stream@1.1.10
7717 silly lockFile 987e367e-readable-stream-1-1-10 readable-stream@1.1.10
7718 silly gunzTarPerm extractEntry test/index.js
7719 silly gunzTarPerm extractEntry test/fixture/jquery.js
7720 silly gunzTarPerm extractEntry test/vectors/byte0053.dat
7721 silly gunzTarPerm extractEntry test/vectors/byte0054.dat
7722 silly lockFile f517707b-readable-stream-1-1-9 readable-stream@~1.1.9
7723 silly lockFile f517707b-readable-stream-1-1-9 readable-stream@~1.1.9
7724 silly gunzTarPerm extractEntry .travis.yml
7725 silly gunzTarPerm extractEntry bin/uglifyjs
7726 silly gunzTarPerm extractEntry test/index.js
7727 silly gunzTarPerm extractEntry tst/ctio/float/tst.wfloat.js
7728 silly gunzTarPerm extractEntry tst/ctio/int/tst.64.js
7729 silly addNameRange number 2 { name: 'tape', range: '>=0.2.2-0 <0.3.0-0', hasData: true }
7730 silly addNameRange versions [ 'tape',
7730 silly addNameRange [ '0.0.0',
7730 silly addNameRange '0.0.1',
7730 silly addNameRange '0.0.2',
7730 silly addNameRange '0.0.3',
7730 silly addNameRange '0.0.4',
7730 silly addNameRange '0.0.5',
7730 silly addNameRange '0.1.0',
7730 silly addNameRange '0.1.1',
7730 silly addNameRange '0.1.2',
7730 silly addNameRange '0.1.3',
7730 silly addNameRange '0.1.4',
7730 silly addNameRange '0.1.5',
7730 silly addNameRange '0.2.0',
7730 silly addNameRange '0.2.1',
7730 silly addNameRange '0.2.2',
7730 silly addNameRange '0.3.0',
7730 silly addNameRange '0.3.1',
7730 silly addNameRange '0.3.2',
7730 silly addNameRange '0.3.3',
7730 silly addNameRange '1.0.0',
7730 silly addNameRange '1.0.1',
7730 silly addNameRange '1.0.2',
7730 silly addNameRange '1.0.3',
7730 silly addNameRange '1.0.4',
7730 silly addNameRange '1.1.0',
7730 silly addNameRange '1.1.1',
7730 silly addNameRange '2.0.0',
7730 silly addNameRange '2.0.1',
7730 silly addNameRange '2.1.0',
7730 silly addNameRange '2.2.0',
7730 silly addNameRange '2.2.1',
7730 silly addNameRange '2.3.0',
7730 silly addNameRange '2.3.1',
7730 silly addNameRange '2.3.2',
7730 silly addNameRange '2.4.0',
7730 silly addNameRange '2.4.1',
7730 silly addNameRange '2.4.2' ] ]
7731 verbose addNamed [ 'tape', '0.2.2' ]
7732 verbose addNamed [ '0.2.2', '0.2.2' ]
7733 silly lockFile b5b430e5-tape-0-2-2 tape@0.2.2
7734 verbose lock tape@0.2.2 /home/scarter/.npm/b5b430e5-tape-0-2-2.lock
7735 silly lockFile eb104ead-indexof-0-0-1 indexof@0.0.1
7736 silly lockFile eb104ead-indexof-0-0-1 indexof@0.0.1
7737 silly resolved [ { name: 'indexof',
7737 silly resolved description: 'Microsoft sucks',
7737 silly resolved version: '0.0.1',
7737 silly resolved keywords: [ 'index', 'array', 'indexOf' ],
7737 silly resolved dependencies: {},
7737 silly resolved component: { scripts: [Object] },
7737 silly resolved readme: '\n# indexOf\n\n Lame indexOf thing, thanks microsoft\n\n## Example\n\n```js\nvar index = require(\'indexof\');\nindex(arr, obj);\n```\n\n## License\n\n MIT',
7737 silly resolved readmeFilename: 'Readme.md',
7737 silly resolved _id: 'indexof@0.0.1',
7737 silly resolved _from: 'indexof@0.0.1' } ]
7738 info install indexof@0.0.1 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/vm-browserify
7739 info installOne indexof@0.0.1
7740 silly gunzTarPerm extractEntry example/json-stream/node_modules/JSONStream/test/test2.js
7741 silly gunzTarPerm extractEntry example/json-stream/node_modules/JSONStream/test/fn.js
7742 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/vm-browserify/node_modules/indexof unbuild
7743 verbose tar unpack /home/scarter/.npm/indexof/0.0.1/package.tgz
7744 silly lockFile 323c1d26--browserify-node-modules-indexof tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/vm-browserify/node_modules/indexof
7745 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/vm-browserify/node_modules/indexof /home/scarter/.npm/323c1d26--browserify-node-modules-indexof.lock
7746 silly lockFile 66f12707-er-npm-indexof-0-0-1-package-tgz tar:///home/scarter/.npm/indexof/0.0.1/package.tgz
7747 verbose lock tar:///home/scarter/.npm/indexof/0.0.1/package.tgz /home/scarter/.npm/66f12707-er-npm-indexof-0-0-1-package-tgz.lock
7748 silly gunzTarPerm extractEntry test/vectors/byte0055.dat
7749 silly gunzTarPerm extractEntry test/vectors/byte0056.dat
7750 silly gunzTarPerm modes [ '755', '644' ]
7751 silly gunzTarPerm extractEntry tst/ctio/int/tst.rint.js
7752 silly gunzTarPerm extractEntry tst/ctio/int/tst.wbounds.js
7753 silly gunzTarPerm extractEntry test/fixture/jquery.min.js
7754 silly lockFile 16376815-http-signature-node-modules-asn1 tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules/asn1
7755 silly lockFile 16376815-http-signature-node-modules-asn1 tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules/asn1
7756 silly lockFile b5b430e5-tape-0-2-2 tape@0.2.2
7757 silly lockFile b5b430e5-tape-0-2-2 tape@0.2.2
7758 silly lockFile fdb2d902-rter-npm-asn1-0-1-11-package-tgz tar:///home/scarter/.npm/asn1/0.1.11/package.tgz
7759 silly lockFile fdb2d902-rter-npm-asn1-0-1-11-package-tgz tar:///home/scarter/.npm/asn1/0.1.11/package.tgz
7760 silly lockFile 057c3b5c-e-modules-hawk-node-modules-sntp tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/sntp
7761 silly lockFile 057c3b5c-e-modules-hawk-node-modules-sntp tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/sntp
7762 silly gunzTarPerm extractEntry package.json
7763 http 304 https://registry.npmjs.org/commondir
7764 silly registry.get cb [ 304,
7764 silly registry.get { date: 'Wed, 05 Feb 2014 17:24:40 GMT',
7764 silly registry.get server: 'Apache',
7764 silly registry.get connection: 'Keep-Alive',
7764 silly registry.get 'keep-alive': 'timeout=10, max=49',
7764 silly registry.get etag: '"6CLZ9IRGAEYHXI1W10BUHJBHF"',
7764 silly registry.get 'cache-control': 'max-age=1',
7764 silly registry.get vary: 'Accept' } ]
7765 verbose etag commondir from cache
7766 silly lockFile 0209fcdb-tape-0-2-2 tape@~0.2.2
7767 silly lockFile 0209fcdb-tape-0-2-2 tape@~0.2.2
7768 silly gunzTarPerm extractEntry test/vectors/byte0057.dat
7769 silly gunzTarPerm extractEntry test/vectors/byte0058.dat
7770 silly lockFile 67c7408c-arter-npm-sntp-0-2-4-package-tgz tar:///home/scarter/.npm/sntp/0.2.4/package.tgz
7771 silly lockFile 67c7408c-arter-npm-sntp-0-2-4-package-tgz tar:///home/scarter/.npm/sntp/0.2.4/package.tgz
7772 silly resolved [ { name: 'tape',
7772 silly resolved version: '0.2.2',
7772 silly resolved description: 'tap-producing test harness for node and browsers',
7772 silly resolved main: 'index.js',
7772 silly resolved bin: {},
7772 silly resolved directories: { example: 'example', test: 'test' },
7772 silly resolved dependencies: { jsonify: '~0.0.0', 'deep-equal': '~0.0.0', defined: '~0.0.0' },
7772 silly resolved devDependencies: { tap: '~0.3.0', falafel: '~0.1.4' },
7772 silly resolved scripts: { test: 'tap test/*.js' },
7772 silly resolved repository: { type: 'git', url: 'git://github.com/substack/tape.git' },
7772 silly resolved homepage: 'https://github.com/substack/tape',
7772 silly resolved keywords: [ 'tap', 'test', 'harness', 'assert', 'browser' ],
7772 silly resolved author:
7772 silly resolved { name: 'James Halliday',
7772 silly resolved email: 'mail@substack.net',
7772 silly resolved url: 'http://substack.net' },
7772 silly resolved license: 'MIT',
7772 silly resolved readme: '# tape\n\ntap-producing test harness for node and browsers\n\n[![build status](https://secure.travis-ci.org/substack/tape.png)](http://travis-ci.org/substack/tape)\n\n![tape](http://substack.net/images/tape_drive.png)\n\n# browser compatibility\n\nchrome, firefox, opera, safari, IE6, IE7, IE8, IE9\n\nusing browserify@1.16.5\n\n# example\n\n``` js\nvar test = require(\'tape\');\n\ntest(\'timing test\', function (t) {\n t.plan(2);\n \n t.equal(typeof Date.now, \'function\');\n var start = Date.now();\n \n setTimeout(function () {\n t.equal(Date.now() - start, 100);\n }, 100);\n});\n```\n\n```\n$ node example/timing.js\nTAP version 13\n# timing test\nok 1 should be equal\nnot ok 2 should be equal\n ---\n operator: equal\n expected: 100\n actual: 107\n ...\n\n1..2\n# tests 2\n# pass 1\n# fail 1\n```\n\n# methods\n\nThe assertion methods in tape are heavily influenced or copied from the methods\nin [node-tap](https://github.com/isaacs/node-tap).\n\n```\nvar test = require(\'tape\')\n```\n\n## test(name, cb)\n\nCreate a new test with an optional `name` string. `cb(t)` fires with the new\ntest object `t` once all preceeding tests have finished. Tests execute serially.\n\nIf you forget to `t.plan()` out how many assertions you are going to run and you\ndon\'t call `t.end()` explicitly, your test will hang.\n\n## t.plan(n)\n\nDeclare that `n` assertions should be run. `t.end()` will be called\nautomatically after the `n`th assertion. If there are any more assertions after\nthe `n`th, or after `t.end()` is called, they will generate errors.\n\n## t.end()\n\nDeclare the end of a test explicitly.\n\n## t.fail(msg)\n\nGenerate a failing assertion with a message `msg`.\n\n## t.pass(msg)\n\nGenerate a passing assertion with a message `msg`.\n\n## t.skip(msg)\n \nGenerate an assertion that will be skipped over.\n\n## t.ok(value, msg)\n\nAssert that `value` is truthy with an optional description message `msg`.\n\nAliases: `t.true()`, `t.assert()`\n\n## t.notOk(value, msg)\n\nAssert that `value` is falsy with an optional description message `msg`.\n\nAliases: `t.false()`, `t.notok()`\n\n## t.error(err, msg)\n\nAssert that `err` is falsy. If `err` is non-falsy, use its `err.message` as the\ndescription message.\n\nAliases: `t.ifError()`, `t.ifErr()`, `t.iferror()`\n\n## t.equal(a, b, msg)\n\nAssert that `a === b` with an optional description `msg`.\n\nAliases: `t.equals()`, `t.isEqual()`, `t.is()`, `t.strictEqual()`,\n`t.strictEquals()`\n\n## t.notEqual(a, b, msg)\n\nAssert that `a !== b` with an optional description `msg`.\n\nAliases: `t.notEquals()`, `t.notStrictEqual()`, `t.notStrictEquals()`,\n`t.isNotEqual()`, `t.isNot()`, `t.not()`, `t.doesNotEqual()`, `t.isInequal()`\n\n## t.deepEqual(a, b, msg)\n\nAssert that `a` and `b` have the same structure and nested values using\n[node\'s deepEqual() algorithm](https://github.com/substack/node-deep-equal)\nwith an optional description `msg`.\n\nAliases: `t.deepEquals()`, `t.isEquivalent()`, `t.looseEqual()`,\n`t.looseEquals()`, `t.same()`\n\n## t.notDeepEqual(a, b, msg)\n\nAssert that `a` and `b` do not have the same structure and nested values using\n[node\'s deepEqual() algorithm](https://github.com/substack/node-deep-equal)\nwith an optional description `msg`.\n\nAliases: `t.notEquivalent()`, `t.notDeeply()`, `t.notSame()`,\n`t.isNotDeepEqual()`, `t.isNotDeeply()`, `t.isNotEquivalent()`,\n`t.isInequivalent()`\n\n## t.throws(fn, expected, msg)\n\nAssert that the function call `fn()` throws an exception.\n\n## t.doesNotThrow(fn, expected, msg)\n\nAssert that the function call `fn()` does not throw an exception.\n\n## t.test(name, cb)\n\nCreate a subtest with a new test handle `st` from `cb(st)` inside the current\ntest `t`. `cb(st)` will only fire when `t` finishes. Additional tests queued up\nafter `t` will not be run until all subtests finish.\n\n## var htest = test.createHarness()\n\nCreate a new test harness instance, which is a function like `test()`, but with\na new pending stack and test state.\n\nBy default the TAP output goes to `process.stdout` or `console.log()` if the\nenvironment doesn\'t have `process.stdout`. You can pipe the output to someplace\nelse if you `test.stream.pipe()` to a destination stream on the first tick.\n\n## test.only(name, cb)\n\nLike `test(name, cb)` except if you use `.only` this is the only test case\nthat will run for the entire process, all other test cases using tape will\nbe ignored\n\n# install\n\nWith [npm](https://npmjs.org) do:\n\n```\nnpm install tape\n```\n\n# license\n\nMIT\n',
7772 silly resolved readmeFilename: 'readme.markdown',
7772 silly resolved bugs: { url: 'https://github.com/substack/tape/issues' },
7772 silly resolved _id: 'tape@0.2.2',
7772 silly resolved _from: 'tape@~0.2.2' } ]
7773 info install tape@0.2.2 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/zlib-browserify
7774 info installOne tape@0.2.2
7775 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/zlib-browserify/node_modules/tape unbuild
7776 info preinstall asn1@0.1.11
7777 silly gunzTarPerm extractEntry .npmignore
7778 silly gunzTarPerm extractEntry index.js
7779 info preinstall sntp@0.2.4
7780 verbose tar unpack /home/scarter/.npm/tape/0.2.2/package.tgz
7781 silly lockFile c906d406-lib-browserify-node-modules-tape tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/zlib-browserify/node_modules/tape
7782 verbose lock tar:///home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/zlib-browserify/node_modules/tape /home/scarter/.npm/c906d406-lib-browserify-node-modules-tape.lock
7783 silly lockFile 2d6dd34e-arter-npm-tape-0-2-2-package-tgz tar:///home/scarter/.npm/tape/0.2.2/package.tgz
7784 verbose lock tar:///home/scarter/.npm/tape/0.2.2/package.tgz /home/scarter/.npm/2d6dd34e-arter-npm-tape-0-2-2-package-tgz.lock
7785 silly lockFile 37402d2a-typedarray-0-0-5 typedarray@0.0.5
7786 silly lockFile 37402d2a-typedarray-0-0-5 typedarray@0.0.5
7787 verbose readDependencies using package.json deps
7788 silly lockFile 59795676-typedarray-0-0-5 typedarray@~0.0.5
7789 silly lockFile 59795676-typedarray-0-0-5 typedarray@~0.0.5
7790 silly addNameRange number 2 { name: 'commondir', range: '>=0.0.1-0 <0.1.0-0', hasData: true }
7791 silly addNameRange versions [ 'commondir', [ '0.0.0', '0.0.1' ] ]
7792 verbose addNamed [ 'commondir', '0.0.1' ]
7793 verbose addNamed [ '0.0.1', '0.0.1' ]
7794 silly lockFile 56818eda-commondir-0-0-1 commondir@0.0.1
7795 verbose lock commondir@0.0.1 /home/scarter/.npm/56818eda-commondir-0-0-1.lock
7796 silly gunzTarPerm extractEntry tst/ctio/int/tst.wint.js
7797 silly gunzTarPerm extractEntry tst/ctio/uint/tst.64.js
7798 verbose readDependencies using package.json deps
7799 silly resolved []
7800 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules/asn1
7801 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules/asn1
7802 verbose linkStuff [ false,
7802 verbose linkStuff false,
7802 verbose linkStuff false,
7802 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/http-signature/node_modules' ]
7803 info linkStuff asn1@0.1.11
7804 verbose linkBins asn1@0.1.11
7805 verbose linkMans asn1@0.1.11
7806 verbose rebuildBundles asn1@0.1.11
7807 silly resolved [ { name: 'readable-stream',
7807 silly resolved version: '1.1.10',
7807 silly resolved description: 'An exploration of a new kind of readable streams for Node.js',
7807 silly resolved main: 'readable.js',
7807 silly resolved dependencies: { 'core-util-is': '~1.0.0', debuglog: '0.0.2' },
7807 silly resolved devDependencies: { tap: '~0.2.6' },
7807 silly resolved scripts: { test: 'tap test/simple/*.js' },
7807 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/readable-stream' },
7807 silly resolved keywords: [ 'readable', 'stream', 'pipe' ],
7807 silly resolved author:
7807 silly resolved { name: 'Isaac Z. Schlueter',
7807 silly resolved email: 'i@izs.me',
7807 silly resolved url: 'http://blog.izs.me/' },
7807 silly resolved license: 'MIT',
7807 silly resolved optionalDependencies: { debuglog: '0.0.2' },
7807 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',
7807 silly resolved readmeFilename: 'README.md',
7807 silly resolved bugs: { url: 'https://github.com/isaacs/readable-stream/issues' },
7807 silly resolved homepage: 'https://github.com/isaacs/readable-stream',
7807 silly resolved _id: 'readable-stream@1.1.10',
7807 silly resolved _from: 'readable-stream@~1.1.9' },
7807 silly resolved { name: 'typedarray',
7807 silly resolved version: '0.0.5',
7807 silly resolved description: 'TypedArray polyfill for old browsers',
7807 silly resolved main: 'index.js',
7807 silly resolved devDependencies: { tape: '~1.0.4' },
7807 silly resolved scripts: { test: 'tape test/*.js test/server/*.js' },
7807 silly resolved repository: { type: 'git', url: 'git://github.com/substack/typedarray.git' },
7807 silly resolved homepage: 'https://github.com/substack/typedarray',
7807 silly resolved keywords:
7807 silly resolved [ 'ArrayBuffer',
7807 silly resolved 'DataView',
7807 silly resolved 'Float32Array',
7807 silly resolved 'Float64Array',
7807 silly resolved 'Int8Array',
7807 silly resolved 'Int16Array',
7807 silly resolved 'Int32Array',
7807 silly resolved 'Uint8Array',
7807 silly resolved 'Uint8ClampedArray',
7807 silly resolved 'Uint16Array',
7807 silly resolved 'Uint32Array',
7807 silly resolved 'typed',
7807 silly resolved 'array',
7807 silly resolved 'polyfill' ],
7807 silly resolved author:
7807 silly resolved { name: 'James Halliday',
7807 silly resolved email: 'mail@substack.net',
7807 silly resolved url: 'http://substack.net' },
7807 silly resolved license: 'MIT',
7807 silly resolved testling: { files: 'test/*.js', browsers: [Object] },
7807 silly resolved readme: '# typedarray\n\nTypedArray polyfill ripped from [this\nmodule](https://raw.github.com/inexorabletash/polyfill).\n\n[![build status](https://secure.travis-ci.org/substack/typedarray.png)](http://travis-ci.org/substack/typedarray)\n\n[![testling badge](https://ci.testling.com/substack/typedarray.png)](https://ci.testling.com/substack/typedarray)\n\n# example\n\n``` js\nvar Uint8Array = require(\'typedarray\').Uint8Array;\nvar ua = new Uint8Array(5);\nua[1] = 256 + 55;\nconsole.log(ua[1]);\n```\n\noutput:\n\n```\n55\n```\n\n# methods\n\n``` js\nvar TA = require(\'typedarray\')\n```\n\nThe `TA` object has the following constructors:\n\n* TA.ArrayBuffer\n* TA.DataView\n* TA.Float32Array\n* TA.Float64Array\n* TA.Int8Array\n* TA.Int16Array\n* TA.Int32Array\n* TA.Uint8Array\n* TA.Uint8ClampedArray\n* TA.Uint16Array\n* TA.Uint32Array\n\n# install\n\nWith [npm](https://npmjs.org) do:\n\n```\nnpm install typedarray\n```\n\n# license\n\nMIT\n',
7807 silly resolved readmeFilename: 'readme.markdown',
7807 silly resolved bugs: { url: 'https://github.com/substack/typedarray/issues' },
7807 silly resolved _id: 'typedarray@0.0.5',
7807 silly resolved _from: 'typedarray@~0.0.5' } ]
7808 info install readable-stream@1.1.10 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/concat-stream
7809 info install typedarray@0.0.5 into /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/concat-stream
7810 info installOne readable-stream@1.1.10
7811 info installOne typedarray@0.0.5
7812 verbose readDependencies using package.json deps
7813 silly gunzTarPerm modes [ '755', '644' ]
7814 silly gunzTarPerm extractEntry test/vectors/byte0059.dat
7815 silly gunzTarPerm extractEntry test/vectors/byte0060.dat
7816 info install asn1@0.1.11
7817 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/concat-stream/node_modules/readable-stream unbuild
7818 info /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/browserify/node_modules/concat-stream/node_modules/typedarray unbuild
7819 verbose readDependencies using package.json deps
7820 silly resolved []
7821 verbose about to build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/sntp
7822 info build /home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules/sntp
7823 verbose linkStuff [ false,
7823 verbose linkStuff false,
7823 verbose linkStuff false,
7823 verbose linkStuff '/home/scarter/Projects/hubot_pristine/node_modules/hubot-hipchat/node_modules/node-xmpp/node_modules/node-xmpp-client/node_modules/request/node_modules/hawk/node_modules' ]
7824 info linkStuff sntp@0.2.4
7825 verbose linkBins sntp@0.2.4
7826 verbose linkMans sntp@0.2.4
7827 verbose re
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment