Created
February 5, 2014 17:32
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 <julian@juliangruber.com>\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 © 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<T>(Handle<Value>)\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<Value>)\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<Object>, 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<Object>, 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<Object> 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<T>, 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<Value>, 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<Value>, 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<Value>[, 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<Value>, Handle<String>[, 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<Value>, Handle<String>, 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<Value>), NanThrowError(Local<Value>, 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<Object> NanNewBufferHandle(char *, uint32_t), Local<Object> 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<Object> 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<FunctionTemplate>&, Handle<Value>)\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<Type> NanPersistentToLocal(Persistent<Type>&)\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<Context> NanNewContextHandle([ExtensionConfiguration*, Handle<ObjectTemplate>, Handle<Value>])\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<T> &)\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—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 & 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 <nathan@tootallnate.net>\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<T>(Handle<Value>)\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<Value>)\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<Object>, 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<Object>, 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<Object> 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<T>, 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<Value>, 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<Value>, 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<Value>[, 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<Value>, Handle<String>[, 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<Value>, Handle<String>, 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<Value>), NanThrowError(Local<Value>, 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<Object> NanNewBufferHandle(char *, uint32_t), Local<Object> 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<Object> 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<FunctionTemplate>&, Handle<Value>)\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<Type> NanPersistentToLocal(Persistent<Type>&)\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<Context> NanNewContextHandle([ExtensionConfiguration*, Handle<ObjectTemplate>, Handle<Value>])\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<T> &)\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—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 & 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 <nathan@tootallnate.net>\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 \'&\': \'&\',\r\n \'<\': \'<\',\r\n \'>\': \'>\',\r\n \'"\': \'"\',\r\n "\'": \''\',\r\n \'`\': \'`\'\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 <html> hey </html>\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 \'&\': \'&\',\r\n \'<\': \'<\',\r\n \'>\': \'>\',\r\n \'"\': \'"\',\r\n "\'": \''\',\r\n \'`\': \'`\'\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 <html> hey </html>\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<T>(Handle<Value>)\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<Value>)\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<Object>, 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<Object>, 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<Object> 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<T>, 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<Value>[, 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<Value>, Handle<String>[, 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<Value>, Handle<String>, 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<Value>), NanThrowError(Local<Value>, 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<Object> NanNewBufferHandle(char *, uint32_t), Local<Object> 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<Object> 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<FunctionTemplate>&, Handle<Value>)\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<Type> NanPersistentToLocal(Persistent<Type>&)\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<Context> NanNewContextHandle([ExtensionConfiguration*, Handle<ObjectTemplate>, Handle<Value>])\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<T> &)\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—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 & 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